写真から高さが分かるのはなぜ? — 2枚の空中写真がつくる視差と、1枚では標高が出せない理由

,

写真から高さが分かるのはなぜ? — 2枚の空中写真がつくる視差と、1枚では標高が出せない理由

写真から高さが分かるのはなぜ? — 2枚の空中写真がつくる視差と、1枚では標高が出せない理由

1枚の写真には「どの方向に見えたか」しか記録されていません。距離も高さも入っていないのです。ところが撮る場所を少しずらして2枚撮ると、同じ地点の写る位置がわずかにずれます。このずれ(視差)の大きさが高さになります。人が両目で立体を感じるのと同じ原理です。

人の目と同じ原理

左右の目は約6〜7cm離れています。近くの物は左右の網膜で大きくずれて写り、遠い物はほとんどずれません。この「ずれの差」を脳が奥行きに変えています。

ずれを見分けられる限界を20秒角(1度の180分の1)とすると、基線6.5cmで立体を感じられる距離は

  • 0.065 m ÷ (20秒角をラジアンにした 9.7×10⁻⁵) ≒ 約670m

これより遠いと、両目で見ても平らに見えます。遠くの山なみが書割のように見えるのはこのためです。

基線を伸ばせば、遠くでも立体が測れる。空中写真測量は、この基線を数百mから1km級まで伸ばした「巨大な両目」です。

1枚では、なぜ高さが出ないのか

カメラは、レンズを通った光が画面上のどこに当たったかを記録します。記録されるのは方向だけで、その方向のどこまで遠いかは写っていません。同じ画素に、低い場所の近い点と高い場所の遠い点が同じように写ることがあります。

そのため、1枚の写真を地図に重ねられる形(オルソ画像)へ直すには、先に地形の高さ(数値標高モデル)が必要です。

欲しいもの 必要なもの
オルソ画像(歪みを直した1枚) 撮影時の位置姿勢 + 地形の高さ
地形の高さ 2枚以上の写真(または航空レーザ測量など)

「高さを知るには写真が2枚必要、1枚を正しく地図にするには高さが必要」という順序があります。だから写真測量は必ずステレオ(2枚組)から始まります。

2枚あると、どれだけの高さが読めるか

同じ点が2枚の写真に写る位置の差を視差、2点間の視差の違いを視差差と呼びます。撮影高度 H、写真上の基線長 b、視差差 Δp のとき、高低差 Δh は近似的に

Δh ≒ H × Δp ÷ b

計算例として、画面の一辺230mmの写真を、焦点距離150mm・撮影高度2000m・進行方向の重複60%で撮った場合を置きます。写真上の基線長は 230mm × (1−0.6) = 92mm です。

視差差 Δp 高低差 Δh
1.0 mm 21.7 m
0.1 mm 2.17 m
0.01 mm 0.217 m

視差を0.01mmまで読めれば、高さは約22cmまで分かります。撮影高度2000mに対して約1万分の1で、「高さの読み取り精度は撮影高度の1万分の1程度」という目安はここから出ています。

重複を増やすと、高さの精度は落ちる

写真の重複度を上げると、写真上の基線長 b が短くなります。基線が短いほど同じ高さの差が小さな視差差にしか現れないので、高さは読みにくくなります。

進行方向の重複 写真上の基線長 b 撮影基線長 B 基線高度比 B/H Δp=0.01mm のときの Δh
60% 92 mm 1,227 m 0.61 0.217 m
70% 69 mm 920 m 0.46 0.290 m
80% 46 mm 613 m 0.31 0.435 m

重複を増やすと、同じ地点が多くの写真に写るので対応点を見つけやすく・欠測しにくくなります。一方で高さの精度は下がる。ドローンで重複を8割以上とるのは前者を優先しているからで、高さを詰めたい区間では基線を稼ぐ設計が要ります。重複度は「安全」と「高さの精度」のトレードオフです。

その「高さ」は、何からの高さか

写真から出てくるのは、あくまでモデルの中の相対的な高さです。実寸・向き・位置を与えるのは地上の基準点(標定点)で、写真の高さの基準は、標定点に与えた高さの基準をそのまま引き継ぎます。

標定点の高さをどう測ったか 写真から出る高さ
水準点から水準測量で標高を持ってきた 標高(東京湾平均海面基準)
GNSSで測った値をそのまま使った 楕円体高。標高ではない
GNSSの値からジオイド高を引いた 標高

楕円体高・標高・ジオイド高の三角関係を断面図で表した学習図解

日本付近のジオイド高は30〜50m級です。標定点の高さを楕円体高のまま使うと、写真から出る地形の高さもまるごと数十mずれます。日本のどこでジオイド高がどれだけあるかは、GeoPrism JP(App Store)のジオイドマップで地図の上から確かめられます。

まとめ

  • 1枚の写真に入っているのは方向だけ。距離と高さは入っていない
  • 2枚を違う場所から撮ると視差が生まれ、視差差 Δp から高低差 Δh ≒ H×Δp÷b が読める
  • 計算例(H=2000m・重複60%・画面230mm)では、視差を0.01mm読めれば高さは約22cm。撮影高度の約1万分の1
  • 重複を増やすと基線が短くなり、高さの精度は落ちる。重複度は安全と高さ精度のトレードオフ
  • オルソ画像を作るには先に高さが必要で、高さを出すには2枚必要。だから写真測量はステレオから始まる
  • 写真から出る高さの基準は、標定点に与えた高さの基準を引き継ぐ。楕円体高のまま使うと数十mずれる
  • 人の目の基線は約6〜7cmで、立体視の限界は約670m。写真測量は基線を1km級に伸ばした両目

本記事の数値は、本文に書いた条件(画面230mm・焦点距離150mm・撮影高度2000m・重複60%など)での計算例です。実際のディジタル航空カメラは画面の大きさ・画素の大きさが機種ごとに違うため、同じ条件でも数値は変わります。

出典

  • 国土地理院「作業規程の準則について」 https://www.gsi.go.jp/gijyutukanri/gijyutukanri41018.html
  • 国土地理院技術資料 A・1-No.314「ディジタル空中写真測量(フィルム航空カメラ版)公共測量作業マニュアル(案)」 https://www.gsi.go.jp/common/000258816.pdf
  • 国土地理院「基盤地図情報 数値標高モデル」 https://www.gsi.go.jp/kiban/
  • 国土地理院「日本の測地系」(標高と東京湾平均海面) https://www.gsi.go.jp/sokuchikijun/datum-main.html

次に確認する


開発者より: アプリ・Kindle本・公開プロジェクトの一覧は GitHub: amru195704 にまとめています。


お願い
本記事の情報は参考目的で掲載しており、正確性・完全性を保証するものではありません。誤記・不正確な情報がございましたら、コメント欄よりご指摘いただければ、確認のうえ修正いたします。


コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

トップへ戻る