Erinnern Sie sich an den 86-Millionen-Dollar-Kennzeichenscanner, den ich repliziert habe? Ich habe jemanden damit erwischt.

Erinnern Sie sich an den 86-Millionen-Dollar-Kennzeichenscanner, den ich repliziert habe? Ich habe jemanden damit erwischt.

Vor einigen Wochen veröffentlichte ich einen meiner Meinung nach ziemlich harmlosen Artikel: Wie ich ein 86-Millionen-Dollar-Projekt in 57 Codezeilen replizierte.

Ich gebe zu - es war eine ziemlich klickköderige Behauptung. Ich sagte im Wesentlichen, dass ich dieselbe Technologie zum Scannen und Validieren von Nummernschildern reproduziert habe, für die die Polizei in Victoria, Australien, gerade 86 Millionen Dollar bezahlt hatte.

Seitdem waren die Reaktionen überwältigend. Mein Artikel erhielt am ersten Tag über 100.000 Treffer und liegt auf den letzten Blick bei rund 450.000. Ich wurde eingeladen, in lokalen Radio-Talkshows und auf einer Konferenz in Kalifornien zu sprechen. Ich denke, jemand hat Victoria, AU als Victoria, BC falsch verstanden.

Obwohl ich diese Angebote höflich abgelehnt habe, habe ich mich mit verschiedenen lokalen Entwicklern und namhaften Firmen zum Kaffee getroffen. Es war unglaublich aufregend.

Die meisten Leser sahen es als das, was es war: einen Proof of Concept, um die Diskussion über den Einsatz von Open Source-Technologie, die Staatsausgaben und den Wunsch eines Mannes, coole Sachen von seiner Couch zu bauen, zu entfachen.

Pedanten haben auf den Mangel an Schulung, Support und üblichen IT-Kosten-Paddern für Unternehmen hingewiesen, aber es lohnt sich nicht, diese zu untersuchen. Ich würde diesen Beitrag lieber damit verbringen, meine Ergebnisse zu betrachten und zu sehen, wie andere ihre eigene Genauigkeit verbessern können.

Bevor wir uns zu sehr mit den Ergebnissen befassen, möchte ich auf eine Sache eingehen, die meiner Meinung nach im ursprünglichen Beitrag verloren gegangen ist. Das Konzept für dieses Projekt begann völlig unabhängig vom BlueNet-Projekt im Wert von 86 Millionen US-Dollar. Es war keineswegs ein Versuch, es abzubrechen.

Es begann mit dem quälenden Gedanken, dass es eine Möglichkeit geben muss, beides zu kombinieren oder etwas Besseres zu verwenden, da OpenCV existiert und die VicRoads-Website Nummernschildprüfungen enthält.

Erst als ich mit dem Schreiben begann, stieß ich auf BlueNet. Als ich BlueNet und sein Preisschild entdeckte, hatte ich einen großartigen redaktionellen Blickwinkel, da der Code bereits geschrieben war. Es musste einige Inkonsistenzen zwischen den Projekten geben.

Ich glaube auch, dass ein Teil des Grundes für diese Explosion der günstige Zeitpunkt eines Berichts über verschwenderische staatliche IT-Ausgaben in Australien war. Die IT-Rechnung der Bundesregierung ist von 5,9 auf 10 Milliarden US-Dollar gestiegen und lieferte einen zweifelhaften Wert für diesen Ausbruch. Medienforscher, die mich kontaktiert haben, haben die beiden schnell miteinander verbunden, aber das kann ich nicht schnell fördern.

Ein Haftungsausschluss

Im Geiste der Transparenz muss ich etwas deklarieren, das auch im ursprünglichen Beitrag fehlte. Mein früherer Arbeitgeber lieferte kleinere IT-Projekte (weniger als 1 Million US-Dollar) für die Polizei von Victoria und andere staatliche Stellen. Infolgedessen habe ich mich polizeilichen Kontrollen unterzogen und die Formulare ausgefüllt, die erforderlich sind, um ein VicPol-Auftragnehmer zu werden.

Dies mag bedeuten, dass ich eine Axt zum Schleifen habe oder über ein bestimmtes Insiderwissen verfüge, aber stattdessen bin ich stolz auf die Projekte, die wir geliefert haben. Sie waren sowohl pünktlich als auch im Budget.

