Können wir die Größe eines Objekts mithilfe von EXIF-Daten aus einem Foto messen?

7

Viele Leute haben gefragt, ob wir die Entfernung eines Objekts auf einem Foto messen können. Aber ich habe mich gefragt, ob wir die Größe eines Objekts auf einem Foto messen können. Vorausgesetzt natürlich, wir wissen alles von der Sensorgröße bis zur Größe des Fotografen usw.

Beispiel: Wenn ich ein Foto eines fliegenden Vogels mit nur Himmel als Hintergrund mache, befinden sich keine Objekte im Rahmen, die eine Vorstellung von der Größe des Vogels vermitteln. Wenn ich also die Größe auf ein ungefähres Niveau berechnen könnte, wäre es wirklich schön zu wissen.

Sudarshan Kadam
quelle

Antworten:

6

Es wäre niemals mehr als eine Schätzung ohne einen externen Bezug oder eine genaue Entfernung zum Motiv. Wenn Sie die Entfernung zum Motiv, das Sichtfeld (/ Länge des Objektivs) und die Sensorgröße geschätzt haben, ist die Berechnung nicht allzu schwierig. Die größte Unsicherheit wäre die Entfernung zum Motiv.

Um die räumliche Auflösung zu ermitteln (wie groß ( breit oder hoch ) ein Pixel im Motiv ist), verwenden Sie:

(Entfernung * (Sensorgröße / Brennweite)) / Anzahl der Pixel

Stellen Sie sicher, dass Sensorgröße und Brennweite dieselbe Skala verwenden (beide sind in Millimetern oder Zoll angegeben).

Dann können Sie die Anzahl der Pixel für das Motiv zählen und diese mit der räumlichen Auflösung für ein Pixel multiplizieren.

Ich gehe von einer linearen Änderung des Sichtfelds über den gesamten Bereich des Objektivs aus, die nicht 100% genau ist, aber für normale und längere Objektive ziemlich nahe beieinander liegt.

Håkon K. Olafsen
quelle
4
Schade, dass hier auf dem Foto nicht die LaTeX-Mathematik funktioniert.
Håkon K. Olafsen
Die Gleichung ist falsch. Warum 2x? Sie berechnen eine Fläche, daher ist sie quadratisch. Es sollte Abstand ^ 2 sein. Siehe photo.stackexchange.com/a/12437/7292
Rado
Oh .. und die Brennweite sollte auch quadriert werden
Rado
@ HåkonK.Olafsen: Beachten Sie: sensor_x / focal_length = picture_x / distance; sensor_y / focal_length = picture_y / distance (Entfernung wird vom Brennpunkt berechnet). Wenn Sie ein quadratisches Pixel betrachten, können Sie eines davon nehmen und erhalten: picture_x = distance * sensor_x / focal_length. Teilen Sie es durch die horizontale Pixelanzahl pixel_cnt_x, die Sie erhalten: distance (sensor_x / focal_length) / pixel_cnt_x. Dies ist die horizontale räumliche Auflösung. Der "2x" -Multiplikator ist nicht korrekt. Wenn Sie nicht quadratische Pixel haben, müssen Sie sowohl für die horizontale als auch für die vertikale Auflösung rechnen.
TFuto
2

Meine Kamera speichert die Fokusentfernung im Bild. Damit wissen Sie, wie weit Ihr Vogel entfernt war. Es wird nicht allzu schwer sein, die Größe des Vogels zu berechnen. Sie können beispielsweise ein Objekt bekannter Größe aufnehmen und ein Bild mit demselben Objektiv aus derselben Entfernung aufnehmen und die Größe dieses Objekts im Bild mit der Größe des Vogels im Bild vergleichen.

Rene
quelle
1
Welche Kamera ist das?
Ysap
Es ist eine Nikon D300
Rene
1
Aber reicht die Fokusentfernung nicht nur bis zu 3 m und wird dann unendlich? Wenn ich die Magic Lantern-Firmware auf meiner Canon 550D verwende, funktioniert dies zumindest.
Saaru Lindestøkke
1
Ich würde mich davor hüten, der von der Kamera bereitgestellten Entfernung bei irgendetwas zu vertrauen, das sich einer Fokusentfernung von unendlich annähert, da der kleinste Kalibrierungsfehler Fehler ergeben würde, die mehrere Größenordnungen der bereitgestellten Entfernung betragen könnten.
Michael C
@BartArondson Dies hängt von der Brennweite des Objektivs ab. Eine längere Brennweite, wie sie häufig bei der Vogelbeobachtung verwendet wird, fokussiert viel weiter, bevor sie ∞ erreicht, als ein Weitwinkelobjektiv. Aus diesem Grund beträgt die letzte Messung vor ∞ für Entfernungsskalen auf WA-Objektiven normalerweise nur etwa 1 Meter, aber ein langes Teleobjektiv hat eine Markierung von über 50 Metern oder sogar 100 Metern kurz vor der ∞-Markierung.
Michael C
1

Die allgemeine Antwort lautet: Ja und Nein. Wenn Sie neben den EXIF-Informationen genügend Informationen hinzufügen, können Sie dies tun. Wenn Sie nicht genügend Informationen hinzufügen, wird dies zu einer Schätzung. Diese Informationen sind eine äußerst komplexe Berechnung der Perspektive des Objekts, aber dann auch, um auf das Format und den Winkel des Fotorahmens zurückzuarbeiten, dann eine genaue Messung des Auges oder der Rahmenmitte der Person (in Höhe vom Boden), dann Kenntnis des genauen Bodens Oberflächenhöhen zwischen Ihnen und dem Objekt. und noch mehr Berechnungen darüber hinaus.

