Spisu treści:

Rekonstrukcja 3D z jednego zdjęcia: 8 kroków
Rekonstrukcja 3D z jednego zdjęcia: 8 kroków

Wideo: Rekonstrukcja 3D z jednego zdjęcia: 8 kroków

Wideo: Rekonstrukcja 3D z jednego zdjęcia: 8 kroków
Wideo: [277] Wydruk 3D - rekonstrukcja i analiza MES - przykłady zastosowania druku 3D | Alibre Atom3D 2024, Lipiec
Anonim
Rekonstrukcja 3D z jednego zdjęcia
Rekonstrukcja 3D z jednego zdjęcia
Rekonstrukcja 3D z jednego zdjęcia
Rekonstrukcja 3D z jednego zdjęcia

Zadanie rekonstrukcji 3D zwykle wiąże się z widzeniem obuocznym. Alternatywnie możesz poruszać pojedynczą kamerą wokół obiektu. Tymczasem, jeśli znany jest kształt obiektu, zadanie można rozwiązać z jednego zdjęcia. Oznacza to, że masz tylko jedną kamerę, która się nie porusza. Zobaczmy, jak to zrobić krok po kroku. Wykorzystamy kostkę Rubika, ponieważ jest dobrze wystandaryzowana i ma bogaty zestaw funkcji. Można go uznać za bardzo prosty obiekt, a jednocześnie skomplikowany konstrukt. Tak więc widzenie maszynowe musi pokonać znaczne przeszkody, aby wykonać zadanie.

Krok 1: Oceń złożoność zadania

Oceń złożoność zadania
Oceń złożoność zadania
Oceń złożoność zadania
Oceń złożoność zadania
Oceń złożoność zadania
Oceń złożoność zadania
Oceń złożoność zadania
Oceń złożoność zadania

Na pierwszy rzut oka zadanie jest proste. Znajdź centralny węzeł, w którym łączą się 3 krawędzie sześcianu i narysuj te krawędzie. Z ich współrzędnych można obliczyć odległość od kamery i kąty obrotu. Problem w tym, że te linie nie istnieją. Na lewym obrazku widać, że każda krawędź jest reprezentowana przez 2 równoległe linie. Ponadto prawy górny obrazek pokazuje, że każdy z nich jest podzielony na 3 segmenty. Co więcej, jeśli zastosujemy odmianę popularnej transformacji Hougha, która potrafi wykrywać odcinki linii, to wykonuje zadanie z pewnymi błędami, które uniemożliwiają wykrycie węzła centralnego. Jeśli końce nie stykają się ze sobą, nie ma jednego punktu. Jeśli detekcja przekroczy koniec, będzie wyglądać jak węzeł na środku krawędzi, jak widać na dwóch pozostałych obrazach.

Krok 2: Znajdź właściwe podejście

Znajdź właściwe podejście
Znajdź właściwe podejście

Gdy zbyt wiele szczegółów uniemożliwia działanie algorytmów deterministycznych, czas rozważyć podejście probabilistyczne. Jeśli obliczymy uśrednione parametry obrazu, ich błędy zostaną znacznie zmniejszone i paradoksalnie metoda okaże się bardziej wiarygodna. Standardowa transformacja Hougha nie wyświetla segmentów linii. Tylko jego nachylenie theta i odległość rho od początku współrzędnych. Tworzą one część przestrzeni Hough, którą pokazano powyżej. Tutaj theta odpowiada osi poziomej. Jasne plamy oznaczają ewentualne linie na obrazie. Zauważ, że kilka takich miejsc znajduje się jeden nad drugim. Nic dziwnego, na naszym obrazie jest wiele równoległych linii. Mają to samo theta i różne rho.

Krok 3: Oblicz histogram Theta

Oblicz histogram Theta
Oblicz histogram Theta