Visualisierung der Ergebnisse

Das Folgende ist eine Videodarstellung meiner Ergebnisse, die in After Effects für ein bisschen Spaß zusammengestellt wurde. Ich habe verschiedene Testaufnahmen gemacht, und dies war der erfolgreichste Clip.

Ich werde nach dem Video detailliert auf ideale Kameraeinstellungen, Erkennungsbereiche und mehr eingehen. Es wird Ihnen helfen, besser zu verstehen, warum dieses iPhone-Video, das ich durch die Windschutzscheibe aufgenommen habe, ein besseres Video ist als ein Contour HD, das aus dem Seitenfenster abgewinkelt ist.

Ein ethisches Dilemma

Wenn Sie die Heldengrafik dieses Artikels gesehen oder das Video oben gesehen haben, haben Sie möglicherweise eine sehr interessante Entwicklung bemerkt: Ich habe jemanden gefangen .

Insbesondere habe ich jemanden beim Fahren eines Fahrzeugs mit einer stornierten Registrierung aus dem Jahr 2016 erwischt. Dies könnte aus vielen Gründen geschehen sein, von denen der unschuldigste eine zweifelhafte Wiederverkaufspraxis ist.

Gelegentlich, wenn der private Verkauf eines Fahrzeugs nicht über das Buch erfolgt, können Käufer und Verkäufer eine offizielle Übertragung der Registrierung nicht abschließen. Dies spart dem Käufer Hunderte von Dollar, aber das Fahrzeug ist immer noch beim Verkäufer registriert. Es ist nicht ungewöhnlich, dass ein Verkäufer die Registrierung storniert und eine Ad-hoc-Rückerstattung der verbleibenden Monate erhält, die ebenfalls Hunderte von Dollar wert sind.

Alternativ könnte der Fahrer des Fahrzeugs der Verbrecher sein, von dem wir vermuten, dass er es ist.

Obwohl ich den Projekt-Scherz beim Einrichten auf meinem Computer scherzhaft benannt habe, stehe ich nun vor dem Rätsel, ob ich berichten soll, was ich gesehen habe.

Letztendlich wurde der Fahrer anhand eines Prototyps eines Nur-Polizei-Geräts erkannt. Das Fahren mit einer Registrierung für 2016 (storniert, nicht abgelaufen) ist jedoch ein sehr bewusster Schritt. Hmm.

Zurück zu den Ergebnissen

Von den vielen Reaktionen auf meinen Artikel war eine bedeutende Menge ziemlich wörtlich und zweifelhaft. Da ich sagte , dass ich die Software repliziert habe , wurde behauptet, dass ich ein Support-Center, Garantien und Schulungshandbücher haben muss. Man versuchte sogar, meine Ergebnisse zu replizieren und die unvermeidlichen Hindernisse für Bildqualität und Quellmaterial zu überwinden.

Aus diesem Grund implizierten einige, dass ich meine Quellbilder ausgewählt habe. Dazu kann ich nur sagen: "Nun, duh."

Als ich meinen ersten Proof of Concept erstellte (wieder mit dem Ziel, eine Idee zu validieren und BlueNet nicht zu replizieren), verwendete ich einen kleinen Beispielsatz mit weniger als zehn Bildern. Da Kamera - Setup eine der, wenn nicht die meisten, wichtige Faktoren in ALPR, die ich ausgewählt habe sie für ideale Eigenschaften , die Anerkennung zu verbessern.

Letztendlich ist es sehr einfach, einen fragilen Proof of Concept zu erstellen und zu brechen. Die wahre Innovation und Herausforderung besteht darin, einen Proof of Concept zu erstellen und zum Funktionieren zu bringen . Während meiner beruflichen Laufbahn haben mir viele leitende Entwickler gesagt, dass Dinge nicht oder zumindest nicht rechtzeitig erledigt werden können. Manchmal hatten sie recht. Oft waren sie nur risikoscheu.

"Nichts ist unmöglich, bis es bewiesen ist."

Viele Leute verfälschen dieses Zitat, und Sie haben vielleicht schon einmal eine seiner Inkarnationen gesehen oder gehört. Für mich fasst es eine gesunde Entwicklungshaltung gut zusammen, in der das Aufspüren und Validieren von Ideen fast zwingend erforderlich ist, um sie zu verstehen.

