Article de méthode

Une architecture matérielle adaptative en résolution pour la détection de contours de Sobel en temps réel, permettant une mise à l'échelle sous-linéaire des ressources

17 vues

DOI :

10.3791/71589

28 août 2026

Dans cet article

Résumé

Ce travail présente une implémentation sur plateforme hétérogène Ultra96-V2, basée sur un FPGA, de l'algorithme de détection de contours de Sobel, en évaluant l'utilisation des ressources, la consommation d'énergie et la vitesse pour des résolutions d'image allant de 256 × 256 à 2560 × 1440. L'architecture proposée démontre une évolution sous-linéaire de l'utilisation des ressources pour les applications de traitement d'image en temps réel.

Résumé

La détection de contours est un domaine clé de la vision par ordinateur et est devenue une composante essentielle de diverses applications. Elle permet d'identifier les contours, qui constituent des caractéristiques fondamentales des images et représentent des attributs importants facilitant l'extraction d'informations clés et distinctives à partir des images. L'implémentation matérielle de la détection de contours doit être rapide, utiliser un minimum de ressources, consommer peu d'énergie et s'adapter à différentes résolutions d'image. Cet article présente une implémentation de la détection de contours de Sobel adaptée à des résolutions d'image variables, allant d'une image basse résolution à une image haute définition complète, en utilisant une plateforme moderne de circuit logique programmable hétérogène (FPGA), l'Ultra96-V2. Les résultats montrent qu'environ 5 % des ressources embarquées du FPGA, notamment les tables de correspondance (LUT), les bascules (FF), les processeurs de traitement numérique du signal (DSP) et la mémoire en bloc (BRAM), sont utilisées pour les images basse résolution, contre environ 23 % pour les images haute résolution. Cela indique que l'augmentation de l'utilisation des ressources lors du passage d'une basse à une haute résolution est inférieure à 20 %. De plus, la dissipation de puissance est d'environ 2 W pour la résolution maximale, et la fréquence de fonctionnement maximale atteint 136 MHz pour les images haute résolution et 166 MHz pour les images basse résolution, soit une diminution de seulement 18 % en fréquence. L'architecture proposée permet une évolution sous-linéaire des ressources, avec une augmentation inférieure à 20 % de l'utilisation des ressources et une réduction inférieure à 20 % de la vitesse et de la consommation d'énergie lors du traitement d'un nombre de pixels augmenté de 56 fois, tirant parti des avantages de l'architecture FPGA hétérogène moderne. Par conséquent, la capacité d'adaptation à la résolution combinée à une faible évolution des ressources rend la conception proposée particulièrement adaptée aux applications de détection de contours en temps réel nécessitant un traitement d'image de haute qualité.

Introduction

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.

Protocole

1. Implémentation de la détection de contours de Sobel dans l'outil HLS

  1. Ouvrez l'outil Vivado HLS 2019.2 et créez un projet. Sélectionnez la carte FPGA Ultra96-V2.
  2. Écrivez le code en langage évolué en utilisant le langage C++ pour la détection de contours par l'opérateur de Sobel, avec un paramètre de taille d'image généralisé et non fixe.
    NOTE : La largeur et la hauteur de l'image ne sont pas fixes et sont définies comme paramètres généraux dans le code, afin de pouvoir être facilement modifiées lors d'un changement de résolution d'image, sans avoir à effectuer des modifications à plusieurs endroits.
  3. Écrivez le code de banc d'essai pour l'algorithme de détection de contours par Sobel en C++.
    NOTE : Le banc d'essai est conçu pour fournir les images d'entrée sur lesquelles le code est testé.
  4. Cliquez sur « exécuter la simulation C » pour simuler le code et vérifier sa correction fonctionnelle. Fournissez une image d'entrée au banc d'essai, puis examinez l'image de sortie générée, qui doit présenter les contours détectés.
  5. Cliquez sur « exécuter la synthèse C » pour synthétiser le code HLS et exporter l'IP de détection de contours par Sobel.
    NOTE : Le processus de synthèse consiste essentiellement à mapper la conception codée vers des composants matériels, rendant ainsi la conception compatible et prête pour une implémentation matérielle.
  6. Vérifiez les rapports de temps et d'utilisation des ressources générés par l'outil, et assurez-vous que le temps estimé ne dépasse pas le temps cible.
    NOTE : Tous ces résultats provenant de la plateforme HLS sont uniquement des estimations ; les paramètres réels ne sont déterminés qu'une fois la conception implémentée sur un FPGA.
  7. Cliquez sur « exporter l'IP » pour exporter l'IP correspondant à la procédure de détection de contours par Sobel.
    NOTE : Cette IP est utilisée à l'étape suivante lors de la conception du diagramme en blocs pour l'implémentation FPGA dans l'outil Vivado.

2. Mise en œuvre de la détection de contours de Sobel sur la plateforme FPGA Ultra96-V2 à l'aide d'un IP HLS extrait

  1. Ouvrez l'outil de conception Vivado et créez un nouveau projet. Sélectionnez la carte cible comme étant Ultra96-V2, puis cliquez sur « Create a new block design ».
  2. Importez l'IP de détection de contours de Sobel exportée depuis l'outil HLS. Ajoutez les autres blocs nécessaires pour compléter l'interface entre la partie PS et la partie PL.
    NOTE : Le diagramme en blocs utilise également d'autres IP importantes, telles que l'IP Zynq Ultrascale, le Smart Connect et la remise à zéro du processeur, entre autres, afin d'établir l'interface entre PS et PL en utilisant le protocole Advanced eXtensible Interface (AXI).
  3. Cliquez sur « validate design » pour valider la conception du bloc. Assurez-vous qu'aucune erreur de conception n'est signalée par l'outil. S'il y a des erreurs, suivez les instructions de correction, puis validez à nouveau.
    NOTE : Cette étape permet de s'assurer qu'il n'y a pas de connexions manquantes dans le diagramme en blocs, mais elle ne vérifie pas la justesse fonctionnelle de la conception du bloc.
  4. Cliquez sur « create the HDL wrapper » pour obtenir un code HDL généralisé correspondant à la conception du bloc.
  5. Cliquez sur « run synthesis » pour synthétiser la conception et détecter d'éventuelles erreurs signalées. Si aucune erreur n'est détectée, l'outil indique une synthèse réussie. Après une synthèse réussie, consultez les rapports de synthèse relatifs au chronogramme afin de rechercher d'éventuelles violations temporelles.
  6. Pour vérifier les violations temporelles, assurez-vous qu'aucun délai n'est indiqué en texte rouge, car cela signifie que le temps utilisé dépasse la cible attribuée, indiquant ainsi des violations.
  7. Cliquez sur « run implementation » pour implémenter la conception et évaluer les rapports relatifs au chronogramme, à la consommation d'énergie et à l'utilisation des ressources.
  8. Générez le fichier « .bit » afin de programmer la carte FPGA.
    NOTE : Le diagramme en blocs pour la détection de contours de Sobel sur Ultra96-V2 est illustré dans la Figure 3. Comme mentionné précédemment, ce diagramme en blocs est essentiellement nécessaire pour établir une interface entre la partie PS et la partie PL de la carte FPGA.

3. Programmation de la carte FPGA

  1. Pour préparer la carte SD, téléchargez le fichier image PYNQ (.img) pour la carte Ultra96-V216 et installez le fichier téléchargé sur la carte SD.
  2. Mettez sous tension la carte en mode de démarrage à partir de la carte SD en sélectionnant les positions des commutateurs conformément au manuel de référence Ultra96-V216.
  3. Visitez l'URL http://192.168.3.1 et saisissez le nom d'utilisateur et le mot de passe, tous deux « xilinx », lorsque vous y êtes invité.
    REMARQUE : Il est recommandé d'utiliser le navigateur Google Chrome afin d'éviter tout problème technique.
  4. Accéder à la plateforme Jupyter et écrire un code Python pour la partie PS afin de lire les images ou vidéos d'entrée et d'envoyer l'image lue à la partie PL pour traitement.
  5. Écrire un code pour la tâche d'enregistrement des images traitées depuis PL vers PS et d'affichage du résultat.
    REMARQUE : Pour afficher les résultats sur Ultra96-V2, la plateforme PYNQ est utilisée, ce qui permet de visualiser facilement les images de sortie simplement à l’aide de codes Python et des bibliothèques OpenCV.
    Figure 4 montre les étapes de l'approche Ultra96-V2 telles que démontrées dans cette section, ainsi que les sorties obtenues.

Résultats

Cette section présente les résultats obtenus lors de la conception de la détection de contours de Sobel sur Ultra96-V2. Figure 5 ci-dessous montre les images d'entrée et de sortie obtenues par simulation HLS. Les images utilisées sont des images standard de taille 512 × 512. Ces résultats démontrent que le code HLS écrit pour la détection de contours de Sobel est fonctionnellement correct. Les contours doivent être clairement visibles sur les images résultantes.

Tableau 3 présente les rapports de synthèse ainsi que les paramètres générés concernant le chronométrage et l'utilisation des ressources sur l'Ultra96-V2 avec la partie FPGA xczu3eg-sbva484-1-e. Le rapport comprend des informations relatives au chronométrage, indiquant si la conception respecte les contraintes temporelles spécifiées par l'utilisateur. Selon le résumé temporel, le temps estimé de 8,544 ns est inférieur au temps cible de 10 ns, ce qui indique clairement que la conception satisfait aux contraintes imposées par l'utilisateur.

Les outils HLS génèrent également une estimation de l'utilisation des ressources, fournissant au concepteur une évaluation de l'occupation potentielle des ressources embarquées. Les paramètres d'utilisation réels ne peuvent être générés qu'après la réalisation matérielle effective. Bien qu'il existe de nombreuses catégories très différentes de ressources sur un FPGA, les composants matériels les plus utilisés sont les LUT (tables de correspondance), les bascules FF (Flip Flops), les tranches DSP (Digital Signal Processing Slices) et la mémoire.

Tableau 3 indique également le temps réel et l'utilisation des ressources lorsque la détection de contours de Sobel est mise en œuvre sur l'Ultra96-V2 pour des images haute résolution. L'analyse temporelle montre que la marge négative maximale est de 3,102 ns, ce qui signifie qu'il y a suffisamment de temps pour le traitement, permettant ainsi d'atteindre une fréquence d'horloge de 144 MHz. La fréquence de fonctionnement atteinte de 144 MHz à une résolution de 1920 × 1080 correspond à un débit d'environ 299 MP/s, débit qui dépasse les 62 MP/s nécessaires au traitement vidéo Full HD en temps réel à 30 images par seconde. Afin de comprendre l'évolution des ressources et l'effet sur les paramètres lors du passage d'images basse résolution à haute résolution, le tableau présente les résultats expérimentaux obtenus en répétant les mêmes étapes pour différentes résolutions.

Tableau 4 mentionne la taille de l'image et donc le nombre total de pixels, puis la fréquence de fonctionnement, la puissance et l'utilisation des ressources en termes de LUT, de bascules (FF), de mémoire BRAM et de DSP. On peut clairement observer qu'en passant de la résolution la plus faible considérée, 256 × 256, à la plus élevée, 2560 × 1440, ce qui implique une augmentation d'environ 56 fois du nombre de pixels, les paramètres ne varient que de 20 %. Cela indique clairement une évolution sous-linéaire des ressources, où les données à traiter augmentent fortement, mais la dégradation des indicateurs de performance est très faible, ce qui la rend adaptée à un déploiement en temps réel.

