FR 2687091 A1 19930813 FR 9201339 A 19920206 L'invention concerne le contrôle automatisé et en continu des découpes de formes simples ou complexes (concaves et/ou convexes), généralement mais non nécessairement polygonales, effectuées par une machine de découpage, telle qu'une machine "ACCESS" déjà mise au point par les Sociétés GOLDWORTHY ENGINEERING INC. et FOREST-LINE, dans la couche médiane d'un ruban composite à trois couches. De telles découpes globalement polygonales (avec d'éventuelles portions de contours non rectilignes) sont notamment mises en oeuvre pour la fabrication de panneaux composites de voilure d'aéronefs, notamment des ailes ou des volets. Ces panneaux composites sont obtenus par drapage, c'est-à-dire par superposition de découpes réalisées dans des nappes de matériau fibreux, par exemple des nappes de fibres parallèles juxtaposées de carbone préimprégnées d'une résine polymérisable telle qu'une résine epoxyde. Après superposition avec des orientations relatives données, ces découpes sont maintenues jusqutau moment où, par cuisson dans un autoclave, on polymérise la résine de ces découpes : on obtient alors un panneau composite monobloc qui, grâce à sa forme, ses très bonnes propriétés mécaniques et son faible poids, sont utilisables dans une voilure d'aéronef. Une telle opération de drapage (empilage de couches unidirectionnelles) comporte ainsi deux opérations successives de préparation de découpes puis de dépose qui sont avantageusement conduites indépendamment l'une de l'autre. C'est ainsi que les Société GOLDWORTHY EN GINEERING INC. et FOREST-LINE ont mis au point - une machine de découpage citée ci-dessus connue sous la marque "ACCESS", ce qui est l'acronyme de : Advanced Composite Cassette Edit/Shear System, et - une machine de dépose connue sous la marque "ATLAS", ce qui est l'acronyme de : Advanced Tape LAying System. Pour tirer un parti optimum de cette machine à draper (MAD en abrégé) en deux unités, la Société AEROSPA TIALE a conçu et développé un logiciel connu sous l'appellation PAOMAD, ce qui est l'acronyme de Programmation Assistée par Ordinateur de la Machine A Draper, utilisé depuis 1985 en ses locaux. Un système de conception assistée par ordinateur (CAO) permet de développer une surface aérodynamique dans un plan puis de définir des couches unidirectionnelles propres à reconstituer après drapage sur des surfaces gauches la surface voulue. Dans le domaine de l'aéronautique, la Société a élaboré un système de type CADCAM, connu sous l'appellation AEROLIS, qui assure notamment ces opérations de développement de surfaces, et qui, en collaboration avec le logiciel COMPUTER VISION de PRIME, assure cette phase de conception. Ce système AEROLIS comporte un interface au standard SET lui permettant de communiquer avec PAOMAD Les activités dont PAOMAD assure l'automatisation dans le cas de la machine à draper sont - la détermination des découpes, - la préparation de la découpe et du drapage : programmation C.N., rédaction des fiches d'instruction, calcul des temps, - le calcul des besoin matières Les modules fonctionnels de PAOMAD sont schématisés à la figure 1. Le module "Gestion de la bibliothèque des pièces" apporte d'autres avantages que les fonctions classiques d'une telle gestion (liste de pièces, suppression, création ou copie d'autres pièces), ce sont - utilisation directe des fichiers de définition des couches à la gamme de drapage choisie : drapage automatisé en MAD, drapage manuel, - déduction automatique de la pièce symétrique d'une pièce donnée. La décomposition d'une couche en découpes est faite automatiquement (module "détermination des découpes"), en intégrant les paramètres suivants - jeu de juxtaposition programmé entre deux découpes con sécutives d'une même couche, - décalage programmé des jonctions des découpes appartenant à des couches de même orientation, afin d'éviter la superposition des bordures. Les critères de choix des largeurs de ruban peuvent être - économiques : limitation du nombre de découpes et donc du temps de fabrication, - techniques : amélioration de la qualité de la dépose aux passages d'accidents de forme. Les découpes ainsi calculées sont susceptibles d'être modifiées grâce à PAOMAD, par un opérateur qui peut - connaître la définition géométrique précise d'une découpe, - éclater une découpe de grande largeur en plusieurs découpes de faible largeur et vice versa, - s'assurer qu'aucune fibre n' a une longueur inférieure à un seuil donné, - supprimer une découpe dans le cas où celle-ci serait en deçà d'une taille minimum réalisable, - renuméroter les découpes et intervenir sur l'ordre de drapage, - imposer le sens de drapage. Grâce au module "Mise en bande des découpes" la pièce est décomposée automatiquement en paquets (ensemble de couches), puis en modules (sous ensemble de paquets). Les géométries de découpe sont alors automatiquement mises en bandes dans les différentes largeurs de ruban et dans l'ordre inverse de drapage. Dans le cas du drapage sur une surface développable simple (plan, cylindre...), les trajectoires sont calculées par PAOMAD (module "Calcul des trajectoires de drapage"). Dans le cas d'une surface complexe, elles sont calculées par le module de mise à plat du système C.A.O. interfacé avec PAOMAD au standard S.E.T. A partir des trajectoires et de la mise en bandes des découpes, les programmes de commande numérique (C.N. en abrégé) sont générés automatiquement à l'aide de deux postprocesseurs intégrés à PAOMAD. Le transfert vers les unités de la machine à draper se fait alors par D.N.C., ctest-à-dire en anglais par "Direct Numerical Command". Les fonctions assurées par le module "Simulation" sont - simuler le drapage : la vérification que la programmation d'une pièce peut s'effectuer en simulant l'opération de dépose. La représentation graphique de cette simulation permet à l'opérateur de contrôler visuellement sa programmation, - calculer les consommations matières, - calculer les temps. Le document US-A-5.006.990 propose une variante quant à la conception théorique de pièces composites et à la détermination des couches et découpes à réaliser, indépendamment de l'exécution même de ces découpes et de leur dépose. L'invention se préoccupe tout particulièrement de l'opération de découpe, de sorte que les étapes de conception et de détermination du dessin des diverses découpes à effectuer ne sera pas développé plus avant. On admettra simplement qu'on a su au préalable déterminer sous forme numérique un jeu de dessins de découpes à effectuer. Mais la machine de découpage peut faire apparaître des défauts sur les découpes, du fait de l'encrassement ou de l'usure des couteaux. Cela provoque des effilochements ou des échancrures. Des problèmes apparaissent aussi lorsque les découpes ont des pointes très fines : les éléments de guidage de la découpe peuvent replier ces pointes et la géométrie de la découpe n'est plus conforme. Cela se traduit par des surépaisseurs de matière, lors de la dépose. L'inspection de ces défauts est effectuée actuellement par un opérateur, qui juge visuellement si la découpe possède ou non un défaut. Ce procédé d'inspection requiert une expérience importante de l'opérateur, alliée à beaucoup d'intuition, car il ne connaît pas a priori la géométrie de la découpe. L'inconvénient de ce contrôle est qu'il est répétitif, fastidieux, et qu'il nécessite une vigilance accrue de l'opérateur. Or la fatigue de l'inspection visuelle entraîne des erreurs opérateur (ce sont des défauts non décelés), qui sont préjudiciables pour la qualité finale des pièces fabriquées. L'invention a pour objet de pallier ces inconvénients en proposant un procédé et un dispositif permettant de renoncer à tout contrôle visuel humain, et permettant de procéder à ce contrôle des découpes en vue de détecter les défauts, de manière automatisable donc très fiable, sans pour autant obliger à réduire la vitesse de défilement des rubans (ni donc la cadence des découpes). Elle propose à cet effet un procédé de contrôle de découpes successives au moins approximativement polygonales effectuées par une machine de découpage dans un ruban à partir de la donnée de découpes théoriques successives, selon lequel - on fait défiler les découpes sur un fond contrasté, - on acquiert une succession d'images d'un champ englobant toute la largeur du ruban, avec une fréquence telle que deux images successives englobent des zones du ruban en défilement se recouvrant partiellement, - on binarise l'image en associant à chaque point l'une des deux valeurs selon que sa luminance est supérieure ou inférieure à un seuil, - on applique à cette image binarisée une extraction de contour par codage de FREEMAN, - on identifie chaque contour, - on sépare l'image en autant de fenêtres de traitement qu'il y a de contours fermés ou non, - on effectue une approximation polygonale de chaque contour fermé ou non, - on vectorise chaque segment de l'approximation polygonale en déterminant au moins l'angle entre deux segments successifs, - on compare la succession des angles mesurés dans l'approximation polygonale à la succession des angles d'une approximation polygonale de la découpe théorique de même identification, - on détecte un défaut si l'on ne trouve pas la succession d'angles mesurés dans la succession des angles de l'approximation polygonale de la découpe théorique de même identification. La solution proposée est un système de vision assistée par ordinateur qui détecte en temps réel les défauts inhérents à chaque découpe, et qui le cas échéant prévient un opérateur, pour une relance manuelle. Ce système se substitue au contrôle visuel humain, par l'acquisition, le traitement et l'interprétation des images des découpes. Les avantages de ce dispositif sont l'autonomie de la machine, une fiabilité accrue par rapport au contrôle humain, et donc l'automatisation du contrôle. Le système de vision comprend une caméra (par exemple PULNIX TM765) avec un capteur matriciel CCD (dispo sitif à transfert de charges), placée au dessus de la bande des découpes. Elle est située dans la partie aval de la machine, après la zone de découpage et juste avant l'enroulement dans la bobine réceptrice. Ce capteur fournit un signal au standard vidéo CCIR 50Hz, qui est transmis à une carte spécialisée de traitements située dans un microordinateur. Cette carte numérise les signaux, grâce à un convertisseur analogique-numérique et forme des images en pratique sur 256 luminances (niveaux de gris). Ces images sont stockées dans une mémoire de la carte spécialisée, pour être traitées par logiciel. Le traitement consiste à extraire, à partir des images, des informations pertinentes, c'est-à-dire interprétables ultérieurement : ce sont les contours des découpes qui sont modélisés sous forme de segments, grâce à un algorithme d'approximation polygonale (méthode de la corde). Un paramètre permet de régler la finesse de l'approximation. Lorsque ce réglage est trop fin, des segments superflus sont engendrés. Un algorithme de "nettoyage" permet alors d'éliminer les segments parasites. Les données obtenues par traitement d'image sont ensuite comparées au modèle théorique de la découpe, information contenue dans un fichier préalablement généré par CAO (par exemple grâce au logiciel PAOMAD développé par AEROSPA TIALE), pour décider si une découpe possède ou non un (des) défaut(s). Etant donné que ce contrôle est déconnecté de la commande numérique, il est nécessaire d'assurer un comptage des découpes par le système de vision, afin de pouvoir comparer la découpe en cours de contrôle avec la découpe correspondante dans le fichier CAO. Ce comptage tient compte du recul du ruban effectué par la machine "ACCESS" lors de l'évacuation des chutes grâce à une hystérésis mécanique. Ceci est réalisé par une analyse des niveaux de gris de deux colonnes perpendiculaires à l'avancement du ruban, dont l'espacement doit être inférieur à la distance minimale séparant deux découpes consécutives et supérieure à la distance du recul du ruban. Cette méthode de comparaison fonctionne bien pour des découpes de forme polygonale simple. Elle est par contre beaucoup moins efficace lorsque la géométrie des découpes comporte des courbures telles que des arcs de cercle, des portions d'ellipse .... Ceci s'explique par le fait que l'approximation polygonale des parties courbes est différente de l'approximation des courbures par le système de CAO. La conséquence est que le système détecte toujours dans ce cas des défauts. C'est pourquoi, dans ce cas de découpes en partie courbes, parallèlement à l'approche structurelle de reconnaissance de défauts, peut intervenir une méthode de reconnaissance par réseaux de neurones. Cette approche est basée sur la modélisation informatique du système nerveux humain Elle s'appuie sur la notion d'apprentissage par renforcement ou diminution des poids aux connexions entre neurones en fonction de leur utilisation. La première phase, dite d'apprentissage, consiste à donner au réseau des découpes représentatives avec et sans défaut, en proportion équilibrée : le réseau "apprend". Lors de la deuxième phase, dite de classification, le réseau reconnaît des découpes inconnues, grâce à sa capacité de généralisation. Le couplage de la méthode de comparaison avec celle des réseaux neuronaux, grâce à des règles de décision, forme un système hybride qui fournit des résultats pertinents, quelle que soit la géométrie de la découpe, très supérieurs à ceux obtenus par chacune des deux méthodes prise séparément. Selon des dispositions préférées du procédé de l'invention éventuellement combinées - en outre . on réalise un réseau de neurones à N entrées, à trois couches et à une sortie, . on conduit un apprentissage de ce réseau de neurones à l'aide d'un ensemble de découpes sans défauts, et d'un ensemble de découpes avec défauts, chaque découpe étant caractérisée, après approximation polygonale, par N grandeurs appliquées avec N entrées, . en parallèle avec les étapes de vectorisation et de comparaison, on applique les N grandeurs de chaque approximation polygonale à ce réseau de neurones, . et on détecte un défaut lorsqu'une règle de décision prédéterminée combinant les résultats de l'opération de comparaison et la sortie du réseau de neurones est satisfaite, - les N grandeurs caractérisant chaque approximation sont N valeurs que prend la fonction de FOURIER discrète appliquée a l'abscisse curviligne pour des valeurs de fréquences allant de 1 à N, - N vaut 10, - la fonction d'entrée de chaque neurone est une fonction linéaire des entrées affectées chacune de son poids, la fonction d'activation est du type sigmoïde et la fonction de sortie est la fonction identité, - les découpes sans défauts utilisées pour l'apprentissage ont des tronçons courbes, - l'une des règles de décision est : : "la découpe est validée sans défaut si le nombre de segments d'une découpe par traitement d'images est très inférieur au nombre de segments de la découpe théorique et que le résultat par réseau de neurone est bon", - on identifie chaque contour par comptage de découpes passant dans le champ de la caméra, - la vitesse de défilement du ruban étant de 30 m/min maximum, le temps d'acquisition de binarisation, d'extraction de contour, d'approximation polygonale et de comparaison est inférieur à 0,5 sec, - les découpes sont réalisées en composite de fibres de carbone unidirectionnelles accolées à un support blanc, - après vectorisation et avant comparaison on procède au remplacement par un vecteur unique tout couple de vecteurs successifs dont l'écart angulaire est inférieur à un seuil prédéterminé. Des objets, caractéristiques et avantages de l'invention ressortent de la description qui suit, donnée à titre d'exemple non limitatif, en regard des dessins annexés sur lesquels - la figure 1 est un schéma de principe connu du processus conduisant d'une surface de base à réaliser aux programmes de commande numérique destinés respectivement à une machine de découpe, et à une machine de dépose, et faisant apparaître les modules fonctionnels de PAOMAD, - la figure 2 est un schéma de principe d'une machine de découpe, comportant un dispositif de contrôle de découpe conforme à l'invention, - les figures 3A à 3D représentent des exemples de défauts à détecter, - la figure 4 est une représentation de type SADT de l'opération de drapage, - la figure 5 est une représentation de type SADT de l'opération de contrôle que comporte l'opération de drapage, - la figure 6 est un schéma de l'architecture d'acquisition et de traitement d'image, - la figure 7 est un exemple de portion de contour r - la figure 8 est une représentation d'un codage de FREEMAN de connexité d'ordre 8, - la figure 9 est une vue schématique des éléments du système de contrôle destinés à scruter la bande en cours de défilement, - la figure 10 est une vue schématique d'une image contenant deux fenêtres de traitement, - la figure 11 est une vue d'une découpe entièrement contenue dans l'image, - la figure 12 est une vue de la découpe de la figure 11, incomplètement contenue dans l'image, - la figure 13 est un algorithme optimisé de comparaison des angles mesurés aux angles théoriques, - la figure 14 est une représentation schématique d'un neurone, - la figure 15 est une représentation schématique de l'architecture d'un réseau de neurones en plusieurs couches, - la figure 16 est un schéma d'un neurone linéaire a seul, - la figure 17 est un schéma d'un neurone non linéaire r - les figures 18-1 à 18-18 sont des exemples de découpes sans défauts sur lesquels on a conduit des essais de contrôle par comparaison à des données théoriques, - les figures 19-1 à 19-9 sont des exemples de découpes avec défauts sur lesquels on a conduit des essais de contrôle par comparaison à des données théoriques, et - la figure 20 est un schéma partiel du procédé de l'invention pour le contrôle de découpes comportant des courbures, faisant intervenir une stratégie hybride d'interprétation des approximations polygonales. La figure 2 représente de manière schématique une machine de découpe 1 conforme aux machines de type "ACCESS" existantes, mais comportant un dispositif de contrôle de découpe et de détection des défauts schématisé en 30. Cette machine réalise des découpes polygonales de forme convexe, concave, ou complexe dans ruban 2 en carbone pré-imprégné (nappe composite, donc à fibres unidirectionnelles allongée dans le sens du ruban), par exemple épais de 127 microns, large de 50, 75 ou 150 mm et long de 250 mètres. Ce ruban 2 est pris en sandwich entre deux séparateurs : une feuille 3 de papier clair (en pratique blanc) et une feuille transparente 4, par exemple en polyéthylène téraphtalate. Le tout est stocké dans une bobine d'entrée 5, fixée sur la machine de découpage. Une bobine réceptrice 6 pour la réception des découpes, fixée à l'autre extrémité de la machine, permet un système de dévidage-enroulement continu. Le ruban 2 et les séparateurs 3 et 4 passent sur des plaques de guidage 7, et sont amenés dans la zone de découpage. Les deux séparateurs sont alors enlevés et récupérés séparément dans des cassettes de rangement 8 et 9. Le ruban en carbone, pré-imprégné est découpé par deux couteaux 10 et 11 en carbure, qui sont indépendants entre eux. Chacun peut se déplacer suivant une direction perpendiculaire à la direction d'avancement du ruban, et pivoter autour de son axe principal. C'est la combinaison de ces mouvements et de l'avancement du ruban qui permet de réaliser des découpes de forme géométrique complexe, bien que le ruban ne se déplace que dans un seul sens. Le découpage peut se faire grâce à un mouvement oscillatoire très rapide des couteaux, de bas en haut. A ces couteaux sont associés des couteaux 12 et 13 formant enclume. Lorsque le découpage est terminé, la découpe est replacée entre deux nouveaux séparateurs (papier 13 dans la bobine repérée 14 et feuille transparente 15 dans la bobine repérée 16), dans le dispositif d'entraînement aval, et stockée dans la bobine de récupération 6. Chaque découpe est espacée de la précédente d'une distance fixée préalablement, cet espacement étant rendu possible par un mouvement relatif du dispositif d'entraînement aval par rapport au dispositif d'entraînement amont. Lorsque le profil avant d'une découpe est différent du profil arrière de la découpe précédente, une chute est formée et évacuée ; elle est sélectionnée par la descente d'un sabot 17 par exemple à action mécanique, ici en deux parties, prise entre deux bandes et dirigée vers une cassette de rangement 18. Cette descente du sabot provoque une tension des bandes. Pour alléger cette tension, la machine effectue un léger recul du ruban de 3 mm puis un avancement de 4 mm, à vitesse constante. Chaque découpe est marquée automatiquement par un poinçon 19 ; cette marque ici dans la feuille transparente sert à repérer la découpe, lors de son utilisation sur la machine de dépose "ATLAS". Elle valide a priori cette découpe comme ne possédant pas de défauts (absence de défaut lors de l'opération de découpe). Dans le cas contraire, un opérateur rebouche la marque avec un scotch transparent. Cette découpe ne sera pas prise en compte ultérieurement. L'opérateur doit par contre relancer manuellement la fabrication de cette découpe et de toutes celles qui ont pu être réalisées entre temps. La vitesse de défilement et la mise en pression du ruban à l'entrée sont contrôlées par le moteur 20 tandis que l'asservissement de commande numérique est réalisé par un codeur 21. L'entraînement du ruban composite découpé est assuré par un dispositif schématisé en 22 et, après remise en sandwich de ces découpes, le maintien du ruban à trois couches est assuré par le système de poids repéré 23. La vitesse de déplacement du ruban varie de 0 à 30 mètres par minute. La longueur minimale des découpes est de 45 mm, la longueur maximale est de 8 m. Les découpes polygonales sont ensuite assemblées entre elles r pour former une pièce, ce qui est réalisé par la machine de dépose "ATLAS" non représentée, qui procède par empilement de couches de découpes. L'ensemble est ensuite polymérisé dans un autoclave, pour obtenir la pièce souhaitée. Ces pièces sont des panneaux, des voilures, des volets . .. constituant une partie des avions. Les éléments qui précèdent, étant connus en soi, ne seront pas détaillées plus avant, l'invention portant sur le bloc de contrôle 30, situé sur la machine, avant l'enroulement des découpes sur la bobine réceptrice 6, destinée à être ensuite montée, en temps opportun, sur la machine de dépose Il est important de noter que l'invention ne se préoccupe pas d'un contrôle dimensionnel des découpes, mais seulement d'un contrôle des formes et ce à partir d'acqui sitions d'images. L'objet à analyser est donc une découpe en forme polygonale effectuée dans un rouleau de nappe composite de largeur fixée, pouvant avoir une géométrie convexe, concave ou complexe. Il est intéressant de noter que les contours intérieurs (trous) ne sont pas pris en considération. A titre d'exemple : il existe quatre largeurs de ruban de matière composite : 25 mm, 50 mm, 75 mm, 150 mm. - La largeur du ruban est contrôlée par prélèvement avant le montage sur ACCESS. - La tolérance sur la largeur est de +0 -0,5 mm. - L'épaisseur de la bande de carbone est comprise entre 127 et 200 micromètres. - La longueur maximum d'une découpe est de 8 mètres. Théoriquement, elle est illimitée. - La longueur minimum d'une découpe est de 45 mm. - La largeur minimum de carbone à sélectionner est de 5 mm. - La distance minimum entre le profil avant et le profil arrière est de 15 mm. - La distance minimum entre deux découpes consécutives est de 25 mm, sans évacuation des chutes. Cette distance peut être plus importante, elle varie suivant la longueur des découpes. Le calcul de cette distance est effectué par le post-processeur. - La longueur minimum de segments parallèles à la fibre est de 15 mm. - L'angle minimum entre deux segments adjacents est de 100. Si l'angle est inférieur à 100, alors la pointe est tronquée à 5 mm. - La réalisation de plus de deux segments simultanément n'est pas réalisable : il n'y a que deux couteaux, et le ruban ne recule pas. Les défauts à repérer peuvent être classés en trois catégories (voir figures 3A à 3D) a). Les concours bizarres (figures 3C et 3D) Ce sont des accidents sur la géométrie externe de la découpe. Cela peut être par exemple une échancrure trop importante ou trop évasée. Il est à remarquer que l'arrachement a lieu dans le sens des fibres. b). Les variations d'épaisseurs (figure 3B) Celles-ci sont dues au repliement des extrémités des découpes telles que les pointes. Le repliement peut être total (1800) ou bien partiel (compris entre Oc et 1800). c) Les déplacement de petites découpes (figure 3A) : Ce type de défauts se produit lors de la découpe d'objets petits dont au plus un unique segment est juxtaposé au bord du ruban. La composition d'une translation et/ou d'une rotation peut affecter la position initiale de la découpe sur le support. On appréciera que, le ruban en carbone étant noir et le papier étant blanc, il y a un contraste très net entre les découpes et le reste du ruban passant en regard du bloc de contrôle 30. Du point de vue CAO, les découpes sont définies au 1/100ème de millimètre, toutefois compte tenu de la précision de la machine, on peut fixer un seuil de tolérance bien supérieur pour les défauts, par exemple de l'ordre de 1 mm. Le contrôle des découpes doit satisfaire à diverses contraintes, notamment fiabilité, mais aussi une contrainte de temps réel liée au défilement variable de la découpe entre 0 et 30 m/min. Il s'agit donc d'effectuer l'acquisition d'images du ruban d'une longueur fixée et d'en contrôler les défauts pendant le temps imparti, à raison de 50 cm de ruban à analyser par seconde, de manière continue. Deux possibilités s'offrent à nous - la distance de la caméra à la scène est telle que l'on puisse voir la portion de ruban dans toute sa longueur. On bénéficie d'une seconde pour les traitements, - la distance est moindre et la précision s'affine. La meilleure résolution a lieu lorsque la largeur du ruban est presque totalement comprise dans l'image. Alors pour une largeur de ruban de 150 mm, la résolution est inférieure à 1 mm par pixel. Par contre on dispose de beaucoup moins de temps pour les traitements. Rigoureusement, on pourrait parler de temps réel, si le contrôle de la découpe et le poinçonnage du support transparent pouvait se faire avant le début de la découpe suivante. Cela est impossible sur la machine ACCESS, étant donné la position des outils et l'organisation des différents éléments servant de guidage. Le système de contrôle devra être installé sur la partie ultime du parcours de la découpe, avant l'enroulement, puisque les guides du ruban peuvent aussi engendrer des déformations. En fait, devant l'insolubilité de ce problème, on se limitera à reconnaître les défauts d'une découpe seulement lorsque d'autres auront déjà été usinées (partiellement ou totalement). La figure 4 situe l'étape de contrôle dans une opération de drapage définie par sa représentation de type SADT classique (SADT est l'acronyme de Structured Analysis and Design Technic) où les opérations, ainsi qu'on le sait, sont figurées par des rectangles recevant par la gauche des entrées, et d'où partent à droite des sorties, ces opérations devant satisfaire des contraintes figurées au dessus, à l'aide de moyens figurés en dessous. Les termes figurant sur ce diagramme sont définis comme suit - Draper : désigne la réalisation d'une voilure par application de découpes en matériau composite, sur un outillage. Elle comporte la phase de préparation des découpes, de contrôle par vision, et de dépose de ces découpes. - Bobine matière première : cassette contenant la nappe composite servant au drapage. - Fichier géométrie B.E. : informations issues du bureau d'étudie qui concernent la géométrie des découpes et le sens des fibres. - Paramètres machine : informations sur différentes données matérielles, telles que la largeur matière r les couteaux, le marquage, les types de rouleau. - Règles de contrôle : règles de décision permettant de classifier les découpes selon la qualité. - Logiciel de contrôle : programme développé afin de contrôler les défauts des découpes. - Matériel informatique : désigne le matériel électronique et informatique supportant le logiciel cité ci-dessus. Il comporte le compatible PC et la carte graphique. - Pièce drapée : désigne le produit fini, après les phases de découpe sur la machine ACCESS et de dépose sur la machine ATLAS. - Chutes : partie restante de la nappe composite après le découpage, inutilisée pendant la phase de dépose. - Opérateur : personne spécialiste de la machine à draper. - Machine ACCESS : machine automatique réalisant la préparation des découpes, en vue d'une dépose sur un outillage par la machine ATLAS. - Machine ATLAS : machine automatique réalisant la dépose d'une pièce, préalablement découpée par la machine ACCESS. - Générer programme C.N. : désigne tous les modules r depuis la phase du bureau d'étude jusqu'à la génération par PAOMAD des opérations effectuées par la commande numérique. - Découper : désigne la phase accomplie par la machine ACCESS, et qui concerne la préparation des découpes en vue de la dépose par la machine ATLAS. - Contrôler : opération réalisée par le système de vision. Celui-ci doit fournir comme résultat bonne ou mauvaise découpe. - Déposer : phase accomplie par la machine ATLAS, et qui consiste à appliquer les découpes préparées par la machine ACCESS, sur un outillage. - Programme C.N. ACCESS : programme informatique contenant les informations pour le pilotage de la machine ACCESS. - Programme C.N. ATLAS : programme informatique contenant les informations pour le pilotage de la machine ATLAS. - PAOMAD : logiciel de décomposition en découpes, optimisées par couches, de voilures d'avion. Génération du programme informatique qui pilotera la commande numérique. - Procédure de relance : en cas de mauvaise découpe, l'apparition de défauts entraîne une ré-exécution du découpage de la nappe composite. Plusieurs manipulations sont à effectuer par le spécialiste afin de ne recommencer que les mauvaises découpes. - Qualité : précision dans la sélection des découpes avec défauts parmi celles sans défauts. - Signal mauvaise découpe : information spécifiant à l'opérateur que la découpe numéro n comporte des défauts. - Bobine chute : cassette contenant les déchets de matière première après le découpage des pièces par la machine ACCESS. L'opération de contrôle visée par l'invention est elle-même explicitée à la figure 5 par sa représentation de type SADT, avec les définitions additionnelles suivantes - -Acquérir l'image : opération de conversion d'un signal analogique issu d'un capteur en données numériques. - Traiter l'image : opération destinée à transformer l'information afin de pouvoir l'exploiter plus aisément dans la phase d'analyse. - Analyser l'image : consiste à retirer une information pertinente de l'image, en vue d'une décision. - Corriger les défauts : prise en charge par l'opérateur de la reprise des découpes mauvaises. - Défilement : contrainte de rapidité de déplacement de l'objet sous l'oeil de la caméra. - Eclairage : Contrainte des conditions de visualisation de l'objet sur la scène : pose des problèmes de~réflections et de réglage de l'ouverture du diaphragme de la caméra. - Interface utilisateur : contrainte imposée sur le système de vision pour signaler une erreur ou un autre message à l'opérateur. Notion d'ergonomie. Ces opérations d'acquisition d'image, de traitement, d'analyse ou d'interprétation, et de correction effectuées par le bloc schématisé en 30, vont être développees ci-dessous. L'acquisition (figure 6) est effectuée par une caméra vidéo 31 (par exemple une caméra TM765 PULNIX) associé à un capteur matriciel CCD (Charge Coupled Device) à 756 x 581 photoéléments, placée au dessus du trajet des découpes avant leur embobinage. Le signal vidéo fourni est au standard européen CCIR. Ce signal vidéo est transmis à une carte spécialisée de traitement 32, aussi appelée carte graphique (par exemple la carte GIPS 25 de chez Electronic Informatique Application ou EIA) qui numérise les signaux, grâce à un convertisseur analogique-numérique CAN repéré 33 (constitué d'autant de comparateurs que l'on veut distinguer de nuances de gris) et forme des images de format 256 x 256 points de luminance avec jusqu'à 256 niveaux possibles de luminance. Ces images sont stockées dans une mémoire image 34 connectée à un processeur 35.Cette carte comporte en pratique un convertisseur numérique-analogique CNA repéré 36, pour une éventuelle visualisation sur écran 37 des images traitées. Les liaisons entre les composants de la carte 32 se font en pratique sur 8 bits. Au processeur est associée une horloge 38, servant à cadencer la lecture des pixels. Ce processeur fournit en outre un signal de synchronisation au bloc SCP (c'est-à-dire Synchronisation Camera Processor) à la sortie de la caméra, ainsi qu'à la sortie de la carte graphique. Un réglage 39 de gain et d'offset est prévu avant l'entrée de la carte graphique, en vue du réglage de la dynamique du signal (le gain affecte le contraste et l'offset modifie la luminosité). Les lettres B, V et R à la sortie de la caméra 31 correspondent respectivement aux plans images bleu, vert et rouge dans le cas d'une caméra couleur. Dans le cas d'une caméra noir et blanc, il n'existe qu'une seule sortie. L'opération de traitement, qui constitue le coeur du processus de reconnaissance, doit permettre ensuite une bonne fiabilité lors de l'interprétation ultérieure, tout en consommant (traitement + interprétation) un temps suffisamment faible pour permettre la détection des défauts éventuels en temps réel. Il faut donc procéder à une compression importante des informations puisque chaque image au départ, formée de 256 x 256 points ayant une luminance définie sur 8 bits, représente 524.588 bits d'information. Cette compression découle de ce que l'on s'intéresse seulement à la silhouette des découpes. Une première étape de traitement consiste à binariser l'image en comparant la luminance de chaque point à un seuil de discrimination. Il n'y a plus alors qu'un seul bit d'information par point (luminance inférieure ou supé- rieure au seuil). Une telle binarisation est tout à fait significative compte tenu du bon contraste entre les découpes de carbone et leur papier de support. On n'a plus alors que 256 x 256 bits d'informations. La suite du traitement consiste en un suivi de contours. On commence à balayer l'image jusqu'à trouver un point de luminance égale à celle de la découpe (luminance minimale dans le cas considéré ici de découpes noires sur fond blanc) puis on explore les points situés autour de ce point de départ dans un sens donné (en pratique le sens trigonométrique) et on sélectionne le premier qui prend la valeur de la luminance de la découpe. On explore ensuite les points situés autour du point sélectionné, et ainsi de suite jusqu'à revenir au point de départ. Ce processus est effectué dans toute l'image pour suivre les contours de toutes les zones noires séparées visibles dans l'image. La discrimination des diverses découpes ou portions de découpes comprises dans l'image se fait grâce à un découpage de Limage binarisée en bandes verticales, par la lecture de colonnes de pixels. Il existe une contrainte quant à la distance qui sépare deux colonnes de pixels. La distance entre deux colonnes doit être inférieure à la distance qui sépare deux découpes et inférieure à la taille minimale d'une découpe. La lecture d'au moins p pixels de couleur noire indique que la colonne se situe sur une découpe. Dans le cas contraire, la colonne se situe entre deux découpes. En répétant ce procédé dans la totalité de l'image, on réalise la séparation des différentes découpes ou portions d'une même découpe. Plutôt que de procéder à une simple extraction de contours définis par des couples de coordonnées pour chaque point du contour suivi (on connaît pour cela de nombreux filtres d'extraction de contours, notamment les fonctions de ROBERTS, ROBINSON, NAGAO ... présentes dans la librairie de fonctions de la carte GIPS25), on choisit de coder ces contours de manière à en obtenir une représentation adaptée aux traitements ultérieurs tout en continuant la compression de l'information dans l'image. Le choix du codage doit être suffisamment fin pour permettre les opérations ultérieures de reconnaissance, mais pas trop fin au point de conduire à des temps de calcul prohibitifs. On a choisi le codage de FREEMAN (ou "chain code" en anglais) qui consiste à remplacer la suite des points du contour (dans le plan de l'image) par une suite de valeurs exprimant de proche en proche la position des points ; pour ce faire, il suffit pour chaque point d'un nombre compris entre 0 et 3 ou 0 et 7, selon que l'on explore 4 ou 8 points autour de chaque point. A titre d'exemple, la courbe de la figure 7, en utilisant le codage défini par la figure 8, se définit simplement par 0200107605444..... Cette fonction de FREEMAN, classique, est elle aussi disponible sur la carte GIPS25. En variante, ce codage de FREEMAN (codage dérivé) donne une succession de nombres caractérisant la différence d'orientation entre segments élémentaires successifs, ce qui donne des informations théoriquement invariantes après rotation ; il y a toutefois des artefacts liés à la discrétisation. On procède ensuite à l'approximation polygonale du contour considéré, par la méthode recursive connue sous l'appellation de "méthode de la corde". En simplifiant, elle consiste à choisir a priori deux points A et B de la courbe à approximer ; si tous les points de la courbe entre A et B ont une distance à la corde AB qui est inférieure à une valeur de seuil fixée à l'avance, alors cette corde est validée, sinon on repère le point P de la courbe le plus éloigné de la corde AB et on réitère le processus avec le couple de points AP puis PB, et ainsi de suite. Pour déterminer les points A et B au démarrage, on détermine le rectangle qui circonscrit une découpe. Les points A et B se situent toujours dans les portions de contour qui sont contigues aux petits côtés du rectangle.Si les petits côtés du rectangle se trouvent en position horizontale, le point A est alors le point du contour de la découpe situé le plus à gauche sur un petit côté ; le point B est le point du contour de la découpe situé le plus à droite sur l'autre petit côté. Si les petits côtés du rectangle se trouvent en position verticale, le point A est alors le point du contour de la découpe situé le plus en haut sur le petit côté ; le point B est le point du contour de la découpe situé le plus en bas sur l'autre petit côté. Le réglage du seuil est d'une grande importance puisqu'il influe directement sur le nombre de segments. Cette valeur de seuil est par exemple choisie en sorte d'avoir un nombre total de segments dans le contour inférieur ou égal à 128. A partir des coordonnées des sommets de polygone identifiés par l'approche polygonale, on effectue une phase de vectorisation consistant à calculer la longueur de chaque côté ou segment de polygone, ainsi que l'angle formé entre deux segments successifs (à partir des longueurs de ces segments, et des produits scalaire et vectoriel des vecteurs que constituent ces segments). De manière avantageuse, on procède enfin à une opération de nettoyage visant à supprimer d'éventuels sommets parasites : on définit pour cela un seuil angulaire, et on élimine tout sommet situé entre deux segments qui sont dans le prolongement l'un de l'autre avec un décalage angulaire inférieur à ce seuil. Ce seuil est par exemple choisi égal à 100. Divers essais ont montré qu'en pratique le nombre moyen de côtés identifiés dans les contours de découpes par la fabrication de pièces d'aéronefs est de l'ordre de 10. Compte tenu de ce qu'il faut environ 4 octets pour caractériser chaque sommet par rapport au précédent, il suffit donc d'environ 40 octets pour caractériser une découpe. Bien entendu ce nombre est supérieur si le champ de l'image contient ou intercepte plusieurs découpes ou portions de découpe (en fait plus les découpes sont petites, moins il y a de segments en moyenne). En tout état de cause le nombre d'octets d'informations utiles pour l'interprétation est très inférieur aux 256 x 256 octets d'information de l'image brute. C'est cette compensation qui permet de procéder en temps réel (avec une vitesse de défilement de 30 m/min, c'est-à-dire 50 cm/s, il faut donc être capable d'analyser une fenêtre de 50 cm de long toutes les secondes). L'interprétation des données ainsi traitées se fait par comparaison avec les informations théoriques définies par PAOMAD pour chaque découpe, et dont on aura au préalable (de très faibles modifications de PAOMAD suffisent à cet effet) déduit les approximations polygonales (il est même courant que les découpes théoriques aient une forme polygonale) et les coordonnées vectorielles associées. Pour effectuer ces comparaisons on identifie par comptage les découpes défilant devant le bloc 30 de manière à savoir à quelles découpes théoriques les comparer. Pour cela on dispose d'une autre caméra 40 qui fournit un signal vidéo à une carte 41 de type SUPERCAM. SUPERCAM est une carte de traitement d'image GIPS 25 de chez EIA, mais qui est intégré dans un boîtier industriel. Le mode de fonctionnement de SUPERCAM est très simple : il repose sur le téléchargement d'applications à partir du micro-ordinateur pour les exécuter en autonomie complète. Les ordres de téléchargement, d'exécution et d'arrêt sont indépendants entre eux et peuvent donc être envoyés de n'importe où dans le programme de l'application. La caméra reliée à SUPERCAM (pour le comptage des découpes) et la caméra reliée au microordinateur (pour l'analyse des défauts) sont calibrées de manière à intégrer la même image dans les deux capteurs.Le comptage des découpes par SUPERCAM (un programme de comptage a été téléchargé) est réalisé par la lecture et l'analyse de deux colonnes de pixels 50 sur l'image, afin de simuler une hystérésis mécanique. C'est le passage des découpes à l'endroit où s'effectue la lecture des colonnes 50 dans le champ de l'image qui augmente la valeur de comptage. La distance entre les deux lignes est inférieure à l'écart entre deux découpes consécutives mais suffisante pour que le recul du ruban (mentionné à propos de la figure 2) ne perturbe pas le comptage. Ainsi, la caméra SUPERCAM connaît à tout instant le numéro de la découpe près du bord le plus à droite sur la figure 9. Une liaison parallèle est prévue pour le transfert de cette donnée vers le système de traitement d'image. Comme on connaît aussi le nombre de découpes ou portions de découpe dans l'image, on peut donc accéder aux informations théoriques correspondant à ces diverses découpes ou portions de découpe. L'idée de base de la comparaison découle de la décomposition préalable de l'ensemble de l'image en plusieurs sous-ensembles ne contenant chacun qu'une seule découpe ou portion de découpe (voir ci-dessus et figure 10), puis de rechercher la suite d'angles mesurés dans celle théorique qui définit la découpe. Il est inutile de tenir compte de l'information distance puisque, comme cela a déjà été précisé, on ne désire pas faire de contrôle dimensionnel. En outre, les angles sont invariants aux rotations. Dans le cas de la figure 11, où la découpe est entièrement contenue dans l'image, tous les angles mesurés al à a9 servent à la comparaison. Par contre, dans le cas de la figure 12 où deux des angles correspondent à l'interception de l'image avec la découpe, seuls les angles al à a7 sont pris en compte. L'algorithme de comparaison est présenté à la figure 13. Quelques rappels sur la théorie des langages s'avèrent utiles Définitions - soit A un alphabet, les éléments de A sont des lettres (ici des angles), - un mot est une suite finie de lettres, noté f, - la longueur d'un mot f est la longueur de la suite. Elle est notée |f|, - si f est un mot de longueur n, alors f est une application de {1,n} e A f = f(1)f92)f(3)...f(n) Opération interne : A = ensemble des mots écrits sur l'alphabet A Propriétés - concaténation associative (f o g) oh = fo (g oh) = fo g oh E mot vide ensemble vide Remarque |f.g| = |f| + |g |#| = 0 Définition d'un facteur h est facteur de f w { 3 u, v # A* tq f = u h v } h est facteur gauche de f X { 3 v E A* tq f = h v } h est facteur droit de f # { 3 u # A* tq f = u h } Lemme de Lévi si f.g = u.v tq f, g, u, v, E A* alors: 1 / si |f| > |u| alors f = u.h et v = h.g 2 / si |f| = |u| alors f = u et g = v 3 / si |f| En outre, si f # A , on définit (f) = (ensemble des facteurs gauche et droit distincts} = {s tq g facteur gauche de f et g facteur droit de f strict} #(f) est le plus grand mot de (f) Première propriété #(f) = {#(f) # #(#(f)} Deuxième propriété #(f) > #(#(f) > #(#k(f) > # Troisième propriété #(f), #2(f), ..../ #k(f), # ordre préfixé # k #k(f) = #(f) Ouatrième propriété w G (f) # 3 k tq w = #k(f) Suite à ces définitions, on se pose le problème suivant Comment calculer #(f.a) ? f t A* et a t A Pour cela, plusieurs formes d'expression de la solution sont possibles 1 ère forme #(f.a) = {u.a ou u est le plus grand mot de (f) tq u.a est facteur gauche de f, sinon #} 2ème forme #(f.a) = { 1/ u.a tq u G (f) 2/ la lettre à la position |u|+1 est un a 3/ c'est le plus grand vérifiant 1/ et 2/ sinon #} 3ème forme (f.a) = {k(f).a où k est le plus petit entier tq la lettre à la position |#k(f)| +1 soit un a, sinon s} Notations soit une fonction Y : [1, n] e [0, n-1] soit f = a1a2a3...an f # i # # # # #(f) # j (i) = j + > (a1a2a3.. a1) = a1a2a3...ai Exemple sur des lettres : ceci peut être interprété comme la recherche d'une chaîne, à la fois facteur gauche et facteur droit d'un mot. 1 2 3 4 5 6 7 8 9 10 a b c a b c a c a b # 0 0 0 1 2 3 4 0 1 2 # (1) = 0 # (i+1) = #k(i)+1 où k est le plus petit entier tq a #k(i)+1 = ai+1 sinon O. Dans ce cas la complexité est en O(N). Plus exactement, la recherche d'un mot m dans f correspond à évaluer N5(m &num; f). Ici &num; est une lettre qu'on ne peut pas rencontrer. Etant donnée que dans la présente application les lettres correspondent à des valeurs d'angle, la lettre &num; prend la valeur 500, puisque l'angle a, a # [0,360]. La complexité est alors en O(lml+lfl). La distance utilisée est le carré de la distance euclidienne : d(ai, aj) = aj a.)2. En d'autres termes cet algorithme consiste à rechercher une suite de valeurs d'angle a1 a2 a3... p fournies par imagerie dans la suite de valeurs d'angle ss1 B2.. ssq que la découpe théorique par évaluation de la fonction Y (a1 a2 a3 ... ap 500 B1 ss2... Bq). Notons |&alpha;1 &alpha;2 &alpha;3 ... &alpha;p| = p et |ss1 ss2 ... ssq| = q Si l'écart entre I (i), (pour i allant de 1 ) p+q+1) et p est inférieur à un seuil, on estime alors avoir trouvé la suite d'angles fournie par imagerie dans la suite d'angles de la découpe théorique et la découpe est validée comme étant correcte. Si au contraire l'écart entre #(i) et p est supérieur à un seuil, un signal d'alarme est déclenché car la découpe est estimée incorrecte. De manière préférée en parallèle sur la stratégie de contrôle utilisant la vectorisation des contours polygonaux puis la comparaison des angles mesurés aux angles théoriques, on applique une stratégie de contrôle par réseaux de neurones. Cette technique, comme on le sait, consiste à simuler sur calculateur les connexions entre les cellules nerveuses biologiques (on peut se référer notamment à DAVALO E., NAIM P., des réseaux de neurones, EYROLLES PARIS, 1989, ou encore à LE CUN Yann., Modèle connexionniste de l'apprentissage, thèse de doctorat d'Etat, Informatique et Système, 1987, Université Paris 6). La particularité des réseaux de neurones artificiels est leur capacité d'apprentissage grâce à des éléments représentatifs des diverses classes d'éléments à discriminer. Par la suite un élément inconnu pourra être rangé dans une des classes, sous réserve d'avoir pu faire converger le réseau lors de l'apprentissage. Quelques rappels sont présentés dans ce qui suit La figure 14 est une représentation schématique d'un neurone formel (ou artificiel) tandis que la figure 15 est une représentation schématique d'un réseau de neurones à plusieurs couches. Un neurone formel se définit par - la nature de ses entrées ei avec i variant de 1 à n, - la fonction d'entrée totale h, - la fonction d'activation f, - la fonction de sortie q - la nature des sorties unique ou multiple. A chaque entrée est appliqué un paramètre de pondération, ou poids, caractérisant les liaisons entre neurones. L'entrée totale E est définie par h (e1,... en) l'état du neurone est donné par A = f (E) et la sortie du neurone est donnée par S = g(A). Le réseau (figure 15) est organisé par couches successives, chaque neurone d'une couche étant relié aux neurones de la couche suivante, sans liaison entre neurones d'une même couche. Le principe de l'algorithme repose sur le fait que comme on peut propager le signal de la couche d'entrée vers la couche de sortie, on peut rétro-propager l'erreur commise en suivant le chemin inverse. Soit un neurone linéaire à seuil, comportant n cellules d'entrées et une cellule de sortie, tel que sur la figure 16. On suppose que la valeur de sortie est +1, si la somme pondérée est positive, -1 sinon. Soient les notations - E est l'ensemble des exemples à classifier - Eh est un exemple particulier - Ej est la jième composante de l'exemple Eh - Wj est le paramètre de pondération de la jième cellule d'entrée - WO est le seuil du neurone de décision gh est la réponse fournie par le neurone pour l'exemple h - Th est la réponse souhaitée pour l'exemple h La règle d'apprentissage de WIDROW-HOFF stipule que le signal d'erreur est égal à la différence entre la somme pondérée des entrées non seuillées et le résultat attendu. Donc cette méthode implique une modification des poids, tant que la somme pondérée des entrées d'un neurone ne vaut pas +1 ou -1, même si la réponse seuillée est correcte. L'écart est : #h = Th - #jWjEjh On modifie chaque poids Wj de #Wj = k. #h.Ejh Dans le cas général de la figure 17, l'apprentissage lors de la rétro-propagation est identique à la règle de WIDROW-HOFF. On associe alors les données de 1 exemple avec le résultat désiré. Pour chaque exemple présenté au réseau, une sortie est calculée, par propagation avant (de la couche d'entrée vers la couche de sortie). On peut alors calculer l'erreur entre la sortie réelle et la sortie désirée. C'est la somme quadratique des erreurs sur la cellule de sortie : erreur = sh (Ah)2 L'erreur que l'on cherche à minimiser est fonction des poids. Elle est ensuite rétro-propagée dans le réseau, pour modifier chaque poids.Ceci est répété pour tous les exemples et si l'erreur est inférieure à un seuil fixé à l'avance, alors on considère que le réseau a convergé. Si on formalise ces propos soit X (x1 ..., xn) un élément à n entrées soit Y (y1 .. , Ym) un élément à m sorties désirées soit S î ..., sm) un élément à m sorties réelles alors E(W) = La règle de modification des poids pour l'exemple X présenté la Kième fois est Wij(k) = Wij(k-1) - e(k).di.Oj où di est calculé de proche en proche de la couche de sortie vers la couche d'entrée. a - pour la couche de sortie : di = 2.(si-yi).f(Ii) b - pour les couches internes di = #hdh.Whi.f(Ii) avec h parcourant les neurones vers lesquels le neurone i envoie une connexion f est la fonction sigmoïde Oj désigne la sortie du neurone j Ii désigne l'entrée du neurone i Ii= #jWijOj e(k) désigne le pas du gradient. L'algorithme de rétro propagation mis en oeuvre selon l'invention a été fondé sur les choix suivants. Pour ce qui est des données en entrée pour le réseau, elles sont bien sûr déduites des données fournies par l'approximation polygonale. Plutôt que de choisir les longueurs de segments et/ou les angles, ou encore l'abscisse curviligne, il a été choisi de déterminer à partir des coordonnées, 11 abscisse curviligne et de passer dans le domaine spectral. En effet une transformation de FOURIER discrète permet de disposer d une suite de coefficients calculés par la formule suivante -2j#ux F(u) = 1/N #x=0N-1 f(x) e N pour u=0, 1,...,N avec et u désigne la fréquence. Le fait de passer dans le domaine spectral présente deux avantages - la dimension des types de défauts étant relativement petite, vis à vis des dimensions d'une découpe, on peut supposer qu'une discrimination sur les hautes fréquences permettra de détecter les défauts, - en prenant un nombre de coefficients de la transformée de FOURIER fixé à l'avance, on impose une taille quant au nombre de données présentées en entrées du réseau. Dans le cas de cette application, on décide de ne garder que les dix premiers coefficients de la transformée de FOURIER, soit 10 entrées pour le réseau de neurone. On a choisi une fonction linéaire comme fonction d'entrée totale h(e1,...en) = z Wiei pour la fonction d'activation, on a choisi une fonction de type sigmoïde (ekxî) f(x) = a ekx+1 Enfin pour la fonction de sortie, on a choisi la fonction identité. Après de nombreuses tentatives de convergence du réseau, la structure suivante a été adoptée - une couche d'entrée (comprenant 10 éléments) - une couche cachée (nombre d'éléments inférieurs à 10) - une couche de sortie à un élément. Des essais ont été effectués avec une interprétation, après approximation polygonale, du premier type précité ci-dessus, c'est-à-dire avec vectorisation et comparaison aux données théoriques des découpes. On a répété les essais en analysant la même scène n fois, pour des positions légèrement décalées. Le temps global a alors été mesuré, puis divisé par n pour en déduire le temps d'analyse d'une image. La première manipulation a consisté à déterminer n, afin de ne plus subir l'influence de l'horloge de PC, dont la durée du top est de l'ordre de 55 ms. Ceci a été approché intuitivement lorsque le temps d'analyse d'une image n'a plus varié à partir d'un n donné Dans notre cas, il a semblé que 100 était une valeur qui respectait cette contrainte. Dans tout ce qui suit, cette valeur constitue le nombre de boucles de traitement. Les images analysées dans le cadre de cette partie ont toutes eu les mêmes dimensions - 270 mm pour l'axe de x - 160 mm pour l'axe des y Les découpes testées sont représentées aux figures 18-1 à 18-18 ; elles sont sans défaut. Les résultats ont été reportés dans le tableau 1. La première conclusion que l'on peut en tirer est la totale inefficacité de l'algorithme à traiter les découpes avec courbures. La cause de cet échec est l'approximation polygonale, car le nombre de segments trouvés est différent de celui de la découpe théorique, ceci implique alors toujours la détection d'un défaut. En tenant compte de cette lacune, le taux de fausse alarme est de 12,5 %. Par contre, si on ne considère pas les découpes avec courbures, le taux descend à 1,36 %. Le système se révèle donc être très efficace dans ce cas. La deuxième conclusion concerne les temps d'exécution : le temps moyen de rapidité d'analyse est de 0,47 S. Si l'on exclue les cas où un défaut a été rencontré, la rapidité se chiffre à 0,43 s. Or pour une image de 270 160 le temps imparti d'analyse (avec la contrainte de vitesse maximum 30 m/min) est de 0,54 s. On peut donc en conclure que l'on respecte cette contrainte du cahier des charges et que l'on peut réduire encore le champ d'inspection, pour augmenter la précision. En effet, la contrainte de vitesse maximum est pénalisante, car elle se produit essentiellement pour de très longues découpes rectangulaires. Or l'expérience prouve que ces découpes ne possèdent jamais de défauts. Des essais similaires ont été effectués sur des découpes comportant cette fois-ci des défauts (voir les figures 19-1 à 19-9). Les mesures ont eu lieu pour des tailles de défauts de 3 mm et 4 mm pour faire apparaître la sensibilité du procédé. Les résultats ont été reportés dans le tableau 2. La remarque que l'on peut en tirer est l'influence de la taille du défaut sur les performances du système de reconnaissance : d'un taux de réussite de 51,33 % dans le cas d'une taille de 3 mm, on passe à un taux de 99,66 % dans le cas d'une taille de 4 mm. La conclusion que l'on peut en tirer est que l'algorithme d'interprétation est performant à partir du moment où la taille du défaut est suffisamment importante ( > 3 mm). La non détection de défauts de taille faible vient du fait de l'approximation polygonale. En effet, la précision de cet algorithme tient à la valeur du paramètre de réglage. Or celui-ci ne peut dépasser une valeur minimum, sans quoi le nombre de points résultants est trop important. Ce nombre de points est fixé à 64 par demi-contour. Par ailleurs, on a testé la procédure de contrôle par réseaux de neurones grâce à un logiciel de simulation de réseau neuronique connu sous l'appellation RENARD (REseau de Neurones A Rétropropagation D'erreur) développé par AEROSPA TIALE. Un apprentissage sur 400 découpes a permis d'obtenir un taux de réussite de 85 % sur un jeu de test de 50 découpes. Ce taux est perfectible sous réserve de renforcer la pertinence des exemples. On peut noter que le contrôle de reconnaissance, dans le cas de découpes théoriquement polygonales (sans courbure) - le taux de fausse alarme pour des découpes sans défauts a été de 13,6 %, - le taux de bonne détection des défauts de plus de 3 mm a été de 99,66 %, - le temps moyen d'analyse d'images 270 mm x 160 mm a été de 0,43 s (environ 20 ms d'acquisition et 400 ms de traitement/interprétation), ce qui est compatible avec un contrôle en temps réel. C'est même en dessous du temps théorique d'analyse qui avait été évalué à 0,54 s en tenant compte de la vitesse de défilement maximum de 30 m/min Or il s'est avéré que cette contrainte de vitesse maximale est pénalisante puisqu'elle ne se produit en pratique que pour des cas de très longues découpes rectangulaires, or l'expérience prouve que ce type de découpe ne possède jamais de défauts.On peut donc prévoir d'améliorer si nécessaire la précision quant à la taille des défauts détectables puisqu'en pratique ces défauts n'apparaissent que sur des découpes pour lesquelles les vitesses de défilement sont inférieures au maximum précité. Lorsque les découpes comportent des courbures, on utilise de préférence un procédé hybride mettant en oeuvre l'utilisation conjointe de la comparaison avec les données CAO, et de la classification par réseaux de neurones. Ceci est représenté à la figure 20. Une règle de décision du type "la découpe est validée sans défaut si le nombre de segments d'une découpe par traitement d'images est très inférieur au nombre de segments de la découpe théorique et que le résultat par réseau de neurone est bon" permet une synthèse satisfaisante. D'autres règles de décision peuvent être - si le nombre d'angles consécutifs identiques de la découpe théorique est supérieur à un seuil prédéterminé, et que le résultat par réseau de neurones est bon, la découpe est validée correcte. L'invention permet donc bien le contrôle des découpes effectuées par une machine telle que ACCESS. Elle permet aussi un contrôle de conformité de la géométrie de pièces planes. Il va de soi que la description qui précède na été proposée qu a titre d'exemple non limitatif et que de nombreuses variantes peuvent être proposées par l'homme de l'art sans sortir du cadre de l'invention. numéro de l'image rapidité en s taux de fausse alarme sur 100 1 0,32 0 2 0,4 1 3 0,42 0 4 0,43 4 5 0,4 0 6 0,48 0 7 0,48 0 8 0,53 0 9 0,52 1 10 0,64 11 11 0,45 6 12 0,4 0 13 0,46 0 14 0 ,44 0 15 0,36 1 16 0,42 1 17 0,65 100 18 0,63 100 TABLEAU 1 numéro de l'image taille du défaut en mm taux de détection 1 3 17 4 97 2 3 35 4 100 3 3 55 4 100 4 3 63 4 100 5 3 35 4 - 100 6 3 77 4 100 7 3 50 4 100 8 3 100 4 100 9 3 30 4 100 TABLEAU 2 REVENDICATIONS 1. Procédé de contrôle de découpes successives au moins approximativement polygonales effectuées par une machine de découpage dans un ruban (2, 13, 15) à partir de la donnée de découpes théoriques successives, selon lequel - on fait défiler les découpes sur un fond contrasté, - on acquiert une succession d'images d'un champ englobant toute la largeur du ruban, avec une fréquence telle que deux images successives englobent des zones du ruban en défilement se recouvrant partiellement, - on binarise l'image en associant à chaque point l'une des deux valeurs selon que sa luminance est supérieure ou inférieure à un seuil, - on applique à cette image binarisée une extraction de contour par codage de FREEMAN, - on identifie chaque contour, - on sépare l'image en autant de fenêtres de traitement qu'il y a de contours fermes ou non, - on effectue une approximation polygonale de chaque contour fermé ou non, - on vectorise chaque segment de l'approximation polygonale en déterminant au moins l'angle entre deux segments successifs, - on compare la succession des angles mesurés dans l'approximation polygonale à la succession des angles d'une approximation polygonale de la découpe théorique de même identification, - on détecte un défaut si l'on ne trouve pas la succession d'angles mesurés dans la succession des angles de l'approximation polygonale de la découpe théorique de même identification. 2. Procédé selon la revendication 1, caractérisé en ce qu'en outre - on réalise un réseau de neurones à N entrées, à trois couches et à une sortie, - on conduit un apprentissage de ce réseau neurones à l'aide d'un ensemble de découpes sans défauts, et d'un ensemble de découpes avec défauts, chaque découpe étant caractérisée, après approximation polygonale, par N grandeurs appliquées avec N entrées, - en parallèle avec les étapes de vectorisation et de comparaison, on applique les N grandeurs de chaque approximation polygonale à ce réseau de neurones, - et on détecte un défaut lorsqu'unie règle de décision prédéterminée combinant les résultats de l'opération de comparaison et la sortie du réseau de neurones est satisfaite. 3. Procédé selon la revendication 2, caractérisé en ce que les N grandeurs caractérisant chaque approximation sont N valeurs que prend la fonction de FOURIER discrète appliquée à l'abscisse curviligne pour des valeurs de fréquences allant de 1 à N. 4. Procédé selon la revendication 3, caractérisé en ce que N vaut 10, 5. Procédé selon l'une quelconque des revendications 2 à 4, caractérisé en ce que la fonction d'entrée de chaque neurone est une fonction linéaire des entrées affectées chacune de son poids, la fonction d'activation est du type sigmoïde et la fonction de sortie est la fonction identité. 6. Procédé selon l'une quelconque des revendications 2 à 5, caractérisé en ce que les découpes sans défauts utilisées pour l'apprentissage ont des tronçons courbes. 7. Procédé selon l'une quelconque des revendications 2 à 6, caractérisé en ce que l'une des règles de décision est : "la découpe est validée sans défaut si le nombre de segments d'une découpe par traitement d'images est très inférieur au nombre de segments de la découpe théorique et que le résultat par réseau de neurone est bon". 8. Procédé selon l'une quelconque des reven dications 1 à 7, caractérisé en ce qu'on identifie chaque contour par comptage de découpes passant dans le champ de la caméra. 9. Procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce que la vitesse de défilement du ruban étant de 30 m/min maximum, le temps d'acquisition de binarisation, d'extraction de contour, d'approximation polygonale et de comparaison est inférieur à 0,5 sec. 10. Procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce que les découpes sont réalisées en composite de fibres de carbone unidirectionnelles accolées à un support blanc. 11. Procédé selon 1 'une quelconque des revendications 1 à 10, caractérisé en ce qu'après vectorisation et avant comparaison on procède au remplacement par un vecteur unique tout couple de vecteurs successifs dont l'écart angulaire est inférieur à un seuil prédéterminé.