KI-Kameraerkennung: Inventar-Erfassung per Foto #48

Closed
opened 2026-05-16 11:01:26 +00:00 by jreinemann-euris · 1 comment
jreinemann-euris commented 2026-05-16 11:01:26 +00:00 (Migrated from github.com)

Ziel

KI-gestützte Erfassung von Nahrungsmitteln und Equipment über die Handy-Kamera, um die Inventur schneller und komfortabler durchzuführen.

Workflow

  1. Foto aufnehmen – User öffnet die Kamera aus der App heraus und fotografiert Nahrungsmittel/Equipment
  2. KI-Erkennung – Das Bild wird per KI analysiert; erkannte Objekte werden als Liste angezeigt
  3. Auswahl – User wählt einzelne oder alle erkannten Objekte zur Erfassung aus
  4. Rückfragen – Für jedes ausgewählte Objekt werden fehlende Pflichtfelder abgefragt (sofern die KI sie nicht ableiten konnte)
  5. Speichern – Der komplettierte Datensatz wird als Item ins Inventar übernommen

Felder, die befüllt werden sollen

Aus der KI-Erkennung ableitbar:

  • name – Produktname (z.B. "Dosenmais", "Gaskocher")
  • categoryId – Zuordnung zu bestehender Kategorie (KI-Vorschlag, User bestätigt)
  • kcalPer100g – Nährwertinfo (bei bekannten Lebensmitteln aus Wissensbasis)
  • unit – Einheit (kg, L, Stück – aus Verpackung/Kontext ableitbar)
  • notes – Zusatzinfos (z.B. Marke, Variante)

Vom User zu ergänzen (Rückfragen):

  • quantity – Menge (KI sieht ggf. nur 1 Stück, User hat aber 5 im Schrank)
  • locationId – Lagerort
  • expiryDate – MHD (ggf. per OCR von der Verpackung lesbar)
  • unitPrice – Preis (optional)
  • minStock – Mindestbestand (optional, Default vorschlagen)

Technische Überlegungen

  • On-Device vs. Cloud-API: KI-Modell auf dem Gerät (ML Kit, TFLite) oder Cloud-API (Google Vision, OpenAI Vision, etc.)? → ggf. Tech-Decision-Ticket
  • Barcode/QR ergänzend: Barcode-Scan könnte zusätzlich Produktdaten aus einer Datenbank liefern (z.B. Open Food Facts)
  • Batch-Erfassung: Bei "alles auswählen" werden Items nacheinander mit minimalem Dialog erfasst (nur fehlende Pflichtfelder abfragen)
  • Kamera-Permission: Android Camera Permission muss angefordert werden

Akzeptanzkriterien

  • Kamera kann aus der App heraus geöffnet werden (Permission-Handling)
  • Aufgenommenes Foto wird per KI analysiert und erkannte Objekte werden angezeigt
  • User kann einzelne oder alle erkannten Objekte zur Erfassung auswählen
  • Für jedes ausgewählte Objekt werden nur die fehlenden Felder abgefragt
  • Erkannte Daten werden als Vorschlag in die Item-Felder übernommen
  • Items werden korrekt im Inventar gespeichert
  • Workflow funktioniert auch bei nur einem erkannten Objekt flüssig
## Ziel KI-gestützte Erfassung von Nahrungsmitteln und Equipment über die Handy-Kamera, um die Inventur schneller und komfortabler durchzuführen. ## Workflow 1. **Foto aufnehmen** – User öffnet die Kamera aus der App heraus und fotografiert Nahrungsmittel/Equipment 2. **KI-Erkennung** – Das Bild wird per KI analysiert; erkannte Objekte werden als Liste angezeigt 3. **Auswahl** – User wählt einzelne oder alle erkannten Objekte zur Erfassung aus 4. **Rückfragen** – Für jedes ausgewählte Objekt werden fehlende Pflichtfelder abgefragt (sofern die KI sie nicht ableiten konnte) 5. **Speichern** – Der komplettierte Datensatz wird als Item ins Inventar übernommen ## Felder, die befüllt werden sollen Aus der KI-Erkennung ableitbar: - **name** – Produktname (z.B. "Dosenmais", "Gaskocher") - **categoryId** – Zuordnung zu bestehender Kategorie (KI-Vorschlag, User bestätigt) - **kcalPer100g** – Nährwertinfo (bei bekannten Lebensmitteln aus Wissensbasis) - **unit** – Einheit (kg, L, Stück – aus Verpackung/Kontext ableitbar) - **notes** – Zusatzinfos (z.B. Marke, Variante) Vom User zu ergänzen (Rückfragen): - **quantity** – Menge (KI sieht ggf. nur 1 Stück, User hat aber 5 im Schrank) - **locationId** – Lagerort - **expiryDate** – MHD (ggf. per OCR von der Verpackung lesbar) - **unitPrice** – Preis (optional) - **minStock** – Mindestbestand (optional, Default vorschlagen) ## Technische Überlegungen - **On-Device vs. Cloud-API**: KI-Modell auf dem Gerät (ML Kit, TFLite) oder Cloud-API (Google Vision, OpenAI Vision, etc.)? → ggf. Tech-Decision-Ticket - **Barcode/QR ergänzend**: Barcode-Scan könnte zusätzlich Produktdaten aus einer Datenbank liefern (z.B. Open Food Facts) - **Batch-Erfassung**: Bei "alles auswählen" werden Items nacheinander mit minimalem Dialog erfasst (nur fehlende Pflichtfelder abfragen) - **Kamera-Permission**: Android Camera Permission muss angefordert werden ## Akzeptanzkriterien - [ ] Kamera kann aus der App heraus geöffnet werden (Permission-Handling) - [ ] Aufgenommenes Foto wird per KI analysiert und erkannte Objekte werden angezeigt - [ ] User kann einzelne oder alle erkannten Objekte zur Erfassung auswählen - [ ] Für jedes ausgewählte Objekt werden nur die fehlenden Felder abgefragt - [ ] Erkannte Daten werden als Vorschlag in die Item-Felder übernommen - [ ] Items werden korrekt im Inventar gespeichert - [ ] Workflow funktioniert auch bei nur einem erkannten Objekt flüssig
jreinemann-euris commented 2026-05-16 15:58:40 +00:00 (Migrated from github.com)

Abgeschlossen (16.05.2026)

Zyklen: 2 (Implementierung + Code-Review-Korrekturen)
Tests: 239 einzigartige Tests, 0 Fehler

Implementierte Artefakte

  • CameraScreen.kt: Foto aufnehmen, Analysieren, Artikel-Auswahl mit Checkboxen
  • CameraViewModel.kt: @ApplicationContext, Bitmap-Laden, Nav-Event via UiState, Queue-Logik
  • OpenAiVisionService.kt: gpt-4o Vision API via Ktor (buildJsonObject, base64 JPEG)
  • ItemFormPrefill.kt: Serializable Prefill-Modell für Navigation
  • ItemFormViewModel.kt: prefillJson-Route-Parameter, _pendingCategoryName-Matching auf Kategorien
  • Settings: OPENAI_API_KEY laden/speichern mit PasswordVisualTransformation
  • Navigation: Screen.CameraCapture, Screen.ItemForm(prefillJson), KrisenvorratNavGraph
  • ItemListScreen: PhotoCamera-Icon in TopAppBar
  • 8 neue CameraViewModel-Tests + 1 neuer ItemFormViewModel-Test

Abweichungen

  • CAMERA-Permission nicht im Manifest (Intent-basierter Ansatz via TakePicture braucht sie nicht)
  • minStock-Feld weggelassen (wurde in vorigem Commit aus dem Datenmodell entfernt)
  • Mehrfach-Auswahl: App navigiert zum ersten ausgewählten Artikel; User kehrt zurück für weitere
## Abgeschlossen (16.05.2026) **Zyklen:** 2 (Implementierung + Code-Review-Korrekturen) **Tests:** ✅ 239 einzigartige Tests, 0 Fehler ### Implementierte Artefakte - ✅ `CameraScreen.kt`: Foto aufnehmen, Analysieren, Artikel-Auswahl mit Checkboxen - ✅ `CameraViewModel.kt`: @ApplicationContext, Bitmap-Laden, Nav-Event via UiState, Queue-Logik - ✅ `OpenAiVisionService.kt`: gpt-4o Vision API via Ktor (buildJsonObject, base64 JPEG) - ✅ `ItemFormPrefill.kt`: Serializable Prefill-Modell für Navigation - ✅ `ItemFormViewModel.kt`: prefillJson-Route-Parameter, _pendingCategoryName-Matching auf Kategorien - ✅ Settings: OPENAI_API_KEY laden/speichern mit PasswordVisualTransformation - ✅ Navigation: Screen.CameraCapture, Screen.ItemForm(prefillJson), KrisenvorratNavGraph - ✅ ItemListScreen: PhotoCamera-Icon in TopAppBar - ✅ 8 neue CameraViewModel-Tests + 1 neuer ItemFormViewModel-Test ### Abweichungen - CAMERA-Permission **nicht** im Manifest (Intent-basierter Ansatz via TakePicture braucht sie nicht) - minStock-Feld weggelassen (wurde in vorigem Commit aus dem Datenmodell entfernt) - Mehrfach-Auswahl: App navigiert zum ersten ausgewählten Artikel; User kehrt zurück für weitere
Sign in to join this conversation.
No description provided.