Computer Vision / Machine Vision: mit jelent a Gépi Látás, és mire lehet felhasználni?

Az adatok értékeléséből, elemzéséből értékes következtetéseket lehet levonni, és akár predikciókat is megfogalmazni. Adat számtalan módon keletkezhet, az egyik lehetséges út az, amire mi vizuális információként gondolunk, ám a gépek világában ez jóval komplikáltabb kérdés. A gépi látás felhasználási területe viszont dinamikusan fejlődik, ezért ebben a posztban összefoglaljuk, mire használható most, és milyen trendekre érdemes odafigyelni.

Mit jelent a gépi látás?

A gépi látás alapvetően azt szokta jelenteni, amikor képalapú információt (akár videót is) tekintünk bemeneti adatnak, és ezzel az adattal kezdünk valamit. Ez a valami lehet pusztán az adatok gyűjtése és kiértékelése, de nagyon gyakran a képet elemezve valamilyen döntési helyzet elé állítunk egy számítógépet, a döntés pedig valamilyen mechanikai megoldást eredményez. Például a parkolóház kijáratában a gép felemeli az autónk előtt a sorompót, ha a rendszámunk kameraképét összevetve a fizetőautomatából érkező információval azt az eredményt kapja, hogy kifizettük a parkolást.

Hogy működik a gépi látás?

Látszólag könnyen érthető működési elv ez: kell egy kamerakép, egy elemzőszoftver, utána pedig már minden a megszokott úton megy, tetszőleges hardveres, szoftveres megoldásokkal, a feladat jellegétől függően.

A kamera sokszor többet “lát”, mint gondolnánk

De ez mégsem ilyen egyszerű, méghozzá azért, mert az emberiség a mai napig nem tudott pontos választ adni arra, hogy mi a “látás”. A tudomány még nem fejtette meg teljes egészében, hogy mi emberek hogyan tudunk képet alkotni a szemünkön át érkező vizuális információ alapján.

Mivel mi magunk sem tudjuk, hogyan működik a látás, ezért nem könnyű, de lehetséges, megjósolni, hogyan fog teljesíteni egy olyan algoritmus, ami számunkra teljesen triviálisan értelmezhető képeket dolgoz fel.

Mi emberek például akár előzetes koncepciók, leírások alapján képesek vagyunk elég jól felismerni a különböző dolgokat, képek alapján. Ha valaki elmagyarázza, hogy néz ki egy macska, vagy egy olajfúrótorony, akkor elég könnyen ki tudjuk választani az adott dolog képét több más kép közül.

A gép erre még nem képes. A gép akkor fogja tudni kiválasztani a macskát, ha előtte megmutattunk neki mondjuk ezer képet a macskákról. A gép a tanulási folyamat során a számára teljesen semleges képpontok kaotikus halmazában elkezd beazonosítani bizonyos ismétlődéseket, azaz “mintákat”: ezek azok a dolgok, amiket mi úgy érzékelünk, mint a macska füle, a macska farka, a macskapofák tipikus jellegzetességei, és így tovább. Ezek a gép számára színek, geometriai formák, a pixelekben tárolt adatok olyan elrendeződései, amelyek újra és újra ismétlődnek a képeken. Más elrendeződések nem ismétlődnek gyakran, tehát ezeket nem fogja macskaszempontból fontosnak gondolni.

Ezután a gép képessé válik arra, hogy mindenféle dolgokat, például kutyákat, halakat is tartalmazó képek közül kiválassza azokat, amelyeken szerinte macska látható.

A gépi látás, mint rendszer elemei

A gépi látás alatt a teljes technikai folyamatot értjük, a felhasználási cél eléréséig. Ennek megfelelően a rendszer elemei a következők:

1. Képalkotás - ez jellemzően egy kamera, a megfelelő kiegészítőkkel (mikroszkóp, ultrahang, LIDAR, stb)

2. Jelfeldolgozó egység - a vizuális adat feldolgozására használatos célhardver, például videókártya vagy hasonló eszköz

3. Szoftver - az adatok értelmezésének fázisához szükséges speciális programok. Ez a folyamat lelke, ez az amiben az olyan fejlesztői csapatok tudnak segíteni, mint a Lexunit

4. Kommunikáció - a folyamat megjelenítésére, diagnosztikára használható kezelőfelület (UI)

Miért fontos ma a gépi látás?

Több cikkünkben említettük már, hogy alapvetően a gépi tanulásos technológiák előretörését két fejlemény támogatta: nagy mennyiségű adat termelődik a világban, továbbá nagyon megnövekedtek a számítási kapacitások. Ezek remek előfeltételek az ilyen magasabb szintű szoftverek alkalmazására, mint amiket “mesterséges intelligencia” megoldásokként szoktunk hívni.

Ha most átgondoljuk, hogy milyen fejlődésen estek át a kamerák (gondoljunk csak a telefonok kamerái esetében a megapixelek növekedésére az elmúlt 10 év során), akkor nyilvánvaló, hogy a fenti két előfeltétel mellett a vizuális adatrögzítés technológiája is teljesen új szintekre jutott el a közelmúltban.

A vizuális beazonosítás (macska vagy nem?) tíz év alatt elérte a 100 százalék-közeli pontosságot és ma már bizonyos esetekben a gépek gyorsabban és nagyobb sikerességgel tudnak reagálni bizonyos vizuális inputokra, mint az emberek.

Mire lehet használni a gépi látást?

Már évtizedek óta használnak az iparban olyan szoftveres megoldásokat, amelyek kameraképek alapján működnek. A mai rendszerek viszont jóval kifinomultabbak.

A főbb felhasználási területek közül az alábbiakban felsoroljuk a legfontosabbakat:

Kiértékelés

