Vous êtes sur la page 1sur 59
UNIVERSITÉ DE SOUSSE ECOLE NATIONAL D’INGENIEURS DE SOUSSE (ENISo) PROJET DE FIN D’ETUDE ELECTRONIQUE INDUSTRIELLE

UNIVERSITÉ DE SOUSSE ECOLE NATIONAL D’INGENIEURS DE SOUSSE (ENISo)

PROJET DE FIN D’ETUDE

ELECTRONIQUE INDUSTRIELLE OPTION : CONCEPTION DES SYSTEMES ELECTRONIQUE (2 ème promotion)

CONCEPTION ET REALISATION D’UN OUTIL D’INSPECTION OPTIQUE COMPLEMENT TEST

Élaboré par : SALEM BEN AICHA

Élaboré par : SALEM BEN AICHA

Nizar

Anis

Encadré par :

Mr.KAANICHE Khaled (ENISo) Mr. JEMMALI Saber (ENISo)

Mr. DOUKALI Mohamed Mr.BARKANA Abdelhafidh

Année universitaire : 2008/2009

(SAGEM)

(SAGEM)

Dédicaces

Parce que c’est elle qui m’a soutenu, encouragé et aidé tout au long de mes études et de ma vie en général, je dédie ce travail à ma famille.

Je dédie ce mémoire à l’âme de mes deux sœurs Nawel et Nayla que je n’oublierai jamais.

À mon père Mohamed Taher pour son grand amour et ses sacrifices.

À ma mère Nafissa que je l’aime beaucoup.

À ma chère fiancée Sassia pour son amour et son aide.

C’est à ma famille que je dois toutes mes réussites et toute ma vie, c’est elle l’origine de tous les beaux moments que j’ai vécus.

NIZAR

Dédicaces

ANIS

Résumé

Les machines de vision ont pris une grande importance dans l’industrie de nos jours vu la bonne qualité d’inspection qu’elles fournissent aux industriels, basée sur l’acquisition des images par une caméra normale/ Intelligente et de haute résolution. Le projet était proposé dans le cadre de réaliser une application dont le principe est celui de la machine de vision mais avec des méthodes et des moyens plus simples. Pour cela, on a développé sur le visual C++ une application qui se présente en une interface utilisateur permettant la connexion d’une caméra, avec sortie USB, à un ordinateur présentant une bonne capacité de mémoire ensuite la configurer et prendre une image pour la carte de référence ainsi que les cartes de tests par suite. Cette application réalise une inspection, sur les composants sélectionnés par l’opérateur, basée sur le calcul du nombre des pixels dont les valeurs de rouge « R », vert « G » et bleu « B » de ces pixels sont situées chacun dans une zone bien définie et dont les bords de l’intervalle sont comprises entre « 0 » et « 255 ». Ce calcul se fait pour la carte référence ainsi que la carte à tester, ensuite on fait la comparaison avec des seuils bien déterminés pour vérifier si le composant est absent,décalé ,orienter ou bon à chaque fois ou bien la zone sélectionnée est vide au cas où l’opérateur a mal sélectionné le composant. Le résultat de l’application sera un rapport qui présente le résultat de l’inspection en spécifiant le nombre des composants inspectés et le taux pour chaque type de défaut et de plus un fichier texte dans le répertoire de l’application va contenir, à chaque fois quand fait l’inspection, la liste des composants inspectés.

Mots-clés :

machines de vision

va contenir, à chaque fois quand fait l’inspection, la liste des composants inspectés. Mots-clés : machines

Abstract

The machine vision have assumed great importance in industry today because of the good quality of inspection that they provide to manufacturers, based on the acquisition of images by a camera normal / Intelligence and high resolution. The project was proposed in part to make an application that has the same principle as the machine vision, but with simpler methods and ways. This was why we developed on visual C + + is an application that presents a user interface for connecting a camera with USB output to a computer, whose memory has a big capacity, and then configure it to take an image for Reference card and for cards to be tested then. This application carries out an inspection on the components selected by the operator, based on calculating the number of pixels whose values in red "R", green "G" and blue "B" are located in each zone well defined so that the edges of the interval range from "0" and "255". This calculation is done for the reference card and the tested card, then the comparison is done with determined thresholds to check if the component is missing, or shifted right each time, or the selected area is empty if l 'operator has selected the wrong component. The result of the application will be a report which presents the results of the inspection, specifying the number of components inspected and the rate for each type of defect and also a text file in the application directory that will contain, each time the inspection is done, the list of components inspected.

file in the application directory that will contain, each time the inspection is done, the list

:

:

REMERCIEMENTS

Qu’il nous soit permis d’exprimer nos sincères remerciements à toutes les personnes qui n’ont pas manqué de nous donner aide et collaboration pour l’élaboration de ce projet. nous remercions spécifiquement :

- Monsieur Sabeur Jemmali pour son encadrement attentionné, ses encouragements et ses précieux conseils et suggestions.

- Monsieur Khaled Kaaniche pour la confiance qu’il nous a témoigné, sa grande

disponibilité et pour les solutions qu’il a mis à notre disposition. -Monsieur le chef service test à Sagem Tunisie Communication usine 1, Monsieur Mohamed Doukali qui nous’a bien accueilli dans son honorable service et pour les moyens qu’il a mis à notre disposition pour mener ce travail.

-Monsieur Abdelhafidh Barkana pour son encadrement attentionné, ses précieux conseils et suggestions.

nous remercions travail.

Nous adressons nos remerciements à tous les enseignants du l’ENISo qui nous ont donné tous les bases nécessaires pour l’élaboration de ce travail

les membres du jury qui ont bien voulu accepter de valoriser ce

Nous tenons remercier Madame la directrice de l’ENISo, Madame Najwa Essokri Ben Amara pour ses encouragements et ses précieux conseils.

Que toutes les personnes de Sagem Tunisie Communication reçoivent l’expression de notre gratitude pour leur aide.

Je remercie également Messieurs Hasen Makki pour ses précieux conseils ainsi que tous les membres du département électronique industrielle de l’ENISo.

En espérant être digne de vos confiances

Soyez assurés de mes considérations

Nizar et Anis

industrielle de l’ENISo. En espérant être digne de vos confiances Soyez assurés de mes considérations Nizar

Table des matières

Remerciements Résumé (arable, français et anglais) (mots clés compris) Table des matières Liste des figures …………………………………………………………………………… Liste des tableaux…………………………………………………………………………. Introduction…………………………………………………………………………………. Chapitre 1 : Système de vision dans l’industrie

I. Introduction ……………………………………………………………………………

II. Contrôle qualité dans l’industrie ….……………………………… II.1. Définition………………………………………………………………………… II.2. Vision industrielle……………………………………………………………….

2.1. Principe ……………………………………………………………

2.2. Types de système de vision ………………………………………….

2.3. Constitution d’un système de vision …………………………………

2.4. Avantages et Inconvénients d’une machine de vision………………

III. Evolution des systèmes de vision industriels…………………………………………. III.1. Introduction……………………………………………………………………. III.2. Historique…………………………………………………………………… III.3. Etapes de fonctionnement d’un système de vision ……………………………

IV. Cahier des charges et problématique………………………………………………… IV.1. Introduction…………………………………………………………………… IV.2. Intérêt du projet……………………………………………………………… IV.3. Cahier de charge………………………………………………………………

V. Conclusion

Chapitre 2 : développement de cahier de charge

I-

Introduction :

II-

Architecture de la machine :

II-1. Conception :

II-2. Etapes d’inspection :

III-

Système de commande (hors ligne/en ligne):

III-1.Guide d’étude des modes de marches et d’arrêts(GEMMA) :

III-2.GRAFCET du conduit :

III-3.GRAFCET du fonctionnement normal :

IV-

Choix de la caméra et l’éclairage :

IV-1. Choix de la caméra:

IV-2. Choix de la carte d’acquisition :

IV-3. Choix de l’éclairage :

V-

Algorithmes de traitement :

V-1. Techniques de segmentation :

V-2. Techniques de prétraitement :

Chapitre 3 : Développement de logiciel d’aide à la décision

I. Introduction :

II.

Conception du logiciel :

III.

Décision :

IV.

Communication caméra-logiciel et acquisition de l’image :

V.

Préparation des caractéristiques de carte à inspecter :

V-1.

Introduction :

V-2.

Le fichier RS-274X :

VI.

Chargement du fichier Gerber :

1-

Transformation de fichier Gerber :

a-

Présentation de GC-Power Station : graphique code power station

b-

Etapes à suivre :

2-

Nettoyage du fichier Gerber :

a-

Présentation de CAMCAD:

b-

Etapes à suivre :

VII. Les bibliothèques utilisées :

1- SDL :

VIII. Phase de programmation :

1-

Superposition Fichier Gerber-Image référence :

2-

Sélection et sauvegarde des composants :

3-

Inspection des composants par analyse et traitement d’images :

4-

Résultat de test et tolérance…………………………………………………………….

5-

Fonctions principales du programme :

6-

Interface globale :

IX.

Conclusion

Chapitre 4 : test et étude de performance

I.

Test……………………………………………………………………………………

II.

Etude de performance………………………………………………………………

III.

Avantage et amélioration possible…………………………………………………

Conclusion

Bibliographie

Annexes

Table des figures

Figure 1.

Fonctionnement d’un système vision

17

Figure 2. Aperçu de l'outil d'inspection à réaliser

21

Figure 3. Ligne de production typique

23

Figure 4. Dialogue opérateur machine

23

Figure 5. Etats de la machine et modes de fonctionnement

24

Figure 6.

Grafcet du conduit

24

Figure 7. Grafcet du fonctionnement normal

25

Figure 8. Exemples des caméras à utiliser

26

Figure 9.

Exemples d'éclairage

27

Figure 10. Panneau de leds conçu

28

Figure 11. Etapes d'importation d'un fichier par GC Power station

34

Figure 12. Importation du fichier et son ouverture

35

Erreur ! Signet non défini.

Figure 13. Export du fichier RS-274 Figure 14. Ouverture du fichier pour le nettoyer par CAMCAD

36

Figure 15. Image SDL d'une carte électronique

37

Figure 16. Interface de l'application Max-Vision

46

Figure 17. Inetrface générale de l'application

47

Figure 18. Affichage du composant à inspecter

48

Figure 19. Inspection des composants sélectionnés

49

Figure 20. Rapport généré après l'inspection

49

Introduction générale

Récemment, il s’est apparu dans l’industrie le concept de vision industrielle qui s’agit en fait d’une application de contrôle non destructif de processus de fabrication. Cette application est principalement constituée d'une caméra avec objectif pour la prise d'images des produits sur les lignes de production, d'un éclairage spécifique pour mettre en évidence les défauts, d'un ordinateur de visualisation et de traitement des images lié à un automatisme d'éjection.

Dans ce sens, SAGEM s’est orienté vers l’introduction de ce concept dans ses lignes de production mais l’inconvénient était le coût élevé d’une machine de vision, qui de nos jours est arrivée à un stade d’évolution assez développé vue les recherches et les investissements que font les chercheurs et les industriels pour améliorer la qualité d’inspection afin d’améliorer par suite la qualité de leurs produits industriels.

En se basant sur ses données et pour des raisons de coûts comme on a vu, vient l’idée de ce projet qui avait comme but de réaliser un petit exemplaire d’un outil de vision qui a pour rôle de faire l’inspection sur les cartes produites dans les lignes de production SAGEM et qui peut être développer à long terme pour arriver au stade d’une machine de vision.

En ce qui suit, je présente en premier lieu la situation du système de vision dans l’industrie ainsi que son importance, en second lieu, je passe aux spécifications techniques et conception de l’outil d’inspection dans le cadre de mon projet, ensuite, les étapes de développement de l’application d’inspection et finalement l’étape test, validation et étude de performances de l’application.

PREMIERPREMIERPREMIERPREMIER CHAPITRECHAPITRECHAPITRECHAPITRE

SystèmeSystèmeSystèmeSystème dededede visionvisionvisionvision dansdansdansdans L’indL’industrieL’indL’industrieustrieustrie

I- Introduction :

Le contrôle de la qualité dans l'industrie fait appel à des techniques scientifiques pour garantie la bonne qualité d'un produit ou d'un service. Les techniques de contrôles varient d'un produit à l'autre, mais les principes de base restent les mêmes. Dans ce contexte, on s’intéresse à un aspect du contrôle qualité qui est la vision industrielle. La vision industrielle est une réponse à ces préoccupations pour les opérations de contrôles de la production. En effet les machines de vision industrielle permettent un contrôle de la production à haute cadence et assurent une bonne répétabilité du contrôle (à la différence d'un opérateur, une machine n'est jamais fatiguée et ses critères de décision ne varient pas). Elle est définie selon l'UKIVA comme étant « l'application des techniques de vision artificielle à des problématiques de production ». Son premier objet est « d'essayer de reproduire le plus fidèlement possible la perception visuelle humaine au moyen d'un capteur optique associé à un système de traitement de données : le couple caméra-ordinateur». Dans ce contexte, vient la définition de la vision industrielle comme étant la construction des machines aptes à traiter un ensemble connu de tâches visuelles. La vision industrielle stricto sensu concerne les problématiques de production. Il s'agira de souvent de problèmes de contrôle qualité ou de guidage, dans le cadre d'une automatisation d'une chaîne de production.

II- Contrôle de la qualité dans l’industrie :

II-1- Définition :

Le contrôle qualité est un aspect de la gestion de la qualité. Il est une opération destinée à déterminer, avec des moyens appropriés, si le produit (y compris, services, documents, code source) contrôlé est conforme ou non à ses spécifications ou exigences préétablies et incluant une décision d'acceptation, de rejet ou de retouche. Un contrôle est défini par un certains nombre de paramètres

La fréquence de contrôle : systématique, par prélèvement la ou les caractéristiques des produits qui doivent être contrôlé. la méthode de contrôle : par mesure, par comparaison, par appréciation (contrôle visuel par exemple). les moyens de contrôle à utiliser : appareil de mesure, référentiel l'entité qui réalise le contrôle : personnel de fabrication (autocontrôle4), personnel spécialisé, personnel d'encadrement, machine (automatisation du contrôle).

Pour choisir les caractéristiques d'un contrôle, il faut tenir compte des contraintes techniques (criticité de la caractéristique à contrôler, précision nécessaire de l’appareil de mesure, qualification du personnel effectuant le contrôle etc) mais également des contraintes économiques. L'aspect économique joue sur la nature du contrôle, les moyens à engager et sur les caractéristiques à contrôler. Il faut choisir en priorité, les caractéristiques ayant une influence sur la sécurité, la fonctionnalité du produit.

II-2- La vision Industrielle :

II-2-1. Principe :

La vision industrielle consiste à prendre une ou plusieurs images de l’objet à contrôler ou visualiser. Les images sont obtenues grâce à une ou plusieurs caméras. Ensuite les images sont numérisées pour être utilisables par un logiciel de traitement d’image le plus souvent dédié au contrôle considéré. Le traitement de l’image ayant été réalisé une décision est prise par rapport à des critères prédéfinis et une action est effectuée. Il existe plusieurs types de vision :

Vision 2D : Appelée la vision « classique », la vision dans un plan est la plus répandue et la mieux maitrisée sur le marché aujourd'hui. On peut trouver des caméras 2D en niveaux de gris ou en couleur. Ces caméras peuvent être linéaires ou matricielle. Vision 3D : La vision en trois dimensions est une technique en plein développement technologique et en plein essor. Le principe peut être résumé de façon simpliste comme suit. Un faisceau laser (rouge le plus souvent) est projeté sur l'objet à contrôler, une caméra matricielle placée à environ 45° par rapport au plan (laser; objet) prend une photo de la trace laser sur l'objet. Des calculs géométriques basés sur le principe de triangulation permettent, en étudiant la courbure de la trace laser, de modéliser l'objet considéré en 3D. Vision thermique : Basée sur la détection des zones de défaut (paroi plus mince…) issues de la différence de température des zones d’un objet. Ces zones ne peuvent pas être détectées avec une caméra classique. Vision Rayon X : Parfois il est nécessaire d'effectuer un contrôle non destructif d'un produit c’est pour ça on utilise une machine de vision intégrant un rayon X.

II-2-2. Types de Systèmes de vision :

On distingue entre deux types de systèmes de vision:

• les systèmes génériques • les systèmes spécialisés Les premiers sont généralement constitués d'un PC et d'une carte d'acquisition et utilisent des caméras matricielles. Les seconds ont généralement recours à des hardwares spécifiques (cartes à DSP, par exemple) et à des capteurs spéciaux (caméras linéaires, capteurs IR, etc.)

II-2-3. Constitution d’un système de vision :

Un

système de vision

industriel

constituants listés ci-dessous:

est

habituellement

constitué de

l'assemblage des

Une ou plusieurs caméras numériques ou analogiques (noir et blanc ou couleur) munies d'un objectif adapté aux conditions de prise d'image, à savoir distance et taille de l'objet à prendre en image. Un système d’éclairage continu ou stroboscopique. Une carte interface entre l'ordinateur et la caméra pour numériser les images (aussi connu sous le nom de "frame grabber" en anglais et "carte d'acquisition vidéo" en français). Aujourd’hui de plus en plus de caméras ont la possibilité de numériser l'image

immédiatement, ce qui permet de les brancher directement sur un bus de communication (TCP-IP, USB, IEEE-1394 etc). Une unité de calcul, souvent un micro-ordinateur ou un système avec processeur embarqué, (comme un DSP). Un logiciel de traitement d’image. Un senseur de synchronisation (souvent optique ou magnétique, ou des encodeurs) qui déclenche la caméra lorsque l’objet passe dans son champ de vision. Un système d'entrée/sortie digitales, ou un système de communication protocolée (c.à.d. connexion réseau ou RS-232 ou plus souvent RS-485 pour les longues distances) pour transmettre les données entre les différents organes. Un ensemble mécanique permettant de mouvoir les objets, les caméras ou d’autres organes.

II-2-4. Avantages et Inconvénients d’une machine de vision :

Les systèmes de vision industrielle présentent plusieurs avantages :

- Le contrôle est précis (mesures géométriques, quantité, )

- La meure est répétitive et objective

- Le temps de calcul est rapide

- Il n'y a aucune fatigue

- Le système s'adapte à des environnements difficiles

- Le contrôle intègre des connaissances d'experts

- La vision industrielle permet de gagner sur : le coût des matériaux, le coût de travail, Il présente néanmoins des inconvénients :

- Le système est optimisé pour une application

- L'évolution et la flexibilité du système sont limitées

- Le système est sensible aux changements des conditions d'environnement

III- Evolution des systèmes de vision industriels :

III-1. Introduction :

Dans la pratique industrielle, la mise en place d'un système de vision commence par une série de choix : la définition du système optique (objectifs, caméra, carte d'acquisition) permet d'optimiser la résolution de la caméra à la taille de l'objet observé ; la définition de l'éclairage permet de réduire le contexte de vision à des équivalents mathématiques simples ; la définition des algorithmes permet la réduction et l'interprétation ; enfin, la définition du mode de communication du système de vision permet de bâtir un réseau plus ou moins complexe, en fonction des tâches attendues.

Fondamentalement, la vision industrielle comporte donc deux séquences, l'une où l'on acquiert l'image, l'autre où cette image est utilisée pour un traitement applicatif commandé par un logiciel : contrôle, mesure, automatisme… L'acquisition de l'image repose sur le prétraitement. La qualité de l'éclairage et de l'objectif, la finesse du capteur, le positionnement de l'objet, la vitesse et l'intégrité de transmission des signaux, la puissance de la carte d'acquisition, l'interfaçage direct avec l'automatisme environnant sont les caractéristiques dominantes du traitement hardware. Un système de vision standard

comprend donc d'abord une caméra. La qualité des images qu'elle capte dépend du nombre de pixels, de la distance, de l'environnement extérieur.

Un système de vision peut se présenter sous la forme de plusieurs architectures matérielles. La première comprend un PC :Le système de vision est alors composé d'une caméra, d'un câble, d'une carte d'acquisition, d'un programme informatique. Le second type d'architecture, avec capteur de vision, se développe depuis les années 2000. L'interprétation des images est effectuée dans une caméra « intelligente » qui embarque toute la puissance de calcul indispensable. Cette réunion dans un même boîtier de la partie acquisition et de celle traitement d'image tend à diminuer les coûts, l'encombrement, les temps de transmission…

IV- 2. Historique :

Les premiers systèmes de vision sont apparus dans les années 80. A cette époque les machines de vision étaient à $30.000 et $40.000 donc vu ce coût un peu élevé, les sociétés ont essayé d’effectuer leurs propres systèmes de vision. En bref, les premiers prototypes de systèmes de vision industrielle sont essentiellement gloire, un peu plus intelligent comparateurs optiques. En effet, les entreprises avaient besoin de systèmes qui peuvent suivre l'évolution des capacités de production. Presque simultanément à l'évolution de la technologie de la puce du processeur, les tâches des capacités de production de machines de vision ont été élargies. elles ont assumé un rôle sans cesse croissant pour la détection de défauts, la présence ou l'absence, les mesures géométriques de base, une partie de calibrage et / ou de tri, de la couleur en ligne et la reconnaissance du contrôle statistique du processus. Comme les besoins de la production augmentent jour après jour, en fait, la sophistication des systèmes de vision et de logiciels devient donc de plus en plus demandée. La nécessité de la grande vitesse, la précision ainsi que les mesures de vision quantifiables pour aboutir à la bonne décision, est évidente. Par rapport aux autres technologies, les machines de vision sont les seuls outils qui peuvent tenir à la production et / ou de la mesure de certaines caractéristiques requises. Pour le secteur de la production, l'état de l'art-machine intègre des systèmes de vision rapide et de haute résolution avec des caméras CCD frame grabbers intelligents qui permettent plusieurs types de traitement d'image. Ces systèmes combinent des optiques afin de permettre la résolution la plus belle possible. L’orientation vers les caméras intelligentes et les pc basés sur la vision à la norme, a assurée une amélioration spectaculaire au niveau de la facilité d’utilisation et de la puissance de traitement. Finalement, les derniers progrès se concrétisent dans l’utilisation plus large de vision 3-D et 3-D caméras intelligentes en particulier ainsi que l’apparition d'autres applications qui impliquent l'objet de rayons X ou de l'imagerie infrarouge, et plus intégrée des sociétés fournissant des solutions de vision et de mouvement.

III-3. Etapes de fonctionnement d’un système de vision :

Illumination Acquisition de l’image Système de machine de vision Image Description de Scène numérique 2D
Illumination
Acquisition
de l’image
Système de machine
de vision
Image
Description de
Scène
numérique 2D
l’image
Feedback

Figure 1. Fonctionnement d’un système vision

Les phases d’un système de vision se répartissent de la manière suivante :

Phase d’acquisition : concerne l'extraction de l'image sous une forme numérique.

Eclairages, optiques, caméras et cartes d'acquisition sont nécessaires pour cette étape. Il s'agit d'une étape importante car, bien réalisée, l'acquisition permet de simplifier les étapes de traitement et d'analyse. Phase du traitement : Souvent appelée prétraitement, le traitement regroupe un ensemble de techniques destinées à améliorer la qualité de l'image. Une première étape, appelée restauration, vise à corriger les déformations géométriques, provoquées par l'optique et à la caméra, et les variations d'éclairage. Une seconde étape, appelée amélioration, vise à réduire le bruit et à augmenter les caractéristiques de l'objet contenant les informations souhaitées. Phase de l’analyse : elle a pour but l'extraction de l'information caractéristique contenue dans une image. Elle recourt à diverses techniques telles que celles de segmentation (seuillage, détection de frontière, etc.). Phase d’interprétation : Sur base des caractéristiques extraites telles que celles des

positions, orientations, types,…etc, on dégage la liste des défauts détectés lors de l’inspection.

V- Cahier de charge et problématique :

IV-1. Introduction :

L’activité principale de la chaîne de sous-traitance Sagem Tunisie Communication est la production des cartes électroniques, pour cela elle dispose d’une dizaine de lignes de production : des lignes CMS, des lignes vagues et des lignes d’intégration.

Comme chaque procédure de production et dans le but de garantir la bonne qualité ainsi qu’être conforme à ce que ses clients attendent d’elle, Sagem dispose d’une phase très importante lors de la production qui est la phase du test. En effet, il existe deux types de test qui sont : le test « In Situ » et le test fonctionnel servant respectivement à tester certains composants de la carte ou la fonctionnalité de toute la carte mise en tension. Le problème dans ces deux types de test que parfois on ne dispose pas des outils nécessaires pour accéder à certains types de composants vu leurs tailles ou leurs positionnements d’où la nécessité d’avoir un outil d’inspection qui nous permet à avoir les données nécessaires sur ces composants là afin de vérifier leurs critères. IV-2. Intérêt du projet:

Dans le but d’assurer une meilleure qualité de ces produits, SAGEM a équipé certains de ces lignes de production par des machines de vision afin d’accomplir le test nécessaire de certains composants. Cependant, ces machines qui sont assez performantes coûtent très cher d’où vient l’idée d’essayer de réaliser une machine de vision. Mais vu que la réalisation d’une telle machine n’est pas assez simple et nécessite un intervalle de temps assez important et des grands investissements alors le projet s’est réduit à la conception de machine de vision ,son architecture et son fonctionnement automatique ainsi la réalisation d’un outil d’inspection assurant certaines fonctionnalités de test des composants électroniques sur les cartes de test. Dans ce qui suit, on aura un aperçu sur la machine de vision, ses avantages, ses inconvénients ainsi que ses étapes ensuite on va s’intéresser à présenter le travail demandé dans ce projet. IV-3. Cahier de charge :

Dans le cadre de ce projet, il était demandé de réaliser un outil d’inspection des composants électroniques sur les cartes de test. Cet outil d’inspection doit nous permettre de :

Vérifier la présence des composants

Vérifier leurs positions ainsi que leurs orientations

Vérifier si c’est le bon composant ou pas à partir de son image

La vérification va se faire par rapport à une carte référence appelée aussi « carte de calibration » qui va être notre référence pour vérifier les critères indiqués au dessus. Pour arriver à réaliser ces étapes indiquées au dessus, on a besoin de s’intéresser à certains points qui sont :

Comprendre les fichiers CAO (les caractéristiques des composants indiquées dedans) et pouvoir lire et extraire les données nécessaires à utiliser. Composant référence+coordonnées + dimension + orientation + caractère

Indiquer le nombre des classes pour les niveaux qui forment l’image du composant

La phase reconnaissance avec apprentissage (comment enrichir la base)

La phase de la validation de l’ajout des données

Méthode de seuillage à utiliser et comment calculer le centre de gravité d’un

composant à partir de l’image traité

La partie développement de la méthode de traitement et analyse d’image ainsi que la réalisation des interfaces va se faire sur le Visual C++ pour des raisons qui sont :

Les logiciels tels que le « vision builder » et le « LabView » nécessitent des licences qui sont très couteuses.

On doit présenter une version « 0 » pour un comité qui doit valider le projet donc il faut que l’outil informatique utiliser est gratuit.

La partie réalisation est dépendante de la capacité d’investissement du coté service test

VI- Conclusion :

Le contrôle de la qualité donc a connu une déviation importante après l’intégration des systèmes de vision dans l’industrie ce qui a permis d’améliorer la qualité des cartes produites et de performer de plus en plus les lignes de production. On va voir dans ce qui est suit les différentes étapes de conception et de programmation du projet.

DEUXIÈME CHAPITRE

Spécifications techniques Et Conception

VI- Introduction :

La machine de vision est un domaine sans cesse croissant de la recherche qui traite l’analyse et le traitement des données de l’image. Elle joue un rôle clé dans le développement des systèmes intelligents. La recherche sur la vision industrielle met l’accent sur les méthodes et les systèmes pour analyser les images ainsi que les séquences d’images. L’objectif dans la vision industrielle de nos jours est de développer des nouvelles approches, qui fournissent les principales représentations et qui sont robustes à l’égard des changements dans l’environnement et sont de calcul efficace.

VII- Architecture de la machine :

II-1. Architecture :

L'organisation d'un processus de vision par ordinateur est la suivante :

Acquisition d'une scène

Traitement de l'image numérique brute

Analyse de l'image corrigée

Interprétation / Décision

Pour cela et afin de concevoir une machine de vision nous sommes obligés de respecter certains critères pour garder le professionnalisme, donc notre machine contient :

Une caméra numérique

Un bloc d’éclairage

Un micro ordinateur

Un automate programmable industrielle

Un bloc d’alimentation

Pupitre de commande

Deux convoyeurs

On a utilisé l’outil SOLID WORKS pour développer notre modèle (voir annexe)

SOLID WORKS pour développer notre modèle (voir annexe) Figure 2. Aperçu de l'outil d'inspection à

Figure 2. Aperçu de l'outil d'inspection à réaliser

II-2. Conception :

Lors de la conception de notre outil d’inspection, cinq étapes doivent néanmoins être respectées:

La définition du cahier des charges

L'étude de faisabilité

le choix de la caméra

La conception de l'éclairage

La conception logicielle

Les tests

Dans notre cas, le cahier de charge est défini déjà dans le chapitre 1, ce qui va permet de préciser les critères visuels, en traduisant les paramètres humains et physiques en normes et mesures. Les exigences de la qualité seront ainsi quantifiées. L'éclairage est fondamental car il permet de fiabiliser et de simplifier les étapes de traitement et d'analyse. Une fois conçu l'éclairage, le capteur peut être choisi. Trois grands critères interviennent : la nature du capteur (qui détermine sa sensibilité dans les différentes zones du spectre), son type (linéaire ou matriciel) et sa couleur (monochrome ou couleur). Une fois ces quatre étapes achevées, le choix des algorithmes et leur implémentation peut être menée à bien. L'implémentation est suivie par une phase de tests, d'autant plus critique que l’application influe sur le bon fonctionnement d'une chaîne de production, par exemple. Le processus se termine par la mise en production.

II-3. Etapes d’inspection :

Donc, on définit par suite la procédure d’inspection qui contient les étapes suivantes à suivre:

Prendre une carte de référence définir les composants à inspecter de la part de l’opérateur Faire l’acquisition des images de la carte de test à inspecter Traitement des images L’analyse de ces images Déterminer les erreurs au niveau des paramètres à inspecter en les comparant à ceux de référence enregistrés dans une base de données contenant des différents types de composants ainsi que leurs critères Afficher ces erreurs à l’aide d’une interface qui permet l’interaction de l’opérateur avec l’application faite

VIII- Système de commande (hors ligne/en ligne):

Pour automatiser la machine on doit respecter la structure de la chaine de production, la ligne CMS traite des cartes vierges, rangées dans des racks, et a pour rôle d’insérer les composants CMS. Elle est composée d’un dépileur, d’une machine de sérigraphie (MPM) et de quatre machines de posage : deux de type FUJI CP6 et deux UNIVERSAL GSM. A ces deux dernières machines sont associés deux PTF. La ligne CMS comporte au total trois convoyeurs permettant la liaison entre les différentes machines.A la fin du cycle on trouve un four, des postes de retouche et un

empileur. A noter qu’au m ilieu de la ligne on trouve un convoye ur – portillon. Le fonctionnement de ces ma chines est cadencé par un temps de pose. Notre machine doit êt re installé à l’entré de four, le cadence est b ien respecter car le

