Aktuální vydání

celé číslo

08

2019

MSV 2019 v Brně

celé číslo

Strojové vidění II: Úlohy, nástroje a algoritmy

Otto Havle
 
V předchozím díle tohoto seriálu (Automa č. 1/2008) bylo strojové vidění definováno jako specifická část oboru počítačové vidění, která se zabývá řešením úloh v procesu výroby. Stejně jako v oblasti hardwaru, ani v softwaru není komerčně výhodné vyvíjet pro každou úlohu strojového vidění speciální program. Dodavatelé softwaru tedy využili skutečnost, že existuje jen omezený počet aktuálních úloh, které se v různých variacích ve výrobě opakují. Na ně se soustředili a vyvinuli pro jejich řešení soubor nástrojů. Systémoví integrátoři tedy většinou nevyužívají k vývoji softwaru přímo algoritmy pro zpracování obrazu, ale řeší inspekci sestavením hotových nástrojů ve vývojovém prostředí inspekčního programu. Na obr. 1 je ukázáno zjednodušené schéma tohoto postupu. Stejně se ostatně postupuje i při vývoji řídicích systémů. Zde již také integrátor neprogramuje regulační smyčky a vizualizační obrazovky, ale využívá nástroje poskytované např. systémy typu SCADA.
 

Typické úlohy pro strojové vidění ve výrobě

Strojové vidění většinou řeší kontrolu produktů tak, aby byla zaručena jejich naprostá bezchybnost při výstupu z výrobního procesu. Výrobní proces lze definovat jako posloupnost výrobních operací. Existuje mnoho teoretických prací, které se zabývají vlivem organizace výrobního procesu na kvalitu výroby, vždy však obsahují podmínku bezchybného provedení alespoň některých výrobních operací k tomu, aby byl vyroben bezchybný výrobek. Právě strojové vidění umožňuje tuto podmínku splnit. Nejtypičtějším použitím strojového vidění ve výrobě je tedy kontrola správnosti provedení výrobní operace.
 
Nástroje strojového vidění se tudíž používají v úlohách spojených s kontrolou výrobní operace. Použije-li se velmi zjednodušený model výrobní operace [1], je možné se na výrobní operaci dívat jako na posloupnost těchto čtyř fází:
  1. shromáždění materiálů a součástí (load) – do této fáze patří i kontrola materiálu vstupujícího do operace,
  2. příprava materiálů a součástí k operaci (move) – nastavení dílů do operační polohy,
  3. provedení operace (process) – tím může být např. spojení dílů zalisováním,
  4. vyzvednutí výsledného produktu (unload) – zahrnuje i provedení výstupní kontroly.
V každé z těchto fází se může objevit jedna nebo několik úloh, jejichž úspěšné řešení je podmínkou bezchybného provedení výrobní operace. Tyto úlohy se opakují v různých modifikacích a po určitém zobecnění je lze seskupit do omezené množiny, která může vypadat takto:
  • nalezení povrchových vad,
  • rozpoznání, nalezení polohy a počítání,
  • měření a kontrola tolerancí,
  • identifikace barev,
  • čtení a verifikace textů a kódů.

Nalezení povrchových vad

Tato úloha je typická pro fázi shromažďování materiálu k operaci provázené vstupní kontrolou. Může jít o identifikaci poškozených povrchů, vad nátěrů či povrchových úprav, neúplných potisků atd. Je-li nátěr sám výrobní operací, uplatní se tento typ úlohy i ve fázi vyzvednutí výsledného produktu. Na obr. 2a je ukázán příklad špatně nanesené housenky těsnicího tmelu.
 

Rozpoznání, nalezení polohy a počítání

Tato úloha může mít mnoho podob. Nejčastěji se v ní zjišťuje, je-li správný objekt na správném místě. Například před provedením operace zalisování je nutné se přesvědčit, zda jsou k zalisování připraveny všechny díly ve správné poloze. Totéž je třeba udělat po skončené operaci – chybu v zalisovaném konektoru ukazuje obr. 2b. Zmíněná úloha se rovněž vyskytuje při vstupní kontrole. Může jít o identifikaci deformované části, otřepů po stříhání, nevyvrtaného otvoru nebo poškozené hrany. Počítání se uplatní při kontrole naplněné přepravky nebo blistru (obr 2c).
 

Měření a kontrola tolerancí

Úloha měření prostupuje celou výrobní operací. Měří se tolerance vstupních dílů, poloha dílů před operací i tolerance hotového výrobku. Na obr. 2d je příklad kontroly tolerancí kulového čepu.
 

Identifikace barev

Barvy je třeba rozpoznávat při vstupní nebo výstupní kontrole, může jít např. o jeden ze znaků při identifikaci typu materiálu. V potravinářství může barva potraviny signalizovat sníženou kvalitu produktu vstupujícího do operace vyskladnění.
 

Čtení kódů a textů