Les résultats présentés dans le Tableau 4 démontrent clairement que l'application de la détection de contours de Sobel sur l'Ultra96-V2 offre des avantages significatifs pour les tâches nécessitant des résolutions adaptables, puisque les métriques de performance restent optimisées et ne présentent pas de changements considérables lors de la mise à jour de la taille de l'image, passant d'une faible à une haute résolution. Ce succès s'explique par l'approche de mise en œuvre hybride, qui évite de surcharger la logique du FPGA avec les données d'image, permettant ainsi au processeur de la carte de gérer la charge importante liée aux images. Le processeur se contente de transmettre les données d'image au composant logique du FPGA, toute augmentation de l'échelle des ressources ou réduction de la fréquence maximale résultant uniquement du volume important de données nécessitant un traitement plus intensif. Ainsi, on peut affirmer que l'approche suivie dans cet article permet une évolution sous-linéaire des ressources, même si le nombre de pixels de l'image augmente d'environ 56 fois.

Les travaux mis en œuvre sont également comparés aux conceptions existantes afin de comprendre la différence en matière de métriques de performance, telles que la résolution d'image, la fréquence d'horloge, la consommation d'énergie et l'utilisation des ressources. Tableau 5 illustre la comparaison avec les publications les plus récentes.

Comme le montre clairement le Tableau 5, les travaux mis en œuvre dans cet article présentent des métriques de performance adéquates, mais les solutions existantes des implémentations précédemment rapportées9,10 disposent de paramètres meilleurs. Toutefois, lorsqu'une comparaison globale est effectuée, on peut noter que les deux travaux antérieurs9,10 ont été réalisés sur des résolutions d'image faibles et sur des plateformes FPGA obsolètes, tandis que les résultats présentés dans cet article correspondent à des résolutions d'image adaptatives, où la taille d'image considérée varie de la résolution minimale de 256 × 256 à une résolution haute définition allant jusqu'à 2560 × 1440. Les résultats indiquent que l'approche de détection de contours de Sobel implémentée, qui exploite les capacités à la fois du processeur et de la partie logique de la carte FPGA hétérogène Ultra96-V2, s'avère utile pour atteindre une évolution sous-linéaire de l'utilisation des ressources lorsque le nombre de pixels augmente d'environ 56 fois, alors que l'utilisation des ressources n'augmente que de 20 %, et la dégradation en puissance et en vitesse est également inférieure à 20 %. Pour la résolution la plus faible, seulement 5 % des ressources sont utilisées, et l'utilisation maximale atteint 23 %, laissant ainsi une large disponibilité pour un traitement supplémentaire. Ainsi, on peut clairement affirmer qu'en raison de la différence de résolutions d'image, une comparaison directe est difficile, mais si l'on analyse la conception implémentée dans ce travail, la fréquence d'horloge est de 136 MHz, la consommation de puissance est de 2 W, et l'utilisation des ressources est inférieure à 23 % des ressources totales embarquées. Il est important de souligner que les implémentations rapportées dans les travaux antérieurs9,10 démontrent des métriques de performance individuelles supérieures. Cependant, il est essentiel de noter que ces deux travaux évaluent leurs conceptions à une seule résolution d'image fixe, tandis que le travail proposé est évalué sur une large gamme de résolutions allant de 256 × 256 à 2560 × 1440. Les objectifs de conception sont donc fondamentalement différents : les travaux9,10 optimisent la performance maximale à une résolution donnée, tandis que l'architecture proposée privilégie l'adaptabilité et une évolution sous-linéaire des ressources à travers plusieurs résolutions. Cela rend la conception implémentée adaptée aux applications nécessitant une détection de contours.

