takminの書きっぱなし備忘録 @はてなブログ

主にコンピュータビジョンなど技術について、たまに自分自身のことや思いついたことなど

カラーカメラとデプスカメラ間のキャリブレーション

Kinectのようなデプスカメラでは、取得した点群に勝手に色をつけてくれますが、デプスカメラ自体には色を取得する機能はありません。

じゃあ、どうやっているかというと、同じくKinectについているカラーカメラで取得した画像を用いて点群に色づけしています。


そのためには、カラーカメラとデプスカメラそれぞれのカメラパラメータと二つのカメラの間の相対位置がわかっている必要があります。


Kinectの内部ではその辺はブラックボックスで、どのようなアルゴリズムでやっているのかわかりませんが、そういうキャリブレーションに関する研究はいくつかされています。


ここでは、その中の一つ

Raposo, C., Barreto, J. P., & Nunes, U. Fast and accurate calibration of a kinect sensor. Proceedings - 2013 International Conference on 3D Vision (3DV), 2013


についての日本語解説を書いたので公開します。

http://visitlab.jp/pdf/FastAccurateCalibrationKinect.pdf


この研究は

Daniel Herrera, C., Kannala, J., & Heikkil, J. Joint depth and color camera calibration with distortion correction. IEEE Transactions on Pattern Analysis and Machine Intelligence, 34(10), 2012


をよりシンプルで速くしたもので、以下から論文とMatlabコードを入手できます。

http://arthronav.isr.uc.pt/~carolina/kinectcalib/


ユーザ側の手順としてはカラーカメラのキャリブレーションで用いられるZhangの手法と同じように、チェッカーパターンを張り付けたボードを何パターンか撮影するだけで、カラーカメラとデプスカメラの内部パラメータと外部パラメータを同時にキャリブレーションできます。


一応、デプスカメラの内部モデルを変えればKinect v1以外の形式(ToF等)に使えるとHerreraらの論文には書いてますが、どうすれば良いかは良くわかりません。


というわけで、ご参考までに。