Les caméras intelligentes, la vision par ordinateur, la vision industrielle… peu importe comment vous l'appelez, les applications de vision font leur chemin dans de plus en plus de produits. L'application classique que la plupart des concepteurs de PCB connaissent est la fabrication, et plus récemment, la reconnaissance faciale sur votre smartphone. Les concepteurs bien informés qui travaillent régulièrement avec des conceptions et des systèmes de vision industrielle observent de nombreuses applications uniques en médecine, automobile, robotique, aérospatiale, sécurité, et certainement dans d'autres domaines.
Un phénomène intéressant dans l'industrie électronique est la facilité avec laquelle la nouvelle technologie peut être intégrée dans de nouveaux systèmes au fur et à mesure de sa prolifération. La vision industrielle a certainement franchi le seuil à partir duquel la standardisation, le soutien des développeurs, et une richesse de composants sont disponibles pour les concepteurs qui veulent innover dans ce domaine. Aujourd'hui, il existe plusieurs plateformes matérielles populaires qui sont une option de niveau d'entrée pour les concepteurs plus récents. Si vous êtes au-delà du prototypage et que vous préparez du matériel de qualité production, de nouveaux processeurs permettent des systèmes plus intégrés qui exploitent des technologies avancées comme l'apprentissage automatique.
Dans ce guide, nous explorerons certains des composants nécessaires pour construire des systèmes de vision industrielle et les ressources disponibles pour les développeurs embarqués. Les systèmes de vision industrielle ont un élément important d'ingénierie matérielle et mécanique car nous traitons avec des caméras et des optiques. Le développement de ces systèmes est très riche, avec des tâches couvrant plusieurs disciplines. Heureusement, les fabricants de composants et les développeurs open-source ont accès à de nombreuses ressources pour aider à accélérer la conception matérielle et le développement des systèmes, et les développeurs intéressés sont encouragés à regarder certains des exemples que nous montrerons ici pour commencer.
En termes d'électronique, les systèmes de vision industrielle ont une architecture quelque peu générique par rapport à d'autres systèmes. Le schéma de bloc ci-dessous illustre une architecture de haut niveau générique qui est mise en œuvre dans les systèmes de vision industrielle. Ces systèmes peuvent avoir des niveaux d'intégration et des formats variés, avec certains des blocs montrés ci-dessous possiblement intégrés dans un processeur plus puissant.
Architecture de système de vision industrielle de haut niveau
Il n'existe pas de système de vision industrielle quintessentiel qui puisse servir de référence pour d'autres conceptions car la vision industrielle est une capacité, pas un produit ou un type de conception spécifique. Les systèmes de vision industrielle ont des caractéristiques communes comme le montre le schéma de bloc ci-dessus, mais ils sont mis en œuvre avec différents ensembles de composants. Plutôt que de jeter des listes de composants pour soutenir les systèmes de vision industrielle, nous devons commencer au niveau du processeur pour voir comment les algorithmes de traitement d'image peuvent être mis en œuvre efficacement.
Les MCU ou les SoC basés sur des MCU ont toujours été populaires, même pour les systèmes implémentant des capacités de vision par machine. Les MCU avec des interfaces numériques standard peuvent s'interfacer avec des ASICs spécialisés pour le traitement de la vision, tandis que les FPGA peuvent être assez grands pour implémenter l'acquisition d'images en ligne, les fonctions DSP et d'autres traitements au niveau du système. Les GPU peuvent fournir un processeur de vision externe dédié qui renvoie les données au contrôleur hôte.
En termes de niveau d'avancement, les architectures MPU + FPGA ou MPU + GPU sont préférables pour la vision par machine quasi en temps réel. Elles sont également préférables pour le traitement d'images de haute résolution car le FPGA/GPU peut implémenter la parallélisation, ce qui réduit le temps de traitement lorsque le traitement d'images de haute résolution/profondeur de couleur est nécessaire. C'est le principal avantage du FPGA car la logique est flexible, mais la gestion et les algorithmes pour un traitement avancé sont plus difficiles à développer sans expérience préalable.
Tout cela ne veut pas dire que les MCU et les MPU ne peuvent pas être utilisés comme contrôleurs hôtes dans les applications de vision par machine. Par exemple, votre téléphone et votre ordinateur n'utilisent pas ces technologies et ils peuvent effectuer certaines tâches de traitement d'image plus simples à partir de vidéo à faible taux de rafraîchissement et d'images statiques. Pour être juste, le CPU/SoC dans ces appareils a tendance à avoir beaucoup plus de capacités de calcul qu'un MPU haut de gamme. Un MCU pourrait être utilisé pour le traitement d'images de résolution inférieure, de taux de rafraîchissement inférieur, de profondeur de couleur inférieure ou monochrome, et à mesure que vous ajoutez plus de capacités de calcul, vous pouvez traiter des images plus détaillées. Les MPU sont une meilleure option en production car vous pourriez avoir besoin d'accéder à une mémoire externe à haute vitesse, ce qui signifie que vous aurez besoin d'une interface RAM DDR et possiblement de PCIe pour certains périphériques, quelque chose que vous ne trouverez généralement pas sur un MCU plus lent.
Si vous souhaitez implémenter des algorithmes de reconnaissance et de segmentation d'images plus avancés dans votre système, alors vous pourriez opter pour un SOM, COM, ou ordinateur à carte unique comme contrôleur principal pour votre application de vision par machine. Si un processeur dispose de suffisamment de mémoire sur puce et de RAM externe, il peut généralement implémenter la plupart des tâches d'acquisition et de traitement tout en exécutant également une application pour contrôler le reste de votre système. Ces architectures sont souvent utilisées pour la segmentation d'images basée sur des seuils et la détection d'objets dans des applications très spécifiques à partir de données vidéo à faible ou modéré taux de rafraîchissement.
Comme beaucoup d'autres conceptions qui fonctionnent essentiellement avec des signaux analogiques de bas niveau, les systèmes et les conceptions de vision par machine ont leur propre ensemble de défis électriques à considérer. Certaines des solutions se trouvent au niveau du traitement de l'image, d'autres sont au niveau du système et se rapportent à la sélection des composants. Voici quelques-uns des principaux défis que les concepteurs doivent considérer dans la conception de la vision par machine :
Gestion de la chaleur : Les caméras haute résolution montées sur carte dans des systèmes plus compacts peuvent recevoir beaucoup de chaleur pendant le fonctionnement, ce qui pourrait nécessiter un dissipateur thermique ou un flux d'air à travers le boîtier pour rester au frais. Les systèmes avec des processeurs plus petits et des cartes plus grandes peuvent généralement rester frais par eux-mêmes, mais les cartes plus petites avec des processeurs plus rapides pourraient nécessiter un matériau d'interface collé au boîtier pour évacuer la chaleur.
EMI/CEM : Étant donné que les systèmes de vision par ordinateur sont généralement des systèmes à signaux mixtes, ils nécessitent une disposition appropriée pour prévenir les interférences entre les composants numériques et la sortie d'un capteur CMOS ou CCD. Le CMOS pourrait être une meilleure option car la conversion des données est effectuée au niveau de la puce. Pour garantir une récupération d'image précise dans des systèmes compacts avec un traitement rapide, assurez-vous de mettre en œuvre certaines meilleures pratiques pour la suppression des EMI.
Intégrité de l'alimentation : Les systèmes de vision et les systèmes HMI peuvent rencontrer des problèmes d'intégrité de l'alimentation si la disposition n'est pas correctement construite, même dans le cas où la conception ne fonctionne pas avec des composants ou des protocoles à haute vitesse. Cela peut sembler être un problème qui peut être filtré, mais ce n'est pas le cas. Au lieu de cela, la solution peut être aussi simple que de s'assurer qu'un plan de masse est placé pour le routage de tous les signaux numériques arrivant sur la carte hôte.
Montage des optiques : Les systèmes de vision nécessitent des optiques pour définir les plans d'objet et d'image, et pour former des images claires sur le capteur d'imagerie afin que l'acquisition de données puisse se produire. Les systèmes modernes de vision par ordinateur nécessitent un montage stable avec une faible hystérésis et éventuellement une mise au point automatique avec contrôle moteur intégré. C'est un défi de conception mécanique ainsi qu'un défi de conception électrique, où ce dernier implique une consommation d'énergie dans un circuit de contrôle moteur et de temporisation.
Évidemment, nous ne pouvons pas montrer chaque composant possible dans cet article car cela serait simplement trop long. Ce que nous pouvons faire, c'est vous donner une bonne liste de composants que vous pouvez utiliser pour commencer à construire différentes parties de votre système. Dans la liste ci-dessous, j'ai inclus quelques composants exemples de chaque partie d'un nouveau système que vous pouvez utiliser pour commencer :
Les MCU comme STM32 et MSP430 sont une excellente option pour faire fonctionner un système de vision par ordinateur léger et mettre en œuvre certaines tâches d'inférence IA plus simples.
Pour quelque chose avec beaucoup plus de capacité de calcul, la plateforme FPGA Zynq est une excellente option pour les systèmes de vision par ordinateur. Xilinx offre également beaucoup de support aux développeurs pour les systèmes de vision par ordinateur construits sur Zynq.
Les capteurs d'image CMOS et les capteurs CCD peuvent être monochromes ou en couleur, et ils sont disponibles dans une gamme de résolutions. Quelque chose comme le MT9P031I12STC-DR1 de ON Semiconductor est un bon exemple de capteur CMOS couleur pour les applications de vision par ordinateur à haute résolution.
Pour développer une application de haut niveau, OpenCV est un excellent ensemble de bibliothèques open source qui inclut de nombreuses fonctions de traitement d'image standard utilisées dans les systèmes de vision par ordinateur. Il existe d'autres bibliothèques open source en ligne qui peuvent être utilisées pour le développement d'applications plus spécialisées.
Je recommanderais un GPU ou un FPGA pour des tâches plus généralisées comme la reconnaissance d'image, la segmentation et l'identification d'objets avec suivi dans les données vidéo sans appliquer de prétraitement spécifique à l'application (c'est-à-dire, à partir d'images brutes). Je mentionne cela ici parce que nous devons considérer comment interfacer avec le capteur d'image, et le capteur doit être assorti au processeur. Dans un FPGA, la logique d'acquisition et le traitement subséquent peuvent être mis en œuvre en parallèle avec le reste de la logique pour l'application.
Une plateforme matérielle open source populaire qui peut être utilisée pour le développement de systèmes est OpenMV. Ces modules de caméra intègrent une logique pour l'acquisition d'images, du matériel pour le montage d'éléments optiques, et un PCB pour assurer l'EMI/EMC et le SI/PI. Ils sont également compatibles avec les MCU STM32 et d'autres plateformes. C'est un bon système pour les développeurs d'applications qui veulent utiliser un processeur externe comme contrôleur hôte pour une application plus large dans le système, mais sans se perdre dans le développement et le débogage matériel.
Module caméra M7 (à gauche) et Module adaptateur FLIR Lepton (à droite).
La vision par ordinateur est extrêmement utile sous toutes ses formes, et il n'est pas surprenant que des solutions avancées basées sur des MCU, MPU ou FPGA devraient être intégrées au cloud. Selon la manière dont le calcul dans le cloud est exploité, il pourrait être plus judicieux de déléguer le traitement au centre de données plutôt que de l'effectuer en périphérie, ainsi un MCU ou un MPU léger pourrait être utilisé. Lorsqu'un traitement rapide est nécessaire sur le terrain, les tâches de traitement devraient être effectuées sur le terrain avec un contrôleur hôte plus puissant (FPGA, MPU + FPGA, ou MPU + GPU). Encore une fois, le choix dépend de la quantité de prétraitement que vous effectuez sur l'appareil pour nettoyer et compresser les images avant de les envoyer dans le cloud pour traitement.
Pour les applications d'IA/ML impliquant la vision par ordinateur, certaines entreprises fournissent des SoC et des ASIC en complément des processeurs plus lents ou comme modules d'extension pour les SBC. Google Coral est l'une de ces options, agissant comme un processeur dédié pour exécuter des modèles TensorFlow Lite impliquant l'inférence à partir de données d'image. D'autres options arrivent sur le marché de la part de startups qui ciblent l'inférence IA pour plusieurs flux vidéo, remplaçant idéalement les GPU par des emballages plus petits.
Les systèmes de vision par ordinateur doivent faire bien plus que simplement capturer et traiter des images. Les systèmes d'aujourd'hui sont connectés, ils interfacent avec de multiples capteurs, Certains autres composants dont vous pourriez avoir besoin pour votre système de vision par ordinateur incluent :
Composants pour les fronts d'onde RF dans les systèmes sans fil
Ponts d'interface numérique pour les protocoles industriels courants
La conception de systèmes de vision par ordinateur nécessite une expertise dans plusieurs domaines et une collaboration avec une équipe, mais la sélection des composants pour ces systèmes ne devrait pas être difficile. Lorsque vous avez besoin de trouver des composants pour votre application de vision par ordinateur, utilisez les fonctionnalités de recherche avancée et de filtrage sur Octopart. Lorsque vous utilisez le moteur de recherche électronique d'Octopart, vous aurez accès aux données de prix des distributeurs à jour, à l'inventaire des pièces, et aux spécifications des pièces, et tout est librement accessible dans une interface conviviale. Jetez un œil à notre page de circuits intégrés pour trouver les composants dont vous avez besoin.
Restez à jour avec nos derniers articles en vous inscrivant à notre newsletter.