Rychlá 3D stereo rekonstrukce obrazu v čase pro robotiku

Mysteriozni Kocour

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.
« Poslední změna: 30. 12. 2016, 21:50:56 od Petr Krčmář »


JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Rychlá 3D Stereo Rekonstrukce Obrazu v čase pro Robotiku
« Odpověď #1 kdy: 30. 12. 2016, 14:04:43 »
Nemam nejmensi tuseni, ale zajimalo by mne: vazne chcete algoritmicky zpracovavat videosignal v realnem case? To se uz da stihnout?

Re:Rychlá 3D Stereo Rekonstrukce Obrazu v čase pro Robotiku
« Odpověď #2 kdy: 30. 12. 2016, 16:42:20 »
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?
„Řemeslo se naučí každý. Umění nikdo.“
„Jednoduchost je nejvyšší úroveň sofistikovanosti.“
- Leonardo Da Vinci

ferren

Re:Rychlá 3D Stereo Rekonstrukce Obrazu v čase pro Robotiku
« Odpověď #3 kdy: 30. 12. 2016, 17:53:04 »
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:-)

Mysteriozni Kocour

Re:Rychlá 3D Stereo Rekonstrukce Obrazu v čase pro Robotiku
« Odpověď #4 kdy: 30. 12. 2016, 18:04:04 »
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.


ferren

Re:Rychlá 3D Stereo Rekonstrukce Obrazu v čase pro Robotiku
« Odpověď #5 kdy: 30. 12. 2016, 18:23:52 »
nespecifikobal jsi narocnost.
pokud ti staci uroven co maji napr autonomni auta, tak to zcela evidentne jde

ferren

Re:Rychlá 3D Stereo Rekonstrukce Obrazu v čase pro Robotiku
« Odpověď #6 kdy: 30. 12. 2016, 18:26:44 »
nicmene pak nepotrebujes stereo, pak ti staci paralaxa i z jednoho streamu. dotaz na stereo evokoval vetsi detail

ferren

Re:Rychlá 3D Stereo Rekonstrukce Obrazu v čase pro Robotiku
« Odpověď #7 kdy: 30. 12. 2016, 18:34:31 »
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

Mysteriozni Kocour

Re:Rychlá 3D Stereo Rekonstrukce Obrazu v čase pro Robotiku
« Odpověď #8 kdy: 30. 12. 2016, 18:34:51 »
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.

Mysteriozni Kocour

Re:Rychlá 3D Stereo Rekonstrukce Obrazu v čase pro Robotiku
« Odpověď #9 kdy: 30. 12. 2016, 18:36:18 »
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.

ferren

Re:Rychlá 3D Stereo Rekonstrukce Obrazu v čase pro Robotiku
« Odpověď #10 kdy: 30. 12. 2016, 18:49:32 »
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

robotron

Re:Rychlá 3D Stereo Rekonstrukce Obrazu v čase pro Robotiku
« Odpověď #11 kdy: 30. 12. 2016, 21:17:10 »
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.

Citace
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).

Citace
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.

Mysteriozni Kocour

Re:Rychlá 3D stereo rekonstrukce obrazu v čase pro robotiku
« Odpověď #12 kdy: 30. 12. 2016, 23:58:57 »
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.

Mysteriozni Kocour

Re:Rychlá 3D stereo rekonstrukce obrazu v čase pro robotiku
« Odpověď #13 kdy: 31. 12. 2016, 00:11:23 »
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

Mysteriozni Kocour

Re:Rychlá 3D stereo rekonstrukce obrazu v čase pro robotiku
« Odpověď #14 kdy: 31. 12. 2016, 00:13:20 »
Jeste lepsi, tohle je presne ono:

https://www.youtube.com/watch?v=r4bk3FmhYDk