dans la machine est inférieur à une minute ce qui est suffisant

pour garder le bon fonctionne ment.

temps de passage d’une carte

le bon fonctionne ment. temps de passage d’une carte Fi gure 3. Ligne de production typique

Fi gure 3. Ligne de production typique

III-1.Guide d’étu de des modes de marches et d’arrêts (GEMMA) :

Le Gemma (Guide d' étude des modes de marches et d'arrêts) d éfinit les différentes procédures de marche et d'arr êt. C'est un outil de description graphique q ui décrit le dialogue entre l'opérateur et la machin e. Il aide à la conduite de la mac hine, à sa maintenance ainsi qu'à son évoluti on.

Comme pour le Grafcet, le G emma ne présume pas de la technologie de Dialogue PC-PO. Dialogue opérateur-machine :

commande.

pas de la technologie de Dialogue PC-PO. Dialogue opérateur-machine : commande. Fi gure 4. Dialogue opérateur

Fi gure 4. Dialogue opérateur machine

A l’aide de Gemma on va spécifier les différents états de machine et les liaisons entre les modes de fonctionnement.

machine et les liaisons entre les modes de fonctionnement. Figure 5. Etats de la machine et

Figure 5. Etats de la machine et modes de fonctionnement

III-2.GRAFCET du conduit :

Le Grafcet décrit le dialogue entre la partie commande et la partie opérative et définit le fonctionnement automatique.

entre la partie commande et la partie opérative et définit le fonctionnement automatique. Figure 6. Grafcet

Figure 6. Grafcet du conduit

III-3.GRAFCET du fonctionnement normal :

III-3.GRAFCET du fonctionnement normal : Figure 7.Grafcet du fonctionnement normal IX- Choix de la caméra et

Figure 7.Grafcet du fonctionnement normal

IX- Choix de la caméra et l’éclairage :

IV-1. Choix de la caméra:

Suivant le produit à inspecter, nous choisissons la caméra :

– Linéaire ou matricielle?

– Analogique ou numérique?

– Monochrome ou couleur (Mono ou tri-CCD)?

Les caméras linéaires/ matricielles : Ces caméras fonctionnent sur le même principe qu’un scanner ou un fax. Une caméra linéaire est constituée d’une seule rangée de capteurs. C’est le mouvement relatif de la scène par rapport à la caméra qui va reconstituer une image par balayage. Ces capteurs permettent d’atteindre des vitesses et des résolutions élevées (plus de 8000 pixels sur une seule ligne).

Les caméras analogiques/numériques : Le choix entre une caméra analogique et une caméra numérique repose sur un compromis entre le coût et les performances. Les caméras numériques permettent d’atteindre des vitesses d’acquisition élevées, des images très précises et un excellent rapport signal/bruit. Les caméras analogiques sont basées sur une technologie éprouvée et sont donc plus répandues et moins chères.

Les caméras Monochrome ou couleur : Deux technologies sont utilisées dans les caméras couleur :

Mono-CCD: des masques colorés placés devant chaque capteur CCD servent à séparer les composantes RVB.

Tri-CCD: Pour chaque pixel de l’image, trois capteurs spécifiques à chaque composante sont sollicités. La lumière est diffractée à travers un prisme qui oriente chaque composante vers le capteur associé.

Dans le cadre de notre projet, on a choisi les caméras suivantes vue leurs capacités au niveau de la résolution et la possibilité de taux de réponse rapide.

Nom

Type

Résolution

Frame RATE

Interface

Image

SONY

1/1.8"

Sony

2456x 2056

15fps

Gigabit

Digital output

XCL5005

CCD

Ethernet

RGB

each

standard

8bit

IEEE802.3ab,

1Gbps

PROCILCA

CCD

2048

× 2048

15 fps

Gigabit

Mono8,

GE2040C

 

- IEEE 802.3 -

Ethernet

Bayer8,

Bayer16,

1000baseT

RGB24,

Princeton

CCD

4872

x 3248

3fps

CameraLink,

Color

Instruments

36mm

x

 

IEEE

1394a,

EC16000

24mm

GigE

Tableau 1.les caracteristique des caméras à utiliser

GigE Tableau 1.les caracteristique des caméras à utiliser -SONY XCL5005- - PROCILCAGE2040C- Figure 8. Exemples des

-SONY XCL5005-

caracteristique des caméras à utiliser -SONY XCL5005- - PROCILCAGE2040C- Figure 8. Exemples des caméras à

- PROCILCAGE2040C-

Figure 8. Exemples des caméras à utiliser

IV-2. Choix de l’eclairage:

L’image qui arrive au capteur de la caméra résulte de l’interaction de la lumière avec la scène observée. Pour minimiser les traitements logiciels, il est intéressant d’obtenir un éclairage distribué de façon parfaitement uniforme et homogène. Malheureusement, il est très difficile en pratique d’assurer cette uniformité, et la constance de l’intensité au cours du temps. De plus, des effets tels que les ombres portées, qui occultent une partie de la scène, ou les reflets, qui éblouissent le capteur, détruisent par

endroit le signal. Ces défauts sont d’autant plus vrais que le champ de vue de la caméra est important. L’éclairage est un élément déterminant dans un système de contrôle par vision industrielle. En fonction de la technique d’éclairage employée, on pourra faire ressortir certains défauts. En fait, il y a deux types d’éclairage :

Diascopique ou Rétro-éclairage :

Dans ce cas la caméra et l’éclairage sont de part et d’autre du produit à inspecter. Le rétro-éclairage permet de mettre en évidence le contour d’un objet, son ombre.

Épiscopique :

Dans cette configuration la caméra et l’éclairage sont du même coté par rapport au produit à inspecter. En fonction du type de défaut que l’on veut faire ressortir, on trouve distingue alors différentes stratégies d’éclairage. Pour notre outil d’inspection, l’éclairage qu’on va utiliser s’agit d’un projecteur à leds blanches haute luminosité puisqu'une régulation de courant est effectuée pour l'ensemble des leds, ce qui leur garantie une luminosité égale. On a deux solutions la première est d’acheter un bloc d’éclairage et la deuxième est de concevoir notre propre bloc d’éclairage.

1ére solution:

On peut utiliser des sources d’éclairage comme les blocs d’éclairage par des Leds :

d’éclairage comme les blocs d’éclairage par des Leds : Figure 9. Exemples d'éclairage 2éme solution :

Figure 9. Exemples d'éclairage

par des Leds : Figure 9. Exemples d'éclairage 2éme solution : On va concevoir notre panneau

2éme solution :

On va concevoir notre panneau de leds il est constitué de plusieurs branches de leds montées en série. Toutes les branches sont montées en parallèle, mais au travers de transistors montés en miroir de courant : le courant qui circule dans le circuit collecteur de chacun est quasiment le même que celui qui circule dans le transistor Q3, voici le schéma :

Figure 10. Panneau de leds conçu Le schéma peut être décomposé en deux parties :

Figure 10. Panneau de leds conçu

Le schéma peut être décomposé en deux parties : celle de gauche avec les transistors Q1 et Q2 montés en générateur de courant constant, et celle de droite avec toutes les branches de leds et les transistors restants.

Le générateur de courant constant :

Le courant qui circule dans la led D1 dépend de la valeur de la résistance R1, résistance qui voit à ses bornes une tension constante voisine de 0,7V. Si la résistance R1 vaut 39 ohms, cela conduit à avoir un courant de quelques 18 à 20 mA dans cette résistance, dans la led D1 et dans le transistor Q3. La led D1 n'est pas indispensable, mais elle permet de s'assurer en un coup d'œil qu'il circule un courant "normal" dans le générateur de courant constant.

Alimentation :

L'alimentation est de 24V, mais une valeur comprise entre 22V et 26V convient parfaitement. La valeur de cette tension a été déterminée par le type et le nombre de leds en série. Il s'agit ici de leds blanches haute luminosité présentant une chute de tension de 3,6V chacune, la mise en série de cinq modèles identiques implique une tension minimale de 5 x 3,6V, soit 18V. L'usage d'une tension d'alimentation de 18V n'est pas possible car aucune marge ne serait possible pour la régulation de courant par les transistors insérés dans chaque branche.

TROISIÈME CHAPITRE

Développement de logiciel d’aide à la décision

I- Introduction :

Les logiciels d’aide à la décision sont des systèmes qui permettent d’évaluer différentes situations, soit en tenant compte des ressources disponibles ou du temps alloué. Dans le cas de la vision industrielle, les logiciels d’inspection dans l’industrie sont basés sur des algorithmes de traitement d’image qui varient selon l’inspection qu’on veut faire.

Dans notre cas, l’outil d’inspection qu’on veut réaliser sera basé sur des algorithmes de traitement d’image de la carte de test qui diffèrent selon les scénarios d’inspection désirés (détection d’absence/ Présence des composants, décalage, vérification si c’est le bon composant ou pas,….).

II- Décision :

Un des avantages de travailler dans un milieu industrielle est qu’on métrise bien les conditions de travail, eclairage, produits, cadence etc.… ce qui nous laisse déterminer la qualité de l’image qui peut nous donner un bon résultat à travers des algorithmes bien déterminés et par conséquence la meilleure décision. Lorsqu’on est capable d’isoler les objets de leur contexte, on peut décrire leur forme,

C’est notamment le cas de la recherche de défauts de surface,

qu’ils soient contrastés, colorés ou en relief,

On peut également faire des études

leur taille, leur couleur,

statistiques de la répartition des valeurs associées. Par comparaison des paramètres mesurés avec des valeurs de référence, on peut ainsi classer les objets individuels ou populations d’échantillons en catégories pré-définies pour arriver à la bonne décision et par suite faire une meilleure distinction selon les critères mis en jeu.

Il faut cependant mettre en évidence l’importance du traitement en couleur qui est plus exigeant à de nombreux points de vue. Il requiert en particulier que l’on se préoccupe de la stabilité des couleurs et de la fidélité de leur mesure.

III- Conception du logiciel :

Dans le développement logiciel on distingue un mode de fonctionnement hors-ligne, durant lequel un opérateur prépare la tâche d’inspection en spécifiant le type de cartes à traiter, en ajustant des paramètres de fonctionnement et en présentant éventuellement des images-échantillons de référence (ce que l’on appelle l’apprentissage). Ensuite, le fonctionnement en ligne, à la cadence réelle, sans intervention de l’opérateur, peut prendre place. L’acquisition des images est synchronisée avec le déplacement des cartes, et chaque anomalie détectée sera affichée par suite sur l’écran comme étant une erreur survenue.

