Gépi látás az ipari gyakorlatban

A gépi látás témaköre a XXI. században kiemelt fontosságnak örvend köszönhetően a nagyfokú automatizálásnak. A digitális képfeldolgozás vívmányait széleskörűen alkalmazzák az orvostudományban, iparban, űrkutatásban, gépészetben, robotikában és számos más területen.

A számunkra érdekes ipari felhasználás is rendkívül sokrétű lehet. Leggyakrabban az alkatrészek válogatása, minőség-ellenőrzése, vagy a robotok térbeli helyzetének meghatározása során használják. Az első esetben különböző objektumok felismerése és elkülönítése a cél, a másodikban a méretek meghatározása, a harmadikban pedig a pozíció pontos definiálása.

Általában három fő lépést szoktak megkülönböztetni a számítógépes képfeldolgozáskor. Az első lépés során a kép előfeldolgozása történik. Ebben az esetben olyan alapvető dolgokra kell gondolni, mint a zajszűrés, élesítés, kontraszt erősítése. Ilyenkor a bemenet és a kimenet is egy-egy kép. A második lépés a szegmentálásról és lényegkiemelésről szól. A bemenet ebben az esetben szintén kép, a kimenetet azonban már olyan tulajdonságok alkotják, mint az élek, kontúrok, objektumok. Az utolsó lépésben az objektumok felismerése és interpretációja zajlik.

Alapvetően a szegmentálás témaköre az, amelyik a legnagyobb fejfájást szokta okozni a fejlesztőmérnököknek. Lényegében ilyenkor a kép egyes pontjait homogén csoportokba osztjuk. Többféleképpen nekikezdhetünk a dolognak. Lehetséges szürkeségi szint alapján szegmentálni, illetve különböző élkeresési eljárások segítségével. Mindegyik eljárásnak megvan az előnye és hátránya. Egyes esetekben az egyik, míg máskor a másik bizonyul alkalmasabbnak a feladatra.

Nézzünk is egy egyszerű példát, hogy érthetőbb legyen a dolog!

A képen látható csavaranyákat szeretném megszámolni. Persze szemre is látható, hogy 6 db külön objektumról van szó, így lesz lehetőségünk az önellenőrzésre. A feladat elvégzésére a MATLAB programot használom.

1. ábra: Eredeti kép

1. ábra: Eredeti kép

Mivel ilyen jó minőségű kép áll rendelkezésünkre, így egyből ugorhatunk is a szegmentálásra. Első lépésként szürkeárnyalatosra konvertálom az eredeti képet (rgb2gray), majd bináris képet készítek belőle az im2bw paranccsal. Ezután már elvégezhető a szegmentálás, ahol 8 szomszédosságot használok. Nézzük az eredményt, amit az imagesc függvénnyel jelenítek meg.

2. ábra: Szegmentált kép

2. ábra: Szegmentált kép

Látható, hogy bár kezdenek körvonalazódni az anyák, még nem értük el a kívánt eredményt. A program is 61 külön objektumot számol. Ezért végezzünk el egy úgynevezett „zárást” (ez egy dilatációból és erózióból áll), ami pont az ilyen lyukak betömésére alkalmas művelet.

Sikeresen elvégeztük a szegmentálást, a program is 6 objektumot számolt.

3. ábra: Szegmentált kép, zárás után

3. ábra: Szegmentált kép, zárás után

Természetesen az iparban ennél sokkal kifinomultabb képfeldolgozó algoritmusok dolgoznak. A cél itt a szemléltetés volt. Akit érdekel a téma, az rengeteg oktatóanyaggal, videóval találkozhat az interneten, nagy részük azonban angol nyelvű.

Példa videó a szegmentálásról: EZEN A LINKEN.

A cikket a KÁTÉ, a Budapesti Műszaki és Gazdaságtudományi Egyetem Gépészkari lapjának szerzője készítette.

Szerző:Kocsor Máté, KÁTÉ

Az eredeti kép forrása ITT

Megosztás
[
    ]