写真のEXIFデータを使用してオブジェクトのサイズを測定できますか?


7

写真に写っている物体の距離を測定できるかどうか、多くの人から質問がありました。でも、写真で物体の大きさを測れるかな?もちろん、センサーのサイズから写真家の身長などすべてを知っていると仮定します。

例:空のみを背景にして飛んでいる鳥の写真を撮ると、フレーム内に鳥のサイズを示すオブジェクトがありません。したがって、サイズをおおよそのレベルまで計算できれば、知っておくと非常に便利です。

回答:


6

外部参照や対象までの正確な距離がなければ、推定値を超えることは決してありません。被写体までの距離、FOV(/レンズの長さ)、センサーのサイズを推定できれば、計算するのはそれほど難しくありません。最大の不確実性は、被写体までの距離です。

見つけるために空間解像度を(方法(大広い又は高い画素である)使用被写体):

(距離*(センサーサイズ/焦点距離))/ピクセル数

センサーのサイズと焦点距離が同じスケールを使用していることを確認してください(両方ともミリメートルまたはインチ単位)。

次に、被写体のピクセル数を数え、それを1ピクセルの空間解像度に掛けます。

私は、レンズの全領域にわたるFOVの線形変化を想定しています。これは100%正確ではありませんが、通常のレンズやより長いレンズでは非常に近くなります。


4
残念ながら、ここではLaTeX-mathが機能していません。
ホーコンK. Olafsen


方程式は間違っています。なぜ2xなのか?面積を計算しているため、平方されています。それは距離^ 2でなければなりません。photo.stackexchange.com/a/12437/7292を
ラドー

ああ..焦点距離も2乗する必要があります
ラドー

@HåkonK.Olafsen:観察:sensor_x / focal_length = picture_x / distance; sensor_y / focal_length = picture_y / distance(距離は焦点から計算されます)。正方形のピクセルを考えると、次のいずれかを取得して、picture_x = distance * sensor_x / focal_lengthを取得できます。取得した水平ピクセル数pixel_cnt_xで除算します:distance(sensor_x / focal_length)/ pixel_cnt_x。これは、水平空間解像度です。「2x」乗数は正しくありません。正方形以外のピクセルがある場合は、水平解像度と垂直解像度の両方について計算を行う必要があります。
TFuto

2

私のカメラは画像内の焦点距離を保存します。これであなたはあなたの鳥がどれだけ遠くにいたかがわかります。鳥のサイズを計算するのはそれほど難しくありません。たとえば、既知のサイズのオブジェクトを撮影し、同じ距離で同じレンズを使用して写真を撮り、画像内のこのオブジェクトのサイズと画像内の鳥のサイズを比較できます。


1
これは何のカメラ?
ysap

それはニコンD300です
ルネ

1
でも、ピント距離は3mくらいしかないと無限大になりませんか?私のCanon 550DでMagic Lanternファームウェアを使用すると、少なくとも機能します。
SaaruLindestøkke12年

1
最小のキャリブレーションエラーは、提供された距離の数桁のエラーを生成するため、無限遠の焦点距離にリモートで近づくものはすべて、カメラによって提供される距離を信頼することに注意します。
マイケルC

@BartArondsonレンズの焦点距離によって異なります。バードウォッチングでよく使用されるような長い焦点距離は、広角レンズよりも∞に達する前にはるかに焦点を合わせます。そのため、WAレンズの距離目盛の∞の前の最後のメジャーは通常1メートル程度ですが、長い望遠レンズでは、∞マークの直前に50メートルを超える、または100メートルのマークが付けられます。
マイケルC

1

一般的な答えは次のとおりです。はい、いいえ、EXIF情報以外に十分な情報を追加すればそれを行うことができます。十分な情報を追加しないと、いいえ、それは推定になります。その情報は非常に複雑な計算ですオブジェクトの遠近法を使用しますが、それを使用してフォトフレームの形式と角度に戻ります。次に、人の目またはフレームの中心を正確に測定し(地面からの仰角で)、正確な地面の情報を取得します。あなたとオブジェクトの間の表面標高。さらにそれ以上の計算。

他の回答が除外している重要なステップは、写真のデータを使用して、写真の対象となるオブジェクトの水平線と垂直線の遠近角を見つける必要があることです(実際には実行できますが、非常に複雑な計算)、たとえば操作する写真内のいくつかのオブジェクトのOPの例の場合はさらに複雑ですが、たとえばこの場合、オブジェクトが地面に「水平」に座っていない場合でも実行できます、高さ情報も必要です。OPの例では、その情報の多くがおそらく省略されているか不明であるため、その例の場合、答えは[いいえ]になります。しかし、明確にするために、その追加情報がわかっていて、何度もわかっている場合、またはその情報から推定を行うことができる場合、質問の前提は実行可能です。

これを(一般的に)どのように行うことができるかを要約すると、ユーザーとオブジェクトの間の地表面の高さの変化を正確に測定する必要があります(1つの文だけではありません)。

次に、地面から目の中心、またはカメラが生成する画像フレームの中心までの正確な寸法が必要です。この画像フレームは、EXIF情報から計算できますが、画像フレーム(カメラ)の正確な傾きオブジェクトに関連して、前述のパースペクティブ情報から計算する必要があります。OPの例の場合、オブジェクトの地面からの高さが必要です(またはオブジェクトの地面への投影)。

より一般的な例の写真で実行できることを示すために、これをすべて行うアプリは以下のとおりです(ただし、目の中心の推定値を使用しており、地表面標高の複雑な計算を行っており、これも「推定値」になります。 )

推定値を使用しているため、アプリの最終出力を修正するには、オブジェクトの1つの次元を知る必要があります。しかし、それはオブジェクトのすべてに巻尺をとる必要があるよりもはるかに優れています。明確に言うと、アプリの目またはイメージフレームの中心までの正確な寸法があり、地表面のプロファイルが変化する場合、その「既知の1つの寸法」も必要ありません。その場合、OPの質問に対する答えは「はい」になります。

最終的な出力は、オブジェクトの遠近法で修正された「標高」であり、自動寸法も含まれます。(この画像は遠近法補正されているため、すべての垂直方向が垂直、水平方向が水平方向であり、ユーザーからの入力なしで自動的に実行されます)この遠近法補正された画像はサイズの計算には必要ありませんが、遠近法補正情報が必要です、画像フレームの角度(ヨーチルトなど)を見つけるために使用されます。(写真の瞬間にカメラがどのように座っていたか)これは私が強調したいことですが、他のコメントは省略しています。OPの例のような「鳥」の場合、この必要なデータのためにかなり高く、乾燥したままになりますが、多くの状況で解決できます。たとえば、以下のこの例。

ここに画像の説明を入力してください

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


これは決して質問に答えるとは思いません。このアプリは、1つの長さがわかっている場合に、物事の相対的な長さを計算するだけです。質問は、など、焦点距離、焦点距離としてEXIFの型情報から、鳥のように、何かのサイズをワークアウトに関連する
MikeW

コメントで何かのサイズを計算する方法について説明し、このアプリはこれを実行しますが、コメントが求める重要なデータの一部については「見積もり」を使用していることを述べました。これらの「推定」が使用されているため、「1つの既知の長さ」を修正する必要があります。コメントに記載されている重要な領域に正確な情報がある場合、このアプリは「1つの既知の長さ」を必要としません。画像フレームの傾きとヨーを見つけるために後方に作業するような、他のコメントが省略した手順を含む必要な手順の。
hokkuk
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.