Update README.md

This commit is contained in:
watsonove 2026-02-04 19:24:54 +01:00 committed by GitHub
parent 16170da421
commit c10ef18ce3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

177
README.md
View file

@ -1,117 +1,142 @@
# IMX500-Object-Detection-UI # 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. 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 Die Anwendung bietet zwei Lernniveaus ("Schüler" und "Student") und ist für den Einsatz auf Messen, in Schulen oder Universitäten konzipiert.
Live-Objektdetektion: Nutzt den Hardware-Beschleuniger des IMX500 Sensors.
Zwei Lern-Niveaus: ## 🚀 Features
Schüler: 4 vereinfachte Schritte, spielerischer Zugang.
Student: 7 detaillierte Schritte mit technischer Tiefe (Pre-Processing, Tensoren, NMS).
Interaktiver Workflow: * **Live-Objektdetektion:** Nutzt den Hardware-Beschleuniger des IMX500 Sensors.
* Live-Modus: Echtzeit-Erkennung.
* Analyse-Modus: Einfrieren eines Bildes und schrittweise Durchleuchtung der KI-Pipeline.
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: * **Gate-Animationen:** Zwischen den Analyseschritten werden animierte Erklärungen (Bildsequenzen) abgespielt.
Simulation von Auflösungsreduzierung (Pixelation).
Visualisierung von Feature-Maps (Sobel-Filter).
* Darstellung von Bounding Boxes und Confidence Scores.
🛠 Hardware-Voraussetzungen * **Bilingual & Audio:** Vollständig in Deutsch und Englisch verfügbar, inklusive Sprachausgabe für Erklärtexte.
Raspberry Pi 4 oder 5
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 * **Kamera:** Raspberry Pi AI Camera (Sony IMX500).
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.
Abhängigkeiten installieren: * **Display:** Touchscreen oder Monitor + Maus/Tastatur.
Das System benötigt Python 3, picamera2 (vorinstalliert auf Bookworm) und pygame, sowie die IMX500 firmware imx500.
```bash * **Audio:** Lautsprecher oder Kopfhörer (für die Sprachausgabe).
sudo apt update ## 📦 Installation
sudo apt full-upgrade
1.  **Repository klonen / Dateien kopieren:**
sudo apt install imx500-all
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 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     Stelle sicher, dass die Ordnerstruktur korrekt ist (siehe unten "Projektstruktur"). Besonders wichtig sind die Bildsequenzen in `assets/schritt_X_experte/`.
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).
## ▶️ 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 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. Die Anwendung ist für Tastatur- und Mausbedienung optimiert.
Taste / Aktion Funktion | 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". | **LEERTASTE** | **Freeze / Unfreeze:** Wechselt zwischen Live-Kamera und Analyse-Modus. |
BACKSPACE Zurück: Geht zum vorherigen Schritt oder zurück zum Gate. | **ENTER** | **Weiter:** Geht zum nächsten Schritt oder bestätigt das "Gate". |
Mausklick Bedienung der UI-Buttons (Sprache, Home, Audio, Level-Wahl). | **BACKSPACE** | **Zurück:** Geht zum vorherigen Schritt oder zurück zum Gate. |
Mausbewegung Im "Schritt 1" (Analyse): Zeigt RGB-Werte unter dem Mauszeiger an. | **Mausklick** | Bedienung der UI-Buttons (Sprache, Home, Audio, Level-Wahl). |
Q oder ESC Beendet das Programm. | **Mausbewegung** | Im "Schritt 1" (Analyse): Zeigt RGB-Werte unter dem Mauszeiger an. |
📂 Projektstruktur | **Q** oder **ESC** | Beendet das Programm. |
imx500_gui/
├── app.py # Hauptprogramm (Controller, Event-Loop) ## 📂 Projektstruktur
├── detector.py # Hardware-Interface (Kamera, IMX500 Post-Processing)
├── steps.py # Texte und Bild-Transformationen (Logik) imx500_gui/
├── README.md # Dokumentation ├── app.py # Hauptprogramm (Controller, Event-Loop)
├── ui/ # UI-Modul (View) ├── detector.py # Hardware-Interface (Kamera, IMX500 Post-Processing)
│ ├── init.py ├── steps.py # Texte und Bild-Transformationen (Logik)
│ ├── renderer.py # Zeichenfunktionen (Balken, Overlay, Pixel-Grid) ├── README.md # Dokumentation
│ ├── textlayout.py # Textumbruch und -formatierung ├── ui/ # UI-Modul (View)
│ └── theme.py # Farben und Design-Konstanten │ ├── __init__.py
└── assets/ # Medien-Dateien │ ├── renderer.py # Zeichenfunktionen (Balken, Overlay, Pixel-Grid)
├── Kanit-Bold.ttf # Schriftart │ ├── textlayout.py # Textumbruch und -formatierung
├── landingpagebg.jpg # Hintergrundbild │ └── theme.py # Farben und Design-Konstanten
├── audio/ # MP3 Sprachdateien (DE & EN) └── assets/ # Medien-Dateien
├── schritt_1_experte/ # Bildsequenz Animation Schritt 1 ├── Kanit-Bold.ttf # Schriftart
├── schritt_2_experte/ # Bildsequenz Animation Schritt 2 ├── landingpagebg.jpg # Hintergrundbild
├── ... # (weitere Ordner bis schritt_7) ├── audio/ # MP3 Sprachdateien (DE & EN)
└── schritt_7_experte/ ├── 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: *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. Dieses Projekt wurde für Bildungszwecke entwickelt.
Entwickelt für Raspberry Pi AI Camera. ---
Entwickelt für Raspberry Pi AI Camera.