FLASH INFORMATIQUE FI



Le projet ForAll ou l’analyse d’images au service de la mode




Pierre KUONEN

Tuan Nguyen

Jean-Philippe Thiran


Introduction

L’objectif ultime du projet ForAll est la réalisation d’une chaîne complètement intégrée de découpe de tissus pour la confection de vêtements. Aujourd’hui la découpe des éléments qui vont constituer un vêtement est faite sans tenir compte de la présence d’éventuels défauts du tissu. Il peut donc arriver qu’un élément soit découpé dans une partie du tissu qui contient un défaut. Si un tel élément défectueux n’est détecté que lorsque le vêtement a été cousu la conséquence en est la perte du vêtement. S’il est détecté avant que le vêtement ne soit cousu, il faudra re-découper l’élément défectueux ce qui implique une intervention manuelle générant des frais importants. Le résultat du projet ForAll devrait permettre la réalisation d’une chaîne de découpe de tissus qui, d’une part, tienne compte de la présence d’éventuels défauts du tissu et qui, d’autre part, optimise l’utilisation du tissu en minimisant les chutes.

Description du problème

On distingue deux cas : le cas des tissus uniformes et le cas des tissus non-uniformes. Un tissu uniforme n’a pas de motifs alors qu’un tissu non-uniforme possède des motifs. Dans le cadre du projet Eureka-CTI ForAll nous ne nous intéressons qu’aux motifs tissés et non aux motifs imprimés. Dans le cas des tissus tissés les motifs ne peuvent être que des carreaux ou des lignes. Dans notre étude nous nous sommes limités aux carreaux. (fig 1).

fig. 1 - (a) Tissu tissé uniforme, (b) tissu tissé non-uniforme  

L’EPFL et plus particulièrement le laboratoire de traitement des signaux (STI/ITS), en collaboration avec l’HEVs, sont impliqués dans ce projet pour mettre au point et implémenter, pour les tissus non-uniformes, un algorithme de détection de la position de motifs ainsi que des défauts. La détection de la position des motifs est importante car les éléments du vêtement doivent avoir une position bien précise par rapport aux motifs. Par exemple la poche de poitrine d’une chemise à carreaux doit être découpée de manière à garantir la continuité du motif lorsque l’on passe de la chemise à la poche. Ce logiciel de détection des motifs et des défauts que nous avons baptisé PDDS (Patterns and Defects Detection System) doit fournir, en temps réel, la position des motifs (coordonnées x et y) et signaler les motifs qui contiennent un défaut. Ces résultats sont ensuite repris par un module dont la fonction est de calculer la position optimale des différents éléments constituant le vêtement en évitant les zones défectueuses et en minimisant les chutes. Dans cet article nous présentons uniquement le logiciel de détection de la position des motifs et des défauts (PDDS).

Contraintes du problème

La chaîne de découpe est constituée d’une table d’environ 60 mètres de long sur laquelle le tissu défile à une vitesse maximum de 6m/min. Au début de la table 4 caméras digitales prennent des images en continu du tissu. Ces images sont transmises au PDDS pour analyse. Ce dernier détermine la position des motifs et détecte les motifs situés sur des zones de tissus défectueuses. A partir de ces informations le module de placement détermine automatiquement la position des éléments constituant le vêtement. Une fois le placement calculé la découpe est effectuée à l’aide de têtes de découpes pilotées par ordinateur. Enfin un système de préhension saisit les éléments découpés. La figure 2 présente de manière très schématique une telle chaîne de découpe.

fig. 2 - schéma de principe de la chaîne de découpe 

fig. 2 - schéma de principe de la chaîne de découpe

La définition des images fournies par les caméras est de 0.25mm. La largeur maximale du tissu est de 1.7m. En se basant sur ces contraintes on peut calculer que la capacité maximale d’analyse du PDDS doit être d’au moins 3.3 Mpixels/sec.

L’algorithme PDDS