IV- Communication caméra-logiciel et acquisition de l’image :

Le principe d’inspection dans cet outil de vision est de faire le test sur des images qui sont acquises instantanément, cela implique qu’on doit connecter la caméra au logiciel qu’on veut réaliser. Pour cela, on a définit une classe Cwebcam de la manière suivante :

La fonction de la capture de la caméra est : void capture ( int type),

La fonction de la capture de la caméra est : void capture (int type), c’est une fonction qui capte une image de la caméra et l'enregistre sous format BMP. Cette fonction contient d’abord une partie qui détermine les données du bitmap, tel que sa taille, en fonction des paramètres de l’image par laquelle elle est capturée. Ensuite, on fait une création d’une image bitmap et on récupère les pixels de l’autre dans celle-ci et selon la valeur de type on fait le garde de l’image acquise comme étant une référence ou test. Dans l’interface principal « Menu », on fait appel à la fonction connect () pour vérifier si la caméra est bien connectée ou non, ensuite on appelle la fonction AfficheWebcam() pour que l’image vu par la caméra serait affiché à l’écran. Après la fonction capture ( int type) va nous permettre de prendre des images pour la référence pour une valeur de la variable « type » quand celle-ci égale à 0 et des images de test si cette valeur est égale à 1. S’il n’y a pas de caméra connectée, un message d’erreur sera affiché.

V- Préparation des caractéristiques de carte à inspecter :

V-1. Les données Gerber :

Les données Gerber sont des simples, moyens génériques de transfert des informations de circuit imprimé à une grande variété de dispositifs électroniques qui convertissent les données à des œuvres d'art de PCB produits par un photoplotter. Il s'agit d'une format standard former par des coordonnées X, Y complétés par des commandes qui déterminent les cas où l'image PCB commence, quelle forme elle prendra, et où elle finit. En plus des coordonnées, les données Gerber contiennent des informations d'ouverture, qui définissent les formes et tailles des lignes, des trous, et d'autres caractéristiques.

Le Format Gerber étendu, qui est également appelé RS-274X, englobe également la liste de l'ouverture de l'en-tête du fichier de données Gerber et permet donc de transmettre des fichiers d'un système à un autre sans avoir besoin de réouverture de la table d'entrée. V-2. Le fichier RS-274X :

RS-274X prend en charge certains paramètres des codes de données (codes G) et des codes d'ouverture (codes D) figurant dans le RS-274D, ainsi que les codes visés comme des paramètres de masse. Les paramètres de masse sont des paramètres qui définissent les caractéristiques qui peuvent affectées toute une parcelle, ou seulement certaines parties de la parcelle, appelées les couches. Les paramètres de masse étendent les capacités du Format Gerber.

Un fichier parcelle RS-274X est un fichier composé d'un certain nombre de blocs de données contenant des paramètres et des codes. Chaque bloc de données est délimité par une fin de bloc de caractères, généralement un astérisque (*). Chaque bloc de données contient un ou plusieurs paramètres ou codes. Par exemple :

contient un ou plusieurs paramètres ou codes. Par exemple : - Couches : Un ou plusieurs

- Couches :

Un ou plusieurs blocs de données peuvent être regroupés en une couche d'information qui décrit une partie d'une image graphique. En contexte RS-274X, une couche est une composante d’information nommée de l'image composée d'un ou de plusieurs blocs de données. Chaque couche peut avoir des caractéristiques telles que le nom, la polarité, et le mode d'interpolation, qui diffèrent d'autres couches d'informations. En outre, une couche peut être "éliminée" de l'environnement graphique, et peut être répétée et / ou pivotée individuellement.

- Types de données:

Un fichier RS-274X peut contenir les types de données suivants apparaissant dans l’ordre

général suivant :

1-

Les paramètres RS-274X :

Les paramètres RS-274X sont aussi nommés des paramètres de masse ou un format Gerber. L’inclusion de ces paramètres dans le fichier marque la parcelle RS-274X à la place du standard RS-274D.

2-

Les codes standards RS-274D :

Les codes standards RS-274D consistent en :

Un caractère code fonction comme G codes, D codes, M codes, etc. Les fonctions codes étaient les mots des anciennes terminologies. Elles décrivent comment les données des coordonnées qui sont associées avec elles devraient être interprétées (comme une interpolation linéaire ou circulaire), comment le composant image doit bouger et d’autres.

Les données de coordonnées définissent les points vers lesquels le composant doit bouger. Les données de coordonnées présentent les adresses des anciennes terminologies. Les coordonnées X, Y décrivent les positions linéaires et les coordonnées I, J définissent les arcs.

V-3. Les paramètres RS-274X:

Les paramètres RS-274X définissent les caractéristiques qui s’appliquent à une parcelle toute entière ou à une seule couche en fonction de la position du paramètre dans le

fichier et s’il génère une nouvelle information de la couche dans le fichier. Les paramètres RS-274X sont composés de deux lettres suivies par un ou plusieurs modificateurs optionnels. Les paramètres RS-274X sont délimités par un séparateur de paramètre, généralement par un signe (%). Vu que les paramètres sont également contenus dans un bloc de données, ils sont aussi délimités par une lettre de fin de bloc. Par exemple :

délimités par une lettre de fin de bloc. Par exemple : Les paramètres RS-274X peuvent être

Les paramètres RS-274X peuvent être regroupés en fonction de la portée de leurs fonctions dans le fichier. Les groupes doivent apparaître dans le dossier dans l'ordre suivant:

Les paramètres directifs qui contrôlent globalement les traitements des dossiers.

Les paramètres image qui fournissent des informations sur l'ensemble d'une image.

Les paramètres d’aperture qui décrivent la forme des lignes et des composants tout au

long du fichier. les paramètres spécifiques des couches qui décrivent le traitement d'un ou de plusieurs couches de données. Divers paramètres qui fournissent des capacités qui ne tombent pas dans l'au-dessus de groupes. Les paramètres RS-274X sont généralement placés au début du fichier dans l’ordre indiqué au dessus.

Exemple:

*G04 %FSLAX23Y23*% %MOIN*%

%OFA0B0*%

%SFA1.0B1.0*%

%ADD10C, 0.010*% %LNBOXES*%

G54D10

X0Y0D02*X5000Y0D01*

X5000Y5000D01*X0Y5000D01*X0Y0D01*

X6000Y0*X11000Y0D01*

X11000Y5000D01*X6000Y5000D01*

X6000Y0D01*D02*

M02*

VI- Chargement du fichier Gerber :

X6000Y0D01*D02* M02* VI- Chargement du fichier Gerber : Avant de charger le fichier gerber dans notre
X6000Y0D01*D02* M02* VI- Chargement du fichier Gerber : Avant de charger le fichier gerber dans notre

Avant de charger le fichier gerber dans notre application, pour former les contours de la carte électronique, nous somme obligé de faire des étapes préliminaires afin de crée le gerber standard RS274X et éliminer tous les informations inutile. Par la suite on va expliquer tous les étapes commençant par le fichier gerber reçu d’après le client jusqu’à le fichier qu’on va l’utiliser.

VI-1. Transformation de fichier Gerber :

VI-1-1. Présentation de GC-Power Station : graphique code power station :

Le GC-Power Station est un outil qui nous permet d’introduire des modifications sur

le format standard du fichier Gerber à l’aide d’une interface graphique. Il permet aussi

d’exporter notre fichier en d’autres formats exploitables par d’autres logiciels comme le

CAMCAD et le Visual Lighter.

IV-1-2. Etapes à suivre :

A l’aide de l’outil GC-Power Station on importe le fichier du client puis on l’exporte en

format RS27

le fichier du client puis on l’exporte en format RS27 Figure 11. Etapes d'importation d'un fichier

Figure 11. Etapes d'importation d'un fichier par GC Power station

Figure 12. Importation du fichier et son ouverture VI-2. Nettoyage du fichier Gerber : VI-2-1.

Figure 12. Importation du fichier et son ouverture

VI-2. Nettoyage du fichier Gerber :

VI-2-1. Présentation de CAMCAD:

CAMCAD est le principal outil d'EDA pour travailler avec la disposition de carte, le schéma, et d'autres fichiers de données de carte. CAMCAD se spécialise dans la lecture, l’édition, l’augmentation, et la conversion des données des différents formats.

VI-2-2. Etapes à suivre :

A l’aide de l’outil CAMCAD on importe le fichier provenant de GC-Power Station qui est en format RS274, on élimine les parties inutiles et puis on l’exporte en format

RS274X.

Figure 13. Ouverture du fichier pour le nettoyer par CAMCAD VII- Les bibliothèques SDL :

Figure 13. Ouverture du fichier pour le nettoyer par CAMCAD

VII- Les bibliothèques SDL :

Pour notre projet, nous avons besoin un moyen pour la programmation graphique en C. L’environnement de développement Microsoft Visual c++ possède le MFC AppWizard qui permet de programmer des graphiques en C++, mais il ne permet pas de gérer des entités de bas niveau.Pour cela nous avons parcouru à la solution de la Bibliothèque SDL vu ces avantages par rapport au MFC AppWizard. La SDL, Simple Direct Media Layer, est une bibliothèque destinée à permettre l'accès au matériel graphique pour faire, par exemple, des jeux en plein écran (ou en fenêtre), et ça de manière portable. La SDL peut notamment fonctionner sous Linux (où elle utilise X11), comme sous Windows (où elle utilise DirectX). Les principaux avantages de SDL sont qu'elle est 100% libre, et surtout multi plateforme (portage sur de nombreux environnements comme Windows, Linux, MacOS, BeOS, OpenBSD, etc).

VIII- Phase de prog rammation :

La phase de program qui ont été extraites après

SAGEM possède plus spécif iquement sur leurs structures et les procé dures d’inspection qu’elles font.

des propres recherches faites sur les mach ines de vision que

mation de logiciel d’inspection passe pa r plusieurs étapes

On verra par suite, avec plu s de détails, toutes les étapes de la phase d e programmation. VIII-1. Superposition Fichi er Gerber-Image référence :

la conception de

circuits imprimés, et le form at d’échange le plus connu entre les envir onnements CAD et

CAM. Gerber existe en versi on standard et étendue.

Le Gerber, comme

on a vu, est un standard mondial pour

ce type de fichier composants sont

présentés par des contours . Le but était de superposé cette image gé nérée avec la carte

les composants à

tester ainsi que pouvoir di fférencier les composants qui sont mal p lacés ou qui sont absents.

lors de l’étape de l’inspect ion pour nous servir à bien sélectionner

Dans cette étape, on a utilisé les données qui se trouvent dans afin de pourvoir générer u ne image de la carte électronique où les

afin de pourvoir générer u ne image de la carte électronique où les Figure 14. Image

Figure 14. Image SDL d'une carte électronique

Pour arriver à faire cela, on a définit deux fonctions :

int extractinf (char * fichier);

void plotgerber (SDL_Surface *screen)

En effet, la première fonction extractinf qui prend comme entrée le fichier Gerber et qui permet d’extraire les informations contenues dans le fichier Gerber.

La deuxième fonction plotgerber prend comme entrée la surface SDL où elle va tracer les formes des composants et de la carte en utilisant la bibliothèque SDL. VIII-2. Sélection et sauvegarde des composants :

La logique du logiciel d’inspection est basée sur le chargement de l’image de référence après sa capture et de faire la sélection des composants à tester et l’enregistrer comme images séparées pour alléger les traitements. Donc on avait besoin de définir deux fonctions prisimref et prisimtest respectivement pour l’image de référence et de test mais les zones d’inspection sélectionnées pour l’image de référence sont automatiquement sélectionnées pour l’image de test :

bool prisimeref (SDL_Surface *screen)

Void prisimetest (SDL_Surface *screen)

La fonction prend comme entrée un paramètre SDL qui est la surface de l’affichage. Cette fonction nous permet de se positionner sur l’une des extrémités du composant, faire sa sélection et afficher les informations nécessaires concernant le composant sélectionné. Cette étape est répétitive selon le nombre de composants qu’on veut inspecter. VII-3. Inspection des composants par analyse et traitement d’images :

Dans cette partie, on présente l’étape principale de l’inspection qui contient deux phases principales :

Sélection automatique de la zone d’inspection : pour cela, on a utilisé la fonction suivante : void prisimetest (SDL_Surface *screen) qui permet de faire la sélection automatique des composants à tester selon la sélection faite déjà dans l’image de référence et de les stocker afin de les traiter ensuite. Cette étape ne serait faite que si l’état courant de la machine est la prise de l’image de test et si le chargement de cette image est bon. D’où la nécessité de définir les états que peuvent prendre l’outil d’inspection, donc on a définit une variable inspetat tel que:

//les états de la machine

enum inspetat {configuration, priseimref, priseimtest, inspection};

de plus, il y a la variable resultest qui prend les différents possibilités des résultats sur les états des composants après l’inspection :

//les résultats d'inspection

enum resultest {absence, orientation, ok, decalage, zonevide};

Le choix de l’algorithme de traitement utilisé pour l’inspection

1 ier algorithme :

Les Input de la fonction d’inspection sont les images, référence et test, acquises du composant qu’on va les comparer à l’aide de cette fonction. Dans cette partie, on explique l’algorithme d’inspection utilisé dans l’application. En effet, les étapes sont les suivantes :

Initialiser les histogrammes des composants Rouge, Vert et Bleu du pixel pour l’image et l’image référence du composant. Stocker les valeurs du R, G, B du chaque pixel dans un tableau à deux dimensions présentant la matrice de l’image test ou référence du composant sélectionné. Incrémenter les histogrammes, de l’image référence ou test, de chaque composante R, G ou B à chaque fois. On calcule la moyenne des trois composantes pour chaque pixel de chaque image afin de déterminer les pixels au niveau du gris de l’image On détermine l’histogramme de ces nouvelles valeurs de pixels pour le 1/2 de l’image du composant et non pas pour la totalité de l’image (le 1/2 contenant le marquage du composant sélectionné). Pour la valeur de 0 R 40, 70 G 110 et 55 B 100 qui correspond aux valeurs du composants des pixels de la carte électronique, à chaque fois que les coordonnées du pixel sélectionné pour un couple (i, j) donné appartiennent à ces intervalles la variable npixref, initialisée à « 0 » s’incrémente par 1. Même chose à faire pour l’image de test et on incrémente par suite la variable npixtes par 1. Maintenant, on fait le test :

Si les deux valeurs de npixref et npixtes sont tous les deux supérieures à un seuil bien déterminé à partir de la taille de l’image, alors la zone sélectionnée est vide, si non si le npixref est inférieure à ce seuil et l’autre non, alors le composant et absent. Si non si on compare les deux valeurs npixtes au npixref et si c’est npixtes supérieure à npixref avec un certain taux alors le composant normalement est signalé décalé. Si non on fait la valeur absolue de la différence au niveau du nombre des pixels pour chaque niveau de gris entre les histogrammes de l’image référence et celle de l’image test et si c’est supérieur à 10 alors on incrémente une variable npixdiff initialisée à « 0 » par 1 à chaque fois. Si la variable est supérieure à « 10 » alors le résultat du test est que le composant est orienté.

Ensuite, selon le résultat du test on affiche, sur l’interface principale de l’inspection et à l’aide de la bibliothèque SDL, le résultat du test qui sera par suite ajouté au rapport d’inspection.

Simulation sous Matlab :

On montre dans cette partie à l’aide du Logiciel de simulation Matlab, les raisons pour lesquelles on a pris les seuils utilisés lors de l’application du l’algorithme d’inspection. Pour cela, on trace les histogrammes de R, G et B pour l’image du composant référence et test pour le cas d’un condensateur :

Histogramme R :

et test pour le cas d’un condensateur : Histogramme R : histogramme R pour la référence
et test pour le cas d’un condensateur : Histogramme R : histogramme R pour la référence

histogramme R pour la référence

600 500 400 300 200 100 0 0 50 100 150 200 250 niveaux d'histogramme
600
500
400
300
200
100
0
0
50
100
150
200
250
niveaux d'histogramme
histogramme R pour le test
1500
1000
500
0
0
50
100
150
200
250
nombre de pixels
nombre de pixels

niveaux d'histogramme

Figure 15. Histogramme de composant Rouge

D’après la figure précédente, on constate que pour la deuxième image où le composant est absent, les niveaux de pixels se concentrent sur la zone inférieure à 50 par

contre dans le première histogramme, présence du composant, les niveaux sont étalés jusqu’à

250.

Histogramme G :

les niveaux sont étalés jusqu’à 250. Histogramme G : histogramme V de la référence 600 500
les niveaux sont étalés jusqu’à 250. Histogramme G : histogramme V de la référence 600 500

histogramme V de la référence

600 500 400 300 200 100 0 0 50 100 150 200 250 300 niveaux
600
500
400
300
200
100
0
0
50
100
150
200
250
300
niveaux d'histogramme
histogramme V du composant à tester
1400
1200
1000
800
600
400
200
0
0
50
100
150
200
250
nombre de pixels
nombre de pixels

niveaux d'histogramme

Figure 16. Histogramme de composant vert

Dans le cas de l’histogramme de G, on voit d’après cette figure que la différence majeure entre les histogrammes du composant référence et celui du test, dans ce cas, se concrétise spécialement dans la zone entre 70 et 110 d’où le choix de nos seuils pour le cas de la composante G est fait. Histogramme B :

pour le cas de la composante G est fait. Histogramme B : hist B du composant
pour le cas de la composante G est fait. Histogramme B : hist B du composant

hist B du composant référence

600 500 400 300 200 100 0 0 50 100 150 200 250 300 nombre
600
500
400
300
200
100
0
0
50
100
150
200
250
300
nombre de pixels par niveau

niveaux d'histogramme

hist B du composant à tester

1400 1200 1000 800 600 400 200 0 0 50 100 150 200 250 nombre
1400
1200
1000
800
600
400
200
0
0
50
100
150
200
250
nombre de pixels par niveau

niveaux d'histogramme

Figure 17. Histogramme de composant bleu

Pour le cas de la composante B, les seuils qu’on a pris pour notre algorithme sont situés dans la zone délimité par 55 et 100 et ceci est lisible d’après des deux histogrammes représentant la répartition de la composante B sur les pixels pour l’image référence ainsi que l’image test du condensateur.

La combinaison de ces trois conditions de seuillage sur les valeurs des trois composants R, G et B représente la condition utilisée dans notre algorithme, qui quand elle soit vérifiée pour un pixel (i, j), le npixref (respectivement le npixtes si on est dans le cas de l’image test) va être incrémenté. 2 ème algorithme :

Si le milieu d’inspection n’est pas maitrisé, alors pour éviter le problème de changement d’éclairage et de bruit on va utiliser nos images sous la forme HSV. Cette méthode est basée sur la conversion du l’image du RGB au HSV. En effet, une image RGB peut être représentée comme étant une matrice dont chaque couple (i, j) possède trois composantes couleurs qui sont très dépendantes ce qui implique une difficulté au niveau de l’extraction des traits caractéristiques.

Alors pour le modèle HSV, il y a Séparation de la teinte, de la saturation et de l’intensité ce qui nous fournit une facilité pour faire les traitements nécessaires sur l’image. Il est parfois préféré quand on travaille avec des matériels, des images numérisées ou d’autres médias, d’utiliser le modèle couleur HSV ou HSL au lieu des autres modèles comme le RGB vu la différence dans la façon avec laquelle les modèles imite la perception humaine envers les couleurs.

Le format HSV, acronyme de "Hue Saturation Value", est un format qui possède des caractéristiques intéressantes pour toute application d'analyse vidéo. En effet, contrairement au RGB, le HSV est un format dit "naturel" car sa définition relève davantage de la conception humaine de la couleur plutôt que celle du RGB qui s'applique d'abord à des dispositifs électroniques. Cela rend donc le HSV apte par exemple à une opération de seuillage des couleurs qui autrement pourrait être facilement faussée quelque facteur externe. La signification des composants du HSV peuvent s'expliquer de cette manière Le hue peut être définie comme le "type" de couleur ou la "teinte". Ex : bleu, rouge, orange

La saturation est la "pureté" d'une couleur. Plus sa valeur approche de 0, plus la

couleur devient grisâtre. La (value) V est la clarté de la couleur.

Chacune de ces valeurs est définie dans une gamme déterminée. Par exemple, le hue variera généralement de 0 à 360 mais peut être parfois normalisé entre 0 et 100. Quant à S et V, ceux-ci varient de 0 à 1 ou, exprimé en pourcentage, de 0 à 100%. Il est plus facile de comprendre ceci en observant cette représentation du HSV :

comprendre ceci en observant cette représentation du HSV : Figure 18. schéma représentatif de HSV Pour

Figure 18. schéma représentatif de HSV

Pour faire la conversion du RGB en HSV, il fallait savoir mathématiquement comment l’exprimer. Pour cela les équations utilisées dans notre algorithme pour cette transformation non linéaire sont les suivantes :

H

S

V

=

60

60

60

 

G

B

MAX

RGB

MIN

RGB

B

R

MAX

RGB

MIN

RGB

R

G

MAX

RGB

MIN

RGB

=

=

MAX

RGB

MIN

RGB

MAX

MAX

RGB

RGB

+ 120

+ 240

si

si

si

MAX

MAX

MAX

RGB

RGB

RGB

= R

G

= (Équation. I)

= B

Dans notre cas, la deuxième méthode de vérification se résume en étapes qui sont les suivants :

1-

Télécharger l’image référence et stocker les composantes R, G et B de ses pixels dans trois tableaux différents à deux dimensions.

2-

Faire passer un filtre médian sur les trois composantes R, G et B pour éliminer le bruit

contenu dans l’image acquise et améliorer par suite la qualité de l’image à laquelle on va faire le traitement.

3-

Convertir en HSV et maintenir juste la composante teinte (H) et afficher l’image qui la correspond.

4-

Appliquer un seuillage à l’image obtenue en utilisant la méthode de seuillage d’OTSU

5-

Utiliser l’image de la teinte comme un masque qu’on va le superposer avec l’image à

tester et on détecte par suite la différence entre le masque et l’image acquise du test. En effet, généralement le bruit désigne un phénomène qui "brouille" la perception d'un signal, et nous gêne. En traitement d'image, le bruit est l’ensemble des pixels qui ont des valeurs aberrantes. Le filtre médian consiste à conformer un pixel avec son voisinage en le remplaçant par la médiane de son voisinage. Il s’agit d’une opération du filtrage spatiale qui utilise un masque 2D appliqué à chaque pixel dans l’image d’entrée. Appliquer le masque, veut dire le centrer sur un pixel, évaluant les valeurs des pixels couvris et déterminant laquelle entre elles et la v leur médiane. Celle-ci est déterminée en plaçant les valeurs des pixels dans l’ordre croissant et en sélectionnant la valeur centrale. La valeur médiane obtenue va être celle du pixel à l’image de sortie.

Méthode d’OTSU :

La méthode d’OTSU consiste à chercher le seuil qui minimise la variance intra-classe, définie comme étant la somme des valeurs pondérées des deux classes :

étant la somme des valeurs pondérées des deux classes : (Équation. II) Les poids ω i

(Équation. II)

des valeurs pondérées des deux classes : (Équation. II) Les poids ω i sont les probabilités

Les poids ωi sont les probabilités des deux classes séparées par un seuil t et les sont les variances de ces classes. En fait, la minimisation de la variance intra-classe dans la méthode OTSU revient à maximiser la variance interclasse :

Celle-ci est exprimée en termes de probabilités de classes ωi et des moyennes de classes µi qui peuvent être mises à jour itérativement.

µ i qui peuvent être mises à jour itérativement. (Équation. III) L’algorithme suivant décrit le principe

(Équation. III) L’algorithme suivant décrit le principe de la méthode d’OTSU :

1. Calculer l’histogramme et les probabilités de chaque niveau d’intensité

2. Initialiser les valeurs de ω i (0) et µ i (0)

3. Essayer pas par pas les différents seuils possibles

4. Mise à jour de ω i et µ i

5. Calculer

6. Le seuil désiré correspond au maximum de

4. Mise à jour de ω i et µ i 5. Calculer 6. Le seuil désiré
4. Mise à jour de ω i et µ i 5. Calculer 6. Le seuil désiré
4. Mise à jour de ω i et µ i 5. Calculer 6. Le seuil désiré

maximum d’intensité

Simulation par Matlab :

En prend l’exemple d’un condensateur et on génère par Matlab comme ci indiqué l’image de la teinte, celle en fonction de la saturation et celle en fonction de la luminance.

de la saturation et celle en fonction de la luminance. (A) (C) (B) (D) Figure 19.

(A)

de la saturation et celle en fonction de la luminance. (A) (C) (B) (D) Figure 19.

(C)

la saturation et celle en fonction de la luminance. (A) (C) (B) (D) Figure 19. Présentations

(B)

saturation et celle en fonction de la luminance. (A) (C) (B) (D) Figure 19. Présentations des

(D)

Figure 19. Présentations des composant HSV

La figure en (A) est l’image composant en modèle RGB et l’image (B) est celle représentée avec la teinte « H ». (C) est celle de l’image en HSV mais en représentant juste la composante (S) et la dernière (D) est celle de la composante de la luminance (V).

Ces deux tests sont présents dans la fonction suivante: void inspectcomp () qui fait l’inspection et l’affichage des erreurs. Pour cela, elle fait appel à une nouvelle fonction pour l’affichage des deux images de composant celle de la référence et celle de test superposée :

void apply_surface (int x, int y, SDL_Surface* source, SDL_Surface* destination, SDL_Rect* clip = NULL) ;

VIII-4. Fonctions principales du programme :

Fonction Main de l’inspection :

La fonction principale de l’inspection est la fonction : int main (int argc, char **argv) qui fait appel à quelques fonctions qu’on a déjà définit :

extractinf (char * fichier);

extractcarac (char *fichier) ;

Ensuite on passe à l’initialisation de la SDL et de la SDL_fft suivit par une étape pour le chargement des images de test. Par suite, il y avait une boucle générale qui utilise une fonction void calcetat ( ) qui détermine, selon l’étape actuelle de la machine, la prochaine étape à faire :

- configuration prise de l’image référence

- prise de l’image référence prise de l’image de test

- prise de l’image de test inspection

- inspection prise de l’image de test

D’où selon l’état actuel de la machine retournée, on passe à l’état qui suit qui va faire l’appel à des fonctions prédéfinies déjà et qui sont :

prisimeref (SDL_Surface *screen)

prisimetest (SDL_Surface *screen)

inspectcomp ()

Fonction du diagnostic:

C’est la fonction dg (int argc, char **argv) qui permet de superposer les deux images de la carte de référence et celle du test dans la même fenêtre. Elles seront affichées rapidement l’une à la suite de l’autre d’une façon continue ce qui va nous rendre capable de

détecter les défauts de la carte lisiblement. Ce ci est fait en utilisant la bibliothèque SDL.

Fonction d’initialisation du rapport erreur :

Cette fonction fait intervenir une nouvelle structure qui s’appelle rapporterreur et qui est définie comme suit :

struct rapporterreur

{

char refcart[10]; long ncarttester; long ncartdefect; long ndefaux; long repartitiondef[3]; };

// référence de la carte // nombre des cartes testées // nombre des cartes défectueuses // nombre des défauts en générale // car on a 3 types de défaut possible

Ainsi qu’une autre structure dont le pointeur du composant courant est initialisé à la valeur nulle. La structure est définie par suit :

struct compdef

// composant défectueux

{

char refcompdef[10]; struct compdef * suivant;

// référence du composant défectueux // pointeur

};

Fonction du remplissage du rapport d’erreur:

Le principe est le suivant : à chaque fois que le test appliqué sur l’image test du composant renvoie une erreur « false », le nombre des cartes défectueuses défini dans la structure s’incrémente par 1. Par suite, selon la nature de l’erreur, on incrémente par 1 la colonne correspondante à l’erreur trouvée. A la fin, on affiche le nombre des cartes testées ainsi que le nombre des cartes défectueuses parmi elles.

Fonction du rapport général :

C’est la fonction avec laquelle on va afficher le rapport d’erreurs de la dernière inspection faite avec notre outil d’inspection. Elle ouvre un fichier « .txt » où toutes les

données nécessaires de l’inspection seront affichées

Fonction d’écriture dans le rapport :

Cette fonction permet à chaque nouvelle inspection d’ajouter les résultats des nouvelles inspections faites sur les composants, c'est-à-dire elle ajoute au fichier « .txt » qui

existe déjà le nom du nouveau composant inspecté, sa référence, ses coordonnées et finalement le résultat de l’inspection ( nature du défaut).

Fonction Main du rapport :

C’est la fonction principale du rapport à afficher d’après l’interface. Cette fonction fait appel à la SDL pour l’affichage ainsi qu’à la bibliothèque SDL_ttf pour le choix de la police. A l’aide des fonctions affiche_text et affiche_entier, elle affiche à l’écran le nom de la carte à inspecter, le nombre des cartes testées, nombre des cartes défectueuses, nombre des défauts et leurs nombres d’occurrence selon leurs types. Ensuite un diagramme montrant le taux des erreurs pour chaque type sera affiché à coté.

IX- Interface globale :

Pour la création de l’interface globale du logiciel, il fallait d’abord saisir la fonction à l’aide de laquelle on peut créer des fenêtres :

HWND CreationFenetre (HINSTANCE hInstance, HWND parent) Ensuite, on crée la fonction qui est la fonction principale qui fait appel à tous les autres dialogues :

int APIENTRY WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow). Ainsi que la function qui gère les messages de dialogue « à propos » :

LRESULT CALLBACK Diapropos (HWND Dlg, UINT message, WPARAM wParam, LPARAM lParam). En fait, l’interface globale du logiciel qu’on a réalisé va être sous la forme suivante :

Au démarrage il y aura une 1 ère interface comportant un bouton pour démarrer l’application ou bien un autre bouton pour avoir une idée sur le constructeur.

ou bien un autre bouton pour avoir une idée sur le constructeur. Figure 21. Interface de

Figure 21. Interface de l'application Max-Vision

Ensuite, en cliquant sur le bouton « start », une interface générale va s’ouvrir et elle est de cette forme :

générale va s’ouvrir et elle est de cette forme : Figure 20. Inetrface générale de l'application

Figure 20. Inetrface générale de l'application

Cette interface contient à droite un bouton, qui, en cliquant dessous, va nous montrer la page help du logiciel. A gauche, il y a un ensemble des boutons dont chacune fait appel à une fonction dans le logiciel.

dont chacune fait appel à une fonction dans le logiciel. Ce bouton permet de connecter la
dont chacune fait appel à une fonction dans le logiciel. Ce bouton permet de connecter la
dont chacune fait appel à une fonction dans le logiciel. Ce bouton permet de connecter la
dont chacune fait appel à une fonction dans le logiciel. Ce bouton permet de connecter la
dont chacune fait appel à une fonction dans le logiciel. Ce bouton permet de connecter la

Ce bouton permet de connecter la caméra à l’interface afin de visualiser les cartes de test.

Ce bouton permet de régler les paramètres de la caméra choisie

Ce bouton est destiné pour la capture des images pour les cartes à tester

Ce bouton permet le chargement du fichier gerber pour le traçage de l’SDL et il permet d’indiquer le path pour l’enregistrement des composants testés

En s’appuyant sur ce bouton, un diagnostique rapide va être fait sur la carte de test en la superposant respectivement avec la carte référence

Ce bouton nous permet de faire l’inspection sur les cartes de test en générant une
Ce bouton nous permet de faire l’inspection sur les cartes de test en générant une
Ce bouton nous permet de faire l’inspection sur les cartes de test en générant une
Ce bouton nous permet de faire l’inspection sur les cartes de test en générant une
Ce bouton nous permet de faire l’inspection sur les cartes de test en générant une

Ce bouton nous permet de faire l’inspection sur les cartes de test en générant une autre interface pour le test

Ce bouton permet de générer un rapport d’inspection ainsi le statistique de celui ci

Ce bouton permet de sauvegarder le rapport d’inspection dans un fichier texte

Ce bouton génère l’aide d’utilisation de ce logiciel

En

l’application

s’appuyant

sur

ce

bouton

on

peut

quitter

En sélectionnant à chaque fois un composant à tester, les informations concernant ce composant seront affichées à droite en bas. Ces informations sont extraites du fichier texte contenant les données sur les composants se trouvant sur la carte à tester.

sur les composants se trouvant sur la carte à tester. Figure 21. Affichage du composant à

Figure 21. Affichage du composant à inspecter

Après inspection, les formes en SDL des composants defectueux seront tracées en rouge alors que les formes des composants inspectés sains seront tracées en bleu, comme l’indique la figure suivante :

Figure 22. Inspection des composants sélectionnés Ensuite à la fin de l’inspection, un rapport sera

Figure 22. Inspection des composants sélectionnés

Ensuite à la fin de l’inspection, un rapport sera généré sous cette forme :

fin de l’inspection, un rapport sera généré sous cette forme : Figure 23. Rapport généré après

Figure 23. Rapport généré après l'inspection

X- Conclusion :

Dans ce chapitre, on a présenté les différentes étapes nécessaires pour réaliser notre logiciel d’inspection en commençant par la connexion de la caméra au logiciel, l’acquisition de l’image de test, ensuite passant par le chargement du fichier Gerber et la génération de l’image SDL à partir de ce fichier et finalement finissant par l’inspection et la génération du rapport d’erreurs d’inspection.

QUATRIÈMECHAPITRE

Test Et Étude de performance

I- Introduction :

Le « cycle de vie d'un logiciel » (en anglais software life cycle), désigne toutes les étapes du développement d'un logiciel, de sa conception à sa disparition. L'objectif d'un tel découpage est de permettre de définir des jalons intermédiaires permettant la validation du développement logiciel, c'est-à-dire la conformité du logiciel avec les besoins exprimés, et la vérification du processus de développement, c'est-à-dire l'adéquation des méthodes mises en œuvre. [Cycle de vie d’un logiciel http] Dans ce chapitre, on va voir la procédure de validation de test ainsi que la validation de l’inspection et on va finir par étudier la performance de ce logiciel d’inspection afin de pouvoir déterminer ses points de force ainsi que préciser les limites de son utilisation.

II- Test et validation :

Afin de tester les performances du logiciel d’inspection, on doit réaliser des essais, par suite la stratégie adoptée a été la suivante : on réalise des tests de façon systématique et les enregistre pour comparer les résultats trouvés pour les mêmes cartes de test et les mêmes composants sélectionnés. Pour cela les critères de choix des tests sont les suivants:

• couvrir les fonctionnalités du logiciel

• se placer autant que possible dans les conditions d’utilisation réelle

• identifier des catégories de risque

• structure du programme

• branchements et périphériques

• erreurs de calculs Afin d’assurer un bon fonctionnement de l’outil d’inspection, certains conditions pour la réalisation des tests sont indispensables, comme nous avons indiqué précédemment dans le deuxième chapitre : le choix de l’éclairage et de la caméra de l’inspection. Ces conditions assurent une bonne qualité des images acquises et par suite une performance meilleure au niveau de l’inspection faite ce qui va réduire le taux d’erreur concernant l’inspection. Dans notre cas, vu l’absence de financement pour acquérir le matériel nécessaire pour notre machine d’inspection, on était obligé de prendre nos images de test avec une caméra

qui n’est pas vraiment professionnelle ainsi que dans des conditions qui ne sont favorables de point de vue :

Caméra : qui n’est pas de résolution très importante selon le besoin de notre application. Positionnement : absence de support fixe pour la caméra lors de l’acquisition de l’image ce qui peut influer sur les coordonnées des composants à tester dans l’image acquise. Distance d’acquisition : qui est la distance séparant la caméra et la carte et qui doit être varie selon les grandeurs de la carte ainsi que le zoom disponible dans la caméra.

Eclairage : qui n’est pas standard pour toutes les images de test acquises.

Toutes ces données qu’on a indiqué ont une influence sur la marge d’erreur ou de fautes qui peuvent être commises lors de l’inspection et des quelles on doit tenir compte lors de la procédure de test.

Donc afin de valider notre application, en se référant à ce qu’on a comme moyens disponibles, on doit refaire la procédure de test pour le même type de cartes et en sélectionnant les mêmes composants à tester plusieurs fois et vérifier s’il y a une différence entre les rapports de test générés pour chacun. Cette vérification doit se faire de façon qu’à chaque fois on essaye d’avoir au maximum les mêmes conditions favorables pour l’acquisition des images.

III- Etude des performances :

L’évaluation de performance est un élément important dans le déploiement de systèmes logiciels En fait, comme c’était indiqué avant, il y a un ensemble de paramètres qui déterminent la qualité de l’inspection effectuée est ceux-ci peuvent s’illustrés dans :

La qualité de l’image acquise qui dépend certainement du type de la caméra

L’environnement de la prise de l’image milieu maitrisable ou non

L’algorithme à appliquer lors de l’inspection Techniques de traitement

Le niveau de perfection de la machine dans le point de vue mécanique et électrique

Ce qui indique que le niveau de performance de la machine ou plus précisément de l’application qu’on a fait est relatif. En fait, l’application présente une bonne performance cotée :

Robustesse

Simplicité de l’utilisation

Compatibilité avec des différents types de caméras

Présence d’un diagnostic rapide permettant d’éviter l’étape d’inspection si le défaut est visible

Présence de deux approches d’inspection pour les milieux maitrisables ou non

Mais en contre partie, il y a certainement des limites pour notre application qui vue la contrainte du temps consacré pour le projet, on n’a pas arrivé à les faire :

Manque d’une précision fine vu l’utilisation d’une seule caméra pour la capture d’image et donc il y aura des composants qui, vu leurs dimensions, seront mal dimensionnés sur l’image de la carte de test. La sélection qui se fait manuellement : en effet avec une sélection automatique des composants, sur la carte référence, pour les tester après, en se basant sur une base de données va accélérer la tache d’inspection ainsi que la donner plus de précision. Absence d’une marge d’erreur pour tolérer le passage de certains composants sans qu’ils seront marqués comme erronés alors qu’ils sont tolérables. Amélioration des algorithmes utilisés pour l’inspection afin d’assurer une qualité meilleure ou bien plus rapide des résultats.

IV- Conclusion :

Comme on a vu dans ce chapitre, l’application présente des avantages diversifiés qui la rendent intéressante à appliquer sur les lignes de production et à améliorer dans l’avenir. Mais aussi l’étude de performance a montré qu’elle peut être meilleure et plus performante à l’avenir avec l’introduction de certains changements comme c’est indiqué la dessus et que nous n’avons pas pu les introduire vu la contrainte de temps consacré pour le projet.

CONCLUSION GENERALE

Comme on a vu, la machine vision est la technique avec laquelle les produits sans contact direct sont inspectés sur un ou plusieurs points dans laquelle l'image capturée peut être analysée moyennant une caméra de haute résolution.

L’application d’inspection des composants électroniques sur les cartes de test qu’on avait présenté ici est un essai de réaliser un petit exemplaire d’une machine très performante et qui a nécessité des années de recherche pour qu’elle arrive à ce niveau de précision et de performance dans l’industrie et avec un coût assez important, qui s’appelle la machine vision.

Durant ce travail, on a essayé de réaliser au maximum ce qui était demandé dans le cahier de charge avec les moyens disponibles de la part de l’entreprise et dans le délai fixé pour le projet.

Les nouveautés dans ce domaine est l’apparition des caméras de vision intelligentes industrielles qui sont devenues une technologie de clé dans l'objectif d'amélioration de l'automatisation de production et du contrôle de qualité

L'avantage d'une caméra intelligente est qu’il n’y a pas besoin de matériel supplémentaire ni de pc ainsi on peut envoyer l’image analysée vers une ou plusieurs sorties digitales avec la caméra intelligente, et faire retirer automatiquement et directement un produit de la ligne.

Bibliographie

Sites Internet :

[1] : extrait d’un fichier PDF : La vision industrielle selon VisionIndustrielle.Org – [2] : http://fr.wikipedia.org/wiki/Contrôle_qualité [3] : http://fr.wikipedia.org/wiki/Vision_industrielle [4] : http://www.industrie-online.fr/articles-magazine/fiche-articles.php?id=444

[5] :

pilotage-des-systemes-de-production-automatisee/188462.html

[6] : http://www.trametal.com/PDF/Articles/395_703_1.pdf [7]: Extrait du fichier PDF Gerber RS-274 X format © Copyright 1998 Barco Graphics,

http://www.maxicours.com/soutien-scolaire/mathematiques-appliquees/bac-pro-

Gent, Belgium, and Barco Gerber Systems, South Windsor, CT, USA.

[8]: http://www.techno-science.net/?onglet=glossaire&definition=1484 [10]: http://www.commentcamarche.net/contents/genie-logiciel/cycle-de-vie.php3

La signification des composants du HSV peuvent s'expliquer de cette manière [Extrait de l’Association Québécoise de Robotique Amateur http://www.aqra.ca]:

CHOI DE L4ECLAIRAGE www.cs.cf.ac.uk/User-bin/M.R.F.Lewis/lightidx.cgi http://www.visionindustrielle.org

Livres :

[3] R.M. HARALICK. Image segmentation techniques. Computer Vision Graphics and Image Proc ng, pages 100-132, 1985. [4] J.P. COCQUEREZ et S. PHILIPP. Analyse d’images : filtrage et

segmentation. Masson, 1995.

Glossaire

Insérer un glossaire des mots techniques utilisés dans le corps de votre document. Le Glossaire est optionnel.

Annexes