Fórum Root.cz
		Hlavní témata => Vývoj => Téma založeno: Mysteriozni Kocour  30. 12. 2016, 13:14:57
		
			
			- 
				Chtěl bych udělat knihovnu, která by out of box zprostředkovala vytvoření 3D modelu na základě vstupního proudu obrazových funkcí pořízených stereo kamerou. Už jsem se nad tím zamýšlel a realizace je vcelku přímočará.
Jde o to, že jako základ bych chtěl použít Lucas-Kanade algoritmus (OpenCV) pro nalezení společných bodů dvou obrazových funckcí pořízených v různém prostoru (stereo kamera) a čase (po sobě jdoucí snímky ze stereo kamery). Chci tuto knihovnu udělat pořádně a proto potřebuju vědět, jestli zde není efektivnější algoritmus přizpůsobený přímo pro stereo kamery, než je Lucas-Kanade.
Rekonstrukce by měla být rychlá (nastavitelný počet bodů pro Lucas-Kanade algoritmus) a výstupní model by měl zahrnovat triangulaci. Jeho přesnost se bude zvyšovat v čase, když se postupně bude upravovat pozice předchozích bodů modelu.
			 
			
			- 
				Nemam nejmensi tuseni, ale zajimalo by mne: vazne chcete algoritmicky zpracovavat videosignal v realnem case? To se uz da stihnout?
			
 
			
			- 
				Si myslím, že vetšina moderních GPU bude mít problém... alespoň co odhaduju z toho co je k dispozici.
Navíc výsledky jsou bez kontroly člověka dle mého názoru někdy hodně divoké, nevím, jestli to umělá inteligence zvládne odhadnout co je a není dobře.
Ale jako mě se nápad líbí :) navíc z videa to jde nejlépe.
Nemam nejmensi tuseni, ale zajimalo by mne: vazne chcete algoritmicky zpracovavat videosignal v realnem case? To se uz da stihnout?
			 
			
			- 
				nemyslim ze to zvladnes delat v real time, teda jestli nemas nejakou hodne multi cpu/gpu masinu. pouzivam na rekonstrukce softy jako Photoscan a je to vesmes hodne offline pocitani.
kombinoval bych ciste numericke metody s deep restricted boltzmann machine, nicmene tohle rozumne neumi ani google jako nejvetsi prukopnik s rbm tak neocekavej rychle nejaky rozumny vysledek:-)
			 
			
			- 
				Sorry hoší, ale je to fakt hloupé když hned tvrdíte, že to nepůjde real-time, aniž byste znali požadavky na kvalitu výstupu - robotovi to stačí dost raw, jen aby věděl kde jsou dvěře, okno, překážka, nepotřebuje textury, nepotřebuje vědět jestli támhle ten robertek co leží na koberci má v žaludu piercing nebo nemá. Navíc, pokud něco potřebuje detailněji, zpomalí, protože jak už jsem psal, ke zpřesňování dochází v čase.
			
 
			
			- 
				nespecifikobal jsi narocnost.
pokud ti staci uroven co maji napr autonomni auta, tak to zcela evidentne jde
			 
			
			- 
				nicmene pak nepotrebujes stereo, pak ti staci paralaxa i z jednoho streamu. dotaz na stereo evokoval vetsi detail
			
 
			
			- 
				a do tretice:-) pak ale asi nepotrebujes 3d model a staci ti depth map, ne? viz https://web.stanford.edu/class/ee368/Project_Autumn_1516/Reports/Appiah_Bandaru.pdf
			
 
			
			- 
				Můžeš udělat rekonstrukci z jediného streamu, ale pokud se nad tím zamyslím, má to hned dvě vady. První je, že z jediné kamery nezískáš absolutní měřítko ve výsledném 3D modelu, muselo by se to potom nějak kalibrovat podle fyzických meřítek, což mi přijde zbytečně komplikované. Druhý problém je, že k tomu potřebuješ elektronické IMU, tzn. musíš znát natočení kamery v jednotlivých záběrech, jinak se 3D model zrekonstruovat nedá. Zapojit IMU problém není, ale příjde mi to zbytečné. Každý stroj má problém s přesností IMU, načítá se v něm chyba a trpí různými nepřesnostmi v měření. Duální kamera je další systém, ze kterého je možné získat informace o náklonu a může se tím zpřesnit IMU v robotovi.
			
 
			
			- 
				
a do tretice:-) pak ale asi nepotrebujes 3d model a staci ti depth map, ne? viz https://web.stanford.edu/class/ee368/Project_Autumn_1516/Reports/Appiah_Bandaru.pdf
Depth Mapa v podstatě 3D model je, ale s otázníkem, zda je možné v následujících scénách navazovat na již předešlé scény a zpřesňovat je.
			 
			
			- 
				ja bych delal depth map -> point cloud -> distance field voxel map a s tim se da delat uz spousta veci, occluison testy, raymarching atd....neni problem pak v case aktualizovat, filtrovat, demoise atd....hodne stesti pak ukaz vysledek
			
 
			
			- 
				
První je, že z jediné kamery nezískáš absolutní měřítko
Ano, to je pravda. Otazkou je, jestli vykreses vetsi vyslednou presnost z dvou kamer nasroubovanejch na smesne kratkou zakladnu rekneme radove 10cm (pokud to neni auto, pak treba 100cm), oproti sice vyrazne min presny odometrii, ktera ale dokaze jezdit v rozsahu cely sceny a po uzavreni geodetickeho poradu i dokompenzovat znacnou cast kumulativniho driftu.
Druhý problém je, že k tomu potřebuješ elektronické IMU,
Pokud jde o translacni vzdalenosi, takova vec, jako je opticka mys, meri velmi dobre. Pokud jde o rotaci, tak kamera je skvela IMU, takhle jsem si jednou hral s mobilem ja:
https://www.youtube.com/watch?v=2stj3f-iEFY
Byla to ale takova rychlo bastlo hricka, takze na dodelani trajektorie kamery z videa uz nedoslo (byt to jde -- az na to meritko -- velmi dobre).
Duální kamera je další systém, ze kterého je možné získat informace o náklonu a může se tím zpřesnit IMU v robotovi.
Coz plati i o kamere nedualni. Nicmene s ohledem na cenu kamer v dnesni dobe a mozne datove toky je to urcite dobrej napad mit tam kamery dve.
To, co popisujes jako dotaz, mi silne pripomina videa se SLAMem. Vypocetni narocnost na dnesni pomery uplne smesne mala a vysledky velmi zajimavy.
			 
			
			- 
				Robotron: ano, co chci udelat je to velice podobne tomu SLAM
https://www.youtube.com/watch?v=1pshoOWd4kE
Až na to, že on jako step po zjisteni tech bodu jimi jakoby prolozi objekt, kdežto já bych pokračoval v nachazení dalších bodů. Část bodů by byly nové body, část bodů by byly nalezené staré body, čímž bych jednak odvodil nový úhel natočeni kamer vůči scéně, druhak bych zprůměroval pozici starších bodů.
Problém vidm akorát v Lucas-Kanade, protože zbytečně nebere v potaz, že může prohledávat i na snímku pořízeném stereo kamerou, kde může aproximovat, v okolí jakého místa má začít hledat stejný bod, protože mezi oběma kamerami existuje známý vztah.
			 
			
			- 
				Tady tohle velice odpovida tomu, ja kbych si to predstavoval
https://www.youtube.com/watch?v=aQoxn9Kzw_0
Tady je k tomu clanek vysvelujici, proc jsou bezne pouzivane metody 3d rekonstrukce napicu v robotice:
https://people.csail.mit.edu/spillai/projects/fast-stereo-reconstruction/pillai_stereo16.pdf
			 
			
			- 
				Jeste lepsi, tohle je presne ono:
https://www.youtube.com/watch?v=r4bk3FmhYDk
			 
			
			- 
				Jakou kameru planujete pouzivat? :)
			
 
			
			- 
				Jakoukoliv nejlevnejsi ktera ma spolehlive udane hodnoty snimanych uhlu. Možná Pi Kameru.
			
 
			
			- 
				Nejdriv se trochu uc, jak vubec SLAM, popr. feature-tracking funguje. To, co popisujes vyse jako desnou inovaci, mas uz v tech letitech SLAM clancich: novy body se pridavaj a stary prumerovanim vylepsujou. Dale pak je velmi vtipne "kamera, ktera ma presne udany uhly" -- aby to za neco stalo, to se vzdycky kalibruje, nejklasictejsi klasika i se zdrojakama na netu je vyfotit sachovnici z ruznejch uhlu. Je uplne jedno, jestli to snimas webcamem s krivou akrylatovou cockou, nebo komorou Zeiss (no -- dobre -- pomuze, kdyz jsou geometricky vady funkci polomeru). Podstatny je, aby se objektiv neklepal a nemenil ohnisko.
			
 
			
			- 
				Nechci kazit legraci, ale predstava, ze o problematice (evidentne skoro) nic netusim, sednu, sesypu par veci z opencv a budu mit vysledky, jako profesor z MIT, ktery se tim zabyva uz aspon deset let je dost naivni... jestli na tom trvas, tak si precti ten clanek, vsechno v nem pochop a muzes to pak podle toho zkusit zbastlit... svoji invenci bych do toho zapojoval az teprve kdyz dokazes reprodukovat to, jak to delaj ostatni.
Dej pak vedet, jak se podarilo  8)
			 
			
			- 
				
Nechci kazit legraci, ale predstava, ze o problematice (evidentne skoro) nic netusim, sednu, sesypu par veci z opencv a budu mit vysledky, jako profesor z MIT, ktery se tim zabyva uz aspon deset let je dost naivni... jestli na tom trvas, tak si precti ten clanek, vsechno v nem pochop a muzes to pak podle toho zkusit zbastlit... svoji invenci bych do toho zapojoval az teprve kdyz dokazes reprodukovat to, jak to delaj ostatni.
Dej pak vedet, jak se podarilo  8)
A proč tady vlastně teda píšeš, když o té problematice víš úplné ho vno?