KONICA MINOLTA

Aktuální vydání

celé číslo

11

2019

Využití robotů, dopravníků a manipulační techniky ve výrobních linkách

Průmyslové a servisní roboty

celé číslo

Automatizovaná inšpekcia chýbajúcich skrutiek na montážnej linke pomocou vizuálneho systému

František Duchoň, Peter Pásztó, Martin Dekan, Michal Tölgyessy, Martin Foltin

 
Článok sa zaoberá automatizovanou inšpekciou chýbajúcich skrutiek na zadnej strane televízorov. Navrhnuté riešenie využíva systém strojového videnia (so štyrmi kamerami) a umelú neurónovú sieť, ktorá rozhoduje o prítomnosti alebo neprítomnosti skrutky v obraze výrezku skrutky. V článku sú opísané použité metódy spracovania obrazu, ktorých úlohou je detekcia polohy televízora na výrobnej linke a určenie polohy skrutiek na zadnej strane televízora pri neideálnych svetelných podmienkach. Následne sú obrázky výrezkov skrutiek upavované do tvaru jednoducho použiteľného ako vstup pre neurónovú sieť.
 
The article deals with an automated inspection of missing screws on the back side of the panel of TV-sets. The proposed solution uses vision system (with four cameras) and an artificial neural network which determines the presence or absence of screw in the screw sub-image. The article describes used image processing methods whose task is to detect the position of the TV set on the production line and to determine the positions of screws on the back side of the panel of the TV set in non-ideal light conditions. Then the screw sub-images are transformed to a form easily usable for the neural network.
 

1. Úvod

Kontrola kvality je jednou zo základných úloh vo výrobných procesoch. Súčasťou kontroly kvality je inšpekcia. Inšpekcia je definovaná ako skúmanie výrobku, jeho komponentov alebo nespracovaných materiálov za účelom rozhodnutia, či daný prvok výroby spĺňa dizajnové špecifikácie [1]. Existuje mnoho spôsobov, ako vykonávať inšpekciu. S rozvojom počítačov a senzorov je možné používať omnoho prepracovanejšie metódy inšpekcie. Jednou z nich je pokročilá inšpekcia, ktorá je definovaná ako kombinácia senzorov a výpočtovej techniky, ktorá automatizuje činnosť týchto senzorov. Typický postup inšpekcie pozostáva zo štyroch krokov: predvedenie, skúmanie, rozhodnutie a opatrenie (PEDA [2]). Automatizácia týchto krokov skracuje čas potrebný na inšpekciu a zmenšuje počet chýb pri inšpekcii spôsobených ľudskými pracovníkmi. Automatizovaná inšpekcia je tak isto náchylná na chyby, predovšetkým keď je operácia inšpekcie zložitá. Avšak takéto inšpekčné úlohy sú rovnako zložité a komplexné aj pre ľudských inšpektorov. Navyše je často potrebné, aby aj komplexná inšpekcia výrobku prebiehala vo vysokých frekvenciách, čo ľudský inšpektor nie je schopný splniť. Rýchla inšpekcia výrobku významne zasahuje aj do rýchlosti samotnej výroby. Preto sa objavuje potreba automatizovanej inšpekcie, ktorá je účinná, rôznorodá, presná, robustná a časovo efektívna.
 
Plný potenciál automatizovanej inšpekcie možno dosiahnuť jej integráciou do výrobného procesu, aplikovaním 100% inšpekcie (t. j. inšpekcia každého dielca alebo výrobku) a ak výsledok inšpekcie vedie k nejakému opatreniu. Automatizovanú inšpekciu možno kategorizovať na:
  • off-line inšpekcia,
  • on-line procesná inšpekcia,
  • on-line postprocesná inšpekcia.
On-line inšpekcia je vo všeobecnosti charakterizovaná využitím údajov z inšpekcie v určitej forme spätnoväzobného riadenia výrobného procesu. Takáto inšpekcia je vhodná pre procesy, ktoré sú premenlivé a ich podmienky pre výrobu môžu byť nestabilné. Nestabilné podmienky výroby sú charakteristické pre automatizované montážne linky, kde montáž výrobku môže pozostávať z niekoľkých stoviek komponentov.
 
Pre zavedenie automatizovanej inšpekcie je možné využiť rôzne inšpekčné postupy od vytvárania presných 3D modelov pomocou laserových diaľkomerov až po inšpekciu pomocou systémov strojového videnia. Práve automatizovaná inšpekcia pomocou týchto systémov je v poslednom období čoraz viac nasadzovaná predovšetkým pre relatívnu jednoduchosť analýzy dát a pre priaznivo ekonomicky dosiahnuteľnú 100% inšpekciu.
 
