前回解説した4つのカメラキャリブレーションについて、さらに詳しく適性手法について説明していきたいと思います。
目次[]
前回の内容

CheckerBoardでできること

CheckerBoardは、主流なカメラキャリブレーション手法の一つであり、OpenCVで広くサポートされています。この手法を用いることで、以下のことが可能になります。
カメラの内部パラメータの補正
カメラの内部パラメータに関しては前回詳しく説明したので省略します。気になる方はこちらをご覧ください。
外部パラメータの推定とその条件
外部パラメータの推定にはいくつかの条件が存在します。
以下の表にまとめたように、カメラの設置条件によって推定の難易度や手法が異なります。

このように、ステレオカメラやマルチカメラを用いることで、カメラ間の相対位置関係の推定が容易になります。一方で、単眼カメラの場合、固定された単一視点では推定が難しく、異なる視点から撮影する必要があります(PnP, SfM)。
*Perspective-n-Point:カメラの位置と姿勢(向き)を計算すること
*Structure from Motion:複数の画像から3Dを構築する技術
CheckerBoardを用いたワールド座標系の統一
CheckerBoardパターンを用いることで、カメラの座標系とワールド座標系を統一することができます。これにより、複数のカメラ間で同じ基準の座標系を持つことが可能になります。
OpenCVを利用した外部パラメータ推定
- ステレオキャリブレーション
OpenCVのstereoCalibrate()関数を使用すると、回転行列(R)と並進ベクトル(T)を推定できます。
これにより、カメラ間の相対位置や向きを求めることができます。 - エピポーラ幾何学
OpenCVのfindEssentialMat()やrecoverPose()を用いることで、エピポーラ幾何学に基づいた画像補正が可能になります。

CheckerBoardの注意点
CheckerBoardはパターンが対称的なため、回転角度が45℃を超えると認識精度に問題が生じます。マルチカメラや非対称にすることで回避することは可能ですが、外部パラメータを扱う際は注意が必要です。また、行×列によってもばらつきがあるので注意が必要です。

CircleGridでできること

CircleGridは円形の中心を検出するので、四角形のCheckerBoardと異なり、エッジのノイズに左右されないことから、より高精度とされています。が、有意な差がみられないケースがあるので、自身で検証を行うことが大切です。
CircleGridの外部パラメータ推定とその条件
CircleGridもCheckerBoardと同様に、対称的なため単眼カメラの固定視点では外部パラメータを推定することはできません。PnPのように推定する手法も同様に使用できますが、45°以上の回転角度があると精度が低下していくといった課題もあります。
パターンを非対称とし、外部パラメータを推定可能に改変したものが下のAsymmetry-CircleGridです。
Asymmetry-CircleGridでできること

パターンが非対称なので、位置姿勢の検出が可能。より精密な位置決めが必要なもの(ロボットアームなど)に適している。
実装はこちらを参考に
ChArUcoでできること

ArUcoマーカーをCheckerBoardのように並べ、キャリブレーションボードとして用いる手法。この手法は、CheckerBoardよりも精度が高く、ボードの1部分が隠れていてもArUcoマーカー自体が姿勢を取得することができ、キャリブレーションすることが可能です。
実装はこちら
まとめ

参考文献
展示会事例 協働ロボット×AI
iCOM技研による自動化のご提案|まずはシミュレーションから

「自社の荷物で本当に自動化できるのか?」
そんな不安をお持ちの方も、iCOM技研なら安心です。
箱のサイズ・重量・品種情報をお送りいただければ、実機を用いたシミュレーションが可能です。
- 実データに基づいた検証で、導入効果を事前に確認
- 単なる装置提案ではなく、現場に即した自動化プランをご提案
- 協働ロボットの操作指導・立ち上げ支援までワンストップで対応
iCOM技研では、ユニバーサルロボットをはじめとする各種ロボットメーカー製品を取り扱っています。そのため、用途や作業環境に応じた最適なシステムをご提案します。
まずはお気軽にお問い合わせください。
お客様の現場に即した自動化の第一歩をお手伝いします。

