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.

  • Kameratagningsensor-modulen: konfigurera pixelformat / upplösning / bildfrekvens och fånga bildrutor med snapshot().

  • Maskinseendeimage-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 och file / select för filsystemet.

  • Nätverk via socket / wlan (CC3000 WiFi), en lcd-bildskärmsdrivrutin, en mlx90620-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/protokollet openmv.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.