内部パラメータ(焦点距離)の単位の話 ~pixelとmmの変換~

さて、今回は内部パラメータの単位について解説してみたいと思います。

皆さんご存知の通り、透視投影変換は

世界座標

カメラ座標

画像座標

の順で、世界座標を画像座標に変換していて、現実世界の3次元物体が画像上のどこに投影されるのかを示したものでした。

透視投影変換とは
3次元系の画像処理の勉強では、透視投影カメラモデルの理解は必須です。 そんなわけで今回は透視投影カメラモデルについて解説してみたいと思います。 (といっても、過去の記事でほぼ解説してしまった気がするので、この記事は簡単にまとめたものなります...

ただ、ちょっと考えてみてください。
世界座標系やカメラ座標系、すなわち現実世界では物体の大きさはメートルとかセンチメートルとかミリメートルで表しますよね。

一方で、画像座標系では投影された物体の大きさはピクセル単位。。。
あれ、いつの間にか単位が変わっちゃってますね!びっくりです。

どこで変わっちゃったんでしょう。
ずばり、カメラ座標から画像座標に変換されるときです。

内部パラメータに秘密があるんです。内部パラメータは覚えていますか?
覚えていない人はまずはこちらで思い出しましょう。

カメラ内部パラメータとは
前回は外部パラメータの意味を解説しました。なので今回は、外部パラメータと双璧をなす?内部パラメータの意味を解説してみたいと思います。 内部パラメータとは 内部パラメータとは、一言でいうと「カメラ座標を画像座標へ変換する行列」のことです。 式...

内部パラメータ行列はこんな形をしていましたね。
\(f_{x}, f_{y}\)は焦点距離、\(c_{x}, c_{y}\)が光学中心です。

で、実はこの焦点距離と光学中心、全部ピクセル単位なんですよ!
焦点距離の単位は一般的には\(mm\)なんですが、透視投影変換の式の焦点距離はピクセルなのです。

ちょっと待て、\(mm\)とピクセルってどうやって変換するんだよ
とか
ピクセル単位なのは分かったけど、なんで\(f_{x}\)と\(f_{y}\)の2種類も焦点距離があるんだよ
っていう声が聞こえてきそうなので、順に説明していきます。

まずは、イメージセンサについて説明します。
そもそも、カメラはイメージセンサというセンサに光を通すことで、現実の風景を画像に変換しています。
で、このセンサは画素数分の受光素子(フォトダイオード)を設置したセンサなんです。
例えば、下のような14×8ピクセルの画像を撮影できるカメラには、縦14個、横8個の受光素子が設置されています。

つまり、

$$1ピクセルのmm単位の大きさ=\frac{イメージセンサの1辺の長さ}{1辺の受光素子数}$$
が成り立つんです。

これがわかれば、焦点距離の\(mm\)⇔ピクセルの変換は余裕ですね!

さて、理想的には

$$\frac{イメージセンサの縦の長さ}{縦の受光素子数}=\frac{イメージセンサの横の長さ}{横の受光素子数}$$
が成り立つはずなんですが、悲しいかな人間の作った工業製品、微妙に成り立たないんだなこれが。。。

しょうがないから横軸(\(x\)軸)の焦点距離と縦軸(\(y\)軸)の焦点距離を別々に考えようってなったのが、\(f_x\)と\(f_y\)です。すなわち、

$$
f_x=\frac{横の受光素子数}{イメージセンサの横の長さ}\times mm単位の焦点距離 \\
f_y=\frac{縦の受光素子数}{イメージセンサの縦の長さ}\times mm単位の焦点距離
$$
ということですね。

まあ、ぶっちゃけ最近のイメージセンサは精度がいいので、\(f_x=f_y\)と考えてもほとんど支障ありません。(精度を求める研究をしている人はちゃんと気にしましょう)
余談ですが、バンドル調整とかで内部パラメータを非線形最適化するときは、\(f_x=f_y\)として扱った方が未知数が減ってむしろ精度が安定する気がします。(検証はしていません)

技術書でもこの辺の話題は触れられなかったり軽く流されたりで、初学者の学生さんなんかは勘違いしている人結構いるんじゃないでしょうか?
(私は学生時代勘違いしていましたw)

この記事では主にmmとpixel単位の変換の考え方について書きましたが、実際にJPEGのメタデータであるExifから、ピクセル単位の焦点距離を導出する方法を以下の記事にまとめました。

ExifからPixel単位の焦点距離を計算する
3次元復元系の論文を読んでいると、よく「初期値にはExifから取得した焦点距離を使用する」的なことが書いてあります。しかし、カメラ内部パラメータとかの焦点距離はピクセル単位なのに、Exifに記録されてる焦点距離はmm単位です。 このExif...

コメント