Optimale ALPR-Kameraeinstellungen

Dieses Projekt ist für mich so aufregend und anders, weil es eine klare Erfolgsmetrik hat - ob die Software die Platte erkennt. Dies kann nur mit einer Kombination aus Hardware, Software und Netzwerklösungen geschehen. Nachdem ich meinen Originalartikel veröffentlicht hatte, gaben Leute, die ALPR-Kameras verkaufen, schnell Ratschläge.

Optischer Zoom

Die naheliegendste Lösung im Nachhinein ist die Verwendung eines optischen Zooms. Obwohl ich im Folgenden andere wichtige Faktoren untersuche, führt keiner zu einer so starken Steigerung der Anerkennung wie dieser. Im Allgemeinen werden professionelle ALPR-Lösungen in einem Winkel versetzt, darauf trainiert, wo sich das Nummernschild befindet, und in den Bereich gezoomt, um die Klarheit zu maximieren.

Dies bedeutet, je mehr Zoom, desto mehr Pixel zum Spielen .

Alle Kameras, die mir zur Verfügung standen, hatten ein festes Objektiv. Dazu gehörten:

  • Eine Contour HD-Actionkamera. Diese kamen 2009 heraus und ich benutze meine, um meinen Radweg aufzuzeichnen und die Nahtoderfahrung jeder Woche zu wiederholen.
  • Ein Fujifilm X100S (bekanntermaßen ein Fixed-Prime-Objektiv)
  • Mein iPhone 6+

Der vorgestellte Testlauf wurde auf meinem Telefon aufgezeichnet. Meine einzige Methode zum Replizieren eines optischen Zooms bestand darin, mit einer App 3K statt 1080p aufzunehmen und dann digital zu zoomen und zuzuschneiden. Wieder mehr Pixel zum Spielen.

Winkel & Positionierung

Der Betrachtungswinkel von 30 ° wird häufig als Standard für die ideale Plattenerkennung bezeichnet. Dies ist unglaublich wichtig, wenn Sie erfahren, dass BlueNet eine Reihe von Kameras verwendet. Es ist auch sinnvoll, wenn man bedenkt, was eine nach vorne gerichtete Kamera im Allgemeinen sehen würde - nicht sehr viel.

Wenn ich raten müsste, würde ich sagen, dass ein größtenteils nach vorne gerichtetes Array das ideale Setup wäre. Es würde aus einem einzelnen Kamera-Totpunkt wie oben, zwei außermittigen bei 30 ° auf jeder Seite und einer einzelnen nach hinten gerichteten Kamera bestehen. Der Wert, wenn die meisten Kameras nach vorne gerichtet sind, ergibt sich aus der erhöhten Reaktionszeit, wenn das Fahrzeug in die entgegengesetzte Richtung fährt. Dies würde ein schnelleres Scannen, Verarbeiten und Wenden ermöglichen, als wenn die nach hinten gerichteten Kameras ein verdächtiges Fahrzeug bereits zehn Meter hinter dem Polizeifahrzeug aufnehmen würden.

Ein Becken

Beim Zusammenstellen des Videos habe ich darüber nachgedacht, das Filmmaterial zu stabilisieren. Stattdessen habe ich mich dafür entschieden, die holprige Fahrt so zu zeigen, wie sie war. Was Sie gesehen haben, war, dass ich mein Telefon in der Nähe der Windschutzscheibe hielt, während meine Frau fuhr. Schauen Sie sich diese strenge wissenschaftliche Methode an.

Andere wichtige Faktoren

Bildrate

Sowohl der Versuch, mein Projekt als auch meine Aufzeichnungen seitdem zu replizieren, untersuchte das gleiche Missverständnis, dass die ALPR-Abtastbildrate mit dem Erfolg verbunden sein könnte. Nach meiner Erfahrung hat dies nichts als Verschwendungszyklen bewirkt. Unglaublich wichtig ist stattdessen die Verschlusszeit, die sauberes, gestochen scharfes Filmmaterial erzeugt, das gut in den Algorithmus einfließt.

