Luckfox pico max object detection and counting solution
плату LuckFox Pico Max с процессором Rockchip RV1106G3
... возможно будет работать и на других платах этого семейства (пока не проверено) ...USB Хаб с питанием, картридером и несколькими USB портами для возможности подключения периферийных устройств к LuckFox Pico
как то так......
-
предварительно обученую модель
yolov5.onnx
сконвертированную в форматyolov5.rknn
и возможностью детектирования 80 различных объектов. -
самую дешманскую noname USB web-камеру
0c45:6366
с низким разрешением
Готовый скомпилированый вариант прошивки от производителя можно взять из официального wiki LuckFox выбрав Buildroot и вариант загрузки системы с SD карты
- Linux Ядро версии 5.10.160
- для работы с web-камерой подключеной к LuckFox через USB-хаб, мною отдельно собрана утилита fswebcam (т.к. в оф.прошивке она отсутствует)
- альтернативный вариант запуска детектора без утилиты fswebcam с помощью v4l2-ctl
- для получения изображений с удалённых камер (например под управлением OpenIPC ) потребуются утилиты wget или curl (в таком случае Frame Rate детектирования будет ниже за счёт времени запроса к удалённому серверу) {curl в прошивке отсутствует}
- для самостоятельной сборки прошивки и/или её компонентов необходимо использовать Luckfox SDK
Для данного решения мною собран Tiny Web Server
в директории webyolofox/webserver
вы найдёте уже собраный бинарник этого сервера.
Если вы хотите использовать другой веб-сервер, вы можете собрать его самостоятельно, для этого вам потребуется кросс-компилятор из SDK Luckfox.
для данного варианта менять режим работы USB не требуется.
unzip webyolofox.zip
cd webyolofox/
chmod a+x install.sh
./install.sh
cd remote/
Необходимо проверить доступность своей камеры по http и указать её адрес в файле webyolofox/remote/eye.sh
Затем стартануть демон
./start_remote.sh
после чего открыть адрес вашей платы 192.168.x.x:8080/index.html
Частота обновления 1 кадр в 5 секунд.
Для остановки используется ./stop_remote.sh
* камеры с OpenIPC позволяют получать изображение в формате jpg обрезаные до нужного разрешения Например: 192.168.x.x/image.jpg?width=640&height=480&qfactor=50&color2gray=1&crop=80x32x512x400
таким образом можно значительно оптимизировать поиск объектов, в заранее выделенной области, а не во всём изображении. подробнее: https://openipc.org/majestic-endpoints?locale=ru
Сначала выполнить
luckfox-config
#в конфигураторе перейти в Advanced Option
# выбрать режим работы USB ->host
reboot
после перезагрузки, убедится что камера подключена и определяется системой lsusb
,dmesg
далее...
скопировать и распаковать архив с webyolofox на плату
unzip webyolofox.zip
cd webyolofox/
chmod a+x install.sh
./install.sh
./start.sh
Затем открыть адрес вашей платы 192.168.x.x:8080/index.html
Частота обновления изображения (Frame Rate) ~1 кадр в секунду.
Вызов ./stop.sh
последовательно остановит процессы демонов tiny
и fswebcam
тем самым завершив работу детектора.
Для подсчёта объектов используется webyolofox/detect.sh
который на вход принимает 2 аргумента, адрес анализируемого изображения image.jpg
(внутри каталога) и объект поиска (например: car
,person
и т.д.)
Полный список доступных для детектирования объектов можно посмотреть в файле webyolofox/model/coco_80_labels_list.txt
Если результат выполнения возвращает 0 , то объект на изображении отсутствует.