図1は、本実施例における画像検索システム100の構成例を示すブロック図である。画像検索システム100のユースケースとしては、(1)監視映像解析用途:警察組織職員が特定の駅構内の監視カメラ画像内から不審行動をとる人物の探索を実施したい場合、大規模商業施設管理会社社員等のユーザが施設内の監視カメラ画像内から顧客行動を分析する場合、介護施設の職員が入館者のうずくまりや倒れ込みなどの異常行動を発見する等、(2)コーチング用途:競技スポーツやダンス、舞踊の振り付けを検索、(3)コンテンツ検索用途:映画やテレビ番組、Web上の画像から特定のポーズをとっている人物の画像や映像を検索する、等が考えられるが、これに限定されるものではない。また、上記は人物に関する例であるが、特徴点の集合である姿勢情報が定義できれば、任意の物体を対象として画像検索システム100を実施することができる。以下では、検索対象を「人物」とし、(1)の監視映像解析用途を例にあげ、各構成につき説明する。
なお、ここでいう「姿勢」とは、対象の物体に共通に存在する特徴点の集合を指し、例えば人物の場合は、{頭部、首、右肩、右肘、右手首、左肩、左肘、左手首、右腰、右膝、右足首、左腰、左膝、左足首}、という特徴点の集合により姿勢を定義することができる。特徴点は画像認識処理により検出され、画像中の座標と信頼度の情報を持つ。ここでいう「信頼度」は、該当特徴点が検出された座標に存在する確率を示す値であり、統計情報に基づき算出される。
また、以下「画像」といったときは動画または静止画を示す情報を意味し、「映像」といったときは画像以外の音声データ等も含む情報を意味するものとする。
図1において、画像検索システム100は、ユーザが検索条件として入力した姿勢情報を用いて画像データベース108を検索することで、類似した姿勢の物体が含まれる画像を効率的に検索する。画像検索システム100は、画像記憶装置101、入力装置102、表示装置103、及び画像検索装置104から構成される。また、画像検索装置104は、画像入力部105、姿勢推定部106、特徴量抽出部107、画像データベース108、姿勢入力部109、クエリ生成部110、画像検索部111、検索結果表示部112から構成される。
画像記憶装置101は、静止画データまたは動画データを保存する記憶媒体であり、コンピュータ内蔵のハードディスクドライブ、または、NAS(Network Attached Storage)もしくはSAN(Storage Area Network)などのネットワークで接続されたストレージシステムを用いて構成される。また、画像記憶装置101は、カメラから継続的に入力される画像データを一時的に保持するキャッシュメモリであってもよい。
入力装置102は、マウス、キーボード、タッチデバイスなどの、ユーザの操作を画像検索装置104に伝えるための入力インターフェースである。また、姿勢情報をシステムに伝える専用の装置であってもよい。例えば、距離センサのデータを解析して対象物の特徴点の情報を入力可能な装置や、関節に角度センサを有する人型の装置、人体の関節に加速度センサをとりつけて姿勢を取得する装置、などを使用することができる。表示装置103は、液晶ディスプレイなどの出力インターフェースであり、画像検索装置104の検索結果の表示、ユーザとの対話的操作などのために用いられる。
画像検索装置104は、検索に必要な情報を抽出しデータベース化するための登録処理、及び登録されたデータを用いた検索処理を行う装置である。以下、登録処理について説明する。なお、登録処理の詳細は図5のフローチャートでも説明する。
登録処理では、新規に登録する画像から物体の姿勢情報を認識し、画像情報と姿勢情報を関連付けて画像データベース108に登録する。すなわち、画像記憶装置101に蓄積された静止画データまたは動画データから、必要に応じて認識対象領域を抽出し、抽出された領域から画像認識処理によって姿勢情報を取得し、画像データベース108に登録する。姿勢情報は1つ以上の特徴点の集合であり、各特徴点は画像中の座標と、信頼度の数値で表現される。特徴点の信頼度は、0以上1以下の実数値で与えられ、1に近いほど特徴点が正しい座標である確率が高いことを示す。また登録処理では、画像の見た目の特徴を数値化した特徴量や、画像認識処理によって識別した属性の情報を抽出し、姿勢情報と関連付けて画像データベース108に登録する。
また、画像検索装置104は、ユーザが入力装置102から指定した検索条件を用いて、画像データベース108から検索条件に合致する画像を検索し、表示装置103に情報提示するための、検索処理を行う。検索処理において、ユーザは姿勢情報を検索条件として指定する。ユーザは、例えば、表示装置103に表示される特徴点を移動させることで、検索に使用する姿勢情報を決定する。詳細は図10で後述する。なお、使用する姿勢情報を特定することができれば、前述の専用装置や、文章や音声で入力してもよい。姿勢情報を用いた画像検索によりユーザは、指定した姿勢情報に合致する物体を含む画像を得ることができる。すなわち、ユーザは所望の画像を検索する際に、場所や時刻などのメタデータや、画像の見た目の特徴だけでなく、物体の姿勢情報を入力することで、類似する姿勢を含む画像を見つけることができるため、画像検索の精度が向上する。また、姿勢情報だけでなく、画像特徴や属性を条件に加えることで、ユーザの検索意図に近い検索結果を効率的に提示することができる。
画像入力部105は、画像記憶装置101から、静止画データまたは動画データの入力を受け付け、データを画像検索装置104内部で使用するデータ形式に変換する。例えば、画像入力部105が受け付けたデータが動画データであった場合には、画像入力部105は、フレーム(静止画データ形式)に分解する動画デコード処理を行う。
姿勢推定部106は、入力された画像に含まれる姿勢情報を認識する。姿勢推定処理は、システムに規定された物体単位で行う。例えば、人物を一つの物体として扱うシステムであれば、まず画像に含まれる人物を検出し領域検出処理を行ない、検出された領域毎に姿勢認識処理を行う。検出処理は公知の手法を用いることができる。また、姿勢推定の手法によっては、画像に含まれる複数の物体の特徴点を検出して姿勢推定に利用することで精度を高める方法もあり、このような姿勢推定手法を用いる場合には事前の領域検出処理を省略することができる。また、入力されたデータが動画であった場合は、フレーム間で同一の物体に対して追跡処理を行っても良い。
姿勢推定を行うためには、物体の特徴点の座標を出力する回帰モデルを用意しておく必要がある。入力画像から複数の座標値を出力する回帰モデルは、大量の訓練データと深層学習などの機械学習手法を用いることで構築することができる。訓練データは画像と正解ラベルのペアで構成される。訓練データの画像に映る物体の種類を変えたり、正解ラベルとして与える特徴点の定義を変えたりすることにより、任意の物体に対する任意の特徴点からなる姿勢情報を推定する回帰モデルを用意することができる。
特徴量抽出部107は、姿勢情報から画像検索に用いる特徴量を抽出する。特徴量は姿勢情報を表すものであれば任意の方法で抽出することができる。以下では姿勢情報から計算された特徴量を「姿勢特徴量」、それ以外の画像の見た目を表す特徴量を「画像特徴量」として区別する。すなわち、画像特徴量は、画像の色や形状などの特徴を示す画像間で比較可能な値である。いずれの特徴量も画像間で類似性を比較可能な値であり、例えば、固定長のベクトルで表現される。姿勢特徴量は、例えば、姿勢情報に含まれる各特徴点の座標を並べたものとしてもよい。座標を特徴点として使用する場合は、物体のサイズや中心座標を用いて正規化処理を行うことで、見た目のサイズの異なる物体や異なる座標に存在する物体についても類似する姿勢特徴量を得ることができる。座標値を直接使う方法の他に、例えば、特徴点の座標を用いてレンダリングされた模擬物体から抽出された画像特徴量や、特徴点間の距離や角度のデータなどを姿勢特徴量として用いることができる。
本実施例では、姿勢特徴量を検索用に用いているが、典型的な姿勢の特徴量を集めて機械学習により姿勢識別器を学習させることができる。特徴量抽出部107では、学習済み姿勢識別器を用いて姿勢を識別し、人物情報と関連付けて画像データベース108に登録しても良い。
また、特徴量抽出部107は、姿勢特徴量に加えて画像の見た目を表す画像特徴量を抽出する。これにより、姿勢情報だけでなく画像の見た目を条件にして検索することができる。画像特徴量は、物体領域全体から抽出してもよいし、特徴点付近の領域ごとに抽出してもよい。特徴量抽出部107は、画像に映る物体の種類を認識し、属性情報を抽出してもよい。属性認識処理は事前に学習された属性認識用のモデルによって行われる。
画像データベース108は、登録処理によって得られた、画像情報と人物情報とを保持する。画像データベース108は、画像検索装置104の各部の問合わせに対して、与えられた条件を満たす登録データを検索したり、指定されたIDのデータを読み出したりすることができる。画像データベース108の構造の詳細は図3で後述する。
以上が、画像検索装置104の登録処理における各部の動作である。次に、画像検索装置104の検索処理における各部の動作を説明する。なお、検索処理の詳細は図9のフローチャートでも説明する。
姿勢入力部109は、ユーザが入力装置102を介して入力した姿勢情報を受け付ける。前述の通り、姿勢情報は複数の特徴点の集合から構成され、特徴点は座標と信頼度を持つが、このとき受け付ける情報には信頼度の情報がなくても構わない。座標情報は、画面上に入力フォームを用意しても良いし、特徴点を描画して直感的に入力できるようにしても良い。また、事前に特徴的な姿勢をテンプレート化しておき、ユーザに選択させても良い。さらに、画面を用いずに専用装置から直接データを入力しても良いし、音声やテキストを入力として音声認識や自然言語処理を行うことで、該当するテンプレートを選択するインターフェースを用意しても良い。
クエリ生成部110は、姿勢入力部109で得られた姿勢情報を検索クエリに変換する。検索クエリは特徴量であり、例えば、固定長の数値ベクトルで表現される。姿勢情報から検索クエリへの変換は、特徴量抽出部107と同等の手段で行われる。また、クエリ生成部110は、複数の姿勢特徴量や画像特徴量によるマルチクエリを生成することもできる。さらに、検索条件として属性や時刻、場所などのメタデータを加えることもできる。
画像検索部111は、クエリ生成部110で得られたクエリベクトルを用いて画像データベース108から該当する登録データを取得する。検索処理では、クエリベクトルと、登録データのベクトル間の距離を計算し、距離の近い順に並び替えて一定数を出力する。距離計算には平方ユークリッド距離が用いられる。例えばクエリベクトルがVq=(q1,q2,q3、・・・)、登録データのベクトルがVp=(p1,p2,p3、・・・)とすると、平方ユークリッド距離d(Vp,Vq)は、d(Vp,Vq)=(p1―q1)^2+(p2―q2)^2+(p3―q3)^2+・・・で計算される。ここで「^2」は2乗を意味する。平方ユークリッド距離が小さいほど、検索条件に合致する登録データに近い画像と考えることができる。この例では画像間の類似度の指標として平方ユークリッド距離を用いる例を説明したが、クエリと登録データの合致性を評価できる計算方法であれば、任意の指標を用いてデータを検索することができる。
検索結果表示部112は、画像検索部111の検索処理によって得られた登録データを表示装置103に表示する。検索処理で取得されるデータは物体に関するものであるため、必要に応じて物体が検出された元の画像の情報を画像データベース108から取得したり、画像を加工したりすることでユーザに必要な画面を生成する。
以上が画像検索装置104の検索処理における各部の動作である。なお、画像検索装置104の登録処理と検索処理は、同時に実行することもできる。例えば、予め検索クエリを設定しておき、定期的に検索処理を実行することで、新規に入力された画像に特定の姿勢が含まれている場合に画面に通知する機能を持つリアルタイムシステムに応用できる。
図2は、本実施例における画像検索システム100のハードウェア構成例を示すブロック図である。図2において、画像検索装置104は、相互に接続されたプロセッサ201及び記憶装置202を備える。記憶装置202は、任意の種類の記憶媒体によって構成される。記憶装置202は、半導体メモリと、ハードディスクドライブとの組み合わせによって構成される。
なお、図1に示した画像入力部105、姿勢推定部106、特徴量抽出部107、姿勢入力部109、クエリ生成部110、画像検索部111、検索結果表示部112といった機能部は、プロセッサ201が記憶装置202に格納された処理プログラム203を実行することによって実現される。言い換えると、各機能部が実行する処理は、処理プログラム203に基づいて、プロセッサ201により実行される。また、画像データベース108のデータは、記憶装置202に格納される。なお、処理負荷分散などを目的として画像検索システム100を複数の装置で構成する場合は、画像データベース108を備える装置と処理プログラム203を実行する装置とは、ネットワークで接続された物理的に異なる装置であってもよい。
画像検索装置104は、さらに、プロセッサ201に接続されたネットワークインターフェース装置(NIF)204を含む。画像記憶装置101は、ネットワークインターフェース装置204を介して画像検索装置104に接続された、NASまたはSANであることが想定される。なお、画像記憶装置101は、記憶装置202に含まれてもよい。
図3は、本実施例における画像データベース108の構成及びデータ例を示す説明図である。なお、本実施例において、システムが使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。図3はテーブル形式の例を示しているが、例えば、テーブル、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。
図3において、画像データベース108は、例えば、画像情報を保持する画像テーブル300と、人物情報を保持する人物テーブル310と、を含む。図3の各テーブル構成及び各テーブルのフィールド構成は一例であり、例えばアプリケーションに応じてテーブル及びフィールドが追加されてもよい。また、同様の情報を保持していれば、テーブル構成を変えてもよい。例えば、画像テーブル300と人物テーブル310とが結合されひとつのテーブルであってもよい。
画像テーブル300は、画像IDフィールド301、画像データフィールド302、時刻フィールド303、場所フィールド304、及び画像特徴量フィールド305から構成される。
画像IDフィールド301は、各画像情報の識別番号を保持する。画像データフィールド302は、検索結果を表示する際に用いられる画像データを保持する。時刻フィールド303は画像が取得された時刻データを保持する。場所フィールド304は、画像が取得された場所の情報を保持する。画像特徴量フィールド305は、画像全体の特徴を表す数値ベクトルを保持する。例えば、赤色成分の割合いや、エッジ情報等を保持する。
人物テーブル310は、人物IDフィールド311、画像IDフィールド312、特徴点X座標フィールド313、特徴点Y座標フィールド314、特徴点信頼度フィールド315、人物姿勢特徴量フィールド316、人物画像特徴量フィールド317、追跡IDフィールド318から構成される。
人物IDフィールド311は、各人物情報の識別番号を保持する。画像IDフィールド312は、人物が検出された元の画像への参照であり、画像テーブル300で管理される画像IDを保持する。特徴点X座標フィールド313は、人物の特徴点の水平方向座標(X座標)を、全特徴点について順番に並べたベクトルデータを保持する。座標値は、例えば、画像領域内で0から1の値をとるように正規化して保存しても良い。特徴点Y座標フィールド314は、人物の特徴点の垂直方向座標(Y座標)を、全特徴点について順番に並べたベクトルデータを保持する。特徴点信頼度フィールド315は、人物の特徴点の信頼度を、全特徴点について順番に並べたベクトルデータを保持する。人物姿勢特徴量フィールド316は、人物の姿勢情報から計算された特徴量のベクトルデータを保持する。人物画像特徴量フィールド317は、人物の画像から計算された特徴量のベクトルデータを保持する。追跡IDフィールド318は、画像間の人物の同一性を表すIDを保持する。
本実施例における画像検索装置104は、入力された画像から物体の姿勢情報を抽出することで、ユーザは画像の見た目だけでなく、姿勢が類似した画像を検索することができる。検索対象となる画像に対しては、事前に画像検索装置104に入力し、データベース登録処理を実行しておく必要がある。画像検索装置104は、入力された画像に対して画像認識処理により姿勢情報を抽出する。
図4は、画像検索装置104で実行される画像認識処理の結果を説明するための図である。複数の人物が映る入力画像401を入力すると、人物ごとの領域とその姿勢が認識される。画像402は、認識結果を重畳表示した画像である。例えば、入力画像401に現れる人物403については、領域404及び姿勢405が得られる。姿勢情報は特徴点の集合で与えられ、特徴点間の接続関係を定義しておけば、姿勢405のように点と線によって可視化することができる。
入力画像の認識処理およびデータベース登録処理は、図3で説明したデータベースの構成例の情報が蓄積されていれば登録時の手順は任意で良いが、例えば、後述する図5のフローチャートに示す手順を用いることができる。
図5は、本実施例におけるデータベース登録の処理フローチャートである。以下、図5の各ステップについて説明する。なお、データ登録処理フローのトリガーは、ユーザが所定のシーンにおける画像データ群を要求すること等である。トリガーの詳細は、登録処理および検索処理の全体シーケンス図である図12で後述する。
図5において、画像入力部105は、画像記憶装置101から画像データを取得し、取得した画像データを必要に応じてシステム内部で利用可能な形式に変換する(S501)。例えば、動画データの入力を受け付けた場合には、動画データをフレーム(静止画データ形式)に分解する動画デコード処理等が変換処理に該当する。また、姿勢情報で検索する場合、地面に対して画像が傾いている場合やレンズ歪がある場合は、検索精度が低くなる可能性があるため、傾き補正や歪補正などの変換処理を行う。また、必要に応じて画像全体の類似性で検索するための画像特徴量を抽出する。
姿勢推定部106は、入力された画像から人物領域を検出し、各領域に含まれる人物の姿勢を推定する(S502)。検出処理には公知の人検出アルゴリズムを用いることができる。姿勢推定処理は、入力画像から特徴点の座標値を出力する回帰モデルにより実行される。回帰モデルは深層学習などの公知の機械学習手法と訓練データを用意することで事前に学習しておき、通常、システムの実行時は学習済みのモデルを使用する。ステップS502の結果、検出された人物ごとに、特徴点の集合からなる姿勢情報が得られる。特徴点は、座標値と信頼度のデータを持つ。
画像検索装置104は、ステップS502で検出された各人物に関して、ステップS504からステップS506を実行する(S503)。
特徴量抽出部107は、ステップS502で得られた人物の領域から画像特徴量を抽出する(S504)。人物の領域は、例えば、全ての特徴点を含む領域を抽出することによって得られる。
特徴量抽出部107は、ステップS502で得られた人物の姿勢情報に欠損があった場合や特徴点の信頼度が極端に低い場合、特徴点を補完する(S505)。ステップS502の姿勢推定処理では、画像が不明瞭である場合や遮蔽物により人物が隠れている場合に、特徴点が欠損する可能性がある。画像検索装置104は、欠損のある人物画像からも検索可能な特徴量を抽出するために、姿勢情報の補完処理を行う。補完処理の詳細については、図6、図7で後述する。
特徴量抽出部107は、ステップS505で得られた補完済みの姿勢情報から、姿勢特徴量を抽出する(S506)。姿勢特徴量は、姿勢情報を反映した数値ベクトルであり、例えば、特徴点の座標を並べたデータ、特徴点を可視化した画像から抽出した画像特徴量、特徴点間の距離や角度の数値データ、などによって計算することができる。
特徴量抽出部107は、以上の処理で得られた画像情報、物体の姿勢情報、画像特徴量、姿勢特徴量を関連付けて画像データベース108に登録する(S507)。この時、特徴量について、高速検索を実現するためのデータクラスタリング処理を実施してもよい。
監視カメラなど継続的に新しいデータが画像記憶装置101に記録される場合は、新しいデータが記憶されるまで待ってからステップS501に戻り登録処理を繰り返す。
図6は、本実施例における欠損のある姿勢情報の補完処理を説明するための図である。画像認識による姿勢推定処理では、全ての特徴点が認識できない場合がある。図6において、例えば、膝に手をついて座っている人物画像602の場合、姿勢情報601のように姿勢推定処理によって得られる特徴点には欠損が生じる。そこで、画像検索装置104は、画像データベース108から類似画像(603、604、605)を取得し、類似画像の姿勢情報から欠損特徴点の位置情報を補完する(姿勢情報606)。類似性の計算には、例えば人物画像の画像特徴量を用いても良いし、欠損箇所以外の特徴点から計算した姿勢特徴量を用いても良い。また、時間や場所が、画像中の位置、人物の属性、追跡IDなどの条件で絞り込むことにより、適切な類似画像を取得することができる。検索対象は、画像データベース108に登録済みの過去の画像であってもよいし、システム設計時に予め入力された典型的な姿勢のテンプレートであってもよい。なお、隣接する特徴点からルールベースで容易に座標が推定できる場合は、検索を用いずに補完処理を行っても良い。
図7は、本実施例における欠損情報の補完の処理フローチャートである。図7の処理フローは、図5の処理フローのステップS505に相当する。図7において、特徴量抽出部107は、処理対象の人物画像の特徴量をクエリとして、画像データベース108から類似画像を検索する(S701)。
特徴量抽出部107は、欠損特徴点について、ステップS703からステップS704を実行する(S702)。なお、欠損特徴点は姿勢推定処理の結果、座標が推定できなかった特徴点や、座標の推定はできたが信頼度が所定値より低い特徴点である。
特徴量抽出部107は、ステップS701で取得した類似画像から該当する特徴点の座標と信頼度を取得する(S703)。
特徴量抽出部107は、ステップ703で取得した座標の集合から、欠損特徴点の座標を推定する(S704)。欠損特徴点の座標は、例えば、座標値の平均値、中央値などで計算できる。また、類似度に応じて重みをつけて計算しても良い。
特徴量抽出部107は、全ての欠損特徴量について、補完が完了したら処理を終了する(S705)。
以上が本実施例における画像検索装置104の登録処理に関する説明である。以下では、本実施例における画像検索装置104の検索処理について図8と図9を用いて説明する。
画像検索装置104は、ユーザが入力した姿勢情報をクエリとして、類似する姿勢の人物を含む画像を検索することができる。図8は検索処理の入出力の例である。図8において、ユーザがクエリとして姿勢情報801を入力すると、画像検索装置104は検索結果802を出力する。検索結果は複数の人物データ(803、804、805)のリストであり、例えば、類似度順にソーティングされて出力される。また、各人物データに対応する画像データを出力しても良い。図8の画像データ806、807、808はそれぞれ、人物データ803、804、805が抽出された元画像である。
図9は本実施例における画像検索処理のフローチャートである。図9において、姿勢入力部109は、ユーザが入力した姿勢情報を受け付ける(S901)。姿勢情報は特徴点の集合であり、特徴点は座標値で与えられる。例えばユーザは表示装置103に表示された特徴点を操作することで座標値を入力する。または専用装置から直接入力しても良いし、音声やテキストを処理することで、姿勢情報に変換しても良い。
クエリ生成部110は、ステップS901で入力された姿勢情報を姿勢特徴量に変換する(S902)。変換処理は、登録時の処理(図5のステップS506)と同等の手段で行う。
また、クエリ生成部110は、必要に応じて姿勢情報以外の検索条件を取得する(S903)。例えば、画像特徴量や人物の属性、時刻や場所などを条件として取得することができる。
画像検索部111は、ステップS902で得られた姿勢特徴量と、ステップS903で得られた検索条件に従って、画像データベース108から類似画像を検索する(S904)。検索処理では、図1で前述したとおり、データベースに登録されている比較対象の人物の特徴量と、クエリの特徴量との平方ユークリッド距離を計算し、距離の小さい順に所定数のデータを取得する。検索条件が与えられた場合は、検索条件に一致する人物のみが比較対象となる。また画像特徴量が与えられた場合は、画像特徴量の距離と姿勢特徴量の距離を統合し、並び替えて出力する。距離の統合方法は、単純に2つの距離を足し合わせても良いし、距離を正規化したり重みをつけたりしても良い。
画像検索部111は、ステップS904で得られた検索結果について、人物が検出された元の画像情報を画像データベース108から取得する(S905)。
検索結果表示部112は、ステップS904で得られた検索結果とステップS905で得られた画像情報から生成した検索結果画面を表示装置103に表示して、処理を終了する(S906)。
図10は、本実施例における画像検索装置104を用いて画像検索を行うための操作画面の構成例を示す図である。また、同様に図11は属性や画像特徴量を条件に追加して画像検索を行う操作画面である。まず図10について説明する。
図10において、操作画面は、表示装置103上でユーザに提示される。ユーザは、入力装置102(キーボードやマウス等)を用いて、画面上に表示されたカーソル1000を操作することで、画像検索装置104に処理の指示を与える。なお、図10の例は、据え置き型の操作端末であるが、入力と表示が可能なデバイスであれば、様々な形態をとりうる。例えば、スマートフォンやタブレットのように、タッチ操作を用いても良い。また、ヘッドマウント型のディスプレイや、情報表示可能なメガネ型のデバイスを表示装置として用い、音声入力やジェスチャを受け付ける入力装置を使用しても良い。姿勢情報を入力するための専用装置からの入力を画面に反映させるようにしても良い。
操作画面は、姿勢入力領域1001、検索条件入力領域1002、検索ボタン1003、検索結果表示領域1004を含む。
姿勢入力領域1001に表示される情報は、姿勢入力部109によって表示装置103に出力される。検索結果表示領域1004に表示される情報は、検索結果表示部112によって表示装置103に出力される。
ユーザは、姿勢入力領域1001に表示された基本姿勢の特徴点をドラッグアンドドロップすることで、特徴点の座標を決定する(ステップS901に相当)。図中の特徴点は、例えば、0:頭部、1:首、2:右肩、3:右肘、4:右手首、5:左肩、6:左肘、7:左手首、8:右腰、9:右膝、10:右足首、11:左腰、12:左膝、13:左足首、に対応する。姿勢情報を入力する際は、特徴点を独立に動かせるようにしても良いし、接続関係を考慮して複数の特徴点を連動して動かすようにしてもよい。また、特徴点以外の制御点などを追加しても良い。
姿勢情報を入力した後、ユーザは検索条件入力領域1002に場所や時間などの検索条件を入力する(ステップS903に相当)。
ユーザが検索ボタン1003をクリックすると検索が実行される(ステップS904に相当)。なお、動作速度の問題がなければ、明示的に検索ボタンを押すことなく、姿勢情報や検索条件が変更された時点で自動的に検索を実行するように変えても良い。
検索結果は、検索結果表示部112によって適切な情報を含む画面に変換され、検索結果表示領域1004に表示される(ステップS906に相当)。
図11は、本実施例における検索条件に画像の属性や画像特徴量を指定するための操作画面例である。図11は、図10の画面に、属性入力領域1101と画像選択ボタン1102が追加されている。
図11において、ユーザは、属性入力領域1101に表示された属性のチェックボックスをクリックすることで、対応する人物の属性を検索条件に加える。また、画像選択ボタンをクリックして、画像記憶装置101に保存されている任意の画像を選択することで、選択された画像から抽出された画像特徴量を検索条件に加えることができる。画像の選択操作は、例えば、ドラックアンドドロップで画面に追加するインターフェースにしても良い。このとき、人物画像を入力することで人物全身の画像特徴量を比較するようにしても良いし、姿勢入力領域1001で特徴点を指定することで、指定した特徴点の周辺の画像特徴量のみを比較するようにしても良い。例えば、図11は、右手を上げた姿勢で左手に手提げバッグを持った20代の髪の長い女性を検索する様子を表している。
図12は、本実施例における画像検索システム100の処理の一例を説明するシーケンス図である。図12は、具体的には前述した画像検索システム100の画像登録及び画像検索処理における、ユーザ1200、画像記憶装置101、計算機1201、及び画像データベース108間の処理シーケンスを示す。なお、計算機1201は、画像検索装置104を実現する計算機である。
図12において、S1210は登録処理を、S1220は検索処理を示す。登録処理S1210は、ステップS1211〜ステップS1219に示す処理を含む。ユーザ1200が登録要求を出すと(S1211)、登録処理が開始される。S1211の具体的なユースケースは、後述する。登録処理は、図5で説明した処理に相当し、ユーザが指定したファイル数や所定時間、繰り返し実行される。計算機1201は画像記憶装置101に画像データ取得要求を出し、画像記憶装置101から画像データを取得する(S1212)。計算機1201は、取得した画像情報を画像データベース108に登録し(S1213)、画像中の人物に対して姿勢推定を行い(S1214)、各人物に対して一連の処理を実施する(S1215)。一連の処理では、姿勢情報を補完し(S1216)、特徴量を抽出し(S1217)、画像データベース108に人物情報を登録する(S1218)。全ての登録処理が完了したら、ユーザに登録完了を通知する(S1219)。
検索処理S1220は、ステップS1221〜ステップS1225に示す処理を含む。 ユーザ1200が、計算機1201に対して姿勢情報や検索条件を入力すると(S1221)、計算機1201は、入力された姿勢情報や画像を特徴量に変換することでクエリを生成し(S1222)、画像データベース108から類似画像を取得する(S1223)。計算機1201は、必要な情報を含む画面を生成し(S1224)、ユーザ1200に検索結果を提示する(S1225)。
ここで、ユースケース毎の、S1211の位置付けについて説明する。例えば、警察組織職員が特定の駅構内の監視カメラ画像内から特定の不審人物の探索を実施したい場合を想定すると、S1211は、画像記憶装置101に相当する駅サーバに対して、不審人物が映っていると思しき画像データ群を要求する処理に該当する。また、大規模商業施設管理会社社員等のユーザが施設内の監視カメラ画像内から異常行動を発見したい場合を想定すると、S1211は、画像記憶装置101に相当する施設内サーバに対して、迷子や遺失物等が映っていると思しき画像データ群を要求する処理に該当する。なお、S1211の際、ユーザが具体的に日付や時間帯等を指定することで、取得するデータ群の母数を絞り込むこともできる。
なお、図12では、登録処理S1210が完了した後に、検索処理S1220を実行しているが、同時に実行されても良い。例えば、監視カメラから継続的に入力される画像に対して常に登録処理を実行し、ユーザは随時、検索処理を実行して監視画像中から人物を検索可能なシステムとしても良い。また、撮像された画像は、当該画像を撮像した監視カメラのIDと対応付けて管理してもよい。これにより、検索により発見された人物等を撮像した時刻および撮像位置を特定することが容易となり、検索対象物のトレース効率を向上することが可能となる。
以上述べたように、本実施例における画像検索システムによれば、多様なユースケースにおいて、ユーザの検索意図に則した画像検索が可能となる。