From c10ef18ce314d3317ee6bb9c3347a6f296628fa3 Mon Sep 17 00:00:00 2001 From: watsonove <73097376+watsonove@users.noreply.github.com> Date: Wed, 4 Feb 2026 19:24:54 +0100 Subject: [PATCH] Update README.md --- README.md | 177 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 101 insertions(+), 76 deletions(-) diff --git a/README.md b/README.md index 48826e4..059ad8d 100644 --- a/README.md +++ b/README.md @@ -1,117 +1,142 @@ # IMX500-Object-Detection-UI Eine interaktive, didaktische Anwendung für den Raspberry Pi 4/5 mit der Sony IMX500 AI Camera. Diese Software visualisiert Schritt für Schritt wie Objketerkennung funktioniert. Von der Rohdatenerfassung bis zum fertigen Ergebnis. -Die Anwendung bietet zwei Lernniveaus ("Schüler" und "Student") und ist für den Einsatz auf Messen, in Schulen oder Universitäten konzipiert. -🚀 Features -Live-Objektdetektion: Nutzt den Hardware-Beschleuniger des IMX500 Sensors. +Die Anwendung bietet zwei Lernniveaus ("Schüler" und "Student") und ist für den Einsatz auf Messen, in Schulen oder Universitäten konzipiert. -Zwei Lern-Niveaus: -Schüler: 4 vereinfachte Schritte, spielerischer Zugang. -Student: 7 detaillierte Schritte mit technischer Tiefe (Pre-Processing, Tensoren, NMS). +## 🚀 Features -Interaktiver Workflow: -* Live-Modus: Echtzeit-Erkennung. -* Analyse-Modus: Einfrieren eines Bildes und schrittweise Durchleuchtung der KI-Pipeline. +* **Live-Objektdetektion:** Nutzt den Hardware-Beschleuniger des IMX500 Sensors. -Pixel-Inspektor: In Schritt 1 können einzelne Pixel mit der Maus untersucht werden (RGB-Werte), um das Konzept der "Matrix" zu verdeutlichen. +* **Zwei Lern-Niveaus:** +    * **Schüler:** 4 vereinfachte Schritte, spielerischer Zugang. +    * **Student:** 7 detaillierte Schritte mit technischer Tiefe (Pre-Processing, Tensoren, NMS). -Gate-Animationen: Zwischen den Analyseschritten werden animierte Erklärungen (Bildsequenzen) abgespielt. +* **Interaktiver Workflow:** +    * *Live-Modus:* Echtzeit-Erkennung. +    * *Analyse-Modus:* Einfrieren eines Bildes und schrittweise Durchleuchtung der KI-Pipeline. -Bilingual & Audio: Vollständig in Deutsch und Englisch verfügbar, inklusive Sprachausgabe für Erklärtexte. +* **Pixel-Inspektor:** In Schritt 1 können einzelne Pixel mit der Maus untersucht werden (RGB-Werte), um das Konzept der "Matrix" zu verdeutlichen. -Didaktische Visualisierung: -Simulation von Auflösungsreduzierung (Pixelation). -Visualisierung von Feature-Maps (Sobel-Filter). -* Darstellung von Bounding Boxes und Confidence Scores. +* **Gate-Animationen:** Zwischen den Analyseschritten werden animierte Erklärungen (Bildsequenzen) abgespielt. -🛠 Hardware-Voraussetzungen -Raspberry Pi 4 oder 5 +* **Bilingual & Audio:** Vollständig in Deutsch und Englisch verfügbar, inklusive Sprachausgabe für Erklärtexte. -Betriebssystem: Raspberry Pi OS Bookworm (64-bit) (Desktop-Version empfohlen für GUI). +* **Didaktische Visualisierung:** +    * Simulation von Auflösungsreduzierung (Pixelation). +    * Visualisierung von Feature-Maps (Sobel-Filter). +    * Darstellung von Bounding Boxes und Confidence Scores. -Kamera: Raspberry Pi AI Camera (Sony IMX500). +## 🛠 Hardware-Voraussetzungen -Display: Touchscreen oder Monitor + Maus/Tastatur. +* **Raspberry Pi 4 oder 5** -Audio: Lautsprecher oder Kopfhörer (für die Sprachausgabe). +* **Betriebssystem:** Raspberry Pi OS **Bookworm (64-bit)** (Desktop-Version empfohlen für GUI). -📦 Installation - Repository klonen / Dateien kopieren: - git clone https://github.com - Stelle sicher, dass alle Projektdateien (app.py, detector.py, steps.py, Ordner ui/ und assets/) vorhanden sind. +* **Kamera:** Raspberry Pi AI Camera (Sony IMX500). - Abhängigkeiten installieren: - Das System benötigt Python 3, picamera2 (vorinstalliert auf Bookworm) und pygame, sowie die IMX500 firmware imx500. +* **Display:** Touchscreen oder Monitor + Maus/Tastatur. - ```bash +* **Audio:** Lautsprecher oder Kopfhörer (für die Sprachausgabe). - sudo apt update -sudo apt full-upgrade +## 📦 Installation - -sudo apt install imx500-all +1.  **Repository klonen / Dateien kopieren:** - sudo apt install python3-libcamera python3-kms++ python3-pygame +```bash + git clone https://github.com/watsonove/IMX500-Object-Detection-UI/ +``` - # Falls numpy fehlt: +    Stelle sicher, dass alle Projektdateien (`app.py`, `detector.py`, `steps.py`, Ordner `ui/` und `assets/`) vorhanden sind. - sudo apt install python3-numpy +2.  **Abhängigkeiten installieren:** - ``` +    Das System benötigt Python 3, `picamera2` (vorinstalliert auf Bookworm) und `pygame`, sowie die IMX500 firmware `imx500`. -Nachdem du nun die Voraussetzungen installiert hast, starte den Raspberry Pi neu: +    ```bash +    sudo apt update +    sudo apt full-upgrade +    +    sudo apt install imx500-all + +    sudo apt install python3-libcamera python3-kms++ python3-pygame + +    # Falls numpy fehlt: + +    sudo apt install python3-numpy + +    ``` + + Nachdem du nun die Voraussetzungen installiert hast, starte den Raspberry Pi neu: + +```bash sudo reboot - Assets prüfen: - Stelle sicher, dass die Ordnerstruktur korrekt ist (siehe unten "Projektstruktur"). Besonders wichtig sind die Bildsequenzen in assets/schritt_X_experte/. +``` + +3.  **Assets prüfen:** -▶️ Starten der Anwendung -Starte die Anwendung über das Terminal. Du musst den Pfad zu deiner Model-Datei angeben (z. B. ein MobileNet oder EfficientDet Modell, das für den IMX500 kompiliert ist). +    Stelle sicher, dass die Ordnerstruktur korrekt ist (siehe unten "Projektstruktur"). Besonders wichtig sind die Bildsequenzen in `assets/schritt_X_experte/`. +## ▶️ Starten der Anwendung + +Starte die Anwendung über das Terminal. Du musst den Pfad zu deiner Model-Datei angeben (z. B. ein MobileNet oder EfficientDet Modell, das für den IMX500 kompiliert ist). + +```bash python3 app.py --model=/usr/share/imx500-models/imx500_network_ssd_mobilenetv2_fpnlite_320x320_pp.rpk -🎮 Steuerung +``` + +## 🎮 Steuerung + + Die Anwendung ist für Tastatur- und Mausbedienung optimiert. -Taste / Aktion Funktion -LEERTASTE Freeze / Unfreeze: Wechselt zwischen Live-Kamera und Analyse-Modus. -ENTER Weiter: Geht zum nächsten Schritt oder bestätigt das "Gate". -BACKSPACE Zurück: Geht zum vorherigen Schritt oder zurück zum Gate. -Mausklick Bedienung der UI-Buttons (Sprache, Home, Audio, Level-Wahl). -Mausbewegung Im "Schritt 1" (Analyse): Zeigt RGB-Werte unter dem Mauszeiger an. -Q oder ESC Beendet das Programm. -📂 Projektstruktur -imx500_gui/ -├── app.py # Hauptprogramm (Controller, Event-Loop) -├── detector.py # Hardware-Interface (Kamera, IMX500 Post-Processing) -├── steps.py # Texte und Bild-Transformationen (Logik) -├── README.md # Dokumentation -├── ui/ # UI-Modul (View) -│ ├── init.py -│ ├── renderer.py # Zeichenfunktionen (Balken, Overlay, Pixel-Grid) -│ ├── textlayout.py # Textumbruch und -formatierung -│ └── theme.py # Farben und Design-Konstanten -└── assets/ # Medien-Dateien -├── Kanit-Bold.ttf # Schriftart -├── landingpagebg.jpg # Hintergrundbild -├── audio/ # MP3 Sprachdateien (DE & EN) -├── schritt_1_experte/ # Bildsequenz Animation Schritt 1 -├── schritt_2_experte/ # Bildsequenz Animation Schritt 2 -├── ... # (weitere Ordner bis schritt_7) -└── schritt_7_experte/ +| Taste / Aktion | Funktion | +| :----------------- | :---------------------------------------------------------------------- | +| **LEERTASTE** | **Freeze / Unfreeze:** Wechselt zwischen Live-Kamera und Analyse-Modus. | +| **ENTER** | **Weiter:** Geht zum nächsten Schritt oder bestätigt das "Gate". | +| **BACKSPACE** | **Zurück:** Geht zum vorherigen Schritt oder zurück zum Gate. | +| **Mausklick** | Bedienung der UI-Buttons (Sprache, Home, Audio, Level-Wahl). | +| **Mausbewegung** | Im "Schritt 1" (Analyse): Zeigt RGB-Werte unter dem Mauszeiger an. | +| **Q** oder **ESC** | Beendet das Programm. | + +## 📂 Projektstruktur + + imx500_gui/ +├── app.py # Hauptprogramm (Controller, Event-Loop) +├── detector.py # Hardware-Interface (Kamera, IMX500 Post-Processing) +├── steps.py # Texte und Bild-Transformationen (Logik) +├── README.md # Dokumentation +├── ui/ # UI-Modul (View) +│ ├── __init__.py +│ ├── renderer.py # Zeichenfunktionen (Balken, Overlay, Pixel-Grid) +│ ├── textlayout.py # Textumbruch und -formatierung +│ └── theme.py # Farben und Design-Konstanten +└── assets/ # Medien-Dateien + ├── Kanit-Bold.ttf # Schriftart + ├── landingpagebg.jpg # Hintergrundbild + ├── audio/ # MP3 Sprachdateien (DE & EN) + ├── schritt_1_experte/ # Bildsequenz Animation Schritt 1 + ├── schritt_2_experte/ # Bildsequenz Animation Schritt 2 + ├── ... # (weitere Ordner bis schritt_7) + └── schritt_7_experte/ + +## 🌍 Sprache & Audio + +* Sprachwechsel: Klicke oben rechts auf den Button DE / EN, um die Sprache der Texte und des Audios zu wechseln. -🌍 Sprache & Audio -Sprachwechsel: Klicke oben rechts auf den Button DE / EN, um die Sprache der Texte und des Audios zu wechseln. *Audio-Dateien: - *Deutsch: schueler_step_X.mp3 +    *Deutsch: schueler_step_X.mp3 - *Englisch: schueler_step_X_english.mp3 +    *Englisch: schueler_step_X_english.mp3 - *Die Dateien müssen im Ordner assets/audio/ liegen. +    *Die Dateien müssen im Ordner assets/audio/ liegen. + +## 📝 Lizenz -📝 Lizenz Dieses Projekt wurde für Bildungszwecke entwickelt. -Entwickelt für Raspberry Pi AI Camera. + --- + Entwickelt für Raspberry Pi AI Camera.