Оглавление:

Демоверсии Sipeed MaiX Bit OpenMV - Компьютерное зрение: 3 шага
Демоверсии Sipeed MaiX Bit OpenMV - Компьютерное зрение: 3 шага

Видео: Демоверсии Sipeed MaiX Bit OpenMV - Компьютерное зрение: 3 шага

Видео: Демоверсии Sipeed MaiX Bit OpenMV - Компьютерное зрение: 3 шага
Видео: MaixPy Dock, комплект машинного обучения за 20 долларов | Openbox, настройка и примеры 2024, Ноябрь
Anonim
Image
Image

Это вторая статья из серии о 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

Подключиться к MaiX Bit
Подключиться к MaiX Bit

Прежде всего, нам нужно установить прошивку 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. А теперь, извините, я сделаю роботов!

Рекомендуемые: