OpenMV
Щиты
Объектив
Робототехника
Книга
Видео
Скачать
Документы
Форум
OpenMV.io
ГитхабВ области компьютерного зрения искусственный интеллект решает две весьма распространённые задачи: классификация и обнаружение объектов.
Категория:Определение категории изображения, например, относится ли оно к категории «кошка» или «собака».
Обнаружение объектов:Для определения местоположения, количества и размеров нескольких различных объектов на изображении.
В предыдущих видеоруководствах мы объяснили, как использовать OpenMV4 Plus для онлайн-обучения нейронной сети с целью классификации различных объектов. Данное решение позволяет в реальном времени определять, присутствует ли в поле зрения OpenMV изображение конкретного объекта, например, надета ли маска на лицо. Однако оно не позволяет выводить координаты расположения лица или маски, а также количество обнаруженных лиц.
Поскольку задача обнаружения объектов значительно сложнее задачи классификации и требует существенно больших вычислительных ресурсов, она крайне редко реализуется в области микроконтроллеров. Основной микроконтроллер OpenMV — STM32H7. В настоящее время в OpenMV добавлена новая функция, позволяющая выполнять на микроконтроллере задачи, аналогичные обнаружению объектов, с выдающейся производительностью.

Сегодня мы расскажем вамОбучение демонстрирует обнаружение дорожных знаков в реальных дорожных условиях, выявляя дорожные знаки на наших реальных дорогахнапример, запрет на подачу звуковых сигналов, запрет на стоянку, ограничение скорости до 80 км/ч и т. д., а не лабораторная среда без помех.
Весь проект, включая весь код и модели, можно просмотреть по следующему адресу: https://book.openmv.cc/project/traffic-sign.html
Как известно, реальные условия чрезвычайно сложны, особенно дорожная обстановка, где присутствует множество помех. Мы использовали смартфоны и другие устройства для сбора изображений дорожных знаков в реальных условиях, а затем обучили модель на онлайн-платформе EdgeImpulse нашего партнёра OpenMV: было размечено примерно 270 изображений, а время обучения составило всего 10 минут. Точность полученной модели по метрике F1 достигает 92 %, а частота кадров при её работе на платформе OpenMV составляет 10 кадров в секунду, что обеспечивает как высокую плавность, так и высокую точность.
Вы можете обучить систему распознаванию любых объектов по нашим видеоруководствам: различных цифр, фруктов, знаков, деталей или даже любых специфических неправильных объектов — при этом система будет определять количество, координаты и наименования соответствующих объектов.
Внимание:В этом видеоруководстве объясняется функция обнаружения целевых точек с использованием нейронных сетей, которая поддерживается как OpenMV4 H7 Plus, так и OpenMV4 H7. Обученная модель обнаружения целевых точек FOMO имеет небольшой объём, высокую эффективность и занимает всего несколько десятков килобайт. Даже при том, что объём оперативной памяти OpenMV4 H7 меньше, чем у версии Plus, мы можем обучить немного более компактную модель для её работы на платформе OpenMV4.
Ниже приводится краткое описание принципа работы:
Основное проектное решение детекции точек цели FOMO на платформе OpenMV основано на идее о том, что для решения многих задач обнаружения объектов фактически не требуется определять размеры объектов, а достаточно лишь знать их положение на изображении. Как только положение объекта становится известным, можно выполнять последующие операции, например управление мобильной платформой с помощью OpenMV для движения к обнаруженному объекту, посадку беспилотного летательного аппарата в заданную точку или управление манипулятором для захвата конкретного целевого объекта.
Модель FOMO — это модель, специально разработанная EdgeImpulse для среды микроконтроллеров; в отличие от обычных моделей обнаружения объектов она способна определять только положение и количество объектов, но не их точные размеры.
Основной принцип модели FOMO чрезвычайно прост и гибок. Сначала изображение разбивается на блоки размером 8×8 пикселей. Для изображения с разрешением 96×96 получается сетка размером 12×12 ячеек; для изображения с разрешением 360×360 — сетка размером 40×40 ячеек. Затем к каждой ячейке независимо применяется классификация изображений.
По сравнению с YOLO V5 или MobileNet SSD FOMO демонстрирует значительно более высокую эффективность при обнаружении большого количества мелких объектов. Обнаружение целевых точек с помощью FOMO в 30 раз быстрее, чем с помощью MobileNet SSD.
Если объекты, подлежащие обнаружению, имеют схожие размеры — например, распознаваемые маркеры практически одинаковы по габаритам, а не представляют собой одновременно чрезвычайно крупный и чрезвычайно мелкий объекты, — эффективность FOMO будет выше.
Для обучения нейронной сети с целью обнаружения целевых объектов в OpenMV используется онлайн-платформа EdgeImpulse, что включает следующие основные этапы: сбор и загрузка набора изображений, разметка целевых объектов, обучение модели, тестирование модели, развертывание модели.
* Сбор набора изображений: фотографирование и сбор изображений конкретных объектов в тех реальных условиях, в которых они будут распознаваться. Изображения собираются в тех же условиях, в которых будет осуществляться распознавание; реальная среда обучения и реальная среда обнаружения практически совпадают, что обеспечивает лучшие результаты.
* Цель аннотирования: выделить в нашем наборе данных каждый объект, подлежащий обнаружению, с помощью ограничивающего прямоугольника и сопоставить его с соответствующим названием объекта для последующего обучения, определения местоположения объектов и их названий.
* Обучение модели: после завершения разметки выполняется обучение модели с использованием параметров свёрточной нейронной сети, разработанных нами.
* Тестирование модели: мы тестируем модель, обученную на основе имеющихся данных; если результаты неудовлетворительны, соответствующим образом расширяем обучающий набор данных или корректируем параметры обучения и продолжаем процесс обучения до тех пор, пока не получим удовлетворяющую нас модель.
*Развертывание: Для запуска достаточно поместить обученный файл модели во встроенный USB-накопитель OpenMV.
Ниже приведена демонстрация конкретного процесса:
01. Сбор и загрузка набора изображений
1. Во-первых, войдите на сайт edgeimpulse.com, выберите «Войти», введите название нового проекта и выберите «Изображения» → «Классификация нескольких объектов».

