AI Камеры повсюду: они отслеживают людей, обнаруживают объекты и активируют передовые системы помощи водителю в автомобилях. Но большинство из них — слишком громоздкие и энергоемкие for компактные приложения, такие как дроны, носимые устройства или системы отслеживания дикой природы.
Это устройство демонстрирует, как машинное обучение можно внедрить в крошечный корпус — идеальное for место, где размер, мощность и интеллект в реальном времени имеют значение.
Используя TensorFlow.js с моделью COCO-SSD, камера идентифицирует людей, транспортные средства и животных непосредственно в браузере, сочетая интеллектуальное программное обеспечение с минимальным оборудованием. Это послужило основой для for при разработке одной из самых маленьких потоковых камер AI.
Рис. 1 показано, как автор обнаруживает человека и горшечное растение во время тестирования.
Рис. 1: Автор обнаружил человека и растение в горшке во время тестирования
Компактные камеры AI предлагают явные преимущества в различных отраслях.
В дронах снижается полезная нагрузка while, обеспечивающая обнаружение препятствий и отслеживание объектов. В носимых устройствах они незаметно интегрируются в очки или бейджи, обеспечивая визуальную обратную связь в режиме реального времени. В домашней безопасности они обеспечивают ненавязчивое наблюдение. Для наблюдения за дикой природой их размер позволяет размещать их в труднодоступных или скрытых местах, например, в скворечниках. В робототехнике они служат визуальными данными for для навигации в ограниченной среде.
Для этих вариантов использования требуются интеллектуальные, маломощные и исключительно компактные устройства. Была необходима плата для разработки, отвечающая всем трем критериям — способная захватывать кадры, потоковое видео и занимающая минимальную площадь.
IndusBoard Coin V2 диаметром всего 3,3 см (приблизительно размером с монету) была выбрана for из-за компактного дизайна и встроенных датчиков. В таблице спецификации перечислены используемые компоненты; На рис. 2 показан собранный прототип.
Рис. 2: Авторский прототип
Принципиальная схема
Рис. 3 показано подключение между платой IndusBoard Coin и модулем камеры OV2640. Ключевые контакты GPIO включают в себя:
XCLK (GPIO 44): обеспечивает тактовый сигнал частотой 20 МГц
PCLK (GPIO 39): синхронизирует данные пикселей
VSYNC (GPIO 21): указывает начало нового кадра
HREF (GPIO 1): обозначает начало каждой строки
От Y2 до Y9 (GPIO 7, 3, 10, 4, 42, 5, 41, 6): перенос 8-битных данных пикселей
SDA (GPIO 8) и SCL (GPIO 9): линии связи I²C for настройка камеры
СБРОС (GPIO 2): при необходимости сбрасывает модуль камеры
Рис. 3: Принципиальная схема
После установления соединений IndusBoard функционирует как сервер Wi-Fi. Он захватывает кадры с OV2640, сжимает их в формат JPEG и передает видеопоток на подключенный телефон или компьютер.
Для обнаружения объектов в реальном времени браузерное приложение TensorFlow.js, использующее модель COCO-SSD, накладывает ограничивающие рамки на обнаруженные объекты, такие как люди, животные и транспортные средства.
Технические детали: контакты, DVP и PSRAM
Камера OV2640 обменивается данными через цифровой видеопорт (DVP), передавая данные изображения по восьми параллельным линиям вместе с сигналами синхронизации. Этот интерфейс хорошо интегрируется с платформой ESP32. PSRAM IndusBoard Coin объемом 4 МБ имеет решающее значение для for буферизации данных изображения, поскольку встроенных 320 КБ SRAM недостаточно для for обработки видео в реальном времени. PSRAM обеспечивает непрерывный захват кадров и надежную потоковую передачу без падения производительности.
Программирование беспроводной камеры AI
Исходный код написан на Arduino IDE. Установив поддержку платы ESP32, начните с подключения необходимых библиотек WebServer и Camera. Они позволяют IndusBoard работать в качестве локального веб-сервера for прямой трансляции. Сопоставление выводов GPIO определяется в начальном разделе кода, как показано на рис. 4.
Рис. 4. Фрагмент исходного кода, показывающий конфигурацию контактов и включение библиотеки
Рис. 5: Wi-Fi Раздел ввода SSID и пароля в коде
Впоследствии введите сетевые учетные данные Wi-Fi — SSID и пароль — в код, чтобы включить беспроводное соединение. Это позволяет получить доступ к видеопотоку через локальную сеть. На рис. 5 показано, где вводить эти учетные данные в коде.
Тестирование
После сборки, как показано на рис. 3, и прошивки с помощью Arduino IDE, устройство получает питание и контролируется через последовательный монитор для получения адреса IP. Затем этот адрес вводится в веб-браузере для доступа к прямой трансляции.
Рис. 6. Обнаружение телевизора и растения в горшке в режиме реального времени
Во время тестирования камера успешно обнаружила игрушечный автомобиль, домашнее животное и человека. Над обнаруженными объектами появились ограничивающие рамки. Лучшее освещение повысило точность обнаружения, а регулировка порога достоверности помогла снизить количество ложных срабатываний.
Из-за ограничений пропускной способности Wi-Fi наблюдались периодические задержки потоковой передачи, но общая производительность подтвердила возможность обнаружения объектов в реальном времени на устройстве такого масштаба. На рис. 6 показано, как камера одновременно идентифицирует телевизор и растение в горшке.
Бонус: Ниже вы можете посмотреть пошаговое видеоруководство по изготовлению этой беспроводной камеры
Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов!
Подробно тут! Жалоба