O společnostiProduktyObchodPodpora
Moravské přístroje
Hlavní stránka
O společnosti
Stažení software
Stažení dokumentů
Produkty
Control Web
Strojové vidění VisionLab
Kamery DataCam a osvětlovače DataLight
Průmyslový počítačový systém DataLab
Vědecké kamery
Speciální technika
Ceník
Aktivace produktů
Služby
Školení
Zakázková řešení
Podpora
Volba kamery a objektivu pro Strojové vidění
Control Web - Ukázkové aplikace

Hlavní stránkaProduktyStrojové vidění VisionLab

Nové algoritmy v systému strojového vidění VisionLab
 Při představování systému strojového vidění VisionLab bývají obvykle presentovány pokročilé algoritmy pro rozpoznávání obrazových vzorů, rozpoznávání obličejů nebo obecných objektů v obraze, nezávisle na jejich jasu, natočení i jejich velikosti. Vývoj tohoto systému ale probíhá i v oblastech, které nejsou na první pohled tak výjimečné, ale které mohou přinášet nová a unikátní řešení a které pro celkovou kvalitu produktu hrají významnou roli.

Snad veškeré systémy strojového vidění dokážou číst text i jednorozměrné čárové a maticové kódy. Přibližme si, na první pohled jednoduchou, problematiku, jakou je detekce a lokalizace čárových a maticových kódů v obraze.

Tradiční metody detekce a lokalizace

Zdánlivá jednoduchost je zde trochu klamná. V literatuře je popsáno velké množství algoritmů pro tento účel. Mnohé metody k lokalizaci čárového kódu využívají gradientů jasů. Používá se např. Robinsonův nebo Sobelův operátor pro získání velikostí i směrů gradientů. Poté se vyhledávají oblasti s vysokou hustotou gradientů shodného směru. Další metody využívají k lokalizaci morfologické operace. Pomocí Cannyho operátoru jsou detekovány hrany a stanovován jejich směr. Obdobně se používá i skeletonizace. Obraz je rozdělen na nepřekrývající se bloky, pro každý blok jsou vytvořeny skelety jednotlivých spojitých částí a je zkoumána jejich rovnoběžnost. Používána bývá i Houghova transformace nebo některá z vlnkových transformací. Při obvyklém řešení v CPU vzhledem ke spotřebě výpočetního výkonu jsou tyto metody problematické pro práci v reálném čase. Nejjednodušší a nejčastěji používanou metodou je čtení obrazových bodů podél skenovacích čar a vyhodnocování jasových profilů.

Společným problémem výše uvedených metod je malá odolnost na změny jasu a především pevné měřítko detektorů. Proto bývá problematická detekce ve velkém rozsahu velikostí obrazců kódů. Pro spolehlivou detekci potřebujeme multiměřítkový algoritmus.

Obdobné potíže přináší i detekce maticových kódů. Výjimkou jsou QR kódy, protože obsahují tzv. vyhledávací vzory, které velmi usnadňují lokalizaci těchto kódů v obraze.Vyhledávací vzory QR kódů mají takový tvar, že při přechodu tímto vzorem jakýmkoliv směrem je vždy zachován stejný poměr délek tmavých a světlých lineárních oblastí 1:1:3:1:1. I pomocí nejjednodušší metody čtení obrazových bodů podél skenovacích čar můžeme nejen kód nalézt, ale i stanovit jeho měřítko. Hledání ostatních maticových kódů přináší podobné potíže, jako hledání čárových kódů – opět vesměs předem neznáme měřítko.

Měřítková pole obrazových znaků

V rámci rozvoje systému VisionLab byly vyvinuty nové zajímavé algoritmy, které redukují velikost obrazových dat do malých polí obrazových znaků (features), které jsou následně rychle zpracovatelné. Tato pole jsou vytvářena pro škálu několika, obvykle osmi, měřítek.

Znaky, popisující zvolenou charakteristiku obrazu v nějaké oblasti, mohou být např. vstupními daty neuronové sítě nebo v případě dobře zvolených charakteristik mohou být hledané objekty spolehlivě detekovány a lokalizovány i algoritmickými postupy.

Redukce objemu dat je velmi značná, obraz s miliony obrazových bodů je v polích znaků reprezentován stovkami, maximálně, při malých měřítcích znaků, tisíci elementy. Pro extrakci znaků z originálního obrazu jsou využívány masivně paralelní algoritmy, běžící v grafických procesorech a nezatěžující CPU počítače.

Lokalizace maticových kódů

Pro hledání a lokalizaci maticových kódů potřebujeme takový operátor, který bude mít maximální odezvu v místech lomů a křížení kontrastních linií obrazu. Pro tento účel vyhodnocujeme determinant Hessovy matice, tzv Hessián (Hessova matice je čtvercovou maticí druhých parciálních derivací obrazové funkce). Pro výpočet determinantu potřebujeme pro každý bod obrazu získat výsledky konvoluce obrazové funkce s druhou derivací Gaussovy funkce ve vodorovném, svislém i příčném směru. Pro zrychlení výpočtů použijeme aproximace jader Gaussova filtru pomocí Haarových vlnek. A toto vše potřebujeme provádět pro celou škálu měřítek. Zde nám hodně pomáhá využití integrálního obrazu, ze kterého lze počítat odezvy Haarových vlnek libovolných velikosti se stále stejnou výpočetní náročností.

