JP2018040789A - 画像距離算出装置、画像距離算出方法および画像距離算出用プログラム - Google Patents

画像距離算出装置、画像距離算出方法および画像距離算出用プログラム Download PDF

Info

Publication number
JP2018040789A
JP2018040789A JP2017158781A JP2017158781A JP2018040789A JP 2018040789 A JP2018040789 A JP 2018040789A JP 2017158781 A JP2017158781 A JP 2017158781A JP 2017158781 A JP2017158781 A JP 2017158781A JP 2018040789 A JP2018040789 A JP 2018040789A
Authority
JP
Japan
Prior art keywords
distance
pixel
image
pixels
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017158781A
Other languages
English (en)
Other versions
JP6750183B2 (ja
Inventor
嶐一 岡
Ryuichi Oka
嶐一 岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Aizu
Original Assignee
University of Aizu
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Aizu filed Critical University of Aizu
Priority to US15/752,892 priority Critical patent/US10803609B2/en
Priority to PCT/JP2017/030813 priority patent/WO2018043437A1/ja
Publication of JP2018040789A publication Critical patent/JP2018040789A/ja
Application granted granted Critical
Publication of JP6750183B2 publication Critical patent/JP6750183B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C3/00Measuring distances in line of sight; Optical rangefinders
    • G01C3/02Details
    • G01C3/06Use of electric means to obtain final indication
    • G01C3/08Use of electric radiation detectors
    • G01C3/085Use of electric radiation detectors with electronic parallax measurement
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C3/00Measuring distances in line of sight; Optical rangefinders
    • G01C3/10Measuring distances in line of sight; Optical rangefinders using a parallactic triangle with variable angles and a base of fixed length in the observation station, e.g. in the instrument
    • G01C3/14Measuring distances in line of sight; Optical rangefinders using a parallactic triangle with variable angles and a base of fixed length in the observation station, e.g. in the instrument with binocular observation at a single point, e.g. stereoscopic type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/16Spatio-temporal transformations, e.g. video cubism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/579Depth or shape recovery from multiple images from motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Electromagnetism (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Analysis (AREA)
  • Measurement Of Optical Distance (AREA)
  • Studio Devices (AREA)

Abstract

【課題】動画のフレーム画像の画素毎に、カメラから撮影対象物までの距離を算出する。【解決手段】画像距離算出方法では、カメラの動画映像よりフレーム画像を抽出し(S.1)、フレーム画像のx0点におけるy軸上の画素列の時間変化によりスライス画像を生成し(S.2)、スライス画像の画素とフレーム画像の画素との対応関係に基づいてスポッティング点を算出し(S.3)、バックトレース処理によりスライス画像の画素に対応するフレーム画像の画素を求め(S.4)、フレーム画像とスライス画像との領域分割を行い(S.5)、スライス画像の分割領域に対応するフレーム画像の対応領域を決定し(S.6)、フレーム画像の対応領域の画素数の平均qと、スライス画像の分割領域の画素数の平均pとにより、比率値を算出し、カメラから撮影対象物までの距離zを、予め定められた距離関数を用いて、対応領域毎に算出する(S.7)。【選択図】 図2

Description

本発明は、画像距離算出装置、画像距離算出方法および画像距離算出用プログラムに関し、より詳細には、移動する1台のカメラにより撮影された動画映像に基づいてフレーム画像を抽出し、抽出されたフレーム画像に写される撮影物までの距離を算出することが可能な画像距離算出装置、画像距離算出方法および画像距離算出用プログラムに関する。
従来より、同時に撮影された2つの画像に基づいてカメラ位置から撮影対象物までの距離を、視差を利用して算出するステレオビジョン法と呼ばれる方法が知られている(例えば、特許文献1、特許文献2参照)。ステレオビジョン法では、2つのカメラの左右方向の距離dを一定に保った状態で、2台のカメラを用いて同じ撮影対象物の撮影を同時に行う。2つのカメラによって撮影されたそれぞれの画像は、カメラ間の距離dだけ異なった位置で撮影されたものであるため、撮影対象物の撮影画像が微妙に異なったものになる。2枚の撮影画像の違いは、距離dに基づく視差の影響によるものである。従って、2枚の画像に写っている撮影対象物を比較し、左右方向における画素位置(ピクセル位置)の違いを、視差として求めることによって、次の式に基づいて、撮影対象物までの距離を算出することができる。
撮影対象物までの距離=(カメラの焦点距離×カメラ間距離d)÷視差(左右方向の画素(ピクセル)差)
カメラにより撮影された動画映像に基づいて、撮影対象物までの距離を求める場合も同様である。2台のカメラで撮影された動画映像より、同じタイミング(同じ時間)で撮影された1対のフレーム画像を抽出し、抽出された1対のフレーム画像に基づいて視差(左右方向の画素(ピクセル)差)を求める。そして、カメラ間(2つのフレーム画像をとらえたそれぞれのカメラの位置)の距離dと視差とを、上述した式に適用することによって、撮影対象物までの距離を、撮影時間毎に算出することができる。
特開2008−309519号公報 特開2009−139995号公報
しかしながら、上述したような2つの画像の視差を利用して撮影対象物までの距離を算出する方法では、2つの画像における撮影対象物の画素差(ピクセル差)を求める必要がある。つまり、2つの画像における同一撮影対象物の対応関係を画素レベルで画素毎に求める必要があり、その違いを画素差(ピクセル差)として明確にする必要がある。しかしながら、2つの画像における画素(ピクセル)毎の対応関係を求めることは、容易ではない。具体的には、2つの撮影画像における同一撮影対象物のマッチングおよび画素特定を行う必要がある。このようなマッチングおよび画素特定を実現するためには、様々な画像処理技術を利用・応用する必要があった。
また、撮影された2つの画像を比較すると、遠くの撮影対象物は撮影画像間の画素差(ピクセル差)が小さくなり、近くの撮影対象物では画素差(ピクセル差)が大きくなる。しかしながら、2つのカメラ間の距離が人間の左右の目の間隔程度の場合には、遠くの画素差(ピクセル差)と近くの画素差(ピクセル差)との差が、数画素程度(例えば、遠くで1ピクセル差、近くで4ピクセル差程度)しか生じない。このため、遠くと近くとの距離の算出精度が、4段階程度の違いしか求められなくなってしまい、距離の算出精度を十分に確保することが難しいという問題があった。
また、カメラ間の距離dを長くすることによって、画素差(ピクセル差)を大きくすることもできるが、2台のカメラで同時に同一の撮影対象物を撮影することを考慮すると、カメラ間距離dにある程度制約が生じてしまい、長大な距離を確保することが難しいという問題があった。また、カメラ間の距離dが広がると、異なる2つの画像における同一対象物の位置や形が画像上で変化するため、同一対象物の画素レベルでのマッチングが困難になるという問題があった。カメラ間の距離dを長くすることは、ステレオビジョンにおいて長い間、解決すべき課題とされてきた。この解決が困難のため、現在では、1つの対象に対して、ステレオカメラによる撮影を、数十回から数万回行っている。
さらに、2台のカメラを用いて同一撮影対象物を撮影する必要があるため、1台のカメラを用いて撮影を行う一般的な撮影条件に比べて、様々な制約が生じることになり、撮影負担が重いという問題があった。
本発明は、上記問題に鑑みてなされたものであり、1台のカメラにより撮影された動画映像に基づいて、カメラから映像に写された撮影対象物までの距離を算出することが可能な画像距離算出装置、画像距離算出方法および画像距離算出用プログラムを提供することを課題とする。
上記課題を解決するために、本発明に係る画像距離算出装置は、移動する1台のカメラにより撮影された動画映像に基づいて、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出手段と、該フレーム画像において、前記カメラの移動方向に向かって延設される軸をx軸とし、当該x軸に直交する軸をy軸として、前記x軸のx0点におけるy軸上の画素列の時間変化を、時間t0+1から時間t0+Tまで抽出することにより、縦軸を前記y軸、横軸をt軸(1≦t≦T)とするスライス画像を生成するスライス画像生成手段と、時間t(1≦t≦T)における前記スライス画像の画素をg(t,y)とし、前記フレーム画像のy軸上のy′点(1≦y′≦Y)における時間t0のときのxyt空間の画素をf(x,y′,t0)=r(x)として、xの区間[1,X]の任意の点において存在する、スライス画像の画素g(t,y)に対応するフレーム画像の画素r(x)点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Tの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出手段と、該スポッティング点算出手段により算出されたスポッティング点に基づいて、時間t=Tから時間t=1までバックトレース処理を行うことにより、前記スライス画像のt軸におけるt=1からt=Tまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求める画素マッチング手段と、前記フレーム画像と前記スライス画像とのそれぞれの画像に対して、mean-shift法を適用することにより、共通した分割基準に基づいて、それぞれの画像の領域分割を行う領域分割手段と、該領域分割手段により分割された前記スライス画像の分割領域内に存在する画素に基づいて、前記画素マッチング手段により求められた前記スライス画像の画素に対応する前記フレーム画像の画素を検出し、検出された前記フレーム画像の画素が最も多く含まれる前記フレーム画像の分割領域を求めることによって、前記スライス画像の分割領域に対応する前記フレーム画像の分割領域を対応領域として決定する対応領域決定手段と、該対応領域決定手段により決定された前記フレーム画像の対応領域において、前記x軸方向の画素数の平均qを検出すると共に、対応する前記スライス画像の分割領域において、前記t軸方向の画素数の平均pを検出することによって、pに対するqの割合あるいはqに対するpの割合に基づいて求められる比率値(移動するカメラによる累積モーションパララックスの領域毎の典型特徴量)を、前記対応領域毎に算出し、前記カメラから前記フレーム画像に写っている撮影対象物までの距離と前記比率値との対応関係が予め定められた距離関数によって、算出された前記比率値に対応する前記距離を、グローバル距離として前記対応領域毎に算出するグローバル距離算出手段とを有することを特徴とする。
また、本発明に係る画像距離算出方法は、移動する1台のカメラにより撮影された動画映像に基づいて、フレーム画像抽出手段が、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出ステップと、該フレーム画像において、前記カメラの移動方向に向かって延設される軸をx軸とし、当該x軸に直交する軸をy軸として、前記x軸のx0点におけるy軸上の画素列の時間変化を、時間t0+1から時間t0+Tまで抽出することにより、スライス画像生成手段が、縦軸を前記y軸、横軸をt軸(1≦t≦T)とするスライス画像を生成するスライス画像生成ステップと、時間t(1≦t≦T)における前記スライス画像の画素をg(t,y)とし、前記フレーム画像のy軸上のy′点(1≦y′≦Y)における時間t0のときのxyt空間の画素をf(x,y′,t0)=r(x)として、xの区間[1,X]の任意の点において存在する、スライス画像の画素g(t,y)に対応するフレーム画像の画素r(x)点を、動的計画法に基づくマッチング処理を用いて求めることにより、スポッティング点算出手段が、前記スライス画像における時間Tの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出ステップと、該スポッティング点算出ステップにおいて算出されたスポッティング点に基づいて、時間t=Tから時間t=1までバックトレース処理を行うことにより、画素マッチング手段が、前記スライス画像のt軸におけるt=1からt=Tまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求める画素マッチングステップと、前記フレーム画像と前記スライス画像とのそれぞれの画像に対して、mean-shift法を適用することにより、領域分割手段が、共通した分割基準に基づいて、それぞれの画像の領域分割を行う領域分割ステップと、該領域分割ステップにおいて分割された前記スライス画像の分割領域内に存在する画素に基づいて、前記画素マッチングステップにおいて求められた前記スライス画像の画素に対応する前記フレーム画像の画素を検出し、検出された前記フレーム画像の画素が最も多く含まれる前記フレーム画像の分割領域を求めることによって、対応領域決定手段が、前記スライス画像の分割領域に対応する前記フレーム画像の分割領域を対応領域として決定する対応領域決定ステップと、該対応領域決定ステップによって決定された前記フレーム画像の対応領域において、前記x軸方向の画素数の平均qを検出すると共に、対応する前記スライス画像の分割領域において、前記t軸方向の画素数の平均pを検出することによって、pに対するqの割合あるいはqに対するpの割合に基づいて求められる比率値を、前記対応領域毎に算出し、前記カメラから前記フレーム画像に写っている撮影対象物までの距離と前記比率値との対応関係が予め定められた距離関数を用いることによって、グローバル距離算出手段が、算出された前記比率値に対応する前記距離を、グローバル距離として前記対応領域毎に算出するグローバル距離算出ステップとを有することを特徴とする。
さらに、本発明に係る画像距離算出用プログラムは、移動する1台のカメラにより撮影された動画映像に基づいて、カメラから動画映像に記録された撮影対象物までの距離を算出する画像距離算出装置の画像距離算出用プログラムであって、前記画像距離算出装置の制御手段に、前記動画映像の任意の時間におけるフレーム画像を抽出させるフレーム画像抽出機能と、該フレーム画像において、前記カメラの移動方向に向かって延設される軸をx軸とし、当該x軸に直交する軸をy軸として、前記x軸のx0点におけるy軸上の画素列の時間変化を、時間t0+1から時間t0+Tまで抽出することにより、縦軸を前記y軸、横軸をt軸(1≦t≦T)とするスライス画像を生成させるスライス画像生成機能と、時間t(1≦t≦T)における前記スライス画像の画素をg(t,y)とし、前記フレーム画像のy軸上のy′点(1≦y′≦Y)における時間t0のときのxyt空間の画素をf(x,y′,t0)=r(x)として、xの区間[1,X]の任意の点において存在する、スライス画像の画素g(t,y)に対応するフレーム画像の画素r(x)点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Tの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出させるスポッティング点算出機能と、該スポッティング点算出機能により算出されたスポッティング点に基づいて、時間t=Tから時間t=1までバックトレース処理を行うことにより、前記スライス画像のt軸におけるt=1からt=Tまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求めさせる画素マッチング機能と、前記フレーム画像と前記スライス画像とのそれぞれの画像に対して、mean-shift法を適用することにより、共通した分割基準に基づいて、それぞれの画像の領域分割を行わせる領域分割機能と、該領域分割機能により分割された前記スライス画像の分割領域内に存在する画素に基づいて、前記画素マッチング機能により求められた前記スライス画像の画素に対応する前記フレーム画像の画素を検出し、検出された前記フレーム画像の画素が最も多く含まれる前記フレーム画像の分割領域を求めることによって、前記スライス画像の分割領域に対応する前記フレーム画像の分割領域を対応領域として決定させる対応領域決定機能と、該対応領域決定機能によって決定された前記フレーム画像の対応領域において、前記x軸方向の画素数の平均qを検出すると共に、対応する前記スライス画像の分割領域において、前記t軸方向の画素数の平均pを検出することによって、pに対するqの割合あるいはqに対するpの割合に基づいて求められる比率値を、前記対応領域毎に算出させ、前記カメラから前記フレーム画像に写っている撮影対象物までの距離と前記比率値との対応関係が予め定められた距離関数を用いることによって、算出された前記比率値に対応する前記距離を、グローバル距離として前記対応領域毎に算出させるグローバル距離算出機能とを実現させるためのプログラムであることを特徴とする。
本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、フレーム画像のx0点におけるy軸上の画素列の時間変化を、時間t0+1から時間t0+Tまで抽出することにより、スライス画像が生成される。このスライス画像は、移動する1台のカメラにより撮影された動画映像に基づいて生成される。このため、スライス画像には、カメラの移動に伴って移動する撮影対象物が、移動速度に応じて圧縮された状態で記録されることになる。その理由は、単位時間毎に、スライス画像におけるy軸の線データが1つずつt軸方向に進行するのに対し、その線画像において、近くのものは、遠くのものに比べ早く動いたものがとらえられるためである。これは動的視差(モーションパララックス(motion parallax))の性質そのものを反映している。つまり、動画映像において、撮影対象物の移動速度は、遠くのものに比べて近くのものの方が早く動くようになる。従って、近くの撮影対象物は圧縮された状態でスライス画像に記録され、より遠くの撮影対象物はより圧縮されていない状態で記録されることになる。つまり、カメラから撮影対象物までの距離の違いによってスライス画像に記録される画像の圧縮状態が異なることになる。このことから、カメラの移動に伴って生じ得る動的視差の系列が、スライス画像において時系列的に、つまり、累積的に、画像の圧縮状態となって記録されていると判断することができる。このことを、累積された動的視差(累積モーションパララックス、Accumulated Motion Parallax:AMP)と称する。
本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、動的視差が画像の累積的な圧縮状態として記録されたスライス画像と、動的視差が記録されていない動画映像の1つのフレーム画像との対応関係を求めることによって、スライス画像の各画素に対応するフレーム画像の各画素の位置に基づいて、カメラから該当する画素に写っている撮影対象物までの距離を、フレーム画像において算出することが可能になる。
ここで、スライス画像の画素とフレーム画像の画素との対応関係は、必ずしも線形対応になるとは限らず、非線形に対応する可能性が高い。その理由は、フレーム画像には、カメラから撮影対象物までの距離が異なる様々な物体が写っているため、スライス画像において対応する画素(ピクセル)の圧縮の程度が異なるためである。このため、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、非線形性となる対応関係を求めるための方法として広く知られている動的計画法を用いる。具体的には、スポッティング機能を備えるDP(dynamic programming)マッチング処理によって、スライス画像の最後の時間t=Tの画素に対応するフレーム画像のスポッティング点を求めた後に、スポッティング点に基づいて時間t=Tから時間t=1まで、スライス画像とフレーム画像との各画素の対応関係をバックトレース処理により求める。この処理によって、非線形性を備えるフレーム画像の画素とスライス画像の画素との対応関係を求めることが可能になる。なお、スポッティング機能を備えるDPとは、スライス画像の画素g(T,y)に対応するフレーム画像の画素r(x)点が、区間[1,X]の任意の点に存在することを許容した上で、DP(dynamic programming)マッチング処理を行う動的計画法を意味している。
さらに、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、フレーム画像とスライス画像とのそれぞれの画像に対して、mean-shift法を適用することにより、それぞれの画像に対して共通した分割基準を用いて、それぞれの画像の領域分割を行う。ここで、mean-shift法とは、画像の領域分割を行う方法として広く知られた手法である。フレーム画像とスライス画像とは、カメラにより撮影された動画映像に基づいて作成されているため、フレーム画像に写される映像とスライス画像に写される映像とには、共通した撮影対象物が記録されることになる。このため、フレーム画像とスライス画像とのそれぞれの画像に対して、共通した分割基準に基づいてmean-shift法を適用することにより、それぞれ共通した領域を分割対象として領域分割を行うことが可能になる。例えば、スライス画像のある領域とフレーム画像のある領域が対応している場合に、カメラが横方向に動くと、その領域における累積された動的視差(累積モーションパララックス)の特徴が、領域の横方向の線分の長さの比として、定量的に現れることになる。
そして、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、領域分割処理によって分割されたスライス画像の分割領域内に存在する画素に基づいて、DPマッチング処理およびバックトレース処理によって求められたフレーム画像の対応する画素を検出する。そして、画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、検出された、フレーム画像の画素とスライス画像の画素との対応数が最も多いものを、対応する分割領域と定めることができる。このようにして、スライス画像の分割領域に対応するフレーム画像の分割領域を対応領域として決定する処理を行う。動的計画法に基づいて求められたフレーム画像の画素とスライス画像の画素との対応関係を利用することによって、スライス画像における分割領域とフレーム画像における分割領域との対応関係を求めることが可能になる。
ここで、既に説明したように、スライス画像には、撮影対象物が動的視差に伴って圧縮された状態で記録されている。このため、スライス画像の分割領域の領域幅(領域の横線分の平均などで抽出される)と、この分割領域に対応するフレーム画像の対応領域の領域幅(領域の横線分の平均などで抽出される)とを、カメラの移動方向(x軸方向)を基準として比較すると、比較的近くの撮影対象物が写っているスライス画像の分割領域の領域幅(領域内のカメラ移動方向の画素数)は、フレーム画像の対応領域の領域幅(領域内のカメラ移動方向の画素数)よりも、領域幅が短くなる。一方で、比較的遠くの撮影対象物が写っているスライス画像の分割領域の領域幅(領域内のカメラ移動方向の画素数)は、フレーム画像の対応領域の領域幅(領域内のカメラ移動方向の画素数)と比較して、領域幅があまり変わらない。
このため、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、フレーム画像の対応領域において、カメラの移動方向(x軸方向)の画素数の平均qを検出すると共に、対応するスライス画像の分割領域において、t軸方向の画素数の平均pを検出することによって、pに対するqの割合あるいはqに対するpの割合に基づいて求められる比率値を、対応領域毎に算出する。そして、カメラから撮影対象物までの距離と比率値との対応関係が予め定められた距離関数を用いることによって、算出された比率値に対応する、カメラから撮影対象物までの距離を、対応領域毎に算出する。
このようにして対応する領域毎に、カメラから撮影対象物までの距離を算出することによって、フレーム画像の対応領域(分割領域)毎に、カメラから撮影対象物までの距離を求めることが可能になる。特に、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、1台のカメラで撮影された動画映像に基づいて、フレーム画像の対応領域(分割領域)毎の距離を算出することが可能になる。このため、従来のステレオビジョン法のように、カメラ間の間隔dを一定に維持した2台のカメラを用いて撮影する場合に比べて、撮影機器の簡素化と撮影負担の低減を図ることが可能になる。
また1台のカメラによって撮影された動画映像に基づいて、フレーム画像の対応領域(分割領域)毎の距離を算出することができるため、例えば、過去に撮影された動画映像や、他の目的で撮影が行われた動画映像等のような、様々な動画映像に基づいて、その動画映像が映された撮影状況・撮影環境における撮影対象物までの距離を算出することが可能になる。
また、前述した領域毎の距離算出に加えて、上述した画像距離算出装置は、前記スライス画像の分割領域内における前記t軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記x軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、前記スライス画像の分割領域内の各画素に対応する画素を、前記フレーム画像の前記対応領域内の画素として求め、求められた前記フレーム画像の前記対応領域内における前記x軸方向の画素の間隔に基づいて、当該対応領域内の画素毎の相対的な距離を、ローカル距離として算出するローカル距離算出手段と、該ローカル距離算出手段により算出された、前記フレーム画像の画素毎のローカル距離に、前記グローバル距離算出手段により算出された、前記フレーム画像の前記対応領域毎のグローバル距離を加算することによって、前記カメラから前記撮影対象物までの詳細な距離を、前記フレーム画像の画素毎に算出する詳細距離算出手段とを有するものであってもよい。
さらに、前述した領域毎の距離算出に加えて、上述した画像距離算出方法は、前記スライス画像の分割領域内における前記t軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記x軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、前記スライス画像の分割領域内の各画素に対応する画素を、前記フレーム画像の前記対応領域内の画素として求め、求められた前記フレーム画像の前記対応領域内における前記x軸方向の画素の間隔に基づいて、ローカル距離算出手段が、当該対応領域内の画素毎の相対的な距離を、ローカル距離として算出するローカル距離算出ステップと、該ローカル距離算出ステップにおいて算出された、前記フレーム画像の画素毎のローカル距離に、前記グローバル距離算出ステップにおいて算出された、前記フレーム画像の前記対応領域毎のグローバル距離を加算することによって、詳細距離算出手段が、前記カメラから前記撮影対象物までの詳細な距離を、前記フレーム画像の画素毎に算出する詳細距離算出ステップとを有するものであってもよい。
また、前述した領域毎の距離算出に加えて、上述した画像距離算出用プログラムは、前記制御手段に、前記スライス画像の分割領域内における前記t軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記x軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、前記スライス画像の分割領域内の各画素に対応する画素を、前記フレーム画像の前記対応領域内の画素として求めさせ、求められた前記フレーム画像の前記対応領域内における前記x軸方向の画素の間隔に基づいて、当該対応領域内の画素毎の相対的な距離を、ローカル距離として算出させるローカル距離算出機能と、該ローカル距離算出機能により算出された、前記フレーム画像の画素毎のローカル距離に、前記グローバル距離算出機能により算出された、前記フレーム画像の前記対応領域毎のグローバル距離を加算することによって、前記カメラから前記撮影対象物までの詳細な距離を、前記フレーム画像の画素毎に算出させる詳細距離算出機能とを実現させるためのプログラムであってもよい。
本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、フレーム画像とスライス画像との対応する分割領域内において、スライス画像の分割領域内の始端の境界から終端の境界までの画素と、フレーム画像の対応領域内の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求める。
既に説明したように、カメラから撮影対象物までの距離の違いによってスライス画像に記録される画像の圧縮状態が異なるため、対応する分割領域内で、スライス画像の画素に対応するフレーム画像の画素を求めると、フレーム画像の隣接する画素の間隔が、カメラから撮影対象物までの距離の違いによって異なったものになる。ここで重要なことは、この状態が、フレーム画像において静的に表現されていることである。また、ここでフレーム画像上の、スライス画像の画素との、対応点は、動的視差(モーションパララックス,ステレオビジョンでの視差に対応)の累積点を静的に表現していることである。これにより、ステレオビジョンでは通常用いることができない累積点を、利用することが可能になる。ステレオビジョンでは、対象物の1点に対応する点を、2つの画像中見つけることを特徴とするのに対し、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、対象物の1点を基準として、フレーム画像上で横方向に近接する各点の動的視差を、動的計画法によって最適に累積することを特徴とする。このため、本発明に係る累積された動的視差は、「フレーム画像上で横方向に近接する点の集まり」に対応するものとなっている。したがって、累積された動的視差に基づいて求まる距離は、この累積に関与した「フレーム画像上の対応する物体の点の集まり(系列)」に対応するものである。「動的視差の累積を求める方法」を用いることによって、ステレオビジョンでは困難であった、カメラ間距離を大きくするという問題が別の観点により解決される。その後、累積された動的視差に関与する系列の区間に対応した、カメラから物体までの距離が計算される。
また、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムは、1台のカメラの移動により撮影された動画映像に基づいて、グローバル距離を求めることを特徴とする。このため、ステレオビジョンのように、2台のカメラ間距離(ベースラインと通常呼ばれる)が一定であるという前提は必要としない。従って、累積された動的視差に基づく距離関数の導出においては、固定されていないベースラインの累積が考慮されている。
具体的には、カメラから撮影対象物までの距離が遠い場合には、フレーム画像において求められた対応する画素(バックトレース処理で定まる画素)の間隔が狭くなり、カメラから撮影対象物までの距離が近い場合には、フレーム画像において求められた対応する画素の間隔が広くなる。つまり、動的視差の違いに応じてスライス画像の圧縮状態が異なるため、視差の違いが比較的小さい場合、つまり、カメラから撮影対象物までの距離の遠い場合には、フレーム画像の隣接する画素の間隔が近くなり、視差の違いが比較的大きい場合、つまり、カメラから撮影対象物までの距離が近い場合には、フレーム画像の隣接する画素の間隔が広くなる。上述のように、これらの状態が静止的に一覧できるため、距離の算出に利用できる。
従って、フレーム画像の分割領域毎に、対応する分割領域のスライス画像の画素との対応関係を求めて、隣接する画素間の間隔を検出することによって、分割領域内における撮影対象物からカメラまでの相対的な距離を求めることが可能になる。
このため、既に求められている対応領域毎のカメラから撮影対象物までの距離(グローバル距離)と、該当する対応領域における相対的な距離(ローカル距離)とを足し合わせる(加算する)ことによって、カメラから撮影対象物の領域内の画素についても距離を画素毎に求めることが可能になる。
また、上述した画像距離算出装置は、前記スライス画像の分割領域内における前記t軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記x軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、前記スライス画像の分割領域内の各画素に対応する、前記フレーム画像の前記対応領域内の前記x軸方向の画素を、x(1),x(2),・・・,x(i),・・・,x(G−1),x(G)(1≦i≦G)として求め、前記フレーム画像の前記対応領域内における前記x軸方向の始端の境界から終端の境界までの画素数の平均をxaとし、前記フレーム画像の前記対応領域内における前記画素x(i)と、前記バックトレース処理により求められて前記画素x(i)に近接する画素x(i−1)との距離を、x(i)−x(i−1)とし、前記グローバル距離算出手段により算出された前記対応領域のグローバル距離を距離zgとし、当該フレーム画像の画素x(i)における撮影対象物から前記カメラまでの詳細な距離を距離z(i)として、当該距離z(i)を、正の定数βを用いて、z(i)=zg+β(x(i)−x(i−1)−xa/G)により算出する詳細距離算出手段を有するものであってもよい。
さらに、上述した画像距離算出方法は、前記スライス画像の分割領域内における前記t軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記x軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、詳細距離算出手段が、前記スライス画像の分割領域内の各画素に対応する、前記フレーム画像の前記対応領域内の前記x軸方向の画素を、x(1),x(2),・・・,x(i),・・・,x(G−1),x(G)(1≦i≦G)として求め、前記フレーム画像の前記対応領域内における前記x軸方向の始端の境界から終端の境界までの画素数の平均をxaとし、前記フレーム画像の前記対応領域内における前記画素x(i)と、前記バックトレース処理により求められて前記画素x(i)に近接する画素x(i−1)との距離をx(i)−x(i−1)とし、前記グローバル距離算出ステップにおいて算出された前記対応領域のグローバル距離を距離zgとし、当該フレーム画像の画素x(i)における撮影対象物から前記カメラまでの詳細な距離を距離z(i)として、当該距離z(i)を、正の定数βを用いて、z(i)=zg+β(x(i)−x(i−1)−xa/G)により算出する詳細距離算出ステップを有するものであってもよい。
また、上述した画像距離算出用プログラムは、前記制御手段に、前記スライス画像の分割領域内における前記t軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記x軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、前記スライス画像の分割領域内の各画素に対応する、前記フレーム画像の前記対応領域内の前記x軸方向の画素を、x(1),x(2),・・・,x(i),・・・,x(G−1),x(G)(1≦i≦G)として求めさせ、前記フレーム画像の前記対応領域内における前記x軸方向の始端の境界から終端の境界までの画素数の平均をxaとし、前記フレーム画像の前記対応領域内における前記画素x(i)と、前記バックトレース処理により求められて前記画素x(i)に近接する画素x(i−1)との距離をx(i)−x(i−1)とし、前記グローバル距離算出機能により算出された前記対応領域のグローバル距離を距離zgとし、当該フレーム画像の画素x(i)における撮影対象物から前記カメラまでの詳細な距離を距離z(i)として、当該距離z(i)を、正の定数βを用いて、z(i)=zg+β(x(i)−x(i−1)−xa/G)により算出させる詳細距離算出機能を実現させるためのプログラムであってもよい。
本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求められる、フレーム画像の対応領域内のx軸方向の画素を、x(1),x(2),・・・,x(i),・・・,x(G−1),x(G)(1≦i≦G)として求める。また、フレーム画像の対応領域内におけるx軸方向の始端の境界から終端の境界までの画素数の平均をxaとし、対応領域内における画素x(i)と近接する画素x(i−1)との距離をx(i)−x(i−1)とし、対応領域のグローバル距離を距離zgとする。そして、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、フレーム画像の画素x(i)における撮影対象物からカメラまでの詳細な距離z(i)を、正の定数βを用いて、z(i)=zg+β(x(i)−x(i−1)−xa/G)により算出する。
ここで、対応領域におけるグローバル距離zgは、対応領域における平均的な距離であると考えられる。この平均的な距離zgは、近接する画素x(i)と画素x(i−1)との値の集合における平均的な区間画素長に対応するものと考えられる。近接する2つの画素間の平均的な区間画素長は、対応領域内におけるx軸方向の始端の境界から終端の境界までの画素数の平均を示すxaを、対応する画素数Gで除算した値となる。
このことから、対応領域内のx(i)の画素位置において、x(i)の画素位置からx(i−1)の画素位置までの2点間の画素長(距離)が、平均的な2点間の画素長よりも長い場合、すなわち、x(i)−x(i−1)が、xa/Gより大きい(x(i)−x(i−1)−xa/G>0)場合には、点x(i)における距離z(i)が、対応領域における平均的な距離zgよりも手前側(カメラに近い位置)の撮影対象物を写した画素に該当すると考えることができる。
一方で、対応領域内のx(i)の画素位置において、x(i)の画素位置からx(i−1)の画素位置までの2点間の画素長が、平均的な2点間の画素長よりも短い場合、すなわち、x(i)−x(i−1)が、xa/Gよりより小さい(x(i)−x(i−1)−xa/G<0)場合には、点x(i)における距離z(i)が、対応領域における平均的な距離zgよりも奥側(カメラから遠い位置)の撮影対象物を写した画素に該当すると考えることができる。
従って、対応領域における平均的な距離である距離zgに対して、対応領域における相対的な距離を示すβ(x(i)−x(i−1)−xa/G)(これをローカル距離と呼ぶ)を加算することによって、フレーム画像のx(i)の画素位置における撮影対象物からカメラまでの詳細な距離z(i)を、求めることが可能になる。
また、本発明に係る画像距離算出装置は、移動する1台のカメラにより撮影された動画映像に基づいて、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出手段と、該フレーム画像において、前記カメラの移動方向に向かって延設される軸をx軸とし、当該x軸に直交する軸をy軸として、前記x軸のx0点におけるy軸上の画素列の時間変化を、時間t0+1から時間t0+Tまで抽出することにより、縦軸を前記y軸、横軸をt軸(1≦t≦T)とするスライス画像(ここではスライス画像のみについての時間表記をtと表現しているが、t=1は時間t0+1に対応し、t=Tは時間t0+Tに物理的に対応する)を生成するスライス画像生成手段と、時間t(1≦t≦T)における前記スライス画像の画素をg(t,y)とし、前記フレーム画像のy軸上のy′点(1≦y′≦Y)における時間t0のときのxyt空間の画素をf(x,y′,t0)=r(x)として、xの区間[1,X]の任意の点において存在する、スライス画像の画素g(t,y)に対応するフレーム画像の画素r(x)点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Tの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出手段と、該スポッティング点算出手段により算出されたスポッティング点に基づいて、時間t=Tから時間t=1までバックトレース処理を行うことにより、前記スライス画像のt軸におけるt=1からt=Tまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求める画素マッチング手段と、該画素マッチング手段により求められた時間tにおける前記フレーム画像の前記x軸方向の画素をx(t)とし、時間t0における前記フレーム画像の前記x軸方向の画素をx(t0)として、前記フレーム画像における前記画素x(t)から前記画素x(t0)を減算することにより求められる当該2つの画素間の距離を、累積された動的視差α(t,t0)とし、前記フレーム画像の前記画素x(t)における撮影対象物から前記カメラまでの距離をグローバル距離zgとし、前記累積された動的視差α(t,t0)の設定範囲を、定数μおよび定数γを用いて、μ≦α(t,t0)≦γとし、前記グローバル距離zgの設定範囲を、定数zN1および定数zL1を用いて、zN1≦zg≦zL1として、係数aを、a=zL1・exp((μ/(γ−μ))log(zL1/zN1)により算出し、係数bを、b=(1/(γ−μ))log(zL1/zN1)により算出することにより、前記画素x(t)における前記グローバル距離zgを、前記累積された動的視差α(t,t0)と、前記係数aおよび前記係数bとを用いて、zg=a・exp(−b・α(t,t0))により算出するグローバル距離算出手段とを有することを特徴とする。
さらに、本発明に係る画像距離算出方法は、移動する1台のカメラにより撮影された動画映像に基づいて、フレーム画像抽出手段が、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出ステップと、該フレーム画像において、前記カメラの移動方向に向かって延設される軸をx軸とし、当該x軸に直交する軸をy軸として、前記x軸のx0点におけるy軸上の画素列の時間変化を、時間t0+1から時間t0+Tまで抽出することにより、スライス画像生成手段が、縦軸を前記y軸、横軸をt軸(1≦t≦T)とするスライス画像を生成するスライス画像生成ステップと、時間t(1≦t≦T)における前記スライス画像の画素をg(t,y)とし、前記フレーム画像のy軸上のy′点(1≦y′≦Y)における時間t0のときのxyt空間の画素をf(x,y′,t0)=r(x)として、xの区間[1,X]の任意の点において存在する、スライス画像の画素g(t,y)に対応するフレーム画像の画素r(x)点を、動的計画法に基づくマッチング処理を用いて求めることにより、スポッティング点算出手段が、前記スライス画像における時間Tの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出ステップと、該スポッティング点算出ステップにおいて算出されたスポッティング点に基づいて、時間t=Tから時間t=1までバックトレース処理を行うことにより、画素マッチング手段が、前記スライス画像のt軸におけるt=1からt=Tまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求める画素マッチングステップと、該画素マッチングステップにおいて求められた時間tにおける前記フレーム画像の前記x軸方向の画素をx(t)とし、時間t0における前記フレーム画像の前記x軸方向の画素をx(t0)として、前記フレーム画像における前記画素x(t)から前記画素x(t0)を減算することにより求められる当該2つの画素間の距離を、累積された動的視差α(t,t0)とし、前記フレーム画像の前記画素x(t)における撮影対象物から前記カメラまでの距離をグローバル距離zgとし、前記累積された動的視差α(t,t0)の設定範囲を、定数μおよび定数γを用いて、μ≦α(t,t0)≦γとし、前記グローバル距離zgの設定範囲を、定数zN1および定数zL1を用いて、zN1≦zg≦zL1として、グローバル距離算出手段が、係数aを、a=zL1・exp((μ/(γ−μ))log(zL1/zN1)により算出し、係数bを、b=(1/(γ−μ))log(zL1/zN1)により算出することにより、前記画素x(t)における前記グローバル距離zgを、前記累積された動的視差α(t,t0)と、前記係数aおよび前記係数bとを用いて、zg=a・exp(−b・α(t,t0))により算出するグローバル距離算出ステップとを有することを特徴とする。
また、本発明に係る画像距離算出用プログラムは、移動する1台のカメラにより撮影された動画映像に基づいて、カメラから動画映像に記録された撮影対象物までの距離を算出する画像距離算出装置の画像距離算出用プログラムであって、前記画像距離算出装置の制御手段に、前記動画映像の任意の時間におけるフレーム画像を抽出させるフレーム画像抽出機能と、該フレーム画像において、前記カメラの移動方向に向かって延設される軸をx軸とし、当該x軸に直交する軸をy軸として、前記x軸のx0点におけるy軸上の画素列の時間変化を、時間t0+1から時間t0+Tまで抽出することにより、縦軸を前記y軸、横軸をt軸(1≦t≦T)とするスライス画像を生成させるスライス画像生成機能と、時間t(1≦t≦T)における前記スライス画像の画素をg(t,y)とし、前記フレーム画像のy軸上のy′点(1≦y′≦Y)における時間t0のときのxyt空間の画素をf(x,y′,t0)=r(x)として、xの区間[1,X]の任意の点において存在する、スライス画像の画素g(t,y)に対応するフレーム画像の画素r(x)点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Tの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出させるスポッティング点算出機能と、該スポッティング点算出機能により算出されたスポッティング点に基づいて、時間t=Tから時間t=1までバックトレース処理を行うことにより、前記スライス画像のt軸におけるt=1からt=Tまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求めさせる画素マッチング機能と、該画素マッチング機能により求められた時間tにおける前記フレーム画像の前記x軸方向の画素をx(t)とし、時間t0における前記フレーム画像の前記x軸方向の画素をx(t0)として、前記フレーム画像における前記画素x(t)から前記画素x(t0)を減算することにより求められる当該2つの画素間の距離を、累積された動的視差α(t,t0)とし、前記フレーム画像の前記画素x(t)における撮影対象物から前記カメラまでの距離をグローバル距離zgとし、前記累積された動的視差α(t,t0)の設定範囲を、定数μおよび定数γを用いて、μ≦α(t,t0)≦γとし、前記グローバル距離zgの設定範囲を、定数zN1および定数zL1を用いて、zN1≦zg≦zL1として、係数aを、a=zL1・exp((μ/(γ−μ))log(zL1/zN1)により算出させ、係数bを、b=(1/(γ−μ))log(zL1/zN1)により算出させることにより、前記画素x(t)における前記グローバル距離zgを、前記累積された動的視差α(t,t0)と、前記係数aおよび前記係数bとを用いて、zg=a・exp(−b・α(t,t0))により算出させるグローバル距離算出機能とを実現させるためのプログラムであることを特徴とする。
上述した画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、mean-shift法を用いて領域分割が行われた領域毎に、カメラから撮影対象物までの距離を示すグローバル距離を算出する場合について説明した。具体的には、まず、スライス画像の一の領域の横軸方向の平均長をpとし、フレーム画像の対応する領域の横軸方向の平均長をqとして、スライス画像に対するフレーム画像の拡大率(q/p)を求める。この拡大率(q/p)の値を距離関数に代入することによって、領域の距離値が定まる。
このため、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、画素マッチング処理により求められた時間t(ここで、1≦t≦Tとする)におけるフレーム画像の画素をx(t)とし、時間t0における画素をx(t0)とし、画素x(t)から画素x(t0)を減算した2つの画素間の距離を、累積された動的視差α(t,t0)とし、画素x(t)におけるグローバル距離を距離zgとし、累積された動的視差α(t,t0)の設定範囲を、μ≦α(t,t0)≦γとし、グローバル距離zgの設定範囲(これは対象世界を計測して得てもよいが、通常は視察で与える)、zN1≦zg≦zL1とする。そして、これらの範囲を与えるパラメータを距離関数式の境界条件として、a,bに関する連立方程式を解くと、係数aを、a=zL1・exp((μ/(γ−μ))log(zL1/zN1)と算出でき、係数bをb=(1/(γ−μ))log(zL1/zN1)と算出できることにより、画素x(t)におけるグローバル距離zgは、zg=a・exp(−b・α(t,t0))により定まる。
例えば、距離をzとする距離関数z=a・exp(−b・α(t,t0))を導出する場合には、距離zに対応する累積された動的視差α0を定数値とし、ここではα0=1としている。後述する図25に示すようにα0=1とし、αが微小量Δαだけ増加したとき、距離が−Δzの変化があると仮定する。これは動的視差(モーションパララックス)の性質を反映した扱いである。この比例関係をz:α0=−Δz:Δαと表現し、これから簡単な微分方程式が導かれるが、これを解くと、2つのパラメータ、a,bをもつ関係式z=a・exp(−b・α(t,t0))が得られる。
このようにして、求められる距離関数z=a・exp(−b・α(t,t0))は、上述したように数学的に求められるものである。従って、この距離関数を用いることによって、グローバル距離zgを、人間による撮影対象物の観察や直感ではない、理論根拠に基づいて決定することが可能となる。
なお、累積された動的視差α(t,t0)の累積の範囲は任意であり、単にα(t0,t0)として累積を行わない量についても、グローバル距離zgを求めるための上述した距離関数に適用することが可能である。
上述したグローバル距離の算出においては、mean-shift法という領域検出法をスライス画像とフレーム画像の双方に適用し、双方の画像の領域の間での対応を見つけるという方法を行った。この方法はかなり複雑であるので、グローバル距離をより簡便に行う方法を提案する。
本発明に係る画像距離算出装置は、移動する1台のカメラにより撮影された動画映像に基づいて、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出手段と、該フレーム画像において、前記カメラの移動方向に向かって延設される軸をx軸とし、当該x軸に直交する軸をy軸として、前記x軸のx0点におけるy軸上の画素列の時間変化を、時間t0+1から時間t0+Tまで抽出することにより、縦軸を前記y軸、横軸をt軸(1≦t≦T)とするスライス画像を生成するスライス画像生成手段と、時間t(1≦t≦T)における前記スライス画像の画素をg(t,y)とし、前記フレーム画像のy軸上のy′点(1≦y′≦Y)における時間t=t0のときのxyt空間の画素をf(x,y′,t0)=r(x)として、xの区間[1,X]の任意の点において存在する、スライス画像の画素g(t,y)に対応するフレーム画像の画素r(x)点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Tの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出手段と、該スポッティング点算出手段により算出されたスポッティング点に基づいて、時間t=Tから時間t=1までバックトレース処理を行うことにより、前記スライス画像の前記t軸におけるt=1からt=Tまでのそれぞれの画素に対応する前記フレーム画像の前記x軸方向の画素を、x(1),x(2),x(3),・・・,x(i),・・・x(T)(1≦i≦T)として求める画素マッチング手段と、該画素マッチング手段により求められた前記フレーム画像の前記画素x(i)と近接する画素x(i−1)との距離差をx(i)−x(i−1)とし、画素x(i)から連続するK個(但しK<T)の画素間における近接する画素との距離差を、x(i+1)−x(i),x(i+2)−x(i+1),x(i+3)−x(i+2),・・・,x(i+K−1)−x(i+K−2),x(i+K)−x(i+K−1)として求め、求められた前記画素間の距離差の値の中央値をMed(i)として求めることによって、画素x(i)における累積された動的視差をMed(i)・Kとし、前記フレーム画像の前記画素x(i)における撮影対象物から前記カメラまでの詳細な距離を距離z(i,x)とし、前記累積された動的視差Med(i)・Kの設定範囲を、定数μおよび定数γを用いて、μ≦Med(i)・K≦γとし、前記画素x(i)における距離z(i,x)の設定範囲を、定数zN2および定数zL2を用いてzN2≦z(i,x)≦zL2として、係数aを、a=zL2・exp((μ/(γ−μ))log(zL2/zN2)により算出し、係数bを、b=(1/(γ−μ))log(zL2/zN2)により算出することにより、前記x(i)における前記距離z(i,x)を、前記累積された動的視差Med(i)・Kと、前記係数aおよび前記係数bとを用いて、z(i,x)=a・exp(−b・Med(i)・K)により算出する詳細距離算出手段とを有することを特徴とする。
さらに、本発明に係る画像距離算出方法は、移動する1台のカメラにより撮影された動画映像に基づいて、フレーム画像抽出手段が、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出ステップと、該フレーム画像において、前記カメラの移動方向に向かって延設される軸をx軸とし、当該x軸に直交する軸をy軸として、前記x軸のx0点におけるy軸上の画素列の時間変化を、時間t0+1から時間t0+Tまで抽出することにより、スライス画像生成手段が、縦軸を前記y軸、横軸をt軸(1≦t≦T)とするスライス画像を生成するスライス画像生成ステップと、時間t(1≦t≦T)における前記スライス画像の画素をg(t,y)とし、前記フレーム画像のy軸上のy′点(1≦y′≦Y)における時間t=t0のときのxyt空間の画素をf(x,y′,t0)=r(x)として、xの区間[1,X]の任意の点において存在する、スライス画像の画素g(t,y)に対応するフレーム画像の画素r(x)点を、動的計画法に基づくマッチング処理を用いて求めることにより、スポッティング点算出手段が、前記スライス画像における時間Tの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出ステップと、該スポッティング点算出ステップにおいて算出されたスポッティング点に基づいて、時間t=Tから時間t=1までバックトレース処理を行うことにより、画素マッチング手段が、前記スライス画像の前記t軸におけるt=1からt=Tまでのそれぞれの画素に対応する前記フレーム画像の前記x軸方向の画素を、x(1),x(2),x(3),・・・,x(i),・・・x(T)(1≦i≦T)として求める画素マッチングステップと、該画素マッチングステップにおいて求められた前記フレーム画像の前記画素x(i)と近接する画素x(i−1)との距離差をx(i)−x(i−1)とし、画素x(i)から連続するK個(但しK<T)の画素間における近接する画素との距離差を、x(i+1)−x(i),x(i+2)−x(i+1),x(i+3)−x(i+2),・・・,x(i+K−1)−x(i+K−2),x(i+K)−x(i+K−1)として求め、求められた前記画素間の距離差の値の中央値をMed(i)として求めることによって、画素x(i)における累積された動的視差をMed(i)・Kとし、前記フレーム画像の前記画素x(i)における撮影対象物から前記カメラまでの詳細な距離を距離z(i,x)とし、前記累積された動的視差Med(i)・Kの設定範囲を、定数μおよび定数γを用いて、μ≦Med(i)・K≦γとし、前記画素x(i)における距離z(i,x)の設定範囲を、定数zN2および定数zL2を用いて、zN2≦z(i,x)≦zL2として、詳細距離算出手段が、係数aを、a=zL2・exp((μ/(γ−μ))log(zL2/zN2)により算出し、係数bを、b=(1/(γ−μ))log(zL2/zN2)により算出することにより、前記x(i)における前記距離z(i,x)を、前記累積された動的視差Med(i)・Kと、前記係数aおよび前記係数bとを用いて、z(i,x)=a・exp(−b・Med(i)・K)により算出する詳細距離算出ステップとを有することを特徴とする。
また、本発明に係る画像距離算出用プログラムは、移動する1台のカメラにより撮影された動画映像に基づいて、カメラから動画映像に記録された撮影対象物までの距離を算出する画像距離算出装置の画像距離算出用プログラムであって、前記画像距離算出装置の制御手段に、前記動画映像の任意の時間におけるフレーム画像を抽出させるフレーム画像抽出機能と、該フレーム画像において、前記カメラの移動方向に向かって延設される軸をx軸とし、当該x軸に直交する軸をy軸として、前記x軸のx0点におけるy軸上の画素列の時間変化を、時間t0+1から時間t0+Tまで抽出することにより、縦軸を前記y軸、横軸をt軸(1≦t≦T)とするスライス画像を生成させるスライス画像生成機能と、時間t(1≦t≦T)における前記スライス画像の画素をg(t,y)とし、前記フレーム画像のy軸上のy′点(1≦y′≦Y)における時間t=t0のときのxyt空間の画素をf(x,y′,t0)=r(x)として、xの区間[1,X]の任意の点において存在する、スライス画像の画素g(t,y)に対応するフレーム画像の画素r(x)点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Tの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出させるスポッティング点算出機能と、該スポッティング点算出機能により算出されたスポッティング点に基づいて、時間t=Tから時間t=1までバックトレース処理を行うことにより、前記スライス画像の前記t軸におけるt=1からt=Tまでのそれぞれの画素に対応する前記フレーム画像の前記x軸方向の画素を、x(1),x(2),x(3),・・・,x(i),・・・x(T)(1≦i≦T)として求めさせる画素マッチング機能と、該画素マッチング機能により求められた前記フレーム画像の前記画素x(i)と近接する画素x(i−1)との距離差をx(i)−x(i−1)とし、画素x(i)から連続するK個(但しK<T)の画素間における近接する画素との距離差を、x(i+1)−x(i),x(i+2)−x(i+1),x(i+3)−x(i+2),・・・,x(i+K−1)−x(i+K−2),x(i+K)−x(i+K−1)として求めさせ、求められた前記画素間の距離差の値の中央値をMed(i)として求めさせることによって、画素x(i)における累積された動的視差をMed(i)・Kとし、前記フレーム画像の前記画素x(i)における撮影対象物から前記カメラまでの詳細な距離を距離z(i,x)とし、前記累積された動的視差Med(i)・Kの設定範囲を、定数μおよび定数γを用いて、μ≦Med(i)・K≦γとし、前記画素x(i)における距離z(i,x)の設定範囲を、定数zN2および定数zL2を用いて、zN2≦z(i,x)≦zL2として、係数aを、a=zL2・exp((μ/(γ−μ))log(zL2/zN2)により算出させ、係数bを、b=(1/(γ−μ))log(zL2/zN2)により算出させることにより、前記x(i)における前記距離z(i,x)を、前記累積された動的視差Med(i)・Kと、前記係数aおよび前記係数bとを用いて、z(i,x)=a・exp(−b・Med(i)・K)により算出させる詳細距離算出機能とを実現させるためのプログラムであることを特徴とする。
既に説明した画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、初めに、mean-shift法により領域分割された領域毎の距離(グローバル距離)を求めて、その後に、領域内の画素毎の相対的な距離(ローカル距離)を求めて、領域毎の距離(グローバル距離)に、領域内の画素毎の相対的な距離(ローカル距離)を加算することによって、フレーム画像の画素毎の距離を求める場合について説明した。つまり、第1段階の処理として、領域毎のグローバル距離を求めて、第2段階の処理として、領域内の画素毎の相対的な距離(ローカル距離)を求めてから、最終的な画素毎の距離を求めている。
本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、スライス画像の画素に対応するフレーム画像の画素点を、動的計画法に基づくマッチング処理を用いて求めることにより、フレーム画像のスポッティング点として算出する。そして、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、算出されたスポッティング点に基づいて、時間t=Tから時間t=1までバックトレース処理を行うことにより、スライス画像のt=1からt=Tまでのそれぞれの画素に対応するフレーム画像の画素を、x(1),x(2),x(3),・・・,x(i),・・・x(T)(1≦i≦T)として求める。そして、画素マッチングによって求められたフレーム画像の画素x(i)と近接する画素x(i−1)との距離差をx(i)−x(i−1)とし、画素x(i)から連続するK個(但しK<T)の画素間における近接する画素の距離差の中央値をメディアンフィルタMed(i)として求める。このMed(i)を用いることによって、画素x(i)における累積された動的視差をMed(i)・Kとして表すことができる。
そして、フレーム画像の画素x(i)における撮影対象物からカメラまでの詳細な距離を距離z(i,x)とし、累積された動的視差Med(i)・Kの設定範囲を、μ≦Med(i)・K≦γとし、距離z(i,x)の設定範囲を、zN2≦z(i,x)≦zL2として、係数aを、a=zL2・exp((μ/(γ−μ))log(zL2/zN2)により算出し、係数bを、b=(1/(γ−μ))log(zL2/zN2)により算出することにより、x(i)における距離z(i,x)を、z(i,x)=a・exp(−b・Med(i)・K)により求める。
このようにして、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、メディアンフィルタにより求められる動的視差を用いて累積された動的視差Med(i)・Kを求めて、このMed(i)・Kに基づいて求められた距離関数z(i,x)を用いることによって、フレーム画像のスポッティングの対象となった画素の詳細な距離を、mean-shift法を用いて領域分割を行うことなく、求めることが可能となる。
さらに、上述したMed(i)・K(中央値×K)を求めることは、mean-shift法を用いて領域を求めることと類似の方法である。累積された動的視差の量は、K個の区間をいわば領域とする1つの求め方である。この累積された動的視差の量は、領域抽出を経ずして計算できるため簡便な方法であるといえる。
また、上述した画像距離算出装置は、前記詳細距離算出手段が、前記フレーム画像の前記画素x(i)(1≦i≦T)以外の画素の距離を、前記画素x(i)において求められた前記距離z(i,x)の距離値を用いて内挿することにより求めるものであってもよい。
さらに、上述した画像距離算出方法は、前記詳細距離算出ステップにおいて、前記詳細距離算出手段は、前記フレーム画像の前記画素x(i)(1≦i≦T)以外の画素の距離を、前記画素x(i)において求められた前記距離z(i,x)の距離値を用いて内挿することにより求めるものであってもよい。
また、上述した画像距離算出用プログラムは、前記制御手段に、前記詳細距離算出機能において、前記フレーム画像の前記画素x(i)(1≦i≦T)以外の画素の距離を、前記画素x(i)において求められた前記距離z(i,x)の距離値を用いて内挿することにより求めさせることを実現させるためのプログラムであってもよい。
上述した画像距離算出装置、画像距離算出方法および画像距離算出用プログラムにおいて、距離z(i,x)が求められる画素x(i)は、フレーム画像の一部の画素として求められるものであり、全ての画素が対象とはならない。このため、カメラから撮影対象物までの距離を、距離関数z(i,x)=a・exp(−b・Med(i)・K)によって算出することができない画素が存在する。
一方で、距離関数z(i,x)=a・exp(−b・Med(i)・K)によって距離を算出することができる画素x(i)は、撮影対象物の表面位置を決定するテクスチャの画素に該当する。このため、このテクスチャとなる画素x(i)の距離を利用することによって、距離関数によって距離値を算出することができない周辺の画素の距離値を、距離値が決まった周辺の画素の距離値を用いて内挿(補間)によって決めることができる。
このように、距離関数によって距離値を算出することができる画素x(i)の距離値を用いて、距離関数によって距離値を算出できない画素の距離を、内挿(補間)することによって、領域分割を行うことなく、つまり、領域を考慮して多段的に距離値を求めることなく、フレーム画像の各画素の距離値を求めることが可能になる。
また、Med(i)・Kを使って距離を計算する方法では、1段階の処理でもって、バックトレース点での距離が計算できる。したがって、バックトレースの点以外の画素での距離も、バックトレース点からの内挿によって与えられることとなる。
なお、内挿とは、一般的に、ある既知の数値データ列を基にして、そのデータ列の各区間の範囲内を埋める数値を求めること、またはそのような関数を与えることを意味する。
また、上述した画像距離算出装置、画像距離算出方法および画像距離算出用プログラムは、カメラにより1つの時刻のフレーム画像と、その時刻から以降のT時間の画像から作られるスライス画像によって、フレーム画像の各画素に距離を与えるものである。このような画素がRGB以外に距離の値をもつフレーム画像を連結して広いパノラマ距離画像を作成することは広い応用に資する。
上述した画像距離算出装置は、前記カメラにより異なる時間に撮影された2枚のフレーム画像であって、互いに共通する画像部分を一部に含む前記2枚のフレーム画像に対して、前記2枚のフレーム画像の全ての画素のRGBの値を抽出することにより、抽出された前記RGBの値に該当しないRGBの値を、コードのRGBの値として検出するコード検出手段と、前記グローバル距離算出手段により前記グローバル距離が算出された画素の距離値を、前記2枚のフレーム画像の画素の中から抽出する画素距離値抽出手段と、該画素距離値抽出手段により抽出された前記距離値毎に、前記コードのRGBの値を重複しないように割り当てるコードRGB値割当手段と、前記コードRGB値割当手段により前記コードのRGBの値が割り当てられた前記距離値と同じ距離値を備える、前記2枚のフレーム画像の画素のRGBの値を、当該距離値に応じて割り当てられた前記コードのRGBの値に入れ替えるRGB値入替手段と、該RGB値入替手段により入れ替えられた後の前記RGBの値を、当該RGBの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録する画素情報記録手段と、前記RGB値入替手段により前記画素のRGBの値が入れ替えられた2枚のフレーム画像に対して、スティッチングアルゴリズムを適用することにより、当該2枚のフレーム画像の貼り合わせ処理を行って、1枚の貼り合わせ画像を生成する貼り合わせ画像生成手段と、該貼り合わせ画像生成手段により生成された前記貼り合わせ画像の全ての画素のRGBの値の中から、前記画素情報記録手段に記録される前記RGBの値と一致あるいは近似するRGBの値を検出するRGB値検出手段と、該RGB値検出手段により検出された前記RGBの値を備える画素に対し、前記画素情報記録手段に記録される前記RGBの値に紐付けられた前記距離値を、当該画素の距離情報として付加する距離情報付加手段と、該距離情報付加手段により前記距離情報が付加された前記画素のRGBの値を、当該画素の周囲の画素のRGBの値の平均値に変更するRGB値変更手段とを有するものであってもよい。
さらに、上述した画像距離算出方法は、前記カメラにより異なる時間に撮影された2枚のフレーム画像であって、互いに共通する画像部分を一部に含む前記2枚のフレーム画像に対して、前記2枚のフレーム画像の全ての画素のRGBの値を抽出することにより、コード検出手段が、抽出された前記RGBの値に該当しないRGBの値を、コードのRGBの値として検出するコード検出ステップと、前記グローバル距離算出ステップにおいて前記グローバル距離が算出された画素の距離値を、画素距離値抽出手段が、前記2枚のフレーム画像の画素の中から抽出する画素距離値抽出ステップと、該画素距離値抽出ステップにおいて抽出された前記距離値毎に、コードRGB値割当手段が、前記コードのRGBの値を重複しないように割り当てるコードRGB値割当ステップと、前記コードRGB値割当ステップにおいて前記コードのRGBの値が割り当てられた前記距離値と同じ距離値を備える、前記2枚のフレーム画像の画素のRGBの値を、RGB値入替手段が、当該距離値に応じて割り当てられた前記コードのRGBの値に入れ替えるRGB値入替ステップと、該RGB値入替ステップにおいて入れ替えられた後の前記RGBの値を、画素情報記録手段が、当該RGBの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録する画素情報記録ステップと、前記RGB値入替ステップにおいて前記画素のRGBの値が入れ替えられた2枚のフレーム画像に対して、スティッチングアルゴリズムを適用することにより、貼り合わせ画像生成手段が、当該2枚のフレーム画像の貼り合わせ処理を行って、1枚の貼り合わせ画像を生成する貼り合わせ画像生成ステップと、該貼り合わせ画像生成ステップにおいて生成された前記貼り合わせ画像の全ての画素のRGBの値の中から、RGB値検出手段が、前記画素情報記録ステップにおいて記録された前記RGBの値と一致あるいは近似するRGBの値を検出するRGB値検出ステップと、該RGB値検出ステップにおいて検出された前記RGBの値を備える画素に対し、前記画素情報記録ステップにおいて記録された前記RGBの値に紐付けられる前記距離値を、距離情報付加手段が、当該画素の距離情報として付加する距離情報付加ステップと、該距離情報付加ステップにおいて前記距離情報が付加された前記画素のRGBの値を、RGB値変更手段が、当該画素の周囲の画素のRGBの値の平均値に変更するRGB値変更ステップとを有するものであってもよい。
また、上述した画像距離算出用プログラムは、前記制御手段に、前記カメラにより異なる時間に撮影された2枚のフレーム画像であって、互いに共通する画像部分を一部に含む前記2枚のフレーム画像に対して、前記2枚のフレーム画像の全ての画素のRGBの値を抽出させることにより、抽出された前記RGBの値に該当しないRGBの値を、コードのRGBの値として検出させるコード検出機能と、前記グローバル距離算出機能により前記グローバル距離が算出された画素の距離値を、前記2枚のフレーム画像の画素の中から抽出させる画素距離値抽出機能と、該画素距離値抽出機能により抽出された前記距離値毎に、前記コードのRGBの値を重複しないように割り当てさせるコードRGB値割当機能と、前記コードRGB値割当機能により前記コードのRGBの値が割り当てられた前記距離値と同じ距離値を備える、前記2枚のフレーム画像の画素のRGBの値を、当該距離値に応じて割り当てられた前記コードのRGBの値に入れ替えさせるRGB値入替機能と、該RGB値入替機能により入れ替えられた後の前記RGBの値を、当該RGBの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録させる画素情報記録機能と、前記RGB値入替機能により前記画素のRGBの値が入れ替えられた2枚のフレーム画像に対して、スティッチングアルゴリズムを適用させることにより、当該2枚のフレーム画像の貼り合わせ処理を行って、1枚の貼り合わせ画像を生成させる貼り合わせ画像生成機能と、該貼り合わせ画像生成機能により生成された前記貼り合わせ画像の全ての画素のRGBの値の中から、前記画素情報記録機能によって記録された前記RGBの値と一致あるいは近似するRGBの値を検出させるRGB値検出機能と、該RGB値検出機能により検出された前記RGBの値を備える画素に対し、前記画素情報記録機能により記録された前記RGBの値に紐付けられる前記距離値を、当該画素の距離情報として付加させる距離情報付加機能と、該距離情報付加機能により前記距離情報が付加された前記画素のRGBの値を、当該画素の周囲の画素のRGBの値の平均値に変更させるRGB値変更機能とを実現させるためのプログラムであってもよい。
共通する画像部分を有する2枚の画像から1枚の画像を生成する方法として、スティッチングアルゴリズムが一般的に知られている。既存のスティッチングアルゴリズムでは、貼り合わせ対象となる画像の色情報(以下、RGB情報と称する)を利用して、貼り合わせ処理を行う。このとき、2つの画像はスティッチングの前と後ではRGBの値が変化してしまい、スティッチング前の画素値は、スティッチング後のどの画素に対応しているかはわからない。このため、スティッチングアルゴリズムを、距離情報が付加されたフレーム画像にそのまま適用してしまうと、貼り合わされる前のフレーム画像の距離情報を、貼り合わされた画像に反映させることができなかった。
このため、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、2枚のフレーム画像の全ての画素のRGBの値に該当しないコードのRGBの値を求めて、距離情報が付加される画素の中から一部の画素を抽出して、RGBの値をコードのRGBの値に入れ替えた後に、スティッチングアルゴリズムを適用して貼り合わせ画像を生成する。この貼り合わせ画像では、距離情報が付加された画素のRGBの値が、元のフレーム画像において使用されていなかったコードのRGBの値になっているため、貼り合わせ画像において、コードのRGBの値が付された画素は、距離情報が付された画素と判断することできる。このため、コードのRGBの値に紐付けられた距離値を、貼り合わせ画像の該当する画素に付加することによって、スティッチングアルゴリズムが適用される前の2枚のフレーム画像のそれぞれの距離情報が反映された、貼り合わせ画像を生成することが可能になる。
ここで注意すべきこととして、距離値に対応したRGBの値をコードのRGBの値に入れ替える画素は、フレーム画像の一部の画素にしなくてはならないことである。元の画素のRGBの値のほとんどは残っており、画像としての見かけはほとんど変わらないといえる。従って、スティッチング処理の結果は、入れ替え前と後では、ほとんど変わらない結果が得られる。
上述したスティッチング処理は一部の画素が同じ距離値(グローバル距離)をもつものの合体処理であった。しかし、フレーム画像のすべての画素に詳細な距離値(例えば、ローカル距離+グローバル距離)が与えられている場合には、以下のような工夫を要する。
上述した画像距離算出装置は、前記カメラにより異なる時間に撮影された2枚のフレーム画像であって、互いに共通する画像部分を一部に含み、前記詳細距離算出手段によって前記撮影対象物から前記カメラまでの距離が画素毎に算出された前記2枚のフレーム画像に対して、前記2枚のフレーム画像の全ての画素のRGBの値を抽出することにより、抽出された前記RGBの値に該当しないRGBの値を、コードのRGBの値として検出するコード検出手段と、前記2枚のフレーム画像のうち、全体の画素数の1/N(Nは正数)の個数の画素をランダムに選択し、選択された画素の距離値を抽出する画素距離値抽出手段と、該画素距離値抽出手段により抽出された前記距離値毎に、前記コードのRGBの値を重複しないように割り当てるコードRGB値割当手段と、前記コードRGB値割当手段により前記コードのRGBの値が割り当てられた前記距離値と同じ距離値を備える、前記2枚のフレーム画像の画素のRGBの値を、当該距離値に応じて割り当てられた前記コードのRGBの値に入れ替えるRGB値入替手段と、該RGB値入替手段により入れ替えられた後の前記RGBの値を、当該RGBの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録する画素情報記録手段と、前記RGB値入替手段により前記画素のRGBの値が入れ替えられた2枚のフレーム画像に対して、スティッチングアルゴリズムを適用することにより、当該2枚のフレーム画像の貼り合わせ処理を行って、1枚の貼り合わせ画像を生成する貼り合わせ画像生成手段と、該貼り合わせ画像生成手段により生成された前記貼り合わせ画像の全ての画素のRGBの値の中から、前記画素情報記録手段に記録される前記RGBの値と一致あるいは近似するRGBの値を検出するRGB値検出手段と、該RGB値検出手段により検出された前記RGBの値を備える画素に対し、前記画素情報記録手段に記録される前記RGBの値に紐付けられた前記距離値を、当該画素の距離情報として付加する距離情報付加手段と、該距離情報付加手段により前記距離情報が付加された前記画素のRGBの値を、当該画素の周囲の画素のRGBの値の平均値に変更することにより、当該RGBの値が修正された修正貼り合わせ画像を生成する修正貼り合わせ画像生成手段と、該修正貼り合わせ画像生成手段により生成されたN枚の修正貼り合わせ画像に基づいて、全ての画素に前記距離情報が付加された1枚の貼り合わせ画像を生成する距離付加貼り合わせ画像生成手段とを有し、前記画素距離値抽出手段は、2回目以降に画素の距離値を抽出する場合に、前記2枚のフレーム画像のうち過去に選択されなかった画素の中から、全体の画素数の1/Nの個数の画素をランダムに選択して、当該画素の距離値を抽出し、前記コードRGB値割当手段と、前記RGB値入替手段と、前記画素情報記録手段と、前記貼り合わせ画像生成手段と、前記RGB値検出手段と、前記距離情報付加手段と、前記修正貼り合わせ画像生成手段とは、前記画素距離値抽出手段により2回目以降に選択された前記距離値に基づいて、それぞれの処理を順番にN回繰り返すことにより、N枚の前記修正貼り合わせ画像を生成し、前記距離付加貼り合わせ画像生成手段は、前記修正貼り合わせ画像の全体の画素数の1/Nの画素に付加されている前記距離情報を、N枚の前記修正貼り合わせ画像の全てを重ねて読み取ることにより、前記修正貼り合わせ画像における全ての画素の距離情報を求めて、求められた当該距離情報を1枚の貼り合わせ画像に付加することにより、全ての画素に前記距離情報が付加された前記1枚の貼り合わせ画像を生成することを特徴とするものであってもよい。
画像の1/Nの画素の数を選択して、コードに割り当てる理由は、すべての画素に対して、距離に対応するコードに割り当てることが、一度の処理でできないためである。
さらに、上述した画像距離算出方法は、前記カメラにより異なる時間に撮影された2枚のフレーム画像であって、互いに共通する画像部分を一部に含み、前記詳細距離算出ステップにおいて前記撮影対象物から前記カメラまでの距離が画素毎に算出された前記2枚のフレーム画像に対して、前記2枚のフレーム画像の全ての画素のRGBの値を抽出することにより、コード検出手段が、抽出された前記RGBの値に該当しないRGBの値を、コードのRGBの値として検出するコード検出ステップと、画素距離値抽出手段が、前記2枚のフレーム画像のうち、全体の画素数の1/N(Nは正数)の個数の画素をランダムに選択し、選択された画素の距離値を抽出する画素距離値抽出ステップと、該画素距離値抽出ステップにおいて抽出された前記距離値毎に、コードRGB値割当手段が、前記コードのRGBの値を重複しないように割り当てるコードRGB値割当ステップと、前記コードRGB値割当ステップにおいて前記コードのRGBの値が割り当てられた前記距離値と同じ距離値を備える、前記2枚のフレーム画像の画素のRGBの値を、RGB値入替手段が、当該距離値に応じて割り当てられた前記コードのRGBの値に入れ替えるRGB値入替ステップと、該RGB値入替ステップにおいて入れ替えられた後の前記RGBの値を、画素情報記録手段が、当該RGBの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録する画素情報記録ステップと、前記RGB値入替ステップにおいて前記画素のRGBの値が入れ替えられた2枚のフレーム画像に対して、スティッチングアルゴリズムを適用することにより、貼り合わせ画像生成手段が、当該2枚のフレーム画像の貼り合わせ処理を行って、1枚の貼り合わせ画像を生成する貼り合わせ画像生成ステップと、該貼り合わせ画像生成ステップにおいて生成された前記貼り合わせ画像の全ての画素のRGBの値の中から、RGB値検出手段が、前記画素情報記録ステップにおいて記録された前記RGBの値と一致あるいは近似するRGBの値を検出するRGB値検出ステップと、該RGB値検出ステップにおいて検出された前記RGBの値を備える画素に対し、前記画素情報記録ステップにおいて記録された前記RGBの値に紐付けられた前記距離値を、距離情報付加手段が、当該画素の距離情報として付加する距離情報付加ステップと、該距離情報付加ステップにおいて前記距離情報が付加された前記画素のRGBの値を、当該画素の周囲の画素のRGBの値の平均値に変更することにより、修正貼り合わせ画像生成手段が、当該RGBの値が修正された修正貼り合わせ画像を生成する修正貼り合わせ画像生成ステップと、該修正貼り合わせ画像生成ステップによって生成されたN枚の修正貼り合わせ画像に基づいて、距離付加貼り合わせ画像生成手段が、全ての画素に前記距離情報が付加された1枚の貼り合わせ画像を生成する距離付加貼り合わせ画像生成ステップとを有し、前記画素距離値抽出ステップにおいて前記画素距離値抽出手段は、2回目以降に画素の距離値を抽出する場合に、前記2枚のフレーム画像のうち過去に選択されなかった画素の中から、全体の画素数の1/Nの個数の画素をランダムに選択して、当該画素の距離値を抽出し、前記コードRGB値割当ステップにおける前記コードRGB値割当手段と、前記RGB値入替ステップにおける前記RGB値入替手段と、前記画素情報記録ステップにおける前記画素情報記録手段と、前記貼り合わせ画像生成ステップにおける前記貼り合わせ画像生成手段と、前記RGB値検出ステップにおける前記RGB値検出手段と、前記距離情報付加ステップにおける前記距離情報付加手段と、前記修正貼り合わせ画像生成ステップにおける前記修正貼り合わせ画像生成手段とは、前記画素距離値抽出ステップにおいて前記画素距離値抽出手段により2回目以降に選択された前記距離値に基づいて、それぞれの処理を順番にN回繰り返すことにより、N枚の前記修正貼り合わせ画像を生成し、前記距離付加貼り合わせ画像生成ステップにおいて、前記距離付加貼り合わせ画像生成手段は、前記修正貼り合わせ画像の全体の画素数の1/Nの画素に付加されている前記距離情報を、N枚の前記修正貼り合わせ画像の全てを重ねて読み取ることにより、前記修正貼り合わせ画像における全ての画素の距離情報を求めて、求められた当該距離情報を1枚の貼り合わせ画像に付加することにより、全ての画素に前記距離情報が付加された前記1枚の貼り合わせ画像を生成することを特徴とするものであってもよい。
また、上述した画像距離算出用プログラムは、前記制御手段に、前記カメラにより異なる時間に撮影された2枚のフレーム画像であって、互いに共通する画像部分を一部に含み、前記詳細距離算出機能において前記撮影対象物から前記カメラまでの距離が画素毎に算出された前記2枚のフレーム画像に対して、前記2枚のフレーム画像の全ての画素のRGBの値を抽出させることにより、抽出された前記RGBの値に該当しないRGBの値を、コードのRGBの値として検出させるコード検出機能と、前記2枚のフレーム画像のうち、全体の画素数の1/N(Nは正数)の個数の画素をランダムに選択させ、選択された画素の距離値を抽出させる画素距離値抽出機能と、該画素距離値抽出機能により抽出された前記距離値毎に、前記コードのRGBの値を重複しないように割り当てさせるコードRGB値割当機能と、前記コードRGB値割当機能により前記コードのRGBの値が割り当てられた前記距離値と同じ距離値を備える、前記2枚のフレーム画像の画素のRGBの値を、当該距離値に応じて割り当てられた前記コードのRGBの値に入れ替えさせるRGB値入替機能と、該RGB値入替機能により入れ替えられた後の前記RGBの値を、当該RGBの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録させる画素情報記録機能と、前記RGB値入替機能により前記画素のRGBの値が入れ替えられた2枚のフレーム画像に対して、スティッチングアルゴリズムを適用させることにより、当該2枚のフレーム画像の貼り合わせ処理を行って、1枚の貼り合わせ画像を生成させる貼り合わせ画像生成機能と、該貼り合わせ画像生成機能により生成された前記貼り合わせ画像の全ての画素のRGBの値の中から、前記画素情報記録機能により記録された前記RGBの値と一致あるいは近似するRGBの値を検出させるRGB値検出機能と、該RGB値検出機能により検出された前記RGBの値を備える画素に対し、前記画素情報記録機能により記録された前記RGBの値に紐付けられた前記距離値を、当該画素の距離情報として付加させる距離情報付加機能と、該距離情報付加機能により前記距離情報が付加された前記画素のRGBの値を、当該画素の周囲の画素のRGBの値の平均値に変更させることにより、当該RGBの値が修正された修正貼り合わせ画像を生成させる修正貼り合わせ画像生成機能と、該修正貼り合わせ画像生成機能により生成されたN枚の修正貼り合わせ画像に基づいて、全ての画素に前記距離情報が付加された1枚の貼り合わせ画像を生成させる距離付加貼り合わせ画像生成機能とを有し、前記画素距離値抽出機能において、前記制御手段に、2回目以降に画素の距離値を抽出させる場合に、前記2枚のフレーム画像のうち過去に選択されなかった画素の中から、全体の画素数の1/Nの個数の画素をランダムに選択させて、当該画素の距離値を抽出させ、前記コードRGB値割当機能と、前記RGB値入替機能と、前記画素情報記録機能と、前記貼り合わせ画像生成機能と、前記RGB値検出機能と、前記距離情報付加機能と、前記修正貼り合わせ画像生成機能とに関し、前記画素距離値抽出機能により2回目以降に選択された前記距離値に基づいて、前記制御手段に、それぞれの機能を順番にN回繰り返して実行させることにより、N枚の前記修正貼り合わせ画像を生成させ、前記距離付加貼り合わせ画像生成機能において、前記修正貼り合わせ画像の全体の画素数の1/Nの画素に付加されている前記距離情報を、N枚の前記修正貼り合わせ画像の全てを重ねて読み取ることにより、前記制御手段に、前記修正貼り合わせ画像における全ての画素の距離情報を求めさせて、求められた当該距離情報を1枚の貼り合わせ画像に付加させることにより、全ての画素に前記距離情報が付加された前記1枚の貼り合わせ画像を生成させることを実現させるためのプログラムであってもよい。
本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、2枚のフレーム画像のうち、全体の画素数の1/N(Nは正数)の個数の画素をランダムに選択して距離値を抽出し、この画素のRGBの値をコードのRGBの値に入れ替えて、スティッチングアルゴリズムを適用して貼り合わせ画像を生成する。このようにして生成された貼り合わせ画像では、全体の画素の1/Nの画素だけに距離情報が反映されたことになる。そして、N枚の貼り合わせ画像を用いて距離情報が付加されている画素を求めることによって、全ての画素位置に対応する距離情報を求めることができる。このためスティッチングアルゴリズムが適用される前の2枚のフレーム画像の距離情報が十分に反映された貼り合わせ画像を生成することが可能になる。
本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムによれば、フレーム画像の分割領域毎に、カメラから撮影対象物までの距離を求めることが可能になる。特に、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、1台のカメラで撮影された動画映像に基づいて、フレーム画像の分割領域毎または画素毎の距離を算出することが可能になる。このため、従来のステレオビジョン法のように、カメラ間の間隔dを一定に維持した2台のカメラを複数回用いて撮影する場合に比べて、撮影機器の簡素化と撮影負担の低減を図ることが可能になる。
また1台のカメラによって撮影された動画映像に基づいて、フレーム画像内の対応する領域または画素の距離を算出することができるため、例えば、過去に撮影された動画映像や、他の目的で撮影が行われた動画映像等のような、様々な動画映像に基づいて、その動画映像が映された撮影状況・撮影環境における撮影対象物までの距離を算出することが可能になる。
実施の形態に係る画像距離算出装置の概略構成を示したブロック図である。 実施の形態に係る画像距離算出装置の処理内容を示したフローチャートである。 動的視差(モーションパララックス)におけるカメラと撮影対象物との関係を模式的に示した図である。 動画映像を3次元的な空間として説明するための図である。 (a)はフレーム画像の一例を示し、(b)はスライス画像の一例を示した図である。 実施の形態に係る累積視差法と、従来のステレオビジョン法と、従来のEpipolar-Plane-Image法との違いを示した表である。 スライス画像の画素に対応するフレーム画像の画素の位置を、黒丸を用いて模式的に示した図である。 (a)は、水平方向に移動するカメラによって、撮影された動画映像において、時間t=1のフレーム画像を示した図である。(b)は、(a)に示したx0の点(線)において、時間t=1からt=175までの映像に基づいて作成されたスライス画像の例を示した図である。 所定のy′における、フレーム画像の画素のxと時間tとの関係と、スライス画像の画素g(t,y)におけるyと時間tとの関係とを模式的に示しつつ、フレーム画像とスライス画像との対応関係を示した図である。 ライン対画像のDPマッチング法のアルゴリズム(スポッティング機能を備えたDPマッチングアルゴリズム)を説明するための図である。 (a)は、フレーム画像に、mean-shift法を適用した後の画像を示した図である。(b)は、スライス画像に、mean-shift法を適用した後の画像を示した図である。 スライス画像とフレーム画像との領域対応を説明するための模式図である。 (a)は、スライス画像の領域と、スライス画像の領域中のピクセルに最も数多く対応する対応点をもつフレーム画像の領域とにより、スライス画像とフレーム画像との領域対応が決定されることを説明するための模式図である。(b)は、スライス画像の領域の横軸区間長の平均をqとし、それに対応するフレーム画像の領域の横軸区間長の平均をpとする場合に、α=q/pとして、距離zとαとの関係を示した図である。 キャリブレーションデータに基づいて算出された、分割領域毎のグローバル距離を示した画像である。 (a)〜(h)は、複数枚のスライス画像を用いて順番にフレーム画像の領域毎の距離データを算出する過程を説明するための図である。 (a)は、図15(a)〜(h)に基づいて得られた複数の画像(距離画像系列)に対してモザイキング処理が行われた画像を示した図であり、(b)は、(a)に示した画像に基づいて、領域毎にグローバル距離が算出された状態の3D画像に、画素のRGBの値を付加し、異なった視点を基準として示した図である。 第1の貼り合わせ処理の内容を示したフローチャートである。 2枚のフレーム画像における全ての画素のRGB情報を、RGB空間に割り当てた状態を示した図である。 一部の画素のRGB情報の値が、コードのRGB情報の値に入れ替えられた一のフレーム画像を示した図である。 一部の画素のRGB情報の値が、コードのRGB情報の値に入れ替えられた他のフレーム画像を示した図である。 貼り合わせ画像に対してmean-shift法を適用した図である。 第2の貼り合わせ処理の内容を示したフローチャートである。 スライス画像の横軸上の複数の画素と、対応するフレーム画像の横軸上の複数の画素との対応関係を示した図である。 横方向に近接するスライス画像の各画素に対するフレーム画像上の動的視差と、各動的視差を累積することにより求められる累積された動的視差との関係を説明するための図である。 累積された動的視差が実際の距離に対応するかの計算式導出を示すモデルの図である。 スライス画像の横軸方向の平均長と、フレーム画像の対応する横軸方向の平均長とを用いて、領域の距離zregion(r)を算出する方法を説明するための図である。 (a)は、カメラの移動速度が遅い場合における、αの変動パラメータμおよびγと距離zとの関係を示した図である。(b)は、カメラの移動速度が速い場合における、αの変動パラメータμおよびγと距離zとの関係を示した図である。 領域内のi番目の画素x(i)と、画素x(i)における詳細な距離z(i)との関係を示した図である。
以下、本発明に係る画像距離算出装置に関して、一例を示し、図面を用いて詳細に説明する。図1は、画像距離算出装置の概略構成を示したブロック図である。画像距離算出装置100は、記録部(画素情報記録手段)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory:画素情報記録手段)103と、CPU(Central Processing Unit:フレーム画像抽出手段、スライス画像生成手段、スポッティング点算出手段、画素マッチング手段、領域分割手段、対応領域決定手段、グローバル距離算出手段、ローカル距離算出手段、詳細距離算出手段、制御手段、コード検出手段、画素距離値抽出手段、コードRGB値割当手段、RGB値入替手段、貼り合わせ画像生成手段、RGB値検出手段、距離情報付加手段、RGB値変更手段、修正貼り合わせ画像生成手段、距離付加貼り合わせ画像生成手段)104とを有している。画像距離算出装置100には、カメラ200が接続されている。カメラ200によって撮影された動画映像は、記録部101に記録される。また、画像距離算出装置100には、モニタ210が接続されている。モニタ210には、カメラ200によって撮影された動画映像や、後述する図14、図16(a)(b)、図19、図20、図21等の画像を表示させることが可能になっている。
記録部101には、カメラ200により撮影された動画映像が記録されている。より詳細には、カメラ200により撮影された動画映像が、複数のフレーム画像を時系列的に記録したデータとして記録されている。例えば、時間1からTまでの動画映像を、カメラ200で撮影した場合を考える。カメラ200の動画映像として、Δt時間毎に1枚のフレーム画像を記録できる場合には、記録部101に、T/Δt枚のフレーム画像が時系列的に記録されることになる。
なお、画像距離算出装置100あるいはカメラ200に、例えば、フレームバッファーを設けて、カメラ200により記録された1フレーム毎の画像(フレーム画像)がフレームバッファーに一時的に記録され、フレームバッファーに記録された1フレーム毎の画像(フレーム画像)が、時系列的に記録部101に記録される構成であってもよい。また、カメラ200で撮影された動画映像を記録部101にリアルタイムに取り込むのではなく、予めカメラ200によって撮影された動画映像(過去に撮影された動画映像)を、複数のフレーム画像の時系列的データとして、記録部101に記録させるものであってもよい。
また、カメラ200により撮影された動画映像は、デジタル映像だけには限定されない。例えば、撮影された動画映像がアナログ映像であっても、デジタル変換処理によって、時系列的にフレーム画像を記録部101に記録させることが可能であれば、画像距離算出装置100における距離算出処理に利用することが可能である。
記録部101は、一般的なハードディスク等によって構成されている。なお、記録部101の構成は、ハードディスクだけに限定されるものではなく、フラッシュメモリ、SSD(Solid State Drive / Solid State Disk)などであってもよい。記録部101は、動画映像を、時系列的な複数のフレーム画像として記録することが可能な記録媒体であるならば、具体的な構成は特に限定されるものではない。
CPU104は、記録部101に時系列的に記録された複数のフレーム画像(映像)に基づいて、フレーム画像の画素毎に、カメラ位置からフレーム画像に写っている対象物(撮影対象物)までの距離を算出する処理を行う。CPU104は、後述する処理プログラム(図2、図17および図22のフローチャートに基づくプログラム)に従って、画素毎の距離算出処理を行う。
ROM102には、フレーム画像の画素毎に、フレーム画像に写っている撮影対象物までの距離を算出するためプログラム等が記録されている。CPU104は、ROM102より読み込んだプログラムに基づいて、画素毎の距離算出処理を行う。RAM103は、CPU104の処理に利用されるワークエリアとして用いられる。
なお、実施の形態に係る画像距離算出装置100では、CPU104において実行されるプログラム(画像距離算出用プログラム(図2に示すフローチャート)、貼り合わせ処理用プログラム(図17および図22に示すフローチャート))を、ROM102に記録する構成として説明を行うが、これらのプログラムは、記録部101に記録されるものであってもよい。
カメラ200は、レンズを通してカメラ正面の景色等を動画映像として撮影可能な撮影手段である。動画映像を撮影することが可能であれば、カメラ200の種類・構成は特に限定されない、例えば、一般的なムービーカメラであってもよく、また、スマートフォン等のカメラ機能を利用するものであってもよい。
モニタ210は、カメラ200で撮影された動画映像や、距離算出処理により求められる画素毎の距離を示した画像等(例えば、後述する図14や図16(a)(b)の画像等)を、ユーザに対して視認可能に表示させることが可能となっている。モニタ210には、液晶ディスプレイや、CRTディスプレイなどの一般的な表示装置が用いられる。
次に、記録部101に記録された複数のフレーム画像の時系列データに基づいて、CPU104が、フレーム画像の画素毎に距離を算出する方法について説明する。図2は、画像距離算出装置100のCPU104が行う、画像距離算出処理(画素毎の距離算出処理)の内容を示したフローチャートである。
まず、カメラ200が一定の速度vで移動しながら、撮影対象物を撮影する場合を考える。図3は、カメラ200と撮影対象物との関係を模式的に示した図である。図3では、カメラ200が速度vでA点からB点へとΔt時間だけ移動しながら、撮影対象物を撮影した場合が示されている。撮影対象物の位置をS点とする。A点からB点までの距離は、vΔtで示すことができる。SA(S点とA点とを結んだ線)とSB(S点とB点とを結んだ線)とのなす角をΔθとし、SAとAB(A点とB点とを結んだ線)とのなす角をθとする。また、SAの長さ=SBの長さ=dとする。このように定義した場合には、図3に示すように、点BからSAに下ろした垂線の長さは、vΔtsinθと示すことができる。このvΔtsinθの長さは、長さdとなす角Δθとの積、dΔθに近似した値となるため、次の式1として示すことができる。
Δθ=vΔtsinθ/d ・・・式1
式1から明らかなように、カメラ200から撮影対象物までの距離が長いほど(つまり、撮影対象物がカメラ200から遠いほど)、なす角Δθが小さく(狭く)なる。一方で、カメラ200から撮影対象物までの距離が短いほど(つまり、撮影対象物がカメラ200に近いほど)、なす角Δθが大きく(広く)なる。言い換えると、日常生活でも経験するように、自分が動いている場合に、進行方向に対して側方に位置するものの移動速度を、遠くのものと近くのものとで比較すると、遠くのものは動きが少ないため、あまり横方向へ変化しない。しかしながら、近くのものは動きが大きくなり、横方向へ速い速度で移動する。
このように、カメラ200によって撮影された動画映像に映っている撮影対象物の横方向への動きの違いを求めることによって、フレーム画像の画素毎に、カメラから撮影対象物までの距離を算出することが可能になる。図3は、古典的な動的視差用いた手法(モーションパララックス)としてよく知られた構成を模式的に示している。
また、図3に示す動的視差(モーションパララックス)を用いた手法を水平に分離したものは、一般にステレオビジョンと称される。ステレオビジョンでは、図3のAとBとのそれぞれが、人間の左目と右目とに相当する。この場合は、カメラの移動は考えない。しかし、この古典的範囲、すなわち、ステレオビジョンに囚われる限り、図6を示して後述するように、距離データの取得において制約をもつことになる。
画像距離算出装置100のCPU104では、移動する1台のカメラにより撮影された動画映像に基づいて、撮影されたフレーム画像に示される撮影対象物の位置の変化を時系列的に求めることによって、フレーム画像に映し出された撮影対象物までの距離を、画素毎に求める処理を行う。
記録部101には、上述したように、複数のフレーム画像を時系列的に記録したデータが動画映像として記録されている。画像距離算出装置100のCPU104は、図4に示すように、フレーム画像の縦軸をy軸、横軸をx軸として、さらに時系列的な要素をt軸として、動画映像を3次元的な空間(時空間パターン)として判断する。つまり、フレーム画像の画素は、3次元的な空間の座標を用いて、f(x,y,t)で示すことが可能であると考える。ここで、fは通常カラーのR,G,B(赤、緑、青)の要素をもつものである。但し、1≦x≦X,1≦y≦Y,1≦t≦Tとなり、Xはフレーム画像の横(幅)方向の最大画素数、Yはフレーム画像の縦(高さ)方向の最大画素数、Tは撮影された映像時間を示している。時間Tの値は、最後のフレーム画像の数に等しいものとする。本実施の形態に係る画像距離算出装置100のCPU104は、カメラ200により撮影された動画映像の任意の時間のフレーム画像を抽出する(図2のS.1)。抽出されたフレーム画像は、図4に示すように、上述した時間t=1のフレーム画像に該当するものである。しかしながら、一般には、任意の時間のものがフレーム画像として用いられる。後述するように広域のシーンについて画素毎に距離を求める場合には、いくつもの時間においてフレーム画像を抽出する必要が生じる。
このように、動画映像を3次元的な空間として判断すると、フレーム画像のx座標を任意の値x=x0に固定して、フレーム画像のy軸の要素と、時間t軸の要素とに基づいて、スライス画像を生成することが可能になる(S.2)。スライス画像は、g(t,y)(=f(x0,y,t))で示すことが可能になる。但し、1≦y≦Y,1≦t≦Tとする。また、時間t=1におけるフレーム画像は、f(x,y,1)と示すことができる。但し,1≦x≦Xである。本実施の形態において、説明の便宜上、撮影時間tを1≦t≦175とする。
図5(a)は、t=1におけるフレーム画像f(x,y,1)を示しており、図5(b)は、x=x0(図5(a)において、x=x0が示されている)におけるスライス画像g(t,y)を示した図である。図5(a)(b)のそれぞれの画像は、カメラ200が左から右へと移動する状態で川岸から対岸を撮影した動画映像に基づいて生成されている。具体的には、川岸沿いを移動する車両の窓から、カメラ200を用いて動画映像を撮影したものである。このため、左から右へカメラ200が移動する際には、上下方向の振動やずれなどが発生している。従って、カメラ200で撮影された動画映像は、完全な平行移動を伴う映像ではない。
図5(b)に示すスライス画像では、x=x0におけるスライス画像であって、横軸tの左端がt=1であり、右端がt=175(=T)となる。図5(a)のフレーム画像と、図5(b)のスライス画像とを比較する。フレーム画像に写っている撮影対象物のうち、カメラ200の撮影位置から遠い位置に存在する撮影対象物(例えば、川の対岸の建物や土手等)は、スライス画像においても、フレーム画像と同じような状態で記録されて(写って)おり、t軸方向への画像の圧縮(画素間距離の圧縮)はあまり行われていない。一方で、カメラ200の撮影位置から近い位置に存在するフレーム画像の撮影対象物(例えば、川の手前側の芝や地面等)は、スライス画像において、フレーム画像よりも画像が圧縮(画素間距離が圧縮)された状態で記録されて(写って)いる。
図5(a)(b)を比較すると、最も遠い位置にある撮影対象物のフレーム画像からスライス画像への圧縮率(画像の圧縮率、画素間距離の圧縮率)は1倍程度であるのに対して、最も近い位置にある撮影対象物の圧縮率(画像の圧縮率、画素間距離の圧縮率)は、4倍程度になっている。この圧縮率の違いは、カメラ200からの距離に比例するものとなっている。さらに、この圧縮率は、単純に1倍から4倍までの4段階が基準となるのではなく、アナログ的に、つまり、連続的(多段的)に距離に比例させて判断することができる。従って、カメラから撮影対象物までの距離を、圧縮状態に基づいて、より広いダイナミックレンジ(尺度・範囲)で連続的(多段的)に求めることが可能になる。
この点において、既に説明したように、ステレオビジョン法(2つの画像の視差を利用して撮影対象物の距離を算出する方法)では、カメラ間の距離が小さい場合、遠方と近場との距離の算出精度に関して、視差(disparity)の範囲を、4段階程度の違いしか求めることができない。このため、通常のステレオビジョン法では、距離の算出精度を十分に確保することが難しかった。カメラ間の距離を大きくする場合には、原理的に視差(disparity)の値を大きくとることができるが、2つの画像上で対応する画素(ピクセル)を検出することが困難となる。しかしながら、本実施の形態に係る画像距離算出装置100では、4段階程度ではなく、連続的(より多段的)に、遠方と近場との距離の算出精度を高めることができ、より広いダイナミックレンジで距離を求めることが可能になる。
このように、スライス画像には、撮影対象物の画像の圧縮状態によって、動的視差(モーションパララックス)の累積的状態が明示的かつ静的に表現されている。画像距離算出装置100では、動的視差の累積状態が表現されるスライス画像の圧縮状態(スライス画像の画素毎の圧縮状態)に基づいて、フレーム画像の画素毎に、カメラ200から撮影対象物までの距離を求める。本実施の形態では、画像距離算出装置100を用いて、カメラ200から撮影対象物までの距離を、画素毎に求める方法を、累積視差法と称する。
図6は、従来のステレオビジョン法(2つの画像の視差を利用する方法)と、従来のEpipolar-Plane-Image(EPI)法と、累積視差法との違いを示した表である。ステレオビジョン法では、2つのカメラで同時に撮影された2つの画像を用いて、それぞれの画像から特徴点の抽出を行い、あるいは線的な動的計画法によりマッチングを行う。視差は2つの画像に黙示的に示されており、その視差を2つの画像のマッチングに基づいて求めることによって、撮影対象物までの距離を求めることが可能になる。但し、求められる距離のダイナミックレンジは比較的狭いという特徴がある。
また、EPI法は、スライス画像の中から線分を抽出し、各線分が撮影された目標対象物の1点に対応し、抽出された線分の傾きが距離に対応する方法である。抽出される線分の数は、物体を表す点の数より極めて少ないので、撮影された目標対象物を示す点は、まばらにしか得られない。そのためのテクスチャを表面にマッピングすることが困難となっている。
EPI法に関しては、下記の文献が参考となる。
[1] 山本正信、連続ステレオ画像からの3次元情報の抽出、電子情報通信学会論文誌D、Vol. J69-D, No. 11, p1631-1638, 1986年11月25日
[2] Robert C. Bolles, H. Harlyn Baker, David H. Marimont,"Epipolar-Plane Image Analysis: An approach to Determining Structure from Motion", Inter. Journal of Computer Vision, 1, pp. 7-55, (1987)
一方で、累積視差法では、フレーム画像とスライス画像を用いて、後述する動的計画法(ライン対画像DP(dynamic programming)マッチング法)によりマッチングを行う。スライス画像には、圧縮状態によって動的視差の累積が明示的かつ静的に示されている。この圧縮状態を利用することによって、撮影対象物までの距離を求めることができる。求められる距離のダイナミックレンジは、従来のステレオビジョン法に比べて広いという特徴がある。
図3では、カメラ200が一定の速度vで移動しながら、撮影対象物を撮影する場合について説明した。一方で、カメラ200が、空間の座標点(x,y)を時間tに依存して変化する変化量v(x,y,t)Δtを速度(画素速度の動的視差)として示す。そして、カメラ200の速度は、画面上の画素(ピクセル)の動く速度と考えることができる。従って、画像(x,y)のx軸の変化Δx(t,y)=x(t+Δt,y)−x(t,y)が速度となる。このため、図3と同様に、Δx(t,y)sinθ=(x(t+1,y)−x(t,y))sinθ=dΔθが成立することになる。
ここで注意すべき点として、まず、終端時間Tにおける累積された動的視差(累積モーションパララックス)が、x(T,y′)として最初に計算によって得られる。次に、x(T,y′)を決めている各x(T,y′)が、事後的なバックトレース処理によって得られる。図5(a)(b)は、その後に、その時間差分を作成する場合のモデルとして示されている。一方で、図3は、Δθが視差(disparity)として得られることを前提とした図である。従って、図3に示したステレオビジョンでは、視差の累積という概念が入っていない。
本実施の形態に係る画像距離算出装置100では、累積された動的視差(累積モーションパララックス)と呼ぶ概念を考える。まず、スライス画像の画素g(t,y)に対応する、フレーム画像の画素をf(x(t,y),y,t0)とする。また、スライス画像の画素g(t+1,y)に対応するフレーム画像の画素を、f(x(t,y)+Δx(t,y),y,t0)とする。本実施の形態に係る画像距離算出装置100では、カメラ200を横方向(略水平方向)に移動して撮影している。このため、スライス画像の横軸tにおいて、tが1つだけ増加する場合、フレーム画像の画素fでは、tの増加に対応して、Δx(t,y)だけ画素の座標(x軸方向の座標)が変化することになる。
ここで、フレーム画像の画素のx軸方向への移動距離Δx(t,y)の値は、カメラ200から撮影対象物までの距離によって大きく異なる。すなわち、フレーム画像の画素(x,y)に示される(写っている)撮影対象物が、カメラ200から遠方に存在する場合、フレーム画像における画素の移動距離Δx(t,y)の値は1に近い値となる。一方で、撮影対象物がカメラ200から近い位置に存在する場合、フレーム画像における画素の移動距離Δx(t,y)の値は、1よりも大きな値になる。
図7は、スライス画像の画素に対応するフレーム画像の画素の位置を、黒丸(●)を用いて模式的に示した図である。図7の縦は、フレーム画像のy軸に対応し、図7の横は、フレーム画像のx軸に対応している。黒丸は、スライス画像の画素に対応するフレーム画像の画素を示している。図7の横方向には、説明を簡単にするために20個の画素(黒丸)が示されており、隣り合う画素(黒丸)の間隔が広くなったり、または、狭くなったりしている。画素(黒丸)1つが各時間t(t=1〜20)のときのスライス画像の画素を模式的に示している。最も左側に位置する画素(黒丸)は、時間t=1のときのスライス画像の画素に対応するフレーム画像の画素の配置(スライス画像の画素に対応する画素の配置位置)を示している。また、各列の最も右側に位置する画素(黒丸)は、最後の時間t=20のときのスライス画像の画素に対応するフレーム画像の画素の配置を示している。スライス画像における最後の時間t(=20)に該当するフレーム画像の画素の点は、スポッティング点と称される。
本実施の形態に係る画像距離算出装置100では、カメラ200を横方向(略水平方向)に移動させて撮影を行っているため、スライス画像には、時間t=1から時間t=20までの20単位時間分の画素が横方向に記録される。一方で、図7に示すように、フレーム画像では、スライス画像に記録される20個の画素(黒丸)の間隔が、y軸毎に異なった間隔となる。間隔が異なる理由は、上述したように、カメラ200から撮影対象物までの距離に応じて、Δx(t,y)が異なるためである。従って、図7において、隣り合う画素(黒丸)の間隔が狭い撮影対象物は、カメラ200からの距離が遠いことを示しており、隣り合う画素(黒丸)の間隔が広い撮影対象物は、カメラ200からの距離が近いことを示している。
また、時間t=20となるスポッティング点の位置が、y軸毎に異なる理由は、y軸毎に求められるΔx(t,y)の累積が異なるためである。ある画素(黒丸)の座標x(t,y)とその右側の画素(黒丸)の座標x(t+1,y)との差がΔx(t,y)となるため、スポッティング点の画素(T=20)の座標x(T,y)は、隣り合う画素の差Δx(t,y)を累積した座標、つまりΣΔx(τ,y)(但し、τはτ=1からτ=t−1までの和)で示すことができる。このことから明らかなように、スライス画像の最も右側の端(動画映像の最後の時間)の画素(スポッティング点)は、撮影された動画映像の動的視差を累積的に含んだ画素となる。
図8(a)は、横方向(略水平方向)に移動するカメラ200によって、時間t=1からt=175までの175単位時間だけ撮影された動画映像に基づいて求められた、時間t=1のときのフレーム画像を一例として示している。また、図8(b)は、図8(a)に示したx0の点(線)において、時間t=1からt=175までの映像に基づいて生成されたスライス画像を一例として示している。
図8(b)に示したスライス画像には、図8(a)に示したフレーム画像のx0上の各画素の時間t=1からt=175までの変化状態が静的に記録されている。図8(a)に示したスライス画像をx0から右方向に確認しつつ、スライス画像との違いを調べると、フレーム画像に対応するスライス画像の一部画像が圧縮(画素が圧縮)された状態となっている。この圧縮の程度は、カメラ200から撮影対象物までの距離によって異なっている。
また、図8(b)の左側に示された上下一対の曲線(曲点線)L1およびL2は、図8(a)に示したフレーム画像のx0における、y座標上の2点に対応したスライス画像の画素の配置状態であって、フレーム画像の画素に対応する画素の配置状態を抽出したものである。カメラ200が撮影対象物に対して完全に水平(平行)に移動しているのであれば、各線(点線)は水平な直線(直点線)となる。しかしながら、本実施の形態に係る画像距離算出装置100では、カメラ200が完全に水平(平行)ではなく、上方向(y方向)に振動しながら動画映像が撮影されているため、曲線状となっている。一般に、カメラ200が対象物のシーンに対して、完全に水平に移動することは考えられないので、上述したように曲線となることは普通に生じ得る。
また、この上下の曲線上のスポッティング点(時間t=175=T)に対応する画素xを、図8(a)のフレーム画像上の上下位置に、それぞれ、白抜き矢印によって示す。図8(b)の左側に示された曲線の、始点(t=1の画素)から終点(t=175=Tの画素)までの距離は、スライス画像の幅とほぼ等しい長さになっている。しかしながら、フレーム画像におけるそれぞれのスポッティング点(t=175=Tの画素の位置)は、x0からの長さが異なっている。フレーム画像の上側に示されたxのスポッティング点におけるx0からの長さに比べて、フレーム画像の下側に示されたxのスポッティング点におけるx0からの長さの方が長くなっている。この長さは、上述したΔx(t,y)の累積が、y軸の値毎に異なるためである。
このため、フレーム画像のyの値を固定した点であって、時間tがt=1からt=T(=175)までの各時間の点x(1,y),x(2,y),・・・,x(T,y)に対応する点をスライス画像の画素から求めることができれば、フレーム画像の画素とスライス画像の画素との対応関係を求めることが可能になる。
図9は、所定のy′における、フレーム画像の画素線上の画素x(t)と、スライス画像の画素g(t,y)との対応を模式的に示した図である。なお、フレーム画像の画素線上の画素x(t)は、t=1からt−1までの動的視差Δx(t)の累積からなっている。図9の左下の図は、x(t)とtの対応が非線形であることを示しているが、この図では右図のyの軸は描かれていない。フレーム画像のy′を固定した線上の画素点とスライス画像との対応関係を求めるために、画像距離算出装置100のCPU104では、ライン対画像のDP(Line-image continuous dynamic programming)と称するマッチング法を用いる。CPU104では、まず、ライン対画像のDPマッチング法(動的計画法)を用いることによって、フレーム画像のy′におけるx(t)の値、つまり、1次元の累積された動的視差Δx(t)と、t軸とy軸との2次元からなるスライス画像g(t,y)とのそれぞれの画素毎の最適対応関係に基づいて、時間t=Tにおけるフレーム画像のスポッティング点を求める。その後、CPU104は、求められたスポッティング点からt=1に向かって、最適点を遡るバックトレース処理を行うことによって、スライス画像の画素とフレーム画像の画素との対応関係の全て、すなわち、t=1からt=Tまでの全ての対応点を求める処理を行う。
ライン対画像のDPマッチング法は、フレーム画像におけるy軸の値をy′に固定したy座標上(ライン上)のxと、(t,y)の2次元の画像に対して、動的計画法を用いることを特徴としている。このようにy軸の値を固定することによって、フレーム画像のライン上の始点画素と、スライス画像の始点画素を一致させることとなる。フレーム画像においてy軸の値を固定することが、これまで述べたDPマッチングの条件設定となる。
なお、図10に示すライン対画像のDPマッチング法は、既存の画像対画像のDPマッチング法を基準としつつ、一方の画像のyの値をy′に固定して得られる線パターンのみを縦に並べることで、側面の画像を構成している。また、他方の画像のy=y′を始点として、3次元空間で、最適値を計算し、側面上の点で最適累積値を見出すことで、始点から最適累積値を与える点をスポッティング点と定めることが可能となっている。側面をなす画像は形式的には2次元画像であり、他方側面をなす画像も2次元画像であるので、画像と画像のマッチングであるように見えるが、側面の画像が1つの同じ線状の系列からのみ構成されるので、実質的にはライン対画像のマッチングとなっている。かつ、スポッティング機能も付与されている。従来から知られている、一の1次元のラインと他の1次元のラインとのマッチングからなるライン対ラインのDPマッチング法や、一の2次元の画像と、他の2次元の画像とのマッチングからなる画像対画像のDPマッチング法との中間に位置するアルゴリズムとなっている。
ライン対ラインのDPマッチング法や、画像対画像のDPマッチング法(2次元画像と2次元画像との対応関係を求める動的計画法)に関しては、例えば、『岡隆一,外2名「連続DPの一般スキームについて−画像スポッティングのための全画素最適マッチング−」,信学技報,電子情報通信学会,IEICE Technical Report, PRMU2010-87,IBISML2010-59 (2010-09)』や特開2010−165104号公報において詳細な説明がなされており、既に知られた技術である。このため、これらのDPマッチング法を応用することによって、ライン対画像のDPマッチング法による処理を実現することが可能である。但し、この実現には前述したように、「一方の画像のyの値をy′に固定して得られる線パターンのみにする」等の工夫を必要とする。
図10は、ライン対画像のDPマッチング法のアルゴリズム(DPマッチングアルゴリズム)を説明するための図である。ライン対画像のDPマッチング法のアルゴリズムとして、様々な局所パス群をとることによって構成を考えることができる。図10に示す図は、図9に示した対応関係の探索を実現したものになっている。図10では、3次元空間の演算空間(演算スペース)を考えて、底面に(t,y)のスライス画像に対応する座標(2次元平面画像の座標)を設定し、左側面に、フレーム画像のy′を固定した長さxの画素列(ピクセル列:1次元のライン)と同じものを、整列させることにより、求めたいフレーム画像の対応する座標が得られるように設定する。固定されたy′は、実質的にフレーム画像の縦軸の座標に対応するため、左側面は、フレーム画像の1つのライン画像と同じものを、y軸方向に単に並べたものである。底辺の(t,y′)=(1,y′)を始点として動的計画法によるマッチング(DPマッチング処理)を行うことにより対応関係を求めることができる。同時に、累積最適値を与える(T,x,y)は側面上の一点であるが、このとき、xは区間[1,X]の一点であることで、スポッティングを行うといえる。
また、図10に示されているように、本実施の形態に係るライン対画像のDPマッチング法アルゴリズムでは、時間軸を示すt軸とx軸との関係として、最大1対4の対応関係が大局的に許容できるものとして設定されている。具体的に、図10の時間を示すt軸の値は、t=1からt=Tまでの範囲で規定されており、x軸の値は、x=1からx=4Tまでの範囲で規定されている。つまり、x軸の最大値は、t軸の最大値Tの4倍となっている。
このx軸とt軸のとるべき区間長の関係は、フレーム画像およびスライス画像に写っている撮影対象物の画像毎の圧縮の程度に基づいて決定される。つまり、撮影対象物からカメラ200までの距離が近いものと遠いものとの距離の比によって設定される。これは、図7を用いて説明したように、スライス画像とフレーム画像との対応する画素(黒丸)の隣の画素(黒丸)までの間隔が、カメラから撮影対象物までの距離により異なっており、この間隔の違いが、カメラから撮影対象物までの距離の違いとして示されているためである。従って、図7を示して説明したように、スライス画像において隣接する2つの画素が、フレーム画像において何ピクセルだけ離れて写っているかによって、カメラから撮影対象物までの距離の違いを求めることができ、このピクセルの伸縮の累積に基づいて、上述したx軸とt軸とのとるべき区間長の対応関係を求めることができる。この累積フレーム長の最大値に基づいて、x軸の最大値の値を、Tの何倍にするかが決定される。局所的なピクセルの伸縮の程度は、Δx(t,y)=x(t,y)−x(t−1,y)によって求められる。
図10に示した動的計画法に基づくマッチングアルゴリズム(DPマッチングアルゴリズム)は、局所パスの組み合わせにより各種考えることができるが、画像距離算出装置100では、一例として次式で示されるものを用いることにする。これは局所的なピクセルの収縮、フレーム画像からスライス画像への伸縮が、1倍から4倍までを許すものとなっている。局所的伸縮が1倍から4倍までを許すので、大域的にも1倍から4倍を許すものとなっている。DPマッチングの以下の式は、局所的変動が1倍から4倍までを許すものであることが表現されている。一般に、許される倍数の範囲は動的計画法における数式の中で任意に設定できる。
まず、図10に示した3次元空間の座標を(x,y,t)で示すと、左側面のライン(フレーム画像)は、既に説明したように、y′を固定し、f(x,y′,t0)、1≦x≦Xの乱パターンを定め、この同じものを、y軸に上に置いたものである。図10に示すr(x)を用いて、
f(x,y′,t0)=r(x)と設定すると、側面の画像は、より正確には、r(x,y),1≦x≦X,1≦y≦Yとなる。
なお、r(1,y′)=g(1,y′)という制約条件が設定されている。
また、スライス画像はg(t,y)で示す。さらに、DPマッチングアルゴリズムにおいて求める局所距離をd(t,x,y)とする。
局所距離は、d(t,x,y)=|g(t,y)−r(x)|で求められる。
さらに、y=y′において、D(1,1,y′)=d(1,1,y′)と初期設定を行い、(1,1,y′)を除く、全ての(t,x,y)に対して、D(t,x,y)=∞として初期設定を行う。
さらに、t,z,yの値は、
t∈[1,T],y∈[max(1,y′−t),min(y′+t,Y)],
x∈[t,4t−3](=[t,4(t−1)])とする。
この条件に基づいて、D(t,x,y)の値を、下記の式2を用いて求める。
・・・式2
次に、y=y′において、w(1,1,y′)=1と初期設定を行い、
(1,1,y′)を除く、全ての(t,x,y)に対して、x(t,x,y)=0として初期設定を行う。この初期設定に基づいて、以下の式3を用いて、w(t,x,y)を求める。
・・・式3
上述したD(t,x,y)の式2は、局所距離の非線形のマッチングによる累積の式を示している。非線形の内容は、フレーム画像の線分が、スライス画像において、x軸方向に、1倍から1/4倍の範囲で縮小し、y軸方向へは、y′から上方向に最大T画素(ピクセル)、下方向に最大T画素(ピクセル)、時間Tにおいて変動を許容するものである。このy軸への変動の許容は、カメラ200が撮影対象物に対して完全に平行に動いていないことを想定したものである。
局所距離の最適累積値は、図10に示した左側面のx=Tからx=4Tまでの範囲で求められる。また、この最適累積値に至る処理において用いられる係数の和は、全てのx,y,tにおいて計算されるが、上述したw(t,x,y)が、係数の和に関する漸化式である。このw(t,x,y)の時間tの終端であるw(T,x,y)は、累積値D(T,x,y)の正規化のために用いられる。ここで、正規化とは、累積値に至るパスの長さの違いを正規化することを意味している。
以上の計算を(x,y,t)の3次元空間において行った(図10に示した直方体中で終了した)後に、CPU104では、以下に示す式4に基づいて、スポッティング点(T,x ,y )を計算する(図2のS.3)。スポッティング点は、図7において説明したように、スライス画像の最後の時間Tの画素に対応する、フレーム画像の画素を表している。しかしながら、スライス画像の(t,y)=(1,y′)からt=Tに至るマッチングの対応線(対応するラインr(x))の終端が、フレーム画像の所定のy′におけるx軸方向のどの画素(画素列のどの画素)に一致するか、事前に分かっていない。このため、その一致点を決定する(スポッティングする)ためにスポッティング点の計算が行われることになる。スポッティング点の計算は、次の式4で示される。
・・・式4
スポッティング点の計算式(式4)における「arg」は、minにする変数を取り出す関数を示している。
スポッティング点(T,x ,y )が計算された後に、画像距離算出装置100のCPU104では、スポッティング点に至る(t,y)=(1,y′)からの軌跡(trajectory)を、バックトレース処理によって求める(図2のS.4)。
バックトレース処理とは、バックトレースの最後の点を(1,1,y′)として、t=T,T−1,T−2,・・・,1と、tの値をTから1ずつ低減させることによって、スポッティング点(T,x ,y )から(1,1,y′)までの軌跡を求める処理である。バックトレース処理は、以下の式5に基づいて行われる。
・・・式5
バックトレース処理によって、フレーム画像の所定のy′におけるx軸方向の画素列(ライン)のどの画素が、スライス画像における時間tの画素に対応するかを算出することができる。ここで、説明の便宜上、フレーム画像における時間Tの対応点(スポッティング点)を、x(T,y′)と記載する。このスポッティング点は、所定のy′によって異なった画素位置になる。
さらに、y′におけるフレーム画像のスポッティング点を、y′を省略してx(1),x(2),・・・,x(T)と示すと、フレーム画像における時間tのスポッティング点の位置変化を、Δx(t)と示すことができる。カメラ200から撮影対象物までの時間tにおけるなす角Δθ(t)とする。Δθ(t)の単位はラジアンである。このなす角Δθ(t)と、上述した時間tにおけるスポッティング点の位置変化Δx(t)とを比較すると、フレーム画像におけるx方向のΔθ(t)と、スポッティング点の位置変化Δx(t)とは、次の式6の関係を有するものと判断できる。
・・・式6
つまり、Δx(t)は、時間tにおける動的視差(モーションパララックス)に等しいものととらえることができる。従って、累積された動的視差は、次の式7で示すことができる。
ここで、重要なことは、スポッティング点x(T)が先に求まり、その後に、バックトレース処理によって、x(t),t=1,・・・.T−1が求まることである。従って、上記の式6および次式の式7の関係式は事後的に成立するものであるといえる。
・・・式7
但し、x(0)=0である。x(T)は、フレーム画像の所定のy′におけるx軸方向の画素列(ライン)において、時間Tまで累積された動的視差の値を示すことになる。また、x/Tは、累積された動的視差の標準化された値に該当する。本実施の形態に係る画像距離算出装置100では、上述した動的視差の累積を使うことによって、フレーム画像における各画素の距離を算出することが可能になる。
次に、フレーム画像における各画素の距離の求め方について説明する。
フレーム画像とスライス画像との間には、フレーム画像からスライス画像への非線形となる縮小(画素間距離の圧縮、画像の圧縮)が存在している。この縮小(画素間距離の圧縮)の程度を距離に変換することによって、フレーム画像の各画素(各点)において、カメラ200から撮影対象物までの距離を算出することが可能になる。ここで、フレーム画像とスライス画像との対応関係を考える場合、2つの画像の間には、オクルージョン(遮蔽)の部分が存在している場合もある。オクルージョンとは、3次元空間において、手前にある物体が背後にある物体を隠して見えないようにする状態を意味する。つまり、移動するカメラによって撮影された撮影対象物が、手前にある物体によって、一時的に隠れてしまうことにより、フレーム画像とスライス画像との1対1の対応関係が成立しない状態を意味する。しかしながら、オクルージョンが発生する部分は一部であると共に、前後関係から各画素の距離は類似した部分となることが多い。このため、2つの画像における対応問題を考えて、画素を距離に変換するパラメータを抽出する。すなわち、フレーム画像とスライス画像との対応関係が成立すれば、フレーム画像のそれぞれの画素について、フレーム画像の画素に写っている撮影対象物からカメラ200までの距離を求めることが可能になる。
本実施の形態では、フレーム画像とスライス画像との対応関係を求めるために、2つの段階に分けて対応関係を求める。1つ目の対応関係は、複数の画素からなる「領域」の対応関係である。そして、2つ目の対応関係は、それぞれの画素毎(ピクセル毎)の対応関係である。2つの段階に分ける理由として、1つ目については、シーンのカメラからの距離は領域単位でほぼ類似していることと、領域の対応を行う方が最初から画素単位の対応を行うより容易であることである。2つ目については、1つ目の結果をもとに、より詳細な対応を行うことができるためである。それぞれの段階で画素について距離が求められる。1つ目の段階では、領域の画素は全て同じ距離となる。最終的には2つの段階の結果を統合する。
本実施の形態に係る画像距離算出装置100で用いたライン対画像のDPマッチング処理は、原理的に画素(ピクセル)毎の対応を求めるものである。しかしながら、フレーム画像とスライス画像との関係には、オクルージョンの問題があり、さらに、ライン対画像のDPマッチング処理には、非線形性の存在があることから、画素(ピクセル)の対応を、完全かつ正確に行うことが難しいという問題がある。そのため、領域の対応関係によって距離の値を領域単位で決定すること(領域分割処理)を、1つ目の段階の最初の処理として考える。既存の領域分割手法のうち最も有力な手法の一つとして、mean-shift法(中間値シフト法)と呼ばれる方法が知られている。mean-shift法は、広く知られた領域分割手法であって、Open CV(Open Source Computer Vision Library)と呼ばれる、広く公開されたオープンソースのコンピュータビジョン向けのライブラリによって提供されている。このため、誰でもmean-shift法を利用することができる。
画像距離算出装置100のCPU104は、フレーム画像とスライス画像とに、mean-shift法(領域分割処理)を適用する(図2のS.5)。このとき、CPU104では、共通したパラメータ(共通した分割基準)を用いて、領域分割処理を行う。適用するパラメータが異なる場合には、対応する分割領域を求めることが難しくなるためである。
図11(a)(b)は、フレーム画像とスライス画像とに、mean-shift法を適用した後の画像を示している。図11(a)(b)に示したフレーム画像およびスライス画像と、図5(a)(b)に示したフレーム画像およびスライス画像とを比較すれば明らかなように、図11(a)(b)に示したmean-shift法が適用された(領域分割処理後の)フレーム画像およびスライス画像では、同じ領域と判断された部分が共通した色で塗りつぶされている。この色の違いによって、同じ領域および異なる領域の判断を行うことが可能になる。
mean-shift法の適用により、同じ領域と判断される部分は、ほぼ同じ距離(カメラ200から撮影対象物までの距離)を有するものであると考えることができる。また、mean-shift法が適用されたフレーム画像とスライス画像とを比較すると、2つの画像には非線形性が含まれているが、分割された領域の作られ方は、類似していると考えることができる。従って、画像距離算出装置100のCPU104では、mean-shift法によって領域分割されたフレーム画像とスライス画像とに基づいて、ライン対画像のDPマッチング処理およびバックトレー処理による画素対応の結果を用いて、2つの画像の領域対応を求める。
図12は、スライス画像とフレーム画像との領域対応を説明するための模式図を示したものである。ライン対画像のDPマッチング処理およびバックトレース処理により、スライス画像の各画素と、フレーム画像の各画素との対応関係が求められている。従って、CPU104では、図12に示すように、mean-shift法により分割されたスライス画像の領域に位置する画素(ピクセル)と、同じくmean-shift法により分割されたフレーム画像の領域に位置する画素(ピクセル)とを比較する。そして、CPU104は、対応する画素(ピクセル)の数が最も多い領域が、互いに対応する領域(対応領域)であると判断する(図2のS.6:対応領域決定処理)。
つまり、図13(a)に模式的に示す例のように、スライス画像の領域A1対応するフレーム画像の領域を求める場合に、CPU104は、スライス画像の領域A1に存在する4つの画素(黒丸)に対応するフレーム画像の画素(黒丸)を求めて、対応する画素(黒丸)が最も多く含まれるフレーム画像の領域を求める。図13(a)では、領域A1の画素(黒丸)に対応する画素が最も多く含まれるフレーム画像の領域は領域A2であるため、CPU104は、スライス画像の領域(分割領域)A1に対応するフレーム画像の対応領域は、領域(分割領域)A2であると判断する。同様にして、CPU104は、スライス画像の領域B1の画素(黒丸)に対応するフレーム画像の画素(黒丸)が最も多く含まれる領域B2を、対応する領域(対応領域)と判断し、スライス画像の領域C1の画素(黒丸)に対応するフレーム画像の画素(黒丸)が最も多く含まれる領域C2を、対応する領域(対応領域)と判断する。
次に、CPU104は、フレーム画像の各領域の各画素に付加される距離の値の算出を行う。この距離の算出には、前述したように、2つの段階に分けて計算が行われる。まず1つ目は、mean-shift法によって領域分割された領域毎の距離の値の算出である(図2のS.7)。この距離の値をグローバル距離(領域外距離)と称する。2つ目は、各領域内の画素(ピクセル)毎の距離の値の算出である(図2のS.8)。この距離の値をローカル距離(領域内距離)と称する。
まず、グローバル距離の算出を行う。mean-shift法によって分割されたフレーム画像の領域の大きさと、スライス画像の領域の大きさとの違いは、カメラ200から撮影対象物までの距離に関係する。カメラ200から撮影対象物までの距離が遠い場合には、フレーム画像の領域の大きさに比べて、スライス画像の領域はある程度の大きさを維持しており、領域の大きさを基準とした圧縮率は小さい傾向がある。一方で、カメラ200から撮影対象物までの距離が近い場合には、フレーム画像の領域の大きさに比べて、スライス画像の領域の大きさが比較的小さくなり、領域の大きさを基準とした圧縮率が大きくなる傾向がある。従って、スライス画像の対応する領域の横軸の長さの平均値と、フレーム画像の対応する領域の横軸の長さの平均値との比率に基づいて、対応する領域の圧縮率を求める。なお、領域の横軸の長さの平均値ではなく、最頻度の長さを求めて比率を算出することにより、圧縮率を求めることも可能である。
例えば、図12に示すように、フレーム画像の1つの領域(領域A2)内の横線分を観察して、領域内の線分の終点に近いところに、スライス画像の時間t2に対応するx(t2)が存在し、始点に近いところに時間t1に対応するx(t1)が存在する場合には、x(t2)−x(t1)が、その区間における累積された動的視差の差分を示すことになる。一方で、スライス画像の対応する領域(領域A1)の対応する線分の長さは、t2−t1である。
スライス画像の対応領域の横軸方向の平均長をpとし、フレーム画像の対応する領域の横軸方向の平均長をqとする。このようにpとqとを設定すると、スライス画像に対するフレーム画像の拡大率は、q/pで示すことができる。また、本実施の形態に係る画像距離算出装置100のライン対画像のDPマッチング処理では、図10に示したように、フレーム画像のx軸の値が、時間tの4倍の値で対応付けられている(x=4T)。このため、q/pは、1≦q/p≦4となる。現実の世界におけるカメラ200から撮影対象物までの距離と、q/pの値との対応関係を示すデータを、予め用意することができれば、q/pの値(比率q/pの値)から、フレーム画像における分割領域(対応領域)の距離を求めることができる。このq/pの値と、カメラ200から撮影対象物までの現実の距離との対応関係を示すデータの一例を、図13(b)に示す。
また,領域rにおいて定まるpおよびqの使い方として,pに対するqの割合を示すq/pを比率値として求めるだけでなく、qに対するpの割合を示すα=p/qを比率値として求めて使用してもよい。図13(b)においては、横軸をα(=p/q)で示し、縦軸を距離zで示している。
図14は、p,qと距離zとの関係式を用いて、分割領域(対応領域)毎のグローバル距離を一例として示した画像である。図14に示す画像では、mean-shift法によって分割された領域を基準として、グローバル距離が近いものほど、明るい色で表示されており、グローバル距離が遠いものほど、暗い色で示されている。従って、ユーザは、分割領域の色彩に対応するグローバル距離を確認することによって、カメラ200から撮影対象物までの距離を、分割領域(対応領域)毎に判断すること可能になる。
次に、ローカル距離の算出について説明する。グローバル距離の算出によって、分割領域(対応領域)毎の距離は算出することができる。しかしながら、分割領域(対応領域)内の画素毎の詳細な距離を求めるためには、さらに処理を行う必要がある。このように、分割領域(対応領域)内の画素毎の詳細な距離を、分割領域(対応領域)内における相対的な距離として求めるために、CPU104では、ローカル距離の算出処理を行う。
ここで、フレーム画像とスライス画像との対応する分割領域の線分をそれぞれ考える。それぞれの分割領域の線分では、線分の始点と終点とが既に定まっている。これは、mean-shift法によって領域分割されたスライス画像の分割領域と、フレーム画像の対応領域(分割領域)との対応関係が既に明確になっているため、それぞれの分割領域の対応する縁を明確に求めることができるためである。従って、対応する分割領域の線分の始点から終点まで(一端の縁から他端の縁まで)のそれぞれの画素の対応関係(対応する画素)を、従来より用いられている両端固定のDPマッチング処理およびバックトレース処理によって求めることができる。
例えば、スライス画像の対応する分割領域の線分を、a(i)、但しi=1,2,・・・Iとし、フレーム画像の対応する対応領域(分割領域)の線分を、b(j)、但しj=1,2,・・・Jとする。局所距離d(i,j)をd(i,j)=|a(i)−b(j)|とすると、DPマッチング処理を行うことによって、次の式8により、D(I,J)が求められる。
・・・式8
この式8に基づいてD(I,J)を求めた後に、(I,J)から(1,1)まで、バックトレース処理を行うことによって、スライス画像の分割領域とフレーム画像の対応領域とにおける、2つの線分の要素の対応関係を求めることができる。
この場合、j軸の対応系列を、a(1),a(2),a(3),・・・a(I)とするとき、a(j)−a(j−1)が局所的な動的視差(motion parallax)を示すものになる。この局所的な動的視差は、画素単位(ピクセル単位)の動的視差であって、この局所的な動的視差によって、対応する領域内における画素単位(ピクセル単位)の距離を求めることが可能となる。つまり、図7において説明したように、動的視差の違いに伴って、フレーム画像の対応領域における隣り合う画素の間隔が広くなったり狭くなったりする。
具体的には、隣り合う画素の間隔が狭い場合には、カメラ200から撮影対象物までの距離が遠いことを示しており、隣り合う画素の間隔が広い場合には、カメラ200から撮影対象物までの距離が近いことを示している。このため、フレーム画像の対応領域(分割領域)における隣り合う画素の間隔(画素間距離)によって、対応領域(分割領域)における相対的な距離の違いを判断することが可能になる。
以上の説明により求められたグローバル距離とローカル距離とに基づいて、フレーム画像の画素毎に、カメラ200から対応する画素に写っている撮影対象物までの距離を求めることができる。具体的に、CPU104では、対応する画素が含まれる対応領域(分割領域)のグローバル距離に対して、当該対応領域(分割領域)で求められたローカル距離を加算することによって、フレーム画像の画素毎に、詳細な距離を算出する(図2のS.9)。
また、実際にフレーム画像の画素毎に、カメラから撮影対象物までの距離を算出する場合には、上述したオクルージョン(遮蔽)に対する対応を行うことが好ましい。本実施の形態では、時間tが1から175までの範囲で撮影された映像に基づいて、スライス画像が生成されている。つまり、スライス画像は、時間tが1から175までの175枚のフレーム画像に基づいて生成されていることになる。このため、フレーム画像に写っている撮影対象物が、スライス画像では写っていなかったり、反対にフレーム画像に写っていない撮影対象物が、スライス画像に写っている場合が生じ得る。このようなオクルージョンの発生は、スライス画像を生成する動画映像の時間が長くなればなるほど、頻繁に発生するおそれがある。オクルージョンが発生すると、フレーム画像における対応領域と、スライス画像における分割領域との対応関係の精度が劣化する可能性がある。
図15(a)〜(h)は、フレーム画像においてx軸上の座標x (S=1,2,3,・・・)を順次決定して、複数枚のスライス画像を用いて順番にフレーム画像の画素毎の距離データ(スライス画像に対応するフレーム画像の画素)を算出した場合を示した図である。動的計画法によるマッチング処理によって、最初に計算されたフレーム画像のスポッティング点をx(T,y)(このスポッティング点x(T,y)は、スライス画像の画素(T,y)に対応する)とする。このスポッティング点x(T,y)のy軸の点列(x(T,1),x(T,2),x(T,3),・・・,x(T,y),・・・,x(T,Y))を、メディアンフィルタ(median filter)を用いて平滑化する。この後、次のスライス画像における区間[1,T]と、このスライス画像の区間に対応する次のフレーム画像の区間[x,x+x(T,y)]との間で、固定区間における動的計画法のマッチング処理を行い、区間内におけるフレーム画像の対応点を計算する。この処理を繰り返すことによって、複数枚のスライス画像を用いて、順番にフレーム画像の対応する画素毎の距離データを算出する。なお、メディアンフィルタで平滑化した後に求められるフレーム画像のスポッティング点の最小値が、次の処理におけるフレーム画像の区間の開始値xとなる。図15(a)〜(h)では、繰り返し処理が行われた回数をSとして、フレーム画像におけるx軸上の座標x (S=1,2,3,・・・)が示されている。図15(a)〜(h)には、スライス画像に基づいて、距離の算出が行われたフレーム画像の範囲が、少しずつ広がる状態が示される。
また、図16(a)は、複数枚の画像に基づいてモザイキング処理が行われた画像が示されており、図16(b)は、図16(a)に示した画像に基づいて、領域毎にグローバル距離が算出された状態の画像に、フレーム画像の各ピクセルがもつR,G,Bの値を付加し、かつ、このデータを正面からではなく、斜め方向の視点を基準として示してある。図16(b)に示すように、3次元の距離情報が、領域毎に抽出されている。
また、カメラの移動に伴ってフレーム画像の横軸(x軸)方向の長さが長くなってしまうおそれがある。このため、フレーム画像においても、時間が一定時間経過した位置のフレーム画像を新たなフレーム画像として用いて、新たなフレーム画像に基づいてスライス画像を求めて画素毎の距離を算出する方法を用いることができる。このように、複数のフレーム画像に基づいてそれぞれのスライス画像を再生し、画素毎の距離を算出することによって、より広い撮影範囲において、カメラ200から撮影対象物までの距離を算出することが可能になる。このように複数のフレーム画像に基づいて画素毎の距離が算出される場合には、それぞれのフレーム画像において距離が算出された画素の範囲を考慮しつつ、モザイキングする必要がある。
しかし、モザイキングしたい画像の各画素は、RGB情報(Rの値と、Gの値と、Bの値)と距離情報(距離値)との計4つの要素値を持つので、通常のモザイキングの方法であるスティッチング処理のアルゴリズムを使うことができない。そこで、以下では新規の方法を提案する。
ここで、共通する画像部分が存在する異なる時間に撮影されたフレーム画像を、オーバーラッピング処理を用いて貼り合わせる場合を考える。共通する画像部分に対してオーバーラッピング処理を施すことによって、2枚の画像から1枚の画像を生成する方法として、スティッチングアルゴリズムが一般的に知られている。スティッチングアルゴリズムは、広く知られた画像の貼り合わせ手法であって、Open CV(Open Source Computer Vision Library)と呼ばれる、広く公開されたオープンソースのコンピュータビジョン向けライブラリによって提供されている。このため、誰でもスティッチングアルゴリズムを利用することができる。スティッチングアルゴリズムでは、貼り合わせ対象となる画像の色情報(以下、RGB情報と称する)を利用して、貼り合わせ処理を行う。
既に説明したように、スライス画像とのマッチング処理が行われたフレーム画像では、対応する画素に距離情報が付加されている。このため、フレーム画像は、全ての画素にRGB情報が付加されるだけでなく、マッチング対象となった画素に距離情報が付加されるという特徴がある。
しかしながら、上述したスティッチングアルゴリズムでは、RGB情報のみに基づいて画像の貼り合わせ処理を行う。このため、2枚のフレーム画像をスティッチングアルゴリズムを用いて単純に貼り合わせると、距離情報が全く考慮されない状態で画像の貼り合わせ処理が行われてしまう。従って、貼り合わされたフレーム画像には、貼り合わされる前のフレーム画像の距離情報が十分に反映(あるいは維持)されていると判断することができなかった。
このため、RGB情報と距離情報とが記録された2枚のフレーム画像に対して、スティッチングアルゴリズムを適用することにより、RGB情報だけでなく距離情報の対応関係が十分に反映(あるいは維持)された1枚のパノラマ画像を生成する、貼り合わせ処理について説明する。
なお、フレーム画像の貼り合わせ処理を行う場合には、2つの場合が考えられる。1つ目は、RGB情報と分割された領域の距離情報とがそれぞれの画素に付加されたフレーム画像を貼り合わせる場合である。例えば、画像距離算出装置100において、スライス画像の領域とフレーム画像の領域との対応関係を求めて、領域毎にグローバル距離を算出した直後のフレーム画像を貼り合わせる場合等が該当する。この場合、領域内の画素毎には、ローカル距離が算出されていない。このため、各画素の距離情報は、同じ領域毎に同じ距離値を示すと判断することができる。
2つめは、RGB情報と詳細な距離情報とが全ての画素に付加されたフレーム画像を貼り合わせる場合である。例えば、グローバル距離だけでなく、領域内のローカル距離を画素毎に算出し、グローバル距離にローカル距離を加算することによって、画素毎に詳細な距離値が算出されたフレーム画像を貼り合わせる場合等が該当する。この場合、フレーム画像の全ての画素には、当該画素に写っている撮影対象物からカメラ200までの詳細な距離(グローバル距離+ローカル距離)が付加されている。
上述した2つの場合に分けて、距離情報を考慮した貼り合わせ処理について説明する。
(1)RGB情報と分割された領域の距離情報とがそれぞれの画素に付加されたフレーム画像を貼り合わせる場合
図17は、RGB情報と分割された領域の距離情報とがそれぞれの画素に付加されたフレーム画像を貼り合わせる処理(第1の貼り合わせ処理)を示したフローチャートである。画像距離算出装置100のCPU104は、貼り合わせ処理が行われる2枚のフレーム画像の全ての画素のRGB情報を読み取る(図17のS.11)。そして、CPU104は、読み取られたRGB情報を、R軸、G軸、B軸からなるRGB空間に割り当てる処理を行う(図17のS.12)。
図18は、2枚のフレーム画像の全ての画素のRGB情報を、R軸、G軸、B軸からなるRGB空間に割り当てた状態を示した図である。図18に示すように、フレーム画像の全ての画素のRGB情報を、RGB空間に割り当てても、全く使用されていないRGB空間の座標が存在する。例えば、RGB空間の外側周辺の空間位置のRGB情報は、2枚のフレーム画像において全く使用されていない。フレーム画像において使用されていないR値、B値、G値を示すRGB空間の点をコードと称する。
フレーム画像の画素は、既に説明したように、領域内の画素毎に、同じ距離情報(距離値)を有していると考えられる。このため、CPU104は、同じ領域毎にいくつか(例えば、3個から5個程度)の画素を選択し(図17のS.13)、選択された画素の距離情報(選択された画素が存在する領域のグローバル距離)を抽出する(図17のS.14、画素距離値抽出ステップ、画素距離値抽出機能)。
次に、CPU104は、コードに該当する複数のRGB情報(R値、B値、G値:RGBの値)を抽出する(図17のS.15、コード検出ステップ、コード検出機能)。そして、CPU104は、フレーム画像の領域毎に抽出された距離情報(距離値)の値(図17のS.14)に対して、抽出されたコードのRGB情報の値(コードのRGBの値)を、重複しないように割り当てる(図17のS.16、コードRGB値割当ステップ、コードRGB値割当機能)。
そして、CPU104は、コードのRGBの値が割り当てられた距離値と同じ距離値を備える画素を2枚のフレーム画像の画素から求めて、求められた画素のRGBの値を、当該距離値に応じて割り当てられたコードのRGBの値に入れ替える(図17のS.17、RGB値入替ステップ、RGB値入替機能)。
CPU104は、入れ替えられた後のRGBの値を、当該RGBの値への入れ替えが行われた画素の距離値に紐付けて、RAM103あるいは記録部101に記録させる(図17のS.18、画素情報記録ステップ、画素情報記録機能)。
図19は、一部の画素のRGBの値が、コードのRGBの値に入れ替えられた一のフレーム画像を示している。また、図20は、一部の画素のRGBの値が、コードのRGBの値に入れ替えられた他のフレーム画像を示している。入れ替えられた後のRGBの値は、元のフレーム画像において全く用いられていないRGBの値であるため、同じ領域に存在する他の画素の色(RGBの値)と、明らかに異なった色になる。
図19および図20に示すように、合成しようとする2枚のフレーム画像のそれぞれに対して、同じ領域のいくつかの画素のRGB情報を、コードのRGBの値に入れ替える。このように、RGBの値を入れ替えることによって、コードのRGBの値に対して距離情報(距離値)が紐付けされたRGB画像(フレーム画像)が作成される。
そして、CPU104は、作成された2枚のRGB画像(フレーム画像)を用いて、スティッチングアルゴリズムを適用することにより、2枚のRGB画像の貼り合わせ処理を行う(図17のS.19、貼り合わせ画像生成ステップ、貼り合わせ画像生成機能)。スティッチングアルゴリズムにより貼り合わされた画像を、説明の便宜上、貼り合わせ画像と称する。
貼り合わせ処理によって、2枚のRGB画像から、1枚の貼り合わせ画像が生成される。貼り合わせ画像には、コードのRGBの値に対して紐付けられた距離情報を備える画素が存在する。ここで、紐付けされた画素のRGBの値は、貼り合わせ処理によって少しだけ値が変化する傾向がある。しかしながら、コードのRGBの値は、フレーム画像に用いられていないRGB空間の値であり、さらに、距離値毎に重複しないようにして割り当てられている。このため、貼り合わせ処理によってRGBの値が少し変化していても、貼り合わせ画像のRGBの値から、該当する画素を推測して抽出することは容易である。CPU104は、距離情報の割り当てが行われた複数のコード(コード群)のRGBの値の中から、貼り合わせ画像に存在するRGBの値(色の値)と一致あるいは近似するRGBの値の画素を検出する(図17のS.20、RGB値検出ステップ、RGB値検出機能)。
そして、CPU104は、検出された画素に対し、RAM103あるいは記録部101に記録されるRGBの値に紐付けられた距離値を、当該画素の距離情報として付加する(図17のS.21、距離情報付加ステップ、距離情報付加機能)。
このようにして、距離情報が付加される画素のRGBの値を、フレーム画像において全く使用されていないRGBの値に入れ替えた上で、スティッチングアルゴリズムによる貼り合わせ処理を行う。この処理によって、RGB情報(RGBの値)だけでなく、距離情報(距離値)を十分に反映(あるいは維持)させた状態で、2枚のフレーム画像の貼り合わせ処理を行うことが可能になる。
なお、貼り合わせ画像において距離情報が付加された画素の色情報(RGB情報)は、スティッチングアルゴリズムを適用する前のフレーム画像で使用されていなかったRGBの色情報である。従って、周囲の画素と明らかに異なった色(RGBの値)で表示されることになる。このため、CPU104は、距離情報が付加された画素のRGBの値を、該当する画素の近傍の画素(例えば、周囲の4個の画素、あるいは8個の画像)のRGBの値の平均値に置き換える処理を行う(図17のS.22、RGB値変更ステップ、RGB値変更機能)。このように、距離情報が付加された画素のRGBの値を近傍の画素のRGBの値の平均に置き換えることによって、該当する画素の色情報(RGBの値)と周囲の色との間で違和感が生じなくなる。
貼り合わせ画像において、コードのRGBの値が割り当てられた画素のRGBの値を、近傍の画素のRGB値の平均値に置き換えた後に、改めてmean-shift法を、貼り合わせ画像に対して適用する。mean-shift法の適用によって、RGB情報に基づいて、フレーム画像の分割領域を求めることが可能になる。図21は、貼り合わせ画像に対してmean-shift法を適用することによって領域分割が行われたスライス画像を、一例として示した図である。さらに、その領域内に存在する画素のうち、距離情報が付加されている画素を用いて距離の平均値を求めることによって、領域毎の距離(グローバル距離)を求めることが可能になる。
(2)RGB情報と詳細な距離情報とが全ての画素に付加されたフレーム画像を貼り合わせる場合
図22は、RGB情報と距離情報とがそれぞれの画素に付加されたフレーム画像を貼り合わせる処理(第2の貼り合わせ処理)の内容を示したフローチャートである。まず、CPU104は、上述した「(1)RGB情報と分割された領域の距離情報とがそれぞれの画素に付加されたフレーム画像を貼り合わせる場合」と同様に、貼り合わせ処理が行われる2枚のフレーム画像の全ての画素のRGB情報を読み取る(図22のS.31)。そして、CPU104は、読み取られたRGB情報を、R軸、G軸、B軸からなるRGB空間に割り当てる処理を行う(図22のS.32)。RGB空間にRGB情報の割り当てを行っても、RGB空間において全く使用されていないRGB空間の座標が存在する。フレーム画像において使用されていないR値、B値、G値を示すRGB空間の点を、既に説明したように、コードと称する。
ここで、貼り合わせを行うフレーム画像には、全ての画素にRGB情報(RGBの値)と距離情報(距離値)とが付加されている。この距離情報は、領域の距離を示すものではない。このため、上述した(1)の方法のように、同じ距離情報の画素をいくつか選択する手法を用いることができない。
このため、CPU104は、貼り合わせ対象となる2枚のフレーム画像の画素のうち、一定割合の画素、例えば、全体の5%(N=20とした場合に、1/N=5%。但し、Nは正数)の画素をランダムに選択し(図22のS.33)、選択された画素の距離情報(距離値)を抽出する(図22のS.34、画素距離値抽出ステップ、画素距離値抽出機能)。
次に、CPU104は、コードに該当する複数のRGB情報(R値、B値、G値:RGBの値)を抽出する(図22のS.35、コード検出ステップ、コード検出機能)。そして、CPU104は、抽出された画素毎の距離情報(距離値)の値に対して、抽出されたコードのRGB情報の値(コードのRGBの値)を、重複しないように割り当てる(図22のS.36、コードRGB値割当ステップ、コードRGB値割当機能)。
そして、CPU104は、コードのRGBの値が割り当てられた距離値と同じ距離値を備える画素を2枚のフレーム画像の画素から求めて、求められた画素のRGBの値を、当該距離値に応じて割り当てられたコードのRGBの値に入れ替える(図22のS.37、RGB値入替ステップ、RGB値入替機能)。このように、RGBの値を入れ替えることによって、コードのRGBの値に対して距離情報が紐付けされたRGB画像(フレーム画像)が作成される。
CPU104は、入れ替えられた後のRGBの値を、当該RGBの値への入れ替えが行われた画素の距離値に紐付けて、RAM103あるいは記録部101に記録させる(図22のS.38、画素情報記録ステップ、画素情報記録機能)。
そして、CPU104は、5%の画素の色情報(RGBの値)が入れ替えられた2枚のRGB画像(フレーム画像)に対して、スティッチングアルゴリズムを適用することにより、2枚のRGB画像の貼り合わせ処理を行う(図22のS.39、貼り合わせ画像生成ステップ、貼り合わせ画像生成機能)。スティッチングアルゴリズムにより貼り合わされた画像を、既に説明したように、貼り合わせ画像と称する。
貼り合わせ処理によって、2枚のRGB画像から、1枚の貼り合わせ画像が生成される。貼り合わせ画像には、コードのRGBの値に紐付けされた距離情報を備える画素が、全体の画素数の5%だけ存在する。紐付けされた画素のRGBの値は、上述したように、貼り合わせ処理によって少しだけ値が変化する傾向がある。CPU104は、距離情報の割り当てが行われた複数のコード(コード群)のRGBの値の中から、貼り合わせ画像に存在するRGBの値(色の値)と一致あるいは近似するRGBの値の画素を検出する(図22のS.40、RGB値検出ステップ、RGB値検出機能)。
そして、CPU104は、検出された画素に対し、RAM103あるいは記録部101に記録されるRGBの値に紐付けられた距離値を、当該画素の距離情報として付加する(図22のS.41、距離情報付加ステップ、距離情報付加機能)。
また、貼り合わせ画像において距離情報が付加された画素の色情報(RGB情報)は、周囲の画素と明らかに異なった色(RGBの値)で表示されている。このため、CPU104は、距離情報が付加された画素のRGBの値を、該当する画素の近傍の画素(例えば、周囲の4個の画素、あるいは8個の画像)のRGBの値の平均値に置き換える処理を行う(図22のS.42、修正貼り合わせ画像生成ステップ、修正貼り合わせ画像生成機能)。このように、距離情報が付加された画素のRGBの値を近傍の画素のRGBの値の平均に置き換えることによって、該当する画素の色情報(RGBの値)と周囲の色との間で違和感が生じなくなる。このように、近傍の画素のRGBの値の平均によって、RGBの値の修正が行われた貼り合わせ画像を、修正貼り合わせ画像と称する。
このようにして、ランダムに選択された一部(全体の画素数の5%)の画素のRGBの値を、フレーム画像において全く使用されていないRGBの値に入れ替えた上で、スティッチングアルゴリズムによる貼り合わせ処理を行う。この処理によって、RGB情報だけでなく、距離情報を反映(あるいは維持)させた状態で、2枚のフレーム画像の貼り合わせ処理を行うことが可能になる。
但し、修正貼り合わせ画像の全体の画素数の5%の画素に関しては、RGB情報と距離情報とが付加された状態となるが、残りの95%の画素に関しては、RGB情報だけが付加された画素であるため、全ての画素に対して距離情報が十分に反映(あるいは維持)されるものではない。
CPU104は、RGBの値の置き換え処理(図22のS.42)を行った後に、修正貼り合わせ画像を、RAM103あるいは記録部101に記録させる(図22のS.43)。そして、CPU104は、全体の画素数の5%の画素をランダムに選択する処理(S.33)によって、2枚のフレーム画像の全ての画素が選択されたか否かを判断する(図22のS.44)。全ての画素が選択されていない場合(図22のS.44においてNoの場合)、CPU104は、全ての画素の中から未だ選択されていない画素を、S.33における画素の選択対象に設定して(図22のS.45)、処理をS.33へ移行させる。このように、全ての画素が選択されていない場合には、未だ選択されていない画素の中から、フレーム画像の全体の画素数の5%の画素をランダムに選択し(図22のS.33)、上述した修正貼り合わせ画像の生成処理(図22のS.34〜S.44)を繰り返し行う。
全ての画素が選択された場合(図22のS.44においてYesの場合)、CPU104は、RAM103あるいは記録部101に記録された全ての修正貼り合わせ画像(全体の画素数の5%だけを選択した場合には、20枚の修正貼り合わせ画像)を読み出す(図22のS.46)。読み出された20枚の修正貼り合わせ画像のそれぞれには、他の修正貼り合わせ画像の画素と重複しないようにして、距離情報が付加されている。また、それぞれの修正貼り合わせ画像には、1枚の修正貼り合わせ画像の全ての画素数の5%の画素に、距離情報が付加されている。このため、CPU104は、20枚の修正貼り合わせ画像を重ね合わせることによって、重複することなく全ての画素の距離情報を求める(図22のS.47)。そして、CPU104は、全ての画素の距離情報を、1枚の修正貼り合わせ画像に付加させることによって、全ての画素にRGB情報と距離情報とが付加された修正貼り合わせ画像を生成する(図22のS.48、距離付加貼り合わせ画像生成ステップ、距離付加貼り合わせ画像生成機能)。
以上、説明したように、コードのRGB情報を利用して、距離情報が付加されているRGBの値を、コードのRGBの値に置き換えて、スティッチングアルゴリズムを適用することによって、RGB情報と距離情報と考慮したうえで、複数のフレーム画像を貼り合わせることができる。このため、カメラによって撮影された広範囲の動画映像に基づいて、1枚のパノラマ画像を生成することが可能となる。
例えば、移動しながら広範囲の風景等が撮影された動画映像に基づいて、撮影対象物までの距離を求める場合、動画映像の撮影時間に応じて、RGB情報と距離情報とが記録されたフレーム画像を、複数枚抽出することが可能である。抽出された複数枚のフレーム画像では、時間的に前後するフレーム画像間で、共通する画像部分が含まれる。このため、共通する画像部分を基準として、フレーム画像を貼り合わせることにより、上述したように、撮影された広範囲の画像を1枚のパノラマ画像とすることができる。そして、このパノラマ画像を用いることにより、パノラマ画像に写っている撮影対象物までの距離を広範囲に求めることが可能になる。
以上説明したように、本実施の形態に係る画像距離算出装置100のCPU104では、移動する1台のカメラにより撮影された動画映像に基づいて、撮影された動画映像の特定の時間におけるフレーム画像を求める。さらに、フレーム画像の横軸(x軸)上のいずれかのx座標の位置を基準として、フレーム画像の縦軸(y軸)と撮影された動画映像の時間軸(t軸)とによってスライス画像を生成する。そして、スライス画像の時間tにおける画素と、フレーム画像の所定のx座標における縦軸(y軸)上の画素列(ライン)の画素との対応関係を、ライン対画像のDPマッチング処理によって求めて、フレーム画像におけるスポッティング点を算出する。そして、CPU104は、求められたスポッティング点からのバックトレース処理により、フレーム画像とスライス画像との画素毎の対応関係を明確にする。
その後、CPU104は、フレーム画像とスライス画像とのそれぞれに対して、mean-shift法を適用して領域分割を行った後に、フレーム画像とスライス画像との画素毎の対応関係に基づいて、スライス画像の分割領域とフレーム画像の分割領域との対応関係を求める。そして、CPU104は、フレーム画像の対応領域においてグローバル距離とローカル距離とを求めて、グローバル距離とローカル距離とを足し合わせることによって、フレーム画像の画素毎に、カメラ200から撮影対象物(各画素に写っている対象物)までの距離を算出することが可能になる。
特に、本実施の形態に係る画像距離算出装置100では、1台のカメラだけで撮影された動画映像に基づいて、動画映像のフレーム画像の画素毎に距離を算出することが可能である。このため、従来のステレオビジョン法のように、2台のカメラで同時に撮影対象物を撮影する必要がなく、さらに、2台のカメラの間隔を一定の距離に維持し続ける必要もない。従って、従来のステレオビジョン法によって、撮影対象物までの距離を算出する場合に比べて、撮影機材の簡素化と撮影負担の軽減を図ることが容易になる。
また、1台のカメラで撮影された動画映像であって、撮影対象物に対していずれかの方向に移動している動画映像であれば、映像データに基づいてフレーム画像とスライス画像とを容易に生成することができる。
さらに、撮影対象物に対してカメラ200がいずれかの方向に移動している動画映像であれば、移動に伴って生じる累積の動的視差が、圧縮された画像(画素)としてスライス画像に記録されることになる。このため、フレーム画像の画素毎の距離を算出するために、専用の撮影機材等を用いることなく、一般的なカメラにより撮影された動画映像に基づいて、簡単に画素毎の距離を求めることができる。
また、一般的なカメラにより撮影された動画映像に基づいて、簡単に画素毎の距離を求めることができるため、例えば、過去に撮影された動画映像に基づいて画素毎の距離を算出することが可能である。従って、過去に撮影された膨大な映像データに基づいて、カメラから撮影対象物までの距離を簡単に算出すること可能となり、撮影当時の撮影環境を再現することが可能になる。
さらに、近年では、ゴーグルを用いて左右の目の視差を利用した映像をユーザに視聴させることによって、擬似的に3次元の世界を体感させるVR(Virtual Reality)技術の研究・応用が盛んに行われている。このVR技術を用いて体感される3次元の世界は、3次元に見えるだけで、実際に3次元の世界が実現されているわけではない。このVR技術の応用として、カメラにより撮影された動画映像に基づいて映像に映し出される撮影対象物までの距離を、画像距離算出装置100によって算出して3次元空間を形成し、人間が実際に空間を移動できるような室内、室外、市街地、山岳地帯などの広域の3次元的なデータ世界を構築することも可能である。このようなデータ世界を、カメラにより撮影された動画映像に基づいて構築することによって、VR技術の応用分野や利用分野を大きく変えることも可能になる。また、本実施の形態に係る画像距離算出装置100を用いることによって、このような3次元空間の構築を簡易に行うことが可能である。
さらに、一般的なカメラにより撮影された動画映像に基づいて容易に、3次元空間の構築を行うことができるので、例えば、走行する車両により撮影された動画映像に基づいて、現実の街並みに基づく3次元空間のデータを構築したり、ドローンに取り付けられたカメラの動画映像に基づいて、空中から広範囲の状況を3次元空間のデータとして構築したりすることも可能である。
以上、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムについて図面を用いて詳細に説明したが、本発明に係る画像距離算出装置、方法およびプログラムは、実施の形態において示した例には限定されない。いわゆる当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは可能である。
例えば、実施の形態に係る画像距離算出装置100では、カメラ200が横方向に移動される場合を一例として示して説明した。しかしながら、本発明に係る画像距離算出装置、方法およびプログラムでは、移動するカメラにより撮影された動画映像に基づいて、フレーム画像とスライス画像とが生成され、フレーム画像に写っている撮影対象物が、カメラの移動に応じて、スライス画像に圧縮された状態で記録されるものであれば、撮影対象物までの距離を算出することが可能である。
このため、カメラにより撮影される動画映像は、必ずしも横方向にカメラが移動する場合には限定されず、上下方向であっても斜め方向であってもよい。さらに、カメラのレンズを斜め方向に向けた状態でカメラを移動する場合(例えば、カメラのレンズが、カメラの進行方向に対して、左斜め前方、右斜め前方、左斜め後方、右斜め後方を向いた状態でカメラが移動する場合等)であっても、フレーム画像に写っている撮影対象物が、カメラの移動に応じて、スライス画像に圧縮された状態で記録されることになるため、カメラから撮影対象物までの距離を画素毎に算出することが可能になる。
また、実施の形態に係る画像距離算出装置100では、mean-shift法を用いて領域分割が行われた領域毎に、カメラ200から撮影対象物までの距離を示すグローバル距離を算出する方法を説明した。具体的には、まず、スライス画像の一の領域の横軸方向の平均長をpとし、フレーム画像の対応する領域の横軸方向の平均長をqとして、スライス画像に対するフレーム画像の拡大率q/pを求める。そして、現実の世界におけるカメラ200から撮影対象物までの領域毎の距離とq/pの値との対応関係式は、理論的に計算される(図13(b)参照)。この対応関係式を用いて、領域毎に、カメラ200から撮影対象物までの距離を求めた。対応関係式の作成で必要となる距離の範囲は、直接測るより、人間の直感によって決定する場合が多いといえる。
距離関数との例として、
距離Z(p,q)=1192.4・exp(−0.366(q/p))
などがある。
以下、距離関数を、人間による直感でなく、新たな理論根拠に基づいて、決定する方法について説明する。
[グローバル距離を求めるための距離関数]
図23は、スライス画像の座標(1,y′)から座標(T,y′)までに至る横軸(t軸方向)上の複数の画素(ピクセル)と、このスライス画像の複数の画素に対応するフレーム画像の横軸(x軸方向)上の複数の画素(ピクセル)との関係を示した図である。図23のフレーム画像に示される黒丸の画素をx(t)で示す。黒丸の画素x(t)は、時間t=1からtまで動的視差が累積されたものである。つまり、x(t)は、累積された動的視差に該当する。累積された動的視差を示す黒丸の画素x(t)は、スライス画像の時間軸tの時間数t=1,2,・・・,Tに対応して、T個存在する。ここで、スライス画像の横軸上の全ての画素数はT個であるが、フレーム画像の横軸上の全ての画素数はT個よりも多い。従って、フレーム画像においては、横軸上の全ての画素に対応する数だけ黒丸の画素x(t)が存在するわけではない。
図24は、動的視差と累積された動的視差との関係を説明するための図である。図24の左図は、一例として、スライス画像の(1,y′)から(4,y′)に至る横軸(t軸)上の各画素と、フレーム画像の(x(1),y′)から(x(4),y′)に至る横軸(x軸)上の各画素との対応関係を示している。図24の左図に示す黒丸は、フレーム画像における画素を示しており、隣接する前後の画素の間に間隔が空いている。一方で、スライス画像における各画素は、隣接する画素が連続しているため、前後の画素の間に間隔が生じず、4個の画素が連なった状態となる。図24の左図には、説明の便宜上、スライス画像の画素は示されていない。
移動するカメラ200によって撮影対象物を撮影する場合には、図24の左図に示すように、一定時間毎に、撮影位置が移動する。図24の左図に示すフレーム画像の黒丸の画素毎の間隔は、移動する撮影位置の変化量に対応する。撮影位置の変化量は、動的視差に該当する。このため、フレーム画像の画素(黒丸)位置の間隔は、スライス画像で1つの画素が変動するときの、撮影対象物に対する動的視差を示すことになる。
撮影対象物までの動的視差が、隣接する黒丸の画素の間隔(画素間長)で示されるため、黒丸で示されるフレーム画像の画素の位置は、撮影位置の移動に応じて累積される動的視差を意味することになる。黒丸の間隔がそれぞれ異なっているのは、それぞれの黒丸点に対応するカメラ200から撮影対象物までの距離が異なっているためである。
また、カメラの正面に存在する撮影対象物までの距離は、撮影位置の移動に伴って変化する。図24の左図では、一例として、カメラ200の撮影位置に応じて、フレーム画像の黒丸の画素の位置がx(1)からx(4)まで変化した場合に、カメラ200から撮影対象物までの距離がzv1,zv2,zv3,zv4と変化する場合が示されている。
また、図24の右図は、スライス画像の横軸のt軸上のt=1,t=2,t=3,t=4の4つの点に対応する、フレーム画像の4つの画素の位置が、x(1)からx(4)まで変化した場合に、各黒丸間隔の差をx(1)からx(4)までの分だけ累積した様子を示した図である。図24の右図では、x(4)で示す画素位置からx(1)で示す画素位置を減算した間隔が横線の長さとして示されている。右図の横線の長さは、近接する各画素(黒丸)の間隔の差を、x(1)からx(4)まで累積した長さに該当するため、x(1)からx(4)までの動的視差が足し合わされたもの、つまり累積された動的視差に該当する。
ここで注意すべきは、これらの黒丸の点の位置は、先にスライス画像とフレーム画像との動的計画法(DP)を用いた最適マッチングの結果であるスポッティング点x(T)から、バックトレースすることによって事後的に求められていることである。この累積された動的視差に対応する物体群(フレーム画像のx(1),x(2)およびx(3)の画素に写っている撮影対象物が、対応する物体群に該当)に対する、カメラ200からの距離は、仮想距離と呼べるものである。図24の右図に視された累積された動的視差は、3つの物体点(フレーム画像のx(1),x(2)およびx(3)の画素に写っている撮影対象物の画素点)の動的視差(フレーム画像のx(1)〜x(4)の画素間における動的視差)の合計を示しており、特定の1つの物体点に対応しているものではない。カメラ200から撮影対象物までのこれら3つの物体点に対応する距離を仮想距離zvと定義する。
仮想距離zvは、図24の左図に示す3つの黒丸(x(1),x(2),x(3))における撮影対象物までの距離zv1,zv2,zv3に依存する距離と考えることができる。スライス画像の3ピクセル点は3点の物体点に対応している。この3点のピクセルに対する動的視差が累積加算される。動的視差が加算されたものは、3つの物体点の距離zv1,zv2,zv3を加算したものには対応しない。このことは、ステレオビジョン法で類推しても、ステレオビジョン法での3つの視差の加算が、距離を加算したものに対応しないのと同様である。ステレオビジョン法での視差は1つの物体点について得られる。したがって、本実施の形態では、累積された動的視差に対応する距離を仮想距離とする。仮想距離は、距離zv1,zv2,zv3に関係するものとしてのみ意味されるものである。この仮想距離zvは、カメラ200から撮影対象物までの距離zv1,zv2,zv3に依存する距離であるため、必ずしも現実の距離を直接的に示したものではなく、仮想的なものである。仮想的な距離を現実的な距離へと変換する説明は後述する。
図25は、累積された動的視差が実際の距離に対応するかの計算式導出を示すモデルの図である。図25において、仮想距離zv(t,x)は、フレーム画像のx(t0)からx(t)までの累積された動的視差によって求められる距離(仮想距離)である。つまり、この仮想距離zv(t,x)は、スライス画像の各画素に対応する、フレーム画像の累積された動的視差によって求められる。この仮想距離zv(t,x)は、領域毎に求められるカメラ200から撮影対象物までの距離を示したグローバル距離に対応する。図25では、縦軸をz軸に設定している。また、x(t0)からx(t)までの累積された動的視差をα(t,t0)とする。
累積された動的視差α(t,t0)は、
・・・式9
の関係が成立する。ここで、Δx(τ)は、τ=t0からτ=tまでの動的視差を示している。動的視差Δx(τ)をτ=t0からτ=tまで累積することによって、累積された動的視差α(t,t0)に該当することになる。
累積された動的視差α(t,t0)の微少な増加量をΔα(t,t0)とすると、Δα(t,t0)は、
Δα(t,t0)=α(t+Δt,t0)−α(t,t0)
で表すことができる。
いま、累積された動的視差α(t,t0)が、微少量Δα(t,t0)(但し、Δα(t,t0)>0)だけ増加したとする。このとき、Δα(t,t0)は、x(t+Δt)−x(t)に該当し、フレーム画像の隣接する画素の間隔の微少な変化量に該当する。従って、フレーム画像の隣接する画素の間隔が大きくなると、動的視差が大きくなる。累積された動的視差の現象を考慮すると、動的視差が大きくなることによって、カメラ200から撮影対象物までの距離が、わずかに近くなる。つまり、撮影対象物までの仮想距離zv(t,x)の値が、微少量Δzv(t,x)だけ小さくなったと考えることができる。
このように定義されたzv(t,x),−Δzv(t,x),α(t,t0),Δα(t,t0)は、図25に示す関係図から明らかなように、次式に示す比例関係が成立する。
zv(t,x):α(t,t0)=−Δzv(t,x):Δα(t,t0)
ここで、仮想距離zv(t,x)に対応する、累積された動的視差の値を、α(t,t0)=1とすると、上述した比例関係から、
zv(t,x):1=−Δzv(t,x):Δα(t,t0)
が成立し、−Δzv(t,x)がΔα(t,t0)に対応すると考えることができる。
なぜ、上記の比例関係で、α(t,t0)=1とおくことが必要であるかを述べる。仮想距離zv(t,x)と、累積された動的視差の値α(t,t0)とは、単なる反比例関係にあるのではない。ステレオビジョン法では、距離と視差の関係は単純な反比例関係である。ステレオビジョン法では、2つのカメラに映る1つの物体点を前提にしている。また、カメラ間距離(ベースライン)も一定である。一方、実施の形態において、ステレオビジョン法での視差に対応する累積された動的視差は、複数の物体点に対応している。さらに、1台の移動するカメラを用いているので、ステレオビジョン法で一定とされる「カメラ間距離」は一定でない。さらに、累積された動的視差の加算は動的計画法(DP)によって最適に加算されているので、個別の、つまり、1つの物体点が2点の位置のカメラによって対応しているものの単純加算でもなくなっている。これは、変動するベースラインをも考慮して最適加算がされている。以上のことから、仮想距離zv(t,x)は、ある累積された動的視差の一定値が対応するという仮定を置く必要がある。その前提で、累積距離の変動がこの一定値からの変位をΔα(t,t0)とし、それによる仮想距離zv(t,x)の変位をΔzv(t,x)と想定することにより、移動する視差の現象を比例関係で表現することが可能となる。この比例関係から微分方程式が導かれ、それを解くと2つの係数をもつ累積された動的視差と距離との関係式が得られるが、この2つの係数は個別の対象において、境界条件を与えることによって定まる。境界条件によって係数が定まった関数は、仮想距離を示すものではなく、実距離を与える関数となる。
上述した比例関係から、下記の微分方程式を形成し、解を求めることによって、
−Δzv(t,x)=zv(t,x)・Δα(t,t0)
Δzv(t,x)/zv(t,x)=−Δα(t,t0)
log zv(t,x)=−α(t,t0)+c (cは定数)
となり、これより、zv(t,x)は、
zv(t,x)=a・exp(−b・α(t,t0))
・・・式10
という式で表すことができる。ここで、係数a,bは別途定まる係数である。
係数a,bが定まる場合、距離関数zv(t,x)=a・exp(−b・α(t,t0))は、仮想距離を示す仮想距離関数ではなく、実際の距離を示す実距離関数と判断することができる。従って、上述した式10は、定数a、bが与えられることによって、実際の距離を、理論的根拠に基づく関数により求めることが可能であると判断することができる。このようにして実距離関数で求められる距離は、既に説明したグローバル距離に該当する。従って、フレーム画像における画素x(t)の属する領域のグローバル距離を距離zgで示すと、画素x(t)におけるグローバル距離zgは、式10に基づいて、
zg=a・exp(−b・α(t,t0))
・・・式11
と示すことができる。
ここで、上述した式10および式11により距離を求める場合に問題となるのは、動的視差の累積方法である。つまり、上述した式9の加算区間である[t0,t](t0からtの範囲)を、どのように定めるかが問題となる。
既に実施の形態において説明した方法では、スライス画像とフレーム画像との双方に対して、領域分割手法であるmean-shift法を適用して、それぞれの画像に対応する領域を求めて、求められたそれぞれの領域によって、加算区間を定めた。
図26は、既に説明した方法である、フレーム画像の対応する領域rの横軸方向の平均長と、スライス画像の対応する領域rの横軸方向の平均長とを用いて、領域毎に撮影対象物までの距離zregion(r)を算出する方法を説明するための図である。図26において、zregion(r)は、フレーム画像の領域rにおいて求められる、撮影対象物までの距離を示している。フレーム画像の領域rに含まれる区間横線の数(領域rにおいて一方の端点から他方の端点までを結ぶ区間横線が存在する数。縦に並ぶ区間横線のライン数)をLとし、スライス画像の領域rに含まれる区間横線の数をLとする。
ここで、フレーム画像の領域rにおける一方の端点から他方の端点までの画素間の長さ(区間横線の長さ)の平均を、xar max-minとする。また、フレーム画像の領域rにおけるi番目の区間横線の一端の画素位置を、x i,minとし、他端の画素位置をx i,maxとすると、フレーム画像の領域rにおけるxar max-minは、
で表すことができる。
また、スライス画像の領域rにおける一方の端点から他方の端点までの画素間の長さ(区間横線の長さ)の平均を、tar max-minとする。さらに、スライス画像の領域rにおけるi番目の区間横線の一端の画素位置を、t i,minとし、他端の画素位置をt i,maxとすると、スライス画像の領域rにおけるtar max-minは、
で表すことができる。
カメラ200から撮影対象物までの距離を求める場合には、まず、スライス画像の一の領域rの横軸方向の平均長をpとし、フレーム画像の対応する領域rの横軸方向の平均長をqとして、スライス画像に対するフレーム画像の拡大率α=q/pを求める。そして、領域毎に求められるカメラ200から撮影対象物までの距離を、図13(b)に示した距離zと累積された動的視差αの関係式を用いて、α=q/pの値から求める。
つまり、上述した方法では、スライス画像の領域rにおける区間横線の画素間の長さの平均に対する、フレーム画像の領域rにおける区間横線の画素間の長さの平均に基づいて、距離を求めている。このことから、「フレーム画像の領域rにおける区間横線の長さの平均」を「スライス画像の領域rにおける区間横線の長さの平均」で割った値をαrとして、
α=xar max-min/tar max-min
・・・式12
と表すことができる。
つまり、このαrが、領域rにおけるカメラ200から撮影対象物までの距離zgに対応する、累積された動的視差の値αと考えて、グローバル距離を算出した。この考え方から、上述した距離zv(t,x)における累積された動的視差α(t,t0)を、式12に示すαrに該当するものとして、係数a,bを決定する場合を考える。
係数aおよび係数bを決定する場合には、まず、距離zregion(r)と、αrとの変動区間を定める必要がある。距離zregion(r)の変動区間とは、カメラ200から撮影対象物までの距離の変動区間である。距離zregion(r)の変動区間は、都市や街の風景や室内の状況等、カメラ200により撮影されるフレーム画像の景色を、実際に人間が見て、直感的に定める。変動区間の手前側の距離をzN1とし、変動区間の遠方側の距離をzL1とすると、距離zregion(r)の変動区間は、zN1≦zregion(r)≦zL1と示すことができる。
例えば、撮影風景が都市の風景であって、人間によってカメラ200から手前の撮影対象物までの距離が10mで、遠方の撮影対象物の距離が4kmと判断された場合には、距離zregion(r)の変動区間は、[zN1,zL1]=[10m,4km]となる。もちろん、可能であれば、レーザーを利用した距離測定装置等を用いて、直接的に撮影対象物までの距離を測定して、変動範囲を決定することも可能である。
また、αrの変動区間は、定数μと定数γとを用いて、μ≦αr≦γと表すことができる。上述したように、αrは、「フレーム画像の領域rにおける区間横線の画素間の長さ」を「スライス画像の領域rにおける区間横線の画素間の長さ」で割った値である。このため、αrの変動区間は、実施の形態において既に説明したように、スライス画像からフレーム画像への伸縮率等に影響を受けることになり、αrの値は1<αr<4に設定される。従って、αrの変動区間は、1<μ≦αr≦γ<4となる。
上述したように、理論的に求められた仮想距離の距離関数
zv(t,x)=a・exp(−b・α(t,t0)) ・・・式10
における、2つの係数a,bを、上述したzregion(r)とαrとの変動区間のパラメータを用いて定める。ここで、距離zregion(r)の最小の区間値であるzN1は、αrの最大の区間値であるγに対応し、距離zregion(r)の最大の区間値であるzL1は、αrの最小の区間値であるμに対応する。この対応関係は、累積された動的視差の現象を考慮すれば妥当であると判断できる。αrの値が大きい場合には、フレーム画像の隣り合う画素の間隔が広くなり、区間横線の画素間の長さの平均xar max-minが長くなるため、撮影対象物までの距離が近くなって、zregion(r)の値が小さな値となるからである。一方で、αrの値が小さい場合には、フレーム画像の隣り合う画素の間隔が狭く、区間横線の画素間の長さの平均xar max-minが短くなるため、撮影対象物までの距離が遠くなって、zregion(r)の値が大きな値となるからである。
従って、係数a,bを定めるためには、2つの方程式、
L1=a・exp(−bμ
N1=a・exp(−bγ
を用いて、係数aと係数bとを求めればよい。
従って、zN1の値と、zL1の値と、μの値と、γの値とを設定することにより、上述したzN1の式とzL1の式との2式に基づいて、係数aと係数bとを求めると、係数aと係数bとは、
a=zL1・exp((μ/(γ−μ))log(zL1/zN1
b=(1/(γ−μ))log(zL1/zN1
となる。
このようにして求められた係数aと係数bとを用いて、画素x(t)における距離zv(t,x)を
zv(t,x)=a・exp(−b・α(t,t0)) ・・・式10
によって求めることにより、領域毎の距離(グローバル距離zg)の値を求めるための実距離関数
zg=a・exp(−b・α(t,t0)) ・・・式11
を算出することができる。この実距離関数は、上述したように数学的に求められるものである。従って、実距離関数を用いることによって、グローバル距離を、人間による撮影対象物の観察や直感ではない、理論根拠に基づいて決定することが可能となる。
また、実距離関数の距離zgを算出するための係数aおよび係数bは、上述したように、zN1の値と、zL1の値と、μの値と、γの値とを設定することにより求められる。このzN1の値と、zL1の値とは、式11が実距離関数と判断されることから、結果的に、画素x(t)における式11の距離zgの変動範囲に対応すると考えられる。また、同様に、μの値と、γの値とは、画素x(t)における式11の累積された動的視差α(t,t0)の変動範囲に対応すると考えられる。
また、同じ撮影対象物をカメラ200で撮影する場合であっても、カメラ200の移動速度によって、αrの区間パラメータであるμおよびγの値が変動する。図27(a)(b)は、領域rにおける距離zとαとの関係を、zN1の値と、zL1の値と、μの値と、γの値とを用いて図示したグラフである。カメラ200の移動速度が遅い場合には、図27(a)に示すように、μからγまでの範囲が全体的に1側寄りの範囲となり、カメラの移動速度が速い場合には、図27(b)に示すように、μからγまでの範囲が全体的に4側寄りの範囲となる。このように、μからγまでの範囲を変化させることによって、αに対する距離zの値が変化することになる。但し、これらの距離の変化は、実距離関数で吸収されるものである。
実施の形態に示したように、領域分割手法であるmean-shift法を用いて、フレーム画像の領域毎にグローバル距離を算出する場合には、フレーム画像の領域毎に距離値が一定となってしまうが、上述した実距離関数を用いることにより、スライス画像の各画素に対応するフレーム画像の画素毎に、カメラ200から撮影対象物までの距離を求めることが可能になる。
このことは、テクスチャのある画像(撮影対象として物体の表面状態が示された画像)の画素毎に、距離値を求められることを意味している。つまり、距離値の求められた画素を用いることによって、3次元画像へのテクスチャマッピングが容易となる。
従来の3次元画像へのテクスチャマッピングの考え方では、物体が存在する3次元空間(free spaceと呼ばれる)を設定し、その空間の点に物体(対象物)の一点が存在するとされていた。このため、得られた物体点集合に対してどのようにテクスチャを貼る(設定する)かが大きな問題とされていた。しかしながら、フレーム画像の画素に距離値(距離情報)が付加された画像を用いることによって、画素に付加された距離値を利用してテクスチャを貼ることができるため、このような問題を考える必要がない。
また、画素毎に距離値(距離情報)が付加されたフレーム画像を、既に説明したスティッチングアルゴリズムを用いて貼り合わせることによって、1枚の貼り合わせ画像を生成することができる。そして、貼り合わせ画像に基づいて画素毎の距離値を求めることによって、エンドレスな繋がりをもつ、広域の3次元画像を得ることが可能になる。
[フレーム画像の対応領域内における画素毎の距離算出]
また、実施の形態では、領域毎にグローバル距離を求めた後に、領域における相対的な距離を示したローカル距離を求めて、グローバル距離に対してローカル距離を加算することによって、フレーム画像の画素毎に、カメラ200から撮影対象物までの距離を求める場合について説明した。しかしながら、フレーム画像の領域毎に距離値が決まった後で、異なる方法によって、領域内の個々の画素毎に、カメラ200から撮影対象物までの距離を求めることも可能である。
フレーム画像は、カメラ200によって撮影された動画の1フレーム分の画像を抽出したものであるため、フレーム画像の解像度は、カメラの撮影性能に依存することになる。一般的な動画撮影用のカメラでは、例えば、1000×600程度の画素数、あるいは、4000×2000程度の画素数で、画素毎にRGBの値からなる色情報が記録される。従って、これだけ多数の画素によって構成されるフレーム画像において、領域毎の距離情報としてグローバル距離が画素毎に付加されるだけでは、フレーム画像の全体の距離精度として十分ではない。領域に含まれる全ての画素に対して、原理的に異なる距離値が付加されることが望まれており、実世界の表現として意味が高まるものである。このため、以下に、上述した領域内の画素毎の距離計算を、より細かいレベルで算出する方法について説明する。
既に説明したグローバル距離の算出方法(領域分割手法であるmean-shift法を用いた距離算出方法)によって、分割された領域毎の距離については求めることができる。領域rについて得られたグローバル距離を距離zgとする。また、領域rには何本かの区間横線が含まれている。それぞれの区間横線の横軸上には、既に説明したように、領域内における両端固定のマッチング処理およびバックトレース処理によって求められた座標点が複数存在し、横軸上に点列となって記録されている。このバックトレース処理によって求められる複数の点を、x(1),x(2),x(3),・・・,x(i−1),x(i),・・・,x(G)とする。また、領域rに含まれる区間横線の画素単位の平均長を、xaとする。さらに、バックトレース処理で求められた複数の点のうち近接する2つの点を、x(i−1),x(i)とする。但し、iは、2≦i≦Gの整数となる。また、近接する画素x(i)と画素x(i−1)との距離(画素差)は、x(i)−x(i−1)と表すことができる。
このように設定される、区間横線の平均長xaと、近接する2点間の距離x(i)−x(i−1)と、バックトレース処理で求められた座標の数Gとを用いると、画素x(i)におけるカメラ200から撮影対象物までの詳細な距離z(i)は、
z(i)=zg+β(x(i)−x(i−1)−xa/G)
・・・式13
によって決定される。なお、βは正の定数であり、実験的に定められる値である。
また、xaは、領域rに含まれる区間横線の画素単位の平均長を示しているため、xa/Gは、領域内のx(1),x(2),x(3),・・・,x(i−1),x(i),・・・,x(G)点の近接する2点間の平均的な画素長(画素間の距離、座標位置の差)を示している。より具体的には、領域内の横軸上にG箇所存在する複数の画素点において、x(1)からx(G)までの全ての点列の画素長(ピクセル長)をGで割った平均値、つまり、近接する2点間の平均的な区間画素長を示している。
ここで、領域rにおけるグローバル距離zgは、領域rの平均的な距離であると考えられ、この平均的な距離zgは、近接する2つの画素間の平均的な区間画素長に対応するものと考えられる。このことから、領域r内のx(i)の画素位置において、x(i)の画素位置からx(i−1)の画素位置までの2点間の画素長が、平均的な2点間の画素長よりも長い場合、すなわち、x(i)−x(i−1)がxa/Gより大きい(x(i)−x(i−1)−xa/G>0)場合には、画素x(i)における距離z(i)が、領域rにおける平均的な距離zgよりも手前側(カメラ200に近い位置)の撮影対象物を写した画素に該当すると考えることができる。
一方で、領域r内のx(i)の画素位置において、x(i)の画素位置から近接するx(i−1)の画素位置までの2点間の画素長が、平均的な2点間の画素長よりも短い場合、すなわち、x(i)−x(i−1)がxa/Gより小さい(x(i)−x(i−1)−xa/G<0)場合には、点x(i)における距離z(i)が、領域rにおける平均的な距離zgよりも奥側(カメラ200から遠い位置)の撮影対象物を写した画素に該当すると考えることができる。
図28は、領域内のi番目の画素x(i)と、画素x(i)における距離z(i)との関係を示した図である。i番目の画素x(i)の距離値z(i)は、上述したように、
z(i)=zg+β(x(i)−x(i−1)−xa/G)
・・・式13
によって求められる。従って、i番目の画素x(i)の距離値z(i)が、領域rのグローバル距離zgに一致する場合には、上述したx(i)−x(i−1)−xa/Gの値がゼロの値となる。つまり、x(i)−x(i−1)−xa/G=0に該当する画素x(i)の距離z(i)は、距離zgとなる。一方で、x(i)−x(i−1)−xa/G<0が成立する画素x(i)では、画素x(i)の距離z(i)が、距離zgよりも短い距離となる。また、x(i)−x(i−1)−xa/G>0が成立する画素x(i)では、画素x(i)の距離z(i)が、距離zgよりも長い距離となる。
このように、x(i)−x(i−1)−xa/Gを求めることにより、領域rの平均的な距離と判断できるグローバル距離zgを基準として、領域r内の画素x(i)における詳細な距離z(i)を求めることが可能になる。
[フレーム画像における各画素の詳細距離を直接求める方法]
また、実施の形態では、初めに、mean-shift法により領域分割された領域毎の距離(グローバル距離)を求めて、その後に、領域内の画素毎の相対的な距離(ローカル距離)を求めた。そして、領域毎の距離(グローバル距離)に対して、領域内の画素毎の相対的な距離(ローカル距離)を加算することによって、フレーム画像の画素毎に詳細な距離を求める方法について説明した。つまり、第1段階の処理として、領域毎のグローバル距離を求めて、第2段階の処理として、領域内の画素毎の相対的な距離(ローカル距離)を求めてから、最終的な画素毎の詳細な距離を求めていた。しかしながら、このような多段的な処理により、フレーム画像の画素毎に詳細な距離を求めるのではなく、メディアンフィルタを用いて、1回の処理でフレーム画像の画素毎に詳細な距離を求める方法を用いることも可能である。言い換えると、メディアンフィルタのウィンドウ・サイズがmean-shift法で得られる領域に対応している。メディアンフィルタを用いる方法は、より簡単に距離を求める方法である。
図23は、既に説明したように、スライス画像の横軸(t軸)上の各画素と、この各画素に対応するフレーム画像の横軸(x軸)上の各画素との対応関係を模式的に示した図である。図23では、スライス画像の縦軸上の一点y′を固定点(すなわち、(x=1,y=y′))とし、このy=y′となるスライス画像の横軸上の点、つまり、横軸t上のt=1からt=Tまでの各点が黒丸で示されている。そして、スライス画像の横軸t上の各点に対応するフレーム画像の画素であって、y=y′で固定したフレーム画像のx軸において最適にマッチングする画素が、ライン対画像による連続動的計画法によって求められる。図23においてフレーム画像に示された黒丸は、連続動的計画法によって求められる画素である。また、フレーム画像に示された黒丸の画素が、例えば、x(i)の位置にあるとき、x(1)=1からx(i)まで累積された動的視差は、x(i)−x(1)に該当する。
このライン対画像による連続動的計画法のマッチング処理は、フレーム画像およびスライス画像に対するmean-shift法の適用前(領域分割処理の前)に行われる。従って、領域分割を行わずに、図23において黒丸で示したフレーム画像の画素(累積された動的視差に該当する画素)を利用して各画素の距離を求めることにより、多段的な処理を行うことなく、各画素の距離を求めることができる。
まず、分割領域の対応関係を考えずに、フレーム画像のy軸上の点をy′に固定して、このy=y′に該当するx軸上の累積された動的視差の画素(黒丸)を考える。このフレーム画像のx軸上の累積された動的視差に該当する画素(スライス画像にマッチングした画素)を、x(1),x(2),・・・,x(i−1),x(i),x(i+1),・・・,x(T)とする。累積された動的視差に該当する画素の数は、スライス画像の横軸(t軸)の画素の数に対応するため、T箇所存在する。また、画素x(i)における撮影対象物からカメラ200までのある距離をあるウィンドウ・サイズをもつメディアンフィルタの結果として、zv(i,x)とする。但し、iは上述したようにi=1,2,・・・,Tである。距離zv(i,x)は、後述するようにあるウィンドウ・サイズをもつメディアンフィルタを経由して、x(i)における累積された動的視差により求められるため、上述した式10の距離zv(t,x)と同様に、仮想距離と考えることができる。
画素x(i)における累積された動的視差をα(i)とする。α(i)は、x(i)までの近接する2つの画素点間の画素長(2点間の画素の距離差)が累積されたものである。ここで、x(i)からx(i+K)までの累積された動的視差は、近接する画素との距離差(視差)の累積であり、x(i+1)−x(i)と、x(i+2)−x(i+1)と、・・・、x(i+K)−x(i+K−1)とを足し合わせたものと考えることができる。この画素長(2点間の画素差、近接する画素との距離差)の値は、画素間毎に異なる値になる。
ここで、このK個の画素間の画素長(距離差)を考慮し、メディアンフィルタを用いて、画素間の画素長の中央値を求める。画素x(i)に基づいて求められるK個の画素長の値に対して、メディアンフィルタを適用することにより求められる中央値を、Med(i)と示す。Med(i)は、x(i+1)−x(i)の値と、x(i+2)−x(i+1)の値と、・・・,x(i+K)−x(i+K−1)の値との中央値を示している。
例えば、一例として、x(i)を基準とする5つの画素(累積された動的視差)を、x(i+1), x(i+2), x(i+3), x(i+4), x(i+5)として考える。これらの5つの距離差(差分量:動的視差)は、x(i+1)−x(i), x(i+2)−x(i+1), x(i+3)−x(i+2), x(i+4)−x(i+3), x(i+5)−x(i+4)となる。これらの5つの距離差を比較し、距離差の大きい方から3番目の値がMed(i)となる。このようにして求められた値は、窓を5とするメディアンフィルタの出力値となる。
このように、Med(i)を用いることによって、x(i)からx(i+K)までの、累積された動的視差α(i)を、
α(i)=Med(i)×K
・・・式14
と表すことができる。
一方で、累積された動的視差の微少な増加量をΔα(i)とすると、Δα(i)は、
Δα(i)=α(i+Δi)−α(i)
と表すことができる。
この累積された動的視差α(i)と、画素x(i)における詳細な距離zv(i,x)との関係は、累積された動的視差の微少な増加量をΔα(i)と、累積された動的視差の微少な増加量Δα(i)に伴う距離の変化量−Δzv(i,x)との関係で示すことができる。既に説明したように、累積された動的視差の特性から、以下の対応関係が成立する。
zv(i,x):α(i)=−Δzv(i,x):Δα(i)
α(i)=1の場合には、
zv(i,x):1=−Δzv(i,x):Δα(i)
と表すことができる。
この対応関係に基づいて、下記の関係式を解くことによって、
−Δzv(i,x)=zv(i,x)×Δα(i)
Δzv(i,x)/zv(i,x)=−Δα(i)
log zv(i,x)=−Δα(i)+cとなり、
この関係式を変形して、距離zv(i,x)を、
zv(i,x)=a・exp(−b・α(i)),a>0,b>0
として求めることができる。
ここで、α(i)は、上述したメディアンフィルタによる出力値Med(i)を用いて、
α(i)=Med(i)×K
と示すことができる。このため、x(i)における距離zv(i,x)は、
zv(i,x)=a・exp(−b・Med(i)・K)
・・・式15
と示すことができる。
ここで、係数aおよび係数bの値は、既に説明した考え方によって求めることができる。
係数aと係数bとを求めることによって、動的視差の中央値(Med(i))に基づいて、フレーム画像のx(i)における詳細な距離を、実距離関数を用いて求めることができる。実距離関数によって求められるx(i)の距離をz(i,x)とすると、実距離関数は、
z(i,x)=a・exp(−b・Med(i)・K)
・・・式16
と示すことができる。
具体的には、累積された動的視差Med(i)・Kの設定範囲を、定数μおよび定数γを用いて、μ≦Med(i)・K≦γとし、
画素x(i)における実距離関数の距離z(i,x)の設定範囲を、定数zN2および定数zL2を用いて、zN2≦z(i,x)≦zL2とすることによって、
係数aを、
a=zL2・exp((μ/(γ−μ))log(zL2/zN2
により算出し、
係数bを、
b=(1/(γ−μ))log(zL2/zN2
により算出する。
そして、求められた係数aと係数bとを用いて、上述した式16の実距離関数により、距離z(i,x)を求めることによって、フレーム画像の画素x(i)における、撮影対象物からカメラ200までの詳細な距離を求めることができる。従って、実施の形態において説明したように、mean-shift法による領域分割を用いることなく、フレーム画像の画素x(i)における詳細な距離を求めることができる。
ここで、画素x(i)は、フレーム画像の1つの画素点であるが、累積された動的視差に該当する画素点であるため、フレーム画像にはT個しか存在しない。従って、距離z(i,x)を求めることができる画素点の数も、T個しか存在せず、フレーム画像の全ての画素で距離を求めることは難しい。しかしながら、画素x(i)は、撮影対象物の表面位置を決定するテクスチャの画素に該当する。このため、テクスチャとなる画素x(i)の距離を利用することによって、距離が求められていない画素の距離値を、距離値が決まった周辺の画素の距離値を用いて、内挿(補間)により求めることができる。内挿および補間とは、一般的に、ある既知の数値データ列を基にして、そのデータ列の各区間の範囲内を埋める数値を求めること、またはそのような関数を与えることを意味する。
従って、フレーム画像の画素x(i)における距離値を用いて、距離値が設定されていない画素の距離を内挿(補間)することによって、領域分割を行うことなく、つまり、領域を考慮して多段的に距離値を求めるのではなく、1回の処理によって、フレーム画像の各画素の詳細な距離を求めることが可能になる。
なお、領域を抽出する処理および領域を対応させる処理を行うことによって各画素の距離値を計算する場合には、内挿によって各画素の距離を求める場合よりも、より安定した情報として領域毎の距離情報を利用できる場合もある。このため、対象となる動画映像によっては、画素毎の距離値を直接計算するよりも、領域を抽出する処理および領域を対応させる処理を行って領域毎の距離情報を求めてから、画素毎の距離値を計算する方が、求められる距離値の信頼性を高められる場合もある。従って、実際に画素毎の距離値を求める場合には、領域毎の距離を算出する方法と、メディアンフィルタを用いて直接画素毎の距離を算出する方法との双方の処理方法を、適宜使い分けることが望ましい。どちらの処理方法を用いた方がより正確なものになるかは、実際の適用対象によって異なると考えられる。
100 …画像距離算出装置
101 …記録部(画素情報記録手段)
102 …ROM
103 …RAM(画素情報記録手段)
104 …CPU(フレーム画像抽出手段、スライス画像生成手段、スポッティング点算出手段、画素マッチング手段、領域分割手段、対応領域決定手段、グローバル距離算出手段、ローカル距離算出手段、詳細距離算出手段、制御手段、コード検出手段、画素距離値抽出手段、コードRGB値割当手段、RGB値入替手段、貼り合わせ画像生成手段、RGB値検出手段、距離情報付加手段、RGB値変更手段、修正貼り合わせ画像生成手段、距離付加貼り合わせ画像生成手段)
200 …カメラ
210 …モニタ

Claims (24)

  1. 移動する1台のカメラにより撮影された動画映像に基づいて、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出手段と、
    該フレーム画像において、前記カメラの移動方向に向かって延設される軸をx軸とし、当該x軸に直交する軸をy軸として、前記x軸のx0点におけるy軸上の画素列の時間変化を、時間t0+1から時間t0+Tまで抽出することにより、縦軸を前記y軸、横軸をt軸(1≦t≦T)とするスライス画像を生成するスライス画像生成手段と、
    時間t(1≦t≦T)における前記スライス画像の画素をg(t,y)とし、前記フレーム画像のy軸上のy′点(1≦y′≦Y)における時間t0のときのxyt空間の画素をf(x,y′,t0)=r(x)として、xの区間[1,X]の任意の点において存在する、スライス画像の画素g(t,y)に対応するフレーム画像の画素r(x)点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Tの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出手段と、
    該スポッティング点算出手段により算出されたスポッティング点に基づいて、時間t=Tから時間t=1までバックトレース処理を行うことにより、前記スライス画像のt軸におけるt=1からt=Tまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求める画素マッチング手段と、
    前記フレーム画像と前記スライス画像とのそれぞれの画像に対して、mean-shift法を適用することにより、共通した分割基準に基づいて、それぞれの画像の領域分割を行う領域分割手段と、
    該領域分割手段により分割された前記スライス画像の分割領域内に存在する画素に基づいて、前記画素マッチング手段により求められた前記スライス画像の画素に対応する前記フレーム画像の画素を検出し、検出された前記フレーム画像の画素が最も多く含まれる前記フレーム画像の分割領域を求めることによって、前記スライス画像の分割領域に対応する前記フレーム画像の分割領域を対応領域として決定する対応領域決定手段と、
    該対応領域決定手段により決定された前記フレーム画像の対応領域において、前記x軸方向の画素数の平均qを検出すると共に、対応する前記スライス画像の分割領域において、前記t軸方向の画素数の平均pを検出することによって、pに対するqの割合あるいはqに対するpの割合に基づいて求められる比率値を、前記対応領域毎に算出し、前記カメラから前記フレーム画像に写っている撮影対象物までの距離と前記比率値との対応関係が予め定められた距離関数を用いることによって、算出された前記比率値に対応する前記距離を、グローバル距離として前記対応領域毎に算出するグローバル距離算出手段と、
    を有することを特徴とする画像距離算出装置。
  2. 前記スライス画像の分割領域内における前記t軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記x軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、前記スライス画像の分割領域内の各画素に対応する画素を、前記フレーム画像の前記対応領域内の画素として求め、求められた前記フレーム画像の前記対応領域内における前記x軸方向の画素の間隔に基づいて、当該対応領域内の画素毎の相対的な距離を、ローカル距離として算出するローカル距離算出手段と、
    該ローカル距離算出手段により算出された、前記フレーム画像の画素毎のローカル距離に、前記グローバル距離算出手段により算出された、前記フレーム画像の前記対応領域毎のグローバル距離を加算することによって、前記カメラから前記撮影対象物までの詳細な距離を、前記フレーム画像の画素毎に算出する詳細距離算出手段と、
    を有することを特徴とする請求項1に記載の画像距離算出装置。
  3. 前記スライス画像の分割領域内における前記t軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記x軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、前記スライス画像の分割領域内の各画素に対応する、前記フレーム画像の前記対応領域内の前記x軸方向の画素を、x(1),x(2),・・・,x(i),・・・,x(G−1),x(G)(1≦i≦G)として求め、
    前記フレーム画像の前記対応領域内における前記x軸方向の始端の境界から終端の境界までの画素数の平均をxaとし、
    前記フレーム画像の前記対応領域内における前記画素x(i)と、前記バックトレース処理により求められて前記画素x(i)に近接する画素x(i−1)との距離をx(i)−x(i−1)とし、
    前記グローバル距離算出手段により算出された前記対応領域のグローバル距離を距離zgとし、
    当該フレーム画像の画素x(i)における撮影対象物から前記カメラまでの詳細な距離を距離z(i)として、当該距離z(i)を、正の定数βを用いて、
    z(i)=zg+β(x(i)−x(i−1)−xa/G)
    により算出する詳細距離算出手段
    を有することを特徴とする請求項1に記載の画像距離算出装置。
  4. 移動する1台のカメラにより撮影された動画映像に基づいて、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出手段と、
    該フレーム画像において、前記カメラの移動方向に向かって延設される軸をx軸とし、当該x軸に直交する軸をy軸として、前記x軸のx0点におけるy軸上の画素列の時間変化を、時間t0+1から時間t0+Tまで抽出することにより、縦軸を前記y軸、横軸をt軸(1≦t≦T)とするスライス画像を生成するスライス画像生成手段と、
    時間t(1≦t≦T)における前記スライス画像の画素をg(t,y)とし、前記フレーム画像のy軸上のy′点(1≦y′≦Y)における時間t0のときのxyt空間の画素をf(x,y′,t0)=r(x)として、xの区間[1,X]の任意の点において存在する、スライス画像の画素g(t,y)に対応するフレーム画像の画素r(x)点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Tの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出手段と、
    該スポッティング点算出手段により算出されたスポッティング点に基づいて、時間t=Tから時間t=1までバックトレース処理を行うことにより、前記スライス画像のt軸におけるt=1からt=Tまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求める画素マッチング手段と、
    該画素マッチング手段により求められた時間tにおける前記フレーム画像の前記x軸方向の画素をx(t)とし、時間t0における前記フレーム画像の前記x軸方向の画素をx(t0)として、前記フレーム画像における前記画素x(t)から前記画素x(t0)を減算することにより求められる当該2つの画素間の距離を、累積された動的視差α(t,t0)とし、
    前記フレーム画像の前記画素x(t)における撮影対象物から前記カメラまでの距離をグローバル距離zgとし、
    前記累積された動的視差α(t,t0)の設定範囲を、定数μおよび定数γを用いて、μ≦α(t,t0)≦γとし、
    前記グローバル距離zgの設定範囲を、定数zN1および定数zL1を用いて、zN1≦zg≦zL1として、
    係数aを、
    a=zL1・exp((μ/(γ−μ))log(zL1/zN1
    により算出し、
    係数bを
    b=(1/(γ−μ))log(zL1/zN1
    により算出することにより、
    前記画素x(t)における前記グローバル距離zgを、前記累積された動的視差α(t,t0)と、前記係数aおよび前記係数bとを用いて、
    zg=a・exp(−b・α(t,t0))
    により算出するグローバル距離算出手段と、
    を有することを特徴とする画像距離算出装置。
  5. 移動する1台のカメラにより撮影された動画映像に基づいて、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出手段と、
    該フレーム画像において、前記カメラの移動方向に向かって延設される軸をx軸とし、当該x軸に直交する軸をy軸として、前記x軸のx0点におけるy軸上の画素列の時間変化を、時間t0+1から時間t0+Tまで抽出することにより、縦軸を前記y軸、横軸をt軸(1≦t≦T)とするスライス画像を生成するスライス画像生成手段と、
    時間t(1≦t≦T)における前記スライス画像の画素をg(t,y)とし、前記フレーム画像のy軸上のy′点(1≦y′≦Y)における時間t0のときのxyt空間の画素をf(x,y′,t0)=r(x)として、xの区間[1,X]の任意の点において存在する、スライス画像の画素g(t,y)に対応するフレーム画像の画素r(x)点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Tの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出手段と、
    該スポッティング点算出手段により算出されたスポッティング点に基づいて、時間t=Tから時間t=1までバックトレース処理を行うことにより、前記スライス画像の前記t軸におけるt=1からt=Tまでのそれぞれの画素に対応する前記フレーム画像の前記x軸方向の画素を、x(1),x(2),x(3),・・・,x(i),・・・x(T)(1≦i≦T)として求める画素マッチング手段と、
    該画素マッチング手段により求められた前記フレーム画像の前記画素x(i)と近接する画素x(i−1)との距離差をx(i)−x(i−1)とし、画素x(i)から連続するK個(但しK<T)の画素間における近接する画素との距離差を、x(i+1)−x(i),x(i+2)−x(i+1),x(i+3)−x(i+2),・・・,x(i+K−1)−x(i+K−2),x(i+K)−x(i+K−1)として求め、求められた前記画素間の距離差の値の中央値をMed(i)として求めることによって、画素x(i)における累積された動的視差をMed(i)・Kとし、
    前記フレーム画像の前記画素x(i)における撮影対象物から前記カメラまでの詳細な距離を距離z(i,x)とし、
    前記累積された動的視差Med(i)・Kの設定範囲を、定数μおよび定数γを用いて、μ≦Med(i)・K≦γとし、
    前記画素x(i)における距離z(i,x)の設定範囲を、定数zN2および定数zL2を用いて、zN2≦z(i,x)≦zL2として、
    係数aを、
    a=zL2・exp((μ/(γ−μ))log(zL2/zN2
    により算出し、
    係数bを
    b=(1/(γ−μ))log(zL2/zN2
    により算出することにより
    前記x(i)における前記距離z(i,x)を、前記累積された動的視差Med(i)・Kと、前記係数aおよび前記係数bとを用いて、
    z(i,x)=a・exp(−b・Med(i)・K)
    により算出する詳細距離算出手段と、
    を有することを特徴とする画像距離算出装置。
  6. 前記詳細距離算出手段は、前記フレーム画像の前記画素x(i)(1≦i≦T)以外の画素の距離を、前記画素x(i)において求められた前記距離z(i,x)の距離値を用いて内挿することにより求めること
    を特徴とする請求項5に記載の画像距離算出装置。
  7. 前記カメラにより異なる時間に撮影された2枚のフレーム画像であって、互いに共通する画像部分を一部に含む前記2枚のフレーム画像に対して、前記2枚のフレーム画像の全ての画素のRGBの値を抽出することにより、抽出された前記RGBの値に該当しないRGBの値を、コードのRGBの値として検出するコード検出手段と、
    前記グローバル距離算出手段により前記グローバル距離が算出された画素の距離値を、前記2枚のフレーム画像の画素の中から抽出する画素距離値抽出手段と、
    該画素距離値抽出手段により抽出された前記距離値毎に、前記コードのRGBの値を重複しないように割り当てるコードRGB値割当手段と、
    前記コードRGB値割当手段により前記コードのRGBの値が割り当てられた前記距離値と同じ距離値を備える、前記2枚のフレーム画像の画素のRGBの値を、当該距離値に応じて割り当てられた前記コードのRGBの値に入れ替えるRGB値入替手段と、
    該RGB値入替手段により入れ替えられた後の前記RGBの値を、当該RGBの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録する画素情報記録手段と、
    前記RGB値入替手段により前記画素のRGBの値が入れ替えられた2枚のフレーム画像に対して、スティッチングアルゴリズムを適用することにより、当該2枚のフレーム画像の貼り合わせ処理を行って、1枚の貼り合わせ画像を生成する貼り合わせ画像生成手段と、
    該貼り合わせ画像生成手段により生成された前記貼り合わせ画像の全ての画素のRGBの値の中から、前記画素情報記録手段に記録される前記RGBの値と一致あるいは近似するRGBの値を検出するRGB値検出手段と、
    該RGB値検出手段により検出された前記RGBの値を備える画素に対し、前記画素情報記録手段に記録される前記RGBの値に紐付けられた前記距離値を、当該画素の距離情報として付加する距離情報付加手段と、
    該距離情報付加手段により前記距離情報が付加された前記画素のRGBの値を、当該画素の周囲の画素のRGBの値の平均値に変更するRGB値変更手段と、
    を有することを特徴とする請求項1または請求項4に記載の画像距離算出装置。
  8. 前記カメラにより異なる時間に撮影された2枚のフレーム画像であって、互いに共通する画像部分を一部に含み、前記詳細距離算出手段によって前記撮影対象物から前記カメラまでの距離が画素毎に算出された前記2枚のフレーム画像に対して、前記2枚のフレーム画像の全ての画素のRGBの値を抽出することにより、抽出された前記RGBの値に該当しないRGBの値を、コードのRGBの値として検出するコード検出手段と、
    前記2枚のフレーム画像のうち、全体の画素数の1/N(Nは正数)の個数の画素をランダムに選択し、選択された画素の距離値を抽出する画素距離値抽出手段と、
    該画素距離値抽出手段により抽出された前記距離値毎に、前記コードのRGBの値を重複しないように割り当てるコードRGB値割当手段と、
    前記コードRGB値割当手段により前記コードのRGBの値が割り当てられた前記距離値と同じ距離値を備える、前記2枚のフレーム画像の画素のRGBの値を、当該距離値に応じて割り当てられた前記コードのRGBの値に入れ替えるRGB値入替手段と、
    該RGB値入替手段により入れ替えられた後の前記RGBの値を、当該RGBの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録する画素情報記録手段と、
    前記RGB値入替手段により前記画素のRGBの値が入れ替えられた2枚のフレーム画像に対して、スティッチングアルゴリズムを適用することにより、当該2枚のフレーム画像の貼り合わせ処理を行って、1枚の貼り合わせ画像を生成する貼り合わせ画像生成手段と、
    該貼り合わせ画像生成手段により生成された前記貼り合わせ画像の全ての画素のRGBの値の中から、前記画素情報記録手段に記録される前記RGBの値と一致あるいは近似するRGBの値を検出するRGB値検出手段と、
    該RGB値検出手段により検出された前記RGBの値を備える画素に対し、前記画素情報記録手段に記録される前記RGBの値に紐付けられた前記距離値を、当該画素の距離情報として付加する距離情報付加手段と、
    該距離情報付加手段により前記距離情報が付加された前記画素のRGBの値を、当該画素の周囲の画素のRGBの値の平均値に変更することにより、当該RGBの値が修正された修正貼り合わせ画像を生成する修正貼り合わせ画像生成手段と、
    該修正貼り合わせ画像生成手段により生成されたN枚の修正貼り合わせ画像に基づいて、全ての画素に前記距離情報が付加された1枚の貼り合わせ画像を生成する距離付加貼り合わせ画像生成手段と
    を有し、
    前記画素距離値抽出手段は、2回目以降に画素の距離値を抽出する場合に、前記2枚のフレーム画像のうち過去に選択されなかった画素の中から、全体の画素数の1/Nの個数の画素をランダムに選択して、当該画素の距離値を抽出し、
    前記コードRGB値割当手段と、前記RGB値入替手段と、前記画素情報記録手段と、前記貼り合わせ画像生成手段と、前記RGB値検出手段と、前記距離情報付加手段と、前記修正貼り合わせ画像生成手段とは、前記画素距離値抽出手段により2回目以降に選択された前記距離値に基づいて、それぞれの処理を順番にN回繰り返すことにより、N枚の前記修正貼り合わせ画像を生成し、
    前記距離付加貼り合わせ画像生成手段は、前記修正貼り合わせ画像の全体の画素数の1/Nの画素に付加されている前記距離情報を、N枚の前記修正貼り合わせ画像の全てを重ねて読み取ることにより、前記修正貼り合わせ画像における全ての画素の距離情報を求めて、求められた当該距離情報を1枚の貼り合わせ画像に付加することにより、全ての画素に前記距離情報が付加された前記1枚の貼り合わせ画像を生成すること
    を特徴とする請求項2、請求項3または請求項6のいずれか1項に記載の画像距離算出装置。
  9. 移動する1台のカメラにより撮影された動画映像に基づいて、フレーム画像抽出手段が、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出ステップと、
    該フレーム画像において、前記カメラの移動方向に向かって延設される軸をx軸とし、当該x軸に直交する軸をy軸として、前記x軸のx0点におけるy軸上の画素列の時間変化を、時間t0+1から時間t0+Tまで抽出することにより、スライス画像生成手段が、縦軸を前記y軸、横軸をt軸(1≦t≦T)とするスライス画像を生成するスライス画像生成ステップと、
    時間t(1≦t≦T)における前記スライス画像の画素をg(t,y)とし、前記フレーム画像のy軸上のy′点(1≦y′≦Y)における時間t0のときのxyt空間の画素をf(x,y′,t0)=r(x)として、xの区間[1,X]の任意の点において存在する、スライス画像の画素g(t,y)に対応するフレーム画像の画素r(x)点を、動的計画法に基づくマッチング処理を用いて求めることにより、スポッティング点算出手段が、前記スライス画像における時間Tの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出ステップと、
    該スポッティング点算出ステップにおいて算出されたスポッティング点に基づいて、時間t=Tから時間t=1までバックトレース処理を行うことにより、画素マッチング手段が、前記スライス画像のt軸におけるt=1からt=Tまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求める画素マッチングステップと、
    前記フレーム画像と前記スライス画像とのそれぞれの画像に対して、mean-shift法を適用することにより、領域分割手段が、共通した分割基準に基づいて、それぞれの画像の領域分割を行う領域分割ステップと、
    該領域分割ステップにおいて分割された前記スライス画像の分割領域内に存在する画素に基づいて、前記画素マッチングステップにおいて求められた前記スライス画像の画素に対応する前記フレーム画像の画素を検出し、検出された前記フレーム画像の画素が最も多く含まれる前記フレーム画像の分割領域を求めることによって、対応領域決定手段が、前記スライス画像の分割領域に対応する前記フレーム画像の分割領域を対応領域として決定する対応領域決定ステップと、
    該対応領域決定ステップによって決定された前記フレーム画像の対応領域において、前記x軸方向の画素数の平均qを検出すると共に、対応する前記スライス画像の分割領域において、前記t軸方向の画素数の平均pを検出することによって、pに対するqの割合あるいはqに対するpの割合に基づいて求められる比率値を、前記対応領域毎に算出し、前記カメラから前記フレーム画像に写っている撮影対象物までの距離と前記比率値との対応関係が予め定められた距離関数を用いることによって、グローバル距離算出手段が、算出された前記比率値に対応する前記距離を、グローバル距離として前記対応領域毎に算出するグローバル距離算出ステップと、
    を有することを特徴とする画像距離算出方法。
  10. 前記スライス画像の分割領域内における前記t軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記x軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、前記スライス画像の分割領域内の各画素に対応する画素を、前記フレーム画像の前記対応領域内の画素として求め、求められた前記フレーム画像の前記対応領域内における前記x軸方向の画素の間隔に基づいて、ローカル距離算出手段が、当該対応領域内の画素毎の相対的な距離を、ローカル距離として算出するローカル距離算出ステップと、
    該ローカル距離算出ステップにおいて算出された、前記フレーム画像の画素毎のローカル距離に、前記グローバル距離算出ステップにおいて算出された、前記フレーム画像の前記対応領域毎のグローバル距離を加算することによって、詳細距離算出手段が、前記カメラから前記撮影対象物までの詳細な距離を、前記フレーム画像の画素毎に算出する詳細距離算出ステップと、
    を有することを特徴とする請求項9に記載の画像距離算出方法。
  11. 前記スライス画像の分割領域内における前記t軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記x軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、詳細距離算出手段が、前記スライス画像の分割領域内の各画素に対応する、前記フレーム画像の前記対応領域内の前記x軸方向の画素を、x(1),x(2),・・・,x(i),・・・,x(G−1),x(G)(1≦i≦G)として求め、
    前記フレーム画像の前記対応領域内における前記x軸方向の始端の境界から終端の境界までの画素数の平均をxaとし、
    前記フレーム画像の前記対応領域内における前記画素x(i)と、前記バックトレース処理により求められて前記画素x(i)に近接する画素x(i−1)との距離をx(i)−x(i−1)とし、
    前記グローバル距離算出ステップにおいて算出された前記対応領域のグローバル距離を距離zgとし、
    当該フレーム画像の画素x(i)における撮影対象物から前記カメラまでの詳細な距離を距離z(i)として、当該距離z(i)を、正の定数βを用いて、
    z(i)=zg+β(x(i)−x(i−1)−xa/G)
    により算出する詳細距離算出ステップ
    を有することを特徴とする請求項9に記載の画像距離算出方法。
  12. 移動する1台のカメラにより撮影された動画映像に基づいて、フレーム画像抽出手段が、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出ステップと、
    該フレーム画像において、前記カメラの移動方向に向かって延設される軸をx軸とし、当該x軸に直交する軸をy軸として、前記x軸のx0点におけるy軸上の画素列の時間変化を、時間t0+1から時間t0+Tまで抽出することにより、スライス画像生成手段が、縦軸を前記y軸、横軸をt軸(1≦t≦T)とするスライス画像を生成するスライス画像生成ステップと、
    時間t(1≦t≦T)における前記スライス画像の画素をg(t,y)とし、前記フレーム画像のy軸上のy′点(1≦y′≦Y)における時間t0のときのxyt空間の画素をf(x,y′,t0)=r(x)として、xの区間[1,X]の任意の点において存在する、スライス画像の画素g(t,y)に対応するフレーム画像の画素r(x)点を、動的計画法に基づくマッチング処理を用いて求めることにより、スポッティング点算出手段が、前記スライス画像における時間Tの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出ステップと、
    該スポッティング点算出ステップにおいて算出されたスポッティング点に基づいて、時間t=Tから時間t=1までバックトレース処理を行うことにより、画素マッチング手段が、前記スライス画像のt軸におけるt=1からt=Tまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求める画素マッチングステップと、
    該画素マッチングステップにおいて求められた時間tにおける前記フレーム画像の前記x軸方向の画素をx(t)とし、時間t0における前記フレーム画像の前記x軸方向の画素をx(t0)として、前記フレーム画像における前記画素x(t)から前記画素x(t0)を減算することにより求められる当該2つの画素間の距離を、累積された動的視差α(t,t0)とし、
    前記フレーム画像の前記画素x(t)における撮影対象物から前記カメラまでの距離をグローバル距離zgとし、
    前記累積された動的視差α(t,t0)の設定範囲を、定数μおよび定数γを用いて、μ≦α(t,t0)≦γとし、
    前記グローバル距離zgの設定範囲を、定数zN1および定数zL1を用いて、zN1≦zg≦zL1として、
    グローバル距離算出手段が、
    係数aを、
    a=zL1・exp((μ/(γ−μ))log(zL1/zN1
    により算出し、
    係数bを
    b=(1/(γ−μ))log(zL1/zN1
    により算出することにより
    前記画素x(t)における前記グローバル距離zgを、前記累積された動的視差α(t,t0)と、前記係数aおよび前記係数bとを用いて、
    zg=a・exp(−b・α(t,t0))
    により算出するグローバル距離算出ステップと、
    を有することを特徴とする画像距離算出方法。
  13. 移動する1台のカメラにより撮影された動画映像に基づいて、フレーム画像抽出手段が、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出ステップと、
    該フレーム画像において、前記カメラの移動方向に向かって延設される軸をx軸とし、当該x軸に直交する軸をy軸として、前記x軸のx0点におけるy軸上の画素列の時間変化を、時間t0+1から時間t0+Tまで抽出することにより、スライス画像生成手段が、縦軸を前記y軸、横軸をt軸(1≦t≦T)とするスライス画像を生成するスライス画像生成ステップと、
    時間t(1≦t≦T)における前記スライス画像の画素をg(t,y)とし、前記フレーム画像のy軸上のy′点(1≦y′≦Y)における時間t0のときのxyt空間の画素をf(x,y′,t0)=r(x)として、xの区間[1,X]の任意の点において存在する、スライス画像の画素g(t,y)に対応するフレーム画像の画素r(x)点を、動的計画法に基づくマッチング処理を用いて求めることにより、スポッティング点算出手段が、前記スライス画像における時間Tの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出ステップと、
    該スポッティング点算出ステップにおいて算出されたスポッティング点に基づいて、時間t=Tから時間t=1までバックトレース処理を行うことにより、画素マッチング手段が、前記スライス画像の前記t軸におけるt=1からt=Tまでのそれぞれの画素に対応する前記フレーム画像の前記x軸方向の画素を、x(1),x(2),x(3),・・・,x(i),・・・x(T)(1≦i≦T)として求める画素マッチングステップと、
    該画素マッチングステップにおいて求められた前記フレーム画像の前記画素x(i)と近接する画素x(i−1)との距離差をx(i)−x(i−1)とし、画素x(i)から連続するK個(但しK<T)の画素間における近接する画素との距離差を、x(i+1)−x(i),x(i+2)−x(i+1),x(i+3)−x(i+2),・・・,x(i+K−1)−x(i+K−2),x(i+K)−x(i+K−1)として求め、求められた前記画素間の距離差の値の中央値をMed(i)として求めることによって、画素x(i)における累積された動的視差をMed(i)・Kとし、
    前記フレーム画像の前記画素x(i)における撮影対象物から前記カメラまでの詳細な距離を距離z(i,x)とし、
    前記累積された動的視差Med(i)・Kの設定範囲を、定数μおよび定数γを用いて、μ≦Med(i)・K≦γとし、
    前記画素x(i)における距離z(i,x)の設定範囲を、定数zN2および定数zL2を用いて、zN2≦z(i,x)≦zL2として、
    詳細距離算出手段が、
    係数aを、
    a=zL2・exp((μ/(γ−μ))log(zL2/zN2
    により算出し、
    係数bを
    b=(1/(γ−μ))log(zL2/zN2
    により算出することにより
    前記x(i)における前記距離z(i,x)を、前記累積された動的視差Med(i)・Kと、前記係数aおよび前記係数bとを用いて、
    z(i,x)=a・exp(−b・Med(i)・K)
    により算出する詳細距離算出ステップと、
    を有することを特徴とする画像距離算出方法。
  14. 前記詳細距離算出ステップにおいて、前記詳細距離算出手段は、前記フレーム画像の前記画素x(i)(1≦i≦T)以外の画素の距離を、前記画素x(i)において求められた前記距離z(i,x)の距離値を用いて内挿することにより求めること
    を特徴とする請求項13に記載の画像距離算出方法。
  15. 前記カメラにより異なる時間に撮影された2枚のフレーム画像であって、互いに共通する画像部分を一部に含む前記2枚のフレーム画像に対して、前記2枚のフレーム画像の全ての画素のRGBの値を抽出することにより、コード検出手段が、抽出された前記RGBの値に該当しないRGBの値を、コードのRGBの値として検出するコード検出ステップと、
    前記グローバル距離算出ステップにおいて前記グローバル距離が算出された画素の距離値を、画素距離値抽出手段が、前記2枚のフレーム画像の画素の中から抽出する画素距離値抽出ステップと、
    該画素距離値抽出ステップにおいて抽出された前記距離値毎に、コードRGB値割当手段が、前記コードのRGBの値を重複しないように割り当てるコードRGB値割当ステップと、
    前記コードRGB値割当ステップにおいて前記コードのRGBの値が割り当てられた前記距離値と同じ距離値を備える、前記2枚のフレーム画像の画素のRGBの値を、RGB値入替手段が、当該距離値に応じて割り当てられた前記コードのRGBの値に入れ替えるRGB値入替ステップと、
    該RGB値入替ステップにおいて入れ替えられた後の前記RGBの値を、画素情報記録手段が、当該RGBの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録する画素情報記録ステップと、
    前記RGB値入替ステップにおいて前記画素のRGBの値が入れ替えられた2枚のフレーム画像に対して、スティッチングアルゴリズムを適用することにより、貼り合わせ画像生成手段が、当該2枚のフレーム画像の貼り合わせ処理を行って、1枚の貼り合わせ画像を生成する貼り合わせ画像生成ステップと、
    該貼り合わせ画像生成ステップにおいて生成された前記貼り合わせ画像の全ての画素のRGBの値の中から、RGB値検出手段が、前記画素情報記録ステップにおいて記録された前記RGBの値と一致あるいは近似するRGBの値を検出するRGB値検出ステップと、
    該RGB値検出ステップにおいて検出された前記RGBの値を備える画素に対し、前記画素情報記録にステップおいて記録された前記RGBの値に紐付けられる前記距離値を、距離情報付加手段が、当該画素の距離情報として付加する距離情報付加ステップと、
    該距離情報付加ステップにおいて前記距離情報が付加された前記画素のRGBの値を、RGB値変更手段が、当該画素の周囲の画素のRGBの値の平均値に変更するRGB値変更ステップと
    を有することを特徴とする請求項9または請求項12に記載の画像距離算出方法。
  16. 前記カメラにより異なる時間に撮影された2枚のフレーム画像であって、互いに共通する画像部分を一部に含み、前記詳細距離算出ステップにおいて前記撮影対象物から前記カメラまでの距離が画素毎に算出された前記2枚のフレーム画像に対して、前記2枚のフレーム画像の全ての画素のRGBの値を抽出することにより、コード検出手段が、抽出された前記RGBの値に該当しないRGBの値を、コードのRGBの値として検出するコード検出ステップと、
    画素距離値抽出手段が、前記2枚のフレーム画像のうち、全体の画素数の1/N(Nは正数)の個数の画素をランダムに選択し、選択された画素の距離値を抽出する画素距離値抽出ステップと、
    該画素距離値抽出ステップにおいて抽出された前記距離値毎に、コードRGB値割当手段が、前記コードのRGBの値を重複しないように割り当てるコードRGB値割当ステップと、
    前記コードRGB値割当ステップにおいて前記コードのRGBの値が割り当てられた前記距離値と同じ距離値を備える、前記2枚のフレーム画像の画素のRGBの値を、RGB値入替手段が、当該距離値に応じて割り当てられた前記コードのRGBの値に入れ替えるRGB値入替ステップと、
    該RGB値入替ステップにおいて入れ替えられた後の前記RGBの値を、画素情報記録手段が、当該RGBの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録する画素情報記録ステップと、
    前記RGB値入替ステップにおいて前記画素のRGBの値が入れ替えられた2枚のフレーム画像に対して、スティッチングアルゴリズムを適用することにより、貼り合わせ画像生成手段が、当該2枚のフレーム画像の貼り合わせ処理を行って、1枚の貼り合わせ画像を生成する貼り合わせ画像生成ステップと、
    該貼り合わせ画像生成ステップにおいて生成された前記貼り合わせ画像の全ての画素のRGBの値の中から、RGB値検出手段が、前記画素情報記録ステップにおいて記録された前記RGBの値と一致あるいは近似するRGBの値を検出するRGB値検出ステップと、
    該RGB値検出ステップにおいて検出された前記RGBの値を備える画素に対し、前記画素情報記録ステップにおいて記録された前記RGBの値に紐付けられた前記距離値を、距離情報付加手段が、当該画素の距離情報として付加する距離情報付加ステップと、
    該距離情報付加ステップにおいて前記距離情報が付加された前記画素のRGBの値を、当該画素の周囲の画素のRGBの値の平均値に変更することにより、修正貼り合わせ画像生成手段が、当該RGBの値が修正された修正貼り合わせ画像を生成する修正貼り合わせ画像生成ステップと、
    該修正貼り合わせ画像生成ステップによって生成されたN枚の修正貼り合わせ画像に基づいて、距離付加貼り合わせ画像生成手段が、全ての画素に前記距離情報が付加された1枚の貼り合わせ画像を生成する距離付加貼り合わせ画像生成ステップと
    を有し、
    前記画素距離値抽出ステップにおいて前記画素距離値抽出手段は、2回目以降に画素の距離値を抽出する場合に、前記2枚のフレーム画像のうち過去に選択されなかった画素の中から、全体の画素数の1/Nの個数の画素をランダムに選択して、当該画素の距離値を抽出し、
    前記コードRGB値割当ステップにおける前記コードRGB値割当手段と、前記RGB値入替ステップにおける前記RGB値入替手段と、前記画素情報記録ステップにおける前記画素情報記録手段と、前記貼り合わせ画像生成ステップにおける前記貼り合わせ画像生成手段と、前記RGB値検出ステップにおける前記RGB値検出手段と、前記距離情報付加ステップにおける前記距離情報付加手段と、前記修正貼り合わせ画像生成ステップにおける前記修正貼り合わせ画像生成手段とは、前記画素距離値抽出ステップにおいて前記画素距離値抽出手段により2回目以降に選択された前記距離値に基づいて、それぞれの処理を順番にN回繰り返すことにより、N枚の前記修正貼り合わせ画像を生成し、
    前記距離付加貼り合わせ画像生成ステップにおいて、前記距離付加貼り合わせ画像生成手段は、前記修正貼り合わせ画像の全体の画素数の1/Nの画素に付加されている前記距離情報を、N枚の前記修正貼り合わせ画像の全てを重ねて読み取ることにより、前記修正貼り合わせ画像における全ての画素の距離情報を求めて、求められた当該距離情報を1枚の貼り合わせ画像に付加することにより、全ての画素に前記距離情報が付加された前記1枚の貼り合わせ画像を生成すること
    を特徴とする請求項10、請求項11または請求項14のいずれか1項に記載の画像距離算出方法。
  17. 移動する1台のカメラにより撮影された動画映像に基づいて、カメラから動画映像に記録された撮影対象物までの距離を算出する画像距離算出装置の画像距離算出用プログラムであって、
    前記画像距離算出装置の制御手段に、
    前記動画映像の任意の時間におけるフレーム画像を抽出させるフレーム画像抽出機能と、
    該フレーム画像において、前記カメラの移動方向に向かって延設される軸をx軸とし、当該x軸に直交する軸をy軸として、前記x軸のx0点におけるy軸上の画素列の時間変化を、時間t0+1から時間t0+Tまで抽出することにより、縦軸を前記y軸、横軸をt軸(1≦t≦T)とするスライス画像を生成させるスライス画像生成機能と、
    時間t(1≦t≦T)における前記スライス画像の画素をg(t,y)とし、前記フレーム画像のy軸上のy′点(1≦y′≦Y)における時間t0のときのxyt空間の画素をf(x,y′,t0)=r(x)として、xの区間[1,X]の任意の点において存在する、スライス画像の画素g(t,y)に対応するフレーム画像の画素r(x)点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Tの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出させるスポッティング点算出機能と、
    該スポッティング点算出機能により算出されたスポッティング点に基づいて、時間t=Tから時間t=1までバックトレース処理を行うことにより、前記スライス画像のt軸におけるt=1からt=Tまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求めさせる画素マッチング機能と、
    前記フレーム画像と前記スライス画像とのそれぞれの画像に対して、mean-shift法を適用することにより、共通した分割基準に基づいて、それぞれの画像の領域分割を行わせる領域分割機能と、
    該領域分割機能により分割された前記スライス画像の分割領域内に存在する画素に基づいて、前記画素マッチング機能により求められた前記スライス画像の画素に対応する前記フレーム画像の画素を検出し、検出された前記フレーム画像の画素が最も多く含まれる前記フレーム画像の分割領域を求めることによって、前記スライス画像の分割領域に対応する前記フレーム画像の分割領域を対応領域として決定させる対応領域決定機能と、
    該対応領域決定機能によって決定された前記フレーム画像の対応領域において、前記x軸方向の画素数の平均qを検出すると共に、対応する前記スライス画像の分割領域において、前記t軸方向の画素数の平均pを検出することによって、pに対するqの割合あるいはqに対するpの割合に基づいて求められる比率値を、前記対応領域毎に算出させ、前記カメラから前記フレーム画像に写っている撮影対象物までの距離と前記比率値との対応関係が予め定められた距離関数を用いることによって、算出された前記比率値に対応する前記距離を、グローバル距離として前記対応領域毎に算出させるグローバル距離算出機能と、
    を実現させるための画像距離算出用プログラム。
  18. 前記制御手段に、
    前記スライス画像の分割領域内における前記t軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記x軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、前記スライス画像の分割領域内の各画素に対応する画素を、前記フレーム画像の前記対応領域内の画素として求めさせ、求められた前記フレーム画像の前記対応領域内における前記x軸方向の画素の間隔に基づいて、当該対応領域内の画素毎の相対的な距離を、ローカル距離として算出させるローカル距離算出機能と、
    該ローカル距離算出機能により算出された、前記フレーム画像の画素毎のローカル距離に、前記グローバル距離算出機能により算出された、前記フレーム画像の前記対応領域毎のグローバル距離を加算することによって、前記カメラから前記撮影対象物までの詳細な距離を、前記フレーム画像の画素毎に算出させる詳細距離算出機能と、
    を実現させるための請求項17に記載の画像距離算出用プログラム。
  19. 前記制御手段に、
    前記スライス画像の分割領域内における前記t軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記x軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、前記スライス画像の分割領域内の各画素に対応する、前記フレーム画像の前記対応領域内の前記x軸方向の画素を、x(1),x(2),・・・,x(i),・・・,x(G−1),x(G)(1≦i≦G)として求めさせ、
    前記フレーム画像の前記対応領域内における前記x軸方向の始端の境界から終端の境界までの画素数の平均をxaとし、
    前記フレーム画像の前記対応領域内における前記画素x(i)と、前記バックトレース処理により求められて前記画素x(i)に近接する画素x(i−1)との距離をx(i)−x(i−1)とし、
    前記グローバル距離算出機能により算出された前記対応領域のグローバル距離を距離zgとし、
    当該フレーム画像の画素x(i)における撮影対象物から前記カメラまでの詳細な距離を距離z(i)として、当該距離z(i)を、正の定数βを用いて、
    z(i)=zg+β(x(i)−x(i−1)−xa/G)
    により算出させる詳細距離算出機能
    を実現させるための請求項17に記載の画像距離算出用プログラム。
  20. 移動する1台のカメラにより撮影された動画映像に基づいて、カメラから動画映像に記録された撮影対象物までの距離を算出する画像距離算出装置の画像距離算出用プログラムであって、
    前記画像距離算出装置の制御手段に、
    前記動画映像の任意の時間におけるフレーム画像を抽出させるフレーム画像抽出機能と、
    該フレーム画像において、前記カメラの移動方向に向かって延設される軸をx軸とし、当該x軸に直交する軸をy軸として、前記x軸のx0点におけるy軸上の画素列の時間変化を、時間t0+1から時間t0+Tまで抽出することにより、縦軸を前記y軸、横軸をt軸(1≦t≦T)とするスライス画像を生成させるスライス画像生成機能と、
    時間t(1≦t≦T)における前記スライス画像の画素をg(t,y)とし、前記フレーム画像のy軸上のy′点(1≦y′≦Y)における時間t0のときのxyt空間の画素をf(x,y′,t0)=r(x)として、xの区間[1,X]の任意の点において存在する、スライス画像の画素g(t,y)に対応するフレーム画像の画素r(x)点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Tの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出させるスポッティング点算出機能と、
    該スポッティング点算出機能により算出されたスポッティング点に基づいて、時間t=Tから時間t=1までバックトレース処理を行うことにより、前記スライス画像のt軸におけるt=1からt=Tまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求めさせる画素マッチング機能と、
    該画素マッチング機能により求められた時間tにおける前記フレーム画像の前記x軸方向の画素をx(t)とし、時間t0における前記フレーム画像の前記x軸方向の画素をx(t0)として、前記フレーム画像における前記画素x(t)から前記画素x(t0)を減算することにより求められる当該2つの画素間の距離を、累積された動的視差α(t,t0)とし、
    前記フレーム画像の前記画素x(t)における撮影対象物から前記カメラまでの距離をグローバル距離zgとし、
    前記累積された動的視差α(t,t0)の設定範囲を、定数μおよび定数γを用いて、μ≦α(t,t0)≦γとし、
    前記グローバル距離zgの設定範囲を、定数zN1および定数zL1を用いて、zN1≦zg≦zL1として、
    係数aを、
    a=zL1・exp((μ/(γ−μ))log(zL1/zN1
    により算出させ、
    係数bを
    b=(1/(γ−μ))log(zL1/zN1
    により算出させることにより
    前記画素x(t)における前記グローバル距離zgを、前記累積された動的視差α(t,t0)と、前記係数aおよび前記係数bとを用いて、
    zg=a・exp(−b・α(t,t0))
    により算出させるグローバル距離算出機能と、
    を実現させるための画像距離算出用プログラム。
  21. 移動する1台のカメラにより撮影された動画映像に基づいて、カメラから動画映像に記録された撮影対象物までの距離を算出する画像距離算出装置の画像距離算出用プログラムであって、
    前記画像距離算出装置の制御手段に、
    前記動画映像の任意の時間におけるフレーム画像を抽出させるフレーム画像抽出機能と、
    該フレーム画像において、前記カメラの移動方向に向かって延設される軸をx軸とし、当該x軸に直交する軸をy軸として、前記x軸のx0点におけるy軸上の画素列の時間変化を、時間t0+1から時間t0+Tまで抽出することにより、縦軸を前記y軸、横軸をt軸(1≦t≦T)とするスライス画像を生成させるスライス画像生成機能と、
    時間t(1≦t≦T)における前記スライス画像の画素をg(t,y)とし、前記フレーム画像のy軸上のy′点(1≦y′≦Y)における時間t0のときのxyt空間の画素をf(x,y′,t0)=r(x)として、xの区間[1,X]の任意の点において存在する、スライス画像の画素g(t,y)に対応するフレーム画像の画素r(x)点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Tの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出させるスポッティング点算出機能と、
    該スポッティング点算出機能により算出されたスポッティング点に基づいて、時間t=Tから時間t=1までバックトレース処理を行うことにより、前記スライス画像の前記t軸におけるt=1からt=Tまでのそれぞれの画素に対応する前記フレーム画像の前記x軸方向の画素を、x(1),x(2),x(3),・・・,x(i),・・・x(T)(1≦i≦T)として求めさせる画素マッチング機能と、
    該画素マッチング機能により求められた前記フレーム画像の前記画素x(i)と近接する画素x(i−1)との距離差をx(i)−x(i−1)とし、画素x(i)から連続するK個(但しK<T)の画素間における近接する画素との距離差を、x(i+1)−x(i),x(i+2)−x(i+1),x(i+3)−x(i+2),・・・,x(i+K−1)−x(i+K−2),x(i+K)−x(i+K−1)として求めさせ、求められた前記画素間の距離差の値の中央値をMed(i)として求めさせることによって、画素x(i)における累積された動的視差をMed(i)・Kとし、
    前記フレーム画像の前記画素x(i)における撮影対象物から前記カメラまでの詳細な距離を距離z(i,x)とし、
    前記累積された動的視差Med(i)・Kの設定範囲を、定数μおよび定数γを用いて、μ≦Med(i)・K≦γとし、
    前記画素x(i)における距離z(i,x)の設定範囲を、定数zN2および定数zL2を用いて、zN2≦z(i,x)≦zL2として、
    係数aを、
    a=zL2・exp((μ/(γ−μ))log(zL2/zN2
    により算出させ、
    係数bを
    b=(1/(γ−μ))log(zL2/zN2
    により算出させることにより
    前記x(i)における前記距離z(i,x)を、前記累積された動的視差Med(i)・Kと、前記係数aおよび前記係数bとを用いて、
    z(i,x)=a・exp(−b・Med(i)・K)
    により算出させる詳細距離算出機能と、
    を実現させるための画像距離算出用プログラム。
  22. 前記制御手段に、
    前記詳細距離算出機能において、前記フレーム画像の前記画素x(i)(1≦i≦T)以外の画素の距離を、前記画素x(i)において求められた前記距離z(i,x)の距離値を用いて内挿することにより求めさせること
    を実現させるための請求項21に記載の画像距離算出用プログラム。
  23. 前記制御手段に、
    前記カメラにより異なる時間に撮影された2枚のフレーム画像であって、互いに共通する画像部分を一部に含む前記2枚のフレーム画像に対して、前記2枚のフレーム画像の全ての画素のRGBの値を抽出させることにより、抽出された前記RGBの値に該当しないRGBの値を、コードのRGBの値として検出させるコード検出機能と、
    前記グローバル距離算出機能により前記グローバル距離が算出された画素の距離値を、前記2枚のフレーム画像の画素の中から抽出させる画素距離値抽出機能と、
    該画素距離値抽出機能により抽出された前記距離値毎に、前記コードのRGBの値を重複しないように割り当てさせるコードRGB値割当機能と、
    前記コードRGB値割当機能により前記コードのRGBの値が割り当てられた前記距離値と同じ距離値を備える、前記2枚のフレーム画像の画素のRGBの値を、当該距離値に応じて割り当てられた前記コードのRGBの値に入れ替えさせるRGB値入替機能と、
    該RGB値入替機能により入れ替えられた後の前記RGBの値を、当該RGBの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録させる画素情報記録機能と、
    前記RGB値入替機能により前記画素のRGBの値が入れ替えられた2枚のフレーム画像に対して、スティッチングアルゴリズムを適用させることにより、当該2枚のフレーム画像の貼り合わせ処理を行って、1枚の貼り合わせ画像を生成させる貼り合わせ画像生成機能と、
    該貼り合わせ画像生成機能により生成された前記貼り合わせ画像の全ての画素のRGBの値の中から、前記画素情報記録機能によって記録された前記RGBの値と一致あるいは近似するRGBの値を検出させるRGB値検出機能と、
    該RGB値検出機能により検出された前記RGBの値を備える画素に対し、前記画素情報記録機能により記録された前記RGBの値に紐付けられる前記距離値を、当該画素の距離情報として付加させる距離情報付加機能と、
    該距離情報付加機能により前記距離情報が付加された前記画素のRGBの値を、当該画素の周囲の画素のRGBの値の平均値に変更させるRGB値変更機能と、
    を実現させるための請求項17または請求項20に記載の画像距離算出用プログラム。
  24. 前記制御手段に、
    前記カメラにより異なる時間に撮影された2枚のフレーム画像であって、互いに共通する画像部分を一部に含み、前記詳細距離算出機能において前記撮影対象物から前記カメラまでの距離が画素毎に算出された前記2枚のフレーム画像に対して、前記2枚のフレーム画像の全ての画素のRGBの値を抽出させることにより、抽出された前記RGBの値に該当しないRGBの値を、コードのRGBの値として検出させるコード検出機能と、
    前記2枚のフレーム画像のうち、全体の画素数の1/N(Nは正数)の個数の画素をランダムに選択させ、選択された画素の距離値を抽出させる画素距離値抽出機能と、
    該画素距離値抽出機能により抽出された前記距離値毎に、前記コードのRGBの値を重複しないように割り当てさせるコードRGB値割当機能と、
    前記コードRGB値割当機能により前記コードのRGBの値が割り当てられた前記距離値と同じ距離値を備える、前記2枚のフレーム画像の画素のRGBの値を、当該距離値に応じて割り当てられた前記コードのRGBの値に入れ替えさせるRGB値入替機能と、
    該RGB値入替機能により入れ替えられた後の前記RGBの値を、当該RGBの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録させる画素情報記録機能と、
    前記RGB値入替機能により前記画素のRGBの値が入れ替えられた2枚のフレーム画像に対して、スティッチングアルゴリズムを適用させることにより、当該2枚のフレーム画像の貼り合わせ処理を行って、1枚の貼り合わせ画像を生成させる貼り合わせ画像生成機能と、
    該貼り合わせ画像生成機能により生成された前記貼り合わせ画像の全ての画素のRGBの値の中から、前記画素情報記録機能により記録された前記RGBの値と一致あるいは近似するRGBの値を検出させるRGB値検出機能と、
    該RGB値検出機能により検出された前記RGBの値を備える画素に対し、前記画素情報記録機能により記録された前記RGBの値に紐付けられた前記距離値を、当該画素の距離情報として付加させる距離情報付加機能と、
    該距離情報付加機能により前記距離情報が付加された前記画素のRGBの値を、当該画素の周囲の画素のRGBの値の平均値に変更させることにより、当該RGBの値が修正された修正貼り合わせ画像を生成させる修正貼り合わせ画像生成機能と、
    該修正貼り合わせ画像生成機能により生成されたN枚の修正貼り合わせ画像に基づいて、全ての画素に前記距離情報が付加された1枚の貼り合わせ画像を生成させる距離付加貼り合わせ画像生成機能と
    を有し、
    前記画素距離値抽出機能において、前記制御手段に、2回目以降に画素の距離値を抽出させる場合に、前記2枚のフレーム画像のうち過去に選択されなかった画素の中から、全体の画素数の1/Nの個数の画素をランダムに選択させて、当該画素の距離値を抽出させ、
    前記コードRGB値割当機能と、前記RGB値入替機能と、前記画素情報記録機能と、前記貼り合わせ画像生成機能と、前記RGB値検出機能と、前記距離情報付加機能と、前記修正貼り合わせ画像生成機能とに関し、前記画素距離値抽出機能により2回目以降に選択された前記距離値に基づいて、前記制御手段に、それぞれの機能を順番にN回繰り返して実行させることにより、N枚の前記修正貼り合わせ画像を生成させ、
    前記距離付加貼り合わせ画像生成機能において、前記修正貼り合わせ画像の全体の画素数の1/Nの画素に付加されている前記距離情報を、N枚の前記修正貼り合わせ画像の全てを重ねて読み取ることにより、前記制御手段に、前記修正貼り合わせ画像における全ての画素の距離情報を求めさせて、求められた当該距離情報を1枚の貼り合わせ画像に付加させることにより、全ての画素に前記距離情報が付加された前記1枚の貼り合わせ画像を生成させること
    を実現させるための請求項18、請求項19または請求項22のいずれか1項に記載の画像距離算出用プログラム。
JP2017158781A 2016-09-01 2017-08-21 画像距離算出装置、画像距離算出方法および画像距離算出用プログラム Expired - Fee Related JP6750183B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/752,892 US10803609B2 (en) 2016-09-01 2017-08-28 Image distance calculator and computer-readable, non-transitory storage medium storing image distance calculation program
PCT/JP2017/030813 WO2018043437A1 (ja) 2016-09-01 2017-08-28 画像距離算出装置および画像距離算出用プログラムを記録したコンピュータ読み取り可能な非一過性の記録媒体

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016170795 2016-09-01
JP2016170795 2016-09-01

Publications (2)

Publication Number Publication Date
JP2018040789A true JP2018040789A (ja) 2018-03-15
JP6750183B2 JP6750183B2 (ja) 2020-09-02

Family

ID=61625963

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017158781A Expired - Fee Related JP6750183B2 (ja) 2016-09-01 2017-08-21 画像距離算出装置、画像距離算出方法および画像距離算出用プログラム

Country Status (2)

Country Link
US (1) US10803609B2 (ja)
JP (1) JP6750183B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020170462A1 (ja) * 2019-02-22 2020-08-27 公立大学法人会津大学 動画像距離算出装置および動画像距離算出用プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2020139934A (ja) * 2019-02-22 2020-09-03 公立大学法人会津大学 動画像距離算出装置および動画像距離算出用プログラム
CN111623755A (zh) * 2019-02-28 2020-09-04 苹果公司 启用自动测量
JP2022063763A (ja) * 2020-10-12 2022-04-22 西日本電信電話株式会社 移動体
US11670144B2 (en) 2020-09-14 2023-06-06 Apple Inc. User interfaces for indicating distance

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10957068B2 (en) * 2017-01-06 2021-03-23 Canon Kabushiki Kaisha Information processing apparatus and method of controlling the same
PH12019050076A1 (en) * 2019-05-06 2020-12-02 Samsung Electronics Co Ltd Enhancing device geolocation using 3d map data
CN114764790B (zh) * 2022-03-31 2023-05-12 河北鹰眼智能科技有限公司 一种基于霍夫圆检测的齿轮断齿检测方法
CN114511048B (zh) * 2022-04-20 2022-07-29 深圳市海清视讯科技有限公司 图像处理方法、装置、设备及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005020152A1 (ja) * 2003-08-21 2005-03-03 Matsushita Electric Industrial Co., Ltd. 人物検出装置および人物検出方法
JP2007293720A (ja) * 2006-04-26 2007-11-08 Ryoka Systems Inc 動状態解析システム及び方法、並びにコンピュータプログラム
JP2008103839A (ja) * 2006-10-17 2008-05-01 Nissan Motor Co Ltd 車両用監視装置、および車両用監視方法
US20130294655A1 (en) * 2012-05-07 2013-11-07 Korea Advanced Institute Of Science And Technology Method and system for detecting matrix-based motion including frequency transform and filtering

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008309519A (ja) 2007-06-12 2008-12-25 Panasonic Corp 画像処理を用いた物体検出装置
JP2009139995A (ja) 2007-12-03 2009-06-25 National Institute Of Information & Communication Technology ステレオ画像対における画素のリアルタイムマッチングのための装置及びプログラム
JP5247481B2 (ja) 2009-01-14 2013-07-24 公立大学法人会津大学 画像パターンマッチング装置、画像パターンマッチング方法および画像パターンマッチング用プログラム
JP6405891B2 (ja) * 2014-10-29 2018-10-17 富士通株式会社 位置・姿勢推定装置、位置・姿勢推定方法、及び、プログラム
US10685490B2 (en) * 2016-03-10 2020-06-16 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and storage medium
WO2018013495A1 (en) * 2016-07-11 2018-01-18 Gravity Jack, Inc. Augmented reality methods and devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005020152A1 (ja) * 2003-08-21 2005-03-03 Matsushita Electric Industrial Co., Ltd. 人物検出装置および人物検出方法
JP2007293720A (ja) * 2006-04-26 2007-11-08 Ryoka Systems Inc 動状態解析システム及び方法、並びにコンピュータプログラム
JP2008103839A (ja) * 2006-10-17 2008-05-01 Nissan Motor Co Ltd 車両用監視装置、および車両用監視方法
US20130294655A1 (en) * 2012-05-07 2013-11-07 Korea Advanced Institute Of Science And Technology Method and system for detecting matrix-based motion including frequency transform and filtering

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
鳥居 駿平: "移動するカメラによる動画像からの動作のスポッティング認識", 電子情報通信学会技術報告書, vol. 113, no. 75, JPN6020024233, 3 June 2013 (2013-06-03), pages 71 - 76, ISSN: 0004302094 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020170462A1 (ja) * 2019-02-22 2020-08-27 公立大学法人会津大学 動画像距離算出装置および動画像距離算出用プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2020139934A (ja) * 2019-02-22 2020-09-03 公立大学法人会津大学 動画像距離算出装置および動画像距離算出用プログラム
JP7157449B2 (ja) 2019-02-22 2022-10-20 公立大学法人会津大学 動画像距離算出装置および動画像距離算出用プログラム
CN111623755A (zh) * 2019-02-28 2020-09-04 苹果公司 启用自动测量
US11783499B2 (en) 2019-02-28 2023-10-10 Apple Inc. Enabling automatic measurements
US11670144B2 (en) 2020-09-14 2023-06-06 Apple Inc. User interfaces for indicating distance
JP2022063763A (ja) * 2020-10-12 2022-04-22 西日本電信電話株式会社 移動体

Also Published As

Publication number Publication date
JP6750183B2 (ja) 2020-09-02
US20200250846A1 (en) 2020-08-06
US10803609B2 (en) 2020-10-13

Similar Documents

Publication Publication Date Title
JP6750183B2 (ja) 画像距離算出装置、画像距離算出方法および画像距離算出用プログラム
JP5156837B2 (ja) 領域ベースのフィルタリングを使用する奥行マップ抽出のためのシステムおよび方法
JP6061834B2 (ja) 奥行き画像の解像度を増大させる方法とシステム
JP5818514B2 (ja) 画像処理装置および画像処理方法、プログラム
US9412151B2 (en) Image processing apparatus and image processing method
US9237330B2 (en) Forming a stereoscopic video
US8737723B1 (en) Fast randomized multi-scale energy minimization for inferring depth from stereo image pairs
US9041819B2 (en) Method for stabilizing a digital video
JP5887267B2 (ja) 3次元画像補間装置、3次元撮像装置および3次元画像補間方法
US20130127988A1 (en) Modifying the viewpoint of a digital image
US8611642B2 (en) Forming a steroscopic image using range map
US20130129192A1 (en) Range map determination for a video frame
US20150379720A1 (en) Methods for converting two-dimensional images into three-dimensional images
KR101181199B1 (ko) 배경 지형 장면의 입체 이미지 생성 방법, 시스템 및 이를 위한 기록매체
JP5225313B2 (ja) 画像生成装置、画像生成方法、及びプログラム
US20150229913A1 (en) Image processing device
JP6300346B2 (ja) Ip立体映像推定装置及びそのプログラム
JP2016122444A (ja) 焦点スタックから適応スライス画像を生成する方法および装置
Bleyer et al. Temporally consistent disparity maps from uncalibrated stereo videos
KR101086274B1 (ko) 깊이정보 추출 장치 및 추출 방법
JPH09245195A (ja) 画像処理方法およびその装置
WO2018043437A1 (ja) 画像距離算出装置および画像距離算出用プログラムを記録したコンピュータ読み取り可能な非一過性の記録媒体
JP5906033B2 (ja) 画像処理装置および画像処理方法、プログラム
Orozco et al. HDR multiview image sequence generation: Toward 3D HDR video
JP6595878B2 (ja) 要素画像群生成装置及びそのプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190726

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200714

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200721

R150 Certificate of patent or registration of utility model

Ref document number: 6750183

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees