Diffusion en continu de 4 caméras avec petite carte de support : Prototype rapide
Les composants de vision intégrés sont toujours populaires et sont intégrés dans une multitude d’applications. Ce que toutes ces applications ont en commun est la nécessité d’intégrer de plus en plus de fonctionnalités dans des espaces réduits. Souvent, il est également très avantageux pour ces systèmes de prendre des décisions rapidement. Afin d’exploiter ces systèmes, dont la capacité de réaliser des prototypes rapidement, Teledyne FLIR a lancé la solution intégrée Quartet™ pour TX2. Cette carte de support personnalisée permet une intégration facile d’un maximum de 4 caméras de vision artificielle USB3 utilisant toute la bande passante. Elle comprend l’accélérateur matériel d’apprentissage profond NVidia Jetson et est préintégrée avec le SDK Spinnaker® de Teledyne FLIR. Souvent, il est également très avantageux pour ces systèmes de pouvoir prendre des décisions rapides, en particulier dans les domaines de l’inspection, de la robotique mobile, des systèmes de gestion du trafic routier et pour divers types de véhicules sans pilote.
Dans cet article très pratique, visant à mettre en avant ce que le Quartet peut permettre, nous décrivons les étapes suivies au cours du développement d’un prototype inspiré de systèmes ITS (systèmes de gestion du trafic routier) exécutant quatre applications simultanées, dont trois utilisent l’apprentissage profond :
- Application 1 : Reconnaissance de plaque d’immatriculation à l’aide de l’apprentissage profond
- Application 2 : Catégorisation de type de véhicule à l’aide de l’apprentissage profond
- Application 3 : Classification des couleurs de véhicule à l’aide de l’apprentissage profond
- Application 4 : Vision au travers des pare-brise (neutralisation de la réflexion et des reflets)
Figure 1 : Configuration de prototype pour les quatre applications
Liste d’achats : Composants matériels et logiciels
1) SOM pour traitement :
La nouvelle carte de support Teledyne FLIR Quartet pour TX2 comprend :
- 4 connecteurs TF38 avec contrôleurs USB3 dédiés
- Module Nvidia Jetson TX2
- Préinstallé avec le SDK Spinnaker puissant et facile à utiliser de Teledyne FLIR, il garantit la compatibilité plug and play avec les caméras version carte Blackfly S Teledyne FLIR.
- L’accélérateur matériel d’apprentissage profond Nvidia Jetson permet des systèmes de prise de décision complets sur une carte compacte unique.
Figure 2 : Solution intégrée Quartet avec TX2 illustrée avec 4 caméras Blackfly S et 4 câbles FPC.
2) Câbles et caméras
- 3 caméras standard version carte USB3 Blackfly S Teledyne FLIR utilisant le même ensemble de fonctionnalités riches que la version en boîtier appliqué aux derniers capteurs CMOS et pour une intégration transparente avec Quartet
- 1 caméra personnalisée : Caméra version carte USB3 Blackfly S avec capteur polarisé Sony IMX250MZR
- Câbles : Câbles FPC TF38 permettant la transmission de l’alimentation électrique et des données via un câble unique aux fins d’économie d’espace
Figure 3 : Caméra version carte Blackfly S avec câble FPC
Abonnez-vous pour voir d’autres articles similaires
3) Éclairage : Lampes LED pour fournir un éclairage suffisant afin d’éviter le flou de mouvement pour les plaques d’immatriculation.
Application 1 : Reconnaissance de plaque d’immatriculation à l’aide de l’apprentissage profond
Temps de développement : 2-3 semaines principalement pour le rendre plus robuste et pour une exécution plus rapide
Images de formation : Inclus avec LPDNet
Pour la reconnaissance de plaques d’immatriculation, nous avons déployé un modèle d’apprentissage profond prêt à l’emploi : la détection de plaques d’immatriculation (LPDNet) provenant de Nvidia pour détecter l’emplacement des plaques d’immatriculation. Pour reconnaître les chiffres et les lettres, nous avons utilisé le moteur OCR open source Tesseract. La caméra est une caméra version carte Blackfly S 8,9 MP couleur (BFS-U3-88S6C-BD) disposant du capteur Sony IMX267. Nous avons limité la région d’intérêt pour la détection de plaques d’immatriculation afin d’accélérer les performances et le suivi appliqué aux fins de robustesse accrue. Le résultat inclut des cadres de délimitation des plaques d’immatriculation ainsi que les caractères de plaque d’immatriculation correspondants.
Figure 4 : Diffusion en continu avec cadres de délimitation des plaques d’immatriculation et caractères de plaque d’immatriculation.
Application 2 : Catégorisation de type de véhicule à l’aide de l’apprentissage profond
Temps de développement : ~12 heures incluant la collecte et l’annotation d’images
Images de formation : ~300
Pour la catégorisation du type de véhicule, à l’aide de l’apprentissage par transfert, nous avons formé notre propre modèle de détection d’objets d’apprentissage profond pour les trois voitures jouets utilisées, à savoir SUV, berline et camion. Nous avons recueilli environ 300 images de formation de l’installation, prises à différentes distances et sous différents angles. La caméra est une caméra version carte Blackfly S 5 MP couleur (BFS-U3-51S5C-BD) disposant du capteur Sony IMX250. Nous avons annoté les cadres de délimitation des voitures jouets, ce qui a pris environ 3 heures. Nous avons effectué l’apprentissage par transfert pour former notre propre modèle de détection d’objets SSD MobileNet, cela nous a pris environ une demi-journée sur un GPU Nvidia GTX1080 Ti. Avec l’accélérateur matériel GPU, le module Jetson TX2 peut réaliser efficacement l’inférence d’apprentissage profond et produire des cadres de délimitation des voitures avec les types de véhicules correspondants.
Figure 5 : Diffusion en continu avec cadres de délimitation et types de véhicules prédéfinis et facteur de confiance identifié
Application 3 : Classification des couleurs de véhicule à l’aide de l’apprentissage profond
Temps de développement : Modèle réutilisé à partir de l’« application Type de véhicule » avec 2 jours supplémentaires pour la classification des couleurs, l’intégration et les tests
Images de formation : Mêmes 300 images réutilisées comme « application Type de véhicule »
Pour la classification des couleurs de véhicule, nous avons exécuté le même modèle de détection d’objet d’apprentissage profond que ci-dessus afin de détecter les voitures, suivi par une analyse d’image sur les cadres de délimitation pour la classification de leur couleur. Le résultat inclut des cadres de délimitation des voitures ainsi que les couleurs de véhicule correspondantes. La caméra est une caméra version carte Blackfly S 3 MP couleur (BFS-U3-32S4C-BD) disposant du capteur Sony IMX252.
Figure 6 : Diffusion en continu avec cadres de délimitation et types de couleurs prédéfinis identifiés
Application 4 : Vision au travers des pare-brise (neutralisation de la réflexion et des reflets)
La réduction des reflets est essentielle pour les applications liées au trafic routier, telles que vision au travers des pare-brise pour la surveillance des voies réservées aux véhicules à occupation multiple, contrôler le respect du port de la ceinture de sécurité et même contrôler l’utilisation par les conducteurs de leurs téléphones lorsqu’ils conduisent. À cette fin, nous avons conçu une caméra personnalisée en combinant une caméra version carte USB3 Blackfly S avec le capteur de polarisation Sony IMX250MZR 5 MP. Cette caméra de polarisation version carte n’est pas un produit standard, pour autant Teledyne FLIR est en mesure d’échanger facilement différents capteurs afin de proposer des options de caméra personnalisées pour présenter sa fonctionnalité de suppression des reflets. Nous avons simplement diffusé les images de la caméra via l’interface graphique SpinView de Teledyne FLIR, qui offre diverses options « Algorithme de polarisation » telles que le mode quad, le mode réduction des reflets, pour montrer la réduction des reflets sur une voiture jouet immobile.
Figure 7 : L’interface graphique du SDK Spinnaker offre diverses options d’algorithme de polarisation telles que le mode quad, le mode réduction des reflets, afin de montrer la réduction des reflets sur une voiture jouet immobile. Le mode quad affiche les 4 images correspondant aux quatre angles de polarisation différents.
Optimisation globale du système
Alors que chacun des quatre prototypes fonctionnait bien de manière indépendante, nous avons remarqué que les performances globales étaient plutôt médiocres lorsque l’ensemble des modèles d’apprentissage profond étaient exécutés simultanément. Le SDK TensorRT de Nvidia fournit un optimiseur d’inférence d’apprentissage profond et un environnement d’exécution pour le matériel Nvidia tel que le module Jetson TX2. Nous avons optimisé nos modèles d’apprentissage profond à l’aide du SDK TensorRT, ce qui a permis une amélioration des performances par 10 environ. Côté matériel, nous avons raccordé un dissipateur thermique au module TX2 pour éviter la surchauffe, car il faisait très chaud avec toutes les applications en cours d’exécution. Au final, nous avons réussi à obtenir de bonnes fréquences d’images avec les quatre applications fonctionnant ensemble : 14 ips pour l’identification du type de véhicule, 9 ips pour la classification des couleurs de véhicule, 4 IPS pour la reconnaissance automatique de la plaque d‘immatriculation et 8 IPS pour la caméra de polarisation.
Nous avons développé ce prototype dans un délai relativement court grâce à la facilité d’utilisation et à la fiabilité de la solution intégrée et des caméras version carte Blackfly S. Le module TX2 avec SDK Spinnaker préinstallé garantit une compatibilité plug & play avec toutes les caméras version carte Blackfly S pouvant diffuser de manière fiable sur toute la bande passante USB3 via la connexion TF38. Nvidia fournit de nombreux outils afin de faciliter le développement et l’optimisation sur le module TX2. Le Quartet est désormais disponible à l’achat en ligne sur flir.com ainsi qu’auprès de nos bureaux et de notre réseau mondial de distributeurs.
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.