Sadržaj:

3D rekonstrukcija s jedne fotografije: 8 koraka
3D rekonstrukcija s jedne fotografije: 8 koraka

Video: 3D rekonstrukcija s jedne fotografije: 8 koraka

Video: 3D rekonstrukcija s jedne fotografije: 8 koraka
Video: Разница Чечни с Дагестаном. 2024, Novembar
Anonim
3D rekonstrukcija iz jedne fotografije
3D rekonstrukcija iz jedne fotografije
3D rekonstrukcija iz jedne fotografije
3D rekonstrukcija iz jedne fotografije

Zadatak 3D rekonstrukcije obično je povezan s binokularnim vidom. Alternativno, možete pomicati jednu kameru oko objekta. U međuvremenu, ako je oblik objekta poznat, zadatak se može riješiti iz jedne fotografije. To znači da imate samo jednu kameru i da se ne miče. Pogledajmo kako to učiniti korak po korak. Koristit ćemo Rubikovu kocku jer je dobro standardizirana i ima bogat skup mogućnosti. Može se smatrati vrlo jednostavnim objektom i istovremeno kompliciranom konstrukcijom. Dakle, mašinski vid mora nadići značajne prepreke kako bi dovršio zadatak.

Korak 1: Procijenite složenost zadatka

Procijenite složenost zadatka
Procijenite složenost zadatka
Procijenite složenost zadatka
Procijenite složenost zadatka
Procijenite složenost zadatka
Procijenite složenost zadatka
Procijenite složenost zadatka
Procijenite složenost zadatka

Na prvi pogled, zadatak je jednostavan. Pronađite središnji čvor gdje se 3 ruba kocke spajaju i nacrtajte te rubove. Iz njihovih koordinata moguće je izračunati udaljenost od kamere i kutove rotacije. Problem je u tome što ove linije ne postoje. Sa lijeve slike vidite da je svaki rub predstavljen s 2 paralelne linije. Nadalje, gornja desna slika pokazuje da je svaki od njih podijeljen na 3 segmenta. Štoviše, ako primijenimo varijantu popularne Hough transformacije koja može otkriti segmente linija, ona izvršava zadatak s nekim greškama koje onemogućuju otkrivanje središnjeg čvora. Ako krajevi ne dopiru jedan do drugog, nema jedinstvene tačke. Ako otkrivanje prekorači kraj, izgledat će kao čvor na sredini ruba kao što vidite na 2 preostale slike.

Korak 2: Pronađite odgovarajući pristup

Pronađite odgovarajući pristup
Pronađite odgovarajući pristup

Kada previše detalja čini determinističke algoritme nesposobnima za rad, vrijeme je da razmislite o vjerojatnom pristupu. Ako izračunamo prosječne parametre slike, njihove greške će se značajno smanjiti i paradoksalno će se metoda pokazati pouzdanijom. Standardna Hough transformacija ne ispisuje segmente linije. Samo njegov nagib theta i udaljenost rho od koordinatnog ishodišta. Oni tvore prostor Hough čiji je dio prikazan gore. Ovdje teta odgovara vodoravnoj osi. Svijetle mrlje označavaju moguće linije na slici. Imajte na umu da se nekoliko takvih mjesta nalazi jedno iznad drugog. Nije ni čudo, na našoj slici postoji mnogo paralelnih linija. Imaju istu tetu i različit rho.

Korak 3: Izračunajte Theta histogram

Izračunajte Theta histogram
Izračunajte Theta histogram

Otkrijmo takve klastere. U tu ćemo svrhu sažeti očitanja za sve točke u prostoru Hough s istom tetom. Na ilustraciji vidite odgovarajući histogram. Nekoliko napomena o mjerenjima. Kada radite sa slikama u koordinatama piksela, X os ide kao i obično, ali Y pokazuje prema dolje, tako da je ishodište koordinate gornji lijevi kut i theta se treba mjeriti od osi X u smjeru kazaljke na satu. Imajući na umu da je cijeli zaokret tete na slici 180 stupnjeva, možete otprilike provjeriti da 3 velika vrha predstavljaju 3 dominantna nagiba na slici.

Korak 4: Izračunajte Rho histogram

Izračunajte Rho histogram
Izračunajte Rho histogram

Sada kada znamo 3 glavne grupe paralelnih linija, odvojimo linije unutar svake od njih. Isti pristup možemo ponoviti. Uzmimo kolonu iz prostora Hough koja odgovara jednom vrhu na theta histogramu. Zatim ćemo izračunati drugi histogram gdje X os predstavlja rho vrijednost, a Y - sažeta očitanja za ovaj rho. Očigledno, zbir će biti manji pa ovaj grafikon nije tako gladak. Ipak, vrhovi su jasno vidljivi i njihov broj (7) točno odgovara broju paralelnih linija na izvornoj slici. Nažalost, nisu svi grafikoni tako savršeni, ali princip je jasan.

Korak 5: Pronađite središnji čvor

Pronađite centralni čvor
Pronađite centralni čvor

Ako uzmemo središnji vrh na rho histogramu za svaku tetu, dobit ćemo 3 linije koje su na slici crvene. Njihovo sjecište označava potrebnu točku.

Korak 6: Odaberite jednu od 2 alternative

Odaberite jednu od 2 alternative
Odaberite jednu od 2 alternative
Odaberite jednu od 2 alternative
Odaberite jednu od 2 alternative

Vidite da svaka linija ide od središnje tačke u oba smjera. Kako odrediti ispravnu polovinu? Uzmimo theta3. Pretpostavimo da uzmemo donji dio ove linije. Izračunajmo još jedan Hough prostor samo za dio slike od 2 zelene linije do gornjeg desnog kuta slike. Zatim za njega napravite theta histogram. Vidite da je treći vrh potpuno nestao pa smo napravili pravi izbor.

Korak 7: Odredite vanjske kutove

Odredite vanjske kutove
Odredite vanjske kutove

Sada možemo koristiti prvi i posljednji vrh na rho histogramima kako bismo nacrtali plave linije koje presijecaju crvene rubove i označavaju ostale uglove. Zadatak je riješen.

Korak 8: Isprobajte u praksi

Ilustracije za ovaj Instructable nastale su pomoću Perception 1.0. Ovo je besplatni softver koji koristi OpenCV - moćnu biblioteku za računarski vid. Također se može povezati s WinNB -om koji je korišten u mom drugom Instructable -u i na taj način je omogućio viziju robotike. Oba programa možete preuzeti sa nbsite. Za instalaciju samo pokrenite preuzetu exe datoteku. Kasnije ga možete ukloniti pomoću standardnog alata u sustavu Windows. Stranica takođe sadrži izvore o računarskom vidu i srodnim temama. U Perception -u ćete pronaći opisanu metodu 3D rekonstrukcije, kao i mnoge druge. Prednost ovog programa je u tome što daje konačni rezultat zajedno s posrednim podacima. Možete istraživati kako funkcionira računarski vid, a da niste programer. Što se tiče unosa, svaka metoda ima posebno odabrane tipične uzorke. Naravno, možete koristiti i svoj. Moguće je unositi slike iz datoteke ili sa kamere računara. Slobodno me kontaktirajte sa bilo kakvim pitanjima ili prijedlozima.

Preporučuje se: