Camera Intrinsics
- 別名: intrinsic parameters, intrinsic matrix
- カテゴリ: Foundations & spatial maths › Frames & transforms
- タグ: camera-calibration, computer-vision, projective-geometry, sensors, 3d-perception
カメラ座標系の 3D 点をピクセル座標に写像する、カメラの内部パラメータ。焦点距離、主点、レンズ歪みからなる。
定義
カメラ内部パラメータ(camera intrinsics)は、カメラ自身の座標系にある 3D 点からの光を、カメラがどのようにピクセル位置へ変換するかを記述するパラメータである。ピンホールモデルでは、これらは 3×3 行列 K にまとめられ、ピクセル単位で表した焦点距離 fx と fy、光軸が画像と交わる主点 (cx, cy)、そしてほぼすべての現代のセンサーではゼロになるスキュー項を含むこともある。カメラ座標系の点 (X, Y, Z) は、ピクセル u = fx·X/Z + cx、v = fy·Y/Z + cy に投影される。実際のレンズは歪みを加え、通常は Brown-Conrady モデルの放射方向と接線方向の係数で、広角レンズには専用の魚眼モデルでモデル化される。
内部パラメータはキャリブレーションによって推定する。一般的な方法は Zhang(2000)が導入したもので、チェッカーボードのような平面ターゲットを多くの向きから撮影し、再投影誤差を最小化して K と歪み係数を求める。OpenCV、MATLAB、ROS のカメラキャリブレーションツールはいずれもこの方法に従っている。深度カメラに保存されている工場出荷時のキャリブレーションは、多くの場合そのまま使えるほど良好だが、推測するのではなくデバイスから読み出すべきである。内部パラメータは解像度、トリミング、ズーム、場合によってはフォーカスによって変わるため、キャリブレーションはそれを行ったときの画像モードに対してのみ有効である。
内部パラメータは、ロボットや世界に対してカメラがどこにあるかを記述する外部パラメータとは異なる。両者を合わせると、世界の点からピクセルへの完全な投影が得られる。ロボットはあらゆる場面で内部パラメータを使う。深度ピクセルを点群に逆投影する、Perspective-n-Point で画像のキーポイントから物体の姿勢を復元する、特徴マッチングの前に画像の歪みを補正する、実際のカメラに合った合成学習画像をレンダリングする、といった場面である。内部パラメータを学習モデルに含めず、後段の幾何学的な処理で適用すれば、同じネットワークを別のカメラでも使える。
重要な理由
ピクセルを実世界の幾何と結びつけるあらゆる計測は、内部パラメータに依存する。その誤差は点群を歪め、姿勢推定に偏りを生じさせ、シミュレーション画像と実画像の一致を崩すため、正しい内部パラメータはほとんどのロボットビジョンの前提条件である。
主な用途
- 深度画像の点群への逆投影
- PnP による物体とカメラの姿勢推定
- 特徴追跡や視覚オドメトリの前の画像の歪み補正
- 実際のカメラに合った合成学習データのレンダリング
- ステレオ平行化と深度推定
実際の使われ方
あるチームが、把持システムの RGB-D カメラを、解像度の異なる別のカメラに交換する。キーポイント検出器はピクセル座標を出力し、姿勢はカメラ行列を使って PnP で復元している。再学習する代わりに、使用中のストリーム解像度に正確に対応する新しいカメラの内部パラメータをドライバから読み出し、歪み補正した画像を検出器に渡し、PnP の処理で K を更新する。簡単な確認として、既知の物体の 3D モデルを推定した姿勢で画像に再投影すると、エッジが 1 ~ 2 ピクセル以内で揃い、パラメータが正しいことが確かめられる。後で速度のために画像を半分に縮小したときには、fx、fy、cx、cy も半分にする。
よくある誤解
- K の焦点距離はミリメートル単位のレンズ焦点距離である — ピクセル単位で表され、センサーの画素サイズと画像解像度に依存する
- 画像をリサイズやトリミングしても内部パラメータは変わらない — スケーリングは焦点距離と主点を変え、トリミングは主点をずらす
- 主点は常に画像のちょうど中心にある — 通常は中心に近いが、数ピクセル以上ずれていることがある
- ロボティクスではレンズ歪みを無視できる — 歪みは画像の端付近や広角レンズで最も大きく効き、補正しないと誤差が大きくなりうる
知っておくべき人
- ロボットビジョンと知覚のエンジニア
- マニピュレーションに RGB-D カメラを使う開発者
- 合成学習データを生成する研究者
- 射影幾何学を学ぶロボティクスの学生
関連技術
- OpenCV calibrateCamera
- ROS camera_calibration
- ピンホールカメラモデル(Pinhole Camera Model)
- Brown-Conrady 歪みモデル(Brown-Conrady Distortion Model)
- Kannala-Brandt 魚眼モデル(Kannala-Brandt Fisheye Model)
関連用語
関連プロジェクト
- pySLAM: Hybrid Python/C++ visual SLAM pipeline with classic and deep-learning front-ends
- AprilTag: The standard visual fiducial marker system for robot localization and pose estimation
- MRPT: Comprehensive C++ toolkit for mobile robotics, SLAM, and sensor-based navigation
- Gazebo: Industry-standard open-source robotics simulator with multi-physics and ROS integration
- PULP-Dronet: Visual navigation for nano-drones with CNN inference onboard a PULP processor.
- OpenWeedLocator: Low-cost Raspberry Pi weed detector that uses computer vision for precision spot spraying
動画
- Intrinsic and Extrinsic Matrices | Camera Calibration: First Principles of Computer Vision
- Linear Camera Model | Camera Calibration: First Principles of Computer Vision