Aber ich habe auch ziemlich langsames Filmmaterial getestet. Höchstens zwei Fahrzeuge, die in einer 60 km / h-Zone aneinander vorbeifuhren, erzeugten ein Differenzial von 120 km / h. BlueNet hingegen kann bis zu 200 km / h erreichen.

Um dies zu lösen, schlug ein Kollege eine Objekterkennung und eine Out-of-Band-Verarbeitung vor. Identifizieren Sie ein Fahrzeug und zeichnen Sie einen Begrenzungsrahmen. Warten Sie, bis der ideale Erkennungswinkel erreicht ist, und zoomen Sie. Nehmen Sie dann eine Reihe von Fotos für die asynchrone Verarbeitung auf.

Ich habe versucht, OpenCV (Node-OpenCV) für die Objekterkennung zu verwenden, aber ich fand etwas Einfacheres wie die Gesichtserkennung, die zwischen 600 und 800 ms dauert. Nicht nur weniger als ideal für meinen Gebrauch, sondern im Allgemeinen ziemlich arm.

Hype-Zug TensorFlow kommt zur Rettung. Es gibt Beispiele für Projekte, bei denen mehrere Fahrzeuge pro Frame mit erstaunlichen 27,7 fps identifiziert werden können. Diese Version könnte sogar Geschwindigkeitsschätzungen verfügbar machen. Rechtlich wertlos, aber vielleicht nützlich bei der täglichen Polizeiarbeit (kein FPS-Benchmark in der Readme-Datei).

Um besser zu erklären, wie sich eine leistungsstarke Fahrzeugerkennung mit langsameren ALPR-Techniken verbinden lässt, habe ich in After Effects ein weiteres Video erstellt. Ich stelle mir vor, dass die beiden Hand in Hand so aussehen würden:

Bildrate gegen Verschlusszeit

Eine andere Manifestation der Bildrate wird weitgehend von der Verschlusszeit beeinflusst, insbesondere von den Problemen mit dem Rolling Shutter , die frühe oder niedrige digitale Filmrekorder plagen. Das Folgende ist eine Momentaufnahme von Contour HD-Filmmaterial. Sie können bei nur 60 km / h sehen, dass das Rolling Shutter-Problem das Filmmaterial aus ALPR-Sicht mehr oder weniger unbrauchbar macht.

Das Anpassen der Bildrate sowohl auf dem Contour HD als auch auf meinem iPhone führte nicht zu einer merklich geringeren Verzerrung. Theoretisch sollte eine längere Verschlusszeit klarere und schärfere Bilder erzeugen. Sie würden immer wichtiger, wenn Sie den 200 km / h BlueNet-Benchmark verfolgen würden. Weniger Unschärfe und weniger Rolling Shutter-Verzerrungen würden idealerweise zu einer besseren Lesbarkeit führen.

Öffnen Sie die ALPR-Version

Eine der interessanteren Entdeckungen war, dass die von mir verwendete Node-Openalpr-Version sowohl veraltet als auch bei weitem nicht so leistungsfähig ist wie ihre proprietäre Lösung. Obwohl eine Open-Source-Anforderung sicherlich ein Faktor war, war es erstaunlich, wie genau die Cloud-Version Frames erfolgreich lesen konnte, auf denen ich nicht einmal eine Platte identifizieren konnte.

ALPR-Länderschulungsdaten

Ich habe auch festgestellt, dass das Hauptpaket node-openalpr standardmäßig die Verarbeitung in den USA verwendet, ohne dass eine Überschreibung möglich ist. Sie müssen die Gabel eines anderen herunterziehen, damit Sie einen zusätzlichen Länderparameter angeben können.

Das hilft aber nicht immer. Mit dem Standard-US-Algorithmus konnte ich die meisten Ergebnisse erzielen. Durch die Angabe des australischen Datensatzes wurde die Anzahl der erfolgreichen Plattenlesevorgänge tatsächlich halbiert, und es konnten nur ein oder zwei gefunden werden, die der US-Algorithmus nicht konnte. Durch die erneute Bereitstellung des separaten Sets „Australian Wide Plate“ wurde die Anzahl halbiert und eine einzelne zusätzliche Platte eingeführt.

Es gibt eindeutig zu wünschen übrig, wenn es um australische Datensätze für ALPR geht, und ich denke, dass die schiere Anzahl der in Victoria verfügbaren Plattenstile einen Beitrag dazu leistet.

