Valaki ért a mesterséges neuronhálókhoz? Lenne egy pár kérdésem.
Van egy delta robot, aminek van egy kamerája is. Én megszeretném adni neki, hogy mit fogjon meg. Pl fogjon meg egy négyzet alakú tárgyat ha lát. A kamerafeldolgozást, azon belül az éldetektálást opencv-vel oldanám meg. Azonban a kép zajos lesz, ezért a robot mindig csak kb négyzetet fog látni. Ezért kéne a neuronháló. Megtanítanám neki például a négyzetet és akkor a kb 70%-os pontosságú négyzetet is felismerné.
A kérdésem az lenne, hogy ezt nagyon nehéz lenne kivitelezni? Programozni tudok (nem Matlab-ban szeretném), a neuronhálók alapjait ismerem.
Bármilyen használható információt megköszönnék.
Szerintem masszív képfeldolgozásra is szükséged lesz. Egyrészt a zajszűrés miatt, másrészt transzformálni kell a neuronháló bemenetére. A probléma ott van, hogy egyrészt térben kell látnod, másrészt ha színesben kell, akkor ott is trükközni kell. Ha mondjuk az megvan, hogy a négyzet, vagy bármely keresett alakzat, ha "felülről", "merőlegesen", helyesen beforgatva nézel rá, akkor azt megtanítani egy neuronhálónak nem nagy dolog.
Szerintem jobban jársz, ha először a képszegmentálás felé kutakodnál és többre mész, ha alapvető primitíveket a látott képen felismersz, éleket, csúcsokat, egyszerűbb alakzatokat. Léteznek technikák ilyesmire.
Ez után pedig valami absztrakt reprezentáció kellene, amit lehet, hogy nem is neurálhálóval kellene feldolgozni, hanem tudásbázissal.
Persze, hogy kutakodtam a képfeldolgozás terén is. De akárhogyan szűröd a kontúrod zajos lesz. Lehet, hogy te nappal napsütésben kalibráltad, de este lámpánál vagy neonnál már nem fog olyan jól működni. Persze minél jobb a szűrőd annál pontosabban megkapod a keresett alakzatodat. Te mindig csak nagyjából kapod meg tárgyat. Egy háló bizonyos hibával is képes felismerni.
A térlátás nem szükséges, mivel merőlegesen lesz a kamera...vagy ha nem, akkor a kamera dőlésszögéből néhány számítással ki tudok számolni mindent. A lényeg, hogy síkban dolgozok.
A színekkel miért kéne trükközni? Ezt nem értem.
"A háló ezekből a vonalakból kéne kiszűrje az alakzatot."
Azért mondom, hogy nem biztos, hogy (tisztán) neuronhálóra van szükséged. Lehet, tudásbázis kellene, amiben benne lenne, hogy egy négyzet 4 szakaszból áll, amik megfelelően kapcsolódnak, a szakaszok hossza közel azonos, stb. Ha pedig a kamerától feldolgozott, majd transzformált adathalmazban megtalálható a szabályrendszernek megfelelő elemrendszer, akkor végül is négyzetet (is) lát. A te esetedben még komoly tudásbázis-motorra sem bizos, hogy szükséged van, célirányos kereséssel is megpróbálkozhatsz.
A zajt meg ha beleveszed, akkor azt a képfeldolgozónak kell kezelnie, ha egyszer az már a szegmentáció eredményét adná a neuronhálóra. Konkrétan, ha éleket keresel, akkor az élkeresőnek kell a zajjal kezdenie valamit, nem az éleket feldolgozó alrendszernek, ami utóbbinak meg nem feltétlenül neuronhálónak kell lennie, ha egyszer a zaj feldolgozását nem annak szánod.
A színek annyiban nehezítenek, hogy egy grayscale kép feldolgozása mindig egyszerűbb, mint egy színesé.
A tudásbázis még új fogalom számomra. Azt érted ezalatt, hogy megadom, hogy mi az alakzataimnak a felismerő jelei és majd csak hasonlítgatom össze a képen látott alakzattal? Tulajdonképpen ez is ugyanúgy működne, mint egy háló...egy bizonyos hibát megengedve felismeri a tárgyat. Csak annyi különbséggel, hogy ennek a bázisnak megadok egy viszonylag elferdített alakzatot és kerssen jobbat, míg a hálónak egy rendes alakzatot adok és ő megnézi, hogy hány százalékban hasonlít az öve a képen látotthoz. Javíts ki ha tévedek, mert ezt csak feltételeztem.
A zajokat valóban az éldetektáló algoritmusnak kell kiszűrni. Azonban azt tapasztaltam, hogy néha még a napos és az árnyékos részek közötti részt is élnek veszi, mivel gradiens módszerrel működik. Megkeresi a kép lokális maximum- vagy minimumpontját, azaz, hogy hol változik rohamosan a szín vagy a fényintenzitás.
Opencv-vel viszonylag egyszerűen át lehet alakítani egy rgb képet grayscale-re.
"A tudásbázis még új fogalom számomra. Azt érted ezalatt, hogy megadom, hogy mi az alakzataimnak a felismerő jelei és majd csak hasonlítgatom össze a képen látott alakzattal?"
Olyasmi. Szabályokat tartalmaz arról, hogy mi a négyzet. Kb. mintha egy kisiskolásnak magyaráznád el, hogy pl.: "van négy szakasz, a végpontjaik illeszkednek és azonos hosszúságúak és a szögek 90 fokosak". Ezt persze a te esetedben valami olyasmire kell módosítani, hogy "keresni kell négy szakaszt, amelyek végpontjai közel vannak egymáshoz, a hosszúságuk közel azonos (pl. 5% eltérés, vagy akármennyi), és a szögei közel 90 fokosak". Persze a te esetedben az a nehezítés ekkor, hogy az egyébként ponthalmazként létező élkeresési eredményből valódi szakaszokat képezz le, illetve, hogy a közel lévő párhuzamosokat és az egymáshoz kapcsolódó, közel egy irányba vezető kis szakaszokat nagy szakasszá egyesítsd. Szerintem itt inkább foltokon alapuló szegmentáció kellene és nyomatékszámítás (ld. lent), kiegészítve esetleg sarokdetektálással (körnél persze ez utóbbi nem menne). Az is lehet, hogy több algoritmus súlyozottan egyesített eredménye adná a felismerés lényegét.
A fény-árnyék problémával az a gond, hogy nehéz tenni ellene.
Csinálhatsz egyébként olyat is, hogy a négyzet színeit tartalmazó foltokra számítasz egy "tehetetlenségi nyomatékot" (kompaktság, excentritás), mert az is jellemző az alakzatra (pl. egy körlap a maximálisan kompakt).
A te neuronhálós modelled, ha jól értelmezem, úgy működne, hogy a háló bemenetére közvetlenül a feldolgozott kép (ami a detektált élek pontjait tartalmazza) kerülne. Ekkor persze az a nehézség, hogy a négyzet annyira nem különbözik a körtől (ha csak nem nagy felbontást használsz), főleg, ha tetszőlegesen elforgatott négyzetet akarsz a hálónak megtanítani. Nekem az a tippem, hogy egy nem túl szabályos kört is négyzetnek ismerne föl a zaj miatt.
Az RGB képet ugyan átalakíthatod grayscale-be, ez sohasem probléma, de bármilyen leképezést veszel, ugyanazon grayscale értékhez különböző RGB értékek tartoznak. Tehát pl. a tiszta pirosat összekeverheti a tiszta zölddel, ami a valóságban nagyon is nagy különbség, grayscale-ben viszont előfordulhat, hogy szinte semmi.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!