Оглавление:
Видео: Демоверсии Sipeed MaiX Bit OpenMV - Компьютерное зрение: 3 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
Это вторая статья из серии о Sipeed AI на платформе микроконтроллеров Edge. На этот раз я напишу о MaiX Bit (ссылка на Seeed Studio Shop), небольшой макетной плате меньшего размера. Его характеристики очень похожи на MaiX Dock, плату, которую я использовал в прошлом уроке, поскольку они используют тот же чип, Kendryte K210.
Мы собираемся использовать прошивку micropython, чтобы попробовать некоторые демонстрации OpenMV. Вот описание с домашней страницы OpenMV:
Проект OpenMV направлен на создание недорогих расширяемых модулей машинного зрения на базе Python и нацелен на то, чтобы стать «Arduino машинного зрения».… Python значительно упрощает работу с алгоритмами машинного зрения. Например, метод find_blobs () в коде находит цветные капли и возвращает список 8-значных объектов, представляющих каждую найденную цветовую каплю. В Python перебор списка объектов, возвращаемых функцией find_blobs (), и рисование прямоугольника вокруг каждого цветного пятна легко выполняется всего за две строчки кода.
Таким образом, несмотря на то, что MaiX Bit имеет специальный ускоритель нейронной сети, иногда может быть проще просто использовать жестко запрограммированные алгоритмы OpenMV для выполнения работы или использовать их вместе друг с другом.
Некоторые варианты использования, которые приходят мне в голову:
1) Обнаружение линии для бота-последователя линии
2) Обнаружение светофоров с обнаружением круга и цвета
3) Использование функции распознавания лиц для поиска лиц для распознавания лиц (с DNN)
Репозиторий Github для этой статьи
Шаг 1. Прошивка Flash Micropython
Прежде всего, нам нужно установить прошивку micropython на нашу плату. Предварительно скомпилированный двоичный файл включен в репозиторий github для этой статьи вместе с kflash.py (флэш-утилитой). Если вы хотите скомпилировать прошивку из исходного кода, просто загрузите исходный код с https://github.com/sipeed/MaixPy, установите набор инструментов и скомпилируйте исходный код в файл maixpy.bin. Подробные инструкции по сборке можно найти здесь.
Прошить двоичный файл с помощью
sudo python3 kflash.py kpu.bin
После успешной прошивки переходите к следующему шагу.
Шаг 2: Подключитесь к MaiX Bit
Теперь наш MaiX Bit должен быть доступен через последовательное соединение USB со скоростью 115200 бод. Вы можете использовать свое любимое программное обеспечение для последовательной связи или просто команды cat и echo, в зависимости от ваших потребностей. Я использовал экран для последовательной связи и считаю его очень удобным.
Команда для установления сеанса последовательной связи с экраном:
экран sudo / dev / ttyUSB0 115200
где / dev / ttyUSB0 - адрес вашего устройства.
Возможно, вам потребуется нажать кнопку сброса на микроконтроллере, чтобы увидеть приветственное сообщение и подсказку интерпретатора Python.
Шаг 3: Запустите демонстрацию
Теперь вы можете получить доступ к режиму копирования, нажав Ctrl + E и скопировав демо-коды. Чтобы запустить их, нажмите Ctrl + D в режиме копирования.
Если вы не хотите записывать видео, вам нужно прокомментировать строки видеозаписи. В противном случае код вызовет исключение, если SD-карта не вставлена
Вот краткое описание каждой демонстрации:
Найти круги - использует функцию find_circles из OpenMV. Требуется дополнительная настройка для вашего конкретного приложения, в частности порогового значения (контролирует, какие круги обнаруживаются при преобразовании Хафа. Возвращаются только круги с величиной больше или равной пороговому значению) и значения r_min, r_max.
Найти прямоугольники - использует функцию find_rects из OpenMV. Вы можете поиграть с пороговым значением, но значение, которое у меня есть в демонстрации, неплохо подходит для поиска прямоугольников.
Найти лица, найти глаза - использует функцию find_features с Каскадом Хаара для обнаружения глаз и фронтального лица на изображении. Вы можете поиграть с пороговыми значениями и значениями шкалы для получения правильного компромисса между скоростью и точностью.
Найти бесконечные строки - использует функцию find_lines для поиска всех бесконечных строк в изображении с помощью преобразования Хафа.
Определить цвет - использует функцию get_statistics для получения объекта процентиля, а затем преобразует средние значения кортежа LAB в кортеж значений RGB. Я сам написал этот пример, и он работает довольно хорошо, но имейте в виду, что на результаты определения цвета будут влиять условия окружающего освещения.
Вы можете найти еще много интересных демонстраций в репозитории OpenMV на github! Они в основном совместимы с MaiX Bit micropython, единственное, что вам нужно помнить, это добавить sensor.run (1) после установки pixformat и frameize.
Удачных экспериментов с кодом OpenMV. Если у вас есть какие-либо вопросы или вы хотите поделиться некоторыми из ваших интересных результатов, не стесняйтесь обращаться ко мне на Youtube или LinkedIn. А теперь, извините, я сделаю роботов!
Рекомендуемые:
Обнаружение объектов с помощью Sipeed MaiX Board (Kendryte K210): 6 шагов
Обнаружение объектов с помощью досок Sipeed MaiX (Kendryte K210): в продолжение моей предыдущей статьи о распознавании изображений с помощью досок Sipeed MaiX Boards я решил написать еще один учебник, посвященный обнаружению объектов. Недавно появилось интересное оборудование с чипом Kendryte K210, в том числе S
Arduino Nano - MMA8452Q 3-Axis 12-bit / 8-bit Digital Accelerometer Tutorial: 4 шага
Arduino Nano - MMA8452Q 3-осевой 12-битный / 8-битный цифровой акселерометр Учебное пособие: MMA8452Q - это интеллектуальный, маломощный, трехосевой, емкостный, микромашинный акселерометр с разрешением 12 бит. Гибкие возможности программирования пользователем предоставляются с помощью встроенных функций в акселерометр, конфигурируемых на два прерывания
Рюкзак №1: Камера OpenMV: 7 шагов
Рюкзак №1: Камера OpenMV: Рюкзаки SPIKE Prime - это расширения для LEGO Education SPIKE Prime. Камера Open MV - это мозг для рюкзака камеры, который позволяет интегрировать возможности камеры Open MV по обработке изображений и машинному зрению в LEGO SPIKE Prime. Мы все
Google Glass для бедняков / Помощь тем, у кого есть туннельное зрение: 5 шагов (с картинками)
Google Glass для бедняков / Помощь для тех, у кого есть туннельное зрение: Аннотация: этот проект транслирует живое видео с камеры «рыбий глаз» на носимый хедз-ап дисплей. Результатом является более широкое поле зрения на меньшей площади (дисплей сопоставим с 4-дюймовым экраном на расстоянии 12 дюймов от вашего глаза и выводит изображение с разрешением 720
Действительно простой / легкий / несложный способ заставить людей / людей / животных / роботов выглядеть так, будто у них действительно крутое / яркое тепловое зрение (цвет на ваш выбор) с помощью GIMP: 4 шага
Действительно простой / легкий / несложный способ заставить людей / людей / животных / роботов выглядеть так, будто у них действительно крутое / яркое тепловое зрение (цвет на ваш выбор) с помощью GIMP: прочтите … заголовок