Planare Warps

Open ALPR wird mit einem speziellen Tool geliefert, um die Auswirkungen von Verzerrungen sowohl durch den Kamerawinkel als auch durch Rolling Shutter-Probleme zu verringern. Planare Verzerrung bezieht sich auf eine Methode, bei der Koordinaten an die Bibliothek übergeben werden, um ein Bild zu verzerren, zu verschieben und zu drehen, bis es einer geraden Platte sehr ähnlich ist.

In meiner begrenzten Testerfahrung konnte ich keinen planaren Warp finden, der bei allen Geschwindigkeiten funktionierte. Wenn Sie einen Rollladen in Betracht ziehen, ist es sinnvoll, dass die Verzerrung im Verhältnis zur Fahrzeuggeschwindigkeit zunimmt. Ich würde mir vorstellen, Beschleunigungsmesser oder GPS-Geschwindigkeitsdaten einzugeben, da ein Koeffizient funktionieren könnte. Oder holen Sie sich eine Kamera, die nicht ganz Müll ist.

Was andere in der Branche tun

Zahlreiche Leser haben sich nach dem letzten Beitrag gemeldet, um ihre eigenen Erfahrungen und Ideen auszutauschen. Vielleicht war eine der interessanteren Lösungen, die ich geteilt habe, Auror in Neuseeland.

Sie setzen fest installierte ALPR-Kameras in Tankstellen ein, um über Personen zu berichten, die Benzin stehlen. Dies an sich ist nicht besonders neu und revolutionär. In Verbindung mit ihrem Netzwerk können sie jedoch automatisch einen Alarm auslösen, wenn bekannte Straftäter zurückgekehrt sind oder Tankstellen in der Umgebung anvisieren.

Unabhängige Entwickler in Israel, Südafrika und Argentinien haben Interesse daran gezeigt, ihre eigenen gehackten Versionen von BlueNet zu entwickeln. Einige werden wahrscheinlich besser abschneiden als andere, da Orte wie Israel siebenstellige Nummernschilder ohne Buchstaben verwenden.

Die zentralen Thesen

Es gibt einfach zu viel, was ich in den letzten Wochen gelernt habe, um in einen Beitrag zu passen. Obwohl es viele Kritiker gab, schätze ich die Unterstützung und das Wissen, die mir zugesandt wurden, sehr.

Es gibt viele Herausforderungen beim Versuch, eine eigene ALPR-Lösung zu entwickeln, aber zum Glück sind viele davon gelöste Probleme.

Ich bin Designer und Front-End-Entwickler. Ich habe jetzt ungefähr zehn Stunden mit Filmmaterial und Code verbracht, weitere acht Stunden mit Videoproduktion und mindestens zehn weitere allein mit Zuschreibungen. Ich habe erreicht, was ich habe, indem ich auf den Schultern von Riesen gestanden habe. Ich installiere Bibliotheken, die von intelligenten Leuten gebaut wurden, und habe Ratschläge von Leuten erhalten, die diese Kameras für ihren Lebensunterhalt verkaufen.

Die 86-Millionen-Dollar-Frage bleibt weiterhin offen: Wenn Sie eine halbherzige Lösung entwickeln können, die einen guten Job macht, indem Sie auf den Schultern von Riesen stehen, wie viel mehr Geld sollten Sie investieren, um einen wirklich wirklich guten Job zu machen?

Meine Lösung befindet sich nicht einmal im selben Sonnensystem wie der 99,999% genaue Scanner, den einige Internet-Kommentatoren zu erwarten scheinen. Andererseits muss BlueNet nur ein Genauigkeitsziel von 95% erreichen.

Wenn Sie also mit 1 Million US-Dollar eine Genauigkeit von 80% und mit 10 Millionen US-Dollar eine Genauigkeit von 90% erreichen, wann geben Sie dann nicht mehr aus? In Anbetracht der Tatsache, dass sich die Technologie hier in Ozeanien als kommerziell erwiesen hat, wie viel mehr Steuergelder sollten in eine proprietäre Lösung aus der Nähe fließen, wenn lokale Startups davon profitieren könnten? Australien soll schließlich eine „Innovationsnation“ sein.