以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の第1の側面の画像処理装置は、撮像画像から予め登録されている登録画像に対応する物体を認識する画像処理装置(例えば、図2の画像処理装置11)において、被写体を撮像し、前記被写体の前記撮像画像を取得する撮像手段(例えば、図2の撮像部21)と、前記撮像画像から、前記登録画像に対応する物体を認識する認識手段(例えば、図2の認識部23)と、前記認識手段による認識に用いられる撮像画像である認識対象画像を順に第1の認識対象画像として、前記第1の認識対象画像が取得されてから、その第1の認識対象画像の次の認識対象画像である第2の認識対象画像の認識が終了するまでに取得される複数枚の撮像画像において、前記第1の認識対象画像に対する認識の結果に基づいて指定される第1の指定領域をトラッキングする第1の指定領域トラッキング処理を行う第1の指定領域トラッキング手段(例えば、図2の指定領域トラッキング部41)と、前記第1の指定領域トラッキング手段による第1の指定領域トラッキング処理に用いられる複数枚の撮像画像である第1のトラッキング対象画像内の最後の撮像画像が取得されてから、次の第1の指定領域トラッキング処理に用いられる複数枚の撮像画像である第2のトラッキング対象画像内の最後の撮像画像が取得されるまでに取得される複数の撮像画像である第2のトラッキング対象画像において、前記第1のトラッキング対象画像に対する前記第1の指定領域トラッキング処理の結果に基づいて指定される第2の指定領域をトラッキングする第2の指定領域トラッキング処理を行う第2の指定領域トラッキング手段(例えば、図2の指定領域トラッキング部42)とを備え、前記第1のトラッキング対象画像は、前記第1の認識対象画像が取得されてから、前記第2の指定領域トラキング手段がリアルタイムでトラッキング可能になるまでに取得される複数枚の撮像画像である。
本発明の第1の側面の画像処理装置は、前記第2の指定領域トラッキング処理の結果と、前記登録画像とに基づいて、前記物体と同一のサイズで、かつ同一の姿勢の登録画像を、前記撮像画像を補正する補正画像(例えば、図23に示される補正画像)として生成する生成手段(例えば、図2の補正画像生成部25)と、前記第2の指定領域トラッキング処理の結果に基づいて、前記撮像画像中の前記第2の指定領域に前記補正画像を合成する合成手段(例えば、図2の合成部26)とをさらに備えることができる。
本発明の第1の側面の画像処理装置は、前記第2の指定領域トラッキング処理の結果と、前記登録画像とに基づいて、前記物体と同一のサイズで、かつ所定の姿勢の登録画像を、前記撮像画像を補正する補正画像(例えば、図24または図25に示される補正画像)として生成する生成手段(例えば、図2の補正画像生成部25)と、前記第2の指定領域トラッキング処理の結果に基づいて、前記撮像画像中の前記第2の指定領域の位置に前記補正画像を合成する合成手段(例えば、図2の合成部26)とをさらに備えることができる。
本発明の第1の側面の画像処理装置は、前記第2の指定領域トラッキング処理の結果と、前記登録画像に関連する関連画像とに基づいて、前記物体と同一のサイズで、かつ同一の姿勢の関連画像を、前記撮像画像を補正する補正画像として生成する生成手段例えば、図46の眼鏡型ウェアラブルコンピュータ401の図2の補正画像生成部25と同様に構成される補正画像生成部)と、前記第2の指定領域トラッキング処理の結果に基づいて、前記撮像画像中の前記第2の指定領域に前記補正画像を合成する合成する合成手段(例えば、図46の眼鏡型ウェアラブルコンピュータ401の図2の合成部26と同様に構成される合成部)とをさらに備えることができる。
本発明の第1の側面の画像処理装置においては、前記第1の指定領域トラッキング手段は、前記第1の認識対象画像に対する認識の結果に基づいて、前記第1の指定領域を指定する第1の指定手段(例えば、図17の領域指定部141)と、前記第1のトラッキング対象画像の前記撮像画像である第1トラッキング処理画像を順に第1の処理画像として、前記第1の処理画像の前記第1の指定領域内の第1の特徴点を抽出する第1の抽出手段(例えば、図17の特徴点抽出部142)と、前記第1の処理画像内の前記第1の特徴点と、その第1の処理画像の前の第1トラッキング処理画像である第2の処理画像内の前記第1の特徴点を用いて、前記第1の処理画像の前記第1の特徴点の動きを表す第1の動き情報を演算する第1の演算手段(例えば、図17のオプティカルフロー演算部143)と、前記第1の処理画像の前記第1の動き情報と、前記第2の処理画像の前記第1の動き情報を用いて、前記第1の処理画像の前記第1の指定領域の位置と姿勢を表す第1のパラメータを演算する第1のパラメータ演算手段(例えば、図17のアフィン行列演算部144)と、前記第1のパラメータと、前記第2の処理画像の前記第1の指定領域内の前記第1の特徴点の位置を表す値とを乗算した乗算値と、前記第1の処理画像の前記第1の指定領域内の前記第1の特徴点の位置を表す値との誤差である第1の誤差を演算する第1の誤差演算手段(例えば、図17の誤差演算部145)と、前記第1の誤差に基づいて、前記第1のパラメータの第1のスコアを演算する第1のスコア演算手段(例えば、図17のスコア演算部146)とを備え、前記第1の指定手段は、前記第1のスコアの最も大きい第1のパラメータに基づいて、前記第1の指定領域を遷移させ、前記第2の指定領域トラッキング手段は、前記第1のトラッキング対象画像内の最後の前記1の処理画像の前記第1のパラメータであって、前記第1のスコアの最も大きい前記第1のパラメータに基づいて、前記第2の指定領域を指定する第2の指定手段(例えば、図28の領域指定部211)と、前記第2のトラッキング対象画像の撮像画像である第2トラッキング処理画像を順に第3の処理画像として、前記第3の処理画像の前記第2の指定領域内の第2の特徴点を抽出する第2の抽出手段(例えば、図28の特徴点抽出部122)と、前記第3の処理画像内の前記第2の特徴点と、その第3の処理画像の前の第2トラッキング処理画像である第4の処理画像内の前記第2の特徴点を用いて、前記第3の処理画像の前記第2の特徴点の動きを表す第2の動き情報を演算する第2の演算手段(例えば、図22のオプティカルフロー演算部213)と、前記第3の処理画像の前記第2の動き情報と、前記第4の処理画像の前記第1の動き情報を用いて、前記第3の処理画像の前記第2の指定領域の位置と姿勢を表す第2のパラメータを演算する第2のパラメータ演算手段(例えば、図22のアフィン行列演算部214)と、前記第2のパラメータと、前記第4の処理画像の前記第2の指定領域内の前記第2の特徴点の位置を表す値とを乗算した乗算値と、前記第3の処理画像の前記第2の指定領域内の前記第2の特徴点の位置を表す値との誤差である第2の誤差を演算する第2の誤差演算手段(例えば、図22の誤差演算部215)と、前記第2の誤差に基づいて、前記第2のパラメータの第2のスコアを演算する第2のスコア演算手段(例えば、図22のスコア演算部216)とを備え、前記第2の指定手段は、前記第2のスコアの最も大きい第2のパラメータに基づいて、前記第2の指定領域を遷移させる。
本発明の第1の側面の画像処理方法は、撮像画像から予め登録されている登録画像に対応する物体を認識する画像処理装置(例えば、図2の画像処理装置11)の画像処理方法において、被写体を撮像して、前記被写体の前記撮像画像を取得し(例えば、図15のステップS101)、前記撮像画像から、前記登録画像に対応する物体を認識し(例えば、図34乃至図36の一般物体認識処理)、その認識に用いられる撮像画像である認識対象画像を順に第1の認識対象画像として、前記第1の認識対象画像が取得されてから、その第1の認識対象画像の次の認識対象画像である第2の認識対象画像の認識が終了するまでに取得される複数枚の撮像画像において、前記第1の認識対象画像に対する認識の結果に基づいて指定される第1の指定領域をトラッキングする第1の指定領域トラッキング処理を行い(例えば、図18の第1の指定領域トラッキング処理)、その第1の指定領域トラッキング処理に用いられる複数枚の撮像画像である第1のトラッキング対象画像内の最後の撮像画像が取得されてから、次の第1の指定領域トラッキング処理に用いられる複数枚の撮像画像である第2のトラッキング対象画像内の最後の撮像画像が取得されるまでに取得される複数の撮像画像である第2のトラッキング対象画像において、前記第1のトラッキング対象画像に対する前記第1の指定領域トラッキング処理の結果に基づいて指定される第2の指定領域をトラッキングする第2の指定領域トラッキング処理を行う(例えば、図29の第2の指定領域トラッキング処理)ステップを含み、前記第1のトラッキング対象画像は、前記第1の認識対象画像が取得されてから、前記第2の指定領域をリアルタイムでトラッキング可能になるまでに取得される複数枚の撮像画像である。
本発明の第2の側面の画像処理装置は、撮像画像から予め登録されている登録画像に対応する物体を認識する画像処理装置(例えば、図42の画像処理装置11)において、被写体を撮像し、前記被写体の前記撮像画像を取得する撮像手段(例えば、図42の撮像部21)と、前記撮像画像から、前記登録画像に対応する物体を認識する認識手段(例えば、図42の認識部23)と、前記認識手段による認識に用いられる撮像画像である認識対象画像を1つおきに順に第1の認識対象画像として、前記第1の認識対象画像が取得されてから、その第1の認識対象画像の次の認識対象画像である第2の認識対象画像の認識が終了するまでに取得される複数枚の撮像画像において、前記第1の認識対象画像に対する認識の結果に基づいて指定される指定領域をトラッキングする2つの指定領域トラッキング手段(例えば、図42の指定領域トラッキング部311と指定領域トラッキング部312)とを備え、2つの指定領域トラッキング手段は、前記認識対象画像を交互に前記第1の認識対象画像とし、2つの前記指定領域トラッキング手段のうちの一方の前記複数枚の撮像画像は、前記第1の認識対象画像が取得されてから、他方の前記指定領域トラッキング手段がリアルタイムでトラッキング可能になるまでに取得される複数枚の撮像画像である。
本発明の第2の側面の画像処理方法は、撮像画像から予め登録されている登録画像に対応する物体を認識する画像処理装置(例えば、図42の画像処理装置11)の画像処理方法において、被写体を撮像して、前記被写体の前記撮像画像を取得し(例えば、図15のステップS101)、前記撮像画像から、前記登録画像に対応する物体を認識し(例えば、図43のステップS531)、その認識に用いられる撮像画像である認識対象画像を1つおきに順に第1の認識対象画像として、前記第1の認識対象画像が取得されてから、その第1の認識対象画像の次の認識対象画像である第2の認識対象画像の認識が終了するまでに取得される複数枚の撮像画像において、前記第1の認識対象画像に対する認識の結果に基づいて指定される指定領域をトラッキングする2つの処理を、前記認識対象画像を交互に前記処理の前記第1の認識対象画像として実行する(例えば、図44のステップS561,S563,S564)ステップを含み、前記2つの処理のうちの一方の前記複数枚の撮像画像は、前記第1の認識対象画像が取得されてから、他方の前記処理においてリアルタイムでトラッキング可能になるまでに取得される複数枚の撮像画像である。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
図1は、本発明を適用した画像処理システム1の概要を示している。
図1の画像処理システム1は、画像処理装置11A、および、それとインターネット等のネットワーク12により接続される画像処理装置11Bにより構成される。画像処理装置11Aにより撮像される被写体A(Aさん)は、ネットワーク12を介して、画像処理装置11Bにより撮像される被写体B(Bさん)とテレビコミュニケーションを行う。
具体的には、画像処理装置11Aに設けられた撮像部21Aは、被写体Aを撮像する。画像処理装置11Aは、その結果得られる被写体Aの撮像画像を、ネットワーク12を介して、画像処理装置11Bに送信する。一方、画像処理装置11Bに設けられた撮像部21Bは、被写体Bを撮像する。画像処理装置11Bは、その結果得られる被写体Bの撮像画像を、ネットワーク12を介して、画像処理装置11Aに送信する。
画像処理装置11Aに設けられた出力部27Aの画面全体には、画像処理装置11Bから受信した被写体Bの撮像画像が表示される。なお、このとき、図1に示すように、出力部27Aの画面の右上のウィンドウ27TAには、撮像部21Aにより撮像された被写体Aの撮像画像も表示される。
同様に、画像処理装置11Bに設けられた出力部27Bの画面全体には、画像処理装置11Aから受信した被写体Aの撮像画像が表示され、画面の右上のウィンドウ27TBには、撮像部21Bにより撮像された被写体Bの撮像画像が表示される。
ここで、図1に示すように、被写体Aが、予め登録されている写真の印刷物、または、予め登録されている静止画像や動画像が表示部に表示されたデジタルカメラや携帯電話機など(以下、予め登録されている写真、静止画像、動画像などを、適宜、登録画像という)を手に所持している場合、画像処理装置11Aは、撮像部21Aにより撮像された被写体Aの撮像画像中の登録画像に対応する物体(ここでは、登録画像の画像)の位置と姿勢を認識する。そして、画像処理装置11Aは、認識した位置と姿勢に基づいて、被写体Aの撮像画像中の登録画像に対応する物体(以下、適宜、対象物体という)を、予め登録されている登録画像に変更する。
すなわち、被写体Aの撮像画像において、被写体Aが所持している印刷された写真、またはデジタルカメラや携帯電話機などの表示部に表示されている静止画像や動画像が、予め登録されている、その写真、または、静止画像や動画像に変更される。画像処理装置11Aは、変更後の被写体Aの撮像画像を、ネットワーク12を介して画像処理装置11Bに送信する。これにより、画像処理装置11Bの出力部27Bには、被写体Aの撮像のうちの、対象物体の画像としては、登録画像そのものに差し替えられた画像が表示されるので、被写体Bは、差し替えられない画像を含む被写体Aの撮像画像が表示される場合に比べて、被写体Aが所持している画像を、より鮮明な画像として見ることができる。
なお、以下では、画像処理装置11Aと画像処理装置11Bを特に区別する必要がない場合、それらをまとめて画像処理装置11という。また同様に、撮像部21Aと撮像部21Bをまとめて撮像部21といい、出力部27Aと出力部27Bをまとめて出力部27という。
図2は、画像処理装置11の構成例を示すブロック図である。
図2の画像処理装置11は、撮像部21、記憶部22、認識部23、トラッキング部24、補正画像生成部25、合成部26、出力部27、制御部28、およびサーバ29により構成される。
撮像部21は、例えばCCD(Charge Coupled Device)、CMOS(Complementary Metal-Oxide Semiconductor)センサなどの光学的な映像を電気信号に変換する光電変換素子を有するビデオカメラなどからなり、被写体を撮像する。撮像部21は、その結果得られるフレーム単位の撮像画像を、入力画像として、記憶部22、認識部23、トラッキング部24、および合成部26に供給する。
記憶部22は、撮像部21から供給される入力画像を記憶する。記憶部22には、例えば、100フレーム分の入力画像が記憶可能になっており、100フレームを越える入力画像が撮像部21から供給された場合には、古いものから順に削除される。その結果、最新の100フレーム分の画像が記憶される。
認識部23は、撮像部21から供給される入力画像と、制御部28から供給される認識対象とする対象物体に対応する登録画像と、登録画像のID(以下、登録IDという)に基づいて、入力画像中の対象物体を認識する。認識部23は、入力画像のフレーム番号、並びに、認識の結果得られる入力画像中に含まれる対象物体に対応する登録ID、および、対象物体の位置と姿勢を表す物体パラメータを、トラッキング部24に供給する。
なお、入力画像のフレーム番号とは、例えば撮像部21により撮像された順に、フレームごとに付された番号である。また、登録IDとは、登録画像に固有のIDであり、登録画像に対応付けて登録される。認識部23の詳細は、図3を参照して後述する。
トラッキング処理は、2つのスレッドに区分され、このためトラッキング部24は、2つのスレッドの各々を実行する指定領域トラッキング部41と指定領域トラッキング部42により構成される。
指定領域トラッキング部41は、認識部23から供給されるフレーム番号に基づいて、記憶部22に記憶されている入力画像を読み出す。指定領域トラッキング部41は、認識部23から供給される物体パラメータに基づいて、トラッキング対象とする領域を指定領域として指定する。指定領域トラッキング部41は、記憶部22から読み出された入力画像において指定領域をトラッキングする。指定領域トラッキング部41は、認識部23から供給される登録IDと、トラッキングの結果得られる物体パラメータを指定領域トラッキング部42に供給する。この指定領域トラッキング部41の詳細は、図17を参照して後述する。
指定領域トラッキング部42は、指定領域トラッキング部41から供給される物体パラメータに基づいて、トラッキング対象とする領域を指定領域として指定する。指定領域トラッキング部42は、撮像部21から供給される入力画像において指定領域をトラッキングする。指定領域トラッキング部42は、指定領域トラッキング部41から供給される登録IDと、トラッキングの結果得られる物体パラメータを補正画像生成部25に供給する。この指定領域トラッキング部42の詳細は、図28を参照して後述する。
補正画像生成部25は、指定領域トラッキング部42から供給される登録IDを制御部28に供給し、その登録IDに対応する登録画像を制御部28に要求する。補正画像生成部25は、その要求に応じて制御部28から供給される登録画像と、指定領域トラッキング部42から供給される物体パラメータとに基づいて、対象物体と同一のサイズかつ同一の姿勢の登録画像を、入力画像を補正する補正画像として生成する。補正画像生成部25は、指定領域トラッキング部42から供給される物体パラメータと、補正画像を合成部26に供給する。
合成部26は、補正画像生成部25から供給される物体パラメータに基づいて、撮像部21から供給される入力画像と、補正画像生成部25から供給される補正画像を合成し、その結果得られる合成画像を出力部27と制御部28に供給する。出力部27は、合成部26から供給される合成画像を画面の右上のウィンドウ27Tに表示するとともに、ネットワーク12と制御部28を介して他の画像処理装置11から送信されてくる、他の画像処理装置11により撮像された画像を画面全体に表示する。
制御部28は、サーバ29に登録されている登録画像と登録IDを読み出し、認識部23に供給する。制御部28はまた、補正画像生成部25から供給される登録IDに基づいて、サーバ29に登録されている登録画像を読み出し、補正画像生成部25に供給する。さらに、制御部28は、合成部26から供給される合成画像を、ネットワーク12を介して、他の画像処理装置11に送信する。制御部28は、他の画像処理装置11からネットワーク12を介して送信されてくる画像を受信し、出力部27に供給する。
また、制御部28は、例えば、ネットワーク12を介して、図示せぬ他の装置から送信されてくる登録画像を受信し、例えば受信順に登録画像に登録IDを付与する。制御部28は、受信した登録画像と、それに付与した登録IDをサーバ29に供給して登録する。サーバ29は、制御部28から供給された登録画像と登録IDを対応づけて登録する。なお、このサーバ29は、ネットワーク12を介して制御部28に接続させることもできる。
図3は、図2の認識部23の詳細構成例を示すブロック図である。この認識部23は、登録画像の学習処理を行う学習部111と、入力画像中の対象物体を認識する認識部112の2つの部分から構成される。
学習部111は、多重解像度生成部121、特徴点抽出部122、特徴量抽出部123、および登録画像辞書登録部124により構成されている。
多重解像度生成部121は、制御部28から入力された登録画像から多重解像度の画像を生成する。特徴点抽出部122は、多重解像度生成部121により生成された多重解像度の各画像から特徴点を抽出する。特徴量抽出部123は、特徴点抽出部122により抽出された各特徴点の特徴量を抽出する。登録画像辞書登録部124は、特徴量抽出部123により抽出された登録画像の特徴量群と、制御部28から入力された登録IDを対応付けて登録する。なお、登録画像辞書登録部124は、実際には、サーバ29に構築される。データの授受は制御部28を介して実行される。
認識部112は、多重解像度生成部131、特徴点抽出部132、特徴量抽出部133、kdツリー構築部134、特徴量比較部135、および推定部136により構成される。
多重解像度生成部131は、撮像部21から入力された入力画像から、多重解像度の画像を生成する。特徴点抽出部132は、多重解像度生成部131により生成された多重解像度の各画像から特徴点を抽出する。特徴量抽出部133は、特徴点抽出部132により抽出された各特徴点の特徴量を抽出する。これらの多重解像度生成部131、特徴点抽出部132、および特徴量抽出部133により行われる処理は、学習部111における多重解像度生成部121、特徴点抽出部122、および特徴量抽出部123において行われる処理と同様の処理である。
kdツリー構築部134は、登録画像辞書登録部124に登録されている特徴量からkdツリーを構築する。特徴量比較部135は、特徴量抽出部133により抽出された特徴量と、kdツリー構築部134により構築されたkdツリーとして表現された認識対象となる全対象物体に対応する全登録画像(または対象物体毎処理を行う場合には各対象物体に対応する各登録画像)の特徴量群を比較する。推定部136は、特徴量比較部135による比較結果に基づいて、入力画像に含まれる対象物体の有無と、その位置および姿勢を推定し、その位置と姿勢を表す物体パラメータと、対象物体に対応する登録IDとを出力する。
なお、学習部111と認識部112は、常に両方が同時に存在する必要はない。学習部111により予め学習された結果、必要な情報が登録された登録画像辞書登録部124を認識部112に搭載するか、或いは無線で利用できるようにするようにしてもよい。
次に、図4と図5のフローチャートを参照して、学習部111における学習処理について説明する。この処理は、ユーザが学習処理の開始を指令したとき開始される。なお、認識部112における一般物体認識処理については、図34乃至図36を参照して後述する。
多重解像度生成部121は、後述するステップS28において、全登録画像を処理したと判定するまで、ステップS11乃至S27の処理を繰り返す。そこで、ステップS11において、多重解像度生成部121は、1つの未処理登録画像を選択する。ステップS12において、多重解像度生成部121は、多重解像度群を生成する。具体的には、多重解像度生成部121は、学習対象の登録画像を所定の倍率に従って縮小し、多重解像度画像群を生成する。例えば、最低解像度の画像である原画像からの縮小率をα、出力する多重解像度画像の数をN(原画像を含む)とするとき、k番目(原画像をk=0とする)の多重解像度の解像度画像I[k]は、原画像I[0]を縮小率α×(N−k)で、線形補間縮小することで生成される。
あるいは他の方法としては、解像度の一段階低い画像を生成するための縮小率をγ(固定値)とする、つまりI[0]を縮小率γkで、線形補間縮小することでI[k]を生成する方法も考えられる。
図6は、パラメータN=10,α=0.1とした場合に生成される多重解像度画像群を示す。図6の例においては、原画像I[0]を縮小率0.9で縮小した画像I[1]、縮小率0.8で縮小した画像I[2]、・・・、縮小率0.1で縮小した画像I[9]の合計10段階の多重解像度画像が生成されている。縮小率を規定する係数kの値が大きくなるほど画像がより小さい大きさに縮小される結果、各フレームの画枠自体も、係数kの値が大きい程小さくなる。
次に、特徴点抽出部122は、後述するステップS27において、全解像度画像を処理したと判定するまで、ステップS13乃至S26の処理を繰り返し、多重解像度生成部121により生成された各解像度画像I[k](k=0,・・・,N−1)から、画像の拡大縮小変換(スケール変換)があってもロバストに抽出されるような特徴点(スケール不変特徴点)を抽出するのであるが、スケール不変特徴点の抽出法としては、画像のスケールスペースを構築し、各スケール画像のDifference of Gaussian(DoG)フィルタ出力の局所極大点(局所的な所定の範囲の最大点)及び局所極小点(局所的な所定の範囲の最小点)のうち、スケール方向の変化によっても位置が変化しない点をスケール特徴点として抽出する方法(D. Lowe, “Object recognition from local scale-invariant features,” in Proc. International Conference on Computer Vision, Vol. 2, pp. 1150-1157, September 20-25, 1999, Corfu, Greece.)や、画像のスケールスペースを構築し、各スケール画像からHarrisコーナー検出器により抽出されたコーナー点のうち、スケールスペース画像のLaplacian of Gaussian(LoG)フィルタ出力の局所極大を与える点を特徴点として抽出する方法(K. Mikolajczyk, C. Schmid, “Indexing based on scale invariant interest points,” International Conference on Computer Vision, 525-531, July 2001.)などがある。スケール不変特徴点が抽出できる手法であれば、どのような抽出法でも特徴点抽出部122に適用が可能である。
ここでは発明の一実施の形態として、スケール不変特徴点の抽出法として、D.ロー(D. Lowe)が提案する方法(“Distinctive image features from scale-invariant keypoints,” accepted for publication in the International Journal of Computer Vision, 2004.)を基礎とした方法を説明する。この手法では、スケール不変特徴点抽出対象画像のスケールスペース表現(T. Lindeberg, “Scale-space: A framework for handling image structures at multiple scales.”, Journal of Applied Statistics, vol. 21, no. 2, pp. 224-270, 1994”)を介して、当該画像のDoGフィルタ出力から、スケール方向も考慮に入れた局所極大点及び局所極小点が特徴点として抽出される。
そこで、ステップS13において、特徴点抽出部122は、各解像度画像のうちの未処理解像度画像を選択する。そして、ステップS14において、特徴点抽出部122は、スケールスペースの解像度画像を生成する。すなわち、スケール不変特徴点抽出対象画像I(多重解像度生成部121で生成された各解像度画像(k=0,1,2,・・・,9の各解像度画像)のうちの1つの解像度画像がスケール不変特徴点抽出対象画像となる)のスケールスペースが生成される。スケールスペースのs番目(s=0,・・・,S−1)の解像度画像Lsは、スケール不変特徴点抽出対象画像Iを式(1)に示される2次元ガウス関数を用いて、σ=ks σ0で畳み込み積分(ガウスフィルタリング)することで生成される。
ここでσ0は、スケール不変特徴点抽出対象画像Iのノイズ除去を目的としたぼかし度を決めるパラメータであり、kはスケールスペースの各解像度間で共通のぼかし度に関するコンスタントファクタであり、解像度画像I[k]のkとは別のファクタである。なお、画像の水平方向をX軸、垂直方向をY軸としている。
図7は、このようにして生成されたスケールスペースの例を表している。この例においては、画像Iにそれぞれ以下の5個の2次元ガウス関数を用いて生成された解像度画像L0乃至L4を表している。
なお、式(2)乃至式(6)の右辺の畳み込み積分の記号の右辺の項は、次式を表す。すなわち、実質的に式(1)と同一である。
図7では、解像度レベル数S=5とされている。
次に、ステップS15で、特徴点抽出部122は、DoGフィルタ出力画像を演算する。すなわち、このように得られた特徴点抽出対象画像Iのスケールスペースの各解像度画像LsのDoGフィルタ出力画像が求められる。このDoGフィルタは、画像の輪郭強調のために用いられる2次微分フィルタの一種であり、人間の視覚系で網膜から外側膝状体で中継されるまでに行われている処理の近似モデルとして、LoGフィルタと共によく用いられるものである。DoGフィルタの出力は、2つのガウスフィルタ出力画像の差分を取ることで効率よく得られる。すなわち、図7の中央の列に示されるように、s番目(s=0,・・・,S−2)の解像度のDoGフィルタ出力画像Dsは、解像度画像Lsを、その1段上の階層の解像度画像Ls+1から減算する(Ls+1−Lsを演算する)ことで得られる。
次に、ステップS16で、特徴点抽出部122は、スケール不変特徴点を抽出する。具体的には、DoGフィルタ出力画像Ds(s=1,・・・,S−3)上のピクセルのうち、DoGフィルタ出力画像Dsの直接近傍領域(本実施の形態の場合、所定の位置の3×3個の画素の領域)、それより1段下位のDoGフィルタ出力画像Ds-1、並びにそれより1段上位のDoGフィルタ出力画像Ds+1上の同位置(対応する位置)の直接近傍領域の合わせて27ピクセルにおいて、局所極大(27ピクセルのうちの最大値)、局所極小(27ピクセルのうちの最小値)となるピクセルがスケール不変特徴点として抽出され、特徴点群Ks(s=1,・・・,S−3)として保持される。図7の右側の列に、この特徴点群Ksが示されている。こうして抽出された特徴点はファクタがk2の解像度変化(つまりスケール変化)に対して、位置の不変性を持つスケール不変特徴点である。
特徴点抽出部122は、後述するステップS27で、全解像度画像を処理したと判定するまで、ステップS13乃至S16の処理を繰り返し、多重解像度生成部121により生成された多重解像度レベル画像I[k]のそれぞれに対し、スケール不変特徴点群を抽出する。
次に、特徴量抽出部123は、ステップS17乃至S25の処理を、ステップS26で全特徴点を処理したと判定するまで繰り返し、各多重解像度レベル画像I[k]から抽出された各特徴点における特徴量を抽出する。以下においては、特徴点における特徴量を、文脈に応じて、特徴点特徴量または単に特徴量と呼ぶ。
特徴点特徴量としては、画像の回転変換、明度変化に対して不変な特徴量が用いられる。1つの特徴点に対して、複数の特徴量をあててもかまわない。その場合には、後段の特徴量比較部135において、異なる特徴量での比較結果を統合する処理が必要となる。この実施の形態の場合、特徴量として、当該特徴点が抽出された画像の特徴点近傍領域の濃度勾配情報(各点における濃度勾配強度及び濃度勾配方向)から導出される2つの特徴量が用いられる。1つは、当該特徴点近傍領域における支配的な濃度勾配方向(以下、カノニカル方向と呼ぶ)で補正された方向ヒストグラムであり、他の1つは、カノニカル方向で補正された低次元縮退された濃度勾配ベクトルである。
第1の特徴量(タイプ1の特徴量)は、特徴点近傍の濃度勾配方向に関するヒストグラム(方向ヒストグラム)を、その支配的方向でゼロ補正したものである。この第1の特徴量を抽出するために、特徴量抽出部123は、ステップS17において、1つの未処理特徴点を選択する。そして、ステップS18で、特徴量抽出部123は、濃度勾配強度Mx,yと方向Rx,yを求める。すなわち、図8に示されるように、特徴点近傍(本実施の形態では、当該特徴点Pを中心として直径7ピクセル(半径3.5ピクセル)の範囲に入るピクセル群)の濃度勾配強度Mx,y、及び方向Rx,yが、それぞれ式(8)と式(9)により求められる。同式中のx,yは、濃度勾配を求めるピクセルの画像上の座標であり、Ix,yは、その画素値である。
次に、ステップS19で、特徴量抽出部123は方向ヒストグラムを生成する。具体的には、特徴点近傍中の各ピクセルの方向Rx,yに基づいて、階級幅Δθ、階級数360°/Δθの方向ヒストグラム(本実施の形態では、Δθ=10°)の該当する階級に、各ピクセルの度数が累積される。このとき、図9に示されるように階級の量子化誤差の影響を小さくするため、度数(図9における縦軸)としては、階級(図9における横軸)の中心値から方向Rx,yへの距離の近さに比例した値が累積される。つまり、方向Rx,yから最も近い2つの階級をg,g+1とし、それぞれの中心値と方向Rx,yとの距離をd1,d2とすると、階級g,g+1に加算する度数値は、それぞれd2/(d1+d2),d1/(d1+d2)となる。これにより、量子化誤差が少なくなる。
次に、ステップS20で、特徴量抽出部123は度数を正規化する。すなわち、得られた方向ヒストグラムの度数が、特徴点近傍ピクセル数(直径7ピクセルの範囲に入るピクセル数)で割算することにより正規化される。このように、勾配方向のみを累積することで、明度変化に対して強い特徴量を得ることができる。
さらに、特徴量抽出部123は、ステップS21でカノニカル方向を抽出し、ステップS22で角度をカノニカル方向で正規化する。具体的には、回転変換に不変な特徴量とするために、得られた方向ヒストグラムの強いピークを与える角度としてのカノニカル方向が抽出され、そのカノニカル方向としての角度が0度になるようにヒストグラムをシフトすることで、角度の正規化が行われる。コーナー付近に抽出された特徴点に関するヒストグラムでは、そのエッジに垂直な方向に複数の強いピークが現れるため、このような場合は、強いピークごとにその角度が0度になるように補正した(正規化した)方向ヒストグラムが生成される。つまり、カノニカル方向の数だけ、別々に特徴量が生成される。ピークがカノニカル方向であるための基準は、例えば、最大累積値の80%以上の累積値を与えるピーク方向とされる。
例えば、図10に示される方向ヒストグラムにおいては、角度80度の度数V80と角度200度の度数V200の2つのピークが存在する。すなわち、角度80度と角度200度が、カノニカル方向となる。この場合、図11に示されるように、カノニカル方向としての角度80度が0度となるように正規化されたヒストグラムと、図12に示されるように、カノニカル方向としての角度200度が0度になるように正規化されたヒストグラムが生成される。
以上の処理で得られるタイプ1の特徴量は、方向ヒストグラムの階級数と同じ次元の特徴ベクトル(本実施の形態では、36(=360°/10°)次元ベクトル、すなわち、36個の階級の度数を表わす数字からなるベクトル)となる。
次に、第2の特徴量(タイプ2の特徴量)として、低次元縮退濃度勾配ベクトルが求められる。タイプ1の特徴量が、特徴点近傍内ピクセルの空間的配置を無視し、特徴点近傍局所領域での濃度勾配ベクトルの方向の傾向(頻度)のみに注目しているのに対し、タイプ2の特徴量は、特徴点近傍の各濃度勾配ベクトルの空間的配置に注目する。この2種類の特徴量を後述する手法で特徴量比較に用いることで、視点変化、明度変化に強い認識を実現する。
タイプ2の特徴量の抽出のために、まず、ステップS23で、特徴量抽出部123は、特徴点近傍画像を回転補正する。すなわち、上述の処理で得られた特徴点近傍のカノニカル方向が0度になるように特徴点近傍画像が回転補正される。さらに、ステップS24で、特徴量抽出部123は、濃度勾配ベクトル群を演算する。例えば、図13の上段に示されている特徴点近傍のピクセルの濃度勾配が、図10に示されるように分布している場合、上述したように、カノニカル方向は、80度と200度の方向となる。そこで、図13の中段の左側の図に示されるように、上段の画像をカノニカル方向80度が0度になるように、特徴点近傍画像が、この例の場合時計方向に回転される。そして、その濃度勾配ベクトル群が演算される。このことは、結局、図10の角度80度のカノニカル方向を0度として正規化して得られた図11の方向ヒストグラムの濃度勾配ベクトル群を得ることに等しい。
また、同様に、図13の中段の右側に示されるように、特徴点近傍画像が、200度のカノニカル方向が0度になるように回転補正される。そして、その画像の濃度勾配ベクトル群が演算される。このことは、図10の角度200度のカノニカル方向を0度として正規化することで得られた図12の方向ヒストグラムの濃度勾配ベクトル群を得ることに等しい。
次に、ステップS25において、特徴量抽出部123は、濃度勾配ベクトル群を次元縮退する。すなわち、数ピクセル程度の特徴点抽出位置のずれを吸収できるようにするために、この濃度勾配ベクトル群が、図13の下段の左右に示されているように、例えば、直径7ピクセルの円の内側にほぼ内接する四角形内の5×5ピクセルのベクトル群から、3×3個のベクトル群に線形補間リサンプルすることで次元縮退される。
線形補間リサンプルは、具体的には、図14に示されるように、リサンプル画像のピクセル値を、その近傍4個の元画像ピクセルからの距離の比率で以下の式により演算することで行われる。
f(X,Y)=(1-q)・{(1-p)・f(x,y)+p・f(x+1,y)}+q・{(1-p)・f(x,y+1)+p・f(x+1,y+1)}
・・・(10)
上記式において、(X,Y)はリサンプル画像のピクセル、(x,y),(x+1,y),(x,y+1),(x+1,y+1)は、リサンプル画像(X,Y)近傍の元画像ピクセル、f(a,b)は座標(a,b)のピクセル値、p,qは、図14に示されるように、近傍ピクセルからリサンプル画像(X,Y)へのx座標方向とy座標方向の距離比である。
こうして、次元縮退されたベクトルのx,y各成分を特徴ベクトルの各次元にあてることで、タイプ2の特徴量が得られる。線形補間リサンプルにより、3×3ベクトル群にリサンプルした場合には、18(=3×3×2)次元の特徴量となる。
なお、リサンプル後の目標の画像サイズが元画像サイズの半分以下の場合には、元画像を0.5倍ずつ縮小していき、目標サイズより大きい最小の0.5倍乗数サイズの画像が得られたら、その画像から式(10)のリサンプリングを行うことでリサンプリング時の誤差を小さくすることが可能である。例えば元画像の0.2倍サイズの画像を線形補間リサンプリングで作る場合には、0.5倍リサンプルを2回かけて得られる元画像の0.25倍サイズ画像に式(10)の線形補間リサンプリングを行う。
ステップS26において、特徴量抽出部123は、全特徴点を処理したかを判定し、まだ処理していない特徴点が存在する場合には、処理をステップS17に戻し、それ以降の処理を繰り返し実行する。ステップS26において、全特徴点を処理したと判定された場合(ステップS17乃至ステップS25の処理が、全ての特徴点について行われた場合)、ステップS27において、特徴点抽出部122は、全解像度画像を処理したかを判定する。まだ処理していない解像度画像が存在する場合には、処理はステップS13に戻り、それ以降の処理が繰り返し実行される。ステップS13乃至ステップS25の処理が、全ての解像度画像について行われたと判定された場合、ステップS28において、多重解像度生成部121は、全登録画像を処理したかを判定する。まだ処理していない登録画像が存在する場合には、処理はステップS11に戻り、それ以降の処理が繰り返し実行される。ステップS11乃至ステップS25の処理が、全ての登録画像について実行されたと判定された場合、処理はステップS29に進む。
登録画像辞書登録部124は、ステップS29において、以上のように抽出された特徴点特徴量をラベル付けし、登録する。この場合、どの登録IDの登録画像の多重解像度画像群の、どの画像の、どのスケールから抽出された、どの特徴点の特徴量なのか、が参照できるようにラベル付けされ、登録画像辞書登録部124に登録される。
以上のようにして、登録画像辞書登録部124には、認識させたい対象物体に対応する登録画像が特徴量として予め登録される。
学習部111と認識部112の両方を認識部23が有する場合には、認識部112は、この登録画像辞書登録部124をそのまま利用することが可能である。学習部111と認識部112が別の画像処理装置として構成される場合には、以上のようにして必要な情報が登録された登録画像辞書登録部124が、認識部112を有する画像処理装置に搭載されるか、或いは有線または無線通信により利用可能とされる。
次に、図15のフローチャートを参照して、図2の画像処理装置11における記憶処理について説明する。この記憶処理は、例えば、ユーザによりテレビコミュニケーションの開始が指示されたとき、開始される。
ステップS101において、撮像部21は、被写体を撮像し、その結果得られる入力画像を、記憶部22、認識部23、トラッキング部24、および合成部26に入力する。ステップS102において、記憶部22は、撮像部21から入力された入力画像を100フレーム分記憶する。100フレーム以上の入力画像が入力された場合には、古い画像が順次上書きされ、最新の100フレーム分の画像が記憶される。
ステップS103において、撮像部21は、ユーザによりテレビコミュニケーションの終了が指示されたかを判定する。まだテレビコミュニケーションの終了が指示されていない場合には、処理はステップS101に戻り、それ以降の処理が繰り返し実行される。テレビコミュニケーションの終了が指示されたと判定された場合、処理は終了する。
このようにして、撮像部21が撮像処理を実行しているとき、最新の100フレーム分の入力画像が記憶部22に記憶される。
次に、図16のフローチャートを参照して、図2の画像処理装置11における第1のリアルタイムトラッキング処理について説明する。この第1のリアルタイムトラッキング処理は、図34乃至図36を参照して後述する認識部23における一般物体認識処理により、登録ID、フレーム番号、および物体パラメータが出力されたとき、開始される。
一般物体認識処理の詳細は、図34乃至図36を参照して後述するが、この処理により、入力画像の中から、学習処理で登録された登録画像に対応する対象物体が認識された場合、その登録画像の登録ID、フレーム番号、および物体パラメータが出力される。
ステップS131において、トラッキング部24の指定領域トラッキング部41は、認識部23から入力された物体パラメータに基づく指定領域をトラッキングする第1の指定領域トラッキング処理を行う。この第1の指定領域トラッキング処理については、図18を参照して後述するが、この処理により、認識部23の認識結果に基づき指定された指定領域を高速でトラッキングする処理が実行される。
ステップS132において、指定領域トラッキング部41は、ユーザによりテレビコミュニケーションの終了が指示されたかを判定する。まだテレビコミュニケーションの終了が指示されていない場合には、処理はステップS131に戻り、上述した処理が繰り返し実行される。テレビコミュニケーションの終了が指示されたと判定された場合には、処理は終了する。
図2の指定領域トラッキング部41は、第1の指定領域トラッキング処理を実行するために、図17に示すような構成を有している。
図17の指定領域トラッキング部41は、領域指定部141、特徴点抽出部142、オプティカルフロー演算部143、アフィン行列演算部144、誤差演算部145、およびスコア演算部146により構成される。
領域指定部141には、認識部23またはスコア演算部146から物体パラメータが供給される。領域指定部141は、その物体パラメータに基づいて指定領域を指定し、その指定領域を特徴点抽出部142に供給する。
特徴点抽出部142には、認識部23からフレーム番号が供給され、特徴点抽出部142は、フレーム番号に基づいて、入力画像を、処理の対象とする入力画像(以下、対象入力画像という)として、記憶部22から読み出す。
特徴点抽出部142は、対象入力画像から、例えば図3の特徴点抽出部122と同様に特徴点を抽出する。特徴点抽出部142は、領域指定部141から供給される指定領域に基づいて、抽出した特徴点のうち、指定領域外に位置する特徴点を削除し、指定領域内の特徴点の位置を表す特徴点情報を一時的に保持する。また、特徴点抽出部142は、対象入力画像の指定領域内の特徴点の特徴点情報(以下、対象フレーム特徴点情報という)、対象入力画像の1フレーム前の入力画像(以下、前入力画像という)の指定領域内の特徴点の特徴点情報(以下、前フレーム特徴点情報という)、および対象入力画像を、オプティカルフロー演算部143に供給する。また、特徴点抽出部142は、対象フレーム特徴点情報と前フレーム特徴点情報を、誤差演算部145に供給する。
オプティカルフロー演算部143は、特徴点抽出部142から供給される対象フレーム特徴点情報、前フレーム特徴点情報、および対象入力画像に基づいて、各特徴点の動き情報としてオプティカルフローを演算し、そのオプティカルフローをアフィン行列演算部144に供給する。
アフィン行列演算部144は、オプティカルフロー演算部143から供給される各特長点のオプティカルフローのうちの、3個の特徴点のオプティカルフローから、アフィン変換を行うためのアフィン行列を演算する。アフィン行列演算部144は、そのアフィン行列を誤差演算部145に供給する。
誤差演算部145は、特徴点抽出部142から供給される前フレーム特徴点情報が表す各特徴点の位置と、アフィン行列演算部144から供給されるアフィン行列を乗算する。そして、誤算演算部145は、その乗算の結果得られる各特徴点の位置と、特徴点抽出部142から供給される対象フレーム特徴点情報が表す各特徴点の位置との誤差を演算し、各特徴点における誤差とアフィン行列をスコア演算部146に供給する。
スコア演算部146は、誤差演算部145から供給される誤差のうち、予め設定された閾値Tより小さい誤差があるかを判定する。スコア演算部146は、その判定の結果に応じて、その誤差に対応するアフィン行列のスコアを決定する。なお、ここでは、誤差が閾値Tより小さい特徴点の数が多いほど、スコアが大きくなるように、スコアが決定されるものとする。
スコア演算部146は、対象入力画像におけるアフィン行列のうち、スコアの最も大きいアフィン行列を、指定領域の代表アフィン行列として選択する。スコア演算部146は、代表アフィン行列のパラメータを物体パラメータとして領域指定部141に供給する。また、スコア演算部146には、認識部23から登録IDが供給され、スコア演算部146は、所定のタイミングで、その登録IDとともに、代表アフィン行列のパラメータを物体パラメータとして、指定領域トラッキング部42に供給する。
次に、図18のフローチャートを参照して、図16のステップS131の第1の指定領域トラッキング処理の詳細について説明する。
ステップS151において、領域指定部141は、認識部23による一般物体認識処理の結果得られた物体パラメータに基づいて指定領域を指定する。すなわち、物体パラメータの位置情報(座標データ)に基づいて、トラッキングすべき指定領域が指定され、その指定領域が特徴点抽出部142に供給される。ステップS152において、特徴点抽出部142は、認識部23から供給される、認識された対象物体を含むフレームのフレーム番号に基づいて、記憶部22に記憶されている入力画像の中から、そのフレーム番号の入力画像を対象入力画像として読み出す。ステップS153において、特徴点抽出部142は、対象入力画像から特徴点を抽出する。この特徴点は、上述した図4のステップS16における場合と同様の特徴点とすることができる。
ステップS154において、特徴点抽出部142は、ステップS153で抽出した特徴点から、領域指定部141から供給された指定領域の外に位置する特徴点を削除し、指定領域内の特徴点の位置を表す特徴点情報を一時的に保持する。また、特徴点抽出部142は、対象フレーム特徴点情報、前フレーム特徴点情報、および対象画像を、オプティカルフロー演算部143に供給し、対象フレーム特徴点情報と前フレーム特徴点情報を誤差演算部145に供給する。
ステップS155において、オプティカルフロー演算部143は、特徴点抽出部142から供給される対象フレーム特徴点情報、前フレーム特徴点情報、および対象画像に基づいて、例えばLK(Lucas Kanade)法により、各特徴点のオプティカルフローを演算する。
図19を参照して、この演算について説明する。なお、図19では、LK法により、光軸と直交する方向への特徴点Pのオプティカルフローを演算する場合について説明する。
オプティカルフローの演算では、対象フレーム特徴点情報が位置を表す特徴点と、前フレーム特徴点情報が位置を表す特徴点の移動を解析するが、より具体的には、入力画像から、解像度を段階的に低下させた画像を複数形成し、先ず解像度を低下させた画像同士で比較が行われる。これにより、特徴点の移動を解析する際の演算処理量を最小限に抑えることができる。
図19Aと図19Bに示すように、撮像部21で時刻t−1に撮像された前入力画像151Aと、時刻tに撮像された対象入力画像151Bの画素数を320×240ピクセルとすると、オプティカルフロー演算部143は、図19Aに示すように、前入力画像151Aに基づいて、その解像度を1/4に低下させた160×120ピクセルの画像152A、更に解像度を1/4に低下させた80×60ピクセルの画像153Bの2種類の画像を生成する。また、同様に、オプティカルフロー演算部143は、対象入力画像151Bに基づいて、その解像度を1/4に低下させた160×120ピクセルの画像152B、更に解像度を1/4に低下させた80×60ピクセルの画像153Bの2種類の画像を生成する。
なお、画像152A(152B)と画像153A(153B)は、元の320×240ピクセルの前入力画像151A(対象入力画像151B)と同じ画面領域の画像であるが、画素数を少なくすることで解像度が低下されている。また、対象入力画像151B、画像152B、および画像153Bは、オプティカルフロー演算部143に保持され、次の対象入力画像の特徴点のオプティカルフローの演算に用いられる。すなわち、前入力画像151A、画像152A、および画像153Aは、前回の演算時に保持されたものである。
最初に、オプティカルフロー演算部143は、最も解像度の低い画像153Aと画像153Bを比較し、特徴点Pの大まかな移動を解析する。画像153Aと画像153Bは、画素数が少なく、探索範囲が少ないため、オプティカルフローを演算する演算処理を少ない負荷で行うことができる。オプティカルフロー演算部143は、画像153Aと153Bを比較することにより、時刻tにおける特徴点P(t−1)から、時刻tにおける特徴点P(t)に向かうベクトルを、特徴点P(t)のオプティカルフローとして簡易的に求める。
次に、オプティカルフロー演算部143は、画像153Aと画像153Bで特徴点Pのオプティカルフローが検出された範囲を中心として、画像152Aと画像152Bを比較し、特徴点Pの移動をより詳細に解析する。画像153Aと画像153Bに比べて画像152Aと152Bの画素数は多いが、画像153Aと画像153Bの解析により探索範囲を絞り込むことで、演算処理の負荷を軽減することができる。
次に、オプティカルフロー演算部143は、画像152Aと画像152Bで特徴点Pのオプティカルフローが検出された範囲を中心として、撮像部21で撮像された320×240ピクセルの前入力画像151Aと対象入力画像151Bを比較し、特徴点Pの移動をより詳細に解析する。ここでは、画像152Aと画像152Bの解析により探索範囲がさらに絞り込まれるため、画素数の最も多い前入力画像151Aと対象入力画像151Bを用いて、特徴点P(t)のオプティカルフローを、少ない負荷で精度良く演算することができる。
図19に示したように、LK法によれば、時系列のフレーム毎に特徴点の移動を解析する際に、処理量を抑えることができ、時間遅れを最小限に抑えた状態で、時系列の画像の動きを解析することができる。このようなLK法によるオプティカルフローの画像処理については、例えばホームページ(http://robots.stanford.edu/cs223b04/algo_tracking.pdf)に掲載された論文「Pyramidal Implementation of the Lucas Kanade Feature Tracker Description of the algorithm; Jean-Yves Bouguet, Intel Corporation, Microprocessor Research Labs」に記載された手法により行うことができる。このように、オプティカルフローの演算に強い特徴点に対してLK法を適用し、解像度を段階的に可変した画像を用いて特徴点の動きを解析することで、短時間で高精度に特徴点のオプティカルフローを演算することができる。
また、オプティカルフローの演算は、LK法以外の他の方法で行っても良く、例えば公知のブロックマッチング(Block Matching)法、勾配法などの方法で行ってもよい。
以上のようにして演算された各特長点のオプティカルフローは、アフィン行列演算部144に供給される。次に、ステップS156において、アフィン行列演算部144は、オプティカルフロー演算部143から供給されるオプティカルフローに対応する各特長点から、特徴点を3個選択する。
ステップS157において、アフィン行列演算部144は、ステップS156で選択された3個の特徴点のオプティカルフローから、3個の特徴点の、アフィン変換を行うためのアフィン行列を演算する。ここで、アフィン変換は、平行移動及び回転変換(ユークリッド変換)に拡大縮小変換を加えた相似変換に、せん断変形を許すような変換で、元の図形で直線上に並ぶ点は変換後も直線上に並び、平行線は変換後も平行線であるなど、幾何学的性質が保たれる変換である。
アフィン変換を行うためのアフィン行列について説明すると、前画像の特徴点のオプティカルフロー[x y]Tの対象入力画像の特徴点のオプティカルフロー[u v]Tへのアフィン変換は、以下の式(11)で与えられる。
この式(11)において、ai(i=1,…,4)は回転、拡大縮小、せん断変形を決定するパラメータを表し、[b1 b2]Tは、平行移動パラメータを表す。演算すべきアフィン行列のパラメータ(アフィン変換パラメータ)はa1,…,a4及びb1,b2の6つであるため、特徴点の組が3組あれば、アフィン行列を決定することができる。即ち、アフィン変換を行うためのアフィン行列(アフィン変換パラメータ)を演算するためには特徴点の組が3組以上必要となる。そこで、ステップS156では、特徴点が3個選択され、ステップS157において、その3個の特徴点のオプティカルフローからアフィン行列が演算される。アフィン行列演算部144は、演算の結果得られるアフィン行列を誤差演算部145に供給する。
ステップS158において、誤差演算部145は、アフィン行列演算部144から供給されるアフィン行列を、特徴点抽出部142から供給される前フレーム特徴点情報が表す各特徴点の位置に乗算する。ステップS159において、誤算演算部145は、その乗算の結果得られる各特徴点の位置と、特徴点抽出部142から供給される対象フレーム特徴点情報が表す各特徴点の位置との誤差を演算し、各特徴点における誤差とアフィン行列をスコア演算部146に供給する。
ステップS160において、スコア演算部146は、誤差演算部145から供給される各特徴点における誤差のうち、予め設定された閾値Tより小さい誤差があるかを判定する。ステップS160で、閾値Tより小さい誤差があると判定された場合、ステップS161において、スコア演算部146は、誤差が閾値Tより小さい特徴点の数だけ、誤差と同時に供給されるアフィン行列のスコアをインクリメントする。なお、インクリメントされる値は、予め決められた所定の値であってもよいし、誤差に応じた値であってもよい。
一方、ステップS160で、閾値Tより小さい誤差がない、すなわち全ての特徴点の誤差が閾値T以上であると判定された場合、処理はステップS161をスキップする。すなわち、スコア演算部146は、スコアをインクリメントしない。
ステップS162において、スコア演算部146は、対象入力画像におけるアフィン行列の演算が所定回数繰り返されたかを判定する。ここでは所定の数のアフィン行列が供給されたかを判定してもよい。ステップS162で、まだ所定回数繰り返されていないと判定された場合、処理はステップS156に戻り、アフィン行列演算部144が新たに3個の特徴点を選択し、上述した処理が繰り返し実行される。
一方、ステップS162で、対象入力画像におけるアフィン行列の演算が所定回数繰り返されたと判定された場合、ステップS163において、スコア演算部146は、対象入力画像におけるアフィン行列のうち、スコアの最も大きいアフィン行列を、指定領域の代表アフィン行列として選択する。
図20と図21を参照して、このようにして選択された代表アフィン行列について説明する。図20と図21の例では、ユーザ(例えば、図1のAさん)が手に所持した登録画像である写真161を、手首に位置する点162を中心に回転させたときに、写真161を持った手が被写体として撮像された入力画像160を対象入力画像としている。
なお、図20において、丸印、三角印、およびバツ印は、入力画像160において抽出される特徴点を表しており、指定領域163としては、入力画像160中の写真161の画像の領域が指定されている。
また、図20の丸印で表される特徴点は、入力画像160中の指定領域163内の写真161に位置する特徴点であり、三角印で表される特徴点は、指定領域163内の写真161と手の境界に位置する特徴点である。バツ印で表される特徴点は、入力画像160中の指定領域163外に位置する特徴点である。従って、入力画像160において抽出される特徴点のうち、バツ印で表される特徴点は、特徴点抽出部142によりステップS154の処理で削除される。
指定領域トラッキング部41は、指定領域163内の丸印と三角印で表される各特長点のうち、3個の特徴点のオプティカルフローからアフィン行列を演算する。例えば、図21に示すように、写真161が点162を中心に図中右上方向に移動されて、入力画像160が撮影された場合、入力画像160における3個の特徴点n1乃至n3のそれぞれのオプティカルフローは、前入力画像における3個の特徴点m1乃至m3の位置から、特徴点n1乃至n3へのベクトルv1乃至v3であり、そのベクトルv1乃至v3から、アフィン行列が演算される。
そのアフィン行列を用いて演算された特徴点の位置の誤差が閾値Tより小さい場合、その特徴点の数だけスコアがインクリメントされ、最もスコアの大きいアフィン行列が、代表アフィン行列として選択されるので、指定領域163内における誤差の最も少ないアフィン行列が、代表アフィン行列として選択される。従って、指定領域163内の局部にある手の境界に位置する三角印で表される特徴点に対応するアフィン行列ではなく、指定領域163内の全体に位置する写真161に位置する丸印で表される特徴点に対応するアフィン行列が、代表アフィン行列として選択される。すなわち、ノイズ的な動きの影響の少ないアフィン行列を、代表アフィン行列として選択することができる。
ステップS164において、スコア演算部146は、所定のフレーム数の入力画像を対象入力画像として処理をしたか、すなわち所定のフレーム数分の代表アフィン行列を選択したかを判定する。この所定のフレーム数は、図30を参照して後述するように、一般物体認識処理において用いられた入力画像が撮像されてから、その一般物体認識処理により入力された物体パラメータに基づく指定領域の第1の指定領域トラッキング処理が終了するまでに撮像される入力画像のフレーム数である。
ステップS164で、まだ所定のフレーム数の入力画像を対象入力画像として処理していないと判定された場合、スコア演算部146は、代表アフィン行列のパラメータを物体パラメータとして、領域指定部141に供給し、ステップS165において、領域指定部141は、その物体パラメータに基づいて指定領域を遷移させる。なお、指定領域の遷移とは、指定領域の移動および姿勢の変更を指す。領域指定部141は、遷移後の指定領域を特徴点抽出部142に供給する。
ステップS166において、特徴点抽出部142は、直前に対象入力画像として読み出した入力画像のフレーム番号の次のフレーム番号の入力画像を、対象入力画像として読み出す。そして、処理はステップS153に戻り、上述した処理が繰り返し実行される。
一方、ステップS164において、所定のフレーム数の入力画像を対象入力画像として処理したと判定された場合、ステップS167において、スコア演算部146は、代表アフィン行列のパラメータを、指定領域のトラッキングの結果としての物体パラメータとして、認識部23から供給される登録IDとともに、指定領域トラッキング部42に出力する。そして、処理は、図16のステップS131に戻る。
以上のようにして、第1の指定領域トラッキング処理は高速に行うことができるので、リアルタイムのトラッキングが可能となる。
次に、図22のフローチャートを参照して、図2の画像処理装置11における第2のリアルタイムトラッキング処理について説明する。
ステップS181において、トラッキング部24の指定領域トラッキング部42は、図18のステップS167で、指定領域トラッキング部41から出力される物体パラメータに基づき指定される指定領域をトラッキングする第2の指定領域トラッキング処理を行う。この第2の指定領域トラッキング処理については、図29を参照して後述するが、この処理は、実質的には、図16のステップS131における第1の指定領域トラッキング処理と同様の高速の処理である。
ステップS182において、補正画像生成部25は、指定領域トラッキング部42から供給される登録IDに基づく要求に応じて制御部28から送信されてくる登録画像と、指定領域トラッキング部42から供給される物体パラメータに基づいて、入力画像中の対象物体(認識部23の一般物体認識処理により認識された物体)と同一のサイズで、かつ同一の姿勢の登録画像を、入力画像を補正する補正画像として生成する。補正画像生成部25は、生成した補正画像と、指定領域トラッキング部42から供給される物体パラメータを合成部26に供給する。
ステップS183において、合成部26は、入力画像を表示する画面の面積S1の、補正画像生成部25から供給される補正画像の面積S2に対する比が、基準値以上かを判定する。ステップS183で、画面の面積S1の補正画像の面積S2に対する比が基準値以上であると判定された場合、ステップS184において、合成部26は、補正画像生成部25から供給される物体パラメータに基づいて、撮像部21から供給される入力画像中の、指定領域トラッキング部42により指定された指定領域に補正画像を合成する。そして、合成部26は、その結果得られる合成画像を出力部27と制御部28に供給する。その結果、出力部27と、ネットワーク12を介して接続される他の画像処理装置11の出力部の画面には、入力画像の指定領域に、補正画像がはめ込まれた画像が表示される。
例えば、登録画像が表示されたデジタルカメラ170を手に所持した人物が被写体として撮像され、入力画像171が取得された場合、図23に示すように、入力画像171の指定領域172としての登録画像に対応する対象物体の領域内に、入力画像171中の対象物体と同一のサイズで、かつ同一の姿勢の登録画像である補正画像173がはめ込まれる。これにより、ユーザは、合成による違和感を感じずに、撮像部21により撮像されたデジタルカメラ170に表示された登録画像を鮮明に見ることができる。
なお、入力画像171中の対象物体と同一のサイズで、かつ同一の姿勢の登録画像を補正画像173として生成するのではなく、図24に示すように、入力画像171中の対象物体と同一のサイズで、撮像部21の光軸に対して正面向きの姿勢の登録画像を補正画像181として生成し、その補正画像181を指定領域172にその中心が一致するように表示してもよい。この場合、例えば、ユーザが、撮像部21の光軸に対して正面に、デジタルカメラ170に表示された登録画像を配置することができない場合であっても、正面向きの登録画像を表示させることができ、より登録画像の見やすい画像をユーザに提供することができる。
また、図25に示すように、入力画像171の指定領域172内に補正画像173をはめ込むだけでなく、さらに、あるいは、はめ込みに代えて、予め設定された所定の領域191に登録画像192をそのまま表示させるようにしてもよい。
一方、ステップS183で、画面の面積S1の、補正画像の面積S2に対する比が基準値以上ではないと判定された場合、ステップS185において、合成部26は、補正画像を画面全体の画像として、撮像部21から供給される入力画像に合成し(実質的には、入力画像全体を補正画像で置き換えた画像を生成することになる)、その結果得られる合成画像を出力部27と制御部28に供給する。その結果、出力部27と、ネットワーク12を介して接続される他の画像処理装置11の出力部27の画面全体には、補正画像が表示される。
例えば、図26に示すように、補正画像202の面積S2(指定領域203の面積S21と補正画像202のうちの指定領域203に対応する領域以外の領域204の面積S22の和)が大きい場合、面積S1の画面201における指定領域203の面積S21に比べて、領域204の面積S22が大きくなってしまう。即ち、この場合、指定領域203に補正画像202が合成されても、指定領域203に合成される補正画像202は、補正画像202のうちの局部となる。従って、ユーザは、被写体となった登録画像を認識することができない。
そこで、画面の面積S1の、補正画像の面積S2に対する比が基準値以上ではないと判定された場合、合成部26は、例えば、図27に示すように、補正画像205を画面206全体の画像として、撮像部21から供給される入力画像に合成する。その結果、画面206には、全画面サイズの補正画像205が表示される。これにより、ユーザが登録画像を撮像部21に近づけ過ぎてしまい、登録画像の局部しか撮像されない場合であっても、登録画像を認識することができる。
ステップS184またはステップS185の処理後、処理はステップS186に進み、指定領域トラッキング部42は、ユーザによりテレビコミュニケーションの終了が指示されたかを判定する。ステップS186において、ユーザによりテレビコミュニケーションの終了が指示されていないと判定された場合、テレビコミュニケーションの終了が指示されたと判定されるまで、ステップS181乃至S185の処理が繰り返され、ステップS186において、テレビコミュニケーションの終了が指示されたと判定されると、処理は終了する。
図2の指定領域トラッキング部42は、図22のステップS181の第2の指定領域トラッキング処理を実行するために、図28に示すような構成を有する。
図28の指定領域トラッキング部42は、領域指定部211、特徴点抽出部212、オプティカルフロー演算部213、アフィン行列演算部214、誤差演算部215、およびスコア演算部216により構成される。
領域指定部211には、指定領域トラッキング部41のスコア演算部146またはスコア演算部216から物体パラメータが供給される。領域指定部211は、図17の領域指定部141と同様に、その物体パラメータに基づいて指定領域を指定し、その指定領域を特徴点抽出部212に供給する。
特徴点抽出部212には、撮像部21から入力画像が供給される。特徴点抽出部212は、供給された入力画像を対象入力画像として、その対象入力画像から、特徴点抽出部122(図3)や特徴点抽出部142(図17)と同様に特徴点を抽出する。特徴点抽出部212は、特徴点抽出部142と同様に、領域指定部211から供給される指定領域に基づいて、抽出した特徴点のうち、指定領域外に位置する特徴点を削除し、特徴点情報を一時的に保持する。また、特徴点抽出部212は、対象フレーム特徴点情報、前フレーム特徴点情報、および対象入力画像を、オプティカルフロー演算部213に供給する。特徴点抽出部212は、対象フレーム特徴点情報と前フレーム特徴点情報を、誤差演算部215に供給する。
オプティカルフロー演算部213、アフィン行列演算部214、および誤差演算部215の機能は、図17のオプティカルフロー演算部143、アフィン行列演算部144、および誤差演算部145と同様であるので、その説明は繰り返しになるので省略する。
スコア演算部216は、図17のスコア演算部146と同様に、誤差演算部215から供給される誤差のうち、予め設定された閾値Tより小さい誤差があるかを判定する。スコア演算部216は、スコア演算部146と同様に、その判定の結果に応じて、その誤差に対応するアフィン行列のスコアを決定する。
スコア演算部216は、スコア演算部146と同様に、対象入力画像におけるアフィン行列のうち、スコアの最も大きいアフィン行列を、指定領域の代表アフィン行列として選択する。スコア演算部216は、スコア演算部146と同様に、代表アフィン行列のパラメータを物体パラメータとして領域指定部211に供給する。また、スコア演算部216には、スコア演算部146から登録IDが供給される。スコア演算部216は、所定のタイミングで、その登録IDとともに、代表アフィン行列のパラメータを物体パラメータとして、補正画像生成部25に供給する。
このように、指定領域トラッキング部42の構成は、指定領域トラッキング部41の構成と基本的に同様である。
次に、図29のフローチャートを参照して、図22のステップS181の第2の指定領域トラッキング処理の詳細について説明する。
ステップS201において、領域指定部211は、物体パラメータが指定領域トラッキング部41から入力されたかを判定する。ステップS201で、物体パラメータが指定領域トラッキング部41から入力されたと判定された場合、ステップS202において、領域指定部211は、指定領域トラッキング部41から供給される物体パラメータに基づいて指定領域を指定し、その指定領域を特徴点抽出部212に供給する。
一方、ステップS201で、物体パラメータが指定領域トラッキング部41から入力されていないと判定された場合、ステップS203において、領域指定部211は、後述するステップS216でスコア演算部216から供給される物体パラメータに基づいて、指定領域を遷移させ、その指定領域を特徴点抽出部212に供給する。
ステップS202またはステップS203の処理後、処理はステップS204に進み、特徴点抽出部212は、撮像部21から供給される入力画像を対象入力画像として取得する。ステップS205乃至S215の処理は、図18のステップS153乃至S163の処理と同様であるので、その説明は繰り返しになるので省略する。
ステップS215で代表アフィン行列が選択された後、ステップS216において、スコア演算部216は、代表アフィン行列のパラメータを、指定領域のトラッキングの結果としての物体パラメータとして、指定領域トラッキング部41のスコア演算部146から供給される登録IDとともに、補正画像生成部25に出力するとともに、領域指定部211に物体パラメータを出力する。そして、処理は、図22のステップS181に戻る。
このように、指定領域トラッキング部42の第2の指定領域トラッキング処理は、指定領域トラッキング部41の第1の指定領域トラッキング処理と基本的に同様であり、高速の処理ができ、リアルタイムのトラッキングを可能にするのであるが、トラッキング対象の初期値が、後者では認識部23からの情報により設定されるのに対して、前者では指定領域トラッキング部41からの情報により設定される。また、処理対象画像が、後者では記憶部22に記憶された入力画像であるのに対して、前者では撮像部21からリアルタイムで供給される入力画像である。
次に、図30を参照して、図2の画像処理装置11における処理のタイミングについて説明する。
なお、図30において、横方向は時刻を表している。また、図30において、四角は、横方向の位置に対応する時刻に処理されるフレームを表しており、四角の中または上に記載されている数字は、そのフレームのフレーム番号を表している。
図30Aに示すように、図15に示した撮像処理では、撮像部21により被写体が撮像され、フレーム単位の撮像画像が入力画像として取得される。図30の例では、初めて登録画像が撮像された入力画像のフレーム番号が「2」となっている。
また、図30の例では、図30Bに示すように、図34乃至36を参照して後述する一般物体認識処理が開始されてから終了するまでの間に、5フレーム分の入力画像が撮像され、記憶される。従って、図30Bに示すように、一般物体認識処理では、開始時に撮像部21から入力される5フレームおきの入力画像が、対象入力画像とされる。具体的には、図30の例では、フレーム番号が「2」、「7」、「12」、「17」・・・の入力画像が順に対象入力画像とされる。
図30Cに示すように、図18の第1の指定領域トラッキング処理は、一般物体認識処理により認識部23から物体パラメータが入力されたとき開始される。この第1の指定領域トラッキング処理では、処理の開始時に入力された物体パラメータを求めるときに用いられた入力画像、すなわち、認識部23から供給されるフレーム番号の入力画像から順に、最後に記憶された入力画像を対象入力画像とするまでの間、入力画像が対象入力画像とされる。すなわち、認識部23から供給されるフレーム番号の入力画像が撮像されてから、第1の指定領域トラッキング処理の終了時までに撮像された入力画像が、順に対象入力画像とされる。
なお、図30の例では、認識部23から供給されるフレーム番号の入力画像が撮像されてから、第1の指定領域トラッキング処理の終了時までに、7フレーム分の入力画像が撮像されて、記憶される。従って、第1の指定領域トラッキング処理において、7フレーム分の入力画像が対象入力画像とされる。
以上のように、第1の指定領域トラッキング処理では、一般物体認識処理において用いられた入力画像が撮像されてから、第1の指定領域トラッキング処理の終了時までの間に撮像された入力画像において、指定領域がトラッキングされる。従って、第1の指定領域トラッキング処理において出力される物体パラメータは、第2の指定領域トラッキング処理の開始時の直前に撮像された入力画像における指定領域のトラッキングの結果となる。
図30Dに示すように、図29の第2の指定領域トラッキング処理は、第1の指定領域トラッキング処理により指定領域トラッキング部41から物体パラメータが入力されたとき、または、物体パラメータが入力された後に入力画像が入力されたとき開始される。この第2の指定領域トラッキング処理では、処理の開始時に撮像された入力画像を対象画像として処理が行われる。
上述したように、第1の指定領域トラッキング処理において出力される物体パラメータは、第2の指定領域トラッキング処理の開始時の直前に撮像された入力画像における指定領域のトラッキングの結果であるので、第2の指定領域トラッキング処理では、この物体パラメータに基づく指定領域をトラッキングすることにより、処理の開始時に撮像された入力画像においてリアルタイムでトラッキングを行うことができる。これにより、図2の画像処理装置11では、高精度であるが、処理に長い時間を要する一般物体認識処理を行いつつ、その一般物体認識処理の結果に基づいてリアルタイムでトラッキングを行うことができるので、リアルタイムで高精度のトラッキングを行うことができる。
図30に示すように、この実施の形態の場合、第2フレーム乃至第8フレームに基づく第1の指定領域トラッキング処理が行われ、画像処理装置11における処理が第2の指定領域トラッキング処理に移行した後、そのまま第2の指定領域トラッキングが継続されるのではなく、5フレームごとに一般物体認識処理と第1の指定領域トラッキング処理が実行され、第2の指定領域トラッキング処理は、その都度リスタートされる。これにより、リスタートしない場合に比べて、より正確なトラッキングが可能となる。
次に、図31乃至図33を参照して、図2の画像処理装置11における効果について説明する。
まず最初に、図31を参照して、撮像部21によりリアルタイムで撮像される画像について説明する。図31の例では、図31Aに示す対象物体の表示領域(以下、対象物体領域という)が領域P1である入力画像221が撮像された後、図31Bに示す対象物体領域が領域P2である入力画像222が撮像され、次に、図31Cに示す対象物体領域が領域P3である入力画像223が撮像される。すなわち、ユーザが写真を画面の右下から左上方向に移動させている状態が撮像されている。
次に、図32を参照して、一般物体認識処理の結果得られる物体パラメータに基づく指定領域をトラッキングするトラッキング処理が行われ、その結果得られる物体パラメータを用いて合成画像が生成される場合について説明する。すなわち、認識部23と指定領域トラッキング部41とを組み合わせた場合について説明する。なお、この場合、一般物体認識処理において対象入力画像となった入力画像が撮像されてから、トラッキング処理の開始時までに撮像された入力画像をトラッキングに用いるものとする。
図32の例では、図31の場合と同様に、入力画像221(図32A),222(図32B),223(図32C)が順に撮像される。上述したように、トラッキング処理は、一般物体認識処理において対象入力画像となった入力画像が撮像されてから、トラッキング処理の開始時までに撮像された入力画像を用いて行われるので、トラッキング処理の結果得られる物体パラメータを用いて、合成時に撮像される入力画像223を基に合成画像が生成されると、図32Cに示すように、トラッキング処理の開始時に撮像された入力画像223より前の入力画像221における物体パラメータに基づいて、入力画像223の領域P1に補正画像がはめ込まれた合成画像が生成されてしまう。従って、補正画像の表示位置が、トラッキング処理の開始時から合成時までの時間分遅れてしまう。
これに対して、図2の画像処理装置11により、一般物体認識処理の結果得られる物体パラメータに基づく指定領域をトラッキングする第1の指定領域トラッキング処理が行われ、その結果得られる物体パラメータに基づく指定領域をトラッキングする第2の指定領域トラッキング処理が行われ、その結果得られる物体パラメータを用いて合成画像が生成されるようにすると、すなわち認識部23、指定領域トラッキング部41、および、指定領域トラッキング部42を用いてトラッキングを行うと、図33に示すようになる。
図33の例では、図31や図32の場合と同様に、入力画像221乃至223が順に撮像される。上述したように、第1の指定領域トラッキング処理では、一般物体認識処理において対象入力画像となった入力画像が撮像されてから、第1の指定領域トラッキング処理の終了時までに撮像された入力画像が対象入力画像とされるので、第2の指定領域トラッキング処理では、第1の指定領域トラッキング処理の結果得られる物体パラメータに基づく指定領域をトラッキングすることにより、第2の指定領域トラッキング処理の開始時に撮像される入力画像においてリアルタイムにトラッキングを行うことができる。
従って、図33Cに示すように、入力画像223が撮像された場合、第2の指定領域トラッキングの処理により、その入力画像223においてリアルタイムにトラッキングを行った結果得られる物体パラメータに基づいて、入力画像223の対象物体の領域P3に補正画像がはめ込まれた合成画像が生成される。
次に、図34乃至図36のフローチャートを参照して、図2の認識部23における一般物体認識処理について説明する。
多重解像度生成部131、特徴点抽出部132、および特徴量抽出部133は、ステップS331乃至S347において、このとき入力された入力画像を対象入力画像として、その対象入力画像に対して、図4と図5のステップS11乃至S27における学習部111の多重解像度生成部121、特徴点抽出部122、および特徴量抽出部123と同様の処理を行う。その説明は繰り返しになるので省略する。但し、パラメータNとαで決まる多重解像度画像の構成が、認識時では学習時と異なっている。
多重解像度生成部121は、学習時の多重解像度画像を広い倍率レンジで細かい精度で生成するのに対し、多重解像度生成部131は、認識時において、粗い精度で多重解像度画像を生成する。具体的に、本実施の形態で適用しているパラメータは、ステップS12の学習時がN=10,α=0.1であるのに対し、ステップS332の認識時はN=2,α=0.5である。その理由は、次の通りである。
1)認識精度を上げるには、より多くの特徴点特徴量情報を用いて特徴量比較を行うのが望ましい。つまり、より多くの多重解像度画像から特徴点抽出するのが望ましい。
2)スケール変化のロバスト性を得るために、多重解像度画像の構成はなるべくスケールレンジを広くするのが望ましい。
3)登録画像学習時にはリアルタイム性をそれほど重視しなくても良いので、登録画像の多重解像度画像数を多くし、スケールレンジを広くして特徴点特徴量を抽出し、保持することが可能である。
4)本実施の形態では、対象入力画像から抽出された各特徴点特徴量を、全登録画像の全特徴点特徴量から構築されるkdツリーの k-Nearest Neighbor(k-NN)探索(後述する)を用いて特徴量の比較を行っているため、特徴量比較にかかる計算コストは、対象入力画像から抽出された特徴点数に対して比例して増加するが、登録画像特徴点数に対しては、全登録画像からkdツリーを構築した場合には全登録画像特徴点をnとすると、計算コストをlognのオーダー(つまりO(logn))に抑えることができる。
5)また一方で、認識時はリアルタイム性が重視されるため、多重解像度画像数をなるべく減らすことで計算コストを小さくする必要が有る。
6)かといって、対象入力画像から多重解像度画像を生成せず、対象入力原画像のみを用いてしまうと、原登録画像のサイズよりも対象入力画像中の登録画像のサイズが大きい場合には、その対象物体の認識が不可能となってしまう。
以上の理由から、図37に示されるように、学習時の登録画像からは、より多くの(k=0乃至9の)多重解像度画像群をより広いレンジで生成し(N=10,α=0.1)、より多くの特徴点を抽出する一方、認識時には、対象入力画像から、認識に最小限必要な(k=0,1の)多重解像度画像群を生成し(N=2,α=0.5)、それから特徴点を抽出し、特徴量比較をkdツリー上でk-NN探索を適用することで行い、計算コストを少なくかつ精度の良い認識を実現することを可能とする。図37には、原登録画像は大き過ぎて対応する大きさのスケールの階層の対象物体は存在しないが、原登録画像(k=0)を0.5倍に縮小する(k=1)ことで、対応する大きさのスケールの階層の対象物体が見い出されるようになることが示されている。
ステップS331乃至ステップS345の処理が、全特徴点並びに全解像度画像について行われた場合、処理はステップS348に進む。
後述するように、対象入力画像から抽出された各特徴点特徴量(次元縮退された濃度勾配ベクトル群)は、登録されている登録画像の各特徴点特徴量と比較され、類似する登録画像特徴点特徴量と候補対応特徴点組として組み合わされる。最も単純な特徴量比較方法は全探索である。つまり、対象入力画像の各特徴点特徴量に対して、全登録画像の全特徴点特徴量との特徴量間類似度の計算を行い、その類似度により対応特徴点組を選択するのが最も単純な方法である。しかし、全探索による方法は、計算コスト的に実用的でない。そこで本発明の実施の形態では、大量のデータ群からデータを高速に探索するために、kdツリーというデータ構造を用いたツリー探索手法(J. H. Friedman, J. L. Bentley, R. A. Finkel, “An algorithm for finding best matches in logarithmic expected time,” ACM Transactions on Mathematical Software, Vol. 3, No. 3, pp. 209-226, September 1977.)が用いられる。Kdツリーは、k次元の木構造の意味である。
kdツリー構築部134は、これまでの学習過程で登録画像辞書登録部124に登録された登録画像のうち一部の登録画像に関して認識させれば良い場合には、ステップS348において、認識対象となる登録画像についてのみ、その全特徴点特徴量からkdツリーを構築する。本実施の形態の場合は、タイプ1の特徴量の36dツリー(k=36)とタイプ2の特徴量の18dツリー(k=18)が、それぞれ構築される。ツリーの各リーフ(終端ノード)には、1つの特徴点特徴量が、その特徴量がどの登録IDの登録画像の多重解像度画像群の、どの画像の、どのスケールから抽出された、どの特徴点の特徴量なのか、が参照できるようなラベルとともに保持される。
一方、登録画像辞書登録部124に登録された全登録画像を認識させる場合には、登録画像の追加学習の度にツリーを構築し直し、ツリー自体が登録画像辞書登録部124に登録される。この場合には、ステップS348におけるkdツリーの構築処理は省略される。
特徴量比較部135は、ステップS349で、対象入力画像の未処理特徴点を選択する。そして、ステップS350において、特徴量比較部135は、対象入力画像のタイプ1の特徴点特徴量と、類似するk個の登録画像の特徴点特徴量をペア組みする。同様に、ステップS351で、特徴量比較部135は、対象入力画像のタイプ2の特徴点特徴量と、類似するk個の登録画像の特徴点特徴量をペア組みする。
すなわち、特徴点抽出部132と特徴量抽出部133により抽出された対象入力画像の各特徴点特徴量は、特徴量比較部135により、k-NN探索により特徴量が類似するk個(図38の例の場合、4個)の登録画像特徴点特徴量とペア組みされる(k-NN探索のkの値と、kdツリーのkの値は、同じkの文字を使用してはいるが、任意の別の値とし得る(もちろん、同じ値としてもよい))。本実施の形態では、タイプ1の特徴量のk-NN探索に用いる非類似度として、式(12)のユークリッド距離(その値が大きい程、類似していないことを表す)が、タイプ2の特徴量の類似度として、式(13)に示すコサイン相関値(その値が大きい程、類似していることを表す)が、それぞれ用いられる。
但し、式(12)において、uV,vVは非類似度を計算する対象の特徴量ベクトル、un,vnはそれぞれuV,vVのn次元における値、NはuV,vVベクトルの次元数を、それぞれ表わす。
式(13)において、uV,vVは類似度を計算する対象の特徴量ベクトルであり、uV・vVはベクトルの内積を表す。特徴量が類似するk個のペア(組)を抽出する際に、非類似度(タイプ1特徴量に対して)、類似度(タイプ2特徴量に対して)に対する閾値判定を入れてもよい。タイプ2の特徴量に対する類似度計算尺度にコサイン相関値を用いる理由は、明度変化による局所濃度勾配ベクトルの強度の変化に特徴量が影響されないようにするためである。また、コサイン相関値による類似度のかわりに、uV,vVをベクトル長を1で正規化し、それらのユークリッド距離を非類似度としてタイプ2の特徴量としてもよい。この場合も明度変化による局所濃度勾配ベクトルの強度の変化に特徴量が影響されないようになる。
特徴量比較部135は、ステップS349乃至ステップS351の処理を、各対象入力画像の特徴点に対して実行する。そして、ステップS352において、特徴量比較部135は、全特徴点を処理したかを判定し、まだ処理していない特徴点が存在する場合には、処理をステップS349に戻し、それ以降の処理を繰り返し実行する。ステップS352において、全特徴点を処理したと判定された場合には、処理はステップS353に進む。
タイプ1とタイプ2の2つのタイプの特徴量を用いるので、特徴量比較部135は、入力された対象入力画像の特徴点に対する特徴点ペアを特徴量タイプごとに上述の方法で求めた後、ステップS353で、タイプ1とタイプ2の両方で共通して抽出された特徴点ペアのみを候補対応特徴点組として選択し、登録画像毎に分類する。そして、この候補対応特徴点組は、後段の推定部136に供給される。推定部136では、登録画像ごとの処理を行うため、抽出された候補対応特徴点組を登録画像ごとに分類して渡すことで、処理の効率化を図ることができる。
図38は、以上の処理を模式的に表している。kdツリー構築部134により、タイプ1の特徴量の36dツリー構造と、タイプ2の特徴量の18dツリー構造が生成される。対象入力画像の特徴量群から、k-NN探索(いまの場合、k=4)によりタイプ1の特徴量の36dツリー構造からタイプ1の特徴量の4個の類似ペア群が探索される。この例においては、対象入力画像の四角形で表されている特徴点特徴量(図中の四角形、五角形、三角形、円、または十字の図形は特徴点特徴量を表す)が、タイプ1の特徴量の36dツリー構造の五角形、三角形、円、または十字と類似するとして探索される。また、タイプ2の特徴量の18dツリー構造からk-NN探索によりタイプ2の特徴量の4個の類似ペア群が探索される。この例では、対象入力画像の四角形が、タイプ2の特徴量の18dツリー構造の平行四辺形、十字、円、またはひし形と類似するとして探索されている。
タイプ1の特徴量の4個の類似ペア群と、タイプ2の特徴量の4個の類似ペア群の中から、共通する類似ペア群が選択される。この例の場合、タイプ1の特徴量の類似ペア群は、四角形と五角形、四角形と三角形、四角形と円、四角形と十字の4個である。これに対して、タイプ2の特徴量の類似ペア群は、四角形と平行四辺形、四角形と十字、四角形と円、四角形とひし形の4個である。したがって、四角形と円、並びに四角形と十字の類似ペア群が、2つのタイプに共通する特徴点ペアであるので、それが候補対応特徴点ペア(組)として、選択される。
なお、以上に説明したように、特徴量タイプ毎、認識対象の全登録画像の全特徴点特徴量から1つのkdツリーを構築し、対象入力画像の各特徴点特徴量のk-NNを探索するのではなく、特徴量タイプ毎、登録画像毎にkdツリーを構築し、登録画像毎に対象入力画像各特徴点特徴量のk-NNを探索するようにしてもよい。いずれの場合でも、出力は登録画像毎に分類された候補対応特徴点組群であり、後述する後段の処理は共通となる。
以上の処理により、特徴点近傍の局所的な濃度勾配情報が類似するペア群(登録画像特徴点と対象入力画像特徴点のペア群)を抽出することができるが、巨視的に見ると、このように得られたペア群は、対応特徴点間の空間的位置関係が登録画像に対応する対象物体の対象入力画像上での位置姿勢(対象物体位置姿勢)と矛盾しない「真の特徴点ペア(インライヤ)」だけでなく、矛盾するような「偽の特徴点ペア(アウトライヤ)」を含んでいる。
図39は、インライヤとアウトライヤを模式的に表している。同図に示されるように、図中左側に示される三角形の登録画像と、図中右側に示される対象入力画像の三角形の検出対象物体が対応するとすると、登録画像の三角形の頂点近傍の特徴点P1乃至P4は、検出対象物体の特徴点P11乃至P14とそれぞれ対応する。すなわち、特徴点P1が特徴点P11と、特徴点P2が特徴点P12と、特徴点P3が特徴点P13と、特徴点P4が特徴点P14とそれぞれ対応する。したがって、これらの候補対応特徴点組はインライヤを構成する。なお、図39において、インライヤは実線で示されている。
これに対して、登録画像の特徴点P5は三角形の内部のほぼ中央に位置し、特徴点P6は三角形の周辺の近傍の外部に位置する。これに対して、特徴点P5とペア組された対象入力画像の特徴点P15と、特徴点P6とペア組された対象入力画像の特徴点P16は、それぞれ、検出対象物体とは遠く離れた点である。すなわち、特徴点P5と特徴点P15の候補対応特徴点組、並びに特徴点P6と特徴点P16の候補対応特徴点組はアウトライヤである。なお、図39において、アウトライヤは破線で示されている。
候補対応特徴点組群から対象物体の対象入力画像中の位置と姿勢を決める物体パラメータを導出する方法として、最小自乗推定により推定画像変換パラメータを求める手法が考えられる。結果の推定対象物体位置姿勢と空間的位置関係の矛盾する対応ペアを排除し、残ったペアで再び最小自乗推定による推定画像変換パラメータ導出を行うという処理を繰り返すことで、より精度の良い対象物体位置姿勢を求めることができる。
しかしながら、候補対応特徴点組群中のアウトライヤの数が多い場合や、真の画像変換パラメータから極端に逸脱したアウトライヤが存在する場合には、上記最小自乗推定による推定結果は一般的に満足のいくものではないことが知られている(Hartley R., Zisserman A.,“Multiple View Geometry in Computer Vision.”, Chapter 3, pp.69-116, Cambridge University Press, 2000)。そこで、本実施の形態における推定部136は、ある画像変換の拘束の下、候補対応特徴点組群の空間的位置関係から「真の特徴点ペア(インライヤ)」を抽出し、抽出されたインライヤを用いて対象物体の位置姿勢を決める画像変換パラメータを推定する。
この推定部136による推定処理は、認識対象とする登録画像ごとに行われ、登録画像ごとに対応する対象物体の有無、有る場合には位置姿勢の推定が行われる。以下の説明で出てくる候補対応特徴点組は、特徴量比較部135の出力である候補対応特徴点組のうち、当該登録画像に関するペアのみをまとめたペア群を意味する。
画像変換としてはユークリッド変換、相似変換、アフィン変換、射影変換などが挙げられるが、本実施の形態においては、アフィン変換の拘束の下、位置姿勢推定を行う場合について詳細説明を行う。上述したように、特徴点の組が3組以上なければ、アフィン変換パラメータを演算できないので、推定部136は、ステップS354で1つの未処理登録画像を選択した後、ステップS355で候補対応特徴点ペア(組)が3組以上あるかを判定する。
候補対応特徴点組が2組以下の場合、推定部136は、ステップS356で、対象入力画像中に対象物体が存在しない、又は対象物体位置姿勢検出に失敗したとして、「認識不可」を出力する。一方、候補対応特徴点組が3組以上ある場合、推定部136は、対象物体位置姿勢を検出可能であるので、アフィン変換パラメータの推定を行う。このため、推定部136は、ステップS357で座標変換を行う。すなわち、候補対応特徴点組の登録画像特徴点位置座標が、原登録画像上の位置座標に変換されるとともに、対象入力画像特徴点位置座標が、入力原画像の位置座標に変換される。そして、ステップS358で、推定部136は、推定処理を行う。
3組の候補対応特徴点組で構成されるペア群Pを、([x1 y1]T,[u1 v1]T),([x2 y2]T,[u2 v2]T),([x3 y3]T,[u3 v3]T)とすると、ペア群Pとアフィン変換パラメータとの関係は、以下の式(14)に示す線形システムで表現することができる。
この式(14)を、AxV=bVのように書き直すと(下付のVは、添えられている文字(例えばxVのx)がベクトルであることを表わす。以下、同様である)、アフィン変換パラメータxVの最小自乗解は、以下の式(15)で与えられる。
xV=A-1bV ・・・(15)
候補対応特徴点組群から、アウトライヤが1つ以上混入するように、ランダムにペア群Pを繰り返し選択した場合、そのアフィン変換パラメータは、パラメータ空間上に散らばって投射される。一方、インライヤのみから構成されるペア群Pをランダムに繰り返し選択した場合、そのアフィン変換パラメータは、何れも対象物体位置姿勢の真のアフィン変換パラメータに極めて類似した、すなわちパラメータ空間上で距離の近いものとなる。したがって、候補対応特徴点組群から、ランダムにペア群Pを選択し、そのアフィン変換パラメータをパラメータ空間上に投射していく処理を繰り返すと、インライヤはパラメータ空間上で密度の高い(メンバ数の多い)クラスタを形成し、アウトライヤは散らばって出現することになる。すなわち、パラメータ空間上でクラスタリングを行えば、最多メンバ数を持つクラスタの要素がインライヤとなる。
推定部136における推定処理の詳細を図40のフローチャートを用いて説明する。なお、この推定部136におけるクラスタリング手法としては、NN(Nearest Neighbor)法が用いられる。この際、上述したパラメータb1,b2は、登録画像により様々な値を取り得るため、x空間でもクラスタリングにおいてクラスタリング閾値の選択が登録画像に依存してしまう。そこで、推定部136では、「真のパラメータとa1,…,a4は類似するが、b1,b2が異なるようなアフィン変換パラメータを与えるペア群Pは、殆ど存在しない」という仮定の下、パラメータa1,…,a4(以下、aVと表記する)で規定されるパラメータ空間上のみでクラスタリングを行う。なお、上記仮定が成り立たない状況が生じたとしても、aV空間とは独立に、パラメータb1,b2で規定されるパラメータ空間でクラスタリングを行い、その結果を考慮することで、容易に問題を回避することができる。
先ず、ステップS401において、推定部136は初期化を行う。具体的には、繰り返し数を表す変数としてのカウント値cntがcnt=1とされ、候補対応特徴点組群からランダムに3組のペアをペア群P1として選択し、アフィン変換パラメータaV1が求められる。また、推定部136は、クラスタ数を表す変数NをN=1とし、アフィン変換パラメータ空間aV上でaV1を中心とするクラスタZ1を作る。推定部136は、このクラスタZ1のセントロイドcV1をcV1=aV1とし、クラスタのメンバ数を表す変数nz1をnz1=1とし、カウンタ値cntをcnt=2に更新する。
次に、ステップS402において、推定部136は、候補対応特徴点組群からランダムに3組のペアをペア群Pcntとして選択し、アフィン変換パラメータaVcntを計算する。そして、推定部136は、計算されたアフィン変換パラメータaVcntをパラメータ空間に投射する。
次に、ステップS403において、推定部136は、NN法によりアフィン変換パラメータ空間をクラスタリングする。具体的には、推定部136は、先ず以下の式(16)に従って、アフィン変換パラメータaVcntと各クラスタZiのセントロイドcVi(i=1,…,N)との距離d(aVcnt, cVi)のうち、最小の距離dminを求める。
dmin = min 1≦i≦N { d(aVcnt, cVi) } ・・・(16)
そして、推定部136は、所定の閾値τ(例えばτ=0.1)に対してdmin<τであればdminを与えるクラスタZiにaVcntを属させ、aVcntを含めた全メンバでクラスタZiのセントロイドciを更新する。また、クラスタZiのメンバ数nziはnzi=nzi+1とされる。一方、dmin≧τであれば、推定部136は、アフィン変換パラメータ空間aV上でaVcntをセントロイドcVN+1とする新しいクラスタZN+1を作り、そのクラスタのメンバ数nzN+1をnzN+1=1とし、クラスタ数NをN=N+1とする。
続いて、ステップS404で、推定部136は、繰り返し終了条件を満たすか否かを判別する。繰り返し終了条件は、例えば最多メンバ数が所定の閾値(例えば15)を超え、且つ最多メンバ数と2番目に多いメンバ数との差が所定の閾値(例えば3)を超える場合、或いは繰り返し数カウンタのカウント値cntが、所定の閾値(例えば5000回)を超える場合のように設定することができる。ステップS404において、繰り返し終了条件が満たされないと判定された場合(Noと判定された場合)には、推定部136は、ステップS405で繰り返し数のカウント値cntをcnt=cnt+1とした後、処理をステップS402に戻し、それ以降の処理を繰り返す。
一方、ステップS404で、繰り返し終了条件を満たすと判定された場合(Yesと判定された場合)には、ステップS406において、推定部136は、以上の処理で得られたインライヤが3ペアに満たない場合には、アフィン変換パラメータが決定できないため、認識結果を「対象物体非検出」と出力し、インライヤが3ペア以上抽出された場合には、インライヤに基づいて、最小自乗法により対象物体位置姿勢を決定するアフィン変換パラメータを推定し、認識結果として出力する。
インライヤを([xIN1 yIN1]T,[uIN1 vIN1]T),([xIN2 yIN2]T,[uIN2 vIN2]T),…とすると、インライヤとアフィン変換パラメータとの関係は、以下の式(17)に示す線形システムで表現することができる。
この式(17)を、AINxVIN=bVINのように書き直すと、アフィン変換パラメータxVINの最小自乗解は以下の式(18)で与えられる。
xVIN = (AIN T AIN) 1 AIN TbVIN ・・・(18)
ステップS406で、推定部136は、このアフィン変換パラメータxVINを物体パラメータとして推定する。推定部136は、この物体パラメータと、直前のステップS354で選択された登録画像に対応する登録IDを対応付けて保持する。
図36に戻り、ステップS358またはステップS356の処理の後、ステップS359において、推定部136は、全登録画像を処理したかを判定する。まだ処理していない登録画像が存在する場合には、処理はステップS354に戻り、それ以降の処理が繰り返し実行される。ステップS359において、全ての登録画像について処理したと判定された場合、ステップS360において、推定部136は、対象入力画像のフレーム番号とともに、ステップS406で保持された登録IDと物体パラメータを、指定領域トラッキング部41に出力する。
ステップS361において、多重解像度生成部131は、ユーザによりテレビコミュニケーションの終了が指示されたかを判定する。まだテレビコミュニケーションの終了が指示されていない場合には、処理はステップS331に戻り、それ以降の処理が繰り返し実行される。テレビコミュニケーションの終了が指示されたと判定された場合、処理は終了する。
以上の図36のステップS354乃至S359の処理は、認識対象とする登録画像ごとに行なわれる。この処理が、図41に模式的に示されている。この例においては、候補対応特徴点組群p1乃至p6から最初にランダムに3個の候補対応特徴点組群p1,p3,p4が選択され、それに基づき計算されたアフィン変換パラメータがパラメータ空間に投射される。次に、ランダムに3個の候補対応特徴点組群p3,p4,p6が選択され、それらに基づき、計算されたアフィン変換パラメータがパラメータ空間に投射される。同様の処理がさらに繰り返され、この例においては、3個の候補対応特徴点組群p5,p4,p1が選択され、それに基づきアフィン変換パラメータが計算され、パラメータ空間に投射される。そして、パラメータ空間上において、近接するアフィン変換パラメータが、クラスタリングされ、そのクラスタリングされたアフィン変換パラメータに最小自乗法を適用することで、物体パラメータが決定される。
上記の手法を用いることにより、アウトライヤが候補対応特徴点組群中に多数含まれてしまっている場合でも、アウトライヤを排除し、高精度に位置姿勢推定(物体パラメータ導出)が可能となる。
以上の実施の形態では、アフィン変換拘束の下での位置姿勢推定の詳細を述べた。アフィン変換拘束の下では、平面領域が支配的な、例えば箱や本などの3次元物体であれば、その支配平面についての視点変化に対してロバストな位置姿勢推定が可能となる。しかし、曲面や凹凸が支配的な3次元物体のロバストな位置姿勢推定を行うには、アフィン変換拘束を投影変換拘束に拡張する必要がある。ただし、この場合においても、推定すべき変換パラメータの次元が増えるだけで、上記手法を簡単に拡張することが可能である。
このようにして、決定された対象物体の位置姿勢は、例えば、図37や図39において破線で示されている。これらの図に示されるように、本実施の形態においては、単に登録画像に対応する対象物体の存在の有無が検出されるだけでなく、その対象物体が存在する場合には、その位置姿勢までも推定され、出力される。
なお、推定部136が推定するこの対象物体の位置姿勢は、対象入力画像の対象物体に対する相対的な位置姿勢を意味するから、対象物体の位置姿勢を基準の位置姿勢として考えた場合には、推定部136は、登録画像に対する対象物体の位置姿勢を推定することを意味する。
なお、以上の説明では、閾値τが定数値であるものとしたが、ステップS402乃至ステップS405の繰り返し処理を行う際に、始めは比較的大きな閾値τを用いて大雑把なインライヤ抽出を行い、繰り返し回数が増える毎に次第に小さい閾値τを用いる、いわゆる「焼きなまし法」のような手法を適用してもよい。これにより、精度よくインライヤを抽出することができる。
また、以上の説明では、候補対応特徴点組群からランダムにペア群Pを選択し、そのアフィン変換パラメータをパラメータ空間上に投射していく処理を繰り返し、パラメータ空間上で最多メンバ数を持つクラスタの要素をインライヤとして、最小自乗法により物体パラメータを推定したが、これに限定されるものではなく、例えば最多メンバ数を持つクラスタのセントロイドを、物体パラメータとしても構わない。さらに、組は3個以上の特徴点で構成してもよい。
以上、登録画像毎に特徴量比較部135により抽出された特徴点ペアは、登録画像毎に分類され、推定部136において登録画像毎に位置姿勢推定が行われるので、対象入力画像中に複数の登録画像が含まれているような画像でも対象物体登録画像の認識が可能となる。
なお、以上の実施の形態では、第1の指定領域トラッキング処理と第2の指定領域トラッキング処理において、3個の特徴点が選択されるようにしたが、選択される特徴点の数は、3個以上であれば、これに限定されない。
また、以上の実施の形態では、第1の指定領域トラッキング処理と第2の指定領域トラッキング処理において、オプティカルフローからアフィン行列を演算したが、射影変換行列を演算するようにしてもよい。この場合、4個以上の特徴点が選択され、その特徴点のオプティカルフローから射影変換行列が演算される。
図2の画像処理装置11では、第1の指定領域トラッキング処理と第2の指定領域トラッキング処理を、別のスレッドとして、指定領域トラッキング部41と指定領域トラッキング部42に実行させるようにしたが、第1の指定領域トラッキング処理と第2の指定領域トラッキング処理の両方を、2つの指定領域トラッキング部に交互に実行させるようにしてもよい。
図42は、このような場合の画像処理装置11の構成例を示すブロック図である。
図42の画像処理装置11は、撮像部21、記憶部22、認識部23、合成部26、出力部27、制御部28、サーバ29、トラッキング部301、および補正画像生成部302により構成される。なお、図2と同一のものには同一の符号を付してあり、繰り返しになるので、その説明は省略する。
トラッキング部301は、指定領域トラッキング部311と指定領域トラッキング部312により構成される。指定領域トラッキング部311と指定領域トラッキング部312は、それぞれ、図17に示した指定領域トラッキング部41と図28に示した指定領域トラッキング部42を合わせたものにより構成され、図18の第1の指定領域トラッキング処理と図29の第2の指定領域トラッキング処理の両方を行う。指定領域トラッキング部311と指定領域トラッキング部312は、認識部23から供給される登録IDと、第2の指定領域トラッキング処理の結果得られる物体パラメータを、補正画像生成部302に供給する。
補正画像生成部302は、指定領域トラッキング部311または312から供給される登録IDを制御部28に供給し、その登録IDに対応する登録画像を制御部28に要求する。補正画像生成部302は、その要求に応じて制御部28から供給される登録画像と、指定領域トラッキング部311または312から供給される物体パラメータとに基づいて、対象物体と同一のサイズかつ同一の姿勢の登録画像を、補正画像として生成する。補正画像生成部302は、指定領域トラッキング部311または312から供給される物体パラメータと、補正画像を合成部26に供給する。
以上のように、図42の画像処理装置11のトラッキング部301には、同一の構成の指定領域トラッキング部311と指定領域トラッキング部312が設けられるので、トラッキング部301の開発、修正やメンテナンスなどを容易に行うことができる。
記憶部22における記憶処理は、図15を参照して説明した通りである。
次に、図43のフローチャートを参照して、図42の画像処理装置11における第1のリアルタイムトラッキング処理について説明する。
ステップS531において、認識部23は、このとき図15のステップS101で撮像部21から入力された入力画像を対象入力画像として、図34乃至図36で示した一般物体認識処理を行う。
ステップS532において、認識部23は、ユーザによりテレビコミュニケーションの終了が指示されたかを判定し、テレビコミュニケーションの終了が指示されたと判定するまで、ステップS531の処理を繰り返す。ステップS532において、テレビコミュニケーションの終了が指示されたと判定された場合、処理は終了する。
次に、図44のフローチャートを参照して、図42の画像処理装置11における第2のリアルタイムトラッキング処理について説明する。この第2のリアルタイムトラッキング処理は、例えば、ステップS531の一般物体認識処理により、登録ID、フレーム番号、および物体パラメータが認識部23から出力されたとき、指定領域トラッキング部311と指定領域トラッキング部312のそれぞれにより実行される。
ステップS561において、指定領域トラッキング部311と指定領域トラッキング部312は、それぞれ、自己の処理のタイミングであるかを判定する。例えば、指定領域トラッキング部311と指定領域トラッキング部312は、認識部23の前回の出力を取り込んでいれば、今回は自己の処理のタイミングではないと判定する。これにより、指定領域トラッキング部311と指定領域トラッキング部312は、認識部23から登録ID、フレーム番号、および物体パラメータが出力されるごとに、交互に自己の処理のタイミングであると判定する。
ステップS561において、自己の処理のタイミングではないと判定した指定領域トラッキング部311または指定領域トラッキング部312は、処理を終了する。一方、ステップS561において、自己の処理のタイミングである(前回、認識部23の出力を取り込んでいない)と判定した場合、指定領域トラッキング部311または指定領域トラッキング部312は、ステップS562において、認識部23の出力を取り込む。
ステップS563において、指定領域トラッキング部311または指定領域トラッキング部312は、図18の第1の指定領域トラッキング処理を行う。ステップS564において、指定領域トラッキング部311または指定領域トラッキング部312は、図29の第2の指定領域トラッキング処理を行う。ステップS565乃至S568の処理は、図22のステップS182乃至S185の処理と同様であるので、説明は省略する。
次に、図45を参照して、図42の画像処理装置11における処理のタイミングについて説明する。
なお、図45において、図30と同様に、横方向は時刻を表している。また、図45において、図30と同様に、四角は、横方向の位置に対応する時刻に処理されるフレームを表しており、四角の中または上に記載されている数字は、そのフレームのフレーム番号を表している。
図45Aに示す記憶処理と、図45Bに示す一般物体認識処理は、それぞれ、図30Aに示した記憶処理と、図30Bに示した一般物体認識処理と同様であるので、その説明は省略する。
図45Cに示すように、指定領域トラッキング部311による処理は、認識部23の一般物体認識処理による物体パラメータなどの出力の回数が奇数であるとき開始される。指定領域トラッキング部311による第1の指定領域トラッキング処理では、図30Cに示した第1の指定領域トラッキング処理と同様に、処理の開始時に入力された物体パラメータを求めるときに対象入力画像とされた入力画像から順に、最後に記憶された入力画像を対象入力画像とするまでの間、入力画像が対象入力画像とされる。
次に、第1の指定領域トラッキング処理により物体パラメータが演算されると、第2の指定領域トラッキング処理が、図30Dに示した第2の指定領域トラッキング処理と同様に、処理の開始時に撮像された入力画像を対象入力画像として行われる。そして、この第2の指定領域トラッキング処理は、指定領域トラッキング部312による第1の指定領域トラッキング処理が終了するまで、撮像部21から入力画像が供給されるたびに、その入力画像を対象入力画像として行われる。
即ち、第2の指定領域トラッキング処理は、指定領域トラッキング部311による第1の指定領域トラッキング処理の終了時から、指定領域トラッキング部312による第1の指定領域トラッキング処理の終了時までに撮像された各撮像画像を対象入力画像として行われる。
指定領域トラッキング部311による第1の指定領域トラッキング処理の終了時から、指定領域トラッキング部312による第1の指定領域トラッキング処理の終了時までに撮像される入力画像のフレーム数は、指定領域トラッキング部311による第1の指定領域トラッキング処理の開始時から、指定領域トラッキング部312による第1の指定領域トラッキング処理の開始時まで、すなわち、一般物体認識処理に要する時間に撮像される入力画像のフレーム数である。図45の例では、図30の例と同様に、一般物体認識処理に要する時間が、5フレーム分の入力画像が記憶される時間であるので、第2の指定領域トラッキング処理において対象入力画像とされる入力画像のフレーム数は5フレームである。
図45Dに示すように、指定領域トラッキング部312による処理は、認識部23の一般物体認識処理による物体パラメータなどの出力の回数が偶数回目であるとき開始される。指定領域トラッキング部312による第1の指定領域トラッキング処理と第2の指定領域トラッキング処理は、図45Cに示した指定領域トラッキング部311による処理とタイミングが異なるだけで同様に行われる。
以上のように、図42の画像処理装置11では、指定領域トラッキング部311による第2の指定領域トラッキング処理が、その処理の開始時から、指定領域トラッキング部312による第2の指定領域トラッキング処理の開始時までに撮像される入力画像においてトラッキングを行い、指定領域トラッキング部312による第2の指定領域トラッキング処理が、その処理の開始時から、指定領域トラッキング部311による第2の指定領域トラッキング処理の開始時までに撮像される入力画像においてトラッキングを行う。従って、図42の画像処理装置11は、撮像部21により撮像される入力画像においてリアルタイムトラッキング行うことができる。
なお、上述した説明では、画像処理装置11は、負荷が軽く、高速の処理が可能な第1および第2の指定領域トラッキング処理と、それより処理の負荷が大きく、高速処理が困難な一般物体認識処理を組み合わせた処理を行ったが、第1および第2の指定領域トラッキング処理と組み合わされる認識処理は、一般物体認識処理以外の認識処理であってもよい。例えば、画像処理装置11は、第1および第2の指定領域トラッキング処理と、それより精度の低いサイバーコード認識処理や色認識処理などの認識処理を組み合わせた処理を行うようにしてもよい。この場合、サイバーコード認識処理や色認識処理において大まかに認識された対象物体の位置と姿勢に基づいて、第1および第2の指定領域トラッキング処理を行うことにより、より詳細に対象物体の位置と姿勢を認識することができる。
また、上述した説明では、本発明を、テレビコミュニケーションを行う画像処理装置に適用した場合について説明したが、本発明は、その他のトラッキングを行う画像処理装置にも適用することができる。
図46と図47は、本発明を適用した眼鏡型ウェアラブルコンピュータの概要を示している。
図46に示すように、ユーザが、眼鏡型ウェアラブルコンピュータ401を装着し、手に所持した、サイバーコード402Aが記載された紙面402を見ると、眼鏡型ウェアラブルコンピュータ401は、図示せぬ撮像部により紙面402などを撮像し、その結果得られる入力画像411を用いてサイバーコード認識処理並びに第1および第2の指定領域トラッキング処理を行う。これにより、入力画像411中のサイバーコード402Aの物体パラメータが演算される。その後、眼鏡型ウェアラブルコンピュータ401は、その物体パラメータと、予め記憶されているサイバーコード402Aに関連する関連画像421に基づいて、入力画像411中のサイバーコード402Aの領域に、関連画像421をはめ込んだ合成画像412を、図示せぬ出力部に表示させる。
これにより、ユーザは、紙面402を移動させることで、合成画像412中の関連画像421の位置を移動させたり、関連画像421のサイズを拡大または縮小することができる。
また、図47に示すように、ユーザが、眼鏡型ウェアラブルコンピュータ401を装着し、街頭などに貼られたポスター501を見ると、眼鏡型ウェアラブルコンピュータ401は、図示せぬ撮像部によりポスター501を撮像し、その結果得られる入力画像511を用いて一般物体認識処理並びに第1および第2の指定領域トラッキング処理を行う。これにより、入力画像511中のポスター501の物体パラメータが演算される。その後、眼鏡型ウェアラブルコンピュータ401は、その物体パラメータと、予め記憶されているポスター501に関連する関連画像としての宣伝用の動画像521に基づいて、入力画像511中のポスター501の領域に、動画像521をはめ込んだ合成画像512を、図示せぬ出力部に表示させる。
これにより、広告主は、街頭などにポスター501を貼るだけで、ポスター501に比べてより多くの情報を含めることが可能な動画像521をユーザに提供することができる。
なお、図46の例では、入力画像411中のサイバーコード402Aの領域に、関連画像421がはめ込まれたが、関連画像421のサイズや姿勢は、サイバーコード402Aと同一でなくてもよい。例えば、図24の場合と同様に、入力画像411中のサイバーコード402Aと同一のサイズで、眼鏡型ウェアラブルコンピュータ401の撮像部の光軸に対して正面向きの姿勢の関連画像421が表示されてもよい。このことは、図47の例においても同様である。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。
なお、本明細書において、プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
さらに、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
11 画像処理装置, 21 撮像部, 23 認識部, 25 補正画像生成部, 26 合成部, 41 指定領域トラッキング部, 42 指定領域トラッキング部, 311 指定領域トラッキング部, 312 指定領域トラッキング部, 401 眼鏡型ウェアラブルコンピュータ