Streaming 4 Kameras mit kleiner Trägerplatine: Schneller Prototyp
Eingebettete Bildverarbeitungskomponenten sind immer beliebter und werden in eine Vielzahl von Anwendungen integriert. Was all diese Anwendungen gemeinsam haben, ist die Notwendigkeit, immer mehr Funktionen auf engstem Raum unterzubringen. Häufig ist es für diese Systeme auch sehr vorteilhaft, Entscheidungen am Rande zu treffen. Um solche Systeme zu ermöglichen, einschließlich der Fähigkeit, schnell Prototypen zu erstellen, hat Teledyne FLIR die Quartet™ Embedded Solution für TX2 eingeführt. Diese kundenspezifische Trägerplatine ermöglicht die einfache Integration von bis zu 4 USB3-Kameras für Bildgebungssysteme bei voller Bandbreite. Diese enthält den NVidia Jetson Hardware-Beschleuniger für Deep Learning und ist bereits in das Spinnaker® SDK von Teledyne FLIR integriert. Häufig ist es für diese Systeme auch sehr vorteilhaft, Entscheidungen am Rande zu treffen, insbesondere bei Inspektionen, mobiler Robotik, Verkehrssystemen und verschiedenen Arten von unbemannten Fahrzeugen.
Abbildung 1: Aufbau eines Prototyps für alle vier Anwendungen
In diesem sehr praxisbezogenen Artikel beschreiben wir die Schritte, die bei der Entwicklung eines von ITS (Verkehrssystemen) inspirierten Prototyps unternommen wurden, auf dem vier Anwendungen gleichzeitig laufen, von denen drei Deep Learning verwenden:
- Anwendung 1: Nummernschilderkennung mittels Deep Learning
- Anwendung 2: Kategorisierung des Fahrzeugtyps mittels Deep Learning
- Anwendung 3: Klassifizierung von Fahrzeugfarben mithilfe von Deep Learning
- Anwendung 4: Sicht durch die Windschutzscheibe (ohne Reflexion und Blendung)
Einkaufsliste: Hardware- und Softwarekomponenten
1) SOM für die Verarbeitung:
Die neue Teledyne FLIR Quartet-Trägerplatine für TX2 enthält:
- 4 TF38-Anschlüsse mit dedizierten USB3-Controllern
- Nvidia Jetson TX2-Modul
- Vorinstalliert mit dem leistungsstarken und benutzerfreundlichen Spinnaker SDK von Teledyne FLIR zur Gewährleistung der Plug-and-Play-Kompatibilität mit den Teledyne FLIR Blackfly S-Platinenkameras
- Nvidia Jetson Hardware-Beschleuniger für das Deep Learning ermöglicht komplette Entscheidungsfindungssysteme auf einer einzigen kompakten Platine
Abbildung 2: Quartet Embedded Solution mit TX2 abgebildet mit 4 Blackfly S-Kameras und 4 FPC-Kabeln.
2) Kameras und Kabel
- 3 Standard Teledyne FLIR Blackfly S-USB3-Platinenkameras mit denselben umfangreichen Funktionen wie in der Version mit Gehäuse für die neuesten CMOS-Sensoren und zur nahtlosen Integration mit Quartet
- 1 benutzerdefinierte Kamera: Blackfly S USB3-Platinenkamera mit polarisiertem Sony IMX250MZR-Sensor
- Kabel: TF38 FPC-Kabel, mit denen zum Platzsparen die Versorgung und Daten über ein einziges Kabel übertragen werden können,
Abbildung 3: Blackfly S-Platinenkamera mit FPC-Kabel
Mehr ähnliche Artikel abonnieren
3) Beleuchtung: LED-Leuchten sorgen für ausreichende Beleuchtung, um Bewegungsunschärfe bei Nummernschildern zu vermeiden.
Anwendung 1: Nummernschilderkennung mittels Deep Learning
Entwicklungszeit: 2-3 Wochen, vor allem um das System robuster und schneller zu machen
Schulungsbilder: In LPDNet enthalten
Zur Nummernschilderkennung haben wir ein standardmäßiges Deep Learning-Modell von Nvidia License Plate Detection (LPDNet) eingesetzt, um die Position der Nummernschilder zu erkennen. Zur Erkennung von Buchstaben und Zahlen haben wir die Open-Source-OCR-Engine Tesseract verwendet. Bei der Kamera handelt es sich um eine Blackfly S-Platinenkamera mit 8,9 MP (BFS-U3-88S6C-BD) und einem Sony IMX267-Sensor. Wir haben den Bereich, der für die Erkennung von Nummernschildern von Interesse ist, zur Beschleunigung der Leistung eingeschränkt und zur Verbesserung der Robustheit Tracking eingesetzt. Die Ausgabe enthält Begrenzungsrahmen der Nummernschilder zusammen mit den entsprechenden Ziffern/Zeichen des Nummernschilds.
Abbildung 4: Streaming mit Begrenzungsrahmen der Kennzeichen und Ziffern/Zeichen des Nummernschilds.
Anwendung 2: Kategorisierung des Fahrzeugtyps mittels Deep Learning
Entwicklungszeit: ~12 Stunden einschließlich Bilderfassung und -beschriftung
Schulungsbilder: ~300
Für die Kategorisierung von Fahrzeugtypen haben wir mithilfe von Transfer Learning unser eigenes Deep Learning-Objekterkennungsmodell für die drei verwendeten Modellfahrzeuge, nämlich SUV, Limousine und LKW, trainiert. Wir haben etwa 300 Trainingsbilder des Aufbaus gesammelt, die in verschiedenen Entfernungen und Winkeln aufgenommen wurden. Bei der Kamera handelt es sich um eine Blackfly S 5 MP-Platinen-Farbkamera (BFS-U3-51S5C-BD) mit dem Sony IMX250-Sensor. Wir haben die Begrenzungsrahmen der Modellautos beschriftet, was etwa 3 Stunden in Anspruch nahm. Wir haben Transfer Learning ausgeführt, um unser eigenes SSD MobileNet-Objekterkennungsmodell zu trainieren, was etwa einen halben Tag auf einer Nvidia GTX1080 Ti GPU in Anspruch nahm. Mit dem GPU-Hardwarebeschleuniger kann das Jetson TX2-Modul effizient Deep Learning-Inferenzen durchführen und die Begrenzungsrahmen der Autos zusammen mit den entsprechenden Fahrzeugtypen ausgeben.
Abbildung 5: Streaming mit Begrenzungsrahmen und voreingestellten Fahrzeugtypen und Vertrauensfaktor identifiziert
Anwendung 3: Klassifizierung von Fahrzeugfarben mithilfe von Deep Learning
Entwicklungszeit: Wiederverwendetes Modell aus „Fahrzeugtyp-Anwendung“ mit zusätzlichen 2 Tagen für Farbklassifizierung, Integration und Test
Schulungsbilder: Wiederverwendung der gleichen 300 Bilder wie bei der „Fahrzeugtyp-Anwendung“
Für die Klassifizierung der Fahrzeugfarbe haben wir zur Erkennung der Autos dasselbe Deep Learning-Objekterkennungsmodell wie oben verwendet, gefolgt von einer Bildanalyse der Begrenzungsrahmen zur Klassifizierung von dessen Farbe. Die Ausgabe enthält Begrenzungsrahmen der Fahrzeuge zusammen mit den entsprechenden Fahrzeugfarben. Bei der Kamera handelt es sich um eine Blackfly S 3 MP-Platinen- Farbkamera (BFS-U3-32S4C-BD) mit dem Sony IMX252-Sensor.
Abbildung 6: Streaming mit Begrenzungsrahmen und voreingestellten Farbtypen identifiziert
Anwendung 4: Sicht durch die Windschutzscheibe (ohne Reflexion und Blendung)
Die Reduzierung der Blendung ist von entscheidender Bedeutung für verkehrsrelevante Anwendungen, wie die Sicht durch die Windschutzscheibe, um HOV-Spuren zu überwachen, die Einhaltung der Anschnallpflicht zu überprüfen und auch zu kontrollieren, ob die Fahrer während der Fahrt ihr Telefon benutzen. Aus diesem Grund haben wir eine maßgeschneiderte Kamera gebaut, indem wir eine Blackfly S USB3-Platinenkamera mit dem Sony 5 MP-Polarisationssensor IMX250MZR kombiniert haben. Diese Platinen-Polarisationskamera ist kein Standardprodukt, aber Teledyne FLIR ist in der Lage, verschiedene Sensoren einfach auszutauschen, um individuelle Kameraoptionen anzubieten und die Entblendungsfunktion zu präsentieren. Wir haben die Kamerabilder einfach über die SpinView-GUI von Teledyne FLIR gestreamt, die verschiedene Optionen für den „Polarisationsalgorithmus“ bietet, wie den Quad-Modus und den Blendreduzierungsmodus, um die Blendung eines stehenden Modellautos zu zeigen.
Abbildung 7: Die Spinnaker SDK GUI bietet verschiedene Optionen für den „Polarisationsalgorithmus“, wie den Quad-Modus und den Blendreduzierungsmodus, um die Blendung eines stehenden Modellautos zu zeigen. Der Quad-Modus zeigt die 4 Bilder, die den vier verschiedenen Polarisationswinkeln entsprechen.
Optimierung des Gesamtsystems
Während jeder der vier Prototypen unabhängig voneinander gut funktionierte, haben wir festgestellt, dass die Gesamtleistung recht schlecht war, wenn alle Deep Learning-Modelle gleichzeitig ausgeführt wurden. Nvidia’s TensorRT SDK bietet einen Deep Learning Inferenz-Optimierer und eine Laufzeitumgebung für Nvidia-Hardware wie das Jetson TX2-Modul. Wir haben unsere Deep Learning-Modelle mit dem TensorRT SDK optimiert, was zu einer etwa 10-fachen Leistungssteigerung führte. Auf der Hardwareseite haben wir einen Kühlkörper auf dem TX2-Modul angebracht, um eine Überhitzung zu vermeiden, da es bei allen laufenden Anwendungen ziemlich heiß wurde. Am Ende konnten wir mit allen vier Anwendungen zusammen gute Bildraten erzielen: 14 Bilder/Sek. für die Fahrzeugtyperkennung, 9 Bilder/Sek. für die Klassifizierung der Fahrzeugfarbe, 4 Bilder/Sek. für die automatische Nummernschilderkennung und 8 Bilder/Sek. für die Polarisationskamera.
Dank der Benutzerfreundlichkeit und Zuverlässigkeit der Quartet Embedded Solution und der Blackfly S-Platinenkameras haben wir diesen Prototyp in relativ kurzer Zeit entwickelt. Das TX2-Modul mit vorinstalliertem Spinnaker SDK gewährleistet Plug & Play-Kompatibilität mit allen Blackfly S-Platinenkameras, die zuverlässig mit voller USB3-Bandbreite über den TF38-Anschluss streamen können. Nvidia stellt zahlreiche Tools zur Verfügung, die die Entwicklung und Optimierung des TX2-Moduls erleichtern. Quartet ist ab sofort online auf flir.com sowie über unsere Niederlassungen und unser weltweites Vertriebsnetz erhältlich.
3) Lighting: LED lights to provide sufficient illumination to avoid motion blur for the license plates.
Application 1: License plate recognition using deep learning
Development time: 2-3 weeks primarily to make it more robust and run faster
Training Images: Included with LPDNet
For license plate recognition, we deployed an off-the-shelf License Plate Detection (LPDNet) deep learning model from Nvidia to detect the location the license plates. To recognize the letter & numbers we used the Tesseract open-source OCR engine. The camera is a Blackfly S board level 8.9 MP color camera (BFS-U3-88S6C-BD) with the Sony IMX267 sensor. We limited the region of interest for license plate detection to speed up performance and applied tracking to improve the robustness. The output includes bounding boxes of the license plates together with the corresponding license plate characters.
Figure 4: Streaming with bounding boxes of the license plates and license plate characters.
Application 2: Vehicle type categorization using deep learning
Development time: ~12 hours including image collection and annotation
Training Images: ~300
For vehicle type categorization, using transfer learning, we trained our own Deep Learning object detection model for the three toy cars used, namely SUV, sedan and truck. We collected approximately 300 training images of the setup, taken at various distances and angles. The camera is a Blackfly S board level 5 MP color camera (BFS-U3-51S5C-BD) with the Sony IMX250 sensor. We annotated the bounding boxes of the toy cars which took approximately 3 hours. We performed transfer learning to train our own SSD MobileNet object detection model which took around half a day on an Nvidia GTX1080 Ti GPU. With the GPU hardware accelerator, the Jetson TX2 module can perform deep learning inference efficiently and output bounding boxes of the cars together with the corresponding vehicle types.
Figure 5: Streaming with bounding boxes and pre-set vehicle types & confidence factor identified
Application 3: Vehicle color classification using deep learning
Development time: Re-used model from “Vehicle Type application” with additional 2 days to classify color, integrate & test
Training Images: Re-used same 300 images as “Vehicle Type application”
For vehicle color classification, we ran the same deep learning object detection model as above to detect the cars, followed by image analysis on the bounding boxes to classify its color. The output includes bounding boxes of the cars together with the corresponding vehicle colors. The camera is a Blackfly S board level 3 MP color camera (BFS-U3-32S4C-BD) with the Sony IMX252 sensor.
Figure 6: Streaming with bounding boxes and pre-set color types identified
Application 4: See through windshield (past reflection & glare)
Glare reduction is critical for traffic related applications such as seeing through a windshield to monitor HOV lanes, check for seatbelt compliance and even check for using their phones while driving. For this purpose, we made a custom camera by combining a Blackfly S USB3 board level camera with the 5MP polarization Sony IMX250MZR sensor. This board level polarization camera is not a standard product, but Teledyne FLIR is able to swap in different sensors easily to offer custom camera options to showcase its glare removal functionality. We simply streamed the camera images via Teledyne FLIR’s SpinView GUI, which offers various "Polarization Algorithm" options such as quad mode, glare reduction mode, to show the glare reduction on a stationary toy car.
Figure 7: Spinnaker SDK GUI offers various "Polarization Algorithm" options such as quad mode, glare reduction mode, to show the glare reduction on a stationary toy car. The quad mode shows the 4 images corresponding to the four different polarization angles.
Overall System Optimization
While each of the four prototypes worked well independently, we noticed that the overall performance was quite poor when all the deep learning models were running simultaneously. Nvidia’s TensorRT SDK provides a deep learning inference optimizer and runtime for Nvidia hardware such as the Jetson TX2 module. We optimized our deep learning models using the TensorRT SDK, resulting in around 10x performance improvement. On the hardware side, we attached a heat sink onto the TX2 module to avoid overheating, as it was quite hot with all the applications running. At the end, we managed to achieve good frame rates with all four applications running together: 14 fps for vehicle type identification, 9 fps for vehicle color classification, 4 FPS for automatic number plate recognition and 8 FPS for the polarization camera.
We developed this prototype within a relatively short period of time thanks to the ease-of-use and reliability of the Quartet Embedded Solution and Blackfly S board level cameras. The TX2 module with pre-installed Spinnaker SDK ensures plug & play compatibility with all the Blackfly S board level cameras which can stream reliably at full USB3 bandwidth via the TF38 connection. Nvidia provides many tools to facilitate development and optimization on the TX2 module. The Quartet is now available for purchase online on flir.com as well as through our offices and global distributor network.