プロジェクタのキャリブレーション手法の開発
はじめに
GML C++ Camera Calibration Toolboxをプロジェクタのキャリブレーションができるように改良しました。ここでは、その使い方を説明します。

計測
まず始めに計測を行います。
赤白のチェックパターン
を紙に印刷し、平らな板に貼り付けます。
これをキャリブレーションしたいプロジェクタおよびカメラを使いIntegrate3Dで計測します。
Recommendations for taking calibration photos
を参考にカメラをプロジェクタと置き換えて、さまざまな方向からパターンを計測します。(高精度を得るには30枚以上の計測結果があることが望ましいです。)

計測に関して
プロジェクタのキャリブレーションのためには、カメラとプロジェクタの配置は下図のようにカメラはできるだけパターンに近づけて撮影し(コーナー点を検出しやすくするため)、カメラとプロジェクタの距離は短くして計測をして下さい。
そして、パターンの角度や奥行きを変えながら計測をして下さい。



プロジェクトの作成
GML Camera Calibration.exeを起動しFile→New Projectよりプロジェクトを作成します。 (一番左の白紙アイコンを押しても作成できます。)

キャリブレーションパターンの設定
このページからダウンロードしたパターンならばデフォルト値に設定されているので、そのままOK を押します。
そうでなければ、適宜パラメータを変更してください。



画像の追加
次にIntegrate3Dの計測結果のテクスチャ画像を追加していきます。
Object Detection→Add Imageより追加していきます。(緑色のプラスアイコンを押しても追加できます。)
Integrate3Dの保存形式は、 "スキャン名.depth.texture.img.bmp"となっているので、選択する時に「ファイルの種類」の項目を「3dproj texture」 のままにしておくと拡張子が"depth.texture.img.bmp"のものだけを表示しますので、その中から選択して下さい。複数選択が可能です。
また、テクスチャ画像が読み込まれると自動的に同じスキャン名のグレーコード画像が読み込まれるようになっています。



正常に読み込まれると、Calibration objectタブ、gcode00タブ、gcode01タブに以下のようにそれぞれ画像が表示されます。




コーナー検出
Object Detection→Detect Allより先ほど追加した全ての画像でパターンのコーナー点を検出します (赤色チェックパターンのアイコンでも可)。



プロジェクタキャリブレーション
コーナー検出に成功した画像が3枚以上あるとプロジェクタのキャリブレーションが可能です。
プロジェクタアイコンを押すとResultsタブにプロジェクタパラメータが表示されます。
また、計測時に使用したカメラのキャリブレーションも可能です。
プロジェクタの投影する画像サイズは1024x768と決め打ちになっています。



GML C++ Camera Calibration Toolbox 0.4をプロジェクタ用に書き換えたもの(バイナリ)
Windows用 ダウンロード(カメラ・プロジェクタ両方対応)パターン検出をOpenCV2.1に変更 2010.9.30
Windows用 ダウンロード(カメラ・プロジェクタ両方対応)パターン検出をOpenCV1.1に変更 2010.9.29
Windows用 ダウンロード(カメラ・プロジェクタ両方対応) 2009.7.3
Windows用 ダウンロード(サブピクセル対応) 2009.6.19
Windows用 ダウンロード(旧バージョン) 2009.1.20


Publications
Kawasaki Laboratory