Článok sa zaoberá automatizovanou postprocesnou inšpekciou zadných panelov elektronických výrobkov pomocou vizuálneho systému. Inšpekcia je zameraná na nájdenie chýbajúcich skrutiek na týchto paneloch. Neprítomnosť skrutky na zadnom paneli môže rozhodnúť o spokojnosti alebo akceptovateľnosti výrobku zákazníkom. Existuje mnoho metód, ako využiť systém strojového videnia pre takúto inšpekciu. Ich väčšina spočíva v predspracovaní obrazu filtrami, v segmentácii obrazu, interpretácii a opisu obrazu a v rozpoznaniu objektov. Väčšina systémov strojového videnia používaných pri automatizovanej inšpekcii je založená na segmentácii obrazu, matematickej morfológii, extrakcii čŕt obrazu, rozpoznávaní objektov a rozpoznávaní pohybu v obraze. Tieto postupy je možné súhrnne nazvať ako klasický prístup v spracovaní obrazu, ktorý je založený na štandardnom matematickom aparáte. Iný prístup používaný pri spracovaní obrazu je založený na nízkoúrovňových biologických modeloch podobných fyziológii alebo genetike, ktorý sa súhrnne nazýva moderná umelá inteligencia (fuzzy logika, umelé neurónové siete, genetické algoritmy apod.). Kombináciou oboch prístupov možno dosiahnuť vzájomné využitie výhod jednotlivých prístupov. Avšak neexistujú všeobecné postupy alebo princípy, ako využiť plný potenciál takýchto kombinácií systémov automatizovanej inšpekcie využívajúcich prvky oboch prístupov. V tomto článku je na rozpoznanie objektu použitá umelá neurónová sieť, ktorá predstavuje univerzálny klasifikátor.
 

2. Spracovanie obrazu

Metódy spracovania obrazu sa vo výrobných procesoch používajú pri úlohách ako automatizovaná inšpekcia, riadenie procesov alebo robotov. Vo všeobecnosti sa metódy spracovania obrazu delia na predspracovanie obrazu, segmentáciu obrazu, morfologickú transformáciu, rozpoznanie tvaru atď. [4], [5]. Správna kombinácia krokov metód spracovania obrazu by mala viesť k úspešnému pochopeniu obrazu, pričom kvalita, tj. úspech každého kroku, je závislá od predchádzajúcich krokov.
 
Pre úlohu detekcie skrutiek bolo potrebné zvoliť vhodnú kombináciu farebného modelu, algoritmu nájdenia hrán a iných algoritmov spracovania obrazu, ako napr. rozostrenie, zaostrenie, rôzne úpravy histogramu, dilatácia, erózia alebo Houghova transformácia. Pri predspracovaní obrazu bolo v tomto prípade nutné potlačiť skreslenie obrazu zapríčinené kamerou a osvetlením. Premenlivé svetelné podmienky vnášajú do obrazu rušenie a šum. Výber vhodného algoritmu spracovania obrazu je jednoduchší, ak je zaručená trvalá stabilita osvetlenia obrazu. Výstupom celej procedúry spracovania obrazu sú výrezky obrázkov so skrutkami, ktoré sú ďalej spracované do vhodnej formy pre univerzálny klasifikátor v podobe umelej neurónovej siete. Použitie (natrénovanej) umelej neurónovej siete zaručí dostatočne rýchle rozhodnutie o prítomnosti alebo neprítomnosti skrutky v danej obrazovej vzorke oproti iným technikám (ako napr. pattern matching). Jedna z požiadaviek projektu bola aj maximálna doba vyhodnotenia všetkých skrutiek v obraze do 4 s. Z tohto dôvodu aj iné techniky (ako napr. detekcia kružníc Houghovou transformáciou) sú takmer nepoužiteľné, pretože vyfiltrovanie veľkého množstva falošne detegovaných objektov (kružníc) môže značne spomaliť proces vyhodnotenia. Uvedené časové hľadisko v sebe zahŕňa všetky úlohy od príchodu televízora na linke pod kamery až po jeho odchod z linky, t. j.: polohovanie televízora na linke, zapnutie spodného osvetlenia a nasnímanie obrazu, zapnutie vrchného osvetlenia a nasnímanie obrazu, nájdenie polohy televízora a vyhodnotenie skrutiek. Vyhodnocované televízory môžu mať uhlopriečku až 107 cm a takáto plocha televízora si na získanie dostatočne kvalitných vzoriek výrezkov skrutiek vyžaduje použitie štyroch kamier s rozlíšením 2 048 × 1 536 pixelov. Kamerami nasnímané obrazy sú prenášané pomocou ethernetovej siete na vytvorený FTP-server. Je zrejmé, že všetky uvedené procesy (prenos dát na server, prepínanie osvetlenia, spracovanie obrazu atď.) zaberajú určitý podiel času z celkovo dostupných 4 s a rýchlosť iba malého množstva z nich je ovplyvniteľná. Preto je snaha maximálne skrátiť dobu potrebnú na spracovanie obrazu – využívaná je kombinácia rýchlych a jednoduchých krokov, ktoré rapídne odstraňujú „prebytočné“ informácie z obrazu a snažia sa ponechať iba informáciu o polohe televízora v obraze a na základe tejto znalosti získať obrázky výrezkov skrutiek. Filtrovanie falošne detegovaných objektov alebo prechádzanie obrazu za účelom hľadania určitého vzoru v štyroch obrazoch kamier s vysokým rozlíšením by mohlo nepredvídateľne predĺžiť dobu spracovania obrazu (napr. v závislosti od počtu falošne detegovaných objektov, ktorých množstvo pri meniacich sa svetelných podmienkach nie je možné predpokladať). Výsledný algoritmus bol teda navrhnutý tak, aby bral do úvahy už uvedenú časovú požiadavku.
 
