Computer-Vision auf NVIDIA Jetson
Ausgangslage
Die DataCollect GmbH setzt seit 1993 Maßstäbe in der Entwicklung von Produkten, Software und Dienstleistungen für die Analyse von Mobilitätsdaten und die Förderung der Verkehrssicherheit.
Als neues Produkt sollte ein kamerabasiertes Verkehrszählungssystem namens “ARGOS” entwickelt werden. Dieses System sollte mobil sein, also mit Batteriebetrieb überall kurzfristig aufstellbar sein. Die Kameradaten sollten direkt im Gerät verarbeitet und gespeichert werden. In späterer Version kam eine Echtzeitübertragung erfasster Daten an Backendsysteme hinzu.
Nach einer ersten Projektphase mit einer Hochschule und anderen Projektpartnern war das Ergebnis überschaubar. 100 DAYS wurde gefragt, eine erste funktionierende Version umzusetzen und ein Team bei DataCollect zur Weiterentwicklung des Produkts zu befähigen.
Ablauf
Nach anfänglicher Analyse wurde schnell klar, dass große Teile des Projekts komplett neu entwickelt werden mussten, um Aussicht auf Erfolg zu haben.
So wurde die Xamarin-basierte Tablet-Anwendung zur Einrichtung des Systems vor Ort durch eine Webanwenung ersetzt. Die verwendeten Technologien Python und ReactJS sind im DataCollect Entwicklungsteam bekannt und können daher leicht übergeben werden. Das System lässt sich nun von jedem normalen Webbrowser aus ohne vorherige Softwareinstallation fernbedienen.
Die ursprünglich projektierte embedded Kamera der Marke Basler war für Anwendung im Außenbereich bei schlechten Lichtverhältnissen nicht ausreichend. Daher wurde nach einiger Evaluation eine Kamera basierend auf Sony’s IMX 327 Chip eingesetzt mit einer entsprechend passenden Linse. So wurde eine gute Videoqualität bei nächlichen beleuchteten Straßen erreich.
Der zuvor verwendete Objektdetektor basierend auf Mobilenet V2 konnte nur Fahrzeug-Erkennungsraten um die 50% erreichen. Um dies zu verbessern, wurde nach umfangreicher Evaluation unterschiedlicher Machine Learning Modelle ein YOLO CNN eingeführt.
Daraus ergab sich ein erhöhter Resourcenbedarf im Gerät, so dass statt dem ursprünglich projektierten NVIDIA TX2 SOM ein NVIDIA Jetson NX ausgewählt wurde.
Das selbst entwickelte Carrier Board erwies sich als instabil im Alltagseinsatz und wurde durch ein Standard Carrier Board des US Herstellers ConntecTech ersetzt.
Im Laufe des Projekts stellte sich außerdem heraus, dass die zum Training verwendeten ca. 20.000 Bilder nicht geeignet waren die angestrebte Erkennungsqualität von >90% selbst mit einem YOLO CNN zu erreichen. Daher wurde ein komplett neuer Trainings-Datensatz mit Hilfe von Data Scientists aus dem 100 DAYS Netzwerk aufgebaut und trainiert.
Ergebnisse
Erkennungsrate von Fahrzeugen wurde von ca. 50% auf 95% gesteigert
Software ist wartbar und mit marktüblichen Technologien umgesetzt
Das System läuft Stabil im Alltagsbetrieb in hunderten Instanzen
Beitrag 100 DAYS
Unterstützung bei Produktdefinition und Roadmap
Technologieauswahl in Software und Hardware
Datensammlung, Kuratierung, Training und Umsetzung des Detektor-CNN (YOLO)
Umsetzung eines Trackers als Plugin in NVIDIA Deepstream
Implementierung der Systemsoftware, der Kommunikation, Security und Update-Mechanismus
Implementierung des Configurations-Frontends
Implementierung diverser Build-Prozesse und Auto-Tests
Knowhow-Übergabe an das interne Team