You are on page 1of 54

MINISTERE DE LENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE

INSTITUT NATIONAL DES SCIENCES APPLIQUEES


TOULOUSE

Dpartement de Gnie Electrique & Informatique

PROJET DE FIN DETUDES

AMELIORATION ET ANALYSE DE LA PRODUCTION


DUNE LIGNE DE MONTAGE DE VEHICULES

Groupe PSA Vigo, Espagne

Jauberthie Quentin
AE IS Avril - septembre 2017

i
ii
RESUME

Ce rapport de stage se propose dtre le rsum, la synthse et lanalyse du stage de fin dtudes
que jai effectu davril septembre 2017 au sein de lusine PSA de Vigo (Espagne) en tant
qulve-ingnieur. Ce stage reprsente le projet de fin dtudes obligatoire pour lobtention de
mon diplme dingnieur en automatique et lectronique, spcialisation ingnierie des systmes.
La plus grande partie de ce rapport sera un compte rendu de mon exprience et de mes
ralisations. Celui-ci a t rdig tout au long du stage afin de retracer le plus fidlement son
droulement. On y retrouve ainsi la fois une description des ralisations, et un commentaire sur
ces dernires. La majorit (mais pas la totalit) de mon stage, sest articul autour dun projet
visant lassistance aux oprateurs sur chaine de montage. Mes activits concernaient
principalement la programmation et le dveloppement informatique.

iii
REMERCIEMENTS

Je tiens remercier pour leur aide tout au long de mon stage :


Clemente mon tuteur qui a toujours t bienveillant ;
lensemble de lquipe du bureau Asistencia M1 qui ma accompagn tout au long de mon
stage ;
Andres qui ma guid lors de ma formation Python et OpenCV ;
Ruben qui ma paul pour tous mes problmes avec les Raspberry Pi ;
Juan Moreno qui a facilit ma prise de marques au dbut de mon stage.

iv
TABLE DES MATIERES

Rsum .......................................................................................................................................................... iii


Remerciements............................................................................................................................................. iv
Table des matires ........................................................................................................................................ v
Glossaire ...................................................................................................................................................... vii
Chapitre 1. Introduction .............................................................................................................................. 2
Chapitre 2. Cadre et objectifs du stage ...................................................................................................... 4
Chapitre 3. Programme de vision par ordinateur .................................................................................... 8
3.1. Informations pralables et contexte de ltude ........................................................................ 8
3.1.1. Explication gnrale du programme ................................................................................. 8
3.3.2. Objectif du programme ...................................................................................................... 8
3.3.3. Les paramtres connaitre avant de se lancer ................................................................ 9
3.2. Droulement de lalgorithme de traitement dimage ............................................................ 11
3.2.1. Lapproche .......................................................................................................................... 11
3.2.2. La photographie................................................................................................................. 12
3.2.3. Le traitement de limage ................................................................................................... 12
3.2.4. Les contours de la feuille .................................................................................................. 20
3.2.5. Lecture des informations.................................................................................................. 22
3.3. Options non retenues................................................................................................................ 25
Chapitre 4. Lecture dans la base de donnees.......................................................................................... 28
4.1. La base de donnes.................................................................................................................... 28
4.2. Le programme ............................................................................................................................ 28
Chapitre 5. Le dispositif dinterface avec loprateur ............................................................................ 30
Chapitre 6. Le droul du projet .............................................................................................................. 34
6.1. Modifications du projet............................................................................................................. 34
6.2. Ralisations non retenues ......................................................................................................... 34
Chapitre 7. Witness .................................................................................................................................... 36
7.1. Prsentation du logiciel ............................................................................................................. 36
7.2. Ralisation ................................................................................................................................... 37

v
7.2.1. Intrt du logiciel ............................................................................................................... 37
7.2.2. Utilisation du logiciel ........................................................................................................ 37
Chapitre 8. Conclusions et perspectives ................................................................................................. 42
Annexes ....................................................................................................................................................... 44
Liste des illustrations .................................................................................................................................. 46

vi
GLOSSAIRE

ADN : chaine de caractres rsumant les caractristiques dun vhicule


BDG : numro didentification des vhicules
FAV : feuille dinformation du vhicule
M1 / M2 : ligne de montage 1 / ligne de montage 2
Nore : numro didentification du vhicule selon son ordre physique sur la chaine
Witness : logiciel de modlisation et de simulation de processus du groupe Lanner

vii
1
CHAPITRE 1. INTRODUCTION

Mon stage sest droul dans lusine de Vigo (communaut autonome de Galice, Espagne), la plus
grande du groupe PSA en Europe. Issu de Peugeot Socit Anonyme, fond en 1965, celui-ci est
lun des plus grands constructeurs automobiles europen, exploitant les marques Peugeot,
Citron, DS, Vauxhall et Opel.
Jai t intgr au secteur production de lusine et ai plus spcifiquement travaill dans le
hangar ddi au montage. Lon y trouve deux lignes de montage sur lesquelles sont assembls les
vhicules, de manire ce que ces derniers sortent du hangar prts tre livres aux
concessionnaires (aprs contrle de qualit). Pour chacune de ces deux lignes de montage il existe
un secteur Assistance dun peu moins de dix personnes qui planifient la production venir via
un certain nombre doutils de gestion, de bureautique et de simulation. Par ailleurs ce service
cherche rgulirement des volutions pour les processus dans le cadre de lamlioration continue,
en association avec latelier Kaizen . Les bureaux des quipes dassistance se trouvent dans le
hangar, entre les chaines de montage, pour tre au plus prs des postes de travail. Jai
personnellement travaill au sein des services dassistance la production des chaines de
montage.
Le projet de mon stage (donc ddi lamlioration des processus des lignes de production)
consistait en sassurer dune meilleure fiabilit et dune plus grande fluidit des oprations sur
poste de travail par lintgration doutils sappuyant sur les nouvelles technologies faibles cots.
Les comptences techniques et non-techniques mises en uvre taient principalement la
programmation informatique, la modlisation de processus, la recherche dinformation et
lautoformation, ainsi que la communication au sein dune organisation.

Ce rapport sarticulera en plusieurs parties :


Ce mme chapitre propose une introduction au sujet du stage et une prsentation
gnrale du rapport.
Le deuxime chapitre concerne lintgration du stage au sein de la socit, ainsi que les
objectifs qui mont t confis.
Le troisime chapitre se concentre sur le programme de reconnaissance optique par
ordinateur que jai dvelopp. Les chapitres quatre six lui sont lis.
Le quatrime chapitre se penche sur la manipulation et lutilisation dune base de
donnes.
Le cinquime chapitre relate le dveloppement dune interface graphique entre un
programme et un utilisateur.

2
Le sixime chapitre est un peu plus gnral et revient sur divers aspects du projet qui
nont pas t abords avant.
Le septime chapitre porte sur les simulations de processus ralises grce au le logiciel
Witness.
Le huitime et ultime chapitre prsente les conclusions qui ressortent de ce stage ainsi que
les enseignements que jen tire dans le cadre de ma formation.
Aprs ce dernier chapitre se trouvent lannexe et la liste des illustrations.
Avant le chapitre actuel on peut retrouver le rsum du rapport de stage, les
remerciements, la table des matires et le glossaire.
La rdaction ne prend en compte que ce qui a t ralis jusquau 25 aout. Les avances quil y a
pu avoir au-del de cette date ne seront donc pas prsentes dans ce document.

3
CHAPITRE 2. CADRE ET OBJECTIFS DU STAGE

Mes horaires taient de 08h 16h30 (dont 45 minutes de pause pour le djeuner) du lundi au
vendredi, dabord dans un open space denviron 6 personnes, puis dans un autre dune dizaine de
personnes, qui sassuraient du bon droulement des processus de production. Jai rarement t
dans le mme bureau que ceux avec qui je travaillais en collaboration (ayant t plus associ des
projets faire en autonomie qu des quipes), mais il na jamais t un problme de
communiquer que ce soit directement ou par mail.
Le projet principal auquel jai t associ (dtaills dans les chapitres 3 6) avait pour finalit
dtre intgr la ligne de montage M1 sur un seul poste de travail. Si le dispositif savrait
concluant, il tait envisag de ltendre plusieurs postes, voire mme M2. Mon autre principale
ralisation (chapitre 7) sappliquait quant elle entirement M1.
La ligne M1 est la plus grande des deux. Elle possde 280 postes de travail disposs les uns la
suite des autres, et ncessite 310 operateurs en moyenne pour fonctionner (soit 930 operateurs en
tout, repartis sur les trois tours de 8 heures). 66 moniteurs en moyenne (198 en tout, repartis sur
les trois tours) supervisent ces oprateurs, soit environ 1 moniteur affect 5 oprateurs. Environ
1380 vhicules sortent de cette ligne de montage par jour (460 par tour), cest--dire 0,96
vhicules par minute. 6 modles de voiture sont assembls sur cette chaine (Peugeot 301, Citron
C-Elyse, Peugeot Partner, Peugeot Partner Electric, Citron Berlingo, Citron Berlingo Electric).
Comme dit prcdemment les horaires sorganisent selon trois tours : 06h 14h, 14h 22h, et
22h 06h (variable), le tour de la nuit pouvant tre raccourci (se terminant par exemple 04h au
lieu de 06h) afin daligner la production sur la demande.
La ligne M2 ncessite environ 227 oprateurs par tour (454 au total) et 52 moniteurs (104 en
tout). Sa production est de 506 vhicules par jour (253 par tour). 2 modles de voitures (Citron
Grand C4 Picasso et Citron C4 Picasso) y sont produits. Les horaires sorganisent en deux
tours : 06h 14h, 14h 22h (variable), le second tour adaptant galement sa dure selon le
besoin de production.
Comme dit prcdemment mon stage sinscrit dans une dmarche globale damlioration des
processus de production de lusine. Depuis un certain nombre dannes maintenant le domaine
de lindustrie sattache fortement une optimisation des ressources et des cots afin damliorer
sa rentabilit. Diverses approches sont possibles, dans mon cas il sagissait de lamlioration des
processus de production. Pour cela de nombreux dispositifs ont dj t mis en place dj bien
avant mon arrive dans lentreprise. Ceux-ci peuvent tre une rduction des temps non-
ncessaires pouvant tre rduits, une meilleure ergonomie, une optimisation des gestes des
oprateurs, des dispositifs de type poka-yoke, une optimisation des transports des pices, une
meilleure communication entre oprateurs et responsables, de chaines, etc. Il sagit par exemple :

