(57)【要約】【課題】動画のフレーム画像の画素毎に、カメラから撮影対象物までの距離を算出する。【解決手段】画像距離算出方法では、カメラの動画映像よりフレーム画像を抽出し(Ｓ．１)、フレーム画像のｘ０点におけるｙ軸上の画素列の時間変化によりスライス画像を生成し(Ｓ．２)、スライス画像の画素とフレーム画像の画素との対応関係に基づいてスポッティング点を算出し(Ｓ．３)、バックトレース処理によりスライス画像の画素に対応するフレーム画像の画素を求め(Ｓ．４)、フレーム画像とスライス画像との領域分割を行い(Ｓ．５)、スライス画像の分割領域に対応するフレーム画像の対応領域を決定し(Ｓ．６)、フレーム画像の対応領域の画素数の平均ｑと、スライス画像の分割領域の画素数の平均ｐとにより、比率値を算出し、カメラから撮影対象物までの距離ｚを、予め定められた距離関数を用いて、対応領域毎に算出する(Ｓ．７)。【選択図】  図２
2018040789.tif 000002
【特許請求の範囲】
【請求項１】
移動する１台のカメラにより撮影された動画映像に基づいて、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出手段と、
該フレーム画像において、前記カメラの移動方向に向かって延設される軸をｘ軸とし、当該ｘ軸に直交する軸をｙ軸として、前記ｘ軸のｘ０点におけるｙ軸上の画素列の時間変化を、時間ｔ０＋１から時間ｔ０＋Ｔまで抽出することにより、縦軸を前記ｙ軸、横軸をｔ軸（１≦ｔ≦Ｔ）とするスライス画像を生成するスライス画像生成手段と、
時間ｔ（１≦ｔ≦Ｔ）における前記スライス画像の画素をｇ（ｔ，ｙ）とし、前記フレーム画像のｙ軸上のｙ′点（１≦ｙ′≦Ｙ）における時間ｔ０のときのｘｙｔ空間の画素をｆ（ｘ，ｙ′，ｔ０）＝ｒ（ｘ）として、ｘの区間［１，Ｘ］の任意の点において存在する、スライス画像の画素ｇ（ｔ，ｙ）に対応するフレーム画像の画素ｒ（ｘ）点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Ｔの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出手段と、
該スポッティング点算出手段により算出されたスポッティング点に基づいて、時間ｔ＝Ｔから時間ｔ＝１までバックトレース処理を行うことにより、前記スライス画像のｔ軸におけるｔ＝１からｔ＝Ｔまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求める画素マッチング手段と、
前記フレーム画像と前記スライス画像とのそれぞれの画像に対して、mean-shift法を適用することにより、共通した分割基準に基づいて、それぞれの画像の領域分割を行う領域分割手段と、
該領域分割手段により分割された前記スライス画像の分割領域内に存在する画素に基づいて、前記画素マッチング手段により求められた前記スライス画像の画素に対応する前記フレーム画像の画素を検出し、検出された前記フレーム画像の画素が最も多く含まれる前記フレーム画像の分割領域を求めることによって、前記スライス画像の分割領域に対応する前記フレーム画像の分割領域を対応領域として決定する対応領域決定手段と、
該対応領域決定手段により決定された前記フレーム画像の対応領域において、前記ｘ軸方向の画素数の平均ｑを検出すると共に、対応する前記スライス画像の分割領域において、前記ｔ軸方向の画素数の平均ｐを検出することによって、ｐに対するｑの割合あるいはｑに対するｐの割合に基づいて求められる比率値を、前記対応領域毎に算出し、前記カメラから前記フレーム画像に写っている撮影対象物までの距離と前記比率値との対応関係が予め定められた距離関数を用いることによって、算出された前記比率値に対応する前記距離を、グローバル距離として前記対応領域毎に算出するグローバル距離算出手段と、
を有することを特徴とする画像距離算出装置。
【請求項２】
前記スライス画像の分割領域内における前記ｔ軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記ｘ軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、前記スライス画像の分割領域内の各画素に対応する画素を、前記フレーム画像の前記対応領域内の画素として求め、求められた前記フレーム画像の前記対応領域内における前記ｘ軸方向の画素の間隔に基づいて、当該対応領域内の画素毎の相対的な距離を、ローカル距離として算出するローカル距離算出手段と、
該ローカル距離算出手段により算出された、前記フレーム画像の画素毎のローカル距離に、前記グローバル距離算出手段により算出された、前記フレーム画像の前記対応領域毎のグローバル距離を加算することによって、前記カメラから前記撮影対象物までの詳細な距離を、前記フレーム画像の画素毎に算出する詳細距離算出手段と、
を有することを特徴とする請求項１に記載の画像距離算出装置。
【請求項３】
前記スライス画像の分割領域内における前記ｔ軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記ｘ軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、前記スライス画像の分割領域内の各画素に対応する、前記フレーム画像の前記対応領域内の前記ｘ軸方向の画素を、ｘ（１），ｘ（２），・・・，ｘ（ｉ），・・・，ｘ（Ｇ−１），ｘ（Ｇ）（１≦ｉ≦Ｇ）として求め、
前記フレーム画像の前記対応領域内における前記ｘ軸方向の始端の境界から終端の境界までの画素数の平均をｘａとし、
前記フレーム画像の前記対応領域内における前記画素ｘ（ｉ）と、前記バックトレース処理により求められて前記画素ｘ（ｉ）に近接する画素ｘ（ｉ−１）との距離をｘ（ｉ）−ｘ（ｉ−１）とし、
前記グローバル距離算出手段により算出された前記対応領域のグローバル距離を距離ｚｇとし、
当該フレーム画像の画素ｘ（ｉ）における撮影対象物から前記カメラまでの詳細な距離を距離ｚ（ｉ）として、当該距離ｚ（ｉ）を、正の定数βを用いて、
ｚ（ｉ）＝ｚｇ＋β（ｘ（ｉ）−ｘ（ｉ−１）−ｘａ／Ｇ）
により算出する詳細距離算出手段
を有することを特徴とする請求項１に記載の画像距離算出装置。
【請求項４】
移動する１台のカメラにより撮影された動画映像に基づいて、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出手段と、
該フレーム画像において、前記カメラの移動方向に向かって延設される軸をｘ軸とし、当該ｘ軸に直交する軸をｙ軸として、前記ｘ軸のｘ０点におけるｙ軸上の画素列の時間変化を、時間ｔ０＋１から時間ｔ０＋Ｔまで抽出することにより、縦軸を前記ｙ軸、横軸をｔ軸（１≦ｔ≦Ｔ）とするスライス画像を生成するスライス画像生成手段と、
時間ｔ（１≦ｔ≦Ｔ）における前記スライス画像の画素をｇ（ｔ，ｙ）とし、前記フレーム画像のｙ軸上のｙ′点（１≦ｙ′≦Ｙ）における時間ｔ０のときのｘｙｔ空間の画素をｆ（ｘ，ｙ′，ｔ０）＝ｒ（ｘ）として、ｘの区間［１，Ｘ］の任意の点において存在する、スライス画像の画素ｇ（ｔ，ｙ）に対応するフレーム画像の画素ｒ（ｘ）点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Ｔの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出手段と、
該スポッティング点算出手段により算出されたスポッティング点に基づいて、時間ｔ＝Ｔから時間ｔ＝１までバックトレース処理を行うことにより、前記スライス画像のｔ軸におけるｔ＝１からｔ＝Ｔまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求める画素マッチング手段と、
該画素マッチング手段により求められた時間ｔにおける前記フレーム画像の前記ｘ軸方向の画素をｘ（ｔ）とし、時間ｔ０における前記フレーム画像の前記ｘ軸方向の画素をｘ（ｔ０）として、前記フレーム画像における前記画素ｘ（ｔ）から前記画素ｘ（ｔ０）を減算することにより求められる当該２つの画素間の距離を、累積された動的視差α（ｔ，ｔ０）とし、
前記フレーム画像の前記画素ｘ（ｔ）における撮影対象物から前記カメラまでの距離をグローバル距離ｚｇとし、
前記累積された動的視差α（ｔ，ｔ０）の設定範囲を、定数μ１および定数γ１を用いて、μ１≦α（ｔ，ｔ０）≦γ１とし、
前記グローバル距離ｚｇの設定範囲を、定数ｚＮ１および定数ｚＬ１を用いて、ｚＮ１≦ｚｇ≦ｚＬ１として、
係数ａを、
ａ＝ｚＬ１・ｅｘｐ（（μ１／（γ１−μ１））ｌｏｇ（ｚＬ１／ｚＮ１）
により算出し、
係数ｂを
ｂ＝（１／（γ１−μ１））ｌｏｇ（ｚＬ１／ｚＮ１）
により算出することにより、
前記画素ｘ（ｔ）における前記グローバル距離ｚｇを、前記累積された動的視差α（ｔ，ｔ０）と、前記係数ａおよび前記係数ｂとを用いて、
ｚｇ＝ａ・ｅｘｐ（−ｂ・α（ｔ，ｔ０））
により算出するグローバル距離算出手段と、
を有することを特徴とする画像距離算出装置。
【請求項５】
移動する１台のカメラにより撮影された動画映像に基づいて、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出手段と、
該フレーム画像において、前記カメラの移動方向に向かって延設される軸をｘ軸とし、当該ｘ軸に直交する軸をｙ軸として、前記ｘ軸のｘ０点におけるｙ軸上の画素列の時間変化を、時間ｔ０＋１から時間ｔ０＋Ｔまで抽出することにより、縦軸を前記ｙ軸、横軸をｔ軸（１≦ｔ≦Ｔ）とするスライス画像を生成するスライス画像生成手段と、
時間ｔ（１≦ｔ≦Ｔ）における前記スライス画像の画素をｇ（ｔ，ｙ）とし、前記フレーム画像のｙ軸上のｙ′点（１≦ｙ′≦Ｙ）における時間ｔ０のときのｘｙｔ空間の画素をｆ（ｘ，ｙ′，ｔ０）＝ｒ（ｘ）として、ｘの区間［１，Ｘ］の任意の点において存在する、スライス画像の画素ｇ（ｔ，ｙ）に対応するフレーム画像の画素ｒ（ｘ）点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Ｔの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出手段と、
該スポッティング点算出手段により算出されたスポッティング点に基づいて、時間ｔ＝Ｔから時間ｔ＝１までバックトレース処理を行うことにより、前記スライス画像の前記ｔ軸におけるｔ＝１からｔ＝Ｔまでのそれぞれの画素に対応する前記フレーム画像の前記ｘ軸方向の画素を、ｘ（１），ｘ（２），ｘ（３），・・・，ｘ（ｉ），・・・ｘ（Ｔ）（１≦ｉ≦Ｔ）として求める画素マッチング手段と、
該画素マッチング手段により求められた前記フレーム画像の前記画素ｘ（ｉ）と近接する画素ｘ（ｉ−１）との距離差をｘ（ｉ）−ｘ（ｉ−１）とし、画素ｘ（ｉ）から連続するＫ個（但しＫ＜Ｔ）の画素間における近接する画素との距離差を、ｘ（ｉ＋１）−ｘ（ｉ），ｘ（ｉ＋２）−ｘ（ｉ＋１），ｘ（ｉ＋３）−ｘ（ｉ＋２），・・・，ｘ（ｉ＋Ｋ−１）−ｘ（ｉ＋Ｋ−２），ｘ（ｉ＋Ｋ）−ｘ（ｉ＋Ｋ−１）として求め、求められた前記画素間の距離差の値の中央値をＭｅｄ（ｉ）として求めることによって、画素ｘ（ｉ）における累積された動的視差をＭｅｄ（ｉ）・Ｋとし、
前記フレーム画像の前記画素ｘ（ｉ）における撮影対象物から前記カメラまでの詳細な距離を距離ｚ（ｉ，ｘ）とし、
前記累積された動的視差Ｍｅｄ（ｉ）・Ｋの設定範囲を、定数μ２および定数γ２を用いて、μ２≦Ｍｅｄ（ｉ）・Ｋ≦γ２とし、
前記画素ｘ（ｉ）における距離ｚ（ｉ，ｘ）の設定範囲を、定数ｚＮ２および定数ｚＬ２を用いて、ｚＮ２≦ｚ（ｉ，ｘ）≦ｚＬ２として、
係数ａを、
ａ＝ｚＬ２・ｅｘｐ（（μ２／（γ２−μ２））ｌｏｇ（ｚＬ２／ｚＮ２）
により算出し、
係数ｂを
ｂ＝（１／（γ２−μ２））ｌｏｇ（ｚＬ２／ｚＮ２）
により算出することにより
前記ｘ（ｉ）における前記距離ｚ（ｉ，ｘ）を、前記累積された動的視差Ｍｅｄ（ｉ）・Ｋと、前記係数ａおよび前記係数ｂとを用いて、
ｚ（ｉ，ｘ）＝ａ・ｅｘｐ（−ｂ・Ｍｅｄ（ｉ）・Ｋ）
により算出する詳細距離算出手段と、
を有することを特徴とする画像距離算出装置。
【請求項６】
前記詳細距離算出手段は、前記フレーム画像の前記画素ｘ（ｉ）（１≦ｉ≦Ｔ）以外の画素の距離を、前記画素ｘ（ｉ）において求められた前記距離ｚ（ｉ，ｘ）の距離値を用いて内挿することにより求めること
を特徴とする請求項５に記載の画像距離算出装置。
【請求項７】
前記カメラにより異なる時間に撮影された２枚のフレーム画像であって、互いに共通する画像部分を一部に含む前記２枚のフレーム画像に対して、前記２枚のフレーム画像の全ての画素のＲＧＢの値を抽出することにより、抽出された前記ＲＧＢの値に該当しないＲＧＢの値を、コードのＲＧＢの値として検出するコード検出手段と、
前記グローバル距離算出手段により前記グローバル距離が算出された画素の距離値を、前記２枚のフレーム画像の画素の中から抽出する画素距離値抽出手段と、
該画素距離値抽出手段により抽出された前記距離値毎に、前記コードのＲＧＢの値を重複しないように割り当てるコードＲＧＢ値割当手段と、
前記コードＲＧＢ値割当手段により前記コードのＲＧＢの値が割り当てられた前記距離値と同じ距離値を備える、前記２枚のフレーム画像の画素のＲＧＢの値を、当該距離値に応じて割り当てられた前記コードのＲＧＢの値に入れ替えるＲＧＢ値入替手段と、
該ＲＧＢ値入替手段により入れ替えられた後の前記ＲＧＢの値を、当該ＲＧＢの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録する画素情報記録手段と、
前記ＲＧＢ値入替手段により前記画素のＲＧＢの値が入れ替えられた２枚のフレーム画像に対して、スティッチングアルゴリズムを適用することにより、当該２枚のフレーム画像の貼り合わせ処理を行って、１枚の貼り合わせ画像を生成する貼り合わせ画像生成手段と、
該貼り合わせ画像生成手段により生成された前記貼り合わせ画像の全ての画素のＲＧＢの値の中から、前記画素情報記録手段に記録される前記ＲＧＢの値と一致あるいは近似するＲＧＢの値を検出するＲＧＢ値検出手段と、
該ＲＧＢ値検出手段により検出された前記ＲＧＢの値を備える画素に対し、前記画素情報記録手段に記録される前記ＲＧＢの値に紐付けられた前記距離値を、当該画素の距離情報として付加する距離情報付加手段と、
該距離情報付加手段により前記距離情報が付加された前記画素のＲＧＢの値を、当該画素の周囲の画素のＲＧＢの値の平均値に変更するＲＧＢ値変更手段と、
を有することを特徴とする請求項１または請求項４に記載の画像距離算出装置。
【請求項８】
前記カメラにより異なる時間に撮影された２枚のフレーム画像であって、互いに共通する画像部分を一部に含み、前記詳細距離算出手段によって前記撮影対象物から前記カメラまでの距離が画素毎に算出された前記２枚のフレーム画像に対して、前記２枚のフレーム画像の全ての画素のＲＧＢの値を抽出することにより、抽出された前記ＲＧＢの値に該当しないＲＧＢの値を、コードのＲＧＢの値として検出するコード検出手段と、
前記２枚のフレーム画像のうち、全体の画素数の１／Ｎ（Ｎは正数）の個数の画素をランダムに選択し、選択された画素の距離値を抽出する画素距離値抽出手段と、
該画素距離値抽出手段により抽出された前記距離値毎に、前記コードのＲＧＢの値を重複しないように割り当てるコードＲＧＢ値割当手段と、
前記コードＲＧＢ値割当手段により前記コードのＲＧＢの値が割り当てられた前記距離値と同じ距離値を備える、前記２枚のフレーム画像の画素のＲＧＢの値を、当該距離値に応じて割り当てられた前記コードのＲＧＢの値に入れ替えるＲＧＢ値入替手段と、
該ＲＧＢ値入替手段により入れ替えられた後の前記ＲＧＢの値を、当該ＲＧＢの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録する画素情報記録手段と、
前記ＲＧＢ値入替手段により前記画素のＲＧＢの値が入れ替えられた２枚のフレーム画像に対して、スティッチングアルゴリズムを適用することにより、当該２枚のフレーム画像の貼り合わせ処理を行って、１枚の貼り合わせ画像を生成する貼り合わせ画像生成手段と、
該貼り合わせ画像生成手段により生成された前記貼り合わせ画像の全ての画素のＲＧＢの値の中から、前記画素情報記録手段に記録される前記ＲＧＢの値と一致あるいは近似するＲＧＢの値を検出するＲＧＢ値検出手段と、
該ＲＧＢ値検出手段により検出された前記ＲＧＢの値を備える画素に対し、前記画素情報記録手段に記録される前記ＲＧＢの値に紐付けられた前記距離値を、当該画素の距離情報として付加する距離情報付加手段と、
該距離情報付加手段により前記距離情報が付加された前記画素のＲＧＢの値を、当該画素の周囲の画素のＲＧＢの値の平均値に変更することにより、当該ＲＧＢの値が修正された修正貼り合わせ画像を生成する修正貼り合わせ画像生成手段と、
該修正貼り合わせ画像生成手段により生成されたＮ枚の修正貼り合わせ画像に基づいて、全ての画素に前記距離情報が付加された１枚の貼り合わせ画像を生成する距離付加貼り合わせ画像生成手段と
を有し、
前記画素距離値抽出手段は、２回目以降に画素の距離値を抽出する場合に、前記２枚のフレーム画像のうち過去に選択されなかった画素の中から、全体の画素数の１／Ｎの個数の画素をランダムに選択して、当該画素の距離値を抽出し、
前記コードＲＧＢ値割当手段と、前記ＲＧＢ値入替手段と、前記画素情報記録手段と、前記貼り合わせ画像生成手段と、前記ＲＧＢ値検出手段と、前記距離情報付加手段と、前記修正貼り合わせ画像生成手段とは、前記画素距離値抽出手段により２回目以降に選択された前記距離値に基づいて、それぞれの処理を順番にＮ回繰り返すことにより、Ｎ枚の前記修正貼り合わせ画像を生成し、
前記距離付加貼り合わせ画像生成手段は、前記修正貼り合わせ画像の全体の画素数の１／Ｎの画素に付加されている前記距離情報を、Ｎ枚の前記修正貼り合わせ画像の全てを重ねて読み取ることにより、前記修正貼り合わせ画像における全ての画素の距離情報を求めて、求められた当該距離情報を１枚の貼り合わせ画像に付加することにより、全ての画素に前記距離情報が付加された前記１枚の貼り合わせ画像を生成すること
を特徴とする請求項２、請求項３または請求項６のいずれか１項に記載の画像距離算出装置。
【請求項９】
移動する１台のカメラにより撮影された動画映像に基づいて、フレーム画像抽出手段が、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出ステップと、
該フレーム画像において、前記カメラの移動方向に向かって延設される軸をｘ軸とし、当該ｘ軸に直交する軸をｙ軸として、前記ｘ軸のｘ０点におけるｙ軸上の画素列の時間変化を、時間ｔ０＋１から時間ｔ０＋Ｔまで抽出することにより、スライス画像生成手段が、縦軸を前記ｙ軸、横軸をｔ軸（１≦ｔ≦Ｔ）とするスライス画像を生成するスライス画像生成ステップと、
時間ｔ（１≦ｔ≦Ｔ）における前記スライス画像の画素をｇ（ｔ，ｙ）とし、前記フレーム画像のｙ軸上のｙ′点（１≦ｙ′≦Ｙ）における時間ｔ０のときのｘｙｔ空間の画素をｆ（ｘ，ｙ′，ｔ０）＝ｒ（ｘ）として、ｘの区間［１，Ｘ］の任意の点において存在する、スライス画像の画素ｇ（ｔ，ｙ）に対応するフレーム画像の画素ｒ（ｘ）点を、動的計画法に基づくマッチング処理を用いて求めることにより、スポッティング点算出手段が、前記スライス画像における時間Ｔの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出ステップと、
該スポッティング点算出ステップにおいて算出されたスポッティング点に基づいて、時間ｔ＝Ｔから時間ｔ＝１までバックトレース処理を行うことにより、画素マッチング手段が、前記スライス画像のｔ軸におけるｔ＝１からｔ＝Ｔまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求める画素マッチングステップと、
前記フレーム画像と前記スライス画像とのそれぞれの画像に対して、mean-shift法を適用することにより、領域分割手段が、共通した分割基準に基づいて、それぞれの画像の領域分割を行う領域分割ステップと、
該領域分割ステップにおいて分割された前記スライス画像の分割領域内に存在する画素に基づいて、前記画素マッチングステップにおいて求められた前記スライス画像の画素に対応する前記フレーム画像の画素を検出し、検出された前記フレーム画像の画素が最も多く含まれる前記フレーム画像の分割領域を求めることによって、対応領域決定手段が、前記スライス画像の分割領域に対応する前記フレーム画像の分割領域を対応領域として決定する対応領域決定ステップと、
該対応領域決定ステップによって決定された前記フレーム画像の対応領域において、前記ｘ軸方向の画素数の平均ｑを検出すると共に、対応する前記スライス画像の分割領域において、前記ｔ軸方向の画素数の平均ｐを検出することによって、ｐに対するｑの割合あるいはｑに対するｐの割合に基づいて求められる比率値を、前記対応領域毎に算出し、前記カメラから前記フレーム画像に写っている撮影対象物までの距離と前記比率値との対応関係が予め定められた距離関数を用いることによって、グローバル距離算出手段が、算出された前記比率値に対応する前記距離を、グローバル距離として前記対応領域毎に算出するグローバル距離算出ステップと、
を有することを特徴とする画像距離算出方法。
【請求項１０】
前記スライス画像の分割領域内における前記ｔ軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記ｘ軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、前記スライス画像の分割領域内の各画素に対応する画素を、前記フレーム画像の前記対応領域内の画素として求め、求められた前記フレーム画像の前記対応領域内における前記ｘ軸方向の画素の間隔に基づいて、ローカル距離算出手段が、当該対応領域内の画素毎の相対的な距離を、ローカル距離として算出するローカル距離算出ステップと、
該ローカル距離算出ステップにおいて算出された、前記フレーム画像の画素毎のローカル距離に、前記グローバル距離算出ステップにおいて算出された、前記フレーム画像の前記対応領域毎のグローバル距離を加算することによって、詳細距離算出手段が、前記カメラから前記撮影対象物までの詳細な距離を、前記フレーム画像の画素毎に算出する詳細距離算出ステップと、
を有することを特徴とする請求項９に記載の画像距離算出方法。
【請求項１１】
前記スライス画像の分割領域内における前記ｔ軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記ｘ軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、詳細距離算出手段が、前記スライス画像の分割領域内の各画素に対応する、前記フレーム画像の前記対応領域内の前記ｘ軸方向の画素を、ｘ（１），ｘ（２），・・・，ｘ（ｉ），・・・，ｘ（Ｇ−１），ｘ（Ｇ）（１≦ｉ≦Ｇ）として求め、
前記フレーム画像の前記対応領域内における前記ｘ軸方向の始端の境界から終端の境界までの画素数の平均をｘａとし、
前記フレーム画像の前記対応領域内における前記画素ｘ（ｉ）と、前記バックトレース処理により求められて前記画素ｘ（ｉ）に近接する画素ｘ（ｉ−１）との距離をｘ（ｉ）−ｘ（ｉ−１）とし、
前記グローバル距離算出ステップにおいて算出された前記対応領域のグローバル距離を距離ｚｇとし、
当該フレーム画像の画素ｘ（ｉ）における撮影対象物から前記カメラまでの詳細な距離を距離ｚ（ｉ）として、当該距離ｚ（ｉ）を、正の定数βを用いて、
ｚ（ｉ）＝ｚｇ＋β（ｘ（ｉ）−ｘ（ｉ−１）−ｘａ／Ｇ）
により算出する詳細距離算出ステップ
を有することを特徴とする請求項９に記載の画像距離算出方法。
【請求項１２】
移動する１台のカメラにより撮影された動画映像に基づいて、フレーム画像抽出手段が、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出ステップと、
該フレーム画像において、前記カメラの移動方向に向かって延設される軸をｘ軸とし、当該ｘ軸に直交する軸をｙ軸として、前記ｘ軸のｘ０点におけるｙ軸上の画素列の時間変化を、時間ｔ０＋１から時間ｔ０＋Ｔまで抽出することにより、スライス画像生成手段が、縦軸を前記ｙ軸、横軸をｔ軸（１≦ｔ≦Ｔ）とするスライス画像を生成するスライス画像生成ステップと、
時間ｔ（１≦ｔ≦Ｔ）における前記スライス画像の画素をｇ（ｔ，ｙ）とし、前記フレーム画像のｙ軸上のｙ′点（１≦ｙ′≦Ｙ）における時間ｔ０のときのｘｙｔ空間の画素をｆ（ｘ，ｙ′，ｔ０）＝ｒ（ｘ）として、ｘの区間［１，Ｘ］の任意の点において存在する、スライス画像の画素ｇ（ｔ，ｙ）に対応するフレーム画像の画素ｒ（ｘ）点を、動的計画法に基づくマッチング処理を用いて求めることにより、スポッティング点算出手段が、前記スライス画像における時間Ｔの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出ステップと、
該スポッティング点算出ステップにおいて算出されたスポッティング点に基づいて、時間ｔ＝Ｔから時間ｔ＝１までバックトレース処理を行うことにより、画素マッチング手段が、前記スライス画像のｔ軸におけるｔ＝１からｔ＝Ｔまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求める画素マッチングステップと、
該画素マッチングステップにおいて求められた時間ｔにおける前記フレーム画像の前記ｘ軸方向の画素をｘ（ｔ）とし、時間ｔ０における前記フレーム画像の前記ｘ軸方向の画素をｘ（ｔ０）として、前記フレーム画像における前記画素ｘ（ｔ）から前記画素ｘ（ｔ０）を減算することにより求められる当該２つの画素間の距離を、累積された動的視差α（ｔ，ｔ０）とし、
前記フレーム画像の前記画素ｘ（ｔ）における撮影対象物から前記カメラまでの距離をグローバル距離ｚｇとし、
前記累積された動的視差α（ｔ，ｔ０）の設定範囲を、定数μ１および定数γ１を用いて、μ１≦α（ｔ，ｔ０）≦γ１とし、
前記グローバル距離ｚｇの設定範囲を、定数ｚＮ１および定数ｚＬ１を用いて、ｚＮ１≦ｚｇ≦ｚＬ１として、
グローバル距離算出手段が、
係数ａを、
ａ＝ｚＬ１・ｅｘｐ（（μ１／（γ１−μ１））ｌｏｇ（ｚＬ１／ｚＮ１）
により算出し、
係数ｂを
ｂ＝（１／（γ１−μ１））ｌｏｇ（ｚＬ１／ｚＮ１）
により算出することにより
前記画素ｘ（ｔ）における前記グローバル距離ｚｇを、前記累積された動的視差α（ｔ，ｔ０）と、前記係数ａおよび前記係数ｂとを用いて、
ｚｇ＝ａ・ｅｘｐ（−ｂ・α（ｔ，ｔ０））
により算出するグローバル距離算出ステップと、
を有することを特徴とする画像距離算出方法。
【請求項１３】
移動する１台のカメラにより撮影された動画映像に基づいて、フレーム画像抽出手段が、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出ステップと、
該フレーム画像において、前記カメラの移動方向に向かって延設される軸をｘ軸とし、当該ｘ軸に直交する軸をｙ軸として、前記ｘ軸のｘ０点におけるｙ軸上の画素列の時間変化を、時間ｔ０＋１から時間ｔ０＋Ｔまで抽出することにより、スライス画像生成手段が、縦軸を前記ｙ軸、横軸をｔ軸（１≦ｔ≦Ｔ）とするスライス画像を生成するスライス画像生成ステップと、
時間ｔ（１≦ｔ≦Ｔ）における前記スライス画像の画素をｇ（ｔ，ｙ）とし、前記フレーム画像のｙ軸上のｙ′点（１≦ｙ′≦Ｙ）における時間ｔ０のときのｘｙｔ空間の画素をｆ（ｘ，ｙ′，ｔ０）＝ｒ（ｘ）として、ｘの区間［１，Ｘ］の任意の点において存在する、スライス画像の画素ｇ（ｔ，ｙ）に対応するフレーム画像の画素ｒ（ｘ）点を、動的計画法に基づくマッチング処理を用いて求めることにより、スポッティング点算出手段が、前記スライス画像における時間Ｔの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出ステップと、
該スポッティング点算出ステップにおいて算出されたスポッティング点に基づいて、時間ｔ＝Ｔから時間ｔ＝１までバックトレース処理を行うことにより、画素マッチング手段が、前記スライス画像の前記ｔ軸におけるｔ＝１からｔ＝Ｔまでのそれぞれの画素に対応する前記フレーム画像の前記ｘ軸方向の画素を、ｘ（１），ｘ（２），ｘ（３），・・・，ｘ（ｉ），・・・ｘ（Ｔ）（１≦ｉ≦Ｔ）として求める画素マッチングステップと、
該画素マッチングステップにおいて求められた前記フレーム画像の前記画素ｘ（ｉ）と近接する画素ｘ（ｉ−１）との距離差をｘ（ｉ）−ｘ（ｉ−１）とし、画素ｘ（ｉ）から連続するＫ個（但しＫ＜Ｔ）の画素間における近接する画素との距離差を、ｘ（ｉ＋１）−ｘ（ｉ），ｘ（ｉ＋２）−ｘ（ｉ＋１），ｘ（ｉ＋３）−ｘ（ｉ＋２），・・・，ｘ（ｉ＋Ｋ−１）−ｘ（ｉ＋Ｋ−２），ｘ（ｉ＋Ｋ）−ｘ（ｉ＋Ｋ−１）として求め、求められた前記画素間の距離差の値の中央値をＭｅｄ（ｉ）として求めることによって、画素ｘ（ｉ）における累積された動的視差をＭｅｄ（ｉ）・Ｋとし、
前記フレーム画像の前記画素ｘ（ｉ）における撮影対象物から前記カメラまでの詳細な距離を距離ｚ（ｉ，ｘ）とし、
前記累積された動的視差Ｍｅｄ（ｉ）・Ｋの設定範囲を、定数μ２および定数γ２を用いて、μ２≦Ｍｅｄ（ｉ）・Ｋ≦γ２とし、
前記画素ｘ（ｉ）における距離ｚ（ｉ，ｘ）の設定範囲を、定数ｚＮ２および定数ｚＬ２を用いて、ｚＮ２≦ｚ（ｉ，ｘ）≦ｚＬ２として、
詳細距離算出手段が、
係数ａを、
ａ＝ｚＬ２・ｅｘｐ（（μ２／（γ２−μ２））ｌｏｇ（ｚＬ２／ｚＮ２）
により算出し、
係数ｂを
ｂ＝（１／（γ２−μ２））ｌｏｇ（ｚＬ２／ｚＮ２）
により算出することにより
前記ｘ（ｉ）における前記距離ｚ（ｉ，ｘ）を、前記累積された動的視差Ｍｅｄ（ｉ）・Ｋと、前記係数ａおよび前記係数ｂとを用いて、
ｚ（ｉ，ｘ）＝ａ・ｅｘｐ（−ｂ・Ｍｅｄ（ｉ）・Ｋ）
により算出する詳細距離算出ステップと、
を有することを特徴とする画像距離算出方法。
【請求項１４】
前記詳細距離算出ステップにおいて、前記詳細距離算出手段は、前記フレーム画像の前記画素ｘ（ｉ）（１≦ｉ≦Ｔ）以外の画素の距離を、前記画素ｘ（ｉ）において求められた前記距離ｚ（ｉ，ｘ）の距離値を用いて内挿することにより求めること
を特徴とする請求項１３に記載の画像距離算出方法。
【請求項１５】
前記カメラにより異なる時間に撮影された２枚のフレーム画像であって、互いに共通する画像部分を一部に含む前記２枚のフレーム画像に対して、前記２枚のフレーム画像の全ての画素のＲＧＢの値を抽出することにより、コード検出手段が、抽出された前記ＲＧＢの値に該当しないＲＧＢの値を、コードのＲＧＢの値として検出するコード検出ステップと、
前記グローバル距離算出ステップにおいて前記グローバル距離が算出された画素の距離値を、画素距離値抽出手段が、前記２枚のフレーム画像の画素の中から抽出する画素距離値抽出ステップと、
該画素距離値抽出ステップにおいて抽出された前記距離値毎に、コードＲＧＢ値割当手段が、前記コードのＲＧＢの値を重複しないように割り当てるコードＲＧＢ値割当ステップと、
前記コードＲＧＢ値割当ステップにおいて前記コードのＲＧＢの値が割り当てられた前記距離値と同じ距離値を備える、前記２枚のフレーム画像の画素のＲＧＢの値を、ＲＧＢ値入替手段が、当該距離値に応じて割り当てられた前記コードのＲＧＢの値に入れ替えるＲＧＢ値入替ステップと、
該ＲＧＢ値入替ステップにおいて入れ替えられた後の前記ＲＧＢの値を、画素情報記録手段が、当該ＲＧＢの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録する画素情報記録ステップと、
前記ＲＧＢ値入替ステップにおいて前記画素のＲＧＢの値が入れ替えられた２枚のフレーム画像に対して、スティッチングアルゴリズムを適用することにより、貼り合わせ画像生成手段が、当該２枚のフレーム画像の貼り合わせ処理を行って、１枚の貼り合わせ画像を生成する貼り合わせ画像生成ステップと、
該貼り合わせ画像生成ステップにおいて生成された前記貼り合わせ画像の全ての画素のＲＧＢの値の中から、ＲＧＢ値検出手段が、前記画素情報記録ステップにおいて記録された前記ＲＧＢの値と一致あるいは近似するＲＧＢの値を検出するＲＧＢ値検出ステップと、
該ＲＧＢ値検出ステップにおいて検出された前記ＲＧＢの値を備える画素に対し、前記画素情報記録にステップおいて記録された前記ＲＧＢの値に紐付けられる前記距離値を、距離情報付加手段が、当該画素の距離情報として付加する距離情報付加ステップと、
該距離情報付加ステップにおいて前記距離情報が付加された前記画素のＲＧＢの値を、ＲＧＢ値変更手段が、当該画素の周囲の画素のＲＧＢの値の平均値に変更するＲＧＢ値変更ステップと
を有することを特徴とする請求項９または請求項１２に記載の画像距離算出方法。
【請求項１６】
前記カメラにより異なる時間に撮影された２枚のフレーム画像であって、互いに共通する画像部分を一部に含み、前記詳細距離算出ステップにおいて前記撮影対象物から前記カメラまでの距離が画素毎に算出された前記２枚のフレーム画像に対して、前記２枚のフレーム画像の全ての画素のＲＧＢの値を抽出することにより、コード検出手段が、抽出された前記ＲＧＢの値に該当しないＲＧＢの値を、コードのＲＧＢの値として検出するコード検出ステップと、
画素距離値抽出手段が、前記２枚のフレーム画像のうち、全体の画素数の１／Ｎ（Ｎは正数）の個数の画素をランダムに選択し、選択された画素の距離値を抽出する画素距離値抽出ステップと、
該画素距離値抽出ステップにおいて抽出された前記距離値毎に、コードＲＧＢ値割当手段が、前記コードのＲＧＢの値を重複しないように割り当てるコードＲＧＢ値割当ステップと、
前記コードＲＧＢ値割当ステップにおいて前記コードのＲＧＢの値が割り当てられた前記距離値と同じ距離値を備える、前記２枚のフレーム画像の画素のＲＧＢの値を、ＲＧＢ値入替手段が、当該距離値に応じて割り当てられた前記コードのＲＧＢの値に入れ替えるＲＧＢ値入替ステップと、
該ＲＧＢ値入替ステップにおいて入れ替えられた後の前記ＲＧＢの値を、画素情報記録手段が、当該ＲＧＢの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録する画素情報記録ステップと、
前記ＲＧＢ値入替ステップにおいて前記画素のＲＧＢの値が入れ替えられた２枚のフレーム画像に対して、スティッチングアルゴリズムを適用することにより、貼り合わせ画像生成手段が、当該２枚のフレーム画像の貼り合わせ処理を行って、１枚の貼り合わせ画像を生成する貼り合わせ画像生成ステップと、
該貼り合わせ画像生成ステップにおいて生成された前記貼り合わせ画像の全ての画素のＲＧＢの値の中から、ＲＧＢ値検出手段が、前記画素情報記録ステップにおいて記録された前記ＲＧＢの値と一致あるいは近似するＲＧＢの値を検出するＲＧＢ値検出ステップと、
該ＲＧＢ値検出ステップにおいて検出された前記ＲＧＢの値を備える画素に対し、前記画素情報記録ステップにおいて記録された前記ＲＧＢの値に紐付けられた前記距離値を、距離情報付加手段が、当該画素の距離情報として付加する距離情報付加ステップと、
該距離情報付加ステップにおいて前記距離情報が付加された前記画素のＲＧＢの値を、当該画素の周囲の画素のＲＧＢの値の平均値に変更することにより、修正貼り合わせ画像生成手段が、当該ＲＧＢの値が修正された修正貼り合わせ画像を生成する修正貼り合わせ画像生成ステップと、
該修正貼り合わせ画像生成ステップによって生成されたＮ枚の修正貼り合わせ画像に基づいて、距離付加貼り合わせ画像生成手段が、全ての画素に前記距離情報が付加された１枚の貼り合わせ画像を生成する距離付加貼り合わせ画像生成ステップと
を有し、
前記画素距離値抽出ステップにおいて前記画素距離値抽出手段は、２回目以降に画素の距離値を抽出する場合に、前記２枚のフレーム画像のうち過去に選択されなかった画素の中から、全体の画素数の１／Ｎの個数の画素をランダムに選択して、当該画素の距離値を抽出し、
前記コードＲＧＢ値割当ステップにおける前記コードＲＧＢ値割当手段と、前記ＲＧＢ値入替ステップにおける前記ＲＧＢ値入替手段と、前記画素情報記録ステップにおける前記画素情報記録手段と、前記貼り合わせ画像生成ステップにおける前記貼り合わせ画像生成手段と、前記ＲＧＢ値検出ステップにおける前記ＲＧＢ値検出手段と、前記距離情報付加ステップにおける前記距離情報付加手段と、前記修正貼り合わせ画像生成ステップにおける前記修正貼り合わせ画像生成手段とは、前記画素距離値抽出ステップにおいて前記画素距離値抽出手段により２回目以降に選択された前記距離値に基づいて、それぞれの処理を順番にＮ回繰り返すことにより、Ｎ枚の前記修正貼り合わせ画像を生成し、
前記距離付加貼り合わせ画像生成ステップにおいて、前記距離付加貼り合わせ画像生成手段は、前記修正貼り合わせ画像の全体の画素数の１／Ｎの画素に付加されている前記距離情報を、Ｎ枚の前記修正貼り合わせ画像の全てを重ねて読み取ることにより、前記修正貼り合わせ画像における全ての画素の距離情報を求めて、求められた当該距離情報を１枚の貼り合わせ画像に付加することにより、全ての画素に前記距離情報が付加された前記１枚の貼り合わせ画像を生成すること
を特徴とする請求項１０、請求項１１または請求項１４のいずれか１項に記載の画像距離算出方法。
【請求項１７】
移動する１台のカメラにより撮影された動画映像に基づいて、カメラから動画映像に記録された撮影対象物までの距離を算出する画像距離算出装置の画像距離算出用プログラムであって、
前記画像距離算出装置の制御手段に、
前記動画映像の任意の時間におけるフレーム画像を抽出させるフレーム画像抽出機能と、
該フレーム画像において、前記カメラの移動方向に向かって延設される軸をｘ軸とし、当該ｘ軸に直交する軸をｙ軸として、前記ｘ軸のｘ０点におけるｙ軸上の画素列の時間変化を、時間ｔ０＋１から時間ｔ０＋Ｔまで抽出することにより、縦軸を前記ｙ軸、横軸をｔ軸（１≦ｔ≦Ｔ）とするスライス画像を生成させるスライス画像生成機能と、
時間ｔ（１≦ｔ≦Ｔ）における前記スライス画像の画素をｇ（ｔ，ｙ）とし、前記フレーム画像のｙ軸上のｙ′点（１≦ｙ′≦Ｙ）における時間ｔ０のときのｘｙｔ空間の画素をｆ（ｘ，ｙ′，ｔ０）＝ｒ（ｘ）として、ｘの区間［１，Ｘ］の任意の点において存在する、スライス画像の画素ｇ（ｔ，ｙ）に対応するフレーム画像の画素ｒ（ｘ）点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Ｔの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出させるスポッティング点算出機能と、
該スポッティング点算出機能により算出されたスポッティング点に基づいて、時間ｔ＝Ｔから時間ｔ＝１までバックトレース処理を行うことにより、前記スライス画像のｔ軸におけるｔ＝１からｔ＝Ｔまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求めさせる画素マッチング機能と、
前記フレーム画像と前記スライス画像とのそれぞれの画像に対して、mean-shift法を適用することにより、共通した分割基準に基づいて、それぞれの画像の領域分割を行わせる領域分割機能と、
該領域分割機能により分割された前記スライス画像の分割領域内に存在する画素に基づいて、前記画素マッチング機能により求められた前記スライス画像の画素に対応する前記フレーム画像の画素を検出し、検出された前記フレーム画像の画素が最も多く含まれる前記フレーム画像の分割領域を求めることによって、前記スライス画像の分割領域に対応する前記フレーム画像の分割領域を対応領域として決定させる対応領域決定機能と、
該対応領域決定機能によって決定された前記フレーム画像の対応領域において、前記ｘ軸方向の画素数の平均ｑを検出すると共に、対応する前記スライス画像の分割領域において、前記ｔ軸方向の画素数の平均ｐを検出することによって、ｐに対するｑの割合あるいはｑに対するｐの割合に基づいて求められる比率値を、前記対応領域毎に算出させ、前記カメラから前記フレーム画像に写っている撮影対象物までの距離と前記比率値との対応関係が予め定められた距離関数を用いることによって、算出された前記比率値に対応する前記距離を、グローバル距離として前記対応領域毎に算出させるグローバル距離算出機能と、
を実現させるための画像距離算出用プログラム。
【請求項１８】
前記制御手段に、
前記スライス画像の分割領域内における前記ｔ軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記ｘ軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、前記スライス画像の分割領域内の各画素に対応する画素を、前記フレーム画像の前記対応領域内の画素として求めさせ、求められた前記フレーム画像の前記対応領域内における前記ｘ軸方向の画素の間隔に基づいて、当該対応領域内の画素毎の相対的な距離を、ローカル距離として算出させるローカル距離算出機能と、
該ローカル距離算出機能により算出された、前記フレーム画像の画素毎のローカル距離に、前記グローバル距離算出機能により算出された、前記フレーム画像の前記対応領域毎のグローバル距離を加算することによって、前記カメラから前記撮影対象物までの詳細な距離を、前記フレーム画像の画素毎に算出させる詳細距離算出機能と、
を実現させるための請求項１７に記載の画像距離算出用プログラム。
【請求項１９】
前記制御手段に、
前記スライス画像の分割領域内における前記ｔ軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記ｘ軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、前記スライス画像の分割領域内の各画素に対応する、前記フレーム画像の前記対応領域内の前記ｘ軸方向の画素を、ｘ（１），ｘ（２），・・・，ｘ（ｉ），・・・，ｘ（Ｇ−１），ｘ（Ｇ）（１≦ｉ≦Ｇ）として求めさせ、
前記フレーム画像の前記対応領域内における前記ｘ軸方向の始端の境界から終端の境界までの画素数の平均をｘａとし、
前記フレーム画像の前記対応領域内における前記画素ｘ（ｉ）と、前記バックトレース処理により求められて前記画素ｘ（ｉ）に近接する画素ｘ（ｉ−１）との距離をｘ（ｉ）−ｘ（ｉ−１）とし、
前記グローバル距離算出機能により算出された前記対応領域のグローバル距離を距離ｚｇとし、
当該フレーム画像の画素ｘ（ｉ）における撮影対象物から前記カメラまでの詳細な距離を距離ｚ（ｉ）として、当該距離ｚ（ｉ）を、正の定数βを用いて、
ｚ（ｉ）＝ｚｇ＋β（ｘ（ｉ）−ｘ（ｉ−１）−ｘａ／Ｇ）
により算出させる詳細距離算出機能
を実現させるための請求項１７に記載の画像距離算出用プログラム。
【請求項２０】
移動する１台のカメラにより撮影された動画映像に基づいて、カメラから動画映像に記録された撮影対象物までの距離を算出する画像距離算出装置の画像距離算出用プログラムであって、
前記画像距離算出装置の制御手段に、
前記動画映像の任意の時間におけるフレーム画像を抽出させるフレーム画像抽出機能と、
該フレーム画像において、前記カメラの移動方向に向かって延設される軸をｘ軸とし、当該ｘ軸に直交する軸をｙ軸として、前記ｘ軸のｘ０点におけるｙ軸上の画素列の時間変化を、時間ｔ０＋１から時間ｔ０＋Ｔまで抽出することにより、縦軸を前記ｙ軸、横軸をｔ軸（１≦ｔ≦Ｔ）とするスライス画像を生成させるスライス画像生成機能と、
時間ｔ（１≦ｔ≦Ｔ）における前記スライス画像の画素をｇ（ｔ，ｙ）とし、前記フレーム画像のｙ軸上のｙ′点（１≦ｙ′≦Ｙ）における時間ｔ０のときのｘｙｔ空間の画素をｆ（ｘ，ｙ′，ｔ０）＝ｒ（ｘ）として、ｘの区間［１，Ｘ］の任意の点において存在する、スライス画像の画素ｇ（ｔ，ｙ）に対応するフレーム画像の画素ｒ（ｘ）点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Ｔの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出させるスポッティング点算出機能と、
該スポッティング点算出機能により算出されたスポッティング点に基づいて、時間ｔ＝Ｔから時間ｔ＝１までバックトレース処理を行うことにより、前記スライス画像のｔ軸におけるｔ＝１からｔ＝Ｔまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求めさせる画素マッチング機能と、
該画素マッチング機能により求められた時間ｔにおける前記フレーム画像の前記ｘ軸方向の画素をｘ（ｔ）とし、時間ｔ０における前記フレーム画像の前記ｘ軸方向の画素をｘ（ｔ０）として、前記フレーム画像における前記画素ｘ（ｔ）から前記画素ｘ（ｔ０）を減算することにより求められる当該２つの画素間の距離を、累積された動的視差α（ｔ，ｔ０）とし、
前記フレーム画像の前記画素ｘ（ｔ）における撮影対象物から前記カメラまでの距離をグローバル距離ｚｇとし、
前記累積された動的視差α（ｔ，ｔ０）の設定範囲を、定数μ１および定数γ１を用いて、μ１≦α（ｔ，ｔ０）≦γ１とし、
前記グローバル距離ｚｇの設定範囲を、定数ｚＮ１および定数ｚＬ１を用いて、ｚＮ１≦ｚｇ≦ｚＬ１として、
係数ａを、
ａ＝ｚＬ１・ｅｘｐ（（μ１／（γ１−μ１））ｌｏｇ（ｚＬ１／ｚＮ１）
により算出させ、
係数ｂを
ｂ＝（１／（γ１−μ１））ｌｏｇ（ｚＬ１／ｚＮ１）
により算出させることにより
前記画素ｘ（ｔ）における前記グローバル距離ｚｇを、前記累積された動的視差α（ｔ，ｔ０）と、前記係数ａおよび前記係数ｂとを用いて、
ｚｇ＝ａ・ｅｘｐ（−ｂ・α（ｔ，ｔ０））
により算出させるグローバル距離算出機能と、
を実現させるための画像距離算出用プログラム。
【請求項２１】
移動する１台のカメラにより撮影された動画映像に基づいて、カメラから動画映像に記録された撮影対象物までの距離を算出する画像距離算出装置の画像距離算出用プログラムであって、
前記画像距離算出装置の制御手段に、
前記動画映像の任意の時間におけるフレーム画像を抽出させるフレーム画像抽出機能と、
該フレーム画像において、前記カメラの移動方向に向かって延設される軸をｘ軸とし、当該ｘ軸に直交する軸をｙ軸として、前記ｘ軸のｘ０点におけるｙ軸上の画素列の時間変化を、時間ｔ０＋１から時間ｔ０＋Ｔまで抽出することにより、縦軸を前記ｙ軸、横軸をｔ軸（１≦ｔ≦Ｔ）とするスライス画像を生成させるスライス画像生成機能と、
時間ｔ（１≦ｔ≦Ｔ）における前記スライス画像の画素をｇ（ｔ，ｙ）とし、前記フレーム画像のｙ軸上のｙ′点（１≦ｙ′≦Ｙ）における時間ｔ０のときのｘｙｔ空間の画素をｆ（ｘ，ｙ′，ｔ０）＝ｒ（ｘ）として、ｘの区間［１，Ｘ］の任意の点において存在する、スライス画像の画素ｇ（ｔ，ｙ）に対応するフレーム画像の画素ｒ（ｘ）点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Ｔの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出させるスポッティング点算出機能と、
該スポッティング点算出機能により算出されたスポッティング点に基づいて、時間ｔ＝Ｔから時間ｔ＝１までバックトレース処理を行うことにより、前記スライス画像の前記ｔ軸におけるｔ＝１からｔ＝Ｔまでのそれぞれの画素に対応する前記フレーム画像の前記ｘ軸方向の画素を、ｘ（１），ｘ（２），ｘ（３），・・・，ｘ（ｉ），・・・ｘ（Ｔ）（１≦ｉ≦Ｔ）として求めさせる画素マッチング機能と、
該画素マッチング機能により求められた前記フレーム画像の前記画素ｘ（ｉ）と近接する画素ｘ（ｉ−１）との距離差をｘ（ｉ）−ｘ（ｉ−１）とし、画素ｘ（ｉ）から連続するＫ個（但しＫ＜Ｔ）の画素間における近接する画素との距離差を、ｘ（ｉ＋１）−ｘ（ｉ），ｘ（ｉ＋２）−ｘ（ｉ＋１），ｘ（ｉ＋３）−ｘ（ｉ＋２），・・・，ｘ（ｉ＋Ｋ−１）−ｘ（ｉ＋Ｋ−２），ｘ（ｉ＋Ｋ）−ｘ（ｉ＋Ｋ−１）として求めさせ、求められた前記画素間の距離差の値の中央値をＭｅｄ（ｉ）として求めさせることによって、画素ｘ（ｉ）における累積された動的視差をＭｅｄ（ｉ）・Ｋとし、
前記フレーム画像の前記画素ｘ（ｉ）における撮影対象物から前記カメラまでの詳細な距離を距離ｚ（ｉ，ｘ）とし、
前記累積された動的視差Ｍｅｄ（ｉ）・Ｋの設定範囲を、定数μ２および定数γ２を用いて、μ２≦Ｍｅｄ（ｉ）・Ｋ≦γ２とし、
前記画素ｘ（ｉ）における距離ｚ（ｉ，ｘ）の設定範囲を、定数ｚＮ２および定数ｚＬ２を用いて、ｚＮ２≦ｚ（ｉ，ｘ）≦ｚＬ２として、
係数ａを、
ａ＝ｚＬ２・ｅｘｐ（（μ２／（γ２−μ２））ｌｏｇ（ｚＬ２／ｚＮ２）
により算出させ、
係数ｂを
ｂ＝（１／（γ２−μ２））ｌｏｇ（ｚＬ２／ｚＮ２）
により算出させることにより
前記ｘ（ｉ）における前記距離ｚ（ｉ，ｘ）を、前記累積された動的視差Ｍｅｄ（ｉ）・Ｋと、前記係数ａおよび前記係数ｂとを用いて、
ｚ（ｉ，ｘ）＝ａ・ｅｘｐ（−ｂ・Ｍｅｄ（ｉ）・Ｋ）
により算出させる詳細距離算出機能と、
を実現させるための画像距離算出用プログラム。
【請求項２２】
前記制御手段に、
前記詳細距離算出機能において、前記フレーム画像の前記画素ｘ（ｉ）（１≦ｉ≦Ｔ）以外の画素の距離を、前記画素ｘ（ｉ）において求められた前記距離ｚ（ｉ，ｘ）の距離値を用いて内挿することにより求めさせること
を実現させるための請求項２１に記載の画像距離算出用プログラム。
【請求項２３】
前記制御手段に、
前記カメラにより異なる時間に撮影された２枚のフレーム画像であって、互いに共通する画像部分を一部に含む前記２枚のフレーム画像に対して、前記２枚のフレーム画像の全ての画素のＲＧＢの値を抽出させることにより、抽出された前記ＲＧＢの値に該当しないＲＧＢの値を、コードのＲＧＢの値として検出させるコード検出機能と、
前記グローバル距離算出機能により前記グローバル距離が算出された画素の距離値を、前記２枚のフレーム画像の画素の中から抽出させる画素距離値抽出機能と、
該画素距離値抽出機能により抽出された前記距離値毎に、前記コードのＲＧＢの値を重複しないように割り当てさせるコードＲＧＢ値割当機能と、
前記コードＲＧＢ値割当機能により前記コードのＲＧＢの値が割り当てられた前記距離値と同じ距離値を備える、前記２枚のフレーム画像の画素のＲＧＢの値を、当該距離値に応じて割り当てられた前記コードのＲＧＢの値に入れ替えさせるＲＧＢ値入替機能と、
該ＲＧＢ値入替機能により入れ替えられた後の前記ＲＧＢの値を、当該ＲＧＢの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録させる画素情報記録機能と、
前記ＲＧＢ値入替機能により前記画素のＲＧＢの値が入れ替えられた２枚のフレーム画像に対して、スティッチングアルゴリズムを適用させることにより、当該２枚のフレーム画像の貼り合わせ処理を行って、１枚の貼り合わせ画像を生成させる貼り合わせ画像生成機能と、
該貼り合わせ画像生成機能により生成された前記貼り合わせ画像の全ての画素のＲＧＢの値の中から、前記画素情報記録機能によって記録された前記ＲＧＢの値と一致あるいは近似するＲＧＢの値を検出させるＲＧＢ値検出機能と、
該ＲＧＢ値検出機能により検出された前記ＲＧＢの値を備える画素に対し、前記画素情報記録機能により記録された前記ＲＧＢの値に紐付けられる前記距離値を、当該画素の距離情報として付加させる距離情報付加機能と、
該距離情報付加機能により前記距離情報が付加された前記画素のＲＧＢの値を、当該画素の周囲の画素のＲＧＢの値の平均値に変更させるＲＧＢ値変更機能と、
を実現させるための請求項１７または請求項２０に記載の画像距離算出用プログラム。
【請求項２４】
前記制御手段に、
前記カメラにより異なる時間に撮影された２枚のフレーム画像であって、互いに共通する画像部分を一部に含み、前記詳細距離算出機能において前記撮影対象物から前記カメラまでの距離が画素毎に算出された前記２枚のフレーム画像に対して、前記２枚のフレーム画像の全ての画素のＲＧＢの値を抽出させることにより、抽出された前記ＲＧＢの値に該当しないＲＧＢの値を、コードのＲＧＢの値として検出させるコード検出機能と、
前記２枚のフレーム画像のうち、全体の画素数の１／Ｎ（Ｎは正数）の個数の画素をランダムに選択させ、選択された画素の距離値を抽出させる画素距離値抽出機能と、
該画素距離値抽出機能により抽出された前記距離値毎に、前記コードのＲＧＢの値を重複しないように割り当てさせるコードＲＧＢ値割当機能と、
前記コードＲＧＢ値割当機能により前記コードのＲＧＢの値が割り当てられた前記距離値と同じ距離値を備える、前記２枚のフレーム画像の画素のＲＧＢの値を、当該距離値に応じて割り当てられた前記コードのＲＧＢの値に入れ替えさせるＲＧＢ値入替機能と、
該ＲＧＢ値入替機能により入れ替えられた後の前記ＲＧＢの値を、当該ＲＧＢの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録させる画素情報記録機能と、
前記ＲＧＢ値入替機能により前記画素のＲＧＢの値が入れ替えられた２枚のフレーム画像に対して、スティッチングアルゴリズムを適用させることにより、当該２枚のフレーム画像の貼り合わせ処理を行って、１枚の貼り合わせ画像を生成させる貼り合わせ画像生成機能と、
該貼り合わせ画像生成機能により生成された前記貼り合わせ画像の全ての画素のＲＧＢの値の中から、前記画素情報記録機能により記録された前記ＲＧＢの値と一致あるいは近似するＲＧＢの値を検出させるＲＧＢ値検出機能と、
該ＲＧＢ値検出機能により検出された前記ＲＧＢの値を備える画素に対し、前記画素情報記録機能により記録された前記ＲＧＢの値に紐付けられた前記距離値を、当該画素の距離情報として付加させる距離情報付加機能と、
該距離情報付加機能により前記距離情報が付加された前記画素のＲＧＢの値を、当該画素の周囲の画素のＲＧＢの値の平均値に変更させることにより、当該ＲＧＢの値が修正された修正貼り合わせ画像を生成させる修正貼り合わせ画像生成機能と、
該修正貼り合わせ画像生成機能により生成されたＮ枚の修正貼り合わせ画像に基づいて、全ての画素に前記距離情報が付加された１枚の貼り合わせ画像を生成させる距離付加貼り合わせ画像生成機能と
を有し、
前記画素距離値抽出機能において、前記制御手段に、２回目以降に画素の距離値を抽出させる場合に、前記２枚のフレーム画像のうち過去に選択されなかった画素の中から、全体の画素数の１／Ｎの個数の画素をランダムに選択させて、当該画素の距離値を抽出させ、
前記コードＲＧＢ値割当機能と、前記ＲＧＢ値入替機能と、前記画素情報記録機能と、前記貼り合わせ画像生成機能と、前記ＲＧＢ値検出機能と、前記距離情報付加機能と、前記修正貼り合わせ画像生成機能とに関し、前記画素距離値抽出機能により２回目以降に選択された前記距離値に基づいて、前記制御手段に、それぞれの機能を順番にＮ回繰り返して実行させることにより、Ｎ枚の前記修正貼り合わせ画像を生成させ、
前記距離付加貼り合わせ画像生成機能において、前記修正貼り合わせ画像の全体の画素数の１／Ｎの画素に付加されている前記距離情報を、Ｎ枚の前記修正貼り合わせ画像の全てを重ねて読み取ることにより、前記制御手段に、前記修正貼り合わせ画像における全ての画素の距離情報を求めさせて、求められた当該距離情報を１枚の貼り合わせ画像に付加させることにより、全ての画素に前記距離情報が付加された前記１枚の貼り合わせ画像を生成させること
を実現させるための請求項１８、請求項１９または請求項２２のいずれか１項に記載の画像距離算出用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像距離算出装置、画像距離算出方法および画像距離算出用プログラムに関し、より詳細には、移動する１台のカメラにより撮影された動画映像に基づいてフレーム画像を抽出し、抽出されたフレーム画像に写される撮影物までの距離を算出することが可能な画像距離算出装置、画像距離算出方法および画像距離算出用プログラムに関する。
【背景技術】
【０００２】
従来より、同時に撮影された２つの画像に基づいてカメラ位置から撮影対象物までの距離を、視差を利用して算出するステレオビジョン法と呼ばれる方法が知られている（例えば、特許文献１、特許文献２参照）。ステレオビジョン法では、２つのカメラの左右方向の距離ｄを一定に保った状態で、２台のカメラを用いて同じ撮影対象物の撮影を同時に行う。２つのカメラによって撮影されたそれぞれの画像は、カメラ間の距離ｄだけ異なった位置で撮影されたものであるため、撮影対象物の撮影画像が微妙に異なったものになる。２枚の撮影画像の違いは、距離ｄに基づく視差の影響によるものである。従って、２枚の画像に写っている撮影対象物を比較し、左右方向における画素位置（ピクセル位置）の違いを、視差として求めることによって、次の式に基づいて、撮影対象物までの距離を算出することができる。
【０００３】
撮影対象物までの距離＝（カメラの焦点距離×カメラ間距離ｄ）÷視差（左右方向の画素（ピクセル）差）
カメラにより撮影された動画映像に基づいて、撮影対象物までの距離を求める場合も同様である。２台のカメラで撮影された動画映像より、同じタイミング（同じ時間）で撮影された１対のフレーム画像を抽出し、抽出された１対のフレーム画像に基づいて視差（左右方向の画素（ピクセル）差）を求める。そして、カメラ間（２つのフレーム画像をとらえたそれぞれのカメラの位置）の距離ｄと視差とを、上述した式に適用することによって、撮影対象物までの距離を、撮影時間毎に算出することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−３０９５１９号公報
【特許文献２】特開２００９−１３９９９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述したような２つの画像の視差を利用して撮影対象物までの距離を算出する方法では、２つの画像における撮影対象物の画素差（ピクセル差）を求める必要がある。つまり、２つの画像における同一撮影対象物の対応関係を画素レベルで画素毎に求める必要があり、その違いを画素差（ピクセル差）として明確にする必要がある。しかしながら、２つの画像における画素（ピクセル）毎の対応関係を求めることは、容易ではない。具体的には、２つの撮影画像における同一撮影対象物のマッチングおよび画素特定を行う必要がある。このようなマッチングおよび画素特定を実現するためには、様々な画像処理技術を利用・応用する必要があった。
【０００６】
また、撮影された２つの画像を比較すると、遠くの撮影対象物は撮影画像間の画素差（ピクセル差）が小さくなり、近くの撮影対象物では画素差（ピクセル差）が大きくなる。しかしながら、２つのカメラ間の距離が人間の左右の目の間隔程度の場合には、遠くの画素差（ピクセル差）と近くの画素差（ピクセル差）との差が、数画素程度（例えば、遠くで１ピクセル差、近くで４ピクセル差程度）しか生じない。このため、遠くと近くとの距離の算出精度が、４段階程度の違いしか求められなくなってしまい、距離の算出精度を十分に確保することが難しいという問題があった。
【０００７】
また、カメラ間の距離ｄを長くすることによって、画素差（ピクセル差）を大きくすることもできるが、２台のカメラで同時に同一の撮影対象物を撮影することを考慮すると、カメラ間距離ｄにある程度制約が生じてしまい、長大な距離を確保することが難しいという問題があった。また、カメラ間の距離ｄが広がると、異なる２つの画像における同一対象物の位置や形が画像上で変化するため、同一対象物の画素レベルでのマッチングが困難になるという問題があった。カメラ間の距離ｄを長くすることは、ステレオビジョンにおいて長い間、解決すべき課題とされてきた。この解決が困難のため、現在では、１つの対象に対して、ステレオカメラによる撮影を、数十回から数万回行っている。
【０００８】
さらに、２台のカメラを用いて同一撮影対象物を撮影する必要があるため、１台のカメラを用いて撮影を行う一般的な撮影条件に比べて、様々な制約が生じることになり、撮影負担が重いという問題があった。
【０００９】
本発明は、上記問題に鑑みてなされたものであり、１台のカメラにより撮影された動画映像に基づいて、カメラから映像に写された撮影対象物までの距離を算出することが可能な画像距離算出装置、画像距離算出方法および画像距離算出用プログラムを提供することを課題とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明に係る画像距離算出装置は、移動する１台のカメラにより撮影された動画映像に基づいて、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出手段と、該フレーム画像において、前記カメラの移動方向に向かって延設される軸をｘ軸とし、当該ｘ軸に直交する軸をｙ軸として、前記ｘ軸のｘ０点におけるｙ軸上の画素列の時間変化を、時間ｔ０＋１から時間ｔ０＋Ｔまで抽出することにより、縦軸を前記ｙ軸、横軸をｔ軸（１≦ｔ≦Ｔ）とするスライス画像を生成するスライス画像生成手段と、時間ｔ（１≦ｔ≦Ｔ）における前記スライス画像の画素をｇ（ｔ，ｙ）とし、前記フレーム画像のｙ軸上のｙ′点（１≦ｙ′≦Ｙ）における時間ｔ０のときのｘｙｔ空間の画素をｆ（ｘ，ｙ′，ｔ０）＝ｒ（ｘ）として、ｘの区間［１，Ｘ］の任意の点において存在する、スライス画像の画素ｇ（ｔ，ｙ）に対応するフレーム画像の画素ｒ（ｘ）点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Ｔの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出手段と、該スポッティング点算出手段により算出されたスポッティング点に基づいて、時間ｔ＝Ｔから時間ｔ＝１までバックトレース処理を行うことにより、前記スライス画像のｔ軸におけるｔ＝１からｔ＝Ｔまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求める画素マッチング手段と、前記フレーム画像と前記スライス画像とのそれぞれの画像に対して、mean-shift法を適用することにより、共通した分割基準に基づいて、それぞれの画像の領域分割を行う領域分割手段と、該領域分割手段により分割された前記スライス画像の分割領域内に存在する画素に基づいて、前記画素マッチング手段により求められた前記スライス画像の画素に対応する前記フレーム画像の画素を検出し、検出された前記フレーム画像の画素が最も多く含まれる前記フレーム画像の分割領域を求めることによって、前記スライス画像の分割領域に対応する前記フレーム画像の分割領域を対応領域として決定する対応領域決定手段と、該対応領域決定手段により決定された前記フレーム画像の対応領域において、前記ｘ軸方向の画素数の平均ｑを検出すると共に、対応する前記スライス画像の分割領域において、前記ｔ軸方向の画素数の平均ｐを検出することによって、ｐに対するｑの割合あるいはｑに対するｐの割合に基づいて求められる比率値（移動するカメラによる累積モーションパララックスの領域毎の典型特徴量）を、前記対応領域毎に算出し、前記カメラから前記フレーム画像に写っている撮影対象物までの距離と前記比率値との対応関係が予め定められた距離関数によって、算出された前記比率値に対応する前記距離を、グローバル距離として前記対応領域毎に算出するグローバル距離算出手段とを有することを特徴とする。
【００１１】
また、本発明に係る画像距離算出方法は、移動する１台のカメラにより撮影された動画映像に基づいて、フレーム画像抽出手段が、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出ステップと、該フレーム画像において、前記カメラの移動方向に向かって延設される軸をｘ軸とし、当該ｘ軸に直交する軸をｙ軸として、前記ｘ軸のｘ０点におけるｙ軸上の画素列の時間変化を、時間ｔ０＋１から時間ｔ０＋Ｔまで抽出することにより、スライス画像生成手段が、縦軸を前記ｙ軸、横軸をｔ軸（１≦ｔ≦Ｔ）とするスライス画像を生成するスライス画像生成ステップと、時間ｔ（１≦ｔ≦Ｔ）における前記スライス画像の画素をｇ（ｔ，ｙ）とし、前記フレーム画像のｙ軸上のｙ′点（１≦ｙ′≦Ｙ）における時間ｔ０のときのｘｙｔ空間の画素をｆ（ｘ，ｙ′，ｔ０）＝ｒ（ｘ）として、ｘの区間［１，Ｘ］の任意の点において存在する、スライス画像の画素ｇ（ｔ，ｙ）に対応するフレーム画像の画素ｒ（ｘ）点を、動的計画法に基づくマッチング処理を用いて求めることにより、スポッティング点算出手段が、前記スライス画像における時間Ｔの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出ステップと、該スポッティング点算出ステップにおいて算出されたスポッティング点に基づいて、時間ｔ＝Ｔから時間ｔ＝１までバックトレース処理を行うことにより、画素マッチング手段が、前記スライス画像のｔ軸におけるｔ＝１からｔ＝Ｔまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求める画素マッチングステップと、前記フレーム画像と前記スライス画像とのそれぞれの画像に対して、mean-shift法を適用することにより、領域分割手段が、共通した分割基準に基づいて、それぞれの画像の領域分割を行う領域分割ステップと、該領域分割ステップにおいて分割された前記スライス画像の分割領域内に存在する画素に基づいて、前記画素マッチングステップにおいて求められた前記スライス画像の画素に対応する前記フレーム画像の画素を検出し、検出された前記フレーム画像の画素が最も多く含まれる前記フレーム画像の分割領域を求めることによって、対応領域決定手段が、前記スライス画像の分割領域に対応する前記フレーム画像の分割領域を対応領域として決定する対応領域決定ステップと、該対応領域決定ステップによって決定された前記フレーム画像の対応領域において、前記ｘ軸方向の画素数の平均ｑを検出すると共に、対応する前記スライス画像の分割領域において、前記ｔ軸方向の画素数の平均ｐを検出することによって、ｐに対するｑの割合あるいはｑに対するｐの割合に基づいて求められる比率値を、前記対応領域毎に算出し、前記カメラから前記フレーム画像に写っている撮影対象物までの距離と前記比率値との対応関係が予め定められた距離関数を用いることによって、グローバル距離算出手段が、算出された前記比率値に対応する前記距離を、グローバル距離として前記対応領域毎に算出するグローバル距離算出ステップとを有することを特徴とする。
【００１２】
さらに、本発明に係る画像距離算出用プログラムは、移動する１台のカメラにより撮影された動画映像に基づいて、カメラから動画映像に記録された撮影対象物までの距離を算出する画像距離算出装置の画像距離算出用プログラムであって、前記画像距離算出装置の制御手段に、前記動画映像の任意の時間におけるフレーム画像を抽出させるフレーム画像抽出機能と、該フレーム画像において、前記カメラの移動方向に向かって延設される軸をｘ軸とし、当該ｘ軸に直交する軸をｙ軸として、前記ｘ軸のｘ０点におけるｙ軸上の画素列の時間変化を、時間ｔ０＋１から時間ｔ０＋Ｔまで抽出することにより、縦軸を前記ｙ軸、横軸をｔ軸（１≦ｔ≦Ｔ）とするスライス画像を生成させるスライス画像生成機能と、時間ｔ（１≦ｔ≦Ｔ）における前記スライス画像の画素をｇ（ｔ，ｙ）とし、前記フレーム画像のｙ軸上のｙ′点（１≦ｙ′≦Ｙ）における時間ｔ０のときのｘｙｔ空間の画素をｆ（ｘ，ｙ′，ｔ０）＝ｒ（ｘ）として、ｘの区間［１，Ｘ］の任意の点において存在する、スライス画像の画素ｇ（ｔ，ｙ）に対応するフレーム画像の画素ｒ（ｘ）点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Ｔの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出させるスポッティング点算出機能と、該スポッティング点算出機能により算出されたスポッティング点に基づいて、時間ｔ＝Ｔから時間ｔ＝１までバックトレース処理を行うことにより、前記スライス画像のｔ軸におけるｔ＝１からｔ＝Ｔまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求めさせる画素マッチング機能と、前記フレーム画像と前記スライス画像とのそれぞれの画像に対して、mean-shift法を適用することにより、共通した分割基準に基づいて、それぞれの画像の領域分割を行わせる領域分割機能と、該領域分割機能により分割された前記スライス画像の分割領域内に存在する画素に基づいて、前記画素マッチング機能により求められた前記スライス画像の画素に対応する前記フレーム画像の画素を検出し、検出された前記フレーム画像の画素が最も多く含まれる前記フレーム画像の分割領域を求めることによって、前記スライス画像の分割領域に対応する前記フレーム画像の分割領域を対応領域として決定させる対応領域決定機能と、該対応領域決定機能によって決定された前記フレーム画像の対応領域において、前記ｘ軸方向の画素数の平均ｑを検出すると共に、対応する前記スライス画像の分割領域において、前記ｔ軸方向の画素数の平均ｐを検出することによって、ｐに対するｑの割合あるいはｑに対するｐの割合に基づいて求められる比率値を、前記対応領域毎に算出させ、前記カメラから前記フレーム画像に写っている撮影対象物までの距離と前記比率値との対応関係が予め定められた距離関数を用いることによって、算出された前記比率値に対応する前記距離を、グローバル距離として前記対応領域毎に算出させるグローバル距離算出機能とを実現させるためのプログラムであることを特徴とする。
【００１３】
本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、フレーム画像のｘ０点におけるｙ軸上の画素列の時間変化を、時間ｔ０＋１から時間ｔ０＋Ｔまで抽出することにより、スライス画像が生成される。このスライス画像は、移動する１台のカメラにより撮影された動画映像に基づいて生成される。このため、スライス画像には、カメラの移動に伴って移動する撮影対象物が、移動速度に応じて圧縮された状態で記録されることになる。その理由は、単位時間毎に、スライス画像におけるｙ軸の線データが１つずつｔ軸方向に進行するのに対し、その線画像において、近くのものは、遠くのものに比べ早く動いたものがとらえられるためである。これは動的視差（モーションパララックス（motion parallax））の性質そのものを反映している。つまり、動画映像において、撮影対象物の移動速度は、遠くのものに比べて近くのものの方が早く動くようになる。従って、近くの撮影対象物は圧縮された状態でスライス画像に記録され、より遠くの撮影対象物はより圧縮されていない状態で記録されることになる。つまり、カメラから撮影対象物までの距離の違いによってスライス画像に記録される画像の圧縮状態が異なることになる。このことから、カメラの移動に伴って生じ得る動的視差の系列が、スライス画像において時系列的に、つまり、累積的に、画像の圧縮状態となって記録されていると判断することができる。このことを、累積された動的視差（累積モーションパララックス、Accumulated Motion Parallax：ＡＭＰ）と称する。
【００１４】
本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、動的視差が画像の累積的な圧縮状態として記録されたスライス画像と、動的視差が記録されていない動画映像の１つのフレーム画像との対応関係を求めることによって、スライス画像の各画素に対応するフレーム画像の各画素の位置に基づいて、カメラから該当する画素に写っている撮影対象物までの距離を、フレーム画像において算出することが可能になる。
【００１５】
ここで、スライス画像の画素とフレーム画像の画素との対応関係は、必ずしも線形対応になるとは限らず、非線形に対応する可能性が高い。その理由は、フレーム画像には、カメラから撮影対象物までの距離が異なる様々な物体が写っているため、スライス画像において対応する画素（ピクセル）の圧縮の程度が異なるためである。このため、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、非線形性となる対応関係を求めるための方法として広く知られている動的計画法を用いる。具体的には、スポッティング機能を備えるＤＰ（dynamic programming）マッチング処理によって、スライス画像の最後の時間ｔ＝Ｔの画素に対応するフレーム画像のスポッティング点を求めた後に、スポッティング点に基づいて時間ｔ＝Ｔから時間ｔ＝１まで、スライス画像とフレーム画像との各画素の対応関係をバックトレース処理により求める。この処理によって、非線形性を備えるフレーム画像の画素とスライス画像の画素との対応関係を求めることが可能になる。なお、スポッティング機能を備えるＤＰとは、スライス画像の画素ｇ（Ｔ，ｙ）に対応するフレーム画像の画素ｒ（ｘ）点が、区間［１，Ｘ］の任意の点に存在することを許容した上で、ＤＰ（dynamic programming）マッチング処理を行う動的計画法を意味している。
【００１６】
さらに、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、フレーム画像とスライス画像とのそれぞれの画像に対して、mean-shift法を適用することにより、それぞれの画像に対して共通した分割基準を用いて、それぞれの画像の領域分割を行う。ここで、mean-shift法とは、画像の領域分割を行う方法として広く知られた手法である。フレーム画像とスライス画像とは、カメラにより撮影された動画映像に基づいて作成されているため、フレーム画像に写される映像とスライス画像に写される映像とには、共通した撮影対象物が記録されることになる。このため、フレーム画像とスライス画像とのそれぞれの画像に対して、共通した分割基準に基づいてmean-shift法を適用することにより、それぞれ共通した領域を分割対象として領域分割を行うことが可能になる。例えば、スライス画像のある領域とフレーム画像のある領域が対応している場合に、カメラが横方向に動くと、その領域における累積された動的視差（累積モーションパララックス）の特徴が、領域の横方向の線分の長さの比として、定量的に現れることになる。
【００１７】
そして、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、領域分割処理によって分割されたスライス画像の分割領域内に存在する画素に基づいて、ＤＰマッチング処理およびバックトレース処理によって求められたフレーム画像の対応する画素を検出する。そして、画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、検出された、フレーム画像の画素とスライス画像の画素との対応数が最も多いものを、対応する分割領域と定めることができる。このようにして、スライス画像の分割領域に対応するフレーム画像の分割領域を対応領域として決定する処理を行う。動的計画法に基づいて求められたフレーム画像の画素とスライス画像の画素との対応関係を利用することによって、スライス画像における分割領域とフレーム画像における分割領域との対応関係を求めることが可能になる。
【００１８】
ここで、既に説明したように、スライス画像には、撮影対象物が動的視差に伴って圧縮された状態で記録されている。このため、スライス画像の分割領域の領域幅（領域の横線分の平均などで抽出される）と、この分割領域に対応するフレーム画像の対応領域の領域幅（領域の横線分の平均などで抽出される）とを、カメラの移動方向（ｘ軸方向）を基準として比較すると、比較的近くの撮影対象物が写っているスライス画像の分割領域の領域幅（領域内のカメラ移動方向の画素数）は、フレーム画像の対応領域の領域幅（領域内のカメラ移動方向の画素数）よりも、領域幅が短くなる。一方で、比較的遠くの撮影対象物が写っているスライス画像の分割領域の領域幅（領域内のカメラ移動方向の画素数）は、フレーム画像の対応領域の領域幅（領域内のカメラ移動方向の画素数）と比較して、領域幅があまり変わらない。
【００１９】
このため、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、フレーム画像の対応領域において、カメラの移動方向（ｘ軸方向）の画素数の平均ｑを検出すると共に、対応するスライス画像の分割領域において、ｔ軸方向の画素数の平均ｐを検出することによって、ｐに対するｑの割合あるいはｑに対するｐの割合に基づいて求められる比率値を、対応領域毎に算出する。そして、カメラから撮影対象物までの距離と比率値との対応関係が予め定められた距離関数を用いることによって、算出された比率値に対応する、カメラから撮影対象物までの距離を、対応領域毎に算出する。
【００２０】
このようにして対応する領域毎に、カメラから撮影対象物までの距離を算出することによって、フレーム画像の対応領域（分割領域）毎に、カメラから撮影対象物までの距離を求めることが可能になる。特に、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、１台のカメラで撮影された動画映像に基づいて、フレーム画像の対応領域（分割領域）毎の距離を算出することが可能になる。このため、従来のステレオビジョン法のように、カメラ間の間隔ｄを一定に維持した２台のカメラを用いて撮影する場合に比べて、撮影機器の簡素化と撮影負担の低減を図ることが可能になる。
【００２１】
また１台のカメラによって撮影された動画映像に基づいて、フレーム画像の対応領域（分割領域）毎の距離を算出することができるため、例えば、過去に撮影された動画映像や、他の目的で撮影が行われた動画映像等のような、様々な動画映像に基づいて、その動画映像が映された撮影状況・撮影環境における撮影対象物までの距離を算出することが可能になる。
【００２２】
また、前述した領域毎の距離算出に加えて、上述した画像距離算出装置は、前記スライス画像の分割領域内における前記ｔ軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記ｘ軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、前記スライス画像の分割領域内の各画素に対応する画素を、前記フレーム画像の前記対応領域内の画素として求め、求められた前記フレーム画像の前記対応領域内における前記ｘ軸方向の画素の間隔に基づいて、当該対応領域内の画素毎の相対的な距離を、ローカル距離として算出するローカル距離算出手段と、該ローカル距離算出手段により算出された、前記フレーム画像の画素毎のローカル距離に、前記グローバル距離算出手段により算出された、前記フレーム画像の前記対応領域毎のグローバル距離を加算することによって、前記カメラから前記撮影対象物までの詳細な距離を、前記フレーム画像の画素毎に算出する詳細距離算出手段とを有するものであってもよい。
【００２３】
さらに、前述した領域毎の距離算出に加えて、上述した画像距離算出方法は、前記スライス画像の分割領域内における前記ｔ軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記ｘ軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、前記スライス画像の分割領域内の各画素に対応する画素を、前記フレーム画像の前記対応領域内の画素として求め、求められた前記フレーム画像の前記対応領域内における前記ｘ軸方向の画素の間隔に基づいて、ローカル距離算出手段が、当該対応領域内の画素毎の相対的な距離を、ローカル距離として算出するローカル距離算出ステップと、該ローカル距離算出ステップにおいて算出された、前記フレーム画像の画素毎のローカル距離に、前記グローバル距離算出ステップにおいて算出された、前記フレーム画像の前記対応領域毎のグローバル距離を加算することによって、詳細距離算出手段が、前記カメラから前記撮影対象物までの詳細な距離を、前記フレーム画像の画素毎に算出する詳細距離算出ステップとを有するものであってもよい。
【００２４】
また、前述した領域毎の距離算出に加えて、上述した画像距離算出用プログラムは、前記制御手段に、前記スライス画像の分割領域内における前記ｔ軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記ｘ軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、前記スライス画像の分割領域内の各画素に対応する画素を、前記フレーム画像の前記対応領域内の画素として求めさせ、求められた前記フレーム画像の前記対応領域内における前記ｘ軸方向の画素の間隔に基づいて、当該対応領域内の画素毎の相対的な距離を、ローカル距離として算出させるローカル距離算出機能と、該ローカル距離算出機能により算出された、前記フレーム画像の画素毎のローカル距離に、前記グローバル距離算出機能により算出された、前記フレーム画像の前記対応領域毎のグローバル距離を加算することによって、前記カメラから前記撮影対象物までの詳細な距離を、前記フレーム画像の画素毎に算出させる詳細距離算出機能とを実現させるためのプログラムであってもよい。
【００２５】
本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、フレーム画像とスライス画像との対応する分割領域内において、スライス画像の分割領域内の始端の境界から終端の境界までの画素と、フレーム画像の対応領域内の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求める。
【００２６】
既に説明したように、カメラから撮影対象物までの距離の違いによってスライス画像に記録される画像の圧縮状態が異なるため、対応する分割領域内で、スライス画像の画素に対応するフレーム画像の画素を求めると、フレーム画像の隣接する画素の間隔が、カメラから撮影対象物までの距離の違いによって異なったものになる。ここで重要なことは、この状態が、フレーム画像において静的に表現されていることである。また、ここでフレーム画像上の、スライス画像の画素との、対応点は、動的視差（モーションパララックス，ステレオビジョンでの視差に対応）の累積点を静的に表現していることである。これにより、ステレオビジョンでは通常用いることができない累積点を、利用することが可能になる。ステレオビジョンでは、対象物の１点に対応する点を、２つの画像中見つけることを特徴とするのに対し、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、対象物の１点を基準として、フレーム画像上で横方向に近接する各点の動的視差を、動的計画法によって最適に累積することを特徴とする。このため、本発明に係る累積された動的視差は、「フレーム画像上で横方向に近接する点の集まり」に対応するものとなっている。したがって、累積された動的視差に基づいて求まる距離は、この累積に関与した「フレーム画像上の対応する物体の点の集まり（系列）」に対応するものである。「動的視差の累積を求める方法」を用いることによって、ステレオビジョンでは困難であった、カメラ間距離を大きくするという問題が別の観点により解決される。その後、累積された動的視差に関与する系列の区間に対応した、カメラから物体までの距離が計算される。
【００２７】
また、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムは、１台のカメラの移動により撮影された動画映像に基づいて、グローバル距離を求めることを特徴とする。このため、ステレオビジョンのように、２台のカメラ間距離（ベースラインと通常呼ばれる）が一定であるという前提は必要としない。従って、累積された動的視差に基づく距離関数の導出においては、固定されていないベースラインの累積が考慮されている。
【００２８】
具体的には、カメラから撮影対象物までの距離が遠い場合には、フレーム画像において求められた対応する画素（バックトレース処理で定まる画素）の間隔が狭くなり、カメラから撮影対象物までの距離が近い場合には、フレーム画像において求められた対応する画素の間隔が広くなる。つまり、動的視差の違いに応じてスライス画像の圧縮状態が異なるため、視差の違いが比較的小さい場合、つまり、カメラから撮影対象物までの距離の遠い場合には、フレーム画像の隣接する画素の間隔が近くなり、視差の違いが比較的大きい場合、つまり、カメラから撮影対象物までの距離が近い場合には、フレーム画像の隣接する画素の間隔が広くなる。上述のように、これらの状態が静止的に一覧できるため、距離の算出に利用できる。
【００２９】
従って、フレーム画像の分割領域毎に、対応する分割領域のスライス画像の画素との対応関係を求めて、隣接する画素間の間隔を検出することによって、分割領域内における撮影対象物からカメラまでの相対的な距離を求めることが可能になる。
【００３０】
このため、既に求められている対応領域毎のカメラから撮影対象物までの距離（グローバル距離）と、該当する対応領域における相対的な距離（ローカル距離）とを足し合わせる（加算する）ことによって、カメラから撮影対象物の領域内の画素についても距離を画素毎に求めることが可能になる。
【００３１】
また、上述した画像距離算出装置は、前記スライス画像の分割領域内における前記ｔ軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記ｘ軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、前記スライス画像の分割領域内の各画素に対応する、前記フレーム画像の前記対応領域内の前記ｘ軸方向の画素を、ｘ（１），ｘ（２），・・・，ｘ（ｉ），・・・，ｘ（Ｇ−１），ｘ（Ｇ）（１≦ｉ≦Ｇ）として求め、前記フレーム画像の前記対応領域内における前記ｘ軸方向の始端の境界から終端の境界までの画素数の平均をｘａとし、前記フレーム画像の前記対応領域内における前記画素ｘ（ｉ）と、前記バックトレース処理により求められて前記画素ｘ（ｉ）に近接する画素ｘ（ｉ−１）との距離を、ｘ（ｉ）−ｘ（ｉ−１）とし、前記グローバル距離算出手段により算出された前記対応領域のグローバル距離を距離ｚｇとし、当該フレーム画像の画素ｘ（ｉ）における撮影対象物から前記カメラまでの詳細な距離を距離ｚ（ｉ）として、当該距離ｚ（ｉ）を、正の定数βを用いて、ｚ（ｉ）＝ｚｇ＋β（ｘ（ｉ）−ｘ（ｉ−１）−ｘａ／Ｇ）により算出する詳細距離算出手段を有するものであってもよい。
【００３２】
さらに、上述した画像距離算出方法は、前記スライス画像の分割領域内における前記ｔ軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記ｘ軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、詳細距離算出手段が、前記スライス画像の分割領域内の各画素に対応する、前記フレーム画像の前記対応領域内の前記ｘ軸方向の画素を、ｘ（１），ｘ（２），・・・，ｘ（ｉ），・・・，ｘ（Ｇ−１），ｘ（Ｇ）（１≦ｉ≦Ｇ）として求め、前記フレーム画像の前記対応領域内における前記ｘ軸方向の始端の境界から終端の境界までの画素数の平均をｘａとし、前記フレーム画像の前記対応領域内における前記画素ｘ（ｉ）と、前記バックトレース処理により求められて前記画素ｘ（ｉ）に近接する画素ｘ（ｉ−１）との距離をｘ（ｉ）−ｘ（ｉ−１）とし、前記グローバル距離算出ステップにおいて算出された前記対応領域のグローバル距離を距離ｚｇとし、当該フレーム画像の画素ｘ（ｉ）における撮影対象物から前記カメラまでの詳細な距離を距離ｚ（ｉ）として、当該距離ｚ（ｉ）を、正の定数βを用いて、ｚ（ｉ）＝ｚｇ＋β（ｘ（ｉ）−ｘ（ｉ−１）−ｘａ／Ｇ）により算出する詳細距離算出ステップを有するものであってもよい。
【００３３】
また、上述した画像距離算出用プログラムは、前記制御手段に、前記スライス画像の分割領域内における前記ｔ軸方向の始端の境界から終端の境界までの画素と、当該スライス画像の分割領域に対応する前記フレーム画像の対応領域内における前記ｘ軸方向の始端の境界から終端の境界までの画素との対応関係を、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求めることにより、前記スライス画像の分割領域内の各画素に対応する、前記フレーム画像の前記対応領域内の前記ｘ軸方向の画素を、ｘ（１），ｘ（２），・・・，ｘ（ｉ），・・・，ｘ（Ｇ−１），ｘ（Ｇ）（１≦ｉ≦Ｇ）として求めさせ、前記フレーム画像の前記対応領域内における前記ｘ軸方向の始端の境界から終端の境界までの画素数の平均をｘａとし、前記フレーム画像の前記対応領域内における前記画素ｘ（ｉ）と、前記バックトレース処理により求められて前記画素ｘ（ｉ）に近接する画素ｘ（ｉ−１）との距離をｘ（ｉ）−ｘ（ｉ−１）とし、前記グローバル距離算出機能により算出された前記対応領域のグローバル距離を距離ｚｇとし、当該フレーム画像の画素ｘ（ｉ）における撮影対象物から前記カメラまでの詳細な距離を距離ｚ（ｉ）として、当該距離ｚ（ｉ）を、正の定数βを用いて、ｚ（ｉ）＝ｚｇ＋β（ｘ（ｉ）−ｘ（ｉ−１）−ｘａ／Ｇ）により算出させる詳細距離算出機能を実現させるためのプログラムであってもよい。
【００３４】
本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、動的計画法に基づく両端点固定のマッチング処理およびバックトレース処理を用いて求められる、フレーム画像の対応領域内のｘ軸方向の画素を、ｘ（１），ｘ（２），・・・，ｘ（ｉ），・・・，ｘ（Ｇ−１），ｘ（Ｇ）（１≦ｉ≦Ｇ）として求める。また、フレーム画像の対応領域内におけるｘ軸方向の始端の境界から終端の境界までの画素数の平均をｘａとし、対応領域内における画素ｘ（ｉ）と近接する画素ｘ（ｉ−１）との距離をｘ（ｉ）−ｘ（ｉ−１）とし、対応領域のグローバル距離を距離ｚｇとする。そして、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、フレーム画像の画素ｘ（ｉ）における撮影対象物からカメラまでの詳細な距離ｚ（ｉ）を、正の定数βを用いて、ｚ（ｉ）＝ｚｇ＋β（ｘ（ｉ）−ｘ（ｉ−１）−ｘａ／Ｇ）により算出する。
【００３５】
ここで、対応領域におけるグローバル距離ｚｇは、対応領域における平均的な距離であると考えられる。この平均的な距離ｚｇは、近接する画素ｘ（ｉ）と画素ｘ（ｉ−１）との値の集合における平均的な区間画素長に対応するものと考えられる。近接する２つの画素間の平均的な区間画素長は、対応領域内におけるｘ軸方向の始端の境界から終端の境界までの画素数の平均を示すｘａを、対応する画素数Ｇで除算した値となる。
【００３６】
このことから、対応領域内のｘ（ｉ）の画素位置において、ｘ（ｉ）の画素位置からｘ（ｉ−１）の画素位置までの２点間の画素長（距離）が、平均的な２点間の画素長よりも長い場合、すなわち、ｘ（ｉ）−ｘ（ｉ−１）が、ｘａ／Ｇより大きい（ｘ（ｉ）−ｘ（ｉ−１）−ｘａ／Ｇ＞０）場合には、点ｘ（ｉ）における距離ｚ（ｉ）が、対応領域における平均的な距離ｚｇよりも手前側（カメラに近い位置）の撮影対象物を写した画素に該当すると考えることができる。
【００３７】
一方で、対応領域内のｘ（ｉ）の画素位置において、ｘ（ｉ）の画素位置からｘ（ｉ−１）の画素位置までの２点間の画素長が、平均的な２点間の画素長よりも短い場合、すなわち、ｘ（ｉ）−ｘ（ｉ−１）が、ｘａ／Ｇよりより小さい（ｘ（ｉ）−ｘ（ｉ−１）−ｘａ／Ｇ＜０）場合には、点ｘ（ｉ）における距離ｚ（ｉ）が、対応領域における平均的な距離ｚｇよりも奥側（カメラから遠い位置）の撮影対象物を写した画素に該当すると考えることができる。
【００３８】
従って、対応領域における平均的な距離である距離ｚｇに対して、対応領域における相対的な距離を示すβ（ｘ（ｉ）−ｘ（ｉ−１）−ｘａ／Ｇ）（これをローカル距離と呼ぶ）を加算することによって、フレーム画像のｘ（ｉ）の画素位置における撮影対象物からカメラまでの詳細な距離ｚ（ｉ）を、求めることが可能になる。
【００３９】
また、本発明に係る画像距離算出装置は、移動する１台のカメラにより撮影された動画映像に基づいて、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出手段と、該フレーム画像において、前記カメラの移動方向に向かって延設される軸をｘ軸とし、当該ｘ軸に直交する軸をｙ軸として、前記ｘ軸のｘ０点におけるｙ軸上の画素列の時間変化を、時間ｔ０＋１から時間ｔ０＋Ｔまで抽出することにより、縦軸を前記ｙ軸、横軸をｔ軸（１≦ｔ≦Ｔ）とするスライス画像（ここではスライス画像のみについての時間表記をｔと表現しているが、ｔ＝１は時間ｔ０＋１に対応し、ｔ＝Ｔは時間ｔ０＋Ｔに物理的に対応する）を生成するスライス画像生成手段と、時間ｔ（１≦ｔ≦Ｔ）における前記スライス画像の画素をｇ（ｔ，ｙ）とし、前記フレーム画像のｙ軸上のｙ′点（１≦ｙ′≦Ｙ）における時間ｔ０のときのｘｙｔ空間の画素をｆ（ｘ，ｙ′，ｔ０）＝ｒ（ｘ）として、ｘの区間［１，Ｘ］の任意の点において存在する、スライス画像の画素ｇ（ｔ，ｙ）に対応するフレーム画像の画素ｒ（ｘ）点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Ｔの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出手段と、該スポッティング点算出手段により算出されたスポッティング点に基づいて、時間ｔ＝Ｔから時間ｔ＝１までバックトレース処理を行うことにより、前記スライス画像のｔ軸におけるｔ＝１からｔ＝Ｔまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求める画素マッチング手段と、該画素マッチング手段により求められた時間ｔにおける前記フレーム画像の前記ｘ軸方向の画素をｘ（ｔ）とし、時間ｔ０における前記フレーム画像の前記ｘ軸方向の画素をｘ（ｔ０）として、前記フレーム画像における前記画素ｘ（ｔ）から前記画素ｘ（ｔ０）を減算することにより求められる当該２つの画素間の距離を、累積された動的視差α（ｔ，ｔ０）とし、前記フレーム画像の前記画素ｘ（ｔ）における撮影対象物から前記カメラまでの距離をグローバル距離ｚｇとし、前記累積された動的視差α（ｔ，ｔ０）の設定範囲を、定数μ１および定数γ１を用いて、μ１≦α（ｔ，ｔ０）≦γ１とし、前記グローバル距離ｚｇの設定範囲を、定数ｚＮ１および定数ｚＬ１を用いて、ｚＮ１≦ｚｇ≦ｚＬ１として、係数ａを、ａ＝ｚＬ１・ｅｘｐ（（μ１／（γ１−μ１））ｌｏｇ（ｚＬ１／ｚＮ１）により算出し、係数ｂを、ｂ＝（１／（γ１−μ１））ｌｏｇ（ｚＬ１／ｚＮ１）により算出することにより、前記画素ｘ（ｔ）における前記グローバル距離ｚｇを、前記累積された動的視差α（ｔ，ｔ０）と、前記係数ａおよび前記係数ｂとを用いて、ｚｇ＝ａ・ｅｘｐ（−ｂ・α（ｔ，ｔ０））により算出するグローバル距離算出手段とを有することを特徴とする。
【００４０】
さらに、本発明に係る画像距離算出方法は、移動する１台のカメラにより撮影された動画映像に基づいて、フレーム画像抽出手段が、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出ステップと、該フレーム画像において、前記カメラの移動方向に向かって延設される軸をｘ軸とし、当該ｘ軸に直交する軸をｙ軸として、前記ｘ軸のｘ０点におけるｙ軸上の画素列の時間変化を、時間ｔ０＋１から時間ｔ０＋Ｔまで抽出することにより、スライス画像生成手段が、縦軸を前記ｙ軸、横軸をｔ軸（１≦ｔ≦Ｔ）とするスライス画像を生成するスライス画像生成ステップと、時間ｔ（１≦ｔ≦Ｔ）における前記スライス画像の画素をｇ（ｔ，ｙ）とし、前記フレーム画像のｙ軸上のｙ′点（１≦ｙ′≦Ｙ）における時間ｔ０のときのｘｙｔ空間の画素をｆ（ｘ，ｙ′，ｔ０）＝ｒ（ｘ）として、ｘの区間［１，Ｘ］の任意の点において存在する、スライス画像の画素ｇ（ｔ，ｙ）に対応するフレーム画像の画素ｒ（ｘ）点を、動的計画法に基づくマッチング処理を用いて求めることにより、スポッティング点算出手段が、前記スライス画像における時間Ｔの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出ステップと、該スポッティング点算出ステップにおいて算出されたスポッティング点に基づいて、時間ｔ＝Ｔから時間ｔ＝１までバックトレース処理を行うことにより、画素マッチング手段が、前記スライス画像のｔ軸におけるｔ＝１からｔ＝Ｔまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求める画素マッチングステップと、該画素マッチングステップにおいて求められた時間ｔにおける前記フレーム画像の前記ｘ軸方向の画素をｘ（ｔ）とし、時間ｔ０における前記フレーム画像の前記ｘ軸方向の画素をｘ（ｔ０）として、前記フレーム画像における前記画素ｘ（ｔ）から前記画素ｘ（ｔ０）を減算することにより求められる当該２つの画素間の距離を、累積された動的視差α（ｔ，ｔ０）とし、前記フレーム画像の前記画素ｘ（ｔ）における撮影対象物から前記カメラまでの距離をグローバル距離ｚｇとし、前記累積された動的視差α（ｔ，ｔ０）の設定範囲を、定数μ１および定数γ１を用いて、μ１≦α（ｔ，ｔ０）≦γ１とし、前記グローバル距離ｚｇの設定範囲を、定数ｚＮ１および定数ｚＬ１を用いて、ｚＮ１≦ｚｇ≦ｚＬ１として、グローバル距離算出手段が、係数ａを、ａ＝ｚＬ１・ｅｘｐ（（μ１／（γ１−μ１））ｌｏｇ（ｚＬ１／ｚＮ１）により算出し、係数ｂを、ｂ＝（１／（γ１−μ１））ｌｏｇ（ｚＬ１／ｚＮ１）により算出することにより、前記画素ｘ（ｔ）における前記グローバル距離ｚｇを、前記累積された動的視差α（ｔ，ｔ０）と、前記係数ａおよび前記係数ｂとを用いて、ｚｇ＝ａ・ｅｘｐ（−ｂ・α（ｔ，ｔ０））により算出するグローバル距離算出ステップとを有することを特徴とする。
【００４１】
また、本発明に係る画像距離算出用プログラムは、移動する１台のカメラにより撮影された動画映像に基づいて、カメラから動画映像に記録された撮影対象物までの距離を算出する画像距離算出装置の画像距離算出用プログラムであって、前記画像距離算出装置の制御手段に、前記動画映像の任意の時間におけるフレーム画像を抽出させるフレーム画像抽出機能と、該フレーム画像において、前記カメラの移動方向に向かって延設される軸をｘ軸とし、当該ｘ軸に直交する軸をｙ軸として、前記ｘ軸のｘ０点におけるｙ軸上の画素列の時間変化を、時間ｔ０＋１から時間ｔ０＋Ｔまで抽出することにより、縦軸を前記ｙ軸、横軸をｔ軸（１≦ｔ≦Ｔ）とするスライス画像を生成させるスライス画像生成機能と、時間ｔ（１≦ｔ≦Ｔ）における前記スライス画像の画素をｇ（ｔ，ｙ）とし、前記フレーム画像のｙ軸上のｙ′点（１≦ｙ′≦Ｙ）における時間ｔ０のときのｘｙｔ空間の画素をｆ（ｘ，ｙ′，ｔ０）＝ｒ（ｘ）として、ｘの区間［１，Ｘ］の任意の点において存在する、スライス画像の画素ｇ（ｔ，ｙ）に対応するフレーム画像の画素ｒ（ｘ）点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Ｔの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出させるスポッティング点算出機能と、該スポッティング点算出機能により算出されたスポッティング点に基づいて、時間ｔ＝Ｔから時間ｔ＝１までバックトレース処理を行うことにより、前記スライス画像のｔ軸におけるｔ＝１からｔ＝Ｔまでのそれぞれの画素に対応する前記フレーム画像の画素の対応関係を求めさせる画素マッチング機能と、該画素マッチング機能により求められた時間ｔにおける前記フレーム画像の前記ｘ軸方向の画素をｘ（ｔ）とし、時間ｔ０における前記フレーム画像の前記ｘ軸方向の画素をｘ（ｔ０）として、前記フレーム画像における前記画素ｘ（ｔ）から前記画素ｘ（ｔ０）を減算することにより求められる当該２つの画素間の距離を、累積された動的視差α（ｔ，ｔ０）とし、前記フレーム画像の前記画素ｘ（ｔ）における撮影対象物から前記カメラまでの距離をグローバル距離ｚｇとし、前記累積された動的視差α（ｔ，ｔ０）の設定範囲を、定数μ１および定数γ１を用いて、μ１≦α（ｔ，ｔ０）≦γ１とし、前記グローバル距離ｚｇの設定範囲を、定数ｚＮ１および定数ｚＬ１を用いて、ｚＮ１≦ｚｇ≦ｚＬ１として、係数ａを、ａ＝ｚＬ１・ｅｘｐ（（μ１／（γ１−μ１））ｌｏｇ（ｚＬ１／ｚＮ１）により算出させ、係数ｂを、ｂ＝（１／（γ１−μ１））ｌｏｇ（ｚＬ１／ｚＮ１）により算出させることにより、前記画素ｘ（ｔ）における前記グローバル距離ｚｇを、前記累積された動的視差α（ｔ，ｔ０）と、前記係数ａおよび前記係数ｂとを用いて、ｚｇ＝ａ・ｅｘｐ（−ｂ・α（ｔ，ｔ０））により算出させるグローバル距離算出機能とを実現させるためのプログラムであることを特徴とする。
【００４２】
上述した画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、mean-shift法を用いて領域分割が行われた領域毎に、カメラから撮影対象物までの距離を示すグローバル距離を算出する場合について説明した。具体的には、まず、スライス画像の一の領域の横軸方向の平均長をｐとし、フレーム画像の対応する領域の横軸方向の平均長をｑとして、スライス画像に対するフレーム画像の拡大率（ｑ／ｐ）を求める。この拡大率（ｑ／ｐ）の値を距離関数に代入することによって、領域の距離値が定まる。
【００４３】
このため、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、画素マッチング処理により求められた時間ｔ（ここで、１≦ｔ≦Ｔとする）におけるフレーム画像の画素をｘ（ｔ）とし、時間ｔ０における画素をｘ（ｔ０）とし、画素ｘ（ｔ）から画素ｘ（ｔ０）を減算した２つの画素間の距離を、累積された動的視差α（ｔ,ｔ０）とし、画素ｘ（ｔ）におけるグローバル距離を距離ｚｇとし、累積された動的視差α（ｔ,ｔ０）の設定範囲を、μ１≦α（ｔ，ｔ０）≦γ１とし、グローバル距離ｚｇの設定範囲（これは対象世界を計測して得てもよいが、通常は視察で与える）、ｚＮ１≦ｚｇ≦ｚＬ１とする。そして、これらの範囲を与えるパラメータを距離関数式の境界条件として、ａ，ｂに関する連立方程式を解くと、係数ａを、ａ＝ｚＬ１・ｅｘｐ（（μ１／（γ１−μ１））ｌｏｇ（ｚＬ１／ｚＮ１）と算出でき、係数ｂをｂ＝（１／（γ１−μ１））ｌｏｇ（ｚＬ１／ｚＮ１）と算出できることにより、画素ｘ（ｔ）におけるグローバル距離ｚｇは、ｚｇ＝ａ・ｅｘｐ（−ｂ・α（ｔ，ｔ０））により定まる。
【００４４】
例えば、距離をｚとする距離関数ｚ＝ａ・ｅｘｐ（−ｂ・α（ｔ，ｔ０））を導出する場合には、距離ｚに対応する累積された動的視差α０を定数値とし、ここではα０＝１としている。後述する図２５に示すようにα０＝１とし、αが微小量Δαだけ増加したとき、距離が−Δｚの変化があると仮定する。これは動的視差（モーションパララックス）の性質を反映した扱いである。この比例関係をｚ：α０＝−Δｚ：Δαと表現し、これから簡単な微分方程式が導かれるが、これを解くと、２つのパラメータ、ａ，ｂをもつ関係式ｚ＝ａ・ｅｘｐ（−ｂ・α（ｔ，ｔ０））が得られる。
【００４５】
このようにして、求められる距離関数ｚ＝ａ・ｅｘｐ（−ｂ・α（ｔ，ｔ０））は、上述したように数学的に求められるものである。従って、この距離関数を用いることによって、グローバル距離ｚｇを、人間による撮影対象物の観察や直感ではない、理論根拠に基づいて決定することが可能となる。
【００４６】
なお、累積された動的視差α（ｔ，ｔ０）の累積の範囲は任意であり、単にα（ｔ０，ｔ０）として累積を行わない量についても、グローバル距離ｚｇを求めるための上述した距離関数に適用することが可能である。
【００４７】
上述したグローバル距離の算出においては、mean-shift法という領域検出法をスライス画像とフレーム画像の双方に適用し、双方の画像の領域の間での対応を見つけるという方法を行った。この方法はかなり複雑であるので、グローバル距離をより簡便に行う方法を提案する。
【００４８】
本発明に係る画像距離算出装置は、移動する１台のカメラにより撮影された動画映像に基づいて、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出手段と、該フレーム画像において、前記カメラの移動方向に向かって延設される軸をｘ軸とし、当該ｘ軸に直交する軸をｙ軸として、前記ｘ軸のｘ０点におけるｙ軸上の画素列の時間変化を、時間ｔ０＋１から時間ｔ０＋Ｔまで抽出することにより、縦軸を前記ｙ軸、横軸をｔ軸（１≦ｔ≦Ｔ）とするスライス画像を生成するスライス画像生成手段と、時間ｔ（１≦ｔ≦Ｔ）における前記スライス画像の画素をｇ（ｔ，ｙ）とし、前記フレーム画像のｙ軸上のｙ′点（１≦ｙ′≦Ｙ）における時間ｔ＝ｔ０のときのｘｙｔ空間の画素をｆ（ｘ，ｙ′，ｔ０）＝ｒ（ｘ）として、ｘの区間［１，Ｘ］の任意の点において存在する、スライス画像の画素ｇ（ｔ，ｙ）に対応するフレーム画像の画素ｒ（ｘ）点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Ｔの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出手段と、該スポッティング点算出手段により算出されたスポッティング点に基づいて、時間ｔ＝Ｔから時間ｔ＝１までバックトレース処理を行うことにより、前記スライス画像の前記ｔ軸におけるｔ＝１からｔ＝Ｔまでのそれぞれの画素に対応する前記フレーム画像の前記ｘ軸方向の画素を、ｘ（１），ｘ（２），ｘ（３），・・・，ｘ（ｉ），・・・ｘ（Ｔ）（１≦ｉ≦Ｔ）として求める画素マッチング手段と、該画素マッチング手段により求められた前記フレーム画像の前記画素ｘ（ｉ）と近接する画素ｘ（ｉ−１）との距離差をｘ（ｉ）−ｘ（ｉ−１）とし、画素ｘ（ｉ）から連続するＫ個（但しＫ＜Ｔ）の画素間における近接する画素との距離差を、ｘ（ｉ＋１）−ｘ（ｉ），ｘ（ｉ＋２）−ｘ（ｉ＋１），ｘ（ｉ＋３）−ｘ（ｉ＋２），・・・，ｘ（ｉ＋Ｋ−１）−ｘ（ｉ＋Ｋ−２），ｘ（ｉ＋Ｋ）−ｘ（ｉ＋Ｋ−１）として求め、求められた前記画素間の距離差の値の中央値をＭｅｄ（ｉ）として求めることによって、画素ｘ（ｉ）における累積された動的視差をＭｅｄ（ｉ）・Ｋとし、前記フレーム画像の前記画素ｘ（ｉ）における撮影対象物から前記カメラまでの詳細な距離を距離ｚ（ｉ，ｘ）とし、前記累積された動的視差Ｍｅｄ（ｉ）・Ｋの設定範囲を、定数μ２および定数γ２を用いて、μ２≦Ｍｅｄ（ｉ）・Ｋ≦γ２とし、前記画素ｘ（ｉ）における距離ｚ（ｉ，ｘ）の設定範囲を、定数ｚＮ２および定数ｚＬ２を用いてｚＮ２≦ｚ（ｉ，ｘ）≦ｚＬ２として、係数ａを、ａ＝ｚＬ２・ｅｘｐ（（μ２／（γ２−μ２））ｌｏｇ（ｚＬ２／ｚＮ２）により算出し、係数ｂを、ｂ＝（１／（γ２−μ２））ｌｏｇ（ｚＬ２／ｚＮ２）により算出することにより、前記ｘ（ｉ）における前記距離ｚ（ｉ，ｘ）を、前記累積された動的視差Ｍｅｄ（ｉ）・Ｋと、前記係数ａおよび前記係数ｂとを用いて、ｚ（ｉ，ｘ）＝ａ・ｅｘｐ（−ｂ・Ｍｅｄ（ｉ）・Ｋ）により算出する詳細距離算出手段とを有することを特徴とする。
【００４９】
さらに、本発明に係る画像距離算出方法は、移動する１台のカメラにより撮影された動画映像に基づいて、フレーム画像抽出手段が、当該動画映像の任意の時間におけるフレーム画像を抽出するフレーム画像抽出ステップと、該フレーム画像において、前記カメラの移動方向に向かって延設される軸をｘ軸とし、当該ｘ軸に直交する軸をｙ軸として、前記ｘ軸のｘ０点におけるｙ軸上の画素列の時間変化を、時間ｔ０＋１から時間ｔ０＋Ｔまで抽出することにより、スライス画像生成手段が、縦軸を前記ｙ軸、横軸をｔ軸（１≦ｔ≦Ｔ）とするスライス画像を生成するスライス画像生成ステップと、時間ｔ（１≦ｔ≦Ｔ）における前記スライス画像の画素をｇ（ｔ，ｙ）とし、前記フレーム画像のｙ軸上のｙ′点（１≦ｙ′≦Ｙ）における時間ｔ＝ｔ０のときのｘｙｔ空間の画素をｆ（ｘ，ｙ′，ｔ０）＝ｒ（ｘ）として、ｘの区間［１，Ｘ］の任意の点において存在する、スライス画像の画素ｇ（ｔ，ｙ）に対応するフレーム画像の画素ｒ（ｘ）点を、動的計画法に基づくマッチング処理を用いて求めることにより、スポッティング点算出手段が、前記スライス画像における時間Ｔの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出するスポッティング点算出ステップと、該スポッティング点算出ステップにおいて算出されたスポッティング点に基づいて、時間ｔ＝Ｔから時間ｔ＝１までバックトレース処理を行うことにより、画素マッチング手段が、前記スライス画像の前記ｔ軸におけるｔ＝１からｔ＝Ｔまでのそれぞれの画素に対応する前記フレーム画像の前記ｘ軸方向の画素を、ｘ（１），ｘ（２），ｘ（３），・・・，ｘ（ｉ），・・・ｘ（Ｔ）（１≦ｉ≦Ｔ）として求める画素マッチングステップと、該画素マッチングステップにおいて求められた前記フレーム画像の前記画素ｘ（ｉ）と近接する画素ｘ（ｉ−１）との距離差をｘ（ｉ）−ｘ（ｉ−１）とし、画素ｘ（ｉ）から連続するＫ個（但しＫ＜Ｔ）の画素間における近接する画素との距離差を、ｘ（ｉ＋１）−ｘ（ｉ），ｘ（ｉ＋２）−ｘ（ｉ＋１），ｘ（ｉ＋３）−ｘ（ｉ＋２），・・・，ｘ（ｉ＋Ｋ−１）−ｘ（ｉ＋Ｋ−２），ｘ（ｉ＋Ｋ）−ｘ（ｉ＋Ｋ−１）として求め、求められた前記画素間の距離差の値の中央値をＭｅｄ（ｉ）として求めることによって、画素ｘ（ｉ）における累積された動的視差をＭｅｄ（ｉ）・Ｋとし、前記フレーム画像の前記画素ｘ（ｉ）における撮影対象物から前記カメラまでの詳細な距離を距離ｚ（ｉ，ｘ）とし、前記累積された動的視差Ｍｅｄ（ｉ）・Ｋの設定範囲を、定数μ２および定数γ２を用いて、μ２≦Ｍｅｄ（ｉ）・Ｋ≦γ２とし、前記画素ｘ（ｉ）における距離ｚ（ｉ，ｘ）の設定範囲を、定数ｚＮ２および定数ｚＬ２を用いて、ｚＮ２≦ｚ（ｉ，ｘ）≦ｚＬ２として、詳細距離算出手段が、係数ａを、ａ＝ｚＬ２・ｅｘｐ（（μ２／（γ２−μ２））ｌｏｇ（ｚＬ２／ｚＮ２）により算出し、係数ｂを、ｂ＝（１／（γ２−μ２））ｌｏｇ（ｚＬ２／ｚＮ２）により算出することにより、前記ｘ（ｉ）における前記距離ｚ（ｉ，ｘ）を、前記累積された動的視差Ｍｅｄ（ｉ）・Ｋと、前記係数ａおよび前記係数ｂとを用いて、ｚ（ｉ，ｘ）＝ａ・ｅｘｐ（−ｂ・Ｍｅｄ（ｉ）・Ｋ）により算出する詳細距離算出ステップとを有することを特徴とする。
【００５０】
また、本発明に係る画像距離算出用プログラムは、移動する１台のカメラにより撮影された動画映像に基づいて、カメラから動画映像に記録された撮影対象物までの距離を算出する画像距離算出装置の画像距離算出用プログラムであって、前記画像距離算出装置の制御手段に、前記動画映像の任意の時間におけるフレーム画像を抽出させるフレーム画像抽出機能と、該フレーム画像において、前記カメラの移動方向に向かって延設される軸をｘ軸とし、当該ｘ軸に直交する軸をｙ軸として、前記ｘ軸のｘ０点におけるｙ軸上の画素列の時間変化を、時間ｔ０＋１から時間ｔ０＋Ｔまで抽出することにより、縦軸を前記ｙ軸、横軸をｔ軸（１≦ｔ≦Ｔ）とするスライス画像を生成させるスライス画像生成機能と、時間ｔ（１≦ｔ≦Ｔ）における前記スライス画像の画素をｇ（ｔ，ｙ）とし、前記フレーム画像のｙ軸上のｙ′点（１≦ｙ′≦Ｙ）における時間ｔ＝ｔ０のときのｘｙｔ空間の画素をｆ（ｘ，ｙ′，ｔ０）＝ｒ（ｘ）として、ｘの区間［１，Ｘ］の任意の点において存在する、スライス画像の画素ｇ（ｔ，ｙ）に対応するフレーム画像の画素ｒ（ｘ）点を、動的計画法に基づくマッチング処理を用いて求めることにより、前記スライス画像における時間Ｔの画素に対応する前記フレーム画像の画素の座標を、スポッティング点として算出させるスポッティング点算出機能と、該スポッティング点算出機能により算出されたスポッティング点に基づいて、時間ｔ＝Ｔから時間ｔ＝１までバックトレース処理を行うことにより、前記スライス画像の前記ｔ軸におけるｔ＝１からｔ＝Ｔまでのそれぞれの画素に対応する前記フレーム画像の前記ｘ軸方向の画素を、ｘ（１），ｘ（２），ｘ（３），・・・，ｘ（ｉ），・・・ｘ（Ｔ）（１≦ｉ≦Ｔ）として求めさせる画素マッチング機能と、該画素マッチング機能により求められた前記フレーム画像の前記画素ｘ（ｉ）と近接する画素ｘ（ｉ−１）との距離差をｘ（ｉ）−ｘ（ｉ−１）とし、画素ｘ（ｉ）から連続するＫ個（但しＫ＜Ｔ）の画素間における近接する画素との距離差を、ｘ（ｉ＋１）−ｘ（ｉ），ｘ（ｉ＋２）−ｘ（ｉ＋１），ｘ（ｉ＋３）−ｘ（ｉ＋２），・・・，ｘ（ｉ＋Ｋ−１）−ｘ（ｉ＋Ｋ−２），ｘ（ｉ＋Ｋ）−ｘ（ｉ＋Ｋ−１）として求めさせ、求められた前記画素間の距離差の値の中央値をＭｅｄ（ｉ）として求めさせることによって、画素ｘ（ｉ）における累積された動的視差をＭｅｄ（ｉ）・Ｋとし、前記フレーム画像の前記画素ｘ（ｉ）における撮影対象物から前記カメラまでの詳細な距離を距離ｚ（ｉ，ｘ）とし、前記累積された動的視差Ｍｅｄ（ｉ）・Ｋの設定範囲を、定数μ２および定数γ２を用いて、μ２≦Ｍｅｄ（ｉ）・Ｋ≦γ２とし、前記画素ｘ（ｉ）における距離ｚ（ｉ，ｘ）の設定範囲を、定数ｚＮ２および定数ｚＬ２を用いて、ｚＮ２≦ｚ（ｉ，ｘ）≦ｚＬ２として、係数ａを、ａ＝ｚＬ２・ｅｘｐ（（μ２／（γ２−μ２））ｌｏｇ（ｚＬ２／ｚＮ２）により算出させ、係数ｂを、ｂ＝（１／（γ２−μ２））ｌｏｇ（ｚＬ２／ｚＮ２）により算出させることにより、前記ｘ（ｉ）における前記距離ｚ（ｉ，ｘ）を、前記累積された動的視差Ｍｅｄ（ｉ）・Ｋと、前記係数ａおよび前記係数ｂとを用いて、ｚ（ｉ，ｘ）＝ａ・ｅｘｐ（−ｂ・Ｍｅｄ（ｉ）・Ｋ）により算出させる詳細距離算出機能とを実現させるためのプログラムであることを特徴とする。
【００５１】
既に説明した画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、初めに、mean-shift法により領域分割された領域毎の距離（グローバル距離）を求めて、その後に、領域内の画素毎の相対的な距離（ローカル距離）を求めて、領域毎の距離（グローバル距離）に、領域内の画素毎の相対的な距離（ローカル距離）を加算することによって、フレーム画像の画素毎の距離を求める場合について説明した。つまり、第１段階の処理として、領域毎のグローバル距離を求めて、第２段階の処理として、領域内の画素毎の相対的な距離（ローカル距離）を求めてから、最終的な画素毎の距離を求めている。
【００５２】
本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、スライス画像の画素に対応するフレーム画像の画素点を、動的計画法に基づくマッチング処理を用いて求めることにより、フレーム画像のスポッティング点として算出する。そして、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、算出されたスポッティング点に基づいて、時間ｔ＝Ｔから時間ｔ＝１までバックトレース処理を行うことにより、スライス画像のｔ＝１からｔ＝Ｔまでのそれぞれの画素に対応するフレーム画像の画素を、ｘ（１），ｘ（２），ｘ（３），・・・，ｘ（ｉ），・・・ｘ（Ｔ）（１≦ｉ≦Ｔ）として求める。そして、画素マッチングによって求められたフレーム画像の画素ｘ（ｉ）と近接する画素ｘ（ｉ−１）との距離差をｘ（ｉ）−ｘ（ｉ−１）とし、画素ｘ（ｉ）から連続するＫ個（但しＫ＜Ｔ）の画素間における近接する画素の距離差の中央値をメディアンフィルタＭｅｄ（ｉ）として求める。このＭｅｄ（ｉ）を用いることによって、画素ｘ（ｉ）における累積された動的視差をＭｅｄ（ｉ）・Ｋとして表すことができる。
【００５３】
そして、フレーム画像の画素ｘ（ｉ）における撮影対象物からカメラまでの詳細な距離を距離ｚ（ｉ，ｘ）とし、累積された動的視差Ｍｅｄ（ｉ）・Ｋの設定範囲を、μ２≦Ｍｅｄ（ｉ）・Ｋ≦γ２とし、距離ｚ（ｉ，ｘ）の設定範囲を、ｚＮ２≦ｚ（ｉ，ｘ）≦ｚＬ２として、係数ａを、ａ＝ｚＬ２・ｅｘｐ（（μ２／（γ２−μ２））ｌｏｇ（ｚＬ２／ｚＮ２）により算出し、係数ｂを、ｂ＝（１／（γ２−μ２））ｌｏｇ（ｚＬ２／ｚＮ２）により算出することにより、ｘ（ｉ）における距離ｚ（ｉ，ｘ）を、ｚ（ｉ，ｘ）＝ａ・ｅｘｐ（−ｂ・Ｍｅｄ（ｉ）・Ｋ）により求める。
【００５４】
このようにして、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、メディアンフィルタにより求められる動的視差を用いて累積された動的視差Ｍｅｄ（ｉ）・Ｋを求めて、このＭｅｄ（ｉ）・Ｋに基づいて求められた距離関数ｚ（ｉ，ｘ）を用いることによって、フレーム画像のスポッティングの対象となった画素の詳細な距離を、mean-shift法を用いて領域分割を行うことなく、求めることが可能となる。
【００５５】
さらに、上述したＭｅｄ（ｉ）・Ｋ（中央値×Ｋ）を求めることは、mean-shift法を用いて領域を求めることと類似の方法である。累積された動的視差の量は、Ｋ個の区間をいわば領域とする１つの求め方である。この累積された動的視差の量は、領域抽出を経ずして計算できるため簡便な方法であるといえる。
【００５６】
また、上述した画像距離算出装置は、前記詳細距離算出手段が、前記フレーム画像の前記画素ｘ（ｉ）（１≦ｉ≦Ｔ）以外の画素の距離を、前記画素ｘ（ｉ）において求められた前記距離ｚ（ｉ，ｘ）の距離値を用いて内挿することにより求めるものであってもよい。
【００５７】
さらに、上述した画像距離算出方法は、前記詳細距離算出ステップにおいて、前記詳細距離算出手段は、前記フレーム画像の前記画素ｘ（ｉ）（１≦ｉ≦Ｔ）以外の画素の距離を、前記画素ｘ（ｉ）において求められた前記距離ｚ（ｉ，ｘ）の距離値を用いて内挿することにより求めるものであってもよい。
【００５８】
また、上述した画像距離算出用プログラムは、前記制御手段に、前記詳細距離算出機能において、前記フレーム画像の前記画素ｘ（ｉ）（１≦ｉ≦Ｔ）以外の画素の距離を、前記画素ｘ（ｉ）において求められた前記距離ｚ（ｉ，ｘ）の距離値を用いて内挿することにより求めさせることを実現させるためのプログラムであってもよい。
【００５９】
上述した画像距離算出装置、画像距離算出方法および画像距離算出用プログラムにおいて、距離ｚ（ｉ，ｘ）が求められる画素ｘ（ｉ）は、フレーム画像の一部の画素として求められるものであり、全ての画素が対象とはならない。このため、カメラから撮影対象物までの距離を、距離関数ｚ（ｉ，ｘ）＝ａ・ｅｘｐ（−ｂ・Ｍｅｄ（ｉ）・Ｋ）によって算出することができない画素が存在する。
【００６０】
一方で、距離関数ｚ（ｉ，ｘ）＝ａ・ｅｘｐ（−ｂ・Ｍｅｄ（ｉ）・Ｋ）によって距離を算出することができる画素ｘ（ｉ）は、撮影対象物の表面位置を決定するテクスチャの画素に該当する。このため、このテクスチャとなる画素ｘ（ｉ）の距離を利用することによって、距離関数によって距離値を算出することができない周辺の画素の距離値を、距離値が決まった周辺の画素の距離値を用いて内挿（補間）によって決めることができる。
【００６１】
このように、距離関数によって距離値を算出することができる画素ｘ（ｉ）の距離値を用いて、距離関数によって距離値を算出できない画素の距離を、内挿（補間）することによって、領域分割を行うことなく、つまり、領域を考慮して多段的に距離値を求めることなく、フレーム画像の各画素の距離値を求めることが可能になる。
【００６２】
また、Ｍｅｄ（ｉ）・Ｋを使って距離を計算する方法では、１段階の処理でもって、バックトレース点での距離が計算できる。したがって、バックトレースの点以外の画素での距離も、バックトレース点からの内挿によって与えられることとなる。
【００６３】
なお、内挿とは、一般的に、ある既知の数値データ列を基にして、そのデータ列の各区間の範囲内を埋める数値を求めること、またはそのような関数を与えることを意味する。
【００６４】
また、上述した画像距離算出装置、画像距離算出方法および画像距離算出用プログラムは、カメラにより１つの時刻のフレーム画像と、その時刻から以降のＴ時間の画像から作られるスライス画像によって、フレーム画像の各画素に距離を与えるものである。このような画素がＲＧＢ以外に距離の値をもつフレーム画像を連結して広いパノラマ距離画像を作成することは広い応用に資する。
【００６５】
上述した画像距離算出装置は、前記カメラにより異なる時間に撮影された２枚のフレーム画像であって、互いに共通する画像部分を一部に含む前記２枚のフレーム画像に対して、前記２枚のフレーム画像の全ての画素のＲＧＢの値を抽出することにより、抽出された前記ＲＧＢの値に該当しないＲＧＢの値を、コードのＲＧＢの値として検出するコード検出手段と、前記グローバル距離算出手段により前記グローバル距離が算出された画素の距離値を、前記２枚のフレーム画像の画素の中から抽出する画素距離値抽出手段と、該画素距離値抽出手段により抽出された前記距離値毎に、前記コードのＲＧＢの値を重複しないように割り当てるコードＲＧＢ値割当手段と、前記コードＲＧＢ値割当手段により前記コードのＲＧＢの値が割り当てられた前記距離値と同じ距離値を備える、前記２枚のフレーム画像の画素のＲＧＢの値を、当該距離値に応じて割り当てられた前記コードのＲＧＢの値に入れ替えるＲＧＢ値入替手段と、該ＲＧＢ値入替手段により入れ替えられた後の前記ＲＧＢの値を、当該ＲＧＢの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録する画素情報記録手段と、前記ＲＧＢ値入替手段により前記画素のＲＧＢの値が入れ替えられた２枚のフレーム画像に対して、スティッチングアルゴリズムを適用することにより、当該２枚のフレーム画像の貼り合わせ処理を行って、１枚の貼り合わせ画像を生成する貼り合わせ画像生成手段と、該貼り合わせ画像生成手段により生成された前記貼り合わせ画像の全ての画素のＲＧＢの値の中から、前記画素情報記録手段に記録される前記ＲＧＢの値と一致あるいは近似するＲＧＢの値を検出するＲＧＢ値検出手段と、該ＲＧＢ値検出手段により検出された前記ＲＧＢの値を備える画素に対し、前記画素情報記録手段に記録される前記ＲＧＢの値に紐付けられた前記距離値を、当該画素の距離情報として付加する距離情報付加手段と、該距離情報付加手段により前記距離情報が付加された前記画素のＲＧＢの値を、当該画素の周囲の画素のＲＧＢの値の平均値に変更するＲＧＢ値変更手段とを有するものであってもよい。
【００６６】
さらに、上述した画像距離算出方法は、前記カメラにより異なる時間に撮影された２枚のフレーム画像であって、互いに共通する画像部分を一部に含む前記２枚のフレーム画像に対して、前記２枚のフレーム画像の全ての画素のＲＧＢの値を抽出することにより、コード検出手段が、抽出された前記ＲＧＢの値に該当しないＲＧＢの値を、コードのＲＧＢの値として検出するコード検出ステップと、前記グローバル距離算出ステップにおいて前記グローバル距離が算出された画素の距離値を、画素距離値抽出手段が、前記２枚のフレーム画像の画素の中から抽出する画素距離値抽出ステップと、該画素距離値抽出ステップにおいて抽出された前記距離値毎に、コードＲＧＢ値割当手段が、前記コードのＲＧＢの値を重複しないように割り当てるコードＲＧＢ値割当ステップと、前記コードＲＧＢ値割当ステップにおいて前記コードのＲＧＢの値が割り当てられた前記距離値と同じ距離値を備える、前記２枚のフレーム画像の画素のＲＧＢの値を、ＲＧＢ値入替手段が、当該距離値に応じて割り当てられた前記コードのＲＧＢの値に入れ替えるＲＧＢ値入替ステップと、該ＲＧＢ値入替ステップにおいて入れ替えられた後の前記ＲＧＢの値を、画素情報記録手段が、当該ＲＧＢの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録する画素情報記録ステップと、前記ＲＧＢ値入替ステップにおいて前記画素のＲＧＢの値が入れ替えられた２枚のフレーム画像に対して、スティッチングアルゴリズムを適用することにより、貼り合わせ画像生成手段が、当該２枚のフレーム画像の貼り合わせ処理を行って、１枚の貼り合わせ画像を生成する貼り合わせ画像生成ステップと、該貼り合わせ画像生成ステップにおいて生成された前記貼り合わせ画像の全ての画素のＲＧＢの値の中から、ＲＧＢ値検出手段が、前記画素情報記録ステップにおいて記録された前記ＲＧＢの値と一致あるいは近似するＲＧＢの値を検出するＲＧＢ値検出ステップと、該ＲＧＢ値検出ステップにおいて検出された前記ＲＧＢの値を備える画素に対し、前記画素情報記録ステップにおいて記録された前記ＲＧＢの値に紐付けられる前記距離値を、距離情報付加手段が、当該画素の距離情報として付加する距離情報付加ステップと、該距離情報付加ステップにおいて前記距離情報が付加された前記画素のＲＧＢの値を、ＲＧＢ値変更手段が、当該画素の周囲の画素のＲＧＢの値の平均値に変更するＲＧＢ値変更ステップとを有するものであってもよい。
【００６７】
また、上述した画像距離算出用プログラムは、前記制御手段に、前記カメラにより異なる時間に撮影された２枚のフレーム画像であって、互いに共通する画像部分を一部に含む前記２枚のフレーム画像に対して、前記２枚のフレーム画像の全ての画素のＲＧＢの値を抽出させることにより、抽出された前記ＲＧＢの値に該当しないＲＧＢの値を、コードのＲＧＢの値として検出させるコード検出機能と、前記グローバル距離算出機能により前記グローバル距離が算出された画素の距離値を、前記２枚のフレーム画像の画素の中から抽出させる画素距離値抽出機能と、該画素距離値抽出機能により抽出された前記距離値毎に、前記コードのＲＧＢの値を重複しないように割り当てさせるコードＲＧＢ値割当機能と、前記コードＲＧＢ値割当機能により前記コードのＲＧＢの値が割り当てられた前記距離値と同じ距離値を備える、前記２枚のフレーム画像の画素のＲＧＢの値を、当該距離値に応じて割り当てられた前記コードのＲＧＢの値に入れ替えさせるＲＧＢ値入替機能と、該ＲＧＢ値入替機能により入れ替えられた後の前記ＲＧＢの値を、当該ＲＧＢの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録させる画素情報記録機能と、前記ＲＧＢ値入替機能により前記画素のＲＧＢの値が入れ替えられた２枚のフレーム画像に対して、スティッチングアルゴリズムを適用させることにより、当該２枚のフレーム画像の貼り合わせ処理を行って、１枚の貼り合わせ画像を生成させる貼り合わせ画像生成機能と、該貼り合わせ画像生成機能により生成された前記貼り合わせ画像の全ての画素のＲＧＢの値の中から、前記画素情報記録機能によって記録された前記ＲＧＢの値と一致あるいは近似するＲＧＢの値を検出させるＲＧＢ値検出機能と、該ＲＧＢ値検出機能により検出された前記ＲＧＢの値を備える画素に対し、前記画素情報記録機能により記録された前記ＲＧＢの値に紐付けられる前記距離値を、当該画素の距離情報として付加させる距離情報付加機能と、該距離情報付加機能により前記距離情報が付加された前記画素のＲＧＢの値を、当該画素の周囲の画素のＲＧＢの値の平均値に変更させるＲＧＢ値変更機能とを実現させるためのプログラムであってもよい。
【００６８】
共通する画像部分を有する２枚の画像から１枚の画像を生成する方法として、スティッチングアルゴリズムが一般的に知られている。既存のスティッチングアルゴリズムでは、貼り合わせ対象となる画像の色情報（以下、ＲＧＢ情報と称する）を利用して、貼り合わせ処理を行う。このとき、２つの画像はスティッチングの前と後ではＲＧＢの値が変化してしまい、スティッチング前の画素値は、スティッチング後のどの画素に対応しているかはわからない。このため、スティッチングアルゴリズムを、距離情報が付加されたフレーム画像にそのまま適用してしまうと、貼り合わされる前のフレーム画像の距離情報を、貼り合わされた画像に反映させることができなかった。
【００６９】
このため、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、２枚のフレーム画像の全ての画素のＲＧＢの値に該当しないコードのＲＧＢの値を求めて、距離情報が付加される画素の中から一部の画素を抽出して、ＲＧＢの値をコードのＲＧＢの値に入れ替えた後に、スティッチングアルゴリズムを適用して貼り合わせ画像を生成する。この貼り合わせ画像では、距離情報が付加された画素のＲＧＢの値が、元のフレーム画像において使用されていなかったコードのＲＧＢの値になっているため、貼り合わせ画像において、コードのＲＧＢの値が付された画素は、距離情報が付された画素と判断することできる。このため、コードのＲＧＢの値に紐付けられた距離値を、貼り合わせ画像の該当する画素に付加することによって、スティッチングアルゴリズムが適用される前の２枚のフレーム画像のそれぞれの距離情報が反映された、貼り合わせ画像を生成することが可能になる。
【００７０】
ここで注意すべきこととして、距離値に対応したＲＧＢの値をコードのＲＧＢの値に入れ替える画素は、フレーム画像の一部の画素にしなくてはならないことである。元の画素のＲＧＢの値のほとんどは残っており、画像としての見かけはほとんど変わらないといえる。従って、スティッチング処理の結果は、入れ替え前と後では、ほとんど変わらない結果が得られる。
【００７１】
上述したスティッチング処理は一部の画素が同じ距離値（グローバル距離）をもつものの合体処理であった。しかし、フレーム画像のすべての画素に詳細な距離値（例えば、ローカル距離＋グローバル距離）が与えられている場合には、以下のような工夫を要する。
【００７２】
上述した画像距離算出装置は、前記カメラにより異なる時間に撮影された２枚のフレーム画像であって、互いに共通する画像部分を一部に含み、前記詳細距離算出手段によって前記撮影対象物から前記カメラまでの距離が画素毎に算出された前記２枚のフレーム画像に対して、前記２枚のフレーム画像の全ての画素のＲＧＢの値を抽出することにより、抽出された前記ＲＧＢの値に該当しないＲＧＢの値を、コードのＲＧＢの値として検出するコード検出手段と、前記２枚のフレーム画像のうち、全体の画素数の１／Ｎ（Ｎは正数）の個数の画素をランダムに選択し、選択された画素の距離値を抽出する画素距離値抽出手段と、該画素距離値抽出手段により抽出された前記距離値毎に、前記コードのＲＧＢの値を重複しないように割り当てるコードＲＧＢ値割当手段と、前記コードＲＧＢ値割当手段により前記コードのＲＧＢの値が割り当てられた前記距離値と同じ距離値を備える、前記２枚のフレーム画像の画素のＲＧＢの値を、当該距離値に応じて割り当てられた前記コードのＲＧＢの値に入れ替えるＲＧＢ値入替手段と、該ＲＧＢ値入替手段により入れ替えられた後の前記ＲＧＢの値を、当該ＲＧＢの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録する画素情報記録手段と、前記ＲＧＢ値入替手段により前記画素のＲＧＢの値が入れ替えられた２枚のフレーム画像に対して、スティッチングアルゴリズムを適用することにより、当該２枚のフレーム画像の貼り合わせ処理を行って、１枚の貼り合わせ画像を生成する貼り合わせ画像生成手段と、該貼り合わせ画像生成手段により生成された前記貼り合わせ画像の全ての画素のＲＧＢの値の中から、前記画素情報記録手段に記録される前記ＲＧＢの値と一致あるいは近似するＲＧＢの値を検出するＲＧＢ値検出手段と、該ＲＧＢ値検出手段により検出された前記ＲＧＢの値を備える画素に対し、前記画素情報記録手段に記録される前記ＲＧＢの値に紐付けられた前記距離値を、当該画素の距離情報として付加する距離情報付加手段と、該距離情報付加手段により前記距離情報が付加された前記画素のＲＧＢの値を、当該画素の周囲の画素のＲＧＢの値の平均値に変更することにより、当該ＲＧＢの値が修正された修正貼り合わせ画像を生成する修正貼り合わせ画像生成手段と、該修正貼り合わせ画像生成手段により生成されたＮ枚の修正貼り合わせ画像に基づいて、全ての画素に前記距離情報が付加された１枚の貼り合わせ画像を生成する距離付加貼り合わせ画像生成手段とを有し、前記画素距離値抽出手段は、２回目以降に画素の距離値を抽出する場合に、前記２枚のフレーム画像のうち過去に選択されなかった画素の中から、全体の画素数の１／Ｎの個数の画素をランダムに選択して、当該画素の距離値を抽出し、前記コードＲＧＢ値割当手段と、前記ＲＧＢ値入替手段と、前記画素情報記録手段と、前記貼り合わせ画像生成手段と、前記ＲＧＢ値検出手段と、前記距離情報付加手段と、前記修正貼り合わせ画像生成手段とは、前記画素距離値抽出手段により２回目以降に選択された前記距離値に基づいて、それぞれの処理を順番にＮ回繰り返すことにより、Ｎ枚の前記修正貼り合わせ画像を生成し、前記距離付加貼り合わせ画像生成手段は、前記修正貼り合わせ画像の全体の画素数の１／Ｎの画素に付加されている前記距離情報を、Ｎ枚の前記修正貼り合わせ画像の全てを重ねて読み取ることにより、前記修正貼り合わせ画像における全ての画素の距離情報を求めて、求められた当該距離情報を１枚の貼り合わせ画像に付加することにより、全ての画素に前記距離情報が付加された前記１枚の貼り合わせ画像を生成することを特徴とするものであってもよい。
【００７３】
画像の１／Ｎの画素の数を選択して、コードに割り当てる理由は、すべての画素に対して、距離に対応するコードに割り当てることが、一度の処理でできないためである。
【００７４】
さらに、上述した画像距離算出方法は、前記カメラにより異なる時間に撮影された２枚のフレーム画像であって、互いに共通する画像部分を一部に含み、前記詳細距離算出ステップにおいて前記撮影対象物から前記カメラまでの距離が画素毎に算出された前記２枚のフレーム画像に対して、前記２枚のフレーム画像の全ての画素のＲＧＢの値を抽出することにより、コード検出手段が、抽出された前記ＲＧＢの値に該当しないＲＧＢの値を、コードのＲＧＢの値として検出するコード検出ステップと、画素距離値抽出手段が、前記２枚のフレーム画像のうち、全体の画素数の１／Ｎ（Ｎは正数）の個数の画素をランダムに選択し、選択された画素の距離値を抽出する画素距離値抽出ステップと、該画素距離値抽出ステップにおいて抽出された前記距離値毎に、コードＲＧＢ値割当手段が、前記コードのＲＧＢの値を重複しないように割り当てるコードＲＧＢ値割当ステップと、前記コードＲＧＢ値割当ステップにおいて前記コードのＲＧＢの値が割り当てられた前記距離値と同じ距離値を備える、前記２枚のフレーム画像の画素のＲＧＢの値を、ＲＧＢ値入替手段が、当該距離値に応じて割り当てられた前記コードのＲＧＢの値に入れ替えるＲＧＢ値入替ステップと、該ＲＧＢ値入替ステップにおいて入れ替えられた後の前記ＲＧＢの値を、画素情報記録手段が、当該ＲＧＢの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録する画素情報記録ステップと、前記ＲＧＢ値入替ステップにおいて前記画素のＲＧＢの値が入れ替えられた２枚のフレーム画像に対して、スティッチングアルゴリズムを適用することにより、貼り合わせ画像生成手段が、当該２枚のフレーム画像の貼り合わせ処理を行って、１枚の貼り合わせ画像を生成する貼り合わせ画像生成ステップと、該貼り合わせ画像生成ステップにおいて生成された前記貼り合わせ画像の全ての画素のＲＧＢの値の中から、ＲＧＢ値検出手段が、前記画素情報記録ステップにおいて記録された前記ＲＧＢの値と一致あるいは近似するＲＧＢの値を検出するＲＧＢ値検出ステップと、該ＲＧＢ値検出ステップにおいて検出された前記ＲＧＢの値を備える画素に対し、前記画素情報記録ステップにおいて記録された前記ＲＧＢの値に紐付けられた前記距離値を、距離情報付加手段が、当該画素の距離情報として付加する距離情報付加ステップと、該距離情報付加ステップにおいて前記距離情報が付加された前記画素のＲＧＢの値を、当該画素の周囲の画素のＲＧＢの値の平均値に変更することにより、修正貼り合わせ画像生成手段が、当該ＲＧＢの値が修正された修正貼り合わせ画像を生成する修正貼り合わせ画像生成ステップと、該修正貼り合わせ画像生成ステップによって生成されたＮ枚の修正貼り合わせ画像に基づいて、距離付加貼り合わせ画像生成手段が、全ての画素に前記距離情報が付加された１枚の貼り合わせ画像を生成する距離付加貼り合わせ画像生成ステップとを有し、前記画素距離値抽出ステップにおいて前記画素距離値抽出手段は、２回目以降に画素の距離値を抽出する場合に、前記２枚のフレーム画像のうち過去に選択されなかった画素の中から、全体の画素数の１／Ｎの個数の画素をランダムに選択して、当該画素の距離値を抽出し、前記コードＲＧＢ値割当ステップにおける前記コードＲＧＢ値割当手段と、前記ＲＧＢ値入替ステップにおける前記ＲＧＢ値入替手段と、前記画素情報記録ステップにおける前記画素情報記録手段と、前記貼り合わせ画像生成ステップにおける前記貼り合わせ画像生成手段と、前記ＲＧＢ値検出ステップにおける前記ＲＧＢ値検出手段と、前記距離情報付加ステップにおける前記距離情報付加手段と、前記修正貼り合わせ画像生成ステップにおける前記修正貼り合わせ画像生成手段とは、前記画素距離値抽出ステップにおいて前記画素距離値抽出手段により２回目以降に選択された前記距離値に基づいて、それぞれの処理を順番にＮ回繰り返すことにより、Ｎ枚の前記修正貼り合わせ画像を生成し、前記距離付加貼り合わせ画像生成ステップにおいて、前記距離付加貼り合わせ画像生成手段は、前記修正貼り合わせ画像の全体の画素数の１／Ｎの画素に付加されている前記距離情報を、Ｎ枚の前記修正貼り合わせ画像の全てを重ねて読み取ることにより、前記修正貼り合わせ画像における全ての画素の距離情報を求めて、求められた当該距離情報を１枚の貼り合わせ画像に付加することにより、全ての画素に前記距離情報が付加された前記１枚の貼り合わせ画像を生成することを特徴とするものであってもよい。
【００７５】
また、上述した画像距離算出用プログラムは、前記制御手段に、前記カメラにより異なる時間に撮影された２枚のフレーム画像であって、互いに共通する画像部分を一部に含み、前記詳細距離算出機能において前記撮影対象物から前記カメラまでの距離が画素毎に算出された前記２枚のフレーム画像に対して、前記２枚のフレーム画像の全ての画素のＲＧＢの値を抽出させることにより、抽出された前記ＲＧＢの値に該当しないＲＧＢの値を、コードのＲＧＢの値として検出させるコード検出機能と、前記２枚のフレーム画像のうち、全体の画素数の１／Ｎ（Ｎは正数）の個数の画素をランダムに選択させ、選択された画素の距離値を抽出させる画素距離値抽出機能と、該画素距離値抽出機能により抽出された前記距離値毎に、前記コードのＲＧＢの値を重複しないように割り当てさせるコードＲＧＢ値割当機能と、前記コードＲＧＢ値割当機能により前記コードのＲＧＢの値が割り当てられた前記距離値と同じ距離値を備える、前記２枚のフレーム画像の画素のＲＧＢの値を、当該距離値に応じて割り当てられた前記コードのＲＧＢの値に入れ替えさせるＲＧＢ値入替機能と、該ＲＧＢ値入替機能により入れ替えられた後の前記ＲＧＢの値を、当該ＲＧＢの値への入れ替えが行われた前記画素の前記距離値に紐付けて記録させる画素情報記録機能と、前記ＲＧＢ値入替機能により前記画素のＲＧＢの値が入れ替えられた２枚のフレーム画像に対して、スティッチングアルゴリズムを適用させることにより、当該２枚のフレーム画像の貼り合わせ処理を行って、１枚の貼り合わせ画像を生成させる貼り合わせ画像生成機能と、該貼り合わせ画像生成機能により生成された前記貼り合わせ画像の全ての画素のＲＧＢの値の中から、前記画素情報記録機能により記録された前記ＲＧＢの値と一致あるいは近似するＲＧＢの値を検出させるＲＧＢ値検出機能と、該ＲＧＢ値検出機能により検出された前記ＲＧＢの値を備える画素に対し、前記画素情報記録機能により記録された前記ＲＧＢの値に紐付けられた前記距離値を、当該画素の距離情報として付加させる距離情報付加機能と、該距離情報付加機能により前記距離情報が付加された前記画素のＲＧＢの値を、当該画素の周囲の画素のＲＧＢの値の平均値に変更させることにより、当該ＲＧＢの値が修正された修正貼り合わせ画像を生成させる修正貼り合わせ画像生成機能と、該修正貼り合わせ画像生成機能により生成されたＮ枚の修正貼り合わせ画像に基づいて、全ての画素に前記距離情報が付加された１枚の貼り合わせ画像を生成させる距離付加貼り合わせ画像生成機能とを有し、前記画素距離値抽出機能において、前記制御手段に、２回目以降に画素の距離値を抽出させる場合に、前記２枚のフレーム画像のうち過去に選択されなかった画素の中から、全体の画素数の１／Ｎの個数の画素をランダムに選択させて、当該画素の距離値を抽出させ、前記コードＲＧＢ値割当機能と、前記ＲＧＢ値入替機能と、前記画素情報記録機能と、前記貼り合わせ画像生成機能と、前記ＲＧＢ値検出機能と、前記距離情報付加機能と、前記修正貼り合わせ画像生成機能とに関し、前記画素距離値抽出機能により２回目以降に選択された前記距離値に基づいて、前記制御手段に、それぞれの機能を順番にＮ回繰り返して実行させることにより、Ｎ枚の前記修正貼り合わせ画像を生成させ、前記距離付加貼り合わせ画像生成機能において、前記修正貼り合わせ画像の全体の画素数の１／Ｎの画素に付加されている前記距離情報を、Ｎ枚の前記修正貼り合わせ画像の全てを重ねて読み取ることにより、前記制御手段に、前記修正貼り合わせ画像における全ての画素の距離情報を求めさせて、求められた当該距離情報を１枚の貼り合わせ画像に付加させることにより、全ての画素に前記距離情報が付加された前記１枚の貼り合わせ画像を生成させることを実現させるためのプログラムであってもよい。
【００７６】
本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、２枚のフレーム画像のうち、全体の画素数の１／Ｎ（Ｎは正数）の個数の画素をランダムに選択して距離値を抽出し、この画素のＲＧＢの値をコードのＲＧＢの値に入れ替えて、スティッチングアルゴリズムを適用して貼り合わせ画像を生成する。このようにして生成された貼り合わせ画像では、全体の画素の１／Ｎの画素だけに距離情報が反映されたことになる。そして、Ｎ枚の貼り合わせ画像を用いて距離情報が付加されている画素を求めることによって、全ての画素位置に対応する距離情報を求めることができる。このためスティッチングアルゴリズムが適用される前の２枚のフレーム画像の距離情報が十分に反映された貼り合わせ画像を生成することが可能になる。
【発明の効果】
【００７７】
本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムによれば、フレーム画像の分割領域毎に、カメラから撮影対象物までの距離を求めることが可能になる。特に、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムでは、１台のカメラで撮影された動画映像に基づいて、フレーム画像の分割領域毎または画素毎の距離を算出することが可能になる。このため、従来のステレオビジョン法のように、カメラ間の間隔ｄを一定に維持した２台のカメラを複数回用いて撮影する場合に比べて、撮影機器の簡素化と撮影負担の低減を図ることが可能になる。
【００７８】
また１台のカメラによって撮影された動画映像に基づいて、フレーム画像内の対応する領域または画素の距離を算出することができるため、例えば、過去に撮影された動画映像や、他の目的で撮影が行われた動画映像等のような、様々な動画映像に基づいて、その動画映像が映された撮影状況・撮影環境における撮影対象物までの距離を算出することが可能になる。
【図面の簡単な説明】
【００７９】
【図１】実施の形態に係る画像距離算出装置の概略構成を示したブロック図である。
【図２】実施の形態に係る画像距離算出装置の処理内容を示したフローチャートである。
【図３】動的視差（モーションパララックス）におけるカメラと撮影対象物との関係を模式的に示した図である。
【図４】動画映像を３次元的な空間として説明するための図である。
【図５】（ａ）はフレーム画像の一例を示し、（ｂ）はスライス画像の一例を示した図である。
【図６】実施の形態に係る累積視差法と、従来のステレオビジョン法と、従来のEpipolar-Plane-Image法との違いを示した表である。
【図７】スライス画像の画素に対応するフレーム画像の画素の位置を、黒丸を用いて模式的に示した図である。
【図８】（ａ）は、水平方向に移動するカメラによって、撮影された動画映像において、時間ｔ＝１のフレーム画像を示した図である。（ｂ）は、（ａ）に示したｘ０の点（線）において、時間ｔ＝１からｔ＝１７５までの映像に基づいて作成されたスライス画像の例を示した図である。
【図９】所定のｙ′における、フレーム画像の画素のｘと時間ｔとの関係と、スライス画像の画素ｇ（ｔ，ｙ）におけるｙと時間ｔとの関係とを模式的に示しつつ、フレーム画像とスライス画像との対応関係を示した図である。
【図１０】ライン対画像のＤＰマッチング法のアルゴリズム（スポッティング機能を備えたＤＰマッチングアルゴリズム）を説明するための図である。
【図１１】（ａ）は、フレーム画像に、mean-shift法を適用した後の画像を示した図である。（ｂ）は、スライス画像に、mean-shift法を適用した後の画像を示した図である。
【図１２】スライス画像とフレーム画像との領域対応を説明するための模式図である。
【図１３】（ａ）は、スライス画像の領域と、スライス画像の領域中のピクセルに最も数多く対応する対応点をもつフレーム画像の領域とにより、スライス画像とフレーム画像との領域対応が決定されることを説明するための模式図である。（ｂ）は、スライス画像の領域の横軸区間長の平均をｑとし、それに対応するフレーム画像の領域の横軸区間長の平均をｐとする場合に、αｒ＝ｑ／ｐとして、距離ｚとαｒとの関係を示した図である。
【図１４】キャリブレーションデータに基づいて算出された、分割領域毎のグローバル距離を示した画像である。
【図１５】（ａ）〜（ｈ）は、複数枚のスライス画像を用いて順番にフレーム画像の領域毎の距離データを算出する過程を説明するための図である。
【図１６】（ａ）は、図１５（ａ）〜（ｈ）に基づいて得られた複数の画像（距離画像系列）に対してモザイキング処理が行われた画像を示した図であり、（ｂ）は、（ａ）に示した画像に基づいて、領域毎にグローバル距離が算出された状態の３Ｄ画像に、画素のＲＧＢの値を付加し、異なった視点を基準として示した図である。
【図１７】第１の貼り合わせ処理の内容を示したフローチャートである。
【図１８】２枚のフレーム画像における全ての画素のＲＧＢ情報を、ＲＧＢ空間に割り当てた状態を示した図である。
【図１９】一部の画素のＲＧＢ情報の値が、コードのＲＧＢ情報の値に入れ替えられた一のフレーム画像を示した図である。
【図２０】一部の画素のＲＧＢ情報の値が、コードのＲＧＢ情報の値に入れ替えられた他のフレーム画像を示した図である。
【図２１】貼り合わせ画像に対してmean-shift法を適用した図である。
【図２２】第２の貼り合わせ処理の内容を示したフローチャートである。
【図２３】スライス画像の横軸上の複数の画素と、対応するフレーム画像の横軸上の複数の画素との対応関係を示した図である。
【図２４】横方向に近接するスライス画像の各画素に対するフレーム画像上の動的視差と、各動的視差を累積することにより求められる累積された動的視差との関係を説明するための図である。
【図２５】累積された動的視差が実際の距離に対応するかの計算式導出を示すモデルの図である。
【図２６】スライス画像の横軸方向の平均長と、フレーム画像の対応する横軸方向の平均長とを用いて、領域の距離ｚregion（ｒ）を算出する方法を説明するための図である。
【図２７】（ａ）は、カメラの移動速度が遅い場合における、αｒの変動パラメータμ１およびγ１と距離ｚとの関係を示した図である。（ｂ）は、カメラの移動速度が速い場合における、αｒの変動パラメータμ１およびγ１と距離ｚとの関係を示した図である。
【図２８】領域内のｉ番目の画素ｘ（ｉ）と、画素ｘ（ｉ）における詳細な距離ｚ（ｉ）との関係を示した図である。
【発明を実施するための形態】
【００８０】
以下、本発明に係る画像距離算出装置に関して、一例を示し、図面を用いて詳細に説明する。図１は、画像距離算出装置の概略構成を示したブロック図である。画像距離算出装置１００は、記録部（画素情報記録手段）１０１と、ＲＯＭ（Read Only Memory）１０２と、ＲＡＭ（Random Access Memory：画素情報記録手段）１０３と、ＣＰＵ(Central Processing Unit：フレーム画像抽出手段、スライス画像生成手段、スポッティング点算出手段、画素マッチング手段、領域分割手段、対応領域決定手段、グローバル距離算出手段、ローカル距離算出手段、詳細距離算出手段、制御手段、コード検出手段、画素距離値抽出手段、コードＲＧＢ値割当手段、ＲＧＢ値入替手段、貼り合わせ画像生成手段、ＲＧＢ値検出手段、距離情報付加手段、ＲＧＢ値変更手段、修正貼り合わせ画像生成手段、距離付加貼り合わせ画像生成手段）１０４とを有している。画像距離算出装置１００には、カメラ２００が接続されている。カメラ２００によって撮影された動画映像は、記録部１０１に記録される。また、画像距離算出装置１００には、モニタ２１０が接続されている。モニタ２１０には、カメラ２００によって撮影された動画映像や、後述する図１４、図１６（ａ）（ｂ）、図１９、図２０、図２１等の画像を表示させることが可能になっている。
【００８１】
記録部１０１には、カメラ２００により撮影された動画映像が記録されている。より詳細には、カメラ２００により撮影された動画映像が、複数のフレーム画像を時系列的に記録したデータとして記録されている。例えば、時間１からＴまでの動画映像を、カメラ２００で撮影した場合を考える。カメラ２００の動画映像として、Δｔ時間毎に１枚のフレーム画像を記録できる場合には、記録部１０１に、Ｔ／Δｔ枚のフレーム画像が時系列的に記録されることになる。
【００８２】
なお、画像距離算出装置１００あるいはカメラ２００に、例えば、フレームバッファーを設けて、カメラ２００により記録された１フレーム毎の画像（フレーム画像）がフレームバッファーに一時的に記録され、フレームバッファーに記録された１フレーム毎の画像（フレーム画像）が、時系列的に記録部１０１に記録される構成であってもよい。また、カメラ２００で撮影された動画映像を記録部１０１にリアルタイムに取り込むのではなく、予めカメラ２００によって撮影された動画映像（過去に撮影された動画映像）を、複数のフレーム画像の時系列的データとして、記録部１０１に記録させるものであってもよい。
【００８３】
また、カメラ２００により撮影された動画映像は、デジタル映像だけには限定されない。例えば、撮影された動画映像がアナログ映像であっても、デジタル変換処理によって、時系列的にフレーム画像を記録部１０１に記録させることが可能であれば、画像距離算出装置１００における距離算出処理に利用することが可能である。
【００８４】
記録部１０１は、一般的なハードディスク等によって構成されている。なお、記録部１０１の構成は、ハードディスクだけに限定されるものではなく、フラッシュメモリ、ＳＳＤ（Solid State Drive / Solid State Disk）などであってもよい。記録部１０１は、動画映像を、時系列的な複数のフレーム画像として記録することが可能な記録媒体であるならば、具体的な構成は特に限定されるものではない。
【００８５】
ＣＰＵ１０４は、記録部１０１に時系列的に記録された複数のフレーム画像（映像）に基づいて、フレーム画像の画素毎に、カメラ位置からフレーム画像に写っている対象物（撮影対象物）までの距離を算出する処理を行う。ＣＰＵ１０４は、後述する処理プログラム（図２、図１７および図２２のフローチャートに基づくプログラム）に従って、画素毎の距離算出処理を行う。
【００８６】
ＲＯＭ１０２には、フレーム画像の画素毎に、フレーム画像に写っている撮影対象物までの距離を算出するためプログラム等が記録されている。ＣＰＵ１０４は、ＲＯＭ１０２より読み込んだプログラムに基づいて、画素毎の距離算出処理を行う。ＲＡＭ１０３は、ＣＰＵ１０４の処理に利用されるワークエリアとして用いられる。
【００８７】
なお、実施の形態に係る画像距離算出装置１００では、ＣＰＵ１０４において実行されるプログラム（画像距離算出用プログラム（図２に示すフローチャート）、貼り合わせ処理用プログラム（図１７および図２２に示すフローチャート））を、ＲＯＭ１０２に記録する構成として説明を行うが、これらのプログラムは、記録部１０１に記録されるものであってもよい。
【００８８】
カメラ２００は、レンズを通してカメラ正面の景色等を動画映像として撮影可能な撮影手段である。動画映像を撮影することが可能であれば、カメラ２００の種類・構成は特に限定されない、例えば、一般的なムービーカメラであってもよく、また、スマートフォン等のカメラ機能を利用するものであってもよい。
【００８９】
モニタ２１０は、カメラ２００で撮影された動画映像や、距離算出処理により求められる画素毎の距離を示した画像等（例えば、後述する図１４や図１６（ａ）（ｂ）の画像等）を、ユーザに対して視認可能に表示させることが可能となっている。モニタ２１０には、液晶ディスプレイや、ＣＲＴディスプレイなどの一般的な表示装置が用いられる。
【００９０】
次に、記録部１０１に記録された複数のフレーム画像の時系列データに基づいて、ＣＰＵ１０４が、フレーム画像の画素毎に距離を算出する方法について説明する。図２は、画像距離算出装置１００のＣＰＵ１０４が行う、画像距離算出処理（画素毎の距離算出処理）の内容を示したフローチャートである。
【００９１】
まず、カメラ２００が一定の速度ｖで移動しながら、撮影対象物を撮影する場合を考える。図３は、カメラ２００と撮影対象物との関係を模式的に示した図である。図３では、カメラ２００が速度ｖでＡ点からＢ点へとΔｔ時間だけ移動しながら、撮影対象物を撮影した場合が示されている。撮影対象物の位置をＳ点とする。Ａ点からＢ点までの距離は、ｖΔｔで示すことができる。ＳＡ（Ｓ点とＡ点とを結んだ線）とＳＢ（Ｓ点とＢ点とを結んだ線）とのなす角をΔθとし、ＳＡとＡＢ（Ａ点とＢ点とを結んだ線）とのなす角をθとする。また、ＳＡの長さ＝ＳＢの長さ＝ｄとする。このように定義した場合には、図３に示すように、点ＢからＳＡに下ろした垂線の長さは、ｖΔｔsinθと示すことができる。このｖΔｔsinθの長さは、長さｄとなす角Δθとの積、ｄΔθに近似した値となるため、次の式１として示すことができる。
【００９２】
Δθ＝ｖΔｔsinθ／ｄ      ・・・式１
式１から明らかなように、カメラ２００から撮影対象物までの距離が長いほど（つまり、撮影対象物がカメラ２００から遠いほど）、なす角Δθが小さく（狭く）なる。一方で、カメラ２００から撮影対象物までの距離が短いほど（つまり、撮影対象物がカメラ２００に近いほど）、なす角Δθが大きく（広く）なる。言い換えると、日常生活でも経験するように、自分が動いている場合に、進行方向に対して側方に位置するものの移動速度を、遠くのものと近くのものとで比較すると、遠くのものは動きが少ないため、あまり横方向へ変化しない。しかしながら、近くのものは動きが大きくなり、横方向へ速い速度で移動する。
【００９３】
このように、カメラ２００によって撮影された動画映像に映っている撮影対象物の横方向への動きの違いを求めることによって、フレーム画像の画素毎に、カメラから撮影対象物までの距離を算出することが可能になる。図３は、古典的な動的視差用いた手法（モーションパララックス）としてよく知られた構成を模式的に示している。
【００９４】
また、図３に示す動的視差（モーションパララックス）を用いた手法を水平に分離したものは、一般にステレオビジョンと称される。ステレオビジョンでは、図３のＡとＢとのそれぞれが、人間の左目と右目とに相当する。この場合は、カメラの移動は考えない。しかし、この古典的範囲、すなわち、ステレオビジョンに囚われる限り、図６を示して後述するように、距離データの取得において制約をもつことになる。
【００９５】
画像距離算出装置１００のＣＰＵ１０４では、移動する１台のカメラにより撮影された動画映像に基づいて、撮影されたフレーム画像に示される撮影対象物の位置の変化を時系列的に求めることによって、フレーム画像に映し出された撮影対象物までの距離を、画素毎に求める処理を行う。
【００９６】
記録部１０１には、上述したように、複数のフレーム画像を時系列的に記録したデータが動画映像として記録されている。画像距離算出装置１００のＣＰＵ１０４は、図４に示すように、フレーム画像の縦軸をｙ軸、横軸をｘ軸として、さらに時系列的な要素をｔ軸として、動画映像を３次元的な空間（時空間パターン）として判断する。つまり、フレーム画像の画素は、３次元的な空間の座標を用いて、ｆ（ｘ，ｙ，ｔ）で示すことが可能であると考える。ここで、ｆは通常カラーのＲ，Ｇ，Ｂ（赤、緑、青）の要素をもつものである。但し、１≦ｘ≦Ｘ，１≦ｙ≦Ｙ，１≦ｔ≦Ｔとなり、Ｘはフレーム画像の横（幅）方向の最大画素数、Ｙはフレーム画像の縦（高さ）方向の最大画素数、Ｔは撮影された映像時間を示している。時間Ｔの値は、最後のフレーム画像の数に等しいものとする。本実施の形態に係る画像距離算出装置１００のＣＰＵ１０４は、カメラ２００により撮影された動画映像の任意の時間のフレーム画像を抽出する（図２のＳ．１）。抽出されたフレーム画像は、図４に示すように、上述した時間ｔ＝１のフレーム画像に該当するものである。しかしながら、一般には、任意の時間のものがフレーム画像として用いられる。後述するように広域のシーンについて画素毎に距離を求める場合には、いくつもの時間においてフレーム画像を抽出する必要が生じる。
【００９７】
このように、動画映像を３次元的な空間として判断すると、フレーム画像のｘ座標を任意の値ｘ＝ｘ０に固定して、フレーム画像のｙ軸の要素と、時間ｔ軸の要素とに基づいて、スライス画像を生成することが可能になる（Ｓ．２）。スライス画像は、ｇ（ｔ，ｙ）（＝ｆ（ｘ０，ｙ，ｔ））で示すことが可能になる。但し、１≦ｙ≦Ｙ，１≦ｔ≦Ｔとする。また、時間ｔ＝１におけるフレーム画像は、ｆ（ｘ，ｙ，１）と示すことができる。但し，１≦ｘ≦Ｘである。本実施の形態において、説明の便宜上、撮影時間ｔを１≦ｔ≦１７５とする。
【００９８】
図５（ａ）は、ｔ＝１におけるフレーム画像ｆ（ｘ，ｙ，１）を示しており、図５（ｂ）は、ｘ＝ｘ０（図５（ａ）において、ｘ＝ｘ０が示されている）におけるスライス画像ｇ（ｔ，ｙ）を示した図である。図５（ａ）（ｂ）のそれぞれの画像は、カメラ２００が左から右へと移動する状態で川岸から対岸を撮影した動画映像に基づいて生成されている。具体的には、川岸沿いを移動する車両の窓から、カメラ２００を用いて動画映像を撮影したものである。このため、左から右へカメラ２００が移動する際には、上下方向の振動やずれなどが発生している。従って、カメラ２００で撮影された動画映像は、完全な平行移動を伴う映像ではない。
【００９９】
図５（ｂ）に示すスライス画像では、ｘ＝ｘ０におけるスライス画像であって、横軸ｔの左端がｔ＝１であり、右端がｔ＝１７５（＝Ｔ）となる。図５（ａ）のフレーム画像と、図５（ｂ）のスライス画像とを比較する。フレーム画像に写っている撮影対象物のうち、カメラ２００の撮影位置から遠い位置に存在する撮影対象物（例えば、川の対岸の建物や土手等）は、スライス画像においても、フレーム画像と同じような状態で記録されて（写って）おり、ｔ軸方向への画像の圧縮（画素間距離の圧縮）はあまり行われていない。一方で、カメラ２００の撮影位置から近い位置に存在するフレーム画像の撮影対象物（例えば、川の手前側の芝や地面等）は、スライス画像において、フレーム画像よりも画像が圧縮（画素間距離が圧縮）された状態で記録されて（写って）いる。
【０１００】
図５（ａ）（ｂ）を比較すると、最も遠い位置にある撮影対象物のフレーム画像からスライス画像への圧縮率（画像の圧縮率、画素間距離の圧縮率）は１倍程度であるのに対して、最も近い位置にある撮影対象物の圧縮率（画像の圧縮率、画素間距離の圧縮率）は、４倍程度になっている。この圧縮率の違いは、カメラ２００からの距離に比例するものとなっている。さらに、この圧縮率は、単純に１倍から４倍までの４段階が基準となるのではなく、アナログ的に、つまり、連続的（多段的）に距離に比例させて判断することができる。従って、カメラから撮影対象物までの距離を、圧縮状態に基づいて、より広いダイナミックレンジ（尺度・範囲）で連続的（多段的）に求めることが可能になる。
【０１０１】
この点において、既に説明したように、ステレオビジョン法（２つの画像の視差を利用して撮影対象物の距離を算出する方法）では、カメラ間の距離が小さい場合、遠方と近場との距離の算出精度に関して、視差（disparity）の範囲を、４段階程度の違いしか求めることができない。このため、通常のステレオビジョン法では、距離の算出精度を十分に確保することが難しかった。カメラ間の距離を大きくする場合には、原理的に視差（disparity）の値を大きくとることができるが、２つの画像上で対応する画素（ピクセル）を検出することが困難となる。しかしながら、本実施の形態に係る画像距離算出装置１００では、４段階程度ではなく、連続的（より多段的）に、遠方と近場との距離の算出精度を高めることができ、より広いダイナミックレンジで距離を求めることが可能になる。
【０１０２】
このように、スライス画像には、撮影対象物の画像の圧縮状態によって、動的視差（モーションパララックス）の累積的状態が明示的かつ静的に表現されている。画像距離算出装置１００では、動的視差の累積状態が表現されるスライス画像の圧縮状態（スライス画像の画素毎の圧縮状態）に基づいて、フレーム画像の画素毎に、カメラ２００から撮影対象物までの距離を求める。本実施の形態では、画像距離算出装置１００を用いて、カメラ２００から撮影対象物までの距離を、画素毎に求める方法を、累積視差法と称する。
【０１０３】
図６は、従来のステレオビジョン法（２つの画像の視差を利用する方法）と、従来のEpipolar-Plane-Image（ＥＰＩ）法と、累積視差法との違いを示した表である。ステレオビジョン法では、２つのカメラで同時に撮影された２つの画像を用いて、それぞれの画像から特徴点の抽出を行い、あるいは線的な動的計画法によりマッチングを行う。視差は２つの画像に黙示的に示されており、その視差を２つの画像のマッチングに基づいて求めることによって、撮影対象物までの距離を求めることが可能になる。但し、求められる距離のダイナミックレンジは比較的狭いという特徴がある。
【０１０４】
また、ＥＰＩ法は、スライス画像の中から線分を抽出し、各線分が撮影された目標対象物の１点に対応し、抽出された線分の傾きが距離に対応する方法である。抽出される線分の数は、物体を表す点の数より極めて少ないので、撮影された目標対象物を示す点は、まばらにしか得られない。そのためのテクスチャを表面にマッピングすることが困難となっている。
【０１０５】
ＥＰＩ法に関しては、下記の文献が参考となる。
[1] 山本正信、連続ステレオ画像からの３次元情報の抽出、電子情報通信学会論文誌Ｄ、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)
【０１０６】
一方で、累積視差法では、フレーム画像とスライス画像を用いて、後述する動的計画法（ライン対画像ＤＰ（dynamic programming）マッチング法）によりマッチングを行う。スライス画像には、圧縮状態によって動的視差の累積が明示的かつ静的に示されている。この圧縮状態を利用することによって、撮影対象物までの距離を求めることができる。求められる距離のダイナミックレンジは、従来のステレオビジョン法に比べて広いという特徴がある。
【０１０７】
図３では、カメラ２００が一定の速度ｖで移動しながら、撮影対象物を撮影する場合について説明した。一方で、カメラ２００が、空間の座標点（ｘ，ｙ）を時間ｔに依存して変化する変化量ｖ（ｘ，ｙ，ｔ）Δｔを速度（画素速度の動的視差）として示す。そして、カメラ２００の速度は、画面上の画素（ピクセル）の動く速度と考えることができる。従って、画像（ｘ，ｙ）のｘ軸の変化Δｘ（ｔ，ｙ）＝ｘ（ｔ＋Δｔ，ｙ）−ｘ（ｔ，ｙ）が速度となる。このため、図３と同様に、Δｘ（ｔ，ｙ）sinθ＝（ｘ（ｔ＋１，ｙ）−ｘ（ｔ，ｙ））sinθ＝ｄΔθが成立することになる。
【０１０８】
ここで注意すべき点として、まず、終端時間Ｔにおける累積された動的視差（累積モーションパララックス）が、ｘ（Ｔ，ｙ′）として最初に計算によって得られる。次に、ｘ（Ｔ，ｙ′）を決めている各ｘ（Ｔ，ｙ′）が、事後的なバックトレース処理によって得られる。図５（ａ）（ｂ）は、その後に、その時間差分を作成する場合のモデルとして示されている。一方で、図３は、Δθが視差（disparity）として得られることを前提とした図である。従って、図３に示したステレオビジョンでは、視差の累積という概念が入っていない。
【０１０９】
本実施の形態に係る画像距離算出装置１００では、累積された動的視差（累積モーションパララックス）と呼ぶ概念を考える。まず、スライス画像の画素ｇ（ｔ，ｙ）に対応する、フレーム画像の画素をｆ（ｘ（ｔ，ｙ），ｙ，ｔ０）とする。また、スライス画像の画素ｇ（ｔ＋１，ｙ）に対応するフレーム画像の画素を、ｆ（ｘ（ｔ，ｙ）＋Δｘ（ｔ，ｙ），ｙ，ｔ０）とする。本実施の形態に係る画像距離算出装置１００では、カメラ２００を横方向（略水平方向）に移動して撮影している。このため、スライス画像の横軸ｔにおいて、ｔが１つだけ増加する場合、フレーム画像の画素ｆでは、ｔの増加に対応して、Δｘ（ｔ，ｙ）だけ画素の座標（ｘ軸方向の座標）が変化することになる。
【０１１０】
ここで、フレーム画像の画素のｘ軸方向への移動距離Δｘ（ｔ，ｙ）の値は、カメラ２００から撮影対象物までの距離によって大きく異なる。すなわち、フレーム画像の画素（ｘ，ｙ）に示される（写っている）撮影対象物が、カメラ２００から遠方に存在する場合、フレーム画像における画素の移動距離Δｘ（ｔ，ｙ）の値は１に近い値となる。一方で、撮影対象物がカメラ２００から近い位置に存在する場合、フレーム画像における画素の移動距離Δｘ（ｔ，ｙ）の値は、１よりも大きな値になる。
【０１１１】
図７は、スライス画像の画素に対応するフレーム画像の画素の位置を、黒丸（●）を用いて模式的に示した図である。図７の縦は、フレーム画像のｙ軸に対応し、図７の横は、フレーム画像のｘ軸に対応している。黒丸は、スライス画像の画素に対応するフレーム画像の画素を示している。図７の横方向には、説明を簡単にするために２０個の画素（黒丸）が示されており、隣り合う画素（黒丸）の間隔が広くなったり、または、狭くなったりしている。画素（黒丸）１つが各時間ｔ（ｔ＝１〜２０）のときのスライス画像の画素を模式的に示している。最も左側に位置する画素（黒丸）は、時間ｔ＝１のときのスライス画像の画素に対応するフレーム画像の画素の配置（スライス画像の画素に対応する画素の配置位置）を示している。また、各列の最も右側に位置する画素（黒丸）は、最後の時間ｔ＝２０のときのスライス画像の画素に対応するフレーム画像の画素の配置を示している。スライス画像における最後の時間ｔ（＝２０）に該当するフレーム画像の画素の点は、スポッティング点と称される。
【０１１２】
本実施の形態に係る画像距離算出装置１００では、カメラ２００を横方向（略水平方向）に移動させて撮影を行っているため、スライス画像には、時間ｔ＝１から時間ｔ＝２０までの２０単位時間分の画素が横方向に記録される。一方で、図７に示すように、フレーム画像では、スライス画像に記録される２０個の画素（黒丸）の間隔が、ｙ軸毎に異なった間隔となる。間隔が異なる理由は、上述したように、カメラ２００から撮影対象物までの距離に応じて、Δｘ（ｔ，ｙ）が異なるためである。従って、図７において、隣り合う画素（黒丸）の間隔が狭い撮影対象物は、カメラ２００からの距離が遠いことを示しており、隣り合う画素（黒丸）の間隔が広い撮影対象物は、カメラ２００からの距離が近いことを示している。
【０１１３】
また、時間ｔ＝２０となるスポッティング点の位置が、ｙ軸毎に異なる理由は、ｙ軸毎に求められるΔｘ（ｔ，ｙ）の累積が異なるためである。ある画素（黒丸）の座標ｘ（ｔ，ｙ）とその右側の画素（黒丸）の座標ｘ（ｔ＋１，ｙ）との差がΔｘ（ｔ，ｙ）となるため、スポッティング点の画素（Ｔ＝２０）の座標ｘ（Ｔ，ｙ）は、隣り合う画素の差Δｘ（ｔ，ｙ）を累積した座標、つまりΣΔｘ（τ，ｙ）（但し、τはτ＝１からτ＝ｔ−１までの和）で示すことができる。このことから明らかなように、スライス画像の最も右側の端（動画映像の最後の時間）の画素（スポッティング点）は、撮影された動画映像の動的視差を累積的に含んだ画素となる。
【０１１４】
図８（ａ）は、横方向（略水平方向）に移動するカメラ２００によって、時間ｔ＝１からｔ＝１７５までの１７５単位時間だけ撮影された動画映像に基づいて求められた、時間ｔ＝１のときのフレーム画像を一例として示している。また、図８（ｂ）は、図８（ａ）に示したｘ０の点（線）において、時間ｔ＝１からｔ＝１７５までの映像に基づいて生成されたスライス画像を一例として示している。
【０１１５】
図８（ｂ）に示したスライス画像には、図８（ａ）に示したフレーム画像のｘ０上の各画素の時間ｔ＝１からｔ＝１７５までの変化状態が静的に記録されている。図８（ａ）に示したスライス画像をｘ０から右方向に確認しつつ、スライス画像との違いを調べると、フレーム画像に対応するスライス画像の一部画像が圧縮（画素が圧縮）された状態となっている。この圧縮の程度は、カメラ２００から撮影対象物までの距離によって異なっている。
【０１１６】
また、図８（ｂ）の左側に示された上下一対の曲線（曲点線）Ｌ１およびＬ２は、図８（ａ）に示したフレーム画像のｘ０における、ｙ座標上の２点に対応したスライス画像の画素の配置状態であって、フレーム画像の画素に対応する画素の配置状態を抽出したものである。カメラ２００が撮影対象物に対して完全に水平（平行）に移動しているのであれば、各線（点線）は水平な直線（直点線）となる。しかしながら、本実施の形態に係る画像距離算出装置１００では、カメラ２００が完全に水平（平行）ではなく、上方向（ｙ方向）に振動しながら動画映像が撮影されているため、曲線状となっている。一般に、カメラ２００が対象物のシーンに対して、完全に水平に移動することは考えられないので、上述したように曲線となることは普通に生じ得る。
【０１１７】
また、この上下の曲線上のスポッティング点（時間ｔ＝１７５＝Ｔ）に対応する画素ｘＴを、図８（ａ）のフレーム画像上の上下位置に、それぞれ、白抜き矢印によって示す。図８（ｂ）の左側に示された曲線の、始点（ｔ＝１の画素）から終点（ｔ＝１７５＝Ｔの画素）までの距離は、スライス画像の幅とほぼ等しい長さになっている。しかしながら、フレーム画像におけるそれぞれのスポッティング点（ｔ＝１７５＝Ｔの画素の位置）は、ｘ０からの長さが異なっている。フレーム画像の上側に示されたｘＴのスポッティング点におけるｘ０からの長さに比べて、フレーム画像の下側に示されたｘＴのスポッティング点におけるｘ０からの長さの方が長くなっている。この長さは、上述したΔｘ（ｔ，ｙ）の累積が、ｙ軸の値毎に異なるためである。
【０１１８】
このため、フレーム画像のｙの値を固定した点であって、時間ｔがｔ＝１からｔ＝Ｔ（＝１７５）までの各時間の点ｘ（１，ｙ），ｘ（２，ｙ），・・・，ｘ（Ｔ，ｙ）に対応する点をスライス画像の画素から求めることができれば、フレーム画像の画素とスライス画像の画素との対応関係を求めることが可能になる。
【０１１９】
図９は、所定のｙ′における、フレーム画像の画素線上の画素ｘ（ｔ）と、スライス画像の画素ｇ（ｔ，ｙ）との対応を模式的に示した図である。なお、フレーム画像の画素線上の画素ｘ（ｔ）は、ｔ＝１からｔ−１までの動的視差Δｘ（ｔ）の累積からなっている。図９の左下の図は、ｘ（ｔ）とｔの対応が非線形であることを示しているが、この図では右図のｙの軸は描かれていない。フレーム画像のｙ′を固定した線上の画素点とスライス画像との対応関係を求めるために、画像距離算出装置１００のＣＰＵ１０４では、ライン対画像のＤＰ（Line-image continuous dynamic programming）と称するマッチング法を用いる。ＣＰＵ１０４では、まず、ライン対画像のＤＰマッチング法（動的計画法）を用いることによって、フレーム画像のｙ′におけるｘ（ｔ）の値、つまり、１次元の累積された動的視差Δｘ（ｔ）と、ｔ軸とｙ軸との２次元からなるスライス画像ｇ（ｔ，ｙ）とのそれぞれの画素毎の最適対応関係に基づいて、時間ｔ＝Ｔにおけるフレーム画像のスポッティング点を求める。その後、ＣＰＵ１０４は、求められたスポッティング点からｔ＝１に向かって、最適点を遡るバックトレース処理を行うことによって、スライス画像の画素とフレーム画像の画素との対応関係の全て、すなわち、ｔ＝１からｔ＝Ｔまでの全ての対応点を求める処理を行う。
【０１２０】
ライン対画像のＤＰマッチング法は、フレーム画像におけるｙ軸の値をｙ′に固定したｙ座標上（ライン上）のｘと、（ｔ，ｙ）の２次元の画像に対して、動的計画法を用いることを特徴としている。このようにｙ軸の値を固定することによって、フレーム画像のライン上の始点画素と、スライス画像の始点画素を一致させることとなる。フレーム画像においてｙ軸の値を固定することが、これまで述べたＤＰマッチングの条件設定となる。
【０１２１】
なお、図１０に示すライン対画像のＤＰマッチング法は、既存の画像対画像のＤＰマッチング法を基準としつつ、一方の画像のｙの値をｙ′に固定して得られる線パターンのみを縦に並べることで、側面の画像を構成している。また、他方の画像のｙ＝ｙ′を始点として、３次元空間で、最適値を計算し、側面上の点で最適累積値を見出すことで、始点から最適累積値を与える点をスポッティング点と定めることが可能となっている。側面をなす画像は形式的には２次元画像であり、他方側面をなす画像も２次元画像であるので、画像と画像のマッチングであるように見えるが、側面の画像が１つの同じ線状の系列からのみ構成されるので、実質的にはライン対画像のマッチングとなっている。かつ、スポッティング機能も付与されている。従来から知られている、一の１次元のラインと他の１次元のラインとのマッチングからなるライン対ラインのＤＰマッチング法や、一の２次元の画像と、他の２次元の画像とのマッチングからなる画像対画像のＤＰマッチング法との中間に位置するアルゴリズムとなっている。
【０１２２】
ライン対ラインのＤＰマッチング法や、画像対画像のＤＰマッチング法（２次元画像と２次元画像との対応関係を求める動的計画法）に関しては、例えば、『岡隆一，外２名「連続ＤＰの一般スキームについて−画像スポッティングのための全画素最適マッチング−」，信学技報，電子情報通信学会，IEICE Technical Report, PRMU2010-87,IBISML2010-59 (2010-09)』や特開２０１０−１６５１０４号公報において詳細な説明がなされており、既に知られた技術である。このため、これらのＤＰマッチング法を応用することによって、ライン対画像のＤＰマッチング法による処理を実現することが可能である。但し、この実現には前述したように、「一方の画像のｙの値をｙ′に固定して得られる線パターンのみにする」等の工夫を必要とする。
【０１２３】
図１０は、ライン対画像のＤＰマッチング法のアルゴリズム（ＤＰマッチングアルゴリズム）を説明するための図である。ライン対画像のＤＰマッチング法のアルゴリズムとして、様々な局所パス群をとることによって構成を考えることができる。図１０に示す図は、図９に示した対応関係の探索を実現したものになっている。図１０では、３次元空間の演算空間（演算スペース）を考えて、底面に（ｔ，ｙ）のスライス画像に対応する座標（２次元平面画像の座標）を設定し、左側面に、フレーム画像のｙ′を固定した長さｘの画素列（ピクセル列：１次元のライン）と同じものを、整列させることにより、求めたいフレーム画像の対応する座標が得られるように設定する。固定されたｙ′は、実質的にフレーム画像の縦軸の座標に対応するため、左側面は、フレーム画像の１つのライン画像と同じものを、ｙ軸方向に単に並べたものである。底辺の（ｔ，ｙ′）＝（１，ｙ′）を始点として動的計画法によるマッチング（ＤＰマッチング処理）を行うことにより対応関係を求めることができる。同時に、累積最適値を与える（Ｔ，ｘ＊，ｙ＊)は側面上の一点であるが、このとき、ｘ＊は区間［１，Ｘ］の一点であることで、スポッティングを行うといえる。
【０１２４】
また、図１０に示されているように、本実施の形態に係るライン対画像のＤＰマッチング法アルゴリズムでは、時間軸を示すｔ軸とｘ軸との関係として、最大１対４の対応関係が大局的に許容できるものとして設定されている。具体的に、図１０の時間を示すｔ軸の値は、ｔ＝１からｔ＝Ｔまでの範囲で規定されており、ｘ軸の値は、ｘ＝１からｘ＝４Ｔまでの範囲で規定されている。つまり、ｘ軸の最大値は、ｔ軸の最大値Ｔの４倍となっている。
【０１２５】
このｘ軸とｔ軸のとるべき区間長の関係は、フレーム画像およびスライス画像に写っている撮影対象物の画像毎の圧縮の程度に基づいて決定される。つまり、撮影対象物からカメラ２００までの距離が近いものと遠いものとの距離の比によって設定される。これは、図７を用いて説明したように、スライス画像とフレーム画像との対応する画素（黒丸）の隣の画素（黒丸）までの間隔が、カメラから撮影対象物までの距離により異なっており、この間隔の違いが、カメラから撮影対象物までの距離の違いとして示されているためである。従って、図７を示して説明したように、スライス画像において隣接する２つの画素が、フレーム画像において何ピクセルだけ離れて写っているかによって、カメラから撮影対象物までの距離の違いを求めることができ、このピクセルの伸縮の累積に基づいて、上述したｘ軸とｔ軸とのとるべき区間長の対応関係を求めることができる。この累積フレーム長の最大値に基づいて、ｘ軸の最大値の値を、Ｔの何倍にするかが決定される。局所的なピクセルの伸縮の程度は、Δｘ（ｔ，ｙ）＝ｘ（ｔ，ｙ）−ｘ（ｔ−１，ｙ）によって求められる。
【０１２６】
図１０に示した動的計画法に基づくマッチングアルゴリズム（ＤＰマッチングアルゴリズム）は、局所パスの組み合わせにより各種考えることができるが、画像距離算出装置１００では、一例として次式で示されるものを用いることにする。これは局所的なピクセルの収縮、フレーム画像からスライス画像への伸縮が、１倍から４倍までを許すものとなっている。局所的伸縮が１倍から４倍までを許すので、大域的にも１倍から４倍を許すものとなっている。ＤＰマッチングの以下の式は、局所的変動が１倍から４倍までを許すものであることが表現されている。一般に、許される倍数の範囲は動的計画法における数式の中で任意に設定できる。
【０１２７】
まず、図１０に示した３次元空間の座標を（ｘ，ｙ，ｔ）で示すと、左側面のライン（フレーム画像）は、既に説明したように、ｙ′を固定し、ｆ（ｘ，ｙ′，ｔ０）、１≦ｘ≦Ｘの乱パターンを定め、この同じものを、ｙ軸に上に置いたものである。図１０に示すｒ（ｘ）を用いて、
ｆ（ｘ，ｙ′，ｔ０）＝ｒ（ｘ）と設定すると、側面の画像は、より正確には、ｒ（ｘ，ｙ），１≦ｘ≦Ｘ，１≦ｙ≦Ｙとなる。
【０１２８】
なお、ｒ（１，ｙ′）＝ｇ（１，ｙ′）という制約条件が設定されている。
【０１２９】
また、スライス画像はｇ（ｔ，ｙ）で示す。さらに、ＤＰマッチングアルゴリズムにおいて求める局所距離をｄ（ｔ，ｘ，ｙ）とする。
【０１３０】
局所距離は、ｄ（ｔ，ｘ，ｙ）＝｜ｇ（ｔ，ｙ）−ｒ（ｘ）｜で求められる。
さらに、ｙ＝ｙ′において、Ｄ（１，１，ｙ′）＝ｄ（１，１，ｙ′）と初期設定を行い、（１，１，ｙ′）を除く、全ての（ｔ，ｘ，ｙ）に対して、Ｄ（ｔ，ｘ，ｙ）＝∞として初期設定を行う。
【０１３１】
さらに、ｔ，ｚ，ｙの値は、
ｔ∈［１，Ｔ］，ｙ∈［ｍａｘ（１，ｙ′−ｔ），ｍｉｎ（ｙ′＋ｔ，Ｙ）］，
ｘ∈［ｔ，４ｔ−３］（＝［ｔ，４（ｔ−１）］）とする。
この条件に基づいて、Ｄ（ｔ，ｘ，ｙ）の値を、下記の式２を用いて求める。
【数１】
2018040789.tif 000003
・・・式２
次に、ｙ＝ｙ′において、ｗ（１，１，ｙ′）＝１と初期設定を行い、
（１，１，ｙ′）を除く、全ての（ｔ，ｘ，ｙ）に対して、ｘ（ｔ，ｘ，ｙ）＝０として初期設定を行う。この初期設定に基づいて、以下の式３を用いて、ｗ（ｔ，ｘ，ｙ）を求める。
【数２】
2018040789.tif 000004
・・・式３
上述したＤ（ｔ，ｘ，ｙ）の式２は、局所距離の非線形のマッチングによる累積の式を示している。非線形の内容は、フレーム画像の線分が、スライス画像において、ｘ軸方向に、１倍から１／４倍の範囲で縮小し、ｙ軸方向へは、ｙ′から上方向に最大Ｔ画素（ピクセル）、下方向に最大Ｔ画素（ピクセル）、時間Ｔにおいて変動を許容するものである。このｙ軸への変動の許容は、カメラ２００が撮影対象物に対して完全に平行に動いていないことを想定したものである。
【０１３２】
局所距離の最適累積値は、図１０に示した左側面のｘ＝Ｔからｘ＝４Ｔまでの範囲で求められる。また、この最適累積値に至る処理において用いられる係数の和は、全てのｘ，ｙ，ｔにおいて計算されるが、上述したｗ（ｔ，ｘ，ｙ）が、係数の和に関する漸化式である。このｗ（ｔ，ｘ，ｙ）の時間ｔの終端であるｗ（Ｔ，ｘ，ｙ）は、累積値Ｄ（Ｔ，ｘ，ｙ）の正規化のために用いられる。ここで、正規化とは、累積値に至るパスの長さの違いを正規化することを意味している。
【０１３３】
以上の計算を（ｘ，ｙ，ｔ）の３次元空間において行った（図１０に示した直方体中で終了した）後に、ＣＰＵ１０４では、以下に示す式４に基づいて、スポッティング点（Ｔ，ｘ＊Ｔ，ｙ＊Ｔ）を計算する（図２のＳ．３）。スポッティング点は、図７において説明したように、スライス画像の最後の時間Ｔの画素に対応する、フレーム画像の画素を表している。しかしながら、スライス画像の（ｔ，ｙ）＝（１，ｙ′）からｔ＝Ｔに至るマッチングの対応線（対応するラインｒ（ｘ））の終端が、フレーム画像の所定のｙ′におけるｘ軸方向のどの画素（画素列のどの画素）に一致するか、事前に分かっていない。このため、その一致点を決定する（スポッティングする）ためにスポッティング点の計算が行われることになる。スポッティング点の計算は、次の式４で示される。
【数３】
2018040789.tif 000005
・・・式４
スポッティング点の計算式（式４）における「arg」は、minにする変数を取り出す関数を示している。
【０１３４】
スポッティング点（Ｔ，ｘ＊Ｔ，ｙ＊Ｔ）が計算された後に、画像距離算出装置１００のＣＰＵ１０４では、スポッティング点に至る（ｔ，ｙ）＝（１，ｙ′）からの軌跡（trajectory）を、バックトレース処理によって求める（図２のＳ．４）。
【０１３５】
バックトレース処理とは、バックトレースの最後の点を（１，１，ｙ′）として、ｔ＝Ｔ，Ｔ−１，Ｔ−２，・・・，１と、ｔの値をＴから１ずつ低減させることによって、スポッティング点（Ｔ，ｘ＊Ｔ，ｙ＊Ｔ）から（１，１，ｙ′）までの軌跡を求める処理である。バックトレース処理は、以下の式５に基づいて行われる。
【数４】
2018040789.tif 000006
・・・式５
バックトレース処理によって、フレーム画像の所定のｙ′におけるｘ軸方向の画素列（ライン）のどの画素が、スライス画像における時間ｔの画素に対応するかを算出することができる。ここで、説明の便宜上、フレーム画像における時間Ｔの対応点（スポッティング点）を、ｘ（Ｔ，ｙ′）と記載する。このスポッティング点は、所定のｙ′によって異なった画素位置になる。
【０１３６】
さらに、ｙ′におけるフレーム画像のスポッティング点を、ｙ′を省略してｘ（１），ｘ（２），・・・，ｘ（Ｔ）と示すと、フレーム画像における時間ｔのスポッティング点の位置変化を、Δｘ（ｔ）と示すことができる。カメラ２００から撮影対象物までの時間ｔにおけるなす角Δθ（ｔ）とする。Δθ（ｔ）の単位はラジアンである。このなす角Δθ（ｔ）と、上述した時間ｔにおけるスポッティング点の位置変化Δｘ（ｔ）とを比較すると、フレーム画像におけるｘ方向のΔθｘ（ｔ）と、スポッティング点の位置変化Δｘ（ｔ）とは、次の式６の関係を有するものと判断できる。
【数５】
2018040789.tif 000007
・・・式６
つまり、Δｘ（ｔ）は、時間ｔにおける動的視差（モーションパララックス）に等しいものととらえることができる。従って、累積された動的視差は、次の式７で示すことができる。
ここで、重要なことは、スポッティング点ｘ（Ｔ）が先に求まり、その後に、バックトレース処理によって、ｘ（ｔ），ｔ＝１，・・・．Ｔ−１が求まることである。従って、上記の式６および次式の式７の関係式は事後的に成立するものであるといえる。
【数６】
2018040789.tif 000008
・・・式７
但し、ｘ（０）＝０である。ｘ（Ｔ）は、フレーム画像の所定のｙ′におけるｘ軸方向の画素列（ライン）において、時間Ｔまで累積された動的視差の値を示すことになる。また、ｘＴ／Ｔは、累積された動的視差の標準化された値に該当する。本実施の形態に係る画像距離算出装置１００では、上述した動的視差の累積を使うことによって、フレーム画像における各画素の距離を算出することが可能になる。
【０１３７】
次に、フレーム画像における各画素の距離の求め方について説明する。
【０１３８】
フレーム画像とスライス画像との間には、フレーム画像からスライス画像への非線形となる縮小（画素間距離の圧縮、画像の圧縮）が存在している。この縮小（画素間距離の圧縮）の程度を距離に変換することによって、フレーム画像の各画素（各点）において、カメラ２００から撮影対象物までの距離を算出することが可能になる。ここで、フレーム画像とスライス画像との対応関係を考える場合、２つの画像の間には、オクルージョン（遮蔽）の部分が存在している場合もある。オクルージョンとは、３次元空間において、手前にある物体が背後にある物体を隠して見えないようにする状態を意味する。つまり、移動するカメラによって撮影された撮影対象物が、手前にある物体によって、一時的に隠れてしまうことにより、フレーム画像とスライス画像との１対１の対応関係が成立しない状態を意味する。しかしながら、オクルージョンが発生する部分は一部であると共に、前後関係から各画素の距離は類似した部分となることが多い。このため、２つの画像における対応問題を考えて、画素を距離に変換するパラメータを抽出する。すなわち、フレーム画像とスライス画像との対応関係が成立すれば、フレーム画像のそれぞれの画素について、フレーム画像の画素に写っている撮影対象物からカメラ２００までの距離を求めることが可能になる。
【０１３９】
本実施の形態では、フレーム画像とスライス画像との対応関係を求めるために、２つの段階に分けて対応関係を求める。１つ目の対応関係は、複数の画素からなる「領域」の対応関係である。そして、２つ目の対応関係は、それぞれの画素毎（ピクセル毎）の対応関係である。２つの段階に分ける理由として、１つ目については、シーンのカメラからの距離は領域単位でほぼ類似していることと、領域の対応を行う方が最初から画素単位の対応を行うより容易であることである。２つ目については、１つ目の結果をもとに、より詳細な対応を行うことができるためである。それぞれの段階で画素について距離が求められる。１つ目の段階では、領域の画素は全て同じ距離となる。最終的には２つの段階の結果を統合する。
【０１４０】
本実施の形態に係る画像距離算出装置１００で用いたライン対画像のＤＰマッチング処理は、原理的に画素（ピクセル）毎の対応を求めるものである。しかしながら、フレーム画像とスライス画像との関係には、オクルージョンの問題があり、さらに、ライン対画像のＤＰマッチング処理には、非線形性の存在があることから、画素（ピクセル）の対応を、完全かつ正確に行うことが難しいという問題がある。そのため、領域の対応関係によって距離の値を領域単位で決定すること（領域分割処理）を、１つ目の段階の最初の処理として考える。既存の領域分割手法のうち最も有力な手法の一つとして、mean-shift法（中間値シフト法）と呼ばれる方法が知られている。mean-shift法は、広く知られた領域分割手法であって、Open CV（Open Source Computer Vision Library）と呼ばれる、広く公開されたオープンソースのコンピュータビジョン向けのライブラリによって提供されている。このため、誰でもmean-shift法を利用することができる。
【０１４１】
画像距離算出装置１００のＣＰＵ１０４は、フレーム画像とスライス画像とに、mean-shift法（領域分割処理）を適用する（図２のＳ．５）。このとき、ＣＰＵ１０４では、共通したパラメータ（共通した分割基準）を用いて、領域分割処理を行う。適用するパラメータが異なる場合には、対応する分割領域を求めることが難しくなるためである。
【０１４２】
図１１（ａ）（ｂ）は、フレーム画像とスライス画像とに、mean-shift法を適用した後の画像を示している。図１１（ａ）（ｂ）に示したフレーム画像およびスライス画像と、図５（ａ）（ｂ）に示したフレーム画像およびスライス画像とを比較すれば明らかなように、図１１（ａ）（ｂ）に示したmean-shift法が適用された（領域分割処理後の）フレーム画像およびスライス画像では、同じ領域と判断された部分が共通した色で塗りつぶされている。この色の違いによって、同じ領域および異なる領域の判断を行うことが可能になる。
【０１４３】
mean-shift法の適用により、同じ領域と判断される部分は、ほぼ同じ距離（カメラ２００から撮影対象物までの距離）を有するものであると考えることができる。また、mean-shift法が適用されたフレーム画像とスライス画像とを比較すると、２つの画像には非線形性が含まれているが、分割された領域の作られ方は、類似していると考えることができる。従って、画像距離算出装置１００のＣＰＵ１０４では、mean-shift法によって領域分割されたフレーム画像とスライス画像とに基づいて、ライン対画像のＤＰマッチング処理およびバックトレー処理による画素対応の結果を用いて、２つの画像の領域対応を求める。
【０１４４】
図１２は、スライス画像とフレーム画像との領域対応を説明するための模式図を示したものである。ライン対画像のＤＰマッチング処理およびバックトレース処理により、スライス画像の各画素と、フレーム画像の各画素との対応関係が求められている。従って、ＣＰＵ１０４では、図１２に示すように、mean-shift法により分割されたスライス画像の領域に位置する画素（ピクセル）と、同じくmean-shift法により分割されたフレーム画像の領域に位置する画素（ピクセル）とを比較する。そして、ＣＰＵ１０４は、対応する画素（ピクセル）の数が最も多い領域が、互いに対応する領域（対応領域）であると判断する（図２のＳ．６：対応領域決定処理）。
【０１４５】
つまり、図１３（ａ）に模式的に示す例のように、スライス画像の領域Ａ１対応するフレーム画像の領域を求める場合に、ＣＰＵ１０４は、スライス画像の領域Ａ１に存在する４つの画素（黒丸）に対応するフレーム画像の画素（黒丸）を求めて、対応する画素（黒丸）が最も多く含まれるフレーム画像の領域を求める。図１３（ａ）では、領域Ａ１の画素（黒丸）に対応する画素が最も多く含まれるフレーム画像の領域は領域Ａ２であるため、ＣＰＵ１０４は、スライス画像の領域（分割領域）Ａ１に対応するフレーム画像の対応領域は、領域（分割領域）Ａ２であると判断する。同様にして、ＣＰＵ１０４は、スライス画像の領域Ｂ１の画素（黒丸）に対応するフレーム画像の画素（黒丸）が最も多く含まれる領域Ｂ２を、対応する領域（対応領域）と判断し、スライス画像の領域Ｃ１の画素（黒丸）に対応するフレーム画像の画素（黒丸）が最も多く含まれる領域Ｃ２を、対応する領域（対応領域）と判断する。
【０１４６】
次に、ＣＰＵ１０４は、フレーム画像の各領域の各画素に付加される距離の値の算出を行う。この距離の算出には、前述したように、２つの段階に分けて計算が行われる。まず１つ目は、mean-shift法によって領域分割された領域毎の距離の値の算出である（図２のＳ．７）。この距離の値をグローバル距離（領域外距離）と称する。２つ目は、各領域内の画素（ピクセル）毎の距離の値の算出である（図２のＳ．８）。この距離の値をローカル距離（領域内距離）と称する。
【０１４７】
まず、グローバル距離の算出を行う。mean-shift法によって分割されたフレーム画像の領域の大きさと、スライス画像の領域の大きさとの違いは、カメラ２００から撮影対象物までの距離に関係する。カメラ２００から撮影対象物までの距離が遠い場合には、フレーム画像の領域の大きさに比べて、スライス画像の領域はある程度の大きさを維持しており、領域の大きさを基準とした圧縮率は小さい傾向がある。一方で、カメラ２００から撮影対象物までの距離が近い場合には、フレーム画像の領域の大きさに比べて、スライス画像の領域の大きさが比較的小さくなり、領域の大きさを基準とした圧縮率が大きくなる傾向がある。従って、スライス画像の対応する領域の横軸の長さの平均値と、フレーム画像の対応する領域の横軸の長さの平均値との比率に基づいて、対応する領域の圧縮率を求める。なお、領域の横軸の長さの平均値ではなく、最頻度の長さを求めて比率を算出することにより、圧縮率を求めることも可能である。
【０１４８】
例えば、図１２に示すように、フレーム画像の１つの領域（領域Ａ２）内の横線分を観察して、領域内の線分の終点に近いところに、スライス画像の時間ｔ２に対応するｘ（ｔ２）が存在し、始点に近いところに時間ｔ１に対応するｘ（ｔ１）が存在する場合には、ｘ（ｔ２）−ｘ（ｔ１）が、その区間における累積された動的視差の差分を示すことになる。一方で、スライス画像の対応する領域（領域Ａ１）の対応する線分の長さは、ｔ２−ｔ１である。
【０１４９】
スライス画像の対応領域の横軸方向の平均長をｐとし、フレーム画像の対応する領域の横軸方向の平均長をｑとする。このようにｐとｑとを設定すると、スライス画像に対するフレーム画像の拡大率は、ｑ／ｐで示すことができる。また、本実施の形態に係る画像距離算出装置１００のライン対画像のＤＰマッチング処理では、図１０に示したように、フレーム画像のｘ軸の値が、時間ｔの４倍の値で対応付けられている（ｘ＝４Ｔ）。このため、ｑ／ｐは、１≦ｑ／ｐ≦４となる。現実の世界におけるカメラ２００から撮影対象物までの距離と、ｑ／ｐの値との対応関係を示すデータを、予め用意することができれば、ｑ／ｐの値（比率ｑ／ｐの値）から、フレーム画像における分割領域（対応領域）の距離を求めることができる。このｑ／ｐの値と、カメラ２００から撮影対象物までの現実の距離との対応関係を示すデータの一例を、図１３（ｂ）に示す。
【０１５０】
また，領域ｒにおいて定まるｐおよびｑの使い方として，ｐに対するｑの割合を示すｑ／ｐを比率値として求めるだけでなく、ｑに対するｐの割合を示すαｒ＝ｐ／ｑを比率値として求めて使用してもよい。図１３（ｂ）においては、横軸をαｒ（＝ｐ／ｑ）で示し、縦軸を距離ｚで示している。
【０１５１】
図１４は、ｐ，ｑと距離ｚとの関係式を用いて、分割領域（対応領域）毎のグローバル距離を一例として示した画像である。図１４に示す画像では、mean-shift法によって分割された領域を基準として、グローバル距離が近いものほど、明るい色で表示されており、グローバル距離が遠いものほど、暗い色で示されている。従って、ユーザは、分割領域の色彩に対応するグローバル距離を確認することによって、カメラ２００から撮影対象物までの距離を、分割領域（対応領域）毎に判断すること可能になる。
【０１５２】
次に、ローカル距離の算出について説明する。グローバル距離の算出によって、分割領域（対応領域）毎の距離は算出することができる。しかしながら、分割領域（対応領域）内の画素毎の詳細な距離を求めるためには、さらに処理を行う必要がある。このように、分割領域（対応領域）内の画素毎の詳細な距離を、分割領域（対応領域）内における相対的な距離として求めるために、ＣＰＵ１０４では、ローカル距離の算出処理を行う。
【０１５３】
ここで、フレーム画像とスライス画像との対応する分割領域の線分をそれぞれ考える。それぞれの分割領域の線分では、線分の始点と終点とが既に定まっている。これは、mean-shift法によって領域分割されたスライス画像の分割領域と、フレーム画像の対応領域（分割領域）との対応関係が既に明確になっているため、それぞれの分割領域の対応する縁を明確に求めることができるためである。従って、対応する分割領域の線分の始点から終点まで（一端の縁から他端の縁まで）のそれぞれの画素の対応関係（対応する画素）を、従来より用いられている両端固定のＤＰマッチング処理およびバックトレース処理によって求めることができる。
【０１５４】
例えば、スライス画像の対応する分割領域の線分を、ａ（ｉ）、但しｉ＝１，２，・・・Ｉとし、フレーム画像の対応する対応領域（分割領域）の線分を、ｂ（ｊ）、但しｊ＝１，２，・・・Ｊとする。局所距離ｄ（ｉ，ｊ）をｄ（ｉ，ｊ）＝｜ａ（ｉ）−ｂ（ｊ）｜とすると、ＤＰマッチング処理を行うことによって、次の式８により、Ｄ（Ｉ，Ｊ）が求められる。
【数７】
2018040789.tif 000009
・・・式８
この式８に基づいてＤ（Ｉ，Ｊ）を求めた後に、（Ｉ，Ｊ）から（１，１）まで、バックトレース処理を行うことによって、スライス画像の分割領域とフレーム画像の対応領域とにおける、２つの線分の要素の対応関係を求めることができる。
【０１５５】
この場合、ｊ軸の対応系列を、ａ＊（１），ａ＊（２），ａ＊（３），・・・ａ＊（Ｉ）とするとき、ａ＊（ｊ）−ａ＊（ｊ−１）が局所的な動的視差（motion parallax）を示すものになる。この局所的な動的視差は、画素単位（ピクセル単位）の動的視差であって、この局所的な動的視差によって、対応する領域内における画素単位（ピクセル単位）の距離を求めることが可能となる。つまり、図７において説明したように、動的視差の違いに伴って、フレーム画像の対応領域における隣り合う画素の間隔が広くなったり狭くなったりする。
【０１５６】
具体的には、隣り合う画素の間隔が狭い場合には、カメラ２００から撮影対象物までの距離が遠いことを示しており、隣り合う画素の間隔が広い場合には、カメラ２００から撮影対象物までの距離が近いことを示している。このため、フレーム画像の対応領域（分割領域）における隣り合う画素の間隔（画素間距離）によって、対応領域（分割領域）における相対的な距離の違いを判断することが可能になる。
【０１５７】
以上の説明により求められたグローバル距離とローカル距離とに基づいて、フレーム画像の画素毎に、カメラ２００から対応する画素に写っている撮影対象物までの距離を求めることができる。具体的に、ＣＰＵ１０４では、対応する画素が含まれる対応領域（分割領域）のグローバル距離に対して、当該対応領域（分割領域）で求められたローカル距離を加算することによって、フレーム画像の画素毎に、詳細な距離を算出する（図２のＳ．９）。
【０１５８】
また、実際にフレーム画像の画素毎に、カメラから撮影対象物までの距離を算出する場合には、上述したオクルージョン（遮蔽）に対する対応を行うことが好ましい。本実施の形態では、時間ｔが１から１７５までの範囲で撮影された映像に基づいて、スライス画像が生成されている。つまり、スライス画像は、時間ｔが１から１７５までの１７５枚のフレーム画像に基づいて生成されていることになる。このため、フレーム画像に写っている撮影対象物が、スライス画像では写っていなかったり、反対にフレーム画像に写っていない撮影対象物が、スライス画像に写っている場合が生じ得る。このようなオクルージョンの発生は、スライス画像を生成する動画映像の時間が長くなればなるほど、頻繁に発生するおそれがある。オクルージョンが発生すると、フレーム画像における対応領域と、スライス画像における分割領域との対応関係の精度が劣化する可能性がある。
【０１５９】
図１５（ａ）〜（ｈ）は、フレーム画像においてｘ軸上の座標ｘＳ０（Ｓ＝１，２，３，・・・）を順次決定して、複数枚のスライス画像を用いて順番にフレーム画像の画素毎の距離データ（スライス画像に対応するフレーム画像の画素）を算出した場合を示した図である。動的計画法によるマッチング処理によって、最初に計算されたフレーム画像のスポッティング点をｘ（Ｔ，ｙ）（このスポッティング点ｘ（Ｔ，ｙ）は、スライス画像の画素（Ｔ，ｙ）に対応する）とする。このスポッティング点ｘ（Ｔ，ｙ）のｙ軸の点列（ｘ（Ｔ，１），ｘ（Ｔ，２），ｘ（Ｔ，３），・・・，ｘ（Ｔ，ｙ），・・・，ｘ（Ｔ，Ｙ））を、メディアンフィルタ（median filter）を用いて平滑化する。この後、次のスライス画像における区間［１，Ｔ］と、このスライス画像の区間に対応する次のフレーム画像の区間［ｘ０，ｘ０＋ｘ（Ｔ，ｙ）］との間で、固定区間における動的計画法のマッチング処理を行い、区間内におけるフレーム画像の対応点を計算する。この処理を繰り返すことによって、複数枚のスライス画像を用いて、順番にフレーム画像の対応する画素毎の距離データを算出する。なお、メディアンフィルタで平滑化した後に求められるフレーム画像のスポッティング点の最小値が、次の処理におけるフレーム画像の区間の開始値ｘ０となる。図１５（ａ）〜（ｈ）では、繰り返し処理が行われた回数をＳとして、フレーム画像におけるｘ軸上の座標ｘＳ０（Ｓ＝１，２，３，・・・）が示されている。図１５（ａ）〜（ｈ）には、スライス画像に基づいて、距離の算出が行われたフレーム画像の範囲が、少しずつ広がる状態が示される。
【０１６０】
また、図１６（ａ）は、複数枚の画像に基づいてモザイキング処理が行われた画像が示されており、図１６（ｂ）は、図１６（ａ）に示した画像に基づいて、領域毎にグローバル距離が算出された状態の画像に、フレーム画像の各ピクセルがもつＲ，Ｇ，Ｂの値を付加し、かつ、このデータを正面からではなく、斜め方向の視点を基準として示してある。図１６（ｂ）に示すように、３次元の距離情報が、領域毎に抽出されている。
【０１６１】
また、カメラの移動に伴ってフレーム画像の横軸（ｘ軸）方向の長さが長くなってしまうおそれがある。このため、フレーム画像においても、時間が一定時間経過した位置のフレーム画像を新たなフレーム画像として用いて、新たなフレーム画像に基づいてスライス画像を求めて画素毎の距離を算出する方法を用いることができる。このように、複数のフレーム画像に基づいてそれぞれのスライス画像を再生し、画素毎の距離を算出することによって、より広い撮影範囲において、カメラ２００から撮影対象物までの距離を算出することが可能になる。このように複数のフレーム画像に基づいて画素毎の距離が算出される場合には、それぞれのフレーム画像において距離が算出された画素の範囲を考慮しつつ、モザイキングする必要がある。
【０１６２】
しかし、モザイキングしたい画像の各画素は、ＲＧＢ情報（Ｒの値と、Ｇの値と、Ｂの値）と距離情報（距離値）との計４つの要素値を持つので、通常のモザイキングの方法であるスティッチング処理のアルゴリズムを使うことができない。そこで、以下では新規の方法を提案する。
【０１６３】
ここで、共通する画像部分が存在する異なる時間に撮影されたフレーム画像を、オーバーラッピング処理を用いて貼り合わせる場合を考える。共通する画像部分に対してオーバーラッピング処理を施すことによって、２枚の画像から１枚の画像を生成する方法として、スティッチングアルゴリズムが一般的に知られている。スティッチングアルゴリズムは、広く知られた画像の貼り合わせ手法であって、Open CV（Open Source Computer Vision Library）と呼ばれる、広く公開されたオープンソースのコンピュータビジョン向けライブラリによって提供されている。このため、誰でもスティッチングアルゴリズムを利用することができる。スティッチングアルゴリズムでは、貼り合わせ対象となる画像の色情報（以下、ＲＧＢ情報と称する）を利用して、貼り合わせ処理を行う。
【０１６４】
既に説明したように、スライス画像とのマッチング処理が行われたフレーム画像では、対応する画素に距離情報が付加されている。このため、フレーム画像は、全ての画素にＲＧＢ情報が付加されるだけでなく、マッチング対象となった画素に距離情報が付加されるという特徴がある。
【０１６５】
しかしながら、上述したスティッチングアルゴリズムでは、ＲＧＢ情報のみに基づいて画像の貼り合わせ処理を行う。このため、２枚のフレーム画像をスティッチングアルゴリズムを用いて単純に貼り合わせると、距離情報が全く考慮されない状態で画像の貼り合わせ処理が行われてしまう。従って、貼り合わされたフレーム画像には、貼り合わされる前のフレーム画像の距離情報が十分に反映（あるいは維持）されていると判断することができなかった。
【０１６６】
このため、ＲＧＢ情報と距離情報とが記録された２枚のフレーム画像に対して、スティッチングアルゴリズムを適用することにより、ＲＧＢ情報だけでなく距離情報の対応関係が十分に反映（あるいは維持）された１枚のパノラマ画像を生成する、貼り合わせ処理について説明する。
【０１６７】
なお、フレーム画像の貼り合わせ処理を行う場合には、２つの場合が考えられる。１つ目は、ＲＧＢ情報と分割された領域の距離情報とがそれぞれの画素に付加されたフレーム画像を貼り合わせる場合である。例えば、画像距離算出装置１００において、スライス画像の領域とフレーム画像の領域との対応関係を求めて、領域毎にグローバル距離を算出した直後のフレーム画像を貼り合わせる場合等が該当する。この場合、領域内の画素毎には、ローカル距離が算出されていない。このため、各画素の距離情報は、同じ領域毎に同じ距離値を示すと判断することができる。
【０１６８】
２つめは、ＲＧＢ情報と詳細な距離情報とが全ての画素に付加されたフレーム画像を貼り合わせる場合である。例えば、グローバル距離だけでなく、領域内のローカル距離を画素毎に算出し、グローバル距離にローカル距離を加算することによって、画素毎に詳細な距離値が算出されたフレーム画像を貼り合わせる場合等が該当する。この場合、フレーム画像の全ての画素には、当該画素に写っている撮影対象物からカメラ２００までの詳細な距離（グローバル距離＋ローカル距離）が付加されている。
【０１６９】
上述した２つの場合に分けて、距離情報を考慮した貼り合わせ処理について説明する。
【０１７０】
（１）ＲＧＢ情報と分割された領域の距離情報とがそれぞれの画素に付加されたフレーム画像を貼り合わせる場合
図１７は、ＲＧＢ情報と分割された領域の距離情報とがそれぞれの画素に付加されたフレーム画像を貼り合わせる処理（第１の貼り合わせ処理）を示したフローチャートである。画像距離算出装置１００のＣＰＵ１０４は、貼り合わせ処理が行われる２枚のフレーム画像の全ての画素のＲＧＢ情報を読み取る（図１７のＳ．１１）。そして、ＣＰＵ１０４は、読み取られたＲＧＢ情報を、Ｒ軸、Ｇ軸、Ｂ軸からなるＲＧＢ空間に割り当てる処理を行う（図１７のＳ．１２）。
【０１７１】
図１８は、２枚のフレーム画像の全ての画素のＲＧＢ情報を、Ｒ軸、Ｇ軸、Ｂ軸からなるＲＧＢ空間に割り当てた状態を示した図である。図１８に示すように、フレーム画像の全ての画素のＲＧＢ情報を、ＲＧＢ空間に割り当てても、全く使用されていないＲＧＢ空間の座標が存在する。例えば、ＲＧＢ空間の外側周辺の空間位置のＲＧＢ情報は、２枚のフレーム画像において全く使用されていない。フレーム画像において使用されていないＲ値、Ｂ値、Ｇ値を示すＲＧＢ空間の点をコードと称する。
【０１７２】
フレーム画像の画素は、既に説明したように、領域内の画素毎に、同じ距離情報（距離値）を有していると考えられる。このため、ＣＰＵ１０４は、同じ領域毎にいくつか（例えば、３個から５個程度）の画素を選択し（図１７のＳ．１３）、選択された画素の距離情報（選択された画素が存在する領域のグローバル距離）を抽出する（図１７のＳ．１４、画素距離値抽出ステップ、画素距離値抽出機能）。
【０１７３】
次に、ＣＰＵ１０４は、コードに該当する複数のＲＧＢ情報（Ｒ値、Ｂ値、Ｇ値：ＲＧＢの値）を抽出する（図１７のＳ．１５、コード検出ステップ、コード検出機能）。そして、ＣＰＵ１０４は、フレーム画像の領域毎に抽出された距離情報（距離値）の値（図１７のＳ．１４）に対して、抽出されたコードのＲＧＢ情報の値（コードのＲＧＢの値）を、重複しないように割り当てる（図１７のＳ．１６、コードＲＧＢ値割当ステップ、コードＲＧＢ値割当機能）。
【０１７４】
そして、ＣＰＵ１０４は、コードのＲＧＢの値が割り当てられた距離値と同じ距離値を備える画素を２枚のフレーム画像の画素から求めて、求められた画素のＲＧＢの値を、当該距離値に応じて割り当てられたコードのＲＧＢの値に入れ替える（図１７のＳ．１７、ＲＧＢ値入替ステップ、ＲＧＢ値入替機能）。
【０１７５】
ＣＰＵ１０４は、入れ替えられた後のＲＧＢの値を、当該ＲＧＢの値への入れ替えが行われた画素の距離値に紐付けて、ＲＡＭ１０３あるいは記録部１０１に記録させる（図１７のＳ．１８、画素情報記録ステップ、画素情報記録機能）。
【０１７６】
図１９は、一部の画素のＲＧＢの値が、コードのＲＧＢの値に入れ替えられた一のフレーム画像を示している。また、図２０は、一部の画素のＲＧＢの値が、コードのＲＧＢの値に入れ替えられた他のフレーム画像を示している。入れ替えられた後のＲＧＢの値は、元のフレーム画像において全く用いられていないＲＧＢの値であるため、同じ領域に存在する他の画素の色（ＲＧＢの値）と、明らかに異なった色になる。
【０１７７】
図１９および図２０に示すように、合成しようとする２枚のフレーム画像のそれぞれに対して、同じ領域のいくつかの画素のＲＧＢ情報を、コードのＲＧＢの値に入れ替える。このように、ＲＧＢの値を入れ替えることによって、コードのＲＧＢの値に対して距離情報（距離値）が紐付けされたＲＧＢ画像（フレーム画像）が作成される。
【０１７８】
そして、ＣＰＵ１０４は、作成された２枚のＲＧＢ画像（フレーム画像）を用いて、スティッチングアルゴリズムを適用することにより、２枚のＲＧＢ画像の貼り合わせ処理を行う（図１７のＳ．１９、貼り合わせ画像生成ステップ、貼り合わせ画像生成機能）。スティッチングアルゴリズムにより貼り合わされた画像を、説明の便宜上、貼り合わせ画像と称する。
【０１７９】
貼り合わせ処理によって、２枚のＲＧＢ画像から、１枚の貼り合わせ画像が生成される。貼り合わせ画像には、コードのＲＧＢの値に対して紐付けられた距離情報を備える画素が存在する。ここで、紐付けされた画素のＲＧＢの値は、貼り合わせ処理によって少しだけ値が変化する傾向がある。しかしながら、コードのＲＧＢの値は、フレーム画像に用いられていないＲＧＢ空間の値であり、さらに、距離値毎に重複しないようにして割り当てられている。このため、貼り合わせ処理によってＲＧＢの値が少し変化していても、貼り合わせ画像のＲＧＢの値から、該当する画素を推測して抽出することは容易である。ＣＰＵ１０４は、距離情報の割り当てが行われた複数のコード（コード群）のＲＧＢの値の中から、貼り合わせ画像に存在するＲＧＢの値（色の値）と一致あるいは近似するＲＧＢの値の画素を検出する（図１７のＳ．２０、ＲＧＢ値検出ステップ、ＲＧＢ値検出機能）。
【０１８０】
そして、ＣＰＵ１０４は、検出された画素に対し、ＲＡＭ１０３あるいは記録部１０１に記録されるＲＧＢの値に紐付けられた距離値を、当該画素の距離情報として付加する（図１７のＳ．２１、距離情報付加ステップ、距離情報付加機能）。
【０１８１】
このようにして、距離情報が付加される画素のＲＧＢの値を、フレーム画像において全く使用されていないＲＧＢの値に入れ替えた上で、スティッチングアルゴリズムによる貼り合わせ処理を行う。この処理によって、ＲＧＢ情報（ＲＧＢの値）だけでなく、距離情報（距離値）を十分に反映（あるいは維持）させた状態で、２枚のフレーム画像の貼り合わせ処理を行うことが可能になる。
【０１８２】
なお、貼り合わせ画像において距離情報が付加された画素の色情報（ＲＧＢ情報）は、スティッチングアルゴリズムを適用する前のフレーム画像で使用されていなかったＲＧＢの色情報である。従って、周囲の画素と明らかに異なった色（ＲＧＢの値）で表示されることになる。このため、ＣＰＵ１０４は、距離情報が付加された画素のＲＧＢの値を、該当する画素の近傍の画素（例えば、周囲の４個の画素、あるいは８個の画像）のＲＧＢの値の平均値に置き換える処理を行う（図１７のＳ．２２、ＲＧＢ値変更ステップ、ＲＧＢ値変更機能）。このように、距離情報が付加された画素のＲＧＢの値を近傍の画素のＲＧＢの値の平均に置き換えることによって、該当する画素の色情報（ＲＧＢの値）と周囲の色との間で違和感が生じなくなる。
【０１８３】
貼り合わせ画像において、コードのＲＧＢの値が割り当てられた画素のＲＧＢの値を、近傍の画素のＲＧＢ値の平均値に置き換えた後に、改めてmean-shift法を、貼り合わせ画像に対して適用する。mean-shift法の適用によって、ＲＧＢ情報に基づいて、フレーム画像の分割領域を求めることが可能になる。図２１は、貼り合わせ画像に対してmean-shift法を適用することによって領域分割が行われたスライス画像を、一例として示した図である。さらに、その領域内に存在する画素のうち、距離情報が付加されている画素を用いて距離の平均値を求めることによって、領域毎の距離（グローバル距離）を求めることが可能になる。
【０１８４】
（２）ＲＧＢ情報と詳細な距離情報とが全ての画素に付加されたフレーム画像を貼り合わせる場合
図２２は、ＲＧＢ情報と距離情報とがそれぞれの画素に付加されたフレーム画像を貼り合わせる処理（第２の貼り合わせ処理）の内容を示したフローチャートである。まず、ＣＰＵ１０４は、上述した「（１）ＲＧＢ情報と分割された領域の距離情報とがそれぞれの画素に付加されたフレーム画像を貼り合わせる場合」と同様に、貼り合わせ処理が行われる２枚のフレーム画像の全ての画素のＲＧＢ情報を読み取る（図２２のＳ．３１）。そして、ＣＰＵ１０４は、読み取られたＲＧＢ情報を、Ｒ軸、Ｇ軸、Ｂ軸からなるＲＧＢ空間に割り当てる処理を行う（図２２のＳ．３２）。ＲＧＢ空間にＲＧＢ情報の割り当てを行っても、ＲＧＢ空間において全く使用されていないＲＧＢ空間の座標が存在する。フレーム画像において使用されていないＲ値、Ｂ値、Ｇ値を示すＲＧＢ空間の点を、既に説明したように、コードと称する。
【０１８５】
ここで、貼り合わせを行うフレーム画像には、全ての画素にＲＧＢ情報（ＲＧＢの値）と距離情報（距離値）とが付加されている。この距離情報は、領域の距離を示すものではない。このため、上述した（１）の方法のように、同じ距離情報の画素をいくつか選択する手法を用いることができない。
【０１８６】
このため、ＣＰＵ１０４は、貼り合わせ対象となる２枚のフレーム画像の画素のうち、一定割合の画素、例えば、全体の５％（Ｎ＝２０とした場合に、１／Ｎ＝５％。但し、Ｎは正数）の画素をランダムに選択し（図２２のＳ．３３）、選択された画素の距離情報（距離値）を抽出する（図２２のＳ．３４、画素距離値抽出ステップ、画素距離値抽出機能）。
【０１８７】
次に、ＣＰＵ１０４は、コードに該当する複数のＲＧＢ情報（Ｒ値、Ｂ値、Ｇ値：ＲＧＢの値）を抽出する（図２２のＳ．３５、コード検出ステップ、コード検出機能）。そして、ＣＰＵ１０４は、抽出された画素毎の距離情報（距離値）の値に対して、抽出されたコードのＲＧＢ情報の値（コードのＲＧＢの値）を、重複しないように割り当てる（図２２のＳ．３６、コードＲＧＢ値割当ステップ、コードＲＧＢ値割当機能）。
【０１８８】
そして、ＣＰＵ１０４は、コードのＲＧＢの値が割り当てられた距離値と同じ距離値を備える画素を２枚のフレーム画像の画素から求めて、求められた画素のＲＧＢの値を、当該距離値に応じて割り当てられたコードのＲＧＢの値に入れ替える（図２２のＳ．３７、ＲＧＢ値入替ステップ、ＲＧＢ値入替機能）。このように、ＲＧＢの値を入れ替えることによって、コードのＲＧＢの値に対して距離情報が紐付けされたＲＧＢ画像（フレーム画像）が作成される。
【０１８９】
ＣＰＵ１０４は、入れ替えられた後のＲＧＢの値を、当該ＲＧＢの値への入れ替えが行われた画素の距離値に紐付けて、ＲＡＭ１０３あるいは記録部１０１に記録させる（図２２のＳ．３８、画素情報記録ステップ、画素情報記録機能）。
【０１９０】
そして、ＣＰＵ１０４は、５％の画素の色情報（ＲＧＢの値）が入れ替えられた２枚のＲＧＢ画像（フレーム画像）に対して、スティッチングアルゴリズムを適用することにより、２枚のＲＧＢ画像の貼り合わせ処理を行う（図２２のＳ．３９、貼り合わせ画像生成ステップ、貼り合わせ画像生成機能）。スティッチングアルゴリズムにより貼り合わされた画像を、既に説明したように、貼り合わせ画像と称する。
【０１９１】
貼り合わせ処理によって、２枚のＲＧＢ画像から、１枚の貼り合わせ画像が生成される。貼り合わせ画像には、コードのＲＧＢの値に紐付けされた距離情報を備える画素が、全体の画素数の５％だけ存在する。紐付けされた画素のＲＧＢの値は、上述したように、貼り合わせ処理によって少しだけ値が変化する傾向がある。ＣＰＵ１０４は、距離情報の割り当てが行われた複数のコード（コード群）のＲＧＢの値の中から、貼り合わせ画像に存在するＲＧＢの値（色の値）と一致あるいは近似するＲＧＢの値の画素を検出する（図２２のＳ．４０、ＲＧＢ値検出ステップ、ＲＧＢ値検出機能）。
【０１９２】
そして、ＣＰＵ１０４は、検出された画素に対し、ＲＡＭ１０３あるいは記録部１０１に記録されるＲＧＢの値に紐付けられた距離値を、当該画素の距離情報として付加する（図２２のＳ．４１、距離情報付加ステップ、距離情報付加機能）。
【０１９３】
また、貼り合わせ画像において距離情報が付加された画素の色情報（ＲＧＢ情報）は、周囲の画素と明らかに異なった色（ＲＧＢの値）で表示されている。このため、ＣＰＵ１０４は、距離情報が付加された画素のＲＧＢの値を、該当する画素の近傍の画素（例えば、周囲の４個の画素、あるいは８個の画像）のＲＧＢの値の平均値に置き換える処理を行う（図２２のＳ．４２、修正貼り合わせ画像生成ステップ、修正貼り合わせ画像生成機能）。このように、距離情報が付加された画素のＲＧＢの値を近傍の画素のＲＧＢの値の平均に置き換えることによって、該当する画素の色情報（ＲＧＢの値）と周囲の色との間で違和感が生じなくなる。このように、近傍の画素のＲＧＢの値の平均によって、ＲＧＢの値の修正が行われた貼り合わせ画像を、修正貼り合わせ画像と称する。
【０１９４】
このようにして、ランダムに選択された一部（全体の画素数の５％）の画素のＲＧＢの値を、フレーム画像において全く使用されていないＲＧＢの値に入れ替えた上で、スティッチングアルゴリズムによる貼り合わせ処理を行う。この処理によって、ＲＧＢ情報だけでなく、距離情報を反映（あるいは維持）させた状態で、２枚のフレーム画像の貼り合わせ処理を行うことが可能になる。
【０１９５】
但し、修正貼り合わせ画像の全体の画素数の５％の画素に関しては、ＲＧＢ情報と距離情報とが付加された状態となるが、残りの９５％の画素に関しては、ＲＧＢ情報だけが付加された画素であるため、全ての画素に対して距離情報が十分に反映（あるいは維持）されるものではない。
【０１９６】
ＣＰＵ１０４は、ＲＧＢの値の置き換え処理（図２２のＳ．４２）を行った後に、修正貼り合わせ画像を、ＲＡＭ１０３あるいは記録部１０１に記録させる（図２２のＳ．４３）。そして、ＣＰＵ１０４は、全体の画素数の５％の画素をランダムに選択する処理（Ｓ．３３）によって、２枚のフレーム画像の全ての画素が選択されたか否かを判断する（図２２のＳ．４４）。全ての画素が選択されていない場合（図２２のＳ．４４においてＮｏの場合）、ＣＰＵ１０４は、全ての画素の中から未だ選択されていない画素を、Ｓ．３３における画素の選択対象に設定して（図２２のＳ．４５）、処理をＳ．３３へ移行させる。このように、全ての画素が選択されていない場合には、未だ選択されていない画素の中から、フレーム画像の全体の画素数の５％の画素をランダムに選択し（図２２のＳ．３３）、上述した修正貼り合わせ画像の生成処理（図２２のＳ．３４〜Ｓ．４４）を繰り返し行う。
【０１９７】
全ての画素が選択された場合（図２２のＳ．４４においてＹｅｓの場合）、ＣＰＵ１０４は、ＲＡＭ１０３あるいは記録部１０１に記録された全ての修正貼り合わせ画像（全体の画素数の５％だけを選択した場合には、２０枚の修正貼り合わせ画像）を読み出す（図２２のＳ．４６）。読み出された２０枚の修正貼り合わせ画像のそれぞれには、他の修正貼り合わせ画像の画素と重複しないようにして、距離情報が付加されている。また、それぞれの修正貼り合わせ画像には、１枚の修正貼り合わせ画像の全ての画素数の５％の画素に、距離情報が付加されている。このため、ＣＰＵ１０４は、２０枚の修正貼り合わせ画像を重ね合わせることによって、重複することなく全ての画素の距離情報を求める（図２２のＳ．４７）。そして、ＣＰＵ１０４は、全ての画素の距離情報を、１枚の修正貼り合わせ画像に付加させることによって、全ての画素にＲＧＢ情報と距離情報とが付加された修正貼り合わせ画像を生成する（図２２のＳ．４８、距離付加貼り合わせ画像生成ステップ、距離付加貼り合わせ画像生成機能）。
【０１９８】
以上、説明したように、コードのＲＧＢ情報を利用して、距離情報が付加されているＲＧＢの値を、コードのＲＧＢの値に置き換えて、スティッチングアルゴリズムを適用することによって、ＲＧＢ情報と距離情報と考慮したうえで、複数のフレーム画像を貼り合わせることができる。このため、カメラによって撮影された広範囲の動画映像に基づいて、１枚のパノラマ画像を生成することが可能となる。
【０１９９】
例えば、移動しながら広範囲の風景等が撮影された動画映像に基づいて、撮影対象物までの距離を求める場合、動画映像の撮影時間に応じて、ＲＧＢ情報と距離情報とが記録されたフレーム画像を、複数枚抽出することが可能である。抽出された複数枚のフレーム画像では、時間的に前後するフレーム画像間で、共通する画像部分が含まれる。このため、共通する画像部分を基準として、フレーム画像を貼り合わせることにより、上述したように、撮影された広範囲の画像を１枚のパノラマ画像とすることができる。そして、このパノラマ画像を用いることにより、パノラマ画像に写っている撮影対象物までの距離を広範囲に求めることが可能になる。
【０２００】
以上説明したように、本実施の形態に係る画像距離算出装置１００のＣＰＵ１０４では、移動する１台のカメラにより撮影された動画映像に基づいて、撮影された動画映像の特定の時間におけるフレーム画像を求める。さらに、フレーム画像の横軸（ｘ軸）上のいずれかのｘ座標の位置を基準として、フレーム画像の縦軸（ｙ軸）と撮影された動画映像の時間軸（ｔ軸）とによってスライス画像を生成する。そして、スライス画像の時間ｔにおける画素と、フレーム画像の所定のｘ座標における縦軸（ｙ軸）上の画素列（ライン）の画素との対応関係を、ライン対画像のＤＰマッチング処理によって求めて、フレーム画像におけるスポッティング点を算出する。そして、ＣＰＵ１０４は、求められたスポッティング点からのバックトレース処理により、フレーム画像とスライス画像との画素毎の対応関係を明確にする。
【０２０１】
その後、ＣＰＵ１０４は、フレーム画像とスライス画像とのそれぞれに対して、mean-shift法を適用して領域分割を行った後に、フレーム画像とスライス画像との画素毎の対応関係に基づいて、スライス画像の分割領域とフレーム画像の分割領域との対応関係を求める。そして、ＣＰＵ１０４は、フレーム画像の対応領域においてグローバル距離とローカル距離とを求めて、グローバル距離とローカル距離とを足し合わせることによって、フレーム画像の画素毎に、カメラ２００から撮影対象物（各画素に写っている対象物）までの距離を算出することが可能になる。
【０２０２】
特に、本実施の形態に係る画像距離算出装置１００では、１台のカメラだけで撮影された動画映像に基づいて、動画映像のフレーム画像の画素毎に距離を算出することが可能である。このため、従来のステレオビジョン法のように、２台のカメラで同時に撮影対象物を撮影する必要がなく、さらに、２台のカメラの間隔を一定の距離に維持し続ける必要もない。従って、従来のステレオビジョン法によって、撮影対象物までの距離を算出する場合に比べて、撮影機材の簡素化と撮影負担の軽減を図ることが容易になる。
【０２０３】
また、１台のカメラで撮影された動画映像であって、撮影対象物に対していずれかの方向に移動している動画映像であれば、映像データに基づいてフレーム画像とスライス画像とを容易に生成することができる。
【０２０４】
さらに、撮影対象物に対してカメラ２００がいずれかの方向に移動している動画映像であれば、移動に伴って生じる累積の動的視差が、圧縮された画像（画素）としてスライス画像に記録されることになる。このため、フレーム画像の画素毎の距離を算出するために、専用の撮影機材等を用いることなく、一般的なカメラにより撮影された動画映像に基づいて、簡単に画素毎の距離を求めることができる。
【０２０５】
また、一般的なカメラにより撮影された動画映像に基づいて、簡単に画素毎の距離を求めることができるため、例えば、過去に撮影された動画映像に基づいて画素毎の距離を算出することが可能である。従って、過去に撮影された膨大な映像データに基づいて、カメラから撮影対象物までの距離を簡単に算出すること可能となり、撮影当時の撮影環境を再現することが可能になる。
【０２０６】
さらに、近年では、ゴーグルを用いて左右の目の視差を利用した映像をユーザに視聴させることによって、擬似的に３次元の世界を体感させるＶＲ（Virtual Reality）技術の研究・応用が盛んに行われている。このＶＲ技術を用いて体感される３次元の世界は、３次元に見えるだけで、実際に３次元の世界が実現されているわけではない。このＶＲ技術の応用として、カメラにより撮影された動画映像に基づいて映像に映し出される撮影対象物までの距離を、画像距離算出装置１００によって算出して３次元空間を形成し、人間が実際に空間を移動できるような室内、室外、市街地、山岳地帯などの広域の３次元的なデータ世界を構築することも可能である。このようなデータ世界を、カメラにより撮影された動画映像に基づいて構築することによって、ＶＲ技術の応用分野や利用分野を大きく変えることも可能になる。また、本実施の形態に係る画像距離算出装置１００を用いることによって、このような３次元空間の構築を簡易に行うことが可能である。
【０２０７】
さらに、一般的なカメラにより撮影された動画映像に基づいて容易に、３次元空間の構築を行うことができるので、例えば、走行する車両により撮影された動画映像に基づいて、現実の街並みに基づく３次元空間のデータを構築したり、ドローンに取り付けられたカメラの動画映像に基づいて、空中から広範囲の状況を３次元空間のデータとして構築したりすることも可能である。
【０２０８】
以上、本発明に係る画像距離算出装置、画像距離算出方法および画像距離算出用プログラムについて図面を用いて詳細に説明したが、本発明に係る画像距離算出装置、方法およびプログラムは、実施の形態において示した例には限定されない。いわゆる当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは可能である。
【０２０９】
例えば、実施の形態に係る画像距離算出装置１００では、カメラ２００が横方向に移動される場合を一例として示して説明した。しかしながら、本発明に係る画像距離算出装置、方法およびプログラムでは、移動するカメラにより撮影された動画映像に基づいて、フレーム画像とスライス画像とが生成され、フレーム画像に写っている撮影対象物が、カメラの移動に応じて、スライス画像に圧縮された状態で記録されるものであれば、撮影対象物までの距離を算出することが可能である。
【０２１０】
このため、カメラにより撮影される動画映像は、必ずしも横方向にカメラが移動する場合には限定されず、上下方向であっても斜め方向であってもよい。さらに、カメラのレンズを斜め方向に向けた状態でカメラを移動する場合（例えば、カメラのレンズが、カメラの進行方向に対して、左斜め前方、右斜め前方、左斜め後方、右斜め後方を向いた状態でカメラが移動する場合等）であっても、フレーム画像に写っている撮影対象物が、カメラの移動に応じて、スライス画像に圧縮された状態で記録されることになるため、カメラから撮影対象物までの距離を画素毎に算出することが可能になる。
【０２１１】
また、実施の形態に係る画像距離算出装置１００では、mean-shift法を用いて領域分割が行われた領域毎に、カメラ２００から撮影対象物までの距離を示すグローバル距離を算出する方法を説明した。具体的には、まず、スライス画像の一の領域の横軸方向の平均長をｐとし、フレーム画像の対応する領域の横軸方向の平均長をｑとして、スライス画像に対するフレーム画像の拡大率ｑ／ｐを求める。そして、現実の世界におけるカメラ２００から撮影対象物までの領域毎の距離とｑ／ｐの値との対応関係式は、理論的に計算される（図１３（ｂ）参照）。この対応関係式を用いて、領域毎に、カメラ２００から撮影対象物までの距離を求めた。対応関係式の作成で必要となる距離の範囲は、直接測るより、人間の直感によって決定する場合が多いといえる。
【０２１２】
距離関数との例として、
距離Ｚ（ｐ，ｑ）＝１１９２．４・ｅｘｐ（−０．３６６（ｑ／ｐ））
などがある。
【０２１３】
以下、距離関数を、人間による直感でなく、新たな理論根拠に基づいて、決定する方法について説明する。
【０２１４】
［グローバル距離を求めるための距離関数］
図２３は、スライス画像の座標（１，ｙ′）から座標（Ｔ，ｙ′）までに至る横軸（ｔ軸方向）上の複数の画素（ピクセル）と、このスライス画像の複数の画素に対応するフレーム画像の横軸（ｘ軸方向）上の複数の画素（ピクセル）との関係を示した図である。図２３のフレーム画像に示される黒丸の画素をｘ（ｔ）で示す。黒丸の画素ｘ（ｔ）は、時間ｔ＝１からｔまで動的視差が累積されたものである。つまり、ｘ（ｔ）は、累積された動的視差に該当する。累積された動的視差を示す黒丸の画素ｘ（ｔ）は、スライス画像の時間軸ｔの時間数ｔ＝１，２，・・・，Ｔに対応して、Ｔ個存在する。ここで、スライス画像の横軸上の全ての画素数はＴ個であるが、フレーム画像の横軸上の全ての画素数はＴ個よりも多い。従って、フレーム画像においては、横軸上の全ての画素に対応する数だけ黒丸の画素ｘ（ｔ）が存在するわけではない。
【０２１５】
図２４は、動的視差と累積された動的視差との関係を説明するための図である。図２４の左図は、一例として、スライス画像の（１，ｙ′）から（４，ｙ′）に至る横軸（ｔ軸）上の各画素と、フレーム画像の（ｘ（１），ｙ′）から（ｘ（４），ｙ′）に至る横軸（ｘ軸）上の各画素との対応関係を示している。図２４の左図に示す黒丸は、フレーム画像における画素を示しており、隣接する前後の画素の間に間隔が空いている。一方で、スライス画像における各画素は、隣接する画素が連続しているため、前後の画素の間に間隔が生じず、４個の画素が連なった状態となる。図２４の左図には、説明の便宜上、スライス画像の画素は示されていない。
【０２１６】
移動するカメラ２００によって撮影対象物を撮影する場合には、図２４の左図に示すように、一定時間毎に、撮影位置が移動する。図２４の左図に示すフレーム画像の黒丸の画素毎の間隔は、移動する撮影位置の変化量に対応する。撮影位置の変化量は、動的視差に該当する。このため、フレーム画像の画素（黒丸）位置の間隔は、スライス画像で１つの画素が変動するときの、撮影対象物に対する動的視差を示すことになる。
【０２１７】
撮影対象物までの動的視差が、隣接する黒丸の画素の間隔（画素間長）で示されるため、黒丸で示されるフレーム画像の画素の位置は、撮影位置の移動に応じて累積される動的視差を意味することになる。黒丸の間隔がそれぞれ異なっているのは、それぞれの黒丸点に対応するカメラ２００から撮影対象物までの距離が異なっているためである。
【０２１８】
また、カメラの正面に存在する撮影対象物までの距離は、撮影位置の移動に伴って変化する。図２４の左図では、一例として、カメラ２００の撮影位置に応じて、フレーム画像の黒丸の画素の位置がｘ（１）からｘ（４）まで変化した場合に、カメラ２００から撮影対象物までの距離がｚｖ１，ｚｖ２，ｚｖ３，ｚｖ４と変化する場合が示されている。
【０２１９】
また、図２４の右図は、スライス画像の横軸のｔ軸上のｔ＝１，ｔ＝２，ｔ＝３，ｔ＝４の４つの点に対応する、フレーム画像の４つの画素の位置が、ｘ（１）からｘ（４）まで変化した場合に、各黒丸間隔の差をｘ（１）からｘ（４）までの分だけ累積した様子を示した図である。図２４の右図では、ｘ（４）で示す画素位置からｘ（１）で示す画素位置を減算した間隔が横線の長さとして示されている。右図の横線の長さは、近接する各画素（黒丸）の間隔の差を、ｘ（１）からｘ（４）まで累積した長さに該当するため、ｘ（１）からｘ（４）までの動的視差が足し合わされたもの、つまり累積された動的視差に該当する。
【０２２０】
ここで注意すべきは、これらの黒丸の点の位置は、先にスライス画像とフレーム画像との動的計画法（ＤＰ）を用いた最適マッチングの結果であるスポッティング点ｘ（Ｔ）から、バックトレースすることによって事後的に求められていることである。この累積された動的視差に対応する物体群（フレーム画像のｘ（１），ｘ（２）およびｘ（３）の画素に写っている撮影対象物が、対応する物体群に該当）に対する、カメラ２００からの距離は、仮想距離と呼べるものである。図２４の右図に視された累積された動的視差は、３つの物体点（フレーム画像のｘ（１），ｘ（２）およびｘ（３）の画素に写っている撮影対象物の画素点）の動的視差（フレーム画像のｘ（１）〜ｘ（４）の画素間における動的視差）の合計を示しており、特定の１つの物体点に対応しているものではない。カメラ２００から撮影対象物までのこれら３つの物体点に対応する距離を仮想距離ｚｖと定義する。
【０２２１】
仮想距離ｚｖは、図２４の左図に示す３つの黒丸（ｘ（１），ｘ（２），ｘ（３））における撮影対象物までの距離ｚｖ１，ｚｖ２，ｚｖ３に依存する距離と考えることができる。スライス画像の３ピクセル点は３点の物体点に対応している。この３点のピクセルに対する動的視差が累積加算される。動的視差が加算されたものは、３つの物体点の距離ｚｖ１，ｚｖ２，ｚｖ３を加算したものには対応しない。このことは、ステレオビジョン法で類推しても、ステレオビジョン法での３つの視差の加算が、距離を加算したものに対応しないのと同様である。ステレオビジョン法での視差は１つの物体点について得られる。したがって、本実施の形態では、累積された動的視差に対応する距離を仮想距離とする。仮想距離は、距離ｚｖ１，ｚｖ２，ｚｖ３に関係するものとしてのみ意味されるものである。この仮想距離ｚｖは、カメラ２００から撮影対象物までの距離ｚｖ１，ｚｖ２，ｚｖ３に依存する距離であるため、必ずしも現実の距離を直接的に示したものではなく、仮想的なものである。仮想的な距離を現実的な距離へと変換する説明は後述する。
【０２２２】
図２５は、累積された動的視差が実際の距離に対応するかの計算式導出を示すモデルの図である。図２５において、仮想距離ｚｖ（ｔ，ｘ）は、フレーム画像のｘ（ｔ０）からｘ（ｔ）までの累積された動的視差によって求められる距離（仮想距離）である。つまり、この仮想距離ｚｖ（ｔ，ｘ）は、スライス画像の各画素に対応する、フレーム画像の累積された動的視差によって求められる。この仮想距離ｚｖ（ｔ，ｘ）は、領域毎に求められるカメラ２００から撮影対象物までの距離を示したグローバル距離に対応する。図２５では、縦軸をｚ軸に設定している。また、ｘ（ｔ０）からｘ（ｔ）までの累積された動的視差をα（ｔ，ｔ０）とする。
【０２２３】
累積された動的視差α（ｔ，ｔ０）は、
【数８】
2018040789.tif 000010
・・・式９
の関係が成立する。ここで、Δｘ（τ）は、τ＝ｔ０からτ＝ｔまでの動的視差を示している。動的視差Δｘ（τ）をτ＝ｔ０からτ＝ｔまで累積することによって、累積された動的視差α（ｔ，ｔ０）に該当することになる。
【０２２４】
累積された動的視差α（ｔ，ｔ０）の微少な増加量をΔα（ｔ，ｔ０）とすると、Δα（ｔ，ｔ０）は、
Δα（ｔ，ｔ０）＝α（ｔ＋Δｔ，ｔ０）−α（ｔ，ｔ０）
で表すことができる。
【０２２５】
いま、累積された動的視差α（ｔ，ｔ０）が、微少量Δα（ｔ，ｔ０）（但し、Δα（ｔ，ｔ０）＞０）だけ増加したとする。このとき、Δα（ｔ，ｔ０）は、ｘ（ｔ＋Δｔ）−ｘ（ｔ）に該当し、フレーム画像の隣接する画素の間隔の微少な変化量に該当する。従って、フレーム画像の隣接する画素の間隔が大きくなると、動的視差が大きくなる。累積された動的視差の現象を考慮すると、動的視差が大きくなることによって、カメラ２００から撮影対象物までの距離が、わずかに近くなる。つまり、撮影対象物までの仮想距離ｚｖ（ｔ，ｘ）の値が、微少量Δｚｖ（ｔ，ｘ）だけ小さくなったと考えることができる。
【０２２６】
このように定義されたｚｖ（ｔ，ｘ），−Δｚｖ（ｔ，ｘ），α（ｔ，ｔ０），Δα（ｔ，ｔ０）は、図２５に示す関係図から明らかなように、次式に示す比例関係が成立する。
【０２２７】
ｚｖ（ｔ，ｘ）：α（ｔ，ｔ０）＝−Δｚｖ（ｔ，ｘ）：Δα（ｔ，ｔ０）
ここで、仮想距離ｚｖ（ｔ，ｘ）に対応する、累積された動的視差の値を、α（ｔ，ｔ０）＝１とすると、上述した比例関係から、
ｚｖ（ｔ，ｘ）：１＝−Δｚｖ（ｔ，ｘ）：Δα（ｔ，ｔ０）
が成立し、−Δｚｖ（ｔ，ｘ）がΔα（ｔ，ｔ０）に対応すると考えることができる。
【０２２８】
なぜ、上記の比例関係で、α（ｔ，ｔ０）＝１とおくことが必要であるかを述べる。仮想距離ｚｖ（ｔ，ｘ）と、累積された動的視差の値α（ｔ，ｔ０）とは、単なる反比例関係にあるのではない。ステレオビジョン法では、距離と視差の関係は単純な反比例関係である。ステレオビジョン法では、２つのカメラに映る１つの物体点を前提にしている。また、カメラ間距離（ベースライン）も一定である。一方、実施の形態において、ステレオビジョン法での視差に対応する累積された動的視差は、複数の物体点に対応している。さらに、１台の移動するカメラを用いているので、ステレオビジョン法で一定とされる「カメラ間距離」は一定でない。さらに、累積された動的視差の加算は動的計画法（ＤＰ）によって最適に加算されているので、個別の、つまり、１つの物体点が２点の位置のカメラによって対応しているものの単純加算でもなくなっている。これは、変動するベースラインをも考慮して最適加算がされている。以上のことから、仮想距離ｚｖ（ｔ，ｘ）は、ある累積された動的視差の一定値が対応するという仮定を置く必要がある。その前提で、累積距離の変動がこの一定値からの変位をΔα（ｔ，ｔ０）とし、それによる仮想距離ｚｖ（ｔ，ｘ）の変位をΔｚｖ（ｔ，ｘ）と想定することにより、移動する視差の現象を比例関係で表現することが可能となる。この比例関係から微分方程式が導かれ、それを解くと２つの係数をもつ累積された動的視差と距離との関係式が得られるが、この２つの係数は個別の対象において、境界条件を与えることによって定まる。境界条件によって係数が定まった関数は、仮想距離を示すものではなく、実距離を与える関数となる。
【０２２９】
上述した比例関係から、下記の微分方程式を形成し、解を求めることによって、
−Δｚｖ（ｔ，ｘ）＝ｚｖ（ｔ，ｘ）・Δα（ｔ，ｔ０）
Δｚｖ（ｔ，ｘ）／ｚｖ（ｔ，ｘ）＝−Δα（ｔ，ｔ０）
ｌｏｇ ｚｖ（ｔ，ｘ）＝−α（ｔ，ｔ０）＋ｃ  （ｃは定数）
となり、これより、ｚｖ（ｔ，ｘ）は、
ｚｖ（ｔ，ｘ）＝ａ・ｅｘｐ（−ｂ・α（ｔ，ｔ０））
・・・式１０
という式で表すことができる。ここで、係数ａ，ｂは別途定まる係数である。
【０２３０】
係数ａ，ｂが定まる場合、距離関数ｚｖ（ｔ，ｘ）＝ａ・ｅｘｐ（−ｂ・α（ｔ，ｔ０））は、仮想距離を示す仮想距離関数ではなく、実際の距離を示す実距離関数と判断することができる。従って、上述した式１０は、定数ａ、ｂが与えられることによって、実際の距離を、理論的根拠に基づく関数により求めることが可能であると判断することができる。このようにして実距離関数で求められる距離は、既に説明したグローバル距離に該当する。従って、フレーム画像における画素ｘ（ｔ）の属する領域のグローバル距離を距離ｚｇで示すと、画素ｘ（ｔ）におけるグローバル距離ｚｇは、式１０に基づいて、
ｚｇ＝ａ・ｅｘｐ（−ｂ・α（ｔ，ｔ０））
・・・式１１
と示すことができる。
【０２３１】
ここで、上述した式１０および式１１により距離を求める場合に問題となるのは、動的視差の累積方法である。つまり、上述した式９の加算区間である[ｔ０，ｔ]（ｔ０からｔの範囲）を、どのように定めるかが問題となる。
【０２３２】
既に実施の形態において説明した方法では、スライス画像とフレーム画像との双方に対して、領域分割手法であるmean-shift法を適用して、それぞれの画像に対応する領域を求めて、求められたそれぞれの領域によって、加算区間を定めた。
【０２３３】
図２６は、既に説明した方法である、フレーム画像の対応する領域ｒの横軸方向の平均長と、スライス画像の対応する領域ｒの横軸方向の平均長とを用いて、領域毎に撮影対象物までの距離ｚregion（ｒ）を算出する方法を説明するための図である。図２６において、ｚregion(ｒ)は、フレーム画像の領域ｒにおいて求められる、撮影対象物までの距離を示している。フレーム画像の領域ｒに含まれる区間横線の数（領域ｒにおいて一方の端点から他方の端点までを結ぶ区間横線が存在する数。縦に並ぶ区間横線のライン数）をＬ１とし、スライス画像の領域ｒに含まれる区間横線の数をＬ２とする。
【０２３４】
ここで、フレーム画像の領域ｒにおける一方の端点から他方の端点までの画素間の長さ（区間横線の長さ）の平均を、ｘａrmax-minとする。また、フレーム画像の領域ｒにおけるｉ番目の区間横線の一端の画素位置を、ｘｒi,minとし、他端の画素位置をｘｒi,maxとすると、フレーム画像の領域ｒにおけるｘａrmax-minは、
【数９】
2018040789.tif 000011
で表すことができる。
【０２３５】
また、スライス画像の領域ｒにおける一方の端点から他方の端点までの画素間の長さ（区間横線の長さ）の平均を、ｔａrmax-minとする。さらに、スライス画像の領域ｒにおけるｉ番目の区間横線の一端の画素位置を、ｔｒi,minとし、他端の画素位置をｔｒi,maxとすると、スライス画像の領域ｒにおけるｔａrmax-minは、
【数１０】
2018040789.tif 000012
で表すことができる。
【０２３６】
カメラ２００から撮影対象物までの距離を求める場合には、まず、スライス画像の一の領域ｒの横軸方向の平均長をｐとし、フレーム画像の対応する領域ｒの横軸方向の平均長をｑとして、スライス画像に対するフレーム画像の拡大率αｒ＝ｑ／ｐを求める。そして、領域毎に求められるカメラ２００から撮影対象物までの距離を、図１３（ｂ）に示した距離ｚと累積された動的視差αｒの関係式を用いて、αｒ＝ｑ／ｐの値から求める。
【０２３７】
つまり、上述した方法では、スライス画像の領域ｒにおける区間横線の画素間の長さの平均に対する、フレーム画像の領域ｒにおける区間横線の画素間の長さの平均に基づいて、距離を求めている。このことから、「フレーム画像の領域ｒにおける区間横線の長さの平均」を「スライス画像の領域ｒにおける区間横線の長さの平均」で割った値をαrとして、
αｒ＝ｘａrmax-min／ｔａrmax-min
・・・式１２
と表すことができる。
【０２３８】
つまり、このαrが、領域ｒにおけるカメラ２００から撮影対象物までの距離ｚｇに対応する、累積された動的視差の値αと考えて、グローバル距離を算出した。この考え方から、上述した距離ｚｖ（ｔ，ｘ）における累積された動的視差α（ｔ，ｔ０）を、式１２に示すαrに該当するものとして、係数ａ，ｂを決定する場合を考える。
【０２３９】
係数ａおよび係数ｂを決定する場合には、まず、距離ｚregion(ｒ)と、αrとの変動区間を定める必要がある。距離ｚregion(ｒ)の変動区間とは、カメラ２００から撮影対象物までの距離の変動区間である。距離ｚregion(ｒ)の変動区間は、都市や街の風景や室内の状況等、カメラ２００により撮影されるフレーム画像の景色を、実際に人間が見て、直感的に定める。変動区間の手前側の距離をｚＮ１とし、変動区間の遠方側の距離をｚＬ１とすると、距離ｚregion(ｒ)の変動区間は、ｚＮ１≦ｚregion(ｒ)≦ｚＬ１と示すことができる。
【０２４０】
例えば、撮影風景が都市の風景であって、人間によってカメラ２００から手前の撮影対象物までの距離が１０ｍで、遠方の撮影対象物の距離が４ｋｍと判断された場合には、距離ｚregion(ｒ)の変動区間は、[ｚＮ１，ｚＬ１]＝［１０ｍ，４ｋｍ］となる。もちろん、可能であれば、レーザーを利用した距離測定装置等を用いて、直接的に撮影対象物までの距離を測定して、変動範囲を決定することも可能である。
【０２４１】
また、αrの変動区間は、定数μ１と定数γ１とを用いて、μ１≦αr≦γ１と表すことができる。上述したように、αrは、「フレーム画像の領域ｒにおける区間横線の画素間の長さ」を「スライス画像の領域ｒにおける区間横線の画素間の長さ」で割った値である。このため、αrの変動区間は、実施の形態において既に説明したように、スライス画像からフレーム画像への伸縮率等に影響を受けることになり、αrの値は１＜αr＜４に設定される。従って、αrの変動区間は、１＜μ１≦αr≦γ１＜４となる。
【０２４２】
上述したように、理論的に求められた仮想距離の距離関数
ｚｖ（ｔ，ｘ）＝ａ・ｅｘｐ（−ｂ・α（ｔ，ｔ０））    ・・・式１０
における、２つの係数ａ，ｂを、上述したｚregion(ｒ)とαrとの変動区間のパラメータを用いて定める。ここで、距離ｚregion(ｒ)の最小の区間値であるｚＮ１は、αrの最大の区間値であるγ１に対応し、距離ｚregion(ｒ)の最大の区間値であるｚＬ１は、αrの最小の区間値であるμ１に対応する。この対応関係は、累積された動的視差の現象を考慮すれば妥当であると判断できる。αrの値が大きい場合には、フレーム画像の隣り合う画素の間隔が広くなり、区間横線の画素間の長さの平均ｘａrmax-minが長くなるため、撮影対象物までの距離が近くなって、ｚregion(ｒ)の値が小さな値となるからである。一方で、αrの値が小さい場合には、フレーム画像の隣り合う画素の間隔が狭く、区間横線の画素間の長さの平均ｘａrmax-minが短くなるため、撮影対象物までの距離が遠くなって、ｚregion(ｒ)の値が大きな値となるからである。
【０２４３】
従って、係数ａ，ｂを定めるためには、２つの方程式、
ｚＬ１＝ａ・ｅｘｐ（−ｂμ１）
ｚＮ１＝ａ・ｅｘｐ（−ｂγ１）
を用いて、係数ａと係数ｂとを求めればよい。
【０２４４】
従って、ｚＮ１の値と、ｚＬ１の値と、μ１の値と、γ１の値とを設定することにより、上述したｚＮ１の式とｚＬ１の式との２式に基づいて、係数ａと係数ｂとを求めると、係数ａと係数ｂとは、
ａ＝ｚＬ１・ｅｘｐ（（μ１／（γ１−μ１））ｌｏｇ（ｚＬ１／ｚＮ１）
ｂ＝（１／（γ１−μ１））ｌｏｇ（ｚＬ１／ｚＮ１）
となる。
【０２４５】
このようにして求められた係数ａと係数ｂとを用いて、画素ｘ（ｔ）における距離ｚｖ（ｔ，ｘ）を
ｚｖ（ｔ，ｘ）＝ａ・ｅｘｐ（−ｂ・α（ｔ，ｔ０））    ・・・式１０
によって求めることにより、領域毎の距離（グローバル距離ｚｇ）の値を求めるための実距離関数
ｚｇ＝ａ・ｅｘｐ（−ｂ・α（ｔ，ｔ０））    ・・・式１１
を算出することができる。この実距離関数は、上述したように数学的に求められるものである。従って、実距離関数を用いることによって、グローバル距離を、人間による撮影対象物の観察や直感ではない、理論根拠に基づいて決定することが可能となる。
【０２４６】
また、実距離関数の距離ｚｇを算出するための係数ａおよび係数ｂは、上述したように、ｚＮ１の値と、ｚＬ１の値と、μ１の値と、γ１の値とを設定することにより求められる。このｚＮ１の値と、ｚＬ１の値とは、式１１が実距離関数と判断されることから、結果的に、画素ｘ（ｔ）における式１１の距離ｚｇの変動範囲に対応すると考えられる。また、同様に、μ１の値と、γ１の値とは、画素ｘ（ｔ）における式１１の累積された動的視差α（ｔ，ｔ０）の変動範囲に対応すると考えられる。
【０２４７】
また、同じ撮影対象物をカメラ２００で撮影する場合であっても、カメラ２００の移動速度によって、αrの区間パラメータであるμ１およびγ１の値が変動する。図２７（ａ）（ｂ）は、領域ｒにおける距離ｚとαｒとの関係を、ｚＮ１の値と、ｚＬ１の値と、μ１の値と、γ１の値とを用いて図示したグラフである。カメラ２００の移動速度が遅い場合には、図２７（ａ）に示すように、μ１からγ１までの範囲が全体的に１側寄りの範囲となり、カメラの移動速度が速い場合には、図２７（ｂ）に示すように、μ１からγ１までの範囲が全体的に４側寄りの範囲となる。このように、μ１からγ１までの範囲を変化させることによって、αｒに対する距離ｚの値が変化することになる。但し、これらの距離の変化は、実距離関数で吸収されるものである。
【０２４８】
実施の形態に示したように、領域分割手法であるmean-shift法を用いて、フレーム画像の領域毎にグローバル距離を算出する場合には、フレーム画像の領域毎に距離値が一定となってしまうが、上述した実距離関数を用いることにより、スライス画像の各画素に対応するフレーム画像の画素毎に、カメラ２００から撮影対象物までの距離を求めることが可能になる。
【０２４９】
このことは、テクスチャのある画像（撮影対象として物体の表面状態が示された画像）の画素毎に、距離値を求められることを意味している。つまり、距離値の求められた画素を用いることによって、３次元画像へのテクスチャマッピングが容易となる。
【０２５０】
従来の３次元画像へのテクスチャマッピングの考え方では、物体が存在する３次元空間（free spaceと呼ばれる）を設定し、その空間の点に物体（対象物）の一点が存在するとされていた。このため、得られた物体点集合に対してどのようにテクスチャを貼る（設定する）かが大きな問題とされていた。しかしながら、フレーム画像の画素に距離値（距離情報）が付加された画像を用いることによって、画素に付加された距離値を利用してテクスチャを貼ることができるため、このような問題を考える必要がない。
【０２５１】
また、画素毎に距離値（距離情報）が付加されたフレーム画像を、既に説明したスティッチングアルゴリズムを用いて貼り合わせることによって、１枚の貼り合わせ画像を生成することができる。そして、貼り合わせ画像に基づいて画素毎の距離値を求めることによって、エンドレスな繋がりをもつ、広域の３次元画像を得ることが可能になる。
【０２５２】
［フレーム画像の対応領域内における画素毎の距離算出］
また、実施の形態では、領域毎にグローバル距離を求めた後に、領域における相対的な距離を示したローカル距離を求めて、グローバル距離に対してローカル距離を加算することによって、フレーム画像の画素毎に、カメラ２００から撮影対象物までの距離を求める場合について説明した。しかしながら、フレーム画像の領域毎に距離値が決まった後で、異なる方法によって、領域内の個々の画素毎に、カメラ２００から撮影対象物までの距離を求めることも可能である。
【０２５３】
フレーム画像は、カメラ２００によって撮影された動画の１フレーム分の画像を抽出したものであるため、フレーム画像の解像度は、カメラの撮影性能に依存することになる。一般的な動画撮影用のカメラでは、例えば、１０００×６００程度の画素数、あるいは、４０００×２０００程度の画素数で、画素毎にＲＧＢの値からなる色情報が記録される。従って、これだけ多数の画素によって構成されるフレーム画像において、領域毎の距離情報としてグローバル距離が画素毎に付加されるだけでは、フレーム画像の全体の距離精度として十分ではない。領域に含まれる全ての画素に対して、原理的に異なる距離値が付加されることが望まれており、実世界の表現として意味が高まるものである。このため、以下に、上述した領域内の画素毎の距離計算を、より細かいレベルで算出する方法について説明する。
【０２５４】
既に説明したグローバル距離の算出方法（領域分割手法であるmean-shift法を用いた距離算出方法）によって、分割された領域毎の距離については求めることができる。領域ｒについて得られたグローバル距離を距離ｚｇとする。また、領域ｒには何本かの区間横線が含まれている。それぞれの区間横線の横軸上には、既に説明したように、領域内における両端固定のマッチング処理およびバックトレース処理によって求められた座標点が複数存在し、横軸上に点列となって記録されている。このバックトレース処理によって求められる複数の点を、ｘ（１），ｘ（２），ｘ（３），・・・，ｘ（ｉ−１），ｘ（ｉ），・・・，ｘ（Ｇ）とする。また、領域ｒに含まれる区間横線の画素単位の平均長を、ｘａとする。さらに、バックトレース処理で求められた複数の点のうち近接する２つの点を、ｘ（ｉ−１），ｘ（ｉ）とする。但し、ｉは、２≦ｉ≦Ｇの整数となる。また、近接する画素ｘ（ｉ）と画素ｘ（ｉ−１）との距離（画素差）は、ｘ（ｉ）−ｘ（ｉ−１）と表すことができる。
【０２５５】
このように設定される、区間横線の平均長ｘａと、近接する２点間の距離ｘ（ｉ）−ｘ（ｉ−１）と、バックトレース処理で求められた座標の数Ｇとを用いると、画素ｘ（ｉ）におけるカメラ２００から撮影対象物までの詳細な距離ｚ（ｉ）は、
ｚ（ｉ）＝ｚｇ＋β（ｘ（ｉ）−ｘ（ｉ−１）−ｘａ／Ｇ）
・・・式１３
によって決定される。なお、βは正の定数であり、実験的に定められる値である。
【０２５６】
また、ｘａは、領域ｒに含まれる区間横線の画素単位の平均長を示しているため、ｘａ／Ｇは、領域内のｘ（１），ｘ（２），ｘ（３），・・・，ｘ（ｉ−１），ｘ（ｉ），・・・，ｘ（Ｇ）点の近接する２点間の平均的な画素長（画素間の距離、座標位置の差）を示している。より具体的には、領域内の横軸上にＧ箇所存在する複数の画素点において、ｘ（１）からｘ（Ｇ）までの全ての点列の画素長（ピクセル長）をＧで割った平均値、つまり、近接する２点間の平均的な区間画素長を示している。
【０２５７】
ここで、領域ｒにおけるグローバル距離ｚｇは、領域ｒの平均的な距離であると考えられ、この平均的な距離ｚｇは、近接する２つの画素間の平均的な区間画素長に対応するものと考えられる。このことから、領域ｒ内のｘ（ｉ）の画素位置において、ｘ（ｉ）の画素位置からｘ（ｉ−１）の画素位置までの２点間の画素長が、平均的な２点間の画素長よりも長い場合、すなわち、ｘ（ｉ）−ｘ（ｉ−１）がｘａ／Ｇより大きい（ｘ（ｉ）−ｘ（ｉ−１）−ｘａ／Ｇ＞０）場合には、画素ｘ（ｉ）における距離ｚ（ｉ）が、領域ｒにおける平均的な距離ｚｇよりも手前側（カメラ２００に近い位置）の撮影対象物を写した画素に該当すると考えることができる。
【０２５８】
一方で、領域ｒ内のｘ（ｉ）の画素位置において、ｘ（ｉ）の画素位置から近接するｘ（ｉ−１）の画素位置までの２点間の画素長が、平均的な２点間の画素長よりも短い場合、すなわち、ｘ（ｉ）−ｘ（ｉ−１）がｘａ／Ｇより小さい（ｘ（ｉ）−ｘ（ｉ−１）−ｘａ／Ｇ＜０）場合には、点ｘ（ｉ）における距離ｚ（ｉ）が、領域ｒにおける平均的な距離ｚｇよりも奥側（カメラ２００から遠い位置）の撮影対象物を写した画素に該当すると考えることができる。
【０２５９】
図２８は、領域内のｉ番目の画素ｘ（ｉ）と、画素ｘ（ｉ）における距離ｚ（ｉ）との関係を示した図である。ｉ番目の画素ｘ（ｉ）の距離値ｚ（ｉ）は、上述したように、
ｚ（ｉ）＝ｚｇ＋β（ｘ（ｉ）−ｘ（ｉ−１）−ｘａ／Ｇ）
・・・式１３
によって求められる。従って、ｉ番目の画素ｘ（ｉ）の距離値ｚ（ｉ）が、領域ｒのグローバル距離ｚｇに一致する場合には、上述したｘ（ｉ）−ｘ（ｉ−１）−ｘａ／Ｇの値がゼロの値となる。つまり、ｘ（ｉ）−ｘ（ｉ−１）−ｘａ／Ｇ＝０に該当する画素ｘ（ｉ）の距離ｚ（ｉ）は、距離ｚｇとなる。一方で、ｘ（ｉ）−ｘ（ｉ−１）−ｘａ／Ｇ＜０が成立する画素ｘ（ｉ）では、画素ｘ（ｉ）の距離ｚ（ｉ）が、距離ｚｇよりも短い距離となる。また、ｘ（ｉ）−ｘ（ｉ−１）−ｘａ／Ｇ＞０が成立する画素ｘ（ｉ）では、画素ｘ（ｉ）の距離ｚ（ｉ）が、距離ｚｇよりも長い距離となる。
【０２６０】
このように、ｘ（ｉ）−ｘ（ｉ−１）−ｘａ／Ｇを求めることにより、領域ｒの平均的な距離と判断できるグローバル距離ｚｇを基準として、領域ｒ内の画素ｘ（ｉ）における詳細な距離ｚ（ｉ）を求めることが可能になる。
【０２６１】
［フレーム画像における各画素の詳細距離を直接求める方法］
また、実施の形態では、初めに、mean-shift法により領域分割された領域毎の距離（グローバル距離）を求めて、その後に、領域内の画素毎の相対的な距離（ローカル距離）を求めた。そして、領域毎の距離（グローバル距離）に対して、領域内の画素毎の相対的な距離（ローカル距離）を加算することによって、フレーム画像の画素毎に詳細な距離を求める方法について説明した。つまり、第１段階の処理として、領域毎のグローバル距離を求めて、第２段階の処理として、領域内の画素毎の相対的な距離（ローカル距離）を求めてから、最終的な画素毎の詳細な距離を求めていた。しかしながら、このような多段的な処理により、フレーム画像の画素毎に詳細な距離を求めるのではなく、メディアンフィルタを用いて、１回の処理でフレーム画像の画素毎に詳細な距離を求める方法を用いることも可能である。言い換えると、メディアンフィルタのウィンドウ・サイズがmean-shift法で得られる領域に対応している。メディアンフィルタを用いる方法は、より簡単に距離を求める方法である。
【０２６２】
図２３は、既に説明したように、スライス画像の横軸（ｔ軸）上の各画素と、この各画素に対応するフレーム画像の横軸（ｘ軸）上の各画素との対応関係を模式的に示した図である。図２３では、スライス画像の縦軸上の一点ｙ′を固定点（すなわち、（ｘ＝１，ｙ＝ｙ′））とし、このｙ＝ｙ′となるスライス画像の横軸上の点、つまり、横軸ｔ上のｔ＝１からｔ＝Ｔまでの各点が黒丸で示されている。そして、スライス画像の横軸ｔ上の各点に対応するフレーム画像の画素であって、ｙ＝ｙ′で固定したフレーム画像のｘ軸において最適にマッチングする画素が、ライン対画像による連続動的計画法によって求められる。図２３においてフレーム画像に示された黒丸は、連続動的計画法によって求められる画素である。また、フレーム画像に示された黒丸の画素が、例えば、ｘ（ｉ）の位置にあるとき、ｘ（１）＝１からｘ（ｉ）まで累積された動的視差は、ｘ（ｉ）−ｘ（１）に該当する。
【０２６３】
このライン対画像による連続動的計画法のマッチング処理は、フレーム画像およびスライス画像に対するmean-shift法の適用前（領域分割処理の前）に行われる。従って、領域分割を行わずに、図２３において黒丸で示したフレーム画像の画素（累積された動的視差に該当する画素）を利用して各画素の距離を求めることにより、多段的な処理を行うことなく、各画素の距離を求めることができる。
【０２６４】
まず、分割領域の対応関係を考えずに、フレーム画像のｙ軸上の点をｙ′に固定して、このｙ＝ｙ′に該当するｘ軸上の累積された動的視差の画素（黒丸）を考える。このフレーム画像のｘ軸上の累積された動的視差に該当する画素（スライス画像にマッチングした画素）を、ｘ（１），ｘ（２），・・・，ｘ（ｉ−１），ｘ（ｉ），ｘ（ｉ＋１），・・・，ｘ（Ｔ）とする。累積された動的視差に該当する画素の数は、スライス画像の横軸（ｔ軸）の画素の数に対応するため、Ｔ箇所存在する。また、画素ｘ（ｉ）における撮影対象物からカメラ２００までのある距離をあるウィンドウ・サイズをもつメディアンフィルタの結果として、ｚｖ（ｉ，ｘ）とする。但し、ｉは上述したようにｉ＝１，２，・・・，Ｔである。距離ｚｖ（ｉ，ｘ）は、後述するようにあるウィンドウ・サイズをもつメディアンフィルタを経由して、ｘ（ｉ）における累積された動的視差により求められるため、上述した式１０の距離ｚｖ（ｔ，ｘ）と同様に、仮想距離と考えることができる。
【０２６５】
画素ｘ（ｉ）における累積された動的視差をα（ｉ）とする。α（ｉ）は、ｘ（ｉ）までの近接する２つの画素点間の画素長（２点間の画素の距離差）が累積されたものである。ここで、ｘ（ｉ）からｘ（ｉ＋Ｋ）までの累積された動的視差は、近接する画素との距離差（視差）の累積であり、ｘ（ｉ＋１）−ｘ（ｉ）と、ｘ（ｉ＋２）−ｘ（ｉ＋１）と、・・・、ｘ（ｉ＋Ｋ）−ｘ（ｉ＋Ｋ−１）とを足し合わせたものと考えることができる。この画素長（２点間の画素差、近接する画素との距離差）の値は、画素間毎に異なる値になる。
【０２６６】
ここで、このＫ個の画素間の画素長（距離差）を考慮し、メディアンフィルタを用いて、画素間の画素長の中央値を求める。画素ｘ（ｉ）に基づいて求められるＫ個の画素長の値に対して、メディアンフィルタを適用することにより求められる中央値を、Ｍｅｄ（ｉ）と示す。Ｍｅｄ（ｉ）は、ｘ（ｉ＋１）−ｘ（ｉ）の値と、ｘ（ｉ＋２）−ｘ（ｉ＋１）の値と、・・・，ｘ（ｉ＋Ｋ）−ｘ（ｉ＋Ｋ−１）の値との中央値を示している。
【０２６７】
例えば、一例として、ｘ（ｉ）を基準とする５つの画素（累積された動的視差）を、ｘ（ｉ＋１）， ｘ（ｉ＋２）， ｘ（ｉ＋３）， ｘ（ｉ＋４）， ｘ（ｉ＋５）として考える。これらの５つの距離差（差分量：動的視差）は、ｘ（ｉ＋１）−ｘ（ｉ）， ｘ（ｉ＋２）−ｘ（ｉ＋１）， ｘ（ｉ＋３）−ｘ（ｉ＋２）， ｘ（ｉ＋４）−ｘ（ｉ＋３）， ｘ（ｉ＋５）−ｘ（ｉ＋４）となる。これらの５つの距離差を比較し、距離差の大きい方から３番目の値がＭｅｄ（ｉ）となる。このようにして求められた値は、窓を５とするメディアンフィルタの出力値となる。
【０２６８】
このように、Ｍｅｄ（ｉ）を用いることによって、ｘ（ｉ）からｘ（ｉ＋Ｋ）までの、累積された動的視差α（ｉ）を、
α（ｉ）＝Ｍｅｄ（ｉ）×Ｋ
・・・式１４
と表すことができる。
【０２６９】
一方で、累積された動的視差の微少な増加量をΔα（ｉ）とすると、Δα（ｉ）は、
Δα（ｉ）＝α（ｉ＋Δｉ）−α（ｉ）
と表すことができる。
【０２７０】
この累積された動的視差α（ｉ）と、画素ｘ（ｉ）における詳細な距離ｚｖ（ｉ，ｘ）との関係は、累積された動的視差の微少な増加量をΔα（ｉ）と、累積された動的視差の微少な増加量Δα（ｉ）に伴う距離の変化量−Δｚｖ（ｉ，ｘ）との関係で示すことができる。既に説明したように、累積された動的視差の特性から、以下の対応関係が成立する。
【０２７１】
ｚｖ（ｉ，ｘ）：α（ｉ）＝−Δｚｖ（ｉ，ｘ）：Δα（ｉ）
α（ｉ）＝１の場合には、
ｚｖ（ｉ，ｘ）：１＝−Δｚｖ（ｉ，ｘ）：Δα（ｉ）
と表すことができる。
【０２７２】
この対応関係に基づいて、下記の関係式を解くことによって、
−Δｚｖ（ｉ，ｘ）＝ｚｖ（ｉ，ｘ）×Δα（ｉ）
Δｚｖ（ｉ，ｘ）／ｚｖ（ｉ，ｘ）＝−Δα（ｉ）
ｌｏｇ ｚｖ（ｉ，ｘ）＝−Δα（ｉ）＋ｃとなり、
この関係式を変形して、距離ｚｖ（ｉ，ｘ）を、
ｚｖ（ｉ，ｘ）＝ａ・ｅｘｐ（−ｂ・α（ｉ）），ａ＞０，ｂ＞０
として求めることができる。
【０２７３】
ここで、α（ｉ）は、上述したメディアンフィルタによる出力値Ｍｅｄ（ｉ）を用いて、
α（ｉ）＝Ｍｅｄ（ｉ）×Ｋ
と示すことができる。このため、ｘ（ｉ）における距離ｚｖ（ｉ，ｘ）は、
ｚｖ（ｉ，ｘ）＝ａ・ｅｘｐ（−ｂ・Ｍｅｄ（ｉ）・Ｋ）
・・・式１５
と示すことができる。
【０２７４】
ここで、係数ａおよび係数ｂの値は、既に説明した考え方によって求めることができる。
【０２７５】
係数ａと係数ｂとを求めることによって、動的視差の中央値（Ｍｅｄ（ｉ））に基づいて、フレーム画像のｘ（ｉ）における詳細な距離を、実距離関数を用いて求めることができる。実距離関数によって求められるｘ（ｉ）の距離をｚ（ｉ，ｘ）とすると、実距離関数は、
ｚ（ｉ，ｘ）＝ａ・ｅｘｐ（−ｂ・Ｍｅｄ（ｉ）・Ｋ）
・・・式１６
と示すことができる。
【０２７６】
具体的には、累積された動的視差Ｍｅｄ（ｉ）・Ｋの設定範囲を、定数μ２および定数γ２を用いて、μ２≦Ｍｅｄ（ｉ）・Ｋ≦γ２とし、
画素ｘ（ｉ）における実距離関数の距離ｚ（ｉ，ｘ）の設定範囲を、定数ｚＮ２および定数ｚＬ２を用いて、ｚＮ２≦ｚ（ｉ，ｘ）≦ｚＬ２とすることによって、
係数ａを、
ａ＝ｚＬ２・ｅｘｐ（（μ２／（γ２−μ２））ｌｏｇ（ｚＬ２／ｚＮ２）
により算出し、
係数ｂを、
ｂ＝（１／（γ２−μ２））ｌｏｇ（ｚＬ２／ｚＮ２）
により算出する。
【０２７７】
そして、求められた係数ａと係数ｂとを用いて、上述した式１６の実距離関数により、距離ｚ（ｉ，ｘ）を求めることによって、フレーム画像の画素ｘ（ｉ）における、撮影対象物からカメラ２００までの詳細な距離を求めることができる。従って、実施の形態において説明したように、mean-shift法による領域分割を用いることなく、フレーム画像の画素ｘ（ｉ）における詳細な距離を求めることができる。
【０２７８】
ここで、画素ｘ（ｉ）は、フレーム画像の１つの画素点であるが、累積された動的視差に該当する画素点であるため、フレーム画像にはＴ個しか存在しない。従って、距離ｚ（ｉ，ｘ）を求めることができる画素点の数も、Ｔ個しか存在せず、フレーム画像の全ての画素で距離を求めることは難しい。しかしながら、画素ｘ（ｉ）は、撮影対象物の表面位置を決定するテクスチャの画素に該当する。このため、テクスチャとなる画素ｘ（ｉ）の距離を利用することによって、距離が求められていない画素の距離値を、距離値が決まった周辺の画素の距離値を用いて、内挿（補間）により求めることができる。内挿および補間とは、一般的に、ある既知の数値データ列を基にして、そのデータ列の各区間の範囲内を埋める数値を求めること、またはそのような関数を与えることを意味する。
【０２７９】
従って、フレーム画像の画素ｘ（ｉ）における距離値を用いて、距離値が設定されていない画素の距離を内挿（補間）することによって、領域分割を行うことなく、つまり、領域を考慮して多段的に距離値を求めるのではなく、１回の処理によって、フレーム画像の各画素の詳細な距離を求めることが可能になる。
【０２８０】
なお、領域を抽出する処理および領域を対応させる処理を行うことによって各画素の距離値を計算する場合には、内挿によって各画素の距離を求める場合よりも、より安定した情報として領域毎の距離情報を利用できる場合もある。このため、対象となる動画映像によっては、画素毎の距離値を直接計算するよりも、領域を抽出する処理および領域を対応させる処理を行って領域毎の距離情報を求めてから、画素毎の距離値を計算する方が、求められる距離値の信頼性を高められる場合もある。従って、実際に画素毎の距離値を求める場合には、領域毎の距離を算出する方法と、メディアンフィルタを用いて直接画素毎の距離を算出する方法との双方の処理方法を、適宜使い分けることが望ましい。どちらの処理方法を用いた方がより正確なものになるかは、実際の適用対象によって異なると考えられる。
【符号の説明】
【０２８１】
１００  …画像距離算出装置
１０１  …記録部（画素情報記録手段）
１０２  …ＲＯＭ
１０３  …ＲＡＭ（画素情報記録手段）
１０４  …ＣＰＵ（フレーム画像抽出手段、スライス画像生成手段、スポッティング点算出手段、画素マッチング手段、領域分割手段、対応領域決定手段、グローバル距離算出手段、ローカル距離算出手段、詳細距離算出手段、制御手段、コード検出手段、画素距離値抽出手段、コードＲＧＢ値割当手段、ＲＧＢ値入替手段、貼り合わせ画像生成手段、ＲＧＢ値検出手段、距離情報付加手段、ＲＧＢ値変更手段、修正貼り合わせ画像生成手段、距離付加貼り合わせ画像生成手段）
２００  …カメラ
２１０  …モニタ
【図１】
2018040789.tif 000013
【図２】
2018040789.tif 000014
【図３】
2018040789.tif 000015
【図４】
2018040789.tif 000016
【図５】
2018040789.tif 000017
【図６】
2018040789.tif 000018
【図７】
2018040789.tif 000019
【図８】
2018040789.tif 000020
【図９】
2018040789.tif 000021
【図１０】
2018040789.tif 000022
【図１１】
2018040789.tif 000023
【図１２】
2018040789.tif 000024
【図１３】
2018040789.tif 000025
【図１４】
2018040789.tif 000026
【図１５】
2018040789.tif 000027
【図１６】
2018040789.tif 000028
【図１７】
2018040789.tif 000029
【図１８】
2018040789.tif 000030
【図１９】
2018040789.tif 000031
【図２０】
2018040789.tif 000032
【図２１】
2018040789.tif 000033
【図２２】
2018040789.tif 000034
【図２３】
2018040789.tif 000035
【図２４】
2018040789.tif 000036
【図２５】
2018040789.tif 000037
【図２６】
2018040789.tif 000038
【図２７】
2018040789.tif 000039
【図２８】
2018040789.tif 000040