デジカメで三角測量 (2)
デジカメで撮った写真をもとに被写体の位置を特定しようというのがテーマです。
これは方位角・高度あるいは赤経・赤緯を方向余弦に変換すれば星野写真を撮ったときの未知の天体の方位角・高度、赤経・赤緯を求めることにも使えます。そしてそういう目的であれば「関連係数法(1) 」に書いた方法より精度が高い方法です。
-----
今回は「デジカメで三角測量 (1)」の続きとして撮った写真から被写体までの距離やカメラの向き・仰角・傾きを調べる方法です。
-----
次のような写真を題材にします。この写真には水位を示すポールが右、中央左より、そしてそのちょっと左と三箇所に写っています。
それからこの写真はわざと収差補正をオフにして撮ってあります。
収差補正をオンにしても収差が完全になくなるわけではありませんのでこれから書くことは収差補正がオンにしてあっても本質的にはかわりません。
それぞれのポールは鉛直に建てられているはずです。そして刻まれた目盛もけっこう精度はいいはずです。また三本のポールの示す(平均?)河川面からの高さも揃えられていると思われます。これをもとに氾濫の危険があるかどうか判断するのでしょうから。
----
座標系はカメラのある位置をz軸が通るものとしx軸の方向は右側にあるポールの方向とします。原点は河川面の高さにあるとします。
カメラの焦点距離やセンサーサイズ等は仕様値や
「アンタレスのデジカメ部屋 - 画像(イメージ)センサー・(CCD・CMOS)の大きさ比較」
にあるものを使います。
カメラの高さは5m、方位、仰角、傾きは0度、ポールまでの距離は5mと適当に仮定しポール上から50cmくらいの間隔で点の画像上の位置を計算してみます。そしてそれらの画像上の位置を読み取ったものと比較してみます。Y座標はポールが鉛直であるという条件から(そしてx軸の方向をポールの向きにとっているので0で)一定です。
カメラの位置や方向は適当に設定していますので計算で求めた画像上の位置と実際の画像上の位置は一致しません。いちばん右側に残差=計算と実際の差の自乗を計算してあります。
ここでカメラの位置(ポールからカメラまでの距離)や方向を調整してすべての点の残差が0になればこの写真を撮ったときの位置関係がわかるはずです。
Excelにはソルバーという機能がありますのでこれを使います。
残差の合計値が最小になるようなカメラの位置・方向を自動的に求めることが可能です。
ソルバーを起動しこのように設定します。
目的セルは残差の合計を計算してあるセルを指定します。
目標値はこの場合“最小値”になります。
変化させるセルは
・カメラの高さ
・カメラの方向
・カメラの仰角
・カメラの傾き
・カメラからポールまでの距離
を入力したセルになります。
未知数が5個ありますので最低三つの点のデータ((x,y)の組)が必要です。精度のいい計算にはまんべんなくできるだけ多くの点のデータを用意します。
ソルバーを実行するとこのような結果が得られました。
ひとまず結果は得られたのですが、ちょっとヘンなところがあります。
残差がけっこう大きいです。画像上の位置の読み取りは1ピクセルくらいは誤差があるでしょうが、2ピクセルも3ピクセルも違うということはないでしょう。上の結果を見るといちばん残差がおおきいところでは計算と実際は10ピクセルくらい違っています。
カメラは電子水準器を使いだいたい水平を保って写しています。計算結果の仰角はちょっと大きすぎるような気もします。
写真を見ると理由がわかります。理想的なレンズであれば現実世界の直線は画像上も直線になるはずなのですがそうなっていません。明らかに歪曲収差(樽型収差)が見られます。つまり収差が影響して意図した結果が得られていないようです。
次回は収差の影響を考慮した計算方法を考えます。
なおこの写真は広角に近いレンズでしかも収差補正をオフにしていますから大きな収差があってあたりまえなのですが、けっこう焦点距離の大きなレンズを使ってもこの程度の計算でもはっきりわかるほどの収差がありました。
計算に使用したExcelファイルは次の記事でダウンロードできるようにします。
(「デジカメで三角測量 (3)」に続く)
« デジカメで三角測量 (1) | トップページ | デジカメで三角測量 (3) »
「カメラとレンズ」カテゴリの記事
- (私の)デジカメ二十年史 (1)(2016.04.24)
- デジカメのこんにゃく現象の写し方・起こし方(2016.01.04)
- デジカメ PENTAX Q7 のセンサーサイズを実測してみた(2014.11.01)
- 星野写真の星像の明るさは何で決まるのか?(2014.10.28)
- ISO値の設定によるラティチュードの違い(2014.10.27)
この記事へのコメントは終了しました。
コメント