Mõned tuttavad techied küsisid juba, kas olen lõputöö pooleli jätnud - ei, kindlasti pole.
Lihtsalt ei saa ju postitust teha, kui pole millestki rääkida.
Noore inimese elu võib muutuda üsna ettearvamatult ja kiiresti, nii juhtus nüüd minugagi. Kolisin kohvritäie riietega teisele poole Läänemerd, Stockholmi. Töötan siin Tallinna Knowiti emafirmas, Knowit Net Resultis, ning progen koos kohalikega vinges J2EE projektis, kus ehitame ühele Rootsi riiklikule tervishoiuinstitutsioonile infosüsteemi riigis müüdavate farmaatsiatoodete haldamiseks. Lahe on! Plaani järgi jään siia 8-ks nädalaks, st. jõuan tagasi Eestisse siis, kui läheb tõsiseks robotiehitamiseks. Roboti ajud võtsin praegu kaasa ning saan siin vaikselt lõputöö/robotexi asjadega jätkata. Loodan, et jõuan siin ära teha tubli osa lõputöö tehnilisest poolest ning lisaks ka muud botmasteri platvormi uuendused, mis detsembris Robotexi võistlusel käiku lähevad.
![]() |
| Fancy thesis lab @ Stockholm. Kõikides knowiti korterites on by default monitor ja klaviatuur, nende pärast muretsema ei pidanud - panin vga juhtme taha ning hakkasin tegutsema. |
![]() |
| Nii sünnivad meil uued lahendused ;) |
Viimasest blogipostitusest kuni lennuni Rootsi tegelesin sellega, et uurisin põhjalikumalt botmasterit ning "koorisin" eelmises postituses mainitud multithreadilise opencv näidisprogrammi lähtekoodi. Eemaldasin funktsionaalsuse, mida me ei vaja ning suure osa sellega kaasnevast ebavajalikust qt gui kihist. Ühesõnaga valmistan ette integreerimiseks botmasteri platvormi sisse.
Plaanid lähitulevikuks
- Täiustada veidi botmasteri timerit(autor Silver Kuusik) ning teha praegusele botmasteri jõudlusele põhjalik mõõtmine - tulemused saab nanosekundilise täpsusega. Nimelt paljas fps on üsna tühine näitaja. Mind huvitab, kui palju läheb aega igale eraldiseisvale protsessile, mis toimub ühe kaadri töötlemisel: kaadri haaramine kaamerast, värviruumide konverteerimised (YUV-RGB, RGB-HSL), objektide tuvastamine jms. See on väärtuslik info, mida pärast lõputöös kasutada.
- Integreerida botmasterisse uus ettevalmistatud kiire multithreadiline tükk.
- Asendada olemasolev botmasteri cvNamedWindow-il baseeruv graafiline liides. Asemele tulevad kergemad ja moodsad QtGui vahendid - liidest saab disainida drag&drop-ides. Uus gui engine tuleb tegelikult koos eelmise punktiga, tuleb lihtsalt vana liidese pildi kalibreerimise trackbarid uuesti realiseerida.
- Eemaldada opencv-ga ekraanile joonistatav info. Igasugune üleliigne joonistamine sööb mingil määral jõudlust, fps-i ja muud numbrilist infot saab kirjutada tekstiväljadele pildi alla.
- Pärast integreerimist teha uued mõõtmised ning salvestada tulemused. Ootuspärane uus keskmine jõudlus on 30+fps.
- Uurida opencv "kõhus" toimuvat YUV-RGB konverteerimist. Ehk annab parendada opencv lähtekoodi ning asi läheb kiiremaks. Botmasteris on olemas väga kiire RGB-HSL konverteerimise algoritm. (võtab küll päris palju mälu, aga tulemus on väga hea) Võib proovida analoogset kasutada, kui seal pole.
- Uurida, kas tasuks lisada botmasterisse uus "contest mode". Minu teada hetkel konverteerime pilti RGB formaati vaid selleks, et seda kuvada (Kaameral endal RGB väljundit ei ole, kaamerast tuleb YUV). Kuvamisel on tegelikult väärtus vaid roboti testimisel ja pildi kalibreerimisel. Pildi konverteerimine ja kuvamine sööb mingil määral jõudlust. Kui robot võistleb väljakul, siis tegelikult RGB pildi järele vajadust ei ole. Teooria: võiks olla nii, et ühe nupuvajutusega läheb robot "contest mode-i" ehk pilt konverteeritakse vaid ühe korra YUVist HSLi ning kuvamist ei toimu üldse. (Muidu on tsükkel: YUV->RGB, pilt, RGB->HSL, objektide tuvastus) Kaadrite töötlemiskiirus kindlasti mingil määral paraneks.
- Eemaldada botmasterist vanade robotite hinged, kompileerimisel kulub nende peale mõttetult palju aega.. milleks neid ikka build-ida, nende aeg on läinud :D
Hetkel tegevusi küllaga, aga list kindlasti täieneb, mõtteid on veelgi ;)
Tack för att du läser!
Tack för att du läser!



Pole ammu küll teemas olnud, Aga kas mitte ei peaks igasugune RGBsse(ekraanil näitamiseks) konverteerimine raudvaras käima? Teed YUV overlay ja ongi korras?
ReplyDeleteSamuti kõhutunne ütleb, et igasugune YUVist konverteerimine võiks käia läbi eelarvutatud tabeli, eeldusel, et tegu on tüüpilise 8bit - 422 YUViga.
head poindid, Jaan!
DeleteTegelikult kasutasin valet väjendit, kui kirjutasin: "Minu teada hetkel konverteerime pilti RGB formaati vaid selleks, et seda kuvada", sest YUV->RGB on botmasteri skoobist väljas. Kui kaamerast tuleb yuv ja botmasterisse jõuab rgb, siis see peaks toimuma kuskil openCV-s. Ma pole seda kohta oma silmaga veel näinud ja seetõttu ei teagi, kuidas see asi seal toimib. Siit ka puht hüpoteetiline oletus, et äkki kaotame seal aega - mis siis, kui seal ei kasutata lookup tabelit?
Botmasteris on RGB -> HSL konverteerimine, see toimub läbi eelarvutatud tabeli küll.
Ma olen selles värviruumide teemas võhik ja mul võib hetkel olla vale arusaam, sp hetkel uuringi seda asja. Kui kõik oleks selge, siis ei uuriks :P