2012-03-30 10 views
17

Muszę wykonać aplikację mobilną, która oblicza rzeczywisty rozmiar obiektu na obrazie.Jak uzyskać rzeczywisty rozmiar obiektu z obrazu, gdy nie znamy odległości między obiektem a aparatem?

Zrobiłem rozeznanie na nim i znaleźć pomocne [Pytanie]: How would you find the height of objects given an image?

Stosunek odległości od aparatu, a prawdziwe życie wielkości obiekt nie jest w rzeczywistości, że kompleks, stosunek wielkości obiektu na czujniku i rozmiar obiektu w rzeczywistości jest taki sam jak stosunek długości ogniskowej i odległości do obiektu.

distance to object (mm) = focal length (mm) * real height of the object (mm) * image height (pixels) 
          --------------------------------------------------------------------------- 
          object height (pixels) * sensor height (mm) 

Ale jak uzyskać wartość rzeczywistej wysokości obiektu, jeśli odległość nie jest znana?

Czy narzędzia tworzące modele 3D z obrazów mają rzeczywiste wymiary?

Odpowiedz

25

Prosta odpowiedź to , której nie można uzyskać pod numerem.

Nawiasem mówiąc, dlatego ludzie mają dwa oczy. Jeśli chcesz ocenić rozmiar bez znanej odległości, potrzebujesz co najmniej dwóch punktów odniesienia. Pozwala to na triangulację położenia obiektu, uzyskanie do niego odległości i użycie znanej odległości ogniskowej do obliczenia rozmiaru.

Im bardziej skomplikowana odpowiedź jest istnieją sposoby wokół tego na przykład:

  1. Cheat stosując znaną odniesienie:

    Na przykład, jeśli masz obiektu o znanej wielkości , możesz określić odległość. Jest to podobne do tego, co na przykład NASA does do kalibracji kamer.

    Możesz dokonać bezpiecznych założeń, jeśli masz do czynienia z typowymi obiektami, takimi jak wysokość jednej kondygnacji podczas analizy obrazu budynku.

  2. Najedź kamery wokół:

    To pozwala uzyskać więcej niż jeden punkt odniesienia z tego samego aparatu.

    Przypuszczam, że można użyć akcelerometru do dokładnego pomiaru relacji pozycyjnej między obrazem przechwyconym w punkcie T1 w czasie i punkcie T2. Dałoby to dwa obrazy tego samego przedmiotu o znanej odległości między nimi. To pozwala ci na triangulację, jakbyś miał dwoje oczu.

    Niezależnie od tego, czy normalne drgania aparatu w dłoni będą wystarczające do triangulacji, czy też akcelerometr będzie wystarczająco dokładny, aby ustawić bezwładnie telefon, nie wiem.

  3. Załóżmy odległość:

    Jeśli Twoja aplikacja została zaprojektowana, aby porównać coś na skalę ludzką ręką (lub inny kawałek ludzkiej anatomii), prawdopodobnie można bezpiecznie założyć, odległość, na podstawie tego, co ludzie oczywiście to zrobię. Limity ustawiania ostrości samego aparatu będą również określały górny i dolny zakres odległości obiektu i ostrości.Prawdopodobnie znajdzie się w dopuszczalnym marginesie błędu.

Jak wspomina w swoim pytaniu, istnieje cały subfield poświęcony tej kwestii, i jest to active research area.

+0

Cóż, nie mam żadnego obiektu do odniesienia w obrazie, ale mogę mieć opcję, aby użytkownik kliknął wiele obrazów obiektu pod różnymi kątami. –

+0

Czy narzędzia tworzące modele 3D z obrazów mają rzeczywiste wymiary lub wymiary proporcjonalne? [Przykład] (http://www.123dapp.com/catch) –

+3

"Wykonuj wiele cyfrowych zdjęć stacjonarnych osób, miejsc lub przedmiotów". używają metody nr 2, a następnie wykorzystują przetwarzanie obrazu, aby odzyskać różnicę w położeniu między dwoma obrazami. – brice

Powiązane problemy