Oproti jiným oblastem průmyslové automatizace je specifikem
aplikací strojového vidění vysoký počet neúspěšných řešení. Přes
veškeré pokroky oboru je návrh systému strojového vidění relativně
velmi náročný na porozumění a respektování základních principů
zobrazování a práce s obrazovými daty. Nejdůležitější je právě první
fáze návrhu, tj, stanovení geometrického uspořádání inspekčního
systému, volba kamery, objektivu, osvětlení a výběr vhodných
technických a programových prostředků pro zpracování obrazových
dat. Uděláme-li zde zásadní chybu, je pravděpodobnost neúspěchu velmi
vysoká.
Ta nejdůležitější rozhodnutí musíme učinit jako první. Problematika
je dosti rozsáhlá a tento článek může postihnout jen její maličký
zlomek.
Celkové uspořádání úlohy
Volbou prostorového uspořádání již do jisté míry předurčujeme typ a
počet kamer a osvětlovacích jednotek a požadavky na ohniskové
vzdálenosti objektivů. Musíme mít jasno, z jakého směru a vzdálenosti
bude kamera scénu snímat, přitom musíme stanovit i dostatečné
rozlišení kamery, případně nutnost použití více kamer. Rozhodnout
musíme současně o způsobu osvětlení a jeho barvě – toto souvisí i s
eliminací rušivého světla a tedy s návrhem zastínění
a s případnou nutností použití barevných či polarizačních
filtrů v kameře.
Technické a programové prostředky zpracování obrazových
dat
Zde máme na výběr mezi dvěma koncepcemi:
Využití tzv. inteligentních kamer a zpracování obrazu v rámci
schopností těchto kamer
Připojení kamer k počítači a zpracování obrazových dat
standardním počítačem
Podstatným kritériem zde kupodivu není cena výsledného řešení – obě
koncepce jsou přibližně stejně nákladné. Důležitý je především
požadavek na výpočetní výkon, pružnost a variabilnost programového
vybavení. Inteligentní kamery samy zpracovávají obrazová data a
navenek bývají vybaveny binárními výstupy, umožňujícími signalizovat
výsledek procesu. Většinou neumožňují volné programování, lze je pouze
zkonfigurovat prostřednictvím sériové linky nebo Ethernetového
připojení. Jsou obvykle vybaveny specializovanými signálovými
procesory nebo nízkospotřebovými RISC procesory s taktem v řádu stovek
MHz a jednoduchými operačními systémy reálného času. Již tato
fakta ukazují na jejich omezení. Inteligentní kamery jsou vybaveny jen
několika základními prostředky pro zpracování obrazu a hodí se
jen pro jednoduché úlohy. Na druhé straně velké množství úloh je
obvykle řešeno překvapivě prostými prostředky, a tady tyto
integrované kamery vyhoví. Odhadnout situaci předem vyžaduje hodně
znalostí, citu a zkušeností. Jakmile je totiž nutno např. si poradit s
proměnlivou scénou, reagovat na změny pozic, počtu a tvarů objektů,
změny osvětlení nebo řešit složité a výkonově náročné algoritmy,
rychle narazíme na limity, které jsou pevné a nepřekonatelné.
Snaha řešit inteligentními kamerami úlohy přesahující jejich možnosti
stojí za mnoha neúspěšnými projekty.
Připojení kamer ke standardnímu počítači je nutnou volbou pro
složitější aplikace, ale i u jednodušších aplikací nám ponechává větší
prostor pro korekce případné počáteční nepřesnosti odhadu požadavků.
Výkon moderních procesorů dramaticky převyšuje i ty nejlepší chytré
kamery a vestavný počítač již také nemusí mít podobu velké krabice s
několika ventilátory. Navíc mnoho typických operací s obrazovými daty
lze zrychlit paralelním zpracováním na více jádrech současně. Některé
programové systémy, a průkopníkem těchto technologií je např. systém
strojového vidění VisionLab, dokáží využívat mohutného masivně
paralelního výkonu současných grafických procesorů. Zatímco dnešní CPU
disponují až čtyřmi jádry, GPU rozdělí výpočet např. na 240 jader.
Takový systém pak dokáže v reálném čase s obrazem provádět ještě
nedávno nemyslitelné operace.
I u sebelepšího programového prostředí můžeme někdy narazit absenci
požadované funkce nebo na její nedostatečnou výkonnost. Klidu nám může
dodat otevřená možnost doplňování vlastního kódu. A kdyby ani to
nepomohlo naše požadavky splnit, přinejhorším můžeme změnit celý
programový systém pro strojové vidění a vyhnout se tak neúspěchu při
řešení zakázky. Větší manévrovací prostor se vždy hodí.
V mnoha případech ještě postačí, když jediným výstupem systému
vizuální inspekce je binární výstup, signalizující vadný výrobek,
stále častěji již systémy strojového vidění nepracují odděleně od
zbytku světa, ale bývá vyžadována jejich integrace do informačních
systémů podniku. Programové prostředí by mělo umožňovat zařazení
vizuální inspekce do širšího kontextu řídicího a vizualizačního
systému, mělo by přenášet veškerá, tedy i obrazová, data v síti,
komunikovat s PLC, spolupracovat s SQL servery, HTTP servery atd.
atp.
Dále předpokládejme, že navrhujeme systém, kde jsou kamery
připojeny ke standardnímu počítači. Zbývá vybrat vhodnou kameru,
objektiv a osvětlení.
Kamera
Kritérií pro výběr kamery je velmi mnoho, můžeme zvažovat CCD nebo
CMOS detektor, velikost a rozlišení čipu, černobílý či barevný snímač.
V případě barevného snímače se může jednat o jednočipové provedení,
tříčipové provedení nebo sekvenční snímání s černobílým senzorem a
barevnými filtry. Připojení kamery může být analogové nebo digitální.
V případě digitálního rozhraní máme na výběr z Ethernet/IP, USB nebo
Firewire. Digitální kamery mohou běžet buď s pevnou snímkovou
frekvencí, mohou být externě spouštěny, mohou běžet volně
s akumulací osvětlení, mohou poskytovat různě komprimovaný proud
dat nebo mohou poskytovat nezkreslená syrová data atd. – při výběru
kamery hraje roli opravdu nepřehledné množství kritérií.
Pro účely strojového vidění si výběr zjednodušme. Především musíme
zvolit potřebné bodové rozlišení – pro účely měření v obraze nám
rozlišení určuje velikost měřeného předmětu a požadavek na přesnost
jeho měření. Jeden obrazový bod musí teoreticky odpovídat přesnosti
měření. Tato teoretická přesnost a reprodukovatelnost měření je
snižována mimo jiné vlivem šumu v obraze a nežádoucími artefakty,
nutně provázejícími ztrátovou kompresi obrazových dat. Někdy dokonce
můžeme využitím statistických metod dosáhnout i subpixelové
přesnosti měření, obecně a bez znalosti věci ale takto navrhovat
systém nelze. V případě jednočipové barevné kamery musíme brát v
potaz přibližně poloviční lineární rozlišovací schopnost. Barevná
mozaika má obvykle ze čtveřice obrazových bodů dva body zelené
a po jednom bodu červeném a modrém. To přináší nejen nižší
rozlišovací schopnost, ale také např. vzájemný posun obrazu
v jednotlivých barevných kanálech.
Uspořádání barevné mozaiky na CCD čipu
Kromě rozlišení ještě musíme zvolit připojení a druh kamery.
Analogovou kameru pro potřeby strojového vidění pravděpodobně
odmítneme. Digitálních kamery bývají obvykle připojovány na větší
vzdálenost pomocí Ethernetu a na krátkou vzdálenost prostřednictvím
USB. Samotný princip digitálního připojení kamer zdaleka není zárukou
kvality obrazu. Kamery jsou si vesměs svou konstrukcí velice podobné -
naprostá většina digitálních CCD kamer obsahuje podobný integrovaný
kamerový řadič, který digitalizuje data z CCD čipu, vyvažuje
barevnost, interpoluje barvy z Bayerovy mozaiky a ztrátově
komprimuje data do MJPEG nebo do MPEG4 datového proudu. Kvalita těchto
operací je vzhledem ke kompromisně omezeným vlastnostem integrovaného
obrazového procesoru vždy viditelně limitována a výsledný obraz je tak
zatížen výraznými nežádoucími artefakty. Proto již ve stádiu
koncepčního návrhu systému strojového vidění musíme velmi přesně
tušit, jak kvalitní obraz budeme potřebovat. Čistota, stabilita a
přesnost obrazu určitě není podstatná pro všechny typy aplikací, někdy
je až s podivem, že vizuální inspekce funguje na základě
přítomnosti či absence několika rozmazaných skvrn na předem
definovaných pozicích. U složitějších aplikací ale právě kvalita
obrazu bývá pro stabilní a tedy úspěšný provoz inspekčního systému
rozhodující. Nejlepší dosažitelnou kvalitu obrazu přinášejí kamery,
které poskytují syrová (tzv. RAW) obrazová data. Obraz není těmito
kamerami nijak transformován, barevně vyvažován, interpolován ani není
nijak komprimován. To přináší bezkonkurenční přesnost obrazu, který je
k dispozici v připojeném počítači a zde může být zpracován bez
jakýchkoliv kompromisů omezujících jeho kvalitu. Někdy může být na
překážku vysoký datový tok mezi kamerou a počítačem. Na krátkou
vzdálenost připojení tyto požadavky výborně řeší rozhraní USB 2.0
s datovým tokem až 480 Mb/s (jedním kabelem na 5m, při využití
aktivních prodloužení a hubu až na 30m).
Objektiv
Volba typu objektivu a jeho zorného úhlu patří k nejdůležitějším
rozhodnutím při návrhu systému strojového vidění. Běžné typy objektivů
promítají obraz do plochy s tzv. perspektivní projekcí. To nás nutí
zabývat se při návrhu vlastnostmi projektivního zobrazování
třírozměrné scény do dvourozměrné plochy povrchu snímacího senzoru.
Zorné pole objektivu je v tomto případě tvořeno pohledovým komolým
kuželem. Obdélníková plocha obrazového senzoru pak tento kužel dále
zredukuje na pohledový jehlan. Jeho vrchol nazýváme ohniskem projekce.
Při převodu obrazu scény uvnitř pohledového jehlanu do obrazové plochy
dochází ke značné ztrátě informace. Každá polopřímka procházející
ohniskem projekce je v obrazové ploše reprezentována jediným
bodem.
I za teoretického předpokladu dokonalého objektivu s lineárním
převodem úhlu na pozici a snímání rovinné dvourozměrné předlohy se
musíme vyrovnat se zkreslením geometrie obrazu vlivem perspektivní
chyby. Představme si obraz tmavých teček na světlém pozadí s
konstantním rozestupem teček v osách x i y. Abychom dosáhli
konstantního odstupu teček za předpokladu přesné perspektivní projekce
i v promítnutém obraze, musí být předloha snímána z vnitřního povrchu
kulové plochy. Při rovinné předloze se tečky v promítnutém obraze
budou od sebe vzdalovat v závislosti na jejich vzdálenosti od optické
osy.
Zkreslení geometrie rovinného obrazu perspektivní
projekcí
Ztráta prostorové informace při perspektivní projekci nám velmi
komplikuje např. přesná měření rozměrů třírozměrných těles. Bez
předchozí znalosti tvarů snímaných předmětů nejsme schopni tyto chyby
dodatečně korigovat. I při znalosti tvarů předmětů vyžaduje
korekce projektivních chyb identifikaci objektů programovým vybavení
pro strojové vidění, je tedy vyžadována vysoká úroveň porozumění
obrazu. Kromě normálních objektivů s perspektivní projekcí existují
i speciální objektivy s orthografickou projekcí. Tyto objektivy
nezobrazují scénu s ohniskovou perspektivou, ale s kolmou paralelní
projekcí. Tedy velikosti zobrazovaných předmětů jsou vždy stejné,
nezávisle na jejich vzdálenosti. To zní jako dobré řešení všech
problémů s přesnými měřeními v obraze, jenže má to jeden háček. Při
tomto typu projekce musí být velikost vstupní plochy objektivu shodná
s plochou snímané scény. Tyto tzv. telecentrické objektivy jsou pak
velmi rozměrné a drahé. Princip telecentrických objektivů je
celkem prostý. Pomocí aperturní clony umístěné v rovině obrazového
hlavního bodu (tj. ohniska čočky) se odstíní veškeré paprsky,
přicházející z jiných směrů než rovnoběžně s optickou osou.
Princip projekce normálního, telecentrického a
hypercentrického objektivu
Aby nebyl všem potížím konec, významná omezení přesnosti měření v
obraze nám mohou způsobit geometrická zkreslení obrazového pole
objektivů, a ty se vyskytují i u telecentrických objektivů. Zkreslením
zde míníme rozdíl mezi teoretickou pozicí obrazového bodu, která plyne
z principu projekce a skutečnou pozicí bodu zobrazeného reálným
objektivem. U skutečných objektivů není nikdy převod mezi úhlem pozice
(nebo vzdáleností) zobrazovaného objektu od optické osy a mezi
vzdáleností obrazu tohoto objektu v ploše obrazu zcela lineární.
Transformace úhlu na vzdálenost má charakter kvadratického, častěji
však kubického polynomu. I velmi dobré objektivy mají při použití s
několikamegapixelovými kamerami obvykle radiální zkreslení v rozsahu
jednotek až desítek pixelů. V některých aplikacích, kdy např. čteme
texty, kódy nebo počítáme součástky, to vadit nemusí. V aplikacích,
kdy jsou vyžadována přesná měření rozměrů, se kvalita objektivů stává
zásadním kritériem.
Obvyklá geometrická zkreslení obrazového pole
Zatímco s principy projekce nic nenaděláme, zkreslení obrazového
pole můžeme softwarově korigovat a dosáhnout vynikají subpixelové
přesnosti i s běžnými objektivy. Problémem může být výpočetní
náročnost korekčních algoritmů. Např. systém VisionLab provádí tyto
korekce pomocí grafického procesoru se zcela minimálním vlivem na
zatížení počítače.
Osvětlení
Zatímco v předchozích bodech lze správné řešení předem rozumově
velmi dobře odhadnout, často i přesně spočítat, volba správného
osvětlení vyžaduje značné zkušenosti a často i hodně experimentování.
Zvláště, je-li scéna tvořena transparentními, lesklými nebo reliéfně
nevýraznými objekty, je návrh osvětlení pro celkový úspěch klíčový.
Musíme zvolit druh, počet a pozice osvětlovacích jednotek a barvu
jejich světla. Často je nutno vyřešit odstínění nežádoucího světla
z okolí pomocí zastínění a barevných filtrů v kameře. K významné
redukci nežádoucích odlesků mohou přispět polarizační filtry.
Levné osvětlení lze řešit např. pomocí zářivkových trubic, případně
i bez elektronických předřadníků, pak ale kamera musí být schopna
dostatečně dlouhých expozičních časů. Kvalitnější a lépe
parametrizovatelné osvětlení poskytují diodové osvětlovací jednotky,
jejichž cena se již natolik snížila, že nebývá překážkou jejich
nasazení. Je-li potřeba osvětlení během činnosti řídit, např.
nastavovat jas, barvy nebo spouštět záblesky, je velkou výhodou
možnost řízení osvětlovacích jednotek přímo z kamer.
Na závěr
Jestliže jsme v předchozích krocích nic podstatného nepřehlédli,
pak zbývá zvolit jen vhodné programové vybavení pro zpracování obrazu
a jeho porozumění (a samozřejmě vše zkonfigurovat a
naprogramovat) a úspěch zakázky by již nemělo nic ohrozit.
Zajímavé vlastnosti pro použití v systémech strojového vidění
nabízejí digitální průmyslové kamery DataCam. Jedná se o nízkošumové
CCD kamery, které poskytují čistá syrová obrazová data s
šestnáctibitovou dynamikou jasu pixelů. Jsou připojeny k počítači
prostřednictvím USB kabelu, kterým jsou současně napájeny. Kamery
vynikají kvalitou a čistotou obrazu.
Digitální kamery DataCam
Každá z těchto kamer dokáže přímo ovládat až čtyři osvětlovací
jednotky DataLight, které jsou k dispozici v podobě kruhových
osvětlovačů, plošných osvětlovačů, zábleskových osvětlovačů
i prosvětlovacích panelů. U jednotek DataLight si můžeme vybrat
barvu a vyzařovací úhel diod a případně i přítomnost
a druh difuzoru.
Osvětlovací jednotky DataLight s kamerou DataCam
Na vrcholu pyramidy komponent systémů strojového vidění
stojí programové vybavení schopné porozumět obrazům. Bohatě vybavený
systém VisionLab si dává za cíl maximálně usnadnit tvorbu aplikace
strojového vidění a snadnou integraci této aplikace do
struktury informačních systémů. Mezi jeho přednosti patří:
snadná integrace digitálních obrazů a vizuální inspekce
do aplikací v průmyslové automatizaci
intuitivní editace kroků řetězce strojového vidění
podpora plně paralelního zpracování na více jádrech a více
procesorech
podpora masivně paralelního zpracování obrazu grafickým
procesorem
pokročilé úpravy obrazu prováděné grafickým
procesorem
Morfologické transformace obrazu mohou být pomocí GPU
prováděny na proudu dat z kamery v reálném čase
přenos obrazových dat v počítačových sítích
archivace obrazových dat v podobě snímků i
videosouborů
otevřené rozhraní pro doplňování kroků strojového
vidění
sdílení dat s aplikacemi systému Control
Web
Zájemce o popis dalších úskalí a principů návrhů systémů
strojového vidění si může z webu www.mii.cz stáhnout systém
VisionLab, kde celý první díl přiložené dokumentace je
věnován obecným principům snímání a zpracování digitálních obrazů.
Článek ve
formátu PDF a v podobě, jak vyšel v čísle 4/2010 magazínu
Automa je zde: Automa_04_2010.pdf
Roman Cagaš
|