Запуск модели обнаружения объектов на маломощных устройствах

В первой части этой статьи я тестировал ретро версии YOLO (You Only Look Once) — популярной библиотеки обнаружения объектов. Возможность запустить модель глубокого обучения, используя только OpenCV, без тяжелых фреймворков вроде PyTorch или Keras, перспективна для маломощных устройств, и я решил углубиться в эту тему и посмотреть, как последняя модель YOLO v8 работает на Raspberry Pi.

Давайте углубимся в это.

Аппаратное обеспечение

Обычно не проблема запустить любую модель в облаке, где ресурсы практически не ограничены. А вот для оборудования «в поле» ограничений гораздо больше. Ограниченная оперативная память, мощность процессора или даже другая архитектура процессора, более старые или несовместимые версии программного обеспечения, отсутствие высокоскоростного подключения к Интернету и так далее. Еще одна большая проблема с облачной инфраструктурой — ее стоимость. Допустим, мы делаем умный дверной звонок и хотим добавить в него обнаружение человека. Мы можем запустить модель в облаке, но каждый вызов API стоит денег, и кто за это будет платить? Не каждый клиент был бы рад иметь ежемесячную подписку на дверной звонок или любое подобное «умное» устройство, поэтому может быть важно запустить модель локально, даже если результаты могут быть не такими хорошими.

Для этого теста я запустил модель YOLO v8 на Raspberry Pi:

Raspberry Pi — это дешевый одноплатный компьютер размером с кредитную карту, работающий под управлением Raspbian или Ubuntu Linux. Я буду тестировать две разные версии:

  • Raspberry Pi 3 Model B, выпущенный в 2015 году. Он оснащен процессором Cortex-A53 ARM с частотой 1,2 ГГц и 1 ГБ оперативной памяти.
  • Raspberry Pi 4, выпущенный в 2019 году. Он оснащен процессором Cortex-A72 ARM с тактовой частотой 1,8 ГГц и 1, 4 или 8 ГБ оперативной памяти.

Компьютеры Raspberry Pi в настоящее время широко используются не только для хобби и самостоятельных проектов, но и для встроенных промышленных приложений (специально для этого был разработан Вычислительный модуль Raspberry Pi). Итак, интересно посмотреть, как эти платы могут справляться с такими ресурсоемкими операциями, как обнаружение объектов. Для всех дальнейших тестов я буду использовать это…