Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

14,603 views

Published on

最初のスライドのホームページが変わりました(mtakuya.net)

カメラキャリブレーションの基礎事項についてまとめました.
今後はご紹介していない光学的キャリブレーションなども扱っていきたいです.

Published in: Data & Analytics
  • Be the first to comment

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

  1. 1. + カメラキャリブレーション基礎 http://omilab.naist.jp/~takuya-m/
  2. 2. + ご紹介するカメラキャリブレーション項目 カメラ応答関数キャリブレーション(Radiometric calibration) ワールド座標系 (World coordinates) カメラ座標系 (Camara coordinates) ピクセル  (Pixel) 外部パラメータ カメラの位置, 姿勢など   内部パラメータ 焦点距離, 画像距離 アスペクト比, スキュー歪みなど 2 カメラに入る光量 (Brightness) ピクセル (Pixel) 幾何学的キャリブレーション(Geometric calibration) ■ 外部パラメータ(Extrinsic Parameters) ■ 内部パラメータ(Intrinsic Parameters) カメラ応答関数 実際の光量を画素値に変換 他にも光学的キャリブレーションなどがある
  3. 3. + 幾何学キャリブレーション レンズおよびイメージまたはビデオカメラのイメージセン サーのパラメーターを推定し,レンズ歪みの修正やシーン 内のカメラ位置の判定を行う 3 http://jp.mathworks.com/help/vision/ug/camera-calibration.html 実際に製品などで使 われているレンズ (球面レンズ)
  4. 4. + 幾何学キャリブレーション(全パラメータ) 4 スクリーン座標 カメラの内部行列 カメラの外部行列 ワールド座標系     同次座標系  (射影変換を行うときに用いる) カメラ固有の値 動きによって変化 (回転, 平行移動など)
  5. 5. + 幾何学キャリブレーション(内部パラメータ) 5 スクリーン座標 カメラの内部行列 カメラの外部行列 ワールド座標系 f : 焦点距離 s : スキュー a : アスペクト比 cx, cy : 光学中心 アスペクト比 スキュー 最近のカメラの性能では スキュー : s = 0 となる Bundler(複数の画像からsfmを行うオープンソースプログラム) では s=0, a=1, cx,cy=画像中心とすることが多 い http://www.am.sanken.osaka-u.ac.jp/~mitsugami/pdf/dommag/mitsugami-ite-2011.pdf u v 1 fku 0 u0 0 fkv v0 0 0 1 x y z s =
  6. 6. + 内部パラメータ x y z カメラの結像に関する座標系 カメラと画像の座標系 光学中心 (x,y,z) (fx/z,fy/z,f) x y z 光学中心 (x,y,z) (u,v) u v カメラに対する相対的 な位置がわかれば 結像される位置も わかる. (u0,v0) 実際にはカメラ座標系での座標値 (fx/z,fy/z,f)は取得できないかわりに, 画像二次元配列の座標値 (u,v)が取得 される. (0,0,f) x y z x y f/z→
  7. 7. + 内部パラメータ x y z 光学中心 (x,y,z) (u,v) u v (u0,v0) x y z x y f/z→ 透視変換を修正する 光軸は画像面上(u0,v0)を通る. ピクセル単位とカメラ座標系との単位の比 (スケールファクタ)をku,kvと置く. 画像上の座標値とカメラの相対的な位置は次のようになる. u = f ku x/z + u0 v = f kv y/z + v0 行列を使って表現する . (s=z)←スケールファクタ u v 1 fku 0 u0 0 fkv v0 0 0 1 x y z s =
  8. 8. + 内部パラメータ推定手法(一部) Tsai の手法 ■ 3次元位置既知の点から内部パラメータを推定 ■ 高次元(12パラメータ)の非線形最適化 ■ 安定ではない,三次元位置の既知の点群が必要 Easy Calib (http://www.vision.caltech.edu/bouguetj/calib_doc/papers/zhan99.pdf) ■ Zhang氏により提案.OpenCVにも実装 ■ Tsai の手法より精度が良いことから,今現在はコチラが使われて いる 8 Easy calibの結果
  9. 9. + キャリブレーション(外部パラメータ) 9 スクリーン座標 カメラの内部行列 カメラの外部行列 ワールド座標系 R : カメラの回転角度 t : 並進移動量 軸の位置・向きが変化する 座標系を変えることによって, 画像の位置を把握することができる
  10. 10. + 外部パラメータ推定の実用例 PTAM・・マーカーレスで自己位置推定を行う方法 どこに何を映し出すかを,連続するフレームの特徴点を用いて求める (=カメラの自己位置推定) http://blog.livedoor.jp/tmako123-programming/archives/33475512.html (外部パラメータを推定するコード例 ) 10 https://www.youtube.com/watch?v=Y9HMn6bd-v8
  11. 11. + Structure from Motion (sfm) による 外部パラメータ推定 ■ フレーム間での特徴点の変化を追っていくことで, カメラの姿勢位置(Motion),そのカメラが撮影している物体の幾何 構造(Structure)を同時に算出 詳しくはこちら で http://news.mynavi.jp/series/computer_vision/002/ 三角形を考えて,姿勢を求めていく 11 https://www.youtube.com/watch?v=GaE4QX7Bq74
  12. 12. + 他にも・・外部パラメータ推定 Solve PnP・・画像中のn点と物体上のn点を対応付ける ことにより、物体の位置・姿勢を推定する (cv::SolvePnP) Levenberg-Marquardt 法による最適化 (cv::ITERATIVE) EPnP・・・高速な推定手法 (cv::EPNP) 12 もし,対応点の組み合わせに誤対応が含まれている場 合 cv::SolvePnPRansac (RANSAC)を使って見ると精度が良い?
  13. 13. + プログラムを動かして理解する(宿題) ■ OpenCVにはカメラキャリブレーションに関するライブラリが充実 ■ Zhang の手法(チェッカーボードを用いる)が実装されている 13 サンプルコード http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_calib3d/py_calibration/py_calibration.html#calibration https://www.youtube.com/watch?v=NT_BFBcZnhw
  14. 14. + Zhang のアルゴリズム(サンプルコード- http://opencv.jp/sample/camera_calibration.html) 14 1. スクエアグリッド, サークルグリッドを最低二方向から撮影 (サークルグリッドの方が精度が良い ) 2. 次に、撮影した画像から特徴点 (直線の交点、または円の重心 )を検出し、画像座標系での特徴点 の座標を求める findChessboardCorners()・cv::findCirclesGrid()・・チェスボードの交点を求める関数 3. 検出した特徴点の座標を用いて、カメラの内部パラメータの初期値を求める。この時点では、レン ズの歪収差係数はゼロになる calibrateCamera()・・内部パラメータの計算 (カメラ内部行列・歪み係数などが得られる ) 4. バンドル調整(未知パラメータの推定 )と呼ばれている非線形最適化処理で、カメラの内部パラメー タ、外部パラメータ、歪収差係数を求める (これもcalibrateCamera()) 5. 求めた内部パラメータ、歪収差係数を用いて、歪みのない画像に補正する cvUndistort2()・・歪み係数を用いて,補正画像の作成 スクエアグリッド サークルグリッド 素晴らしい解説記事がhttp://news.mynavi.jp/series/cv_future/005/
  15. 15. + 実行結果 (Zhang の手法) 15 交点が検出されない時 交点が検出される時 ➢ チェッカーボードが全て写っている状態が望ましい ➢ あらゆる角度から撮影した画像10枚くらいが必要 ➢ チェッカーボードを自分で撮影してみるといろいろ見えてくる? サークルグリッドを 使った時の交点
  16. 16. + Radiometric calibrationの実用例 (Tomoo Mitsunaga, et.al. in CVPR1999) http://pages.cs.wisc.edu/~lizhang/courses/cs766-2007f/projects/hdr/mitsunaga_CVPR_1999.pdf High Dynamic Range Imaging(ハイダイナミックレンジ)の画像生成 ● 異なる露光設定で画像を何枚か撮影 ● Radiometric calibration を適用 ● 明るさをキャリブレーションした複数の入力画像からのHDR画像を生成 16
  17. 17. + カメラ応答関数の非線形性 17 物理的な明るさと出力画像 カメラごとに異なる明るさへの応答関数 一般的に撮像素子に入る電荷と出力される画素値は比例しない 非線形性が明るさ解析の障害になる可能性が存在
  18. 18. + カメラ応答関数の校正 18 撮像素子への入射光量が時間比例することを利用 単純には標準白色板などを利用して露光時間を変えて撮影 明るさ255の際の入力光量(露光時間)を1としてプロット 画素値の飽和する露光時間の事前測定が不要な手法 T. Mitsunaga and S. K. Nayar “Radiometric self-calibration” (CVPR1999)
  19. 19. + 参考文献・資料 ■ 詳解OpenCV,Gary Bradski,オライリージャパン ■ 和歌山大学 呉先生の資料 (http://www.wakayama-u.ac.jp/~wuhy/CV/CV2010/CV10.pdf) ■ 広島市立大 日浦先生の資料 (http://www.ime.info.hiroshima-cu.ac.jp/~hiura/lec/iip/geometry2015.pdf) ■ コンピュータビジョン -アルゴリズムと応用-, Richard Szeliski ■ 東京大学の授業資料 (http://www.cyber.t.u-tokyo.ac.jp/~tani/class/mech_enshu/enshu2011mi2.pdf) ■ 幾何学カメラキャリブレーション(https://en.wikipedia.org/wiki/Camera_resectioning) ■ 機械の目が見たセカイ (http://news.mynavi.jp/series/cv_future/005/) ■ CVIMチュートリアルシリーズコンピュータビジョン最先端ガイド4 ■ カメラ応答関数のデータベース等々 (http://www.cs.columbia.edu/CAVE/) 19 http://www.amazon.co.jp/dp/4873114136 http://www.amazon.co.jp/dp/432012328X http://www.amazon.co.jp/dp/4915851435

×