2024. április 16., kedd

Gyorskeresés

Blog

[ ÚJ BEJEGYZÉS ]   [ ÚJ CIKK ]

  • [SVS_17] Október 21-24.

    Október 21., még 49 nap

    Hétfőn sikeresen félreértettem a konzulensemet. Nem azt mondta, hogy csináljam meg jobbra, majd balra a 3D-s ponthalmazt, majd abból szűrjek, hanem azt, hogy fogjam a két disparity mapot és abból szűrjek, majd a bal oldali képre csináljam meg a 3D-s ponthalmazt.

    A jobb kép 3D-s ponthalmazával az a baj, hogy gyakorlatilag nem nyertem semmit azzal, hogy ki lett számolva. Látszódik persze minden ami kell, de nincs kapcsolat a bal és a jobb halmaz Z értékei között (ami a távolság), nem lehet felhasználni szűrésre. Ha mégis kézzel belövöm a szűrést, akkor bármilyen változtatásnál újra ki kéne kézzel számolni mindent és újra belőni.

    Az a terv, hogy "megengedő" BM-t eresztek rá a jobb és a bal képre, majd a nem egyező disparity értékeket törlöm, így a fals adatok kiszóródnak.

    Először is tartok egy kis oktatást :K.

    Miért is csinálom ezt.

    Ugye mi is így látunk, hogy a két szemből érkező képekből az agyunk rakja össze a 3D-t. Ha közelebb rakjuk az ujjunk a szemünkhöz és pislogunk felváltva, akkor látjuk, hogy jobban "mozog" az ujjunk két pislantás között, míg ha távol van, kevésbé. Magyarán minél nagyobb az elmozdulás, annál közelebb van a tárgy.

    Folytatás...

    Elrood 13 éve 3

  • [SVS_16] Október 20.

    Október 20., még 50 nap

    Az 15. bejegyzésben írtam, hogy balra rosszul lát és ezzel kezdeni kell valamit. Közben rájöttem, hogy azzal nem lehet mit kezdeni, hiszen a kamerák rögzítettek és jobbra is ez a probléma, hogy van egy sáv, amire nincs illesztés.

    Több megoldási lehetőség kínálkozik:
    1. A robot akkor fordul, mikor még biztonságosan megállapítható, hogy mehet-e balra vagy jobbra, ha szemben akadály van.
    Hátrány: szerintem elég csúnyán néz ki, hogy a tárgy előtt nagyon messze már fordul, kicsi teremben meg körbe-körbe forgolódik.
    2. A robot használja a fejét, így közelebb engedhetem a tárgyhoz és mégis biztonságosabban megállapítható merre induljon.
    Hátrány: konzulensnek nem tetszik :).
    3. 1. pontban leírtak a javítása. Eddig csak a bal képre volt megállapítva a 3D-s koordináták, most meglesz állapítva a jobb oldalra is, így kicsit biztosabb lesz a 3D-s térkép megállapítása.
    Hátrány: ugyanazt mint az elsőnek, csak kicsit talán közelebb lehet engedni.

    3. pontbelit el is kezdtem tesztelni. BM-mel van egy baj, csak balra illeszt. Szerencsére nem volt túl nagy probléma megcsinálni az ellenkezőjét. Felcseréltem a két képet a függvényben, és kicsit alakítottam a beállításokon:

    BMState->minDisparity=-90;
    BMState->uniquenessRatio=60;

    Folytatás...

    Elrood 13 éve 0

  • [SVS_15] Október 18-19.

    Október 18., még 52 nap

    A robot következőt fogja csinálni: megy, míg túl közel nem kerül egy tárgyhoz, aztán elfordul valamerre, aztán tovább halad. Megpróbálok egy elég nagy tesztpályát készíteni, ami teli lesz szórva dobozokkal.

    Az adatok megfelelőek, megkaptam a zöld jelzést, most már pontos adatok alapján kidolgozhatom azt az algoritmust, ami a fenti cselekvést meg tudja csinálni.

    Persze ezzel vannak gondok, mert jelenleg a bal képre készül el a 3D-s ponthalmaz, ezért balra rosszabbul lát. A másik probléma, hogy a kamerák távol vannak, kicsi a látószög. E két nagyobb probléma miatt a robot kénytelen lesz látványosan hamarabb fordulni.
    Van két ötlet ennek a leküzdésére, majd később leírom.

    Csináltam egy képsorozatot, ahol centivel szépen lemértem minden távolságot, elkezdtem a kapott OpenCV eredményeket hozzárendelni a valósághoz.

    Ígértem egy olyan képet is, ahol nem merőlegesen, hanem élével szemben áll egy doboz a robottal, íme:

    Folytatás...

    Elrood 13 éve 3

  • [SVS_14] Október 16-17.

    Október 16., még 54 nap

    Feljegyzés, az 1. és 2. képsorozat 54:50-s fejpozíciónál készültek

    Ma csak egy fejlesztés történt, a párhuzamosan végrehajtható dolgokat külön threadbe raktam. A sebesség fontos :). Mérések holnap, mert lámpafénynél eléggé ugrálnak az eredmények, de így is látható gyorsulás. Threadbe rakáson kívül van még egy lehetőség a gyorsításra: kiszedem a megjelenítést. A rektifikált kép és a látható disparity kép előállítása is időbe telik.

    VS2008 is tud szép hibákat irkálni:

    Pedig a parancsot az msdn oldaláról néztem, és csak a kernel32.dll volt megadva függésnek.

    Debug módban nem ilyeneket kéne feldobnia...

    Október 17., még 53 nap

    Hibaüzenetek folytatása, most SmartSVN:

    Semmi változás előtte, program újraindításánál már jó

    Folytatás...

    Elrood 14 éve 0

  • [SVS_13] Október 9-15.

    Október 11., még 59 nap

    Csak kiderült, hogy valami nem stimmel.
    A teszthez használt képekkel van egy nagy baj: a sakktábla.
    Ugyanis a BM párokat keres a két kép között, a sakktábla mintái pedig ismétlődnek, így mindig a bal szélén találja meg (ha balról kezdi, nem néztem utána) a keresett pontot, hiába van az mondjuk a sakktábla jobb szélén. Pontosan ezért volt egy kupacban minden talált pont, aaaaaah.

    Első körben saját képek kellettek, amiket lementek a programmal, mert robottal rohangászva nem lehet mindig ugyanolyan képeket csinálni.

    Rectify és remap a menüből átköltözött ide, a képmentést egyelőre a normálhoz raktam.

    Gondoltam a kép neveket a rand() nevű csoda függvénnyel teszem különbözővé, hát nem eléggé random :). Később átjavítom időbélyegre.

    Második körben csináltam egy külön projektet, hogy a BM és egyéb teszteket elvégezzem, mert az eddigiek teli voltak szemetelve marhaságokkal.

    A terv az, hogy egyelőre megpróbálom a BM-ből kihozni azt, amit lehet. Ha sikerül, és az FPS 1 lesz vagy afelett, akkor meghagyjuk, és ha még van idő, akkor próbálom meg felgyorsítani ritka illesztéssel.

    Folytatás...

    Elrood 14 éve 3

  • [SVS_12] Szeptember 20.-Október 8.

    Szeptember 20., még 80 nap

    Ebben a postban kicsit benéztem, OpenCV a C-s és a C++-s rész is 2.1-s: [link].

    Következő lépés: A két képből 3D-s adatokat nyerni.

    Október 8., még 62 nap

    Visszatértem, elég sokat szenvedtem a 3D-s adatokkal eddig.
    Elvileg az OpenCV-ben van egy függvény, cvReprojectImageTo3D, amivel elvileg rögtön 3D-s ponthalmaz nyerhető a cvFindStereoCorrespondenceBM eredményéből. Itt egy bizonyíték.

    Sajnos nálam valami nem klappol. Most a különböző próbálgatásoknak a beállításai és eredményei lesznek felsorolva.

    Először is kellett két, ami mindig ugyanaz, és van sztereókalibráció, ezért az OpenCV példák közti képet használtam. A különböző verziók között csak a változásokat írom le.

    Folytatás...

    Elrood 14 éve 0

Hirdetés

Copyright © 2000-2024 PROHARDVER Informatikai Kft.