VŠB - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra elektroniky a sdělovací techniky
Aplikace technologie virtuální
instrumentace pro optické testování a měření v procesu průmyslové výroby
2005 Leoš Maršálek
Prohlašuji, že jsem tuto diplomovou práci vypracoval samostatně. Uvedl jsem všechny literární prameny a publikace, ze kterých jsem čerpal.
V Ostravě 10. května 2005 . . . .
Rád bych na tomto místě poděkoval všem, kteří mi s prací pomohli, firmě ELCOM, a.s, DVI a zejména Ing. Petrovi Bílovskému, který mi velmi pomohl svými užitečnými radami.
Abstrakt
Tato diplomová práce pojednává o aplikaci technologie virtuální instrumentace v oblasti měření a testování. V první části jsou popsány principy virtuální instrumentace s její aplikací v oblasti zpracování obrazu. V následující části je přehled nejvíce používaných vývojových prostředí pro vytváření měřících aplikací. Dále jsou popsány základy z oblasti zpracování obrazu spolu s některými funkcemi z IMAQ Vision. V poslední části je popis aplikace, která měří a vyhodnocuje barevné rozhraní ED modulů. Aplikace je vytvořena v LabVIEW a IMAQ Vision.
Klíčová slova: barevné prostory, CIE, ED modul, HSL, IMAQ Vision, LabVIEW, optické měření, RGB, virtuální instrumentace, vývoj aplikace, zpracování obrazu
Abstract
The diploma thesis are focused to the application of virtual instrumentation technology in the area of measurement and testing. The virtual instrumentation principles are described in the area of image processing.The next part of the thesis is a short summary of the most frequently used development SW tools. The basic principles of image processing and IMAQ Vision functions are described too. The last part contains the brief description of the application designed for measuring and recognition of the color borderline of the ED modules. The application is designed and developed in LabVIEW and its IMAQ Vision library.
Keywords: color spaces, CIE, ED module, HSL, IMAQ Vision, LabVIEW, optical mea- surement, RGB, virtual instrument, development application, image processing
Seznam použitých zkratek a symbol˚ u
BBS – Bulletin Board Service – vývěsková služba obdoba HTTP služby
C – programovací jazyk C
C++ – programovací jazyk C++, oběktově orientovaný
COM – Common Object Model – objektově orientovaná otevřená ar- chitektura umožňující transparentní komunikaci aplikací typu klient/server
DDE – Dynamic Data Exchange – dynamická datová výměna mezi apli- kacemi
DLL – Dynamic Link Library – dynamická knihovna systému Win DOS – operační systém od společnosti Microsoft
FFT – Fast Fourier Transformation – matematická transformace, která „převádíÿ data z časové oblasti do oblasti frekvenční
Gb – Gigabite – 109 bite
GHz – Giga Hertz – fyzikální jednotka
GPIB – General Purpose Interface Bus – paralelní sběrníce pro komu- nikaci se zařízením
GPRS – General Packet Radio Service – všeobecná paketová rádiová služba, možnost stálého připojení a bezdrátového přenosu dat vysokou rychlostí
GSM – Global System for Mobile – globální systém mobilní komunikace GUI – Graphics User Interface – grafické uživatelské rozhraní
HP – Hewlett-Packard – firma zabývající se informačními technologi- emi
HSL – Hue, Saturation, Lightness – barevný prostor používaný v ob- lasti strojového vidění
HTML – Hyper Text Markup Language – hypertextový značkový jazyk HTTP – Hyper Text Transfer Protocol – protokol který umožňuje pře-
nášet Webové stránky
HW – Hardware – zařízení, které je využito pro běh SW aplikace IBM – International Business Machines – firma zabývající se infor-
mačními technologiemi
IEEE 802.11b – standard beztrátové technologie známe jako WI–FI IEEE 802.15 – standard beztrátové technologie známe jako WPAN IEEE 1394 – standard pro sériové rozhraní, známe jako FIREWIRE
IR – InfraRed – zkratka pro druh komunikačního zařízení nebo pro neviditelnou oblast světla ⇒ 700 nm
JAVA – programovací jazyk, přenositelný mezi různými platformami LabVIEW – Laboratory Virtual Instruments Engineering Workbench – SW
prostředí pro vývoj měřících aplikací
LASER – Light Amplification by Stimulated Emision of Radiation – zdroj monochromatického koherentního světla
LED – Light Emiting Diode – polovodičová dioda generující nekohe- rentní světlo
LW – LabVIEW – zkratka názvu produktu NI
LZW – Lempel-Ziv, Welch – název patentovaného komprimačního al- goritmu
MATLAB – MATrix LABoratory – označení SW vývojového prostředí Mb – MegaBite – jednotka informací 106 bite
MB – MegaByte – jednotka informací 106· 8 bite
NASA – National Aeronautics and Space Administration – národní správa pro letectví a kosmický prostor
NetDDE – NETwork Dynamic Data Exchange – dynamická výměna dat v síti
NI – National Instrument – firma zabývající se oblastí měření OLE – Object Linking and Embedding – objektově orientovaná tech-
nologie vytváření složených dokumentů vyvinutá společností Microsoft
OPC – OLE for Process Control – průmyslový standard vytvořený ve spolupráci mnoha světových dodavatelů HW
OS – Operating system – operační systém počítače PC – Personal Computer – osobní počítač
PIXEL – PIX (picture) ELement – nejmenší obrazová informace, dále již nedělitelná
RGB – Red, Green, Blue – barevný prostor, který se skládá ze třech barev: červené, zelené, modré
PLC – Programmable Logic Controller – programovatelný logický re- gulátor
PXI – PCI eXtensions for Instrumentation – platforma založená na PCI sběrnici pro modulární měřicí přístroje
SMD – Surface Mounted Device – součástky pro povrchovou montáž SMS – Short Message Service – služba krátkých zpráv v bezdrátových
sítích
SQL – Structured Query Language – strukturovaný databazový jazyk STP – Shielded Twisted Pair – stíněný kroucený pár (kabely pro Ether-
net
SW – Software – zkratka nahrazující toto slovo
TCP – Transport Control Protocol – protokol pro přenášení informací sítí
USB – Universal Serial Bus – univerzální sériová sběrníce
UV – Ultra-violet – ultrafialová oblast světla (okem
neviditelná)⇐ 400 nm
VEE – Visual Engineering Environment – SW prostředí of firmy Agi- lent
VXI – měřící systém založený na multifunkčních měřích kartách pro- pojovaných sběrnicí
Win95/98 – operační systém od firmy Microsoft
WinXP – operační systém od firmy Microsoft, XP označuje vyzrálost WinNT – operační systém od firmy Microsoft, zaměřený na sítě
Unix – operační systém
X-Ray – Rengenovo záření
Obsah
1 Úvod 1
2 Oblast měřící techniky 2
2.1 Vývoj měřící techniky . . . 2
2.2 Proces měření . . . 5
2.3 Zpracování obrazu v průmyslové výrobě . . . 6
3 SW vývojová prostředí 9 3.1 Control Web . . . 9
3.2 LabVIEW . . . 10
3.3 LabWindows/CVI . . . 12
3.4 Matlab . . . 13
3.5 TestPoint . . . 14
3.6 VEE . . . 15
4 Digitální obraz 17 4.1 Definice digitálního obrazu . . . 17
4.2 Parametry obrazu . . . 17
4.3 Barevné prostory . . . 17
4.4 Nejvíce používané grafické soubory . . . 22
5 Základní algoritmy pro zpracování obrazu 25 5.1 Analýza obrazu . . . 25
5.2 Analýza ve frekvenční oblasti . . . 27
5.3 Prahování . . . 29
5.4 Hranová detekce . . . 31
5.5 Hledání vzoru . . . 32
5.6 Kalibrace obrazu . . . 34
5.7 Vybrané funkce IMAQ Vision . . . 35
6 Návrh aplikace s praktickou realizací 36 6.1 Úvod do problematiky . . . 36
6.2 Popis stroje . . . 37
6.3 Ovládání stroje . . . 38
6.4 Popis aplikace ED-H7 . . . 38
6.5 Návrh aplikace . . . 42
6.6 Vybrané algoritmy měřícího jádra . . . 48
7 Závěr 52
Seznam tabulek
1 Srovnání klasické a virtuální měřící techniky . . . 3 2 Přehled typů nasvícení scény . . . 6 3 Porovnání analogových a digitálních kamer . . . 8
Seznam obrázků
1 Přehled vývoje měřící techniky [1]. . . 2
2 Schématické zobrazení měřícího procesu . . . 5
3 Eliminace odlesků filtry . . . 7
4 Schématické zobrazení zorného pole kamery . . . 7
5 Obrázek z prokládané kamery a z kamery „progresive scanÿ . . . 8
6 Prostředí Matlab a nádstavba Simulink . . . 13
7 Prostředí TestPoint . . . 14
8 Experiment v prostředí VEE . . . 15
9 RGB krychle . . . 18
10 Vrstvy RGB barevného prostoru . . . 18
11 Reprezentace HSL (HSV) prostoru pomocí jehlanu . . . 19
12 Rozdělení viditelného světla . . . 21
13 Složky prostoru CIE v závislosti na vlnové délce . . . 22
14 CIE(x,y) diagram . . . 23
15 Histogram . . . 25
16 Funkce IMAQ Vision – Histogram . . . 26
17 Funkce IMAQ Vision – Čárový profil . . . 26
18 Funkce IMAQ Vision – Měření intenzity . . . 26
19 Použití FFT pro filtraci signálu . . . 27
20 Rozdělení frekvenčního spektra . . . 28
21 3D zobrazení spekter . . . 28
22 Funkce IMAQ Vision – Frekvenční oblast . . . 28
23 Příklad prahování . . . 29
24 Prahování na histogramu . . . 29
25 Popis histogramu pro prahování . . . 29
26 Nalezení hran různými konvolučními jádry . . . 31
27 Znázornění hledání hrany v řezu . . . 32
28 Funkce IMAQ Vision – Hranová detekce . . . 32
29 Ukázka metody hledání vzoru . . . 33
30 Korelace . . . 33
31 Funkce IMAQ Vision – Hledání vzoru . . . 33
32 Zkreslení obrazu . . . 34
33 Funkce IMAQ Vision – Kalibrace obrazu . . . 34
34 Funkce IMAQ Vision – Overlay . . . 35
35 Funkce IMAQ Vision – Morphology . . . 35
36 Funkce IMAQ Vision – External Display . . . 35
37 ED Modul . . . 36
38 Modrý a červený zmetek . . . 36
39 Typy rozhraní . . . 37
40 Provozní část aplikace . . . 39
41 Servisní panel pro kameru . . . 40
42 Geometrická kalibrace kamery . . . 41
43 Vývojový diagram . . . 42
44 Vývojový diagram – Měřící jádro aplikace . . . 43
45 Vývojový diagram – Kontrola rozhraní a seřizování rozhraní . . . 44
46 Hierarchická struktura části aplikace . . . 45
47 Princip toku dat strojem . . . 48
48 Test svítivosti ED modulu . . . 48
49 Polární diagram . . . 49
50 Barevný trojúhelník . . . 49
51 Test barevného rozhraní a jeho ostrosti . . . 50
52 Nalezení bodu zlomu . . . 50
53 Uložení výsledků . . . 51
Seznam příloh
Návod k obsluze – Manuál pro zařízení na kontrolu a manuální seřizování barvy rozhraní ED modulů.
CD – ROM – Obsahuje „spustitelnéÿ demo vytvořené aplikace, detailní fotografie stroje, ukázky části kódu.
1 ÚVOD 1
1 Úvod
Ve své diplomové práci se věnuji oblasti optického měření. Jedná se o bezdotykové měření, to znamená, že měřící přístroj se nemusí dotknout ani přiblížit měřenému objektu. Tím jsou eliminovány chyby, které by vznikaly vlivem kontaktního měření. Přesnost měření závisí jen na použité optice kamery. Nejvyšší dosažitelná přesnost je srovnatelná s vlnovou délkou světla, které osvětluje scénu. Protože systémy většinou pracují v oblasti viditelného světla, tak přesnost měření je pod 1 µm. Další nespornou výhodou je rychlost měření. Dnešní kamery standardně pracují se závěrkou 0.001 s což představuje čas potřebný k sejmutí jednoho snímku.
Sejmutí obrazu je jen začátkem měření. Nejdůležitější částí je vlastní zpracování obrazu.
Tuto problematiku jsem nastínil v hlavně v 4. a 5. kapitole. Jedná se však pouze o nastínění problematiky, protože oblast zpracování obrazu je velice rozsáhlou oblastí.
V praktické části diplomové práce jsem realizoval aplikaci pro kamerový systém. Apli- kace kromě analýzy obrazu ještě celý stroj řídila. Pro realizaci aplikace jsem si vybral z mnoha vývojových prostředí, z niž některé jsou popsány v kapitole 3, LabVIEW s modulem IMAQ Vision.
2 OBLAST MĚŘÍCÍ TECHNIKY 2
2 Oblast měřící techniky
2.1 Vývoj měřící techniky
Obrázek 1: Přehled vývoje měřící techniky [1].
Oblast měření je velmi starou oblastí lidské činnosti sahající do dob, kdy si lidé začali vyrábět první předměty. Větší rozšíření měřící techniky přišlo až s „průmyslovou revolucíÿ.
Od té bylo využití měřící techniky čím dál větší.
Velkým zlomem, který se udál v oblasti měření bylo využití elektrického proudu k měření jiných fyzikálních veličin. Za tímto zlomem se udála spousta menších zlomových okamžiků, jakými jsou například příchod digitálních měřících přístrojů, přístrojů vybave- ných komunikačním rozhraním a v neposlední řadě příchod virtuální instrumentace.
2.1.1 Virtuální instrumentace
Slovo virtuální se začíná kolem nás objevovat čím dál tím více a to zejména s nástupem nově příchozích technologií. Velmi často se používají výrazy jako virtuální realita, virtuální operace atd.
Co vlastně slovo virtuální znamená? Jednoznačně se toto slovo nedá přeložit, ale v širším kontextu to znamená zdánlivý, nereálný. Často se tímto slovem označují věci, které neexistují. A právě virtuální instrumentace se snaží nahradit hardwarové měřící přístroje jejich softwarovou náhradou.
Virtuální instrumentace je novým směrem v oblasti měření. Dovoluje při stejné přesnosti a rychlosti měření snížit náklady na měřící přístroj a navíc je velmi flexibilní, protože své základy staví na masově vyráběných počítačích, které jsou osazovány zásuvnými kartami pro zpracování signálů nebo pro vytvoření patřičného rozhraní. Při potřebě měřit jiné veličiny stačí přepsat softwarovou aplikaci na PC popřípadě vyměnit zásuvné karty v PC.
2 OBLAST MĚŘÍCÍ TECHNIKY 3
Hledisko Tradiční přístroj Virtuální přístroj
Funkce definuje Výrobce Uživatel
Orientace přístrojů a jejich propojitelnost
Specifické podle funkcí, hlavně používané sa- mostatně s omezenou propojitelností
Specifické podle aplikace s návazností na počítačové sítě a periferie
Klíčový komponent Hardware Software
Náklady na výrobu Vysoké Nízké
Architektura Uzavřená – pevná množina funkcí
Otevřená – pružná závislá na výpočetní výkonnosti PC
Náklady na vývoj a údržbu
Vysoké Nízké
Tabulka 1: Srovnání klasické a virtuální měřící techniky
Tabulka 1 ukazuje srovnání „klasickéÿ měřící techniky s virtuální měřící technikou.
V oblasti virtuální instrumentace (VI) se velmi často používá standardizovaných komu- nikačních rozhraní, pro přenos informací z měřících systémů do vyhodnocovacího systému, kterým bývá počítač. Zde je přehled a malá specifikace nejčastěji používaných komunikač- ních rozhraní.
2.1.1.1 Ethernet
• Vysoké přenosové rychlosti (10 Mb/s až 1 Gb/s výhledově více než 40 Gb/s)
• Možnost využití optického přenosu – vyšší odolnost proti rušení, větší dosah
• Velmi nízká cena a velmi dobrá dostupnost
• Nižší odolnost proti rušení, při použití STP kabelu problémy se zemními smyčkami
2.1.1.2 FireWire
• Standard IEEE 1394 – sériový přenos dat
• Rychlé přenosové rychlosti 100, 200, 400, 800 Mb/s připravovaný nový standard s rychlostí přesahující 3 Gb/s
• Hierarchický způsob adresace zařízení – až 63 zařízení na jeden řadič
2 OBLAST MĚŘÍCÍ TECHNIKY 4
• Dosah až 100 m
• Vyšší cena a menší dostupnost
2.1.1.3 Paralelné rozhraní GPIB
• Vysoká přenosová rychlost (1 až 8 MB/s v závislosti na použitém protokolu)
• Možnost připojit na jeden řídící počítač více měřících přístrojů
• Omezená vzdálenost přístrojů (max. 20 m)
• Není standardním vybavením počítače, počítač je nutno osadit řadičem
• Drahá kabeláž
2.1.1.4 Sériové RS232
• Jednoduchá a levná kabeláž (pro komunikaci stačí jen 3 dráty)
• Standardní vybavení PC, ale dnes nahrazováno USB
• Velká překlenutelná vzdálenost mezi komunikujícími zařízeními
• Velmi velká odolnost rozhraní proti zničení
• Omezení na pouhé dva komunikující účastníky
• Velmi malá datová propustnost
2 OBLAST MĚŘÍCÍ TECHNIKY 5
2.2 Proces měření
Obrázek 2: Schématické zobrazení měřícího procesu
Obecně se dá proces měření popsat takto [1]:
1. Fáze sběru dat či řízení technologického procesu – k tomuto můžeme použí následující typické způsoby
• Zásuvné multifunkční karty
• Přístroje vybavené RS232 nebo jiným sériovým rozhraním
• Přístroje vybavené GPIB sběrnicí
• VXI, PXI měřící systémy
• PLC
• Snímání obrazu
• Průmyslové I/O systémy
• FieldPointy
2. Analýza dat – v této fázi se získávají důležité informace ze surových dat
• Digitální zpracování signálu
• Digitální zpracování obrazu
• Filtrace signálu
• Frekvenční analýza
• Statistika
3. Poslední fází je reprezentace naměřených a analyzovaných dat
• Grafické znázornění uživateli
• Síťové aplikace
• Archivace v souborech, tisk
2 OBLAST MĚŘÍCÍ TECHNIKY 6
2.3 Zpracování obrazu v průmyslové výrobě
Zpracování obrazu v průmyslové výrobě se používá zejména ke sledování průmyslových procesů nebo ke kontrole parametrů výrobků.
Velmi často se kontroluji součástky, jestli jsou vůbec osazeny nebo jestli jsou tam kde mají být. Dále se také pomocí optického měření sledují rozměrové vzdálenosti, zakřivení, úhly, potisky, nápisy.
Při návrhu kamerového systému je nutné počítat s osvětlením scény a také optikou kamery. Osvětlení se dá rozdělit na:
• Halogenové
• složené LED
• Fluorescentní
• Laserové
Tabulka 2 popisuje výhody a nevýhody jednotlivých druhů osvětlovacích technik.
Technika Kruhový zdroj Stroboskop Posvícení
Jak funguje Prstenec kolem ob- jektivu
Krátké záblesky světla
Objekt mezi kame- rou a zdrojem světla
Výhody Rovnoměrné osvět-
lení
Pohybující se před- měty jsou ostré
Ostrá silueta Rizika Možný vznik kruho-
vého odlesku
Často nutné zesvět- lit tmavé obrázky
Ohyb světla kolem oblých předmětů Tabulka 2: Přehled typů nasvícení scény
Odlesky a stíny, které na snímané scéně mohou vzniknout, se dají eliminovat několika způsoby. Ten nejjednodušší je změnit polohu nasvícení, což ne vždy se dá udělat. Další metodou jak se zbavit odrazů je použití filtrů, před objektiv kamery. Obrázek 3 ukazuje rozdíl, pokud se použijí filry na lesknoucí se povrchy.
Kamerový systém se skládá z kamery a z počítače (zařízení pro zpracování obrazu).
Při návrhu kamerového systému je zapotřebí brát v úvahu i zorné pole kamery. Obrázek 4 schématicky znázorňuje tuto situaci. Pro minimální zorné pole platí
a = v · d
f (1)
2 OBLAST MĚŘÍCÍ TECHNIKY 7
Obrázek 3: Eliminace odlesků filtry
Obrázek 4: Schématické zobrazení zorného pole kamery
2.3.1 Kamera
Je nejdůležitějším prvkem kamerového systému. Kamery se dají rozdělit na:
Analogové – Analogový výstup v TV standardech, digitalizace na kartě v PC, nejčastěji používané kamery.
• S prokládaným obrazem – Každý snímek se skládá ze dvou proložených půls- nímků.
• „Progresive scanÿ – Také zvané non-standard či non-interlaced, snímá celé snímky najednou, odstraňuje rozmazání pohybujících se předmětů viz. obrázek 5.
Digitální – Digitalizace přímo v kameře, přenos bez ztráty kvality, možné vyšší rozli- šení (1000x1000 pixelů a víc), rychlé snímání (30 a více snímků/s), vyšší kontrast (hloubka pixelu 8 až 14 bitů), připojení přes IEEE 1394 (FireWire) nebo paralelně (až 200MB/s).
Tabulka 3 porovnává analogové kamery si digitálními.
2 OBLAST MĚŘÍCÍ TECHNIKY 8
Obrázek 5: Obrázek z prokládané kamery a z kamery „progresive scanÿ
Analogové kamery Digitální kamery
Levnější Nepatrně dražší
Běžně používané a známé Větší rozlišení
Jednoduchý kabel s BNC konektorem Vyšší snímková rychlost
Problémy s přenosem signálu Větší hloubka pixelu a lepší odolnost vůči šumu
Možnost přímého připojení monitorů Možnost síťového propojení (u IEEE-1394) Tabulka 3: Porovnání analogových a digitálních kamer
2.3.1.1 Další důležité technologie kamer
Řádková kamera – Line Scan kamery. Snímací čip je tvořen řadou snímacích elementů.
Proto kamera nesejme celý obraz najednou, ale často bývá synchronizována externími pulsy, které jsou většinou odvozeny od pohybu/rotace součástky. Nastavení těchto kamer je velice obtížné, protože neposkytují celý obraz a obsluha nic nevidí.
IR, blízká oblast IR, UV, X-Ray kamery – Tyto kamery snímají obraz mimo vidi- telné spektrum. Kamery jsou vhodné pro sledování úniků energie, hledání defektů v materiálech, atd. Kamery jsou často osazovány standardním video výstupem.
3 SW VÝVOJOVÁ PROSTŘEDÍ 9
3 SW vývojová prostředí
SW prostředí slouží k vývoji „měřícíchÿ aplikací. Klasická vývojová prostředí jako jsou C, C++, Delphi, JAVA nejsou vhodná pro měřící aplikace, protože bez rozšiřujících funkcí nejsou schopny komunikovat se všemi druhy komunikačních rozhraní a navíc jim chybí funkce pro zpracování signálu. Proto zde jsou vývojové nástroje, které dovolují vytvořit měřící aplikaci přímo na míru podle oblasti měření. Programátoři v takovýchto prostředích mají připravené funkce a objekty pro komunikaci s okolím a základní funkce pro zpracování signálů.
SW prostředí pro vývoj měřících aplikací je velmi mnoho, proto zde uvádím pouze ty nejvíce používané.
3.1 Control Web
Control Web je SW prostředním od tuzemské firmy Moravské přístroje, která je konkurencí pro NI. Prostředí poskytuje mnoho nástrojů pro vývoj aplikací všech druhů. Od jednodu- chého řízení malé vodní elektrárny až po obrovské výrobní procesy s mnoha operátorskými obrazovkami rozmístěmými na velké ploše závodu.
Zde je výčet nejvýznamnějších vlastností tohoto SW prostředí:[8]
• Velká podpora hardware – s patřičným ovladačem dokáže komunikovat s čímkoliv
• Otevřená architektura ovladačů
• Podpora otevřených protokolů – ASCI
– OPC Data Access – OPC servery – DDE / NetDDE, FastDDE
– GSM modemy, SMS zprávy, Modicon Modbus, Modbus/TCP
• Podpora otevřených standardů
– TCP/IP, HTTP, HTML (Ethernet, WiFi, dial-up, ) – ODBC / SQL
– COM / ActiveX
– OPC (OLE for Process Control) – GSM / GPRS
3 SW VÝVOJOVÁ PROSTŘEDÍ 10
– DDE, NetDDE
• Integrované vývojové prostředí – Tvorba aplikace drag & drop
– Komponenty (virtuální přístroje) aplikace přetahovány z palety – Modifikace parametrů v dialogových oknech
– Přístrojový inspektor modifikuje specifické parametry daného virtuálního pří- stroje
– K tvorbě aplikace není zapotřebí znalost programování – Funkce aplikace řízena parametry a výrazy
– Programovací jazyk je k dispozici pro řešení náročnějších požadavků zákazníků – Grafický vývoj aplikací
• Dostupnost pro všechny platformy Windows
Prostředí poskytuje velké množství funkcí mezi nimi jsou i funkce na vizualizaci procesů.
Procesy mohou být zobrazovány jak 2D tak i 3D. Další informace k tomuto prostředí najdete na webových stránkách firmy Moravské přístoroje.1
3.2 LabVIEW
3.2.1 Základní filozofie vývojového prostředí LabVIEW
Stím jak rostlo využívání výpočetní techniky v oblasti měření, zároveň rostla potřeba psaní SW pro měřící aplikace. Bohužel klasické vývojové prostředky pro tvorbu aplikací byly a jsou tak složité, že na vytvoření i jednoduché aplikace by bylo zapotřebí vystudovaného informatika. Oblast měření se však také stala také velmi složitou a proto se hledala cesta jak psaní programů zjednodušit.
Z počátku se velmi často využívalo diagramů, které se předávaly informatikům a ti podle nich vytvářely aplikace. Tento přístup je ale velmi neefektivní a do oblasti měření nepřinášel nic nového, spíše naopak vznikaly další problémy a chyby. Proto se skupinka nadšenců v čele s Jeffem Kodovským, který byl duchovním otcem celého projektu, se rozhodla, že vytvoří nástroj který bude pro inženýra stejně efektivní a pružný jako pro finančního analytika tabulkový procesor. V roce 1986 přišla firma NI s první verzí LabVIEW tenkrát ještě pro Macintosh, protože PC v té době nedosahovaly potřebného výkonu.
1www.controlweb.cz
3 SW VÝVOJOVÁ PROSTŘEDÍ 11
Celá filozofie prostředí LabVIEW se odvodila z kreslených diagramů, které se předá- valy informatikům k programování. Myšlenka byla taková, že přepis diagramu do kódu je strojová záležitost, a tudíž by ji mohl vykonávat počítač místo člověka. Díky tomu, že se o překlad diagramu staral počítač, došlo k výraznému zjednodušení a aplikace si mohli začít psát přímo technici, kteří se zabývaly měřením. Celé programování je orientované graficky, proto se často hovoří o programovacím jazyku G.
LabVIEW je obecným vývojovým prostředím s bohatými knihovnami pro vytváření aplikací zaměřených do oblasti měření pro všechny fáze tohoto procesu - t.j. od sběru, analýzy až prezentaci naměřených dat. LabVIEW podporuje všechny způsoby sběru dat do počítače (z měřících přístrojů přes komunikační rozhraní, ze zásuvných multifunkčních karet a ze systému na bázi VXI sběrnice). Díky snadné komunikaci LW s měřícími systémy přes různá rozhraní, výrazně vzrostla obliba tohoto vývojového prostředí. Toto vývojové prostředí dokáže komunikovat přes všechny standardizované rozhraní jako jsou Ethernet, Bluetooth, Infrared, USB, RS458, RS232, GPIB atd.
3.2.2 Virtuální přístroj
• Interaktivní grafické rozhraní (Graphical User Interface - GUI) ke koncovému uživa- teli - tzv. čelní panel (Front Panel), který simuluje čelní panel fyzického přístroje.
Obsahuje prvky pro ovládání a indikaci (knoflíky, tlačítka, LED indikátory, grafy . . .).
Tento čelní panel ovládá uživatel myší nebo z klávesnice.
• Činnost virtuálního přístroje je dána jeho blokovým schématem (Block Diagram).
Toto blokové schéma je vytvořeno ikonami reprezentujícími v koncových blocích ovlá- dací a indikační prvky čelního panelu a ve svých uzlových blocích jsou to bloky zpracovávající procházející data. Tento blokový diagram je zdrojovou podobou každé aplikace.
• Virtuální přístroj má hierarchickou a modulární strukturu. Lze jej používat jeko celý program nebo jeho jednotlivé podprogramy, které se nazývají podřízenými virtuál- ními přístroji (SubVI). Součástí každého virtuálního přístroje je jeho ikona, kterou je prezentován v blokovém schématu a konektor s přípojnými místy pro vstupní a výstupní signály.
3.2.3 Popis prostředí
Programování v LabVIEW podléhá DataFlow, což znamená, že funkce se začne vykonávat až v okamžiku, kdy má na svých vstupech platná data. V praxi se stává, že kód na konci se vykoná jako první, protože dostane na své vstupy platná data.
Prostředí běží na OS Windows, ale v současné době již firma NI uvolnila verzi pro Linux. Prostředí je vysoce modulární a lze jej rozšířit SW moduly, které rozšiřují vlastnosti
3 SW VÝVOJOVÁ PROSTŘEDÍ 12
prostředí. Já jsem využil modul IMAQ Vision, který bude popsán dále. Pro běh samostatně spustitelné aplikace je zapotřebí Run–Time Engine, který vytváří spojení mezi aplikačním rozhraním a rozhraním vývojového prostředí. Dále jsou potřeba engines pro jednotlivé použité moduly, které vytváří vazbu mezi HW a aplikací.
3.3 LabWindows/CVI
Firma National Instrument kromě LabVIEW také v roce 1989 vyvinula LabWindows/CVI.
Jedná se o prostředí, kde se neprogramuje graficky, ale píše se klasický kód v jazyku ANSI C. Výhodou tohoto prostředí je kombinace grafického návrhu uživatelského rozhraní s klasickým programováním.
LabWindows/CVI má podobné vlastnosti jako LabVIEW. Má v sobě zabudovánu pod- poru GPIB, RS232/485/488, Ethernetu a dalších komunikačních rozhraní. Kromě toho je standardně v prostředí mnoho matematických funkcí, které zjednodušují vývoj měřící aplikace.
Prostředí je také tvořeno modulárně, to znamená, že vlastnosti prostředí se dá rozšířit SW modulem. Toho se využívá, při realizaci kamerových systémů, kdy se do prostředí přidává modul IMAQVision, který umožňuje pohodlné zpracování obrazových informací.
3.3.1 Historie prostředí
2003 verze 7.0 – Úprava grafického rozhraní
2001 verze 6.0 – Zahrnutí technologie ActiveX do prostředí 2000 verze 5.5 – Více vláknové knihovny/překladače
1998 verze 5.0 – Kompatibilita s VXI a IVI 1996 verze 4.0 – Verze s externím kompilátorem 1994 verze 3.0 – Verze pro DOS, Windows a Sun
1991 verze 2.0 – Verze pro DOS, nástroje pro vytváření GUI 1989 verze 1.0 – Představení prostředí pro DOS
3 SW VÝVOJOVÁ PROSTŘEDÍ 13
Obrázek 6: Prostředí Matlab a nádstavba Simulink
3.4 Matlab
Název Matlab znamená MATrix LABaboratory. Používá se od roku 1984 v mnoha obo- rech zejména k simulacím, měření a k zobrazování měřených výsledků. Základ Matlabu je postaven na numerických řešeních a práci s maticemi, vektory.
Matlab je vysoce modulárním prostředím, kde jednotlivé moduly se nazývají toolbox.
Díky tomu je možné Matlab rozšířit na jakoukoliv oblast zájmu. Pro zpracování obrazu se využívá Image Toolbox , který v sobě integruje všechny potřebné funkce (detekce hran, prahování atd.) pro zpracování obrazu.
Díky robustnosti Matlabu se vytvářejí další prostředí, které zjednodušují práci s Matla- bem. Asi nejznámější nadstavbou je Simulink, který v sobě spojuje blokové grafické pro- gramování spolu se simulací. Obrázek 6 ukazuje prostředí Simulink. Další již méně známou nadstavbou je FemLab, která dovoluje vyvářet velmi složité simulace všech fyzikálních dějů.
V současné 7. verzi Matlabu je vidět, posun od čistě teoretického nasazení Matlabu k praktickému nasazení v oblasti měření. Z tohoto důvodu byla tato verze vybavena funk- cemi podporující sběr dat a také byly rozšířeny funkce umožňující zpracovaní naměřených signálů.
Matlab lze doplnit i překladačem do kódu C/C++ a zněj vytvořit spustitelnou aplikaci.
Díky velkému množství „toolboxůÿ je Matlab neporazitelný na poli numerických výpočtů.
Jeho největší slabostí je rychlost a HW nároky, což u tak robustního systému lze očekávat.
3 SW VÝVOJOVÁ PROSTŘEDÍ 14
Obrázek 7: Prostředí TestPoint
3.5 TestPoint
3.5.1 Co je to TestPoint?
V [2] je TestPoint popsán jako nástroj, pro vytváření vlastních testů, měřících aplikací a aplikací které mají za úkol sběr dat. TestPoint v sobě zahrnuje funkce pro kontrolu exter- ního hardware, prostředí pro vývoj uživatelského rozhraní, funkce podporující zpracování a zobrazení dat. Dále také podporuje dynamickou výměnu dat tvz. DDE ve Windows.
TestPoint je novou unikátní alternativou konvenčním programovacím jazykům.
V TestPointu od firmy KEITHLEY si vyberete objekt, což je komponenta ve Vaší aplikaci. Výběr objektu se provádí přetažením myší do formuláře. Tato metoda se velmi často označuje anglickým drag&drop, což doslova znamená táhni a pusť.
Toto vývojové prostředí nemá prakticky žádné limity, prostředí obsahuje všechny pro- středky pro kontrolu běhu programu a jeho ladění. V tomto prostředí je dobře propracována podpora vlastního hardware, podpora pro volání funkcí z externích knihoven. Díky DDE se dají velmi dobře zpracovávat informace předávané jinými programy nebo jiným programům je předávat.
3.5.2 Co TestPoint umí?
• Podpora zařízení [3]
– Knihovna nejvíce používaných zařízení – Podpora GPIB, RS232 a RS485 zařízení – Podpora pro VXI zařízení přes GPIB
• Sběr dat
– Podpora analogových a digitálních vstupů i výstupů
3 SW VÝVOJOVÁ PROSTŘEDÍ 15
– Limitní alarmy – Logování na disk
• Analýza
– FFT, digitální filtry, vyhlazení naměřených vzorků – Prokládání dat křivkami, polynomy, interpolace
– Operace s maticemi, inverzní matice, determinanty . . . – Statistika zahrnující průměr, odchylky, medián, historam . . .
• Prezentace a zprávy
– Grafy, XY, sloupcový, polární . . . – Indikátory a bitmapové obrázky – Tisknutelné reporty
• Uživatelské rozhraní
– Tlačítka, přepínače, knoflíky posuvníky . . . – Vícenásobné panely
– Prvky podporující ActiveX
• Funkce pro podporu DDE atd.
3.6 VEE
Obrázek 8: Experiment v prostředí VEE
3 SW VÝVOJOVÁ PROSTŘEDÍ 16
Od doby kdy firma dodala na trh první verzi SW vývojového prostředí HP VEE uply- nulo mnoho času a v současné době už prostředí VEE nevyvíjí firma HP, ale Agilent, pod kterou prostředí prodělalo zajímavý vývoj. Prostředí VEE se dokonce využívá v agentuře NASA [4], která jej využila pro návrh komunikačního zařízení při misi na Mars v lednu 2004. Vozítka Spirit a Opportunity pátraly po vodě na této planetě.
Zkratka VEE znamená Visual Engineering Environment což dokonale popisuje toto vývojové prostředí. Jedná se o grafické programování. Vývojové prostředí je dostupné v mnoha variantách. Může pracovat na IBM PC, pracovních stanicích HP nebo také na pra- covních stanicích Sun a je podporováno pro všechny operační systémy Windows (Win95/98, WinXP, WinNT) a také pro HP Unix 9.0.
Vývoj měřícího či řídícího programu v grafickém vývojovém prostředí VEE spočívá v se- stavení blokového diagramu z definovaných objektů a jeji propojení signálových toků. Tato technika o proti klasickému způsobu programování na úrovni vyšších jazyků, umožňuje podstatným způsobem urychlit vývoj a odladění aplikačního programu, jak pro jednodu- ché tak pro velmi složité měřící aplikace. Zejména snadné naprogramování uživatelského rozhraní, testovacích sekvencí a ovládání přístrojů po sběrnici přináší výrazné zvýšení pro- duktivity programátorské práce.
Toto vývojové prostředí se řídí pravidlem DataFlow, což znamená, že příslušný blok programu se vykoná až tehdy, jestliže má na svých vstupech platná data. Samotné progra- mování je velmi podobné programování v systému LabVIEW. Prostředí dokáže komuniko- vat s různými typy komunikačních rozhraní a také jsou do něj zapracovány nové technologie např. volání dll knihoven.[5][6]
VEE není příliš rozšířeným vývojovým prostředím, proto více najdete na stránkách firmy Agilent.2
2www.agilent.com/find/vee
4 DIGITÁLNÍ OBRAZ 17
4 Digitální obraz
4.1 Definice digitálního obrazu
Obraz je definován dvojrozměrnou jasovou funkcí f (x, y). Pro digitální zpracování se tato funkce diskrerizuje na dvojrozměrné pole (matice) diskrétních hodnot, které určují jas obrazu a které lze zpracovávat na počítačích.
4.2 Parametry obrazu
4.2.1 Rozlišení obrazu
Rozlišení obrazu udává, kolik obrazových bodů (pixelů) je v každém řádku a sloupci ob- razu. Pokud obraz má rozlišení 1024x768 tak obraz obsahuje 1024 sloupců a 768 řádků dvojrozměrné matice, kterou je obraz definován. Tím také udává, z kolika bodů se obraz bude skládat. Pro rozlišení 1024x768 je obraz tvořen 786 432 body.
4.2.2 Barevná hloubka
Barevná hloubka určuje, do kolika úrovní je možné zakódovat jasovou informaci funkce f (x, y). Pokud obraz má 8bitovou barevnou hloubku potom obraz bude mít maximálně 255 odstínů šedé. Barevný obraz se skládá z několika vrstev, kde jednotlivé vrstvy nesou informaci o barvě v závislosti na použitém barevném prostoru. Barevná hloubka je součtem barevných hloubek jednotlivých vrstev. Například pro RGB model s 24bitovou barevnou hloubkou platí
Ndepht= Rdepth+ Gdepth+ Bdepth (2)
po dosazení do 2
224= 28R + 28G+ 28B (3)
4.3 Barevné prostory
Barevnými prostory, někdy označovanými jako barevnými modely, se popisuje systém re- prezentace barev. Každý barevný obrázek se dá popsat několika dvojrozměrnými funkcemi f (x, y), z niž každá funkce nese informace, nutné ke složení výsledného barevného obrázku.
Podle informací, které jednotlivé funkce obsahují se barevné prostory dělí na RGB, HSL, CIE aj.
4 DIGITÁLNÍ OBRAZ 18
4.3.1 Barevný prostor – RGB
Jedná se o nejjednodušší barevný model a díky své jednoduchosti má i velmi mnoho ne- dostatků. Jedná se o takzvaný aditivní model. Aditivní proto, protože každá barva vzniká součtem třech barevných složek. Proto každý obrázek má 3 nebo 4 barevné vrstvy. Z názvů jednotlivých vrstev je i odvozen název tohoto modelu. RGB znamená, že obraz se skládá z červené – R, zelené – G a modré – B. Někdy je do obrázku doplněna 4. vrstva, která představuje průhlednost.
Obrázek 9: RGB krychle
Barevný prostor RGB se dá představit jako jednotková krychle viz. obrázek 9. Její vr- choly pak zaujímají základní barvy prostoru. Je to černá, která je v souřadnicích (0,0,0), pak je to bílá (1,1,1), červená (1,0,0), zelená (0,1,0), modrá (0,0,1). To jsou známější vr- choly krychle, ale dále tam jsou žlutá (1,1,0), zeleno-modrá (Cyan) (0,1,1) a fialová se souřadnicemi (1,0,1). Rozložení do jednotlivých vrstev ukazuje obrázek 10.
Obrázek 10: Vrstvy RGB barevného prostoru
Tento barevný prostor je díky své jednoduchosti používán v počítačové grafice a v oblastech kde se výsledný obraz skládá (aditivní barevný prostor) z elementárních barev (monitory,LCD). Díky své jednoduchosti je tento prostor velmi nedokonalým prostorem,
4 DIGITÁLNÍ OBRAZ 19
který nedokáže popsat všechny viditelné barvy ani při barevné hloubce TrueColor. Proto se zavedly další barevné prostory, které „odstraňujíÿ některé nevýhody RGB modelu.
4.3.2 Barevný model – HSL
HSL barevný model byl vyvinut pro snazší kvantifikaci a barev lidmi. HSL barevný prostor se skláda z tří vrstev, které jsou označovány H (Hue), S (Saturation), L (Luminance někdy také značována jako Brightness). Někdy se ještě používá kombinace H a S složky, která se nazývá Chromaticity.
Hue vyjadřuje dominantní vlnovou délku světla. Hue složka je barva jako např. oranžová, zelená nebo fialová. Tuto složku barevného prostoru je možné vyjádřit jako barevné spektrum.
Saturation popisuje, kolik bíle je přidáno barvy a reprezentuje čistotu barvy. Obrázek bez bílé je plně saturován. Stupeň saturace je inverzní k množství přidané bílé barvy.
Luminance vyjadřuje intenzitu světla.
Obrázek 11: Reprezentace HSL (HSV) prostoru pomocí jehlanu
Obrázek 11 ukazuje znázorněný HSL barevný prostor jako kužel barev. HSL barevný pro- stor je ideálním prostorem, pro vývoj aplikací strojového vidění.
Převod z RGB prostoru do HSL prostoru se nedá popsat v maticovém vyjádření [9].
L = 0, 299 · R + 0, 587 · G + 0, 114 · B (4)
H = 256 · tan−1
√3·(G−B)
2R−G−B
2π (5)
S = 255 ·1 − 3min(R, G, B
R + G + B (6)
Převod z HSL do RGB barevného prostoru je složitější h = H · 2π
256 (7)
4 DIGITÁLNÍ OBRAZ 20
s = S
256 (8)
s0 = 1 − s
3 (9)
f (h) =
1 − s·cos(h)
cos(π3−h)
3 (10)
b = s0 r = f (h) g = 1 − r − b
0 < h ≤ 2π 3
(11)
h0 = h −2π3 r = s0 g = f (h0) b = 1 − r − g
2π
3 < h ≤ 4π 3
(12)
h0 = h −4π3 g = s0 b = f (h0) r = 1 − g − b
4π
3 < h ≤ 2π
(13)
l = 0, 299 · r + 0, 587 · g + 0.114 · b (14) l0 = L
l (15)
R = r · l0 (16)
G = g · l0 (17)
B = b · l0 (18)
4.3.3 Barevný model – CIE XYZ
Lidské oko není citlivé na všechny barvy stejně. Aby se reprezentace barev přiblížila lid- skému vnímání, byl v roce 1931 vyvinut CIE barevný model.
Viditelné světlo je část z elektromagnetické vlnění s vlnovou délkou λ mezi 400 nm a 700 nm. Lidé vnímají tyto vlnové délky jako barvy, fialovou, přes indigo, modrou, zelenou, žlutou oranžovou a červenou. Obrázek 12 ukazuje množství jednotlivých barev, potřebných k tomu, aby se světelnost jevila konstantní. Jak je vidět z obrázku 12 tak mezi 438, 1nm a 546, 1nm se nachází oblast s zápornými hodnotami. To ukazuje, že všechny viditelné barvy nelze popsat klasickým RGB modelem. I proto byl vyvinut CIE barevný prostor.
4 DIGITÁLNÍ OBRAZ 21
Obrázek 12: Rozdělení viditelného světla
CIE barevný prostor byl vyvinut jako systém 3 základních barev (XYZ) ve kterém lze všechny viditelné barvy reprezentovat součtem nezáporných hodnot X, Y a Z. Složka Y nese informace o světelnosti (obdoba složky L u HSL modelu) a složky X a Z obsahují informace o barvě.
Tento prostor se v roce 1976 dočkal rozšíření, jednotlivé složky byly nahrazeny lo- garitmickým průběhem, který více odpovídá citlivosti lidského oka. Barevný prostor byl pojmenován CIE L*a*b*.
Pro převod obrazu z RGB do CIE XYZ barevného prostoru můžeme využít vztahů, které lze zapsat maticovým zápisem. To je vhodné pro strojové zpracování.
X Y Z
=
0, 412453 0, 357580 0, 180423 0, 212671 0, 715160 0, 072169 0, 019334 0, 119193 0, 950227
·
R G B
(19)
Pro převod z CIE XYZ do RGB barevného prostoru slouží následující vztah
R G B
=
3, 240479 −1, 537150 −0, 498535
−0, 969256 1, 875992 0, 041556 0, 055648 −0, 204043 1, 057311
·
X Y Z
(20)
4 DIGITÁLNÍ OBRAZ 22
Obrázek 13: Složky prostoru CIE v závislosti na vlnové délce
S výhodou se u tohoto prostoru využívá normalizace, která dovoluje prostor zjednodušit do dvojrozměrné plochy. Pro normalizace musí být splněna následující podmínka
X + Y + Z = 1 (21)
Normalizace hodnot je definována
x = X+Y +ZX y = X+Y +ZY z = X+Y +ZZ
(22)
Po normalizaci můžeme souřadnici z vypočítat
z = 1 − x + y (23)
Diagram z (x, y) je označován jako CIE 1931 chromatický diagram, nebo CIE(x,y) chro- matický diagram. Obrázek 14 jej ukazuje s proloženým RGB trojúhelníkem.
4.4 Nejvíce používané grafické soubory
Grafickým souborem se rozumí soubor ve kterém jsou uložena obrazová data. Obrazová data v souborech mohou být uložena různě. Proto se vytvořilo několik specifikací, jak se data mají do souboru uložit, aby se dala přečíst a rekonstruovat do obrazu, který poté vnímáme. Grafických souborů je nepřeberné množství (přes 30 používaných), proto zde uvádím jen ty nejpoužívanější.
4.4.1 BMP – BitMaP
Tento soubor se používá k bezeztrátovém uložení obrazových informací. Většinou je tento soubor bez komprese, ale existuji i bitmapy, které využívají bezeztrátovou kompresi. Díky tomu, že tento souborový formát většinou nevyužívá kompresi, tak jeho soubory jsou velmi velké, ale načtení takovýchto dat je velmi rychlé.
4 DIGITÁLNÍ OBRAZ 23
Obrázek 14: CIE(x,y) diagram
4.4.2 JPG – Joint Photographics Group
Jedná se o ztrátový formát ukládání dat. Ztrátový znamená, že pokud máme obraz a uložíme jej do JPG již nikdy nebudeme schopni vytvořit obraz, který bude stejný jako ne- uložený obraz, protože při ukládání se část informací zahazuje. Načtený obraz je tedy vždy pouze aproximací původního obrazu, proto si můžeme všimnou, že při uložení obrázku, který má ostré přechody mezi bílou a černou, dojde k rozmazání těchto hran. (Viditelné až od vyšších kompresních poměrů.)
V dnešní době jsou dva druhy JPGu. Klasický, který využívá diskrétní kosinovou trans- formaci (kompresní poměr je až 1:40) a JPEG 2000, který využívá kompresi založenou na waveletech (kompresní poměr je až 1:100).
4 DIGITÁLNÍ OBRAZ 24
4.4.3 PNG – Protable Network Graphics
Tento formát byl vyvinut za náhradu formátu GIF. Je specifikován v několika verzích, které dovolují bezeztrátově uložit obrázky v 8bitové, 24bitové a 48bitové barevné hloubce.
Dále tento formát přináší vrstvu průhlednosti (často je označována jako α-kanál) a také možnost zapsat neomezené množství metadat.
4.4.4 GIF – Graphics Image Format
Byl v 80. letech vyvinut původně pro použití v sítích BBS, proto byl navržen pro přenos obrazu přes ve své době špičkové modemy s přenosovou kapacitou 2 400 bps. GIF dovoluje ukládat obrázky jak se ztrátovou kompresí, tak i bezeztrátově. U GIFu se používá kompresní algoritmus LZW. V době vzniku bylo používání tohoto algoritmu zcela volné. Na počátku devadesátých let však firma Unisis, majitel patentu na LZW, zpřísnil politiku využívání algoritmu. To byl také jeden z důvodů, proč se začal vyvýjet nový formát PNG. GIF dokáže „popsatÿ 256 barev, což z dnešního hlediska je nepřijatelně málo, ale v době vzniku se předpokládalo, že se stejně nikdy nebude zobrazovat víc jak 256 barev. Pro připomenutí v té době počítače standardně pracovaly s monochromatickou obrazovkou.
V roce 1989 byla vydána novější specifikace, která zavedla podporu transparentnosti.
Tato specifikace bývá označována jako GIF89a.
Nespornou výhodou formátu GIF je možnost ukládat pohyblivé obrázky. Asi každý viděl na webových stránkách pohybující se loga, která byla uložena právě ve formátu GIF.
Tento standard je dnes již velmi zastaralý a kromě webových stránek se moc nepoužívá.
5 ZÁKLADNÍ ALGORITMY PRO ZPRACOVÁNÍ OBRAZU 25
5 Základní algoritmy pro zpracování obrazu
Pro praktickou realizaci jsem si zvolil prostředí LabVIEW s rozšiřujícím modulem IMAQ Vision, proto jsem při popisu funkcí vycházel z [9]. Některé definice proto nebudou obecné, ale budou podle toho, jak jsou implementovány v IMAQ Vision.
5.1 Analýza obrazu
5.1.1 Histogram
Histogram je graf celkového počtu pixelů pro každou úroveň šedé, jinými slovy popisuje rozložení intenzity světla mezi jednotlivé barvy (odstíny šedé). Histogram je základním pro- středkem k analýze obrazu. Pomáhá identifikovat různé části obrazu, například rozpoznat objekt od šumu.
Z histogramů se dají odvodit dva důležité údaje.
Saturace – Určuje jestli je obraz podexponován nebo naopak jestli nedošlo u obrazu k přeexponování.
Nedostatek kontrastu – Tento údaj určuje, jak obtížně se budou dát rozeznat objekty na ploše od pozadí.
Definice:
Histogram je funkce H definována na rozsahu šedé [0, . . . , k, . . . , 255] potom
H(k) = nk (24)
kde k je úroveň šedé a nk je počet pixelů v obrázku s úrovní šedé k.
Obrázek 15: Histogram
5 ZÁKLADNÍ ALGORITMY PRO ZPRACOVÁNÍ OBRAZU 26
IMAQ Vision
Obrázek 16: Funkce IMAQ Vision – Histogram
5.1.2 Čárový profil
Udává rozložení intenzity podél definované čáry. Vhodný pro detekci hran objektu, v pře- dem definovaných místech.
IMAQ Vision
Obrázek 17: Funkce IMAQ Vision – Čárový profil
5.1.3 Měření intenzity
Tyto funkce měří intenzitu na definovaných plochách, liniích, bodech. Měří se
• Minimální hodnota intenzity
• Maximální hodnota intenzity
• Střední hodnota intenzity
• Stardardní odchylka intenzity
IMAQ Vision
Obrázek 18: Funkce IMAQ Vision – Měření intenzity
5 ZÁKLADNÍ ALGORITMY PRO ZPRACOVÁNÍ OBRAZU 27
Obrázek 19: Použití FFT pro filtraci signálu
5.2 Analýza ve frekvenční oblasti
Analýza využívá filtrace dat ve frekvenční oblasti. Obrázek 19 ukazuje využití rychlé Fou- rierovy transformace (FFT) pro sestavení frekvenčního filtru. Pro zpracování signálů ve frekvenční oblasti se také využívají wavelety, ale ty nejsou v IMAQ Vision implemento- vány.
Definice :
Fourierová transformace pro dvojrozměrné signály (obraz) je definována:
F (u, v) =
Z ∞
−∞
Z ∞
−∞f (x, y) · e−j·2π(x·u+y·v)
dxdy (25)
Kde F (u, v) je frekvenční obraz vzoru, f (x, y) je vzor a (u, v) jsou prostorové frekvence.
Pro diskrétní tvar platí:
F (u, v) = 1 M · N
N −1
X
x=0 M −1
X
y=0
f (x, y) · e−j·2π(u·xN +v·yM) (26) Kde N × M je rozlišení obrázku f (x, y). Frekvenční obraz F (u, v) je dán komplexními čísly, proto je reprezentace stejná, jako reprezentace komplexních čísel. Komplexní čísla se dají rozložit na reálnou část a imaginární.
F (u, v) = R(u, v) + jI(u, v) (27)
kde R(u, v) je reálná část komplexního čísla a I(u, v) je komplexní část. Komplexní čísla se také dají reprezentovat velikostí a fázovým posunem.
F (u, v) = |F (u, v)| · ejφhu,vi (28) Pro |F (u, v)| platí
|F (u, v)| =qR(u, v)2+ I(u, v)2 (29) a pro φhu, vi platí
φhu, vi = tan−1I(u, v)
R(u, v) (30)
Pro zpětnou transformaci z frekvenční oblasti do časové oblasti platí f (x, y) =
N −1
X
u=0 M −1
X
v=0
F (u, v)ej2π(u·xN v·y
M) (31)
5 ZÁKLADNÍ ALGORITMY PRO ZPRACOVÁNÍ OBRAZU 28
Obrázek 20: Rozdělení frekvenčního spektra
Obrázek 21: 3D zobrazení spekter a)Dolní propusť b)Horní propusť c)Frekvenční spektrum bez eliminace frekvencí
Ze získaného frekvenčního obrazu F (u, v) se dají vyčíst informace o ostrosti obrázku.
Obrázek 20 ukazuje rozložení frekvencí. Frekvenční filtry pracují na principu eliminací jednotlivých kmitočtů ve frekvenčním spektru. Obrázek 21 zobrazuje 3D vykreslené spektru a eliminaci kmitočtů pro jednotlivé druhy filtrů.
IMAQ Vision
Obrázek 22: Funkce IMAQ Vision – Frekvenční oblast
5 ZÁKLADNÍ ALGORITMY PRO ZPRACOVÁNÍ OBRAZU 29
5.3 Prahování
Prahováním (Tresholding) se rozumí, rozdělení obrazu do dvou oblastí. Na oblast, kde úro- veň jasu nedosahuje patřičné hodnoty, a na druhou oblast, kde úroveň jasu tuto hodnotu jasu překračuje. První oblast se označuje 0 a druhá oblast se označuje 1. Rozdělení je velmi dobře patrné na histogramu viz. obrázek 24. Obraz po prahování má pouze dvě hod- noty jasu (1bitová barevná hloubka), proto se takovým to obrázkům říká binární obrázky.
Obrázek 23 ukazuje příklad prahování.
Obrázek 23: Příklad prahování
Obrázek 24: Prahování na histogramu
Obrázek 25: Popis histogramu pro prahování
Velmi užitečnou funkcí je automatické prahování, které umožňuje prahovací hodnotu posouvat v závislost na rozložení intenzity v obraze.V IMAQ Vision je implementováno několik metod, pro automatické prahování. Všechny metody využívají histogram, pro od- vození prahovací hodnoty. Obrázek 25 zobrazuje histogram, kde:
5 ZÁKLADNÍ ALGORITMY PRO ZPRACOVÁNÍ OBRAZU 30
i – reprezentuje úroveň šedé
k – reprezentuje úroveň prahovací hodnoty
h(i) – reprezentuje počet pixelů pro jednotlivé úrovně šedé N – počet všech úrovní šedé (8bitový obraz ⇒ 256 úrovní) n – celkový počet pixelů v obrázku
Metody pro automatické prahování v IMAQ Vision:
Clustering – prahovací hodnota k je dána podmínkou µ1+ µ2
2 = k (32)
Kde µ1 jsou všechny pixely ležící mezi 0 a k a µ2 jsou všechny hodnoty, které leží mezik + 1 a 255.
Interclass Variance – Tato metoda je velmi podobná metodě Clustering
Metric – prahovací hodnota je hodnota pixelu, pro který je následující výraz minimální:
k
X
i=0
h(i)|(i − µ1)| +
N −1
X
i=k+1
h(i)|i − µ2| (33)
Kde µ1 jsou všechny pixely ležící mezi 0 a k a µ2 jsou všechny hodnoty, které leží mezi k + 1 a 255.
Moments – k-tý moment m obrazu je počítán jako mk = 1
n
N −1
X
i=0
ik· h(i) (34)
Prahování je velmi důležitou funkcí pro binární morphing. Při prahování barevných obrázků se prahuje každá vrstva obrázku zvlášť.
5 ZÁKLADNÍ ALGORITMY PRO ZPRACOVÁNÍ OBRAZU 31
5.4 Hranová detekce
Hranová detekce slouží k nalezení hran objektů, ze kterých se určují rozměry, plocha a další parametry objektu. Hranovou detekci lze rozdělit na detekci všech hran v obrazu, někdy se tato detekce označuje za filtraci, a detekci v definovaném řezu.
5.4.1 Detekce všech hran v obraze
0 1 1
−1 0 1
−1 −1 0
(35)
0 1 1
−1 0 1
−1 −1 0
(36)
Obrázek 26: Nalezení hran různými konvolučními jádry
Zde se využívá konvoluce obrazu s konvolučním jádrem. Konvoluční jádro udává vlast- nosti hranového detektoru, proto různé hodnoty konvolučního jádra hledají různé hrany jak ukazuje příklad.
Těchto hranových detektorů se nejvíce využívá při segmentaci obrazu, kde není kritickou hodnotou strojový čas, protože konvoluce má složitost N2.
5.4.2 Detekce hran v definovaném řezu
V tomto případě je detekce jednodušší a rychlejší, protože celý problém díky zvolenému řezu přechází z 2D do 1D prostoru. Na obrázku 27 je schématicky znázorněn průběh intenzity, která byla vybrána řezem. Výpočet hrany je možný několika metodami, ale nejjednodušší metodou je diference.
∆f (n)
∆n = f (ni) − f (ni+1) (37)
5 ZÁKLADNÍ ALGORITMY PRO ZPRACOVÁNÍ OBRAZU 32
1 – Pixel
2 – Úroveň šedé barvy 3 – Šířka
4 – Šířka přechodu 5 – Kontrast
6 – Nalezená hrana
Obrázek 27: Znázornění hledání hrany v řezu
Z diference se hledá maximum nebo se takto vzniklé pole prahuje určitou prahovací hod- notou, která vybere jednotlivé hrany.
IMAQ Vision
Obrázek 28: Funkce IMAQ Vision – Hranová detekce
5.5 Hledání vzoru
Anglicky se tato metoda označuje Pattern Matching a je použitelná tam, kde chceme srovnat část obrazu s předlohou. Asi nejlépe to vystihuje obrázek 29 na kterém je ukázáno hledání SMD elektronické součástky na desce plošného spoje. V IMAQ Vision je definováno několik metod hledání vzoru, ale asi nejznámější, i když ne nejlepší, je metoda dvojrozměrné korelace, která je definovaná jako:
Ci,j =
L−1
X
x=0 K−1
X
y=0
w(x, y)f (x + i, y + j) (38)
kde
i = 0, 1, . . . , M − 1 (39)
5 ZÁKLADNÍ ALGORITMY PRO ZPRACOVÁNÍ OBRAZU 33
Obrázek 29: Ukázka metody hledání vzoru
j = 0, 1, . . . , N − 1 (40)
Obrázek 30 názorně popisuje význam jednotlivých promněnných ve vztahu 38. w(x, y) je
Obrázek 30: Korelace
hledaný vzor a f (x, y) je obraz, ve kterém se hledá vzor.
IMAQ Vision
Obrázek 31: Funkce IMAQ Vision – Hledání vzoru
5 ZÁKLADNÍ ALGORITMY PRO ZPRACOVÁNÍ OBRAZU 34
5.6 Kalibrace obrazu
Obrázek 32: Zkreslení obrazu
Kalibrací se přiřazuje vzdálenost v obraze, zároveň se odstraňují nežádoucí jevy např.
perspektiva, soudečkové zkreslení obrazu, natočení obrazu. Jinými slovy kalibrací se při- řazuje jaká vzdálenost ve snímané scéně odpovídá jednomu pixelu. Obrázek 32 ukazuje zkreslení obrazu, které je nutné pro měření eliminovat.
Problematika kalibrace (někdy se také označuje jako registrace) obrazu je velice obsáhlá a její popis je nad rámec mé diplomové práce, proto zde jen nastíním problematiku.
Při kalibraci je předem známá vzdálenost mezi tečkami a jejich rozměr. Tečky jsou při kalibraci umístěny na projekční ploše, kterou snímá kamera. Obraz s tečkami se díky zna- lostem parametrů dané kalibrační plochy narovná a upraví. Informace o postupu „opravyÿ obrázku se uloží do obrázku, který se pak využívá při úpravě obrázku bez kalibrační mřížky (snímaného za provozu stroje).
IMAQ Vision
Obrázek 33: Funkce IMAQ Vision – Kalibrace obrazu
5 ZÁKLADNÍ ALGORITMY PRO ZPRACOVÁNÍ OBRAZU 35
5.7 Vybrané funkce IMAQ Vision
IMAQ Vision
Obrázek 34: Funkce IMAQ Vision – Overlay
Obrázek 34 ukazuje funkce, které slouží k nedestruktivnímu překrytí obrazu obrazci a nápisy. Nedestruktivní zde znamená, že obrazec není vkreslen do obrazu, ale je vytvořena jakoby vrstva nad obrazem která překrývá obraz. Výhodou je, že kdykoliv v průběhu měření z takto překresleného obrazu můžeme dostat neporušený obraz. Další obrázek 35 IMAQ Vision
Obrázek 35: Funkce IMAQ Vision – Morphology
ukazuje funkce pro binární morphing. Tyto funkce dovolují dělat dilataci a erozi obrazu, počítat částice v obrazu atd.
Pro zobrazení obrazu je v IMAQ Vision definováno několik druhů funkcí, ale tou nej- jednodušší cestou jak zobrazit obrázek je využití některých funkcí z palety funkcí, kterou zobrazuje obrázek 36.
IMAQ Vision
Obrázek 36: Funkce IMAQ Vision – External Display
6 NÁVRH APLIKACE S PRAKTICKOU REALIZACÍ 36
6 Návrh aplikace s praktickou realizací
6.1 Úvod do problematiky
Firma ELCOM, a.s, Divize Virtuální Instrumentace (dále jen ELCOM) dostala zakázku na realizaci zařízení na kontrolu a manuální seřizování barvy rozhraní ED modulů. Rea- lizaci strojní části s rozvaděčem a vzduchotechnikou zadala firmě TEMEX s.r.o. ELCOM realizoval kamerový systém s aplikací pro řízení zařízení (stroje). Právě realizaci aplikace jsem si vybral pro mou praktickou část diplomové práce.
6.1.1 Co se vlastně seřizuje?
Obrázek 37: ED Modul
Jsou to ED moduly, které firma Autopal vyrábí. ED modulem se rozumí žárovka nebo výbojka spolu s čočkou a zrcadlem, které usměrňuje tok světla. Na obrázku 37 je vidět jak takovýto modul vypadá.
Mezi žárovkou/výbojkou se nachází clonka, která vytváří rozhraní světla a tmy. Toto rozhraní je čočkou zaostřeno v 10 m. Vlivem ohybu světla na clonce a chromatické aberaci čočky není toto rozhraní jen přechod z bíle do černé barvy, ale vzniká barevný přechod, který je potřeba seřídit na danou barvu deformací clonky. Deformací clonky se také na- stavuje ostrost rozhraní. Na obrázku 38 jsou vidět barevné zmetky, které nejsou žádoucí.
Obrázek 38: Modrý a červený zmetek
6 NÁVRH APLIKACE S PRAKTICKOU REALIZACÍ 37
6.1.2 Typy ED modulů
Obrázek 39: Typy rozhraní
ED modulů je celá řada a aplikace se jednotlivé moduly „učíÿ. Moduly se liší jednak žárovkami či výbojkami, které mají různou barvu světla tak i clonkami, které vytvářejí vlastní rozhraní. Obrázek 39 ukazuje jednotlivé typy geometrického rozhraní. U ED-modulů pro levosměrný provoz jsou tvary rozhraní vertikálně symetrické kolem kolena.
6.2 Popis stroje
Stroj se skládá z projekční komory, která je posazena na kovové desce. V projekční ko- moře je oboustraná projekční plocha (jedna strana slouží ke kalibraci kamery) na kterou se promítá obraz, který je snímán kamerou umístěnou také v projekční komoře. Dále je v pro- jekční komoře umístěno zrcadlo, které slouží k lomu světla, aby zařízení bylo kompaktnější.
Před zrcadlem je umístěna čočka, která zkracuje projekční vzdálenost z 10 m na 1,565 m.
Pod kovovou deskou se nachází rozvaděč, ve kterém je provedeno elektrické jištění stroje a také je vněm umístěn zdroj pro napájení ED modulu. Vedle rozvaděče je umístěn počí- tač, který je volně uložen v prostoru pod kovovou deskou a zajištěn proti scizení visacím zámkem. Dále je pod deskou umístěna vzduchotechnika, která slouží k vysunutí vidlice a razítka.
Zepředu je na projekční komoře umístěn LCD panel, který slouží k zobrazování in- formací obsluze stroje. Na kovové desce před projekční komorou je umístěn odnímatelný přípravek pro ED moduly, který je vybaven pákou, kterou se clonka zpětně deformuje. Za přípravkem je výsuvné razítko s výsuvnou vidlicí, na které je umístěna závitová tyč. Po závitové tyči se vlivem otáčení kolečka pohybují seřizovací hroty, které provádějí vlastní de- formaci clonky. Celý výsuvný mechanizmus je opatřen krytem, který pro správnou činnost stroje musí být nasazen.
Vlevo pod kovovou deskou jsou umístěny ventily vzduchotechniky spolu s manometrem.
Fotografie stroje můžete vidět v přiloženém manuálu nebo na přiloženém CD.
6 NÁVRH APLIKACE S PRAKTICKOU REALIZACÍ 38
6.3 Ovládání stroje
Pro zapnutí stroje slouží otočný vypínač umístěný ze předu na rozvaděči. Po zapnutí by se měl automaticky zapnout počítač.
K ovládání stroje slouží tlačítka, která jsou umístěna na pravé straně kovové desky.
Stroj má celkem tři ovládací tlačítka.
Start – má funkci v závislosti na aplikaci. Funkce tohoto tlačítka bude ještě popsána dále.
Ovládací napětí – slouží k aktivaci stroje. Stroj je po startu neaktivní, do doby než se stiskne toto tlačítko. Stav ovládacího napětí je indikováno podsvětlením tohoto tlačítka.
TOTAL STOP – slouží k okamžitému zastavení stroje. Stisk tlačítka vypne ovládací napětí. Do doby než je tlačítko odaretováno je stroj zastaven. Počítač běží a na obrazovce zobrazuje pokyn obsluze pro odaretování tlačítka. Po odaretování tohoto tlačítka je nutné stisknout tlačítko Ovládací napětí
Dalšími ovládacími prvky jsou klávesnice s myší. Ty jsou uloženy v zásuvné přihrádce pod kovovou deskou. Klávesnice s myší slouží pouze k parametrizaci modulů a k údržbě prováděné firmou ELCOM.
Posledním ovládacím prvkem je vzduchový ventil, který je umístěn na levé straně pod kovovou deskou. Vzduchový ventil slouží k uzavření přívodu stlačeného vzduchu.
6.4 Popis aplikace ED-H7
Aplikace se skládá ze dvou částí.
Provozní část aplikace slouží k seřizování. Zobrazuje výsledky testů, aktuální snímek, výpisy programu a stav stroje. Tato část aplikace vytváří soubory výsledků s výsled- nými snímky po seřízení. Obrázek 40 ukazuje rozložení informačních prvků na čelním panelu. Aplikaci lze ovládat modrými tlačítky, které jsou umístěny na spodním okraji obrazovky. Význam jednotlivých tlačítek:
• Nastavit modul – Zobrazí dialog pro výběr modulu. Tato operace je autorizo- vaná, to znamená, že obsluha bude vyzvána, aby zadala heslo.
• Parametrizace – Vyvolá druhou část aplikace. Nutná autorizace.
• Stop – Pokud probíhá měřící cyklu, stiskem tohoto tlačítka se přeruší.