カメラキャリブレーション チェッカーボードで歪み補正を完全攻略

カメラキャリブレーション チェッカーボードで歪み補正を完全攻略

カメラキャリブレーション チェッカーボードで歪み補正を攻略する

チェッカーボードを「A4で適当に印刷すればOK」と思っているなら、キャリブレーション結果が最大で数センチもずれる可能性があります。


この記事でわかること
📐
チェッカーボードの基本

カメラキャリブレーションにチェッカーボードが使われる理由と、正しいサイズ・格子数の選び方を解説します。

🚗
車載カメラへの応用

ドライブレコーダーや360°モニターのキャリブレーションに、チェッカーボードがどう活用されるかを紹介します。

⚠️
よくある失敗と対策

印刷スケールのズレ・枚数不足・撮影角度の偏りなど、精度を下げる落とし穴と回避方法を具体的に説明します。


カメラキャリブレーション チェッカーボードとは何か:基本の仕組み


カメラキャリブレーションとは、レンズの歪みやカメラの内部パラメータ(焦点距離・主点・歪収差係数)を数値として求め、撮影画像を正確に補正する処理のことです。 チェッカーボードはその中でも最もポピュラーなキャリブレーションパターンであり、OpenCVを始め多くの画像処理ライブラリで標準サポートされています。 つまり「使いやすくて高精度」が選ばれる理由です。 icom-giken(https://www.icom-giken.com/blog/camera_calibration_example/)


チェッカーボードが優れているのは、白と黒の格子が交わるコーナー点(内部交差点)を、アルゴリズムが非常に高精度に検出できるからです。 この交差点の座標を複数枚の画像から集め、数学的な最適化(バンドル調整)を行うことで、カメラの歪み特性が数値として得られます。 計算結果は「再投影誤差(RMS誤差)」として評価され、この値が1ピクセル以下であれば高精度とされています。 globalwalkers.co(https://www.globalwalkers.co.jp/blog/2022/04/08/n0015/)


一方、チェッカーボードに対して円形マーカーを使うパターンも存在し、条件によっては円形の方が精度が高いケースもあります。 ただし車載カメラのような動的環境では、コーナー検出の安定性から引き続きチェッカーボードが主流です。これが基本です。 qiita(https://qiita.com/gou_koutaki/items/a0b232227d655248f22d)


車載カメラのキャリブレーション チェッカーボードが必要な理由

ドライブレコーダーや360°サラウンドビューモニター(アラウンドビューモニター)は、広角レンズを採用しているため、映像の周辺部が顕著に歪んで見えます。 この歪みを補正せずに使用すると、画面に表示される物体の位置や距離感がズレ、駐車支援や衝突警告システムの判断精度に直接影響します。これは見逃せない点です。 seiken-e-garage(https://www.seiken-e-garage.com/posts/33370629/)


日産「アラウンドビューモニター」に代表される360°モニターは、取り付け後にキャリブレーション用のチェッカーボードパターンを地面に配置し、カメラが正しく位置認識できているかを確認する工程が必要です。 具体的には、車両中心線と指定ラインを地面に引き、モニター上の基準線と一致させることで外部パラメータを補正します。 このキャリブレーション作業を省略すると、複数のカメラ映像を繋ぎ合わせた際にズレが生じ、タイヤ付近の死角が正確に表示されなくなります。 seiken-e-garage(https://www.seiken-e-garage.com/posts/33370629/)


ADAS(先進運転支援システム)を搭載した車でカメラを交換・再取り付けした場合も、同じく再キャリブレーションが必須です。 キャリブレーション未実施のまま走行すると、車線逸脱警告や自動ブレーキが本来よりも遅く、または誤ったタイミングで作動する可能性があります。意外ですね。 jp.mathworks(https://jp.mathworks.com/help/driving/ug/calibrate-a-monocular-camera.html)


参考:単眼カメラのキャリブレーション手順(MathWorks公式・日本語)
https://jp.mathworks.com/help/driving/ug/calibrate-a-monocular-camera.html


チェッカーボードの正しいサイズと格子数:精度を決める数値の選び方

チェッカーボードのサイズ選びは、カメラの視野(FOV)に対して「視野と同程度か、やや大きい」ものが目安とされています。 格子のマス目(チェッカー1辺)は、撮影時に1マスが10ピクセル以上映るサイズが必要です。 例えば解像度1080pのカメラで視野が2m四方なら、チェッカー1マスは最低でも約20mm以上を確保するのが安全です。 ja.calibplate-zhixing(https://ja.calibplate-zhixing.com/news/how-do-we-determine-the-size-of-our-camera-cal-60213328.html)


格子数については、一般的に縦横で非対称(例:8×6や9×7など、縦横で偶数と奇数の組み合わせ)にすることが推奨されています。 対称の格子数(例:8×8)にすると、ボードの向きを誤って認識する「180度回転誤検出」が起きやすく、キャリブレーション精度が著しく低下します。非対称が原則です。 jp.mathworks(https://jp.mathworks.com/help/vision/ug/measuring-planar-objects-with-a-calibrated-camera.html)


印刷時には「実寸印刷」が絶対条件です。 プリンターの「用紙に合わせる」設定や「フィットページ」にしてしまうと、格子のサイズが数mm単位でズレ、ソフトウェアに入力した「1マス何mm」という情報と実際の印刷結果が合わなくなります。このズレがキャリブレーション誤差として直接反映されるため、印刷後はノギスや定規で必ず実寸確認が必要です。 doc.eyeplusxtd.asyril(https://doc.eyeplusxtd.asyril.com/ja/1.0/support/knowledge_database/camera_config_pattern.html)


項目 推奨値・条件 守らないと起きること
チェッカー1マスのサイズ 撮影時に10ピクセル以上 コーナー検出精度の低下
格子の縦横数 非対称(例:9×7) 180度誤検出による精度破綻
印刷スケール 100%実寸印刷 mm単位の系統誤差が発生
ボード素材 平坦な硬質板(段ボール・アルミ板など) たわみによる歪みが誤差源に
チェッカーボードのコントラスト 白黒の輝度差100以上 コーナー検出の失敗率が上昇


参考:キャリブレーション用パターンの選択とプロパティ(MathWorks)
https://jp.mathworks.com/help/vision/ug/calibration-pattern-and-properties.html


チェッカーボード撮影の枚数と角度:キャリブレーション精度を上げる撮り方

キャリブレーションに必要な撮影枚数は、Zhangの手法(OpenCVの標準アルゴリズム)を使う場合、最低でも10枚以上、推奨は20〜30枚です。 10枚を下回ると数学的な最適化の収束精度が落ちるため、3〜5枚程度で済ませようとすると再投影誤差が1ピクセルを超えやすくなります。枚数は多いほど安全です。 qiita(https://qiita.com/dokaben/items/a559e985a523cf45fa50)


撮影角度の分散も重要な要素です。ボードを正面からだけ撮ってもパラメータの推定精度は上がりません。 上下・左右・斜め・回転(ボードを傾ける)など、できるだけ多様な角度と距離でチェッカーボードを撮影することで、レンズ歪みの周辺部の特性をより正確に捉えられます。 dev.epicgames(https://dev.epicgames.com/documentation/ja-jp/unreal-engine/how-to-use-the-mixed-reality-capture-calibration-tool-in-unreal-engine?application_version=5.0)


また、フレームの端(画面の周辺部)にチェッカーボードが映る構図を意識的に作ることが大切です。 レンズ歪みは画面中央では小さく、周辺部で大きくなる特性があるため、周辺部のサンプルを多く含めないとその補正精度が不十分になります。これは使えそうです。 dev.epicgames(https://dev.epicgames.com/documentation/ja-jp/unreal-engine/how-to-use-the-mixed-reality-capture-calibration-tool-in-unreal-engine?application_version=5.0)


照明条件にも注意が必要です。直射日光や強いスポットライトが当たると、白マスが飽和(白飛び)してコントラストが消え、コーナー検出に失敗します。 自然光または均一な室内照明で、白マスの輝度値がグレー値100以上を維持できる環境を選びましょう。 ja.calibplate-zhixing(https://ja.calibplate-zhixing.com/news/how-do-we-determine-the-size-of-our-camera-cal-60213328.html)


チェッカーボード vs 他パターン:車載用途で選ぶべきキャリブレーション手法

OpenCVで使えるキャリブレーションパターンは、チェッカーボード以外にも「サークルグリッド(円形配置)」「非対称サークルグリッド」「ArUcoマーカー」などがあります。 それぞれ特性が異なり、用途に応じた選択が精度向上につながります。 developer.mamezou-tech(https://developer.mamezou-tech.com/robotics/vision/calibration-pattern/)


パターン種類 検出精度 照明の影響 車載向き度
チェッカーボード ⭐⭐⭐⭐ 中(コントラスト依存) ⭐⭐⭐⭐
サークルグリッド ⭐⭐⭐⭐⭐ 高(飽和に敏感) ⭐⭐⭐
非対称サークルグリッド ⭐⭐⭐⭐ 高(飽和に敏感) ⭐⭐⭐
ArUcoマーカー ⭐⭐⭐ 低(コード認識) ⭐⭐⭐⭐⭐


車載環境では屋外の変動する照明条件が問題になるため、輝度変化に比較的ロバストなチェッカーボードが安定した選択です。 一方、ArUcoマーカーは部分的に隠れても認識できる特性があり、車両への貼り付け型キャリブレーション(走行しながら取得)との相性が良いとされています。 developer.mamezou-tech(https://developer.mamezou-tech.com/robotics/vision/calibration-pattern/)


自動車向けのステレオカメラ(衝突防止用の前方2眼カメラ)では、2台のカメラの位置関係(外部パラメータ)を同時推定する必要があり、この場合は1枚のチェッカーボードを両カメラの視野に同時に収めながら撮影します。 この作業は1人では難しく、2人での作業か専用の固定ジグが推奨されます。これが条件です。 reddit(https://www.reddit.com/r/computervision/comments/1ee8tw2/camera_calibration_using_chessboard_images/)


参考:OpenCVで使えるキャリブレーション用パターンの種類と比較
https://developer.mamezou-tech.com/robotics/vision/calibration-pattern/


カメラキャリブレーション チェッカーボードを自作する手順と注意点

チェッカーボードは、MATLAB・OpenCV・専用ウェブサービスなどからPDFデータを無料で取得して自作できます。 用意するものは、印刷したチェッカーボードパターンと、それを貼り付ける平坦な硬質台(厚さ3mm以上のアルミ板・MDF板・カッティングマットなど)です。 note(https://note.com/ndenki/n/nd8501bbdc3c3)


自作時に最も多い失敗は「紙だけで使おうとする」ことです。紙のみでは、机の端に置いたときや手に持ったときに微妙なたわみが生じ、本来「完全な平面」であるはずのチェッカーボードが歪んだ状態になります。 この歪みはアルゴリズムが「レンズの歪み」と「ボードの歪み」を区別できず、誤ったパラメータを推定する原因になります。たわみへの注意は必須です。 dev.epicgames(https://dev.epicgames.com/documentation/ja-jp/unreal-engine/how-to-use-the-mixed-reality-capture-calibration-tool-in-unreal-engine?application_version=5.0)


印刷後の確認手順は次の通りです。


  • ノギスまたは定規でチェッカー1マスの実寸を計測し、設計値(例:25mm)との差が0.5mm以内であることを確認する
  • ソフトウェアには印刷後の「実測値」を入力する(設計値ではなく実測値が重要)
  • テープで紙を板に貼る場合は、チェッカーパターンの上にテープがかからないようにする(透明テープでも反射でコーナー検出が乱れる)
  • dev.epicgames(https://dev.epicgames.com/documentation/ja-jp/unreal-engine/how-to-use-the-mixed-reality-capture-calibration-tool-in-unreal-engine?application_version=5.0)

  • ラミネート加工は光沢面による反射が問題になるため、マット仕上げのラミネートか無加工を選ぶ


より高精度が求められる場合(ADASの再キャリブレーションや測定ツールとしての用途)は、アルミ製や強化ガラス製の市販キャリブレーションボードの利用も選択肢です。精度保証品では格子サイズ誤差が±0.01mm以下に管理されており、自作品とは一線を画します。 ja.calibplate-zhixing(https://ja.calibplate-zhixing.com/news/how-do-we-determine-the-size-of-our-camera-cal-60213328.html)


参考:キャリブレーションプレートのサイズ決定と配置方法(メーカー公式・日本語)
https://ja.calibplate-zhixing.com/news/how-do-we-determine-the-size-of-our-camera-cal-60213328.html






商品名