Az egyik alapvető felhasználási mód a minőség ellenőrzése. Megfelel-e az adott paramétereknek a hegesztési varrat? Pontosan akkora a furat átmérője, amilyennek lennie kell? Pont olyan színe van -e a gyógyszerkeveréknek vagy üdítőitalnak, amilyennek lennie kell? Ezek egyszerű “igen-nem” döntések, amelyek egy adott bemeneti kép alapján lehetővé teszik a döntést.

Modellezés

Tárgyak, épületek valósághű modellezése, rekonstruálása egy 3D virtuális térben már automatizáltan lehetséges.

Pozícionálás

Megfelelő szögben áll a doboz a futószalagon? Jó helyre teszi az alkatrészt az automata robotkar?

Jelenségfelismerés

Betegségek szűrése, épületek szerkezeti hibáinak feltárása, szigetelési problémák felderítése.

Képi hasonlóság érzékelése

QR-kód, vonalkód.

Térérzekelés

Szöglet vagy kirúgás? A videóbíró alapból is képes döntéseket hozni, nem egyszerűen csak videófelvételeket készít. Egyre több tradícionális sportban kísérleteznek vele, a foci után a krikettben és baseballban is.

Számlálás

Forgalomszámlálás az utakon, belépésszámlálás az irodaházban vagy szupermarketben, hőtérkép készítése a bejárt útvonalak alapján.

Objektumfelismerés

Milyen közelekedési táblát látok? Gyalogosok felismerése, távolságok dinamikus érzékelése. Nyilvánvaló, hogy az önvezető autók gépi látás terén ma talán a legismertebb problémakört képviselik.

A modern járművek egyre inkább képesek a környezet észlelésére

Amint látható, a képelemzés egy kicsit a rejtvényfejtéshez hasonlít. A művelet az alábbi kérdések valamelyikére keresik a választ:

1. Milyen kategóriába tartozik a képen látható objektum? (Klasszifikáció)

2. Melyik típusa az adott objektumnak látható a képen? (Azonosítás)

3. Látható az objektum a képen? (Verifikáció)

4. Hol helyezkednek el az objektumok a képen? (Érzékelés)

5. A képen mely pixelek tartoznak az objektumhoz? (Szegmentálás)

6. Milyen objektumok láthatók a képen és hol? (Felismerés)

A fenti kérdésekre adnak választ azok a szoftverek, amelyek ma már hétköznapinak számító feladatokat látnak el, például az áruházban jelzik, ha kiürült egy polc, illetve automata fizetést tesznek lehetővé. Felderítik a csempészárut vagy az épületek biztonsági kockázatait, a torlódáshoz vezető forgalmi helyzeteket. A kárfelmérést automatikusan elvégezhetik biztosítók számára.

A minőségbiztosítás során a gépi tanulás révén sokkal többet is elérhetünk, mint a hibás elemek kiszűrését. Az ipari felhasználás során az egyik leghasznosabb fejlemény a prediktív karbantartás, aminek a lényege, hogy az alkatrészeket azelőtt ki lehet cserélni, hogy meghibásodnának. Ehhez csak kellően sok tanítóadat kell, ami alapján a rendszer már pontosan meg tudja határozni, mikor és hogyan kell beavatkozni. Erről és hasonló ipari mesterséges intelligencia-megoldásokról itt írtunk korábban.

Lexunit Esettanulmány: Szénaszálak kötegelése a szénakazalban (fotócsoportosítás)

Most bemutatjuk egy tipikus gépi látás projekt lépéseit egy saját ügyfelünk számára végzett szolgáltatás példáján át.

Ügyfelünk egy nagy biztosítótársaság. A problémájuk az volt, hogy egy hatalmas és strukturálatlan fényképadatbázist gyűjtöttek össze az évek során, és az általános eljárás során a képeket továbbra is ide mentik. Szükség volt a képek csoportosítására oly módon, hogy az egy bizonyos autóhoz tartozó fotókat gyűjtse egybe a rendszer.

Hogyan lehet egy autót biztosan beazonosítani? Természetesen a rendszám segítségével.

Első körben készítettünk egy megoldást arra, hogy a rendszer megállapítsa, van-e rendszám a fotón, vagy nincs. Ha van, ismerje fel és rögzítse a rendszámot.

Ezután a következő képek során azt vizsgálja, látható-e rajtuk ugyanaz a rendszám, vagy sem. Ha nem látható, akkor azt kellett megvizsgálnia, hogy mely képekhez hasonlít legjobban azok közül, amelyeken látható rendszám.

Ezekkel a lépésekkel az algoritmus sikeresen képes volt leválogatni az egy autóhoz tartozó fotókat, kiváló pontossággal.

Lexunit Esettanulmány: Almát az almához, körtét a körtéhez (automatikus adatrögzítés könyvelőknek)

A bármilyen nyomtatott számla automatikus okos felismerését és adatrögzítését lehetőve tevő szoftverünk, a SzamlAI is részben egy gépi látás projekt. Itt a nyomtatott dokumentumból szkennelés után, megfelelő átalakításokkal, egy teljesen új, az eredetitől eltérő, színes képet generálunk, és ezen a képen kell a szoftvernek az objektumokat (a számla adatait) pontosan beazonosítani. Ezt a sztorit itt már részleteiben bemutattuk.

A gépi látás fejlődése töretlen, a hardverek egyre erősödnek, például a folyékony lencse hozhat újabb lökést a képrögzítési technológiáknak. A képeken alapuló döntéshozás pedig már a mesterséges intelligencia-fejlesztők asztala.

Szeretne többet tudni a témakörről?  Adja meg elérhetőségét és értesítjük az új blogbejegyzésről.


Következő cikk:


Biztosítási kár bejelentésének folyamatát automatizáltuk gépi tanulás- és gépi látás- megoldásokkal