Mendelova univerzita v Brně Provozně ekonomická fakulta
Rozpoznání polohy předmětu pomocí strojového vidění Bakalářská práce
Vedoucí práce: Dr. Ing. Radovan Kukla
Petr Palko
Brno 2012
Chtěl bych tímto poděkovat mému učiteli a vedoucímu mé práce panu Dr. Ing. Radovanu Kuklovi za poskytnutí cenných rad, jak při výběru práce, tak i laskavému a odbornému vedení při tvorbě této práce.
Prohlašuji, že jsem tuto práci vypracovával samostatně s užitím literatury, která je vypsána v seznamu. 20. května 2012 _________________
Abstract Palko, P. Recognition of object position using machine vision. Bachelor thesis. Brno: Mendelu university in Brno, 2011. The work introduces the basic principles of machine vision. In the work describes the basic hardware elements needed to implement the application of image processing camera input using Control Web development environment and VisionLab library. Keywords: Machine vision camera sensor, industrial lighting, Control Web, VisionLab
Abstrakt Palko, P. Rozpoznání polohy předmětu pomocí strojového vidění. Bakalářská práce. Brno: Mendelova univerzita v Brně, 2011. Práce seznamuje se základními principy strojového vidění. V práci jsou popsány základní hardwarové prvky nutné k realizaci aplikace zpracovávající kamerový obraz na vstupu s využitím vývojového prostředí Control Web a jeho knihovny VisionLab. Klíčová slova: Strojové vidění, kamerový senzor, průmyslové osvětlovače, Control Web, VisionLab
Obsah
5
Obsah 1 Úvod
9
2 Cíl práce
10
3 Teorie strojového vidění
11
3.1 Úvod .................................................................................................................................................. 11 3.2 Digitální obrazy ........................................................................................................................... 11 3.3 Reprezentace obrazu a analýza obrazových dat ........................................................... 12 3.4 Digitální obraz a jeho pořízení ............................................................................................. 13 3.5 Čipy CCD ........................................................................................................................................ 14 3.6 Analýza obrazu ............................................................................................................................ 15 3.7 Přístrojové vybavení .................................................................................................................. 15 3.7.1 Kamery 15 3.7.2 Osvětlovače 18 3.7.3 Konstrukce 25 3.8 Závěr kapitoly .............................................................................................................................. 25 4 Postupy užité v praxi
26
4.1 Nalezení povrchových vad ...................................................................................................... 26 4.2 Rozpoznání, nalezení polohy a počítání........................................................................... 26 4.3 Měření a kontrola tolerancí ................................................................................................... 27 4.4 Identifikace barev....................................................................................................................... 28 4.5 Čtení kódů a textů ...................................................................................................................... 28 4.6 Závěr kapitoly............................................................................................................................... 29 5 Metodika
30
5.1 Control Web................................................................................................................................... 30 5.1.1 Aplikace řízené daty 30 5.1.2 Aplikace reálného času 30 5.1.3 Runtime aplikace 31 5.1.4 Rozhraní Control Webu 31 5.2 Modul VisionLab ........................................................................................................................ 34 5.3 Závěr kapitoly ............................................................................................................................... 35 6 Vlastní práce na tvorbě aplikace
36
6.1 Control Web – úvodní nastavení ........................................................................................ 36 6.2 VisionLab – nastavení kroků ................................................................................................ 37 6.3 Nastavení globálních proměnných ..................................................................................... 39
6
Obsah 6.4 Zobrazení výsledků. ................................................................................................................... 41
7 Závěr
44
7.1 Shrnuti .............................................................................................................................................. 44 7.2 Zhodnocení .................................................................................................................................... 44 7.3 Možné vylepšení .......................................................................................................................... 45 8 Literatura
46
9 WWW
47
Přílohy
48
A ................................................................................................................................................................. 48 B.................................................................................................................................................................. 49 C.................................................................................................................................................................. 50
Seznam obrázků
7
Seznam obrázků Obr. 1 Souřadnice obrazových bodů v matici ..........................................................................11 Obr. 2 Schéma CCD čipu. (J. Šerých, 2012) ........................................................................... 14 Obr. 3 Schéma systému strojového vidění (Ing. Havle, 2012)............................................. 16 Obr. 4 Vnitřek inteligentní kamery (www: linux for device, 2012) ..................................... 17 Obr. 5 Plošná osvětlovací pole – a) osvětlovač, b) schéma osvětlovače, c) příklad zobrazení (www: Microscan, 2012) ......................................................................................... 19 Obr. 6 Kruhový osvětlovač – a) osvětlovač, b) schéma osvětlovače, c) příklad zobrazení (www: Microscan, 2012) .......................................................................................................... 20 Obr. 7 Kopulový osvětlovač – a) osvětlovač, b) schéma osvětlovače, c) příklad zobrazení (www: Microscan, 2012) ........................................................................................................... 21 Obr. 8 Osvětlovač DOAL – a) osvětlovač, b) schéma osvětlovače, c) příklad zobrazení (www: Microscan, 2012) ...........................................................................................................22 Obr. 9 Osvětlovač dark-field – a) osvětlovač, b) schéma osvětlovače, c) příklad zobrazení (www: Microscan, 2012) ...........................................................................................................23 Obr. 10 Osvětlovač Backlight – a) osvětlovač, b) schéma osvětlovače, c) příklad zobrazení (www: Microscan, 2012) .......................................................................................24 Obr. 11 a) Příklad úlohy nalezení povrchové vady: housenka těsnicího tmelu, b) příklad úlohy rozpoznání: špatně zalisovaný vodič v konektoru (Ing. Havle, 2012) .....................26 Obr. 12 Příklad úlohy počítání: kontrola naplnění blistru s léky (Ing. Havle, 2012) ....... 27 Obr. 13 Příklad úlohy kontroly tolerancí: měření závitu a kužele na kulovém čepu (Ing. Havle, 2012) ................................................................................................................................ 27 Obr. 14 Příklad úlohy čtení textu: kontrola data výroby nebo expirace (Ing. Havle, 2012) ......................................................................................................................................................28
Obr. 15 Ukázka přepínací lišty s panely .................................................................................. 31 Obr. 16 Ukázka Textového editoru ..........................................................................................32 Obr. 17 Ukázka Datových inspektorů ......................................................................................33 Obr. 18 Ukázka grafického editoru s panelem přístrojů .......................................................34 Obr. 19 Ukázka seznamu použitých kroků s panelem kroků ...............................................35 Obr. 20 Úvodní okno průvodce vytvoření nové aplikace v programu Control Web.........36 Obr. 21 Ukázka možných nastavení aplikace ......................................................................... 37 Obr. 22 Ukázka umístění spouštěče editoru knihovny VisionLab v programu Control Web .............................................................................................................................................. 37 Obr. 23 Ukázka umístění kroku pro klasifikaci částic v paletě kroků.................................38 Obr. 24 Paleta vzorů ..................................................................................................................38 Obr. 25 Přehled vstupních a výstupních parametrů kroku ..................................................39 Obr. 26 Řetězec zpracování obrazu. Výřez viz příloha C ..................................................... 40 Obr. 27 Ukázka výstupních přístrojů typu meter .................................................................. 41 Obr. 28 Ukázka vstupních přístrojů typu tlačítko (button) .................................................42 Obr. 29 Ukázka lokalizovaného předmětu .............................................................................43
8
Seznam zkratek
Seznam zkratek CMOS (Complementary Metal–Oxide–Semiconductor, doplňující se kov-oxidpolovodič) je technologie používána na převážnou většinu integrovaných obvodů. Používá se na výrobu čipů včetně mikroprocesorů, jednočipových počítačů. CCD je elektronická součástka používaná pro snímání obrazové informace. LED (Light-Emitting Diode - dioda emitující světlo) je elektronická polovodičová součástka obsahující přechod P-N.
1 Úvod
9
1 Úvod Dnešní moderní doba přinesla celou řadu vynálezů a technických řešení, které nám usnadňují každodenní život, nebo jsou tyto implementovány jako nepostradatelné části technologických systémů a výrobních celků. Jednou velice důležitou oblastí, bez které by nebylo možné ostatní technologie vůbec používat, nebo jen velice obtížně, je strojové vidění. Potřeba strojového vidění v rámci zdokonalování stávajících technických řešení narůstá a nabývá stále většího významu. Umožňuje nám jednoduše sdělit co vidíme, i když to není z obrazu patrné, a mnohdy vidí více, než lidské oko nejdůležitější lidský smyslový orgán. Usnadňuje práci v oblasti kontroly, identifikaci předmětů a osob, poskytuje „oči“ autonomním systémům, které samy rozhodují nad svěřenou prací. Dnešní strategie managementu se zaměřují na dodávku zboží koncovému zákazníkovi, které přesně a hlavně ve vysoké kvalitě uspokojují jeho potřeby. Zvýšená potřeba neustále kontrolovat kvalitu a požadované množství výrobků, podnítila specializovaný výzkum v oblasti strojového vidění - specializované větvi počítačového vidění v průmyslu. Díky spolupráci ústavu informatiky a ústavu zemědělské, potravinářské a environmentální techniky byla vytvořena laboratoř inteligentních systémů. To mi umožnilo využívat vysoce specializované technické vybavení, které mi usnadnilo tvorbu práce. Jako komponenty pro tvorbu práce jsem využil produkty firmy Moravské přístroje a. s., kde jsem se zaměřil na propojení kamerového vstupu s vývojovým prostředím Control Web pomocí knihovny VisionLab. Tuto funkčnost demonstruje ukázková aplikace, vytvořená v tomto prostředí.Jako zdroj informací pro tuto práci byla použita literatura Contol Web 2000 od Radka Bílého, Zpracování signálů a obrazů od Václava Hlaváče a Miloše Sedláčka a Počítačové vidění od Václava Hlaváče a Milana Šonka. Vzhledem k velkému stáří těchto zdrojů jsem ještě využil novějších a aktuálnějších odborných článků výše uvedených autorů z odborných časopisů a tématických seriálů na webových stránkách věnující se problematice strojového vidění. Tato práce je rozčleněna na části věnující se teoretickým principům strojového vidění, dále pak vývojovému prostředí Control Web a knihovny Vision Lab a jako poslednímu se věnuji samotnému vytváření aplikace. V první části této práce je teoretický úvod do problematiky strojového vidění, s popisem zásadních částí hardwaru, bez kterých se aplikace zpracovávající strojové vidění neobejde. V části věnující se vývojovému prostředí jsou popsány jednotlivé způsoby přistupování k datům a jejich zpracování. V poslední části zabývající se tvorbou aplikace jsou popsány postupy nastavení vybraných funkcí pracujících s kamerovým vstupem. Pro urychlení a zpřehlednění zpracovávaných dat byl místo kamerového vstupu pro potřeby aplikace vložen referenční snímek.
10
2 Cíl práce
2 Cíl práce Cílem této práce je na prvním místě analýza principů strojového vidění a vývojového prostředí Control Web s knihovnou VisionLab, jako hlavními nástroji pro vytváření aplikací. Hlavní cíl je vytvoření aplikace, která byla vytvořena pomocí těchto nástrojů, jakým způsobem probíhá získávání potřebných dat pro strojové vidění, jejich následné zpracování a vlastní prezentace.
3 Teorie strojového vidění
11
3 Teorie strojového vidění 3.1 Úvod Základem pro strojové vidění je optický snímač. Nejčastěji používaným optickým snímačem je kamera. Je to proto, že kamera je již sama o sobě natolik univerzálním senzorem, která je schopna předávat informace v tak vysoké kvalitě, že je možné díky tomu automatizovat procesy, které před tím museli složitě zastávat lidé. Nehledě na to, že systémy strojového vidění vykonávají svou činnost bez chyb. Pro úspěšné nasazení strojového vidění je vedle nutnosti používat jak kvalitní kamery, tak programové vybavení, ale zejména pak i velice zkušeného aplikátora, který dá vše do souladu, aby byl zaručen optimální a kvalitní výsledek strojového vidění. (R. Bílý, 2000)
3.2 Digitální obrazy K prezentaci reálných obrazů v počítačích jsou tyto zpracovány do dvourozměrných matic, které jsou obecně nazývané obrazy nebo snímky. Tyto matice se skládají z obrazových bodů, tzv, pixelů (z anglického picture element). Souřadnicový systém i hodnosty pixelů jsou obvykle uváděny v celých číslech. (R. Bílý, 2000)
Obr. 1 Souřadnice obrazových bodů v matici
12
3 Teorie strojového vidění
Kvalita digitálního obrazu je deklarovaná třemi základními vlastnostmi: •
plošné rozlišení
•
jasové (radiometrické) rozlišení
• časové rozlišení Plošné rozlišení definuje vzdálenost pixelů, které se zvětšuje při vzrůstajícím počtu řádků a sloupců obrazové matice. Jasové rozlišení představuje počet kvantizačních stupňů jasu. Černá má u monochromatického obrazu nulovou hodnotu jasu a bílá zase nejvyšší možnou hodnotu. Časové rozlišení určuje časové intervaly mezi jednotlivými snímky. (R. Bílý, 2000)
3.3 Reprezentace obrazu a analýza obrazových dat Strojové vidění ve svých aplikacích při zpracování obrazu již nevystačí s pouhou teorií signálů, kdy se obraz definuje jako funkce se dvěmi proměnnými, které pak určují polohu pixelů v dvojrozměrné matici, ale ubírá se mnohem složitější cestou. Nově je obor strojového vidění z tohoto hlediska více začleněn do kategorie umělé inteligence, která se za pomocí programového vybavení snaží napodobit schopnosti lidského vnímání při vlastní obrazové analýze. Proces zpracování obrazových dat ztěžuje samotný a ve své podstatě velmi objemný tok dat, který je strukturálně značně komplikovaný a zároveň obtížně určitelný. V nemalé míře k tomuto náročnému procesu zpracování přispívají i nedokonalé principy použitých algoritmů . (R. Bílý, 2000) Hlavními problémy ztěžující strojové vidění jsou: •
ztráta hloubky v 2D obrazu
•
realizace 3D předmětu pomocí jasové matice
•
kvalita snímačů kamer
•
velké množství dat v obraze
Po převodu trojrozměrné scény do dvojrozměrného obrazu již nelze rekonstruovat původní trojrozměrné předměty ve scéně. Trojrozměrný předmět prezentovaný v 2D obrazu pomocí intenzity jasu jednotlivých pixelů i při použití osvětlovacích rovnic BRDF (Bidirectional Reflectance Distribution Functions) je jen částečným přiblížením skutečné reality. I nejdokonalejší kamerové snímače budou mít vždy nějakou míru elektrického rušení s následným projevem šumu v obrazu. Výsledný obraz bude ovlivňovat i kvalita použité optiky, existence
3 Teorie strojového vidění
13
kompresních fragmentů, vlastní interpolace barev, linearita a saturace. Pro co nejrychlejší proces zpracování nesmí být data příliš objemná, protože v opačném případě se více zatěžuje procesor, a paměť s následným vyčerpáním všech systémových prostředků. Díky tomuto požadavku pak většina algoritmů analyzuje obraz jen na malé části obrazu, a tím se snižuje a někdy se dokonce ztrácí celkové porozumění obrazu. (R. Bílý, 2000) Analýzy strojového vidění by se daly rozdělit do čtyř samostatných skupin po sobě jdoucích funkcí: •
filtrace obrazových dat (tj. úprava obrazové funkce)
•
zjištění charakteristických částí hledaných předmětů, např. hrany, barvy
•
detekování celých předmětů
• nalezení vazeb mezi předměty (R. Bílý, 2000)
3.4 Digitální obraz a jeho pořízení Polovodičový snímací prvek, který nahradil vidikonové trubice ve snímacích zařízeních způsobil revoluci v segmentu aplikací zaznamenávající obraz. Oproti vidikonové trubici solid-state detektor (polovodičový snímač technologie CCD nebo CMOS) je pro aplikace zpracování obrazu velkým přínosem. Nedocenitelnou výhodou je, že pořízený obraz je možné okamžitě zpracovávat pomocí počítače. Bez této možnosti by aplikace strojového vidění byly jinak nerealizovatelné. Obrazové snímače technologie CMOS mají podobné charakteristiky jako obrazové snímače CCD s tím rozdílem, že obrazové snímače CMOS mají vyšší šum a nižší citlivost (kvantová účinnost), z toho pak plyne horší poměr signál/šum v celém obraze. Na druhou stranu CMOS umožňuje integrovat na čip další podpůrné obvody, např. A/D převodníky, díky čemuž jsou CMOS snímače méně náročné a nepotřebují aplikovat další integrované obvody. Kamery s těmito detektory díky tomu mohou dosahovat větších snímaných frekvencí a zároveň jejich pořizovací cena je nižší než u CCD snímačů. V případě požadavku na nejvyšší dosažitelnou kvalitu snímaného obrazu je pak snímač CCD vhodnější alternativou i přes vyšší složitost celého snímacího systému. (R. Bílý, 2000)
14
3 Teorie strojového vidění
3.5 Čipy CCD Zařízení CCD (Charge Coupled Device) v překladu nábojově vázané prvky, původně vznikly jako experimentální počítačové paměti. Po objevu další vlastnosti, kterou je vynikající schopnost převádět světlo na elektrický signál, se z tohoto paměťového prvku rázem stal nejvíce využívaný detektor světla. CCD snímač pracuje tak, že přicházející světlo vytvoří v polovodičích elektrický náboj (elektrony). Díky svislým negativním potenciálovým valům se elektrony nemohou volně pohybovat (valy odpuzují elektrony). Aby elektrony dále neputovaly, jsou pomocí vodorovných vodivých elektrod, taktéž s negativním nábojem, uvězněny v tzv. „potenciálových studních“. Každá potenciálová studna představuje jeden pixel. Základní specifikace CCD čipu je počet pixelů ve vertikálním a horizontálním směru a velikost samotného pixelu. Pixely, které byly vystaveny většímu množství světla, nashromáždí více náboje. Na rozdíl od lidského zraku jsou CCD čipy schopné shromažďovat elektrony postupně a vytvořit tak obraz v průběhu doby i z minimálního zdroje světla. (R. Bílý, 2000)
Obr. 2 Schéma CCD čipu. (J. Šerých, 2007)
3 Teorie strojového vidění
15
3.6 Analýza obrazu Analýzou obrazu je míněno zjištění globálních vlastností obrazu, jež nám poskytla kamera a který je na vstupu řetězce kroků systému strojového vidění. Budeme se tedy zajímat o statistické metody hodnocení jasů množin pixelů. Statistické prostředky nám mohou pomoci k poznání vlastnosti obrazu a tím umožnit smysluplné rozhodnutí, které další nástroje ke zpracování se použijí. Odborník je schopen hodně rozpoznat i pouhým okem, bez objektivního měření se ale obejít nelze. Mezi základní nástroje analýzy obrazu patří např. histogram, monitor šumu, jasový profil linky a filtrace barev. (R. Bílý, 2000)
3.7 Přístrojové vybavení Aby bylo možné provádět analýzu obrazu je pro tuto činnost vedle inteligentní kamery také potřeba osvětlovací zařízení k dokonalému nasvícení objektů, které se podrobují rozboru v jinak temném prostředí výrobní linky. Aby jednotlivá zařízení mohla spolehlivě pracovat, tak musí být upevněna na odpovídající konstrukci. 3.7.1 Kamery Inteligentní kamera (smart kamera) je kompletním systémem strojového vidění. Prostřednictvím smart kamery, kterou můžeme nazvat jako kameru inteligentní, lze realizovat strojové vidění (machine vision), což je počítačové vidění využívané v průmyslové automatizaci, a je považováno za podsystém obecnějšího oboru, jež pracuje na základě informací získaných ze zpracování obrazu z kamery (computer vision). Pro strojové vidění, které využívá počítačového vidění v průmyslové automatizaci, je typická výměna informací systému s okolím a funguje jako zpětná vazba řízení výrobního procesu např. na vizuální inspekci, počítání objektů, hledání defektů. Pro plnění těchto úkolů je vybaven systém strojového vidění vstupy, výstupy a komunikačními prostředky. Charakteristické znázornění strojového vidění ukazuje obr.3. (Ing. Havle, 2008)
16
3 Teorie strojového vidění
Obr. 3 Schéma systému strojového vidění (Ing. Havle, 2008)
Za začátek historie smart kamery můžeme považovat devadesátá léta minulého století. Tehdy systém strojového vidění používal běžné technické senzory, např. optické, které se jevily příliš komplikované a drahé. Rozšíření strojového vidění v průmyslové výrobě se datuje na první desetiletí tohoto století. Vznik smart kamery v této době umožnil spojení nových prvků, a to polovodičového snímače obrazu a mikroprocesoru. (Ing. Havle, 2008)
3 Teorie strojového vidění
17
Obr. 4 Vnitřek inteligentní kamery (www: linux for device, 2009)
Kamera by měla vždy obsahovat: •
snímač obrazu
•
IO rozhranní
•
optický systém
•
korpus
V každé kameře musí být snímač obrazu převádějící scénu do dvojrozměrných snímků. Dále nesmí chybět ovládací prvky, které řídí funkce snímače, a obvody rozhraní, které umožní komunikovat s dalšími zařízeními. Pro lepší zaostření slouží optická soustava, která promítne trojrozměrnou scénu na obrazový snímač. Všechny tyto komponenty by pak měly být vloženy do pouzdra chránící křehké součástky před poškozením. (Ing. Havle, 2008)
18
3 Teorie strojového vidění
3.7.2 Osvětlovače O úspěšnosti řešení úkolů, které požadujeme po systému strojového vidění, do značné míry rozhoduje volba správného osvětlení. Cílem správného osvětlení ve strojovém vidění je, aby došlo k nejvyššímu možnému kontrastu objektů, které jsou středem našeho zájmu a zároveň upozadění těch částí, které nejsou předmětem procesu snímání. Je proto nutné minimalizovat vliv změn v okolí na objekt jasovým obrazem na snímači obrazu tak, aby inspekční program vykazoval opakovatelné výsledky. (R. Bílý, 2000) Ve strojovém vidění se analýza snímaného objektu soustřeďuje hlavně na tyto vlastnosti: •
absorpce světla
•
odrazivost světla
•
struktura povrchu
•
členitost povrchu
•
tvar a velikost
•
průsvitnost
•
průhlednost
•
pozadí za objektem
•
pohyb
Míra absorpce a odrazivost dopadajícího světla v hledaném prostoru do značné míry určuje výsledný kontrast a lesk. Někdy je nutné zvýraznit nebo potlačit strukturu objektu. Podle členitosti objektu (výstupky, otvory, prohlubně) se zvolí odpovídající způsob osvětlení, který tyto buď v kontrastu potlačí nebo zvýrazní. Na základě tvaru a velikosti objektu se určí velikost a vzdálenost osvětlovače. Průsvitnost a průhlednost je někdy možné využít a někdy se musí potlačit (např. kontrola vlákna u žárovky). Pozadí za objektem může být kontrastní a někdy splývající. Snímaný objekt může být v pohybu nebo na jiném místě než má být. (R. Bílý, 2000)
3 Teorie strojového vidění
19
Plošná osvětlovací pole Plošná osvětlovací pole vyzařuje směrované světlo. Rozptylovací charakteristiky jsou dány LED diodami se zvoleným vyzařovacím úhlem. Dají se nasadit jako nejjednodušší osvětlovače pro osvětlení s rozptýleným světlem a s jasným obrazovým polem. Využívají se často také jako směrové osvětlovače pro osvětlení s temným zorným polem. Menší osvětlovací pole se používají ve složitějších osvětlovacích soustavách nebo jako pomocná světla. (Ing. Havle, 2008)
Obr. 5 Plošná osvětlovací pole – a) osvětlovač, b) schéma osvětlovače, c) příklad zobrazení (www: Microscan, 2012)
20
3 Teorie strojového vidění
Kruhové osvětlovače Kruhový osvětlovač je určený k tomu, aby dodával více rozptýleného světla směřujícího od objektivu kamery. Je určený pro osvětlení objektu pomocí rozptýleného světla s dosažením jasného obrazového pole. Jeho vlastnosti nejsou zcela ideální, především díky konfiguraci jednotlivých LED diod většinou upořádaných kolem objektivu kamery. (Ing. Havle, 2008)
Obr. 6 Kruhový osvětlovač – a) osvětlovač, b) schéma osvětlovače, c) příklad zobrazení (www: Microscan, 2012)
3 Teorie strojového vidění
21
Kopulové osvětlovače Kopulové osvětlovače se používají pro osvětlení s jasným obrazovým polem, podobně jako je tomu u kruhových osvětlovačů. Vzhledem ke konstrukci však oproti kruhovým osvětlovačům poskytují o mnoho kvalitnější rozptýlené světlo. Slučováním světelných paprsků na vnitřní kónické ploše se vytvoří tzv. bezestinné (shadowless) světlo. Nejtypičtějším způsobem využití tohoto typu osvětlení je čtení textu na členitém povrchu, např. zmačkaný papír nebo fólie. (Ing. Havle, 2008)
Obr. 7 Kopulový osvětlovač – a) osvětlovač, b) schéma osvětlovače, c) příklad zobrazení (www: Microscan, 2012)
22
3 Teorie strojového vidění
Osvětlovače DOAL Osvětlovač DOAL (Diffused ON Axis Lighting) rovněž poskytuje osvětlení se specificky rozptýleným světlem a jasným polem. V této konstrukci je využíván difuzor s polopropustným zrcadlem, které rozptyluje světlo rovnoměrně. Světlo pak dopadá kolmo na objekt i v ose objektivu kamery. Využití omezuje nákladnější pořízení osvětlení a úhel zorného pole kamery. (Ing. Havle, 2008)
Obr. 8 Osvětlovač DOAL – a) osvětlovač, b) schéma osvětlovače, c) příklad zobrazení (www: Microscan, 2012)
3 Teorie strojového vidění
23
Osvětlovače dark-field Osvětlovač dark-field vytváří přední osvětlení, které má temné zorné pole. Světlo je orientované v rovině kolmo s osou objektivu. Osvětlovač dark-field se využívá hlavně pro zvýraznění gravírovaných nebo laserem vypálených značek nebo nápisů. Osvětlovač se ve většině případů skládá z LED diod s úzkým úhlem vyzařování, které jsou uspořádány do kruhu, přičemž svítí v jedné ose do středového bodu. (Ing. Havle, 2008)
Obr. 9 Osvětlovač dark-field – a) osvětlovač, b) schéma osvětlovače, c) příklad zobrazení (www: Microscan, 2012)
24
3 Teorie strojového vidění
Osvětlovače backlight Zadní rozptýlené světlo neboli backlight je nejpoužívanějším typem zadního osvětlení. Využívá se zejména k zobrazení obrysu měřené součásti. Dále jeho využití je v rozpoznání nebo nalezení polohy součásti v průhledném pouzdru např. při kontrole vlákna v žárovce. Osvětlovač backlight je konstruován jako pole LED diod s předřazeným velkoplošným rozptylovačem (difuzorem). Volba osvětlovače je podmíněna tím, že při měření obrysu se předpokládá homogenní zadní světlo. (Ing. Havle, 2008)
Obr. 10 Osvětlovač Backlight – a) osvětlovač, b) schéma osvětlovače, c) příklad zobrazení (www: Microscan, 2012)
3 Teorie strojového vidění
25
3.7.3 Konstrukce Dříve než se patřičné části uvedou do chodu v rámci výrobního zařízení, např. na pohyblivém pásu, pomocí kterého se zkoumané díly posouvají dál do výroby, je nutné provést prvotní kalibraci snímacího zařízení a tuto pak otestovat pomocí testovací konstrukce. Ta obsahuje speciální kolejnice a úchyty pro snadné nastavení objektu s kamerou a instalaci požadovaného druhu osvětlení.
3.8 Závěr kapitoly V této kapitole bylo mým záměrem představit základní principy strojového vidění. Ukázal jsem zároveň principy, na základě kterých pracují použité komponenty ve spolupráci s technologií CCD snímačů, jako nutné součásti inteligentních kamer. Je možné se již zorientovat v široké škále osvětlovačů, které napomáhají upravit scénu pro snímání inteligentní kamerou tak, aby nutná analýza prováděná v aplikaci byla co nejpřímější a nezatěžovala tak cenný výpočetní výkon.
26
4 Postupy užité v praxi
4 Postupy užité v praxi 4.1 Nalezení povrchových vad Cílem této úlohy je shromaždování materiálu, který provází vstupní kontrolu. Přesně se tak odhalí poškozený povrch objektu, špatné nátěry nebo vady povrchových úprav, neúplných potisků apod. V případě, že nátěr je sám o sobě výrobní operací, se tato úloha uplatní i ve fázi vyzvednutí hotového produktu. Obr. 11 naznačuje špatně nanesené housenky těsnicího tmelu. (Ing. Havle, 2008)
Obr. 11 a) Příklad úlohy nalezení povrchové vady: housenka těsnicího tmelu, b) příklad úlohy rozpoznání: špatně zalisovaný vodič v konektoru (Ing. Havle, 2008)
4.2 Rozpoznání, nalezení polohy a počítání Tato úloha může být uplatněna v několika variantách. Nejčastější formou z řady možností je ta, která zjišťuje, správné uložení objektu na místě, kde by se měl nacházet. Například před zalisováním konektoru je potřeba provést kontrolu, zda jsou všechny části připraveny k zalisování ve správné poloze. Po ukončení operace se tento úkon opakuje. Další variantou úlohy je její použití při vstupní kontrole. Např. při identifikaci deformované části, napáraných nití po stříhání, nevyvrtaného otvoru nebo poškozené hrany. (Ing. Havle, 2008)
4 Postupy užité v praxi
27
Obr. 12 Příklad úlohy počítání: kontrola naplnění blistru s léky (Ing. Havle, 2008)
4.3 Měření a kontrola tolerancí Úloha měření je významnou operací, která se dotýká celého výrobního procesu. Měřením se zjišťuje např. tolerance vstupních prvků, poloha součástí před operací, ale i tolerance hotového výrobku. (Ing. Havle, 2008)
Obr. 13 Příklad úlohy kontroly tolerancí: měření závitu a kužele na kulovém čepu (Ing. Havle, 2008)
28
4 Postupy užité v praxi
4.4 Identifikace barev Barvy se rozpoznávají jak při vstupní, tak i při výstupní kontrole. Zejména v potravinářském průmyslu je barva jako identifikátor druhu použitého materiálu a může odhalit sníženou kvalitu suroviny, která vstupuje do operace. (Ing. Havle, 2008)
4.5 Čtení kódů a textů Kódy (čárové nebo maticové) se snímají v počátcích výrobní operace, a tím se zjišťuje, zda do výroby míří správný díl. V průběhu výrobního procesu, je-li to nutné, se může vytvořit další kód, který se ověřuje v závěru výrobního procesu. Čtení nebo ověřování kódů nebývá samostatnou úlohou strojového vidění. V případě nutnosti se v tomto případě používají specializované čtečky. (Ing. Havle, 2008)
Obr. 14 Příklad úlohy čtení textu: kontrola data výroby nebo expirace (Ing. Havle, 2008)
Čtení textů je taktéž typické pro první a poslední fázi výrobního procesu operace. V první fázi čtení se tato využívá pro identifikaci dílů, v poslední fázi se kontrolují vytvořené identifikačních znaky, např. potisky s typem a datem expirace výrobku. (Ing. Havle, 2008)
4 Postupy užité v praxi
29
4.6 Závěr kapitoly V této kapitole byly nastíněny problémy, které jsou řešené v praxi. S využitím prostředků dodané Provozně ekonomickou fakultou Univerzity Mendlovy v Brně by bylo možné nasimulovat vybraný problém z praxe. Vytvořená aplikace by měla pracovat s kamerovým vstupem a vracet informace o hledaných obrázcích. Na základě zvolených vzorových obrazců by měl program pomocí knihovny VisionLab vrátit jako výstup hledaný obrazec, resp. hledané obrazce. Z výstupu by měly být patrné informace o jeho typu a poloze.
30
5 Metodika
5 Metodika Aplikace bude vytvořena ve vývojovém prostředí programu Control Web, obrazový vstup bude zpracovávat jeho knihovna VisionLab.
5.1 Control Web Vývojové prostředí Control Web bylo vyvinuto pro tvorbu aplikací, které jsou schopné zaznamenávat data, která jsou výstupem specializovaných přístrojů. Tyto data jsou pak zpracována do podoby, jež umožňuje jejich prezentaci. Control Web v sobě zahrnuje knihovnu se sadou Přístrojů, kam byly vloženy předpřipravené postupy, jež umožňují vytvořit dva druhy aplikací. Jde o aplikace řízené daty a aplikace pracující v reálném čase. 5.1.1 Aplikace řízené daty Aplikace řízené daty pracují v cyklech. Jakmile dojde ke změně dat, zaktivují se jednotlivé přístroje, které tyto data zpracují a jejich výstupy se předají dalším přístrojům. Nejčastější využití datově řízených aplikací: •
• archivace dat z hardwarových přístrojů bez nutnosti je časově třídit
•
• grafické znázornění souboru dat
•
• přístup a práce s databázemi
•
• vizualizace dějů s pomalou odezvou
5.1.2 Aplikace reálného času Aplikace, které pracují v reálném čase by měly být lépe navrženy a vyladěny pro daný hardware, než aplikace, jež jsou řízené daty. Vzhledem k tomu, že je potřeba neustále sledovat časové prodlevy mezi fázemi, které provádějí přístroje, je proto běžící vlákno aplikace nadřazeno nad ostatními procesy v systému. Nejčastější využití aplikací reálného času. •
• měření veličin
•
• regulace veličiny
•
• řízení agregátů
5 Metodika
31
5.1.3 Runtime aplikace Pro vytvoření aplikace v runtime verzi je nutné tuto aplikaci vytvořit ve vývojovém prostředí a poté ji uložit v netextovém formátu cwx. V runtime aplikaci již nelze provádět žádné modifikace, protože je zkompilována do binárního kódu. (R. Bílý, 2000) Přestože lze nasadit do provozu i aplikaci ve vývojové verzi, má runtime verze tu výhodu, že neobsahuje nutné doplňky pro možnost dodatečné editace a je tím proto rychlejší. Zároveň další výhoda použití výhradně runtime verze spočívá v úspoře paměťového prostoru, která může být u některých typů aplikací již velice významná a nezanedbatelná. (R. Bílý, 2000) Runtime verze neobsahuje žádnou standardní a vynucenou vizuální podobu. Výslednou podobu aplikace je možné libovolně utvářet a záleží jen na autorovi aplikace, jak tuto záležitost uchopí a zpracuje. Aplikace jinak může obsahovat soubor oken nebo například jen shluk přístrojů na ploše. (R. Bílý, 2000) Runtime verze lze vytvořit ve dvou verzích: •
standardní verze
• síťová verze Standardní runtime verzi je možné provozovat na jednom počítači, přičemž je tato doplněna i o možnost připojení do sítě a sdílet data pomocí síťového ovladače. V této verzi jsou také k dispozici všechny virtuální přístroje, jako například WWW server httpd nebo přístroje pro přístup k SQL databázím. Síťová runtime verze pro síťové aplikace navíc dokáže využít synchronizované a vzdálené datové sekce. Aplikace vytvořené touto verzí dokáží komunikovat jako distribuované peer to peer nebo klient – server aplikace. (R. Bílý, 2000) 5.1.4 Rozhraní Control Webu Rozhraní vývojového prostředí Control Web se skládá ze tří částí: •
• Textového editoru,
•
• Datového inspektoru,
•
• Grafického editoru.
Obr. 15 Ukázka přepínací lišty s panely
32
5 Metodika
Textový editor V textovém editoru se nachází úplný zdrojový kód aplikace a jsou zde zaznamenány i procedurální části přídavných knihoven a přístrojů.
Obr. 16 Ukázka Textového editoru
Datové inspektory Celá správa aplikace je obsahem datových inspektorů. V položce datové elementy jsou spravovány globální proměnné pro ukládání dat, které byly dodány z přístrojů jako vstup, a datové toky, které zajistí vazbu mezi aplikací a vstupními/výstupními zařízeními. V této sekci se dále nachází správa ovladačů přístrojů.
5 Metodika
33
Obr. 17 Ukázka Datových inspektorů
Grafický editor V grafickém editoru je možné vytvářet budoucí aplikace. Prostým přemísťováním z panelů přístrojů se dají vkládat nové přístroje a hned je jednoduše umísťovat do panelu. Dále je možné připojovat popisky a displeje pro zobrazení datových výstupů.
34
5 Metodika
Obr. 18 Ukázka grafického editoru s panelem přístrojů
5.2 Modul VisionLab Přídavná knihovna VisionLab umožňuje programu Control Web analyzovat obraz na vstupu připojené kamery. Zpracování obrazu se provádí ve formě jednotlivých kroků, které jsou sloučeny do skupin prostřednictvím Panelu kroků. Tyto postupně upravují vstup z kamery a následně je analyzují. Výsledky analýzy jsou následně pomocí globální proměnné předány pro další zpracování v Control Webu.
5 Metodika
35
Obr. 19 Ukázka seznamu použitých kroků s panelem kroků
5.3 Závěr kapitoly Smyslem této kapitoly bylo předvedení programu Control Web a jeho knihovnu VisonLab. Bylo prezentováno základní rozhraní programu poskytující přívětivý přístup, a to jak pro programátorsky zaměřené tvůrce, tak i pro méně zdatné uživatele využívající jednoduchý a zároveň velice srozumitelný grafický editor. Byl vysvětlen základní rozdíl, jakým způsobem Control Web přistupuje k přijímaným datům, jejich správě a v neposlední řadě jakým způsobem pracují s přístroji. V závěru kapitoly bylo popsáno, jakým způsobem komunikuje knihovna VisonLab s programem Control Web. Díky těmto znalostem mi už nic nebránilo při vytvoření požadované aplikace pro rozpoznávání předmětů v obraze kamerového vstupu.
36
6 Vlastní práce na tvorbě aplikace
6 Vlastní práce na tvorbě aplikace V této kapitole si ukážeme samotnou tvorbu aplikace od nastavení knihovny VisionLab až po samotnou tvorbu grafického rozhraní v Control Webu.
6.1 Control Web – úvodní nastavení Po spuštění programu Control Web vytvoříme nový projekt a v nabídce zvolíme, aby aplikace pracovala v reálném čase. Dále zvolíme jednopanelovou aplikaci. V okně inspektor přístroje vybereme kartu Procedury. Do procedury OnWindowClose připíšeme system.StopApplication(), abychom mohli aplikaci zavřít kliknutím na křížek v rohu aplikace.
Obr. 20 Úvodní okno průvodce vytvoření nové aplikace v programu Control Web
6 Vlastní práce na tvorbě aplikace
37
Obr. 21 Ukázka možných nastavení aplikace
6.2 VisionLab – nastavení kroků Z panelu přístrojů vložíme kamerový vstup. Na vložený přístroj v panelu klikneme a vybere VisionLab editor.
Obr. 22 Ukázka umístění spouštěče editoru knihovny VisionLab v programu Control Web
Po otevření okna knihovny VisionLab klikneme ve výčtu kroků na řádek
, v novém okně Paleta kroků zvolíme položku Statistika a vybereme krok axes_aligned_bounding_rectangle, který nám nastaví souřadný systém a vrátí nám rozměry kamerového vstupu. Nyní z palety kroků vybereme položku Klasifikace částic a krok classifier_in_rectangular-
38
6 Vlastní práce na tvorbě aplikace
region (klasifikace částic v prahovém regionu), který provádí samotnou detekci předmětů.
Obr. 23 Ukázka umístění kroku pro klasifikaci částic v paletě kroků
V dolní tabulce provedeme dodatečné nastavení kroku. Pro vstupní obraz zvolíme náš zdroj vstupu. Do obrazu vzorů vybereme paletu vzorů, které chceme, aby aplikace vyhledávala.
Obr. 24 Paleta vzorů
Region přetáhneme přes celý zobrazovatelný vstup. V tabulce parametrů nastavíme u všech počtů vyhledávajících čar hodnotu na 80. Práh gradientu nastavíme na 0,2. Velkou pozornost věnujeme při nastavení výstupů kroku. Dva numerické datové typy pocet_nalezenych_objeku, tridy_ nalezenych_objektu a datový typ matice vystupni_obdelnik budeme nadále využívat v programu Control Web.
6 Vlastní práce na tvorbě aplikace
39
Obr. 25 Přehled vstupních a výstupních parametrů kroku
6.3 Nastavení globálních proměnných Pro uložení hodnot z knihovny VisionLab si musíme v Control Webu vytvořit patřičné proměnné pro následující zpracování. To provedeme v Inspektoru přístroje tak, že zvolíme kartu Parametry a v tabulce rozbalíme položku image_processing, kde nastavíme patřičné proměnné podle obrázku.
40
6 Vlastní práce na tvorbě aplikace
Obr. 26 Řetězec zpracování obrazu. Výřez viz příloha C
Ukázka kódu řešící předání globálních proměnných output_data number pocet_nalezenych_objektu; value = pocet; end_number; number tridy_nalezenych_objektu; value = pole_tridy; end_number; rectangle vystupni_obdelnik; x = pole_X; y = pole_Y; end_rectangle; rectangle velikost; width = sirka; height = vyska; end_rectangle; end_output_data;
6 Vlastní práce na tvorbě aplikace
41
6.4 Zobrazení výsledků. Z panelu přístrojů vybereme nečasové přístroje meter, control, button, label, pole a vložíme je do panelu a nastavíme u nich viditelnost. Mezi hodnoty zobrazované přístrojem meter patří počet nalezených znaků, typ znaku, stupeň aktuální matice, souřadnice x, y podle počtu pixelů a souřadnice x, y v aktuální zvolené matici.
Obr. 27 Ukázka výstupních přístrojů typu meter
Ukázka kódů nastavující tlačítko „Vyhodnoť“ button button_6; gui owner = backpane; position = 902, 227, 70, 30; end_gui; text_list text = ' Vyhodnot'; end_text_list; procedure OnPress(); begin meter2.SetValue(pole_tridy[poradi]); meter_6.SetValue(pole_X[poradi]); meter_7.SetValue(pole_Y[poradi]); dilek_X=PocetDilku(sirka, pocet_dilku); dilek_Y=PocetDilku(vyska, pocet_dilku);
42
6 Vlastní práce na tvorbě aplikace
meter_4.SetValue(VytvorSouradnice(pole_X[poradi],dilek_X)+1); meter_5.SetValue(VytvorSouradnice(pole_Y[poradi],dilek_Y)+1); retezec = char(VytvorSouradnice(pole_X[poradi],dilek_X)+65); retezec = retezec + char(VytvorSouradnice(pole_Y[poradi],dilek_X)+49); pole1.SetValue(retezec); kolecko.MoveTo(17,587); end_procedure; end_button; Jednoduché ovládaní je zastoupeno možností pomocí tlačítek měnit stupeň matice, výběr čísla hledaného předmětu, jehož souřadnice se mají zobrazit a aktivačního tlačítka, které zaktualizuje zobrazované hodnoty.
Obr. 28 Ukázka vstupních přístrojů typu tlačítko (button)
Ukázka kódu změny stupně matice button button_4; gui owner = backpane; position = 742, 232, 35, 25; end_gui; text_list text = ' 5'; end_text_list; procedure OnPress(); begin pocet_dilku=5; meter_3.SetValue(pocet_dilku); end_procedure; end_button;
6 Vlastní práce na tvorbě aplikace
43
Po vyhodnocení polohy předmětu lze pomocí tlačítka Ukaž zvýraznit v kamerovém poli hledaný předmět.
Obr. 29 Ukázka lokalizovaného předmětu
44
7 Závěr
7 Závěr 7.1 Shrnuti Hlavním cílem mé práce bylo vytvoření aplikace, která bude schopna rozpoznávat různé předměty v obraze kamerového vstupu. Jako vývojové prostředí byl využit program Control Web a jeho knihovna VisionLab od české firmy Moravské přístroje a.s. V první fázi vývoje aplikace jsem narazil na potíže při ovládání programu způsobené do značné míry neúplným manuálem, který byl přibalený ke knihovně VisonLab. V průběhu doby jsem se při vlastní práci s knihovnou a za využitím metody „pokus omyl“, dopracoval ke správnému postupu jejího nastavení. Smyslem tohoto snažení bylo správně pochopit ovládání programu, které povede k provedení patřičných kroků nezbytně nutných k dosažení korektní analýzy obrazového vstupu. V úvodu, kde popisuji teorii strojového vidění, jsem obsáhl jeho principy, které jsou důležitými atributy pro následnou práci při vývoji aplikace. V další části této kapitoly představuji potřebné hardwarové nástroje, které byly použity pro vytvoření obrazového vstupu. V části „Vlastní práce na tvorbě aplikace“ jsem předložil postup tvorby samotné aplikace. Pro vlastní vývoj a testování aplikace jsem použil notebook MSI GX620, který se v průběhu doby ukázal jako ne úplně vhodný a do značné míry se odlišujícího od předpokládaného průmyslového nasazení. Toto tvrzení je podloženo několikrát po sobě se opakující zkušeností, kterou jsem nabyl při vlastním odlaďování zdrojového kódu. Vývojové prostředí programu Control Web a knihovny VisonLab na dané konfiguraci se dostalo do fáze, kdy byly nejdříve vyčerpány veškeré systémové prostředky, a poté následoval úplný pád celého operačního systému.
7.2 Zhodnocení Podle výše uvedeného zadání výsledná aplikace umožňuje snadné zpracování kamerového obrazu a nalezení, respektive identifikace hledaných objektů a jejich parametrů, tedy typu a jejich souřadnic v souřadném systému, s možností převedení do jednodušších souřadných systémů např. 3x3 pro zpracování piškvorek, nebo 8x8 pro zpracování šachů. Výsledná aplikace si nedává za cíl, aby byla nasazena do ostrého provozu vzhledem k výše uvedeným problémům s chodem aplikace, ale slouží spíše jako demonstrace funkcí vývojového prostředí Control Web a knihovny VisonLab s možností, na základě nabytých zkušeností s vlastní tvorbou aplikace, dále tyto dovednosti rozvíjet až k průmyslově použitelné aplikaci.
7 Závěr
45
7.3 Možné vylepšení Řešený problém by se dal dále rozvíjet, například implementováním dalších rozpoznávacích funkcí řešících případné natočení předmětů od svých vzorů. Tato aplikace by se mohla začlenit do složitějších prací jako přídavný modul strojového vidění.
46
8 Literatura
8 Literatura [1] BÍLÝ, RADEK. Control Web 2000. Vyd. 1. Praha: Computer Press, 1999. 382 s. ISBN 80-7226-258-0. [2] BÍLÝ, RADEK, et al. Dokumentace Control Web. [s.l.] : Moravian Instruments, 2000. [3] ING. HAVLE, OTTO, CSC., MBA. Automa: časopis pro automatizační techniku. Praha: FCC Public, 2008, roč. 2008, č. 1. ISSN 1210-9592. Dostupné z: . Strojové vidění I: Principy a charakteristiky. [4] ING. HAVLE, OTTO, CSC., MBA. Automa: časopis pro automatizační techniku. Praha: FCC Public, 2008, roč. 2008, č. 3. ISSN 1210-9592. Dostupné z: . Strojové vidění III: Kamery a jejich částigoritmy. [5] ING. HAVLE, OTTO, CSC., MBA. Automa: časopis pro automatizační techniku. Praha: FCC Public, 2008, roč. 2008, č. 4. ISSN 1210-9592. Dostupné z: . Strojové vidění IV: Osvětlovače. [6] ING. HAVLE, OTTO, CSC., MBA. Automa: časopis pro automatizační techniku. Praha: FCC Public, 2008, roč. 2008, č. 2. ISSN 1210-9592. Dostupné z: . Strojové vidění II: Úlohy, nástroje a algoritmy.
9 WWW
47
9 WWW [W1] Jakub Šerých Osobní stránky [online]. 2007-01-1 [cit. 2012-03-18]. Dostupné z: < http://jakub.serych.cz/> [W2] Smart videocam boasts Linux development framework [online]. 2009-04-29 [cit. 2012-03-18]. Dostupné z: [W3] MICROSCAN. NERLITE® Machine Vision Lighting [online]. 2012-01-01 [cit. 2012-03-18]. Dostupné z:
48
Přílohy
Přílohy A . Ukázka programu po spuštění
Přílohy
B . Ukázka programu při běhu
49
50
C . Řetězec zpracování obrazu
Přílohy