v1.0.0-beta¶
v1.0.0-beta é a versão inicial (beta) do firmware OpenMV — a primeira compilação pública da OpenMV Cam. Estabelece a base sobre a qual tudo o que se seguiu foi construído: um ambiente de execução de scripts MicroPython na OpenMV Cam STM32F4, uma API de sensor sensor, uma biblioteca de visão por computador image, e o OpenMV IDE para desenvolvimento em tempo real. Por ser a primeira versão, não há nada a migrar — esta entrada resume o que o firmware inicial incluía.
Destaques¶
MicroPython na OpenMV Cam — executar scripts Python na câmara via USB com um REPL interativo e interface de depuração no IDE.
Captura de imagem — o módulo
sensor: configurar o formato de pixel / resolução / taxa de fotogramas e capturar fotogramas comsnapshot().Visão por computador — a biblioteca
image: deteção de manchas de cor, desenho, filtros, correspondência de padrões, deteção de faces com cascatas de Haar e pontos-chave.OpenMV IDE — uma aplicação de desenvolvimento para desktop com um visualizador de buffer de fotograma em tempo real, editor de código e atualização de firmware integrada no IDE.
Hardware — a OpenMV Cam original (STM32F4) com câmaras OmniVision OV9650 / OV2640, suporte para cartão SD e shield Wi-Fi.
Novas funcionalidades¶
Scripts e módulos:
Um ambiente de execução MicroPython como base do firmware, com execução de scripts na câmara via interface de depuração USB e um REPL interativo.
Um módulo
sensor—set_pixformat()/set_framesize()/set_framerate(), controlos de limite de ganho / brilho / contraste / ganho,reset(),snapshot(), e espelho horizontal / inversão vertical — mais constantes de sensor e resolução.Um módulo de visão por computador
image(imlib) que expõe objetos de imagem (com o protocolo de buffer Python) e a superfície de processamento de imagem subjacente.Um módulo
time/clockpara medição de tempo e FPS.Módulos periféricos iniciais —
led(LED RGB),spi,gpio(E/S de pino com registo de interrupções externas),uart,rngpor hardware, um temporizador systick, efile/selectpara o sistema de ficheiros.Ligação em rede via
socket/wlan(CC3000 WiFi), um controlador de ecrãlcd, um módulo de sensor térmicomlx90620, e gravação de vídeo AVI/MJPEG.
Processamento de imagem:
Fotogramas da câmara capturados para um buffer de fotograma alocado dinamicamente.
Deteção de manchas de cor (preenchimento por inundação) e limiarização no espaço de cores LAB/XYZ (com tabelas de conversão RGB↔LAB).
Primitivas de desenho (linha, texto/fonte, círculo), filtros (erosão / dilatação / mediana / inversão / binário / limiar), escalonamento de imagem (bilinear), extração de sub-imagem, blit e mistura alfa.
Correspondência de padrões (com guardar/carregar padrão), deteção de faces/objetos com cascatas de Viola-Jones Haar (cascatas carregáveis + um conversor de cascatas OpenCV), uma cascata LBP e detetor de olhos, deteção e correspondência de pontos-chave FAST / SURF / FREAK, imagens integrais e deteção de movimento.
Codificação JPEG (com controlo de qualidade), gravação de imagens PPM / PGM / PNG / raw, e codificação de vídeo AVI/MJPEG.
IDE e ferramentas:
A aplicação de desktop OpenMV IDE — visualizador de buffer de fotograma em tempo real com FPS, editor de código (abrir / novo / guardar / guardar como, ficheiros recentes, menu de Exemplos incluído), ligar / repor / ligar automaticamente, e guardar/carregar configuração.
Atualização de firmware no IDE via DFU, um utilitário
pydfuem Python puro, e um comando USB de forçar entrada no bootloader; a biblioteca/protocolo de anfitriãoopenmv.py; um visualizador de buffer de fotograma autónomo e uma ferramenta de cascatas; e regras udev para Linux.
Outras alterações e melhorias¶
Scripts de exemplo incluídos: deteção de manchas, deteção / rastreio de faces, SURF / pontos-chave, correspondência de padrões, LCD, visualizador de buffer de fotograma, blit, streaming MJPEG, gravação AVI, servidor de eco, FPS e demos de JPEG / escrita de imagem.
Hardware e suporte de placas¶
OpenMV Cam — STM32F4xx (STM32F407 / F429) nas primeiras revisões de hardware, com CMSIS + HAL periférico/Cube STM32 e CMSIS-DSP.
Câmaras — OmniVision OV9650 e OV2640 (SCCB/I2C, controlo do regulador) via HAL de sensor, mais o sensor de IR térmico MLX90620; resoluções de QQCIF/QCIF até SVGA/UXGA a até 30 FPS.
Armazenamento / conectividade — cartão SD (SPI e SDIO) com FatFS, um sistema de ficheiros em flash interno, SDRAM (buffer de fotograma em SDRAM), USB OTG FS (depuração + DFU), CC3000 WiFi (shields Wi-Fi / BLE), um LED de infravermelhos, e I2C por software/hardware e SPI com DMA.
Alterações de API incompatíveis¶
Nenhuma. v1.0.0-beta é a versão inicial (beta) do firmware OpenMV — não existe versão anterior com a qual seja necessário manter compatibilidade. As versões subsequentes documentam as suas alterações incompatíveis em relação à versão anterior; consulte o restante do changelog.