OpenMV Cam: полное техническое руководство по умным камерам машинного зрения
Умные камеры машинного зрения — системы со встроенными матрицами, захватывающие изображения и преобразующие их в точные электрические данные. На основе цифровых фильтров генерируют описание событий и принимают решения. OpenMV Cam — пример такой камеры: низкая стоимость, интерфейсы связи, линии I/O, программирование на Python.
Что такое OpenMV?
OpenMV — открытый проект 저렴ной программируемой камеры машинного зрения на MicroPython. Цель: сделать машинное зрение доступным для обучения и прототипирования.
Программируется на MicroPython (Python 3). Обширные функции обработки изображения и ML:
- Запись видео GIF / MJPEG
- AprilTags (маркеры ориентации)
- Декодирование QR-кодов и штрих-кодов
- Цветовое отслеживание (color tracking)
- Дескрипторы ключевых точек (keypoints)
- Детекция лиц (face detection)
OpenMV IDE (на базе Qt Creator)
Кроссплатформенная IDE для OpenMV камер:
- Просмотр frame buffer камеры в реальном времени
- Управление настройками сенсора (экспозиция, баланс белого и т.д.)
- Загрузка скриптов на камеру по USB (VCP), BLE, Wi-Fi, UART
- Инструменты обработки: ключевые точки, пороги, теги, формы
OpenMV Cam — описание
Определение
OpenMV Camera — мощная микроконтроллерная плата с программируемой камерой на MicroPython.
Функции
- Запуск алгоритмов машинного зрения на камере: детекция лиц, отслеживание цветов, поиск маркеров и т.д.
- Встроенная периферия: легкое управление I/O пинами в реальном мире. Триггеры: внешние события → захват фото/видео / запуск алгоритмов.
- Программирование на высокоуровневом MicroPython вместо C/C++ — легкая работа со сложными структурами данных и выходами ML алгоритмов.
OpenMV Cam M7 (подробнее)
Определение
OpenMV Cam M7 — компактная микроконтроллерная плата низкого потребления для реализации машинного зрения в реальном мире (STM32F765VI, Cortex-M7 @ 216 MHz).
Функции
Аналогичны базовой OpenMV Cam: детекция цветов, лиц, тегов, запись видео, TensorFlow Lite для микроконтроллеров.
Характеристики OpenMV Cam (на базе Cortex-M7)
- 12-битный ADC и 12-битный DAC
- 2 мощных ИК-светодиода (850 нм) + RGB LED
- 10 I/O пинов: PWM, прерывания, 3 пина для сервоконтроля
- SPI до 54 Мбит/с — легкий стриминг изображений
- I/O логика 3,3 В (не толерантны к 5 В!)
- 216 МГц, 2 МБ внешней Flash, 512 КБ RAM
- Сенсор OV7725: 320×240 16-бит или 640×480 8-бит grayscale @ 30 FPS
- Интерфейсы: UART (TX/RX), CAN, I2C — для сенсоров и МК
- Стандартный M12 маунт объектива (2,8 мм в комплекте), слот microSD (100 МБ/с)
- Можно докупать профильные объективы (теле, широкоугольные, фиш-ай)
- USB Full Speed (12 Мбит/с): виртуальный COM порт (VCP) + USB Mass Storage (как флешка)
Библиотека удаленного интерфейса (RPC — Remote Python/Procedure Call)
Встроенная RPC библиотека позволяет подключать OpenMV Cam к:
- Микроконтроллерам (Arduino, ESP32, STM32)
- Однотплатникам (Raspberry Pi, BeagleBone, SBC)
- Компьютерам (PC)
Транспорты RPC (скорость):
- Wi-Fi (через Wi-Fi shield) — до 12 Мбит/с
- USB VCP — до 12 Мбит/с
- CAN bus — до 1 Мбит/с
- SPI — до 54 Мбит/с (40/80 Мбит/с на коротких проводах)
- I2C — 1 Мбит/с (с pull-up)
- UART (Async Serial) — 7,5 Мбит/с
Через RPC: стриминг JPG/RAW, получение результатов обработки, управление железом низкого уровня (моторы) через внешний МК.
Готовые интерфейсные библиотеки
Arduino Interface Library (I2C, UART, SPI, CAN)
- CAN через периферию ESP32 или MCP2515 по SPI
- Работает со всеми вариантами Arduino
Generic Python Interface (SPI/I2C, Kvaser CAN, UART, Ethernet/Wi-Fi, USB VCP)
Python код для подключения OpenMV к Linux (Raspberry Pi, BeagleBone), macOS, Windows.
Поддержка:
- SPI/I2C на Linux SBC (BeagleBone, Raspberry Pi)
- Kvaser CAN на Linux/Windows
- Wi-Fi/Ethernet на всех системах
- USB VCP на всех (прямое подключение)
- UART (TTL/RS485/RS422/RS232) на всех
Меры предосторожности для Serial портов
Открытие VCP OpenMV Cam и чтение строк:
import serial
ser = serial.Serial(port='/dev/ttyACM0', baudrate=115200, dtr=False)
print(ser.readline())
Работает на Linux, macOS, Windows (подставьте имя порта: COMx в Windows, /dev/ttyACMx в Linux/Mac).
Критично: Установите dtr=False при открытии порта другой библиотекой/языком. Иначе OpenMV может перезагрузиться или зависнуть из-за DTR сигнала.
Применение OpenMV Cam
- Детекция линий/краев
- Разностная детекция кадров (frame differencing)
- Запись видео
- Трекинг AprilTag
- Мульти-блоб цветовое отслеживание (маркеры разных цветовых диапазонов)
- Захват изображений
- Template matching (поиск шаблона)
- Детекция форм (прямоугольник, круг и др.)
- Декодирование линейных штрих-кодов
- Data Matrix детекция/декодирование
- QR код детекция/декодирование
- Оптический поток (optical flow)
- TensorFlow Lite модели для микроконтроллеров
- Отслеживание глаз (eye tracking)
- Детекция лиц (face detection)
- Трекинг маркеров (marker tracking)
Заключение
OpenMV Cam реализует функции машинного зрения: детекция лиц, запись RAW видео, распознавание цветов/тегов. Широкий спектр применения благодаря мощным характеристикам и MicroPython. Хотите узнать больше об умных камерах, особенно OpenMV — свяжитесь с нами!
Промышленные технологии
- Построение умного завода: практический пошаговый план
- ADLINK запускает NEON‑1000‑MDX: готовое Edge AI умное камеру для быстрого внедрения промышленного зрения
- Установка камеры Raspberry Pi в скворечнике — пошаговое руководство
- B&R запустила полностью интегрированные умные камеры для точной автоматизации
- Освоение лужения алюминия: Экспертные техники и практическое руководство
- Экспертное руководство по сварке меди: Техники, советы и лучшие практики
- Настройка MIG-сварки: оптимизация производительности и идеальные швы
- Выбор правильного материала для печатной платы: исчерпывающее руководство
- Освоение усилителей печатных плат: полное руководство для гибких печатных плат
- Освоение проектирования печатных плат для Интернета вещей: Полное руководство