logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Wyznaczanie położenia obiektów 3D za pomocą dwóch kamer.

15 Paź 2007 17:40 4258 25
  • #1 4381397
    Konto nie istnieje
    Poziom 1  
  • #3 4387160
    Konto nie istnieje
    Poziom 1  
  • #4 4387562
    Maly
    Poziom 33  
    Posty: 2607
    Pomógł: 195
    Ocena: 336
    Na Politechnice Łódzkiej powstał projekt robota, który miał rozpoznawać obraz na podstawie różnic obrazów z dwóch kamer. Ale z tego co wiem, algorym był dość skomplikowany i wątpię, aby autor zgodził się go udostępnić. bynajmniej to pracowało i zdawało egzamin.
  • #5 4393781
    Fyszo
    Poziom 37  
    Posty: 3987
    Pomógł: 223
    Ocena: 115
    Dopóki nie istnieje technologia dorównująca tkankom biologicznym wszystko co oparte jest o biologiczny sposób identyfikacji nie zda egzaminu. Oko posiada jeszcze coś takiego jak ogniskowanie. I musisz dołożyć jeszcze jedną zmienna 'ogniskową' soczewki kamery. Odległość można wyznaczyć z trójkąta tworzonego z: 1-kamera,2-kamera, obiekt. I przeliczyć kąty patrzenia kamer. Dokładność wykonania powinna byc jak najlepsza. A kamery jak najbardziej oddalone.
  • #6 4395931
    Konto nie istnieje
    Poziom 1  
  • #7 4396567
    qrdel
    Poziom 28  
    Posty: 1074
    Pomógł: 100
    Ocena: 70
    Zacznij pisać po polsku, to może uwierzymy że potrafisz przeczytać ze zrozumieniem.

    W rzeczywistym świecie potrzebujesz mózgu małpy wstawionego do pojazdu, żeby się orientował.
    Najpierw potrzebny jest "feature detector", proces wyróżniania obiektów z tła, dopiero potem możesz określać ich położenie.
    Proponuję pewne ułatwienia: Całe otoczenie jasno-szare (białe + cienie) a na nielicznych przeszkodach średnio duże czarne kropy.

    Algorytm:
    1. w obrazie jednej kamery znaleźć kropę.
    2. z obrazów obu kamer wyciągnąć po parę linii poziomych (zakładam że kamery rozstawione w poziomie) i uśrednić dane w pionie, w wyniku wychodzą 2 funkcje zależności jasności od przesunięcia.
    3. Znaleźć różnicę położenia kropy na obu obrazach (można potraktować jako różnicę fazy dwóch sygnałów)

    To oczywiście zgrubne pomysły ad hoc , ale chyba realne. Potem możesz w białym świecie wszystkie obiekty malować w pionowe czarne paski (albo tylko krewędzie).

    Zresztą może prościej odwrotnie, w czarnym, wyciemnionym pustym pomieszczeniu z "sufitu" wiszą jedynie żarówki (diody) a robot ma je omijać.
  • #8 4402307
    Konto nie istnieje
    Poziom 1  
  • #9 4404477
    qrdel
    Poziom 28  
    Posty: 1074
    Pomógł: 100
    Ocena: 70
    No cóż, przy takim podejściu wiele nie pomogę.
    Piękną jest cecha wielkomyślności pozwalająca porywać się na wielkie dzieła, ale tylko w połączeniu z realnym spojrzeniem nie naraża na śmieszność.
    Poczytaj o budowie i funkcjonowaniu siatkówki ((i to raczej nie u człowieka a u muchy [tzn. u niej to oka złożonego]) , można tam znaleźć ciekawe patenty i to już ewolucyjnie przetestowane.
    ---
    A jednak dobrze pamiętałem, muchy mają siatkówkę.
  • #10 4404687
    Fyszo
    Poziom 37  
    Posty: 3987
    Pomógł: 223
    Ocena: 115
    atom1477 napisał:
    Niestety takie "uproszczenia" są nie do przyjęcia.
    A jak kamery zobaczą kilka kropek to skąd algorytm ma wiedzieć która kropka to która? To już łatwiej jest rozpoznawać rzeczywiste przeszkody bo one przynajmniej w 99% będą się różniły od siebie.
    Jak już mam dawać kropy to wystarczy jedna kamera a odległość będzie się wyznaczało z wielkości kropy. Ale mi nie o to chodzi.


    Nawet ten sam obraz z 2 innych kamer będzie inny. Różnice w rozrzucie parametrów musisz skorygować, co spowoduje utrate części szczegółów. Procesorek w myszce optycznej obrabia tylko 48 pikseli a u ciebie prawdopodobnie 2xVGA. Nawet jak napiszesz program to nie bedzie działał w czasie rzeczywistym.
  • #11 4404835
    qrdel
    Poziom 28  
    Posty: 1074
    Pomógł: 100
    Ocena: 70
  • #12 4406547
    Konto nie istnieje
    Poziom 1  
  • #13 4406751
    Fyszo
    Poziom 37  
    Posty: 3987
    Pomógł: 223
    Ocena: 115
    Wyobraź sobie że pół zdjęcia masz drzewo w odległości 100m i drugie pół kawałek płotu z odległości 1m. Poza tym nic więcej nie ma, ostrość i kontrast znakomite. Czy twój robot ominie płot czy na niego wjedzie. Tylko nie pisz że ominie, napisz lepiej dlaczego. Co z sytuacją gdy zasłonisz jedna kamerę (np. tym płotem).
  • #14 4406889
    Konto nie istnieje
    Poziom 1  
  • #15 4406943
    Konto nie istnieje
    Poziom 1  
  • #16 4406997
    Konto nie istnieje
    Poziom 1  
  • #17 4410471
    Konto nie istnieje
    Poziom 1  
  • #18 4412274
    qrdel
    Poziom 28  
    Posty: 1074
    Pomógł: 100
    Ocena: 70
    No rzeczywiscie.
    A to przecie najstraszniejszy problem robotyki.
  • #19 4412492
    Fyszo
    Poziom 37  
    Posty: 3987
    Pomógł: 223
    Ocena: 115
    Przeszkadza ci konstruktywna krytyka?
  • #20 4412935
    Konto nie istnieje
    Poziom 1  
  • #21 4414923
    Konto nie istnieje
    Poziom 1  
  • #22 4415752
    Fyszo
    Poziom 37  
    Posty: 3987
    Pomógł: 223
    Ocena: 115
    Nazywaj rzeczy po imieniu - układ kartezjański i układ biegunowy.

    PS. Jak ci się udało otrzymać ścianę na rysunku skoro nie powinna reagować na twój algorytm. I te zdjęcia to robiłeś z góry?
  • #23 4416305
    Konto nie istnieje
    Poziom 1  
  • #24 4416395
    Fyszo
    Poziom 37  
    Posty: 3987
    Pomógł: 223
    Ocena: 115
    Słuchaj: wyjaśnij co to za zdjęcia, bo na nich masz widoczną płaską ścianę której twój agorytm w takim stanie jak podałeś nie jest w stanie określić (bo obie kamery widzą identyczny obraz). Rzut zdjęć jest z góry, poddawałeś go obróbce?

    Druga sprawa to jakim sposobem na rysunkach wychodzą ci takie ładne kółeczka po butelkach skoro kamerujesz z jednej strony?
  • #25 4416513
    Konto nie istnieje
    Poziom 1  
  • #26 4416535
    Fyszo
    Poziom 37  
    Posty: 3987
    Pomógł: 223
    Ocena: 115
    Niewidziałem rys1 bo go nie udostepniłeś (sama ramka z nazwą - bez rysunku)

Podsumowanie tematu

✨ Dyskusja dotyczy wyznaczania położenia obiektów 3D za pomocą dwóch kamer umieszczonych w robocie w stałej odległości, patrzących równolegle do przodu, na wzór ludzkich oczu. Głównym problemem jest znalezienie algorytmu, który na podstawie dwóch zdjęć z różnych punktów widzenia potrafi określić przeszkody i ich odległości. Proponowany sposób polega na przesuwaniu jednego obrazu względem drugiego w celu znalezienia maksymalnego podobieństwa fragmentów (bloków pikseli), co pozwala wyznaczyć przesunięcie i w konsekwencji odległość obiektu. Dyskutowano o konieczności kalibracji kamer, korekcji parametrów optycznych i ograniczeniach wynikających z różnic w obrazach oraz problemach z obiektami blisko kamer. Wskazano, że algorytm wymaga detekcji cech (feature detection) i porównywania fragmentów obrazu, a także że w praktyce może być potrzebna szybka obróbka danych na procesorach ARM7/9. Autor przedstawił wstępne efekty działania algorytmu, pokazujące mapę odległości kolorowaną według przesunięcia pikseli, z wykryciem obiektów takich jak butelki, oscyloskop czy krzesło. Poruszono także kwestie ograniczeń stereoskopii, wpływu zasłonięcia jednej kamery oraz analogii do widzenia biologicznego. W dyskusji pojawiły się sugestie dotyczące analizy sygnałów jasności, wykorzystania linii poziomych do uśredniania danych oraz odniesienia do biologicznych systemów widzenia (np. siatkówka muchy). Autor podkreślił, że algorytm działa na surowych danych BMP, bez automatyki kamer, i że wymaga znalezienia jednoznacznego maksimum podobieństwa dla poprawnego wyznaczenia odległości.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA