Raspberry Pi недавно представила несколько продуктов для ИИ, включая Raspberry Pi AI HAT+ для Pi 5 с производительностью 13 или 26 TOPS, а также менее мощную Raspberry Pi AI камеру , совместимую со всеми одноплатными компьютерами Raspberry Pi, имеющими разъем MIPI CSI. Компания предоставила образцы AI HAT+ (26 TOPS) и AI камеры для обзора, а также дополнительные аксессуары, такие как Raspberry Pi Touch Display 2 и защитный бампер Raspberry Pi. В этом материале представлен опыт начальной настройки, в основном следуя документации для AI HAT+ и AI камеры .
Используемое оборудование для тестирования
В этом руководстве/обзоре используется Raspberry Pi 5 с AI HAT+ и Raspberry Pi Camera Module 3 , тогда как AI камера подключена к Raspberry Pi 4. Также планируется использование одной из плат с новым Touch Display 2.
Краткий обзор новой аппаратуры для ИИ начнем с AI HAT+ на 26 TOPS.
В комплект входит сама плата AI HAT+ с установленным Hailo-8 26 TOPS AI акселератором , в отличие от модуля M.2, как в Raspberry Pi AI Kit — первом подобном решении от компании. Также включены 40-контактный stacking-разъем, пластиковые стойки и винты.
К плате HAT+ подключен шлейф, а на нижней стороне нет крупных компонентов — только пассивные элементы и множество тестовых точек.
В комплекте Raspberry Pi AI камеры присутствует модуль камеры с Sony IMX500 Intelligent Vision сенсором , 22-контактный и 15-контактный кабели для подключения к разъему MIPI CSI на различных платах Raspberry Pi, а также белое кольцо для ручной регулировки фокуса.
Например, 22-контактный кабель подойдет для Raspberry Pi 5, а 15-контактный — для Raspberry Pi 4, поэтому в этом обзоре используется последний.
Крупный план модуля Raspberry Pi AI камеры.
Установка Raspberry Pi AI HAT+ на Raspberry Pi 5
Обычно Raspberry Pi 5 используется с NVMe SSD, но это невозможно при установке AI HAT+ со стандартными аксессуарами от Raspberry Pi. Поэтому SSD и HAT были удалены, а Raspberry Pi OS загружается с официальной microSD карты Raspberry Pi .
Активный кулер остается на месте. Первый шаг установки — подключение stacking-разъема к 40-контактному GPIO-разъему Pi 5, монтаж стоек и подключение шлейфа PCIe, как показано на фото ниже.
После этого можно установить HAT+ на разъем и закрепить четырьмя винтами.
Raspberry Pi Camera Module 3 подключена к Pi 5, но установка платы на Touch Display 2 невозможна из-за помех от HAT и проблем с подключением кабеля питания при использовании stacking-разъема.
Завершающий этап — снятие четырех винтов, фиксирующих стойки, установка защитного бампера на нижнюю сторону и его крепление теми же винтами.
Установка Raspberry Pi AI камеры и Touch Display 2 на Raspberry Pi 4
Подключим AI камеру к Raspberry Pi 4, сначала подсоединив 15-контактный кабель, как показано ниже, золотыми контактами к micro HDMI разъемам.
Этого достаточно при использовании HDMI-монитора. Но для работы с Raspberry Pi Touch Display 2 необходимо подключить шлейф MIPI DSI и кабель питания, как показано ниже.
Кабель питания можно подключить любой стороной, но при первой попытке была допущена ошибка — красный провод оказался слева, что привело к неработоспособности. Правильное подключение — черным проводом слева, как на фото выше.
Затем шлейф MIPI DSI подключается к Raspberry Pi 4 синей стороной к черной части разъема, после чего плата фиксируется четырьмя винтами. AI камера крепится к задней части дисплея на двусторонний скотч. Жаль, что Raspberry Pi не предусмотрела механизм крепления для своих камер.
Тем не менее, такая конфигурация работоспособна при размещении дисплея на держателе для смартфона.
Начало работы с Raspberry Pi AI камерой: RPICam-apps и демо Libcamera2
Первым шагом была настройка дисплея в альбомной ориентации, так как Raspberry Pi OS по умолчанию запускается в портретном режиме. Для этого в Screen Layout Editor выбрано Layout->Screens->XWAYLAND0->Orientation->Right.
Теперь можно установить прошивку, ПО и ресурсы для Raspberry Pi AI камеры одной командой, после чего потребуется перезагрузка.
1 2 |
sudo apt install imx500-all sudo reboot |
Попробуем несколько демо из “rpicam-apps”, начиная с детекции объектов:
1 |
rpicam-hello -t 0s --post-process-file /usr/share/rpi-camera-assets/imx500_mobilenet_ssd.json --viewfinder-width 1920 --viewfinder-height 1080 --framerate 30 |
или запуск через SSH (удаленный доступ):
1 |
DISPLAY=:0 rpicam-hello -t 0s --post-process-file /usr/share/rpi-camera-assets/imx500_mobilenet_ssd.json --viewfinder-width 1920 --viewfinder-height 1080 --framerate 30 |
Вывод команды:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
[0:01:25.418428032] [2246] INFO Camera camera_manager.cpp:325 libcamera v0.3.2+27-7330f29b [0:01:25.438252186] [2249] WARN CameraSensorProperties camera_sensor_properties.cpp:305 No static properties available for 'imx500' [0:01:25.438624029] [2249] WARN CameraSensorProperties camera_sensor_properties.cpp:307 Please consider updating the camera sensor properties database [0:01:25.466632714] [2249] WARN RPiSdn sdn.cpp:40 Using legacy SDN tuning - please consider moving SDN inside rpi.denoise [0:01:25.469557259] [2249] INFO RPI vc4.cpp:447 Registered camera /base/soc/i2c0mux/i2c@1/imx500@1a to Unicam device /dev/media4 and ISP device /dev/media0 [0:01:25.469652592] [2249] INFO RPI pipeline_base.cpp:1126 Using configuration file '/usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml' Made X/EGL preview window IMX500: Unable to set absolute ROI Reading post processing stage "imx500_object_detection" ------------------------------------------------------------------------------------------------------------------ NOTE: Loading network firmware onto the IMX500 can take several minutes, please do not close down the application. ------------------------------------------------------------------------------------------------------------------ Reading post processing stage "object_detect_draw_cv" Mode selection for 1920:1080:12:P(30) SRGGB10_CSI2P,2028x1520/30.0219 - Score: 2467.7 SRGGB10_CSI2P,4056x3040/9.9987 - Score: 43357.3 Stream configuration adjusted [0:01:28.520565569] [2246] INFO Camera camera.cpp:1197 configuring streams: (0) 1920x1080-YUV420 (1) 2028x1520-SRGGB10_CSI2P [0:01:28.521339201] [2249] INFO RPI vc4.cpp:622 Sensor: /base/soc/i2c0mux/i2c@1/imx500@1a - Selected sensor format: 2028x1520-SRGGB10_1X10 - Selected unicam format: 2028x1520-pRAA Network Firmware Upload: 100% (3872/3872 KB) |
Первоначальная загрузка сетевой прошивки заняла несколько секунд, но последующие попытки выполняются быстро. Из-за нечеткого изображения пришлось вручную отрегулировать фокус с помощью белого кольца из комплекта камеры.
Демо легко распознало человека и плюшевого медведя, но не смогло обнаружить бутылку, несмотря на изменение угла. Видео плавное, а вывод результатов выполняется быстро.
Все работает хорошо, за исключением расхождений между документацией и фактическими командами, но решение было найдено на форумах. Также выяснилось, что Scrot не делает скриншоты в Wayland (изображения получаются черными), поэтому пришлось перейти на утилиту Grim.
Попробуем другой пример: оценку позы.
1 |
rpicam-hello -t 0s --post-process-file /usr/share/rpi-camera-assets/imx500_posenet.json --viewfinder-width 1920 --viewfinder-height 1080 --framerate 30 |
При первом запуске модель нужно передать на камеру, что заняло около 2 минут, но последующие запуски выполняются быстро. Трекинг работает в реальном времени без заметных задержек. Видео с демонстрацией сегментации тела и сравнением AI камеры с AI HAT+ будет представлено позже в этом обзоре.
Дополнительные модели доступны в директории imx500-models.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
pi@raspberrypi:~ $ ls -l /usr/share/imx500-models/ total 98700 -rw-r--r-- 1 root root 2574800 Sep 28 20:37 imx500_network_deeplabv3plus.rpk -rw-r--r-- 1 root root 3722528 Sep 28 20:37 imx500_network_efficientdet_lite0_pp.rpk -rw-r--r-- 1 root root 6285760 Sep 28 20:37 imx500_network_efficientnet_bo.rpk -rw-r--r-- 1 root root 5576144 Sep 28 20:37 imx500_network_efficientnet_lite0.rpk -rw-r--r-- 1 root root 6838704 Sep 28 20:37 imx500_network_efficientnetv2_b0.rpk -rw-r--r-- 1 root root 6681664 Sep 28 20:37 imx500_network_efficientnetv2_b1.rpk -rw-r--r-- 1 root root 6826864 Sep 28 20:37 imx500_network_efficientnetv2_b2.rpk -rw-r--r-- 1 root root 2104384 Sep 28 20:37 imx500_network_higherhrnet_coco.rpk -rw-r--r-- 1 root root 67056 Sep 28 20:37 imx500_network_inputtensoronly.rpk -rw-r--r-- 1 root root 5222544 Sep 28 20:37 imx500_network_levit_128s.rpk -rw-r--r-- 1 root root 5072400 Sep 28 20:37 imx500_network_mnasnet1.0.rpk -rw-r--r-- 1 root root 4079808 Sep 28 20:37 imx500_network_mobilenet_v2.rpk -rw-r--r-- 1 root root 3612448 Sep 28 20:37 imx500_network_mobilevit_xs.rpk -rw-r--r-- 1 root root 2335520 Sep 28 20:37 imx500_network_mobilevit_xxs.rpk -rw-r--r-- 1 root root 3281696 Sep 28 20:37 imx500_network_nanodet_plus_416x416_pp.rpk -rw-r--r-- 1 root root 3118976 Sep 28 20:37 imx500_network_nanodet_plus_416x416.rpk -rw-r--r-- 1 root root 1663152 Sep 28 20:37 imx500_network_posenet.rpk -rw-r--r-- 1 root root 3440912 Sep 28 20:37 imx500_network_regnetx_002.rpk -rw-r--r-- 1 root root 4054464 Sep 28 20:37 imx500_network_regnety_002.rpk -rw-r--r-- 1 root root 5464912 Sep 28 20:37 imx500_network_regnety_004.rpk -rw-r--r-- 1 root root 6211824 Sep 28 20:37 imx500_network_resnet18.rpk -rw-r--r-- 1 root root 4081184 Sep 28 20:37 imx500_network_shufflenet_v2_x1_5.rpk -rw-r--r-- 1 root root 1597680 Sep 28 20:37 imx500_network_squeezenet1.0.rpk -rw-r--r-- 1 root root 3965824 Sep 28 20:37 imx500_network_ssd_mobilenetv2_fpnlite_320x320_pp.rpk -rw-r--r-- 1 root root 3126656 Sep 28 20:37 imx500_network_yolov8n_pp.rpk |
Raspberry Pi AI камера также поддерживает фреймворк Picamera2. Установим зависимости и демо-программы:
1 2 |
sudo apt install python3-opencv python3-munkres git clone https://github.com/raspberrypi/picamera2 |
Попробуем запустить Yolov8:
1 2 |
cd picamera2/examples/imx500/ DISPLAY=:0 python imx500_object_detection_demo.py --model /usr/share/imx500-models/imx500_network_ssd_mobilenetv2_fpnlite_320x320_pp.rpk |
Но результат оказался неожиданным:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
pi@raspberrypi:~/picamera2/examples/imx500 $ DISPLAY=:0 python imx500_object_detection_demo.py --model /usr/share/imx500-models/imx500_network_ssd_mobilenetv2_fpnlite_320x320_pp.rpk [0:17:09.224913642] [40685] INFO Camera camera_manager.cpp:325 libcamera v0.3.2+27-7330f29b [0:17:09.251033940] [40690] WARN CameraSensorProperties camera_sensor_properties.cpp:305 No static properties available for 'imx500' [0:17:09.251093511] [40690] WARN CameraSensorProperties camera_sensor_properties.cpp:307 Please consider updating the camera sensor properties database [0:17:09.272530936] [40690] WARN RPiSdn sdn.cpp:40 Using legacy SDN tuning - please consider moving SDN inside rpi.denoise [0:17:09.274669644] [40690] INFO RPI vc4.cpp:447 Registered camera /base/soc/i2c0mux/i2c@1/imx500@1a to Unicam device /dev/media4 and ISP device /dev/media0 [0:17:09.274828357] [40690] INFO RPI pipeline_base.cpp:1126 Using configuration file '/usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml' ------------------------------------------------------------------------------------------------------------------ NOTE: Loading network firmware onto the IMX500 can take several minutes, please do not close down the application. ------------------------------------------------------------------------------------------------------------------ [0:17:09.456145829] [40685] INFO Camera camera.cpp:1197 configuring streams: (0) 640x480-XBGR8888 (1) 2028x1520-SRGGB10_CSI2P [0:17:09.456830363] [40690] INFO RPI vc4.cpp:622 Sensor: /base/soc/i2c0mux/i2c@1/imx500@1a - Selected sensor format: 2028x1520-SRGGB10_1X10 - Selected unicam format: 2028x1520-pRAA Network Firmware Upload: 100%|█████████████████████████████████████████████████████████████████████| 3.78M/3.78M [00:11<00:00, 360kbytes/s] Traceback (most recent call last): File "/home/pi/picamera2/examples/imx500/imx500_object_detection_demo.py", line 179, in <module> last_results = parse_detections(picam2.capture_metadata()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/pi/picamera2/examples/imx500/imx500_object_detection_demo.py", line 28, in parse_detections bbox_order = intrinsics.bbox_order ^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'NetworkIntrinsics' object has no attribute 'bbox_order' |
Эта проблема известна не только мне , и выполнение следующей команды перед запуском:
1 |
export PYTHONPATH=/home/pi/picamera2/ |
позволяет продвинуться дальше, но все равно приводит к ошибке:
1 2 3 |
File "/home/pi/picamera2/picamera2/devices/imx500/imx500.py", line 548, in __get_output_tensor_info raise ValueError(f'tensor info length {len(tensor_info)} does not match expected size {size}') ValueError: tensor info length 260 does not match expected size 708 |
Еще один пользователь столкнулся с проблемой несоответствия размеров , но в данном случае очевидного решения нет. На 24 ноября 2024 года фреймворк Picamera2 несовместим с Raspberry Pi AI камерой. Надеемся, что это будет исправлено в ближайшие недели. Документация содержит подробности архитектуры и инструкции по развертыванию собственных моделей TensorFlow или Pytorch, но это выходит за рамки данного руководства.
Начало работы с Raspberry Pi AI HAT+
Raspberry Pi рекомендует включить PCIe Gen3 для оптимальной производительности, но в этом нет необходимости, так как PCIe Gen3 уже был активирован при тестировании официального SSD Raspberry Pi . Установим ресурсы Hailo и перезагрузим систему.
1 2 |
sudo apt install hailo-all sudo reboot |
Заметим, что установка занимает около 900 МБ и включает драйвер ядра Hailo, прошивку, промежуточное ПО HailoRT, библиотеки постобработки Hailo Tappas и демо rpicam-apps с постобработкой Hailo.
Проверим, обнаружен ли акселератор Hailo-8 AI:
1 |
hailortcli fw-control identify |
Вывод:
1 2 3 4 5 6 7 8 9 10 |
Executing on device: 0000:01:00.0 Identifying board Control Protocol Version: 2 Firmware Version: 4.18.0 (release,app,extended context switch buffer) Logger Version: 0 Board Name: Hailo-8 Device Architecture: HAILO8 Serial Number: <N/A> Part Number: <N/A> Product Name: <N/A> |
Серийные номера, номера деталей и название продукта отсутствуют — возможно, они отображаются только при использовании модулей Hailo формата M.2 или mPCIe.
Дополнительная информация о Hailo доступна в логах ядра:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
pi@raspberrypi:~ $ dmesg | grep -i hailo [ 3.671365] hailo: Init module. driver version 4.18.0 [ 3.671510] hailo 0000:01:00.0: Probing on: 1e60:2864... [ 3.671517] hailo 0000:01:00.0: Probing: Allocate memory for device extension, 11632 [ 3.671539] hailo 0000:01:00.0: enabling device (0000 -> 0002) [ 3.671546] hailo 0000:01:00.0: Probing: Device enabled [ 3.671566] hailo 0000:01:00.0: Probing: mapped bar 0 - 00000000a06c39ed 16384 [ 3.671572] hailo 0000:01:00.0: Probing: mapped bar 2 - 00000000a39a70f5 4096 [ 3.671577] hailo 0000:01:00.0: Probing: mapped bar 4 - 00000000800179f8 16384 [ 3.671581] hailo 0000:01:00.0: Probing: Force setting max_desc_page_size to 4096 (recommended value is 16384) [ 3.671589] hailo 0000:01:00.0: Probing: Enabled 64 bit dma [ 3.671592] hailo 0000:01:00.0: Probing: Using userspace allocated vdma buffers [ 3.671595] hailo 0000:01:00.0: Disabling ASPM L0s [ 3.671599] hailo 0000:01:00.0: Successfully disabled ASPM L0s [ 3.898016] hailo 0000:01:00.0: Firmware was loaded successfully [ 3.913417] hailo 0000:01:00.0: Probing: Added board 1e60-2864, /dev/hailo0 |
Теперь можно скачать демо rpicam-apps с GitHub:
1 |
git clone --depth 1 https://github.com/raspberrypi/rpicam-apps.git ~/rpicam-apps |
И протестировать один из примеров, как указано в документации:
1 2 3 4 5 6 7 8 |
pi@raspberrypi:~ $ DISPLAY=:0 rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov8_inference.json --lores-width 640 --lores-height 640 [0:39:01.996590396] [17167] INFO Camera camera_manager.cpp:325 libcamera v0.3.2+27-7330f29b [0:39:02.004488912] [17170] INFO RPI pisp.cpp:695 libpisp version v1.0.7 28196ed6edcf 29-08-2024 (16:33:32) [0:39:02.022338997] [17170] INFO RPI pisp.cpp:1154 Registered camera /base/axi/pcie@120000/rp1/i2c@80000/imx708@1a to CFE device /dev/media2 and ISP device /dev/media0 using PiSP variant BCM2712_C0 Made X/EGL preview window Postprocessing requested lores: 640x640 BGR888 Reading post processing stage "hailo_yolo_inference" ERROR: *** No such node (hef_file) *** |
Упс… не работает. На форуме Raspberry Pi рекомендуют использовать модели из /usr/share/rpi-camera-assets/ :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
pi@raspberrypi:~ $ DISPLAY=:0 rpicam-hello -t 0 --post-process-file /usr/share/rpi-camera-assets/hailo_yolov8_inference.json --lores-width 640 --lores-height 640 --rotation 180 [0:42:20.662134072] [17198] INFO Camera camera_manager.cpp:325 libcamera v0.3.2+27-7330f29b [0:42:20.673362106] [17201] INFO RPI pisp.cpp:695 libpisp version v1.0.7 28196ed6edcf 29-08-2024 (16:33:32) [0:42:20.695581852] [17201] INFO RPI pisp.cpp:1154 Registered camera /base/axi/pcie@120000/rp1/i2c@80000/imx708@1a to CFE device /dev/media2 and ISP device /dev/media0 using PiSP variant BCM2712_C0 Made X/EGL preview window Postprocessing requested lores: 640x640 BGR888 Reading post processing stage "hailo_yolo_inference" Reading post processing stage "object_detect_draw_cv" Mode selection for 2304:1296:12:P SRGGB10_CSI2P,1536x864/0 - Score: 3400 SRGGB10_CSI2P,2304x1296/0 - Score: 1000 SRGGB10_CSI2P,4608x2592/0 - Score: 1900 Stream configuration adjusted [0:42:21.844252109] [17198] INFO Camera camera.cpp:1197 configuring streams: (0) 2304x1296-YUV420 (1) 640x640-BGR888 (2) 2304x1296-BGGR_PISP_COMP1 [0:42:21.844388530] [17201] INFO RPI pisp.cpp:1450 Sensor: /base/axi/pcie@120000/rp1/i2c@80000/imx708@1a - Selected sensor format: 2304x1296-SBGGR10_1X10 - Selected CFE format: 2304x1296-PC1B [HailoRT] [warning] HEF was compiled for Hailo8L device, while the device itself is Hailo8. This will result in lower performance. [HailoRT] [warning] HEF was compiled for Hailo8L device, while the device itself is Hailo8. This will result in lower performance. |
Теперь все работает, и результат похож на демо MobileNet для Raspberry Pi AI камеры, но YOLOv8 на AI HAT+ также распознает бутылку… Заметим, что добавлен параметр ориентации, так как крепление камеры требует поворота изображения на 180 градусов.
Доступно также демо оценки позы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
pi@raspberrypi:~ $ DISPLAY=:0 rpicam-hello -t 0 --post-process-file /usr/share/rpi-camera-assets/hailo_yolov8_pose.json --lores-width 640 --lores-height 640 --rotation 180 [3:39:11.229348188] [334368] INFO Camera camera_manager.cpp:325 libcamera v0.3.2+27-7330f29b [3:39:11.237309251] [334371] INFO RPI pisp.cpp:695 libpisp version v1.0.7 28196ed6edcf 29-08-2024 (16:33:32) [3:39:11.255766175] [334371] INFO RPI pisp.cpp:1154 Registered camera /base/axi/pcie@120000/rp1/i2c@80000/imx708@1a to CFE device /dev/media2 and ISP device /dev/media0 using PiSP variant BCM2712_C0 Made X/EGL preview window Postprocessing requested lores: 640x640 BGR888 Reading post processing stage "hailo_yolo_pose" Mode selection for 2304:1296:12:P SRGGB10_CSI2P,1536x864/0 - Score: 3400 SRGGB10_CSI2P,2304x1296/0 - Score: 1000 SRGGB10_CSI2P,4608x2592/0 - Score: 1900 Stream configuration adjusted [3:39:12.423058392] [334368] INFO Camera camera.cpp:1197 configuring streams: (0) 2304x1296-YUV420 (1) 640x640-BGR888 (2) 2304x1296-RGGB_PISP_COMP1 [3:39:12.423195170] [334371] INFO RPI pisp.cpp:1450 Sensor: /base/axi/pcie@120000/rp1/i2c@80000/imx708@1a - Selected sensor format: 2304x1296-SRGGB10_1X10 - Selected CFE format: 2304x1296-PC1R [HailoRT] [warning] HEF was compiled for Hailo8L device, while the device itself is Hailo8. This will result in lower performance. [HailoRT] [warning] HEF was compiled for Hailo8L device, while the device itself is Hailo8. This will result in lower performance. |
Оно очень похоже на демо для AI камеры, но добавляет отслеживание носа и глаз, а также запускается мгновенно, даже при первом запуске.
Все примеры скомпилированы для 13 TOPS акселератора Hailo-8L, а не для 26 TOPS чипа Hailo-8, но это не влияет на производительность с точки зрения пользователя. Запрошена информация у Raspberry Pi о наличии демо, специфичных для 26 TOPS Hailo-8, и материал будет обновлен после тестирования.
Документация для Raspberry Pi AI HAT+ менее подробная, чем для AI камеры, и пользователи перенаправляются в репозиторий hailo-rpi5-examples на GitHub за дополнительной информацией и в сообщество Hailo за поддержкой.
Сравнение демо оценки позы: Raspberry Pi AI камера vs AI HAT+
Первое впечатление: детекция объектов и оценка позы работают схожим образом на Raspberry Pi AI камере и AI HAT+ после настройки.
Основное различие для оценки позы — медленный первый запуск на AI камере из-за передачи модели (почти две минуты). Последующие запуски выполняются быстро, так как модель уже сохранена в памяти камеры. Yolov8 на AI HAT+ также добавляет отслеживание глаз и носа, но, вероятно, это связано с использованием другой модели, а не с ограничениями аппаратуры.
Хотя плата расширения мощнее на бумаге, и Raspberry Pi AI камера, и AI HAT+ могут запускать похожие демо. AI HAT+ использует PCIe и работает только с Raspberry Pi 5 и будущим модулем CM5, тогда как AI камера совместима с любым Raspberry Pi, имеющим разъем MIPI CSI. Демо загружаются медленнее при первом запуске на AI камере, но в остальном различий мало. Документация не всегда синхронизирована с фактическими командами для обоих устройств, и для успешного запуска демо пришлось обращаться к форумам. Оба устройства стоят одинаково ($70) для комплекта AI HAT+ на 13 TOPS, но большинству приложений с AI HAT+ потребуется модуль камеры Raspberry Pi. Комплект AI HAT+ на 26 TOPS, рассмотренный здесь, стоит $110.
Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.