On peut donc affirmer que, dans ce travail, une évolution sous-linéaire des ressources est définie comme la condition dans laquelle l'augmentation en pourcentage de l'utilisation des ressources est nettement inférieure à l'augmentation en pourcentage du nombre de pixels. Lorsque la résolution passe de 256 × 256 à 2560 × 1440, le nombre de pixels augmente d'environ 5600 %, tandis que l'utilisation des ressources embarquées augmente de moins de 20 %. Ce taux de croissance des ressources disproportionnellement faible, résultant directement de la stratégie de partitionnement hétérogène PS-PL, confirme le comportement d'évolution sous-linéaire de l'architecture proposée. Bien que l'implémentation proposée démontre une évolution sous-linéaire des ressources sur la plage de résolutions testée, certaines limitations doivent être notées pour une interprétation correcte des résultats. La fréquence de fonctionnement diminue de 18 % entre les faibles et les hautes résolutions, et une extrapolation au-delà de 2560 × 1440 pourrait nécessiter un ajustement architectural afin de maintenir la fermeture temporelle. De plus, comme le transfert des données d'image est géré par le processeur ARM, la surcharge liée au transfert côté PS augmente linéairement avec le nombre de pixels et pourrait limiter le débit dans des applications de diffusion vidéo continue en haute résolution, au-delà de ce que suggèrent seules les métriques côté PL.

Schéma des applications de la détection de contours : robotique, imagerie, réalité augmentée, automatisation, surveillance.
Figure 1 : Divers domaines d'application de la détection de contours. Illustration de domaines d'application représentatifs dans lesquels la détection de contours est couramment utilisée, notamment la vision par ordinateur, l'imagerie médicale, la surveillance, la robotique et l'automatisation industrielle. Veuillez cliquer ici pour visualiser une version agrandie de cette figure.

Traitement d'image : schéma de détection de contours par opérateur de Sobel avec noyaux de convolution sur une image d'entrée.
Figure 2 : Description des étapes de l'algorithme de détection de contours de Sobel. Flux de travail illustrant le processus de détection de contours par la méthode de Sobel, incluant l'extraction d'une fenêtre d'image de 3 × 3, la convolution avec les noyaux de Sobel horizontaux et verticaux, et la génération de l'image de sortie avec les contours détectés. Veuillez cliquer ici pour visualiser une version agrandie de cette figure.

Diagramme en blocs de Zynq UltraScale+, architecture du système montrant le flux de données et les composants interconnectés AXI.
Figure 3 : Diagramme en blocs implémenté pour la détection de contours Sobel sur la carte FPGA Ultra96-V2 utilisant l'interface entre la PS (système de traitement) et la PL (logique programmable). Diagramme en blocs montrant l'architecture matérielle et l'interconnexion du système de traitement (PS), de la logique programmable (PL) et des cœurs IP associés utilisés pour l'implémentation FPGA. Veuillez cliquer ici pour afficher une version agrandie de cette figure.

Processus de gravure de l'image PYNQ et flux de conception Vivado ; configuration de la carte SD, validation, génération du fichier bit.
Figure 4 : Étapes de programmation de la carte Ultra96-V2 pour la détection de contours de Sobel à l'aide de la plateforme PYNQ et résultat de la détection de contours de Sobel sur une image d'entrée. Flux de travail illustrant la procédure de programmation de la carte Ultra96-V2 à l'aide de la plateforme PYNQ et une image de sortie représentative obtenue après implémentation sur FPGA. Veuillez cliquer ici pour visualiser une version agrandie de cette figure.

Détection de couleur et de contours en traitement d'images ; grille comparative d'images originales et d'images avec contours renforcés.
Figure 5 : Résultats de simulation de la détection de contours de Sobel sur différentes images standards à l'aide de Vivado HLS (2019.2). Images d'entrée représentatives et leurs sorties correspondantes avec détection de contours obtenues lors de la simulation fonctionnelle de l'algorithme de détection de contours de Sobel à l'aide de Vivado HLS 2019.2. Veuillez cliquer ici pour afficher une version agrandie de cette figure.

