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 mit snapshot() 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 und file / select für das Dateisystem.

  • Netzwerkfunktionen über socket / wlan (CC3000 WiFi), ein lcd-Display-Treiber, ein mlx90620-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 pydfu und ein USB-Befehl zum erzwungenen Wechsel in den Bootloader; die Host-Bibliothek/das Protokoll openmv.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.