Raspberry PI — фантастическая платформа, не требующая представления. Делаете ли вы проверку концепции или быстрое прототипирование для своего следующего проекта IoT, ничто не сравнится с Raspberry PI. Единственный раз, когда я почувствовал, что он не впечатляет, это когда я попытался запустить на нем нейронную сеть. В этой статье я хочу поделиться с вами тем, как вы можете увеличить скорость логического вывода с помощью недорогой AI Hat от XaLogic.

Эта статья не предназначена для того, чтобы показать, как написать код на Raspberry PI для реализации подсчета/отслеживания людей. Это должно показать производительность (видео) запуска OpenCV DNN по сравнению с ускорением с использованием XaLogic XAPIZ3500 AI Hat.

Однако все коды, использованные в этой статье, можно найти на GitHub. https://github.com/linusk/medium_people_track_demo

Отказ от ответственности: я являюсь генеральным директором и основателем XaLogic.com

Подсчет/отслеживание людей

Чтобы продемонстрировать мощь ускорителя ИИ, я решил найти простую программу на Python, работающую на Raspberry PI, которая выполняла бы подсчет или отслеживание людей с использованием глубокого обучения. Нет лучшего места для поиска, кроме как посетить PyImageSearch.com. Посетите страницу, если вы хотите получить полное объяснение того, как работает код. Здесь я покажу вам видео результата.

  1. OpenCV (Res10-SSD)

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

2. OpenCV (Mobilenet-SSD)

Затем я изменил код для запуска MobileNet-SSD. Поскольку модель обучена на VOC, она обнаруживает больше, чем человека. Мне пришлось модифицировать код так, чтобы учитывалось только обнаружение человека. Я скачал модель с https://github.com/djmv/MobilNet_SSD_opencv. Здесь вы увидите, что обнаружение человека работает хорошо. Тем не менее, частота кадров обнаружения все еще не так велика. Это работает только для людей, идущих с очень медленной скоростью.

3. OpenCV (xapiz3500 AI Hat)

Наконец, я изменил код, чтобы использовать XAPIZ3500 AI Hat. Вместо использования модуля DNN в OpenCV я отправляю изображение в AI Hat для обработки и взамен получаю массив прямоугольников. Вы можете увидеть обнаружение высокой частоты кадров в видео ниже.

Это даже работает, когда я шел в быстром темпе.

Таким образом, маленькая шляпа AI от XaLogic действительно увеличивает производительность машинного обучения на Raspberry PI 3. В будущем я надеюсь рассказать больше об оборудовании, чипе-ускорителе K210 от Kendryte, а также о разработке пользовательских моделей с нуля.

Кредиты

  1. Адриан Роузброк, Распознавание лиц OpenCV, PyImageSearch, https://www.pyimagesearch.com/2018/07/23/simple-object-tracking-with-opencv/
  2. https://github.com/djmv/MobilNet_SSD_opencv