II. Выберите изображение для загрузки. Существует несколько способов получения набора данных изображений:
1. Реальное время захвата изображений с помощью OpenMV IDE. Используйте инструмент «Редактор наборов данных», встроенный в OpenMV IDE, чтобы создать новый набор данных и выполнять захват изображений в реальном времени; подробную информацию см. в нашем предыдущем видеоруководстве по классификации объектов и распознаванию масок.

2. Изображения, загруженные из сети или сделанные непосредственно на мобильное устройство. Предпочтительно, чтобы они соответствовали реальным условиям, в которых проводится ваша проверка. Мы подготовили набор из четырёх-пятисот изображений дорожных знаков «Стоянка запрещена», «Сигнал запрещён» и «Ограничение скорости — 80 км/ч». Каждое изображение было получено непосредственно на реальных дорогах. Данный набор данных доступен для скачивания на нашем сайте GitHub и на сайте с обучающими материалами.
02. Обозначение целевых объектов
Для каждой категории загружается около 100 изображений; после завершения загрузки изображений выполняется их аннотирование, в ходе которого указываются местоположение и категория объектов, подлежащих распознаванию.


03. Обучение модели
Настройте параметры обучения: измените разрешение на 128 × 128; все остальные параметры оставьте по умолчанию и нажмите «Сохранить».

Создание функций: три цвета соответствуют трём маркерам.

Настройте параметры обучения для задачи обнаружения объектов. Количество эпох обучения по умолчанию составляет 60, скорость обучения — 0,001, доля проверочного набора данных — 20 %. Активируйте аугментацию данных. В качестве модели для трансферного обучения можно выбрать модель MobileNetV2 0,35 или MobileNetV2 0,1 по умолчанию. Примечание: использование SSD недопустимо, поскольку данная архитектура не поддерживается на платформе OpenMV.
Выберите «Начать обучение». После завершения обучения значение метрики F1 для полученной нейронной сети составит 91,2 %. Мы можем сохранить текущую версию.

Выберите хранилище, введите описание и нажмите «Сохранить».

04. Развертывание модели
Экспортируйте файл обученной модели. Достаточно экспортировать только библиотеку: выберите OpenMV и нажмите Build — начнётся развертывание и экспорт модели.

Он автоматически загрузит модель, которую мы экспортировали; здесь представлена модель, обученная на 300 изображениях, и весь процесс обучения завершён.

05. Запуск модели
Запуск модели на OpenMV:
Подключите OpenMV Plus, сохраните три обученных файла во встроенный USB-накопитель OpenMV и откройте файл ei_object_detection.py в среде разработки OpenMV IDE. Нажмите кнопку запуска; результаты выполнения отобразятся в последовательном терминале.


Эта функция также работает на плате OpenMV4. Поскольку на плате OpenMV4 отсутствует внешняя микросхема SDRAM, объём оперативной памяти меньше; поэтому мы можем уменьшить размер модели, чтобы обеспечить её работу на плате OpenMV4.
Существует два способа уменьшить объем модели:
1. Уменьшить разрешение при обучении, изменив разрешение с 128×128 на 96×96.
II. Изменение используемой модели переносного обучения: замена MobileNetV2 0.35 на MobileNetV2 0.1.
В заключение, обученный новый файл следует поместить в OpenMV4 для выполнения.
Выше приведено руководство по обнаружению целевых точек. С нетерпением ожидаем ваших результатов!

ИИ-сторож на базе OpenMV: автоматическое уведомление о незакрытых объектах в ключевых местах
Автоматически определяет, не оставалась ли дверь в ключевых местах открытой в течение длительного времени, и своевременно уведомляет об этом.

Срабатывание тревоги при выходе человека за пределы зоны: OpenMV демонстрирует «чувство безопасности границы»
Обнаружение нарушения границы персоналом или оборудованием с помощью виртуальной охранной линии.

Появилась система «ИИ-инспектор по городскому хозяйству»: автоматическая система распознавания несанкционированной торговли на основе платформы OpenMV
Автоматическое распознавание деятельности по захвату проезжей части для содействия повседневному управлению городом.

Неправильное размещение газовых баллонов? Используйте OpenMV для автоматической активации предупреждения об опасности
Автоматическое распознавание несанкционированных мест размещения газовых баллонов и своевременное выявление потенциальных угроз безопасности при использовании газа.

Выполняете работы под напряжением без диэлектрических перчаток? OpenMV немедленно подаст сигнал тревоги!
Автоматическое распознавание того, надевают ли рабочие изолирующие перчатки, для обеспечения безопасного выполнения работ.

Использование интеллектуальной камеры OpenMV для распознавания дефектов на поверхности алюминиевых листов в режиме реального времени
Онлайн-идентификация дефектов на поверхности алюминиевых листов, таких как царапины и вмятины, для поддержки контроля качества.