標準レンズ、標準カメラ、つまりセットアップはピンホールカメラとしてモデル化できます。これは、チルト/シフトでは機能せず、広角レンズでは機能しない可能性があります(それらについて知りたい場合は、解決できます)。
コンピュータビジョンでは、多くの場合、カメラの固有の特性が計算されます。カメラ内のカメラの設定を参照するため、本質的です。外部プロパティは、方向と位置です。固有のプロパティはいくつかあり、その中には倍率があります。私の解決策は次のとおりです。
- コンピュータービジョン(CV)の標準ツールを使用して、指定の設定でカメラとレンズを調整します。
- カメラのピクセルサイズを調べます。
- 倍率を焦点距離に変換するように他の人に依頼してください。(これがどのように機能するかはまだわかりません)
較正
CVでのキャリブレーションは、主にチェスボードパターンを使用して行われます。さまざまな位置と距離からそのパターンの写真を10枚以上撮ります。このアルゴリズムは、次のように機能します。
ボード上の各頂点の位置を知っているふりをして、画像内のボード上のすべてのポイントを見ることを最もよく説明するカメラモデルのパラメーターのセットを見つけます。
理論的には、このためにOpenCVをお勧めします。そのためのサンプルコードがあります。しかし、これはあまり実用的ではないかもしれません(このためにOpenCVをインストールする必要があり、場合によってはコードを少し変更する必要があります)。おそらく、これを行う他のソリューションがあります。
焦点距離の計算
キャリブレーションステップの結果は、Kマトリックス(固有マトリックスと呼ばれます)です。カメラの座標系の3空間点を画像平面上の均一な2空間点にマッピングします。
$ \alpha 0 p_x
K = 0 \alpha p_y
0 0 1 $ (Multiple View Geometry, p. 157, 2nd Ed, 2003, Hartley & Zisserman)
ここでは\ alphaのみを考慮します。p_xは、p_yの場合と同様に、センサー幅のピクセルの約半分です。これは、主光線が画像平面と交差する場所に関連しています。興味深いことに、私の安価な携帯電話のカメラは、優れたデジタル一眼レフ、または高価なウェブカメラ、またはIphone 4カメラよりもはるかに違反しています。
\ alphaは焦点距離に関連しています。\ alpha = f m。mは、画像座標の単位距離あたりのピクセル数です。fは焦点距離です。ただし、これはピンホールカメラモデルにあるため、画像平面とカメラのピンホール間の距離です。焦点距離の写真家がそれをどのように考えているのかわからない。
代替案
誰かが別のアプローチに関するリンクを投稿しました:http : //www.bobatkins.com/photography/technical/measuring_focal_length.html
この記事の「The Easy Way」では、別の方法が提案されています。2つの星が与えられたら、星の位置を調べ、それらの間の角度を計算します。次に、カメラのセットアップでその角度がどのように測定されるかを確認します。完全な概要については、リンクをご覧ください。
その欠点は、焦点距離がまったく機能せず、無限遠でのみ焦点が合うことです。一方、私のアプローチは無限では機能しません。または、500mを無限大として扱い、トウモロコシ畑を購入してチェス盤のパターンを作り、飛行機を借りて500mから写真を撮ります...