以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
[実施形態1]
実施形態1に係る情報処理装置は、データから判定対象を検出して、さらに検出された判定対象に関するカテゴリ判定を行う。データの種類は特に限定されず、例えば画像、映像、又は音声データなどであってもよい。また、データは、例えば画像センサ又は音センサのようなセンサにより得られるデータであってもよい。一実施形態において、データは所定の軸に沿って並ぶシーケンスデータであり、例えばX軸及びY軸に沿う色情報を示す画像データ、X軸及びY軸及び時間軸に沿う色情報を示す映像データ、又は時間軸に沿う音情報を示す音声データなどであってもよい。
判定対象も特に限定されず、例えばオブジェクト、領域、区間、又は点などであってもよい。例えば、画像又は映像から判定対象が検出される場合、判定対象は人体、顔、又は物体のような所定のオブジェクトであってもよい。また、音声から判定対象が検出される場合、判定対象は無音区間又は音声の変化点(フレーム)などであってもよい。さらに、判定対象が複数の要素で構成されていてもよい。例えば、判定対象が複数の人物又は複数の物体であってもよい。一実施形態において、データからは、1以上の所定の軸に沿って拡がる区間又は領域が、判定対象として検出される。また、判定対象はデータ全体の種別又は属性であってもよい。例えば、判定対象は、画像データ又は音声データによって表されるイベント又はシーンであってもよい。
判定されるカテゴリについても特に限定されない。例えば、判定対象の種別又は属性を、判定対象に関するカテゴリとして判定することができる。具体例としては、判定対象が異常であるか否かを判定することができる。また、判定対象が人体又は顔である場合、判定対象が男性であるか女性であるかを判定してもよいし、類似人物検索を行うことにより、判定対象に対応する人物を判定してもよい。さらに、判定対象が無音区間又は音声の変化点である場合、この無音区間又は音声の変化点が異常を示すものであるかどうかを判定してもよい。また、別の実施形態において、判定されるカテゴリは、複数の判定対象に関するカテゴリであってもよい。一例を挙げると、画像中から判定対象として検出された複数の人体に基づいて、複数の人体の位置に関する異常検知、言い換えれば画像により表されるシーンにおける異常検知を行うことができる。このように、一実施形態においては、複数の判定対象に基づいて判定されるデータ全体のカテゴリ(例えば種別又は属性)を判定することができる。具体例としては、画像データ又は音声データによって表されるシーンの属性(例えばシーンが異常か否か)又は種別(例えばシーンにおいて行われているイベントの種類)などを、判定対象に関するカテゴリとして判定することができる。
一般に、判定対象に関するカテゴリ判定を行う際には、判定対象についての特徴が用いられる。例えば、判定対象の特徴量を抽出し、抽出された特徴量を判定器に入力することにより、カテゴリ判定結果を得ることができる。一般的には、判定対象の特徴量としては、データから判定対象を検出する処理の結果、例えば、画像中の判定対象の位置及び大きさなどが用いられる。一方、カテゴリ判定に用いられる、判定対象についての特徴の選択は、カテゴリ判定の精度に影響を与える。そこで本実施形態においては、判定対象を検出する処理の結果である検出情報に加えて、検出処理時に生成された、検出情報とは異なる中間データ(以下、中間生成特徴と呼ぶ)を用いて、判定対象のカテゴリ判定が行われる。このように中間生成特徴を用いることにより、カテゴリ判定の精度を向上させることができる。また、以下では、カテゴリ判定に用いられる中間生成特徴の選択方法についても説明する。
以下の実施形態においては、入力された画像データ(以下、単に入力データと呼ぶ)から、カテゴリ判定対象(以下、単に判定対象と呼ぶ)である人物を検出し、検出された人物が異常であるか否かをカテゴリとして判定する例について説明する。上述の通り本実施形態においては、入力データから判定対象を検出する処理が行われ、この処理の結果、検出情報が得られる。ここで、検出情報は、検出処理の結果である判定対象の情報であり、例えば、判定対象の位置、大きさ、又は種別などを表す情報でありうる。入力データから判定対象を検出する処理は、このような検出情報を結果として出力するように設計されている。例えば、このような検出情報を教師データとして用いた学習により得られた判定器を用いて、このような判定対象を検出する処理を行うことができる。判定対象が、1以上の所定の軸に沿って拡がる区間又は領域(例えば画像領域又は音声区間)である一実施形態において、検出情報は、データ内における判定対象の分布を示す情報であってもよく、例えば判定対象の位置又は大きさを示す情報であってもよい。
なお、一実施形態において、判定対象に関するカテゴリ判定を行う際には、検出情報及び中間生成特徴に加えて、判定対象を示す入力データの一部(例えば判定対象の部分画像)が用いられてもよい。このように、中間生成特徴は、検出情報、及び判定対象を示す入力データの一部とは異なる情報である。
また、本実施形態においては、このような判定器の学習も、検出情報と中間生成特徴とに基づいて行われる。判定対象を検出する検出器は、様々な応用例において共通に使える可能性が高い一方で、カテゴリ判定を行う判定器は、応用例に合わせて調整することで判定精度を向上できるかもしれない。例えば、人物検出結果に基づいて異常判定を行う場合、人物が通行可能な通路等の位置に応じて判定結果は変わるかもしれないし、カメラの位置に応じて判定結果は変わるかもしれない。本実施形態においては、検出器の学習を予め行っておき、カテゴリ判定を行う現場において判定器の学習を行ってもよい。さらに、一実施形態においては、判定器の学習時に、カテゴリ判定に用いられる中間生成特徴の選択を行うこともできる。このような構成においては、検出器の学習を予め行っておき、カテゴリ判定を行う現場において、実際の応用例に合わせた中間生成特徴の選択及び判定器の学習を行うことができる。
図1は、本実施形態に係る情報処理装置を備える、判定システムの概略的な構成例を示す図である。図1のシステムにおいては、カメラ10と、本実施形態に係る情報処理装置及び情報処理方法を実現する一構成例である情報処理装置20及び情報処理装置50とが、ネットワーク15を介して接続されている。情報処理装置20は、主に入力データに対する検出及び判定を行う役割を持ち、本実施形態においては入力データから人物を検出して異常判定を行う。情報処理装置50は、情報処理装置20が判定に用いる判定器の学習を行う役割を持つ。なお、情報処理装置20、情報処理装置50、及びカメラ10が一体的に構成されていてもよい。また、情報処理装置20と情報処理装置50とが一体的に構成されていてもよい。例えば、情報処理装置20は、情報処理装置50が有するような判定器学習部501又は検出器学習部503を有していてもよい。
カメラ10は、入力データを取得するセンサの一例である。本実施形態においてカメラ10は、情報処理装置20による検出及び判定処理の対象となる入力データである、画像を撮像する。また、カメラ10は、場合によっては、情報処理装置50が用いる学習データに含まれる、学習用の入力データを取得してもよい。この場合、情報処理装置50は、学習データに含まれる、入力データに対応する教師データを、別途ユーザから取得してもよい。
図1は、判定対象である人物31,32,33,34が歩いているシーン(撮像状況)30を、カメラ10が撮像する例を示している。情報処理装置20は、カメラ10で撮像されたシーン30における判定対象(人物)を検出して、検出された判定対象に対する正常/異常判定を行う。本実施形態では、対象情報と中間生成特徴と判定器とを用いてカテゴリ判定が行われる。以下では、対象情報及び中間生成特徴から、異常判定に用いられる特徴量(以下、判定特徴量と呼ぶ)を生成し、判定特徴量と判定器とを用いて判定対象のカテゴリ判定を行う場合について説明する。とりわけ、以下の処理においては、検出対象の検出処理時に得られた中間データ、及び検出処理の結果として得られた対象情報から、特徴データが選択され、選択された特徴データに対する変換処理が行われる。そして、変換後の特徴データを用いて、判定特徴量が生成される。
図2は、情報処理装置20及び情報処理装置50のハードウェア構成の一例を示す図である。情報処理装置20及び情報処理装置50は、CPU401のようなプロセッサと、RAM402、ROM403、及びHD404のようなメモリとを備える。CPU401は、情報処理装置20又は情報処理装置50全体を制御する。RAM402は、CPU401が実行するプログラムが展開され、及びCPU401のワークエリアとして機能する、記憶領域である。ROM403は、CPU401が実行するプログラムなどを格納する記憶領域である。HD404は、CPU401が処理を実行する際に用いる、各種のプログラム又は閾値に関するデータ等を含む各種のデータを格納する記憶領域である。CPU401が、ROM403又はHD404などに格納されたプログラムを実行することにより、後述する情報処理装置20又は情報処理装置50の機能構成及び、情報処理装置20又は情報処理装置50が行う処理が実現される。
操作部405は、ユーザによる入力操作を受け付ける。表示部406は、情報処理装置20又は情報処理装置50が生成した情報を表示する。ネットワークI/F407は、情報処理装置20又は情報処理装置50と、外部の機器とを接続する。
まず、入力データ内の判定対象を検出し、判定対象に対する判定処理を行う処理を説明する。図3Aには本実施形態における情報処理装置20のCPU401が実行する処理が、それぞれ機能ブロックとして示されている。なお、図3Aには、情報処理装置20が有する機能ブロックの他に、カメラ10に相当する撮像部200も示されている。撮像部200は、シーン30を撮像して入力データを取得する。
本実施形態に係る情報処理装置20は、入力部201、対象検出部202、特徴量取得部203、判定部204、出力部205、検出器保持部206、及び判定器保持部207を有している。なお、検出器保持部206及び判定器保持部207は、例えばHD404であってもよいし、情報処理装置20と接続された不揮発性の記憶装置であってもよい。情報処理装置20が有するこれらの各機能の詳細については、図4等を参照しながら後述する。
図4は、本実施形態に係る、カテゴリ判定を行う情報処理方法の概要を示すフローチャートである。まず、図4を参照して、本実施形態における情報処理装置20の各機能ブロックが行う処理の概略を説明する。データ入力工程であるステップS301において、入力部201は入力データを取得する。本実施形態において入力部201は、撮像部200によって撮像された画像である入力データを受信する。そして入力部201は、取得した入力データを対象検出部202に送信する。
次に、対象検出工程であるステップS302において、対象検出部202は入力部201から送信された入力データから判定対象を検出する。本実施形態において対象検出部202は、検出器保持部206に保持されている検出器を用いて、画像中から異常判定を行う対象である判定対象を検出する。そして、対象検出部202は、検出した判定対象についての情報である検出情報と、検出処理時に得られた、検出情報とは異なる中間データである中間生成特徴と、を特徴量取得部203に送信する。入力データから複数の判定対象が検出された場合、対象検出部202は、複数の判定対象についての検出情報及び中間生成特徴を送信することができる。
次に、特徴量取得工程であるステップS303において、特徴量取得部203は、対象検出部202から取得した検出情報及び中間生成特徴に基づいて、判定対象の特徴量(判定特徴量)を生成する。この判定特徴量を用いて、各判定対象についての異常判定が行われる。そして、特徴量取得部203は、取得した判定特徴量を判定部204に送信する。
次に、カテゴリ判定工程であるステップS304において、判定部204は、判定特徴量と、判定対象に関するカテゴリ判定を行う判定器とを用いて、判定対象に関するカテゴリ判定を行う。ここで、判定部204は、カテゴリ判定の結果として、判定対象のカテゴリを示す情報を生成してもよいし、判定対象が所定のカテゴリに含まれるか否かを示す情報を生成してもよい。また、判定部204は、カテゴリ判定の結果として、判定対象が1又は複数のカテゴリのそれぞれに対応する可能性を、カテゴリごとに示すスコアを生成してもよい。判定部204は、このような各判定対象についてのカテゴリを表す情報を、判定結果として出力部205に送信することができる。
本実施形態において判定部204は、判定器保持部207に保持されている異常判定を行う判定器と、特徴量取得部203が取得した判定特徴量と、を用いて対象検出部202が検出した各判定対象についての異常判定を行う。そして、判定部204は、各判定対象についての異常判定の結果、例えば判定対象が「異常」カテゴリに含まれる可能性を示す異常スコアを、出力部205に送信する。
次に、アラート出力工程であるステップS305において、出力部205は、ステップS304において得られた各判定対象のカテゴリを示す情報に応じて、情報出力を行う。例えば、出力部205は、異常判定の結果に応じてアラートを出力することができる。なお、出力部205が、判定対象が1又は複数のカテゴリのそれぞれに対応する可能性を、カテゴリごとに示すスコアを取得した場合、出力部はこのスコアに基づいて判定対象のカテゴリを判定し、判定されたカテゴリを示す情報を出力してもよい。
以下では、各ステップS301~S305における具体的な処理例を、処理結果の一例を示す図5を参照して、より詳細に説明する。ステップS301において入力部201は、図1に示すようなシーン30を撮像部200が撮像することにより得られた画像を、入力データである対象画像100として取得することができる。なお、入力データは、外部装置(不図示)に格納されている画像などのデータであってもよい。この場合、入力部201は、外部装置から読み出された画像などのデータを、入力データとして取得することができる。外部装置に格納されている画像は、例えば撮像部200などにより予め撮像された画像であってもよいし、ネットワークを経由するなどの他の方法で取得された画像であってもよい。対象画像100は対象検出部202に送信される。
ステップS302において対象検出部202は、入力部201から送信された対象画像100内から、検出器保持部206に保持されている検出器を用いて、異常判定の対象となる判定対象を検出する。検出器は、情報処理装置50又はその他の装置を用いて、あらかじめ学習されている。検出器及びその学習方法は、判定対象の種類に応じて選択することができる。例えば、判定対象が人体である場合には人体検出器を用いることができ、このような人体検出器の例は例えば非特許文献1及び非特許文献2に開示されている。なお、検出器の具体的な学習方法の例に関しては後述する。
非特許文献1("You Only Look Once: Unified, Real-Time Object Detection", International Conference on Computer Vision and Pattern Recognition 2016.)には、DNNを用いて判定対象を検出する方法が開示されている。非特許文献1の方法によれば、DNNに入力データを入力することにより、判定対象を囲むバウンディングボックスの位置及び大きさなどが得られる。とりわけ、非特許文献1の方法では、判定対象を検出するために用いる特徴量を抽出する処理と、判定対象を識別する処理と、が一度に行われる。
また、非特許文献2("Histograms of Oriented Gradients for Human Detection", Navneet Dalal and Bill Triggs, International Conference on Computer Vision and Pattern Recognition 2005.)には、Support-Vector-Machine(SVM)を用いて判定対象を検出する方法が開示されている。非特許文献2の方法によれば、局所領域について画像特徴量としてHistogram-of-Gradients(HOG)特徴量が取得され、このHOG特徴量を識別器であるSVMに入力することで、局所領域が判定対象の領域であるかどうかが識別される。このような処理を繰り返すことにより、判定対象の検出が行われる。
本実施形態において対象検出部202は、人体検出器を用いることで得られた、検出スコア(正しく判定対象が検出された可能性)が所定の閾値以上である検出結果を、判定対象の検出結果として得ることができる。図5(B)は、図5(A)に示す入力データに対する人体検出により得られた結果の例を示す。図5(B)には、人体検出結果として判定対象101,102,103,104が矩形で示されている。本実施形態において対象検出部202は、各判定対象についての位置及び大きさを示す情報を、対象情報として特徴量取得部203に送信する。対象検出部202は、さらに、各判定対象についての検出スコアを対象情報として特徴量取得部203に送信してもよく、また、各判定対象についてのカテゴリ推定結果を対象情報として特徴量取得部203に送信してもよい。もっとも、情報処理装置20によるカテゴリ判定結果は、判定部204により生成される。なお、対象検出部202は、中間生成特徴と同様に、検出処理の結果として得られた判定対象の情報のうち一部を選択し、対象情報として特徴量取得部203に送信してもよい。
対象検出部202は、検出処理時に生成された中間生成特徴を、さらに特徴量取得部203に送信する。ここで、対象検出部202は、検出処理時に生成されたデータのうち一部を、中間生成特徴として選択することができる。例えば、ニューラルネットワークを用いて判定対象を検出する場合、中間生成特徴は、ニューラルネットワークの中間層からの出力を含んでいてもよい。例えば、中間生成特徴は、ニューラルネットワークの各層の出力結果のうち、予め選択された1以上の層からの出力結果であってもよい。また、中間生成特徴が、予め選択された1以上の層からの出力結果のうち、予め選択された部分における出力結果、例えば予め選択された出力チャンネル(次元)における出力結果又は予め選択された領域における出力結果であってもよい。中間生成特徴が2以上の層からの出力結果である場合、対象検出部202は、それぞれの層からの出力結果を結合して得られたデータを中間生成特徴として対象検出部202に送ってもよい。また、対象検出部202は、それぞれの層からの出力結果を用いた処理により得られたデータを中間生成特徴として対象検出部202に送ってもよい。また、HOG特徴量のような特徴量をSVMのような識別器に入力することで判定対象を検出する場合、中間生成特徴は、識別器に入力される特徴量であってもよいし、識別器に入力される複数の特徴量から予め選択された特徴量であってもよい。さらに、中間生成特徴は、特徴量のうち予め選択された次元のデータであってもよい。
以下では、DNNを用いる例における、対象情報及び中間生成特徴を生成するための具体的な処理例について説明する。図6は、情報処理装置20に対象画像100が入力されてから、情報処理装置20から異常スコアSが出力されるまでの処理における、各処理部間の入力/出力関係の例を表す。
対象検出部202は、対象画像100をDNNに入力し、判定対象の検出結果yとしてDNNからの出力結果を取得する。そして、対象検出部202は、この検出結果yを対象情報として特徴量取得部203に送信する。ここで、対象画像100をxと表し、対象検出部202がDNNを用いて行う処理をf1と表すと、検出結果yは式(1)により表すことができる。
y=f1(x) ……(1)
また、対象検出部202は、このような検出処理時に生成された中間生成特徴z1も、特徴量取得部203に送信する。図6の例において、中間生成特徴z1は、検出結果yを出力するDNNを構成する各層のうち、予め選択された2つの層の出力の一部である。すなわち、図6の例では、選択された2つの層の出力のうち6010で示される部分の組み合わせが、中間生成特徴z1として用いられている。
図7は、対象検出部202が使用可能なDNNの一例を示す。図7の例においては、サイズが448×448であり、チャンネル数が3である対象画像100がDNNに入力され、7×7×12の出力結果が得られている。図7に示すDNNを用いた処理には、処理1101~1108が含まれる。処理1101~1105であるConv+Pool処理では、畳みこみ(convolution)と、relu及びmaxpoolingと呼ばれる非線形処理と、が順に行われる。reluは非線形処理の一つであり、式(2)のように、畳みこみ処理の結果のうち、負の値を0にする処理である。reluの代わりに、シグモイド関数を用いる処理のようなその他の非線形処理を用いてもよい。
x=max(0,x) ……(2)
また、maxpoolingとは、所定範囲内における最大値を出力する処理である。relu及びmaxpoolingはニューラルネットワークで用いられる代表的な非線形処理であり、非特許文献1、及び非特許文献3,4(後述)でも用いられている。
処理1106は、畳みこみ及びreluを行う処理である。処理1107,1108は、層1118,1119の全てのノードが、次の層の全てのノードにつながっていること、すなわち層1118,1119が全結合層(fullconect)であることを表している。
出力結果における7×7はブロック数を表す。すなわち、図7で得られた出力結果は、7×7に分割された対象画像100の分割画像のそれぞれについての対象検出結果を示す。このように、図7に示す処理は、対象画像100を7×7ブロックに分割し、ブロックごとに対象検出を行うことに相当する。12は、検出結果の次元を表す。図7の例における検出結果の内訳は、2(バウンディングボックスの数)×(4(検出されたバウンディングボックスの位置及び大きさ)+1(検出スコア))+2(クラス尤度)である。バウンディングボックスとは、検出された判定対象を囲う外接矩形である。バウンディングボックスの位置及び大きさは、例えば、左上頂点の座標(X,Y)、幅(W)、及び高さ(H)からなる4次元の情報により表すことができる。また、検出スコア(Pr)は、得られたバウンディングボックスの位置及び大きさの精度を示す情報であり、例えばバウンディングボックスとGT(教師値)との重なり率でありうる。図7の例では、1つのブロックから2つのバウンディングボックスが検出され、すなわちそれぞれのバウンディングボックスについて、位置及び大きさを示す情報と、検出スコアと、が出力される。クラス尤度は、そのブロックに各クラスに属する対象が存在する確率を示している。例えば、1つの次元が、ブロックが正常である確率を示し、もう1つの次元が、ブロックが異常である確率を示してもよい。
このような図7の例においては、検出スコアが所定の閾値以上であるバウンディングボックスについての情報(位置及び大きさ)を、検出結果yとして用いることができる。また、中間生成特徴は、図7に示される中間層1113~1119のうち、予め選択された層の出力結果であってもよいし、予め選択された出力チャンネルにおける出力結果であってもよい。ここで対象検出部202は、検出結果であるバウンディングボックスの位置又はサイズに応じて、中間層の出力結果のうち一部を抽出してもよい。例えば、対象検出部202は、中間層1114の出力結果1120のうち、検出スコアが所定の閾値以上であるバウンディングボックスに対応する領域1121を、中間生成特徴として特徴量取得部203に送ってもよい。別の例において、特徴量取得部203は、検出結果y及び出力結果1120を受け取り、検出結果yに基づいて領域1121を抽出してもよい。
なお、対象検出部202は、複数の判定対象が検出された場合、それぞれの判定対象についての対象情報を特徴量取得部203に送信することができる。例えば、対象検出部202は、検出スコアが所定の閾値以上である2以上のバウンディングボックスについての情報を、検出結果yとして用いることができる。また、対象検出部202は、それぞれの判定対象について共通の中間生成特徴を特徴量取得部203に送信してもよいし、それぞれの判定対象について異なる中間生成特徴を特徴量取得部203に送信してもよい。例えば、対象検出部202は、それぞれのバウンディングボックスについての検出結果yと、それぞれの検出結果yに対応する中間生成特徴(中間層の出力結果のうちバウンディングボックスに対応する領域)と、を特徴量取得部203に送信してもよい。以下では、1つの判定対象のみが検出された場合について主に説明する。
ステップS303において特徴量取得部203は、ステップS302で送信された対象情報及び中間生成特徴に基づいて、判定特徴量を生成する。特徴量取得部203は、対象情報と中間生成特徴の少なくとも一方に対して変換処理を行い、変換後の特徴量に基づいて判定特徴量を生成してもよい。なお、ステップS303における処理で用いられる検出結果yの形式は特に限定されない。例えば、処理f2で用いられる検出結果yは、例えば、判定対象の検出結果であるバウンディングボックスの座標及びサイズを要素として有するベクトルであってもよい。また、検出結果yは、対象画像100と同じサイズの2次元マップであって、判定対象が存在する位置の要素値が1、その他の要素値が0である、2次元ベクトルであってもよい。対象検出部202はこのような形式の検出結果yを特徴量取得部203に送信してもよいし、特徴量取得部203は検出結果yをこのような形式に変換してもよい。
特徴量取得部203は、検出結果yと中間生成特徴z1とに基づいて、検出結果yに対応する判定特徴量z2を取得する。一実施形態において、判定特徴量z2は、検出結果y又はその変換結果である特徴量y’と、中間生成特徴z1又はその変換結果と、の線形結合である。例えば、特徴量取得部203が有する特徴抽出部6002は、処理f3を用い、式(3)に従って判定特徴量z2を得ることができる。
z2=f3(y’+z1) ……(3)
別の例として、判定特徴量z2は、検出結果y又はその変換結果である特徴量y’と、中間生成特徴z1又はその変換結果と、を連結した結果であってもよい。
また、特徴量取得部203が有する変換部f2は、処理f2を用い、式(4)に従って検出結果yから特徴量y’を得ることができる。この実施形態において、特徴量y’の次元と中間生成特徴z1の次元とは一致し、処理f2はこのような特徴量y’が得られるように設計されている。
y’=f2(y) ……(4)
検出結果yの次元は、中間生成特徴z1の次元と一致しないかもしれず、例えば検出結果yは中間生成特徴z1に比べて低次元であるかもしれない。この場合、検出結果yと中間生成特徴z1とを用いて判定を行い、又は判定器の学習を行うと、検出結果yが判定結果に反映されにくくなる可能性がある。また、検出結果yは、距離計算が可能な形式ではないかもしれず、学習時における誤差評価が容易ではないかもしれない。そこで、本実施形態において特徴量取得部203は、変換のための処理f2を用いて検出結果yを特徴量y’へと変換する。
変換のための処理f2は特に限定されない。また、処理f2は、学習によって決定されてもよい。一例として、処理f2は、ニューラルネットワークを用いて、検出結果yを高次元空間にマッピングする処理であってもよい。例えば、図8に示すように、検出結果yをエンコーダ71に入力し、エンコーダ71の出力をデコーダ72に入力すると、検出結果yが復元されるようなモデルを用いることができる。この場合、特徴量取得部203は、エンコーダ71による検出結果yの変換結果を、特徴量y’として取得することができる。例えば、非特許文献5("Auto-Encoding Variational Bayes", Diederik P. Kingma, Max Welling, arxiv 2013.)に記載されているようなVariational-AutoEncoderを用いることにより、変換結果である特徴量y’を潜在変数として取得できる。このような処理によって得られたエンコーダ71による処理を、変換処理f2として設定することができる。
また、処理f2はユーザによって設計されてもよい。例えば検出結果yは、バウンディングボックスの座標(X,Y)、サイズ(W,H)、及び検出スコア(Pr)を含んでいてもよい。特徴量取得部203(又は対象検出部202)は、必要に応じて検出結果yに対する変換処理を行ってもよい。例えば、特徴量取得部203は、値域が-1~1の範囲となるように、式(5)及び(6)に従ってX,Yの値を対象画像100のサイズで除算することができる。式(5)及び(6)において、X’及びY’は変換後のバウンディングボックスの座標に関する特徴量である。また、X0及びY0は、対象画像100中で任意に定められた基準座標である。
X’=(X-X0)/(対象画像100のサイズ(幅)) ……(5)
Y’=(Y-Y0)/(対象画像100のサイズ(高さ)) ……(6)
また、特徴量取得部203は、平均バウンディングボックスサイズを予め取得しておき、この値でバウンディングボックスのサイズを除算してもよい。例えば、変換は式(7)及び(8)に従って行うことができる。ここで、(W0,H0)は平均バウンディングボックスサイズであり、(W’,H’)は、変換後のバウンディングボックスサイズに関する特徴量である。
W’=W/W0 ……(7)
H’=H/H0 ……(8)
このような場合において、処理f2を式(9)で表すことができる。
y’={(X’,Y’,W’,H’),Pr} ……(9)
また、特徴量取得部203は、中間生成特徴z1に対しても変換処理を行うことができる。本実施形態においては、特徴量取得部203は図7に示す領域1121のような、検出結果yに対応する中間層の出力結果が、式(3)に入力される中間生成特徴z1として用いられる。
特徴量取得部203は、このように取得した判定特徴量z2を判定部204に送信する。
ステップS304で判定部204は、ステップS303において取得された判定特徴量を用いて、判定対象ごとに異常判定を行う。判定器保持部207は、学習が予め行われている判定器を保持しており、判定部204はこの判定器を用いて異常判定を行うことができる。図6には、異常判定のために正常モデルを利用する例が示されている。例えば、ステップS303で得られた判定特徴量z2と正常モデルM(図6の6003)を用いることで、判定部204は、判定対象の異常の度合いを示す異常スコアSを取得することができる。判定部204は、例えば、判定器を用いた処理f4により、式(10)に従って異常スコアSを得ることができる。
S=f4(z2,M) ……(10)
一方で別の例において、判定部204は正常と異常を識別する識別器を、判定器として利用してもよい。例えば、判定部204は、判定特徴量z2を判定器に入力することにより、判定対象ごとに異常判定を行ってもよい。また、判定部204が他クラス識別を行う別の実施形態において、判定部204は、識別されたカテゴリを示す情報を回帰値として与える回帰器を、判定器として利用してもよい。このような識別器及び回帰器は、例えばSVMを用いて実現することができる。
判定部204は、こうして得られた各判定対象に関する異常スコアを、出力部205に送信することができる。
ステップS305において出力部205は、ステップS304において得られた異常スコアに応じてアラートを出力する。例えば、出力部205は、対象画像100に含まれる判定対象の異常が検出された場合、アラートを出力することができる。一例として、出力部205は、判定対象の異常スコアが予め設定された閾値以上であれば、この判定対象についてのアラートを出力することができる。また、出力部205は、対象画像100から複数の判定対象が検出された場合、それぞれの判定対象について得られた異常スコアに基づいて、アラートを出力することができる。
一例として、出力部205は、複数の判定対象のうち、異常スコアが閾値を超える判定対象を選択し、選択された判定対象を示す情報とともにアラートを出力してもよい。図5(C)は、ステップS302で検出された判定対象101~104のそれぞれに対する、判定部204及び出力部205による処理の結果、判定対象106の異常スコアのみが閾値を超え、判定対象106のみが異常と判定された例を示す。図5(C)においては、異常と判定された判定対象106が、異常度の低い判定対象105,107,108とは区別して、強調表示されている。図5(C)の例では判定対象105,107,108の領域が点線で表されているが、これらの領域は示されなくてもよい。
別の例として、出力部205は、各判定対象の異常スコアの統計値、例えば最大値、平均値、又は中央値などに基づいて、アラートを出力するかどうかを決定することができる。また、複数の対象画像100がシーケンスとして順次情報処理装置20に入力される場合、出力部205は、異常スコアが閾値を超える期間が一定期間より長い場合にアラートを出力してもよい。
次に、情報処理装置20が使用する検出器及び判定器の学習を行う情報処理装置50の構成例及び処理例について説明する。図9Aには本実施形態における情報処理装置50のCPU401が実行する処理が、それぞれ機能ブロックとして示されている。学習データ保持部502は、例えばHD404であってもよいし、情報処理装置50と接続された不揮発性の記憶装置であってもよい。対象検出部202、特徴量取得部203、検出器保持部206、及び判定器保持部207の構成及び処理は、情報処理装置20と類似しており、以下では異なる点のみを説明する。
図10(A)は、情報処理装置50が検出器の学習を行う際に、各機能ブロックで実行される処理の概要を示すフローチャートである。本実施形態においては、図10(A)に示すフローチャートに従って検出器の学習が行われ、続けて図10(B)に示すフローチャートに従って判定器の学習が行われる。なお、検出器は予め学習されていてもよく、この場合、予め用意されている検出器を用いて、判定器の学習を行うことができる。
データ入力工程であるステップS351において、入力部201は、学習データ保持部502が保持している学習データを取得し、検出器学習部503へと送る。入力部201が検出器学習部503に送る学習データには、学習用の入力データが含まれる。また、検出器の教師あり学習を行う場合、学習データは、学習用の入力データに示される判定対象の情報である、検出器用の教師データを含むことができる。教師データは、情報処理装置20の対象検出部202による検出処理によって得られる、判定対象の情報と同じ項目についての情報である。例えば、情報処理装置20の対象検出部202が、検出器を用いて判定対象(又はバウンディングボックス)の座標及びサイズを取得する場合、教師データは、学習用の入力データに示される判定対象の座標及びサイズを示す情報である。
検出器学習工程であるステップ352において、検出器学習部503は、ステップS351で得られた学習データを用いて、検出器の学習を行う。具体的な検出器の学習方法は特に限定されず、検出器の種類に応じた公知の方法を用いてもよい。例えば、検出器としてDNNを用いる場合、DNNに学習用の入力データを入力することで得られる出力と、教師データと、の誤差に基づいて、誤差逆伝播法を用いて検出器の学習を行うことができる。また、検出器としてSVMを用いる場合、マージン最大化の手法を用いて検出器の学習を行うことができる。そして、検出器学習部503は学習後の検出器を検出器保持部206に送信し、検出器保持部206は送信された検出器を保持する。
図10(B)は、情報処理装置50が判定器の学習を行う際に、各機能ブロックで実行される処理の概要を示すフローチャートである。本実施形態においては、情報処理装置20と同様に入力データから判定対象が検出される。そして、判定対象の検出結果である検出情報と中間生成特徴とを用いて、判定対象に関するカテゴリ判定を行う判定器の学習が行われる。以下の例においては、情報処理装置20と同様に、対象情報及び中間生成特徴から、判定器の学習に用いる特徴量(以下、学習特徴量と呼ぶ)を生成してから、学習特徴量を用いて判定器の学習を行う場合について説明する。とりわけ、以下の処理においては、情報処理装置20と同様に、検出対象の検出処理時に得られた中間データ、及び検出処理の結果として得られた対象情報から、特徴データが選択され、選択された特徴データに対する変換処理が行われる。そして、変換後の特徴データを用いて、学習特徴量が生成される。
データ入力工程であるステップS361において、入力部201は、学習データ保持部502が保持している学習データを取得し、対象検出部202へと送る。入力部201が対象検出部202に送る学習データには、学習用の入力データが含まれる。また、判定器の教師あり学習を行う場合、学習データは、学習用の入力データに示される判定対象に関する判定結果を示す、判定器用の教師データを含むことができる。一方、正常な判定対象を示す、学習用の入力データのみを、学習データとして用いてもよい。また、学習用の入力データが複数の判定対象を示しており、それぞれの判定対象についての判定結果が異なる場合、学習データは、検出器用の教師データのような各判定対象を特定する情報と、各判定対象のカテゴリを示す情報、を含んでいてもよい。
対象検出工程であるステップS362において、対象検出部202は、図10(A)に従って学習が行われた検出器を用いて、学習用の入力データから判定対象を検出する。そして、対象検出部202は、検出により得られた検出情報と、中間生成特徴と、を特徴量取得部203に送る。具体的な処理は、情報処理装置20と同様であってもよい。
特徴量取得工程であるステップS363において、特徴量取得部203は、対象検出部202から取得した検出情報及び中間生成特徴を用いて、判定器の学習に用いる学習特徴量を生成する。そして、特徴量取得部203は、得られた学習特徴量を判定器学習部501に送る。具体的な処理は、情報処理装置20が判定特徴量を生成する処理と同様であってもよい。
判定器学習工程であるステップS364において、判定器学習部501は、特徴量取得部203から取得した学習特徴量を用いて、判定器の学習を行う。そして、判定器学習部501は学習により得られた判定器を判定器保持部207に送り、判定器保持部207はこれを保持する。
学習方法は特に限定されない。判定器の種類に応じて、公知の教師あり学習又は教師なし学習を採用することができる。例えば判定器学習部501は、特徴量に対応する教師データを参照して、特徴量に対する判定結果を与える判定器の学習を行うことができる。判定器が正常/異常の2クラスの分類を行う識別器である場合、判定器学習部501は、クラス分類誤差Eを用いて算出された∂E/∂f3に基づいて、判定器の学習を行うことができる。
別の方法として、判定器学習部501は、学習用の入力データとして正常データを用いた学習により、正常モデルMを得ることもできる。この場合、判定器学習部501は、学習特徴量z2を用いて正常モデルを定義するためのパラメータを推定する。ここで、学習特徴量z2は、判定特徴量と同様に、検出結果yを変換して得られた特徴量y’と、中間生成特徴z1と、に基づいて得ることができる。例えば、判定器学習部501は、正常モデルを定義するパラメータとして、正常データの特徴量を表現する混合ガウスモデルの各分布の混合比、平均ベクトル、及び共分散行列を取得することができる。
さらに、特徴量取得部203が有する変換部6001及び特徴抽出部6002もニューラルネットワークで構成されていてもよい。この場合、判定器学習部501は、さらに∂E/∂f2を算出し、誤差逆伝搬法を用いて変換部6001及び特徴抽出部6002の学習を併せて行うこともできる。
上記の方法により、情報処理装置50は判定器の学習を行うことができる。
上記の例において、特徴量取得部203は、情報処理装置20が判定特徴量を生成する際と同様に、検出情報及び中間生成特徴に基づいて学習特徴量を生成した。すなわち、図7の例では、判定特徴量を生成するための中間生成特徴として、中間層1113~1119の中から予め選択されていた中間層1114の出力が用いられた。このように、判定特徴量を生成するために用いられる中間生成特徴の取得方法は予め設定されていた。この場合、特徴量取得部203は同様に、学習特徴量を生成するための中間生成特徴として、予め選択されている中間層1114の出力を用いることができる。
一方で判定器学習部501が判定器の学習のために用いる中間生成特徴は、複数の特徴量の中から設定可能であってもよい。すなわち、特徴量取得部203は、検出処理時に生成された中間データに含まれる複数の特徴量から、判定器の学習に用いる特徴量を選択することができる。例えば、複数の特徴量の中から設定に従って選択された中間生成特徴を用いて、学習特徴量を生成することができる。判定器学習部501は、こうして選択された特徴量を示す情報を、学習により得られた判定器に関連付けて判定器保持部207に保持させることができる。
以下では、このような変形例について説明する。本変形例において、情報処理装置50の対象検出部202は、情報処理装置20の対象検出部202より多くの特徴量情報を特徴量取得部203に送ってもよい。例えば、対象検出部202は、DNNの全ての中間層の出力結果を特徴量取得部203に送ることができる。別の例として、対象検出部202は、学習に用いないことが予め定められている中間層を除く、各中間層の出力結果を、特徴量取得部203に送ることができる。これらの場合、特徴量取得部203は、送られてきた中間層の出力結果のうち、一部の中間層の出力結果を、中間生成特徴として用いることができる。
特徴量取得部203が、判定器の学習のために用いる特徴量の設定を行う方法について、詳しく説明する。例えば、検出器として多層ニューラルネットワークを用いている場合、特徴量取得部203は中間生成特徴を取得する中間層を選択することができる。具体例としては、枝刈り(Pruning)の手法を用いることができる。枝刈り手法とは、ニューラルネットワークを用いた判定時に判定に寄与しないニューロンを消去することで、ニューラルネットワークを軽量化する手法である。例えば、枝刈りによって検出器として用いるニューラルネットワークのニューロンを順次消去した結果、所定割合以上のニューロンが消去された層は、中間生成特徴を取得する中間層から除外することができる。
別の具体例として、判定器学習部501は、検出処理時に生成された中間データに含まれる複数の特徴量から選択された特徴量を用いた学習により判定器を生成し、こうしてそれぞれ異なる特徴量に対応する複数の異なる判定器を生成することができる。そして、判定器学習部501は、異なる特徴量を用いて生成された異なる判定器を用いたカテゴリ判定のそれぞれの評価に基づいて、判定器の学習に用いる特徴量を選択することができる。
例えば特徴量取得部203は、特定の特徴量の組み合わせ(例えば中間層の出力結果の組み合わせ)を用いて学習特徴量を生成することができる。この場合、判定器学習部501は、特定の特徴量の組み合わせに基づく学習特徴量を用いて判定器の学習を行い、得られた判定器の評価を行うことができる。このような処理を、様々な特徴量の組み合わせについて行うことにより、特徴量取得部203は、より評価が高くなる特徴量の組み合わせを選択することができる。具体的には、特徴量取得部203は、検出器を用いた検出処理時に生成された、検出情報とは異なる情報の中から、中間生成特徴を選択することができる。ここで、評価は、カテゴリ判定の精度と、カテゴリ判定の処理コスト(例えば処理時間又は必要メモリ量)と、の少なくとも一方に基づいて行うことができる。また、特徴量取得部203は、検出器を用いた検出処理により得られた検出情報の中から、学習特徴量を生成するために用いる特徴量を選択してもよい。このように、特徴量取得部203は、中間生成特徴のような、判定器の学習を行うために用いられる特徴量の選択を設定することができる。
このように、特徴量取得部203が、判定器の学習を行うために用いられる特徴量の選択を設定した場合、判定器学習部501は、選択された特徴量を用いて生成された学習特徴量を用いて、判定器の学習を行うことができる。また、判定器学習部501は、学習により得られた判定器と関連付けて、選択された特徴量を示す設定情報(例えば中間生成特徴を取得する中間層を示す情報)を、判定器保持部207に送ってもよい。この場合、情報処理装置20の特徴量取得部203は、判定器に関連付けられた、選択された特徴量を示す設定情報に従って、カテゴリ判定に用いる特徴量(例えば、選択された中間層の出力結果のような中間生成特徴)を選択することができる。そして、情報処理装置20の特徴量取得部203は、例えば選択された特徴量を用いて判定特徴量を生成し、生成された判定特徴量と判定器を用いることにより、判定対象に関するカテゴリ判定を行うことができる。
このように、中間生成特徴として用いる特徴量を選択することで、判定対象を検出する際にメモリに保存する中間生成特徴のサイズを減らすことができるため、省メモリ化を実現できる。
なお、本実施形態では検出器の学習を行ってから、判定器の学習が行われた。しかしながら、図6に示すように検出器としてDNNを用い、中間生成特徴(中間層の出力結果)を用いて判定を行う場合、検出器と判定器の学習を同時に行うこともできる。例えば、判定器が正常と異常の2クラスを識別する識別器である場合、教師データに対する識別結果のロス値を、検出器の中間層に返すことにより、検出器の学習を行うことができる。さらに、特徴量取得部203の処理(例えば変換部6001及び特徴抽出部6002の処理)をニューラルネットワークを用いて定義することにより、対象検出部202、特徴量取得部203、及び判定部204の学習を同時に行うことができる。
また、本実施形態では、判定対象の検出時に得られた中間生成特徴と、検出情報と、を用いて判定が行われた。しかしなれら、特徴量取得部203は追加の特徴を取得してもよく、こうして取得された追加の特徴をさらに考慮して、判定対象に関するカテゴリ判定が行われてもよい。例えば、映像の各フレームに対する異常判定を行う場合、フレーム間の差分データを追加の特徴として用いることができる。
以上のように本実施形態によれば、情報処理装置20は、判定対象の検出結果に加えて、判定対象の検出時に得られた中間生成特徴を用いて、判定対象に関するカテゴリ判定を行う。このため、カテゴリ判定の精度を向上させることができる。また、情報処理装置50は、検出処理時に生成された中間データの中から、カテゴリ判定に用いる中間生成特徴を選択することにより、カテゴリ判定の精度をより向上させることができる。本実施形態の構成を用いることで、予め大量の画像を用いて検出器の学習を行い、カテゴリ判定を行う現場でカテゴリ判定に用いる特徴を選択することが可能となる。
[実施形態2]
実施形態2では、入力データをカメラなどのセンサが取得した際の生成時情報をさらに考慮して、カテゴリ判定が行われる。生成時情報とは、センサによる入力データの生成状況を示す情報のことであり、センサが入力データを生成するために用いられたパラメータ、又はセンサが入力データを生成した際の周囲の環境情報を含むことができる。例えば、対象画像を撮像するカメラの情報は、カメラの内部パラメータ若しくは外部パラメータ、又はシーン情報を含むことができる。ここで、シーン情報は、照明条件などの周囲の環境情報、又はレイアウトなどの周囲の空間情報を含むことができる。以下では、カメラが撮像画像を撮像した際に得られた生成時情報(以下、撮像時情報と呼ぶ)を考慮して判定特徴量を生成する場合について説明する。
本実施形態によれば、例えばカテゴリ判定を行う現場において撮像時情報を取得し、この現場において撮像時情報に応じてカテゴリ判定に用いる判定特徴量を生成することが可能になる。例えば、カテゴリ判定の対象となる入力データを生成したカメラと、学習用の入力データを生成したカメラのパラメータを取得することができる。そして、カテゴリ判定の対象となる入力データから得られた検出結果を、学習用の入力データを生成したカメラが同じシーンを撮影した場合に得られる検出結果へと変換することができる。また、別の例として、学習時に得られた学習特徴量を入力及び出力とするAuto-Encoder(自己符号化器)の学習を行い、判定時に得られた判定特徴量を学習により得られたAuto-Eencoderを用いて一度変換することができる。これらの方法では、判定特徴量に対して学習特徴量に近づける変換を行うことができるため、学習により得られた判定器を用いたカテゴリ判定精度を向上させることができる。
実施形態2に係る情報処理装置20の構成及び処理の例について、実施形態1とは異なる部分を説明する。図3Bは、本実施形態に係る情報処理装置20のCPU401が実行する処理を、それぞれ機能ブロックとして示す。本実施形態に係る情報処理装置20は、実施形態1とほぼ同様の構成を有するが、さらに情報取得部210を有している。
実施形態2に係る、カテゴリ判定を行う情報処理方法は、図4に示すフローチャートに沿って行うことができる。ステップS301において、入力部201は、実施形態1と同様に対象画像100を取得し、さらに情報取得部210は撮像部200によって得られた撮像時情報を取得し、特徴量取得部203に送信する。ステップS302は実施形態1と同様に行うことができる。
ステップS303において特徴量取得部203は、対象情報、中間生成特徴、及び撮像時情報を用いて判定特徴量を生成する。例えば、特徴量取得部203は、撮像時情報を用いて対象情報又は中間生成特徴の変換を行うことができる。図11は、特徴量取得部203の構成及び処理の例を示す。特徴量取得部203は、変換部6004,6005、及び実施形態1と同様の特徴抽出部6002を有している。変換部6004及び変換部6005は、対象画像100についての撮像時情報に基づいて特徴量を変換することができる。また、変換部6004及び変換部6005は、予め保存されている、学習用の入力データを生成したカメラについての撮像時情報に基づいて特徴を変換することができる。
例えば変換部6003は、対象画像を撮像した撮像部200の内部パラメータ及び外部パラメータを利用して、検出結果を変換することができる。また、変換部6004は、特徴を変換するための処理f4を別途定義することができる。例えば、変換部6004が行う処理f4として、Auto-Encoder(自己符号化器)におけるEncoderを利用することができる。具体例としては、情報処理装置20が用いる検出器及び判定器の学習を行う際には、さらに特徴変換器を用意することができる。例えば、判定器の学習に用いられた中間生成特徴を入力と出力するAuto-Encoderを学習により生成し、こうして得られたEncoderを特徴変換器として用いることができる。この場合、変換部6004は、こうして得られた特徴変換器を用いて、ステップS302において得られた中間生成特徴を変換することができる。
ステップS304及びS305における処理は実施形態1と同様であり、説明を省略する。以上の本実施形態によれば、カテゴリ判定に用いられる特徴量を撮像時情報などの生成時情報を用いて変換することで、判定対象となる入力データを取得したセンサと、学習用の入力データを取得したセンサとの差異を低減できる。このように、生成時情報を考慮してカテゴリ判定を行うことにより、カテゴリ判定精度の高い判定器を生成することができる。
本実施形態では、得られた特徴量に対して、生成時情報を考慮した変換処理が行われた。別の実施形態においては、生成時情報を用いて、入力データ(例えば対象画像)に対する変換処理を行ってもよい。
[実施形態3]
実施形態3においては、検出器は判定対象を構成する部位である、パーツ、又はパーツとパーツとの接続部分である関節点を検出する。そして、このような検出結果に基づいて判定対象が検出される。この場合、判定対象の検出結果として得られた検出情報に加えて、パーツ若しくは関節点のような部位の検出結果を中間生成特徴として用いて、判定対象に関するカテゴリ判定を行うことができる。以下では、実施形態1と同様に、対象画像中の判定対象を検出して異常判定を行う例について説明する。
実施形態3に係る情報処理装置20の構成及び処理の例について、実施形態1とは異なる部分を説明する。図3Cは、本実施形態に係る情報処理装置20のCPU401が実行する処理を、それぞれ機能ブロックとして示す。本実施形態に係る情報処理装置20は、実施形態1とほぼ同様の構成を有するが、さらに部位検出部208を有しており、また検出器保持部206は判定対象を構成する部位を検出する検出器を保持している。
実施形態3に係る、カテゴリ判定を行う情報処理方法は、図4に示すフローチャートに沿って行うことができる。ステップS301は実施形態1と同様に行うことができる。ステップS302において、部位検出部208は、検出器保持部206に保持されている検出器を用いて、対象画像100から、判定対象を構成する部位を検出する。例えば、部位検出部208は、図12(A)に示される関節点601,602のような予め設定された関節点、又は図12(B)に示されるパーツ604のような予め定められたパーツを検出することができる。パーツは、例えば人間の腕、足、又は胴体などであってもよい。関節点の数又はパーツの定義は、学習時に設定してもよいし、判定精度又は処理コストに応じて設定してもよい。このような設定方法及び検出器の学習方法については後述する。部位検出部208は、関節点又はパーツなどの部位検出結果を、対象検出部202及び特徴量取得部203に送信する。また、部位検出部208は、部位検出処理時に生成された中間データを、特徴量取得部203に送信する。
関節点を検出する手法としては、非特許文献3("Stacked Hourglass Networks for Human Pose Estimation", Alejandro Newell, Kaiyu Yang, Jia Deng, arxiv 2016.)に開示されているような手法を用いることができる。例えば、関節点ごとにヒートマップ605を推定し、ヒートマップ上でピーク検出又は閾値処理を行うことで、関節点の位置606及びこの位置に対応するスコアを得ることができる。また、パーツを検出する手法としては、非特許文献4("A Discriminatively Trained, Multiscale, Deformable Part Model", Pedro Felzenswalb, David McAllester, Deva Ramanan, IEEE Conference on Computer Vision Pattern Recognition 2008.")に開示されているような手法を用いることができる。
ステップS302において、さらに対象検出部202は、部位検出部208によって得られた部位検出結果に基づいて判定対象を検出する。例えば対象検出部202は、図12(A)に示されるように、各関節点の検出結果を用いて、人物を構成する各関節点を選択し、選択された関節点に基づいて判定対象を検出することができる。また、対象検出部202は、図12(B)に示されるように、パーツの検出結果を用いて判定対象を検出することができる。対象検出部202は、このように検出された判定対象についての検出情報として、検出結果である人体領域603の位置及び大きさを示す情報を、特徴量取得部203に送信する。
ステップS303において特徴量取得部203は、ステップS302で得られた判定対象の検出情報と、中間生成特徴と、を用いて、判定に用いる判定特徴量を生成する。本実施形態において中間生成特徴は、関節点又はパーツなどの部位の検出結果を含んでいる。中間生成特徴は、部位検出部208による部位検出時に生成された中間データを含んでいてもよい。これらの情報も、やはり検出情報とは異なる中間データであるといえる。
図13は、図6と同様に各処理部間の入力/出力関係の例を表す。特徴量取得部203は、変換部6007,6008及び特徴抽出部6009を有している。先に説明した部位検出部208が行う処理は、処理f5として示されており、式(11)に示されるように、入力画像xに対するこの処理により部位検出結果{y}が得られる。この部位検出結果は、検出された部位のそれぞれについて得られ、複数の部位について部位検出結果が得られることもある。
{y}=f5(x) ……(11)
変換部6007の処理は、実施形態1と同様である。すなわち、変換部6007は、対象検出部202が部位検出結果{y}に基づいて生成した判定対象の検出結果yに対する変換処理を行い、変換後の特徴量y’を得ることができる。また、変換部6008は、部位検出結果{y}に対する変換処理を行うことにより、変換後の特徴量{y}’を得ることができる。変換部6008が行う処理も、変換部6007が行う処理と同様に定義することができる。
特徴抽出部6009の処理は処理f8として表されており、式(12)に示されるように、変換後の特徴量y’及び{y}’、並びに実施形態1と同様の中間生成特徴z1に基づいて、判定特徴量z2が得られる。こうして得られた判定特徴量z2は、判定部204に送信される。
z2=f8({y}’+z1+y’) ……(12)
以下、判定特徴量を生成する処理(f8)の一例をさらに具体的に説明する。図14は、各部位(この例では関節点601)の検出結果及び判定対象の検出結果である人体領域603を示す。部位の検出結果は座標(Xp,Yp)で表すことができ、ここでpは関節点のインデックスを表す。例えば、人体を17点の関節点で定義する場合、pは1~17の値を有する。また、判定対象の検出結果である人体領域603は、人体を囲むバウンディングボックスのサイズを(Wh,Hh)及び中心座標(Xh,Yh)で表すことができる。この場合、判定対象の検出結果を用いて、各部位についての検出結果に対して式(13)(14)に示す変換処理を行うことができる。このような変換後の特徴量を用い、必要に応じて実施形態1と同様の手法も用いることで、判定特徴量z2を得ることができる。
Xp’=(Xp-Xh)/Wh ……(13)
Yp’=(Yp-Yh)/Hh ……(14)
ステップS304及びS305の処理は実施形態1と同様であり、説明を省略する。このような方法により、情報処理装置20は検出された判定対象に関するカテゴリ判定を行うことができる。
次に、本実施形態に係る情報処理装置20において利用される検出器及び判定器の学習を行う、情報処理装置50の構成及び処理の例について説明する。本実施形態に係る情報処理装置50は、実施形態1とほぼ同様の構成を有するが、さらに情報処理装置20と同様の部位検出部208を有している。以下、検出器の学習処理について図10(A)のフローチャートに沿って説明する。
ステップS351で入力部201は、実施形態1と同様に、学習データ保持部502に保持されている学習データを検出器学習部503に送信する。学習データに含まれる教師データは、実施形態1では判定対象の位置及びサイズ情報を含むことができるが、本実施形態では各部位の定義及びその位置を示す情報を含むことができる。例えば、教師データは、部位として関節点が検出される場合は関節点の定義及びその位置を示すことができ、部位としてパーツが検出される場合は各パーツの定義並びにその位置及びサイズを示すことができる。
ステップS352で検出器学習部503は、ステップS351で送信された学習データを用いて検出器の学習を行う。ここで、学習により得られる検出器は、部位を検出するための部位検出器である。具体的な学習方法としては、例えば非特許文献3に開示されているような手法が挙げられる。具体例としては、教師データとして関節点の位置にピークを持つヒートマップを与えることで、関節点を検出する検出器の学習を行うことができる。また、パーツごとの画像特徴量を用いることで、パーツを識別する検出器の学習を行うことができる。検出器学習部503は、得られた検出器を検出器保持部206に送信する。このような方法により、検出器の学習を行うことができる。
次に、判定器の学習処理について図10(B)のフローチャートに沿って説明する。ステップS361の処理は実施形態1と同様である。ステップS362の処理はステップS302と同様であり、学習により得られた検出器を用いて部位の検出結果が得られ、さらに判定対象の検出結果が得られる。ステップS363の処理もステップS303と同様であり、判定対象の検出結果及び中間生成特徴を用いて学習特徴量が生成される。ステップS364の処理は実施形態1と同様であり、学習特徴量に基づいて判定器の学習が行われる。なお、実施形態1と同様に、特徴量取得部203は判定器の学習に用いる特徴量を選択してもよい。
以上のように、本実施形態によれば、対象の検出情報に加えて、部位の検出情報が中間生成特徴としてカテゴリ判定のために用いられる。このため、カテゴリ判定の精度を向上させることができる。
[実施形態4]
実施形態4においては、判定器を用いたカテゴリ判定における処理パラメータが複数のパラメータから選択される。選択された処理パラメータは、学習により得られた判定器に関連付けて判定器保持部207に保持される。本実施形態においては、実施形態1~3に係る学習処理により得られた判定器を、評価データを用いて評価することができる。そして、評価結果に基づいて、カテゴリ判定処理において用いられる処理パラメータが設定される。カテゴリ判定の評価は、カテゴリ判定の精度と、カテゴリ判定の処理コストと、の少なくとも一方に基づいて行うことができる。例えば、評価データに対するカテゴリ判定精度、及びカテゴリ判定に要する処理量を設定し、これらを満たすように対象検出処理又は判定処理で用いられる処理パラメータを設定することができる。処理パラメータの例については後述する。本実施形態によれば、精度の高い又は処理が高速な判定器を得ることができる。以下でも、入力データから検出された判定対象に対して異常判定を行う例について説明する。
ここで、カテゴリ判定処理には、判定器を用いた判定処理に加えて、判定処理のために行われる処理、例えば判定対象を検出する処理及び判定特徴量を生成する処理が含まれる。また、評価データは、例えば入力データと、入力データに示される判定対象の情報及びそのカテゴリを示す情報を含むことができる。評価データとしては、実施形態1~3で用いられる、判定器の学習用の学習データと同様の構成を有する、学習データとは異なるデータを用いることができる。
実施形態4におけるカテゴリ判定方法は実施形態1~3と同様であるため、説明を省略する。以下では、判定器の学習を行う情報処理装置50の構成及び処理の例を説明する。図9Bは、本実施形態に係る情報処理装置50のCPU401が実行する処理を、それぞれ機能ブロックとして示す。本実施形態に係る情報処理装置50は、実施形態1とほぼ同様の構成を有するが、評価データ保持部504、評価部505、及びパラメータ設定部506を有する。なお、評価データ保持部504は、例えばHD404であってもよいし、情報処理装置20と接続された不揮発性の記憶装置であってもよい。
検出器の学習は、実施形態1~3と同様に図10(A)のフローチャートに従って行うことができる。以下では、判定器の学習について、図10(B)のフローチャートに従って説明する。ステップS361~S364は、実施形態1~3と同様であるため説明を省略する。実施形態4においては、ステップS364の後に追加の評価工程及び設定工程が行われる。評価工程において、評価部505は、ステップS364で得られた学習後の判定器の評価を行うことができる。例えば評価部505は、判定器の精度と処理コストの少なくとも一方を評価することができる。また、評価部505は、図10(A)のフローチャートに従って得られた、又は予め得られている、検出器の評価を行うこともできる。以下では、評価部505が、判定器及び検出器の精度及び処理コストを評価する例について説明する。
評価工程に続く設定工程において、パラメータ設定部506は、評価工程における評価に基づいて、カテゴリ判定処理において用いられる処理パラメータを設定する。パラメータ設定部506は、例えば、対象検出部202、特徴量取得部203、又は判定部204などが用いる処理パラメータを設定することができる。パラメータの例としては、入力データのサイズ、対象検出時に用いられる閾値、判定に用いられる中間生成特徴の種類、判定時に用いられる閾値、などが挙げられる。
一例として、カテゴリ判定処理においては、一定サイズの対象画像を対象とすることにより、判定対象の検出及びカテゴリ判定の精度を高めることができる。そこで、図15に示すように、対象画像100内に、カテゴリ判定の対象として複数の処理範囲701,702,703を設定する場合、それぞれの処理範囲内にある処理画像を必要に応じてクロップ及びリサイズすることができる。具体的には、処理画像のサイズを一定にするために、処理範囲701内の画像に対しては縮小処理を、処理範囲703内の画像に対しては拡大処理を行うことで、これらの画像を処理範囲702内の画像サイズに近づけることができる。このようなサイズ調整後の処理画像に対して、判定対象の検出及びカテゴリ判定を行うことができる。このような事例において、パラメータ設定部506は、拡大率又は縮小率を、評価部505による評価結果(例えば判定対象の検出及びカテゴリ判定の、精度及び処理時間)に応じて設定することができる。
別の例として、パラメータ設定部506は、実施形態3のように部位(例えば関節点)の検出結果に基づいて判定対象を検出する構成において、図16に示すように評価結果に応じて検出する部位の数を設定してもよい。このような構成によれば、カテゴリ判定の精度を所定のレベルに保ちつつ、検出する部位数を減らすことで処理時間及び処理時のメモリ消費量を抑えることができる。
さらなる例として、検出器保持部206は複数の検出器を保持することができ、判定器保持部207もそれぞれの検出器に対応する複数の判定器を保持することができる。このような構成において、パラメータ設定部506は、評価結果に応じて適した検出器と判定器の組み合わせを、カテゴリ判定処理において用いられる検出器及び判定器として設定してもよい。
このように本実施形態に係る情報処理装置50は、学習により得られた判定器などを評価し、評価結果に基づいてカテゴリ判定処理において用いられるパラメータを設定することができる。これらの処理により、カテゴリ判定の精度を高めることができる。なお、パラメータ設定部は、さらに対象画像100を撮像する撮像部200の外部パラメータ、内部パラメータ、及び判定対象となるシーンの空間的な情報などの、上述の生成時情報にさらに基づいて、パラメータを設定してもよい。
[実施形態5]
実施形態5に係る情報処理装置50は、ユーザのフィードバックに基づいて、判定対象に関するカテゴリ判定を行うカテゴリ判定処理を高精度化する。実施形態5において、情報処理装置50に対しては、複数のデータを含むシーケンスデータである評価データが入力される。シーケンスデータは、連続して入力される例えば経時的な映像データ又は音声データであり、1つのデータ単位(例えばフレーム又は音声区間)は、前後のデータ単位と関連する。言い換えれば、1つのデータ単位に対して異常と判定される場合、前後のデータ単位についても異常と判定される可能性が高い。
本実施形態において情報処理装置50は、シーケンスデータを構成するデータ単位のそれぞれに対して順次カテゴリ判定処理を行う。そして、カテゴリ判定処理において得られた情報が変化した場合に、又は閾値より大きく変化した場合に、情報処理装置50はユーザのフィードバックを求める。このように、カテゴリ判定処理において得られる情報が変化する場合、例えば判定結果が異常から正常に変化する際には、データ単位に特徴的な変化が起こっている可能性が高い。したがって、カテゴリ判定処理において得られる情報が正しいか否かを示すユーザフィードバックに基づいて、カテゴリ判定処理を調整することにより、判定精度を高精度化することができる。
すなわち、本実施形態に係る情報処理装置50は、シーケンスデータである評価データを構成する複数のデータ単位から評価対象データを選択する。そして、情報処理装置50は、選択された評価対象データについて、カテゴリ判定処理において得られた情報をユーザに提示し、提示された情報に対するユーザのフィードバックを求める。
このような実施形態は、実施形態1~4と組み合わせて使用することができる。例えば、情報処理装置50は、評価対象データであるフレーム画像に対するカテゴリ判定処理において得られた、判定対象の検出結果及びカテゴリ判定結果が正しいか否かを示すユーザのフィードバックを得ることができる。このようなフィードバックと、評価対象データとのセットは、実施形態1~4で説明した学習データ又は評価データとして用いることができる。例えば情報処理装置50は、ユーザのフィードバックに基づいて、実施形態4と同様にカテゴリ判定処理において用いられるパラメータを調整することができる。また、また、情報処理装置50は、ユーザのフィードバックに基づいて、検出器又は判定器の再学習を行うことかできる。
このような実施形態によれば、ユーザのフィードバックに基づいて、カテゴリ判定処理を高精度化することができる。また、このような構成によれば、例えば撮像部200のようなセンサの実際の設置場所において得られた評価データに基づいて、カテゴリ判定処理を高精度化することもできる。すなわち、本実施形態によれば、実施形態1~4に係るカテゴリ判定を行う現場において、使用状況に応じてカテゴリ判定処理を調整することが可能となる。
なお、カテゴリ判定処理において得られた情報は、カテゴリ判定処理の結果には限られず、カテゴリ判定処理において行われる各処理の結果得られる全てのデータを含むことができる。例えば、実施形態1の構成において、カテゴリ判定処理において得られた情報は、評価対象データに対する判定対象の検出処理で得られた判定対象の位置及びサイズ、並びに判定対象のカテゴリ判定において得られたスコアを含むことができる。また、カテゴリ判定処理において得られた情報は、例えば中間生成特徴のような、処理中に取得された特徴量を含んでいてもよい。
以下、実施形態5に係る情報処理装置50の構成及び処理の例を説明する。図9Cは、本実施形態に係る情報処理装置50のCPU401が実行する処理を、それぞれ機能ブロックとして示す。本実施形態に係る情報処理装置50は、実施形態4とほぼ同様の構成を有するが、評価対象選択部507及び再学習設定部508を有している。以下でも、入力データから検出された判定対象に対して異常判定を行う例について説明する。
本実施形態に係る処理は、実施形態1~4における判定器の学習方法を示す図10(C)のフローチャートに沿って行うことができる。なお、以下では、情報処理装置50が図10(A)に従う処理を行うなどの結果、検出器が既に得られている場合の処理について説明する。しかしながら、同様の手法により評価データを用いた学習により検出器を生成してもよい。また、以下では判定器が既に得られており、評価データを用いて判定器の再学習を行う場合について説明するが、同様の手法により評価データを用いた学習により判定器を生成してもよい。
ステップS361において、特徴量取得部203は、評価データ保持部504が保持しているシーケンスデータである評価データ(例えば映像データ)から、1つのデータ項目(例えば1つのフレーム)を入力データとして取得する。特徴量取得部203は、各データ項目をシーケンス(例えば時系列)に沿って順次取得することができる。以下の処理は、特徴量取得部203が1つの入力データを取得するごとに繰り返すことができる。
ステップS362~S363の処理は実施形態1と同様である。すなわち、検出器を用いて入力データから判定対象が検出される。そして、判定対象の検出結果及び中間生成特徴を用いて判定特徴量が生成される。
ステップS371においては、評価対象選択部507が、実施形態1のステップS304における判定部204と同様の処理を行う。すなわち、評価対象選択部507は、予め得られている、判定器保持部207に保持されている判定器と、検出情報と、中間生成特徴とを用いて、判定対象に関するカテゴリ判定を行う。本実施形態において評価対象選択部507は、ステップS363で得られた判定特徴量を用いて、入力データから検出された判定対象に関するカテゴリ判定を行う。
ステップS372において評価対象選択部507は、現在処理中の入力データを、ユーザによる評価判定が行われる評価対象として選択するか否かを判定する。評価対象選択部507は、シーケンスデータに含まれる複数のデータのそれぞれに対して順次処理を行っている間に、データから判定対象を検出してカテゴリ判定を行う処理において得られた情報の変化を検出する。例えば、評価対象選択部507は、現在処理中の入力データに対するカテゴリ判定処理において得られた情報と、他の入力データ(例えば直前に処理された入力データ)に対するカテゴリ判定処理において得られた情報と、の差異を判定することができる。差異を判定する項目は特に限定されず、判定対象の検出結果、判定結果、若しくは中間生成特徴の少なくとも一部、又はこれらの組み合わせであってもよい。判定された差異が、予め設定された閾値を超える場合、評価対象選択部507は現在処理中の入力データをユーザに提示するデータとして選択することができる。
現在処理中の入力データを評価対象として選択しない場合、評価対象選択部507はユーザからのフィードバックを取得せず、ステップS371における現在処理中の入力データを用いた再学習も行われない。一方、評価対象選択部507は、現在処理中の入力データを評価対象として選択する場合、処理は再学習設定工程に進む。
ステップS373において、再学習設定部508は、変化が検出されたデータについての判定対象の情報又はカテゴリ判定の結果に対するユーザからのフィードバックを取得する。例えば、再学習設定部508は、現在処理中の入力データと、この入力データに対する判定対象の検出結果又はカテゴリ判定結果を、例えば表示部406を介して、ユーザに提示することができる。そして、再学習設定部508は、判定対象の検出結果又はカテゴリ判定結果に対するユーザのフィードバックを、例えば操作部405を介して、取得する。
図17は、再学習設定工程における、ユーザからのフィードバックを取得するためのUIの例を示す。また、図18は、再学習設定部508がユーザからのフィードバックを取得する処理の一例を示すフローチャートである。ステップS1401において再学習設定部508は、図17(A)に示すように、入力データである対象画像1300に、判定対象の検出結果1301を示す情報を重畳して、ユーザに提示する。また、再学習設定部508は、検出結果1301に対するユーザ判定を行うか否かを問い合わせるプロンプト1302をユーザに提示し、ユーザからの入力を取得する。ユーザが「はい」を選んだ場合、処理はステップS1402に進む。ユーザが「いいえ」を選んだ場合、検出結果1301は評価対象から除外され、ステップS371における現在処理中の入力データを用いた再学習も行われない。
ステップS1402において再学習設定部508はユーザに提示した検出結果1301が正しいかどうかを問い合わせるプロンプト1303をユーザに提示する。検出結果1301は実際の検出結果であるため、図17(B)に示すように、検出結果1301が示す判定対象の領域が、実際の判定対象(人体)の領域とはずれている場合がある。また、検出結果1301が、判定対象ではない領域を指している可能性もある。このような場合、ユーザは「いいえ」を選択することができる。この場合、再学習設定部508は、ユーザから判定対象の正しい位置及び大きさを示す情報を取得することができる。こうして取得された情報は、入力データに対する教師データとして用いることができる。すなわち、検出器学習部503は、これらの入力データ及び教師データを含む学習データを用いて、続くステップS364において検出器の再学習を行うことができる。
ステップS1402においてユーザが「はい」を選択した場合、処理はステップS1403に進む。ステップS1403において再学習設定部508は、入力データである対象画像1300に、カテゴリ判定結果を示す情報を重畳して、ユーザに提示する。また、再学習設定部508は、ユーザに提示したカテゴリ判定結果が正しいかどうかを問い合わせるプロンプト1304をユーザに提示する。ユーザが「はい」を選択した場合、ステップS364における現在処理中の入力データを用いた再学習は行われない。一方で、ユーザが「いいえ」を選択した場合、再学習設定部508は、ユーザから判定対象の正しいカテゴリを示す情報を取得することができる。こうして取得された情報は、入力データに対する教師データとして用いることができる。すなわち、判定器学習部501は、これらの入力データ及び教師データを含む学習データを用いて、続くステップS364において判定器の再学習を行うことができる。
以上のステップS362からステップS373までは、特徴量取得部203が1つの入力データを取得するごとに繰り返すことができる。その後、評価データ全体についての処理が終わった後で、ステップS364において、判定器学習部501又は検出器学習部503は、変化が検出されたデータ及びフィードバックを用いて、判定器の学習を再度行うことができる。本実施形態において判定器学習部501及び検出器学習部503は、再学習設定工程で新たに得られた学習データを用いて、判定器及び検出器の再学習を行うことができる。例えば、判定器学習部501及び検出器学習部503は、新たに得られた学習データを既存の学習データに追加し、双方のデータを用いて学習を行うことで、再学習後の判定器及び検出器を得ることができる。判定器学習部501及び検出器学習部503は、全ての評価対象を用いて再学習を行ってもよいし、何らかの方法でサンプリングされた一部の評価対象を用いて再学習を行ってもよい。本実施形態においては、ユーザからのフィードバックに基づいて入力データに対する教師データを取得することができるため、予め評価データに対する教師データを生成する必要はない。
以上のように本実施形態によれば、情報処理装置50はシーケンスデータに対するカテゴリ判定処理を行い、判定処理において得られたデータに基づいて、ユーザによる評価の対象となるデータをシーケンスデータから選択する。そして、ユーザからの評価を示すフィードバックに基づいて、カテゴリ判定処理の調整を行う。このような実施形態によれば、ユーザに対する負荷を抑えながら、カテゴリ判定処理の精度を向上させることができる。
[実施形態6]
実施形態6においては、判定器を用いたカテゴリ判定のために用いられる判定対象の検出方法が複数の検出方法から選択される。本実施形態では、複数の検出方法から選択された検出方法を用いて、入力データから判定対象が検出され、検出された判定対象に対するカテゴリ判定が行われる。本実施形態の構成によれば、判定対象ごとに異なる検出方法を用いることができるため、カテゴリ判定の精度を向上させることができる。例えば、予め複数の検出器を用意しておき、判定対象に応じて検出のために用いる検出器を選択することができる。
入力データが画像データである場合、判定対象を検出しようとする画像中の位置に応じて、検出方法を選択してもよい。例えば、奥行き方向に長い空間である廊下などを上部から撮像している場合、奥側では細かい人物の動作又は姿勢を認識することは困難になることが多い。このような例において、奥側に相当する領域では実施形態1のように人体のような判定対象を検出する検出器を用い、手前側に相当する領域では実施形態3のように判定対象の部位を検出する検出器を用い、この検出結果に従って判定対象を検出することができる。このような構成によれば、判定対象の検出精度が向上し、奥側に相当する領域でもカテゴリ判定精度が低下しない、ロバスト性の高いカテゴリ判定を行うことができる。
以下、実施形態6に係る情報処理装置20の構成及び処理の例を説明する。図3Dは、本実施形態に係る情報処理装置20のCPU401が実行する処理を、それぞれ機能ブロックとして示す。本実施形態に係る情報処理装置20は、実施形態1とほぼ同様の構成を有するが、検出器選択部209をさらに有している。以下でも、入力データから検出された判定対象に対して異常判定を行う例について説明する。
本実施形態に係るカテゴリ判定処理は、図4のフローチャートに沿って行うことができる。ステップS301の処理は、実施形態1~4と同様であり、説明を省略する。ステップS302において検出器選択部209は、ステップS301で取得された入力データに基づいて検出器を選択する。例えば検出器選択部209は、データ上の位置(例えば画像上の位置)に応じて、予め定められた検出器を選択することができる。別の例として、検出器選択部209は、入力データの生成時情報、例えばカメラの設置位置、時刻、環境情報、又は撮像パラメータのような撮像時情報に応じて、検出器を選択してもよい。この場合、ステップS301で入力部201はこのような生成時情報をさらに取得してもよい。
そして、対象検出部202は、検出器選択部209によって選択された検出器を用いて、入力データから判定対象を検出する。別の例として、複数の検出器のそれぞれを用いて入力データから判定対象を検出した後で、例えば画像上での位置に応じて判定対象の検出結果が選択されてもよい。具体的な処理方法は、実施形態1~4と同様である。ステップS303~S305の処理も、実施形態1~4と同様に行うことができる。一方、ステップS303において、判定部204は、検出器選択部209によって選択された検出器に対応する判定器を用いてもよい。このようにして、入力データに対するカテゴリ判定処理を行うことができる。
次に、本実施形態に係る情報処理装置20が用いる検出器及び判定器を学習により生成する情報処理装置50の構成及び処理の例を説明する。本実施形態に係る情報処理装置50は、さらに検出器の選択方法を設定することができる。図9Dは、本実施形態に係る情報処理装置50のCPU401が実行する処理を、それぞれ機能ブロックとして示す。本実施形態に係る情報処理装置50は、実施形態2とほぼ同様の構成を有するが、パラメータ設定部506の代わりに検出器選択部211を有している。
本実施形態に係る検出器は、実施形態1~4と同様の学習処理により得ることができるが、本実施形態においては複数の検出器が用意される。例えば、各検出器を、それぞれ異なる学習データを用いた学習により生成することができる。別の例として、各検出器は、それぞれ判定対象の異なる部位を検出する検出器であってもよい。また、本実施形態に係る判定器も、実施形態1~4と同様の学習処理により得ることができるが、本実施形態においては各検出器に対応する判定器を用意することができる。例えば、情報処理装置50が所持している複数の検出器の中から検出器を選択して、判定器の学習を行うことができる。
また、情報処理装置50は、判定器を用いたカテゴリ判定のために用いられる判定対象の検出方法を複数の検出方法から選択し、選択された検出方法を示す情報を学習により得られた判定器に関連付けて検出器保持部206に保持することができる。このように、情報処理装置50は、検出器選択部209による検出器の選択方法を、予め設定することができる。例えば、評価部505は、実施形態4と同様に、評価データ保持部504に保持されている評価データを用いて、複数の検出器のそれぞれ及び対応する判定器の評価を行うことができる。そして、検出器選択部211は、評価部505による評価結果に基づいて、検出器選択部209による検出器の選択方法を設定することができる。カテゴリ判定の評価は、実施形態4と同様に行うことができる。
例えば、検出器選択部211は、評価データの生成時情報(例えば、評価データに含まれる入力データを取得したカメラの撮像時情報)に、検出器を対応付けることができる。具体例として検出器選択部211は、評価データを用いた評価において最も高い評価が得られた検出器を、この評価データの生成時情報に対応付けることができる。最も高い評価が得られた検出器とは、例えば、最も判定精度が高い検出器、又は判定精度と処理速度に応じて定められたスコアが最も高い検出器であってもよい。別の例として、検出器選択部211は、判定対象が検出された画像上の位置と、この判定対象に関するカテゴリ判定において最も高い評価が得られた検出器と、を対応付けてもよい。このような対応付けに従って、検出器選択部211は、生成時情報又は判定対象を検出しようとする対象領域の位置に対応する検出器を選択することができる。検出器選択部211は、このような対応付け情報を、例えば検出器保持部206に格納することができる。
本実施形態によれば、情報処理装置20は複数の検出器からカテゴリ判定精度が高くなる検出器を選択することができる。また、情報処理装置50は学習により得られた複数の検出器及び判定器を評価し、この評価結果に基づいて、情報処理装置20による検出器の選択方法を設定することができる。このような方法により、識別精度の高いカテゴリ判定を実現することができる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために請求項を添付する。