Na získanie výrezkov obrázkov so skrutkami je v prvom rade dôležité správne určiť polohu televízora na linke. Pohyblivé časti linky vplývajú na svetelné podmienky v obraze kamier, preto je potrebné algoritmus detekcie polohy televízora navrhnúť čo najuniverzálnejšie, aby tieto rušivé vplyvy dokázal odfiltrovať. Značná časť predspracovania obrazu bola venovaná tejto problematike. Po odfiltrovaní rušivých vplyvov nasleduje samotná detekcia hrán (rohov alebo geometrie) televízora.
 
Klasické prístupy hľadania hrán v obraze pozostávajú z jednoduchých krokov: prevod RGB obrazu do šedotónového (grayscale), rozostrenie (Gaussov filter), použitie Cannyho detektora hrán a následne Houghova transformácia na detekciu čiar. Na aplikáciu opísanú v tomto článku však takýto jednoduchý postup nie je postačujúci. Je potrebné predpokladať, že časti linky môžu mať podobnú farbu ako povrch televízora, čo značne komplikuje správne určenie polohy televízora. Okrem toho pohyblivé časti linky môžu spôsobiť relatívne veľkú zmenu svetelných podmienok a vnášať do obrazu šum. RGB farebný model, výpočtovou technikou bežne používaný, je veľmi citlivý už na malé zmeny osvetlenia [3]. Vytvorený algoritmus (obr. 1) sa snaží v maximálnej miere potlačiť všetky uvedené rušivé vplyvy. Vychádza z nasnímaného obrazu, v ktorom je použitím spodného osvetlenia [1] (umiestneného pod plochou televízora) zabezpečený relatívne veľký kontrast medzi plochou televízora a jeho okolím (obr. 2).
 
Uvedený algoritmus najprv nasnímaný obraz prevedie na šedotónový (jednokanálový) obraz. Zmenšením a následným zväčšením vytvorí nový šedotónový obraz, v ktorom sa operáciami zmenšenia a zväčšenia odstráni veľká časť šumu (stratou niektorých obrazových informácií počas tohto procesu) a vytvoria sa oblasti s rovnakými jasovými plochami. Táto operácia však v obraze deformuje aj ostré hrany jednotlivých objektov (horný obrázok v obr. 3), alebo pri veľkom šume môže šum aj zvýrazniť. Preto sa takýto obraz nepoužíva na ďalšie spracovanie, ale sčítaním pôvodného a upraveného obrazu sa získa nový obraz s vyšším kontrastom a s menšou variáciou jasových úrovní na plochách jednotlivých objektov v ňom (prostredný obrázok v obr. 3b).
 
Ďalším krokom je použitie už uvedeného klasického prístupu detekcie hrán v obraze (rozostrenie Gaussovým filtrom a detekcia hrán Cannyho detektorom). Výsledok znázorňuje dolný obrázok v obr. 3c. Je zrejmé, kde sa v obraze televízor nachádza, ale táto oblasť nie je ohraničená súvislými hranami, ale iba krátkymi úsekmi hrán prechádzajúcich po reálnej hrane televízora v pôvodnom obraze. Ostatné hrany vzniknuté z objektov linky môžu byť silnejšie ako nesúvislé hrany televízora. Z tohto dôvodu bolo treba do algoritmu pridať ďalšie kroky spracovania, ktoré dokážu zabezpečiť výber správnej oblasti, kde sa televízor v obraze nachádza.
 
Jemnou dilatáciou sa všetky hrany v obraze zvýraznia a zakreslia sa do pôvodného (nespracovaného) šedotónového obrazu televízora. Výsledkom je šedotónový obraz, v ktorom sú zvýraznené detegované hranice farebných oblastí prislúchajúcich k jednotlivým objektom (obr. 4, horný obrázok). Tento jednokanálový obraz v ďalšom kroku slúži ako vstup do Houghovej transformácie pre detekciu čiar. Bola použitá pravdepodobnostná Houghova transformácia, ktorá krátke úseky čiar s rovnakou smernicou spojí do jednej čiary. Detegované čiary sa vykreslia do pôvodného farebného obrazu farbou, aká sa v obraze bude nachádzať s malou pravdepodobnosťou (napr. červená). Výsledok je zobrazený na strednom obrázku obr. 4. Zároveň je vidieť, že vzniknuté čiary relatívne spoľahlivo oddelili oblasť televízora od zvyšnej časti obrazu. Niekoľkonásobnou dilatáciou a následnou eróziou (rádovo stovky krokov) je potom možné oddeliť plochu televízora od ostatných plôch v obraze, pričom vzniknú farebné plochy prislúchajúce televízoru (tmavšie odtiene), bledé odtiene pozadia a červené odtiene čiar. Výsledok znázorňuje dolný obrázok v obr. 4. Ako nasledujúci krok by stačilo použiť farebný filter, ale musel by byť použitý na tri kanály obrazu. Pre zjednodušenie sa vzniknutý obraz znovu prevedie na šedotónový a prahovaním sa odstránia body s vysokou hodnotou jasu (plocha televízora je v obraze najtmavšia). Obraz sa invertuje, aby plocha televízora ostala biela a pozadie čierne (horný obrázok v obr. 5). Následne sa použije záplavový algoritmus, ktorý s presne určenou hodnotou jasu zaplní obraz z presne určeného rohu podľa kamery, kde sa podľa očakávania televízor nachádza. Podľa danej hodnoty jasu sa na obraz znova aplikuje prahovanie a tieto dva kroky zaistia, že v obraze sa bude nachádzať iba plocha televízora, aj keď by v predchádzajúcich krokoch ostali v obraze náhodne nejaké iné plochy v pozadí (prostredný obrázok v obr. 5).
 
Pre získanie súvislých (spojených) hrán vzniknutej plochy televízora sa použije Sobelov algoritmus detekcie hrán, ktorý je citlivý na hrany v určitom smere. Keďže televízor má obdĺžnikový tvar, je potrebné použiť Sobelov algoritmus v smere x aj v smere y. Súčtom dvoch obrazov hrán vzniknú hrany televízora, ktoré sú znázornené na dolnom obrázku obr. 5.
 
Ako posledný krok sa z dolného obrázku obr. 5 znova Houghovou transformáciou detegujú čiary [6]. V tomto prípade je možné nastaviť vyšší prah, pretože obrázok obsahuje iba hrany televízora. Pre zamedzenie vzniku falošných čiar sa z akumulátora vyberú iba najsilnejší kandidáti jednej horizontálnej a jednej vertikálnej čiary. Výsledok je zobrazený na obr. 6.
 
Houghova transformácia vracia informácie, z ktorých je možné vytvoriť matematický opis priamok (rovnice detegovaných priamok). Použitím týchto rovníc algoritmus vypočíta priesečník priamok a tak získa pozíciu rohu televízora v obraze a jeho uhol natočenia.
 
Aplikačný softvér používa štyri kamery, v obraze ktorých hľadá príslušný roh (a natočenie) televízora. Zo znalosti týchto údajov určuje aktuálnu polohu skrutiek v obraze a robí výrezky.
 
Kvôli minimalizácii počtu použitých kamier majú výsledné obrázky výrezkov skrutiek malé rozlíšenie a často je ťažké rozoznať, či sa skrutka v obraze nachádza alebo nie. Je potrebné vytvoriť také podmienky v obrazoch skrutiek, aby vznikli jednoznačné rozdiely medzi vzorkami obrázkov, v ktorých sa skrutka nachádza a v ktorých sa skrutka nenachádza. Ako dobré riešenie sa ukázalo použiť dostatočne silný zdroj svetla, ktorý svieti z hornej strany na plochu televízora. Pri dostatočne silnom osvetlení je možné si všimnúť odraz svetla z povrchu skrutky (v obraze, v ktorom sa skrutka nachádza), popr. kruhový odraz diery bez skrutky (obr. 7).
 
Nerovnomernosť osvetlenia na celej ploche linky môže spôsobiť, že na niektorých skrutkách (hlavne zapustených v zadnom paneli televízora) vznikne veľmi slabý odraz svetla od povrchu skrutky (obr. 8). V takomto prípade sa obraz spracováva ešte ďalšími krokmi, ktoré majú za účel zosilniť odraz svetla.
 
Ako prvý krok po získaní výrezkov skrutiek sa teda overuje, či je obrázok dostatočne svetlý na to, aby sa použil na ďalšie spracovanie. Vytvorí sa normalizovaný histogram obrázku a vypočíta sa váhovaný priemer jasových hodnôt v ňom. Ak je tento priemer nižší ako stanovený prah, obrázok skrutky sa vyhodnotí ako tmavý, inak sa vyhodnotí ako dostatočne svetlý. Tmavý obrázok sa najprv zosvetľuje (svetlý obrázok nie) a oba sa ďalej spracovávajú rovnakým spôsobom. Obrázky sa prevedú na šedotónové. Zosvetlujú sa ekvalizáciou histogramu tmavého obrázku, jemným vyhladením a sčítaním takto spracovaného obrazu s pôvodným šedotónovým obrazom. Výsledný obraz je na obr. 9.
 
Na rozpoznanie, či sa vo výrezku nachádza skrutka (odraz svetla od jej povrchu) alebo sa v ňom skrutka nenachádza, slúži neurónová sieť. Pre dosiahnutie čo najlepších výsledkov je potrebné minimalizovať variabilitu vstupov do neurónovej siete – obrázok v odtieňoch šedej obsahuje až 256 jasových úrovní pre každý pixel vstupujúci do neurónovej siete a navyše okolie skrutky vo výrezkoch pôsobí ako šum. Preto je snaha zdôrazniť iba dôležité informácie v získaných obrázkoch, a to zamerať sa na odrazené svetlo alebo kružnicu v prípade absencie skrutky. Do neurónovej siete teda vstupuje obraz, na ktorý sa ešte použije Cannyho detektor hrán (obr. 10). Takýto obraz obsahuje iba dve jasové úrovne (biela, čierna) a zjednodušuje použitie neurónovej siete.
 

3. Klasifikátor – umelá neurónová sieť

Na klasifikáciu prítomnosti samotnej skrutky bolo možné po spracovaní obrazu použiť viaceré techniky, napr. pattern matching, neurónové siete, deskriptory apod. Obmedzením použitia klasifikátora bolo predovšetkým časové hľadisko spomenuté v kapitole 2. Preto bola zvolená umelá neurónová sieť ako jednoduchý a rýchly klasifikátor. Ďalším dôvodom bolo veľké množstvo vzorov (obr. 12), ktoré sa na televízore v okolí skrutky môžu nachádzať. Učenie neurónovej siete zjednodušuje aj tento problém, aj keď je časovo náročné. Toto je však možné vykonať ešte pred samotným nasadením na skutočný výrobný systém, čím nie je nijak ovplyvnená samotná rýchlosť klasifikácie prítomnosti skrutky pri realizácii takéhoto systému. Navyše, z obr. 12 je zrejmé, že nie je možné použiť všeobecný deskriptor vo forme napr. detekcie kružníc (nízke rozlíšenie výrezu, neucelené tvary, výrazné prvky v okolí skrutky atď.).
 
Umelá neurónová sieť je abstraktný počítačový model ľudského mozgu. Základným prvkom každej umelej neurónovej siete je neurón. Do neurónu vstupuje daný počet vstupov prenásobený odpovedajúcimi váhami. Výstup z neuróna je stanovený pomocou aktivačnej funkcie. Samotné spojenie medzi neurónmi určuje architektúru neurónovej siete. Najčastejšie sa používa spätnoväzobná architektúra, ktorá bola použitá aj v tejto úlohe. Ide o viacvrstvovú architektúru s jednou vstupnou, jednou výstupnou a jednou alebo viacerými skrytými vrstvami neurónov. Pri takejto architektúre sú zvyčajne výstupy z neurónov vo vstupnej vrstve vstupom pre každý neurón v prvej skrytej vrstve atď. Všetky tieto spojenia sú váhované. Na začiatku sú váhy náhodne inicializované. Neurónová sieť sa na vybraný problém (napr. klasifikáciu) učí úpravou svojich váh. Pri trénovaní neurónovej siete je potrebné určiť k daným vstupom odpovedajúci výstup. Takémuto určeniu korektných vzťahov medzi vstupom a výstupom sa hovorí supervízorové učenie. Samotné trénovanie siete potom spočíva v úprave váh tak, aby k množine vstupných vektorov pripadali príslušné výstupné vektory. Trénovanie je ukončené buď po nastavenom počte epoch (cyklus učenia pre všetky vstupy) alebo po dosiahnutí vopred stanovenej chyby (rozdiel medzi výstupom neurónovej siete a očakávaným výstupom pre všetky vstupy). Počet neurónov v jednotlivých vrstvách a počet vrstiev nie je možné určiť deterministicky. Štruktúra siete sa líši v závislosti od špecifickej aplikácie. Avšak pre určenie počtu neurónov v skrytej vrstve existuje metóda pokus-omyl. V prvej aproximácii sa volí jedna skrytá vrstva s počtom neurónov, ktorý je rovný polovici neurónov v skrytej vrstve. Vstupom do neurónovej siete sú výrezky o rozmere 100 × 100 pixelov. Takýto rozmer pri daných geometrických parametroch (predovšetkým výška kamery nad snímanou oblasťou a rozlíšenie kamery) zaručuje, že sa záujmová oblasť, t. j. výrez so skrutkou, bude vždy nachádzať niekde v tejto oblasti napriek chybám v meraní pozície televízora. Keďže v tejto aplikácii sú vstupom výrezky rozmeru 100 × 100 pixelov, vstupná vrstva neurónovej siete obsahuje 10 000 neurónov. V prvej aproximácii bola teda testovaná sieť s jednou skrytou vrstvou s 5 000 neurónmi. Ak je zvolený príliš nízky počet neurónov v skrytej vrstve, výpočtový čas pre jednu epochu bude krátky, pretože sa nastavuje len malý počet váh. Avšak počet epoch môže byť veľmi vysoký, pretože štruktúra siete nie je pre stanovenú aplikáciu dosť pružná. Ak je zvolený príliš vysoký počet neurónov v skrytej vrstve, schopnosť naučiť sa zmapovať vstupy na výstupy je vysoká, avšak celá procedúra učenia môže byť výpočtovo veľmi náročná. Zvyšovaním počtu skrytých vrstiev sa zvyšuje schopnosť vysporiadať sa s rôznymi formami namapovania vstupov na výstupy. Avšak opäť stúpa výpočtová náročnosť trénovania takejto siete. V prípade takejto aplikácie vyšla optimálna štruktúra s dvoma skrytými vrstvami, pričom každá obsahovala pár stoviek neurónov. Ako výstupná vrstva boli zvolené dva výstupné neuróny. Pre učenie neurónovej siete znamenala hodnota 1 na prvom a hodnota 0 na druhom neuróne prítomnosť skrutky a hodnota 0 na prvom neuróne a hodnota 1 na druhom neuróne neprítomnosť skrutky.
 
Vo všeobecnosti sa súbor vstupov pred trénovaním siete rozdeľuje na dve množiny. Jedna množina je určená pre trénovanie siete a druhá množina je určená na verifikáciu trénovania, je to tzv. testovacia množina. Je zrejmé, že tieto množiny by nemali mať žiadny spoločný prienik. Pre konkrétnu aplikáciu detekcie skrutiek boli využité dve neurónové siete so spomenutou architektúrou a štruktúrou. Prvá z nich bola určená na detekciu prítomnosti skrutiek svetlejších častí televízora a druhá z nich bola určená pre tmavé časti. Pre trénovanie bola použitá množina výrezov skrutiek z 210 televízorov podobného typu, pričom svetlú časť tvorilo asi 400 vzoriek a tmavú časť asi 3 500 vzoriek. Priebeh trénovania, resp. chyby učenia, oboch neurónových sietí a odpovedajúci počet trénovacích epoch je vidieť na obr. 11.
 
Dobre natrénovaná neurónová sieť správne klasifikuje aj údaje, ktoré sú odlišné, avšak podobné tým, s ktorými bolo vykonané trénovanie. Inou výhodou neurónovej siete je, že je ju ľahké preniesť do iného riadiaceho systému a ako univerzálny klasifikátor daného problému použiť na ľubovoľnom inom mieste. Výhodami použitia umelej neurónovej siete je ľahká implementácia paralelizmu, schopnosť učiť sa, robustnosť, zovšeobecňovanie a nelineárnosť. Z týchto dôvodov bola zvolená ako univerzálny klasifikátor pre problém detekcie skrutiek práve umelá neurónová sieť. Treba však spomenúť aj nevýhody ako neschopnosť stanoviť všeobecné pravidlá analyzovaného problému (t. j. vytvoriť matematický model), časovo náročné učenie sa a škálovanie neurónovej siete. Preto je takýto klasifikátor vhodné použiť len v prípadoch, keď je dostatok času na nastavenie jeho štruktúry a jej následnú verifikáciu.
 

4. Experimenty

Výsledná aplikácia je implementovaná na počítači s procesorom Intel i5-3570 a s 8GB pamätí RAM. Na takomto počítači trvá spracovanie obrazu z kamier a verifikácia prítomnosti skrutky pomocou navrhnutých postupov asi 4 s. Trénovanie neurónovej siete na takomto výpočtovom výkone trvalo niekoľko hodín pre svetlú časť a niekoľko dní pre tmavú časť.
 
Na základe detegovaného čiarového kódu sú z databázy vybrané polohy jednotlivých skrutiek vzhľadom na rohy televízora – tzv. geometria televízora. Operátor vo výrobe môže do databázy nadefinovať ľubovoľné množstvo televízorov, ich geometriu a odpovedajúci čiarový kód. Následne sa detegujú polohy rohov vo všetkých kamerách. Podľa týchto polôh dochádza k transformácii súradníc skrutiek z databázy vzhľadom na aktuálne polohy rohov v jednotlivých snímkach. V týchto súradniciach sú vyrezané výrezy o rozmere 100 × 100 pixelov, ktoré vstupujú do modulu analýzy. Modul analýzy predspracuje výrezy podľa postupov opísaných v kapitole 2. Tieto predspracované výrezy potom vstupujú do modulu umelej neurónovej siete (kapitola 3), ktorej výstupom je definitívny verdikt, či skrutka je, alebo nie je prítomná. Verdikt je určený na základe hodnôt dvoch výstupných neurónov. Bol zvolený prah na úrovni 0,8 (odvodený od hodnôt pre učenie spomenutých v kapitole 3), rozhodovaciu logiku je možné vidieť v tab. 1.
 
Pre testovanie výstupu z neurónovej siete bolo náhodne vybraných po desiatich svetlých vzoriek prítomnej a neprítomnej skrutky a po štrnástich tmavých vzoriek prítomnej a neprítomnej skrutky. Tieto vzorky neboli súčasťou trénovacej množiny dát. Ako ukazujú výsledky, navrhnutý systém je spoľahlivý. Na obr. 12 je možné vidieť testované výrezy. Odpovedajúce výstupy možno vidieť v tab. 2. Z výsledkov je zrejmé, že sieť, ktorá mala viac vzoriek na trénovanie, je o niečo „presnejšia“. Avšak zo vzoriek je zrejmé, že jednoznačné rozdiely medzi vzorkami s prítomnou a vzorkami s neprítomnou skrutkou sú v dobre osvetlených oblastiach. Preto je potrebné pre takýto systém zabezpečiť dostatočné osvetlenie a dostatočné množstvo vzoriek na trénovanie (odhadom niekoľko tisíc).
 
Finálna aplikácia (obr. 13) neudáva výsledky v podobe čísiel. Pre operátora sa zobrazujú len aktuálne snímky z linky a farebne odlíšené stavy na jednotlivých polohách skrutiek. Červená znamená neprítomnosť skrutky, zelená znamená prítomnosť skrutky, modrá znamená neurčitosť informácie o prítomnosti skrutky a žltá znamená príliš malú veľkosť výrezu (nevstupuje do modulu neurónovej siete). Keďže obrazy z jednotlivých kamier sa v rozsahu asi 100 pixelov prekrývajú, je zaručené, že každá skrutka bude analyzovaná minimálne raz.
 

5. Záver

Z výstupov finálnej aplikácie je zrejmé, že v súčasnej dobe sú už k dispozícii také algoritmy spracovania obrazu a systémy strojového videnia, že je možné riešiť aj pomerne náročné úlohy vizuálnej inšpekcie malých objektov. Dôležitú úlohu však zohráva existencia štruktúrovaného prostredia, ktoré je kamerami snímané, a použitie pomerne silného rovnomerného osvetlenia snímaných objektov. Pri zaručení týchto podmienok je možné spoľahlivo vykonávať automatizovanú inšpekciu pomocou systémov strojového videnia, ako napr. s použitím procedúr a postupov navrhnutých v tomto článku.
 
Poďakovanie
Článok vznikol vďaka podpore Samsung Electronics Slovakia s. r. o.
 
Literatúra:
[1] GROOVER, M. P.: Automation, Production Systems, and Computer-Integrated Manufacturing. 3rd ed. Vyd. Pearson Prentice Hall, New Jersey, 2008. ISBN 0-13-239321-2.
[2] DRURY, C. G.: Inspection Performance, Handbook of Industrial Engineering. 2nd ed. Vyd. John Wiley&Sons, Inc., New York, 1992. s. 2282–2314.
[3] PÁSZTÓ, P. – HUBINSKÝ, P.: Application of a Visual System for Mobile Robot Navigation (OpenCV). AT&P Journal Plus, 2010, č. 1: Systémy automatického riadenia, s. 62–65.
[4] KONIAR, D. – HARGAŠ, L. – ŠTOFAN, S.: Segmentation of motion regions for biomechanical systems. Procedia Engineering, 2012, Vol. 48: Modelling of mechanical and mechatronic systems, MMaMS, s. 304–311.
[5] KONIAR, D. – HARGAŠ, L. – HRIANKA, M.: Image processing and analysis: a practical approach text book. Žilina, University of Žilina, 2008. ISBN 978-80-8070-962-4.
[6] KĽÚČIK, M. – JURIŠICA, L.: Visual Systems and Line Detection. Selected Topics in Modelling and Control, 2010, Vol. 6, s. 135–143. Bratislava, Slovak University of Technology in Bratislava. ISBN 978-80-227-3318-2.
[7] ZAHORANSKÝ, R. a kol.: Návrh metodiky a algoritmov pre digitálnu analýzu obrazu. Acta Mechanica Slovaca, 2008, roč. 12, č. 2-A, s. 747–756.
 
doc. Ing. František Duchoň, PhD.,
Ing. Peter Pásztó, PhD., Ing. Martin Dekan,
Ing. Michal Tölgyessy,
Ing. Martin Foltin, PhD.,
Ústav riadenia a priemyselnej informatiky,
Fakulta elektrotechniky a informatiky,
Slovenská technická univerzita v Bratislave
 
Lektoroval: Ing. Otto Havle, CSc., MBA,
FCC průmyslové systémy, s. r. o.
 
 
Obr. 1. Detekcia polohy televízora
Obr. 2. Televízor snímaný kamerou (nespracovaný obraz)
Obr. 3. Spracovanie obrazu televízora: shora obrázok televízora po operácii zmenšenia a následného zväčšenia; súčet pôvodného a upraveného obrazu; detekcia hrán v spracovanom obraze
Obr. 3. Spracovanie obrazu televízora: shora obrázok televízora po operácii zmenšenia a následného zväčšenia; súčet pôvodného a upraveného obrazu; detekcia hrán v spracovanom obraze
Obr. 4. Spracovanie obrazu televízora: shora súčet dilatovaného obrazu hrán s pôvodným obrazom; detegované čiary vykreslené do pôvodného farebného obrazu; operácia viacnásobnej dilatácie a následnej erózie
Obr. 5. Spracovanie obrazu televízora: shora prahovaním získaná oblasť televízora; aplikácia záplavového algoritmu; detekcia hrán Sobelovým algoritmom
Obr. 6. Detekcia hrán a rohu televízora
Obr. 7. Odraz svetla od povrchu skrutky (vľavo) a absencia odrazu svetla v obraze bez skrutky (vpravo)
Obr. 8. Slabý odraz svetla od povrchu skrutky (vľavo) vplyvom nerovnomernosti osvetlenia a odraz svetla od povrchu bez skrutky (vpravo)
Obr. 9. Zosilnenie odrazu svetla z povrchu skrutky (vľavo) a v obraze bez skrutky (vpravo)
Obr. 10. Príklad odrazu svetla od povrchu skrutky a obrazu bez skrutky po spracovaní Cannyho detektorom hrán
Obr. 11. Priebeh chyby neurónovej siete v závislosti od počtu epoch pre svetlé vzorky (nahore) a pre tmavé vzorky (dole)
Obr. 12. Vzorky: a) s neprítomnou skrutkou pre svetlé oblasti v obraze, b) s prítomnou skrutkou pre svetlé oblasti v obraze, c) s neprítomnou skrutkou pre tmavé oblasti v obraze, d) s prítomnou skrutkou pre tmavé oblasti v obraze
Obr. 13. Výstup z aplikácie pre operátora výroby
 
Tab. 1. Rozhodovacia logika výstupu neurónovej siete
Tab. 2. Výstup neurónovej siete pre vzorky z obr. 12