Kódy, ať již čárové nebo maticové, se čtou hlavně v první a druhé fázi výrobní operace, kdy je zjišťováno, zda je k operaci připraven správný díl na správném místě. V průběhu operace někdy bývá vytvořen další kód, jenž se verifikuje v poslední fázi operace. Čtení nebo verifikace kódů jsou málokdy samostatnou úlohou strojového vidění ve výrobní operaci, ale je-li tomu tak, je výhodnější svěřit ji specializované čtečce. Vykonává-li však systém strojového vidění v dané operaci více úloh, je výhodné použít ho i pro čtení kódů a textů.
 
Čtení textů je typické rovněž pro první a poslední fázi operace. V první se používá pro identifikaci dílů, v poslední pro kontrolu vytvořených identifikačních znaků, např. potisků s typem a datem expirace výrobku. Příklad čtení je ukázán na obr. 2e.
 

Softwarové nástroje pro vývoj inspekčních programů

K řešení uvedených úloh byly vytvořeny nástroje, někdy pro podobnost s funkcí některých senzorů přiblížení nazývané také senzory nebo softwarové senzory. Lze si je představit jako programové bloky, do kterých vstupují data, která jsou zpracovávána podle zadaných parametrů, a výsledek zpracování ve formě dat je předáván dál. Data vystupující z jednoho nástroje mohou vstupovat do dalšího jako jeho vstupy či parametry. Počet a výkonnost nástrojů a možnosti jejich propojení určují výkonnost a flexibilitu softwaru systému a z velké části také, do které kategorie (kamerový senzor nebo inteligentní kamera) systém patří.
 
Vývoj inspekčního programu obvykle probíhá tak, že uživatel použije nástroje na referenční (bezchybný) objekt a parametrizuje je tak, aby inspekcí prošel jen bezchybný objekt. Poté se na základě výsledku teoretického výpočtu, simulace nebo použití skutečného objektu s vadami upravuje parametrizace nástrojů tak, aby byly spolehlivě identifikovány chyby, jejichž odhalení je požadováno. Tento empiricko-heuristický postup se na první pohled může zdát primitivní a nesystematický, v reálném prostředí průmyslové výroby s mnoha nepředvídatelnými rušivými vlivy je však velmi efektivní a někdy i jediný možný. Proto jsou tomuto postupu přizpůsobeny i příslušné nástroje. Součástí parametrizace bývají různé režimy „učení“ podle správného či chybného objektu. Při parametrizaci také bývá změna působení nástroje graficky znázorněna přímo v obraze objektu. Dále jsou k dispozici pomocné údaje, často v názorné grafické podobě.
 
Pro činnost systému strojového vidění jsou nutné nástroje pro tyto funkce:
  • zpracování obrazu,
  • měření v obrazu,
  • optické rozeznávání znaků (OCR) a kódů,
  • obsluha hardwaru,
  • řízení postupu vyhodnocení,
  • zacházení s daty.

Nástroje pro zpracování obrazu

Soubor nástrojů pro zpracování obrazu je základem každého inspekčního softwaru. Nejvýznamnějším znakem těchto nástrojů je, že jedním z jejich vstupů vždy bývá souvislá část obrazu, ve které je nástroj používán. Oblast se označuje zkratkou ROI (Region Of Interest). Software pro zpracování obrazů lze rozdělit na tři skupiny:
  •  filtry, které provádějí matematické operace s hodnotou jasu každého bodu digitalizovaného obrazu v ROI,
  • nástroje pracující s tzv. hranami, což jsou rozhraní oblastí s rozdílným jasem,
  • nástroje pracující s rozložením jasu v ROI.

Další členění softwaru pro zpracování obrazu ukazuje tab. 1.

Nástroje pro měření v obrazu

Softwarové nástroje pro měření v obrazu pracují typicky s výstupy nástrojů pro zpracování obrazu. Většinou měří geometrické útvary, a to tím, že aproximují jejich hrany. Většinou jde o měření délek, řidčeji ploch. Aby bylo možné stanovit délku ve skutečných délkových jednotkách, je nutné podrobit digitalizovaný obraz kalibraci. Problém při kalibraci spočívá v tom, že digitalizovaný obraz nemůže být lineárním zobrazením sledované scény. Když se převede trojrozměrná scéna na dvojrozměrný obraz, většinou vznikne zkreslení perspektivou. Použitá optická soustava (objektiv kamery) dále vykazuje různé optické chyby, při digitalizaci se uplatní chyba vzorkování. K potlačení těchto rušivých vlivů se používají různé prostředky. Některé souvisejí se způsobem sejmutí obrazu, další jsou součástí vlastních softwarových nástrojů.
 

Nástroje pro optické rozeznávání znaků a kódů

