O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

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

14.604 visualizações

Publicada em

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

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

Publicada em: Dados e análise
  • Seja o primeiro a comentar

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

  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

×