Tableau 1 : Évolution des applications des FPGA dans la recherche en vision par ordinateur (2006–2024). Synthèse des applications représentatives de vision par ordinateur basées sur FPGA publiées entre 2006 et 2024. Veuillez cliquer ici pour télécharger ce tableau.

Tableau 2 : Littérature associée à la mise en œuvre d'algorithmes de détection de contours sur FPGA (2020-2025). Comparaison des implémentations récentes de la détection de contours basées sur FPGA, incluant la plateforme, la méthodologie et les métriques de performance rapportées. Veuillez cliquer ici pour télécharger ce tableau.

Tableau 3 : Implémentation de la détection de contours de Sobel sur FPGA : paramètres estimés et paramètres réels. Résultats estimés de la synthèse HLS et résultats correspondants de temporisation et d'utilisation des ressources après implémentation obtenus pour l'implémentation sur FPGA. Veuillez cliquer ici pour télécharger ce tableau.

Tableau 4 : Utilisation des ressources et métriques de performance de l'algorithme de détection de contours de Sobel implémenté à différentes résolutions d'image. Métriques de performance, fréquence de fonctionnement, consommation d'énergie et utilisation des ressources FPGA de l'implémentation proposée pour différentes résolutions d'image. Veuillez cliquer ici pour télécharger ce tableau.

Tableau 5 : Comparaison de la détection de contours de Sobel implémentée et des méthodes existantes sur FPGA. Comparaison de la mise en œuvre proposée sur FPGA avec des implémentations antérieures de la détection de contours de Sobel, à l’aide de métriques de performance représentatives. Veuillez cliquer ici pour télécharger ce tableau.

Discussion

Cet article se concentre sur l'exécution de l'algorithme de détection de contours de Sobel, qui constitue un élément essentiel dans diverses applications relevant de plusieurs domaines de la vision par ordinateur et du traitement d'images2,3,4,5,6. La mise en œuvre de la détection de contours de Sobel est réalisée à l'aide de l'outil Vivado HLS, permettant ainsi de coder dans des langages de haut niveau au lieu de recourir à des langages de description matérielle. Le code Vivado HLS est exécuté sur la carte Ultra96-V2. Les résultats après implémentation indiquent que la conception réalisée prend en charge des images haute résolution et fonctionne à une fréquence de 136 MHz avec une consommation de puissance de 2 W et moins de 20 % des ressources totales embarquées. De plus, les résultats ont montré que l'approche convient à une résolution d'image adaptative, car différentes applications peuvent exiger l'utilisation de tailles d'image variées, et la détection de contours est généralement une étape intermédiaire2,3,4,5,6, effectuée très fréquemment dans des chaînes de conception complexes. Ainsi, on peut affirmer que le système conçu peut être déployé dans des applications en temps réel nécessitant une détection de contours. La grande disponibilité de ressources suggère que diverses autres étapes de traitement peuvent être intégrées au système développé6,7,8,9,10,11,12,13,14,15.

La mise en œuvre réussie du détecteur de contours de Sobel sur la carte Ultra96-V2 exige une attention particulière à plusieurs aspects pratiques. Le cadre PYNQ simplifie considérablement l'interaction PS–PL en permettant le contrôle du matériel via des bibliothèques Python, réduisant ainsi l'effort de développement logiciel. Toutefois, il est nécessaire de télécharger l'image PYNQ correcte depuis la source officielle, et la carte SD doit être configurée correctement avant le déploiement. La vérification fonctionnelle de la conception HLS à l'aide de bancs d'essai complets est essentielle avant l'exportation de l'IP, car une validation précoce permet d'identifier les erreurs algorithmiques et d'interface avant la mise en œuvre matérielle. Lors des implémentations FPGA, la conception du diagramme en blocs requiert également une grande attention du concepteur, car il est conseillé de bien comprendre l'architecture du matériel FPGA considéré, afin de sélectionner les blocs appropriés et d'établir les connexions correctement. Il n'est pas recommandé d'automatiser complètement les connexions, car cela pourrait entraîner des connexions manquantes ou inadaptées à la conception à suivre. À ce stade de l'interface PS–PL, des erreurs telles qu'un mappage incorrect des adresses AXI, des inadéquations entre domaines d'horloge ou des transferts DMA mal configurés peuvent empêcher une communication réussie entre le processeur et la logique programmable. Ces problèmes peuvent être identifiés à l'aide des outils de validation de conception de Vivado et résolus en vérifiant les attributions d'adresses, les configurations d'horloge, les connexions d'interruption et les paramètres DMA avant la génération du bitstream. Lors de l'implémentation FPGA, des violations temporelles peuvent survenir en raison de chemins combinatoires trop longs ou d'un pipelinage insuffisant. L'augmentation du nombre d'étages de pipeline, l'optimisation des structures de boucles ou l'assouplissement des contraintes temporelles lorsque cela est approprié peuvent aider à atteindre la convergence temporelle.

Bien que ce travail valide l'architecture de partitionnement PS-PL proposée spécifiquement pour la détection de contours de Sobel, l'approche architecturale est par nature généralisable. Tout algorithme pouvant s'exprimer comme une convolution par fenêtre glissante — notamment Prewitt, Roberts, le laplacien du gaussien ou l'étape de gradient de Canny — peut être implémenté selon une approche similaire, avec des modifications principales dans la conception HLS3,4,5,6. Ce travail présente certaines limitations. L'une d'elles est le délai dû au transfert des données entre la partie PS et la partie PL de l’FPGA, ce qui affecte le temps total d'exécution de l'algorithme. En outre, la découverte d'une mise à l'échelle sous-linéaire est spécifique à l'architecture hétérogène Ultra96-V216 et pourrait ne pas s'appliquer directement à des plates-formes FPGA homogènes dépourvues de processeur dédié.

Le champ d'application futur implique une amélioration supplémentaire du design grâce à certaines optimisations pouvant accroître la vitesse et réduire davantage la consommation d'énergie. En outre, l'adaptation de la mise en œuvre à des scénarios en temps réel constitue un autre aspect potentiel à envisager à l'avenir.

Déclarations de divulgation

Les auteurs déclarent qu'ils n'ont aucun conflit d'intérêts. Aucun outil d'intelligence artificielle (IA) n'a été utilisé lors de la rédaction de cet article.

Remerciements

Les auteurs n'ont aucune reconnaissance à formuler. Cette recherche n'a reçu aucun financement externe.

Matériaux

Liste des matériaux utilisés dans cet article
NomEntrepriseNuméro de catalogueCommentaires
Carte FPGA Ultra96-V2 Xilinx Présentée en 2018Plateforme matérielle utilisée pour implémenter l'algorithme de détection de piétons
Vivado HLS AMD2019.2Outil de synthèse de haut niveau utilisé pour programmer au niveau élevé le code de détection de piétons dans l'article afin d'exporter l'Intellectual Property (IP)
Vivado AMD2019.2Outil de programmation FPGA utilisé pour programmer la carte FPGA Ultra96 v2 avec l'algorithme de détection de contours de Sobel 

