v1.0.0-beta¶
v1.0.0-beta ist die erste (Beta-)Version der OpenMV Firmware — der erste öffentliche Build der OpenMV Cam. Sie legt das Fundament, auf dem alles seither aufbaut: eine MicroPython-Skript-Laufzeitumgebung auf der STM32F4 OpenMV Cam, eine Kamera-sensor-API, eine image-Bibliothek für maschinelles Sehen und die OpenMV IDE für die Live-Entwicklung. Als erste Version gibt es nichts, von dem migriert werden müsste — dieser Eintrag fasst zusammen, was die erste Firmware enthält.
Highlights¶
MicroPython auf der OpenMV Cam — Python-Skripte auf der Kamera über USB mit einer interaktiven REPL und einer IDE-Debug-Schnittstelle ausführen.
Kameraaufnahme — das
sensor-Modul: Pixelformat / Auflösung / Bildrate konfigurieren und Einzelbilder mitsnapshot()erfassen.Maschinelles Sehen — die
image-Bibliothek: Farb-Blob-Erkennung, Zeichnen, Filter, Template-Matching, Haar-Cascade-Gesichtserkennung und Schlüsselpunkte.OpenMV IDE — eine Desktop-IDE mit einem Live-Framebuffer-Viewer, einem Code-Editor und einem Firmware-Update direkt in der IDE.
Hardware — die ursprüngliche OpenMV Cam (STM32F4) mit OmniVision OV9650 / OV2640 Kameras, SD-Karten- und WiFi-Shield-Unterstützung.
Neue Funktionen¶
Skripterstellung und Module:
Eine MicroPython-Laufzeitumgebung als Firmware-Basis, mit Skriptausführung direkt auf der Kamera über eine USB-Debug-Schnittstelle und einer interaktiven REPL.
Ein
sensor-Modul —set_pixformat()/set_framesize()/set_framerate(), Steuerung von Verstärkungsobergrenze / Helligkeit / Kontrast / Verstärkung,reset(),snapshot()sowie horizontale Spiegelung / vertikale Spiegelung — plus Sensor- und Auflösungskonstanten.Ein
image-Modul für maschinelles Sehen (imlib), das Bildobjekte (mit dem Python-Buffer-Protokoll) und die darunterliegende Bildverarbeitungsschicht bereitstellt.Ein
time- /clock-Modul für Zeitmessung und FPS-Messung.Frühe Peripheriegerätemodule —
led(RGB-LED),spi,gpio(Pin-I/O mit Registrierung externer Interrupts),uart, Hardware-rng, ein Systick-Timer undfile/selectfür das Dateisystem.Netzwerkfunktionen über
socket/wlan(CC3000 WiFi), einlcd-Display-Treiber, einmlx90620-Wärmebildsensor-Modul und AVI/MJPEG-Videoaufzeichnung.
Bildverarbeitung:
Kamera-Einzelbilder werden in einen dynamisch allokierten Framebuffer erfasst.
Farb-Blob-Erkennung (Flood-Fill) und Schwellenwertbildung im LAB-/XYZ-Farbraum (mit RGB↔LAB-Konvertierungstabellen).
Zeichenprimitive (Linie, Zeichenkette/Schriftart, Kreis), Filter (Erode / Dilate / Median / Invert / Binär / Schwellenwert), Bildskalierung (bilinear), Teilbildextraktion, Blit und Alpha-Blending.
Template-Matching (mit Speichern/Laden von Templates), Viola-Jones-Haar-Cascade-Gesichts-/Objekterkennung (ladbare Cascades + ein OpenCV-Cascade-Konverter), eine LBP-Cascade und ein Augendetektor, FAST / SURF / FREAK Schlüsselpunkterkennung und Deskriptor-Matching, Integralbilder und Bewegungserkennung.
JPEG-Kodierung (mit Qualitätssteuerung), PPM- / PGM- / PNG- / Rohbildspeicherung sowie AVI/MJPEG-Videokodierung.
IDE und Werkzeuge:
Die OpenMV IDE Desktop-Anwendung — Live-Framebuffer-Viewer mit FPS, ein Code-Editor (Öffnen / Neu / Speichern / Speichern unter, zuletzt verwendete Dateien, ein mitgeliefertes Beispiele-Menü), Verbinden / Zurücksetzen / Auto-Verbinden und Laden/Speichern von Konfigurationen.
Firmware-Update über DFU direkt in der IDE, ein reines Python-Werkzeug
pydfuund ein USB-Befehl zum erzwungenen Wechsel in den Bootloader; die Host-Bibliothek/das Protokollopenmv.py; ein eigenständiger Framebuffer-Viewer und ein Cascade-Werkzeug; sowie Linux-udev-Regeln.
Weitere Änderungen und Verbesserungen¶
Mitgelieferte Beispielskripte: Blob-Erkennung, Gesichtserkennung / -verfolgung, SURF / Schlüsselpunkte, Template-Matching, LCD, Framebuffer-Viewer, Blit, MJPEG-Streamer, AVI-Aufzeichnung, Echo-Server, FPS sowie JPEG- / Bildspeicher-Demos.
Hardware- und Board-Unterstützung¶
OpenMV Cam — STM32F4xx (STM32F407 / F429) über die frühen Hardware-Revisionen hinweg, mit CMSIS + STM32-Peripherie-/Cube-HAL und CMSIS-DSP.
Kameras — OmniVision OV9650 und OV2640 (SCCB/I2C, Reglersteuerung) über eine Sensor-HAL, plus der MLX90620-Wärme-IR-Sensor; Auflösungen von QQCIF/QCIF bis SVGA/UXGA bei bis zu 30 FPS.
Speicher / Konnektivität — SD-Karte (SPI und SDIO) mit FatFS, ein internes Flash-Dateisystem, SDRAM (Framebuffer im SDRAM), USB OTG FS (Debug + DFU), CC3000 WiFi (WiFi- / BLE-Shields), eine IR-LED sowie Soft-/Hardware-I2C und DMA-gesteuertes SPI.
Inkompatible API-Änderungen¶
Keine. v1.0.0-beta ist die erste (Beta-)Version der OpenMV Firmware — es gibt keine frühere Version, mit der die Kompatibilität gebrochen werden könnte. Nachfolgende Versionen dokumentieren ihre inkompatiblen Änderungen gegenüber ihrem Vorgänger; siehe den Rest des Changelogs.