OAK от DepthAI

Я люблю делать всякие странные штуки с Computer Vision. Назовем их “условно полезные девайсы”. Из того что я выкладывал на Хабре был рассказ про умную кормушку для птиц и штука для слежения за ребенком. Стараюсь держать себя в форме и смотреть что происходит вокруг. Какая новая аппаратура появляется, что с ней можно сделать и куда засунуть.

Летом на Kickstarter появилась интересная штука – OpenCV AI Kit.  Ребята засунули в одну небольшую плату камеру + акселератор нейронных сетей (Movidius 2).
Короче, первая штука в жизни которую заказал с кикстартера. Хотелось попробовать – необычный формфактор.

Сразу скажу, что немного объебался. Мне казалось, что там не только камера + NPU на борту, а ещё и какой-то RaspberryPI. Для меня такое было бы идеальным устройством. Но и так неплохо.

В статье я пройдусь по плюсам и минусам этой девайсины, а в прилегающем видео пробегусь по коду и тому как оно работает.

Плюсы

Начну с плюсов. Их меньше но они большие.

Первый. Хороший корпус. Не уверен что он влагозащищенный, но кажется что даже если и нет – его не сложно пропатчить. Хороший метал с теплоотводом, очень компактный. Короче очень понравилось.

Компактно и хорошо собрано

Второй. Хороший и реализованный концепт. Меньше проводов и меньше контактов. Все работает, соответствует документации. 

Третий. Энкодинг. Мне сложно придумать где это понадобиться, но все же могу отметить, что OAK может энкодить прямо на устройстве. Наверное для слабых плат это актуально. Изображения могут уже быть в JPEG или  h256

Минусы

Первый и самый главный – свои драйвера, свой фреймворк – DepthAI. Не то что он плох. Но я так и не понял почему нельзя было сделать два отдельных полноценных устройства работающих на своих драйверах. Камера + Movidius. По сути можно работать через существующее API для OpenVino и камеры. Я понимаю, что для новичков это возможно логичное решение, но если вы надеетесь что кто-то захочет использовать устройство в существующем проекте – то логичнее было бы иметь классические и существующие способы работы.

Второй минус – цена. Авторы пиарились что OAK обходится дешевле существующих решений.

Но это не так:)
Во-первых, OAK стоит не 99. Сейчас на сайте цена 199. Купить на кикстартере можно было за 119 + доставка. Тот сетап который я использовал при распознавании ребенка – обошелся мне в: 1600р за камеру + 6500 за мовидиус. Это 109 баксов. При этом все в России, платить за доставку не надо. Наверное, где-нибудь за рубежом можно было бы купить даже дешевле.

4K который в камере OAK – я бы не сказал что большой плюс. Если это критично, то можно взять RPi камеру.

Третий, очевидный и понятный – ограниченная функциональность. В дополнение к прошлому пункту:

  • нет ИК камеры
  • нет возможности переключить объектив
  • нет встроенного осветителя

По сути авторы откинули много вариантов в угоду простоте. Но это минус происходящий из второго плюса.

Пройдемся по сорсам

Основной сайт проекта DepthAI – https://docs.luxonis.com/

Их основной гит – https://github.com/luxonis/depthai-python на текущий момент (07.03.2021) доступно очень мало примеров, и все их них без последовательного применения нескольких моделей, только “одна за раз”

Их второй гит, с “полезными” моделями, где стакается несколько моделей в пайплайне – https://github.com/luxonis/depthai-experiments 

Единственное, для него нужно ставить отдельную версию DepthAI. Как я понял применять несколько моделей на основной невозможно.

Пример с тренировкой. В реальности все это можно сделать на базе любого OpenVino пайплайна. 

Общая логика выполнения

Ребята пытаются использовать логику построения пайплайнов. Больше всего мне это напомнило какой-нибудь DeepStream от Nvidia, только на питоне. Вы собираете набор процессов на устройстве, их входы и выходы.
Только вот, одна проблема. Внезапно оказывается, что такую простую операцию как “кроп” сделать на устройстве нельзя. Вам нужно вытащить картинку, вырезать там область, отправить её обратно на устройство для дальнейшей .работы.

И, чтобы это все корректно работало, вам нужно подписываться на события и плодить мультитрединг. Отлаживать такое неприятно, контроля над вычислителем мало.

Прочие девайсины

Рассказывал я про модуль OAK-1. Но, параллельно с ним, вышел модуль OAK-D с стереокамерой. Его я не щупал, но по ощущению та же шляпа. По цене в Москве RealSence стоит 170 баксов (но его можно ощутимо дешевле взять в Америке/Европе). Но все равно 170+70 дешевле чем 300 + доставка…

Но на сайте Luxionis есть две интересных штуки, которые они не выставляли на кикстартер:

  1. Девайсина не только с камерой и ускорителем, но и с процессором для управления. Выглядит прикольно, но не щупая такую штуку руками – нельзя ничего сказать. Мне кажется что процессора не хватит на математику разумную. Нет корпуса.
  2. Девайсина которая интегрируется с RPi в единый модуль. Выглядит прикольно. Но опять же, надо смотреть. Корпуса нет, подозреваю что RPi надо тоже докупать.

З.Ю.

В последнее время свои статьи я публикую на очень разных платформах.
И, так получилось, что единое место куда я их свожу тут – https://vk.com/cvml_team (дублирую в https://t.me/CVML_team )
Подписывайтесь!