Le PDDS est divisé deux phases. La première consiste à déterminer les positions des motifs et la deuxième phase à détecter les motifs qui contiennent des défauts. Les données de l’algorithme sont une image continue du tissu fournie sous la forme d’une séquence continue d’images de 8196x512 pixels. La sortie de l’algorithme est une séquence d’information pour chaque motif qui consiste en la position (x,y) du motif et une information booléenne précisant si ce motif est défectueux. L’algorithme utilise le principe de la corrélation. Pour cela, en plus de l’image du tissu, il est nécessaire de disposer d’une image contenant un exemple de motif non-défectueux. Cette image servira de référence pour la détermination de la position des motifs sur le tissu ainsi que pour la détection des motifs défectueux.

Phase 1 : Détection de la position des motifs

fig. 3 - principe de la détection de la position des motifs 

La détection de la position des motifs se fait en comparant une image de référence du motif avec le tissu. On fait glisser l’image de référence sur le tissu et pour chaque position on calcule une mesure de similarité entre le motif de référence et la partie du tissu couverte par ce-dernier. On considère que le motif se trouve aux endroit qui maximisent cette similarité. Le principe de cette méthode est illustré sur la figure 3.

Si cette méthode parait, a priori, relativement simple elle se heurte à deux difficultés. Premièrement comment calculer la similarité de deux images et deuxièmement la quantité de calculs à effectuer. En ce qui concerne la première difficulté, il faut disposer d’une mesure de similarité suffisamment précise pour ne pas faire des positionnements erronés mais pas trop précise pour permettre de s’adapter aux variations naturelles entre les motifs (éclairage, étirement du tissu, légère rotation des motifs, etc...). Afin de contourner cette difficulté, plusieurs algorithmes de comparaison d’images ont été testés ; il s’agit de :

1. la différence absolue
2. l’information mutuelle (MI)
3. le coefficient de corrélation (COR)
4. la cross-corrélation (XCOR).

Nous nous sommes concentrés sur les deux caractéristiques suivantes de ces algorithmes : la qualité de la détection et la robustesse de l’implémentation.

L’algorithme basé sur la différence absolue consiste à sommer les différences entre les pixel correspondant des deux images. L’algorithme MI utilise des données statistiques pour comparer les informations contenues dans chaque image. L’algorithme COR calcule la dépendance linéaire entre les images. Enfin l’algorithme XCOR estime le degré de corrélation des deux images. Des informations plus détaillées sur ces algorithmes peuvent être trouvées dans [ 3, 4].

Nous avons envisagé les mesures de similarité basées sur la corrélation (COR) et l’information mutuelle (MI). Ces mesures ont toutes les deux donné de bons résultats et sont capables de s’adapter aux variations des motifs. De plus, la corrélation peut se calculer notoirement plus rapidement car elle peut être implémentée en utilisant une FFT (Fast Fourrier Transformation). C’est donc cette méthode que nous avons retenue.

La détection des maxima de la corrélation peut se faire avantageusement en exploitant la régularité de la position des motifs. En effet, dès qu’un premier motif a été reconnu, on a une idée approximative de la position du prochain motif. Il suffit pour cela de se déplacer sur le tissu d’une distance à peu près égale à la taille du motif. On peut ensuite limiter la recherche aux alentours de cette nouvelle position. Il faut toutefois être prudent avec ce genre d’optimisation. D’une part, l’étirement local du tissu peut changer de manière significative la taille du motif, d’autre part, dans des zones où le tissu est particulièrement abîmé, la détection peut devenir très difficile et il est alors nécessaire de repartir à zéro et de faire à nouveau une recherche en se déplaçant pixel par pixel. Nous avons réussi à résoudre ces difficultés en implémentant une version de la méthode qui s’adaptait constamment et au mieux aux variations locales du tissu.

Malgré ces efforts la vitesse d’exécution était toujours insuffisante en regard des contraintes qui nous avaient été posées. Nous avons donc réalisé une implémentation parallèle de cette méthode en utilisant une technique originale de programmation par objets parallèles actuellement en développement dans le cadre d’une thèse de doctorat de l’EPFL [1,2].

