以下、実施形態を図面を用いて説明する。
図1は、一実施形態における3次元位置計測装置10の例を示している。図1の3次元位置計測装置10内の破線の矢印は、画像IMG、特徴点の情報INF等のデータの流れの一例を示している。なお、画像IMG、特徴点の情報INF等のデータの流れは、図1の例に限定されない。
3次元位置計測装置10は、例えば、車両等の移動体に搭載されたカメラ100で撮影された画像に基づいて、移動体の周辺の物体の3次元位置を計測する。例えば、3次元位置計測装置10は、駐車作業を支援する駐車支援システムに適用される。駐車支援システムは、例えば、車両の前後左右に搭載された4台のカメラ100で撮影された4枚の画像を合成して、1枚の俯瞰画像を生成する。俯瞰画像は、車両の上から見た画像である。例えば、運転者は、俯瞰画像を見ることにより、自車両の360度の全周囲の状況を把握できる。
なお、この種の俯瞰画像(合成画像)では、自車両周辺の物体が伸びて表示される傾向にあるため、自車両周辺の物体との位置関係が視覚的に分かり難い。このため、例えば、駐車支援システムは、3次元位置計測装置10で計測した物体の3次元位置を俯瞰画像(合成画像)に重畳し、物体までの距離感を分りやすくする。なお、複数のカメラ100(例えば、4台のカメラ100)が用いられる場合、3次元位置計測装置10は、例えば、3次元位置の計測をカメラ100毎に独立して実行する。
例えば、3次元位置計測装置10は、移動ステレオ方式を用いて、物体の3次元位置を算出する。移動ステレオ方式では、3次元位置計測装置10は、1台のカメラ100により撮影された物体を時系列で追跡する。そして、3次元位置計測装置10は、互いに異なる時刻(例えば、現時刻と過去時刻)の画像IMG上の物体の位置の差(視差量)とカメラ100の移動量とを用い、物体の3次元位置を三角測量の原理に基づいて算出する。カメラ100の移動量は、例えば、過去時刻のカメラ100の位置に対する現時刻のカメラ100の相対的な位置に対応する。
3次元位置計測装置10は、例えば、画像取得部20、特徴点抽出部30、特徴点照合部40、3次元位置確定部50、特徴点登録部60および記憶部70、72を有している。画像取得部20は、画像IMGをカメラ100から順次取得する。例えば、画像取得部20は、カメラ100で撮影された画像IMGを順次受け、受けた画像IMGを特徴点抽出部30に順次出力する。画像取得部20が受ける画像IMGは、カラー画像でもよいし、白黒画像でもよい。
特徴点抽出部30は、画像取得部20で取得した画像IMG(以下、取得画像IMGとも称する)から特徴点を抽出する。すなわち、特徴点抽出部30は、処理対象の画像IMGから特徴点を抽出する。例えば、特徴点抽出部30は、取得画像IMGからエッジを抽出する。エッジは、例えば、明るさが急激に変化している箇所である。例えば、特徴点抽出部30は、閾値以上のエッジ強度を有する画素を抽出する。エッジ強度は、例えば、Sobelフィルタ等のエッジ抽出フィルタを用いて抽出される。以下、特徴点抽出部30により抽出された特徴点を抽出特徴点とも称する。
特徴点照合部40は、例えば、抽出特徴点の情報INF10を特徴点抽出部30から受ける。また、特徴点照合部40は、例えば、特徴点登録部60により登録された特徴点(以下、登録特徴点とも称する)の情報INF04を記憶部70から受ける。そして、特徴点照合部40は、登録特徴点と、処理対象の画像IMGから抽出された抽出特徴点とを照合する。
なお、情報INF10は、例えば、抽出特徴点の画像IMG上の位置、抽出特徴点を中心としたパターン情報等を有している。また、情報INF04は、例えば、登録特徴点の画像IMG上の位置、登録特徴点を中心としたパターン情報等を有している。パターン情報は、例えば、所定領域内の輝度値の情報である。例えば、特徴点照合部40は、登録特徴点を中心とした所定領域内の輝度値(登録特徴点を中心としたパターン情報)と抽出特徴点を中心とした所定領域内の輝度値(抽出特徴点を中心としたパターン情報)との差分絶対値和や差分二乗和等を用いて、照合処理を実行する。
例えば、カメラ100の移動により画像IMG上の位置が移動した特徴点では、移動前の特徴点が登録特徴点に対応し、移動後の特徴点が抽出特徴点に対応する。この場合、登録特徴点に対応する抽出特徴点は、登録特徴点の移動後の特徴点である。例えば、特徴点照合部40は、登録特徴点に対応する抽出特徴点を検出した場合、互いに対応する登録特徴点および抽出特徴点を、照合に成功した特徴点として処理する。
なお、例えば、対応する抽出特徴点がない登録特徴点は、照合に失敗した特徴点として処理される。また、例えば、対応する登録特徴点がない抽出特徴点は、新規の特徴点として処理される。登録特徴点と抽出特徴点との照合結果は、3次元位置確定部50に転送される。例えば、特徴点照合部40から3次元位置確定部50に転送される情報INF11は、登録特徴点と抽出特徴点との照合結果、照合に成功した登録特徴点の画像IMG上の位置等が情報INF10に追加されている。
3次元位置確定部50は、例えば、登録特徴点と抽出特徴点との照合結果等を含む情報INF11を特徴点照合部40から受ける。そして、3次元位置確定部50は、登録特徴点に対応する抽出特徴点の3次元位置を算出し、抽出特徴点の3次元位置を確定する。
例えば、3次元位置確定部50は、特徴点照合部40による照合に成功した特徴点に対して、特徴点の視差量を算出する。そして、3次元位置確定部50は、特徴点の3次元位置を、特徴点の視差量、カメラ100の移動量等に基づいて算出する。なお、3次元位置計測装置10は、例えば、取得画像IMG等の画像からカメラ100の移動量を算出してもよいし、カメラ100が搭載されている移動体の移動量からカメラ100の移動量を算出してもよい。移動体の移動量は、例えば、車速や舵角等のセンサ類から直接得られる値に基づいて算出される。移動体の移動に伴いカメラ100が移動するため、以下の説明では、例えば、移動体の移動量をカメラ100の移動量に読み替えてもよい。
また、3次元位置確定部50は、所定の条件に基づいて、特徴点の3次元位置を確定する。例えば、3次元位置確定部50は、特徴点の3次元位置を算出する際に含まれる誤差に基づいて、特徴点の3次元位置を確定するか否かを判定する。以下、特徴点の3次元位置を算出する際に含まれる誤差を3次元位置の誤差とも称する。
例えば、3次元位置確定部50は、3次元位置の誤差を特徴点毎に時系列で比較する。そして、3次元位置確定部50は、3次元位置の誤差が最小になるタイミング(時刻)に算出した特徴点の3次元位置に基づいて、特徴点の3次元位置を確定する。これにより、特徴点として抽出された物体(物体点)の3次元位置が計測される。なお、3次元位置確定部50は、3次元位置の誤差が予め設定された閾値以下のとき、特徴点の3次元位置を確定してもよい。あるいは、3次元位置確定部50は、3次元位置の誤差に拘わらず、3次元位置を算出する度に、特徴点の3次元位置を確定してもよい。
3次元位置確定部50の処理結果に基づく情報INF12、INF13は、記憶部72および特徴点登録部60にそれぞれ転送される。例えば、3次元位置確定部50は、抽出特徴点の3次元位置を確定した場合、特徴点の確定後の3次元位置を示す情報INF12を記憶部72に記憶する。また、3次元位置確定部50は、例えば、3次元位置が確定していない抽出特徴点の情報INF13を、特徴点登録部60に転送する。情報INF13は、例えば、3次元位置が確定していない抽出特徴点の画像IMG上の位置、抽出特徴点を中心としたパターン情報等を有している。なお、3次元位置が確定していない抽出特徴点のうち、3次元位置が算出された抽出特徴点に関しては、算出された3次元位置が情報INF13に含まれてもよい。
特徴点登録部60は、例えば、3次元位置が確定していない抽出特徴点の情報INF13を、3次元位置確定部50から受ける。そして、特徴点登録部60は、3次元位置が確定していない抽出特徴点を登録特徴点として、登録特徴点の情報INF14を記憶部70に記憶する。例えば、情報INF14は、登録特徴点の画像IMG上の位置、登録特徴点を中心としたパターン情報等を有している。
すなわち、特徴点登録部60は、抽出特徴点のうち、3次元位置が確定した抽出特徴点を除く抽出特徴点を、次の処理対象の画像IMGから抽出される特徴点との照合に使用する登録特徴点として、登録する。なお、特徴点登録部60は、例えば、対応する登録特徴点がない抽出特徴点の情報を、特徴点照合部40から受けてもよい。そして、特徴点登録部60は、例えば、照合に成功した抽出特徴点のうちの3次元位置が確定していない抽出特徴点の情報を、3次元位置確定部50から受けてもよい。
記憶部70は、登録特徴点を記憶する。すなわち、特徴点抽出部30で抽出される抽出特徴点と照合される登録特徴点が記憶部70に記憶される。また、記憶部72は、例えば、特徴点の確定後の3次元位置を記憶する。記憶部70、72は、例えば、半導体メモリ、ハードディスク、光ディスク等の記憶装置である。例えば、記憶部70、72は、共通の記憶装置内の異なる領域にそれぞれ割り当てられてもよいし、異なる記憶装置内にそれぞれ割り当てられてもよい。
なお、取得画像IMGから3次元位置を算出する方法については、周知の方法(例えば、特開2011−112507号公報等)を適時選択して用いることができる。以下、取得画像IMGから特徴点の3次元位置を算出する方法の一例を説明する。
先ず、3次元位置計測装置10は、互いに異なる時刻(例えば、現時刻と過去時刻)の画像IMG上の特徴点の位置とカメラ100の投影モデルに基づいて、カメラ100を基準にした局所的な座標系での投影面上の特徴点の位置を算出する。これにより、例えば、局所的な座標系での投影面上の特徴点の現時刻“t”の位置n(t)と、投影面上の特徴点の過去時刻“t−m”の位置n(t−m)とが算出される。そして、式(1)−式(7)に示すように、位置n(t)、n(t−m)等に基づいて、カメラ100を基準にしたカメラ座標系xc(t)での特徴点の3次元位置Q(t)が算出される。また、式(8)に示すように、移動体を基準にした基準座標系Xw(t)での特徴点の3次元位置Q(t)は、3次元位置Q(t)から算出される。
式(1)−式(8)では、変換パラメータRk、Tkは、基準座標系Xw(t)からカメラ座標系xc(t)への変換パラメータを示している。また、変換パラメータRtm、Ttmは、時刻“t−m”での基準座標系Xw(t−m)から時刻“t”での基準座標系Xw(t)への変換パラメータを示している。なお、変換パラメータRk、Rtmは、回転行列であり、変換パラメータTk、Ttmは、並進移動ベクトルである。
例えば、カメラ座標系xc(t)と基準座標系Xw(t)との関係は、変換パラメータRk、Tkを用いて、“xc(t)=Rk*(Xw(t)−Tk)”で表される。また、例えば、基準座標系Xw(t)と基準座標系Xw(t−m)との関係は、変換パラメータRtm、Ttmを用いて、“Xw(t)=Rtm*(Xw(t−m)−Ttm)”で表される。
このとき、回転行列Rtmは、回転角amを用いて、式(1)で表される。
また、並進移動ベクトルTtmは、式(2)で表される。
ここで、式(3)、式(4)による変換を導入する。
なお、式(3)のRkTは、回転行列Rkの転置行列を示している。以下の式においても、上付のTは、転置行列を示している。また、式(4)のIは、単位行列を示している。
さらに、時刻“t”での特徴点の位置n(t)を、Rvmを用いて、式(5)のように変換する。
このとき、時刻“t”のカメラ座標系xc(t)での特徴点の距離l(t)は、式(6)で表される。
したがって、カメラ座標系xc(t)での特徴点の3次元位置Q(t)は、式(7)で表される。
そして、基準座標系Xw(t)での特徴点の3次元位置P(t)は、式(8)で表される。
このように、特徴点の3次元位置P(t)は、取得画像IMGから算出される。特徴点の確定後の3次元位置P(t)は、例えば、記憶部72に記憶される。なお、特徴点の確定後の3次元位置Q(t)が記憶部72に記憶されてもよい。このように、3次元位置計測装置10は、互いに異なる時刻にカメラ100で撮影された物体の画像上の位置の差とカメラ100の移動量とに基づいて物体の3次元位置を計測する。
なお、3次元位置計測装置10の構成は、この例に限定されない。例えば、記憶部70、72は、3次元位置計測装置10の外部に設けられてもよい。あるいは、特徴点抽出部30、特徴点照合部40、3次元位置確定部50、特徴点登録部60等は、特徴点の情報INF等の転送を、互いにアクセス可能な記憶装置を介して実行してもよい。
図2は、図1に示した3次元位置計測装置10の動作の概要を示している。なお、図2は、特徴点の登録に関する動作の一例を示している。図の“n”フレームの画像IMGは、現時刻の画像を示し、“n−1”フレームの画像IMGは、前時刻(現時刻の前の時刻)の画像を示している。また、特徴点FPe(FPe1、FPe2、FPe3)は、抽出特徴点を示し、特徴点FPr(FPr1、FPr2、FPr3、FPr1’、FPr2’)は、登録特徴点を示している。例えば、登録特徴点FPr1、FPr2、FPr3は、前時刻に登録された特徴点を示している。以下、抽出特徴点FPeおよび登録特徴点FPrを、特徴点FPとも称する。
“n”フレーム目の特徴点抽出処理では、特徴点抽出部30は、“n”フレームの画像IMGから特徴点FPe1、FPe2、FPe3を抽出する。図2の例では、抽出特徴点FPe1は、登録特徴点FPr2の移動後の特徴点であり、抽出特徴点FPe2は、登録特徴点FPr3の移動後の特徴点である。
特徴点照合処理では、特徴点照合部40は、前時刻(“n−1”フレーム)で登録された登録特徴点FPr毎に、現時刻(“n”フレーム)で抽出された抽出特徴点FPeとの照合を実行する。例えば、特徴点照合部40は、登録特徴点FPr1に一致する抽出特徴点FPeは存在しないと判定する。照合に失敗した登録特徴点FPr1は、追跡に失敗した特徴点として処理され、記憶部70に記憶されない。
また、例えば、特徴点照合部40は、登録特徴点FPr2は抽出特徴点FPe1に一致すると判定し、登録特徴点FPr3は抽出特徴点FPe2に一致すると判定する。照合に成功した抽出特徴点FPe1、FPe2は、追跡に成功した特徴点であり、記憶部70に記憶される登録特徴点FPrの候補である。
例えば、追跡に成功した抽出特徴点FPe1、FPe2に対しては、3次元位置確定部50により、3次元位置の算出および確定の処理が実行される。図2の例では、3次元位置確定部50は、抽出特徴点FPe2の3次元位置を確定する。また、例えば、現時刻では、3次元位置確定部50は、抽出特徴点FPe1の3次元位置を確定していない。
なお、特徴点照合部40は、登録特徴点FPrと抽出特徴点FPeとの距離が閾値以内であるか否かを照合条件に追加してもよい。例えば、特徴点照合部40は、登録特徴点FPrと抽出特徴点FPeとの距離が閾値より大きい場合、特徴点を中心としたパターンの比較結果に拘わらず、不一致と判定してもよい。
また、特徴点照合部40は、3次元位置が算出されている登録特徴点FPrに対しては、登録特徴点FPrの現時刻(“n”フレーム)の予測位置と抽出特徴点FPeとの距離が閾値以内であるか否かを照合条件に追加してもよい。例えば、3次元位置が算出されている登録特徴点FPの現時刻(“n”フレーム)の予測位置は、移動体の移動量等に基づいて算出される。
特徴点登録処理では、抽出特徴点FPe1、FPe2、FPe3のうち、登録特徴点FPrとの対応が取れなかった特徴点FPe3は、登録特徴点FPr2’として、記憶部70に記憶される。例えば、登録特徴点FPr2’は、現時刻で初めて抽出された新規の特徴点である。また、登録特徴点FPrとの対応が取れた抽出特徴点FPe1、FPe2のうち、3次元位置が確定していない抽出特徴点FPe1は、登録特徴点FPr1’として、記憶部70に記憶される。例えば、登録特徴点FPr1’は、前時刻から継続して追跡される特徴点である。
すなわち、特徴点登録部60は、抽出特徴点FPe1、FPe2、FPe3のうち、3次元位置が確定した抽出特徴点FPe2を除く抽出特徴点FPe1、FPe3を、登録特徴点FPr1’、FPr2’として、記憶部70に記憶する。図の破線は、登録特徴点FPrの候補の1つ(抽出特徴点FPe2)が登録対象から除外されことを示している。このように、登録特徴点FPrとの対応が取れた抽出特徴点FPe1、FPe2のうち、3次元位置が確定した抽出特徴点FPe2は、記憶部70に記憶されない。
これにより、この実施形態では、次時刻(現時刻の次の時刻)の特徴点照合処理の時間を短縮できる。なお、現時刻(“n”フレーム)での3次元位置が確定した特徴点FPe2の次時刻(“n”フレームの次のフレーム)での3次元位置は、例えば、移動体の移動量に基づいて更新されてもよい。
図3は、図1に示した3次元位置計測装置10の動作の一例を示している。図3の動作は、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。例えば、3次元位置計測プログラム等のソフトウエアは、コンピュータに図3の動作を実行させてもよい。すなわち、3次元位置計測装置10は、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。処理S10から処理S50までの一連の処理は、例えば、画像IMG毎に実行される。
処理S10では、画像取得部20は、画像IMGをカメラ100から取得する。処理S20では、特徴点抽出部30は、処理S20で取得した画像IMGの特徴点FPを抽出する。例えば、特徴点抽出部30は、閾値以上のエッジ強度を有する画素を取得画像IMGから抽出する。エッジ強度は、例えば、Sobelフィルタ等のエッジ抽出フィルタを用いて抽出される。
処理S30では、特徴点照合部40は、記憶部70に記憶されている登録特徴点FPrと、処理S20で抽出された抽出特徴点FPeとを照合する。すなわち、特徴点照合部40は、互いに異なる時刻に撮影された画像IMGの特徴点FPを照合する。
処理S40では、3次元位置確定部50は、処理S30で照合が成功した特徴点FPの3次元位置を、互いに対応する特徴点FP(抽出特徴点FPe、登録特徴点FPr)の視差量、カメラ100の移動量等に基づいて算出する。そして、3次元位置確定部50は、所定の条件に基づいて、特徴点FPの3次元位置を確定する。
処理S50では、特徴点登録部60は、処理S20で抽出された抽出特徴点FPeのうち、処理S40で3次元位置が確定した抽出特徴点FPeを除く抽出特徴点FPeを、登録特徴点FPrとして記憶部70に記憶する。すなわち、特徴点登録部60は、例えば、現時刻の画像IMGに対する処理S50において、次時刻の画像IMGに対する処理S30で使用される登録特徴点FPrを登録する。
このように、この実施形態では、処理S20で抽出された抽出特徴点FPeのうち、3次元位置が確定した抽出特徴点FPeは、記憶部70に記憶されない。これにより、この実施形態では、現時刻の画像IMGから抽出された抽出特徴点FPeを全て登録特徴点FPrとして登録する方法に比べて、次時刻の画像IMGの特徴点照合の処理時間を短縮できる。
また、この実施形態では、3次元位置が算出されない特徴点FPの数が増加することを抑制できる。例えば、照合対象の特徴点FPの数を削減するために、互いに近接する複数の特徴点FPの代表点のみを照合する方法では、代表点以外の特徴点FPの3次元位置は、算出されない。これに対し、この実施形態では、特徴点照合の対象から除外される特徴点FPは、3次元位置が確定した特徴点FPである。すなわち、この実施形態では、3次元位置が算出されない特徴点FPの数が増加することを抑制しつつ、照合対象の特徴点FPの数を削減できる。
なお、3次元位置計測装置10の動作は、この例に限定されない。例えば、3次元位置計測装置10は、記憶部72に記憶されている特徴点FPの3次元位置を、移動体の移動量に基づいて更新してもよい。
以上、この実施形態では、3次元位置計測装置10は、画像取得部20、特徴点抽出部30、特徴点照合部40、3次元位置確定部50および特徴点登録部60を有している。画像取得部20は、互いに異なる時刻の画像IMGをカメラ100から順次取得する。特徴点抽出部30は、画像取得部20で取得した画像IMGの特徴点FPを抽出する。特徴点照合部40は、登録特徴点FPrと、特徴点抽出部30で抽出された抽出特徴点FPeとを照合する。3次元位置確定部50は、登録特徴点FPrに対応する抽出特徴点FPeの3次元位置を算出し、抽出特徴点FPeの3次元位置を確定する。特徴点登録部60は、抽出特徴点FPeのうち、3次元位置が確定した抽出特徴点FPeを除く抽出特徴点FPeを、次の処理対象の画像IMGから抽出される特徴点FPとの照合に使用する登録特徴点FPrとして、記憶部70に記憶する。
したがって、この実施形態では、3次元位置が確定した抽出特徴点FPeは、次の画像IMGの特徴点照合に使用される登録特徴点FPrとして、登録されない。すなわち、この実施形態では、特徴点抽出部30で抽出された抽出特徴点FPeを全て登録特徴点FPrとして登録する方法に比べて、照合対象の特徴点FPの数を削減できる。これにより、この実施形態では、例えば、現時刻の画像IMGから抽出した抽出特徴点FPeの3次元位置が確定した場合、次時刻の画像IMGでの特徴点照合処理の時間を短縮できる。すなわち、この実施形態では、3次元位置を算出する際の処理時間の増加を抑制できる。また、この実施形態では、3次元位置が確定していない抽出特徴点FPeは、照合対象から除外されずに、登録特徴点FPrとして登録される。このため、この実施形態では、3次元位置が算出されない特徴点FPの数が増加することを抑制できる。
図4は、別の実施形態における3次元位置計測装置10Aの一例を示している。図1−図3で説明した要素と同様の要素については、同様の符号を付し、これ等については、詳細な説明を省略する。例えば、3次元位置計測装置10Aは、図1に示した3次元位置確定部50および特徴点登録部60の代わりに、3次元位置確定部50Aおよび特徴点登録部60Aを有している。3次元位置計測装置10Aのその他の構成は、図1−図3で説明した実施形態と同様である。
この実施形態では、3次元位置計測装置10Aは、例えば、特徴点FPの情報等を各リストELST、RLST、FLST、ALSTに登録する。図4の3次元位置計測装置10A内の破線の矢印は、画像IMG、リストELST、RLST、FLST、ALST等のデータの流れの一例を示している。なお、図4では、リスト内の一部のデータの流れもリストと同じ符号を用いて示している。また、画像IMG、リストELST、RLST、FLST、ALST等のデータの流れは、図4の例に限定されない。
3次元位置計測装置10Aは、例えば、画像取得部20、特徴点抽出部30、特徴点照合部40、3次元位置確定部50A、特徴点登録部60Aおよび記憶部70、72を有している。画像取得部20は、画像IMGをカメラ100から順次取得する。
特徴点抽出部30は、画像取得部20から取得画像IMGを受け、取得画像IMGの特徴点FPを抽出する。例えば、特徴点抽出部30は、取得画像IMGの各画素のエッジ強度を算出する。そして、特徴点抽出部30は、エッジ強度が閾値以上の箇所を、抽出特徴点FPeとして抽出リストELSTに追加する。また、特徴点抽出部30は、抽出特徴点FPeの位置等を登録した抽出リストELSTを、特徴点照合部40に転送する。
特徴点照合部40は、例えば、抽出特徴点FPeの位置等が登録された抽出リストELSTを受ける。また、特徴点照合部40は、例えば、登録特徴点FPrの位置等が登録された登録リストRLSTを記憶部70から受ける。そして、特徴点照合部40は、登録特徴点FPrと抽出特徴点FPeとを照合し、照合結果を抽出リストELSTに反映する。また、特徴点照合部40は、照合結果を反映した抽出リストELSTを、3次元位置確定部50Aに転送する。
3次元位置確定部50Aは、照合結果が反映された抽出リストELSTを受ける。そして、3次元位置確定部50Aは、照合に成功した特徴点FPの3次元位置を、抽出リストELSTの情報、カメラ100の移動量等に基づいて算出する。また、3次元位置確定部50Aは、例えば、算出した3次元位置の誤差が最小になるタイミング(時刻)の3次元位置に基づいて、特徴点FPの3次元位置を確定する。
例えば、3次元位置確定部50Aは、3次元位置算出部52、誤差算出部54および確定部56を有している。3次元位置算出部52は、例えば、照合に成功した特徴点FPの視差量を抽出リストELSTの情報に基づいて算出する。そして、3次元位置算出部52は、特徴点FPの3次元位置を、特徴点の視差量、カメラ100の移動量等に基づいて算出する。
誤差算出部54は、特徴点FPの3次元位置を算出する際に含まれる誤差を算出する。例えば、誤差算出部54は、図12で説明する式(13)、式(14)等を用いて、3次元位置の誤差を算出する。
確定部56は、例えば、3次元位置の誤差を特徴点FP毎に時系列で比較する。そして、確定部56は、3次元位置の誤差が最小になるタイミング(時刻)に算出した3次元位置に基づいて、特徴点の3次元位置を確定する。すなわち、確定部56は、抽出特徴点FPeの3次元位置を算出する際に含まれる誤差を時系列で比較し、誤差が最小のときに算出した抽出特徴点FPeの3次元位置に基づいて抽出特徴点FPeの3次元位置を確定する。
また、確定部56は、特徴点FPの3次元位置が確定した場合、特徴点FPの確定後の3次元位置等を確定リストFLSTに追加する。これにより、特徴点FPの確定後の3次元位置等が確定リストFLSTに登録される。確定リストFLSTは、例えば、記憶部72に記憶されている。
このように、3次元位置確定部50Aは、特徴点FPの確定後の3次元位置等を確定リストFLSTに追加する。また、3次元位置確定部50Aは、3次元位置算出部52、誤差算出部54、確定部56等の処理結果に基づいて、抽出リストELSTを更新する。そして、3次元位置確定部50Aは、更新した抽出リストELSTを特徴点登録部60Aに転送する。
特徴点登録部60Aは、例えば、現時刻の画像IMGから抽出された抽出特徴点FPeのうち、3次元位置が現時刻以前に確定した抽出特徴点FPeを除く抽出特徴点FPeを、次時刻の画像IMGで使用する登録特徴点FPrとして、記憶部70に記憶する。また、特徴点登録部60Aは、例えば、移動体の移動量に基づいて、確定リストFLSTを更新する。例えば、特徴点登録部60Aは、投影位置算出部62および判定部64を有している。
投影位置算出部62は、例えば、特徴点FPの確定後の3次元位置等が登録された確定リストFLSTを、記憶部72から受ける。そして、投影位置算出部62は、確定リストFLSTに登録されている3次元位置を、移動体の移動量に基づいて更新する。すなわち、投影位置算出部62は、3次元位置が既に確定している特徴点FPの3次元位置を、移動体の移動量に応じて更新する。
例えば、特徴点FPの更新後の3次元位置P’は、特徴点FPの更新前の3次元位置P、移動体の移動量Rj、Tjを用いて、式(9)で表される。移動体の移動量は、例えば、特徴点FPの更新前の3次元位置Pの基準点(座標系の原点)と特徴点FPの更新後の3次元位置P’の基準点(座標系の原点)との距離に対応している。例えば、移動量のパラメータRjは、回転行列であり、移動量のパラメータTjは、並進移動ベクトルである。
投影位置算出部62は、確定リストFLSTに登録されている3次元位置Pを、移動体の移動量に基づいて算出した3次元位置P’に更新する。なお、現時刻の画像IMGから算出された3次元位置は、移動体の移動量が0のときに対応する。すなわち、投影位置算出部62は、現時刻の画像IMGから算出された3次元位置に対する更新値の算出処理を省略できる。
また、投影位置算出部62は、特徴点FPの更新後の3次元位置P’に基づいて、特徴点FPの投影位置を算出する。投影位置算出部62により算出される投影位置は、例えば、特徴点FPの画像IMG上の位置がカメラ100の移動に伴い移動したときの移動後の特徴点FPの画像IMG上の位置に対応している。すなわち、投影位置算出部62は、3次元位置が既に確定している特徴点FPの画像IMG上の投影位置を、移動体の移動量に応じて更新した3次元位置P’に基づいて算出する。そして、投影位置算出部62は、投影位置に基づいて、特徴点FPの登録禁止範囲を設定する。例えば、投影位置算出部62は、特徴点FPの投影位置付近を、特徴点FPの登録禁止範囲に設定する。
なお、特徴点FPの登録禁止範囲は、任意の形状でよい。例えば、特徴点FPの登録禁止範囲は、特徴点FPの投影位置を中心とした円形でもよいし、矩形でもよい。また、特徴点FPの登録禁止範囲の大きさは、固定値でもよいし、特徴点FPとカメラ100との距離に応じた可変値でもよい。
特徴点FPの登録禁止範囲を示す画素位置は、登録禁止リストALSTに登録される。例えば、投影位置算出部62は、特徴点FPの登録禁止範囲を示す画素位置を登録禁止リストALSTに登録し、登録禁止リストALSTを判定部64に転送する。
判定部64は、例えば、登録禁止リストALSTを投影位置算出部62から受ける。また、判定部64は、3次元位置確定部50Aで更新された抽出リストELSTを受ける。そして、判定部64は、登録禁止リストALSTに登録されている登録禁止範囲に新規の抽出特徴点FPeが含まれるか否かを判定する。新規の抽出特徴点FPeは、例えば、抽出リストELSTに登録されている抽出特徴点FPeのうち、対応する登録特徴点FPrがない抽出特徴点FPeである。
新規の抽出特徴点FPeのうち、登録禁止範囲外の新規の抽出特徴点FPeは、登録特徴点FPrとして、登録リストRLSTに追加される。例えば、判定部64は、登録禁止範囲外と判定した新規の抽出特徴点FPeを、登録特徴点FPrとして登録リストRLSTに追加する。
これにより、例えば、現時刻の画像IMGから抽出された新規の抽出特徴点FPeのうち、登録禁止範囲外の新規の抽出特徴点FPeは、次時刻の画像IMGの特徴点照合に使用される登録特徴点FPrとして、登録リストRLSTに追加される。換言すれば、登録禁止範囲に含まれる新規の抽出特徴点FPeは、登録リストRLSTに追加されない。すなわち、判定部64は、画像IMG上の投影位置に基づく登録禁止範囲PARA内の抽出特徴点FPeを、次の処理対象の画像IMGから抽出される特徴点FPとの照合に使用する登録特徴点FPrから除外する。
また、判定部64は、照合に成功した特徴点FPのうち、3次元位置が確定していない抽出特徴点FPeを、登録特徴点FPrとして登録リストRLSTに追加する。これにより、例えば、現時刻の画像IMGから抽出された追跡中の抽出特徴点FPeのうち、3次元位置が確定していない抽出特徴点FPeは、次時刻の画像IMGの特徴点照合に使用される登録特徴点FPrとして、登録リストRLSTに追加される。追跡中の抽出特徴点FPeは、例えば、抽出リストELSTに登録されている抽出特徴点FPeのうち、照合に成功した抽出特徴点FPeである。
このように、判定部64は、例えば、現時刻の画像IMGから抽出された抽出特徴点FPeのうち、3次元位置が現時刻以前に確定した抽出特徴点FPeを除く抽出特徴点FPeを、次時刻の画像IMGで使用する登録特徴点FPrとして、登録リストRLSTに登録する。そして、判定部64は、登録リストRLSTを記憶部70に記憶する。
したがって、この実施形態では、3次元位置が現時刻以前に確定した抽出特徴点FPeは、次時刻の画像IMGの特徴点照合に使用される登録特徴点FPrとして、登録されない。すなわち、この実施形態では、図1−図3で説明した3次元位置計測装置10に比べて、照合対象の特徴点FPの数を削減できる。
なお、3次元位置計測装置10Aの構成は、この例に限定されない。例えば、記憶部70、72は、3次元位置計測装置10Aの外部に設けられてもよい。あるいは、特徴点抽出部30、特徴点照合部40、3次元位置確定部50A、特徴点登録部60A等は、抽出リストELST等の転送を、互いにアクセス可能な記憶装置を介して実行してもよい。例えば、抽出リストELSTは、特徴点抽出部30、特徴点照合部40、3次元位置確定部50A、特徴点登録部60A等からアクセス可能な記憶装置に記憶されてもよい。
また、特徴点抽出部30は、画像IMG上の投影位置に基づく登録禁止範囲を特徴点FPの抽出対象から除外してもよい。この場合にも、図1−図3で説明した3次元位置計測装置10に比べて、照合対象の特徴点FPの数を削減できる。さらに、この場合、図1−図3で説明した3次元位置計測装置10に比べて、画像IMGから特徴点FPを抽出する際の処理時間を短縮できる。したがって、登録禁止範囲を特徴点FPの抽出対象から除外した場合にも、3次元位置を算出する際の処理時間の増加を抑制できる。
3次元位置計測装置10Aは、3次元位置確定部50Aの代わりに図1に示した3次元位置確定部50を有してもよい。あるいは、3次元位置計測装置10Aは、特徴点登録部60Aの代わりに図1に示した特徴点登録部60を有してもよい。また、特徴点登録部60Aは、登録禁止範囲を算出する機能が省かれてもよい。あるいは、投影位置算出部62は、特徴点登録部60の外部に設けられてもよい。
図5は、抽出リストELSTの一例を示している。抽出リストELSTは、例えば、抽出特徴点FPeに対応する要素eの集合である。なお、図5は、i個目の抽出特徴点FPeに対応する要素e[i]の一例を示している。要素e[i]は、現在の特徴点位置ux、uyと、過去の特徴点位置rx、ryと、特徴点パターンpowと、照合成功フラグflag1と、3次元位置px、py、pzと、3次元位置の誤差errと、カウンタ値cntとを有している。
例えば、現在の特徴点位置ux、uyは、特徴点FPの現時刻の画像IMG上の位置に対応している。すなわち、現在の特徴点位置ux、uyは、抽出特徴点FPrの画像IMG上の位置に対応している。過去の特徴点位置rx、ryは、特徴点FPの前時刻の画像IMG上の位置に対応している。すなわち、過去の特徴点位置rx、ryは、登録特徴点FPrの画像IMG上の位置に対応している。特徴点パターンpowは、現時刻の画像IMG上の特徴点FPを中心としたパターン情報である。すなわち、特徴点パターンpowは、現時刻の画像IMGの位置ux、uyを中心としたパターン情報である。
照合成功フラグflag1は、照合が成功したか否かを示すフラグである。例えば、“0”に設定された照合成功フラグflag1は、照合が失敗したことを示している。また、例えば、“1”あるいは“2”に設定された照合成功フラグflag1は、照合が成功したことを示している。なお、この実施形態では、“2”に設定された照合成功フラグflag1は、3次元位置が確定したことを示している。
3次元位置px、py、pzは、特徴点FPの3次元位置を示している。なお、3次元位置px、py、pzは、例えば、カメラ100が搭載される移動体を基準にした基準座標系で表された3次元位置Pでもよいし、カメラ100を基準にしたカメラ座標系で表された3次元位置Qでもよい。3次元位置の誤差errは、特徴点FPの3次元位置の誤差を示している。カウンタ値cntは、特徴点FPの3次元位置を確定するか否かの判定に使用される。
抽出リストELSTは、例えば、特徴点抽出部30が画像IMGの特徴点FPを抽出する前に、初期化される。例えば、初期化後の抽出リストELSTの要素数は、“0”である。そして、例えば、特徴点抽出処理により、抽出特徴点FPeに対応する要素e[i]が抽出リストELSTに追加される。特徴点抽出処理では、例えば、特徴点位置ux、uy、特徴点パターンpow等が、抽出リストELSTの要素e[i]に登録される。特徴点抽出処理で登録されなかった情報(例えば、特徴点位置rx、ry)は、特徴点照合処理等により、登録される。
図6は、登録リストRLSTの一例を示している。登録リストRLSTは、例えば、登録特徴点FPrに対応する要素rの集合である。なお、図6は、i個目の登録特徴点FPrに対応する要素r[i]の一例を示している。要素r[i]は、特徴点位置rx、ryと、特徴点パターンpowと、3次元位置px、py、pzと、3次元位置の誤差errと、カウンタ値cntとを有している。
例えば、特徴点位置rx、ryは、登録特徴点FPrの画像IMG上の位置に対応している。特徴点パターンpowは、前時刻の画像IMGの位置rx、ryを中心としたパターン情報である。前時刻の画像IMGは、例えば、登録特徴点FPrとして登録される抽出特徴点FPeが抽出された画像IMGである。すなわち、特徴点パターンpowは、前時刻の画像IMG上の特徴点FPを中心としたパターン情報である。
3次元位置px、py、pzは、登録特徴点FPeの3次元位置を示している。3次元位置の誤差errは、登録特徴点FPeの3次元位置の誤差を示している。カウンタ値cntは、特徴点FPの3次元位置を確定するか否かの判定に使用される。登録リストRLSTの特徴点位置rx、ry等の情報は、照合結果に応じて、抽出リストELSTに引き継がれる。
図7は、確定リストFLSTの一例を示している。確定リストFLSTは、例えば、3次元位置が確定した特徴点FPに対応する要素fの集合である。なお、図7は、i個目の特徴点FPに対応する要素f[i]の一例を示している。要素f[i]は、3次元位置px、py、pzおよび更新フラグflag2を有している。
例えば、3次元位置px、py、pzは、特徴点FPの確定後の3次元位置を示している。更新フラグflag2は、3次元位置px、py、pzがカメラ100(あるいは、カメラ100が搭載されている移動体)の移動量に基づいて更新された否かを示している。例えば、“0”に設定された更新フラグflag2は、3次元位置px、py、pzが更新されていないことを示している。すなわち、“0”に設定された更新フラグflag2は、例えば、3次元位置px、py、pzが前時刻の移動体の位置を基準にした座標系での3次元位置であることを示している。また、例えば、“1”に設定された更新フラグflag2は、3次元位置px、py、pzが更新されていることを示している。すなわち、“1”に設定された更新フラグflag2は、例えば、3次元位置px、py、pzが現時刻の移動体の位置を基準にした座標系での3次元位置であることを示している。
図8は、登録禁止リストALSTの一例を示している。登録禁止リストALSTは、例えば、画像位置dx、dyを有する要素aの集合である。なお、図8は、i個目の要素a[i]の一例を示している。画像位置dx、dyは、特徴点FPの登録禁止範囲を示す情報である。例えば、登録禁止範囲の大きさが固定されている場合、画像位置dx、dyは、登録禁止範囲の中心を示す座標でもよい。あるいは、登録禁止範囲の大きさが固定された矩形領域の場合、画像位置dx、dyは、矩形領域の角を示す座標でもよい。登録禁止リストALSTは、例えば、投影位置算出部62が特徴点FPの投影位置を算出する前に初期化される。例えば、初期化後の登録禁止リストALSTの要素数は、“0”である。
図9は、カメラ100から特徴点FPまでの距離と誤差との関係の一例を示している。図9の特徴点FPは、カメラ100(100a、100b)で撮影される物体点を示している。図9のケース1は、カメラ100(100a、100b)から特徴点FPまでの距離がケース2に比べて遠い場合を示している。すなわち、図9のケース2は、カメラ100(100a、100b)から特徴点FPまでの距離がケース1に比べて近い場合を示している。
カメラ100の画像IMG(IMG1a、IMG1b、IMG2a、IMG2b)の1画素には、一定の大きさがある。このため、特徴点FPが図9の網掛けの範囲RNG(RNG1、RNG2)内の場合、特徴点FPの画像IMG上の位置は変化しない。すなわち、特徴点FPの3次元位置を画像IMGから算出する場合、特徴点FPの3次元位置に誤差が含まれる。図9に示したように、ケース1の範囲RNG1は、ケース2の範囲RNG2より大きい。すなわち、カメラ100から特徴点FPまでの距離が遠くなるにしたがい、誤差は大きくなる。換言すれば、カメラ100から特徴点FPまでの距離が近くなるにしたがい、誤差は小さくなる。
図10は、特徴点FPの3次元位置の誤差の時系列推移の一例を示している。図10の特徴点FPは、カメラ100で撮影される物体点を示している。時刻t1から時刻t3までの期間では、カメラ100から特徴点FPまでの距離は、カメラ100の移動に伴い近くなる。そして、時刻t3から時刻t5までの期間では、カメラ100から特徴点FPまでの距離は、カメラ100の移動に伴い遠くなる。すなわち、時刻t3に、カメラ100から特徴点FPまでの距離が最も近くなる。
したがって、時刻t1から時刻t3までの期間では、特徴点FPの3次元位置の誤差は、時間の経過に伴い小さくなる。そして、時刻t3から時刻t5までの期間では、特徴点FPの3次元位置の誤差は、時間の経過に伴い大きくなる。すなわち、時刻t3に、特徴点FPの3次元位置の誤差が最も小さくなる。したがって、3次元位置確定部50Aは、誤差の時系列推移を観測することにより、特徴点FPの3次元位置の誤差が最も小さくなるタイミング(図10では、時刻t3)を判断できる。
図11は、特徴点FPの3次元位置の誤差を算出する際のモデルの一例を示している。図11の特徴点FPは、カメラ100(n−1)、100(n)で撮影される物体点を示している。距離l1は、時刻“n−1”のときのカメラ100(n−1)と特徴点FPとの距離である。距離l2は、時刻“n”のときのカメラ100(n)と特徴点FPとの距離である。距離lbは、時刻“n−1”のときのカメラ100(n−1)と時刻“n”のときのカメラ100(n)との距離である。角度a1は、カメラ100(n−1)と特徴点FPとを結ぶ線と、カメラ100(n−1)とカメラ100(n)とを結ぶ線とがなす角である。角度a2は、カメラ100(n)と特徴点FPとを結ぶ線と、カメラ100(n)とカメラ100(n−1)とを結ぶ線の延長線とがなす角である。
距離l1、l2の関係は、角度a1、a2を用いて、式(10)で表される。また、距離l1、l2、lbの関係は、角度a1、a2を用いて、式(11)で表される。
さらに、式(10)および式(11)より、距離l2は、式(12)で表される。
距離l2に対する角度a1の変化での微分係数は、式(13)で表される。
ここで、角度a1の最大変化量をdaとした場合、特徴点FPの3次元位置の誤差l2errは、式(14)で表される。なお、最大変化量daは、例えば、0.5画素に相当する角度であり、特徴点FPの画像IMG上の位置に基づいて算出される。
例えば、誤差算出部54は、式(13)、式(14)等を用いて、3次元位置の誤差l2errを算出する。そして、確定部56は、例えば、誤差l2errが最小のときに算出した抽出特徴点FPeの3次元位置に基づいて、抽出特徴点FPeの3次元位置を確定する。
図12は、特徴点FPの3次元位置を確定するタイミングの一例を示している。図の横軸は時間を示し、図の縦軸は3次元位置の誤差を示している。例えば、時刻t10に、特徴点FPの照合が初めて成功し、3次元位置の誤差の計測が開始される。時刻t10では、3次元位置の誤差は、閾値より大きい。
時刻t10から時刻t20までの期間では、特徴点FPの3次元位置の誤差は、時間の経過に伴い小さくなり、閾値以下になる。時刻t20以降では、特徴点FPの3次元位置の誤差は、時間の経過に伴い大きくなる。すなわち、時刻t20に、特徴点FPの3次元位置の誤差が最も小さくなる。
したがって、時刻t10から時刻t20までの期間では、誤差の最小値は、順次更新される。そして、時刻t20以降では、誤差の最小値は、更新されない。例えば、確定部56は、誤差の最小値が更新されなかった時刻t20を判断開始タイミングとして、時間の計測を開始する。そして、確定部56は、例えば、時刻t20から判断時間TJD経過後の時刻t30まで、誤差の最小値が更新されない場合、誤差が最小の時刻t20に算出した3次元位置の精度が高いと判定する。
このように、時刻t20から判断時間TJD経過後の時刻t30に、特徴点FPの3次元位置が確定する。例えば、確定部56は、時刻t20に算出された特徴点FPの3次元位置の更新値を、特徴点FPの確定後の3次元位置として確定リストFLSTに登録する。時刻t20に算出された特徴点FPの3次元位置の更新値は、例えば、時刻t20に算出された特徴点FPの3次元位置、移動体の時刻t20から時刻t30までの移動量等に基づいて、算出される。
図13は、特徴点FPの画像IMG上の位置とカメラ100の位置との関係の一例を示している。図13のカメラ100(n)は現時刻“n”のカメラ100の位置を示し、カメラ100(n−1)は前時刻“n−1”のカメラ100の位置を示している。また、図13の黒丸の特徴点FPは、カメラ100(n−1)、100(n)で撮影される物体点を示し、網掛けの丸の特徴点FPは、画像IMGに投影された物体点を示している。例えば、画像IMG(n−1)上の特徴点FP(n−1)は、特徴点FPを前時刻“n−1”の画像IMG(n−1)に投影したときの位置を示している。そして、画像IMG(n)上の特徴点FP(n)は、特徴点FPを現時刻“n”の画像IMG(n)に投影したときの位置を示している。
例えば、特徴点FPの3次元位置が前時刻“n−1”に算出されている場合、投影位置算出部62は、特徴点FPを現時刻“n”の画像IMG(n)に投影したときの位置を、移動体の移動量等に基づいて予測できる。例えば、投影位置算出部62は、上述した式(9)を用いて、特徴点FPの3次元位置の更新値を算出する。特徴点FPの3次元位置の更新値が時刻“n”の移動体を基準にした基準座標系の場合、投影位置算出部62は、特徴点FPの3次元位置の更新値を、時刻“n”のカメラ100を基準にしたカメラ座標系に変換する。そして、投影位置算出部62は、カメラ座標系に変換した特徴点FPの3次元位置に基づいて、特徴点FPの画像IMG(n)上の位置(予測投影位置)を算出する。
このように、特徴点FPの時刻“n”の画像IMG(n)上の予測投影位置は、前時刻“n−1”に算出された特徴点FPの3次元位置に基づいて予測される。したがって、前時刻“n−1”に算出された特徴点FPの3次元位置の誤差が大きくなるにしたがい、予測投影位置の誤差も大きくなる。このため、この実施形態では、投影位置算出部62は、3次元位置が確定した特徴点FP(3次元位置の精度が高いと判定された特徴点FP)に対して、予測投影位置を算出する。これにより、この実施形態では、予測投影位置の誤差が大きくなることを抑制できる。予測投影位置は、例えば、特徴点FPの登録禁止範囲を設定する際に使用される。
図14は、新規の抽出特徴点FPeに対する登録判定処理の概要を示している。抽出特徴点FPe10、FPe11、FPe12は、対応する登録特徴点FPrがない新規の抽出特徴点FPeを示している。特徴点FPf(n−1)は、特徴点FPfの前時刻“n−1”の画像IMG上の位置に対応する位置を示している。なお、特徴点FPfは、例えば、現時刻“n”より前の時刻に3次元位置が確定した特徴点FPである。また、特徴点FPf’(n)は、特徴点FPfの時刻“n”の画像IMG上の予測投影位置を示している。
例えば、投影位置算出部62は、特徴点FPfの予測投影位置(図の特徴点FPf’(n))を中心とした5画素四方の矩形領域(図の網掛け部分)を、特徴点FPの登録禁止範囲PARAに設定する。そして、判定処理では、例えば、判定部64は、新規の抽出特徴点FPe10、FPe11、FPe12の画像IMGの位置が、登録禁止範囲PARAに含まれるか否かを判定する。抽出特徴点FPe10は、登録禁止範囲PARAに含まれている。抽出特徴点FPe11、FPe12は、登録禁止範囲PARAに含まれていない。
したがって、図の判定結果に示しように、登録禁止範囲PARA外の抽出特徴点FPe11、FPe12が登録リストRLSTに登録される。換言すれば、登録禁止範囲PARAに含まれている抽出特徴点FPe10は、登録リストRLSTに登録されない。すなわち、この実施形態では、例えば、3次元位置が時刻“n−1”に確定した特徴点FPfは、新規の抽出特徴点FPeとして時刻“n”以降に再度抽出された場合でも、登録リストRLSTに登録されない。
したがって、この実施形態では、図1−図3で説明した3次元位置計測装置10に比べて、照合対象の特徴点FPの数を削減できる。これにより、この実施形態では、画像IMGの特徴点照合処理の時間を短縮できる。なお、照合対象から除外された特徴点FP(3次元位置が確定した特徴点FP)の3次元位置は、例えば、移動体の移動量に応じて更新される。
図15は、図4に示した3次元位置計測装置10Aの動作の一例を示している。図15の動作は、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。例えば、3次元位置計測プログラム等のソフトウエアは、コンピュータに図15の動作を実行させてもよい。すなわち、3次元位置計測装置10Aは、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。
図15の処理S10は、図3の処理S10と同様である。また、図15の処理S20、S30は、抽出リストELST等のリストを用いることを除いて、図3の処理S20、S30と同様である。図3で説明した処理については、詳細な説明を省略する。処理S10から処理S54までの一連の処理は、例えば、画像IMG毎に実行される。
処理S10では、画像取得部20は、画像IMGをカメラ100から取得する。処理S20では、特徴点抽出部30は、処理S20で取得した画像IMGの特徴点FPを抽出する。そして、特徴点抽出部30は、抽出特徴点FPeに対応する要素eを抽出リストELSTに追加する。処理S20で追加される要素eには、例えば、特徴点位置ux、uy、過特徴点パターンpow、照合成功フラグflag1等の情報が含まれる。これにより、抽出特徴点FPeに対応する要素eを有する抽出リストELSTが生成される。
処理S30では、特徴点照合部40は、登録リストRLSTに登録されている登録特徴点FPrと、処理S20で生成された抽出リストELSTに登録されている抽出特徴点FPeとを照合する。そして、例えば、特徴点照合部40は、照合結果に応じて、抽出リストELSTを更新する。例えば、照合が成功した特徴点FPでは、登録リストRLSTの要素rの情報が抽出リストELSTの要素eに登録される。
処理S42では、3次元位置確定部50は、照合が成功した特徴点FPの3次元位置を、処理S30で更新された抽出リストELSTに基づいて算出する。また、3次元位置確定部50は、照合が成功した特徴点FPの3次元位置の誤差l2errを算出する。そして、3次元位置確定部50は、処理S42で算出した3次元位置の誤差l2errと抽出リストELSTに登録されている3次元位置の誤差errとの比較結果に応じて、抽出リストELSTを更新する。
また、3次元位置確定部50は、特徴点FPの3次元位置を確定するか否かを、3次元位置の誤差の時系列推移に基づいて判定する。3次元位置確定部50は、特徴点FPの3次元位置を確定する場合、特徴点FPの確定後の3次元位置を、確定リストFLSTに登録する。
処理S52では、投影位置算出部62は、確定リストFLSTに登録されている3次元位置を、移動体の移動量に基づいて更新する。例えば、投影位置算出部62は、確定リストFLSTに登録されている3次元位置px、py、pzを、上述した式(9)を用いて算出した3次元位置に更新する。
また、投影位置算出部62は、特徴点FPの更新後の3次元位置に基づいて、特徴点FPの投影位置を算出する。そして、投影位置算出部62は、例えば、特徴点FPの投影位置付近を、特徴点FPの登録禁止範囲PARAに設定する。例えば、投影位置算出部62は、登録禁止範囲PARAを示す画素位置dx、dyを有する要素aを、登録禁止リストALSTに追加する。
処理S54では、判定部64は、特徴点登録判定を実行する。例えば、判定部64は、新規の抽出特徴点FPeを登録リストRLSTに登録するか否かを、登録禁止リストALSTに基づいて判定する。これにより、新規の抽出特徴点FPeのうち、登録禁止範囲PARA外の新規の抽出特徴点FPeは、登録特徴点FPrとして、登録リストRLSTに追加される。換言すれば、登録禁止範囲PARAに含まれる新規の抽出特徴点FPeは、登録リストRLSTに追加されない。また、判定部64は、照合に成功した特徴点FPのうち、3次元位置が確定していない抽出特徴点FPeを、登録特徴点FPrとして登録リストRLSTに追加する。
図16は、図4に示した特徴点抽出部30の動作の一例を示している。なお、図16は、特徴点抽出部30による特徴点抽出処理の一例を示している。図16の動作は、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。図の要素e[i]は、例えば、任意の要素eを示している。
処理S100では、例えば、特徴点抽出部30は、抽出リストELSTを初期化する。初期化により、例えば、抽出リストELSTの要素数Neは、“0”に設定される。処理S110では、特徴点抽出部30は、取得画像IMGに対して、エッジ処理を実行する。例えば、特徴点抽出部30は、取得画像IMGの画素のエッジ強度を算出する。
処理S120では、特徴点抽出部30は、画素のエッジ強度が予め設定された閾値以上か否かを判定する。閾値以上のエッジ強度を有する画素は、特徴点FPとして処理される。すなわち、特徴点抽出部30は、処理S100でエッジ強度を算出した画素が特徴点FPか否かを判定する。画素のエッジ強度が閾値以上のとき(処理S120のYes)、特徴点抽出部30の動作は、処理S130に移る。
一方、エッジ強度が閾値より小さいとき(処理S120のNo)、特徴点抽出部30の動作は、処理S150に移る。すなわち、処理S130、S140は、画素のエッジ強度が閾値より小さいときには(処理S120のNo)、実行されない。
処理S130では、特徴点抽出部30は、特徴点FP(処理S120で閾値以上のエッジ強度を有すると判定された画素)に対応する要素e[i]を作成し、作成した要素e[i]を抽出リストELSTに追加する。処理S130で作成される要素e[i]は、例えば、特徴点位置ux、uy、特徴点パターンpowおよび照合成功フラグglag1の情報を有している。
例えば、要素e[i]の特徴点位置ux、uyは、処理S120で閾値以上のエッジ強度を有すると判定された画素の位置である。要素e[i]の特徴点パターンpowは、処理S120で閾値以上のエッジ強度を有すると判定された画素(位置ux、uy)を中心としたパターン情報である。要素e[i]の照合成功フラグglag1は、“0”である。処理S140では、特徴点抽出部30は、抽出リストELSTの要素数Neを更新する。例えば、特徴点抽出部30は、要素数Neを“1”増加させる。
処理S150では、特徴点抽出部30は、取得画像IMGの全ての画素に対してエッジ処理を実行したか否かを判定する。エッジ処理が実行されていない画素が存在するとき(処理S150のNo)、特徴点抽出部30の動作は、処理S110に戻る。一方、取得画像IMGの全ての画素に対するエッジ処理が終了しているとき(処理S150のYes)、特徴点抽出部30による特徴点抽出処理は、終了する。
このように、特徴点抽出処理が全ての画素に対して実行されることにより、抽出リストELSTの要素e[i]が、特徴点FP(処理S120で閾値以上のエッジ強度を有すると判定された画素)毎に作成される。
図17は、図4に示した特徴点照合部40の動作の一例を示している。なお、図17は、特徴点照合部40による特徴点照合処理の一例を示している。図17の動作は、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。図の要素r[i]、e[j]は、例えば、任意の要素r、eを示している。
処理S200では、特徴点照合部40は、登録リストRLSTに未処理の要素rが存在するか否かを判定する。登録リストRLSTに未処理の要素rが存在するとき(処理S200のYes)、特徴点照合部40の動作は、処理S210に移る。一方、登録リストRLSTに未処理の要素rが存在しないとき(処理S200のNo)、特徴点照合部40による特徴点照合処理は、終了する。
処理S210では、特徴点照合部40は、登録リストRLSTから未処理の要素r[i]を選択する。処理S220では、特徴点照合部40は、抽出リストELSTに未処理の要素eが存在するか否かを判定する。未処理の要素eは、例えば、処理S210で選択された要素r[i]に対する照合処理が実行されていない要素eである。抽出リストELSTに未処理の要素eが存在するとき(処理S220のYes)、特徴点照合部40の動作は、処理S230に移る。一方、抽出リストELSTに未処理の要素eが存在しないとき(処理S220のNo)、特徴点照合部40の動作は、処理S270に移る。
処理S230では、特徴点照合部40は、抽出リストELSTから未処理の要素e[j]を選択する。処理S240では、特徴点照合部40は、処理S210で選択した要素r[i]と処理S230で選択した要素e[j]との照合処理を実行する。例えば、徴点照合部40は、要素r[i]の特徴点パターンpowと要素e[j]の特徴点パターンpowとを照合する。
処理S250では、特徴点照合部40は、要素r[i]と要素e[j]との照合が成功したか否かを判定する。要素r[i]と要素e[j]との照合が成功したとき(処理S250のYes)、特徴点照合部40の動作は、処理S260に移る。一方、要素r[i]と要素e[j]との照合が失敗したとき(処理S250のNo)、特徴点照合部40の動作は、処理S220に戻る。
処理S260では、特徴点照合部40は、処理S210で選択した要素r[i]の情報を、処理S210で選択した要素r[i]との照合に成功した要素e[j]に登録する。さらに、特徴点照合部40は、処理S210で選択した要素r[i]との照合に成功した要素e[j]の照合成功フラグglag1を、“1”に更新する。これにより、照合に成功した特徴点FPeに対応する要素e[j]の情報が更新される。
例えば、特徴点照合部40は、要素r[i]の特徴点位置rx、ry、3次元位置px、py、pz、3次元位置の誤差errおよびカウンタ値cntを、要素e[j]の特徴点位置rx、ry、3次元位置px、py、pz、3次元位置の誤差errおよびカウンタ値cntにそれぞれ登録する。
処理S270では、例えば、特徴点照合部40は、登録リストRLSTから要素r[i]を除去する。さらに、特徴点照合部40は、登録リストRLSTの要素数Nrを更新する。例えば、特徴点照合部40は、要素数Nrを“1”減少させる。特徴点照合処理が実行される前の要素数Nrは、例えば、図20に示す特徴点登録判定により設定されている。処理S270の後、特徴点照合部40の動作は、処理S200に戻る。
すなわち、特徴点照合部40は、登録リストRLSTの全ての要素rに対して、要素eとの照合を実行する。登録リストRLSTの全ての要素rに対して処理が終了したとき、要素数Nrは、例えば、“0”である。
このように、特徴点照合部40は、全ての登録特徴点FPrに対して、抽出特徴点FPeとの照合を実行する。そして、特徴点照合部40は、登録特徴点FPrとの照合に成功した抽出特徴点FPeに対応する要素e[j]の情報を更新する。これにより、抽出リストELSTが更新される。
図18は、図4に示した3次元位置確定部50Aの動作の一例を示している。なお、図18は、特徴点FPの3次元位置を確定するための処理(以下、3次元位置確定処理とも称する)の一例を示している。図18の動作は、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。図の要素e[i]、f[j]は、例えば、任意の要素e、fを示している。
処理S300では、3次元位置確定部50Aは、抽出リストELSTに未処理の要素eが存在するか否かを判定する。抽出リストELSTに未処理の要素eが存在するとき(処理S300のYes)、3次元位置確定部50Aの動作は、処理S310に移る。一方、抽出リストELSTに未処理の要素eが存在しないとき(処理S300のNo)、3次元位置確定部50Aによる3次元位置確定処理は、終了する。
処理S310では、3次元位置確定部50Aは、抽出リストELSTから未処理の要素e[i]を選択する。処理S320では、3次元位置確定部50Aは、処理S310で選択した要素e[i]の照合成功フラグglag1が“1”である否かを判定する。すなわち、3次元位置確定部50Aは、要素e[i]が照合に成功した要素eか否かを判定する。
照合成功フラグglag1が“1”でないとき(処理S320のNo)、3次元位置確定部50Aの動作は、処理S300に戻る。一方、照合成功フラグglag1が“1”のとき(処理S320のYes)、3次元位置確定部50Aの動作は、処理S330に移る。すなわち、照合に成功した要素eに対して、処理S330以降の処理が実行される。
処理S330では、3次元位置算出部52は、要素e[i]に対応する特徴点FPの3次元位置Px、Py、Pzを、要素e[i]の情報等に基づいて算出する。処理S332では、誤差算出部54は、特徴点FPの3次元位置の誤差l2errを、要素e[i]の情報等に基づいて算出する。
処理S340では、例えば、3次元位置確定部50Aは、処理S332で算出された3次元位置の誤差l2errが要素e[i]に登録されている3次元位置の誤差errより小さいか否かを判定する。誤差l2errが誤差errより小さいとき(処理S340のYes)、3次元位置確定部50Aの動作は、処理S350に移る。すなわち、3次元位置の誤差の最小値が更新されるとき、3次元位置確定部50Aの動作は、処理S350に移る。一方、誤差l2errが誤差err以上のとき(処理S340のNo)、3次元位置確定部50Aの動作は、処理S360に移る。すなわち、3次元位置の誤差の最小値が更新されないとき、処理S360以降の処理が実行される。
処理S350では、3次元位置確定部50Aは、処理S310で選択した要素e[i]の3次元位置px、py、pz、3次元位置の誤差errおよびカウンタ値cntを更新する。例えば、3次元位置確定部50Aは、要素e[i]の3次元位置px、py、pzを、処理S330で算出した3次元位置Px、Py、Pzに更新する。また、3次元位置確定部50Aは、要素e[i]の3次元位置の誤差errを、処理S332で算出した3次元位置の誤差l2errに更新する。そして、3次元位置確定部50Aは、要素e[i]のカウンタ値cntを“0”に設定する。
これにより、要素e[i]の3次元位置px、py、pzおよび3次元位置の誤差errは、3次元位置の誤差が最小値のときの特徴点FPに基づく情報に更新される。処理S350の後、3次元位置確定部50Aの動作は、処理S300に戻る。
処理S360では、3次元位置確定部50Aは、処理S310で選択した要素e[i]の3次元位置px、py、pzの更新値Px’、Py’、Pz’を算出する。例えば、3次元位置確定部50Aは、更新値Px’、Py’、Pz’を、上述した式(9)等を用いて算出する。そして、3次元位置確定部50Aは、要素e[i]の3次元位置px、py、pzを、更新値Px’、Py’、Pz’に更新する。すなわち、3次元位置確定部50Aは、3次元位置の誤差が最小値のときに算出された3次元位置px、py、pzを、移動体の移動量に応じて更新する。また、3次元位置確定部50Aは、要素e[i]のカウンタ値cntを“1”増加させる。
処理S370では、例えば、確定部56は、要素e[i]のカウンタ値cntが所定値以上で、かつ、要素e[i]の3次元位置の誤差errが閾値以下か否かを判定する。カウンタ値cntが所定値以上で、かつ、要素e[i]の3次元位置の誤差errが閾値以下である条件を満たさないとき(処理S370のNo)、3次元位置確定部50Aの動作は、処理S300に戻る。すなわち、カウンタ値cntが所定値より小さいとき、あるいは、誤差errが閾値より大きいとき、3次元位置確定部50Aの動作は、処理S300に戻る。一方、カウンタ値cntが所定値以上で、かつ、要素e[i]の3次元位置の誤差errが閾値以下のとき(処理S370のYes)、3次元位置確定部50Aの動作は、処理S380に移る。すなわち、3次元位置の誤差の最小値が所定時間更新されないとき、処理S380以降の処理が実行される。
処理S380では、例えば、確定部56は、3次元位置px、py、pzおよび更新フラグflag2の情報を有する要素f[j]を作成し、作成した要素f[j]を確定リストFLSTに追加する。例えば、確定部56は、要素f[j]の3次元位置px、py、pzに、処理S370の条件を満たした要素e[i]の3次元位置px、py、pzを登録し、要素f[j]の更新フラグflag2を“1”に設定する。
すなわち、確定部56は、3次元位置の誤差の最小値が所定時間更新されないとき、処理S360で算出された更新値Px’、Py’、Pz’を、要素f[j]の3次元位置px、py、pzに登録する。処理S382では、3次元位置確定部50Aは、確定リストFLSTの要素数Nfを更新する。例えば、3次元位置確定部50Aは、要素数Nfを“1”増加させる。
処理S390では、3次元位置確定部50Aは、処理S370の条件を満たした要素e[i]の照合成功フラグglag1を、“2”に更新する。すなわち、3次元位置確定部50Aは、処理S380で作成した要素f[j]に対応する要素e[i]の照合成功フラグglag1を、“2”に更新する。処理S390の後、3次元位置確定部50Aの動作は、処理S300に戻る。これにより、3次元位置を確定するための処理が、抽出リストELSTの全ての要素eに対して実行される。
このように、3次元位置確定部50Aは、3次元位置の誤差の最小値が所定時間更新されず、かつ、3次元位置の誤差が閾値以下のとき、特徴点FPの3次元位置等を確定リストFLSTに追加する。なお、3次元位置確定部50Aの動作は、この例に限定されない。例えば、確定部56は、処理S370において、要素e[i]の3次元位置の誤差errが閾値以下であるか否かの判定を省いてもよい。あるいは、確定部56は、処理S370を省いてもよい。
図19は、図4に示した投影位置算出部62の動作の一例を示している。なお、図19は、投影位置算出部62による投影位置算出処理の一例を示している。図19の動作は、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。図の要素f[i]、a[j]は、例えば、任意の要素f、aを示している。
処理S400では、例えば、投影位置算出部62は、登録禁止リストALSTを初期化する。初期化により、例えば、登録禁止リストALSTの要素数Naは、“0”に設定される。処理S410では、投影位置算出部62は、確定リストFLSTに未処理の要素fが存在するか否かを判定する。確定リストFLSTに未処理の要素fが存在するとき(処理S410のYes)、投影位置算出部62の動作は、処理S420に移る。一方、確定リストFLSTに未処理の要素fが存在しないとき(処理S410のNo)、投影位置算出部62による投影位置算出処理は、終了する。
処理S420では、投影位置算出部62は、確定リストFLSTから未処理の要素f[i]を選択する。処理S430では、投影位置算出部62は、処理S420で選択した要素f[i]の更新フラグglag2が“0”である否かを判定する。すなわち、投影位置算出部62は、要素f[i]の3次元位置px、py、pzが未更新か否かを判定する。更新フラグglag2が“0”でないとき(処理S430のNo)、投影位置算出部62の動作は、処理S460に移る。一方、更新フラグglag2が“0”のとき(処理S430のYes)、投影位置算出部62の動作は、処理S440に移る。すなわち、要素f[i]の3次元位置px、py、pzが未更新のとき、処理S440、S450が実行される。
処理S440では、投影位置算出部62は、処理S420で選択した要素f[i]の3次元位置px、py、pzの更新値Px’、Py’、Pz’を算出する。例えば、投影位置算出部62は、更新値Px’、Py’、Pz’を、上述した式(9)等を用いて算出する。処理S450では、投影位置算出部62は、要素f[i]の3次元位置px、py、pzを、更新値Px’、Py’、Pz’に更新する。すなわち、投影位置算出部62は、確定リストFLSTに登録されている3次元位置px、py、pzを、移動体の移動量に応じて更新する。処理450の後は、例えば、処理S470が実行される。
処理S460では、投影位置算出部62は、処理S430で選択した要素f[i]の更新フラグglag2を、“0”に更新する。これにより、例えば、現時刻の画像IMGの処理で確定した特徴点FPの3次元位置は、次時刻の画像IMGの投影位置算出処理で更新される。
処理S470では、投影位置算出部62は、処理S420で選択した要素f[i]等に基づいて、特徴点FPの投影位置を算出する。例えば、投影位置算出部62は、要素f[i]の3次元位置px、py、pz等に基づいて、特徴点FPの投影位置を算出する。そして、投影位置算出部62は、特徴点FPの登録禁止範囲PARAを投影位置に基づいて算出し、特徴点FPの登録禁止範囲PARAを示す画素位置dx、dyを算出する。
処理S480では、投影位置算出部62は、画素位置dx、dyの情報を有する要素a[j]を作成し、作成した要素a[j]を登録禁止リストALSTに追加する。例えば、投影位置算出部62は、要素a[j]の画素位置dx、dyに、処理S470で算出した登録禁止範囲PARAを示す情報を登録する。
処理S490では、投影位置算出部62は、登録禁止リストALSTの要素数Naを更新する。例えば、投影位置算出部62は、要素数Naを“1”増加させる。処理S490の後、投影位置算出部62の動作は、処理S410に戻る。これにより、投影位置を算出するための処理が、確定リストFLSTの全ての要素fに対して実行される。このように、投影位置算出部62は、特徴点FPの登録禁止範囲PARAを登録禁止リストALSTに追加する。
図20は、図4に示した判定部64の動作の一例を示している。なお、図20は、判定部64による特徴点登録判定処理の一例を示している。図20の動作は、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。図の要素e[i]、r[j]は、例えば、任意の要素e、rを示している。
処理S500では、判定部64は、抽出リストELSTに未処理の要素eが存在するか否かを判定する。抽出リストELSTに未処理の要素eが存在するとき(処理S500のYes)、判定部64の動作は、処理S510に移る。一方、抽出リストELSTに未処理の要素eが存在しないとき(処理S500のNo)、判定部64による特徴点登録判定処理は、終了する。
処理S510では、判定部64は、抽出リストELSTから未処理の要素e[i]を選択する。処理S520では、判定部64は、処理S510で選択した要素e[i]の照合成功フラグglag1が“1”である否かを判定する。例えば、要素e[i]の照合成功フラグglag1が“1”の場合、要素e[i]に対応する特徴点FPは、3次元位置px、py、pzが確定していない追跡中の特徴点FPである。すなわち、要素e[i]の照合成功フラグglag1が“0”の場合、要素e[i]に対応する特徴点FPは、3次元位置px、py、pzが確定した特徴点か新規に抽出された特徴点のいずれかである。
照合成功フラグglag1が“1”でないとき(処理S520のNo)、判定部64の動作は、処理S550に移る。一方、照合成功フラグglag1が“1”のとき(処理S520のYes)、判定部64の動作は、処理S530に移る。すなわち、照合に成功した要素eのうち、特徴点FPの3次元位置が確定していない要素eに対して、処理S530が実行される。
処理S530では、判定部64は、処理S510で選択した要素e[i]の情報を引き継いだ要素r[j]を作成し、作成した要素r[j]を登録リストRLSTに追加する。処理S530で作成される要素r[j]は、例えば、特徴点位置rx、ry、特徴点パターンpow、3次元位置px、py、pz、3次元位置の誤差errおよびカウンタ値cntの情報を有している。
例えば、要素e[i]の特徴点位置ux、uy、特徴点パターンpow、3次元位置px、py、pz、3次元位置の誤差errおよびカウンタ値cntが、要素r[j]の特徴点位置rx、ry、特徴点パターンpow、3次元位置px、py、pz、3次元位置の誤差errおよびカウンタ値cntにそれぞれ引き継がれる。このように、判定部64は、照合に成功した特徴点FPのうち、3次元位置が確定していない抽出特徴点FPeを、登録特徴点FPrとして登録リストRLSTに追加する。
処理S540では、判定部64は、登録リストRLSTの要素数Nrを更新する。例えば、判定部64は、要素数Nrを“1”増加させる。特徴点登録判定処理が実行される前の要素数Nrは、例えば、図17に示した特徴点照合処理により、“0”に設定されている。処理S540の後、判定部64の動作は、処理S500に戻る。
処理S550では、判定部64は、処理S510で選択した要素e[i]の照合成功フラグglag1が“0”である否かを判定する。すなわち、判定部64は、要素e[i]に対応する特徴点FPが新規に抽出された特徴点FPeか否かを判定する。
照合成功フラグglag1が“0”でないとき(処理S550のNo)、判定部64の動作は、処理S500に戻る。一方、照合成功フラグglag1が“0”のとき(処理S550のYes)、判定部64の動作は、処理S560に移る。すなわち、現時刻の画像IMGで新規に抽出された抽出特徴点FPeに対応する要素eに対して、処理S560が実行される。
処理S560では、判定部64は、処理S510で選択した要素e[i]の特徴点位置ux、uyが登録禁止範囲PARA外か否かを、登録禁止リストALSTの各要素aの画素位置dx、dyに基づいて判定する。要素e[i]の特徴点位置ux、uyが登録禁止範囲PARA内のとき(処理S560のNo)、判定部64の動作は、処理S500に戻る。一方、要素e[i]の特徴点位置ux、uyが登録禁止範囲PARA外のとき(処理S560のYes)、判定部64の動作は、処理S570に移る。すなわち、現時刻の画像IMGで新規に抽出された抽出特徴点FPeのうち、登録禁止範囲PARA外の抽出特徴点FPeに対応する要素eに対して、処理S570が実行される。
処理S570では、判定部64は、処理S510で選択した要素e[i]の情報を引き継いだ要素r[j]を作成し、作成した要素r[j]を登録リストRLSTに追加する。処理S570で作成される要素r[j]は、例えば、特徴点位置rx、ryおよび特徴点パターンpowの情報を有している。
例えば、要素e[i]の特徴点位置ux、uyおよび特徴点パターンpowが、要素r[j]の特徴点位置rx、ryおよび特徴点パターンpowにそれぞれ引き継がれる。このように、判定部64は、現時刻の画像IMGで新規に抽出された抽出特徴点FPeのうち、登録禁止範囲PARA外の抽出特徴点FPeを、登録特徴点FPrとして登録リストRLSTに追加する。
処理S580では、判定部64は、登録リストRLSTの要素数Nrを更新する。例えば、判定部64は、要素数Nrを“1”増加させる。処理S580の後、判定部64の動作は、処理S500に戻る。
このように、現時刻の画像IMGから抽出された抽出特徴点FPeのうち、3次元位置が現時刻以前に確定した抽出特徴点FPeを除く抽出特徴点FPeが、次時刻の画像IMGで使用する登録特徴点FPrとして、登録リストRLSTに登録される。
以上、この実施形態においても、図1−図3で説明した実施形態と同様の効果を得ることができる。また、この実施形態では、3次元位置確定部50Aは、抽出特徴点FPeの3次元位置を算出する際に含まれる誤差l2errを時系列で比較する。そして、3次元位置確定部50Aは、誤差l2errが最小のときに算出した抽出特徴点FPeの3次元位置に基づいて抽出特徴点FPeの3次元位置を確定する。これにより、この実施形態では、精度の高い3次元位置を特徴点FPの3次元位置として登録できる。
さらに、この実施形態では、投影位置算出部62は、3次元位置が既に確定している特徴点FPの3次元位置を、カメラ100が搭載される移動体の移動量に応じて更新する。これにより、この実施形態では、特徴点FPの確定後の3次元位置の精度が移動体の移動に伴い低下することを抑制できる。
また、この実施形態では、判定部64は、画像IMG上の投影位置に基づく登録禁止範囲PARA内の抽出特徴点FPeを、次の処理対象の画像IMGから抽出される特徴点FPとの照合に使用する登録特徴点FPrから除外する。これにより、この実施形態では、図1−図3で説明した3次元位置計測装置10に比べて、照合対象の特徴点FPの数を削減できる。この結果、この実施形態では、画像IMGの特徴点照合処理の時間を短縮できる。すなわち、この実施形態では、3次元位置を算出する際の処理時間の増加を抑制できる。
なお、この実施形態では、特徴点抽出部30は、画像IMG上の投影位置に基づく登録禁止範囲PARAを特徴点FPの抽出対象から除外してもよい。この場合にも、図1−図3で説明した3次元位置計測装置10に比べて、照合対象の特徴点FPの数を削減できる。したがって、登録禁止範囲PARAを特徴点FPの抽出対象から除外した場合にも、3次元位置を算出する際の処理時間の増加を抑制できる。
以上の実施形態において説明した発明を整理して、付記として開示する。
(付記1)
互いに異なる時刻にカメラで撮影された物体の画像上の位置の差と前記カメラの移動量とに基づいて前記物体の3次元位置を計測する3次元位置計測装置において、
前記カメラから画像を順次取得する画像取得部と、
処理対象の前記画像から特徴点を抽出する特徴点抽出部と、
登録特徴点と、処理対象の前記画像から抽出された前記特徴点である抽出特徴点とを照合する特徴点照合部と、
前記登録特徴点に対応する前記抽出特徴点の3次元位置を算出し、前記抽出特徴点の3次元位置を確定する3次元位置確定部と、
前記抽出特徴点のうち、3次元位置が確定した前記抽出特徴点を除く前記抽出特徴点を、次の処理対象の前記画像から抽出される前記特徴点との照合に使用する前記登録特徴点として、登録する特徴点登録部と
を備えていることを特徴とする3次元位置計測装置。
(付記2)
前記3次元位置確定部は、前記抽出特徴点の3次元位置を算出する際に含まれる誤差を時系列で比較し、前記誤差が最小のときに算出した前記抽出特徴点の3次元位置に基づいて前記抽出特徴点の3次元位置を確定する
ことを特徴とする付記1記載の3次元位置計測装置。
(付記3)
3次元位置が既に確定している前記特徴点の3次元位置を、前記カメラが搭載される移動体の移動量に応じて更新する位置算出部を備えている
ことを特徴とする付記1または付記2に記載の3次元位置計測装置。
(付記4)
前記位置算出部は、3次元位置が既に確定している前記特徴点の前記画像上の投影位置を、移動体の移動量に応じて更新した3次元位置に基づいて算出し、
前記特徴点登録部は、前記画像上の前記投影位置に基づく第1範囲内の前記抽出特徴点を、次の処理対象の前記画像から抽出される前記特徴点との照合に使用する前記登録特徴点から除外する
ことを特徴とする付記3記載の3次元位置計測装置。
(付記5)
前記特徴点抽出部は、前記第1範囲を前記特徴点の抽出対象から除外する
ことを特徴とする付記4記載の3次元位置計測装置。
(付記6)
前記位置算出部は、3次元位置が既に確定している前記特徴点の前記画像上の投影位置を、移動体の移動量に応じて更新した3次元位置に基づいて算出し、
前記特徴点抽出部は、前記画像上の前記投影位置に基づく第1範囲を、前記特徴点の抽出対象から除外する
ことを特徴とする付記3記載の3次元位置計測装置。
(付記7)
互いに異なる時刻にカメラで撮影された物体の画像上の位置の差と前記カメラの移動量とに基づいて前記物体の3次元位置を計測する3次元位置計測方法において、
前記カメラから画像を順次取得し、
処理対象の前記画像から特徴点を抽出し、
登録特徴点と、処理対象の前記画像から抽出された前記特徴点である抽出特徴点とを照合し、
前記登録特徴点に対応する前記抽出特徴点の3次元位置を算出し、前記抽出特徴点の3次元位置を確定し、
前記抽出特徴点のうち、3次元位置が確定した前記抽出特徴点を除く前記抽出特徴点を、次の処理対象の前記画像から抽出される前記特徴点との照合に使用する前記登録特徴点として、登録する
ことを特徴とする3次元位置計測方法。
(付記8)
前記抽出特徴点の3次元位置を算出する際に含まれる誤差を時系列で比較し、前記誤差が最小のときに算出した前記抽出特徴点の3次元位置に基づいて前記抽出特徴点の3次元位置を確定する
ことを特徴とする付記7記載の3次元位置計測方法。
(付記9)
3次元位置が既に確定している前記特徴点の3次元位置を、前記カメラが搭載される移動体の移動量に応じて更新する
ことを特徴とする付記7または付記8に記載の3次元位置計測方法。
(付記10)
3次元位置が既に確定している前記特徴点の前記画像上の投影位置を、前記移動体の移動量に応じて更新した3次元位置に基づいて算出し、
前記画像上の前記投影位置に基づく第1範囲内の前記抽出特徴点を、次の処理対象の前記画像から抽出される前記特徴点との照合に使用する前記登録特徴点から除外する
ことを特徴とする付記9記載の3次元位置計測方法。
(付記11)
前記第1範囲を前記特徴点の抽出対象から除外する
ことを特徴とする付記10記載の3次元位置計測方法。
(付記12)
3次元位置が既に確定している前記特徴点の前記画像上の投影位置を、前記移動体の移動量に応じて更新した3次元位置に基づいて算出し、
前記画像上の前記投影位置に基づく第1範囲を、前記特徴点の抽出対象から除外する
ことを特徴とする付記9記載の3次元位置計測方法。
(付記13)
互いに異なる時刻にカメラで撮影された物体の画像上の位置の差と前記カメラの移動量とに基づいて前記物体の3次元位置を計測する処理をコンピュータに実行させる3次元位置計測プログラムであって、
前記カメラから画像を順次取得し、
処理対象の前記画像から特徴点を抽出し、
登録特徴点と、処理対象の前記画像から抽出された前記特徴点である抽出特徴点とを照合し、
前記登録特徴点に対応する前記抽出特徴点の3次元位置を算出し、前記抽出特徴点の3次元位置を確定し、
前記抽出特徴点のうち、3次元位置が確定した前記抽出特徴点を除く前記抽出特徴点を、次の処理対象の前記画像から抽出される前記特徴点との照合に使用する前記登録特徴点として、登録する
処理をコンピュータに実行させることを特徴とする3次元位置計測プログラム。
(付記14)
前記抽出特徴点の3次元位置を算出する際に含まれる誤差を時系列で比較し、前記誤差が最小のときに算出した前記抽出特徴点の3次元位置に基づいて前記抽出特徴点の3次元位置を確定する
処理をコンピュータに実行させることを特徴とする付記13記載の3次元位置計測プログラム。
(付記15)
3次元位置が既に確定している前記特徴点の3次元位置を、前記カメラが搭載される移動体の移動量に応じて更新する
処理をコンピュータに実行させることを特徴とする付記13または付記14に記載の3次元位置計測プログラム。
(付記16)
3次元位置が既に確定している前記特徴点の前記画像上の投影位置を、前記移動体の移動量に応じて更新した3次元位置に基づいて算出し、
前記画像上の前記投影位置に基づく第1範囲内の前記抽出特徴点を、次の処理対象の前記画像から抽出される前記特徴点との照合に使用する前記登録特徴点から除外する
処理をコンピュータに実行させることを特徴とする付記15記載の3次元位置計測プログラム。
(付記17)
前記第1範囲を前記特徴点の抽出対象から除外する
処理をコンピュータに実行させることを特徴とする付記16記載の3次元位置計測プログラム。
(付記18)
3次元位置が既に確定している前記特徴点の前記画像上の投影位置を、前記移動体の移動量に応じて更新した3次元位置に基づいて算出し、
前記画像上の前記投影位置に基づく第1範囲を、前記特徴点の抽出対象から除外する
処理をコンピュータに実行させることを特徴とする付記15記載の3次元位置計測プログラム。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。