19章射影変換と3次元ビジョン
本章では、3次元ビジョンに進みます。最初に、3次元から2次元の射影と逆射影(この操作は反転可能ですが)について調査し、その後、複数カメラによる奥行き知覚を扱います。これを行うためには、「18章 カメラモデルとキャリブレーション」で学んだ概念のいくつかを持ち込む必要があります。カメラ内部行列M、歪み係数、回転行列R、平行移動ベクトル、そして特にホモグラフィ行列Hです†1。
[†1] 他にも、「18章 カメラモデルとキャリブレーション」で触れ「付録B opencv_contribモジュール」にも記載してあるように、opencv_contrib
には、オムニカメラやマルチカメラに対するキャリブレーションアルゴリズム(ccalib
内)、さまざまな種類のキャリブレーションパターン(aruco
とccalib
内)、さらにはカラーバランスとノイズ除去アルゴリズム(xphoto
)なども含まれています。ただしこれらは実験用のコードなので、ここでは詳しく説明しませんが、これらのツールの多くがステレオキャリブレーションやビジョン関連の作業を改善する上で非常に役立ちます。
ここではキャリブレーションされたカメラを用いた3次元世界での射影の説明から始め、アフィン変換と射影変換(「11章 画像変換」で最初に勉強したもの)を復習します。次に、地面の鳥瞰図†2を作る方法の例に進みます†3。また、「18章 カメラモデルとキャリブレーション」で初めて出てきたcv::solvePnP()
についてももう少し詳しく説明します。この説明の中で、このアルゴリズムをどのように使えば画像内にある既知の3次元物体の3次元の姿勢(位置と回転)を求められるのかを見ていきます。 ...
Get 詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.