Phase 2 : Détection des défauts

La phase de détection des défauts s’appuie sur les résultats calculés durant la phase de détection de la position des motifs. Pour cela nous nous sommes basés sur le fait que la corrélation entre le motif de référence et un motif du tissu contenant un défaut était plus petite que pour un motif du tissu ne contenant pas de défaut. En d’autres termes les valeurs des maxima locaux correspondant à la position de motifs contenant un défaut seraient moins maximales que celles correspondant à un motif ne contenant pas de défaut. Le problème réside dans le fait que les défauts du tissu peuvent être très légers ou très petits et peu visibles par un oeil qui n’est pas expert. En conséquence les différences naturelles entre motifs (éclairage, étirement, etc..) provoquent de plus grandes variations de la valeur des maxima locaux que ces défauts. Ces défauts sont en quelque sorte noyés dans les variations naturelles entre motifs. Pour essayer de remédier à cet inconvénient plusieurs pistes ont été suivies. D’une part nous ne comparons pas le motif de référence avec le seul motif du tissu que nous sommes en train d’analyser mais avec un ensemble des motifs que nous savons sans défaut et qui se trouvent dans la même région du tissu que le motif que nous analysons. Ensuite nous comparons la valeur du minimum local du motif que nous sommes en train d’analyser avec les valeurs des motifs de tout l’ensemble en utilisant un test d’hypothèse.

Malgré ces améliorations la détection de petits ou légers défauts reste insuffisante (voir section : résultats). Nous avons donc exploré une autre piste qui consiste à classer les motifs en trois catégories : les motifs dont nous sommes sûrs qu’ils ne contiennent pas de défauts, les motifs dont nous sommes sûrs qu’il contiennent un défaut et les motifs douteux. Pour ces derniers nous effectuons une analyse plus poussée qui consiste à diviser le motif en plusieurs parties (sous-motif) et à analyser chacun des sous-motifs séparément avec la même technique que présentée ci-dessus. L’espoir est que, par rapport à la taille du sous-motif, l’éventuel défaut devienne plus grand et qu’ainsi il ait une influence suffisante sur la valeur du minimum local du sous-motif dans lequel il se trouve. Cela permettrait sa détection. Nous avons testé cette technique sur l’ensemble de test qui nous avait été fourni et, pour cet ensemble, l’amélioration de la détection des défauts n’a pas été significative. Par contre le temps de calcul s’est avéré notoirement plus important. Nous n’avons donc pas retenu cette amélioration dans la version finale du logiciel que nous avons réalisé.

La section suivante donne les résultats que le PDDS a obtenus sur les ensembles de tests qui nous avait été fournis.

Résultats

La figure 4 montre les résultats obtenus pour la détection de la position des motifs. Sur les 18 images de tissu fournies, 13 donnent d’excellents résultats. Sur les 5 cas restants deux contenaient des motifs qui sont très difficiles à voir même par un oeil humain (Tallia et Texere). Enfin, les trois tissus restants (Monti-difB, Monti-difC et Zegna) étaient très étirés en conséquence la détection des positions était incorrecte ce qui a finalement abouti à considérer ces motifs comme défectueux lors de la phase de détection des défauts. Ce résultat est en soi assez logique. Un tissu trop étiré peut être considéré comme défectueux. La méthode utilisée pour la détection des motifs s’est donc avérée de qualité suffisante pour être intégrée à la chaîne de découpe des tissus.

fig. 4 - résultat de la phase de détection de la position des motifs 

En ce qui concerne la détection des défauts nous disposions de quelques images de tissus contenant des défauts mais tous étaient des défauts très légers et souvent difficiles à détecter par un oeil non-expert. Les résultats obtenus avec ces images se sont avérés assez mauvais (environ 50% de détections correctes).

Nous avons donc décidé de faire des tests sur des défauts artificiellement créés et dont nous ferions varier la taille afin d’avoir une idée plus précise des causes de ces mauvais résultats. La figure 5 montre les résultats de ces tests complémentaires sur 4 tissus pour lesquels la détection de la position des motifs avient donné un résultat parfait (100%). Nous avons introduit aléatoirement sur ces tissus des défauts de tailles différentes. Sur la figure 5 la taille du défaut est exprimée en pourcentage de la taille du motif. Pour les 4 cas sur lesquels nous avons fait les tests, la détection était de 100%. Ces résultats sont encourageant et tempèrent les mauvais résultats obtenus avec les défauts réels. Toutefois, en l’état actuel, la détection des défauts n’est pas d’une qualité suffisante pour être utilisée telle-quelle sur une chaîne entièrement automatique. D’autres tests sont nécessaires pour vraiment décider si l’approche utilisée a des chances d’aboutir à un algorithme de détection des défauts de qualité suffisante.

fig. 5 - détection de défauts de différentes tailles 

Les derniers tests que nous avons faits, portent sur la parallélisation. En effet les performances obtenues sur un seul processeur étaient inférieures à 3.3 Mpixels par seconde (environ 1Mpixel par seconde). Nous avons mesuré l’accélération obtenue pour un nombre de processeurs allant jusqu’à 16, bien que cela ne soit pas nécessaire au vu des performances désirées. Note objectif étaient de vérifier la qualité et la parallélisation et de tester si la saturation était atteinte rapidement.

La figure 6 montre clairement que, jusqu’à 16 processeurs, la saturation n’est pas atteinte. Les tests ont été effectués sur le cluster linux IELNX de l’EPFL ainsi que sur un réseau de Sun SPARC workstations.

fig. 6 - accélération obtenue avec la version parallèle du PDDS 

Conclusion

En conclusion, dans ce projet, nous avons conçu et réalisé un système de détection de motifs et de défauts dans des tissus texturés. Son intégration dans la chaîne complète de découpe des tissus est en cours, même si des recherches et développements complémentaires sont encore nécessaires, particulièrement en ce qui concerne la détections de défauts légers.

Réferences

1. T. A. Nguyen, P. Kuonen. ParoC++ : A Requirement-driven Parallel Object-oriented Programming Language. The International Conference on Computational Science 2003 (ICCS2003), 2003, St. Petersburg, Russia.

2. T. A. Nguyen, P. Kuonen. An Object-Oriented Framework for Efficient Data Access in Data Intensive Computing. The 5th workshop on Advances in Parallel and Distributed Computational Models, 2003, Nice, France.

3. Thomas M. Cover, Joy A. Thomas. Elements of information theory. Wiley, 1991.

4. T.-A. Nguyen, P. Kuonen, J.-Ph. Thiran,ÇFORALLWEAR Project : Deliverable D.3.5 : Report on defect detection algorithms and performance analysisÈ 



Cherchez ...

- dans tous les Flash informatique
(entre 1986 et 2001: seulement sur les titres et auteurs)
- par mot-clé

Avertissement

Cette page est un article d'une publication de l'EPFL.
Le contenu et certains liens ne sont peut-être plus d'actualité.

Responsabilité

Les articles n'engagent que leurs auteurs, sauf ceux qui concernent de façon évidente des prestations officielles (sous la responsabilité du DIT ou d'autres entités). Toute reproduction, même partielle, n'est autorisée qu'avec l'accord de la rédaction et des auteurs.


Archives sur clé USB

Le Flash informatique ne paraîtra plus. Le dernier numéro est daté de décembre 2013.

Taguage des articles

Depuis 2010, pour aider le lecteur, les articles sont taggués:
  •   tout public
    que vous soyiez utilisateur occasionnel du PC familial, ou bien simplement propriétaire d'un iPhone, lisez l'article marqué tout public, vous y apprendrez plein de choses qui vous permettront de mieux appréhender ces technologies qui envahissent votre quotidien
  •   public averti
    l'article parle de concepts techniques, mais à la portée de toute personne intéressée par les dessous des nouvelles technologies
  •   expert
    le sujet abordé n'intéresse que peu de lecteurs, mais ceux-là seront ravis d'approfondir un thème, d'en savoir plus sur un nouveau langage.