v1.0.0-beta¶
v1.0.0-beta es la versión inicial (beta) del firmware de OpenMV — la primera compilación pública de la OpenMV Cam. Establece la base sobre la que se construye todo desde entonces: un entorno de ejecución de scripts MicroPython en la OpenMV Cam STM32F4, una API de cámara sensor, una biblioteca de visión artificial image y el OpenMV IDE para el desarrollo en vivo. Al ser la primera versión, no hay nada desde lo que migrar — esta entrada resume con qué se publicó el firmware inicial.
Aspectos destacados¶
MicroPython en la OpenMV Cam — ejecuta scripts de Python en la cámara a través de USB con un REPL interactivo y una interfaz de depuración del IDE.
Captura de cámara — el módulo
sensor: configura el formato de píxel / resolución / velocidad de fotogramas y captura fotogramas consnapshot().Visión artificial — la biblioteca
image: detección de manchas (blob) de color, dibujo, filtros, coincidencia de plantillas, detección de rostros con cascadas de Haar y puntos clave.OpenMV IDE — un IDE de escritorio con un visor en vivo del búfer de fotogramas (frame buffer), un editor de código y actualización de firmware desde el propio IDE.
Hardware — la OpenMV Cam original (STM32F4) con cámaras OmniVision OV9650 / OV2640, compatibilidad con tarjeta SD y escudo WiFi.
Nuevas características¶
Scripting y módulos:
Un entorno de ejecución MicroPython como base del firmware, con ejecución de scripts en la cámara a través de una interfaz de depuración USB y un REPL interactivo.
Un módulo
sensor—set_pixformat()/set_framesize()/set_framerate(), controles de techo de ganancia / brillo / contraste / ganancia,reset(),snapshot()y espejo horizontal / volteo vertical — además de constantes de sensor y resolución.Un módulo de visión artificial
image(imlib) que expone objetos de imagen (con el protocolo de búfer de Python) y la superficie de procesamiento de imágenes que se describe a continuación.Un módulo
time/clockpara la medición de tiempos y de FPS.Módulos de periféricos iniciales —
led(LED RGB),spi,gpio(E/S de pines con registro de interrupciones externas),uart,rngpor hardware, un temporizador systick yfile/selectpara el sistema de archivos.Redes a través de
socket/wlan(WiFi CC3000), un controlador de pantallalcd, un módulo de sensor térmicomlx90620y grabación de vídeo AVI/MJPEG.
Procesamiento de imágenes:
Fotogramas de la cámara capturados en un búfer de fotogramas (frame buffer) asignado dinámicamente.
Detección de manchas (blob) de color (relleno por difusión) y umbralización en los espacios de color LAB/XYZ (con tablas de conversión RGB↔LAB).
Primitivas de dibujo (línea, cadena/fuente, círculo), filtros (erosión / dilatación / mediana / inversión / binario / umbral), escalado de imagen (bilineal), extracción de subimágenes, blit y mezcla alfa.
Coincidencia de plantillas (con guardado/carga de plantillas), detección de rostros/objetos con cascadas de Haar de Viola-Jones (cascadas cargables + un conversor de cascadas de OpenCV), una cascada LBP y un detector de ojos, detección de puntos clave y coincidencia de descriptores FAST / SURF / FREAK, imágenes integrales y detección de movimiento.
Codificación JPEG (con control de calidad), guardado de imágenes PPM / PGM / PNG / en bruto, y codificación de vídeo AVI/MJPEG.
IDE y herramientas:
La aplicación de escritorio OpenMV IDE — visor en vivo del búfer de fotogramas (frame buffer) con FPS, un editor de código (abrir / nuevo / guardar / guardar como, archivos recientes, menú de Ejemplos incluido), conectar / restablecer / conexión automática, y carga/guardado de configuración.
Actualización de firmware desde el IDE a través de DFU, una utilidad
pydfuen Python puro y un comando USB para forzar la entrada al gestor de arranque (bootloader); la biblioteca/protocolo hostopenmv.py; un visor independiente del búfer de fotogramas y una herramienta de cascadas; y reglas udev de Linux.
Otros cambios y mejoras¶
Scripts de ejemplo incluidos: detección de manchas (blob), detección / seguimiento de rostros, SURF / puntos clave, coincidencia de plantillas, LCD, visor del búfer de fotogramas, blit, transmisor MJPEG, grabación AVI, servidor de eco, FPS y demos de escritura de JPEG / imágenes.
Compatibilidad de hardware y placas¶
OpenMV Cam — STM32F4xx (STM32F407 / F429) en las primeras revisiones de hardware, con CMSIS + HAL de periféricos/Cube de STM32 y CMSIS-DSP.
Cámaras — OmniVision OV9650 y OV2640 (SCCB/I2C, control de regulador) a través de un HAL de sensor, además del sensor IR térmico MLX90620; resoluciones desde QQCIF/QCIF hasta SVGA/UXGA a hasta 30 FPS.
Almacenamiento / conectividad — tarjeta SD (SPI y SDIO) con FatFS, un sistema de archivos en memoria flash interna, SDRAM (búfer de fotogramas en SDRAM), USB OTG FS (depuración + DFU), WiFi CC3000 (escudos WiFi / BLE), un LED IR, e I2C por software/hardware y SPI controlado por DMA.
Cambios importantes en la API¶
Ninguno. v1.0.0-beta es la versión inicial (beta) del firmware de OpenMV — no hay ninguna versión anterior con la que romper la compatibilidad. Las versiones posteriores documentan sus cambios importantes respecto a su predecesora; consulta el resto de el registro de cambios.