Update README.md
This commit is contained in:
parent
16170da421
commit
c10ef18ce3
1 changed files with 101 additions and 76 deletions
153
README.md
153
README.md
|
|
@ -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.
|
Die Anwendung bietet zwei Lernniveaus ("Schüler" und "Student") und ist für den Einsatz auf Messen, in Schulen oder Universitäten konzipiert.
|
||||||
|
|
||||||
🚀 Features
|
## 🚀 Features
|
||||||
Live-Objektdetektion: Nutzt den Hardware-Beschleuniger des IMX500 Sensors.
|
|
||||||
|
|
||||||
Zwei Lern-Niveaus:
|
* **Live-Objektdetektion:** Nutzt den Hardware-Beschleuniger des IMX500 Sensors.
|
||||||
Schüler: 4 vereinfachte Schritte, spielerischer Zugang.
|
|
||||||
Student: 7 detaillierte Schritte mit technischer Tiefe (Pre-Processing, Tensoren, NMS).
|
|
||||||
|
|
||||||
Interaktiver Workflow:
|
* **Zwei Lern-Niveaus:**
|
||||||
* Live-Modus: Echtzeit-Erkennung.
|
* **Schüler:** 4 vereinfachte Schritte, spielerischer Zugang.
|
||||||
* Analyse-Modus: Einfrieren eines Bildes und schrittweise Durchleuchtung der KI-Pipeline.
|
* **Student:** 7 detaillierte Schritte mit technischer Tiefe (Pre-Processing, Tensoren, NMS).
|
||||||
|
|
||||||
Pixel-Inspektor: In Schritt 1 können einzelne Pixel mit der Maus untersucht werden (RGB-Werte), um das Konzept der "Matrix" zu verdeutlichen.
|
* **Interaktiver Workflow:**
|
||||||
|
* *Live-Modus:* Echtzeit-Erkennung.
|
||||||
|
* *Analyse-Modus:* Einfrieren eines Bildes und schrittweise Durchleuchtung der KI-Pipeline.
|
||||||
|
|
||||||
Gate-Animationen: Zwischen den Analyseschritten werden animierte Erklärungen (Bildsequenzen) abgespielt.
|
* **Pixel-Inspektor:** In Schritt 1 können einzelne Pixel mit der Maus untersucht werden (RGB-Werte), um das Konzept der "Matrix" zu verdeutlichen.
|
||||||
|
|
||||||
Bilingual & Audio: Vollständig in Deutsch und Englisch verfügbar, inklusive Sprachausgabe für Erklärtexte.
|
* **Gate-Animationen:** Zwischen den Analyseschritten werden animierte Erklärungen (Bildsequenzen) abgespielt.
|
||||||
|
|
||||||
Didaktische Visualisierung:
|
* **Bilingual & Audio:** Vollständig in Deutsch und Englisch verfügbar, inklusive Sprachausgabe für Erklärtexte.
|
||||||
Simulation von Auflösungsreduzierung (Pixelation).
|
|
||||||
Visualisierung von Feature-Maps (Sobel-Filter).
|
|
||||||
* Darstellung von Bounding Boxes und Confidence Scores.
|
|
||||||
|
|
||||||
🛠 Hardware-Voraussetzungen
|
* **Didaktische Visualisierung:**
|
||||||
Raspberry Pi 4 oder 5
|
* Simulation von Auflösungsreduzierung (Pixelation).
|
||||||
|
* Visualisierung von Feature-Maps (Sobel-Filter).
|
||||||
|
* Darstellung von Bounding Boxes und Confidence Scores.
|
||||||
|
|
||||||
Betriebssystem: Raspberry Pi OS Bookworm (64-bit) (Desktop-Version empfohlen für GUI).
|
## 🛠 Hardware-Voraussetzungen
|
||||||
|
|
||||||
Kamera: Raspberry Pi AI Camera (Sony IMX500).
|
* **Raspberry Pi 4 oder 5**
|
||||||
|
|
||||||
Display: Touchscreen oder Monitor + Maus/Tastatur.
|
* **Betriebssystem:** Raspberry Pi OS **Bookworm (64-bit)** (Desktop-Version empfohlen für GUI).
|
||||||
|
|
||||||
Audio: Lautsprecher oder Kopfhörer (für die Sprachausgabe).
|
* **Kamera:** Raspberry Pi AI Camera (Sony IMX500).
|
||||||
|
|
||||||
📦 Installation
|
* **Display:** Touchscreen oder Monitor + Maus/Tastatur.
|
||||||
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:
|
* **Audio:** Lautsprecher oder Kopfhörer (für die Sprachausgabe).
|
||||||
Das System benötigt Python 3, picamera2 (vorinstalliert auf Bookworm) und pygame, sowie die IMX500 firmware imx500.
|
|
||||||
|
|
||||||
```bash
|
## 📦 Installation
|
||||||
|
|
||||||
sudo apt update
|
1. **Repository klonen / Dateien kopieren:**
|
||||||
sudo apt full-upgrade
|
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/watsonove/IMX500-Object-Detection-UI/
|
||||||
|
```
|
||||||
|
|
||||||
sudo apt install imx500-all
|
Stelle sicher, dass alle Projektdateien (`app.py`, `detector.py`, `steps.py`, Ordner `ui/` und `assets/`) vorhanden sind.
|
||||||
|
|
||||||
sudo apt install python3-libcamera python3-kms++ python3-pygame
|
2. **Abhängigkeiten installieren:**
|
||||||
|
|
||||||
# Falls numpy fehlt:
|
Das System benötigt Python 3, `picamera2` (vorinstalliert auf Bookworm) und `pygame`, sowie die IMX500 firmware `imx500`.
|
||||||
|
|
||||||
sudo apt install python3-numpy
|
```bash
|
||||||
|
|
||||||
```
|
sudo apt update
|
||||||
|
sudo apt full-upgrade
|
||||||
|
|
||||||
|
sudo apt install imx500-all
|
||||||
|
|
||||||
Nachdem du nun die Voraussetzungen installiert hast, starte den Raspberry Pi neu:
|
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:**
|
||||||
|
|
||||||
|
Stelle sicher, dass die Ordnerstruktur korrekt ist (siehe unten "Projektstruktur"). Besonders wichtig sind die Bildsequenzen in `assets/schritt_X_experte/`.
|
||||||
|
|
||||||
|
## ▶️ Starten der Anwendung
|
||||||
|
|
||||||
▶️ 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).
|
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/
|
|
||||||
|
## 📂 Projektstruktur
|
||||||
|
|
||||||
|
imx500_gui/
|
||||||
├── app.py # Hauptprogramm (Controller, Event-Loop)
|
├── app.py # Hauptprogramm (Controller, Event-Loop)
|
||||||
├── detector.py # Hardware-Interface (Kamera, IMX500 Post-Processing)
|
├── detector.py # Hardware-Interface (Kamera, IMX500 Post-Processing)
|
||||||
├── steps.py # Texte und Bild-Transformationen (Logik)
|
├── steps.py # Texte und Bild-Transformationen (Logik)
|
||||||
├── README.md # Dokumentation
|
├── README.md # Dokumentation
|
||||||
├── ui/ # UI-Modul (View)
|
├── ui/ # UI-Modul (View)
|
||||||
│ ├── init.py
|
│ ├── __init__.py
|
||||||
│ ├── renderer.py # Zeichenfunktionen (Balken, Overlay, Pixel-Grid)
|
│ ├── renderer.py # Zeichenfunktionen (Balken, Overlay, Pixel-Grid)
|
||||||
│ ├── textlayout.py # Textumbruch und -formatierung
|
│ ├── textlayout.py # Textumbruch und -formatierung
|
||||||
│ └── theme.py # Farben und Design-Konstanten
|
│ └── theme.py # Farben und Design-Konstanten
|
||||||
└── assets/ # Medien-Dateien
|
└── assets/ # Medien-Dateien
|
||||||
├── Kanit-Bold.ttf # Schriftart
|
├── Kanit-Bold.ttf # Schriftart
|
||||||
├── landingpagebg.jpg # Hintergrundbild
|
├── landingpagebg.jpg # Hintergrundbild
|
||||||
├── audio/ # MP3 Sprachdateien (DE & EN)
|
├── audio/ # MP3 Sprachdateien (DE & EN)
|
||||||
├── schritt_1_experte/ # Bildsequenz Animation Schritt 1
|
├── schritt_1_experte/ # Bildsequenz Animation Schritt 1
|
||||||
├── schritt_2_experte/ # Bildsequenz Animation Schritt 2
|
├── schritt_2_experte/ # Bildsequenz Animation Schritt 2
|
||||||
├── ... # (weitere Ordner bis schritt_7)
|
├── ... # (weitere Ordner bis schritt_7)
|
||||||
└── schritt_7_experte/
|
└── 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.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue