Video und Bewegung
Von Einzelbildern zu Verläufen: Bilddifferenz, optischer Fluss und Objektverfolgung, und warum das Zählen über die Zeit die eigentliche Schwierigkeit ist.
Die Idee
Ein Video ist ein Stapel Bilder. Was neu hinzukommt, ist die Frage nach dem Zusammenhang: Ist die Person links im zweiten Bild dieselbe wie die im ersten? Solange das nicht beantwortet ist, kann man nichts zählen.
Wozu es gut ist
- Personen an einem Eingang zählen, ohne jemanden zu identifizieren.
- Wartezeiten an einer Schlange messen.
- Bewegungen auf einem Förderband prüfen.
- Bei Stillstand oder ungewöhnlicher Bewegung melden.
Bewegung ohne Modell erkennen
import cv2
cap = cv2.VideoCapture("halle.mp4")
# MOG2 lernt den Hintergrund laufend und markiert, was sich davon abhebt.
bg = cv2.createBackgroundSubtractorMOG2(history=500, varThreshold=40,
detectShadows=True)
kern = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))
while True:
ok, frame = cap.read()
if not ok:
break
maske = bg.apply(frame)
maske[maske == 127] = 0 # Schatten verwerfen
maske = cv2.morphologyEx(maske, cv2.MORPH_OPEN, kern)
konturen, _ = cv2.findContours(maske, cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_SIMPLE)
bewegt = [k for k in konturen if cv2.contourArea(k) > 1500]
if bewegt:
pass # Ereignis auslösen
cap.release()Dieses Verfahren braucht keine Grafikkarte und keine Trainingsdaten. Für die Frage „bewegt sich hier etwas?" ist es der richtige Weg.
Erkennung und Verfolgung im Wechsel
| Strategie | Rechenlast | Genauigkeit |
|---|---|---|
| Jedes Bild erkennen | 100 % | Höchste |
| Jedes fünfte Bild, dazwischen verfolgen | ~25 % | Fast gleich bei ruhigen Szenen |
| Nur bei Bewegung erkennen | Sehr niedrig | Abhängig von der Szene |
Optischer Fluss
Eine Gleichung mit zwei Unbekannten. Das ist das sogenannte Aperturproblem: Aus einem einzelnen Punkt lässt sich nur die Bewegungskomponente senkrecht zur Kante bestimmen. Lucas-Kanade löst es, indem es die Gleichung über eine kleine Nachbarschaft als konstant annimmt und das überbestimmte System kleinste-Quadrate löst.
Verfolgung bewerten
Die übliche Kennzahl ist MOTA, und sie ist strenger als sie aussieht:
Ein einziger Identitätswechsel je Person und Minute klingt harmlos, verdoppelt aber die gezählte Personenzahl bei einer Aufenthaltsdauer von einer Minute. Für Zählanwendungen ist deshalb IDF1 die aussagekräftigere Kennzahl, weil sie die Konsistenz der Identität über die gesamte Spur bewertet.
Datenschutz bei Zählanwendungen
Eine reine Zählung ohne Speicherung von Bildern kann zulässig sein, wenn die Verarbeitung im Gerät stattfindet und nur Zahlen das Gerät verlassen. Drei Bedingungen entscheiden:
- Die Bilder verlassen die Kamera nicht und werden nicht gespeichert.
- Es werden keine wiedererkennbaren Merkmale über die Sitzung hinaus gespeichert.
- Eine Wiedererkennung derselben Person an einem anderen Tag ist technisch ausgeschlossen.
Sobald eine Wiedererkennung über Tage möglich ist, liegt eine biometrische Verarbeitung vor, und die Bewertung ändert sich vollständig. Siehe Gesichtserkennung.
Passende Kurse und Quellen
You Only Look Once
Erkennung in einem einzigen Durchlauf statt in Vorschlägen und Prüfungen. Der Grund, warum Objekterkennung in Echtzeit möglich wurde.
Für Objekterkennung in Echtzeit; erklärt, warum sie überhaupt möglich wurde.