Nástroje pro optické rozeznávání znaků (OCR) musí zvládnout podstatně složitější úkol než komerční programy pro čtení tištěného textu. Tvar písmena bývá deformován vlivem nerovné podložky (čtení z obalů), musí být vyřešeno i čtení různých typů písma. Naproti tomu bývají čtené texty většinou krátké. Vstupem nástroje je ROI, výstupem textový řetězec. Nástroj pracuje tak, že se „naučí“ omezenou množinu znaků, která je v nápisu použita. Pokud je úkolem pouze kontrolovat úplnost stále stejného nápisu, je někdy jednodušší použít nástroje pro vyhledání motivu na základě podobnosti.
 

Nástroje pro obsluhu hardwaru

Nástroje pro obsluhu hardwaru lze najít hlavně u kamerových senzorů a inteligentních kamer. U PC systémů je možné využít knihovny dodávané výrobci příslušných periferií. Nástroje lze rozdělit do tří skupin pro tyto operace:
  • práce se vstupy a výstupy,
  • práce s komunikačním rozhraním,
  • nastavení kamery.

Nástroje pro řízení postupu inspekce

Softwarové nástroje pro řízení postupu inspekce jsou součástí vývojového prostředí inspekčního programu. Umožňují větvit postup inspekce (např. na základě hodnot na výstupu nástroje), volat podprogramy, zařazovat externí programy a kódy, obsluhovat interní čítače událostí, časové plánovače, spouštěcí podmínky a vykonávat další činnosti nezbytné pro chod inspekčního programu. U kamerových senzorů s omezenou flexibilitou vyhodnocení je těchto nástrojů k dispozici méně než u inteligentních kamer a softwaru pro PC systémy.
 

Nástroje pro zacházení s daty

Tyto nástroje se objevují jen u nejsložitějších programů pro inspekci. Umožňují např. transformovat geometrické útvary, měnit instance dat, sestavovat vlastní komunikační protokol.
 

Příklad řešení úlohy strojového vidění

Použití nástrojů k sestavení inspekčního programu bude ilustrováno na řešení jednoduché úlohy strojového vidění (obr. 3). U čtvercové součásti je třeba zkontrolovat polohu otvoru a jeho průměr. Na levé straně obrázku je vyznačena sestava inspekčního programu, vpravo je použití nástrojů na bezchybný objekt.
 
Nejprve je třeba sejmout obraz objektu a vytvořit digitální obraz. Nástroj na obsluhu kamery čeká na signál čidla potvrzující, že je součást v poloze pro sejmutí obrazu. Po příchodu signálu je sejmut snímek a vytvořen jeho digitální obraz. První úlohou je celý objekt v obrazu vůbec najít. Použije se nástroj pro nalezení hran a parametrizuje se tak, aby určil průsečík dvou na sebe kolmých hran – tak je nalezen levý horní roh objektu. Výstupem nástroje je souřadnice tohoto rohu, která se použije jako vstup (nový počátek souřadnic) pro nástroj, jenž bude hledat hranu ve tvaru kružnice. Prostor, ve kterém se bude hledat, je vztažen k tomuto novému počátku. Výstupem tohoto nástroje bude kružnice, která co nejlépe aproximuje nalezenou hranu a souřadnice středu této kružnice vzhledem k rohu objektu. Poloha středu kružnice v nových souřadnicích se porovná s předepsanou hodnotou – získá se poloha otvoru v součásti. Pokud se neshoduje s předepsanou hodnotou, nástrojem pro obsluhu se aktivuje zařízení, které součástku vyřadí. Nástroj pro měření již nepracuje s reálným objektem, ale pouze s aproximovanou kružnicí. Na základě kalibrací přepočítá její průměr do reálných jednotek a určí, je-li v předepsané toleranci. Druhý nástroj pro obsluhu hardwaru je opět určen k vyřazení součásti s otvorem mimo toleranci.
 
Příklad je velmi zjednodušený. Nezabývá se např. nastavením kamery, upravením chování programu při zcela vadném výrobku (např. při chybějícím otvoru) a dalšími záležitostmi nezbytnými pro použití ve výrobě v praxi.
 
Literatura:
[1] WYSK, R. A. – PETERS, B. A. – SMITH, J. S.: A Formal Process Planning Schema for Shop Floor Control. Engineering Design and Automation, 1995.
 
Ing. Otto Havle, CSc., MBA,
FCC Průmyslové systémy
 
Obr. 1. Vztah úlohy nástroje a algoritmu v inspekčním programu
Obr. 2. a) Příklad úlohy nalezení povrchové vady: housenka těsnicího tmelu, b) příklad úlohy rozpoznání: špatně zalisovaný vodič v konektoru
Obr. 2c. Příklad úlohy počítání: kontrola naplnění blistru s léky
Obr. 2d. Příklad úlohy kontroly tolerancí: měření závitu a kužele na kulovém čepu
Obr. 2e. Příklad úlohy čtení textu: kontrola data výroby nebo expirace
Obr. 3. Příklad sestavení inspekčního programu
 
Tab. 1. Přehled nástrojů pro zpracování obrazu