Ein wichtiger Schritt, den die anderen Antworten auslassen, ist, dass Sie die Daten auf dem Foto verwenden müssen, um die perspektivischen Winkel der horizontalen und vertikalen Linien auf dem Objekt zu ermitteln, von dem Ihr Foto stammt (was tatsächlich möglich ist, aber extrem ist komplexe Berechnung) und noch komplexer, wenn beispielsweise im OP-Beispiel nur wenige Objekte auf dem Foto zu bearbeiten sind. Dies ist jedoch weiterhin möglich, beispielsweise in diesem Fall, wenn das Objekt nicht "eben" auf dem Boden liegt , dann wird auch die Höheninformation benötigt. Im Beispiel des OP ist ein Großteil dieser Informationen wahrscheinlich weggelassen / oder unbekannt, sodass eine Antwort in diesem Beispielfall Nein sein kann. Um klar zu sein, ist die Prämisse der Frage machbar, wenn diese zusätzlichen Informationen bekannt sind und oft bekannt sind oder Schätzungen dieser Informationen vorgenommen werden können.

Um zusammenzufassen, wie (im Allgemeinen) dies getan werden kann: Man braucht eine genaue Messung der Höhenänderungen der Bodenoberfläche zwischen Ihnen und dem Objekt (es steckt mehr dahinter als nur dieser eine Satz).

Dann benötigen Sie eine genaue Abmessung vom Boden bis zur Mitte Ihres Auges oder die Mitte des von der Kamera erzeugten Bildrahmens. Dieser Bildrahmen kann aus den EXIF-Informationen berechnet werden, aber die genaue Neigung des Bildrahmens (Kamera) in Bezug auf das Objekt muss aus dieser Perspektive Informationen berechnet werden, die zuvor erwähnt wurden. Und im Fall des OP-Beispiels wird die Höhe des Objekts über dem Boden benötigt (oder die Projektion dieses Objekts zurück auf den Boden).

Um zu zeigen, dass dies in einem allgemeineren Beispielfoto möglich ist, finden Sie unten eine App, die all dies tut: (außer dass Schätzungen für den Mittelpunkt des Auges verwendet werden und eine komplexe Berechnung der Bodenoberflächenhöhen durchgeführt wird, die auch zu einer "Schätzung" wird. )

Da also Schätzungen verwendet werden, müssen Sie eine Dimension des Objekts kennen, um die endgültige Ausgabe der App zu korrigieren. Aber das ist weitaus besser, als ein Maßband für alles auf dem Objekt anfertigen zu müssen. Um klar zu sein, wenn die App die exakte Abmessung zum Auge oder zur Bildrahmenmitte hätte und sich ein Profil der Bodenoberfläche ändert, würde sie nicht einmal diese "eine bekannte Abmessung" benötigen. In diesem Fall wäre die Antwort auf die OP-Frage Ja.

Die endgültige Ausgabe ist eine perspektivisch korrigierte "Höhe" des Objekts und sogar mit automatischen Abmessungen. (Beachten Sie, dass dieses Bild perspektivisch korrigiert wurde, sodass alle Vertikalen vertikal und die Horizontalen horizontal sind. Dies erfolgt automatisch ohne Benutzereingabe.) Dieses perspektivisch korrigierte Bild wird nicht für die Berechnung der Größe benötigt, aber die perspektivischen Korrekturinformationen werden benötigt , wird verwendet, um den Winkel (Gierneigung usw.) des Bildrahmens zu ermitteln. (wie die Kamera im Moment des Fotos saß) Dies ist, was ich hervorheben möchte, dass die anderen Kommentare weggelassen wurden. Im Fall eines "Vogels" wie im OP-Beispiel wird man für diese benötigten Daten ziemlich hoch und trocken bleiben, aber in vielen Situationen kann es herausgearbeitet werden. Zum Beispiel dieses Beispiel unten.

Geben Sie hier die Bildbeschreibung ein

http://www.pictureenginecompany.com/MeasureEngine/MeasureEngine.html

hokkuk
quelle
Ich denke nicht, dass dies die Frage in irgendeiner Weise beantwortet. Diese App berechnet nur relative Längen von Dingen, wenn eine Länge bekannt ist. Die Frage bezieht sich auf die Ermittlung der Größe von etwas wie einem Vogel anhand von EXIF-Typinformationen wie Brennweite,
Fokusentfernung
Ich erwähnte in den Kommentaren, wie man die Größe von etwas berechnet, und erwähnte dann, dass diese App dies tut, aber "Schätzungen" für einige der wichtigen Daten verwendet, nach denen die Kommentare verlangen ... und warum die App benötigt "eine bekannte Länge", um aufgrund der verwendeten "Schätzungen" zu korrigieren. Wenn Sie genaue Informationen in diesen Schlüsselbereichen haben, wie in den Kommentaren erwähnt, dann würde diese App nicht die "eine bekannte Länge" benötigen, und es werden auch mehrere der erforderlichen Schritte, einschließlich der Schritte, die in den anderen Kommentaren ausgelassen wurden, z. B. Rückwärtsarbeiten, um die Neigung und das Gieren des Bildrahmens zu ermitteln.
Hokkuk