4
dun placement plus ergonomique des pices et outils disposition des oprateurs au
poste de travail,
de petites lumires au niveau des casiers a pices qui sallument lorsque le dit casier
contient une pice devant tre prochainement saisie par loprateur (les lumires
steignant lorsque lopration a t effectue),
dun arrivage ordonn et prcis des pices assembler correspondant lordre des
voitures arrivant sur la chaine (les pices pouvant varier selon les spcifications du
vhicule).
Entre autres grce ces moyens, la ligne de montage M1 a t la plus performante (en termes de
rendement) de toutes les lignes de montage du groupe PSA lan pass.
De manire plus spcifique le stage sintgre dans le cadre dun projet visant cette amlioration
des processus de production par les nouvelles technologies en mettant en place un certain
nombre daides aux postes de travail couts faibles ou moyens. En parallle de mon projet
personnel diverses autres amliorations ont t cres ou sont en cours de cration grce aux
nouvelles technologies. Il existe par exemple un systme dalarme distance : loprateur a, son
poste de travail, accs un bouton pressoir, et sil appuie dessus un message est envoy par wifi
au responsable, qui recevra un mail directement sur son smartphone.
Dans le cas de mon projet, lobjectif tait davertir de manire automatique et en direct un
oprateur des tches quil doit effectuer par le biais dun cran.
En effet chaque poste de travail (et ils sont nombreux) correspond un certain nombre de tches
prcises effectuer, et qui peuvent varier selon le modle de voiture. Ces oprations sont par
exemple fixer un joint en caoutchouc sur le montant dune portire, brancher les cbles de
lordinateur de bord ou encore enchsser le pare-brise. Chacune de ces tches doit bien entendu
tre effectue en un certain laps temps, la ligne de montage avanant en continu (sauf arrt pour
cause exceptionnelle ou lors des pauses). En outre intervient la diversit de la production car,
bien que seuls deux ou trois modles diffrents soient assembls sur une mme chaine de
montage, ceux-ci peuvent grandement varier entre eux. Il y a en premier lieu de la distinction
entre vhicule utilitaire et vhicule de particulier, mais aussi la distinction de par les nombreuses
options disponibles : un mme modle peut se dcliner en plusieurs couleurs (gris, noir, blanc,
bleu, rouge, etc.), avoir un certain type de ceinture de scurit, de portire, de volant, de batterie,
de moteur, de radiateur, de pdales, de phares, dairbags, etc. Loprateur naura donc pas
ncessairement la mme opration raliser ou la mme pice assembler selon les
configurations. Ce type de situation peut amener une erreur si loprateur se trompe de pice ou
de manipulation. Une mauvaise pice assemble invalide le produit en sa totalit et ncessite le
changement de la dite pice plus tard dans le processus pour rhabiliter sa validit. Ces erreurs
provoquent un ralentissement gnral de la production et une diminution du rendement. Cest
pour contrer cela qua t recherche une solution technique pour prvenir la survenue de ces
situations.

5
Chaque voiture possde un numro didentification unique, le badge (BDG). Ce numro
didentification est crit sur une feuille dinformation (FAV) que lon retrouve lavant du
vhicule, sur son flanc. Lide est donc de lire ce code didentification en amont, puis de lenvoyer
vers une base de donnes qui retournera aprs traitement lopration exacte effectuer selon le
poste et la voiture. Enfin, lopration faire, ou la pice utiliser, est notifie loprateur via un
affichage. Mon travail stend sur toutes ces tapes, de la lecture laffichage.
Le dispositif de reconnaissance optique (pour lire le BDG sur la FAV) sarticule comme suit : un
capteur repre le passage de la voiture, une camra prend une (voire plusieurs) photo du flanc de
la voiture ; limage est traite afin de reconnaitre le numro didentification ; ce numro est
compar avec une partie de la base de donnes ; les informations pertinentes sont affiches
lcran. Pour mettre en place tout cela je disposais dune Raspberry Pi 3 Model B V1.2, crivant le
programme en Python, laide de diverses bibliothques libres. Jai effectu le codage seul selon
les contraintes et objectifs qui mont t donnes.
En ce qui concerne la partie de programmation de reconnaissance du BDG jai eu pour objectif,
dans un premier temps, dvaluer la faisabilit du projet. Une autre personne avait dj
commenc sintresser au sujet sans pour autant avoir pu sy impliquer rellement, cest
pourquoi on ma assign ce projet plein temps lorsque je suis arriv. Mon premier objectif a
donc t de me familiariser avec cette tude. Une fois cela fait (quelques jours), on ma demand
destimer si ce projet tait faisable, et surtout dans quelles conditions. Je suis assez rapidement
arriv la conclusion que cela tait possible, sous rserve de bien connaitre les conditions
optiques. Mon objectif suivant a donc t de mettre en place une mthode fiable pour lire
linformation voulue. Pour la partie concernant laffichage des informations on ma donn les
informations afficher, les priphriques utiliss (dclencheurs manuels) ainsi que laspect que
devrait avoir laffichage (celui-ci voluant au fur et mesure des demandes des responsables des
postes), et je me suis charge dcrire le programme correspondant. Par la suite on ma demand
de trouver une manire de faire communiquer des Raspberry Pi entre elles, afin de mettre en
place ce dispositif daffichage sur plusieurs postes de travail pour une seule camera.

Cette partie a reprsent la grande majorit de mon stage (environ 4 mois). Par la suite, tout en
rcrivant plus ou moins continuellement le code (au rythme de la concrtisation du projet), on
ma affect la modlisation et la simulation dun processus avec le logiciel Witness. En effet
dans les mois venir la production tait destine changer : plus de vhicules lectriques allaient
tre produire. En consquence un certain nombre de changements devaient tre apports. Et
cest afin de se prparer au mieux cette nouvelle organisation de la production que les
simulations se rvlent ncessaires. Globalement on ma demand de dessiner un systme en
sappuyant sur la manire dont sagence le processus dans la ralit et en y incluant les contraintes
voulus (la fabrication des vhicules lectriques). Mon objectif final tait de dimensionner le
nombre de batteries (et conjointement de caisses permettant de transporter ces batteries) qui

6
devaient tre prpares pour la mise en uvre de ce nouveau mix de production, tout en
analysant un certain nombre de paramtres pertinents (le nombre total de batteries dans le
processus, le nombre de vhicules lectriques ou thermiques sortant de lusine au niveau
journalier ou des roulements horaires, le nombre minimum de vhicules ou de batteries dans un
poumon de production, etc.). Ces modlisations et simulations des processus de production sont
trs prsentes dans le bureau assistance et sont des outils puissants puisquils prodiguent une
grande aide certaines prises de dcisions au niveau de la production. Ils permettent par exemple
de planifier toute la production du mois venir, et toutes ses spcificits. On pourra par exemple
calculer le besoin exact en oprateurs pour que toutes les taches soient effectues avec une
optimisation du temps de travail maximise, identifier o ont surgi des retards ou problmes de
production et quelles ont t leurs causes, ou encore valider un changement apporte au
processus. Les utilisations sont vastes et, condition de dvelopper un bon modle, dune bonne
prcision, permettant de faire des grandes conomies en termes de cots et de temps.

7
CHAPITRE 3. PROGRAMME DE VISION PAR ORDINATEUR

Dans ce chapitre nous allons nous pencher sur ma premire ralisation : la confection dun
programme de vision par ordinateur cod en Python avec laide de la bibliothque libre OpenCV
(Open Computer Vision) ayant pour but de lire une information prsente sur une image. Bien
quayant travaill sur ce projet durant environ deux mois, cette partie na pas t retenue dans le
dispositif final. Il sagit donc dun passage en revu dun programme qui na pas t mis en place
en fin de compte. Le chapitre 6 revient sur cet aspect.

3.1. Informations pralables et contexte de ltude

3.1.1. Explication gnrale du programme

Le programme sappuie sur une approche empirique et a beaucoup volu au cours du projet,
mtant en effet rendu compte que le traitement dune image variait grandement selon le contexte
de la prise de vue.
La rsolution de la problmatique sarticule autour de deux tapes : dans un premier temps
trouver la feuille au sein de la photo, puis trouver et lire le code prsent sur la feuille. Pour la
premire tape, la solution consiste en appliquer une srie de traitements et de filtres limage
pour rendre reconnaissable la feuille pour le programme. Pour la seconde partie on recoupe
limage pour ne plus garder que la dite feuille, on localise (ou non) les informations, puis on y lit
le code-barres ou bien directement les numros par reconnaissance de caractres.

3.3.2. Objectif du programme

Intressons-nous dabord la premire tape. Le contexte est le suivant : une feuille A4 (la FAV)
est scotche sur une des portires avant, ou sur le flanc avant de la voiture. Cette feuille contient
de nombreuses informations sur la voiture laquelle elle est associe. Chaque FAV est unique et
renseigne sur les rfrences des pices implmenter. Elle contient galement un numro unique
(le BDG) permettant didentifier de manire individuelle chaque vhicule. Il est compos de 6
numros (exemple : 21944) et se situe en haut gauche de la FAV. Cest ce numro qui nous
intresse.

8
Figure 1. Exemple d'une FAV

Figure 2. Exemple dun BDG en caractres et en code-barres

3.3.3. Les paramtres connaitre avant de se lancer

