v1.0.0-beta¶
v1.0.0-beta är den första (beta)utgåvan av OpenMV fast programvara — det första offentliga bygget av OpenMV Cam. Den lägger grunden som allt sedan dess bygger på: en MicroPython-skriptkörmiljö på STM32F4 OpenMV Cam, ett kamera-sensor-API, ett image-maskinseendebibliotek och OpenMV IDE för live-utveckling. Eftersom det är den första utgåvan finns det inget att migrera från — den här posten sammanfattar vad den första versionen av fast programvara levererades med.
Höjdpunkter¶
MicroPython på OpenMV Cam — kör Python-skript på kameran över USB med en interaktiv REPL och IDE-felsökningsgränssnitt.
Kameratagning —
sensor-modulen: konfigurera pixelformat / upplösning / bildfrekvens och fånga bildrutor medsnapshot().Maskinseende —
image-biblioteket: färgblobdetektering, ritning, filter, mallmatchning, Haar-cascade-ansiktsdetektering och nyckelpunkter.OpenMV IDE — en skrivbords-IDE med en live-bildbuffertvisare, kodredigerare och uppdatering av fast programvara inifrån IDE:n.
Hårdvara — den ursprungliga OpenMV Cam (STM32F4) med OmniVision OV9650 / OV2640-kameror, stöd för SD-kort och WiFi-shield.
Nya funktioner¶
Skript och moduler:
En MicroPython-körmiljö som grund för den fasta programvaran, med skriptkörning på kameran över ett USB-felsökningsgränssnitt och en interaktiv REPL.
En
sensor-modul —set_pixformat()/set_framesize()/set_framerate(), kontroller för förstärkningstak / ljusstyrka / kontrast / förstärkning,reset(),snapshot()och horisontell spegling / vertikal vändning — plus sensor- och upplösningskonstanter.En
image-maskinseendemodul (imlib) som exponerar bildobjekt (med Pythons buffertprotokoll) och den underliggande bildbehandlingsytan.En
time- /clock-modul för tidtagning och FPS-mätning.Tidiga kringutrustningsmoduler —
led(RGB-LED),spi,gpio(pin-I/O med registrering av externa avbrott),uart, hårdvaru-rng, en systick-timer ochfile/selectför filsystemet.Nätverk via
socket/wlan(CC3000 WiFi), enlcd-bildskärmsdrivrutin, enmlx90620-värmesensormodul och AVI/MJPEG-videoinspelning.
Bildbehandling:
Kamerabildrutor fångade i en dynamiskt allokerad bildbuffert.
Färgblobdetektering (flood-fill) och tröskling i LAB/XYZ-färgrymd (med konverteringstabeller för RGB↔LAB).
Rituringsprimitiver (linje, sträng/typsnitt, cirkel), filter (erodera / dilatera / median / invertera / binär / tröskel), bildskalning (bilinjär), extrahering av delbild, blit och alfa-blandning.
Mallmatchning (med spara/läs in mall), Viola-Jones Haar-cascade ansikts-/objektdetektering (inläsbara cascades + en OpenCV-cascade-konverterare), en LBP-cascade och ögondetektor, FAST / SURF / FREAK nyckelpunktsdetektering och deskriptormatchning, integralbilder och rörelsedetektering.
JPEG-kodning (med kvalitetskontroll), sparande av PPM / PGM / PNG / rå bild och AVI/MJPEG-videokodning.
IDE och verktyg:
OpenMV IDE-skrivbordsprogrammet — live-bildbuffertvisare med FPS, en kodredigerare (öppna / ny / spara / spara som, senaste filer, medföljande Exempel-meny), anslut / återställ / autoanslut och inläsning/sparande av konfiguration.
Uppdatering av fast programvara inifrån IDE:n över DFU, ett
pydfu-verktyg i ren Python och ett USB-kommando för att tvinga in i startladdaren; värdbiblioteket/protokolletopenmv.py; en fristående bildbuffertvisare och cascade-verktyg; samt udev-regler för Linux.
Övriga ändringar och förbättringar¶
Medföljande exempelskript: blobdetektering, ansiktsdetektering / -spårning, SURF / nyckelpunkter, mallmatchning, LCD, bildbuffertvisare, blit, MJPEG-strömmare, AVI-inspelning, ekoserver, FPS och JPEG- / bildskrivningsdemos.
Hårdvaru- och kortstöd¶
OpenMV Cam — STM32F4xx (STM32F407 / F429) över de tidiga hårdvarurevisionerna, med CMSIS + STM32 peripheral/Cube HAL och CMSIS-DSP.
Kameror — OmniVision OV9650 och OV2640 (SCCB/I2C, regulatorstyrning) via ett sensor-HAL, plus MLX90620 termisk IR-sensor; upplösningar från QQCIF/QCIF upp till SVGA/UXGA vid upp till 30 FPS.
Lagring / anslutbarhet — SD-kort (SPI och SDIO) med FatFS, ett internt flashminnesfilsystem, SDRAM (bildbuffert i SDRAM), USB OTG FS (felsökning + DFU), CC3000 WiFi (WiFi-/BLE-shields), en IR-LED och mjuk/hårdvaru-I2C samt DMA-driven SPI.
Brytande API-ändringar¶
Inga. v1.0.0-beta är den första (beta)utgåvan av OpenMV fast programvara — det finns ingen tidigare utgåva att bryta kompatibiliteten med. Efterföljande utgåvor dokumenterar sina brytande ändringar gentemot sin föregångare; se resten av ändringsloggen.