メインコンテンツまでスキップ

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

なぜこれが重要なのか?

完全にキャリブレーションされたカメラは、より正確な2Dおよび3D測定を提供します。これは、「サーボイング」に基づかないタスクに有用です。

とは言え、可能な限り「サーボイング」方法を使用することをお勧めします。これは高速で正確であり、物体の取得、照準、ターゲットへの位置合わせなどのタスクに適しています。より高い精度が必要だと判断しない限り、キャリブレーションについて心配する必要はありません。すべてのLLユニットには、ほとんどのユースケースで十分に良好な結果を提供するデフォルトのキャリブレーションが付属しています

カメラキャリブレーションとは何か?

内部パラメータのキャリブレーションは、以下の2つのコンポーネントを決定するプロセスです:

1. カメラ行列

カメラ行列(Kと表記されることが多い)は、カメラ座標系の3Dポイントが2D画像平面にどのように投影されるかを記述する3x3行列です:

[fx  0   cx]
[0 fy cy]
[0 0 1]

cxとcyは主点/主要ピクセルの座標です。主点/主要ピクセルは、レンズの光軸と直接整列しているピクセルです。製造過程で、カメラレンズがイメージセンサーの中心と完全に整列することはほとんどありません。どのピクセルが真の「中心」ピクセルであるかを理解することが重要です

fxとfyはピクセル単位で計算された焦点距離です

2. 歪み係数

5つの歪み係数を計算します:

[k1, k2, p1, p2, k3]

k1、k2、k3は放射状歪み係数で、直線が曲線に見える原因となります。

p1、p2は接線方向歪み係数で、レンズが画像平面と平行でないことによって発生します

ChArUcoキャリブレーションの実行

LimelightのChArUcoキャリブレーションは、できるだけシームレスで確実に行えるように設計されています。以下の手順を読み、その後のビデオを視聴して、精度を向上させるためにカメラをキャリブレーションする方法を学んでください。

備考

1つの解像度でのみキャリブレーションを行う必要があります(LL3では1280x960、LL3Gでは1280x800を推奨)。内部パラメータは選択したパイプラインの解像度に自動的にスケーリングされ、歪み係数は固定のアスペクト比とFOVの場合、解像度に依存しません。ハードウェアズームパイプラインと5メガピクセルパイプラインのみ、カスタムキャリブレーションを使用しません。

ボードの準備

任意のラップトップ画面を使用してカメラをキャリブレーションできます。ただし、最大の精度を得るには、calib.ioの粗い800mmx600mmボードの購入をお勧めします。

ChArUcoボードの例

  1. ChArUcoキャリブレーションボードを印刷するか、大きなラップトップやコンピューター画面にボードの画像を表示します。ダウンロードページの当社のボードを使用するか、独自のボードを生成してください。
  2. 1行の黒い四角の総数とArUcoマーカーの総数を足して、グリッドの「幅」を求めます(Limelightのデフォルトキャリブレーションボードでは11)。
  3. 1列の黒い四角の総数とArUcoマーカーの総数を足して、グリッドの「高さ」を求めます(Limelightのデフォルトキャリブレーションボードでは8)。
  4. 四角とマーカーの側面の長さをミリメートル単位で測定して、「四角のサイズ」と「マーカーのサイズ」の測定値を確認します。
    • 四角のサイズとマーカーのサイズの測定は重要なので、キャリパーを使用してください。
  5. 辞書タイプを確認します。ダウンロードページのデフォルトボードは5x5_100辞書を使用しています。

キャリブレーション画像の撮影

  1. ボードができるだけ平らであることを確認します。
    • ボードが平らでない場合、キャリブレーションを行うべきではありません。calib.ioから特別なボードを購入するか、印刷したボードをクリップボードに固定することができます。
  2. ロボットの電源を入れ、Limelight Web UIにアクセスします。
  3. 1280x960のAprilTagパイプラインを作成します。
  4. 「入力」ソースタイプを「カメラ」から「スナップショット」に変更し、「すべてのスナップショットを削除」をクリックして、保存されているすべてのスナップショットを削除します。
  5. 「入力」ソースタイプを「カメラ」に戻します。
  6. まずはChArUcoボードのスナップショットを少なくとも25枚撮影します。プロセスに慣れたら、合計で少なくとも50枚の画像を撮影することをお勧めします。
  7. ChArUcoキャリブレーションの標準的なチェッカーボードキャリブレーションに対する主な利点は、ボードの一部しかカメラに見えない場合でも機能することです。この利点を活用することが重要です。
  8. 画像には以下の特性が適度に混在しているべきです:
    • ボードが画像の広い領域を占めている。
    • ボードが画像の少なくとも1つの端または角を超えて伸びている(これは画像の端の歪みを計算するのに役立ちます)。
    • ボードが透視変形を持つように配置されていることが多い(ボードが画像平面と平行でないこと)。
    • ボードの位置、視点、カバレッジの幅広い多様性を目指す。
    • 画像の50%は著しい遠近法効果を示すべきです。これは、近くのマーカーが遠くのマーカーよりも大きく見える効果です。以下のスクリーンショットの最初と最後の画像が遠近法効果を示しています

キャリブレーションの例

キャリブレーション

  1. 「キャリブレーション」タブに移動します。これは垂直サイドバーの3番目のタブです。
  2. 「ボードの準備」ステップで見つけた5つの値を入力します。
  3. 「スナップショットでキャリブレーション」ボタンをクリックします。プロセスが完了するまで1〜2分かかる場合があります。
  4. 成功すると、「最新のキャリブレーション結果」カードに最新のキャリブレーション結果が表示されます。
  5. 「最新のキャリブレーション結果」カードで、再投影誤差が低い(理想的には1未満)合理的な結果を確認します。
  6. 最新のキャリブレーション結果をダウンロードし、「カスタム - ファイル」キャリブレーションスロットにアップロードします。
  7. これで3つのキャリブレーション結果カードが表示されるはずです。
  8. 「優先キャリブレーション」を「カスタム - ファイル」に変更して、カスタムキャリブレーション結果を使用します。すべてのパイプラインがキャリブレーション結果を使用します。
  9. プロセスに慣れたら、さらにスクリーンショットを撮影し、再キャリブレーションを検討してください。