ここ1週間疲れが抜けないなぁと思っていたらどうも風邪をひいている模様.
相変わらず不養生な生活を送っているわけですが,いつも気付くの遅いな.>自分
といいつつも,“まぁ,なんとかなるでしょ”(←適当)精神で放置してます。。。

あと,今日,自分の学部時の卒論を引用してくれていた人からコメントがありまして,ちょっとテンション上がってます(というかしょうもない論文ですみませんでした。。。).ということで,久々に大学院生らしく,研究ネタでも書きますか(といっても,大学内の自分のサイトの内容と同じですが)

***

■GML C++ Camera Calibration Toolboxを使ってみる

ビジョン系の研究でカメラパラメータを短時間でサクっと求めたい場合に,GML C++ Camera Calibration Toolboxが便利です.ここでは,GML C++ Camera Calibration Toolbox のインストールおよび使用方法の概説を行います.

(1)インストール
まず,こちら からGML_CameraCalibrationInstall_040.exeをダウンロードし,インストールします.インストール先などの変更が無ければ,そのまま進めても問題ありません.
※同上のサイトにソースも配布されているので,OpenCV(beta5)のカメラキャリブレーション関数の使い方を学ぶサンプルとしても有用です.

(2)プロジェクトの作成
C:\Program Files\GML\GML Camera Calibration Toolbox 0.4にあるGML Camera Calibration.exeを実行し,[File]-[New Project]よりプロジェクトを作成します(図1).


新規プロジェクト作成

図1.キャリブレーションパターンのプロパティ設定

(3)キャリブレーションパターンのプロパティ設定
その後,キャリブレーションパターンのプロパティ設定のため,マス目の数とマス目の一辺の長さ(mm単位)を指定します(図2).

オブジェクトプロパティ設定

図2.プロジェクトの作成

(4)画像の追加
[Object Detection]-[Add Image]より,キャリブレーションパターンを異なる角度から撮影した画像を追加します(図3).
※このプログラムは,Zhangのカメラキャリブレーション手法がベースとなっているため,最低3枚以上の画像を用意する必要があります(25枚以上が望ましい).

画像追加

図3.画像の追加

(5)キャリブレーションパターン認識
[Object Detection]-[Detect All]より,先の処理で追加した画像からキャリブレーションパターンおよびマス目の交点検出が行われます(図4).

オブジェクト検出

図4.キャリブレーションパターン認識

(6)カメラキャリブレーション
[Calibration]-[Calibrate]よりカメラキャリブレーションが行われます.
このとき,[Calibration]-[Calibration Type]にて[Native OpenCV]を選択した場合,OpenCV beta5のカメラキャリブレーション関数(Zhangの手法を実装したプログラム)により,カメラパラメータが推定されます.また,[Modified OpenCV]を選択すると改良されたカメラキャリブレーション関数によりカメラパラメータが推定されます(詳細はソースを参照のこと).

カメラキャリブレーションにより推定されたパラメータは図5のように表示されます.

カメラキャリブレーション

図5.カメラキャリブレーション

(7)レンズ歪み補正
先のキャリブレーションより得られたレンズ歪みパラメータを用いて,レンズ歪み補正画像を生成することができます.[Undistort]- [Undistort Selected Image]の場合,チェックした画像を,[Undistort]-[Undistort Directory]の場合,ディレクトリ内の画像を対象として歪み補正を行うことができます.レンズ歪み補正の例を図6(a),(b)に示します.

レンズ歪み補正前画像   レンズ歪み補正後画像

図6(a).レンズ歪み補正前画像          図6(b).レンズ歪み補正後画像