Wer einen Objektdetektor dreißigmal pro Sekunde laufen lässt, berechnet in den meisten Bildern neu, was das System bereits weiß: Zwischen zwei Bildern ist das Objekt noch da und bewegt sich dorthin, wo die Physik es erwartet. Den schweren Detektor nur in jedem N-ten Bild laufen zu lassen und die Bilder dazwischen mit einer billigen Bewegungsschätzung zu überbrücken, ist deshalb eine der direktesten Rechenersparnisse auf einem eingebetteten System. Das ist kein Beschleunigungstrick, sondern eine Budgetentscheidung: Die Deadline des Regelkreises, die Beschleunigung des Objekts, der zulässige Vorhersagefehler und das Risiko neuer Objekte im Bild bestimmen N gemeinsam. Dieser Beitrag zeigt, wie Sie N wählen.
Kurz gesagt
- Wer den schweren Detektor in jedem Bild laufen lässt, zahlt den vollen Preis für Bekanntes. Detektieren Sie in jedem N-ten Bild und lassen Sie dazwischen eine billige Schätzung tragen.
- Der Gewinn erreicht nie den vollen Faktor N, weil Fixkosten in jedem Bild anfallen. Der Fehler einer Schätzung mit konstanter Geschwindigkeit wächst mit ½·a·t².
- Zwei Randbedingungen bestimmen N: der Vorhersagefehler bei bekannten Objekten und die Zeit, bis neue Objekte bemerkt werden. Unsicherheit, ein Manöver oder ein Änderungssignal sollten die Detektion vorziehen.
- Grundlage: Çalışkan und Koruk, ICHORA 2025. Die dort berichtete GPU-Ersparnis gilt für jene Hardware und jene Aufgabe.
Der Film und die Arbeit dahinter
Unser 60-sekündiger Konzeptfilm Real Time Has a Cost zeigt die Idee: Ein Kamerakopf auf einem Mast beobachtet einen Ausschnitt des Himmels, ein Luftfahrzeug kreuzt das Bild. Von vier Glasplatten in einem Rechenraum leuchtet nur die erste (DETECT), die anderen drei tragen CARRY. Anlage, Luftfahrzeug, Sensoren und Overlays sind unsere eigene 3D-Animation; Boxen, Spuren und Trajektorien sind Illustration, keine Detektorausgabe.
Die Idee stammt aus einer ICHORA-2025-Arbeit von H. H. Çalışkan und T. Koruk (Technische Universität Bursa); der Zweitautor Talha Koruk ist der Gründer von Spikedge. Die Arbeit kombiniert ein modifiziertes YOLOv8 (YOLO-Prime) zur Erkennung von Luftfahrzeugen auf eingebetteten Systemen wie Jetson Xavier NX und Rockchip RK3588, ein morphologisches CNN, das die erkannten Regionen klassifiziert, und ein dynamisches lineares Regressionsmodell, das künftige Koordinaten vorhersagt. Detektion und Klassifikation laufen in einem von vier Bildern, die übrigen drei trägt die Vorhersage. Laut Abstract sank die GPU-Auslastung der Deep-Learning-Modelle durch das Regressionsmodell um rund 66 %. Dieser Wert wurde auf jener Hardware für jene Aufgabe gemessen; unser Film wiederholt die Messung nicht, und wir haben das Verfahren nicht auf eigener Hardware gemessen.
Kostenmodell: Warum man nie den vollen Faktor N gewinnt
Teilen Sie die Kosten pro Bild in drei Teile: Fixkosten C_fix in jedem Bild (Dekodierung, Vorverarbeitung, Zuordnung), C_det nur in Detektionsbildern und C_vorh in den Bildern dazwischen. Bei Detektion in jedem N-ten Bild gilt:
mittlere Kosten pro Bild = C_fix + (C_det + (N - 1) * C_vorh) / N
Beschleunigung = (C_fix + C_det) / mittlere Kosten pro Bild
Obergrenze = (C_fix + C_det) / (C_fix + C_vorh) # für sehr großes N
Ist C_vorh ≪ C_det, nähert sich der Bruch C_det/N, aber C_fix schrumpft nie: Nicht N, sondern der Fixkostenanteil begrenzt den Gewinn (Amdahlsches Gesetz). Mit C_fix = 0 wird die Beschleunigung zu N / (1 + (N − 1)·r) mit r = C_vorh / C_det, also genau Gleichung 7 des Deep-Feature-Flow-Papers. C_vorh ist meist klein: Das SORT-Paper berichtet für seine Tracking-Komponente, ohne Detektor, 260 Hz auf einem Kern eines Intel i7 mit 2,5 GHz.
Weniger Rechnen heißt auch weniger Wärme. Laut NVIDIAs Dokumentation zu Jetson Xavier werden die Takte per DVFS gesenkt, sobald eine Temperatur eine Drosselschwelle (Trip Point) überschreitet; ein Detektionsbild, das bei Raumtemperatur in die Bildperiode passt, passt in einem geschlossenen Gehäuse in der Sonne womöglich nicht mehr. Und „GPU-Auslastung“ ist meist ein Zeitanteil (etwa GR3D_FREQ in tegrastats), keine Leistung in Watt; dafür messen Sie die Versorgungsschienen des NVIDIA-Jetson-Moduls oder den Eingang des Gehäuses.
Die Deadline: Wie weit kommt das Objekt zwischen zwei Detektionen?
Rechenbeispiel: Die folgenden Werte sind Annahmen, keine Messungen. 30 fps; das Objekt bewegt sich mit 20 m/s quer zur Sichtlinie; die Beschleunigung, die das Modell konstanter Geschwindigkeit nicht sieht, beträgt 5 m/s²; das Ziel ist 0,5 m breit; Detektionen kommen ohne Verzögerung; C_fix = 4 ms, C_det = 20 ms, C_vorh = 0,5 ms.
Das Objekt legt pro Bild 20/30 ≈ 0,67 m zurück, in einem Detektionszyklus mit N = 4 (4/30 ≈ 133 ms) 2,67 m, also rund 2,7 m. Die Schätzung mit konstanter Geschwindigkeit trägt diese Bewegung; ihr Fehler stammt aus der nicht modellierten Beschleunigung: e = ½·a·t².
| N | Mittlere Kosten pro Bild (Beschleunigung) | Zykluszeit / Strecke | Fehler bei konstanter Geschwindigkeit (½·a·t²) |
|---|---|---|---|
| 1 | 24,0 ms (1,00×) | 33 ms / 0,67 m | 0,3 cm |
| 2 | 14,3 ms (1,68×) | 67 ms / 1,33 m | 1,1 cm |
| 4 | 9,4 ms (2,56×) | 133 ms / 2,67 m | 4,4 cm |
| 8 | 6,9 ms (3,46×) | 267 ms / 5,33 m | 17,8 cm |
| 16 | 5,7 ms (4,20×) | 533 ms / 10,67 m | 71,1 cm |
Die Obergrenze liegt bei 4,5 ms pro Bild, also 5,33×. Die Kosten sättigen, der Fehler wächst quadratisch: Der Schritt von N = 8 auf N = 16 spart 1,2 ms pro Bild, vervierfacht aber den Fehler und schiebt ihn über die Zielbreite von 0,5 m. Dann überlappen vorhergesagte Box und neue Detektion nicht mehr, die IoU fällt auf null; ein mit der Kovarianz skaliertes Gate auf den Mittelpunktabstand (Mahalanobis) ist hier robuster. Die Tabelle reproduziert nicht das Ergebnis des Papers.
Was trägt die Bilder dazwischen?
Je billiger der Träger, desto weniger weiß er:
- Konstante Geschwindigkeit. Am billigsten; der Fehler wächst mit ½·a·t².
- Lineare Regression im gleitenden Fenster. Eine Gerade durch die letzten k Beobachtungen, nach vorn verlängert. Ein kurzes Fenster folgt einem Manöver schnell, rauscht aber; ein langes ist glatt, reagiert aber spät. Das Paper nennt sein Modell „dynamische lineare Regression“; weitere Details nennt der Abstract nicht.
- Kalman-Filter (Kalman, 1960). Dasselbe Bewegungsmodell, rekursiv und mit explizit modelliertem Rauschen. Der eigentliche Gewinn ist die Kovarianz: Sie wächst mit jedem Vorhersageschritt und sagt Ihnen, wann die nächste Detektion vorgezogen werden sollte. SORT kombiniert einen Kalman-Filter mit konstanter Geschwindigkeit mit einer IoU-basierten Zuordnung nach der Ungarischen Methode.
- Konstante Drehrate und andere Manövermodelle. Sie tragen ein kurvendes Ziel besser als eine Gerade, um den Preis eines nichtlinearen Filters und zusätzlicher Zustände (Vergleich in der Übersicht von Li und Jilkov).
Wann sollte die Detektion früher laufen?
Ein festes N ist der einfachste Scheduler, und die Literatur sagt, dass er nicht reicht. Deep Feature Flow hält es für ideal, ein neues Keyframe zu setzen, wenn sich der Bildinhalt stark ändert; Detect or Track knüpft die Detektionshäufigkeit an die Tracking-Qualität, mit einem kleinen Scheduler-Netz, das in jedem Bild zwischen Detektieren und Tracken entscheidet. Auch ohne gelernten Scheduler erledigen vier Auslöser den Großteil: Die Periode ist abgelaufen; die Kalman-Kovarianz hat eine Grenze überschritten; bei der letzten Detektion blieb eine Spur ohne Zuordnung oder die Innovation war größer als erwartet, das Objekt manövriert also vermutlich; ein billiger Bewegungstrigger hat außerhalb der bekannten Spuren Bewegung gesehen.
# Adaptiver Detektions-Scheduler (Pseudocode; Schwellen sind systemspezifisch)
def on_frame(frame, t, s):
s.tracks.predict_to(t) # billig, in jedem Bild
due = t - s.last_submit >= N_MAX / FPS
unsure = any(tr.pos_sigma() > SIGMA_MAX for tr in s.tracks)
trouble = s.tracks.lost_or_maneuvering()
novel = s.watch.score(frame, mask=s.tracks.boxes()) > CHANGE_MAX
if (due or unsure or trouble or novel) and s.detector.idle():
s.detector.submit(frame, t) # asynchron
s.last_submit = t
for det in s.detector.results(): # kann verspätet kommen
s.tracks.update_at(det.t_capture, det) # zum Aufnahmezeitpunkt anwenden, dann vorhersagen
s.tracks.count_misses(det.t_capture) # Fehlzählung nur in Detektionsbildern
return s.tracks.state_at(t)
Was, wenn zwischen zwei Detektionen ein neues Objekt auftaucht?
Die Vorhersage trägt nur bekannte Spuren. Ein Objekt, das zwischen zwei Detektionen ins Bild kommt, bleibt im ungünstigsten Fall etwa N/fps plus Detektionslatenz unsichtbar. Billige Abhilfen:
- Ein Bewegungstrigger. Bilddifferenz oder Hintergrundsubtraktion (etwa das Verfahren von Zivkovic, auf dem MOG2 in OpenCV beruht) läuft in jedem Bild und löst nur aus. Dreht sich ein Schwenk-Neige-Kopf, ändert sich das ganze Bild; ohne Eigenbewegungskompensation löst der Trigger in jedem Bild aus, und N fällt faktisch auf 1.
- Ein Vollbild-Scan in niedriger Auflösung. Billig, lässt aber kleine Ziele verschwinden; warum, erklären wir in unserem Beitrag zur Drohnendetektion am Edge (auf Türkisch).
- Rotierende Kacheln. Bekannte Spuren werden in kleinen Fenstern um ihre vorhergesagte Position bestätigt, und in jedem Bild wird eine Kachel in voller Auflösung abgesucht. Der Gesamtaufwand bleibt ähnlich, aber die Spitze flacht ab und der Jitter sinkt.
Am Himmel kommt ein sich näherndes Luftfahrzeug nicht vom Rand herein, sondern taucht in der Bildmitte auf, sobald es auflösbar wird. Ein Trigger, der nur die Ränder beobachtet, verpasst es.
N wählen: zwei Randbedingungen, eine Kostenkurve
- Legen Sie den zulässigen Positionsfehler ε für bekannte Objekte und eine Obergrenze a für nicht modellierte Beschleunigung fest: t_max = √(2ε/a).
- Der ungünstigste Vorhersagehorizont beträgt etwa N/fps + L, wobei L die Detektionslatenz ist. Aus N/fps + L ≤ t_max folgt N₁.
- Legen Sie die Zeit T_neu fest, in der ein neues Objekt bemerkt werden muss. Aus N/fps + L ≤ T_neu folgt N₂.
- N = min(N₁, N₂). Ist der Gewinn bei diesem N schon gesättigt, bringt ein größeres N nichts; passt das Detektionsbild nicht in die Bildperiode, lassen Sie die Detektion asynchron laufen.
Rechenbeispiel: zusätzlich L = 50 ms, ε = 0,25 m (die halbe Zielbreite) und T_neu = 220 ms. t_max = √(2 · 0,25 / 5) ≈ 0,316 s. Aus N/30 + 0,05 ≤ 0,316 folgt N₁ = 7, aus N/30 + 0,05 ≤ 0,22 folgt N₂ = 5. Bindend ist die Bedingung für neue Objekte: N = 5, 8,4 ms pro Bild (2,86×) und ein Fehler bei konstanter Geschwindigkeit von etwa 11,7 cm im ungünstigsten Horizont von 217 ms, also innerhalb des Budgets von 25 cm. Eine andere Geschwindigkeit, Beschleunigung oder Alarmzeit ergibt ein anderes N.
| Objektdynamik | Bildrate und Deadline | Kosten eines Verpassens | Empfohlener Ansatz |
|---|---|---|---|
| Langsam, gleichmäßig | Hohe fps, locker | Gering | Großes N; konstante Geschwindigkeit oder Regression im gleitenden Fenster |
| Schnell, gleichmäßig | Mittlere fps, knapp | Mittel | Mittleres N; Kalman; Auslösen über Unsicherheit |
| Häufige, abrupte Manöver | Niedrige fps | Hoch | Kleines N; Drehratenmodell; N nach großer Innovation vorübergehend verkleinern |
| Periodische Signatur (etwa Flügelschlag) | fps/N < 2 × Signaturfrequenz | Falsche Klasse | Billige Messung im vorhergesagten Bereich in getragenen Bildern; getragene Punkte aus den Merkmalen heraushalten |
Diese Rechnung mit den realen Kosten Ihrer eigenen Pipeline ist der erste Schritt unserer Arbeit an der Edge-AI-Pipeline.
Wo es schiefgeht
- Ein übersprungenes Bild als verpasste Detektion zählen. In den Experimenten des SORT-Papers wird eine Spur nach einem einzigen Bild ohne Detektion gelöscht (T_Lost = 1), unter anderem, weil das Modell konstanter Geschwindigkeit die wahre Dynamik schlecht vorhersagt. Bekommt ein solcher Tracker in übersprungenen Bildern leere Detektionslisten, stirbt jede Spur zwischen zwei Detektionen; der Fehlzähler darf nur dort steigen, wo der Detektor tatsächlich lief.
- Auf den Mittelwert schauen und das schlechteste Bild vergessen. Rechenbeispiel: Mit C_det = 40 ms dauert das Detektionsbild 44 ms und überschreitet die Bildperiode von 33,3 ms in jedem vierten Bild, obwohl der Mittelwert bei N = 4 nur 14,4 ms beträgt. In einem synchronen Design ist das eine periodische Jitter-Spitze.
- Eine verspätete Detektion als „jetzt“ verbuchen. Eine asynchrone Detektion gehört zu ihrem Aufnahmezeitpunkt. Rechenbeispiel: Wer bei einem Objekt mit 20 m/s eine Latenz von 50 ms ignoriert, erzeugt einen systematischen Nachlauf von 1,0 m, zwei Körperbreiten bei einem 0,5-m-Ziel.
- Getragene Punkte für Messungen halten. Vorhergesagte Punkte folgen exakt dem Bewegungsmodell. Bekommt ein Klassifikator, der auf der Spurform arbeitet, solche Punkte, kann eine Vogelspur wie eine Drohnenspur aussehen; siehe unseren Beitrag Vogel oder Drohne. Die Abtastrate einer periodischen Signatur sinkt außerdem auf fps/N. Rechenbeispiel: 7,5 Hz bei 30 fps und N = 4, die Nyquist-Grenze liegt bei 3,75 Hz.
Was dieser Beitrag nicht sagen kann
Wir haben dieses Verfahren nicht auf eigener Hardware gemessen; jede Millisekunde, jeder Meter und jeder Zentimeter oben ist ein gekennzeichnetes Rechenbeispiel. Das Ergebnis des Papers von rund 66 % wurde für jene Aufgabe, auf jener Hardware und mit einer GPU-Auslastungsmetrik gemessen; es lässt sich nicht auf andere Aufgaben, Geräte oder Metriken übertragen. Die Filmszene ist eine Illustration. Wir kennen auch die Beschleunigungsgrenzen Ihres Objekts nicht und wissen nicht, wie oft neue Objekte in Ihre Szene kommen; genau das bestimmt N. Um diese Fragen zu beantworten, würden wir messen:
- Vorhersagefehler über N: In aufgezeichnetem Video in jedem Bild detektieren und dann mit verschiedenen N wiedergeben; p95 und ungünstigster Fall, nicht der Mittelwert.
- Zeit von der Beobachtung bis zur Aktion: von der Aufnahme bis zum Ausgang (etwa einer GPIO-Flanke), mit Hardware-Zeitstempeln.
- Jitter des Regelkreises: mit synchroner und asynchroner Detektion, unter Volllast.
- Watt und Sperrschichttemperatur am Gehäuse: nach dem thermischen Einschwingen, bei realer Umgebungstemperatur, Detektion in jedem Bild neben dem gewählten N.
Die Messbedingungen (gleicher Eingangsstrom, gleicher Leistungsmodus, thermisches Einschwingen) haben wir in unserer Methodennotiz zur Inferenz-Pipeline zusammengefasst.
Häufig gestellte Fragen
Warum ist Detektion in jedem Bild Verschwendung?
Zwischen zwei aufeinanderfolgenden Bildern ändert sich die Szene kaum, Position und Geschwindigkeit eines Objekts lassen sich also weitgehend aus dem vorigen Bild schätzen. Wer den schweren Detektor in jedem Bild laufen lässt, bezahlt den vollen Preis für Information, die schon vorliegt.
Wie wähle ich N, also die Zahl der Bilder pro Detektion?
Formulieren Sie zwei Randbedingungen: den Vorhersagefehler bei bekannten Objekten (½·a·t² ≤ ε, mit t etwa N/fps plus Detektionslatenz) und die Zeit, in der ein neues Objekt bemerkt werden muss. Das kleinere N gewinnt; prüfen Sie dann, ob die Fixkosten den Gewinn bei diesem N schon abflachen.
Was passiert, wenn zwischen zwei Detektionen ein neues Objekt auftaucht?
Die Vorhersage trägt nur bekannte Spuren, daher bleibt ein neues Objekt bis zum nächsten Detektionsbild unsichtbar. Ein billiger Bewegungstrigger in jedem Bild oder rotierende Kachel-Scans begrenzen diese Verzögerung; löst der Trigger aus, läuft die Detektion, ohne auf N zu warten.
Sinkt dadurch die Genauigkeit?
In getragenen Bildern ist die Position eine Schätzung, keine Messung, und ihr Fehler wächst mit dem Quadrat des Vorhersagehorizonts und mit nicht modellierter Beschleunigung. Deep Feature Flow berichtet zum Beispiel bis zu zehnfache Beschleunigung bei der Detektion auf ImageNet VID für einen Rückgang der mAP von 73,9 auf 69,5; der Verlust in Ihrem System hängt von Aufgabe, Hardware und N ab.
Quellen
- Çalışkan, Koruk: Optimized YOLOv8 (YOLO-Prime), M-CNN, and Dynamic Linear Regression for Real-Time Aerial Vehicle Detection in Embedded Systems (ICHORA 2025): Grundlage des Films; die im Abstract berichtete, um rund 66 % niedrigere GPU-Auslastung.
- Zhu et al.: Deep Feature Flow for Video Recognition (CVPR 2017): Keyframes, Gleichung 7, Ergebnisse auf ImageNet VID.
- Luo et al.: Detect or Track: Towards Cost-Effective Video Object Detection/Tracking (AAAI 2019): Detektionshäufigkeit abhängig von der Tracking-Qualität; Scheduler-Netz.
- Bewley et al.: Simple Online and Realtime Tracking (ICIP 2016): Kalman-Filter mit konstanter Geschwindigkeit, IoU-Zuordnung, T_Lost = 1, 260 Hz.
- Kalman: A New Approach to Linear Filtering and Prediction Problems (1960): die Originalarbeit zum Kalman-Filter.
- Li, Jilkov: Survey of Maneuvering Target Tracking. Part I: Dynamic Models (IEEE TAES 2003): Übersicht über Manövermodelle, einschließlich Drehmodellen.
- Zivkovic: Improved Adaptive Gaussian Mixture Model for Background Subtraction (ICPR 2004): das Verfahren hinter MOG2 in OpenCV.
- NVIDIA Jetson Linux Developer Guide: Tegrastats Utility: GR3D_FREQ (Anteil der Zeit, in der die GPU in einer Periode aktiv ist), Versorgungsschienen.
- NVIDIA Jetson Linux Developer Guide: Jetson Xavier NX Series and Jetson AGX Xavier Series: Drosselschwellen und Taktdrosselung per DVFS.
Quellen abgerufen am 26. September 2026.



