Ne gondolkozz ennyire algoritmusokban, különben nem fogod látni a mûködés lényegét. Valódi szoftveres (és egyben memória) megoldás meg csak az emlõsöktõl van jelen. A hardveres alap már a hüllõknél megjelenik, de csak primitív módon.
Végülis akkor kétirányú a látási folyamat... egyrészt kívülrõl indul el az információ közvetítése befelé a látóközpont-hyppotalamus pályán , másfelõl viszont belülrõl a "Kernel szintrõl" érkeznek az utasítások az integrált szûrõ algoritmusokkal, hogy mit akarunk egyáltalán látni. Valahol középtájt pedig találkozik a két egység és egyeztet. Hogyan lehetne ezt lefordítani a számítéstechnika nyelvére , digitalizálni ezt a folyamatot ?
Az integrált szûrõ algoritmusok menet közben is programozhatóak kell lennie, hiszen eldönthetjük, hogy mit akarunk látni, mit keresünk , mely tárgyakat szeretnénk éppen felismerni, vagy egyszerûen csak bambulhatunk is , ilyenkor az értelmezõ kernel stand by-ba megy :)
Végülis az elmondásod alapján valóban nem olyan lehetetlen a tárgyfelismerõ robotot elkészíteni, viszont a programját eleve önmódosító kernelre kell írni, hiszen az elsõ gerincesek óta képesek az élõlények a tanulásra, ami az embernél a kernel önfordítását , a tanulást jelenti , az halaktól az emberig, pedig a RAM kibõvítését. A halak 330 millió évvel ezelõtt a Silur földtörténeti korban kezdték el a tanulás kifejlesztését, az emlékezõképesség, a RAM alakult ki elõször mintegy 30 millió éves evolúció alatt, az egyre kiszáradó tavacskák között a halak , az árapályok váltakozása miatt évrõl évre vissza kellett hogy találjanak az ivóhelyükre , ehhez viszont szükségszerûen ki kellett fejlõdie a RAM-nak, amivel a rovarok és skorpiók máig nem rendelkeznek, ezek az élõlények inkább tekinthetõek robotnak, mint tudatos lénynek, szinte csak a vezérlõprogramjuk van (ami persze nem egyszerû) .A halaktól a kétéltûkig az hagymájának az elsõ számú legbelsõ részérõl beszélhetünk a limbikus rendszerrõl. A hüllõagy a következõ hagymaréteg amely ránõtt az idõk folyamán ez már lehetõvé tette bizonyosfokú magasabbszintû , az operációs rendszeren futó alfolyamatok , szubrutinok önmódosulását, tehát a tanulás kezdetleges formáját. Az emlõsöknél ez egyre jobban fejlõdött, majd a fõemlõsöknél jött létre a neokortex, az agykéreg legkülsõ része, amely már lehetõvé teszi akár az operációs rendszer teljes önátírását is. Ezt nevezzük tanulásnak. Kezvde az beszédmotortól a világ látásmódján át , az önértékelésünkig mindent mi magunk döntünk el, kivéve a BIOS szintû kernelfolyamatokat, úgymint a belek és gyomor mozgatóizmainak mûködése. Az önmódosító kernel viszont veszélyes is, mert ha egy hibás új alfatesztvezió kerül vezérlõstátuszba akár az öngyilkosságra való hajlam is elõtörhet.
Az a 400MB/s talán elsõre soknak tûnik, de ha azt mondom, hogy a FullHD kép HDMI-n történõ átviteléhez 5Gbit/s (~640MB/s) kell akkor már nem is olyan sok. Fõleg, hogy egy nagyobb teljesítményû kártya akár egy idõben 6 ilyen képet is képes elõállítani (ATI Eyefinity) és még csak nem is 24fps-on. Ezek ráadásul csak a nyers adatok. Bár a látás nagyon gyors folyamat ez csak azért lehet, mert rengeteg dolgot az agy kikövetkeztet/feltételez/leegyszerûsít. Lásd érzéki csalódások
"az átlag 5,5 millárd pixelre jutó , általad 1 Mhz / pixel eredményt , az agyban akkor is össze kell kötnie egy központi vezérlõegységnek ahhoz, hogy a kapott képet ne pixelenként , hanem egybe értelmezze"
Nem jut el az agy tudati reszehez ennyi adat. A kepekbol eloszor egy melysegi es mozgasterkep keletkezik. Aztan az osszes adat alapjan szegmentalt lista, ez az agy altal felismert targyak vagy targycsoportok listaja, ami mar viszonylag rovid. Ezen targyak kozzul tobbnyire a latomezo kozepen levon fut le az asszociativ felismeres, ami gyakorlatilag egy parhuzamositott statisztikai mintaillesztes. A kimenete mar csak par fogalom.
Peldaul: bejovo kepek (bitmap) - melysegi es mozgas terkepek (vektor map) - szegmentalt lista (area list) - megfigyelt targy adatai a tudati reteg fele (property list): a falon van, mutatos ora, feher hatter, fekete betuk, haromnegyed 8-at mutat... Ez jo esetben is csak par byte-nyi adat, ennyi megy tovabb az agy tobbi resze fele. (ezekhez a fogalmakhoz kotodo neuronok tuzelnek a mintailleszto adatbazisban) Egy ujsag eseten az elso rapillantasnal peldaul: asztalon van, feher hatter, fekete betuk, ujsag formaju szoveg. Ebbol ket kimeneti fogalom is azonos, tehat nem igenyel kulon kimenetet, mivel tobb bejovo inger eseten is tuzel. Az agy tudati resze ezen mintak alapjan rakja ossze azt, hogy mit latunk. Aztan ha az ember kivancsi ra, akkor alaposabban is megnezi a kerdeses targyat, ami ekkor tobb darabra szegmentalodik, es egyesevel is felismerodnek a reszek, pl. az oranal a gyartoja, a szamok tipusa, ujsagnal pedig megkezdodik a szoveg felismerese, tehat az olvasas.
Meglepo, hogy mennyire keves adat jut el a tudati retegig a latott informaciobol. Csak azert hisszuk, hogy minden azonnal eljut, mert barmire fokuszalunk a latorendszer pont azt fogja alaposabban feldolgozni. Igy egy teljes helyszin vegignezheto, a nelkul, hogy egy 'kepkocka' alatt kellett volna mindent feldolgozni. Csak par autista kepes egy villanasnyi kep alapjan kesobb mindenre emlekezni, de ez a normal embereknel informacio tulterhelest okozna. (az autizmus egyik oka pont ennek az informacioszuronek a hianya)
valaki felvetette hogy a perifériás látómezõben kisebb a felbontás, ez így is van, csakhogy az átlagosan 4-7 megapixeles felbontás a fokális látómezõre érvényes.
az átlag 5,5 millárd pixelre jutó , általad 1 Mhz / pixel eredményt , az agyban akkor is össze kell kötnie egy központi vezérlõegységnek ahhoz, hogy a kapott képet ne pixelenként , hanem egybe értelmezze, ha pedig az 1 Mhz-et beszorzod 5,5 milliárddal akkor már szép kis eredményt fogsz kapni ( 5,5 petahertz ) és ez még mindig csak az átvitt nyers kép az agyban , hol beszéltünk még a tudatos látásról, amely a trilliárdnyi lehetõségbõl csak a releváns szekvenciákat válogatja ki , MÁSODPERCENKÉNT 24-szer !
"10 eve csinaltak a SZTAKI-ban egy fpga alapu implementaciot is. Ha jol latom a yale-es csapat ezt masolta le. "
Nem akarok nagyon negatív lenni és távol álljon tõlem hogy leszóljam a sztakisok eredményét, de attól, hogy fpga-n fut és optical flow még nem biztos hogy másolat. Az alap optical flow nem egy annyira elképesztõen bonyolult dolog és fpga-hoz is értenek páran, szóval nem egy fpga-s implementáció készült már. A varázslat még csak azután jön.
Egyébként meg a lentebbi számítás a másodpercenkénti sokmilliárd bitrõl leginkább ott hibázik, hogy a látókéreg ezt az adatmennyiséget nem küldi el direktben az agy többi részének, hanem csak egy már elõfeldolgozott változatot. (legfõképpen éldetektálás és optical flow) Ez az elõfeldolgozás pedig jól párhuzamosítható képelemenként.
Alapvetõen mintákat látunk, és utána konkretizáljuk az infókat. A mintafelismerés pedig már számítógépesített, pl. az arcfelismerõ szoftverek remekül teljesítenek már ma is. De az OCR is lassan utoléri az emberi képességeket.
Biologiai szempontbol a latas tobb lepcsokbol all. Az elso a kepminoseg javitasa es a zajszures, melyet meg a retina vegez. Azan a latoidegek keresztezesenel tortenik az optical flow alapu feldolgozas, ami a ket szembol erkezo kepek diszparitasa alapjan eloallitja a melysegi terkepet (terlatas), tovabba az egy-egy szembol erkezo idobeli kepsorok alapjan az elmozdulasi terkepet (periferialis latas). Ezutan jutnak el a latokozpontba az eredeti kepek es a ket terkep. Ebbol az agy mar elo tud allitani egy felosztasi terkepet (szegmentalas), tehat tavolsag, mozgasi irany, sebesseg, szin es konturok alapjan nagyjabol szetvalogatja a targyakat. Ezutan az eppen a latomezo kozepen levo tagy felismerese tortenik egy asszociativ tablabol (lasd: karakterfelismeres scannelt szovegbol). Tobb targy felismerese szekvencialisan tortenik, ahogy a szemmozgato izmok vegigpasztaznak a latoteren. Innen indul a tudatos latas, amit jelenleg nem ismerunk. A fenti lepesek mindegyike megvalosithato parhuzamos formaban, mivel az agyban is ez tortenik. Mivel minden pixelhez van egy-egy dedikalt neuron csoport, ezert 24 kep/masodperchez csak 24 keppont/masodperces feldolgozo sebesseg kell, amihez meg az 1 megahertz is boven sok, az agy ennel lassabb.
A látás az egyik legszelektívebb folyamat amit az ember ismer. Ha minden egyes fényingerre végigböngészné az agyad a saját adatbázisát, még az ágyból sem kelnél ki reggel.
Emellett mivel egy rendkívül sok szálon futó, néhol ismeretlen átkapcsolásokkal, folyamatokkal teli, borzalmasan bonyolult rendszerrõl van szó, teljesen értelmetlen, hibás és parasztvakítás-szagú mindenféle számszerûsítés és informatikai fogalmakra és mértékegységekre való lebontás. Egyelõre
http://www.youtube.com/watch?v=Ahg6qcgoay4
Tévedés! Az ember azért néz oda, mert tudja, hogy egy óra van a falon! Ha csak úgy, minden elõzetes ismeret nélkül pásztázol pl. egy utcafrontot, akkor csak sokadszorra veszel észre egy utcai órát... Onnantól pedig, hogy eleve "óra"-jellegû képi információt vársz, az agyad jórészt csak a mutatókat dolgozza fel a képbõl.
"mert az agy is csak a releváns információt próbálja kihámozni a látott képbõl."
ez az, amit úgy hívnak feldolgozás. a te logikádat követve fele esetben "fél 3", fele esetben meg "quartz" vagy "koszos az üveg" vagy ilyesmi lenne az eredmény.
fel kell ismernie, hogy az egy óra, hogy aztán a két pálcikát értelmezze.
Van aztán egy truecolor színskála amivel megállapították hogy az átlagember 16 millió színt tud megkülönböztetni, binárisban kifejezve 2^24
Baromság, az ember nem tud 16millió színt megkülönböztetni... A TrueColor színábrázolással tudunk éppen 2^24 színt kifejezni, mert így mindegyik színkomponensre (r-g-b) egy-egy bytenyi adat jut... Az emberi szem egyébként legjobb esetben is max. 10millió színt tud megkülönböztetni.
Aztán, ahogy már elõttem említették, a perifériális látás felbontása erõsen korlátozott...
Az pedig, hogy minden látott tárgyat egyenként meg kéne keresni valami adatbázisban, a lehetõ legrosszabb algoritmus a problémára... A tárgyakat az alkotóelemeik alapján kellene besorolni különbözõ kategóriákba pl. ha az algoritmus felismeri egy kapaszkodó képét, akkor az objektumra rákerül a "megfogható"-cimke és így tovább, akár rekurzívan továbbontva az egyes alegységeket.
Ha belegondolsz, akkor te sem dolgozol fel azonnal minden információt a látott dolgokról: vegyük azt a példát, mikor ránézel egy faliórára, hogy megtudd mennyi az idõ - ha ezután megkérdezné tõled valaki, hogy voltak-e az órán számok, arab számok voltak-e vagy rómaiak, volt-e másodpercmutató stb. bajosan tudnál felelni a kérdéseire; ez azért van mert az agy is csak a releváns információt próbálja kihámozni a látott képbõl.
Szerintem,bár laikus vagyok de a látásunk csak a fokuszban részletes a perifériák felé erõssen lecsökken a felbontás! Ha esetleg ez bele van kalkulálva akkor bocs!
Megkérdeztem egy orvostanost a dolgoddal kapscolatban, eléggé diffisnek látja az elgondolásod, ui. "az emberben a szem a látókéreggel-ami kb a nyakszirtlebeny egésze van közvetlen kapcsban,meg mennek kisebb pályák az agytörzsbe kevés átkapcsolással, amivel direkt visszakapcsolás van a szemmozgató izmok, meg a pupillaszûkítõ izmok felé"
Nem rossz csak bináris alapokon a fény sebessége se lenne elég hogy az emberi szem-kisagy-hyppotalamus idegpályák teljesítményét reprodukálják.
Van egyszer is egy szem aminek 4-7 megapixel a felbontóképessége (függ az egyedtõl, a kortól, nemtõl, hangulat és kedélyállapottól stb..stb..) , van aztán egy átlag 25 fps amit ugye alapul vettek a mozifilmek másodpercenkénti filmkockához, ennyit lát ugyanis egy józan ember (részegen, datura stramonium hatása alatt, vagy fáradtan ez az érték lecsökken) Van aztán egy truecolor színskála amivel megállapították hogy az átlagember 16 millió színt tud megkülönböztetni, binárisban kifejezve 2^24
Ezek azok az adatok amiket majdnem fixen, számokká konvertálva is ismerünk, akkor most számolgassunk egy kicsit , milyen teljesítményû gépre volna itt szükség:
vegyük alapul a 4 és 7 közti értéket, 5,5 megapixeles felbontóképességet a három RGB színnel. Ez kb. 2300x2300 pixel R*G*B komponensenként durván 2^8 * 2^8 * 2^8 (= 2^(8*3)) 5.500.000 * 3 = 16.500.000 (byte) * 8 = 132.000.000 bit * 25 (fps) =
3,3 milliárd bitpersec (= 400 megabyte / szekundum)
tehát van egyszer egy 3,3 milliárd bit per szekundum , hozzávetõleges értékünk amely a szembõl az ingerületátvivõ idegsejtek segítségével a hyppotalamusig eljut, ahol is jön csak a dolog igazán oroszlánrésze... Itt ugyanis egy ismeretlen nagyságú , méretû adatbázisból kell elõrerántania és összevetnie a hyppotalamusnak a 400 megabyte / másodperces sebességgel megkapott információt. Nem beszéltünk még a sztereotíp látásmódból adódó 3 dimenziós mintavételezés feldolgozásáról, ami miatt tulajdonképpen 3 dimenzióban vagyunk képesek értelmezni a megfigyelt tárgyakat, és 4 dimenzióban vagyunk képesek értelmezi, a történõ eseményeket. Valamint nem beszéltünk arról sem hogy milyen irdatlan méretû adatbázisra épül az emberi agy, ahhoz, hogy gyak. bármilyen tárgyat az ismert több millió féle tárgylehetõségbõl, azok variációs lehetõségeiról stb.. stb.. félrészegen is 2-3 másodperc alatt fel tudjunk ismerni a megpillantás utáni pillanatban.
Nem kell kiegészítõ proci, fogd az x86-ot és vidd a picsába
kvp, köszi a kiegészítést, a cikkíró bácsi nevében is.
Üdvözlendõ, tetszik a dolog. Úgy látszik lesz egy újabb kiegészítõ procink a Physix,a GPU és a többi mellé.
Ez egy hardveresen implementalt digitalis neuralis halozat, amin ha jol latom optical flow algoritmus fut. Hasonlo megoldas volt jo harminc valahany eve Leon Chua es Roska Tamas altal kifejlesztett CNNA processzor, bar az analog es programozhato volt, tovabba tartalmazott egy beepitett CCD szenzort is. Tehat az optical flow nem volt fixen bedrotozva, hanem a feltoltheto programok kozzul csak az egyik volt. (meg en irtam meg ra diplomamunkakent jopar eve) 10 eve csinaltak a SZTAKI-ban egy fpga alapu implementaciot is. Ha jol latom a yale-es csapat ezt masolta le. Az optical flow algoritmus biztosan jo, mert a darpa robotauto verseny osszes celig eljutott resztvevoje ezt hasznalta. A Chua fele analog chipes valtozat jelenleg akkora, hogy mar beultetheto akar egy emberi szembe is.