OpenCVライブラリを使った簡単なキャリブレーションの方法について解説します。
目次[]
カメラキャリブレーションとは?
広角カメラ等で写真を撮ってみると画像が歪みます。主な歪としては放射状歪みと接線歪みがあります。放射状歪は画像の中心から離れるほど歪は大きくなります。例えば以下の画像を見てください。チェスボードのエッジに沿って赤線を引いていますが、少しだけチェスボードが湾曲しているのが分かると思います。

各要素の代表的な用途として、レンズによる画像の歪みを補正したい場合は内部パラメータおよびレンズ歪みパラメータが必要になります。
カメラで検出したカメラ座標系基準のワーク姿勢をロボット座標系基準に変換したい場合は、外部パラメータが必要になります。下でさらに詳しく説明します。
外部パラメータ
カメラキャリブレーションの外部パラメータは、カメラ座標系をワールド座標系に変換するための情報です。簡単に例えると、カメラから見てどの位置にあるか?といったカメラ基準の座標にすることです。
外部パラメータの定義
外部パラメータは、回転行列 R と 並進ベクトル tの2つの要素で構成されます。回転行列 R(3×3行列)をワールド座標に掛けることでカメラ座標から見た3次元点の外部パラメータは、回転行列 R と 並進ベクトル tの2つの要素で構成されます。回転行列 R(3×3行列)をワールド座標に掛けることでカメラ座標の姿勢から見た3次元点の方向を求めることができます。最後に、並進ベクトル tを掛けることで、ワールド座標系の原点からカメラの原点までの平行移動を表現します。

変形して、

内部パラメータ
カメラキャリブレーションの内部パラメータとは、カメラの光学的特性や撮影時の設定を定量的に表すもので、以下のパラメータを含みます。
焦点距離(Focal Length, fx,fy)
- 画像座標系における焦点距離を表し、単位はピクセル。
- 実際の焦点距離(mm)に撮影時のピクセル密度を掛けたもの。
- 水平方向(fx)と垂直方向(fy)の値が異なる場合がある。



この式を、水平方向(fx)と垂直方向(fy)の値が異なる場合があることから、水平方向と垂直方向別々に考ると、

になる。
主点(Principal Point, cx,cy)
- 画像座標系における光学中心(理想的なレンズの中心)。
- 一般的には画像の中心付近にあるが、厳密にはずれることがある。


せん断係数(Skew Coefficient, s)
- カメラのX軸とY軸が完全に直交していない場合の補正値。
- 一般的なカメラでは s≒0 であることが多い。

せん断係数s=tanθで求めることができる。
内部パラメータの行列表現と求め方
内部パラメータはカメラ行列Kとして次のように表されます:

レンズ歪み(Lens Distortion)パラメータ
実際のレンズには歪みがあり、特に広角レンズでは顕著。

放射歪み(Radial Distortion): 画像の中心から遠くなるほど拡大・縮小が生じる。
放射歪みを補正するには以下の式を用います。

接線歪み(Tangential Distortion): レンズがイメージセンサーに対して完全に平行でないときに発生する歪み
接線歪みを補正するには以下の式を用います。

このとき、rは中心からの距離なので、

で求まる。

これらのパラメータを推定するためにチェスボードのような、歪がなかったらどのように見えるか分かっているパターンを何枚か撮影しカメラに補正を行います。これがカメラキャリブレーションの概要です。
キャリブレーションの種類

CheckerBoard

チェッカーボード(市松模様)は、カメラキャリブレーションの最も一般的なターゲットの一つです。白と黒の正方形が交互に並んだパターンを用いて、キャリブレーションを行います。
- 特徴
- コーナー(交点)がはっきりしているため、特徴点検出が容易。
- OpenCV などのライブラリで簡単に利用可能。
- 比較的高精度なキャリブレーションが可能。
- 弱点
- コーナー検出が重要なため、画像の歪みが大きい場合やコントラストが低い場合に検出が失敗することがある。
- 高度なキャリブレーションにはチェッカーボードの平面が完全に固定されている必要がある。
CircleGrid

サークルグリッドは、等間隔に配置された円を用いるキャリブレーションターゲットです。円の中心を特徴点として利用します。
- 特徴
- 円形はブラーや歪みに対して比較的ロバスト。
- 特徴点のサブピクセル精度が高く、チェッカーボードよりも精度が向上することがある。
- 弱点
- 特徴点の検出には、円の形状が正確に維持されている必要がある。
- チェッカーボードよりも認識に時間がかかることがある。
Asymmetry-CircleGrid

非対称サークルグリッドは、円の配置が非対称なパターンを用いる手法です。
- 特徴
- チェッカーボードのように特徴点の順序が曖昧になることがない。
- 点群の認識順序が一意に定まるため、誤認識のリスクが低い。
- 角度による歪みの影響を受けにくい。
- 弱点
- CircleGridと同様に、円がはっきりと認識できる必要がある。
- パターンが特殊なため、標準的なキャリブレーションツールでのサポートが少ないことがある。
ChArUco

ChArUcoは、「Checkerboard」と「ArUco(マーカーベースのAR)」を組み合わせたキャリブレーションターゲットです。
- 特徴
- 各正方形の中に ArUco マーカーが含まれており、特徴点が正確に識別可能。
- 部分的に見えている場合でもキャリブレーションが可能(CheckerBoardは全体が見えている必要がある)。
- ArUco マーカーによって誤検出の可能性が低減される。
- 弱点
- ArUco のマーカー検出が失敗すると、キャリブレーションが難しくなる。
- チェッカーボードよりもターゲット作成がやや複雑。
こちらのブログでそれぞれの手法をさらに詳しく解説しています!
キャリブレーション可能な機能

まとめ
ロボットのビジョンシステムを用いる上で、カメラキャリブレーションは欠かせない要素の一つです。プログラムが正確でも、センサーが正しい値を返さなければすべて水の泡です。適切なキャリブレーションを行うことで、歪みの補正や座標変換の精度を高め、ロボットの動作をより正確に制御することができます。特に、複数のカメラを使用するシステムや高精度な計測を必要とするアプリケーションでは、キャリブレーションの重要性がさらに増します。
実際の運用では、キャリブレーションの結果を定期的に確認し、環境の変化や機器の経年劣化による影響を最小限に抑えることが求められます。ロボットビジョンの精度を向上させるためには、キャリブレーションの正確さだけでなく、その維持管理も重要なポイントとなるでしょう。
参考文献
iCOM技研の取り組み
iCOM技研では、ロボットビジョンを活用した協働ロボットのシステム開発を行っています。溶接・研磨、パレタイザーなど、人手不足に悩まされる製造業の現場を省人化・自動化により生産性を向上させています。