2009年2月7日土曜日

Artoolkit Plus用のキャリブレーションの仕方

Artoolkit Plus用のカメラキャリブレーションファイルの作り方だが、必要な情報としてはArtoolkit付属のキャリブレーションツールで全て得られるらしい。ただ、表示される情報とArtoolkit Plusのカメラキャリブレーションファイルのフォーマット内のパラメタとの対応が不明確。

以下推測に基づく手順:
ArtoolkitのSourceForgeのページからARToolKit-2.72.1-bin-win32.zipを取ってきて適当な場所に解凍する。これにはバイナリが入っているので、キャリブレーションの目的だけならビルドの必要はない。

工学ナビの記事のこの項にある手順を実行する。ARToolkitの置き場所などは適宜読み替える。

最後に表示された
SIZE = 640, 480
Distortion factor = 375 223.5 6.2 1.003
1323.86047 -18.27697 410.18302 0.00000
0.00000 1285.40599 -243.19888 0.00000
0.00000 0.00000 1.00000 0.00000

が重要。これは、この記事中のパラメタ名の意味で、おそらく
SIZE = xsize, ysize
Distortion factor = cc_x cc_y 謎 謎
fc_x 謎1 謎2 謎
謎4 fc_y 謎3 謎
謎5 謎6 謎 謎

と並んでいる。分からないのはkc1 kc2 kc3 kc3 kc5 kc6 iterの7個のパラメタだが、最近のカメラなら歪み補正はされているだろうので、全て0で良いだろう。まあ、私のカメラは980円の安物のGroovy GR-CAM030で歪みまくっていたが。

#たぶん謎1~謎6が何らかの順番でkc1~kc6に対応していると考えられる。

そういうわけで、このケースだと、
ARToolKitPlus_CamCal_Rev02
640 480 375 223.5 1323.86047 1285.40599 0.0 0.0 0.0 0.0 0.0 0.0 0

という内容を持ったテキストファイルを作って、たとえばGroovy GR-CAM030.calというファイル名で保存する。

ちなみにここに公開しているARToolkit(Plus)+DShowNET+WPFのVisual C# 2008用サンプルでは、ARWithWPF.exe.config中でカメラキャリブレーションファイルを指定できるようになっているので、ここで紹介している手順でカメラキャリブレーションファイルを作ったらこのファイルを編集して欲しい。

キャリブレーション前(画角が不適切):

キャリブレーション後:

0 件のコメント: