概要
画像による距離推定の研究を行っています。人間が距離を認識するメカニズムを日頃から考えていて、自分なりの意見をまとめたいと思います。Computer Visionの世界には、1フレームの画像で距離を推定する方法が2つあります。一つ目は、単眼の画像から距離を直接推定するMono Depthです。2つ目は、双眼の画像から視差を求めてから距離に変換する方法です。
Mono Depthとは?
どうして2次元の画像1枚から距離が求まるかというと、"私達の記憶による情報"と"地面がおおよそ平に伸びていて且つ重力により物体は地面に接地している"事により大凡な距離を推定する事が出来ます。まず記憶を使う事によって物体の大まかな3次元サイズを仮定すると2次元画像に写った時の大きさで物体の距離を推定出来ます。言い換えると遠くのものは小さく見え、近いものは大きく見えるという事です。他にも、以前通ったであれば物体の位置を3Dマップのように記憶しておくことで距離を推測する事が出来ます。さらに、地面はおおよそ平に伸びていて、平らな地面を仮定すると、自分の目の高さと物体が地面に付いている接地面への角度により距離を計算する事が出来ます。大きい人ほど、距離間隔に優れているかもしれません。Mobileyeというイスラエルの会社も地面により距離を求め車の安全装置として活用していました。
Stereo Depthとは?
Stereo Depthとは視差(左と右の眼に見える物体の位置のズレ)を求める事で、距離に変換する方法です。近くの物ほど視差が大きく、逆に遠い物ほど視差が小さくなります。Stereo Matchingと検索すると詳細な方法などが沢山見つかるかと思います。スバルのアイサイトは双眼のカメラを使っている事が有名で、恐らく視差を求める事で距離を推定し衝突回避などをしているかと思います。
人間はMono Depthを使ってるのか?Stereo Depthを使っているのか?
今までの研究や日常生活を通しての想定ですが、人間は両方の機能を上手く使い分けていると考えられます。その理由として、片目をつぶってもある程度、日常の動作を行う事が出来ます。という事は単眼で距離を推定するという機能があるという事。しかし、片目を瞑った状態で、何かぶら下がっている小さな物を下から人差し指で合わせようとすると、かなりズレます。一方、両目を開いた状態で同じ実験をすると、ほとんど正しい位置に人差し指を持ってくる事が出来るかと思います。細かいメカニズムは分かりませんが、単眼で推定した距離を双眼で補正しているのかと推察出来ます。
私が知る限りでは、Computer Visionの世界で単眼の情報と双眼の情報を組み合わせ距離を出すことに、未だあまり研究がされていません。単眼と両眼を合わせるという事が出来た時は、機会がより人間に一歩近づけるのではないかと考えています。そんな論文を見つけましたら、是非シェアしたいと思います。もし知っていれば教えて頂けると幸いです。