Onlinedienst "Geschwindigkeitsanalyse bei Unfällen per Video"


In der Testversion wurde ein Onlinedienst gestartet, der die aktuelle Geschwindigkeit von für uns interessanten Objekten (Autos und andere Fahrzeuge) anhand von Aufzeichnungen von Videokameras an Kreuzungen anzeigt.

Das Problem der Visualisierung der Entfernung beim Autofahren und der aktuellen Geschwindigkeit wird sowohl von Fahrschülern als auch von erfahrenen Fahrern bewältigt.

Es gibt jedoch eine Lösung - die Analyse dieser Daten auf zuvor aufgezeichneten Videobildern und deren Verarbeitung in verschiedenen kostenpflichtigen und kostenlosen, zugänglichen und geschlossenen Diensten.



Ein solcher kürzlich erschienener Dienst wird weiter diskutiert.

Link zum Onlinedienst "Geschwindigkeitsanalyse bei Unfall per Video".

Die Hauptseite des Dienstes (bisher sehr einfach):



Der Autor der Idee und Umsetzung ist der russische Programmierer und Chabrowitschin - Ilja Alexandrowitsch Volkow .

Diese Veröffentlichung wurde mit seiner Erlaubnis in Habré verfasst.

Im Moment funktioniert der Dienst nicht automatisch. Jedes Video muss zuerst für die manuelle Verarbeitung durch den Dienstbetreiber vorbereitet werden (jetzt ist es der Autor einer Person oder ein neuer Benutzer, Anweisungen für die Arbeit mit dem Dienst am Ende der Veröffentlichung).





Phasen der Verarbeitung von Videobildern:

- In der ersten Phase werden optische Verzerrungen von der Kamera kompensiert, dh alle geraden Linien der realen Welt sollten gerade und auf dem vom Dienst verarbeiteten Video sein (die Verzerrungskorrektur von der Kamera funktioniert bereits automatisch im Dienst).

- In der zweiten Phase wird eine Standortbindung an die Straßenebene durchgeführt. Dazu muss der Bediener das Rechteck auf dem Rahmen wie in der realen Welt markieren und zwei (oder mehr) Segmente mit zuvor gemessenen Längen eingeben (normalerweise dies: die Breite der Straße, die Breite eines separaten Streifens zwischen den Markierungslinien, den Abstand zwischen Fahrbahnen oder Schildern, Radstand von Autos);









- In der dritten Phase muss der Service-Operator an jedem Frame den Punkt festlegen, an dem sich das interessierende Objekt befindet (seinen Pfad markieren). Infolgedessen zeigt der Service die aktuelle Geschwindigkeit des Objekts und seine Änderung während der Bewegung an.









Der Service-Player verfügt über das Lineal-Tool, mit dem Sie die Entfernung im Video messen können:



Die Genauigkeit des Dienstes hängt stark von der Qualität und den Parametern des Videos ab.



Jetzt funktioniert der Dienst nur mit Videobildern, die mit stationären (statischen) Kameras aufgenommen wurden. Die Datenbank dieser Aufzeichnungen wird ergänzt und weiterentwickelt.

Im Zuge der Fertigstellung der Funktionalität des Dienstes plant der Autor, eine Analyse der Aufzeichnungen hinzuzufügen, die mit Hilfe von Videorecordern beim Bewegen und Stoppen von Autos erhalten wurden.

Der Autor des Dienstes plant, eine große Anzahl von Videos von Unfällen mit Fußgängern zu analysieren und die Statistik der Daten zur Fahrzeuggeschwindigkeit zum Zeitpunkt der Kollision zu analysieren.





Folgendes plant der Autor noch, um diesen Service zu entwickeln:

  • automatische Punktverfolgung hinzufügen;
  • Geotags hinzufügen;
  • Einführung eines Kalman-Filters , um Beobachtungsfehler auszugleichen;
  • Computer Vision verwenden;
  • Funktionen zur Berechnung der Geschwindigkeit mehrerer Objekte hinzufügen;
  • Es ist geplant, maschinelles Lernen für den Dienst einzuführen, um die Arbeit des Bedieners bei der Vorbereitung der Videoaufzeichnung zu minimieren.



Ich hoffe wirklich, dass diese Veröffentlichung Khabrovites interessiert und dem Autor des Dienstes bei seiner Entwicklung und aktuellen Arbeit hilft.

Es gelang mir, den Autor dieses Dienstes, Ilya Volkov , zu kontaktieren, mit ihm über die Funktionalität des Dienstes zu sprechen und Antworten auf verschiedene Fragen zu diesem Projekt speziell für Habr zu erhalten.

