Bilder als Tensoren
Wie RGB-Bilder zu Zahlen werden und warum alle Bilder gleich groß sein müssen.
👋 Hi! HerrKI hier - heute erkläre ich dir Bilder!
Stell dir vor: Du machst ein Foto mit deinem Handy - ein Selfie, deine Katze, eine Landschaft. Für dich ist das ein Bild. Aber für den Computer? Nur ein Haufen Zahlen!
Heute zeige ich dir, wie Computer Bilder "sehen": Jedes Foto wird in einen 3D-Tensor (Rank 3 aus Kapitel „Was sind Tensoren?") umgewandelt - eine riesige Tabelle voller RGB-Werte (Rot-Grün-Blau). Das ist die Grundlage für alles: Gesichtserkennung, Instagram-Filter, selbstfahrende Autos - alles basiert darauf!
- ✅ Wie Bilder in RGB-Zahlen (0-255) umgewandelt werden
- ✅ Warum Bilder 3D-Tensoren sind (Höhe × Breite × 3 Farben)
- ✅ Wie du mit TensorFlow.js Bilder einliest und verarbeitest
- ✅ Warum neuronale Netze gleich große Bilder brauchen
Das Coole daran: Sobald du verstehst, wie Bilder zu Tensoren werden, kannst du eigene Bilderkennungs-Modelle bauen - ob Katzen vs. Hunde erkennen, Hausnummern lesen oder Gesichter identifizieren. Alles startet mit RGB-Zahlen! 🎨
💡 HerrKI-Tipp: Ein Bild ist ein 3D-Würfel aus Zahlen! Höhe × Breite × 3 RGB-Kanäle. Ein 200×200 Pixel Foto = 120.000 Zahlen. Krass, oder? 🤯
🎥 Video-Erklärung von HerrKI
Schau dir dieses Video an, um Bilder als Tensoren noch besser zu verstehen:
🖼️ Praxis-Beispiel: RGB-Bild → Tensor
Lass uns ein echtes Bild in einen Tensor umwandeln! Hier siehst du Schritt für Schritt, wie ein RGB-Farbbild in Zahlen (Tensor) verwandelt wird.
1️⃣ Original-Bild
pflanze.png
2️⃣ Als Tensor
Klicke auf "Bild analysieren" um die Tensor-Daten zu sehen...
💻 TensorFlow.js Code:
🎯 Was passiert bei der Umwandlung?
- Jedes Pixel wird zu 3 Zahlen (R, G, B)
- Wertebereich: 0-255 für jeden Farbkanal
- Shape: (Höhe, Breite, 3) → z.B. (200, 200, 3) = 120.000 Zahlen!
- Normalisierung: Oft werden Werte durch 255 geteilt → 0.0 bis 1.0
- Batch: Mehrere Bilder → (Anzahl, Höhe, Breite, 3)
⚠️ Wichtig: Einheitliche Bildgröße für Neuronale Netze
🔒 Warum brauchen neuronale Netze gleich große Bilder?
Ein neuronales Netz hat eine feste Architektur mit einer festgelegten Anzahl von Eingabe-Neuronen.
Wenn das erste Layer z.B. inputShape: [224, 224, 3] erwartet,
dann müssen ALLE Bilder exakt diese Größe haben.
❌ Funktioniert NICHT
Unterschiedliche Bildgrößen:
- Bild 1: 300 × 200 = 180.000 Werte
- Bild 2: 400 × 400 = 480.000 Werte
- Bild 3: 150 × 150 = 67.500 Werte
→ Netz kann unterschiedliche Shapes nicht verarbeiten!
✅ Funktioniert!
Einheitliche Bildgröße:
- Bild 1: 224 × 224 = 150.528 Werte
- Bild 2: 224 × 224 = 150.528 Werte
- Bild 3: 224 × 224 = 150.528 Werte
→ Alle Bilder haben die gleiche Shape!
🔧 Wie macht man Bilder gleich groß?
Option 1: Resize (Skalieren)
→ Bild wird gestreckt oder gestaucht auf die gewünschte Größe
Option 2: Crop (Zuschneiden)
→ Schneide den relevanten Bereich aus dem Bild aus
Option 3: Pad (Auffüllen)
→ Füge Ränder hinzu, um die gewünschte Größe zu erreichen
🎓 Beliebte Bildgrößen in der Praxis:
- 224 × 224: VGG16, ResNet, MobileNet (ImageNet Standard)
- 299 × 299: Inception v3, Xception
- 512 × 512: Hochauflösende Bildverarbeitung
- 28 × 28: MNIST Handschrift-Erkennung (Graustufenbilder)
- 32 × 32: CIFAR-10 Objekt-Erkennung
💡 Tipp: Kleinere Bilder = schnelleres Training, aber weniger Details. Größere Bilder = mehr Details, aber langsameres Training.
🧠 Kurzer Check — hast du es?
Drei schnelle Fragen, dann bist du durch — klick einfach deine Antwort an:
[100, 100, 3] — für jedes der 10.000 Pixel je ein Rot-, Grün- und Blau-Wert. Zusammen 30.000 Zahlen!tensor.div(255.0) quetscht man die Werte auf 0–1 — damit trainiert das Netz stabiler.