Wpis z mikrobloga

Mirki, mam problem związany trochę z #programowanie , trochę z #grafika lub bardziej #grafika3d , może zahaczać o #fotografia i #algorytmy .

Otóż mam napisać moduł w projekcie, który rozwijam, który będzie w stanie obliczyć odległość od kamery do dowolnego punktu na zdjęciu. Mam dane kąta nachylenia kamery względem osi OZ, wysokość, na której znajduje się kamera, czasami występuje odchylenie względem osi OX (tego kąta nie znam, ale mogę go wyznaczyć poprzez manualną kalibrację względem dwóch wyznaczonych punktów).

Próbowałem narysować siatkę perspektywy na zdjęciu, ale to nie do końca wychodzi, bo wcześniej należałoby zrobić przekształcenie soczewkowe, nanieść siatkę i odwrócić przekształcenie. Znam wysokość soczewki kamery, więc teoretycznie z tangensa mógłbym taką odległość obliczyć, ale chciałbym znaleźć generalną zależność pomiędzy pikselem (x, y) na zdjęciu, a odległością od kamery (dokładność do 10 cm).

Googlowałem już kilka dobrych dni i niestety nie udało mi się znaleźć nic konkretnego. Chciałbym to zrobić jak najprościej bez używania libek typu OpenCV, analizy obrazu i innych takich... Macie jakieś pomysły albo źródła gdzie szukać wiedzy? Byłbym bardzo wdzięczny.

#pomocy #pytanie #pytaniedoeksperta
  • 17
@mihahal: nie da się tego zrobić bez naprawdę poważnego zaplecza. Konkretniej to apka musiałaby mieć rozpoznawanie przedmiotów, bazę ich w pamięci i jeszcze moduł wyliczający ich obrót.
To jedyny sposób żeby znaleźć odległość przedmiotu an zdjęciu 2D, znać jego wymiar i porównać po perspektywie. Albo mieć sonar.
Dzięki wszystkim za cenne wskazówki!

@powaznyczlowiek : jest to zdjęcie zrobione z samochodu, więc widzisz przed sobą (teoretycznie) tylko drogę. Zakładamy, że nie ma przeszkód przed samochodem, widzimy tylko drogę na wprost.

@h3xxx : chciałbym uniknąć AI, bo to jest potężny kombajn

@Naxster : niestety brak jest przedmiotu-wzorca na zdjęciu. Baza przedmiotów do porównania może się pojawić w przyszłości, ale na tym etapie rozwoju projektu jest to niewykonalne.

@cxnmlhuipwetr : klient dysponuje
mihahal - Dzięki wszystkim za cenne wskazówki!

@powaznyczlowiek : jest to zdjęcie ...

źródło: comment_l5pcqoofc3LoojAjO1NUAriZZKkRKwkP.jpg

Pobierz
jak się jest #programista15k to nie ma opcji, że czegoś się nie da zrobić - klient płaci, klient wymaga. A jak skończę tego taska i zacznie działać, to napiszę do tego chłopa z ILM ( ͡° ͜ʖ ͡°)


@mihahal: poczekaj poczekaj, bo może źle zrozumiałem zadanie, albo Ty źle zrozumiałeś zadanie :P

Dostajesz fotkę, płaską jak w zał i Twój algorytm z dokładnością do 10cm określi jak
loczyn - > jak się jest #programista15k to nie ma opcji, że czegoś się nie da zrobić ...

źródło: comment_hdiSYUy2ftFJ6LPmauTSCPcHzXrZCYKA.jpg

Pobierz
@mihahal: jeżeli masz drogę i samochód, to teoretycznie pas powinien mieć konkretna szerokość a miejsce na obrazie kamery powinno być stałe i znane. Więc może można by po tych danych i perspektywie coś liczyć?

Zasadniczo jeżeli pas ma zawsze powiedzmy 2m i coś przecina boczna krawędź pasa, to można policzyć ile w tym miejscy na obrazie ma pas i wyciągnąć jak daleko jest. ale tu jest dużo ale, pas musi być
@loczyn: tak, udało mi się to wstępnie zaimplementować. Na razie nie mam jeszcze efektu usunięcia soczewki, więc siatka perspektywy nie do końca zwraca poprawne odległości (po prawej i lewej stronie względem środka zdjęcia odległości są takie same jak na środku). Za pomocą triangulacji sprawdzam położenie kursora myszy i w zależności od gęstości siatki dostaję w miarę dokładne wyniki.

Miałem odpowiedzieć z załączonym przez Ciebie zdjęciem i naniesioną siatką perspektywy, ale mam