La distance
La distance entre la camra et lobjet observ est un premier paramtre important. Pour une
mme camera, plus on sera loin, moins la probabilit de pouvoir lire les informations sera grande.
Plus on est loin, plus limage contiendra des lments, et donc plus dlments non pertinents.
Ainsi une photo prise de prs contiendra globalement la feuille, la carrosserie, une partie de
lencadrement de la porte, rien de plus. Cependant si la photo est prise de plus loin, de nombreux
lments viennent sajouter : des cbles, les fentres, loprateur en train de travailler, des
machines, des outils, des meubles, et le reste de lusine en fond de limage. Tous ces lments
peuvent parasiter la recherche de llment que nous dsirons, qui est la feuille. Sil est rellement
impossible de se rapprocher de lobjet, lutilisation dun zoom optique ( diffrencier du zoom
numrique) peut tre une solution, faisant comme si la camera tait physiquement plus proche.
9
La rsolution de lappareil
Un autre paramtre de contexte important est la rsolution de la camra. Nous dsirons lire un
code-barres, ou des caractres de taille moyenne, sur une feuille A4. Sur une image complte, ces
informations ne reprsenteront quune infime partie. La rsolution, cest--dire la prcision
dimage, est par consquent cruciale : plus le nombre de pixels ddis un mme lment est
important, plus il sera facile pour le programme de reprer et lire les informations dsires. Si la
rsolution nest pas suffisante pour diffrencier un D dun 0 par exemple, ou pas suffisante
pour que le programme puisse reconnaitre la prsence dun caractre, alors la reconnaissance du
numro ne pourra tre mene bien. La rsolution est aussi mettre en relation avec la distance :
une rsolution moyenne de prs peut se rvler plus efficace quune grande de loin.

La distance focale
La distance focale de la camra est un autre paramtre prendre en compte. En aucun cas nous
ne cherchons avoir un angle de champ trs grand. Nous nous concentrons sur un objet de
petite taille (une feuille A4) et il nous importe peu davoir le reste de limage. Plus langle de
champ est grand, plus limage capte par la camera prendra une photo large. Angle de champ et
distance focale sont intrinsquement lies, le second dfinissant le premier. Sans rentrer dans les
dtails lil humain a par exemple une distance focale denviron 35 mm pour ce que lon voit, 50
mm pour ce que lon regarde, et 100 mm pour ce que lon examine, jusqu 500 mm pour la
lecture des dtails. Plus cette distance focale augmente, plus langle de champ se rduit, cest pour
cela que lon observe avec plus dattention les objets dans un angle trs rduit, en se concentrant.
Ce que nous voulons donc dans notre tude, cest une focale assez longue, pour avoir un champ
visuel plutt rduit. Pour cela existe ce que lon appelle un objectif longue focale. loppos
existent des objectifs courte focale, ce quon appelle des objectifs grands angles, tel que
lobjectif fisheye (il de poisson).

LISO
Importent galement dautres facteurs optiques habituels tel que lillumination de la scne. La
sensibilit ISO (pour sensibilit dfinie par lInternational Organization for Standardization
lOrganisation internationale de normalisation , mais souvent simplifie en ISO) permet
dadapter lexposition dune photo. Selon les camras (jai personnellement pu tester la camera
Raspberry Pi 2.1, la Raspberry Pi Camera NoIR V2, la Raspberry Pi 3 Model B, la Sony Cyber-
shot DSC-W810, ou encore une GoPro), ce paramtre est ajustable (il en va de mme pour
dautres paramtres comme louverture du diaphragme / distance focale, le contraste, la
rsolution, lutilisation dun flash, etc.). Vulgairement, un ISO bas sutilise lorsque lon possde
dj une bonne illumination de la scne, le cas typique tant lextrieur en pleine journe.
10
loppos si la scne est peu illumine, par exemple de nuit, il sera plus judicieux dutiliser un ISO
plus lev. Augmenter la sensibilit augmente cependant le bruit de limage en mme temps. Cest
pourquoi, si lon veut une image nette, il est prfrable de rester la sensibilit ISO la plus basse
possible. Dans notre tude, nous disposons dune illumination bonne, mais nous dsirons le
moins de bruit possible. Nous resterons donc une sensibilit ISO basse, de prfrence 100.

La vitesse dobturation
La dure dexposition, qui est linverse de la vitesse dobturation, correspond au temps pendant
lequel on va laisser passer la lumire. Plus la vitesse dobturation est courte (donc plus le temps
dexposition est long), plus la fentre de temps de capture sera grande et plus la lumire entrera
dans lappareil. Cependant, sil y a du mouvement, on obtiendra un rendu flou, la mobilit de
lobjet (ou le tremblement du photographe) se traduira par une traine a limage. linverse pour
une exposition courte, mme sil y a du mouvement, on nobservera pas de flou. Dans notre cas
les voitures sont sur une chaine de montage avanant une allure lente. Nous navons donc pas
besoin dune vitesse dobturation trs basse. Dans ce cas, il sagit plus de faire une srie de tests
empiriques jusqu trouver une vitesse satisfaisante.

3.2. Droulement de lalgorithme de traitement dimage

3.2.1. Lapproche

Une fois tous ces paramtres pris en compte, nous pouvons capturer la photo en vue de son
traitement informatique. Tout le code a t ralis en Python avec la bibliothque OpenCV sur
un ordinateur Raspberry Pi. Il y a eu de nombreuses versions du programme tant donn que le
contexte de limage influe normment sur le traitement appliquer. De par la grande complexit
de ce problme mergent deux approches : soit lon fait un algorithme gnral, peu sensible au
changement de conditions photographiques et trs robuste, mais qui prendra un temps de
traitement colossal ; soit lon fait un algorithme plus prcis, ntant efficace que dans certains cas,
mais qui sera bien plus rapide. Cest cette seconde approche que nous avons choisi, car nous ne
disposons pas de beaucoup de temps de traitement, lidal tant que se passent environ 45
secondes entre le moment o la photo est prise et le moment o le BDG est envoy vers la base
de donnes. Lalgorithme ne sera alors totalement robuste que pour un nombre de cas rduit.
Cest pourquoi il est ncessaire de forcer les conditions dtude, celles-ci tant principalement
le lieu, la distance, langle, les paramtres de lappareil. Lalgorithme se fondera donc sur plusieurs
hypothses de contexte, et se construira en partie empiriquement partir de ces hypothses.
On ne ma donn quassez peu de pistes pour commencer, me laissant le soin de concevoir la
manire par laquelle je voulais atteindre mon objectif. Il a donc t ncessaire de beaucoup se

11
documenter au fur et mesure de lcriture du programme et des tests, minspirant
principalement de mthodes classiques de traitement dimage et de vision par ordinateur, et
mappuyant sur les sites et forums o la communaut internet sentraidaient sur ces thmes
(GitHub, Stack Overflow, OpenCV.org, etc.). La proposition de rsolution du problme qui suit
dans ce chapitre est donc en quelque sorte unique, et dcoule autant dun effort de conception
que dune adaptation dun ensemble de fractions de solutions dj existantes.

3.2.2. La photographie

Ds le dbut de lalgorithme, limage sera tronque. On sait que lorsque lon prend la photo, la
feuille se trouvera toujours dans une certaine partie de la photo, on peut donc rogner limage
pour enlever systmatiquement la partie que lon sait superflue.

Figure 3. Photo prises par lappareil

Gnralement la zone de prsence potentielle de la feuille ne dpasse pas 80% de limage et se


concentre vers le centre. Il ne faut cependant pas oublier de prendre une marge de scurit et
donc de rogner toujours un peu moins que le maximum possible.

Figure 4. Photos rognes (70 %)

3.2.3. Le traitement de limage

La rsolution de limage

12
Une fois la photo prise et rogne, on va essayer de trouver la feuille. On cre donc une copie
partir de limage prcdente, mais de rsolution plus basse. ce stade, on ne cherche en effet pas
encore distinguer les caractres ou les dtails, on veut simplement trouver la feuille, qui est un
objet de taille moyenne voire grande lchelle de limage. rsolution basse on pourra donc
toujours bien voir la feuille limage. Lavantage davoir une plus basse rsolution est que le
traitement sera bien plus rapide, parfois mme plus efficace. Plus efficace car cela effacera
indirectement un certain nombre de dtails parasites de limage. Mais surtout plus rapide car une
rsolution plus basse signifie moins de lignes de pixels en longueur comme en largeur, donc
moins de pixels, donc moins doprations faire lors du traitement de limage. Diviser seulement
par 2 la rsolution diminuera considrablement la dure de lalgorithme, il sagit donc une tape
indispensable. Bien entendu on ne peut pas non plus rduire la rsolution de manire exagre, au
risque de ne plus pouvoir distinguer la feuille sur limage.

Figure 5. Images en basse rsolution (diminue de moiti)

Le flou
Cest alors que commence proprement parler le traitement de limage. Nous allons partir dici
appliquer une srie de filtres qui, utiliss judicieusement, nous permettront dextraire llment
dsir, en loccurrence la FAV. En premier lieu nous allons rcuprer limage basse rsolution
prcdemment cre et lui appliquer un filtre de floutage. En floutant limage on limine une
certaine partie du bruit et des dtails, cela nous servira plus tard. OpenCV dispose de divers filtres
de flou. Gnralement plus un filtre est efficace, plus il ncessitera un long temps dexcution.
Aussi aurait-on pu utiliser un filtre dlimination de bruit. Ces derniers sont trs efficaces mais
relativement lents en comparaison. Parmi les fonctions de filtrage, ma prfrence est alle plutt
vers le flou Gaussien, assez rapide et qui donne de bons rsultats dans mon cas. Cette fonction
parcoure toute limage, faisant la moyenne gaussienne de chaque pixel partir de la moyenne des
pixels voisins et attribue cette valeur au dit pixel. Attribuer un pixel la moyenne de la somme
des pixels voisins, cest la mthode informatique qui permet de flouter une image. Dans notre cas
on veut flouter un peu pour enlever du bruit et des petits dtails, mais pas trop car lon pourrait
par exemple perdre la frontire exacte entre la feuille et le reste de limage, ce que lon ne veut
pas. On applique donc un flou faible.

13
Figure 6. Image floute faiblement

Ajustement du contraste
Il est vident que diverses mthodes peuvent exister afin de trouver la feuille, il suffit de se
renseigner sur internet propos de la vision par ordinateur pour trouver des dizaines de manires
de procder desquelles sinspirer. Je ne dtaillerai ici que la mthode que jai choisi de garder, sans
aborder la plthore de mthodes possibles. Jai utilis un procd danalyse des variations de
luminosit de limage afin de reprer la feuille.
Dans ce cas la luminosit se dfinit comme la position dune couleur entre le noir et le blanc. La
feuille est blanche (trs lumineuse) et possde des caractres, des lignes, et des codes-barres noirs
(peu lumineux), il ny a pas dautre couleur.
Pour reprsenter au mieux la luminosit de chaque pixel de limage jai dans un premier temps
appliqu un filtre permettant damliorer le contraste de limage, en utilisant la mthode
dgalisation dhistogramme. En imagerie numrique, lhistogramme reprsente la distribution des
couleurs de limage. Chaque couleur est calcule comme la rsultante des trois couleurs bleue,
verte et rouge, et chacune de ces trois couleurs possde une valeur comprise entre 0 et 255 inclus.
La distribution des valeurs de limage sur cet intervalle [0 ; 255] nous donne donc ce quon
appelle lhistogramme. Cependant il arrive souvent que lhistogramme ne stale pas sur tout cet
intervalle de valeurs, on aura par exemple un histogramme stalant sur lintervalle [57 ; 131]. On
peut alors procder une galisation dhistogramme en talant la distribution des intensits sur
lensemble de lintervalle [0 ; 255]. Il en rsulte une image avec des couleurs plus tales sur
lhistogramme et donc un bien meilleur contraste.
ce stade javais donc une limage lgrement floute. Jai divis cette image en trois sous-
images, plus exactement en trois canaux : une image contenant les informations de la couleur
rouge de limage dorigine, une image contenant les informations du vert, et une image contenant
les informations du bleu. Pour chacun de ces trois canaux jai appliqu une galisation
dhistogramme, ajustant donc indpendamment le contraste de chacune de ces trois couleurs.
Plutt que dutiliser une galisation globale (cest--dire sur toute limage dans sa globalit) jai
utilis une fonction adaptative. On subdivise en de plus ou moins nombreux petits blocs de
pixels (de manire analogue ce qui a t fait pour le floutage) puis on galise lhistogramme de
14
cette sous-partie de limage. On donne galement une limite de contraste ne pas amplifier afin
de ne pas trop intensifier le bruit au passage (le bruit parasite gnralement lhistogramme aux
valeurs extrmes). Le contraste ajust pour les trois canaux, il ne reste plus qu les concatner
pour obtenir notre image avec contraste.

Figure 7. Image aprs galisation dhistogramme

Codage TSL
On utilise alors une fonction pour changer le systme codage des couleurs. Nous tions dans un
codage Rouge vert bleu et nous appliquons une transformation pour utiliser un codage
Teinte saturation luminosit . La teinte correspond globalement la valeur que prend la
couleur sur le spectre chromatique, la saturation la distance depuis une couleur achromatique (le
blanc, le noir ou les gris), et la luminosit la position de la couleur entre le noir et le blanc. Cest
cette dernire composante qui va nous intresser, comme explique prcdemment.

Figure 8. Codage des couleurs en TSL

Masque de luminosit
Une fois dans le systme TSL, on va appliquer un masque qui nous permettra de ne garder que
les pixels possdant une valeur de luminosit gale ou suprieure un certain seuil. Les
composantes de teinte, saturation et luminosit elles aussi prennent des valeurs entre 0 et 255
inclus. Pour la composante luminosit 0 correspondant au noir extrme (pas de luminosit) et
255 au blanc extrme (luminosit maximale). On pourra donc ne garder que les pixels entre 175

15
et 255 (valeurs arbitraires pour lexemple) afin de garder les parties les plus claires de limage sans
filtrer les valeurs de teinte ou de saturation. On obtient alors une image en noir et blanc, le blanc
tant ce quon a gard du filtrage, le noir tant tout le reste qui na pas t retenu car pas assez
lumineux.

Figure 9. Image aprs masque

Prsentation des transformations morphologiques


A partir dici il y aura une srie de filtres sappuyant sur des notions dun domaine quon appelle
la morphologie mathmatique applique au traitement de limage. Il existe tout un ensemble de
fonctions prdfinies qui permettent de transformer limage : rosion, dilatation, ouverture,
fermeture, gradient, black hat, top hat Une grande partie de la russite du programme consiste
en la bonne combinaison de ces fonctions, avec les bons paramtres. Les deux fonctions de base
sont lrosion et la dilatation. Ces fonctions ne sappliquent que sur des images en nuances de
gris, cest pourquoi il est important de convertir notre image si ce nest dj fait.
Schmatiquement, on aura alors des parties de limage plutt en blanc et des parties de limage
plutt en noir. La fonction rosion va venir roder les frontires des lments blancs, les
rtrcissant en commenant par les bordures. Si ces lments sont petits, on pourra facilement les
faire totalement disparaitre avec cette fonction, et cela peut tre utilis pour enlever le bruit de
couleur blanche. Cela peut aussi permettre de dtacher des lments blancs qui taient avant cela
connects. Cependant il faut faire attention ne pas trop roder, car on peut facilement perdre
une partie de notre information (la fonction rosion, sattaquant partir des bordures, a tendance
dformer la forme de lobjet) voire mme supprimer tout un lment blanc que lon voulait
garder.

16
Figure 10. Une mme image avec une rosion lgre puis forte

La fonction dilatation est la fonction inverse la fonction rosion. Elle permet de dilater les
lments blancs, cest--dire de faire grossir ces derniers depuis leurs bordures. Cela peut tre
utile pour connecter deux lments spars ou pour augmenter laire occupe par nos objets
blancs. Bien entendu si lon a du bruit, celui-ci aussi sera dilat. De la mme manire il ne faut pas
en abuser, car il se peut que lon dilate des objets non dsirs, ou que lon modifie la forme des
lments qui nous intressent.

Figure 11. Une mme image avec une dilatation lgre puis forte

A partir de la combinaison de ces deux fonctions ont galement t cres plusieurs autres
fonctions de rfrence, dont trois vont nous intresser : ouverture, fermeture et gradient.
La fonction ouverture correspond une rosion suivie dune dilatation. Cest une fonction
pratique pour supprimer le bruit ou des lments de faible paisseur.

17
Figure 12. La fonction open

La fonction fermeture est linverse une dilatation suivie dune rosion. Cette dernire est
pratique pour enlever des points noirs sur un objet blanc, ou pour fermer des objets blancs
lintrieur desquels se trouvent des blocs noirs.

Figure 13. La fonction close

Enfin le gradient morphologique correspond la diffrence entre la dilatation et lrosion dune


image. Cela dessinera en quelque sorte le surlignement des contours des lments blancs. Les
frontires des objets seront donc traces en blanc, tandis que lintrieur et lextrieur des objets
seront noirs.

18
Figure 14. La fonction gradient

Application des transformations morphologiques au programme


La plupart des versions de mes programmes contenaient entre 8 et 14 de ces fonctions
morphologiques avec pour chacune un paramtre prcis. Chaque combinaison de fonctions
donnera un rsultat diffrent, cest pourquoi il est difficile dapprhender la marche suivre au
dbut. La squence devant sappliquer un certain nombre de cas, il est important de bien
maitriser lenchainement des fonctions et les paramtres de chacune dentre elle. Cela explique
pourquoi jai opt pour une dmarche empirique pour paramtrer le programme, et ce pour
chaque cas dtude. Par cas dtude jentends lensemble des photographies prises depuis une
distance similaire, avec un angle comparable, et dans des conditions optiques proches
(particulirement en termes de luminosit). Dans la photo suivante par exemple nous effectuons
la squence suivante partir de limage aprs le masque (image 1) : ouverture (image 2), gradient,
fermeture, ouverture, rosion, ouverture, dilatation, fermeture (image 9).

19
Figure 15. Une squence de manipulations morphologiques pour trouver la FAV

Bords de la feuille
A ce moment-l du programme, un tre humain saurait o est la feuille. Pour lordinateur par
contre ces informations nont pas de sens. Open CV, cependant, dispose dune fonction
permettant de dessiner les bords des objets (dune certaine manire cela est comparable la
fonction gradient morphologique prcdemment cite), bords que lon va ensuite un peu dilater,
afin quils soient bien visibles.

Figure 16. Application des bords (milieu) puis dilatation (droite) de notre image dorigine (gauche)

3.2.4. Les contours de la feuille

20
On obtient alors un dessin plus ou moins fidle, selon le traitement dimage prcdent effectu,
des bords de la FAV. On va utiliser une fonction qui permet lordinateur de reprer les
contours dun objet. Avec les contours, on pourra dlimiter rellement un objet que lon pourra
exploiter au travers du programme grce ses coordonnes. Limage des bords en soi ne contient
en effet pas dinformation aux yeux du programme. Mais grce aux contours (ferms) on pourra
dlimiter la prsence dobjets. Dans un premier temps on utilise la fonction qui va trouver tous
les contours des objets ferms de limage (cest aussi pourquoi lon veut rduire au maximum
linformation superflue tel que le bruit ou les petits lments de limage, les contours de ceux-ci
pouvant tre trouvs). On trie ensuite ces contours par taille de laire contenue et lon garde les
plus grands (par exemple les 5 ou 10 plus grands). On peut en effet supposer que, si lon a bien
fait le traitement, le contour de la feuille sera lun des plus grands contours, si ce nest le plus
grand. On passe en revue ces contours tris par taille. Chacun leur tour on les approxime un
polygone. Si ce polygone possde quatre cotes, on sait il peut sagir des contours de notre feuille.
partir dici jaimerais faire une parenthse avant de poursuivre lexplication de lalgorithme.
Diffrents types de contours et fonctions permettant de les manipuler sont disponibles. On a
dores-et-dj dessin le contour du polygone approxim des contours de notre feuille. Si le
traitement a t bien fait, ce contour suivra trs fidlement la forme de la feuille limage, que
celle-ci soit plie, bombe, oriente en position oblique ou verticale bref on garde la
perspective de la feuille par rapport limage (nous reviendrons par la suite sur limportance de la
perspective de la feuille). Cependant plus on veut un programme gnral en termes de conditions
(clairage, couleur de la portire, etc.) plus on voudra un traitement dimage gnral et donc plus
il sera difficile de trouver le contour exacte de la feuille. Souvent on obtiendra donc un contour
approximatif et peu prcis. On ne pourra donc utiliser ce contour brut, au risque de ne pas
systmatiquement avoir toute la feuille, ce qui serait dommageable pour la suite de lalgorithme.
On peut alors par exemple tracer un autre contour : celui du rectangle de plus petite aire
contenant le contour brut. Notre feuille tant elle-mme un rectangle, on peut esprer que, si
celle-ci nest pas trop dforme, le contour du rectangle li sera assez fidle la forme de la
feuille.

Figure 17. Les contours de base (en jaune) et ceux des rectangles lis (en rose)

21
Nous avons donc trouv notre feuille, nous pouvons presque passer la recherche du BDG.
Cependant il reste un problme : la reconnaissance de caractres, tout comme la lecture du code-
barres, ne pourra se faire de manire efficace que si les caractres ou le code-barres possdent une
orientation horizontale. En effet, le logiciel prsuppose que le texte sera donn lhorizontale
(pour ne pas confondre les caractres | et / par exemple). Un rognage simple de limage
selon les coordonnes du contour serait un peu trop approximatif. On va donc utiliser une
fonction qui permet de transposer la perspective de la feuille vers la perspective du plan de
limage. Ainsi, sil existe une quelconque rotation entre le plan de la feuille et le plan de limage,
lon pourra ramener la feuille de face . Pour cela on relve les 4 points correspondant aux
sommets du rectangle li tout en prenant une petite marge de scurit (au cas o notre rectangle
serait trop petit ou trop limit), on les ordonne, et on calcule (via une fonction) la transformation
de perspective ncessaire pour passer de ces quatre points aux quatre points extrmes dune
nouvelle image carre. Ds lors il ny a plus qu appliquer cette transformation notre image
pour obtenir notre feuille dans la perspective de face . Cependant, alors que le contour brut
(effectu correctement) conserve bien lorientation de la feuille et donc est plutt fiable pour
trouver la perspective appliquer, le contour du rectangle li perd en partie lorientation de la
feuille. On se retrouvera donc souvent dans ce cas avec une perspective approximative.

Figure 18. Perspective applique au contour rose (milieu) et au contour jaune (droite)

3.2.5. Lecture des informations

Nous avons donc maintenant trouv et isol la feuille. Puisqua priori nous avons bien fait notre
traitement de limage, on peut supposer que la feuille est rpartie sur presque toute limage. On va
alors rogner limage. On sait que le BDG, quil soit sous forme crite ou sous forme de code-
barres, se trouve dans le coin suprieur gauche de limage. Cependant on ne peut pas trop
rogner : si le contour est mal trouv, il se pourrait que lon enlve le BDG, ce que lon ne veut
pas. On va donc rogner (par exemple au 2/5e) limage en longueur comme en largeur, partir du
coin suprieur gauche de limage.

22
Figure 19. Limage de la feuille rogne

Comme nous lavons dj dit, nous navons pas totalement corrig lorientation de la feuille.
Nous allons donc procder une petite manipulation afin damliorer un peu cela. Nous allons
trouver lorientation de la feuille en cherchant les lignes horizontales de limage. Nous prenons
donc limage rogne, la transformons en image en nuances de gris (ncessaire pour les
manipulations par lalgorithme), puis on lui applique un filtre dlimination du bruit. Ce dernier
est bien plus efficace mais plus lent que le flou pour un mme objectif, cependant notre image est
de petite taille, donc on peut se le permettre. On utilise ensuite un filtre de seuil, qui nous
donnera une image binaire. On donne un seuil la fonction, et si la valeur du pixel trait est
suprieure la valeur de seuil, le pixel prend la valeur de pixel blanc, sinon on lui donne la valeur
de pixel noir. Il existe de nombreuses fonctions de seuillage. Jai personnellement utilis une
fonction de seuil adaptative ( loppose dun seuillage global qui sapplique sur toute limage en
une fois) qui donne souvent de meilleurs rsultats, surtout quand lillumination varie au sein de la
mme image. On dessine ensuite les bords des lments de cette image (comme prcdemment).
Enfin on dilate lgrement afin de faire ressortir mieux ces bords. Apres cette squence de filtres,
on peut passer la dtection des lignes de la feuille.

Figure 20. La squence dcrite : nuances de gris, limination du bruit, seuillage, bords, dilatation

Limage prte, on va utiliser une fonction permettant de trouver les lignes prsentes limage
grce une mthode base sur la transforme de Hough. Cette fonction trie automatiquement les
lignes en partant de la ligne pour laquelle lalgorithme est le plus sr de la prsence de la ligne
jusqu celle dont il est le moins sr. Etant donn que notre image contient des lignes imprimes,
on peut supposer que les lignes les plus fortes seront celles trouves partir de ces lignes
imprimes (lalgorithme estime souvent comme lignes des lments qui nen sont pas, mais ce
23
sont rarement des lignes fortes). La premire ligne horizontale trouve (dans notre cas une ligne
dont langle est compris entre moins et plus cinq degrs par rapport lhorizontale) sera garde
comme ligne de rfrence. Nous appliquons alors une petite rotation limage en nuances de gris
(pour la lecture du code-barres), ainsi qu limage aprs seuillage (pour la lecture des caractres)
pour corriger ce petit angle.

Figure 21. Nos images en nuances de gris aprs correction de lorientation

Grace cette image en nuances de gris nous allons pouvoir lire le code-barres via la bibliothque
libre ZBar. Celle-ci contient toutes les fonctions ncessaires, est simple dutilisation et est fiable si
limage donne est de qualit. Depuis le tout dbut de lalgorithme jusquau rsultat de la lecture
du BDG par code-barres, il faut environ 25 secondes.

