AI Обнаружение объектов и измерение расстояний с помощью Raspberry Pi
AI Обнаружение объектов и измерение расстояний с помощью Raspberry Pi
Представьте себе транспортное средство, движущееся со скоростью 54 километра в час, что примерно соответствует скорости объекта, движущегося со скоростью 0,5 метра за кадр со скоростью 30 кадров в секунду (0,5×30×3,6=54 км/час). На крыше автомобиля установлена компактная высокопроизводительная система технического зрения, построенная на базе платы Raspberry Pi 5 и ускорителя Hailo-8L AI.
Эта установка в режиме реального времени обнаруживает объекты впереди и оценивает их расстояние до автомобиля. Когда объект входит в заранее определенную зону безопасности, система может мгновенно выдать предупреждение или активировать экстренное торможение, улучшая как ситуационную осведомленность, так и время реакции.
Построенная с использованием AI Accelerator HAT на Raspberry Pi 5, система работает как платформа AI производственного уровня, способная работать со скоростью минимум 30 кадров в секунду. Разработанное for автомобильное крепление, оно непрерывно сканирует дорогу, идентифицирует объекты в режиме реального времени и рассчитывает расстояние до них. Эти текущие показания отображаются на терминале. Если какой-либо объект пересекает предопределенный порог близости, система может активировать оповещения через контакты GPIO.
Хотя механизм оповещений прост в реализации, в текущей версии он не реализован. Компоненты, необходимые for для сборки системы, перечислены в таблице спецификации. На рис. 1 показан рабочий прототип авторов.
Рис. 1: Авторский прототип системы распознавания объектов и измерения расстояний
Подключение и монтаж
Ускоритель AI можно установить поверх Raspberry Pi, как показано на рис. 2. Обратите внимание, что, поскольку HAT AI полностью закрывает основной процессор, Raspberry Pi 5 имеет тенденцию значительно нагреваться. Во избежание перегрева настоятельно рекомендуется использовать дополнительный метод охлаждения. В этой системе в узком пространстве, доступном после установки AI HAT, помещается только специальный охладитель фиксированного типа. Полная установка и ее отдельные компоненты показаны на рис. 2. Для поддержания стабильной работы Raspberry Pi 5 также должен питаться от высококачественного адаптера питания 5 В, 4 А.
Рис. 2: Ускоритель AI, установленный на Raspberry Pi
Благодаря активному охлаждению Raspberry Pi 5 можно безопасно разогнать для получения дополнительной производительности за счет небольшого увеличения энергопотребления и выделения тепла. Разъем вентилятора кулера должен быть подключен к специальному разъему вентилятора на плате Pi 5. В сочетании с AI HAT тяжелая работа по обработке AI на основе YOLO выполняется ускорителем, что позволяет Pi 5 сосредоточиться на вычислениях и логике управления. Такое разделение труда обеспечивает плавную и эффективную работу даже при частоте 30 кадров в секунду.
Спецификация
Компоненты
Количество
Raspberry Pi 5, 8 ГБ или 16 ГБ
1
Hailo-8L AI ускоритель for Pi 5, 13 TOPS до 26 TOPS
1
Pi 5 камера
1
Адаптер питания Pi 5
1
Высокоскоростная SD-карта, 32 ГБ или более
HDMI адаптер/дисплей
1
Программирование и код
Во-первых, убедитесь, что установлена 64-разрядная версия Raspberry Pi OS Bookworm. Эта система не работает на 32-битном Pi OS. Рекомендуется использовать высококачественный модуль камеры версии 3 или выше. for наилучшие результаты.
При появлении запроса введите пароль. После аутентификации вам будет предоставлен доступ к терминалу Raspberry Pi 5.
Примечание:
SSH доступ не является обязательным; также поддерживается прямое соединение с использованием дисплея, клавиатуры и мыши.
Включение скоростей PCIe Gen 3.0
К default Raspberry Pi 5 работает на скоростях Gen 2.0 PCIe. Чтобы включить поколение 3.0:
$ sudo raspi-config
Перейдите в «Дополнительные параметры» → «Скорость PCIE».
Выберите «Да», чтобы включить режим Gen 3.
Выберите «Готово» и при появлении запроса перезагрузите систему.
Установить стек программного обеспечения Hailo
После перезагрузки установите драйверы и инструменты Hailo:
$ sudo apt install hailo-all
Эта команда устанавливает драйвер устройства ядра Hailo, прошивку, HailoRT, приложения Hailo, библиотеки и `rpicam-apps`. Затем перезагрузите систему:
$ sudo restart
Перезагрузитесь, чтобы применить все изменения. Проверьте установку Hailo. После перезагрузки запустите:
$ hailortcli fw-control идентификация
Это гарантирует, что все изменения вступят в силу.
Выполнение на устройстве: 0000:01:00.0
Идентификационная доска
Версия протокола управления: 2
Версия прошивки: 4.17.0
(релиз,приложение,расширенный контекст switch
буфер) Версия регистратора: 0
Название платы: Hailo-8
Архитектура устройства: HAILO8L
Серийный номер: HLDDLBB234500054
Номер детали: HM21LB1C2LAE
Название продукта: HAILO-8L AI ACC M.2 B+M KEY
МОДУЛЬ EXT TMP
Последние пять строк гарантируют, что плата Hailo-8L успешно установлена. В некоторых случаях серийный номер или номер детали может не отображаться, но плата continue будет работать правильно. Проверьте rpicam-hello:
$> rpicam-hello -t 10s # Это запустится
rpicam for 10 секунд, а затем остановитесь
$> rpicam-hello --help # Это отображает
файл справки
После установки всех компонентов установите пакет `rpicam-apps`, чтобы включить функции ускорителя Hailo AI:
$> sudo apt update && sudo apt установить
приложения rpicam
Теперь можно реализовать примеры высокоскоростного обнаружения объектов:
$> rpicam-hello -t 0 --post-process-file /
usr/share/rpi-camera-assets/hailo_yolov6_
вывод.json
$> rpicam-hello -t 0 --post-process-file /
usr/share/rpi-camera-assets/hailo_yolov8_
вывод.json
$> rpicam-hello -t 0 --post-process-file /
usr/share/rpi-camera-assets/hailo_yolov5_
personface.json # Эта команда обнаруживает
лица – полезный for подсчет лиц
$> rpicam-hello -t 0 --post-process-file /
usr/share/rpi-camera-assets/hailo_yolov8_
pose.json # Эта команда обнаруживает человека
позы – полезное for обнаружение падения
Эти команды демонстрируют, как использовать `rpicam-hello` с различными моделями YOLO AI.
Этот каталог содержит два ключевых файла: `setup_env.sh` и `requirements.txt.`
Поскольку для Hailo-8L требуются определенные версии пакета Python, во избежание конфликтов рекомендуется использовать виртуальную среду. Это позволяет for устанавливать необходимые версии пакетов локально, не вмешиваясь в общесистемную среду Python. Следующим шагом будет активация специальной среды, рекомендованной пакетом Hailo-8L.
Шаг 3. Активируйте виртуальную среду
$> источник setup_env.sh
После активации приглашение терминала изменится, указывая на вход в виртуальную среду: (venv_hailo_rpi5_examples) bera@raspberrypi:~/hailo-rpi5-examples $
Команда «git clone» загружает дополнительные утилиты Python for Hailo. Последняя команда pip совершенно необязательна; его можно запустить или пропустить. На этом этапе все программные компоненты, необходимые for системы, должны быть установлены. Обратите внимание, что все эти инструменты относятся к категории программного обеспечения с открытым исходным кодом.
Начните экспериментировать с ускорителем Hailo-8L, используя скрипты Python в каталоге `basic_pipelines`:
Теперь процесс можно перейти к работе с ускорителем Hailo-8L, опробованию некоторых примеров скриптов Python и, в конечном итоге, к созданию индивидуального файла Measure_distance3.py. Два примера скриптов Python уже доступны в подкаталоге Basic_pipelines:
detection_simple.py
pose_estimation.py
Они могут принимать входные данные из заранее определенных источников, таких как файлы MP4, камера Raspberry Pi или камера USB. Пример использования:
$> python Basic_pipelines/detection_
simple.py --input rpicam # С камеры Pi
$> python Basic_pipelines/pose_estimation.
py --input test.mp4 # Из видеофайла
$> python Basic_pipelines/detection_
simple.py --input /dev/video0 # от USB
камера
$> python Basic_pipelines/detection.py
--help # Справка forDetection.py
Чтобы использовать пользовательские модели:
$> python Basic_pipelines/detection.py \
–labels-json resources/barcode-labels.json \
–hef-path resources/yolov8s-hailo8l-barcode.hef \
–входные ресурсы/barcode.mp4
Теория измерения расстояний
Расстояние оценивается путем сравнения известной ширины объекта с его воспринимаемой шириной на захваченном изображении.
В зависимости от модели камеры-обскуры объект, находящийся дальше от камеры, кажется меньше. Если известны фокусное расстояние камеры, реальная ширина объекта и наблюдаемая ширина изображения, расстояние можно рассчитать с помощью подобных треугольников.
Стандартная ширина и ширина default определяются в начале кода.
Модель сегментации `yolov5n_seg_h8l_mz.hef` помогает идентифицировать полные объекты, даже если они частично видны. Сегментированное изображение используется для оценки ширины объекта, которая затем сравнивается с известными размерами для определения расстояния.
# Словарь ширины объекта for расстояние
оценка (в метрах)
OBJECT_WIDTHS = {
«человек»: 0,4, «велосипед»: 0,5, «автомобиль»:
1,8, «мотоцикл»: 0,8, «автобус»: 2,5,
«грузовик»: 2,5, «самолет»: 36,0, «поезд»:
3,2, «лодочка»: 5,0, «светофор»: 0,6,
«пожарный гидрант»: 0,3, «знак остановки»: 0,75,
«кошка»: 0,3, «собака»: 0,6, «лошадь»: 1,2,
«корова»: 1,5, «слон»: 3,2, «медведь»: 1,7,
«зебра»: 1,2, «жираф»: 2,0,
«скамья»: 1,2, «стул»: 0,6, «диван»: 2,0,
«обеденный стол»: 1,8,
«ноутбук»: 0,4, «телевизор»: 1,2
}
DEFAULT_OBJECT_WIDTH = 0,5 # По умолчанию
ширина (в метрах) for неизвестные объекты
FOCAL_LENGTH = 0,5 # Фокусное расстояние в
метров (модуль камеры Raspberry Pi 3 Wide
Спец)
Чтобы запустить сценарий Measure_distance3.py
и захватывать данные с разных камер
источники:
$> python Measure_distance3.py --input
rpicam # Захват данных с камеры Pi
$> python Measure_distance3.py --input /
dev/video0 # Захват данных с камеры USB
Модель yolov5n_seg_h8l_mz.hef поддерживает около 80 классов объектов, но в этой реализации основное внимание уделяется только 26 конкретным объектам, перечисленным в предыдущем словаре. Это объекты for, которым предоставлена стандартная физическая ширина, позволяющая for оценить их расстояние от камеры.
Тестирование
Рис. 3 иллюстрирует метод измерения расстояния, while Рис. 4 и Рис. 5 показывают детали и монтаж штифта.
Рис. 4. Техника измерения расстояния
Включите систему и запустите сценарий. Объекты и расстояния до них будут отображаться в реальном времени.
Рис. 4. Детали контактов Raspberry Pi
Raspberry Pi 5 в сочетании с Hailo-8L AI HAT и питанием от источника питания 5 В, 4 А является идеальным for встраиваемым или стационарным приложением, требующим обнаружения объектов в реальном времени и оценки расстояния.
Рис. 5. Установка камеры и Raspberry Pi
Где можно использовать этот проект?
Эту систему можно использовать for в различных целях, например:
Мониторинг приборной панели автомобиля
Система, установленная над лобовым стеклом, может обнаруживать впереди идущие транспортные средства и пешеходов, оценивать расстояния и предупреждать водителя через case о потенциальных столкновениях или небезопасных дистанциях следования. Он также может интегрировать синтезатор речи, например espeak-ng, для выдачи голосовых рекомендаций через динамик.
Контроль передачи заднего хода с рекомендациями
Установленный в задней части автомобиля, он может обнаруживать близлежащие объекты или людей во время парковки и подавать визуальные/звуковые оповещения или даже запускать механизмы автоматического торможения.
Умный мониторинг входа в дверь
Расположенная у входа система может обнаруживать приближающихся людей, классифицировать их (например, курьеров, известных посетителей или незнакомцев) и оценивать расстояние до них, чтобы обеспечить автоматические действия, включая активацию дверного звонка, освещение или отпирание двери.
Анализ занятости и толпы в зданиях
Его можно использовать для контроля плотности и расстояния между людьми в залах, коридорах или зонах ожидания. Система может активировать системы вентиляции или оповещения о борьбе с скоплением людей, когда люди находятся слишком близко друг к другу или в помещении становится слишком многолюдно.
Системы безопасности склада
Он может обнаруживать движущиеся вилочные погрузчики или персонал и оценивать их близость к зонам ограниченного доступа. Это может помочь вызвать срабатывание сигнализации или замедлить работу автоматизированного оборудования в случае приближения, тем самым повышая безопасность на рабочем месте.
Robot Vision for навигация в помещении
Он используется в AGV (автоматизированных транспортных средствах) или внутренних роботах для определения препятствий и измерения расстояний, обеспечивая более безопасную и эффективную навигацию в помещении.
Наблюдение за школьной зоной или воротами
Система отслеживает присутствие и перемещение детей или опекунов возле школьных ворот и генерирует оповещения или автоматизирует работу ворот на основе обнаруженного поведения и расстояния.
Мониторинг дорожного движения на пунктах взимания платы или мостах
Система определяет типы транспортных средств и измеряет расстояния, чтобы обеспечить автоматизированный сбор платы за проезд, обнаружение перегрузки или анализ плотности движения.
Мониторинг ворот школьного автобуса
Это может помочь наблюдать за входящим транспортом и движением детей вокруг ворот школьного автобуса, обеспечивая более безопасные условия входа и выхода.
Сомнатх Бера — энтузиаст электроники. Он фрилансер и написал несколько статей по всему миру. Реон Саманта — инженер-измеритель из Джадавпурского университета. Он увлекается абстрактным кодированием for и занимается проектированием СБИС.
Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов!
Подробно тут! Жалоба