SENSYN ROBOTICS(センシンロボティクス)のbmanです。SENSYN CORE Pilotを担当しているエンジニアです。
ドローンやロボットを使って遠方の物体を撮影する際、「写真に写るこの領域の実際の幅は何メートルだろう?」と、撮影領域の物理的な幅を知る必要があることがあります。本記事では、この疑問に答えるための幾何学的な計算に基づき、カメラのセンサー幅や焦点距離、そして対象物までの距離といったパラメータから、撮影領域の幅を導き出す方法を解説します。
カメラの光学中心から距離 $d$ だけ離れた位置で、カメラが撮影する領域の幅はどれくらいになるでしょうか。
上の図を見ると、次のようになります。
$$
\tan\left(\frac{\theta}{2}\right) = \frac{W}{2d}
$$
ここで $\theta$ はカメラの水平画角、$W$ はカメラが撮影する領域の幅です。
両辺に $2d$ を掛けると、
$$
W = 2d \cdot \tan\left(\frac{\theta}{2}\right)
$$
となります。
図をもう一度見ると、次の関係が成り立つことがわかります。
$$
\tan\left(\frac{\theta}{2}\right) = \frac{w}{2\ell}
$$
ここで $w$ はカメラのセンサーの幅、$\ell$ は焦点距離です。
これを先ほどの $W$ の式に代入すると、
$$
W = 2d \cdot \frac{w}{2\ell}
$$
となり、これを簡単にすると
$$
W = \frac{dw}{\ell}
$$
が得られます。
さて、これが正しいことを見る別の方法もあります。
図にある2つの直角三角形は三角形の三つの角が等しいにより相似なので、次のような比例式を立てることができます。
$$
\frac{W}{2d} = \frac{w}{2\ell}
$$
両辺に $2d$ を掛けると、
$$
W = 2d \cdot \frac{w}{2\ell}
$$
となり、再びこれを簡単にすると、
$$
W = \frac{dw}{\ell}
$$
が得られます。
同じ公式は、カメラのセンサーの高さが与えられたときに、カメラが撮影する領域の高さを求めるのにも使えます。
センサーの高さを $h$ とすると、撮影される領域の高さ $H$ は次のようになります。
$$
H = \frac{dh}{\ell}
$$

