以下、図面を参照して、本発明の実施形態である類似画像検索方法及び類似画像検索装置について説明する。
(第1実施形態)
図1は、本発明の第1実施形態である類似画像検索方法が適用される、類似画像検索装置として機能する情報処理装置を含む画像処理システムの概略構成を示す図である。図1において、第1実施形態の情報処理装置を含む画像処理システムSは、情報処理装置1、第1の撮像装置2、第2の撮像装置3及び画像表示装置4を備える。
情報処理装置1は、これら第1及び第2の撮像装置2、3により撮像された画像ファイルを取り込み、この画像ファイルを表示する表示画面を生成するための表示画面生成用信号を生成する。また、情報処理装置1は、第1及び第2の撮像装置2、3から画像ファイルを取り込む際に、既に情報処理装置1内に取り込まれた画像ファイルと取り込むべき画像ファイルとが類似しているか否かを判定し、類似していると判定した場合は当該画像ファイルの取り込み作業を行わない。情報処理装置1の詳細については後述する。第1の撮像装置2及び第2の撮像装置3は、被写体を撮像して画像ファイルを生成する。第1の撮像装置2及び第2の撮像装置3は、例えばスマートフォンやデジタルスチルカメラである。
第1の撮像装置2によって撮像された画像ファイルは、無線LAN等の無線通信手段を介して情報処理装置1に取り込まれる。また、第2の撮像装置3によって撮像された画像ファイルは、一例として、データ転送ケーブルの一例であるUSB(Universal Serial Bus)ケーブル5により情報処理装置1に取り込まれる。あるいは、第1、第2の撮像装置2、3によって撮像された画像ファイルはメモリーカード6に格納され、このメモリーカード6が情報処理装置1に挿入されることにより情報処理装置1に取り込まれる。
画像表示装置4は、一例として、データ転送ケーブルの一例であるHDMI(High Definition Multimedia Interface:登録商標)ケーブル7により情報処理装置1に接続されている。情報処理装置1から出力される表示画面生成用信号はこのHDMIケーブル7を介して画像表示装置4に入力され、画像表示装置4は、入力された表示画面生成用信号に基づいてその表示画面4aに画像を表示する。あるいは、画像表示装置4は、コンポジット映像信号の送受信が可能なRCA端子を有するケーブル、S端子を有するケーブルにより情報処理装置1に接続されてもよく、さらには、画像表示装置4は、コンポーネント映像信号の送受信が可能なD端子を有するケーブルにより情報処理装置1に接続されてもよい。あるいは、画像表示装置4は、無線LAN等の無線通信手段を介して情報処理装置1に接続されてもよい。画像表示装置4は、例えばTV、モニタ、スマートフォンやタブレット端末である。
(第1実施形態の情報処理装置の構成)
図2は、本発明の第1実施形態である情報処理装置1の概略構成を示すブロック図である。図2において、本実施形態の情報処理装置1は、CPU(Central Processing Unit)10、ROM(Read Only Memory)11、RAM(Random Access Memory)12、入出力デバイス13、HDMIインタフェース(I/F)14、ネットワークインタフェース(I/F)15、HDD部(Hard Disk Drive)16及び無線LANインタフェース(I/F)17を備えており、これらはバスにより互いに接続されている。
CPU10は、後述するROM11内に格納されたファームウェア等のプログラムが実行されることにより、情報処理装置1全体の制御を行う。また、CPU10は、ROM11内に格納されたプログラムが実行されることにより、図3に示すような各機能部としても動作する。図3に示す各機能部の動作については後述する。ROM11には、上述したファームウェア等のプログラムが格納されている。RAM12は情報処理装置1のワークメモリとして機能し、CPU10を含めた情報処理装置1の動作時に一時的に使用されるプログラム、データ等が格納される。
入出力デバイス13は、入力インタフェース(I/F)13a、入力指示部13b、カードインタフェース(I/F)13c及びUSBインタフェース(I/F)13dを備える。入力インタフェース13aには入力指示部13b及び入力機器20が接続され、ユーザが入力指示部13bまたは入力機器20を操作することにより入力される入力信号を受信する。入力指示部13bとしては、例えば画像取り込み指示ボタン等が挙げられ、また、入力機器20としては、例えばリモコン、キーボード、マウス等が挙げられる。カードインタフェース13cはカードスロット(図略)を備え、このカードスロットに挿入されたメモリーカード6に対してデータの読み出し/書き込みを行う。メモリーカード6の形式に限定はなく、一例としてmini、microを含むSDメモリーカード、メモリースティック(登録商標)が好適に挙げられる。USBインタフェース13dはUSBコネクタ(図略)を備え、このUSBコネクタに直接、あるいはUSBケーブル5を介して接続されたUSB機器21に対してデータの読み出し/書き込みを行う。USB機器21としては、USBフラッシュメモリ、USBコネクタを備えた第1及び第2の撮像装置2、3が挙げられる。
HDMIインタフェース14はHDMIコネクタ(図略)を備え、このHDMIコネクタにHDMIケーブル(図略)を介して接続されたHDMI出力機器22に対してAVストリーム(映像信号及び音声信号)を出力する。HDMI出力機器22としては、例えば画像表示装置4が挙げられる。ネットワークインタフェース15はネットワークコネクタ(図略)を備え、このネットワークコネクタにネットワークケーブル(図略)を介してルータ23が接続され、このルータ23がインターネット等のWAN(Wide Area Network)8に接続されることで、外部ネットワークとの間でデータの送受信がされる。このネットワークインタフェース15は、例えばIEEE(The Institute of Electrical and Electronics Engineers)802.3規格に基づく有線通信を行うものである。
HDD部16は、HDD16bとHDDインタフェース(I/F)16aとを備える。HDD16bは、記録媒体であるディスクと、このディスクの回転を行う回転部と、ディスクに対してデータの読み出し/書き込みを行うヘッド部とを備える(いずれも不図示)。HDDインタフェース16aは、このHDD16bに対するデータの読み出し/書き込み指令があった場合に、HDD16b全体の制御を行うとともに、データの読み出し/書き込み制御を行い、読み出されたデータを出力する。また、このHDD16bには、第1及び第2の撮像装置2、3から取り込んだ基準画像ファイル50、比較画像ファイル51及び閾値データ52が格納されている。基準画像ファイル50及び比較画像ファイル51は、そのファイル構成等は同一である。従って、画像ファイル一般について説明する時には、画像ファイル50と称して説明をする。
画像ファイル50をHDD16bに格納する手法は任意であるが、一例として、上述のように第1及び第2の撮像装置2、3が撮像して得られた画像ファイルをメモリーカード6内に格納し、このメモリーカード6をカードインタフェース13cのカードスロットに挿入して、入力指示部13bが操作されたことによりこのメモリーカード6内に格納された画像ファイルをHDD16b内に取り込む手法が挙げられる。また、画像ファイルを撮像した第2の撮像装置3に接続されたUSBケーブル5をUSBインタフェース13dのUSBコネクタに挿入して、入力指示部13bが操作されたことにより第2の撮像装置3内に格納された画像ファイルをHDD16b内に取り込んでもよい。また、第1の撮像装置2と情報処理装置1の無線LANインタフェース24との間で無線通信を確立して、第1の撮像装置2からの指示により第1の撮像装置2内に格納された画像ファイルを無線通信経由でHDD16b内に取り込んでもよい。さらに、WAN8に存在する画像ファイルをルータ23及びネットワークインタフェース15を介してHDD16b内に取り込んでもよい。
この際、第1、第2の撮像装置2、3等から取り込まれた画像ファイルは、HDD16bに取り込まれている基準画像ファイルと重複するか否かが判定され、重複する画像ファイルについては最終的にHDD16bに取り込まれない処理が行われる。すなわち、一時的に比較画像ファイル51としてHDD16b内に取り込まれ、その後、後述する類比判定の結果、既にHDD16b内に取り込まれている基準画像ファイル50と類似しないと判定された場合に、基準画像ファイル50となる。一方、既にHDD16b内に取り込まれている基準画像ファイル50と類似すると判定された場合は、一時的にHDD16b内に取り込まれた比較画像ファイル51は、このHDD16bから消去される。あるいは、第1、第2の撮像装置2、3等から取り込まれた画像ファイルは、HDD16bに取り込まれる際に後述する類比判定が行われ、既にHDD16b内に取り込まれている基準画像ファイル50と類似しないと判定された場合はそのままHDD16bに取り込まれて基準画像ファイル50となる。一方、既にHDD16b内に取り込まれている基準画像ファイル50と類似すると判定された場合は、最終的にHDD16b内に取り込まることなく、このHDD16bから消去される。従って、情報処理装置1のHDD16b内には、比較画像ファイル51が常に格納されているとは限らない。なお、図2において画像ファイル50は1つのみ図示されているが、本実施例において画像ファイル50は複数個HDD16b内に格納されていてもよい。
無線LANインタフェース17は、例えばIEEE802.11規格に準拠して無線クライアント25と無線通信を行う。この無線LANインタフェース17は、情報処理装置1を無線LANアクセスポイントとして動作させることが可能である。無線クライアント25としては、例えば第1の撮像装置2が挙げられる。
(第1実施形態の情報処理装置の機能構成)
図3は、第1実施形態の情報処理装置1の機能構成を示す機能ブロック図である。図3において、本実施形態の情報処理装置1は、制御部30、記憶部31、入力部32及び出力部33を備える。
記憶部31には、基準画像ファイル50、比較画像ファイル51及び閾値データ52が格納されている。基準画像ファイル50及び比較画像ファイル51はそれぞれ基準画像データ50a及び比較画像データ51aを備える。基準画像データ50a及び比較画像データ51aは、そのデータ構成等は同一である。従って、画像データ一般について説明する時には、画像データ50aと称して説明をする。
制御部30は、特徴点算出部34、対応特徴点決定部35、座標変換部36、距離算出部37、判定部38及び顔認識処理部39を備える。
顔認識処理部39は、画像ファイル50の画像データ50aに対して顔認識処理を行う。より詳細には、顔認識処理部39は、記憶部31に格納されている基準画像ファイル50、及び第1、第2の撮像装置2、3等から取り込まれた比較画像ファイル51に対して、基準画像データ50a及び比較画像データ51aに撮像されている被写体の顔認識処理を行う。そして、顔認識処理部39は、少なくとも被写体の顔が撮像されている領域を画像データ50aから抽出し、この領域に関する情報、一例として基準画像データ50a及び比較画像データ51aにおける、被写体の顔が撮像されている領域を示す画素範囲に関するデータを特徴点算出部34に出力する。顔認識処理部39による顔認識処理の具体的手法については公知のものが好適に採用可能であるので、ここではこれ以上の詳細な説明を省略する。なお、顔認識処理部38は、被写体の顔が撮像されている領域を抽出することなく、単に基準画像データ50a及び比較画像データ51aに撮像されている被写体の顔認識処理を行うのみでもよい。
特徴点算出部34は、基準画像データ50a及び比較画像データ51aの特徴点を算出する。より詳細には、特徴点算出部34は、画像データに存在する局所点(キーポイント)における特徴量を算出する。局所点は、一例として、画像データ50aの複数のDifference-of-Gaussian画像から得られた極値、あるいは、画像データ50aを構成する画素からコーナーとして抽出された画素として得られる。特徴量は、この局所点の周辺の勾配量等から算出され、ベクトル量、あるいはバイナリコードとして算出される。本実施形態における特徴点とは、上述した局所点を意味する。基準画像データ50a及び比較画像データ51aの特徴点を算出するアルゴリズムとしては、画像データの拡大・縮小や回転に依存しないものが好ましく、このようなアルゴリズムとしては、ORB(Oriented FAST and Rotated BRIEF)、SIFT(Scale Invariant Feature Transform)、及びSURF(Speeded-Up Robust Features)などが挙げられる。これらアルゴリズムは周知のものであるので、ここではこれ以上の詳細な説明を省略する。当然、例示した以外の周知の特徴量算出アルゴリズムが好適に採用可能である。特徴点算出部34により算出された特徴点及びこの特徴点における特徴量は、一時的に記憶部31に格納される。
ここで、特徴点算出部34は、顔認識処理部39が出力した被写体の顔が撮像されている領域に関する情報を受け入れ、好ましくは、基準画像データ50a及び比較画像データ51aのうち、被写体の顔が撮像されている領域内における特徴点を算出することが好ましい。領域内で特徴点を算出するか、あるいは、基準画像データ50a及び比較画像データ51aの全領域において特徴点を算出するかは任意であり、好ましくは、ユーザ等により事前にいずれの手法によって特徴点を算出するかについて設定される。特徴点算出部34が顔認識処理部39の出力を受け入れて特徴点を算出するかどうかについては任意であり、基準画像データ50a及び比較画像データ51aの全てについて特徴量を算出してもよい。
対応特徴点決定部35は、特徴点算出部34により算出された基準画像データ50a及び比較画像データ51aの特徴点の特徴量に基づいて、これら基準画像データ50a及び比較画像データ51aの特徴点の対応する組を決定する。上述のように、基準画像データ50a及び比較画像データ51aの特徴点にはそれぞれ対応する特徴量が特徴点算出部34により算出され、加えて、個々の特徴量は、ベクトル量あるいはバイナリコードとして算出される。基準画像データ50a及び比較画像データ51aにおいて同一または類似する形状等を有する位置の特徴量であるベクトル量あるいはバイナリコードは対応する値あるいは次元を有することが知られている。そこで、対応特徴点決定部35は、特徴点の特徴量を参照して、基準画像データ50a及び比較画像データ51aの特徴点の中から、対応する特徴点の組を決定する。対応する特徴点の組を決定するアルゴリズムも周知であるので、ここではこれ以上の説明を省略する。
座標変換部36は、対応特徴点決定部35が決定した、基準画像データ50a及び比較画像データ51aの特徴点の任意の組を3つ選択し、選択された特徴点の組の一方の特徴点の座標値が他方の特徴点の座標値に一致するように座標変換を行う。好ましくは、座標変換部36は、アフィン変換により、選択された特徴点の組の一方の特徴点の座標値が他方の特徴点の座標値に一致するように座標変換を行う。
距離算出部37は、座標変換部36により3組の特徴点の座標値が一致する座標変換を行った状態で、残りの組の基準画像データ50a及び比較画像データ51aの特徴点間の距離を算出し、得られた距離の合計を算出する。
判定部38は、距離算出部37により算出された距離の合計が所定の閾値以下であれば、比較画像ファイル51を基準画像ファイル50に類似する比較画像ファイル51であると判定する。この閾値は、判定部38の判定結果に基づいて情報処理装置1がどのような処理を行うかによって定められる。本実施形態では、上述のように、第1、第2の撮像装置2、3等から取り込んだ画像ファイルについて、記憶部31に取り込まれている基準画像ファイル50と重複するか否かの判定を行うために、比較画像ファイル51と基準画像ファイル50の類似判定を行っているので、閾値を小さい値に設定して、実質的に同一な画像ファイルの取り込みを行わないことが好ましい。
入力部32は、第1、第2の撮像装置2、3を含む外部入力機器から情報処理装置1に入力される各種データの入力を受け付け、入力された各種データを制御部30に入力し、あるいは記憶部31に格納する。出力部33は、表示画面生成用信号を含む、制御部30または記憶部31内の各種データを、画像表示装置4を含む外部出力機器に出力する。
以上の構成において、制御部30及び制御部30を構成する特徴点算出部34、対応特徴点決定部35、座標変換部36、距離算出部37、判定部38及び顔認識処理部39は主にCPU10により構成され、記憶部31は主にメモリーカード6、ROM11、RAM12、HDD部16及びデータ記憶機能を有するUSB機器21により構成され、入力部32は主に入出力デバイス13、ネットワークインタフェース15及び無線LANインタフェース17により構成され、出力部33は主にHDMIインタフェース14、ネットワークインタフェース15及び無線LANインタフェース17により構成される。図3に示す情報処理装置1の各機能部の動作については後に詳述する。
(第1実施形態の動作の概要)
次に、図4〜図7を参照して、本実施形態の情報処理装置1の動作の概要について説明する。
図4に示すように、情報処理装置1の記憶部31には基準画像データ50aが格納され、また、第1、第2の撮像装置2、3から2枚の画像データが比較画像データ51aとして記憶部31に取り込まれたものとする。ここで、2枚の比較画像データ51aのうち、図4において右上部に示された比較画像データ51a(以下、図4〜図7の説明において51a−1という符号で示す)は基準画像データ50aと同一であり、図4において右下部に示された比較画像データ51a(以下、図4〜図7の説明において51a−2という符号で示す)は基準画像データ50aに類似するものの同一ではない。以下、情報処理装置1によって、これら比較画像データ51a−1、51a−2が基準画像データ50aに類似するか否かの判定動作について説明する。
まず、情報処理装置1の特徴点算出部34は、これら基準画像データ50a及び比較画像データ51a−1、51a−2の特徴点を算出する。一例として、特徴点算出部34による算出の結果、図5の黒丸に示すような位置に基準画像データ50a及び比較画像データ51a−1、51a−2の特徴点が算出されたものとする。なお、図5に示す特徴点の数及びその位置はあくまでも説明のためのものであり、実際に算出されたものとは必ずしも一致しない。
次いで、情報処理装置1の対応特徴点決定部35は、特徴点算出部34が算出した特徴点に基づいて、基準画像データ50a及び比較画像データ51a−1、51a−2の特徴点の対応する組を決定する。一例として、対応特徴点決定部35による決定動作の結果、図6の破線で示すように基準画像データ50a及び比較画像データ51a−1、51a−2の特徴点の対応する組が決定されたものとする。この際、基準画像データ50a及び比較画像データ51a−1、51a−2の特徴点の対応する組を結ぶライン(図6における破線)が互いに交叉する場合、このような特徴点の対応する組は除外することが好ましい。なお、図6においては対応する組を3つのみ図示しているが、実際には対応特徴点決定部35により多数の組が決定されうる。また、図6に示す特徴点の対応の組もあくまで説明のためのものであり、実際に算出されたものとは必ずしも一致しない。
さらに、情報処理装置1の座標変換部36は、対応特徴点決定部35が決定した、基準画像データ50a及び比較画像データ51aの特徴点の任意の組を3つ選択する。一例として、座標変換部36は、図6に白丸で示す特徴点の組を3つ選択したものとする。次いで、座標変換部36は、選択された特徴点の組の一方の特徴点の座標値が他方の特徴点の座標値に一致するようにアフィン変換を行う。
座標変換部36が行うアフィン変換の算出式の一例について説明する。n個(nは自然数でn≧3)の特徴点の組を有する基準画像データ50a及び比較画像データ51aにおいて、対応する組の一方の特徴点の座標値を他法の特徴点の座標値に対応させる場合、アフィン変換行列Affineを、回転とX−Y方向の平行移動に限定した場合、このアフィン変換行列Affine変換行列は次のように表すことができる。
ここで、iは自然数であり、1≦i≦nである。
比較画像データ51aの特徴点の座標値img
a(i)及び基準画像データ50aの特徴点の座標値img
b(i)をそれぞれ
とした場合、特徴点の組(i=1,2,3)の座標値を(1)式に代入することで、アフィン変換行列Affineのアフィン変換パラメータであるT
x,T
y,θを算出することができる。そして、このアフィン変換行列Affineを用いれば、比較画像データ51a−1、51a−2の特徴点の座標値img
a(i)から、座標変換後の比較画像データ51a−1、51a−2の座標値dst
a(i)を算出することができる。
座標変換部36により座標変換がされた状態を図7に示す。実際には比較画像データ51a−1、51a−2の特徴点の3組の座標値が一致するような座標変換が行われるが、図7では見えやすさの観点から基準画像データ50aと比較画像データ51a−1、51a−2とを若干ずらして表示している。図7に示すように、比較画像データ51a−1は基準画像データ50aと同一の画像データであるので、特徴点の3組の座標値が一致するような座標変換が行われると、残りの特徴点の組の座標値も一致する。一方、比較画像データ51a−2は基準画像データ50aに類似するものの同一の画像データではないので、特徴点の3組の座標値が一致するような座標変換が行われても、残りの特徴点の組の座標値が一致するとは限らない。
次いで、距離算出部37は、座標変換部36により3組の特徴点の座標値が一致する座標変換を行った状態で、残りの組の基準画像データ50a及び比較画像データ51a−1、51a−2の特徴点間の距離を算出し、得られた距離の合計を算出する。
特徴点間の距離の合計値Lは、座標変換後の比較画像データ51a−1、51a−2の座標値dst
a(i)及び基準画像データ50aの特徴点の座標値img
b(i)を用いて、次式により算出することができる。
そして、判定部38は、距離算出部37により算出された距離Lの合計が所定の閾値以下であれば、比較画像データ51aを基準画像データ50aに類似する比較画像ファイル51であると判定する。
図7に示す例では、比較画像データ51a−1は基準画像データ50aと同一の画像データであるので、特徴点の3組の座標値が一致するような座標変換が行われると、残りの特徴点の組の座標値も一致するため、距離算出部37が算出した距離Lの合計は0になる。一方、比較画像データ51a−2は基準画像データ50aに類似するものの同一の画像データではないので、特徴点の3組の座標値が一致するような座標変換が行われても、残りの特徴点の組の座標値が一致するとは限らないため、距離算出部37が算出した距離Lの合計は0以上の値になる。
従って、判定部38は、比較画像データ51a−1については距離Lの合計が0であり、所定の閾値以下であるので、基準画像データ50aに類似する比較画像データ51a−1であると判定する。一方、比較画像データ51a−2については距離Lの合計は0以上の値である。本実施形態では、上述のように閾値が小さい値に設定されており、図7に示す例においては比較画像データ51a−2について距離算出部37が算出した距離Lの合計は閾値を超えるものとする。そこで、判定部38は、比較画像データ51a−2は基準画像データ50aに類似しないデータであると判定する。この後、比較画像データ51a−1は記憶部31から消去され、一方、比較画像データ51a−2は基準画像データ50aとなる。
(第1実施形態の動作)
図8〜図9は、本実施形態の情報処理装置1による類似画像検索方法の動作を説明するためのフローチャートである。
図8に示すフローチャートは、第1、第2の撮像装置2等から画像ファイルが記憶部31に取り込まれ、(一時的に)比較画像ファイル51として格納された段階から開始する。まず、ステップS1では、制御部30が、記憶部31に格納されている比較画像ファイル51のうち、任意の比較画像ファイル51を1枚選択する。次に、ステップS2では、情報処理装置1の制御部30が、記憶部31に格納されている基準画像ファイル50のうち、任意の基準画像ファイル50を1枚選択する。
次いで、ステップS3では、特徴点算出部34が、ステップS1及びステップS2で選択された基準画像ファイル50及び比較画像ファイル51の画像データ50a、51aの特徴点を算出する。
ステップS4では、対応特徴点決定部35が、特徴点算出部34が算出した基準画像データ50a、及び比較画像データ51aの特徴点の対応する組を探索する。次いで、ステップS5では、対応特徴点決定部35が、特徴点算出部34が算出した基準画像データ50a及び比較画像データ51aの特徴点の対応する組を決定する。対応特徴点決定部35による基準画像データ50a及び比較画像データ51aの特徴点の対応する組の探索及び決定動作手順については既に説明したので、ここではこれ以上の説明を省略する。
ステップS6では、座標変換部36が、ステップS5において対応特徴点決定部35が決定した、基準画像データ50a及び比較画像データ51aの特徴点の任意の組を3つ選択する。次いで、ステップS7では、座標変換部36が、ステップS7で選択した基準画像データ50a及び比較画像データ51aの特徴点の任意の3組について、アフィン変換により、選択した特徴点の組の一方の特徴点の座標値が他方の特徴点の座標値に一致するように座標変換を行う。座標変換部36による座標変換手順についても既に説明したので、ここではこれ以上の説明を省略する。
ステップS8では、距離算出部37が、座標変換部36により3組の特徴点の座標値が一致する座標変換を行った状態で、残りの組の基準画像データ50a及び比較画像データ51aの特徴点間の距離Lを算出する。次いで、ステップS9では、距離算出部37が、ステップS8で算出した特徴点間の距離Lの合計を算出する。ステップS9において距離算出部37が算出した特徴点間の距離Lの合計は、一時的に記憶部31内に格納される。特徴点間の距離算出手順についても既に説明したので、ここではこれ以上の説明を省略する。
ステップS10では、判定部38により、距離算出部37により算出された距離Lの合計が所定の閾値以下であるか否かが判定され、距離Lの合計が所定の閾値以下である(ステップS10においてYES)と判定された場合は、プログラムはステップS11に移行し、ステップS1において選択された比較画像ファイル51がステップS2において選択された基準画像ファイル50に類似するものとして決定される。この後、プログラムはステップS15に移行する。
一方、距離Lの合計が所定の閾値を超える(ステップS10においてNO)と判定された場合は、プログラムはステップS12に移行し、ステップS1において選択された比較画像ファイル51はステップS2において選択された基準画像ファイル50に類似しないものとして決定される。
次いで、ステップS13では、制御部30により、記憶部31内に格納されている全ての基準画像ファイル50とステップS1において選択された比較画像ファイル51との類比判定を行ったか否かが判定され、全ての基準画像ファイル50とステップS1において選択された比較画像ファイル51との類比判定を行った(ステップS13においてYES)と判定された場合は、プログラムはステップS15に移行し、ステップS1において選択された比較画像ファイル51との類比判定を行っていない基準画像ファイル50が存在する(ステップS13においてNO)と判定された場合は、ステップS14において、制御部30が、記憶部31に格納されている次の基準画像ファイル50を選択する。以降、ステップS3〜ステップS14に示す動作が繰り返される。
次いで、ステップS15では、制御部30により、記憶部31内に格納されている全ての比較画像ファイル51に対して類比判定を行ったか否かが判定され、全ての比較画像ファイル51に対して類比判定を行った(ステップS15においてYES)と判定された場合は、プログラムは終了し、まだ類比判定を行っていない比較画像ファイル51が存在する(ステップS15においてNO)と判定された場合は、ステップS16において、制御部30が、記憶部31に格納されている次の比較画像ファイル51を選択する。以降、ステップS2〜ステップS16に示す動作が繰り返される。
(第1実施形態の効果)
以上説明したように、本実施形態の情報処理装置1によれば、基準画像ファイル50と比較画像ファイル51との類比判定を行うことができる。ここで、本実施形態の情報処理装置1では、基準画像データ50aと比較画像データ51aとの特徴点を算出してこれら基準画像データ50aと比較画像データ51aとの特徴点との対応する組を決定し、これら特徴点の対応する組から任意の3組を選択して、選択された特徴点の組の一方の特徴点の座標値が他方の特徴点の座標値に一致するようなアフィン変換を行い、さらに、座標変換をした状態で残りの特徴点の組の間の距離の合計値を算出し、この合計値が所定の閾値以下である場合に、比較画像データ51aが基準画像データ50aに類似していると判定している。従って、従来の画像類比判定技術に比較して簡易に類比判定を行えるとともに、比較画像データ51aが基準画像データ50aを回転したものであった場合にも確実に類比判定を行うことができ、堅牢性に優れた類比判定を行うことができる。以上から、本実施形態の情報処理装置1によれば、簡易にかつ堅牢性に優れた画像データの類似判定を行うことの可能な類似画像検索方法及び情報処理装置1を提供することができる。
(第2実施形態)
上述の第1実施形態では、基準画像ファイル50と比較画像ファイル51との類比判定を行う度に、特徴点算出部34がこれら基準画像ファイル50及び比較画像ファイル51のデータ50a、51aの特徴点を算出していた。比較画像ファイル51は撮像装置2、3等から情報処理装置1へ新たに取り込まれた画像ファイルに相当するので、類比判定動作を行う度に特徴点算出部34が比較画像データ51aの特徴点を算出する必要があるが、基準画像ファイル50は情報処理装置1の記憶部31に既に取り込まれており、類比判定を行う度に特徴点算出部34が基準画像データ50aの特徴点を算出する必要はないとも考えられる。
そこで、第2実施形態では、基準画像ファイル50の基準画像データ50aについては予め特徴点算出部34が特徴点の座標値及び特徴量を算出して、記憶部31の特徴点データベース53に格納しておくことで、類比判定動作の高速化を図っている。
図10は、本発明の第2実施形態である情報処理装置1の機能構成を示す機能ブロック図である。ここで、第2実施形態の情報処理装置1は、上述の第1実施形態の情報処理装置1と、特徴点算出部34、対応特徴点決定部35、座標変換部36及び記憶部31の構成及び動作が異なるだけで、その他の構成要素は同一である。従って、同一の構成要素については同一の符号を付し、その説明を簡略化する。
記憶部31には、基準画像ファイル50の基準画像データ50aについて予め特徴点算出部34が算出した、特徴点の座標値及び特徴量が特徴点データベース53に格納されている。特徴点算出部34が基準画像データ50aの特徴点を算出するタイミングは任意であり、比較画像データ51aに対する類比判定動作に先立って行っていれば足りる。
特徴点算出部34は、基準画像データ50aについては、上述のように類比判定動作に先立って、比較画像データ51aについては、類比判定動作の都度、特徴点及び特徴量算出動作を行う。また、対応特徴点決定部35は、特徴点の対応する組を決定する際に、特徴点算出部34が算出した基準画像データ50a及び比較画像データ51aの特徴点の特徴量のうち同じ特徴量を持つ3組の特徴点の組が存在するか否かを判定し、基準画像データ及び比較画像データの特徴点の特徴量のうち同じ特徴量を持つ3組の特徴点の組が存在すれば、これら基準画像データ及び比較画像データの特徴点の対応する組を決定する。より詳細には、対応特徴点決定部35は、基準画像データ50aの特徴点の特徴量については特徴点データベース53から読み出し、比較画像データ51の特徴点の特徴量については、特徴点算出部34が類比判定動作の度に算出した特徴点及び特徴量を用いる。さらに、座標変換部36は、座標変換を行う際に、対応特徴点決定部35により同じ特徴量を持つと判定された基準画像データ及び比較画像データの特徴点の組を3組複数選択する。
図11及び図12は、第2実施形態の情報処理装置1による類似画像検索方法の動作を説明するためのフローチャートである。図11において、ステップS20〜ステップS21までの動作は、図8に示す第1実施形態のステップS1〜ステップS2の動作と同一であるので、説明を省略する。
ステップS22では、対応特徴点決定部35が、ステップS21で選択された基準画像データ50aの特徴点及び特徴量を特徴点データベース53から読み出す。ステップS23では、特徴点算出部34が、ステップS20で選択された比較画像データ51aの特徴点及び特徴量を算出する。ステップS24では、対応特徴点決定部35が、基準画像データ50a及び比較画像データ51aの特徴点の特徴量のうち同じ特徴量を持つ3組の特徴点の組を探索する。
そして、ステップS25では、ステップS24での探索の結果、基準画像データ50a及び比較画像データ51aの特徴点の特徴量のうち同じ特徴量を持つ3組の特徴点の組が存在するか否かを判定し、基準画像データ50a及び比較画像データ51aの特徴点の特徴量のうち同じ特徴量を持つ3組の特徴点の組が存在する(ステップS25においてYES)場合は、プログラムはステップS26に移行し、基準画像データ50a及び比較画像データ51aの特徴点の特徴量のうち同じ特徴量を持つ3組の特徴点の組が存在しない(ステップS25においてNO)場合は、プログラムはステップS33に移行する。
ステップS26では、対応特徴点決定部35が、特徴点算出部34が算出した基準画像データ50a及び比較画像データ51aの特徴点の対応する組を決定する。ステップS27では、座標変換部36が、ステップS25で探索した、基準画像データ50a及び比較画像データ51aの特徴点の特徴量のうち同じ特徴量を持つ3組の特徴点の組について、アフィン変換により、選択した特徴点の組の一方の特徴点の座標値が他方の特徴点の座標値に一致するように座標変換を行う。
これ以降、図11及び図12において、ステップS28〜ステップS36までの動作は、図8〜図9に示す第1実施形態のステップS8〜ステップS16の動作と同一であるので、説明を省略する。
従って、本実施形態によっても、上述した第1実施形態と同様の効果を奏することができる。特に、本実施形態では、基準画像ファイル50の基準画像データ50aについて予め特徴点算出部34が算出した、特徴点の座標値及び特徴量が特徴点データベース53に格納されているので、類比判定動作の都度、特徴点算出部34が基準画像データ50aの特徴量算出動作を行う必要がなく、これにより、類比判定動作のさらなる高速化を図ることができる。
(第3実施形態)
上述の第1実施形態では、類比判定を同一の画像ファイル取り込み判定に用いていた。このため、判定部38における閾値が比較的小さい値に設定されていた。判定部38における閾値は、小さく設定すれば、基準画像データ50aと略同一である比較画像データ51aについて類似であると判定することになり、大きく設定すれば、基準画像データ50aと同一のみならず基準画像データ50aの一部を変形したような類似の比較画像データ51aについても類似であると判定することができる。
加えて、判定部38において閾値を設けることなく、距離算出部37が、3組の特徴点の座標値が一致する座標変換を行った状態で、残りの組の基準画像データ50a及び比較画像データ51aの特徴点間の距離を算出し、得られた距離の合計を複数の比較画像データ51aのそれぞれについて算出し、判定部38が、残りの組の基準画像データ50a及び比較画像データ51aの特徴点間の距離の合計が最小値を取る比較画像データ51aを、基準画像データ50aに類似する比較画像データ51aであると判定してもよい。
このように、閾値を設けることなく、特徴点間の距離の合計が最小値を取る比較画像データ51aを、基準画像データ50aに類似する比較画像データ51aであると判定することにより、例えば顔認識処理において基準画像データ50aに撮像された被写体に最も類似する被写体が撮像された比較画像データ51aを抽出することができる。
ここで、第3実施形態の情報処理装置1は、上述の第1実施形態の情報処理装置1と、距離算出部37及び判定部38の動作が若干異なるだけで、その他の構成要素は同一である。従って、同一の構成要素については同一の符号を付し、その説明を簡略化する。
図13及び図14は、第3実施形態の情報処理装置1による類似画像検索方法の動作を説明するためのフローチャートである。図13及び図14において、ステップS40〜ステップS49までの動作は、ステップS42及びステップS43を除いて図8〜図9に示す第1実施形態のステップS1〜ステップS9の動作と同一であるので、説明を省略する。
但し、本実施形態では、ステップS41における基準画像ファイル51の選択動作の後、ステップS42において、顔認識処理部39が、ステップS40及びステップS41で選択された基準画像ファイル50、及び比較画像ファイル51に対して、少なくとも被写体の顔が撮像されている領域を画像データ50a、51aから抽出している。顔認識処理部39が抽出した、基準画像データ50a及び比較画像データ51aにおける、被写体の顔が撮像されている領域に関する情報は特徴点算出部34に出力される。次いで、ステップS43では、特徴点算出部34が、ステップS40及びステップS41で選択された基準画像ファイル50、及び比較画像ファイル51の画像データ50a、51aのうち、顔認識処理部39が抽出した領域内における特徴点を算出する。特徴点算出部34による特徴点算出手順については既に説明したので、ここではこれ以上の説明を省略する。
ステップS50では、制御部30により、記憶部31内に格納されている全ての基準画像ファイル50とステップS20において選択された比較画像ファイル51との類比判定を行ったか否かが判定され、全ての基準画像ファイル50とステップS40において選択された比較画像ファイル51との類比判定を行った(ステップS50においてYES)と判定された場合は、プログラムはステップS52に移行し、ステップS40において選択された比較画像ファイル51との類比判定を行っていない基準画像ファイル50が存在する(ステップS50においてNO)と判定された場合は、ステップS51において、制御部30が、記憶部31に格納されている次の基準画像ファイル50を選択する。以降、ステップS42〜ステップS51に示す動作が繰り返される。
ステップS52では、判定部38が、ステップS46で選択された任意の3組の対応する特徴点の組を除く、残りの組の基準画像データ50a及び比較画像データ51aの特徴点間の距離の合計の最小値を探索する。次いで、ステップS53では、ステップS52において探索された、残りの組の基準画像データ50a及び比較画像データ51aの特徴点間の距離の合計が最小値となる比較画像データ51aを探索し、この比較画像データ51aを、基準画像データ50aに類似する比較画像データ51aであると判定する。
ステップS54では、制御部30により、記憶部31内に格納されている全ての比較画像ファイル51に対して類比判定を行ったか否かが判定され、全ての比較画像ファイル51に対して類比判定を行った(ステップS54においてYES)と判定された場合は、プログラムは終了し、まだ類比判定を行っていない比較画像ファイル51が存在する(ステップS54においてNO)と判定された場合は、ステップS55において、制御部30が、記憶部31に格納されている次の比較画像ファイル51を選択する。以降、ステップS41〜ステップS55に示す動作が繰り返される。
従って、本実施形態によっても、上述の第1実施形態と同様の効果を奏することができる。
(第4実施形態)
上述の第3実施形態では、類比判定動作の度に、顔認識処理部39が、ステップS40及びステップS41で選択された基準画像ファイル50、及び比較画像ファイル51に対して、少なくとも被写体の顔が撮像されている領域を画像データ50a、51aから抽出している。比較画像ファイル51は撮像装置2、3等から情報処理装置1へ新たに取り込まれた画像ファイルに相当するので、類比判定動作を行う度に顔認識処理部39が顔認識処理を行う必要があるが、基準画像ファイル50は情報処理装置1の記憶部31に既に取り込まれており、類比判定を行う度に顔認識処理部39が顔認識処理を行う必要はないとも考えられる。
そこで、第4実施形態では、基準画像ファイル50の基準画像データ50aについては、予め顔認識処理部39が顔認識処理をして少なくとも被写体の顔が撮像されている領域を抽出し、抽出された領域に対して特徴点算出部34が予め記憶部31の人物データベース54に個々の被写体の特徴点及び特徴量を格納しておくことで、類比判定動作の高速化を図っている。
図15は、本発明の第4実施形態である情報処理装置1の機能構成を示す機能ブロック図である。ここで、第2実施形態の情報処理装置1は、上述の第1実施形態の情報処理装置1と、特徴点算出部34、顔認識処理部39及び記憶部31の構成及び動作が異なるだけで、その他の構成要素は同一である。従って、同一の構成要素については同一の符号を付し、その説明を簡略化する。
記憶部31には、基準画像ファイル50の基準画像データ50aについて予め顔認識処理部39が算出した、少なくとも被写体の顔が撮像されている領域に対応する、特徴点算出部34が算出した個々の被写体に対応する特徴点の座標値及び特徴量が人物データベース54に格納されている。顔認識処理部39が、基準画像データ50aにおける少なくとも被写体の顔が撮像されている領域を抽出するタイミング、及び、特徴点算出部34が抽出された領域に対して特徴点を算出するタイミングは任意であり、比較画像データ51aに対する類比判定動作に先立って行っていれば足りる。
顔認識処理部39は、基準画像データ50aについては、上述のように類比判定動作に先立って、予め顔認識処理をして少なくとも被写体の顔が撮像されている領域を抽出する。また、特徴点算出部34は、基準画像データ50aについては、上述のように類比判定動作に先立って、顔認識処理部39が抽出した領域について、比較画像データ51aについては、類比判定動作の都度、特徴点及び特徴量算出動作を行う。この際、顔認識処理部39は、基準画像データ50aに複数の被写体が撮像されている場合は、個々の被写体に対応して、少なくとも被写体の顔が撮像されている領域を複数個画像データ50aから抽出し、特徴点算出部34は、複数の領域のそれぞれについて、すなわち個々の被写体に対応して特徴点及び特徴量算出動作を行う。
図16及び図17は、第4実施形態の情報処理装置1による類似画像検索方法の動作を説明するためのフローチャートである。図16において、ステップS60〜ステップS61までの動作は、図13に示す第3実施形態のステップS40〜ステップS41の動作と同一であるので、説明を省略する。
ステップS62では、特徴点算出部34が、ステップS41で選択された基準画像データ50aに対応する個々の被写体の特徴点及び特徴量を人物データベース54から読み出す。ステップS63では、顔認識処理部39が、ステップS60選択された比較画像ファイル51に対して、少なくとも被写体の顔が撮像されている領域を画像データ51aから抽出する。この際、顔認識処理部39は、比較画像データ51aに複数の被写体が撮像されている場合は、個々の被写体に対応して、少なくとも被写体の顔が撮像されている領域を複数個画像データ51aから抽出する。
ステップS64では、ステップS63で顔認識処理部39が抽出した領域のうち、いずれか一つの領域を選択する。ステップS65では、特徴点算出部34が、ステップS64で選択された領域について特徴点算出動作を行う。
これ以降、図16及び図17において、ステップS66〜ステップS71までの動作は、図13〜図14に示す第3実施形態のステップS44〜ステップS49の動作と同一であるので、説明を省略する。
ステップS72では、制御部30により、ステップS63で顔認識処理部39が抽出した領域のうち、全ての領域に対して類比判定を行ったか否かが判定され、全ての領域に対して類比判定を行った(ステップS72においてYES)と判定された場合は、プログラムはステップS74に移行し、まだ類比判定を行っていない領域が存在する(ステップS72においてNO)と判定された場合は、ステップS73において、制御部30が次の領域を選択する。以降、ステップS64〜ステップS73に示す動作が繰り返される。
これ以降、図17において、ステップS74〜ステップS79までの動作は、図14に示す第3実施形態のステップS50〜ステップS55の動作と同一であるので、説明を省略する。
従って、本実施形態によっても、上述した第3実施形態と同様の効果を奏することができる。特に、本実施形態では、基準画像ファイル50の基準画像データ50aについて、予め顔認識処理部39が算出した、少なくとも被写体の顔が撮像されている領域に対応する、特徴点算出部34が算出した個々の被写体に対応する特徴点の座標値及び特徴量が人物データベース54に格納されているので、類比判定動作の都度、基準画像データ50aについて顔認識処理部39が領域抽出動作をし、特徴点算出部34が特徴量算出動作を行う必要がなく、これにより、類比判定動作のさらなる高速化を図ることができる。
(第5実施形態)
図18は、本発明の第2実施形態である画像処理システムSの概略構成を示す図である。本実施形態の画像処理システムSと上述の第1実施形態である画像処理システムとの相違点は、本実施形態の情報処理装置1はインターネット等のWAN8を介してサーバ装置9に接続されている点である。従って、第1実施形態と同様の構成要素については同一の符号を付し、その説明を簡略化する。
図19は、第2実施形態の画像処理システムSの機能構成を示す機能ブロック図である。図13において、本実施形態の情報処理装置1は、制御部30、記憶部31、第1の入力部32a及び第1の出力部33aを備え、また、本実施形態のサーバ装置9も制御部90、記憶部91、第2の入力部92及び第2の出力部93を備える。
記憶部31には、第1実施形態と同様の比較画像ファイル51が格納されている。第1の出力部33aは、第1実施形態の出力部33と同一の機能を有するとともに、比較画像ファイル51の比較画像データ51aをサーバ装置9に送信する。また、第1の入力部32aは、第1実施形態の入力部32と同一の機能を有するとともに、サーバ装置9の判定部98の判定結果を受信する。
本実施形態において、サーバ装置9の制御部90は、特徴点算出部94、対応特徴点決定部95、座標変換部96、距離算出部97、判定部98及び顔認識処理部99を備える。特徴点算出部94、対応特徴点決定部95、座標変換部96、距離算出部97、判定部98及び顔認識処理部99の機能は、第1実施形態の特徴点算出部34、対応特徴点決定部35、座標変換部36、距離算出部37、判定部38及び顔認識処理部39のそれと同一であるが、本実施形態の特徴点算出部94、対応特徴点決定部95、座標変換部96、距離算出部97、判定部98及び顔認識処理部99は、いずれもサーバ装置9の記憶部91に記憶された基準画像データ50aと、情報処理装置1の記憶部31に格納された比較画像データ51aとに基づいて各種動作を行う。
記憶部91には、第1実施形態の基準画像ファイル50と同様の基準画像ファイル50が格納されている。第2の入力部92は、情報処理装置1から送信された比較画像ファイル51の比較画像データ51aを受信し、第2の出力部93は、サーバ装置9の判定部98の判定結果を情報処理装置1に送信する。
そして、第1及び第2の入力部32a、92と第1及び第2の出力部33a、93とは通信回線100により接続されている。
従って、本実施形態によっても、上述した第1実施形態と同様の効果を得ることができる。
なお、本実施形態において、図18に示した例ではサーバ装置9に1台の情報処理装置1が接続されていたが、サーバ装置9との間でデータの送受信を行う情報処理装置1は1台に限定されず、複数台の情報処理装置1がサーバ装置9に接続されていてもよい。また、複数の情報処理装置1がWAN8を介して接続されている場合、いずれか1台の情報処理装置1がサーバ装置9として動作する構成も可能である。
また、上述の実施形態では、情報処理装置1からサーバ装置9に比較画像データ51aを送信し、サーバ装置9は類比判定の結果を情報処理装置1に返送していたが、情報処理装置1から送信するデータはこの実施形態に限定されず、種々の変形例が可能である。一例として、情報処理装置1の特徴点算出部34が算出した特徴点情報をサーバ装置1に送信し、サーバ装置1はこの特徴点情報に基づいて類比判定を行い、その結果を情報処理装置1に返送する構成が挙げられる。このような構成を採用すると、情報処理装置1とサーバ装置9との間の通信データ量を上述の実施形態に比較して削減することができ、通信回線100の通信負荷を削減することができる。加えて、比較画像データ51aを送信する上述の実施形態に比較してプライバシー保護の観点からも有利である。このような構成は、上述した、複数の情報処理装置1をWAN8を介して接続し、いずれか1台の情報処理装置1をサーバ装置9として動作させる構成に好適に適用可能である。
(変形例)
なお、本発明の類似画像検索方法及び類似画像検索装置は、その細部が上述の各実施形態に限定されず、種々の変形例が可能である。一例として、上述の第2実施形態のように、本発明の類似画像検索方法及び類似画像検索装置を顔認識処理に用いる場合、同一の被写体に対して、例えば顔の向きを変化させた複数の基準画像ファイル50を用意することで、顔認識処理の精度を向上することができる。加えて、同一の被写体に対して複数の基準画像ファイル50を用意する際に、被写体の撮像を開始してから当該被写体であることが認識されるまでの時間内に複数の基準画像ファイル50を撮像する、あるいは、上述した時間内に撮像された基準画像ファイル50に対して変移の量を記録するなどして、基準画像ファイル50と比較画像ファイル51との類比判定にある程度の幅を持たせれば、顔認識処理の精度をより向上することができる。
また、上述の第3及び第4実施形態において、基準画像データ50a及び比較画像データ51aの特徴点間の距離の最小値を検出するのみならず、これら基準画像データ50a及び比較画像データ51aの特徴点間の距離が最小値を取る比較画像ファイル51を先頭にして順次距離が大きくなる順に、または最大値を取る比較画像ファイル51を先頭にして順次距離が小さくなる順に比較画像ファイル51を並べて表示してもよい。あるいは、基準画像データ50a及び比較画像データ51aの特徴点間の距離が最小値から一定の大きさの幅にある比較画像ファイル51を、基準画像ファイル50に類似する比較画像ファイル51の群として表示してもよい。
さらに、上述の各実施形態においては、基準画像データ50aと比較画像データ51aとの特徴点との対応する組を決定し、これら特徴点の対応する組から任意の3組を選択して、選択された特徴点の組の一方の特徴点の座標値が他方の特徴点の座標値に一致するような座標変換を行っていたが、特徴点の対応する組から選択する組の数は3組に限定されず、複数組であれば特段の限定はない。但し、3組であれば類似画像検出処理を簡易に行うことができ、4組であれば顔認識における横顔の奥行きに対応するような透視変換された画像についても類似画像検出処理が可能になるという利点がある。
そして、上述の各実施形態において、情報処理装置1を動作させるプログラムはROM11、HDD部16等に格納されて提供されていたが、不図示の光学ディスクドライブ、カードインタフェース13c、USBインタフェース13d等を用いて、プログラムが格納されたDVD(Digital Versatile Disc)、USBフラッシュメモリ装置、メモリーカード6等を接続し、このDVD等からプログラムを情報処理装置1に読み込んで動作させてもよい。また、WAN8上の装置内にプログラムを格納しておき、ネットワークインタフェース15を介してこのプログラムを情報処理装置1に読み込んで動作させてもよい。さらに、上述の各実施形態において、情報処理装置1は複数のハードウェア要素により構成されていたが、これらハードウェア要素の一部の動作をCPU10がプログラムの動作により実現することも可能である。加えて、上述の各実施形態ではHDD部16を用いていたが、HDD部16以外の記憶媒体、一例としてSSD(Solid State Drive)装置やメモリーカード等の周知の記憶媒体を用いることも可能である。