v1.0.0-beta¶
v1.0.0-beta — это первый (бета) выпуск прошивки OpenMV — первая публичная сборка для OpenMV Cam. Он закладывает фундамент, на котором строится всё последующее: среда выполнения скриптов MicroPython на OpenMV Cam с STM32F4, API камеры sensor, библиотека машинного зрения image и OpenMV IDE для разработки в реальном времени. Поскольку это первый выпуск, переходить не с чего — данная запись описывает, что было реализовано в первоначальной прошивке.
Ключевые моменты¶
MicroPython на OpenMV Cam — запускайте скрипты Python на камере через USB с интерактивным REPL и интерфейсом отладки в IDE.
Захват с камеры — модуль
sensor: настройте формат пикселей / разрешение / частоту кадров и захватывайте кадры с помощьюsnapshot().Машинное зрение — библиотека
image: обнаружение цветных блобов, рисование, фильтры, сопоставление шаблонов, обнаружение лиц по каскадам Haar и ключевые точки.OpenMV IDE — настольная IDE с просмотром буфера кадра в реальном времени, редактором кода и обновлением прошивки прямо из IDE.
Аппаратное обеспечение — оригинальная OpenMV Cam (STM32F4) с камерами OmniVision OV9650 / OV2640, поддержка SD-карты и WiFi-шилда.
Новые возможности¶
Скрипты и модули:
Среда выполнения MicroPython в качестве основы прошивки, с выполнением скриптов на камере через интерфейс отладки USB и интерактивным REPL.
Модуль
sensor—set_pixformat()/set_framesize()/set_framerate(), управление потолком усиления / яркостью / контрастностью / усилением,reset(),snapshot()и горизонтальное отражение / вертикальный переворот — плюс константы датчика и разрешения.Модуль машинного зрения
image(imlib), предоставляющий объекты изображений (с протоколом буфера Python) и нижележащий уровень обработки изображений.Модуль
time/clockдля измерения времени и FPS.Ранние периферийные модули —
led(RGB-светодиод),spi,gpio(ввод-вывод по выводам с регистрацией внешних прерываний),uart, аппаратныйrng, таймер systick, а такжеfile/selectдля файловой системы.Сетевые возможности через
socket/wlan(WiFi CC3000), драйвер дисплеяlcd, модуль тепловизионного датчикаmlx90620и запись видео в AVI/MJPEG.
Обработка изображений:
Захват кадров с камеры в динамически выделяемый буфер кадра.
Обнаружение цветных блобов (заливка) и пороговая обработка в цветовых пространствах LAB/XYZ (с таблицами преобразования RGB↔LAB).
Примитивы рисования (линия, строка/шрифт, окружность), фильтры (эрозия / дилатация / медианный / инверсия / бинаризация / порог), масштабирование изображения (билинейное), извлечение подизображения, blit и альфа-смешивание.
Сопоставление шаблонов (с сохранением/загрузкой шаблона), обнаружение лиц/объектов по каскадам Haar методом Виолы-Джонса (загружаемые каскады + конвертер каскадов OpenCV), каскад LBP и детектор глаз, обнаружение ключевых точек FAST / SURF / FREAK и сопоставление дескрипторов, интегральные изображения и обнаружение движения.
Кодирование JPEG (с управлением качеством), сохранение изображений в PPM / PGM / PNG / raw и кодирование видео AVI/MJPEG.
IDE и инструментарий:
Настольное приложение OpenMV IDE — просмотр буфера кадра в реальном времени с FPS, редактор кода (открыть / создать / сохранить / сохранить как, недавние файлы, встроенное меню примеров), подключение / сброс / автоподключение и загрузка/сохранение конфигурации.
Обновление прошивки прямо из IDE по DFU, утилита
pydfuна чистом Python и USB-команда принудительного перехода в загрузчик; хост-библиотека/протоколopenmv.py; автономный просмотрщик буфера кадра и инструмент для каскадов; а также правила udev для Linux.
Прочие изменения и улучшения¶
Встроенные примеры скриптов: обнаружение блобов, обнаружение / отслеживание лиц, SURF / ключевые точки, сопоставление шаблонов, LCD, просмотрщик буфера кадра, blit, MJPEG-стример, запись AVI, эхо-сервер, FPS, а также демонстрации JPEG / записи изображения.
Поддержка аппаратного обеспечения и плат¶
OpenMV Cam — STM32F4xx (STM32F407 / F429) на ранних ревизиях оборудования, с CMSIS + периферийным/Cube HAL для STM32 и CMSIS-DSP.
Камеры — OmniVision OV9650 и OV2640 (SCCB/I2C, управление стабилизатором) через HAL датчика, плюс тепловизионный ИК-датчик MLX90620; разрешения от QQCIF/QCIF до SVGA/UXGA при частоте до 30 FPS.
Хранение / подключение — SD-карта (SPI и SDIO) с FatFS, внутренняя файловая система во флеш-памяти, SDRAM (буфер кадра в SDRAM), USB OTG FS (отладка + DFU), WiFi CC3000 (WiFi / BLE-шилды), ИК-светодиод, а также программный/аппаратный I2C и SPI с DMA.
Несовместимые изменения API¶
Отсутствуют. v1.0.0-beta — это первый (бета) выпуск прошивки OpenMV — нет предыдущего выпуска, с которым можно нарушить совместимость. Последующие выпуски документируют свои несовместимые изменения относительно предшественника; см. остальную часть журнала изменений.