Obr. 1: Odezvy detektoru maticového kódu v celé škále osmi měřítek

Obr. 1: Odezvy detektoru maticového kódu v celé škále osmi měřítek

Na obraze 1 vidíme místa nadprahových odezev Hessiánu vyznačená červenými kružnicemi. Velikosti kružnic současně ukazují měřítko dané odezvy. Jsou zobrazeny i jednotlivé měřítkové matice obrazových znaků.V jednotlivých měřítkových dvourozměrných polích je pak vyhledána ta lokalizace, která nejlépe odpovídá charakteru maticových kódů. Současně je tak nalezeno i správné měřítko pro následné čtení kódu.

Obr. 2: Odezvy na příliš velkých měřítkách

Obr. 2: Odezvy na příliš velkých měřítkách

Obr. 3: Správná detekce ukazuje současně správné měřítko

Obr. 3: Správná detekce ukazuje současně správné měřítko

Obr. 4: Maticového kód v obraze s mnoha strukturami a kontrastními hranami

Obr. 4: Maticového kód v obraze s mnoha strukturami a kontrastními hranami

Obr. 5: Nalezení maticového kódu v obraze s čárovým kódem a podobně velikými čtverečkovými strukturami

Obr. 5: Nalezení maticového kódu v obraze s čárovým kódem a podobně velikými čtverečkovými strukturami

Lokalizace čárových kódů

Čárový kód má jednodušší strukturu, ale jeho hledání není nikterak snadnější. Integrální obraz nám zde podstatně zrychluje nejen detekci v různých měřítkách, ale umožňuje rychle vyhodnocovat střední jas obrazu v libovolně velkých regionech.

Obr. 6: Zobrazení směrů gradientů jasu obrazu získaných pomocí Haarových vlnek v malém ...

Obr. 6: Zobrazení směrů gradientů jasu obrazu získaných pomocí Haarových vlnek v malém ...

Obr. 7: ... a velkém měřítku z integrálního obrazu

Obr. 7: ... a velkém měřítku z integrálního obrazu

Detektor čárových kódů vždy pro každý bod obrazu změří směr nejbližší kontrastní hrany. K tomu využívá znalost lokálního středního jasu, získaného z integrálního obrazu. Metoda je tak odolná vůči změnám jasu a kontrastu a pomocí volby velikosti testovaných regionů dobře pracuje ve velkém rozsahu měřítek. Celý tento proces, tak jako v předchozím případě, běží masivně paralelně v GPU.

Obr. 8: Čárový kód nalezený v obraze s různými druhy periodických struktur

Obr. 8: Čárový kód nalezený v obraze s různými druhy periodických struktur

Obr. 9: Vizualizace prvního kroku detekce, v červeném kanálu vystupuje směr kontrastní hrany v okolí, zeleně jsou signalizovány body, v jejichž definovaném rozsahu blízkosti ne nenachází žádná kontrastní hrana

Obr. 9: Vizualizace prvního kroku detekce, v červeném kanálu vystupuje směr kontrastní hrany v okolí, zeleně jsou signalizovány body, v jejichž definovaném rozsahu blízkosti ne nenachází žádná kontrastní hrana

Obr. 10: Lokalizace čárového kódu v měřítkovém poli obrazových znaků

Obr. 10: Lokalizace čárového kódu v měřítkovém poli obrazových znaků

Hledání vad povrchů

Hledání defektů povrchů výrobků je častou úlohou vizuálních inspekčních systémů. I tato problematika na první pohled vypadá jednoduše, ale opět zde narážíme na požadavek multiměřítkovosti detektorů. S výhodou můžeme použít obdobný matematická aparát a algoritmy jako ve výše popsaných případech. Pomocí systému VisionLab tak dokážeme hledat vady a nepravidelnosti obrazových struktur na hranicích jejich viditelnosti lidským okem.

Obr. 11: Kamerová hlava s rotujícími osvětlovači a kamerami DataCam

Obr. 11: Kamerová hlava s rotujícími osvětlovači a kamerami DataCam

Obr. 12: Detekované vady na povrchu plastových trubiček

Obr. 12: Detekované vady na povrchu plastových trubiček

Jako příklad použití může sloužit např. tester povrchových vad plastových trubiček, který současně ukazuje efektivitu a eleganci řešení zakázkových systémů vizuální inspekce v společném programovém prostředí systému Control Web, které dokáže jak řídit stroje v reálném čase, tak spolupracovat s kamerami a vstupně/výstupními jednotkami DataLab a také provozovat systém strojového vidění VisionLab.

Článek tak, jak vyšel v magazínu Automa je v PDF podobě zde: A05_2017_VisionLab.pdf.

Roman Cagaš

 
 | O společnosti | Produkty | Podpora | Stažení software | Stažení dokumentů | 
Moravské přístroje, a.s., Masarykova 1148, Zlín-Malenovice, 76302