OpenMV
Щити
Об'єктив
Робототехніка
Книга
Відео
Завантажити
Документи
Форум
OpenMV.io
GithubУ сфері комп’ютерного зору із застосуванням штучного інтелекту є дві дуже поширені задачі: класифікація та виявлення об’єктів.
Категорія:Визначити, до якої категорії належить зображення, наприклад, чи це кіт, чи собака.
Виявлення об’єктів:Використовується для визначення розташування, кількості та розмірів кількох різних об’єктів на зображенні.
У попередніх відеоуроках ми розглянули, як за допомогою OpenMV4 Plus здійснювати онлайн-навчання нейронної мережі для класифікації різних об’єктів. Це дозволяє в реальному часі визначати, чи є на зображенні, отриманому через OpenMV, певний об’єкт — наприклад, чи носить людина маску. Однак ця функція не забезпечує виведення координат розташування облич або масок, а також кількості облич.
Оскільки виявлення об’єктів є значно складнішим і ресурсоємним завданням порівняно з класифікацією, воно дуже рідко використовується в галузі мікроконтролерів. Основний мікроконтролер OpenMV — це STM32H7. Зараз у OpenMV додано нову функцію, яка дозволяє виконувати завдання, подібні до виявлення об’єктів, безпосередньо на мікроконтролерах, і її продуктивність є надзвичайно високою.

Сьогодні ми розповімо вамНавчання демонструє виявлення дорожніх знаків у реальних умовах дорожнього руху, виявляючи дорожні знаки на наших справжніх дорогахнаприклад, заборона сигналізації, заборона стоянки, обмеження швидкості до 80 км/год тощо, а не лабораторне середовище без перешкод.
Ви можете переглянути весь вміст проекту за наступною адресою, у тому числі весь код і моделі: https://book.openmv.cc/project/traffic-sign.html
Як відомо, реальні умови є дуже складними, особливо дорожнє середовище, де наявна велика кількість перешкод. Ми зробили знімки дорожніх знаків у реальних умовах за допомогою смартфонів та інших пристроїв, а потім використали онлайн-платформу EdgeImpulse нашого партнера OpenMV для навчання моделі: було розмічено приблизно 270 зображень, а сам процес навчання тривав лише 10 хвилин. Точність отриманої моделі, виміряна за метрикою F1-score, становить 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, виберіть «Увійти», введіть назву нового проекту та виберіть «Зображення» → «Класифікувати кілька об’єктів»

Другий крок. Виберіть зображення для завантаження. Існує кілька способів отримання набору даних із зображень:
1. Здійснюйте реальний збір зображень за допомогою OpenMV IDE. За допомогою інструменту «Редактор набору даних», що входить до складу OpenMV IDE, створіть новий набір даних для реального збору зображень. Детальніше це описано у нашому попередньому відеопідручнику з класифікації об’єктів та розпізнавання масок.

2. Зображення, завантажені з інтернету, або фотографії, зроблені за допомогою мобільного телефону. Бажано, щоб вони відповідали реальному середовищу, у якому проводиться виявлення. Ми підготували чотири-п’ятсот зображень дорожніх знаків, що забороняють стоянку, забороняють сигналізацію та встановлюють обмеження швидкості 80 км/год. Кожне зображення отримано на справжніх дорогах. Цей набір даних доступний для завантаження на нашому GitHub та навчальному веб-сайті.
02. Позначення цільових об’єктів
Для кожної категорії завантажується приблизно 100 зображень; після завантаження зображень необхідно виконати їх розмітку, вказавши положення та категорію об’єктів, які потрібно розпізнати.


03. Навчання моделі
Встановіть параметри навчання: змініть роздільну здатність на 128 × 128; усі інші параметри залиште за замовчуванням і натисніть «Зберегти».

Створення ознак: три кольори відповідають трьом позначкам.

Налаштування параметрів навчання для виявлення цілей. Кількість епох навчання за замовчуванням — 60, швидкість навчання — 0,001, частка набору даних для перевірки — 20 %. Увімкніть аугментацію даних. Для перенесення навчання можна обрати модель MobileNetV2 0,35 або MobileNetV2 0,1 за замовчуванням. (Увага: не використовуйте SSD, оскільки 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.
Друга. Змінити використовувану модель перенесеного навчання: замінити MobileNetV2 0.35 на MobileNetV2 0.1.
Нарешті, розмістіть навчений новий файл у OpenMV4 для виконання.
Вище наведено навчальний посібник із виявлення цільових точок. Очікуємо на ваші результати!

AI-охоронець на основі OpenMV: автоматичне сповіщення про незакриті об’єкти в ключових місцях
Автоматично визначає, чи двері важливих приміщень залишаються відкритими протягом тривалого часу, і негайно надсилає сповіщення.

Попередження про виходу осіб за межі: OpenMV забезпечує відчуття безпечної зони
Виявлення поведінки виходу осіб або обладнання за межі віртуальної охоронної лінії.

З’явився «AI-інспектор з муніципального нагляду»: автоматизована система розпізнавання незаконної торгівлі на вулиці, побудована на базі OpenMV
Автоматичне розпізнавання порушень правил ведення підприємницької діяльності на проїзній частині для підтримки повсякденної міської управління.

Неправильне розміщення газових балонів? Використовуйте OpenMV для автоматичного спрацьовування попередження про небезпеку
Автоматичне виявлення неправильного розташування газових балонів та попереднє виявлення потенційних небезпек, пов’язаних із газом.

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

Використання інтелектуальної камери OpenMV для реального часу виявлення дефектів на поверхні алюмінієвої пластини
Онлайн-виявлення дефектів на поверхні алюмінієвих листів, таких як подряпини та вмятини, для підтримки контролю якості.