(58)【調査した分野】(Int.Cl.,DB名)
前記仮サンプル点設定手段は、動画像を構成するフレーム画像のうちの設定済フレーム画像に設定されている、前記サンプル数分のサンプル点のそれぞれについて、サンプル点に付与されている重みが大きいほど多くの個数だけ、サンプル点と同じ座標の仮サンプル点を設定する、
ことを特徴とする請求項1又は2に記載の物体位置推定装置。
前記仮サンプル点選択手段は、前記乱数列記憶手段に予め記憶されている前記第1乱数列に基づいて、前記仮サンプル点設定手段により設定された仮サンプル点の中から、前記サンプル数分の仮サンプル点を選択する、
ことを特徴とする請求項3に記載の物体位置推定装置。
前記仮サンプル点移動手段は、前記乱数列記憶手段に予め記憶されている前記第2乱数列に基づいて、前記仮サンプル点選択手段により選択された仮サンプル点のそれぞれを移動する、
ことを特徴とする請求項4に記載の物体位置推定装置。
前記サンプル点設定手段は、前記仮サンプル点移動手段による移動後の仮サンプル点とそれぞれ同じ座標の前記サンプル数分のサンプル点を、前記動画像を構成するフレーム画像のうちの設定対象フレーム画像に設定する、
ことを特徴とする請求項5に記載の物体位置推定装置。
前記重み付与手段は、前記サンプル点設定手段により前記設定対象フレーム画像に設定されたサンプル点のそれぞれに、前記設定対象フレーム画像に設定されたサンプル点における色と、前記設定済フレーム画像に設定されている前記設定対象フレーム画像に設定されたサンプル点に対応するサンプル点における色と、の前記類似度が高いほど大きな重みを新たに付与する、
ことを特徴とする請求項6に記載の物体位置推定装置。
前記物体位置推定手段は、前記設定対象フレーム画像に設定されたサンプル点のそれぞれの座標と、前記重み付与手段により前記設定対象フレーム画像に設定されたサンプル点のそれぞれに前記新たに付与された重みと、に基づいて前記動画像上における前記物体の位置を推定する、
ことを特徴とする請求項7に記載の物体位置推定装置。
前記重み付与手段は、前記サンプル点設定手段により前記設定対象フレーム画像に設定されたサンプル点のそれぞれに、前記設定対象フレーム画像に設定されたサンプル点を中心とする特定領域における色と、前記設定済フレーム画像に設定されている、前記設定対象フレーム画像に設定されたサンプル点に対応するサンプル点を中心とする特定領域における色と、の前記類似度が高いほど大きな重みを新たに付与する、
ことを特徴とする請求項6乃至8のいずれか1項に記載の物体位置推定装置。
【発明を実施するための形態】
【0010】
以下、図面を参照して、本発明の実施形態に係る物体位置推定装置100について説明する。
【0011】
物体位置推定装置100は、撮像装置200から取得された動画像上において、追跡対象の物体の位置を推定する装置である。
図1に示すように、物体位置推定装置100は、物理的には、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、フラッシュメモリ14、RTC(Real Time Clock)15、タッチスクリーン16、インターフェース17、を備える。物体位置推定装置100が備える各構成要素は、バスを介して相互に接続される。
【0012】
CPU11は、物体位置推定装置100の全体の動作を制御する。なお、CPU11は、ROM12に格納されているプログラムに従って動作し、RAM13をワークエリアとして使用する。
【0013】
ROM12には、物体位置推定装置100の全体の動作を制御するためのプログラムやデータが記憶される。
【0014】
RAM13は、CPU11のワークエリアとして機能する。つまり、CPU11は、RAM13にプログラムやデータを一時的に書き込み、これらのプログラムやデータを適宜参照する。
【0015】
フラッシュメモリ14は、各種の情報を記憶する不揮発性メモリである。例えば、フラッシュメモリ14は、各種の乱数列や動画像を記憶する。なお、物体位置推定装置100は、フラッシュメモリ14に代えて、ハードディスクなどを備えていてもよい。
【0016】
RTC15は、計時用のデバイスである。RTC15は、例えば、電池を内蔵し、物体位置推定装置100の電源がオフの間も計時を継続する。RTC15は、例えば、水晶発振子を備える発振回路を備える。
【0017】
タッチスクリーン16は、利用者によりなされたタッチ操作を検知し、検知の結果を示す信号をCPU11に供給する。また、タッチスクリーン16は、CPU11などから供給された画像信号に基づく画像を表示する。このように、タッチスクリーン16は、物体位置推定装置100のユーザインターフェースとして機能する。
【0018】
インターフェース17は、アドホック通信やネットワーク通信により、撮像装置200と通信する。インターフェース17は、CPU11による指示に従って、撮像装置200の動作を制御する。また、インターフェース17は、撮像装置200から動画像を取得し、フラッシュメモリ14やタッチスクリーン16に供給する。インターフェース17は、USB(Universal Serial Bus)やIEEE(Institute of Electrical and Electronic Engineers)1394などのシリアル通信用のインターフェースであってもよいし、NIC(Network Interface Card)などのLAN(Local Area Network)インターフェースであってもよい。
【0019】
撮像装置200は、追跡対象の物体を撮像し、動画像を生成する。なお、追跡対象の物体は、飛行機、車、ボールなどの人工物であってもよいし、星、動物、人、昆虫などの自然のものであってもよい。撮像装置200は、物体位置推定装置100と通信するためのインターフェースを備える。撮像装置200は、物体位置推定装置100による指示に従って動画像を生成する。撮像装置200は、生成した動画像を物体位置推定装置100に供給する。撮像装置200は、例えば、デジタルカメラ、ビデオカメラ、スマートフォンである。
【0020】
次に、
図2を参照して、物体位置推定装置100が備える基本的な機能について説明する。
図2に示すように、物体位置推定装置100は、乱数列生成部101、乱数列記憶部102、仮サンプル点設定部103、仮サンプル点選択部104、仮サンプル点移動部105、サンプル点設定部106、重み付与部107、物体位置推定部108、動画像取得部109を備える。
【0021】
乱数列生成部101は、選択用乱数列(第1乱数列)と移動用乱数列(第2乱数列)とを生成する。選択用乱数列は、設定された仮サンプル点から、サンプル数(サンプル点の個数)分の仮サンプル点を選択するための乱数列である。従って、選択用乱数列は、サンプル数分の乱数を有する。なお、本実施形態では、乱数は、擬似乱数であるものとする。移動用乱数列は、選択された仮サンプル点を移動させるための乱数である。従って、移動用乱数列は、サンプル数分の乱数を有する。
【0022】
ここで、一般的に、乱数を生成するためには、複雑な演算を実行する必要がある。このため、乱数を生成するためには、長い処理時間が必要となる。このため、例えば、物体位置推定装置100は、乱数を用いる直前に、随時、乱数を発生させると、物体位置推定処理を高速に実行できなくなる。そこで、本実施形態では、物体位置推定装置100は、物体位置推定処理の処理速度を低下させないタイミングで、乱数を発生させる。具体的には、例えば、物体位置推定装置100の電源が投入された直後に、前もって、乱数列生成部101が選択用乱数列や移動用乱数列を生成する。なお、乱数列生成部101は、サンプル数分の乱数を高速に発生させるために、連続して乱数を発生させることが好適である。乱数列生成部101は、例えば、CPU11、RTC15を備える。
【0023】
乱数列記憶部102は、乱数列生成部101により生成された選択用乱数列と移動用乱数列とを記憶する。乱数列記憶部102は、例えば、CPU11、フラッシュメモリ14を備える。そして、CPU11は、生成した選択用乱数列や移動用乱数列を、フラッシュメモリ14などに記憶する。
【0024】
仮サンプル点設定部103は、設定済フレーム画像に設定されている、サンプル数分のサンプル点のそれぞれについて、サンプル点と同じ座標の仮サンプル点を設定する。ここで、サンプル点は、動画像、もしくは、動画像を構成するフレーム画像上において、推定される物体の位置を示す点である。ここで、設定済フレーム画像は、動画像を構成するフレーム画像のうち、サンプル点が設定済みのフレーム画像である。なお、サンプル点には、重みが付与される。本実施形態では、サンプル点に付与されている重みは、このサンプル点の物体の位置を示す点としての尤もらしさを示す尤度であるものとする。
【0025】
ここで、仮サンプル点設定部103は、サンプル点に付与されている重みが大きいほど多くの個数、仮サンプル点を設定する。なお、仮サンプル点は、設定対象フレーム画像に新たなサンプル点を設定するための仮のサンプル点である。サンプル点や仮サンプル点は、例えば、フレーム画像上における座標(X軸座標、Y軸座標)により表される。仮サンプル点設定部103は、例えば、CPU11を備える。
【0026】
仮サンプル点選択部104は、乱数列記憶部102に記憶されている選択用乱数列に基づいて、仮サンプル点設定部103により設定された仮サンプル点の中から、サンプル数分の仮サンプル点を選択する。なお、仮サンプル点選択部104は、選択用乱数列に含まれる1個の乱数に基づいて、1個の仮サンプル点を選択することができる。また、仮サンプル点選択部104は、重複を許して、仮サンプル点を選択することができる。つまり、仮サンプル点選択部104は、仮サンプル点設定部103により設定された仮サンプル点の中から、1個の仮サンプル点を、複数回、選択することができる。仮サンプル点選択部104は、例えば、CPU11を備える。
【0027】
仮サンプル点移動部105は、乱数列記憶部102に記憶されている移動用乱数列に基づいて、仮サンプル点選択部104により選択された仮サンプル点のそれぞれを移動させる。例えば、仮サンプル点移動部105は、移動用乱数列に含まれる1個の乱数に基づいて、1個の仮サンプル点を移動させることができる。なお、仮サンプル点を移動させることは、仮サンプル点の座標を、乱数の値に応じて、変化させることである。また、仮サンプル点移動部105は、乱数の値のみに従って仮サンプル点を移動させてもよいし、乱数の値と予測される運動方程式とに従って仮サンプル点を移動させてもよい。
【0028】
この運動方程式は、物体のフレーム画像上における位置を予測する運動方程式である。この運動方程式は、物体位置推定処理が実行される前に、予測された運動方程式であってもよいし、物体位置推定処理の実行中に、推定された物体の位置の軌跡などに基づいて予測された運動方程式であってもよい。仮サンプル点移動部105は、例えば、CPU11を備える。
【0029】
サンプル点設定部106は、仮サンプル点移動部105による移動後の仮サンプル点とそれぞれ同じサンプル点を、設定対象フレーム画像に設定する。なお、設定対象フレーム画像は、動画像を構成するフレーム画像のうち、サンプル点の設定対象となるフレーム画像であって、これからサンプル点を設定しようとしているフレーム画像である。なお、設定済フレーム画像に設定されているサンプル点に基づいて、設定対象フレーム画像にサンプル点を設定することを、リサンプリングという。
【0030】
本実施形態では、設定対象フレーム画像は、動画像を構成するフレーム画像のうち、最新の設定済フレーム画像の次のフレーム画像であり、サンプル点が設定されると最新の設定済フレーム画像となるものとする。つまり、本実施形態では、動画像を構成する全てのフレーム画像にサンプル点が設定されるものとする。なお、リサンプリングにより、フレーム画像の集合体である動画像上において時間の経過とともに移動する物体を、動画像上(フレーム画像上)においてサンプル点が追従することになる。サンプル点設定部106は、例えば、CPU11を備える。
【0031】
重み付与部107は、サンプル点設定部106により設定されたサンプル点のそれぞれに、重みを付与する。サンプル点に付与される重みは、例えば、サンプル点の物体の位置を示す点としての確からしさ(尤度)に応じて付与される。例えば、重み付与部107は、設定対象フレーム画像に設定されたサンプル点に、設定済フレーム画像に設定されている、このサンプル点に対応するサンプル点における色と、設定対象フレーム画像に設定されたサンプル点における色と、の類似度が高いほど大きな重みを付与する。なお、設定対象フレーム画像に設定されたサンプル点に対応するサンプル点とは、設定済フレーム画像に設定されているサンプル点のうち、設定対象フレーム画像に設定されたサンプル点と同じ座標の仮サンプル点の移動前の座標に設定されているサンプル点である。
【0032】
ここで、物体(もしくは、物体の一部)を表す画素の集合体は、輝度値に差がない(色の類似度が高い)確率が高いと予測される。従って、設定済フレーム画像に設定されているサンプル点が、物体の位置を適切に示していたと仮定すると、設定対象フレーム画像に設定された対応するサンプル点が、物体の位置を適切に示す場合、色の類似度が高くなるものと考えられる。つまり、上述した色の類似度が高いことは、リサンプリングの仕方が、物体の移動に応じた適切なものであった確率が高いことを意味する。
【0033】
従って、重み付与部107は、この色の類似度が高いほど、サンプル点に大きな重みを付与する。一方、仮サンプル点設定部103は、サンプル点に付与されている重みが大きいほど、多くの個数、このサンプル点と同じ座標の仮サンプル点を設定する。このような処理を繰り返すうちに、物体の位置を適切に示しているサンプル点が増加し、物体の位置を適切に示していないサンプル点が減少する。結果として、動画像上(フレーム画像上)に設定されているサンプル点は、高い確率で、物体の位置を適切に示すことになる。つまり、サンプル点は、動画像上(フレーム画像上)において、物体の位置を適切に追従するように更新される。重み付与部107は、例えば、CPU11を備える。
【0034】
物体位置推定部108は、設定対象フレーム画像に設定されたサンプル点のそれぞれの座標と、重み付与部107により、設定対象フレーム画像に設定されたサンプル点のそれぞれに付与された重みと、に基づいて、動画像上における物体の位置を推定する。例えば、物体位置推定部108は、サンプル点に付与された重みを加重して、全てのサンプル点の座標の平均値を求めることにより、全てのサンプル点の重心の座標を求める。そして、物体位置推定部108は、全てのサンプル点の重心の座標を、物体の中心の座標であると推定する。物体位置推定部108は、例えば、CPU11を備える。
【0035】
動画像取得部109は、撮像装置200から動画像を取得する。動画像取得部109は、重み付与部107などに、取得した動画像を構成するフレーム画像を1個ずつ供給することができる。動画像取得部109は、例えば、フラッシュメモリ14やインターフェース17を備える。
【0036】
ここで、選択用乱数列は、サンプル数分の一様乱数を有してもよい。なお、一様乱数は、有限の区間内に存在する全ての実数が、同じ確率で現れるような乱数である。ここで、選択用乱数列は、設定された仮サンプル点の中から、サンプル数分の仮サンプル点を選択するために用いられる。従って、選択用乱数列が有する一様乱数は、例えば、設定される仮サンプル点の個数の上限値以下の自然数である。
【0037】
また、移動用乱数列は、サンプル数分の正規乱数を有してもよい。なお、正規乱数は、有限の区間内に存在する全ての実数が、正規分布に従った確率で現れるような乱数である。実際に物体の位置を推定する場合、物体が想定される最大距離を移動する、すなわち物体が想定される最大の速度で運動を常時続けることは考えづらく、次のフレームでは最大距離より短い距離を移動している可能性が高い。そのため、期待値0の正規乱数を用いると、0に近い値が出る確率が増加し「想定される一番遠い位置に移動する可能性は低く、より近い位置に移動する可能性が高い」という状況を反映することができる。また、このような確率分布であるならば他の乱数を用いてもよい。ここで、移動用乱数列は、選択された仮サンプル点を移動させるために用いられる。従って、移動用乱数列が有する正規乱数は、例えば、仮サンプル点の移動量(画素数)の上限値以下の絶対値を有する自然数である。
【0038】
ここで、乱数列生成部101は、少なくとも2個の選択用乱数列と、少なくとも2個の移動用乱数列と、少なくとも2個の一様乱数を有する選択用乱数列選択用乱数列(第3乱数列)と、少なくとも2個の一様乱数を有する移動用乱数列選択用乱数列(第4乱数列)とを生成することができる。
【0039】
なお、少なくとも2個の選択用乱数列のそれぞれは、サンプル数分の乱数を有する。また、少なくとも2個の移動用乱数列のそれぞれは、サンプル数分の乱数を有する。ここで、選択用乱数列選択用乱数列が有する少なくとも2個の一様乱数のそれぞれは、例えば、選択用乱数列の個数を上限とする自然数である。また、移動用乱数列選択用乱数列が有する少なくとも2個の一様乱数のそれぞれは、例えば、移動用乱数列の個数を上限とする自然数である。
【0040】
一方、乱数列記憶部102は、乱数列生成部101により生成された少なくとも2個の選択用乱数列と少なくとも2個の移動用乱数列と選択用乱数列選択用乱数列と移動用乱数列選択用乱数列とを記憶することができる。
【0041】
ここで、仮サンプル点選択部104は、乱数列記憶部102に記憶されている選択用乱数列選択用乱数列に基づいて、乱数列記憶部102に記憶されている少なくとも2個の選択用乱数列の中から1個の選択用乱数列を選択することができる。そして、仮サンプル点選択部104は、選択された1個の選択用乱数列に基づいて、仮サンプル点設定部103により設定された仮サンプル点の中から、サンプル数分の仮サンプル点を選択することができる。
【0042】
また、仮サンプル点移動部105は、乱数列記憶部102に記憶されている移動用乱数列選択用乱数列に基づいて、乱数列記憶部102に記憶されている少なくとも2個の移動用乱数列の中から2個の移動用乱数列を選択することができる。そして、仮サンプル点移動部105は、選択された2個の移動用乱数列に基づいて、仮サンプル点選択部104により選択された仮サンプル点のそれぞれを移動させることができる。ここで、仮サンプル点移動部105は、例えば、選択された2個の移動用乱数列のうち一方の移動用乱数列に基づいて、仮サンプル点のそれぞれをX軸方向に移動させ、他方の移動用乱数列に基づいて、仮サンプル点のそれぞれをY軸方向に移動させることができる。
【0043】
次に、
図3を参照して、選択用乱数列について説明する。なお、上述したように、選択用乱数列は、設定された仮サンプル点の中から、サンプル数分の仮サンプル点を選択するために用いられる。
【0044】
図3は、選択用乱数列の個数がM個であり、選択用乱数列が有する乱数の個数がN個である例を示している。ここで、Mは、予め用意する乱数列の個数(パターン数)であり、自然数である。また、Nは、サンプル数(1個のフレーム画像に設定するサンプル点の個数)であり、自然数である。ここで、Rs[m,n]は、m番目の選択用乱数列のうちのn番目の乱数を示す。なお、Rs[m,n]は、例えば、設定される仮サンプル点の個数の上限値を、上限値とする自然数である。また、mは、M以下の自然数であり、nは、N以下の自然数である。
【0045】
次に、
図4を参照して、移動用乱数列について説明する。なお、
図4(A)は、横軸移動用乱数列を示し、
図4(B)は、縦軸移動用乱数列を示している。横軸移動用乱数列は、選択された仮サンプル点の横軸方向(X軸方向)の移動量のそれぞれを決定するために用いられる。一方、縦軸移動用乱数列は、選択された仮サンプル点の縦軸方向(Y軸方向)の移動量のそれぞれを決定するために用いられる。
【0046】
図4(A)は、横軸移動用乱数列の個数がM個であり、横軸移動用乱数列が有する乱数の個数がN個である例を示している。ここで、Rmx[m,n]は、m番目の横軸移動用乱数列のうちのn番目の乱数を示す。なお、Rmx[m,n]は、例えば、横軸方向に移動可能な画素数の上限値を、絶対値の上限値とする整数である。
【0047】
図4(B)は、縦軸移動用乱数列の個数がM個であり、縦軸移動用乱数列が有する乱数の個数がN個である例を示している。ここで、Rmy[m,n]は、m番目の縦軸移動用乱数列のうちのn番目の乱数を示す。なお、Rmy[m,n]は、例えば、縦軸方向に移動可能な画素数の上限値を、絶対値の上限値とする整数である。
【0048】
次に、
図5を参照して、乱数列選択用乱数列について説明する。なお、
図5(A)は、選択用乱数列選択用乱数列を示し、
図5(B)は、横軸移動用乱数列選択用乱数列を示し、
図5(C)は、縦軸移動用乱数列選択用乱数列を示している。選択用乱数列選択用乱数列は、M個の選択用乱数列の中から、1個の選択用乱数列を選択するために用いられる。横軸移動用乱数列選択用乱数列は、M個の横軸移動用乱数列の中から、1個の横軸移動用乱数列を選択するために用いられる。縦軸移動用乱数列選択用乱数列は、M個の縦軸移動用乱数列の中から、1個の縦軸移動用乱数列を選択するために用いられる。
【0049】
図5(A)は、選択用乱数列選択用乱数列が有する乱数の個数がG個である例を示している。ここで、Gは、自然数である。また、Rss[g]は、選択用乱数列選択用乱数列のうちのg番目の乱数を示す。ここで、Rss[g]は、例えば、Mを上限値とする自然数である。なお、gは、G以下の自然数である。
【0050】
図5(B)は、横軸移動用乱数列選択用乱数列が有する乱数の個数がG個である例を示している。また、Rmxs[g]は、横軸移動用乱数列選択用乱数列のうちのg番目の乱数を示す。ここで、Rmxs[g]は、例えば、Mを上限値とする自然数である。
【0051】
図5(C)は、縦軸移動用乱数列選択用乱数列が有する乱数の個数がG個である例を示している。また、Rmys[g]は、縦軸移動用乱数列選択用乱数列のうちのg番目の乱数を示す。ここで、Rmys[g]は、例えば、Mを上限値とする自然数である。
【0052】
なお、CPU11は、物体位置推定処理の本処理を開始する前に、物体位置推定処理の前処理において、それぞれがN個の乱数を備えるM個の選択用乱数列、それぞれがN個の乱数を備えるM個の横軸移動用乱数列、それぞれがN個の乱数を備えるM個の縦軸移動用乱数列、G個の乱数を備える選択用乱数列選択用乱数列、G個の乱数を備える横軸移動用乱数列選択用乱数列、G個の乱数を備える縦軸移動用乱数列選択用乱数列を生成し、フラッシュメモリ14などに記憶する。
【0053】
次に、
図6を参照して、設定済フレーム画像に設定されているサンプル点について説明する。
【0054】
サンプル点は、動画像上において、追従すべき物体の推定位置を示す点である。ただし、物体位置推定装置100は、物体位置推定処理が開始された直後や、物体位置推定処理の途中で物体を見失った直後は、動画像上のどの
あたりに物体が存在しているのかを正確に推定できない場合がある。このような場合、
図6に示すように、設定済フレーム画像には、物体の位置に依存しない位置にサンプル点が設定されることになる。
【0055】
図6において、Ps[1]、Ps[2]、・・・、Ps[10]は、それぞれ、1番目、2番目、・・・、10番目のサンプル点を示す。なお、
図6においては、理解を容易にするため、サンプル点の個数が10個である例(N=10である例)を示している。
図6に示すサンプル点は、物体600の位置を正確に示していない。しかしながら、後述するように、リサンプリングされる毎に、サンプル点の位置が適切に更新されることにより、徐々に、サンプル点が物体600の位置を示すようになる。なお、サンプル数は、リサンプリングされても不変である。
【0056】
ここで、設定済フレーム画像に設定されているサンプル点のそれぞれに設定される仮サンプル点について説明する。
図7は、設定済フレーム画像に設定されているサンプル点のそれぞれに対して、サンプル点に付与されている尤度に応じた個数の仮サンプル点が設定される様子を示す図である。なお、サンプル点に付与されている尤度は、このサンプル点が設定済フレーム画像上において物体の位置を示す点としての尤もらしさを示す概念である。このように、本実施形態では、サンプル点に付与される重みとして、尤度を採用する。
【0057】
図7は、サンプル点に付与されている尤度が高いほど、このサンプル点に対して設定される仮サンプル点の個数が多くなる様子を示している。このように、物体の位置を示す点としての尤度が高いサンプル点と同じ座標の仮サンプル点の個数が多いと、これらの仮サンプル点は、後述する選択処理により選ばれやすくなる。その結果、サンプル点に付与される尤度が全体的に高くなり、サンプル点により物体の位置が正確に示されるようになることが期待される。
【0058】
本実施形態では、理解を容易にするため、尤度が自然数であり、尤度により示される個数の仮サンプル点が設定されるものとする。例えば、1番目のサンプル点(Ps[1])に付与されている尤度は1であるため、1番目のサンプル点に対しては、1個の仮サンプル点(Psp[1])が設定される。一方、10番目のサンプル点(Ps[10])に付与されている尤度は6であるため、10番目のサンプル点に対しては、6個の仮サンプル点(Psp[15]−Psp[20])が設定される。
【0059】
なお、Psp[1]、Psp[2]、・・・、Psp[20]のそれぞれは、仮サンプル点を示す。ここで、サンプル点に対して設定される仮サンプル点の座標は、このサンプル点の座標と同じである。例えば、Ps[1]の座標とPsp[1]の座標とは同じである。また、Ps[10]の座標とPsp[15]−Psp[20]のそれぞれの座標とは同じである。
【0060】
図8は、サンプル点毎に設定された仮サンプル点を示す図である。なお、
図8は、理解を容易にするため、サンプル点毎に設定された仮サンプル点が、設定対象フレーム画像に設定されている様子を示している。また、
図8では、理解を容易にするため、同じ座標の仮サンプル点を、重ねずに隣接させて表示している。例えば、3番目の仮サンプル点であるPsp[3]と、4番目の仮サンプル点であるPsp[4]とは、同じ座標であるが、見やすいように重ねずに表示されている。
【0061】
次に、設定された仮サンプル点から、サンプル数分の仮サンプル点を選択する手法について説明する。
図9は、設定された仮サンプル点から、サンプル数分の仮サンプル点が選択された様子を示している。
図9では、20個の仮サンプル点(Psp[1]−Psp[20])から、10個の仮サンプル点(Psp[3]、Psp[5]、Psp[6]、Psp[10]、Psp[11]、Psp[13]、Psp[14]、Psp[15]、Psp[16]、Psp[17])が選択された例を示している。
【0062】
ここで、仮サンプル点は、選択用乱数列と選択用乱数列選択用乱数列とに基づいて、選択される。まず、選択用乱数列選択用乱数列に含まれるG個の乱数の中から1個の乱数が選択される。本実施形態では、乱数を選択するためのカウンタ変数により示される要素番号の乱数が、選択用乱数列選択用乱数列から選択されるものとする。なお、このカウンタ変数として、例えば、初期値が1であり、乱数の選択の度に1ずつ増加し、Gの次は1に設定される変数を採用することができる。
【0063】
なお、選択用乱数列選択用乱数列から選択される1個の乱数は、M以下の自然数である。従って、選択用乱数列選択用乱数列から選択される1個の乱数に基づいて、M個の選択用乱数列の中から1個の選択用乱数列が選択される。次に、選択された選択用乱数列に含まれるN個の乱数のそれぞれに基づいて、1個の仮サンプル点が選択され、合計N個の仮サンプル点が選択される。なお、本実施形態では、N=10である。
【0064】
ここで、選択用乱数列に含まれる乱数は、設定される仮サンプル点の個数の上限値以下の自然数である。一方、設定される仮サンプル点の個数は、尤度に応じて変化する場合がある。そこで、1個の乱数から1個の仮サンプル点が適切に選択されるようにする。例えば、選択された1個の乱数をRs[m,n]、設定された仮サンプル点の個数をNspとしたとき、選択される1個の仮サンプル点はPsp[(Rs[m,n]−1)%Nsp+1]として表される。ここで、「%」は、剰余演算子である。
【0065】
例えば、選択された1個の乱数であるRs[m,n]が25、設定された仮サンプル点の個数であるNspが20である場合、5番目の仮サンプル点であるPsp[5]が選択される。上述した処理により、サンプル数分の仮サンプル点が選択される。
【0066】
次に、選択された仮サンプル点のそれぞれを移動させる手法について説明する。
【0067】
仮サンプル点は、横軸移動用乱数列と縦軸移動用乱数列と横軸移動用乱数列選択用乱数列と縦軸移動用乱数列選択用乱数列とに基づいて移動する。まず、横軸移動用乱数列選択用乱数列に含まれるG個の乱数の中から1個の乱数が選択され、縦軸移動用乱数列選択用乱数列に含まれるG個の乱数の中から1個の乱数が選択される。本実施形態では、上述したカウンタ変数により示される要素番号の乱数が、横軸移動用乱数列選択用乱数列と縦軸移動用乱数列選択用乱数列とから選択されるものとする。つまり、本実施形態では、選択用乱数列選択用乱数列から乱数を選択するためのカウンタ変数と、横軸移動用乱数列選択用乱数列から乱数を選択するためのカウンタ変数と、縦軸移動用乱数列選択用乱数列から乱数を選択するためのカウンタ変数と、は共用される。
【0068】
なお、横軸移動用乱数列選択用乱数列から選択される1個の乱数は、M以下の自然数であり、縦軸移動用乱数列選択用乱数列から選択される1個の乱数は、M以下の自然数である。従って、移動用乱数列選択用乱数列から選択される1個の乱数に基づいて、M個の横軸移動用乱数列の中から1個の横軸移動用乱数列が選択され、また、M個の縦軸移動用乱数列の中から1個の縦軸移動用乱数列が選択される。次に、選択された横軸移動用乱数列に含まれるN個の乱数のそれぞれに基づいて、1個の仮サンプル点が横軸方向に移動し、選択された縦軸移動用乱数列に含まれるN個の乱数のそれぞれに基づいて、1個の仮サンプル点が縦軸方向に移動する。結果として、N個の仮サンプル点のそれぞれが、横軸方向と縦軸方向とに移動する。
【0069】
なお、仮サンプル点の移動量は、例えば、横軸方向に何画素、縦軸方向に何画素というように定められる。従って、横軸移動用乱数列に含まれる乱数は、横軸方向の最大移動可能画素数をNxとしたとき、−Nxから+Nxまでの範囲の数であることが好適である。また、縦軸移動用乱数列に含まれる乱数は、縦軸方向の最大移動可能画素数をNyとしたとき、−Nyから+Nyまでの範囲の数であることが好適である。
【0070】
ここで、追跡対象の物体の運動方程式は、予測可能な場合と予測可能でない場合とが考えられる。運動方程式が予測可能な場合として、例えば、物体位置推定処理が開始される前から、物体の動きが予測できる場合のほか、物体位置推定処理の途中で、物体の位置の軌跡に基づいて物体の動きが予測できる場合が考えられる。一方、運動方程式が予測可能でない場合として、例えば、物体位置推定処理が開始直後に、物体の動きが予測できない場合のほか、物体位置推定処理の途中で、物体の位置を見失って物体の動きが予測できなくなった場合が考えられる。
【0071】
ここで、運動方程式が予測可能な場合、仮サンプル点は、この運動方程式に従って横軸方向と縦軸方向とに移動した上で、乱数に従って横軸方向と縦軸方向とに移動する。この場合、例えば、背景の位置に存在するサンプル点に付与される尤度が低下することになり、結果として、物体の近傍にサンプル点が集まることが期待できる。
【0072】
一方、運動方程式が予測可能でない場合、仮サンプル点は、乱数に従って横軸方向と縦軸方向とに移動する。この場合であっても、動画像上において物体と共に移動したサンプル点に付与される尤度は高いため、物体と共に移動したサンプル点が生き残ることが期待できる。特に、背景部分において注目する画素の位置をずらしたときの輝度値の変化(例えば、背景部分において隣り合う画素の輝度値の差分)が、物体部分において注目する画素の位置をずらしたときの輝度値の変化(例えば、物体部分において隣り合う画素の輝度値の差分)よりも相対的に高い場合、物体の近傍にサンプル点が集まることが期待できる。つまり、物体部分の色のばらつきが、背景部分の色のばらつきよりも小さい場合、運動方程式が予測可能でなくとも、物体の近傍にサンプル点が集まることが期待できる。
【0073】
ここで、移動後の仮サンプル点のそれぞれは、設定対象フレーム画像に対するサンプル点として設定される。
図10は、10個の移動後の仮サンプル点(Psp[3]、Psp[5]、Psp[6]、Psp[10]、Psp[11]、Psp[13]、Psp[14]、Psp[15]、Psp[16]、Psp[17])のそれぞれが、設定対象フレーム画像に対する10個のサンプル点(Ps[1]、Ps[2]、Ps[3]、Ps[4]、Ps[5]、Ps[6]、Ps[7]、Ps[8]、Ps[9]、Ps[10])として設定された様子を示している。
【0074】
図6と
図10との比較からも明らかなように、付与されている尤度が高いサンプル点に基づくサンプル点が生き残りやすくなるようにリサンプリング処理が実行されると、物体の近傍にサンプル点が集まることが期待される。従って、このようなリサンプリング処理が繰り返して実行される物体位置推定処理によれば、物体の位置を正確に把握することが期待できる。
【0075】
ここで、設定対象フレーム画像に設定されたサンプル点のそれぞれには、重みが付与される。例えば、設定対象フレーム画像に設定されたあるサンプル点に付与される重みは、このサンプル点の設定済フレーム画像における色と、このサンプル点に対応する設定済フレーム画像上のサンプル点の設定済フレーム画像における色と、の類似度が高いほど高く設定される。
【0076】
なお、上記類似度を定義する手法は、適宜、調整することができる。例えば、フレーム画像がR(Red)、G(Green)、B(Blue)の3つの成分により表されている場合、3つの成分のそれぞれについて求められた輝度値の差の平均値が小さいほど、類似度が高くなるようにしてもよい。もしくは、3つの成分のうち、最も輝度値の差が大きい成分の輝度値の差が小さいほど、類似度が高くなるようにしてもよい。もしくは、3つの成分のうち、注目する成分の輝度値の差が小さいほど、類似度が高くなるようにしてもよい。
【0077】
次に、
図11に示すフローチャートを用いて、物体位置推定装置100が実行する物体位置推定処理について説明する。物体位置推定装置100は、電源が投入されると、
図11に示す物体位置推定処理を実行する。
【0078】
まず、CPU11は、初期化処理を実行する(ステップS101)。具体的には、CPU11は、N個のサンプル点のそれぞれについて、座標と尤度とを初期化する。例えば、CPU11は、N個のサンプル点が、動画像上の全領域に亘って、横軸方向及び縦軸方向に等間隔で配置されるように、N個のサンプル点のそれぞれの座標を決定する。また、CPU11は、N個のサンプル点のそれぞれに、同一の尤度を付与する。CPU11は、N個のサンプル点のそれぞれの座標や尤度を、RAM13に記憶する。
【0079】
また、CPU11は、RAM13に記憶されているカウンタ変数を1に初期化する。また、CPU11は、インターフェース17を介して、撮像装置200に撮像を開始させる。一方、撮像装置200は、CPU11による指示に従って撮像を開始する。以後、撮像装置200は、撮像により生成される動画像を、インターフェース17に供給する。ここで、インターフェース17は、供給された動画像を、フラッシュメモリ14に供給し、記憶させる。
【0080】
CPU11は、ステップS101の処理を完了すると、乱数列を生成する(ステップS102)。より詳細には、CPU11は、種々の演算により、もしくは、RTC15から取得される値などを用いて、M個の選択用乱数列と、M個の横軸移動用乱数列と、M個の縦軸移動用乱数列と、選択用乱数列選択用乱数列と、横軸移動用乱数列選択用乱数列と、縦軸移動用乱数列選択用乱数列と、を生成する。なお、CPU11は、ボックス=ミューラー法を用いて、一様乱数から正規乱数を生成することができる。
【0081】
CPU11は、ステップS102の処理を完了すると、ステップS102において生成した乱数列を記憶する(ステップS103)。具体的には、CPU11は、M個の選択用乱数列と、M個の横軸移動用乱数列と、M個の縦軸移動用乱数列と、選択用乱数列選択用乱数列と、横軸移動用乱数列選択用乱数列と、縦軸移動用乱数列選択用乱数列と、を、フラッシュメモリ14に記憶させる。
【0082】
CPU11は、ステップS103の処理を完了すると、設定対象フレーム画像を取得する(ステップS104)。具体的には、CPU11は、フラッシュメモリ14に記憶されている動画像を構成するフレーム画像のうち、最新のフレーム画像を取得する。つまり、本実施形態では、設定対象フレーム画像は、最新のフレーム画像である。CPU11は、取得した設定対象フレーム画像を、適宜、RAM13に記憶する。
【0083】
CPU11は、ステップS104の処理を完了すると、仮サンプル点を設定する(ステップS105)。例えば、CPU11は、設定済フレーム画像(最新の設定済フレーム画像)に設定されているN個のサンプル点のそれぞれに対して、サンプル点に付与されている尤度が高いほど多くの個数、サンプル点と同じ座標の仮サンプル点を設定する。なお、設定済フレーム画像が存在しない場合、CPU11は、ステップS101における初期化処理で設定されたサンプル点の座標や尤度に基づいて、仮サンプル点を設定する。
【0084】
CPU11は、ステップS105の処理を完了すると、仮サンプル点を選択する(ステップS106)。具体的には、まず、CPU11は、選択用乱数列選択用乱数列に含まれる乱数のうち、カウンタ変数により示される要素番号の乱数を取得する。そして、CPU11は、M個の選択用乱数列の中から、取得した乱数により示される選択用乱数列を取得する。ここで、CPU11は、取得した選択用乱数列に含まれるN個の乱数のそれぞれに基づいて、設定された仮サンプル点の中から、1個の仮サンプル点を選択する。つまり、CPU11は、N個の乱数に基づいて、重複を許して、N個の仮サンプル点を選択する。
【0085】
CPU11は、ステップS106の処理を完了すると、仮サンプル点を移動する(ステップS107)。具体的には、まず、CPU11は、横軸移動用乱数列選択用乱数列に含まれる乱数のうち、カウンタ変数により示される要素番号の乱数を取得する。そして、CPU11は、M個の横軸移動用乱数列の中から、取得した乱数により示される横軸移動用乱数列を取得する。また、CPU11は、縦軸移動用乱数列選択用乱数列に含まれる乱数のうち、カウンタ変数により示される要素番号の乱数を取得する。そして、CPU11は、M個の縦軸移動用乱数列の中から、取得した乱数により示される縦軸移動用乱数列を取得する。
【0086】
ここで、CPU11は、取得した横軸移動用乱数列に含まれるN個の乱数に基づいて、選択されたN個の仮サンプル点をそれぞれ横軸方向に移動する。また、CPU11は、取得した縦軸移動用乱数列に含まれるN個の乱数に基づいて、選択されたN個の仮サンプル点をそれぞれ縦軸方向に移動する。なお、物体の運動方程式が予測可能な場合、CPU11は、選択されたN個の仮サンプル点のそれぞれを、さらに、運動方程式に従った移動量、横軸方向及び縦軸方向に移動する。
【0087】
CPU11は、ステップS107の処理を完了すると、移動後の仮サンプル点をサンプル点に設定する(ステップS108)。具体的には、CPU11は、N個の移動後の仮サンプル点のそれぞれを、設定対象フレーム画像に対して設定する。
【0088】
CPU11は、ステップS108の処理を完了すると、サンプル点に尤度を付与する(ステップS109)。具体的には、CPU11は、設定対象フレーム画像に設定されたN個のサンプル点のそれぞれに対して、設定対象フレーム画像に設定されたサンプル点における色と、設定済フレーム画像(最新の設定済フレーム画像)に設定されている、設定対象フレーム画像に設定されたサンプル点に対応するサンプル点における色と、の類似度が高いほど高い尤度を付与する。
【0089】
CPU11は、ステップS109の処理を完了すると、カウンタ変数をインクリメントする(ステップS110)。具体的には、CPU11は、RAM13に記憶されているカウンタ変数の値がMでない場合、カウンタ変数の値を1増加させ、カウンタ変数の値がMである場合、カウンタ変数の値を1に設定する。
【0090】
CPU11は、ステップS110の処理を完了すると、サンプル点が適切であるか否かを判別する(ステップS111)。サンプル点が適切であるか否かを判別する手法は、適宜、調整することができる。例えば、CPU11は、設定対象フレーム画像に設定されたN個のサンプル点に付与されたN個の尤度に基づいて、サンプル点が適切であるか否かを判別することができる。例えば、CPU11は、N個の尤度の平均値が閾値よりも低い場合、N個の尤度のうちの最高の尤度が閾値よりも低い場合、もしくは、N個の尤度のうち閾値よりも高い尤度の個数が閾値よりも少ない場合、サンプル点が適切でないと判別し、それ以外の場合、サンプル点が適切であると判別することができる。
【0091】
CPU11は、サンプル点が適切であると判別すると(ステップS111:YES)、物体の位置を推定する(ステップS112)。なお、物体の位置を推定する手法は、適宜、調整することができる。例えば、CPU11は、設定対象フレーム画像に設定されたN個のサンプル点の座標の加重平均を求め、求められた座標をN個のサンプル点の重心とする。なお、加重平均の計算時、サンプル点に付与されている尤度に基づいて、サンプル点の座標が重み付けされる。そして、CPU11は、求められたN個のサンプル点の重心を、物体の位置(典型的には、物体の中心位置)と推定することができる。
【0092】
また、CPU11は、物体の位置の履歴をRAM13などに記憶することができる。この場合、CPU11は、RAM13に記憶されている物体の位置の履歴に基づいて、物体の動きを示す運動方程式を推定することができる。
【0093】
一方、CPU11は、サンプル点が適切でないと判別すると(ステップS111:NO)、サンプル点と尤度とを初期化する(ステップS113)。例えば、CPU11は、ステップS101の初期化処理と同様に、N個のサンプル点のそれぞれの座標と、N個のサンプル点のそれぞれの尤度とを、初期化することができる。そして、CPU11は、設定対象フレーム画像に、座標と尤度とが初期化されたN個のサンプル点を設定する。なお、サンプル点が適切でないと判別される典型的な例として、物体が予測外の動きをした場合、物体が正常に撮像できず正常な動画像が生成されない場合などが考えられる。
【0094】
CPU11は、ステップS112又はステップS113の処理を完了すると、ステップS104に処理を戻し、最新のフレーム画像を新たな設定対象フレーム画像としてリサンプリングを継続する。以降、CPU11は、ステップS104からステップS113までの処理を繰り返し実行する。
【0095】
本実施形態によれば、物体位置推定処理の前処理(例えば、ステップS101〜ステップS103の処理)において各種の乱数列が生成され、物体位置推定処理の本処理(例えば、ステップS104〜ステップS113の処理)において各種の乱数列が生成されない。従って、物体位置推定処理の本処理における処理速度の向上が期待できる。
【0096】
また、本実施形態によれば、選択用乱数列、横軸移動用乱数列、縦軸移動用乱数列などが複数個用意され、これらの乱数列を選択するための乱数列が用意される。従って、比較的少ない個数の乱数列に基づいて、バリエーションに富んだ乱数が提供される。
【0097】
なお、選択用乱数列に基づいて選択される仮サンプル点は、サンプル点に付与された尤度に応じて合計の個数が変化する仮サンプル点から選択される。このため、選択用乱数列により提供される乱数がある程度固定化されていたとしても、選択される仮サンプル点に偏りが生じる可能性は低いと考えられる。
【0098】
また、横軸移動用乱数列や縦軸移動用乱数列に基づいて移動する仮サンプル点は、設定された仮サンプル点の中からランダムに選択された仮サンプル点である。このため、横軸移動用乱数列や縦軸移動用乱数列により提供される乱数がある程度固定化され、移動量に偏りがあるとしても、移動対象となる仮サンプル点の座標が変化することで、仮サンプル点の位置に依存した移動量となる可能性は低いと考えられる。
【0099】
(変形例)
本発明は、上記実施形態に開示したものに限られない。
【0100】
本発明において、上記実施形態において説明した構成、機能、動作のどの部分を採用するのかは任意である。また、本発明において、上述した構成、機能、動作のほか、更なる構成、機能、動作が採用されてもよい。
【0101】
上記実施形態では、点同士の色の比較により求められた類似度に基づいて、サンプル点に付与される重みが決定される例について説明した。本発明において、領域同士の色の比較により求められた類似度に基づいて、サンプル点に付与される重みが決定されてもよい。
【0102】
この場合、例えば、重み付与部107は、サンプル点設定部106により設定対象フレーム画像に設定されたサンプル点のそれぞれに、設定対象フレーム画像に設定されたサンプル点を中心とする特定領域における色と、設定済フレーム画像に設定されている、設定対象フレーム画像に設定されたサンプル点に対応するサンプル点を中心とする特定領域における色と、の類似度が高いほど大きな重みを付与する。このように領域単位で色を比較することにより、ノイズなどの影響を減少させることが期待できる。なお、領域単位で色を比較することは、例えば、原色毎に、各領域に含まれる画素の輝度値の平均値(単純平均値もしくは加重平均値)を比較することである。
【0103】
また、特定領域は、サンプル数が少ないほど広く設定されてもよい。ここで、サンプル数が多いほど、物体の位置を正確に推定することが期待できる。一方、サンプル数が少ないほど、物体位置推定処理を高速で実行することが期待できる。また、特定領域が広いほど、少ないサンプル数でも、物体の位置を推定しやすくなることが期待される。一方、特定領域が狭いほど、物体位置推定処理を高速で実行することが期待できる。そこで、サンプル数が少ないほど特定領域が広く設定されることにより、物体の位置を適切に推定することが可能な範囲で、物体位置推定処理の実行速度を高めることが期待できる。なお、特定領域は、例えば、サンプル点との座標(X座標およびY座標)の差が、所定の値以下である点の集合体とすることができる。
【0104】
なお、フレーム画像がRGB形式やHSV(Hue Saturation Lightness)形式などである場合、1画素単位で画素情報を有している。従って、フレーム画像がRGB形式やHSV形式などである場合、特定領域を1画素単位で自由に設定可能である。一方、フレーム画像がYUV形式などである場合、隣接する2画素で画素情報を共有している。従って、フレーム画像がYUV形式などである場合、特定領域を2画素単位で設定することが好適である。
【0105】
上記実施形態では、初期化の際、又は、サンプル点が適切でないことが判別された際、フレーム画像全体に、格子状にサンプル点を配置する例について説明した。本発明において、初期化などの際、サンプル点を配置する手法は、この例に限定されない。
【0106】
例えば、乱数列生成部101などにより予め生成され、乱数列記憶部102などに記憶されている、サンプル数分の一様乱数を有する、横軸用一様乱数列と縦軸用一様乱数列とに基づいて、フレーム画像全体に、ランダムにサンプル点が配置されてもよい。なお、このような横軸用一様乱数列(縦軸用一様乱数列)は、複数個用意されてもよい。この場合、例えば、複数個の横軸用一様乱数列(縦軸用一様乱数列)の中から1個の横軸用一様乱数列(縦軸用一様乱数列)を選択するための一様乱数列選択用乱数列が、乱数列生成部101などにより生成され、乱数列記憶部102に記憶されてもよい。また、例えば、フレーム画像上のどの辺りに物体が存在しているのかが予測可能な場合、物体が存在していると予測される領域に、ランダムに、又は、格子状に、サンプル点が配置されてもよい。
【0107】
上記実施形態では、選択用乱数列の選択のために選択用乱数列選択用乱数列が使用され、横軸移動用乱数列の選択のために横軸移動用乱数列選択用乱数列が使用され、縦軸移動用乱数列の選択のために縦軸移動用乱数列選択用乱数列が使用される例について説明した。本発明において、乱数列の選択のために使用される選択用乱数列が共用されてもよい。また、乱数列の選択のために、選択用乱数列に代えて、インクリメント又はデクリメントされるカウンタ変数が用いられてもよい。
【0108】
また、上記実施形態では、選択用乱数列選択用乱数列から乱数を選択するためのカウンタ変数と、横軸移動用乱数列選択用乱数列から乱数を選択するためのカウンタ変数と、縦軸移動用乱数列選択用乱数列から乱数を選択するためのカウンタ変数と、が共用される例について説明した。本発明において、このカウンタ変数は、選択用乱数列毎に、別々に用意されてもよい。
【0109】
上記実施形態では、設定された仮サンプル点から、サンプル数分の仮サンプル点が選択される際、剰余演算により、1個の乱数から1個の仮サンプル点が選択される例について説明した。本発明において、設定された仮サンプル点から、サンプル数分の仮サンプル点が選択される際、1個の乱数から1個の仮サンプル点を選択する手法は、この例に限定されない。例えば、サンプル数分のサンプル点のそれぞれに付与された重みの合計値が一定の値になるように、各サンプル点に付与する重みを調整することができる。かかる構成によれば、選択用乱数列が有する乱数の上限値を上記一定の値に設定することにより、剰余演算を用いずに、サンプル数分の仮サンプル点が選択される。
【0110】
また、各種の乱数列が有する要素数や、各種の乱数列の個数が上記実施形態で示したものに限定されないことは勿論である。
【0111】
上記実施形態では、電源投入時に、各種の乱数列が生成及び記憶される例について説明した。本発明において、各種の乱数列が生成及び記憶されるタイミングは、この例に限定されない。例えば、物体位置推定処理中の処理負荷が軽い時期に、各種の乱数列が生成(再生成)及び記憶(更新)されてもよい。
【0112】
上記実施形態では、物体位置推定装置と撮像装置とが別の装置である例について説明した。本発明において、物体位置推定装置が撮像装置の機能を有していてもよい。
【0113】
上記実施形態では、動画像を構成する全てのフレーム画像に対して、サンプル点が設定される例について説明した。本発明において、例えば、物体位置推定装置の処理能力に応じて、適宜、動画像を構成するフレーム画像のうち、所定の間隔で間引かれるフレーム画像に対して、サンプル点が設定されてもよい。
【0114】
なお、本発明に係る物体位置推定装置は、専用のシステムによらず、通常のコンピュータシステムを用いても実現可能である。例えば、コンピュータに、上記動作を実行するためのプログラムを、フレキシブルディスク、CD−ROM(Compact Disc Read−Only Memory)、DVD(Digital Versatile Disc)、MO(Magneto Optical Disc)などのコンピュータ読み取り可能な記録媒体に記憶して配布し、これをコンピュータシステムにインストールすることにより、上述の処理を実行する物体位置推定装置を構成しても良い。
【0115】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを記憶しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【0116】
以上、本発明の実施形態について説明したが、この実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態をとることが可能であり、さらに、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、特許請求の範囲に記載された発明とその均等の範囲に含まれる。以下に、本願出願当初の特許請求の範囲に記載された発明を付記する。
【0117】
(付記1)
サンプル数分の乱数を有する第1乱数列と、前記サンプル数分の乱数を有する第2乱数列と、を生成する乱数列生成手段と、
前記乱数列生成手段により生成された第1乱数列と第2乱数列とを記憶する乱数列記憶手段と、
動画像を構成するフレーム画像のうちの設定済フレーム画像に設定されている、前記サンプル数分のサンプル点のそれぞれについて、前記サンプル点に付与されている重みが大きいほど多くの個数、前記サンプル点と同じ座標の仮サンプル点を設定する仮サンプル点設定手段と、
前記乱数列記憶手段に記憶されている第1乱数列に基づいて、前記仮サンプル点設定手段により設定された仮サンプル点の中から、前記サンプル数分の仮サンプル点を選択する仮サンプル点選択手段と、
前記乱数列記憶手段に記憶されている第2乱数列に基づいて、前記仮サンプル点選択手段により選択された仮サンプル点のそれぞれを移動させる仮サンプル点移動手段と、
前記仮サンプル点移動手段による移動後の仮サンプル点とそれぞれ同じ座標の前記サンプル数分のサンプル点を、前記動画像を構成するフレーム画像のうちの設定対象フレーム画像に設定するサンプル点設定手段と、
前記サンプル点設定手段により前記設定対象フレーム画像に設定されたサンプル点のそれぞれに、前記設定対象フレーム画像に設定されたサンプル点における色と、前記設定済フレーム画像に設定されている、前記設定対象フレーム画像に設定されたサンプル点に対応するサンプル点における色と、の類似度が高いほど大きな重みを付与する重み付与手段と、
前記設定対象フレーム画像に設定されたサンプル点のそれぞれの座標と、前記重み付与手段により、前記設定対象フレーム画像に設定されたサンプル点のそれぞれに付与された重みと、に基づいて、前記動画像上における物体の位置を推定する物体位置推定手段と、を備える、
ことを特徴とする物体位置推定装置。
【0118】
(付記2)
前記第1乱数列は、前記サンプル数分の一様乱数を有し、
前記第2乱数列は、前記サンプル数分の正規乱数を有する、
ことを特徴とする付記1に記載の物体位置推定装置。
【0119】
(付記3)
前記乱数列生成手段は、少なくとも2個の前記第1乱数列と、少なくとも2個の前記第2乱数列と、少なくとも2個の一様乱数を有する第3乱数列と、少なくとも2個の一様乱数を有する第4乱数列と、を生成し、
前記乱数列記憶手段は、前記乱数列生成手段により生成された、少なくとも2個の第1乱数列と少なくとも2個の第2乱数列と第3乱数列と第4乱数列と、を記憶し、
前記仮サンプル点選択手段は、前記乱数列記憶手段に記憶されている第3乱数列に基づいて、前記乱数列記憶手段に記憶されている少なくとも2個の第1乱数列の中から1個の第1乱数列を選択し、選択された1個の第1乱数列に基づいて、前記仮サンプル点設定手段により設定された仮サンプル点の中から、前記サンプル数分の仮サンプル点を選択し、
前記仮サンプル点移動手段は、前記乱数列記憶手段に記憶されている第4乱数列に基づいて、前記乱数列記憶手段に記憶されている少なくとも2個の第2乱数列の中から2個の第2乱数列を選択し、選択された2個の第2乱数列に基づいて、前記仮サンプル点選択手段により選択された仮サンプル点のそれぞれを移動させる、
ことを特徴とする付記1又は2に記載の物体位置推定装置。
【0120】
(付記4)
前記重み付与手段は、前記サンプル点設定手段により前記設定対象フレーム画像に設定されたサンプル点のそれぞれに、前記設定対象フレーム画像に設定されたサンプル点を中心とする特定領域における色と、前記設定済フレーム画像に設定されている、前記設定対象フレーム画像に設定されたサンプル点に対応するサンプル点を中心とする特定領域における色と、の類似度が高いほど大きな重みを付与する、
ことを特徴とする付記1乃至3のいずれか1項に記載の物体位置推定装置。
【0121】
(付記5)
前記特定領域は、前記サンプル数が少ないほど広く設定される、
ことを特徴とする付記4に記載の物体位置推定装置。
【0122】
(付記6)
サンプル数分の乱数を有する第1乱数列と、前記サンプル数分の乱数を有する第2乱数列と、を生成する乱数列生成ステップと、
前記乱数列生成ステップにより生成された第1乱数列と第2乱数列とを記憶する乱数列記憶ステップと、
動画像を構成するフレーム画像のうちの設定済フレーム画像に設定されている、前記サンプル数分のサンプル点のそれぞれについて、前記サンプル点に付与されている重みが大きいほど多くの個数、前記サンプル点と同じ座標の仮サンプル点を設定する仮サンプル点設定ステップと、
前記乱数列記憶ステップにより記憶された第1乱数列に基づいて、前記仮サンプル点設定ステップにより設定された仮サンプル点の中から、前記サンプル数分の仮サンプル点を選択する仮サンプル点選択ステップと、
前記乱数列記憶ステップにより記憶された第2乱数列に基づいて、前記仮サンプル点選択ステップにより選択された仮サンプル点のそれぞれを移動させる仮サンプル点移動ステップと、
前記仮サンプル点移動ステップによる移動後の仮サンプル点とそれぞれ同じ座標の前記サンプル数分のサンプル点を、前記動画像を構成するフレーム画像のうちの設定対象フレーム画像に設定するサンプル点設定ステップと、
前記サンプル点設定ステップにより前記設定対象フレーム画像に設定されたサンプル点のそれぞれに、前記設定対象フレーム画像に設定されたサンプル点における色と、前記設定済フレーム画像に設定されている、前記設定対象フレーム画像に設定されたサンプル点に対応するサンプル点における色と、の類似度が高いほど大きな重みを付与する重み付与ステップと、
前記設定対象フレーム画像に設定されたサンプル点のそれぞれの座標と、前記重み付与ステップにより、前記設定対象フレーム画像に設定されたサンプル点のそれぞれに付与された重みと、に基づいて、前記動画像上における物体の位置を推定する物体位置推定ステップと、を含む、
ことを特徴とする物体位置推定方法。
【0123】
(付記7)
コンピュータを、
サンプル数分の乱数を有する第1乱数列と、前記サンプル数分の乱数を有する第2乱数列と、を生成する乱数列生成手段、
前記乱数列生成手段により生成された第1乱数列と第2乱数列とを記憶する乱数列記憶手段、
動画像を構成するフレーム画像のうちの設定済フレーム画像に設定されている、前記サンプル数分のサンプル点のそれぞれについて、前記サンプル点に付与されている重みが大きいほど多くの個数、前記サンプル点と同じ座標の仮サンプル点を設定する仮サンプル点設定手段、
前記乱数列記憶手段に記憶されている第1乱数列に基づいて、前記仮サンプル点設定手段により設定された仮サンプル点の中から、前記サンプル数分の仮サンプル点を選択する仮サンプル点選択手段、
前記乱数列記憶手段に記憶されている第2乱数列に基づいて、前記仮サンプル点選択手段により選択された仮サンプル点のそれぞれを移動させる仮サンプル点移動手段、
前記仮サンプル点移動手段による移動後の仮サンプル点とそれぞれ同じ座標の前記サンプル数分のサンプル点を、前記動画像を構成するフレーム画像のうちの設定対象フレーム画像に設定するサンプル点設定手段、
前記サンプル点設定手段により前記設定対象フレーム画像に設定されたサンプル点のそれぞれに、前記設定対象フレーム画像に設定されたサンプル点における色と、前記設定済フレーム画像に設定されている、前記設定対象フレーム画像に設定されたサンプル点に対応するサンプル点における色と、の類似度が高いほど大きな重みを付与する重み付与手段、
前記設定対象フレーム画像に設定されたサンプル点のそれぞれの座標と、前記重み付与手段により、前記設定対象フレーム画像に設定されたサンプル点のそれぞれに付与された重みと、に基づいて、前記動画像上における物体の位置を推定する物体位置推定手段、として機能させる、
ことを特徴とするプログラム。