Schopnosti systému strojového vidění VisionLab v oblasti hledání
obrazových vzorů lze dobře ukázat na této, na první pohled prosté, ale
ve skutečnosti náročné úloze.
Je zde několik požadavků, které problém hodně komplikují,
ale zase na druhou stranu jej činí zajímavým a poučným:
Je nutno identifikovat a počítat plechové výrobky, které jsou
zavěšeny na dopravníku výrobní linky. Počet výrobků v zorném poli
kamery se může velmi lišit - od jednotek až po mnoho
desítek.
Velikost výrobků je velmi rozdílná. Od maličkých po velmi
rozměrné.
Rovněž poměr mezi šířkou a výškou výrobků je velmi
různorodý.
Kamera musí být umístěna hodně blízko, potřebujeme velmi
široký zorný úhel, který se nutně odrazí ve značném geometrickém
zkreslení projekce.
A největší komplikací je to, že osvětlení scény je velmi
různorodé a během činnosti systému se stále a významně mění od
slunečního světla až po světlo lamp.
Změny osvětlení a změny pozice výrobků způsobují, že výrobky
a jejich části jsou barevně i jasově velmi proměnlivé od tmavé barvy
až po světlý intenzivní lesk.
Podle tohoto zadání by tuto úlohu asi většinu odborníků v oblasti
strojového vidění označila jako neřešitelnou. Je dobře, že autora
aplikace takovéto zadání neodradilo. Řešení všech výše uvedených
potíží dobře dokumentuje nejen odvahu autora, ale i schopnosti systému
VisionLab.
Malý odstup kamery a použití širokoúhlého objektivu nutně vede k
značnému geometrickému zkreslení. Tyto aberace jsou při použití
virtuálního přístroje gl_camera snadno korigovatelné. Stačí v
konkrétní scéně pořídit snímek kalibračního tečkovaného rastru a
pomocí průvodce ve vývojovém prostředí vytvořit soubor s kalibračními
daty. Vlastní geometrická kalibrace pak již probíhá v reálném čase s
vysokou subpixelovou přesností. Pro výpočty v plovoucí řádové čárce je
využíván grafický procesor, takže kalibrace aplikační program
prakticky nezatěžuje. Pomocí CPU počítače by byla takováto kalibrace v
reálném čase nerealizovatelná.
Nastavení kalibrace geometrie obrazu je realizovatelná
několika kroky průvodce ve vývojovém prostředí
Projektivní aberace objektivu máme odstraněny a nyní se dostáváme
ke stěžejnímu problému. Osvětlení scény je v prostoru i v čase velmi
různorodé a proměnlivé. Proto také jsou i plechové výrobky zobrazovány
s temnými povrchy i vysokými jasy odlesků.
Výrobky se značně proměnlivě lesknou
Tento problém je vyřešen pomocí barevného pozadí. Máme totiž k
dispozici např. krok gpu_HSL_filter, který dokáže pomocí výpočtů v HSL
barevném prostoru identifikovat barvu pozadí v požadovaných rozsazích
nasycení a jasů. Takto dokážeme separovat i velmi různorodě vypadající
výrobky. Krok běží v GPU a je velmi rychlý.
Prostřednictvím kroku gpu_HSL_filter dokážeme jakýkoliv
objekt přesně oddělit od pozadí
Výrobky máme nyní oddělené od pozadí a jejich proměnlivý vzhled je
eliminován převedením do černo-bílého binárního obrazu. Zbývá již jen
černé objekty na bílém pozadí identifikovat, spočítat je a vrátit pole
s jejich pozicemi. Pro tento účel použijeme krok gpu_pattern. Obrazové
vzory mohou být velké a v obraze se mohou vyskytovat mnohokrát v
různých pozicích a rotacích. Velkou předností kroky gpu_pattern je
jeho rychlost, ke které pomáhá vysoký výpočetní výkon grafického
procesoru.
Objekty jsou identifikovány krokem gpu_pattern.
Hledání vzorů je optimalizováno do několika výpočetních průchodů v
GPU, kdy jsou počítány odezvy normalizované křížové korelace a
postupně jsou zpřesňovány regiony s nejlepšími výsledky. I když
použitý krok je optimalizován pro použití v obrazech se škálou jasů,
překvapivě i s binárním obrazem dosahuje dobrých výsledků.
Řešitelem popisované úlohy je společnost WAtech a.s., děkujeme za
poskytnuté informace.
WAtech a.s. - průmyslová stříkací, lakovací a lepicí technika,
automatizace, digitalizace, robotizace
www.watech.cz Tel.: +420 277 001 002
U Zastávky 771, CZ 252 16 Nučice u Rudné, Praha - západ
Pro autory aplikací může snad být toto řešení inspirací a
povzbuzením pro jejich práci v oblasti strojového vidění.
Roman Cagaš
|