Выбор платы Computer Vision в 2022 году

Nov 30 2022
Выбрать платформу для работы с Computer Vision on the Edge сложно. На рынке представлены десятки плат.

Выбрать платформу для работы с Computer Vision on the Edge сложно. На рынке представлены десятки плат. Если вы читаете об одном из них, вы хотите его использовать. Но когда вы пытаетесь - это не так хорошо.

Изображение автора

Я попытался сравнить много дешевых плат на рынке . И не только по скорости. Я попытался сравнить платформы по их «юзабилити». Как легко было бы экспортировать сети, насколько хороша поддержка. И как легко работать.

Эта статья является результатом сравнения. Но если вы хотите узнать больше о платах, я сделал отдельное видео о каждой плате (с полным сравнением):

  1. Google Коралл
  2. Хадас Вим3
  3. ESP32 — (Видео было снято до того, как я сделал этот гайд. Но оно близко к нему, поэтому вставлю сюда. И еще одно —https://youtu.be/ms6uoZr-4dc)
  4. Raspberry Pi
  5. Myriad X (NCS 2, Depth Ai (ДУБ, ДУБ-1, ДУБ-D и т. д.))
  6. Rock Pi 3A (RK3568 и т. д.) (и дополнительный —https://youtu.be/NHVPxPlY2lIо развитии)
  7. Джетсон Нано
  8. Хайло-8
  1. Плата K210 ( о )
  2. Плата MAIX-II ( о )

И вот заказал m5stack (с процессором Sigmstar SSD202D) для проверки (уже протестировал, скоро будет видео).

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

  1. DEBIX Model A — он должен быть очень похож на Vim3, но с другой системой.
  2. K510 Dual RSIC-V64 — новая версия k210 — это значительное ускорение по сравнению со старой платформой. Более удобная система
  3. Horizon X3 Pi AI Board — Плата с большим сообществом, нацеленная больше на ROS. Но на борту есть аналог NPU, что делает платформу интересной для тестирования.
  4. VisionFive RISC-V — плата с двумя модулями ускорения (NVDLA Engine и NPU). Когда я думал о заказе три месяца назад, меня остановили, потому что несколько тем на официальном форуме дали понять, что ни одна из них еще не может быть запущена ( NNE не работает , NVDLA не работает ). Я не думаю, что что-то еще изменилось.
  5. Orange Pi 5 — это Rockchip RK3588S. Но у Orange Pi довольно развитая инфраструктура; было бы интересно сравнить с Rock Pi. Но скорее всего будет похоже. Также было бы интересно протестировать аналогичный Orange 4B.
  6. Насчет RockChip, было бы интересно протестировать что-нибудь на базе RK1808 . Есть много дешевых плат (например, эта ). А есть даже с камерами.
  7. KNEO STEM — модуль NPU, на который нет отзывов.
  8. Sophon BM1880 — тоже захватывающая плата без большого количества отзывов.
  9. Xilinx Kria — это плата FPGA. Я продолжаю хотеть собраться и попробовать. В последний раз, когда я пытался перенести математику на FPGA

Пошли!

Вот финальная таблица со всеми досками:

https://docs.google.com/spreadsheets/d/1BMj8WImysOSuiT-6O3g15gqHnYF-pUGUhi8VmhhAat4/edit?usp=sharing

Но позвольте мне сначала объяснить все критерии.

Как легко работать

Насколько легко прошить? На прошивку Jetson TK1 ушло полдня. Для RPi — полчаса. Прошивка — это точка, с которой начинается ваше общение с платой после распаковки.

Легко работать. Когда я работал с DaVinci, отладка занимала целую вечность. Сегодня все процессы обычно намного проще. Давайте поговорим о них.

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

Поддержка сообщества. Большое сообщество — мало проблем и много решений. Давайте проверим это.

Изображение автора

На мой взгляд лучшая плата это RPi и NCS. Но они не являются полностью платами Computer Vision. Coral и Jetsons хороши, но не превосходны.

Поддержка моделей

Обычно NPU не очень удобны с точки зрения преобразования модели. Поговорим о моделях.

Официальный зоопарк моделей . Какие модели поддерживаются?

Неофициальный зоопарк моделей . Какое сообщество дает этой доске?

Насколько легко преобразовать случайную модель? Зачем мне первые два пункта, если я могу экспортировать что угодно?!

Легко отлаживать проблемы с преобразованием. Если экспорт пойдет не так, как планировалось.

Изображение автора

Как видите, три хороших платы и одна почти хорошая.

Готовность производства / Готовность хобби-проектов / Строительство досок

Некоторая дополнительная информация может позволить вам решить, стоит ли вам выбирать доску.

Скорость процессора ? Многие системы компьютерного зрения требуют хороших процессоров. Давайте проверим их. Чтобы проверить это, я буду использовать инструмент stress-ng (Sudo apt-get install stress-ng) на ПК с Linux, чтобы провести сравнение.

Механические части , конструкция, температурная стабильность.

Легко купить. Стоит ли нажимать кнопку «Связаться, чтобы узнать цену»?… Или ждать в очереди несколько месяцев?

Пины для внешнего подключения . Смогу ли я управлять реальностью?

Изображение автора

Как видите, все платы выглядят практически одинаково, за исключением плат без Linux.

Тест скорости

По 2-3 баллам в сравнении производительности сложно составить полное представление о том, «насколько быстрая плата». Лучше посмотреть части видео «Тест скорости» и проверить информацию здесь . Разные платы имеют разные структуры вывода, разные параметры и разное квантование.

Я везде использую размер партии = 1. И это не лучшая стратегия. Например, для Jetson это повысит производительность.

Изображение автора

Но на мой взгляд, эти тесты могут ответить на несколько вопросов:

  1. Насколько быстрой является плата для небольших нейронных сетей?
  2. Насколько быстро работает доска для больших нейронных сетей?
  3. Какова оптимальная структура для запуска нейронной сети?

Цена

Для больших проектов цена имеет решающее значение. Но вы вряд ли сможете оценить реальную стоимость. Например:

  1. Стоимость Jetson была около 99$, но при нынешнем дефиците чипов его едва ли можно купить за 250
  2. Большая партия досок стоит меньше, чем маленькая.
  3. Вы можете прототипировать свою плату для некоторых чипов, что будет стоить меньше.
  4. Дополнительная периферия увеличит стоимость. И на разных платах будет по-разному.
Изображение автора

Потребляемая мощность

Кроме того, я попытался измерить энергопотребление.
Несколько важных замечаний:

  1. Я не могу измерить энергопотребление для каждой рассматриваемой платы (некоторые платы я отдаю друзьям, некоторые платы не имеют USB и т. д.)
  2. Стараюсь измерять только два режима: «холостой ход» и «работает NN». Но: некоторые платы имеют внутреннюю камеру, некоторые платы используют Wi-Fi, некоторые платы имеют дополнительную периферию и т. д. Я не подключаю никаких дополнительных частей, но
  3. Это «среднее» энергопотребление. Я не пытался измерить максимальный расход
Изображение автора

Резюме

Так. Я надеюсь, что это поможет вам выбрать доску. Но это довольно маленькая статья. И позвольте мне порекомендовать еще несколько.

  1. Хорошая статья о том, что такое NPU и TPU, чем они отличаются и как оптимизирована математика:https://blog.inten.to/hardware-for-deep-learning-part-4-asic-96a542fe6a81
  2. Хорошая статья о сравнении платформ. Есть некоторые платформы, которые я не просмотрел + примеры сетей, которых у меня нет —https://qengineering.eu/deep-learning-with-raspberry-pi-and-alternatives.html
  3. Не очень подробное сравнение, но некоторые интересные платформы, которые я еще не рассматривал —https://jfrog.com/connect/post/comparison-of-the-top-5-single-board-computers/
  4. Отличная и подробная статья, но досок мало —https://arxiv.org/pdf/2108.09457.pdf
  5. тест производительности ncnn для кучи плат —https://github.com/nihui/ncnn-small-board