2018.02.17外部パラメータとはなんぞや?という話ですが、一言でいうと「世界座標をカメラ座標に変換する行列」のことです。式で表すとこうですね。待て待て、それだけ言われてもわからない。いう人の為に、もう少し詳しく解説してみたいと思います。世界座標系は、下の図のようにすべての基準となる1つしかない座標系で、「すべての3次元点の絶対的な位置」を表しています。現実世界の緯度経度と高度と思ってもらえれば大丈夫だと思います。カメラ座標系は下の図のような座標系で「このカメラから見て3次元点がどの位置にあるか」を表しています。したがって画像の枚数だけカメラ座標系も存在します。やって世界座標系で表現された点をカメラ座標系に変換しましょうか?実はこれ、カメラの姿勢(回転行列)と位置(並進ベクトル)がわかれば、変換できちゃうんです。世界座標点に回転行列を掛けて回転させてやります。実は世界座標点を回転させるのって、世界座標系自体を逆回転させるのと、便宜的には同じなんです。重要つまり、世界座標点に回転行列を掛けることによって、【カメラ座標系の姿勢から見た、3次元点の見える方向】を求めることができるのです!!しかし、同じ方向を向いたとはいえ、世界座標系の原点とカメラ座標系の原点は違うので、まだカメラ座標にはなってません。並進ベクトルを使って原点をそろえてあげましょう。さあ、これで世界座標系で見た3次元点をカメラ座標に変換することができました。これを数式にまとめると以下のようになります。これで外部パラメータの持つ意味は完璧ですね!最後に、同次座標というテクニックを使って式を変形してやれば、記事のはじめの式と同じ形になります。(同次座標がわからない人も、両方の式を展開してみると同じ式であることが確認できるかと思います。)反対に、外部パラメータを使ったカメラ座標系から世界座標系への変換したい場合の手順は、こちらの記事で解説しています。~外部パラメータの逆変換~外部パラメータは、世界座標系からカメラ座標系へ変換する行列でした。今回は、この外部パラメータの逆変換、すなわちカメラ座標系から世界座標系への変換を考えてみます。3次元系の画像処理の勉強では、透視投影カメラモデルの理解は必須です。PM初歩的な質問で申し訳ありません。PM画像処理ライブラリのOpenCVなどは右手座標系ですし、OpenGLやUnityなどは左手座標系を使っているので使うツールによって決めることが多い印象です。使われることが多いです。本ブログでも、他の記事は右手座標系を使っているのにこの記事だけ左手座標系を使っているので、そのうち直したいなと思ってます。コメントをキャンセルメールアドレスが公開されることはありません。管理人についてそのうちサイエンス領域の仕事に関われたらなーって思ってるITエンジニアです。間違いがあればコメント欄から知らせてくれると泣いて喜びます。管理人についてそのうちサイエンス領域の仕事に関われたらなーって思ってるITエンジニアです。間違いがあればコメント欄から知らせてくれると泣いて喜びます。フォローツイートカテゴリーAndroidlinuxWeb開発Windowsサーバ運用ブラウザ拡張プログラミング便利ツール。