Wykryjmy takie skupiska. W tym celu podsumujemy odczyty dla wszystkich kropek w przestrzeni Hough z tym samym theta. Zobaczysz odpowiedni histogram na ilustracji. Kilka uwag o pomiarach. Podczas pracy z obrazami o współrzędnych pikselowych oś X przebiega normalnie, ale Y wskazuje w dół, więc początek współrzędnych znajduje się w lewym górnym rogu, a theta należy mierzyć od osi X zgodnie z ruchem wskazówek zegara. Pamiętając, że cały zasięg theta na obrazie wynosi 180 stopni, możesz w przybliżeniu sprawdzić, czy 3 główne piki reprezentują 3 dominujące nachylenie na obrazie.

Krok 4: Oblicz histogram Rho

Oblicz histogram Rho
Oblicz histogram Rho

Teraz, gdy znamy 3 główne skupiska równoległych linii, oddzielmy linie w każdym z nich. Możemy powtórzyć to samo podejście. Weźmy kolumnę z przestrzeni Hougha, która odpowiada jednemu pikowi na histogramie theta. Następnie obliczymy kolejny histogram, w którym oś X reprezentuje wartość rho, a Y - zsumowane odczyty dla tego rho. Oczywiście suma będzie mniejsza, więc ten wykres nie jest tak gładki. Niemniej jednak piki są wyraźnie widoczne, a ich liczba (7) dokładnie odpowiada liczbie równoległych linii na obrazie źródłowym. Niestety nie wszystkie wykresy są tak doskonałe, ale zasada jest jasna.

Krok 5: Znajdź węzeł centralny

Znajdź węzeł centralny
Znajdź węzeł centralny

Jeśli weźmiemy środkowy pik na histogramie rho dla każdego theta, otrzymamy 3 linie, które na rysunku są czerwone. Ich przecięcie wyznacza niezbędny punkt.

Krok 6: Wybierz spośród 2 alternatyw

Wybierz spośród 2 alternatyw
Wybierz spośród 2 alternatyw
Wybierz spośród 2 alternatyw
Wybierz spośród 2 alternatyw

Widzisz, że każda linia biegnie od centralnego punktu w obu kierunkach. Jak określić właściwą połowę? Weźmy theta3. Załóżmy, że weźmiemy dolną część tej linii. Obliczmy jeszcze jedną przestrzeń Hougha tylko dla części obrazu od 2 zielonych linii do prawego górnego rogu obrazu. Następnie utwórz dla niego histogram theta. Widzisz, że trzeci pik całkowicie zniknął, więc dokonaliśmy właściwego wyboru.

Krok 7: Określ narożniki zewnętrzne

Określ narożniki zewnętrzne
Określ narożniki zewnętrzne

Teraz możemy użyć pierwszego i ostatniego piku na histogramach rho, aby narysować niebieskie linie, które przecinają czerwone krawędzie i zaznaczają pozostałe rogi. Zadanie rozwiązane.

Krok 8: Wypróbuj w praktyce

Ilustracje do tego Instructable zostały utworzone przy użyciu Percepcji 1.0. Jest to darmowe oprogramowanie, które wykorzystuje OpenCV - potężną bibliotekę do widzenia komputerowego. Może być również powiązany z WinNB, który był używany w moim innym Instructable, zapewniając w ten sposób zdolność widzenia dla robotyki. Oba programy można pobrać ze strony nbsite. Do instalacji wystarczy uruchomić pobrany plik exe. Później możesz go usunąć za pomocą standardowego narzędzia systemu Windows. Witryna zawiera również zasoby dotyczące wizji komputerowej i powiązanych tematów. W Percepcji znajdziesz opisaną metodę rekonstrukcji 3D oraz wiele innych. Zaletą tego programu jest to, że wyświetla wynik końcowy wraz z danymi pośrednimi. Jesteś w stanie zbadać, jak działa widzenie komputerowe, nie będąc programistą. Jeśli chodzi o dane wejściowe, każda metoda ma specjalnie dobrane typowe próbki. Oczywiście możesz też użyć własnego. Możliwe jest wprowadzanie obrazów z pliku lub z aparatu w komputerze. Zapraszam do kontaktu w przypadku jakichkolwiek pytań lub sugestii.

Zalecana: