La détection de contours est devenue un élément essentiel dans presque toutes les techniques de vision par ordinateur utilisées aujourd'hui dans divers domaines d'application1. La détection de contours constitue une étape d'extraction de caractéristiques et permet de récupérer des détails informatifs et distinctifs à partir d'images, ce qui peut être appliqué dans un large éventail de scénarios2. Les contours présents dans une image indiquent des régions où une variation brusque de l'intensité se produit ; ils fournissent ainsi des informations importantes et distinctives sur cette image. Ce processus facilite l'élimination des détails superflus et non pertinents, en conservant uniquement les éléments essentiels et uniques pouvant être traités ultérieurement pour l'application spécifique.
L'importance de la détection de contours est mise en évidence par son application dans diverses tâches, notamment la segmentation d'images, la détection et la reconnaissance d'objets, l'extraction de caractéristiques, l'amélioration d'images, l'identification d'objets, l'imagerie médicale, la surveillance, l'automatisation industrielle, la conduite autonome, la réalité augmentée et la robotique2,3,4,5,6, comme illustré dans Figure 1.
De nombreuses méthodes de détection de contours existent, notamment celles de Sobel, Prewitt, Roberts, Canny, et d'autres. Parmi ces techniques, la détection de contours de Sobel se distingue par son application simple, sa faible complexité de mise en œuvre et sa grande précision dans la détection des contours3,4,5,6. Les gradients de l'image sont déterminés par l'algorithme de détection de contours de Sobel dans les directions horizontale et verticale à l'aide des noyaux Gx et Gy respectivement, comme indiqué ci-dessous2,4.
Gx met en évidence les contours dans la direction ×, et Gy met en évidence les contours dans la direction y12,13. Lorsqu’ils sont combinés, ils définissent complètement tous les contours d'une image6. La convolution avec le noyau et le processus de fenêtre glissante sont utilisés pour appliquer la détection de contours de Sobel à une image. Un à un, des fenêtres de, par exemple, 3 par 3 pixels sont extraites de l'image, et chaque fenêtre est convoluée avec la matrice de filtre afin d'obtenir la nouvelle valeur du pixel central. L'image entière est traitée de cette manière de nouveau. Deux noyaux de ce type sont utilisés dans la détection de contours de Sobel : un pour extraire les contours dans la direction x et un autre pour la direction y. Pour obtenir tous les contours, ces deux résultats sont ensuite combinés. La détection de contours de Sobel produit des résultats précis et fiables, qui peuvent être encore améliorés par un prétraitement4,5,15. La détection complète de contours de Sobel est illustrée dans Figure 2.
Bien que toute la littérature publiée apporte des contributions significatives dans le domaine de la détection de contours, toutes les principales recherches rapportées ont porté sur des résolutions d'images faibles, alors que les travaux présentés dans cet article s'appuient sur différentes résolutions d'images, allant des images de faible résolution (256 × 256) à la résolution d'image haute définition complète (HD) (2560 × 1440). Par conséquent, étudier l'implémentation matérielle de l'algorithme de détection de contours de Sobel pour différentes résolutions d'images est essentiel pour comprendre l'efficacité de cette implémentation dans des scénarios en temps réel comportant des résolutions d'images variées. Le circuit logique programmable sur site (Field Programmable Gate Array, FPGA) est reconnu comme une plateforme adaptée aux implémentations matérielles, en raison de sa pertinence pour le développement rapide de prototypes et de ses avantages tels que la reconfigurabilité, qui permet de modifier facilement la conception sans devoir changer toute la configuration matérielle6,7,8,9,10,11,12,13. De plus, les FPGA offrent la possibilité de traitement parallèle et de pipeline ; une fois les métriques de performance optimisées et la plateforme validée, la conception peut évoluer vers la production effective de circuits intégrés spécifiques (Application Specific Integrated Circuits, ASICs)14,15. Une autre caractéristique importante des FPGA est leur reconfigurabilité, qui permet aux concepteurs de modifier la conception du produit à tout moment sans avoir à remplacer aucun composant matériel. Il suffit de reprogrammer la puce, ce qui prend très peu de temps ou d'effort, à condition que le concepteur maîtrise bien les langages de description matérielle tels que VHDL/Verilog4,6,13,16,17. Pour l'analyse de l'implémentation sur FPGA, les principaux paramètres pris en compte sont la vitesse (fréquence maximale), l'utilisation des ressources et l'efficacité énergétique. Tableau 1, qui illustre la quantité croissante de littérature publiée dans le domaine des FPGA, montre clairement comment les publications sur les FPGA ont évolué entre 2006 et 2024. Cela illustre nettement que le domaine de recherche sur les FPGA s'est désormais orienté vers des applications en temps réel, la réalité augmentée, l'informatique en périphérie et d'autres applications haut de gamme13,14,15,16,17,18,19,20,21,22,23.
Tableau 2 met en évidence les travaux réalisés dans la littérature existante relatifs à l'implémentation de la détection de contours de Sobel sur FPGA depuis 2020 à 2025. Tableau 2 mentionne la carte FPGA utilisée, les algorithmes implémentés, la méthodologie de conception, les résultats, les métriques, le domaine d'application et les défis de chaque article référencé.
Les auteurs4 ont recommandé d'utiliser la méthode de détection des contours de Sobel à 8 directions afin d'améliorer la précision de la détection des contours ; toutefois, ils ont signalé une consommation plus élevée de ressources pour la méthodologie proposée. Navinkumar et al. utilisent une technique permettant de réduire les opérations mathématiques complexes de multiplication et de racine carrée impliquées dans la détection traditionnelle des contours de Sobel, afin d'économiser les ressources embarquées et d'accroître la vitesse9. Les auteurs17 ont décrit l'utilisation de l'algorithme de détection des contours de Sobel pour identifier les voies dans les systèmes avancés d'aide à la conduite. Leur objectif était d'accélérer la détection tout en réduisant le temps de traitement. Dans l'ensemble, l'utilisation de la détection des contours a été proposée comme une méthode fiable pour l'extraction de la région d'intérêt à l'avenir, ce qui pourrait s'avérer très utile dans diverses applications où la zone requise d'une image doit être extraite tout en ignorant toute information inutile. Les défis signalés comprennent collectivement une utilisation plus élevée des ressources et de la mémoire, une sensibilité au bruit, un coût computationnel élevé et une évolutivité limitée pour les images de haute résolution4,5,6,11,12,13,21,22,23.
Dans ce travail, l'implémentation classique de l'algorithme de détection de contours de Sobel est réalisée sur la carte FPGA Ultra96-V2, pour différentes résolutions d'image allant d'une faible résolution de 256 × 256 à une résolution haute définition complète de 2560 × 1440. L'Ultra96-V2 est une carte qui combine les capacités de programmation FPGA avec le traitement puissant d'Arm (Cortex-A53/R5) pour des applications hautes performances. Cette carte a été initialement lancée en 2018 et utilise le nœud technologique FinFET en 16 nm18.
Pour garantir la reproductibilité, l'implémentation complète a été réalisée à l'aide d'une chaîne d'outils standard comprenant Vivado HLS 2019.2 pour la synthèse de haut niveau (HLS) et Vivado 2019.2 pour le placement-et-routage, ainsi que l'image PYNQ publiée par les ressources Ultra96-V2. Le code HLS a été utilisé pour obtenir l'IP (propriété intellectuelle) de détection de contours de Sobel, qui a été exportée et intégrée dans la suite de conception Vivado. L' IP a été implémentée dans la partie PL (logique programmable), tandis que la partie PS (système de traitement) du FPGA était chargée des transferts de données et des mécanismes de contrôle. L'interfaçage entre le PS et le PL a été réalisé via le protocole AXI. Toutes les métriques indiquées — fréquence, utilisation des ressources et consommation d'énergie — proviennent des rapports post-implémentation, et non des estimations HLS. Les paramètres d'implémentation sont restés constants, et seules les résolutions d'image ont été modifiées au cours des expériences.
Les réalisations importantes de ce travail concernent la faible consommation d'énergie, l'utilisation réduite des ressources et la haute vitesse. Les résultats indiquent moins de 20 % d'utilisation des ressources embarquées (18 % de tables de correspondance (LUT), 11 % de bascules (FF), 3 % de mémoire et 10 % de DSP) pour les images haute résolution, ce qui montre une grande disponibilité pour intégrer un traitement bien plus important sur ces images, comme on s'y attend dans tout système de vision par ordinateur, la détection de contours n'étant qu'une étape intermédiaire. De plus, la dissipation de puissance est d'environ 2 W, et la fréquence maximale de fonctionnement est de 144 MHz. Les résultats montrent que multiplier les tailles d'images par environ 56 augmente l'utilisation des ressources d'à peine 20 %. La vitesse et la dissipation de puissance sont également dégradées d'environ 20 % seulement. Cette analyse étudie de manière approfondie l'algorithme sous un angle différent, qui n'a pas été rapporté dans la littérature antérieure, indiquant ainsi que l'implémentation convient bien aux applications en temps réel, sans nécessité de limiter les images à de petites tailles ou à une résolution inférieure, ce qui réduirait forcément la quantité d'information nécessaire aux étapes ultérieures après la détection de contours.
La nouveauté de ce travail ne réside pas dans l'algorithme lui-même, mais dans l'évaluation des performances de l'algorithme traditionnel de détection de contours de Sobel à différentes résolutions d'image sur des architectures FPGA hétérogènes modernes, en tirant parti des avantages des techniques d'implémentation basées sur le HLS. Les principales contributions de cet article résident principalement dans l'application d'une méthodologie hybride implémentée sur un FPGA, permettant une répartition efficace de la charge de travail entre les sections PS et PL de l'architecture, ce qui permet à la conception de s'adapter facilement à différentes résolutions. Une autre contribution consiste à mener des expérimentations afin d'évaluer comment l'évolution de l'utilisation des ressources varie en fonction des changements de résolution d'image, ce qui aide à comprendre les performances dans différents contextes et pour diverses applications.