(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-12
(45)【発行日】2022-10-20
(54)【発明の名称】動画像距離算出装置および動画像距離算出用プログラム
(51)【国際特許分類】
G01C 3/06 20060101AFI20221013BHJP
G06T 7/579 20170101ALI20221013BHJP
【FI】
G01C3/06 110Z
G01C3/06 140
G06T7/579
(21)【出願番号】P 2019041980
(22)【出願日】2019-03-07
【審査請求日】2021-12-24
(31)【優先権主張番号】P 2019030904
(32)【優先日】2019-02-22
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】506301140
【氏名又は名称】公立大学法人会津大学
(74)【代理人】
【識別番号】100118094
【氏名又は名称】殿元 基城
(72)【発明者】
【氏名】岡 嶐一
【審査官】九鬼 一慶
(56)【参考文献】
【文献】特開2018-040789(JP,A)
【文献】特開2000-315255(JP,A)
【文献】国際公開第2017/212929(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G01C 3/06
G06T 7/579
(57)【特許請求の範囲】
【請求項1】
M個(M≧3)の対象物を撮影したカメラの動画像を用いて、該動画像の時刻tの画像に映るM個の前記対象物の画素から、それぞれの画素に対応するM個のoptical flowを抽出するオプティカルフロー抽出手段と、
該オプティカルフロー抽出手段により抽出されたM個の前記optical flowのそれぞれの大きさを、optical flowの値q
m(m=1,2,・・・,M)として算出するオプティカルフロー値算出手段と、
該オプティカルフロー値算出手段により算出されたM個の前記optical flowの値q
mのうち、前記optical flowの値が最も小さい値をμとし、前記optical flowの値が最も大きい値をγとし、M個の前記対象物から前記カメラまでのそれぞれの距離のうちで最も近い距離Z
Nと最も遠い距離Z
Lとを予め測定しておき、定数aおよび定数bを、
a=Z
L・exp((μ/(γ-μ))log(Z
L/Z
N))
b=(1/(μ-γ))log(Z
L/Z
N)
により算出し、
M個の前記対象物から前記カメラまでのそれぞれの距離をZ
m(m=1,2,・・・,M)として、当該距離Z
mを、前記定数aと、前記定数bと、M個の前記optical flowの値q
mとに基づいて、
Z
m=a・exp(bq
m)
により算出する距離算出手段と
を有することを特徴とする動画像距離算出装置。
【請求項2】
前記オプティカルフロー値算出手段は、
前記オプティカルフロー抽出手段により抽出されたM個の前記optical flowの大きさの総和を算出し、それぞれの前記optical flowの大きさを前記総和で割ることによって求められた、正規化されたそれぞれのoptical flowの大きさを、前記optical flowの値q
m(m=1,2,・・・,M)とすること
を特徴とする請求項1に記載の動画像距離算出装置。
【請求項3】
前記M個は、前記動画像における時刻tの画像の画素数であり、
前記距離算出手段は、時刻tの前記画像の全ての画素毎に、当該画素に映る対象物から前記カメラまでの距離Z
mを算出すること
を特徴とする請求項1または請求項2に記載の動画像距離算出装置。
【請求項4】
M個(M≧3)の対象物を撮影したカメラの動画像を用いて、該動画像の時刻tの画像における全ての画素のoptical flowを抽出する全画素オプティカルフロー抽出手段と、
該全画素オプティカルフロー抽出手段により抽出された全ての画素の前記optical flowのそれぞれの大きさを、画素毎のoptical flowの値として算出する全画素オプティカルフロー値算出手段と、
前記時刻tの画像に対してmean-shift法を適用することにより、前記時刻tの画像を、K個(K≧M)の領域に分割する領域分割手段と、
該領域分割手段により分割されたK個の前記領域のうち、前記時刻tの画像において前記対象物が映る画素が含まれるM個の領域を抽出し、それぞれの領域毎に当該領域内の全ての画素のoptical flowの値の平均を求めることにより、M個の前記対象物に対応するそれぞれのoptical flowの値q
m(m=1,2,・・・,M)を算出する領域別オプティカルフロー値算出手段と、
該領域別オプティカルフロー値算出手段により算出されたM個の前記optical flowの値q
mのうち、前記optical flowの値が最も小さい値をμとし、前記optical flowの値が最も大きい値をγとし、M個の前記対象物から前記カメラまでのそれぞれの距離のうちで最も近い距離Z
Nと最も遠い距離Z
Lとを予め測定しておき、定数aおよび定数bを、
a=Z
L・exp((μ/(γ-μ))log(Z
L/Z
N))
b=(1/(μ-γ))log(Z
L/Z
N)
により算出し、
M個の前記対象物から前記カメラまでのそれぞれの距離をZ
m(m=1,2,・・・,M)として、当該距離Z
mを、前記定数aと、前記定数bと、M個の前記optical flowの値q
mとに基づいて、
Z
m=a・exp(bq
m)
により算出する距離算出手段と
を有することを特徴とする動画像距離算出装置。
【請求項5】
前記全画素オプティカルフロー値算出手段は、
前記全画素オプティカルフロー抽出手段により抽出された全ての画素の前記optical flowの大きさの総和を算出し、それぞれの画素の前記optical flowの大きさを前記総和で割ることによって求められた、正規化された画素毎のoptical flowの大きさを、前記画素毎のoptical flowの値とすること
を特徴とする請求項4に記載の動画像距離算出装置。
【請求項6】
M個(M≧3)の対象物を撮影したカメラの動画像を用いて、該動画像に映るM個の前記対象物から前記カメラまでの距離を算出する動画像距離算出装置の動画像距離算出用プログラムであって、
コンピュータに、
前記動画像の時刻tの画像に映るM個の前記対象物の画素から、それぞれの画素に対応するM個のoptical flowを抽出させるオプティカルフロー抽出機能と、
該オプティカルフロー抽出機能により抽出されたM個の前記optical flowのそれぞれの大きさを、optical flowの値q
m(m=1,2,・・・,M)として算出させるオプティカルフロー値算出機能と、
該オプティカルフロー値算出機能により算出されたM個の前記optical flowの値q
mのうち、前記optical flowの値が最も小さい値をμとし、前記optical flowの値が最も大きい値をγとし、M個の前記対象物から前記カメラまでのそれぞれの距離のうちで最も近い距離Z
Nと最も遠い距離Z
Lとを予め測定しておき、定数aおよび定数bを、
a=Z
L・exp((μ/(γ-μ))log(Z
L/Z
N))
b=(1/(μ-γ))log(Z
L/Z
N)
により算出させ、
M個の前記対象物から前記カメラまでのそれぞれの距離をZ
m(m=1,2,・・・,M)として、当該距離Z
mを、前記定数aと、前記定数bと、M個の前記optical flowの値q
mとに基づいて、
Z
m=a・exp(bq
m)
により算出させる距離算出機能と
を実現させることを特徴とする動画像距離算出用プログラム。
【請求項7】
前記オプティカルフロー値算出機能において、
前記コンピュータに、
前記オプティカルフロー抽出機能により抽出されたM個の前記optical flowの大きさの総和を算出させ、それぞれの前記optical flowの大きさを前記総和で割ることによって求められた、正規化されたそれぞれのoptical flowの大きさを、前記optical flowの値q
m(m=1,2,・・・,M)とすること
を特徴とする請求項6に記載の動画像距離算出用プログラム。
【請求項8】
前記M個は、前記動画像における時刻tの画像の画素数であり、
前記距離算出機能において、前記コンピュータに、
時刻tの前記画像の全ての画素毎に、当該画素に映る対象物から前記カメラまでの距離Z
mを算出させること
を特徴とする請求項6または請求項7に記載の動画像距離算出用プログラム。
【請求項9】
M個(M≧3)の対象物を撮影したカメラの動画像を用いて、該動画像に映るM個の前記対象物から前記カメラまでの距離を算出する動画像距離算出装置の動画像距離算出用プログラムであって、
コンピュータに、
前記動画像の時刻tの画像における全ての画素のoptical flowを抽出させる全画素オプティカルフロー抽出機能と、
該全画素オプティカルフロー抽出機能により抽出された全ての画素の前記optical flowのそれぞれの大きさを、画素毎のoptical flowの値として算出させる全画素オプティカルフロー値算出機能と、
前記時刻tの画像に対してmean-shift法を適用することにより、前記時刻tの画像を、K個(K≧M)の領域に分割させる領域分割機能と、
該領域分割機能により分割されたK個の前記領域のうち、前記時刻tの画像において前記対象物が映る画素が含まれるM個の領域を抽出させ、それぞれの領域毎に当該領域内の全ての画素のoptical flowの値の平均を求めさせることにより、M個の前記対象物に対応するそれぞれのoptical flowの値q
m(m=1,2,・・・,M)を算出させる領域別オプティカルフロー値算出機能と、
該領域別オプティカルフロー値算出機能により算出されたM個の前記optical flowの値q
mのうち、前記optical flowの値が最も小さい値をμとし、前記optical flowの値が最も大きい値をγとし、M個の前記対象物から前記カメラまでのそれぞれの距離のうちで最も近い距離Z
Nと最も遠い距離Z
Lとを予め測定しておき、定数aおよび定数bを、
a=Z
L・exp((μ/(γ-μ))log(Z
L/Z
N))
b=(1/(μ-γ))log(Z
L/Z
N)
により算出させ、
M個の前記対象物から前記カメラまでのそれぞれの距離をZ
m(m=1,2,・・・,M)として、当該距離Z
mを、前記定数aと、前記定数bと、M個の前記optical flowの値q
mとに基づいて、
Z
m=a・exp(bq
m)
により算出させる距離算出機能と
を実現させることを特徴とする動画像距離算出用プログラム。
【請求項10】
前記全画素オプティカルフロー値算出機能において、
前記コンピュータに、
前記全画素オプティカルフロー抽出機能により抽出された全ての画素の前記optical flowの大きさの総和を算出させ、それぞれの画素の前記optical flowの大きさを前記総和で割ることによって求められた、正規化された画素毎のoptical flowの大きさを、前記画素毎のoptical flowの値とすること
を特徴とする請求項9に記載の動画像距離算出用プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動画像距離算出装置および動画像距離算出用プログラムに関し、より詳細には、対象物を撮影した動画像を用いて、動画像に映った対象物からカメラまでの距離を算出する動画像距離算出装置および動画像距離算出用プログラムに関する。
【背景技術】
【0002】
近年、車両やドローンなどの移動物体に対して、外界を撮影するためのカメラを設置することが多い。近時では、カメラで外界の様子を単に撮影するだけでなく、撮影された動画像に基づいて、車両等の自動運転に利用可能な周囲の距離情報を取得したいという要望が存在する。
【0003】
カメラで対象物を撮影し、撮影された動画像に基づいて、対象物からカメラまでの距離を算出する方法が、既に提案されている(例えば、特許文献1および特許文献2参照)。特許文献1において提案されている方法をAMP(Accumulated-Motion-Parallax)法と称し、特許文献2において提案されている方法をFMP(Frontward-Motion-Parallax)法と称する。
【0004】
AMP法は、横方向に移動するカメラで撮影された動画像を用いて、対象物からカメラまでの距離を算出する方法である。FMP法は、前方あるいは後方に移動するカメラで撮影された動画像を用いて、対象物からカメラまでの距離を算出する方法である。AMP法やFMP法を用いることにより、一台のカメラで撮影された動画像に基づいて、撮影された対象物からカメラまでの距離を算出することができる。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2018-40789号公報
【文献】特願2017-235198号明細書
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、AMP法は、横方向に移動するカメラで撮影された動画像を用いて、対象物までの距離を算出することを特徴とするため、横方向に移動しないカメラで撮影された動画像からは、対象物までの距離を求めることが難しいという問題があった。また、AMP法によって対象物からカメラまでの距離を算出する場合、対象物は静止している必要がある。このため、撮影された動画像に映る対象物が、移動するものである場合には、対象物からカメラまでの距離を求めることが難しいという問題があった。
【0007】
また、FMP法は、前方あるいは後方に移動するカメラで撮影された動画像を用いて、対象物からカメラまでの距離を算出することを特徴とするため、横方向に移動するカメラや、斜め方向に移動するカメラによって撮影された動画像からは、対象物からカメラまでの距離を求めることが難しいという問題があった。
【0008】
本発明は、上記問題に鑑みてなされたものであり、対象物を撮影するカメラの移動状態あるいは移動方向に関わらず、対象物を撮影した動画像を用いて、対象物からカメラまでの距離を算出することが可能な動画像距離算出装置および動画像距離算出用プログラムを提供することを課題とする。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明に係る動画像距離算出装置は、M個(M≧3)の対象物を撮影したカメラの動画像を用いて、該動画像の時刻tの画像に映るM個の前記対象物の画素から、それぞれの画素に対応するM個のoptical flowを抽出するオプティカルフロー抽出手段と、該オプティカルフロー抽出手段により抽出されたM個の前記optical flowのそれぞれの大きさを、optical flowの値qm(m=1,2,・・・,M)として算出するオプティカルフロー値算出手段と、該オプティカルフロー値算出手段により算出されたM個の前記optical flowの値qmのうち、前記optical flowの値が最も小さい値をμとし、前記optical flowの値が最も大きい値をγとし、M個の前記対象物から前記カメラまでのそれぞれの距離のうちで最も近い距離ZNと最も遠い距離ZLとを予め測定しておき、定数aおよび定数bを、
a=ZL・exp((μ/(γ-μ))log(ZL/ZN))
b=(1/(μ-γ))log(ZL/ZN)
により算出し、M個の前記対象物から前記カメラまでのそれぞれの距離をZm(m=1,2,・・・,M)として、当該距離Zmを、前記定数aと、前記定数bと、M個の前記optical flowの値qmとに基づいて、
Zm=a・exp(bqm)
により算出する距離算出手段とを有することを特徴とする。
【0010】
また、本発明に係る動画像距離算出用プログラムは、M個(M≧3)の対象物を撮影したカメラの動画像を用いて、該動画像に映るM個の前記対象物から前記カメラまでの距離を算出する動画像距離算出装置の動画像距離算出用プログラムであって、コンピュータに、前記動画像の時刻tの画像に映るM個の前記対象物の画素から、それぞれの画素に対応するM個のoptical flowを抽出させるオプティカルフロー抽出機能と、該オプティカルフロー抽出機能により抽出されたM個の前記optical flowのそれぞれの大きさを、optical flowの値qm(m=1,2,・・・,M)として算出させるオプティカルフロー値算出機能と、該オプティカルフロー値算出機能により算出されたM個の前記optical flowの値qmのうち、前記optical flowの値が最も小さい値をμとし、前記optical flowの値が最も大きい値をγとし、M個の前記対象物から前記カメラまでのそれぞれの距離のうちで最も近い距離ZNと最も遠い距離ZLとを予め測定しておき、定数aおよび定数bを、
a=ZL・exp((μ/(γ-μ))log(ZL/ZN))
b=(1/(μ-γ))log(ZL/ZN)
により算出させ、M個の前記対象物から前記カメラまでのそれぞれの距離をZm(m=1,2,・・・,M)として、当該距離Zmを、前記定数aと、前記定数bと、M個の前記optical flowの値qmとに基づいて、
Zm=a・exp(bqm)
により算出させる距離算出機能とを実現させることを特徴とする。
【0011】
また、本発明に係る動画像距離算出装置は、M個(M≧3)の対象物を撮影したカメラの動画像を用いて、該動画像の時刻tの画像における全ての画素のoptical flowを抽出する全画素オプティカルフロー抽出手段と、該全画素オプティカルフロー抽出手段により抽出された全ての画素の前記optical flowのそれぞれの大きさを、画素毎のoptical flowの値として算出する全画素オプティカルフロー値算出手段と、前記時刻tの画像に対してmean-shift法を適用することにより、前記時刻tの画像を、K個(K≧M)の領域に分割する領域分割手段と、該領域分割手段により分割されたK個の前記領域のうち、前記時刻tの画像において前記対象物が映る画素が含まれるM個の領域を抽出し、それぞれの領域毎に当該領域内の全ての画素のoptical flowの値の平均を求めることにより、M個の前記対象物に対応するそれぞれのoptical flowの値qm(m=1,2,・・・,M)を算出する領域別オプティカルフロー値算出手段と、該領域別オプティカルフロー値算出手段により算出されたM個の前記optical flowの値qmのうち、前記optical flowの値が最も小さい値をμとし、前記optical flowの値が最も大きい値をγとし、M個の前記対象物から前記カメラまでのそれぞれの距離のうちで最も近い距離ZNと最も遠い距離ZLとを予め測定しておき、定数aおよび定数bを、
a=ZL・exp((μ/(γ-μ))log(ZL/ZN))
b=(1/(μ-γ))log(ZL/ZN)
により算出し、M個の前記対象物から前記カメラまでのそれぞれの距離をZm(m=1,2,・・・,M)として、当該距離Zmを、前記定数aと、前記定数bと、M個の前記optical flowの値qmとに基づいて、
Zm=a・exp(bqm)
により算出する距離算出手段とを有することを特徴とする。
【0012】
また、本発明に係る動画像距離算出用プログラムは、M個(M≧3)の対象物を撮影したカメラの動画像を用いて、該動画像に映るM個の前記対象物から前記カメラまでの距離を算出する動画像距離算出装置の動画像距離算出用プログラムであって、コンピュータに、前記動画像の時刻tの画像における全ての画素のoptical flowを抽出させる全画素オプティカルフロー抽出機能と、該全画素オプティカルフロー抽出機能により抽出された全ての画素の前記optical flowのそれぞれの大きさを、画素毎のoptical flowの値として算出させる全画素オプティカルフロー値算出機能と、前記時刻tの画像に対してmean-shift法を適用することにより、前記時刻tの画像を、K個(K≧M)の領域に分割させる領域分割機能と、該領域分割機能により分割されたK個の前記領域のうち、前記時刻tの画像において前記対象物が映る画素が含まれるM個の領域を抽出させ、それぞれの領域毎に当該領域内の全ての画素のoptical flowの値の平均を求めさせることにより、M個の前記対象物に対応するそれぞれのoptical flowの値qm(m=1,2,・・・,M)を算出させる領域別オプティカルフロー値算出機能と、該領域別オプティカルフロー値算出機能により算出されたM個の前記optical flowの値qmのうち、前記optical flowの値が最も小さい値をμとし、前記optical flowの値が最も大きい値をγとし、M個の前記対象物から前記カメラまでのそれぞれの距離のうちで最も近い距離ZNと最も遠い距離ZLとを予め測定しておき、定数aおよび定数bを、
a=ZL・exp((μ/(γ-μ))log(ZL/ZN))
b=(1/(μ-γ))log(ZL/ZN)
により算出させ、M個の前記対象物から前記カメラまでのそれぞれの距離をZm(m=1,2,・・・,M)として、当該距離Zmを、前記定数aと、前記定数bと、M個の前記optical flowの値qmとに基づいて、
Zm=a・exp(bqm)
により算出させる距離算出機能とを実現させることを特徴とする。
【0013】
動画像を用いてoptical flowを抽出する処理や、画像に対してmean-shift法を適用することにより領域分割を行う処理は、Open CV(Open Source Computer Vision Library)と呼ばれる、広く公開されたオープンソースのコンピュータビジョン向けのライブラリを利用することによって実現される。
【0014】
また、オプティカルフロー抽出手段または全画素オプティカルフロー抽出手段によって抽出されるoptical flowは、ベクトルとして求められる。従って、オプティカルフロー値算出手段または全画素オプティカルフロー値算出手段によって算出されるoptical flowの値は、optical flowのベクトルの絶対値を意味している。例えば、ベクトルが(V1,V2)の場合には、V12+V22の値の平方根を求めることによって、optical flowの値を算出することができる。
【0015】
さらに、上述した動画像距離算出装置において、前記オプティカルフロー値算出手段は、前記オプティカルフロー抽出手段により抽出されたM個の前記optical flowの大きさの総和を算出し、それぞれの前記optical flowの大きさを前記総和で割ることによって求められた、正規化されたそれぞれのoptical flowの大きさを、前記optical flowの値qm(m=1,2,・・・,M)とするものであってもよい。
【0016】
また、上述した動画像距離算出装置において、前記全画素オプティカルフロー値算出手段は、前記全画素オプティカルフロー抽出手段により抽出された全ての画素の前記optical flowの大きさの総和を算出し、それぞれの画素の前記optical flowの大きさを前記総和で割ることによって求められた、正規化された画素毎のoptical flowの大きさを、前記画素毎のoptical flowの値とするものであってもよい。
【0017】
また、上述した動画像距離算出用プログラムは、前記オプティカルフロー値算出機能において、前記コンピュータに、前記オプティカルフロー抽出機能により抽出されたM個の前記optical flowの大きさの総和を算出させ、それぞれの前記optical flowの大きさを前記総和で割ることによって求められた、正規化されたそれぞれのoptical flowの大きさを、前記optical flowの値qm(m=1,2,・・・,M)とするものであってもよい。
【0018】
さらに、上述した動画像距離算出用プログラムは、前記全画素オプティカルフロー値算出機能において、前記コンピュータに、前記全画素オプティカルフロー抽出機能により抽出された全ての画素の前記optical flowの大きさの総和を算出させ、それぞれの画素の前記optical flowの大きさを前記総和で割ることによって求められた、正規化された画素毎のoptical flowの大きさを、前記画素毎のoptical flowの値とするものであってもよい。
【0019】
また、上述した動画像距離算出装置において、前記M個は、前記動画像における時刻tの画像の画素数であり、前記距離算出手段は、時刻tの前記画像の全ての画素毎に、当該画素に映る対象物から前記カメラまでの距離Zmを算出するものであってもよい。
【0020】
さらに、上述した動画像距離算出用プログラムにおいて、前記M個は、前記動画像における時刻tの画像の画素数であり、前記距離算出機能において、前記コンピュータに、時刻tの前記画像の全ての画素毎に、当該画素に映る対象物から前記カメラまでの距離Zmを算出させるものであってもよい。
【発明の効果】
【0021】
本発明に係る動画像距離算出装置および動画像距離算出用プログラムによれば、対象物を撮影したカメラの移動状態あるいは移動方向に関わらず、対象物を撮影した動画像を用いて、対象物からカメラまでの距離を算出することが可能になる。
【0022】
また、本発明に係る動画像距離算出装置および動画像距離算出用プログラムによれば、正規化されたそれぞれのoptical flowの大きさを、optical flowの値qm(m=1,2,・・・,M)として用いることによって、対象物からカメラまでの距離の算出を精度よく行うことが可能になる。
【図面の簡単な説明】
【0023】
【
図1】実施の形態に係る動画像距離算出装置の概略構成を示したブロック図である。
【
図2】実施の形態に係る動画像距離算出装置のCPUが対象物までの距離を算出する処理を示したフローチャートである。
【
図3】対象物(人物群)を撮影した動画像の時刻tの画像を示した図である。
【
図4】
図3に示す画像に基づいて全ての画素のoptical flowを抽出した状態を示した図である。
【
図5】
図3に示す画像に対してmean-shift法を適用して領域分割を行った状態を示した図である。
【
図6】mean-shift法により分割されたそれぞれの領域のoptical flowの平均を求めて、optical flowの平均の方向とoptical flowの値の平均の大きさとを、それぞれの領域の中心(白丸P)から伸びる線分Lの向きと長さとで示した図である。
【
図7】動的視差に基づいて、対象物からカメラまでの距離を求める方法を説明するための幾何モデルを示した図である。
【
図8】
図3に示した画像の様子を、異なる視点から立体的に示した図である。
【
図9】上空から撮影した動画像より取得した位置情報に基づいて、都市の様子を立体的に示した図である。
【
図10】走行する車両の正面をカメラで撮影した動画像を用いて、車両前方の距離情報を取得し、車両前方の様子を立体的に示した図である。
【
図11】室内を移動するロボットにカメラを設置し、カメラで撮影された動画像を用いて距離情報を取得し、室内の状況を立体的に示した図である。
【発明を実施するための形態】
【0024】
以下、本発明に係る動画像距離算出装置の一例を示し、図面を用いて詳細に説明する。
図1は、動画像距離算出装置の概略構成を示したブロック図である。動画像距離算出装置100は、記録部101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、CPU(Central Processing Unit:コンピュータ、オプティカルフロー抽出手段、オプティカルフロー値算出手段、距離算出手段、全画素オプティカルフロー抽出手段、全画素オプティカルフロー値算出手段、領域分割手段、領域別オプティカルフロー値算出手段)104とを有している。
【0025】
動画像距離算出装置100には、カメラ200が接続される。カメラ200を用いることにより、周囲の様子を動画像として撮影することが可能である。カメラは、例えば、車両、飛行機、ドローンなどに搭載することが可能になっている。
【0026】
カメラ200には、CCDイメージセンサやCMOSイメージセンサ等の固体撮像素子が設けられている。カメラ200で撮影された動画像は、記録部101に記録される。また、動画像距離算出装置100には、モニタ210が接続されている。
【0027】
記録部101には、カメラ200により撮影された動画像が記録される。より詳細には、カメラ200によって撮影された動画像が、複数のフレーム画像を時系列的に記録したデジタルデータとして、記録部101に記録される。例えば、T時間分の動画像を、カメラ200で撮影した場合を考える。カメラ200が、ΔT時間毎に1枚の割合でフレームの画像(フレーム画像)を撮影する能力がある場合、記録部101には、T/ΔT枚のフレーム画像が時系列的に記録される。
【0028】
動画像距離算出装置100あるいはカメラ200に、フレームバッファーを設けて、カメラ200で撮影された単位時間毎のフレーム画像がフレームバッファーに一時的に記録され、フレームバッファーに記録されたフレーム画像が、時系列的に記録部101に記録される構成であってもよい。また、記録部101に記録される動画像は、カメラ200によりリアルタイムに撮影された動画像には限定されず、予めカメラ200によって撮影された動画像(過去の動画像)であってもよい。
【0029】
対象物からカメラ200までの距離を算出するために用いられる動画像は、デジタルデータで記録されるものだけには限定されない。例えば、アナログデータで記録された動画像であっても、デジタル変換処理を施すことによって、時系列的なフレーム画像として、記録部101に記録することが可能である。時系列的に記録されたフレーム画像を用いることにより、動画像距離算出装置100で距離算出処理を行うことが可能である。
【0030】
また、カメラ200は、周囲の景色等を動画像として撮影可能な撮影手段であれば、その種類・構成は特に限定されない。例えば、一般的なムービーカメラであってもよく、また、スマートフォン等の携帯端末に設けられるカメラであってもよい。
【0031】
記録部101は、一般的なハードディスク等によって構成されている。なお、記録部101の構成は、ハードディスクだけに限定されるものではなく、フラッシュメモリ、SSD(Solid State Drive / Solid State Disk)などであってもよい。記録部101は、動画像を、時系列的な複数のフレーム画像として記録することが可能な記録媒体であるならば、具体的な構成は特に限定されない。
【0032】
CPU104は、記録部101に時系列的に記録された複数のフレーム画像(動画像)に基づいて、フレーム画像(動画像)に映っている対象物からカメラ200までの距離を算出する処理を行う。CPU104は、プログラム(
図2のフローチャートに基づくプログラム)に基づいて、距離算出処理を行うが、その詳細については後述する。
【0033】
ROM102には、カメラ200からフレーム画像に映っている対象物までの距離を算出するためのプログラム等が記録される。RAM103は、CPU104の処理に利用されるワークエリアとして用いられる。
【0034】
実施の形態に係る動画像距離算出装置100では、プログラム(
図2に示すフローチャートに基づくプログラム:動画像距離算出用プログラム)が、ROM102に記録される構成について説明する。しかしながら、プログラムが記録される記録媒体は、ROM102だけに限定されるものではなく、記録部101にプログラムを記録する構成であってもよい。
【0035】
モニタ210には、カメラ200で撮影された動画像や、距離算出処理により3次元的に変換された画像や動画像等(例えば、後述する
図8~
図11に示す画像等)が表示される。モニタ210として、例えば、液晶ディスプレイや、CRTディスプレイなどの一般的な表示装置が用いられる。
【0036】
次に、CPU104が、記録部101に記録された動画像(時系列的に記録されるフレーム画像)に基づいて、動画像に映った対象物からカメラ200までの距離を算出する方法について説明する。
【0037】
ユークリッド(Euclid)は、2000年以上前に、動的視差(motion parallax)という視覚的現象について論じている。動的視差による視覚的現象とは、物体が等速で動いているときに、遠くの物の方が、近くの物よりも、視覚的に動きが小さくなる現象である。動的視差による視覚的現象は、日常的に観測される。既に説明した、AMP法やFMP法では、動的視差による視覚的現象を利用して、動画像に映る対象物からカメラまでの距離を算出する。
【0038】
動画像距離算出装置100では、動的視差による視覚的現象を利用し、カメラで撮影された動画像を用いて、対象物からカメラ200までの距離を算出する。AMP法やFMP法では、動画像におけるいずれかの座標の画素をターゲットピクセルとして設定し、ターゲットピクセルが動画像においてどのように移動するかを求めることによって、動的視差の値を求めている。
【0039】
動画像距離算出装置100では、動画像に映った対象物がどのように移動したかを求める方法として、optical flowと呼ばれる技術を用いる。optical flowとは、動画像(時間的に連続する複数のフレーム画像)における対象物の動きを、ベクトルで表したものである。
【0040】
ここで、optical flowが適用される対象は、時間tにおける2次元のスカラー場である必要がある。時間tにおける2次元のスカラー場をf(x,y,t)で示す。f(x,y,t)のうち、(x,y)は画像の座標を示しており、tは時間(時刻)を示している。このように、2次元のスカラー場をf(x,y,t)と示すことにより、x,yの偏微分である∂f/∂x,∂f/∂yを計算することが可能となる。
【0041】
optical flowは、動画像における対象物(座標)の動きであるため、optical flowを(dx/dt,dy/dt)と表すことができる。この場合、
-∂f/∂t=(∂f/∂x)(dx/dt)+(∂f/∂y)(dy/dt)
の関係式から、optical flow(dx/dt,dy/dt)を求めることが可能となる。
【0042】
また、この関係式に基づいてoptical flowを求める場合には、時間tに関する偏微分∂f/∂tを用いる。このため、optical flowが適用される対象は、時間tについて偏微分の計算が可能となる条件として、画像が連続していることが必要になる。従って、optical flowの適用の対象となる時間tと座標(x,y)とを備えるスカラー場として、カメラ200で撮影される動画像(時間的に連続する複数のフレーム画像)を用いることが可能であり、動画像における対象物の動きを、optical flowとして画素単位で抽出することが可能である。
【0043】
なお、動画像における対象物の動きには、対象物そのものが動画像内で積極的に動く場合と、カメラの動きに伴って対象物が動画像内で受動的に動かされる場合とが含まれる。従って、optical flowは、対象物の積極的な動きや、カメラの移動等に伴う対象物の受動的な動きが、ベクトルとして抽出されたものである。
【0044】
動画像よりOptical flowを抽出する場合には、コンピュータビジョン向けのライブラリを利用することができる。具体的には、Open CVと呼ばれる、広く公開されたオープンソースのコンピュータビジョン向けのライブラリを利用することによって、Optical flowを抽出することが可能である。
【0045】
図2は、動画像距離算出装置100のCPU104が、動画像からoptical flowを抽出して、動画像に映っている対象物までの距離を算出するための処理内容を示したフローチャートである。CPU104は、ROM102に記録されるプログラムを読み出し、プログラムに従って、
図2に示す処理を実行する。また、既に説明したように、カメラ200によって撮影された動画像は、フレーム画像毎に記録部101に記録されている。CPU104は、記録部101に記録されたフレーム毎の動画像に基づいて、時刻tにおけるOptical flowを抽出する。
【0046】
図3は、カメラ200で撮影された動画像のうち、時刻tのフレーム画像を一例として示した画像である。
図3に示す画像は、スクランブル交差点の様子を、ビルの高層部から撮影した様子を示している。
図3に示された画像のそれぞれの画素には、赤 (Red)、緑 (Green)、青 (Blue)の3色の色情報(以下、RGB情報と称する)が付加されている。optical flowを抽出するアルゴリズムでは、「連続するフレーム画像間で対象物の画像上の明るさは変わらない」ことと、「隣接する画素は似たような動きをする」こととを前提としている。このため、各画素のRGB情報は、optical flowを抽出するために重要な要素である。
【0047】
また、各画素のRGB情報に基づいてoptical flowが抽出されるため、近接する画素が同じようなRGB情報を有する場合(このような画素の集まりをテクスチャーのない状態と称する)には、optical flowによる対象物の動きの抽出が困難となる。ただし、テクスチャーのない状態に該当する部分は、例えば、アスファルト(地面)等であって、移動する対象物が存在しない部分になることが多い。従って、optical flowにより対象物の動きが検出されない場合であっても、問題等が生じにくい。
【0048】
カメラ200によって、
図3に示したスクランブル交差点の様子が撮影される場合、主として距離算出の対象物となるものは、交差点を移動する歩行者等の人物群である。
【0049】
CPU104は、記録部101に記録された動画像を読み出し(
図2のS.1)、時刻t-2から時刻t+2までのフレーム画像(動画像)に基づいて、時刻tの画像のOptical flowを抽出する(
図2のS.2)。CPU104は、プログラムに基づいて、動画像から時刻tの画像のoptical flowを抽出する処理(オプティカルフロー抽出機能、全画素オプティカルフロー抽出機能)を行うため、「オプティカルフロー抽出手段」104aや「全画素オプティカルフロー抽出手段」104d(
図1参照)に該当する。
【0050】
図4は、
図3に示した画像に対し、時刻tにおいて抽出されたOptical flowを重ねて表示させた画像を示している。
【0051】
実施の形態に係るCPU104では、時刻t-2から時刻t+2までの動画像に基づいて、時刻tの画像のOptical flowを抽出する場合を一例として説明するが、Optical flowを抽出するための動画像は、時刻t-2から時刻t+2までの動画像には限定されない。また、Optical flowを抽出するための動画像の時間的な長さは、時刻t-2から時刻t+2までの長さに限定されず、これよりも長くても短くてもよい。例えば、対象物の動きの特徴等に応じて、それぞれの動画像のデータ区間(開始時刻と終了時刻)やその長さを変更する場合もあり得る。
【0052】
また、カメラ200によって予め撮影された動画像(過去に撮影された動画像)に基づいてOptical flowを抽出する場合には、時刻t-2から時刻t+2までの動画像に基づいて、時刻tの画像のOptical flowを抽出することが可能である。しかしながら、カメラ200により撮影された時刻tを現在の時刻として捉える場合には、時刻t+1および時刻t+2のフレーム画像(動画像)はまだ撮影されていないため、時刻tのOptical flowを抽出することが難しくなる。この場合には、例えば、時刻t-4から時刻tまでの動画像に基づいて、時刻t-2の画像のOptical flowを抽出することにより、バッチ処理を行うことなく、カメラ200による撮影を継続しながら、optical flowを時系列的に抽出することが可能となる。
【0053】
図4に示すように、optical flowは、動画像のそれぞれの画素毎に抽出される。
図4において、optical flowは線分で示されているが、Open CVのライブラリを用いて抽出される画素毎のoptical flowは、ベクトルとして求められる。
図4では、各画素における対象物の移動方向を線分の向きで示し、移動距離を線分の長さで示している。画素毎に抽出されたoptical flowは、
図4に示すように、様々な方向を向いている。optical flowの方向から、対象物が様々な方向に移動したと判断することができる。
【0054】
optical flowが抽出される条件は、対象物だけが移動する場合には限定されない。例えば、カメラ200が任意の方向に移動する場合や、カメラ200が静止している状態で対象物だけが移動する場合や、カメラ200および対象物の両方が移動する場合が考えられる。撮影時にカメラ200が移動した場合には、カメラ200の移動に伴って静止物が一斉に動いたようにして、動画像に記録(撮影)される。カメラ200が移動する場合に抽出された静止物のoptical flowは、カメラの移動方向および移動距離に応じて、静止物毎に一斉に抽出されるので、抽出されるoptical flowの特性によって、カメラ200が移動したか否かの判断を行うことができる。カメラ200が移動することによって静止物のoptical flowが抽出される場合には、それぞれのoptical flowの値に基づいて、後述する方法を用いることにより、カメラ200からそれぞれの静止物までの距離を求めることが可能である。一方で、カメラ200が静止している状態で対象物だけが移動する場合には、静止物のoptical flowは抽出されず、移動した対象物のoptical flowが抽出されることになる。
【0055】
次に、CPU104は、抽出されたoptical flowに基づいて、optical flowの大きさを示すoptical flowの値を算出する(
図2のS.3)。CPU104は、プログラムに基づいて、optical flowの大きさを、optical flowの値として算出する処理(オプティカルフロー値算出機能、全画素オプティカルフロー値算出機能)を行うため、「オプティカルフロー値算出手段」104bや「全画素オプティカルフロー値算出手段」104e(
図1参照)に該当する。
【0056】
optical flowはベクトルで表されるため、optical flowの値は、ベクトルの大きさ(ベクトルの絶対値)によって算出される。例えば、optical flowのベクトルを(V1,V2)とすると、V1の2乗の値(V12)とV2の2乗の値(V22)との和の値(V12+V22)を求めて、求められた和の値(V12+V22)の平方根を計算することによって、optical flowの値が算出される。
【0057】
動画像距離算出装置100のCPU104では、算出されたoptical flowの値を、動的視差として捉えて対象物からカメラ200までの距離を算出する。このため、静止物(静止した対象物)によって算出されたoptical flowの値も、移動する対象物によって算出されたoptical flowの値も、動的視差と捉えることにより、同じものと判断することができる。
【0058】
また、カメラ200と対象物との両方が動く場合には、カメラ200の動きに対して対象物の動きが大きい場合であっても、対象物の動きに対してカメラ200の動きが大きい場合であっても、それぞれのoptical flowを抽出することができる。従って、後述する動的視差を用いた距離計算によって、対象物からカメラ200までの距離を算出することができる。
【0059】
しかしながら、カメラ200と対象物との動きが同じ方向に同程度動く場合には、対象物のoptical flowを抽出することが困難となる。このため、カメラ200と同じ方向に同程度動いた対象物に関しては、対象物からカメラ200までの距離を算出することが難しい。一方で、カメラ200と反対方向に対象物が動く場合、例えば、カメラ200を設置した自車両が前方に移動する状況で、対向車が自車両の方に向かって移動する状態を撮影した場合には、対向車のoptical flowの値が、自車両の速度と対向車の速度との加算により大きな値になる。この場合には、optical flowの値に基づいて求められる、対向車からカメラ200までの距離が、実際の距離よりも近い距離として算出されてしまう。
【0060】
このように、近づいてくる対向車のoptical flowの値により求められる距離が、実際の対向車からカメラ200までの距離よりも近くなってしまう場合には、この傾向を考慮して、周辺の静止物により算出されるoptical flowの値と、近づいてくる対象物のoptical flowの値とを比較することによって、対向車等の同定を行うことが可能である。
【0061】
図4に示されたoptical flowを確認すると、人物群(歩行者等)のような移動する対象物だけでなく、静止物に対してもoptical flowの抽出が行われている。このため時刻t-2から時刻t+2までの動画像では、カメラ200と対象物(人物群)との両方が動いていることが確認できる。しかしながら、optical flowを抽出するために用いた動画像では、カメラ200の動きに比べて人物群の動きの方が大きいため、optical flowは主として人物群の動きによって生じていると判断できる。
【0062】
一般的に、動画像からoptical flowを抽出する場合には、極めて短い時間の動画像を用いて抽出処理を行う。従って、極端にカメラ200の動きが大きい場合、つまり、極めて短い時間の間にフレーム画像の撮影範囲が大きく変化する場合には、カメラ200の動きに対して対象物の動きが小さくなる。また、フレーム画像の撮影範囲が大きく変化しない場合には、カメラ200の動きに対して対象物の動きの方が大きくなり、動画像より抽出されたoptical flowは、対象物(人物群)の動きによって生じたものと判断することができる。
【0063】
実施の形態に係るCPU104では、各時刻tにおいて、時刻t-2から時刻t+2までの動画像に基づいてoptical flowを抽出しているが、既に説明したように、この動画像の長さ(開始時刻から終了時刻までの間隔)は、任意に設定・変更することが可能である。この動画像の長さを調整することによって、効果的に対象物の動きをoptical flowとして抽出することが可能になる。
【0064】
また、カメラ200の動きに伴って動画像の道路や道路の白線などの表示状態が変化する場合には、この変化に伴って道路や白線等のoptical flowが抽出される。道路などはテクスチャーのない状態(近接する画素が同じようなRGB情報を有する場合)に該当することが多いため、算出されるoptical flowの値は比較的小さくなる傾向がある。optical flowの値が小さい場合には、後述する対象物からカメラまでの距離算出処理によって算出される距離が、大きく(遠く)なる。一方で、人物群のように積極的に動く対象物により算出されるoptical flowの値は、道路などで算出されるoptical flowの値よりも大きくなる傾向があり、optical flowの値が大きい場合には、対象物からカメラまでの距離が小さく(近く)なる。
【0065】
従って、対象物からカメラ200までの距離に所定の閾値を設定し、算出された距離が閾値よりも大きいか小さいかを判断することによって、抽出されたoptical flowが歩行者等の対象物の動きに対応するものであるか、カメラ200の動きに伴う道路等の動きに対応するものであるかを判別することが可能である。但し、optical flowの値の大きさや、閾値に対する大小だけを用いて、全ての歩行者等の対象物を一律に抽出することは難しい。このため、撮影された対象物の動きやカメラの撮影範囲等に応じて柔軟に閾値等を設定して、対象物の検出精度を高めることが好ましい。
【0066】
次に、動画像距離算出装置100のCPU104は、時刻tの画像に対してmean-shift法(中間値シフト法)を適用することにより、画像の領域分割処理を行う(
図2のS.4)。CPU104は、プログラムに基づいて、対象物に対応する領域に画像を分割する処理(領域分割機能)を行うため、「領域分割手段」104f(
図1参照)に該当する。
図5は、
図3に示した時刻tの画像に対してmean-shift法を適用した結果を示した図である。
【0067】
mean-shift法(中間値シフト法)は、既存の領域分割手法のうち最も有力な手法の一つとして知られている。mean-shift法は、広く知られた領域分割手法であって、Open CVと呼ばれる、広く公開されたオープンソースのコンピュータビジョン向けのライブラリを利用することによって実現される。mean-shift法を時刻tの画像(フレーム画像)に適用することにより、画像の画素毎のRGB値(色情報)などに基づき、対象物等の有無に応じて画像の領域分割が行われる。分割された領域のうち同一領域と判断される部分については、カメラからの距離がほぼ等しいと解釈することができる。
【0068】
mean-shift法では、様々なパラメータを設定することが可能であり、パラメータの設定値の調整を行うことにより、分割領域の大きさを調整することが可能である。パラメータの設定値を適切に設定することにより、歩行者等の人物が、一つの分割領域あたり一人だけになるように調整することが可能である。
【0069】
例えば、カメラ200からの距離を算出する対象物がM個(M≧3)ある場合、パラメータを適切に設定し、分割領域が比較的小さくなるように調整することにより、時刻tの画像を、M個の対象物に対応する領域を含むK個(K≧M)の領域に分割することが可能である。ただし、パラメータを設定することによって、分割領域の大きさを大きくしたり、小さくしたりすることは可能であるが、分割領域の数Kは、結果として画像に依存する。このため、パラメータを設定することによって、分割領域の大きさを調整し、分割領域の数の増減の調整を行うことはできても、分割領域の数が予め決められた数になるように、パラメータを設定することは難しい。
【0070】
図5に示した、mean-shift法を適用した画像では、パラメータを適切に設定することによって、結果として、歩行者の一人一人に対応するように、領域境界を示す線分が形成された場合が示されている。また、横断歩道等もテクスチャーが存在するため、横断歩道の白線に対応するようにして、領域境界を示す線分が形成されている。一方で、交差点のアスファルト部分は、テクスチャーのない状態である。このため、アスファルト部分等には、領域境界を示す線分があまり形成されておらず、比較的大きな領域として示されている。
【0071】
次に、CPU104は、mean-shift法によって領域分割された領域毎に、それぞれの領域内で求められたoptical flowの値の平均を算出する(
図2のS.5)。CPU104は、プログラムに基づいて、領域分割された領域毎に、optical flowの値の平均を算出する処理(領域別オプティカルフロー値算出機能)を行うため、「領域別オプティカルフロー値算出手段」104g(
図1参照)に該当する。
【0072】
mean-shift法では、画像の画素毎のRGB値(色情報)などに基づいて、対象物等の有無に応じた領域分割が行われる。特に、mean-shift法のパラメータを適切に設定することにより、歩行者等の人物が一つの分割領域あたり一人になるように、分割を行うことが可能である。分割領域毎に、optical flowの値の平均を求めることにより、分割領域に存在する歩行者等のoptical flowの値を、正規化することが可能となる。
【0073】
図6は、mean-shift法により領域分割されたそれぞれの領域の中心に、それぞれの領域のoptical flowの平均を配置した図である。領域の中心の位置(画素)に白丸(○)Pが示されており、optical flowの平均の方向とoptical flowの値の平均の大きさとが、白丸Pから伸びる線分Lの向きと長さとで示されている。但し、
図6に示した画像では、地面に該当する部分のoptical flowの線分Lおよび白丸Pは表示されていない。
【0074】
上述したように、
図3に示した画像は、カメラ200と人物群(対象物)との両方が動いた状態を示している。このため、
図4に示すように、カメラ200の動きに伴って道路に該当する画素にも、optical flowが抽出される。しかしながら、カメラ200の動きに伴って抽出されたoptical flowに基づき算出される、カメラ200から道路までの距離と、カメラ200と人物との両方の動きに伴って抽出されたoptical flowに基づき算出される、カメラからそれぞれの人物までの距離とを比較すると、距離に差が生じる。
図3に示す時刻tの画像では、人物が道路の上に立っているため、人物の方が道路よりも、カメラからの距離が短くなる。つまり、人物の背の高さ分だけ、距離に違いが生じる。
【0075】
従って、道路に対して一定の高さ(距離)を有する対象物を、人物として判定することによって、道路と人物とを区別することが可能となる。このような道路と人物との違いを判断するための閾値を、予め実験等により決定しておくことによって、道路を除いた人物群だけのoptical flowを抽出することが可能になる。
図6では、mean-shift法によって分割された領域のうち、道路ではなく人物群を示すと判断された領域内のoptical flowの値の平均を領域毎に求めて、それぞれの領域の中心に白丸Pを示し、optical flowの値の平均の距離と向きとを、白丸Pから延びる線分Lで示している。
図6では、複数の人物のそれぞれの位置に対応して、様々な方向に移動する人物のoptical flowが抽出されている。
【0076】
次に、CPU104は、算出された領域毎のoptical flowの値の平均に基づいて、領域毎に、対象物からカメラ200までの距離を算出する(
図2のS.6)。CPU104は、プログラムに基づいて、対象物からカメラまでの距離を、optical flowの値を用いて算出する処理(距離算出機能)を行うため、「距離算出手段」104c(
図1参照)に該当する。
【0077】
CPU104は、領域毎に算出されたoptical flowの値を動的視差と見なして、対象物からカメラ200までの距離を算出する。動的視差に基づいて対象物からカメラ200までの距離を算出する方法は、AMP法やFMP法において、既に提案されている。
【0078】
図7は、動的視差に基づいて、対象物からカメラ200までの距離を求める方法を説明するための幾何モデルを示した図である。
図7の縦軸は、対象物からカメラ200までの仮想距離Zvを示す。仮想距離Zvのプラスの方向は図の下方向である。
図7の横軸は、動的視差qを示す。動的視差qは、optical flowによって求められるピクセル軌跡による実験値、つまり、optical flowの値である。動的視差qのプラスの方向は、図の右方向である。
【0079】
仮想距離Zvの値は、仮想であるため、動的視差qの事後的に定まる係数の視差q0の値に対応するものとする。動的視差の特性として、動的視差の値が大きいほど、対象物からカメラまでの距離は短く、動的視差の値が小さいほど、対象物からカメラまでの距離は長くなる。仮想距離Zvを詳細に表すと、実際には、Zv(q0)という関数で表される。
【0080】
事後的に定まる定数である視差q
0に微少量Δqを加えたもの(q
0+Δq)を、optical flowにより1つの画素で定まったoptical flowの値qと仮定する。すなわち、q=q
0+Δqとなる。また、Zvは、q
0に対応し、仮想距離Zvの微少量ΔZvは、Δqに対応すると仮定する。このとき、両者の関係を線形と仮定すると、
図7に示す幾何モデルのような関係となり、次のような線形の比例関係が成立する。
Zv:q
0=-ΔZv:Δq
【0081】
この比例関係から、以下のような線形微分方程式が成立する。この線形微分方程式を解くと、
-q0・ΔZv=Zv・Δq
ΔZv/Zv=-Δq/q0
logZv=-q/q0+c (cは定数)
となり、上記式を変形することにより
Zv=a・exp(bq)
が成立する。ここで、b=-1/q0の関係があり、bが境界条件として定まると、事後的にq0が定まることになる。
【0082】
また、a,b(a>0,b<0)は不定係数である。またexp(bq)は、自然対数の底の値(ネイピア数:Napier's constant)のbq乗を示している。係数a,bの値は、個別の境界条件で決定することができる。係数a,bが決定されると、カメラ200で撮影された動画像に基づいて、動的視差qの値を算出することができ、Zvの値を、仮想距離ではなく現実世界の実距離として求めることが可能になる。
【0083】
定数a,bの値は、変数Zvと変数qとの変動範囲に基づいて決定される。Zvは、既に説明したように、対象物からカメラ200までの仮想距離を示している。仮想距離は、対象世界(対象となる世界、対象となる環境)によって変わり得る値であり、現実世界の実距離とは異なる値である。このため、動画像の3次元空間(対象世界)の仮想距離Zvに対応する、現実世界の実距離の変動範囲を、レーザーを用いた距離計測(以下、レーザー計測と称する)や視察等の方法で、予め測定しておく(事前に決定しておく)ことにより、対象世界の距離から現実世界の実距離を対応づけて求めることが可能になる。このように、動的視差qの値(optical flowの値)を用いて仮想距離Zvを算出する方法は、相対距離を検出することを示している。
【0084】
現実世界の実距離Z(対象物からカメラまでの距離Z)を、対象世界の仮想距離Zvに対応づけることができれば、
Z=a・exp(bq) ・・・式1
によって、現実世界の実距離Zを求めることができる。つまり、現実世界における対象物からカメラ200までの距離Zを、理論から決定される距離関数として求めることができる。
【0085】
実施の形態に係る動画像距離算出装置100では、動画像の3次元空間(対象世界)の仮想距離Zvに対応する現実世界の実距離の変動範囲を、一例として、レーザー計測によって予め測定する。レーザー計測によって測定された仮想距離Zvの距離範囲を、ZN≦Zv≦ZLで表す(ZN≦ZL)。
【0086】
より詳細には、複数の対象物、例えばM個の対象物が動画像に映っており、M個の対象物からカメラ200までのそれぞれの距離(現実世界の実距離)を算出する場合には、M個の対象物のうち、カメラ200から最も近い場所に位置する対象物までの距離(実距離)と、最も遠い場所に位置する対象物までの距離(実距離)とを、レーザー計測によって予め測定する。M個の対象物のうちでカメラ200から最も遠い場所に位置する対象物までの距離をZLとし、最も近い場所に位置する対象物までの距離をZNとする。M個の対象物のうちで、カメラ200から最も近い対象物と最も遠い対象物とを除いた、M-2個の対象物のそれぞれに対し、optical flowの値に基づいて、対象物からカメラまでの距離(実距離)が、算出されることになる。従って、対象物からカメラ200までの距離を算出するためには、対象物が3個以上(M-2>0)であることが望ましい。
【0087】
動的視差qの値の変動範囲は、個別に動画像から求められる実験的な値により決定される。つまり、予め測定等しておく必要はない。動的視差qの変動範囲は、複数の対象物のoptical flowの値の変動範囲によって求めることができる。このように求められる動的視差qの最大・最小範囲を、μ≦q≦γとする。つまり、複数の対象物のoptical flowの値のうち、最も小さい値がμに該当し、最も大きい値がγに該当することになる。つまり、μとγとは、動画像に基づいて算出された複数のoptical flowの値により定まる実験的な値である。
【0088】
また、μ,γとZL,ZNとの対応関係は、動的視差の性質に基づいて求めることができる。μはZLに対応し、γはZNに対応する。これは、仮想距離Zvが遠いほど、動画像の物体点(物体位置)の移動量が少なくなり、仮想距離Zvが近いほど、動画像の物体点(物体位置)の移動量が多くなるという、動的視差の性質によるものである。このように、仮想距離Zvの距離範囲のうち距離が最も短い距離ZNは、動的視差qの変動範囲のうち最も移動量が多いγに対応し、仮想距離Zvの距離範囲のうち距離が最も長い距離ZLは、動的視差qの変動範囲のうち最も移動量が少ないμに対応することになる。
【0089】
従って、Zv=a・exp(bq)のZvとqの値に、μとZL、およびγとZNとを対応づけて代入することにより、次のa,bに関する連立方程式が成立する。
【0090】
ZL=a・exp(bμ) ・・・式2
ZN=a・exp(bγ) ・・・式3
この式2および式3が、境界条件に該当することになる。
【0091】
この連立方程式を解くと、下記のように、定数a,bを求めることができる。
a=ZL・exp((μ/(γ-μ))log(ZL/ZN)) ・・・式4
b=(1/(μ―γ))log(ZL/ZN) ・・・式5
このように、定数a,bを求めて、上述した式1に適用することによって、仮想距離Zvの値を現実世界の実距離Zとして算出することが可能になる。
【0092】
上述した距離Zは、分割領域毎に求められる。既に説明したように、mean-shift法のパラメータを適切に設定することにより、例えば、結果として、歩行者等の人物が一つの分割領域あたり一人になるように、領域分割を行うことが可能である。つまり、mean-shift法のパラメータを適切に設定することにより、M個の対象物のそれぞれが異なる分割領域になるように、M個よりも多いK個の領域に画像を分割することが可能である。従って、動画像に映った対象物がそれぞれ異なる領域になるように、mean-shift法のパラメータを設定することにより、カメラ200からそれぞれの対象物までの距離Zを求めることができる。
【0093】
その後、CPU104は、時刻tの画像におけるそれぞれの領域の距離Zの値を、領域内の各画素に対応づけて記録する(
図2におけるS.7)。つまり、時刻tの画像における各画素に対して、領域毎に求められた距離Zの値を貼り付ける処理を行う。このように、求められた距離Zを各画素に対応づけて貼り付ける(記録する)ことによって、動画像の時刻tが変化した場合であっても、それぞれの時刻の画像のそれぞれの画素毎に、対象物からカメラ200までの距離を瞬時に取得することが可能になる。距離情報が画素に対応づけられて記録されることにより、各時刻の画像において画素毎に対応づけられる情報は、色情報と距離情報Dからなる(r,g,b,D)となる。この情報は、記録部101に記録される。
【0094】
記録部101に対して動画像の各画素の距離情報Dを記録することにより、動画像に映る対象物の状態を距離情報Dを用いて立体的に把握することが可能になる。
図8は、
図3に示したスクランブル交差点の状態を、異なる視点から立体的に示した画像である。
図8に示した画像では、各領域の中心に配置された平均的なoptical flowの値の大きさを、距離に変換することにより、画像内に位置する人物群毎の位置,高さを求めて、スクランブル交差点の地面や人物群の状態を、視点変換して示している。
【0095】
図7に示した幾何モデルにおいて、動的視差qとして用いられるoptical flowは、任意の方向をとることができ、その方向が制限されることはない。例えば、ドローンや飛行機等に設置されたカメラ200で都市の様子を上空から撮影し、撮影された動画像を用いて、都市の立体的な距離情報を取得することも可能である。
【0096】
図9は、上空から撮影した動画像を用いて画素毎に位置情報を取得して、都市の様子を立体的に示した画像である。動画像を撮影するカメラ200の移動方向は、撮影対象となる都市の建物等に対して必ずしも水平移動したものではない。実施の形態に係る動画像距離算出装置100で距離情報を取得するための条件として、AMP法のように、撮影対象物を撮影するカメラ200の移動方向を、横方向に移動させる必要はなく、また、FMP法のように、カメラ200の移動方向を前方あるいは後方に限定する必要もない。このため、対象物までの距離を算出するための動画像の制約を少なくすることができ、様々な方向に移動するカメラ200で撮影された動画像を用いて、対象物までの距離情報を画素毎に求めることが可能になる。
【0097】
図10は、走行する車両の正面をカメラ200で撮影した動画像に基づいて、車両前方の対象物の距離を画素毎に算出し、算出された距離情報に基づいて車両前方の様子を立体的に示した画像である。走行車両の正面を撮影した動画像に基づいて、対象物からカメラ200までの距離を測定する場合、従来はFMP法を用いていた。
図10に示すように、車両の正面を撮影した動画像に基づいて、optical flowを用いて対象物からカメラ200までの距離を算出する場合であっても、FMP法を用いて作成した立体的な画像と変わらない精度で、立体的な画像を作成することができる。
【0098】
上述したように、動画像距離算出装置100では、AMP法やFMP法のように、カメラの移動方向等の制約を受けないので、様々な方向に移動するカメラ200で撮影された動画像に基づいて、対象物からカメラ200までの距離を算出することが可能である。
【0099】
従って、例えば、ロボットに設置されたカメラで撮影される動画像に基づいて、ロボットの周囲の空間の状況を求めることが可能である。災害時等であって人間が容易に入ることができない空間にロボットを進入させる場合、ロボットのカメラで撮影された動画像に基づいて周囲の状況を判断する必要が生じる。ロボットのカメラで撮影される動画像は、必ずしもロボットの進行方向正面の動画像や横方向に移動された動画像に限定されるものではない。必要に応じてロボットの頭部や胸部や腕部や指部にカメラが設置され、ロボットの動きに応じてカメラが任意の方向に移動されて、動画像が撮影される。任意の方向にカメラが動かされる場合であっても、カメラの動きに応じて、あるいは撮影された対象物の動きに応じてoptical flowが抽出されるため、抽出されたoptical flowに基づいて、対象物等までの距離(壁や床等までの距離を含む)を算出することが可能になる。
【0100】
算出された対象物等までの距離に基づいて、ロボットの胸部や腕部や指部等の制御を行うことにより、災害現場において円滑にロボットを移動等させることができ、より精度の高い制御を行うことが可能になる。また、カメラ200で撮影された動画像に基づいて周囲の距離情報を3次元的に取得することによって、災害現場等における3次元的な地図を作成することが可能となり、その後の救護活動等における機動性を高めることが可能になる。
【0101】
図11は、室内を移動するロボットにカメラを設置し、ロボットのカメラで撮影された動画像を用いて距離情報に取得し、室内の周囲の状況を立体的に示した図である。ロボットを制御することによって、
図11に示されるバルブVへ移動して、ロボットの腕部と指部とでバルブVを回転させる場合を考える。この場合、ロボットは必ずしも連続的に移動しているとは限らないため、カメラで撮影された動画像の周囲の状況が全く変化しない時間が生じ得る。
【0102】
既に説明したように、optical flowは、動画像に映る対象物の動き等を、ベクトルで示したものである。このため、室内において積極的に動く対象物が存在せず、さらにロボットの動きが停止することによって、動画像に変化が生じない状態が継続されると、optical flowを抽出することができず、室内の周囲の距離を算出することができない。この場合には、最後にカメラが動いたときに算出された室内の周囲の距離情報を、カメラが動かない状態(動画像に変化が生じない状態)で維持し続けて、次にカメラが動いた場合に、すでに算出された距離情報を継続的に利用することによって、連続的に室内の周囲の距離を判断することができる。
【0103】
また、カメラが移動する場合であっても、カメラの移動速度は必ずしも一定であるとは限らない。この場合、対象物からカメラまでの距離が同じであっても、時刻毎に算出されるoptical flowの値が異なる値となってしまう。
【0104】
さらに、対象物からカメラ200までの距離を算出する場合には、既に説明したように、2つのダイナミックレンジが必要になる。optical flowの値のダイナミックレンジ(μ,γ)と、求めようとする距離のダイナミックレンジ(ZN,ZL)である。optical flowの値のダイナミックレンジは動画像から算出することができるが、距離のダイナミックは、視察やレーザー計測によって予め測定する必要がある。しかしながら、対象物からカメラまでの距離が長い(距離値が大きい)場合に、距離のダイナミックレンジが正確に定まる保証がない。
【0105】
また、動画像に基づいて算出されるoptical flowの値は、近距離の対象物に比べて遠距離の対象物ほど小さな値になる。また、optical flowの値は、対象物の移動だけでなくカメラの移動によっても変動する。
【0106】
このように、対象物からカメラまでの距離が近距離であるか遠距離であるかによって生じる影響や、カメラの移動速度によって生じる影響によりoptical flowの値が不正確にならないように、CPU104では、optical flowの値の正規化を行うことにより補正を施す。具体的には、各時刻のそれぞれの画像毎に全画素のoptical flowの値を加算し(総和を求めて)、その加算値(総和)で、対応する時刻の画像のそれぞれの画素のoptical flowの値を割ることにより正規化を行う。
【0107】
このように正規化を行うことによって、カメラの移動速度等が異なることにより、抽出されるoptical flowが時刻毎に異なる場合であっても、対象物までの距離が近距離あるいは遠距離であってoptical flowに影響が生じ得る場合であっても、対象物からカメラまでの距離の算出を精度よく行うことが可能になる。この正規化の方法は、カメラの移動速度が一定でない場合等だけでなく、様々な場合に用いることができる。
【0108】
なお、対象物からカメラまでの距離が長い(距離値が大きい)場合には、計算された距離Z(q)に対して係数Cを掛け合わせたCZ(q)を求めて、遠距離の対象物に対応する画素の距離値を算出する。この係数Cは、GPS等の何らかの方法を用い定めることができる。
【0109】
また、動画像を撮影するためのカメラと、動画像を用いて対象物までの距離を算出するためのCPUとを備えていれば、実施の形態に係る動画像距離算出装置100と見なすことができる。
【0110】
近時のスマートフォン等の携帯端末では、一般的にカメラが設けられており、動画像を撮影することが可能になっている。このため、携帯端末のカメラで動画像を撮影し、撮影された動画像を用いて、携帯端末のCPUで各時刻のoptical flowを抽出して、対象物から携帯端末までの距離を算出することが可能である。また、撮影された動画像に基づいて3次元的な画像を作成することが可能である。
【0111】
近年、3次元的な画像を作成する方法として、ToF(Time of Flight)という方式が提案されている。ToFでは、対象物に対して光を投射し、その光の反射光を受光することによって、光の投射から反射光の受光までの時間を計測し、計測された時間に基づいて対象物までの距離を計算する。ToFを用いて3次元的な画像を作成するためには、対象物が乱反射するものであることが必要である。従って、金物や瀬戸物などのように鏡面反射するものに対しては測定精度が低下してしまうという問題があった。また、対象物との間に、雨や煙などのように光の進行を妨げるものが存在しない環境であることが必要であった。また、実際にToFを用いて3次元的な画像を作成できる範囲は、約50cmから約4mまでの範囲であり、適用範囲が制限されるという問題がある。さらに、測定される対象物までの距離とカメラの画素との対応精度が十分でなく、それらの機能を実現するためのハードウェアは、性能向上のための改良が続いている状況であった。
【0112】
これに対して、実施の形態に係る動画像距離算出装置100のように、撮影されたカメラの動画像に基づいてoptical flowを抽出し、対象物までの距離を求める場合には、一般的なカメラと、optical flowの抽出処理を行うことが可能なCPU等を備えれば十分である。このため、一般的なスマートフォン等であっても、精度よく対象物までの距離を算出するとこが可能である。
【0113】
具体的には、スマートフォン等の携帯端末で動画像を撮影する場合に、少しだけ携帯端末を振ることによって、携帯端末の動きに基づくoptical flowを動画像から抽出することができる。携帯端末を振った瞬間の数フレームのフレーム画像から、optical flowを抽出することによって、3次元的な画像を作成することが可能になる。また、携帯端末を静止させた状態で動画像を撮影することにより、動く対象物のoptical flowに基づいて、3次元的な画像を作成することができる。このように、optical flowを抽出して距離を算出することにより、近距離の対象物だけに限らず、遠距離の対象物や、動く対象物を対象として、対象物からカメラまでの距離を算出することができ、3次元的な画像を作成することが可能である。
【0114】
以上、本発明に係る動画像距離算出装置および動画像距離算出用プログラムについて、実施の形態に係る動画像距離算出装置100を一例として示し、詳細に説明を行ったが、本発明に係る動画像距離算出装置および動画像距離算出用プログラムは、実施の形態に示した例には限定されない。
【0115】
例えば、実施の形態に係る動画像距離算出装置100では、CPU104が時刻tの画像に対してmean-shift法を適用することによって領域分割を行い、領域内の全ての画素のoptical flowの値の平均を求めることによって、対象物からカメラ200までの距離を算出する場合について説明した。しかしながら、時刻tの画像に映る対象物からカメラ200までの距離の算出のために、必ずしもmean-shift法を適用する必要はない。
【0116】
例えば、mean-shift法を適用しない場合、すなわち画素毎にoptical flowの値を求めて、画素毎にそれぞれの距離を算出する場合であっても、既に説明したように、時刻tの画像における全ての画素のoptical flowの値の総和を求めて、それぞれの画素のoptical flowの値を全ての画素のoptical flowの値の総和で割ることによって、近距離や遠距離に対する補正や、カメラの移動速度に対する補正を考慮したoptical flowの値を、画素毎に求めることが可能になる。このため、mean-shift法を用いない方法であっても、画素毎の距離を精度よく算出することが可能である。
【0117】
なお、mean-shift法を時刻tの画像に適用しない場合であっても、道路のようにテクスチャーのない状態で算出されるoptical flowの値は、極めて小さな値となるか、あるいはゼロになる。mean-shift法を適用する場合であっても同様に、テクスチャーがない状態で算出されたoptical flowの値の平均は、極めて小さくなる。このため、mean-shift法を適用して算出されたoptical flowの値の平均が小さい領域では、その領域における実際の距離よりも遠い距離が算出されてしまう恐れがある。このような場合には、optical flowの値が小さい領域で算出された距離を、その領域の周辺の領域であって、optical flowの値が小さくない領域で算出された距離で、内挿することによって補正を行う。
【0118】
また、実施の形態に係る動画像距離算出装置100では、時刻tの画像に映る対象物が、例えばM個の場合であって、CPU104が、対象物に対応するM個のoptical flowを抽出して、M個のそれぞれの対象物までの距離を算出する場合について説明した。ここで、Mの数は、視察やレーザー計測により予め測定される最も近い距離ZNの対象物と、最も遠い距離ZLの対象物が含まれていれば十分であり、距離測定の対象となる別の対象物を入れて、M≧3以上であればよい。このため、カメラからの距離を算出する対象物の数は、3以上であれば特に限定されない。
【0119】
さらに、対象物は時刻tの画像に写るものであればよいため、時刻tの画像の全ての画素をそれぞれ対象物とするものであってもよい。つまり、対象物の個数Mが、M=全ての画素数となってもよい。全ての画素毎に、対象物からカメラまでの距離を算出することによって、全ての画素の距離情報を取得することが可能である。また、時刻tの画像の全ての画素をそれぞれ対象物とする場合には、mean-shift法によって、時刻tの画像をM個の対象物に対応するように領域分割する必要がない。
【0120】
さらに、対象物の個数Mを全ての画素数とするのではなく、全画素数の数分の1とすることも可能である。例えば、縦2画素かつ横2画素の合計4画素分の領域を一領域として設定し、領域毎に一つの画素を対象物に設定することにより、4画素に対して一画素ずつ、カメラから該当する画素の対象物までの距離を算出することが可能になる。全画素で距離を算出するのでははく、数画素に一画素の割合で距離の算出を行うことによって、CPU104の処理負担の軽減と処理の高速化を図ることが可能になる。
【符号の説明】
【0121】
100 …動画像距離算出装置
101 …記録部
102 …ROM
103 …RAM
104 …CPU(コンピュータ、オプティカルフロー抽出手段、オプティカルフロー値算出手段、距離算出手段、全画素オプティカルフロー抽出手段、全画素オプティカルフロー値算出手段、領域分割手段、領域別オプティカルフロー値算出手段)
200 …カメラ
210 …モニタ
V …バルブ
L …(領域内のoptical flowの値の平均を示す)線分
P …(分割された領域の中心を示す)白丸