Références

  1. Rani N. Image processing techniques: a review. J Today Ideas Tomorrow Technol. 2017;5(1):40-9.
  2. Gonzalez RC. Digital image processing. Pearson Education; India; 2009.
  3. Jena KK, Mishra S, Mishra S. An edge detection approach for fractal image processing. In: Examining Fractal Image Processing and Analysis. IGI Global; 2020. p. 1-22.
  4. Gayathri AG, Remya AS. VLSI implementation of improved Sobel edge detection algorithm [conference presentation]. Presented at: 2021 International Conference on Communication, Control and Information Sciences (ICCISc); 2021 Jun 16. Available from: https://ieeexplore.ieee.org/
  5. Obaid MT. Efficient Implementation of Sobel Edge Detection with ZYNQ-7000 [Master's thesis]. Purdue University.
  6. Asharani P, et al. A inventive method for door detection on FPGA using Sobel edge algorithm [conference presentation]. Presented at: 2022 2nd International Conference on Intelligent Technologies (CONIT); 2022 Jun 24. Available from: https://ieeexplore.ieee.org/
  7. Shylashree N, Anil Naik M, Sridhar V. Design and implementation of image edge detection algorithm on FPGA. Int J Circuits Syst Signal Process. 2022;16:628-36.
  8. Zhou G, Guo S, Chen Z. FPGA-based improved Sobel operator edge detection. Front Comput Intell Syst. 2023;5(2):6-11.
  9. Navinkumar K, Logesh R, VishnuBabu P, Ananthalakshmi AV. FPGA implementation of Sobel edge detection algorithm. EAI Endorsed Trans Internet Things. 2024;10.
  10. Ravichandran S, et al. Parallel processing of Sobel edge detection on FPGA: enhancing real-time image analysis. Sensors. 2025;25(12):3649.
  11. Baloch A, et al. Hardware synthesize and performance analysis of intelligent transportation using Canny edge detection algorithm. Int J Eng Manuf. 2021;11(4):22-32.
  12. Patel CS, Solanki N, Tailor N. Analysis of edge detection using Zynq based SoC FPGA. Turk Online J Qual Inq. 2021;12(7).
  13. Kashyap S, Bhandari AK, Giri P. Low resource FPGA implementation based efficient image edge detector architecture. Multimed Tools Appl. 2024;83(9):25595-615.
  14. Dakshayani V, et al. Design of a Gabor filter-based image denoising hardware model. Electronics. 2022;11(7):1063.
  15. Belmessaoud NM, Bentoutou Y, El-Mezouar MC. FPGA implementation of feature detection and matching using ORB. Microprocess Microsyst. 2022;94:104666.
  16. Castells-Rufas D, et al. A survey of FPGA-based vision systems for autonomous cars. IEEE Access. 2022;10:132525-63.
  17. Vedavyas Y, Vasavi S, Harsha SS, Subhash MS. An FPGA-based adaptive real-time quality enhancement system for drone imagery. SN Comput Sci. 2022;4(1):84.
  18. Avnet. Ultra96-V2 Single Board Computer Hardware User's Guide. Revision 1.0. Avnet; 2020 May.
  19. Singh G, et al. Optimizing IoT capabilities: leveraging FPGA for superior performance, efficiency and security [conference presentation]. Presented at: 2024 5th International Conference for Emerging Technology (INCET); 2024 May 24. Available from: https://ieeexplore.ieee.org/
  20. Kaur A. A survey on FPGA implementations in embedded augmented reality applications [conference presentation]. Presented at: 6th Edition of International Conference on Wireless Networks and Embedded Systems (WECON); 2018 Nov 16. Available from: https://ieeexplore.ieee.org/
  21. Kalaiselvi A, Sajina S, Nithish S, Sowmiya M. Implementation of Sobel edge detection. Int Res J Mod Eng Technol Sci. 2023;5(3):701-11.
  22. Narasimhamurthy CG, Kulkarni S. Fast architecture for low level vision and image enhancement for reconfigurable platform [conference presentation]. Presented at: 2021 International Conference on Advances in Electrical, Computing, Communication and Sustainable Technologies (ICAECT); 2021 Feb 19. Available from: https://ieeexplore.ieee.org/
  23. Pujare A, Sawant P, Sharma H, Pichhode K. Hardware implementation of Sobel edge detection algorithm [conference presentation]. Presented at: ITM Web of Conferences; 2020. Available from: https://www.itm-conferences.org/

Réimpressions et autorisations

Mots-clés

EngineeringComputer VisionField Programmable Gate ArrayImage ProcessingImage ResolutionSobel Edge Detection