画像処理ExifからPixel単位の焦点距離を計算する 3次元復元系の論文を読んでいると、よく「初期値にはExifから取得した焦点距離を使用する」的なことが書いてあります。しかし、カメラ内部パラメータとかの焦点距離はピクセル単位なのに、Exifに記録されてる焦点距離はmm単位です。 ... 2019.07.28画像処理
画像処理【OpenCV】decomposeProjectionMatrixの使い方~完全版~ 以前こんな記事を書きましたが、OpenCVの透視投影変換行列を分解するdecomposeProjectionMatrixには他にもいろいろと罠があったので完全版の使い方をまとめていきます。 まずは単純に分解 され、... 2019.04.21画像処理
画像処理透視投影変換行列は定数倍しても問題なかった話 考えてみれば当たり前だったのですが、透視投影変換行列はスケール不定性的なものを持っていることに気づいたので、まとめてみます。 透視投影変換の定数倍 透視投影変換行列とは、世界座標点を画像座標点に投影する行列のことで... 2019.04.06画像処理
画像処理【OpenCV】decomposeProjectionMatrixを使った外部パラメータの導出 透視投影変換行列を内部パラメータと外部パラメータに分解するため、OpenCVのdecomposeProjectionMatrixを使用したのですが、ちょっと使い方にはまったので使い方メモです。 公式ドキュメントを見てみる de... 2019.03.21 2019.04.21画像処理
画像処理2次元点-3次元点の対応付けからカメラパラメータを導出する SfMやSLAMでは、2次元点と3次元点の対応付けから、カメラパラメータ(透視投影変換行列)を求める必要があります。今回は、DLT (Direct Linear Transformation)を使った透視投影変換行列の導出法について書いて... 2019.03.16 2019.07.28画像処理
画像処理多視点三角測量(Multi view triangulation)のアルゴリズム 最近知ったのですが、OpenCVにもいつの間にか多視点三角測量(Multi view triangulation)が実装されていたんですね。 ということで今回は、OpenCVのcv::sfm::triangulatePointsでも使... 2018.11.04 2019.07.28画像処理
画像処理カメラ座標系から世界座標系への変換 ~外部パラメータの逆変換~ 外部パラメータは、世界座標系からカメラ座標系へ変換する行列でした。今回は、この外部パラメータの逆変換、すなわちカメラ座標系から世界座標系への変換を考えてみます。 世界座標系からカメラ座標系への変換 まずは復習ですが、外部パラメータを使っ... 2018.10.28 2018.12.02画像処理
画像処理画像座標系からカメラ座標系への変換 画像座標点をカメラ座標点に変換することを考えてみます。 タイトル詐欺で申し訳ないですが、結論から言うと画像座標点をカメラ座標点への変換はできません。できるのはカメラ座標系原点からカメラ座標点方向へのベクトルを計算することだけです。まぁ、2... 2018.10.13 2018.12.02画像処理
プログラミングOpenCVのfindEssentialMatでの内部パラメータの用途 5-point algorithm (5点アルゴリズム)を使いたくて、OpenCVに確か実装されてたよなーって思って調べてみると、なぜか関数の入力に内部パラメータが必要とされていました。 OpenCVの5-point algorithmはこ... 2018.09.17 2019.07.28プログラミング画像処理
画像処理SfMのOSS:Bundlerを動かしてみる in Windows 10 (動きませんでした) 最初に結論を述べておくと、Windows 10でBundlerは動きませんでした。ごめんなさい。 動かないまま力尽きたものの、結構頑張って動かそうとしたので、その軌跡をまとめました。 SfMのOSSであるBundle... 2018.09.09 2018.12.02画像処理
画像処理Bundlerのアルゴリズムを追ってみる 特徴点マッチング編 その3 前回や前々回は、2枚の画像ペアから特徴点の誤対応を除去する方法について説明しました。 この記事では、2枚といわずすべての画像を使って誤対応を除去する方法について説明します。 特徴点追跡による誤対応の除去 まず、各画像間の各特徴点マ... 2018.03.31 2018.12.02画像処理
画像処理Bundlerのアルゴリズムを追ってみる 特徴点マッチング編 その2 前回は、Bundlerで使われている特徴点マッチングと、特徴点空間上の距離を使った誤対応の除去について説明しました。 この記事では、特徴点空間上の距離を使った誤対応除去の次に行う、エピポーラ幾何を使った誤対応の除去について説明します。... 2018.03.24 2018.12.02画像処理
画像処理Bundlerのアルゴリズムを追ってみる 特徴点マッチング編 その1 Structure from Motion(SfM)のオープンソース、Bundlerのアルゴリズムを追ってみます。 今回は、特徴点マッチングと、特徴点空間上の距離を使った誤対応の除去について解説してみます。 特徴点マッチング Bu... 2018.03.12 2018.12.02画像処理
画像処理Bundlerのアルゴリズムを追ってみる 概要編 Structure from Motionで多分一番有名なOSSである、Bundlerの処理を追ってみます。 何回かに記事を分けて解説していくつもりなので、途中で力尽きたらごめんなさい。。。 Bundlerの公式サイトはこちらです。... 2018.03.06 2018.12.02画像処理
画像処理バンドル調整とは SfMとかSLAMの3D系の研究を始めると、必ず出てくるのがバンドル調整(Bundle Adjustment)です。ぶっちゃけただの非線形の最小二乗法なんですけど、今回はこのバンドル調整について解説します。 バンドル調整、またはバンド... 2018.03.04 2018.12.02画像処理
画像処理透視投影変換を展開してみる 以前、透視投影変換について解説しました。 変換式はこんなのでしたよね。 で、この式の\(s\)って邪魔じゃないですか? こいつがあるせいで、上の式の右辺を計算した後、最後に\(s\)で割るっていう、2段階手順が... 2018.03.04 2018.12.02画像処理
画像処理透視投影変換とは 3次元系の画像処理の勉強では、透視投影カメラモデルの理解は必須です。 そんなわけで今回は透視投影カメラモデルについて解説してみたいと思います。 (といっても、過去の記事でほぼ解説してしまった気がするので、この記事は簡単にまとめたものなり... 2018.02.26 2018.12.02画像処理
画像処理内部パラメータ(焦点距離)の単位の話 ~pixelとmmの変換~ さて、今回は内部パラメータの単位について解説してみたいと思います。 皆さんご存知の通り、透視投影変換は 世界座標 ↓ カメラ座標 ↓ 画像座標 の順で、世界座標を画像座標に変換していて、現実世界の3次元物体が画像上のどこに投影され... 2018.02.25 2019.07.28画像処理
画像処理カメラ内部パラメータとは 前回は外部パラメータの意味を解説しました。なので今回は、外部パラメータと双璧をなす?内部パラメータの意味を解説してみたいと思います。 内部パラメータとは 内部パラメータとは、一言でいうと「カメラ座標を画像座標へ変換... 2018.02.21 2020.06.26画像処理
画像処理カメラ外部パラメータとは 外部パラメータとはなんぞや?という話ですが、一言でいうと 「世界座標をカメラ座標に変換する行列」のことです。 式で表すとこうですね。 待て待て、それだけ言われてもわからない。という人の為に、もう少し詳しく解説して... 2018.02.17 2020.06.26画像処理