Pytanie:
Czy na podstawie samego zdjęcia pejzażu można określić, czy zostało zrobione z bliska przy szerokim kącie, czy z daleka z zoomem?
pr3sidentspence
2019-05-16 23:14:46 UTC
view on stackexchange narkive permalink

Opiekuję się projektem digitalizującym i udostępniam zdjęcia archiwalne w naszym mieście. Coś, z czym zawsze się zmagaliśmy, to ustalenie, skąd zostało zrobione zdjęcie. Mamy dane dotyczące wymiarów lokalizacji budynków i chcemy stworzyć narzędzie do automatycznego określania tego na podstawie oznaczonych budynków na obrazie. Jestem przekonany, że uda nam się znaleźć linię w przestrzeni 3D, na której musiała znajdować się kamera. Jednak nie wiem, czy można określić punkt w tej linii.

Czy to w ogóle możliwe?

Aktualizacja : I Powinienem o tym wspomnieć, ale celem końcowym jest prawie całkowicie zautomatyzowany proces. Jeśli zajmie to budowanie etykiet na poziomie narożników lub krawędzi lub porównywanie rzeczy w Google Earth, nie będziemy mieć do tego zasobów ludzkich.

Aktualizacja Żeby było jasne, nie proszę o rozwiązanie programistyczne. Musiałem wiedzieć, czy to możliwe, nawet ręcznie, zanim zacząłem opracowywać rozwiązanie programistyczne. Brzmi, jak jest.

(PS - jeśli komuś to pomoże, myślę, że metoda znalezienia tej linii możliwych pozycji kamery polega na użyciu osi trzech znanych budynków na zdjęciu, obciążenie ich współrzędne z mojej bazy danych i znajdź (rozwiązując równania lub po prostu iteracyjnie), które łożysko powoduje, że stosunek środkowej poziomej rozpiętości do rozpiętości skrajnej lewej i prawej części pasuje do tego samego stosunku na zdjęciu, gdy jest to znane , to samo można zrobić z rozpiętością pionową na zdjęciu, aby znaleźć azymut.)

(PPS - Pierwsze zdjęcie, na którym to wypróbowałem, pokazało, że się mylę. Trzy budynki na prostej ulicy. są w zasadzie wszystkie w jednej linii, w sumie oddalone o około jeden kilometr). Perspektywa spowodowała współczynniki separacji w obrazie, których nie można powielić, obracając model 3D wokół osi pionowej. Nadal może (prawdopodobnie jest) możliwe rozwiązanie tego problemu, ale nie będzie to tak proste, jak się spodziewałem).

Ściśle powiązane: [Jak mogę dokładnie ustalić, gdzie ktoś stał, aby zrobić to stare zdjęcie miasta?] (// photo.stackexchange.com/q/86188)
Sugestia: zapytaj geodeta. To, o co pytasz i o czym mówią odpowiedzi, jest znane z metod stosowanych w badaniach.
Nie jestem pewien, czy to jest dokładnie to, czego chcesz, ale istnieje oprogramowanie o nazwie fSpy, które może obliczyć wszystkie parametry aparatu / obiektywu, jeśli wybierzesz na nim znikające linie -> https://fspy.io/basics/
Jeśli myślisz, że możesz znaleźć jedną linię, prawdopodobnie możesz znaleźć dwie linie, a następnie musisz znaleźć ich przecięcie. (Nie mówię, że jest to dobry praktyczny sposób na zrobienie tego, chciałem tylko dać ci trochę intuicji, czy jest to możliwe.)
Cześć pr3sidentspence, Witamy w Photography StackExchange. Mamy nadzieję, że spodoba Ci się dzielenie się z nami wiedzą i doświadczeniem.
Ciekawostka: Bez względu na wszystko, możesz mieć pewność, że położenie obiektywu determinuje horyzont. Wszystko, co przecina horyzont, znajduje się na wysokości soczewki. Wszystko poniżej horyzontu jest poniżej wysokości soczewki; wszystko powyżej jest powyżej. Korzystając z perspektywy „dwupunktowej”, można geometrycznie skonstruować horyzont odniesienia.
Aktualizacja renderuje ten wątek OOT dla photo.stackexchange. Szukasz rozwiązania programistycznego w witrynie fotograficznej
Przepraszam. Nie chcę, aby ktokolwiek zapewniał rozwiązanie programistyczne. Chciałem tylko wiedzieć, czy to, co chcę zrobić, jest w ogóle możliwe. Wprowadziłem aktualizację, aby nie sugerować, że chcę znaleźć rozwiązanie programistyczne, ale aby nikt nie inwestował czasu w „dokładne ułożenie rzeczy w odpowiedzi na Google Earth”, na przykład te, które widziałem w powiązanych z nimi podobnych pytaniach. Wydawało mi się, że fotografowie będą lepiej zaznajomieni z problemem niż programiści (ogólnie).
Stan, twoje ciekawostki będą naprawdę pomocne, dziękuję!
Dziękuję wszystkim, którzy poświęcili czas na udzielenie odpowiedzi i skomentowanie. Oznaczałbym wszystkie Twoje odpowiedzi jako ** odpowiedzi **, gdybym mógł. Ale odpowiedź pilotażowa ksenoidu, myślę, że najlepiej odpowiada na to, o co zapytałem. Stan, twoje komentarze i odpowiedzi prawdopodobnie najbardziej pomogą mi w doprowadzeniu mnie tam, gdzie chcę być, jeśli jestem w stanie to zrobić :)
Pięć odpowiedzi:
xenoid
2019-05-17 01:20:26 UTC
view on stackexchange narkive permalink

Często można użyć technik z pilotażu. Na zdjęciu można znaleźć linie trasowania, na przykład narożnik budynku, który zasłania drugą pionową linię okien budynku z tyłu. Na tej podstawie określasz linię, na której musi znajdować się kamera. Przy dwóch kolejnych takich ustawieniach otrzymujesz trzy linie, które dają trójkąt, w którym kamera musiała być, a jej rozmiar zapewnia pewien stopień dokładności. Elementy pierwszego planu mogą wtedy dać bardzo precyzyjną pozycję. GoogleEarth to Twój przyjaciel.

W jakiś sposób niezwiązany z fotografią, kilka lat temu szukałem nowego mieszkania i reklamy nigdy nie podają pełnego adresu, ale ćwicząc tę ​​technikę, używając widoków z okien i balkonu na zdjęciach reklamowych, zwykle byłem w stanie dostrzec budynek.

timvrhn
2019-05-16 23:34:36 UTC
view on stackexchange narkive permalink

Nie mam wiedzy na temat matematyki i programowania potrzebnych do tego, ale mogę zapewnić Ci wgląd w informacje potrzebne do czegoś takiego.

To, na co chcesz się zwrócić, to perspektywa zniekształcenia w fotografii. W szczególności musisz zbadać kwestię kompresji obiektywu (co jest fikcyjnym terminem, ale pomijając to).

Krótki przegląd zniekształcenia perspektywy i kompresji:
W fotografii, ogniskowa używanego obiektywu określa, jak szerokie lub wąskie jest ujęcie. Mała ogniskowa oznacza szeroki kąt i odwrotnie.
Wybór ogniskowej nie tylko wpływa na zniekształcenia, co pięknie przedstawia GIF na stronie wiki, ale także determinuje kompresję.

Powiedzmy, że jesteś w odległości 10 metrów od Mike'a. Robisz zdjęcie Mike'a obiektywem 50 mm, a następnie cofasz się na 40 metrów i robisz kolejne zdjęcie, tym razem obiektywem 200 mm. Piękna twarz Mike'a zajmuje to samo miejsce na kadrze, ale tym razem tło wydaje się być bliżej niego, a twarz Mike'a jest „bardziej płaska” niż na poprzednim zdjęciu. To jest ogólnie nazywane kompresją.

Spojrzenie na to, jak skompresowane są obrazy, mogłoby prawdopodobnie pomóc w określeniu odległości. Jest to już trudne i prawdopodobnie wymagałoby sporej ilości domysłów. Jest to jednak trudniejsze.

