

チェッカーボードを「A4で適当に印刷すればOK」と思っているなら、キャリブレーション結果が最大で数センチもずれる可能性があります。
カメラキャリブレーションとは、レンズの歪みやカメラの内部パラメータ(焦点距離・主点・歪収差係数)を数値として求め、撮影画像を正確に補正する処理のことです。 チェッカーボードはその中でも最もポピュラーなキャリブレーションパターンであり、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)
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)
印刷後の確認手順は次の通りです。
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