Interview mit dem Autor des Dienstes „Geschwindigkeitsanalyse bei Unfällen durch Videoaufzeichnung“:

Frage: Ist die Idee, einen solchen Dienst zu implementieren, schon lange aufgetaucht?
Ilyas Antwort: Vor ungefähr vier Monaten habe ich ein Video von einem Unfall gesehen und es wurde interessant, mit welcher (zumindest ungefähr) Geschwindigkeit sich einer der Teilnehmer bewegte. Es wurde nicht nur für mich interessant - in den Kommentaren zum Video gab es viele Kontroversen und es wurden verschiedene Bewertungen genannt. Damals dachte ich, dass ein solches Werkzeug nützlich sein würde.

Frage: Wie viel Zeit ist von dem Gedanken, dass Sie dies tun können, bis zum ersten funktionierenden Start des Dienstes vergangen?
Ilyas Antwort: Nun, seit vier Monaten geht es darum. Aber ich würde mich nicht beeilen, die aktuelle Version der funktionierenden Version zu nennen - sie ist immer noch feucht :)

Frage: Welche Sprachen und Plattformen verwenden Sie im Service und welche möchten Sie weiter verwenden?
Ilyas Antwort: Das Projekt wird auf Firebase gehostet. Dies ist eine großartige Sache für einen schnellen Start in fast jedes Projekt. Autorisierung, Hosting, Datenbank, Dateispeicherung - alles ist sofort einsatzbereit. Praktische API, zunächst völlig kostenlos.

Frontend - Vue.js, auch ein einfaches Tool, um von Grund auf neu zu lernen. Shader, die mit Konva.js auf die Leinwand zeichnen, sind für die Verzerrung der Optik verantwortlich.

Fast der gesamte Code (mit Ausnahme von Shadern) ist in JavaScript geschrieben. Es gibt keine besonderen Ansprüche an den Stack, ich werde weiter damit arbeiten.

Frage: Wann können normale Benutzer ihr Video hochladen und mit dem Dienst arbeiten?
Ilyas Antwort: Im Prinzip kann dies jetzt getan werden. Ich habe Anweisungen dazu geschrieben.

Frage: Sind Sie der einzige, der an dem Projekt beteiligt ist, oder gibt es ein Team von Programmierern?
Ilyas Antwort: Das Team ist noch klein - ich bin mein Freund, der über Kompetenzen in der Front-End-Entwicklung verfügt.

Frage: Planen Sie, die Entwicklung des Dienstes fortzusetzen, und erwarten Sie Hilfe von Kollegen / Mitgliedern des Forums bei diesem Projekt?
Ilyas Antwort: Die Entwicklung des Dienstes ist definitiv geplant, da der Prototyp sehr interessant aussieht. Entwicklungsideen sind voll, Wunsch ist auch vorhanden.
Hilfe ist immer willkommen - vor allem Ratschläge.

Frage: Wird es ein kostenloser Service sein oder gibt es Pläne für eine Monetarisierung?
Ilyas Antwort: Die Aussichten für eine Monetarisierung sind noch ziemlich vage. Vielleicht werden sie in Zukunft klar.

Frage: Sind Organisationen oder Gemeinschaften erschienen, die an dem Dienst interessiert sind? Zum Beispiel Motorradclubs oder Fahrschulen?
Ilyas Antwort: Die Communitys haben mir nicht geschrieben, aber einige Autoexperten waren an dem Projekt interessiert.

Frage: Wie genau kann die Geschwindigkeit jetzt mithilfe des Dienstes ermittelt werden? Inwieweit unterscheiden sich diese Daten, wenn die erforderlichen Parameter für die Messung von Roulette von einer realen Straße oder für Geodienste eingegeben werden, bei denen die Fahrbahnbreite mit einem eingebauten Lineal gemessen wird?
Ilyas Antwort: In einem Video von sehr guter Qualität und ohne Verzerrung der Optik ist die Genauigkeit nicht schlecht. Tests an einem offenen Datensatz zeigen einen Fehler von bis zu 3%. Die Genauigkeit nimmt mit einer Verschlechterung der Videoqualität und einer instabilen Bildrate ab.

Bei Messungen mit Roulette und mit Hilfe von Geoservices ist Roulette natürlich zuverlässiger. Daten von einem Geoservice können nicht blind vertrauenswürdig sein, können und sollten jedoch doppelt überprüft werden.

Im Allgemeinen habe ich den großen Wunsch, mich zu weigern, das Gelände an Sehenswürdigkeiten zu befestigen und mich an den Radständen von Autos und anderen genau bekannten Entfernungen zu orientieren.

