画像処理とか機械学習とか

画像処理や機械学習関連の事について気まぐれで書いていきます。歩行者検出関係が多いと思います。ハリネズミもたまに出現します。

Matlabでステレオカメラキャリブレーション

今回は、Matlabを用いた簡単なステレオカメラキャリブレーションの方法を説明します。

 コンピュータビジョンにおいて画像から手軽に三次元情報を取得する方法の一つとしてステレオ視があります。二つのカメラを用いて物体を撮影することで、人間の目のように立体的にとらえることが可能となり,二枚の画像の差から三次元情報を取得できます。一般的に使用するカメラは,カメラ毎に異なる焦点距離などのカメラの内部パラメータなどを持っており,このパラメータを求めることをカメラキャリブレーションと言います。
 ステレオカメラキャリブレーションを行うと,この内部パラメータだけでなく,二つのカメラ間の平行移動や回転などの外部パラメータを求めることが出来ます。
 

今回は、このVuzix社製のWrap1200DXARのステレオカメラを用いてステレオカメラキャリブレーションを行います。

f:id:hiro2o2:20160226223936j:plain

カメラキャリブレーションには、MatlabのStereo Camera Calibrationを利用し、チェッカーパターンを5つのシーンで左右のカメラから計10枚の画像を撮影して行います。以下に撮影した5つのシーンのうち2つのシーンの画像を載せます。

f:id:hiro2o2:20160226224134p:plain

f:id:hiro2o2:20160226224208p:plain

このように,MatlabのStereo Camera Calibrationを起動し,撮影した画像を選択するだけで自動的に対応点を探してくれます.こちらで行うのは画像を撮影し、選択するだけです。その結果が以下のようになりました。

推定されたカメラの内部パラメータ

f:id:hiro2o2:20160226224528p:plain

f:id:hiro2o2:20160226224534p:plain

f:id:hiro2o2:20160226224553p:plain

この図のように,大まかな撮影場所と二つのカメラの位置関係が取れていることが分かります。