v1.0.0-beta¶
v1.0.0-beta è la release iniziale (beta) del firmware OpenMV — la prima build pubblica della OpenMV Cam. Stabilisce le fondamenta su cui si è costruito tutto da allora: un runtime di scripting MicroPython sulla OpenMV Cam STM32F4, un’API sensor per la camera, una libreria di visione artificiale image e l’OpenMV IDE per lo sviluppo in tempo reale. Essendo la prima release non c’è nulla da cui migrare — questa voce riassume ciò con cui è stato distribuito il firmware iniziale.
In evidenza¶
MicroPython sulla OpenMV Cam — esegui script Python sulla camera tramite USB con un REPL interattivo e l’interfaccia di debug dell’IDE.
Acquisizione dalla camera — il modulo
sensor: configura formato pixel / risoluzione / frame rate e cattura i frame consnapshot().Visione artificiale — la libreria
image: rilevamento di blob a colori, disegno, filtri, template matching, rilevamento dei volti tramite cascade di Haar e keypoint.OpenMV IDE — un IDE desktop con un visualizzatore del frame buffer in tempo reale, un editor di codice e l’aggiornamento del firmware integrato nell’IDE.
Hardware — la OpenMV Cam originale (STM32F4) con camere OmniVision OV9650 / OV2640, supporto per scheda SD e shield WiFi.
Nuove funzionalità¶
Scripting e moduli:
Un runtime MicroPython come base del firmware, con esecuzione di script sulla camera tramite un’interfaccia di debug USB e un REPL interattivo.
Un modulo
sensor—set_pixformat()/set_framesize()/set_framerate(), controlli di gain ceiling / luminosità / contrasto / guadagno,reset(),snapshot()e specchiatura orizzontale / capovolgimento verticale — più costanti di sensore e risoluzione.Un modulo di visione artificiale
image(imlib) che espone gli oggetti immagine (con il protocollo buffer di Python) e la superficie di elaborazione delle immagini sottostante.Un modulo
time/clockper la temporizzazione e la misurazione degli FPS.Primi moduli per periferiche —
led(LED RGB),spi,gpio(I/O dei pin con registrazione di interrupt esterni),uart,rnghardware, un timer systick efile/selectper il filesystem.Networking tramite
socket/wlan(WiFi CC3000), un driver di displaylcd, un modulo per sensore termicomlx90620e registrazione video AVI/MJPEG.
Elaborazione delle immagini:
Frame della camera catturati in un frame buffer allocato dinamicamente.
Rilevamento di blob a colori (flood-fill) e thresholding negli spazi colore LAB/XYZ (con tabelle di conversione RGB↔LAB).
Primitive di disegno (linea, stringa/font, cerchio), filtri (erosione / dilatazione / mediana / inversione / binario / soglia), scalatura delle immagini (bilineare), estrazione di sotto-immagini, blit e alpha blending.
Template matching (con salvataggio/caricamento dei template), rilevamento di volti/oggetti tramite cascade di Haar di Viola-Jones (cascade caricabili + un convertitore di cascade OpenCV), una cascade LBP e un rilevatore di occhi, rilevamento di keypoint FAST / SURF / FREAK e matching dei descrittori, immagini integrali e rilevamento del movimento.
Codifica JPEG (con controllo della qualità), salvataggio di immagini PPM / PGM / PNG / raw e codifica video AVI/MJPEG.
IDE e strumenti:
L’applicazione desktop OpenMV IDE — visualizzatore del frame buffer in tempo reale con FPS, un editor di codice (apri / nuovo / salva / salva con nome, file recenti, menu di Esempi incluso), connetti / reset / connessione automatica, e caricamento/salvataggio della configurazione.
Aggiornamento del firmware integrato nell’IDE tramite DFU, un’utilità
pydfupuramente in Python e un comando USB per forzare l’ingresso nel bootloader; la libreria/protocollo hostopenmv.py; un visualizzatore del frame buffer standalone e uno strumento per le cascade; e regole udev per Linux.
Altre modifiche e miglioramenti¶
Script di esempio inclusi: rilevamento di blob, rilevamento / tracciamento di volti, SURF / keypoint, template matching, LCD, visualizzatore del frame buffer, blit, streamer MJPEG, registrazione AVI, server echo, FPS, e demo di scrittura JPEG / immagine.
Supporto hardware e schede¶
OpenMV Cam — STM32F4xx (STM32F407 / F429) nelle prime revisioni hardware, con CMSIS + HAL periferica/Cube STM32 e CMSIS-DSP.
Camere — OmniVision OV9650 e OV2640 (SCCB/I2C, controllo del regolatore) tramite un HAL del sensore, più il sensore termico IR MLX90620; risoluzioni da QQCIF/QCIF fino a SVGA/UXGA a un massimo di 30 FPS.
Archiviazione / connettività — scheda SD (SPI e SDIO) con FatFS, un filesystem su flash interna, SDRAM (frame buffer in SDRAM), USB OTG FS (debug + DFU), WiFi CC3000 (shield WiFi / BLE), un LED IR, e I2C soft/hardware e SPI guidata da DMA.
Modifiche incompatibili dell’API¶
Nessuna. v1.0.0-beta è la release iniziale (beta) del firmware OpenMV — non esiste una release precedente con cui rompere la compatibilità. Le release successive documentano le proprie modifiche incompatibili rispetto alla precedente; vedi il resto del changelog.