Frage: Ist es möglich, Maßeinheiten (km \ h, m \ s, Meilen \ Stunde) auszuwählen und Hochgeschwindigkeitstelemetriedaten in einer separaten Protokolldatei zu speichern?
Ilyas Antwort: Ja, da es nicht so schwierig ist. Aber wann es realisiert wird - kann ich nicht sagen.

Frage: Videos im Winter sind aufgrund der Schneedecke auf der Straße in Ihrem Dienst schwieriger zu verarbeiten?
Ilyas Antwort: Ja, Schnee erhöht die Schwierigkeiten - einige Sehenswürdigkeiten sind nicht sichtbar, manchmal ändert sich sogar die Geometrie der Straße. Grundsätzlich wird die Geschwindigkeit aber auch bei schneebedeckten Videos berechnet.

Frage: Ist geplant, neuronale Netze im Dienst zu verwenden?
Ilyas Antwort: Dies ist definitiv keine Perspektive für die nahe Zukunft, aber das Thema ist definitiv sehr interessant. Es wäre cool, das neuronale Netzwerk zu trainieren, um Kamera-Verzerrungsfaktoren auszuwählen. Viele Ideen für die Verwendung vorgefertigter neuronaler Netze. Aber im Moment gibt es viel ohne sie zu tun :)

Frage: Jetzt wird der Dienst auf Firebase gehostet. Suchen Sie nach einer Alternative?
Ilyas Antwort: Das einzige, was an Firebase nicht wirklich gefällt, ist der Preis. Zum Beispiel beträgt der Preis für 1 GB Datenverkehr aus dem Dateispeicher etwa 7 Rubel, während Yandex.Cloud nur einen Rubel hat. Dies ist zwar kein sehr großes Problem, aber ich werde in Zukunft nach Optimierungsmöglichkeiten suchen. Jetzt entwerfe ich die Architektur so, dass sie nicht stark an den Dienstleister gebunden ist.


Vielen Dank an Ilya für interessante und detaillierte Antworten!

Wenn möglich, fügt der Autor dem Dienst neue Videos hinzu:







Anweisungen zum Arbeiten mit dem Service finden Sie hier .

1. Um Ihr Projekt zu erstellen, müssen Sie sich anmelden. Die Autorisierung ist über Google- und Facebook-Konten möglich. Nach der Autorisierung steht Ihnen die Schaltfläche „Projekt erstellen“ zur Verfügung.



2. Klicken Sie auf die Schaltfläche "Projekt erstellen". Die Seite zum Erstellen eines neuen Projekts wird angezeigt, auf der vorgeschlagen wird, die Videodatei herunterzuladen. Die maximale Größe der Videodatei beträgt 3 Megabyte. Sie können das Video mit diesem Videodienst zuschneiden .



3. Laden Sie die Datei herunter. Nach einem erfolgreichen Download wird die Projektseite automatisch geöffnet.



4. Zuerst entfernen wir die Verzerrungen der Kameraoptik: Passen Sie die Verzerrungen mit den Schiebereglern k3, k4, Skalieren so an, dass alle geraden Linien der realen Welt gerade und im Bild sind.



5. Bewegen Sie das Viereck so, dass es mit dem Rechteck der realen Welt übereinstimmt, und geben Sie 2 Abstände an (die Segmente sollten nicht parallel sein).



6. Mit Yandex.Maps können Sie nach Entfernungen suchen.



7. Da die Abstände auf Yandex.Maps möglicherweise nicht vollständig genau sind, müssen wir sicherstellen, dass die erhaltene Bindung mit einem Lineal angemessen ist. Normalerweise kennen wir den Radstand von Autos. Zum Beispiel ist die Basis von VAZ-2114 2,46 Meter, wir erhalten 2,45.



8. Die Länge der Straßenbahn betrug ungefähr 16 Meter, was ebenfalls nahe an der tatsächlichen Länge liegt.



9. Jetzt können wir die Geschwindigkeit des Autos direkt berechnen. Wir gehen in den Bearbeitungsmodus der Punkte des Objekts und markieren den Punkt des Objekts auf jedem Frame. Das manuelle Markieren von Punkten auf jedem Frame kann anstrengend sein, daher gibt es ein Interpolationswerkzeug: Markieren Sie einen Punkt auf einem Frame, markieren Sie dann einen Punkt nach 5-15 Frames, wählen Sie das Intervall zwischen Frames auf der Timeline aus und drücken Sie die I-Taste: Jetzt bewegt sich der Punkt zwischen Frames gleichmäßig geradlinig .



10. Also haben wir die Geschwindigkeit des Objekts berechnet.

Source: https://habr.com/ru/post/de460185/


All Articles