Si la lecture du code-barres est un chec, nous essaierons de trouver le BDG via lecture des
caractres. Nous rcuprons donc limage aprs seuillage roriente, et y appliquons une fonction
qui prend une image et renvoie le texte lu sous forme dune chaine de caractres. Pour cela jai
utilis la bibliothque libre Tesseract (bibliothque de reconnaissance optique de caractres). Il est
encore assez difficile pour lordinateur de bien reconnaitre les caractres, souvent celui-ci lit des
caractres qui napparaissent pas, nen lit pas qui apparaissent, ou les lit mal, le bruit influant trs
fortement sur la reconnaissance par la machine. Il faut donc faire preuve dun peu dastuce pour
pouvoir obtenir un rsultat fiable. En rponse cela le processus (dcrit dans le `prochain
paragraphe) est effectu plusieurs fois pour plusieurs valeurs de dilatation des lments (et donc
du texte). Parfois le logiciel lira bien les caractres lorsquils sont fins, parfois il les lira bien
lorsquils sont plus pais. Ce nest pas parce que nous voyons bien les caractres a lil nu que le
logiciel les verra bien. Cest pourquoi jutilise en tout jusqu trois valeurs diffrentes de dilatation.

24
Figure 22. Les images dilates de manire adquate pour la reconnaissance de caractres

Sans entrer dans les dtails, mon algorithme cherche en premier lieu des caractres de rfrence,
par ordre de priorit : G, B, :, D, et 6. G est en effet le caractre le plus fiablement
reconnu, puis B, puis :, puis D et enfin 6 car le logiciel reconnait trs souvent ce caractre a
la place du D. Lalgorithme savance alors jusquau prochain caractre tant un chiffre et
lenregistre dans une chaine de caractre. Il lit alors chaque fois le caractre suivant. Si celui-ci
est un chiffre, il le rajoute la chaine. Si celui-ci est un espace, il lit le caractre suivant (le logiciel
lit parfois des espaces vides sans raison). Si celui-ci est tout autre caractre, le logiciel abandonne
la recherche de cette chaine de caractre. Si la chaine de caractres atteint une longueur de 6 (la
taille du BDG), elle est valide comme le BDG et est renvoye. Entre le tout dbut de
lalgorithme et cette toute dernire opration il se passe en moyenne environ 35 secondes. Si la
chaine de caractres natteint pas la longueur dsire ou quelle est abandonne, le logiciel
effectue la recherche du BDG avec caractre de rfrence suivant dans lordre de priorit jusqu
trouver ou atteindre le 6 sans rsultat. Cest ce moment quon changera la valeur de dilatation
(voir paragraphe prcdent) et quon rptera ce processus de recherche du BDG.

3.3. Options non retenues

Il y a eu plusieurs tapes de validation ( lintrieur du bureau, sur chaine de montage diffrents


endroits) avec chaque fois une ou plusieurs volutions du programme. Cest de cette manire
que je me suis rendu compte quil fallait un programme adapt pour chaque cas. Jai donc
demand sil tait possible davoir des sries de photos qui soient dans des conditions homognes
de lieu, de distance, dangle et de luminosit pour la validation de lalgorithme. Dans ces cas
jarrivais obtenir dexcellents rsultats aprs ajustement des paramtres. Globalement la
validation tait simple. Il suffisait de vrifier que le programme renvoie bien le BDG en toute
circonstance, et en un temps raisonnable (45 secondes ou moins). Bien que je ne dveloppe pas
cette partie dans le rapport (il y a peu de choses intressantes dire), un grand temps a t ddi
aux tests et aux validations de lalgorithme. Cela sest fait par des squences de tests tout fait
classiques.

25
Parmi toutes les possibilits de logicielles et de mthodes, il y en a un certain nombre qui nont
pas t retenues :
Nous avons dans un premier temps pens reprer les lignes de limage (mthode qui a
tout de mme t utilise pour lorientation de la feuille) pour trouver la FAV. En
redessinant les lignes, on pouvait ainsi la ramener un quadrillage et pouvoir reprer
nimporte quelle information en se basant sur les positions des lignes. Cette mthode na
pas t retenue car est trs peu fiable, il est en effet difficile de bien reconnaitre les lignes,
en partie cause la prsence de nombreux caractres parasitant la reconnaissance des
lignes.
Il a t pens utiliser la Raspberry Pi NoIR Camera avec des lampes infrarouges. La
camra Raspberry Pi Camera NoIR ne filtre en effet pas les rayonnements infrarouges,
alors que les appareils classiques possdent un filtre infrarouge intgr. Des lampes
infrarouges, dont lclairage est invisible l il nu et ne drangent donc pas loprateur
peuvent tre mises en place afin daugmenter la luminosit de la scne, ceci permettant de
mieux discriminer les objets sur la photo. Tous les matriaux ne rflchissent en effet pas
de la mme manire les rayonnements infrarouges. Un clairage infrarouge peut donc tre
une bonne astuce lorsque lon veut distinguer une feuille (de couleur blanche) sur une
porte blanche, les deux tant de compositions diffrentes, sans oublier que cela permet de
rajouter de la luminosit la scne. Ce procd donnait des rsultats plutt bons
(meilleure reconnaissance de la feuille que lorsque lon reste dans le spectre visible).
Cependant cest une mthode plutt encombrante (de par la taille des clairages), qui,
mme si elle reste valide, nest pas choisir en priorit sil en existe dautres.
Nous avons aussi pens intgrer un zoom optique. Le zoom optique a pour avantage de
faire comme si la distance lobjet tait rduite, ce qui est un paramtre crucial. Pour une
camra qui na pas rellement une bonne rsolution (telle que la Raspberry Pi Camera), et
lorsquon ne peut pas sapprocher beaucoup (nous sommes sur ligne de montage, il y a
une distance minimum respecter), le zoom optique peut tre une solution efficace. Bien
entendu cela nest pas ncessaire dans le cas de lutilisation dune camra avec une
rsolution suffisante pour la distance. Il peut sagir dun objectif ajout lappareil
permettant doprer un zoom optique. Ces objectifs peuvent se trouver sur internet bas
prix, pour une multiplication de 2, 5, 8, 12 fois (ou plus) du zoom de limage.
Certains appareils proposent galement un flash, ce qui aurait pu nous permettre ensuite
davoir une meilleure luminosit de limage, et donc une image o se voient mieux les
dtails.
Une autre option consistait prendre plusieurs photos (par exemple 4 ou 5) avec un trs
petit temps dcart (par exemple 100 millisecondes), lire les numros du BDG au fur et
mesure, et chaque fois que lun des 6 chiffres du numro apparait plus dune fois, il est

26
gade par le logiciel comme le bon chiffre. Quand tous les chiffres sont trouvs, on arrte
lanalyse des images et on envoie le BDG vers la base de donnes. Par exemple si on lit
sur la premire image 097564, puis 087561 sur la seconde, le logiciel validera les chiffres
0-756-. Si la troisime image donne 097554, le logiciel validera en plus 097564. Il est trs
rare davoir besoin de plus de deux photos. Cette mthode a lavantage de fournir un
rsultat trs fiable et vite grandement les erreurs dues la lecture. Cependant son gros
point faible est quil faille traiter la nouvelle image chaque fois, ce qui monopolise de
prcieuses secondes. On a donc un algorithme trop long pour ce que lon dsire faire.
Lon aurait galement pu lire puis comparer le BDG en code-barres et en caractres dune
mme feuille, afin dobtenir une meilleure fiabilit. Le problme de cette mthode est que
si les deux numros ne sont pas les mmes et quil y en a un juste et un faux aucun des
deux ne sera retenu. Il faudrait alors prendre une autre photo pour refaire la comparaison.
Cela demanderait trop de temps et ce nest pas ce que lon veut. Alors, partant du constat
que la lecture par code-barres est plus fiable que la lecture de caractres, jai prfr
privilgier cette premire avant de passer la seconde mthode, au cas o la lecture de
code-barres chouerait.
Il existe encore dautres mthodes auxquelles je me suis intress mais qui ne me
semblent que peu pertinentes aborder dans ce rapport (dtection de zones dintrt,
apprentissage machine, )

27
CHAPITRE 4. LECTURE DANS LA BASE DE DONNEES

4.1. La base de donnes

Sur lun des rseaux interne lentreprise il existe une base de donnes contenant les
informations ncessaires tout au long de la production, sur toutes les voitures qui sont ou seront
sur chaine de montage ce jour ainsi que dans les 2 ou 3 jours venir. Cette base de donnes est
mise jour quotidiennement. Le BDG, dont nous avons parl prcdemment, est la cl qui va
nous permettre didentifier individuellement chaque voiture. chaque voiture est associe un
ADN , une chaine denviron entre 800 et 1000 caractres qui prendra par exemple cette
forme :
A10AB00AD00AE07AF01AJ01AK01AL04AP01AQ00AT12AU00AZ18A301A401A607A703B
K53BL01BMCLBP00CD06CF08CG18CH00CK02CL09CP01CR25CT08CW64CX01CY02DA2
2DC28DG05DH50DI02DJ04DO01DR07DT00DV00DZJNEC05EHJUEJ03EK08ENELES03
EZ00E200FB02FC49FI01FJ05FK01FT02FX00GB18GM19GN46GQ09GS00GV00GY27GZ0
8G863HB10HD51HF00HG02HN01HU03HY01HZ00IF06IH01IJ06IN00IX08JA11JB04JE18J
F22JV05JZ05LE03LG06LN03LT02LU02LV00LW01LX08L601MG02MJ54MK05MM00MO03
MP00MT00MY08MZ02NA00NB03NF01NN01NO06NS01OA04OB07OCDCOF00OL07ON
02OP01OR03OS01OX01OY02OZ01PD22PE00PG17PK02PLFWPR01PS02PY12QE00QF00
QH04QQ00QR01QS00QV00QX00RB30RC45RD15RE02RG03RH12RI00RJ04RK04RL02RN
13RO01RP01RQ01RS02RU20RZ89R708R808SB00SE01SH02SL05SQ00SX10TE00TG08TI01
TJ00TN02TS01UB00UE05UF01UH56UR01UT04UV28UW01UX36UZ01VB09VC02VD02VF
10VH12VK76VL00VQ30VX17VY01V707V807V906WF11WLL5W408XC03XF00XG10XL03
XQ33XT01YC00YE01YI01YJ09YK02YM01YR00YT09YW07ZH41ZZ0P. Cet ADN contient
tous les informations ncessaires aux oprateurs (quelle pice mettre, quelle opration effectuer,
etc.) pour chaque poste de travail, class par ordre alphabtique. En connaissant le poste de
travail qui nous intresse, nous pourrons ainsi extraire linformation qui nous intresse et
informer loprateur. Nous accdons cette base de donnes en rcuprant une archive en
format .xlsx (Microsoft Excel).

4.2. Le programme

Le programme a galement t cod en Python, sur la Raspberry Pi, laide de la bibliothque


pandas qui permet de manipuler un fichier .xlsx, alors mme que nous sommes sous Linux
(Raspbian). Le procd est simple : nous parcourons la base de donnes jusqu trouver llment
qui a le BDG qui nous intresse, nous rcuprons son ADN, et extrayons la partie pertinente.

28
Nous pouvons ensuite afficher cette information sur un cran, ce qui sera trait dans le chapitre
5. Dautres moyens de communication sont envisageables selon le besoin, tel que transmettre
linformation une oreillette que porterait loprateur.
Comme pour le programme dcrit dans le chapitre 3, cette solution na pas t conserve dans le
projet final, pour des raisons qui seront voques au chapitre 6.

29
CHAPITRE 5. LE DISPOSITIF DINTERFACE AVEC LOPERATEUR

Lide est ici de crer une interface trs visuelle qui puisse avertir rapidement et efficacement
loprateur dun certain nombre dinformations. Mon interface graphique a t programme en
Python avec la bibliothque libre tkinter.

Le code-barres 2D (PDF417) lu par la camra (je rappelle que la solution prsente chapitre 3 na
pas t retenue), fournit, une fois dcod, une chaine de caractres comprenant les informations
qui nous intressent. Voici quelques exemples (avec en gras les chiffres ne contenant pas
dinformation mais permettant de se reprer) :
00B90110331025658503HJ70869104968577508005TOPE06
00B90110332024255503DJ99888804968605808005TOPE06PATA
00M30110333025322303HZ89888804967466718005AZUL
Le code est rfrenc comme suit :
00 code famille, le modle de la voiture (M3 ou B9)
01 nore, ordre de la voiture sur la chaine de montage ce jour-ci (recompte partir du
dbut chaque jour).
02 BDG
03 rfrence vis
04 rfrence ressort arrire
05 couleur (noir ou bleu) si modle M3
05 tope (prsent ou non) si modle B9
06 pata (prsent ou non) si modle B9

Dans un premier temps linterface se divise horizontalement en trois parties : une partie
suprieure (10% de limage) affichant les informations de la prochaine voiture venir ; une partie
centrale (80% de limage) affichant les informations de la voiture actuellement au niveau du poste
de travail ; une partie infrieure (10% de limage) affichant les informations correspondant la
voiture qui vient de quitter, ou en train de quitter, le poste de travail.
Pour chaque partie il existe 6 cases, chacune associe une information en particulier. Celles-ci
sont :
le nore, numro didentification
trois couleurs qui, associes entre elles, correspondent une rfrence unique de ressort
PATA (prsent ou non)
TOPE (prsent ou non)
NEGRO /AZUL

30
Pour les trois codes cits plus haut par exemple on obtient un affichage de ce type :

Figure 23. Affichage de linterface graphique

A noter que pour la partie centrale, qui est la plus importante, il est possible si ncessaire de
mettre encore plus en valeur linformation. Ainsi, en plus dafficher les attributs qui nous
intressent, une photographie de la pice concerne aurait pu tre ajoute (solution envisage
mais non retenue). Il faut cependant trouver le juste milieu entre redondance pertinente de
linformation et surcharge de lcran.
En outre il est possible de prendre une photo plusieurs postes en avance, dextraire les
informations du code-barres et de les conserver, dans un Excel par exemple, puis de les exploiter
lorsque lon en a besoin. Cela peut ainsi savrer particulirement utile pour navoir prendre
quune seule photographie, toujours au mme niveau de la chaine de montage, mais de se servir
des donnes lues sur plusieurs des postes suivants des positions diffrentes. Et cest ce qui a t
mis en place. Une premire Raspberry Pi tait place au niveau de premier poste, celle-ci tant
relie la camera. Cest elle qui va activer la procdure de lecture du code-barres, puis qui traitera
linformation, lenregistrera dans un fichier Excel, affichera ventuellement linformation si
connecte un cran, et partagera le fichier Excel aux autres Raspberry Pi. La connexion se fait
grce au protocole SFTP (Secure File Transfert Protocol) par la bibliothque libre Paramiko et
travers le rseau Wifi local (mais sans passer par lInternet). Dans un premier temps la connexion
stablit entre les deux machines au niveau IP, puis la machine mettrice envoie son fichier a la
machine rceptrice (et ferme ventuellement la connexion).

31
Ltape suivante a t dintgrer lutilisation dun actionneur au dispositif. Ainsi lorsquun vhicule
passe, lactionneur est enclench, la photo est prise, le document cr est transmis, et
linformation afficher apparait sur lcran. Celui-ci est connect sur le port GPIO de la
Raspberry. Le programme surveille lactivation du bouton rgulirement (toutes les 50
millisecondes par exemple). Il nest pas problmatique que la surveillance de lactivation du
bouton monopolise le programme car ce dernier na rien dautre faire en parallle.

Figure 24. Architecture globale dune des versions (21 juillet) du programme

32
Figure 25. Schma du dispositif intgr a la chaine de montage

33
CHAPITRE 6. LE DEROULE DU PROJET

6.1. Modifications du projet

Au fil des avances et des concertations avec les responsables du poste de travail auquel allait tre
implant le dispositif, le projet a subi un grand nombre dvolutions majeurs :
La camera de la Raspberry Pi ntant pas de qualit suffisante pour assurer une grande
fiabilit, il a t dcid de commander une camra de qualit industrielle, bien que plus
chre. Celle-ci avait de plus la capacit de lire elle-mme le code-barres.
Plutt que de lire lidentificateur de la voiture puis daller lire dans la base de donnes les
caractristiques qui nous intressent, il a t dcid de mettre directement dans le code-
barres les informations pertinentes.
En consquence il a aussi t dcid de modifier le type de code-barres. Auparavant t
utilis un code-barres unidimensionnel de type Code 39. Pour pouvoir intgrer plus
dinformations, il a t dcid de sorienter vers un code-barres bidimensionnel, comme le
sont par exemple les codes PDF417, Data Matrix ou QR Code. Ceux-ci ont le gros
avantage dtre bien plus denses et de contenir plus dinformations sur une mme surface.
La connexion entre les Raspberry Pi, permettant dchanger les donnes ( travers
lExcel), qui devait originellement se faire par la Wifi, sest finalement faite par une
interconnexion par cble Ethernet. La connexion Wifi ncessitait en effet dindiquer son
identifiant et son mot de passe plus ou moins rgulirement, et sopposait donc la
volont davoir un dispositif entirement automatis.

6.2. Ralisations non retenues

En consquence des modifications prcdemment cits, tout ce que jai fait na pas t utilis :
Toute la partie de reconnaissance optique par la camra (dtaill dans le chapitre 3) sur
laquelle jai travaill pendant 2 mois environ na pas t retenu car une camra spcifique
a t achete et que celle-ci pouvait lire les codes-barres 2D, ce qui reprsentait une
option plus simple.
Puisquil sest avr possible dintgrer un code-barres 2D au lieu dun code-barres 1D, il
a rsult quil tait possible dinclure directement sur la feuille un grand nombre de
donnes. Ainsi toutes les informations dsires pouvaient directement tre dans le code-
barres de la feuille et non plus davoir recourir laccs la base de donnes (sujet du
chapitre 4).

34
35
CHAPITRE 7. WITNESS

7.1. Prsentation du logiciel

Witness est un logiciel de lentreprise Lanner Group permettant de modliser et simuler


numriquement un processus industriel ou de service. Le logiciel possde un affichage de
linformation et de ltat du processus qui se veut trs visuel (on fait effectivement un schma du
processus et des lments prenant part ce processus), ainsi que des outils danalyse
potentiellement avancs, afin de faciliter la comprhension et lexploitation des rsultats.
Le logiciel permet de modliser divers lments afin de reprsenter un processus :
Des pices (parts), qui peuvent tre tout lment qui passe au travers du modle, en
particulier on peut les utiliser pour reprsenter les ressources, les pices transformes et
produites par lentreprise (mais pourraient aussi tre des palettes, des personnes, des
outils, des boissons, etc.).
Des machines (machines), qui sont les lments qui oprent sur les pices, les
transforment.
Des zones tampons (buffers), qui reprsentent des lieux de stockage qui peuvent recevoir,
stocker, distribuer des pices.
Des convoyeurs (conveyors) qui transportent les pices dun point un autre du modle.
Des travailleurs (labour), qui peuvent parfois tre ncessaires pour quun autre lment
fonctionne (configurer et mettre en marche une machine, rparer, changer un instrument,
etc.).
Des circuits (tracks) et vhicules (vehicles), les premiers sont des routes qui dlimitent
strictement les espaces parcourables par les seconds, qui eux-mmes chargent,
transportent et dchargent des pices.
Des modules (modules), qui sont en fait des ensembles dlments physiques crs pour
une meilleure comprhensions et manipulation du modle.

Chacun de ces lments possde toute un ensemble de caractristiques paramtrables qui


entreront en compte dans la simulation, par exemple (non exhaustif) :
Pices : taille du lot, type passif (juste--temps) ou actif, intervalle de temps entre les
arrivages, etc.
Machines : type (simple, batch, assemblage, production, multi-station, gnral), quantit,
actions lors de lutilisation, avec ou sans oprateur, temps de cycle, pannes, avaries,
prparation, etc.
Zones tampons : quantit, capacit, type dentre et sortie (FIFO, LIFO, etc.), temps
dattente minimum, etc.
36
Convoyeurs : type ( distance fixe, en queue), capacit maximale, longueur, temps de
cycle, pannes, avec ou sans operateur, etc.
Travailleur : quantit, horaires, priorisation des taches, temps supplmentaires, etc.
Circuits : vitesse, arrts, temps supplmentaire, etc.
Vhicules : rgle de chargement et dchargement, rapidit de chargement et de
dchargement, retard au dpart et larrt, etc.

Ces lments sont utiliss dans le cadre dlments sinscrivant dans un processus discret, mais il
en existe aussi pour les processus continus (qui sont les fluides, rservoirs, machines et tuyaux)
qui ne sont pas dutilit dans notre cas.
En plus de cela il existe des lments logiques (attributs, variables, distributions, fichiers,
fonctions, roulement horaires, listes de pices) et graphiques (sries de temps, histogrammes,
diagrammes circulaires) ainsi que des lments spciaux.
Enfin un certain nombre doutils permet dexploiter et danalyser les rsultats dans loptique de
tirer des conclusions, ou alors pour synthtiser un ensemble de donnes potentiellement
pertinentes pour ltude du processus.

7.2. Ralisation

7.2.1. Intrt du logiciel

Au sein du service assistance, il a deux principales utilisations au logiciel : tout dabord il permet
de prvoir et planifier les besoins en ressources pour une priode de temps donne (la
planification se fait gnralement par mois), mais permet aussi dvaluer les potentielles
amliorations apporter au sein du processus. Ainsi, si lentreprise pense judicieux dacheter un
certain nombre de vhicules guidage automatique (VGA), il est ncessaire de faire au pralable
une simulation. Commander trop de vhicules savrerait tre une perte dargent, tandis que pas
assez de vhicules poserait des problmes lors de limplmentation du dispositif. Le fait que le
logiciel puisse modliser avec fidlit le droulement dun processus permet une bonne prdiction
de la ralit, sous rserve de concevoir un modle suffisamment proche de la ralit. Celui-ci
permet, en plus de modliser les lments physiques et leurs caractristiques, de prendre en
compte les vnements alatoires, temps supplmentaires et pannes, avec la possibilit de faire
intervenir des probabilits selon les principales distributions standards. En intgrant ces aspects,
la simulation sapproche de la ralit, dans laquelle il est impossible que tout se passe tout le
temps de manire idale et sans complication.

7.2.2. Utilisation du logiciel

37
Jai tout dabord t form (en autonomie) deux semaines au logiciel au tout dbut du stage. Ces
modlisations et simulations tait originellement ce quoi devait principalement se ddier mon
stage. Cest le besoin dune personne pour le dveloppement du programme daide au poste de
travail (le projet dcrit des chapitres 3 6) qui a fait que jai arrt de me consacrer ce logiciel.
Cependant, plus tard dans le stage, jai eu loccasion dutiliser Witness. Le problme, globalement,
tait le suivant : dans les mois venir le besoin de production de voitures lectriques tait destin
augmenter grandement (une cinquantaine par jour, contre moins dune vingtaine actuellement).
Ces voitures lectriques utilisent logiquement des batteries qui sont installes au niveau des
chaines de montage. Je prcise que chaque voiture possde en ralit une paire indissociable de
batteries, une lavant et une larrire. Par simplification nous dfinissons comme une
batterie ce qui est en ralit une paire de batteries. Cela ne change en rien la modlisation car ces
deux batteries apparies sont toujours montes, dplaces et utilises simultanment. De ces
cinquante voitures (cinquante tant une estimation), il y en aura vingt pour lesquelles la batterie
sera retire du vhicule avant sa sortie dusine (batterie qui ne sort donc pas du processus et sera
rutilise) et trente qui sortiront de lusine avec la batterie monte et cble.
Voici maintenant une description schmatique de ce processus (on pourra se rfrer la figure
26, la modlisation du processus). Il y a dabord un atelier dassemblage de batteries qui fournit
vingt batteries par jour (atelier en marche entre 08h et 16h30). Celles-ci sont places dans des
caisses que lon transporte jusquau service logistique (qui sert de lieu dentrept et de plaque
tournante tout lment destin tre transporte a un lieu ou un autre du hangar), puis du
service logistique jusquau poste de travail ddi au montage des batteries sur les vhicules. On y
sort les batteries des caisses et on les agence dans le vhicule. Ce dernier passe alors par toute la
chaine de montage. la fin de la chaine de montage trente des voitures vont au parking rserv
aux vhicules livrer aux concessionnaires (dans une ville voisine, O Porrio), et les vingt autres
vont au poste de dmontage des batteries. Celles-ci sont alors de nouveau places dans des
caisses que lon enverra au service logistique (on a donc fait une boucle). Les voitures passes par
le dmontage sont ensuite elles aussi envoyes au parking des vhicules livrer.
Lobjectif de cette modlisation tait double. Dune part nous voulions savoir combien de
batteries il fallait prvoir en stock avant la mise en uvre de la nouvelle planification de la
production. Nous avons en effet dun ct un besoin constant en batteries au niveau de la chaine
de montage (50 vhicules lectriques sont monts tout au long des 24 heures de la journe) et de
lautre un approvisionnement des batteries la fois par les batteries nouvellement assembles (20
par jour, entre 08h et 16h30) et par les batteries provenant du dmontage (durant les 24 heures).
Il apparait rapidement que le systme ne peut pas fonctionner si lon ne possde pas ds le tout
dbut du processus un surplus de batteries (cest--dire un stock initial) permettant de garantir les
besoins de la chaine de montage. Cest prcisment la taille de ce stock que lon veut
dimensionner grce notre modlisation.

38
Et dautre part nous voulions savoir combien de caisses taient ncessaires au total pour le bon
fonctionnement du processus. Les caisses ne sont en effet prsentes quentre le poste de
dmontage, latelier dassemblage, latelier logistique et le poste de montage. Plus exactement les
caisses sont transportes par camion (jusqu 21 caisses par camion, au rythme de quatre trajets
par jour, entre 08h et 20h) pour lacheminement jusquau service logistique, mais par unit (via
chariot lvateur) du service logistique au poste de montage des batteries. En parallle il ne faut
pas oublier le fait que lon doive ramener les caisses vides du poste de montage jusquau service
de logistique, et du service de logistique jusquaux ateliers de dmontage et dassemblage. En
prenant tout cela en compte il nous faut dimensionner le nombre de caisses ncessaires dans le
systme pour qua aucun moment le processus de ne se retrouve bloqu. En rsum nos deux
objectifs sont de dimensionner la taille du stock de batteries et le nombre de caisses ncessaires.
Pour ce qui est du dveloppement du modle, il y a dabord eu une concertation entre les
responsables concernes afin davoir une premire ide des besoins et des objectifs du modle.
Cela permit davoir une premire dfinition avec quelques contraintes et variables connues mais
videmment affiner. Cest partir de cette tape que jai commenc tre intgr au projet. On
ma donc prsent toutes les informations pertinentes, avant de faire un tour de la chaine de
montage dans le but de mesurer certaines informations (par exemple le nombre de voitures
prsentes entre deux points prcis de la chaine) et de prendre une meilleure connaissance de
spcificits quantitatives et qualitatives modliser. partir de l jai commenc utiliser le
logiciel Witness. Jai dabord fait un modle approximatif et principalement qualitatif avec des
variables grossires (le logiciel demandant des paramtres assez prcis). Au fil du temps le modle
sest logiquement toff et amlior, restant cependant peu quantitatif (par manque de donnes).
Finalement on put obtenir une bonne modlisation qualitative comme quantitative du processus,
grce laquelle on pouvait observer le parcours des pices (batteries, caisses, vhicules
lectriques, vhicules classiques ) au travers des postes (atelier dassemblage, service logistique,
poste de montage des batteries, atelier de retouche, atelier de dmontage, chaine de montage) et
des circuits de transport (acheminement entre atelier de dmontage, atelier dassemblage et
logistique, entre logistique et atelier de montage, entre fin de chaine de montage et atelier de
dmontage et parking des voitures destines a sortir de lusine) en prenant en compte les lieux de
stockage (service logistique, stockage temporaire des batteries, des caisses et des voitures avant ou
aprs les divers ateliers et circuit de transport). En faisant varier les paramtres qui nous
intressaient (stock de batteries, nombre de caisses), il est assez simple dobserver si le processus
fonctionne ou non, et de quelle manire ragit le systme aux variations apportes, en vue dune
prise de dcision future.

39
Figure 26. Une des versions (24 aout) de la modlisation

40
41
CHAPITRE 8. CONCLUSIONS ET PERSPECTIVES

En premier lieu ce stage ma apport quelques connaissances ainsi quun certain savoir-faire. Il y a
bien entendu eu des comptences techniques (le langage Python, lutilisation dune Raspberry Pi,
le logiciel Witness, le traitement dimage par ordinateur, la modlisation et la simulation
numrique de processus) mais galement des connaissances transversales (comment sorganiser
dans son travail, sintgrer dans un projet, communiquer au sein de lentreprise).
Et cet apprentissage sest videmment accompagn dun certain nombre de difficults lors de
mon travail. En ce sens, il a fallu me confronter aux complications concernant ladaptation et la
mise niveau sur le plan technique. Jai d me familiariser en autonomie au langage Python ainsi
quaux bibliothques utilises (en particulier OpenCV qui possde un nombre considrable de
fonctionnalits), puis au logiciel Witness. Ceci fut une tape plus longue que rellement difficile,
ncessitant parfois des recherches laborieuses pouvant durer plusieurs heures sans succs. Mais
au-del de simplement apprendre les fonctions, les bibliothques et leur bonne utilisation, et le
fonctionnement du logiciel Witness, il a fallu assimiler la logique du traitement dimage et de la
modlisation et simulation de processus de production, apprendre avoir les bonnes
intuitions , et acqurir une vision globale des sujets.
En dehors de ces obstacles techniques, lautre entrave que jai identifie tait ce qui relevait de
linteraction avec lorganisation. Tout projet semblable au mien sinscrit en effet au sein dune
organisation et require donc une interaction rgulire avec celle-ci. L o cela devient
problmatique est lorsque lon doit attendre une action dune autre partie de lorganisation pour
pouvoir soi-mme avancer dans le projet, ce qui provoque un ralentissement de la progression.
Cela peut prendre par exemple la forme de lattente :
dune runion entre les parties dirigeantes afin de savoir vers quels objectifs doit tendre le
programme,
de la livraison dune pice de matriel ncessaire pour la suite du projet,
avant une entrevue avec un suprieur hirarchique ou un collgue afin de faire part des
avances, de les valider ou non, et de dcider vers quoi sorienter par la suite.
Mais une fois le temps dadaptation pass, rien ne ma sembl inabordable, et le stage tait
globalement semblable mes attentes. Ce ne fut pas une exprience difficile ou dsagrable, le
bilan est donc plutt positif.
Dans le futur je ne sais pas encore vers quel domaine jaimerais morienter, je compte me laisser
le temps dy rflchir. Toujours est-il que je souhaiterais morienter vers un travail porte plus
globale, un peu moins technique, et ventuellement plus orient vers les aspects management
du mtier dingnieur.

42
43
ANNEXES

Pour retrouver ce rapport en format numrique :

Voici un ensemble dimages choisies appartenant la plaquette de prsentation de


lentreprise. Si vous voulez retrouver le document source en entier, il est disponible au
lien suivant : https://es.scribd.com/presentation/357489228/2017-Present-Corporativ-
Vigo-v-Fra-Publico

44
45
LISTE DES ILLUSTRATIONS

Figure 1. Exemple d'une FAV .................................................................................................................... 9


Figure 2. Exemple dun BDG en caractres et en code-barres ............................................................. 9
Figure 3. Photo prises par lappareil ........................................................................................................ 12
Figure 4. Photos rognes (70 %) .............................................................................................................. 12
Figure 5. Images en basse rsolution (diminue de moiti) ................................................................. 13
Figure 6. Image floute faiblement .......................................................................................................... 14
Figure 7. Image aprs galisation dhistogramme .................................................................................. 15
Figure 8. Codage des couleurs en TSL .................................................................................................... 15
Figure 9. Image aprs masque .................................................................................................................. 16
Figure 10. Une mme image avec une rosion lgre puis forte ......................................................... 17
Figure 11. Une mme image avec une dilatation lgre puis forte ...................................................... 17
Figure 12. La fonction open ..................................................................................................................... 18
Figure 13. La fonction close ..................................................................................................................... 18
Figure 14. La fonction gradient ................................................................................................................ 19
Figure 15. Une squence de manipulations morphologiques pour trouver la FAV ......................... 20
Figure 16. Application des bords (milieu) puis dilatation (droite) de notre image dorigine
(gauche) ........................................................................................................................................................ 20
Figure 17. Les contours de base (en jaune) et ceux des rectangles lis (en rose) .............................. 21
Figure 18. Perspective applique au contour rose (milieu) et au contour jaune (droite) ................. 22
Figure 19. Limage de la feuille rogne .................................................................................................... 23
Figure 20. La squence dcrite : nuances de gris, limination du bruit, seuillage, bords, dilatation
....................................................................................................................................................................... 23
Figure 21. Nos images en nuances de gris aprs correction de lorientation ..................................... 24
Figure 22. Les images dilates de manire adquate pour la reconnaissance de caractres............. 25
Figure 23. Affichage de linterface graphique......................................................................................... 31
Figure 24. Architecture globale dune des versions (21 juillet) du programme ................................. 32
Figure 25. Schma du dispositif intgr a la chaine de montage ......................................................... 33
Figure 26. Une des versions (24 aout) de la modlisation .................................................................... 40

46
47

You might also like