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.

  • Модуль sensorset_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 — нет предыдущего выпуска, с которым можно нарушить совместимость. Последующие выпуски документируют свои несовместимые изменения относительно предшественника; см. остальную часть журнала изменений.