Jeśli nie posiadasz oryginalnych plików lub negatywów / pozytywów, nie jest nieprawdopodobne, że zdjęcie, które widzisz, zostanie przycięte.
Dalsze kadrowanie utrudnia, ponieważ przycinanie wpływa na kompresja. Zdjęcie wykonane obiektywem 50 mm przyciętym do połowy rozmiaru wyglądałoby tak samo (z perspektywy kompresji), jak zdjęcie zrobione obiektywem 100 mm z tej samej odległości.

Widzisz zdjęcie?

@pr3sidentspence oto świetna grafika przedstawiająca przykład Tima z „Mikiem” - https://petapixel.com/2016/07/28/camera-adds-10-pounds/
Sugerujesz to ciekawe podejście, ale myślę, że analiza błędów pokaże, że wynik jest _wysoko_ wrażliwy na zmiany szacowanego stopnia kompresji konkretnego budynku, elewacji itp. W panoramie miasta OP.
@scottbb Zgadzam się i dlatego dodałem ostatni akapit
user82065
2019-05-17 00:27:45 UTC
view on stackexchange narkive permalink

Tak, jest to możliwe. Jestem pewien, że będzie podejście do zrobienia tego w sposób ogólny z wykorzystaniem geometrii perspektywy, ale tutaj jest przykład zrobienia tego w przypadku zabawki, aby pokazać, że można to zrobić. Wyobraź sobie, że masz coś takiego:

diagram of positions of things

Tutaj kamera znajduje się na poziomie gruntu po lewej stronie i są dwa równe punkty wysokość, h, oddzielone s, przy czym kamera znajduje się w odległości D od najbliższej i wszystko jest w linii (zignorujmy problem, że najbliższy obiekt zasłoni obiekt bardziej odległy: w prawdziwym życiu nic bądź w takiej linii, a matematyka będzie trudniejsza).

Znasz h i s, ponieważ wiesz, gdzie jest w mieście, i chcesz wyliczyć D patrząc na zdjęcie: czy ty? Tak, oto jak.

Wyobraźmy sobie, że zdjęcie wykonane przez aparat jest rzutowane na ekran w odległości d przed aparatem, w taki sposób, że obrazy dwóch punktów pokrywają się z ich rzeczywiste pozycje widziane z kamery. Zgodnie z prostą geometrią wysokości na obrazie dwóch punktów są

  • h1 = hd / D (najbliższy)
  • h2 = hd / (D + s ) (dalej)

Więc teraz znane nam rzeczy to s, h, (z geometrii miasta), h1 i h2 (z pomiaru zdjęcia), a my nie Nie wiemy d (i właściwie to nie obchodzi) i nie znamy D, ale przejmujemy się.

Więc teraz możemy zrobić trochę algebry:

h1 / h2 = hd (D + s) / (hdD) = (D + s) / D

Więc

D = s / (h1 / h2 - 1)

Tak więc wydarzyły się tutaj dwie rzeczy, jedna zdarzy się zawsze, a druga, ponieważ wybrałem przykład zabawki.

  • d zniknął, a liczy się tylko stosunek h1 i h2: to powinno być oczywiste, ponieważ oczywiście możemy powiększyć zdjęcie do dowolnego rozmiaru, więc jedyne, co może mieć znaczenie, to proporcje pozycji na obrazie.
  • h zniknął. Dzieje się tak tylko dlatego, że wybrałem oba punkty na tej samej wysokości: ogólnie rzecz biorąc, nie .

Wreszcie możesz się przekonać, że to wyrażenie na D jest słuszne: jeśli h1 i h2 są takie same, wtedy D staje się nieskończone i to prawda, ponieważ zobaczysz dwie wieże na tej samej wysokości tylko wtedy, gdy jesteś nieskończenie daleko od nich. Podobnie, jeśli h1 / h2 stanie się bardzo duże, wówczas D stanie się bardzo małe i tak jest: jeśli jesteś bardzo blisko jednej wieży, na obrazie będzie ona wyglądać na bardzo dużą.

Teraz, jak powiedziałem, to jest przykład zabawki: w prawdziwym życiu nic nie będzie ustawione w kolejce, wszystko będzie inne na wysokości &c &c. Ale jeśli masz wystarczająco dużo punktów na obrazku, dla których wiesz, gdzie są prawdziwe punkty, możesz powiedzieć, skąd obraz został wykonany (ciekawe pytanie: ile punktów potrzebujesz? Podejrzewam, że ogólnie będzie to 3, chociaż może być 4: jestem pewien, że jest to jednak znane).

Jestem pewien, że istnieją książki o matematyce perspektywy i będą one zawierały ogólne rozwiązania, których możesz użyć: polecam przeprowadzić kilka wyszukiwań na tym.


Uwagi:

  • Zakładałem, że nie ma żadnych zniekształceń wprowadzanych przez układ optyczny aparatu - w prawdziwym życiu będą takie, ale w przypadku większości obiektywów powinien być wystarczająco mały (nie próbuj tego jednak z obiektywami typu rybie oko lub bardzo szerokokątnymi);
  • Nie zastanawiałem się, co mogą zrobić ruchy aparatu (typowe dla starych obrazów LF) - lub raczej myślałem & Nie wyciągnąłem ostatecznego wniosku, chociaż nie sądzę, że będą miały znaczenie.
Stan
2019-05-17 21:12:57 UTC
view on stackexchange narkive permalink

Krótka odpowiedź brzmi: tak. Robi się to codziennie.

Przedmiotem Fotogrametrii są odpowiedzi na Twoje pytanie.

Fotogrametria to pomiar na podstawie obrazów. Fotogrametria jest przydatna do tworzenia map topograficznych, architektury, inżynierii, a nawet geologii! Istnieje wiele narzędzi programowych przeznaczonych do zdjęć lotniczych, fotogrametria jest bardzo przydatna do zastosowań geograficznych. Na przykład archeolodzy używają go również do tworzenia planów złożonych i odległych miejsc.

Fotogrametria, kiedy ją studiowałem, obejmowała pracę ze zdjęciami lotniczymi i tłumaczeniem obrazów na ilości wody i ziemi oraz odległości i kierunki do map.

Później mogłem zastosować te same techniki w skali makro do skali mikro, gdy prowadziłem badania przy użyciu mikroskopu elektronowego. Te same zasady, inna skala.

Oprogramowanie istnieje, aby zastosować to, co wiesz, do tego, co chcesz wiedzieć. Proste wyszukiwanie terminu fotogrametria zapewni dokładne źródło do automatycznego sposobu sprawdzenia. Niektórzy są online.

Dzięki, przyjrzę się temu. Unikałem tego, ponieważ miałem wrażenie, że generuje modele 3D z wielu zdjęć, podczas gdy ja (będę) miał model 3D, ale mogę mieć tylko jedno zdjęcie obiektu.
@pr3sidentspence Ponieważ znasz lokalizację i wymiary interesujących Cię tematów, wyprzedzasz problem, który chcesz wyjaśnić. Chociaż możesz nie znaleźć dokładnego dopasowania ze względu na nieco inne zasoby i pytania, powinieneś znaleźć przepływ pracy dla swoich danych, który działa. Powodzenia.
Robyn
2019-05-17 07:08:26 UTC
view on stackexchange narkive permalink

Jeśli zdjęcie ma bardzo małą perspektywę, przypominającą rysunek izometryczny, zostało zrobione z bardzo daleka obiektywem teleskopowym. EG: Widzisz dwa trzypiętrowe budynki, jeden naprzeciw drugiego. Oba są mniej więcej tej samej wielkości na zdjęciu.

Jeśli zdjęcie ma przesadną perspektywę, zostało zrobione z bliska szerokokątnym obiektywem. EG: Widzisz dwa trzypiętrowe budynki. Ten z przodu zajmuje prawie całą wysokość zdjęcia, a ten z tyłu wygląda na malutki.

I oczywiście istnieje szereg możliwości między tymi dwoma skrajnościami dla dowolnej kombinacji odległości i obiektywu. pomyśl.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 4.0, w ramach której jest rozpowszechniana.
Loading...