(57)【要約】【課題】事前学習コストを削減し、検出演算コストを抑制し、検出精度を向上することを目的とする。【解決手段】画像処理装置であって、画像を入力する入力手段と、画像の部分領域のカテゴリ判定を行う第１の判定手段と、部分領域の画像を入力し、部分領域のカテゴリを判定する第２の判定手段と、を有し、第２の判定手段では、第１の判定手段で利用された情報の少なくとも一部を再利用する。【選択図】図２
2020035098.tif 000002
【特許請求の範囲】
【請求項１】
画像を入力する入力手段と、
前記画像の部分領域のカテゴリ判定を行う第１の判定手段と、
前記部分領域の画像を入力し、前記部分領域のカテゴリを判定する第２の判定手段と、
を有し、
前記第２の判定手段では、前記第１の判定手段で利用された情報の少なくとも一部を再利用する画像処理装置。
【請求項２】
前記第１の判定手段は、画像特徴を抽出する抽出手段を含み、
前記第１の判定手段で利用された情報とは、前記抽出手段での演算に利用される演算パラメータである請求項１記載の画像処理装置。
【請求項３】
前記第１の判定手段は、画像特徴を抽出する抽出手段を含み、
前記第１の判定手段で利用された情報とは、前記抽出手段で抽出された画像特徴である請求項１記載の画像処理装置。
【請求項４】
前記第１の判定手段は、画像特徴を抽出する抽出手段を含み、
前記抽出手段は、ニューラルネットワークの一部で構成され、前記抽出手段は、前記ニューラルネットワークの複数の層から階層的な特徴ベクトルを画像特徴として抽出する請求項１記載の画像処理装置。
【請求項５】
前記第２の判定手段は、前記ニューラルネットワークの学習時に用いられた識別器を用いて前記部分領域のカテゴリを判定する請求項４記載の画像処理装置。
【請求項６】
前記第１の判定手段の判定結果と前記第２の判定手段の判定結果とを使って後処理を行う後処理手段を更に有する請求項１乃至５何れか１項記載の画像処理装置。
【請求項７】
前記後処理手段は、前記第１の判定手段の判定結果と前記第２の判定手段の判定結果との差分情報を求める請求項６記載の画像処理装置。
【請求項８】
前記後処理手段は、前記第１の判定手段の判定結果と前記第２の判定手段の判定結果とから前記部分領域のカテゴリの最終判定を行う請求項６記載の画像処理装置。
【請求項９】
前記後処理手段は、前記第１の判定手段の判定結果と前記第２の判定手段の判定結果とに基づいて前記第１の判定手段、又は前記第２の判定手段での追加学習を行うための学習画像を生成する請求項６記載の画像処理装置。
【請求項１０】
前記第１の判定手段の判定結果と、前記第２の判定手段の判定結果と、前記後処理手段での後処理結果と、のうち少なくとも１つを出力する出力手段を更に有する請求項６乃至９何れか１項記載の画像処理装置。
【請求項１１】
画像処理装置が実行する情報処理方法であって、
画像を入力する入力ステップと、
前記画像の部分領域のカテゴリ判定を行う第１の判定ステップと、
前記部分領域の画像を入力し、前記部分領域のカテゴリを判定する第２の判定ステップと、
を含み、
前記第２の判定ステップでは、前記第１の判定ステップで利用された情報の少なくとも一部を再利用する情報処理方法。
【請求項１２】
コンピュータを、請求項１乃至１０何れか１項記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
画像・音声等のデータの内容を学習し認識を行う技術が存在する。ある対象を認識する処理をここでは認識タスクと呼ぶ。例えば、画像中から人間の顔の領域を検出する顔認識タスク、画像中にある物体（被写体）カテゴリ（猫・車・建物・等）を判別する物体カテゴリ認識タスク、シーンのカテゴリ（都市・山間・海岸・等）を判別するシーン種別認識タスク等、多様な認識タスクがある。
認識タスクを学習・実行する技術としては、ニューラルネットワーク（ＮＮ）の技術が知られており、深い（層の数が多い）多層ニューラルネットワークはＤｅｅｐ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ（ＤＮＮ）と呼ばれる。また、畳み込み層を有するニューラルネットワークはＣｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ（ＣＮＮ）と呼ばれる。特に、非特許文献１に開示されているような深い畳み込みニューラルネットワークはＤｅｅｐ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ（ＤＣＮＮ）と呼ばれ、ＤＣＮＮは性能が高いことで近年注目されている。
ＣＮＮの代表的な構成例をいくつか説明する。
ＣＮＮでは、一般に、前層からの出力結果に対して畳み込み演算（ｃｏｎｖｏｌｕｔｉｏｎ）と非線形処理（ｒｅｌｕやｍａｘ  ｐｏｏｌｉｎｇ等）との組み合わせで特徴層が実現され、その後、全結合演算（ｆｕｌｌ−ｃｏｎｅｃｔ）を経て画像分類結果（各クラスに対する尤度）を出力するようなネットワーク構造を持つ。各層には畳み込み演算用のフィルタ（カーネル）が複数用意される。出力層に近い層では畳み込み演算による結合ではなく通常のニューラルネットワーク（ＮＮ）のような全結合演算の構造とするのが一般的である。以下、全結合演算を行う層を全結合層と呼ぶことがある。
又は、非特許文献２に開示されているように全結合層のかわりに畳み込み演算層の出力結果を線形識別器に入力し識別を行う手法も注目されている。更に、非特許文献３では、畳み込み演算層の出力結果を入力画像サイズにリサイズして各画素のクラスカテゴリを識別する技術が開示されている。
ＣＮＮの学習フェーズにおいては、教師付きデータによる誤差逆伝搬法（バックプロパゲーション：ＢＰ）を用いることで、畳み込み演算層でのフィルタの値及び全結合層での結合重み（両者をあわせて学習パラメータと呼ぶ）を学習する。認識フェーズではそれぞれの層において、先の学習済み学習パラメータを使った演算を行うことで、認識結果を得る。
【０００３】
近年では、認識タスクの更なる精度向上を目的に、それぞれで処理方法又はパラメータの異なる検出パスを複数利用する方法が提案されている。
例えば、非特許文献４では、途中の中間層の出力結果に対し、推定した着目領域の内側で、所定範囲（例えば２×２の範囲）に対して代表値を決定又は算出する処理であるｐｏｏｌｉｎｇ処理を行い（ＲＯＩ  ｐｏｏｌｉｎｇ）、部分領域を抽出する。抽出した部分領域を全結合層に入力して、Ｂｏｕｎｄｉｎｇ  Ｂｏｘの位置・サイズ及び所定物体の物体別スコア等を出力する。着目領域の推定は別の全結合層を用いて行う。即ち、途中の中間層の出力結果に対し、スライディングウィンドウ検出窓により所定サイズの部分領域を抽出し、抽出した部分領域を別に準備した全結合層に入力することで、物体（非背景）の有無を判定する。
非特許文献４以外にも、複数の検出パスを使うことで検出精度を向上させる試みがある。例えば、顔検出において、顔領域候補を抽出した後、抽出した顔領域候補を検証する方法が提案されている（非特許文献５、非特許文献６）。
非特許文献５の方法では、第一のＦＣＮで（Ｆｕｌｌｙ  Ｃｏｎｎｅｃｔｅｄ  Ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ、非特許文献７）顔領域のスコアマップを生成し、スコアマップから抽出した顔候補領域を２種の検証用ＦＣＮに入力し、顔領域を確定する。
非特許文献６の方法では、第一のＣＮＮ内でターゲットオジェクトに反応するチャネルを特定し、特定したチャネルから顔領域候補を抽出する。顔領域の特定には、顔／非顔の２クラス分類タスクとして学習した第二のＣＮＮを用いる。第二のＣＮＮは、第一のＣＮＮをプレトレイニングモデルとし、ファインチューニングすることで生成する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｋｒｉｚｈｅｖｓｋｙ，Ａ．，Ｓｕｔｓｋｅｖｅｒ，Ｉ．，＆Ｈｉｎｔｏｎ，Ｇ．Ｅ．，"Ｉｍａｇｅｎｅｔ  ｃｌａｓｓｉｆｉｃａｔｉｏｎ  ｗｉｔｈ  ｄｅｅｐ  ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋｓ．"，Ｉｎ  Ａｄｖａｎｃｅｓ  ｉｎ  ｎｅｕｒａｌ  ｉｎｆｏｒｍａｔｉｏｎ  ｐｒｏｃｅｓｓｉｎｇ  ｓｙｓｔｅｍｓ（ｐｐ．１０９７−１１０５），２０１２．
【非特許文献２】Ｊｅｆｆ  Ｄｏｎａｈｕｅ，  Ｙａｎｇｑｉｎｇ  Ｊｉａ，  Ｊｕｄｙ  Ｈｏｆｆｍａｎ，  Ｔｒｅｖｏｒ  Ｄａｒｒｅｌｌ，"ＤｅＣＡＦ：Ａ  Ｄｅｅｐ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ａｃｔｉｖａｔｉｏｎ  Ｆｅａｔｕｒｅ  ｆｏｒ  Ｇｅｎｅｒｉｃ  Ｖｉｓｕａｌ  Ｒｅｃｏｇｎｉｔｉｏｎ"，ａｒｘｉｖ  ２０１３．
【非特許文献３】Ｂｈａｒａｔｈ  Ｈａｒｉｈａｒａｎ，  Ｐａｂｌｏ  Ａｒｂｅｌａｅｚ，  Ｒｏｓｓ  Ｇｉｒｓｈｉｃｋ，  Ｊｉｔｅｎｄｒａ  Ｍａｌｉｋ，"Ｈｙｐｅｒｃｏｌｕｍｎｓ  Ｆｏｒ  Ｏｂｊｅｃｔ  Ｓｅｇｍｅｎｔａｔｉｏｎ  ａｎｄ  Ｆｉｎｅ−ｇｒａｉｎｅｄ  Ｌｏｃａｌｉｚａｔｉｏｎ"，  ＩＥＥＥ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ  ２０１５．
【非特許文献４】Ｓ．Ｒｅｎ，Ｋ．Ｈｅ，Ｒ．Ｇｉｒｓｈｉｃｋ  ａｎｄ  Ｊ．Ｓｕｎ，"Ｆａｓｔｅｒ  Ｒ−ＣＮＮ：  Ｔｏｗａｒｄｓ  Ｒｅａｌ−Ｔｉｍｅ  Ｏｂｊｅｃｔ  Ｄｅｔｅｃｔｉｏｎ  ｗｉｔｈ  Ｒｅｇｉｏｎ  Ｐｒｏｐｏｓａｌ  Ｎｅｔｗｏｒｋｓ，"  ＮＩＰＳ  ２０１５．
【非特許文献５】Ｚ．Ｙａｎｇ  ａｎｄ  Ｒ．Ｎｅｖａｔｉａ，"Ａ  Ｍｕｌｔｉ−Ｓｃａｌｅ  Ｃａｓｃａｄｅ  Ｆｕｌｌｙ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｔｗｏｒｋ  Ｆａｃｅ  Ｄｅｔｅｃｔｏｒ，"ａｒＸｉｖｅ：１６０９．０３５３６ｖ１，Ｓｅｐ．，２０１６．
【非特許文献６】Ｘ．Ｈｏｕ，Ｋ．Ｓｕｎ，Ｌ．Ｓｈｅｎ，Ｇ．Ｑｉｕ，"Ｏｂｊｅｃｔ  Ｓｐｅｃｉｆｉｃ  Ｄｅｅｐ  Ｌｅａｒｎｉｎｇ  Ｆｅａｔｕｒｅ  ａｎｄ  Ｉｔｓ  Ａｐｐｌｉｃａｔｉｏｎ  ｔｏ  Ｆａｃｅ  Ｄｅｔｅｃｔｉｏｎ，"ａｒＸｉｖｅ：１６０９．０１３６６ｖ１，Ｓｅｐ．、２０１６．
【非特許文献７】Ｌ．Ｊｏｎａｔｈａｎ，Ｅ．Ｓｈｅｌｈａｍｅｒ，ａｎｄ  Ｔ．Ｄａｒｒｅｌ，"Ｆｕｌｌｙ  ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｎｅｔｗｏｒｋｓ  ｆｏｒ  ｓｅｍａｎｔｉｃ  ｓｅｇｍｅｎｔａｔｉｏｎ，"ＩＥＥＥ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ（ＣＶＰＲ），ｐｐ．  ３４３１−３４４０，２０１５．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
非特許文献４〜非特許文献６の方法では、複数の異なるニューラルネットワーク（Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ（ＮＮ））を利用するため、それぞれのＮＮを事前学習しておく必要がある。検出時にも、それぞれのＮＮについて別個に演算を行わなければならない。このように、従来の方法では、時間と手間とがかかるだけではなく、メモリ、ＣＰＵ、又はＧＰＵ等の多くの演算リソースが必要となる。
【課題を解決するための手段】
【０００６】
本発明は、画像処理装置であって、画像を入力する入力手段と、前記画像の部分領域のカテゴリ判定を行う第１の判定手段と、前記部分領域の画像を入力し、前記部分領域のカテゴリを判定する第２の判定手段と、を有し、前記第２の判定手段では、前記第１の判定手段で利用された情報の少なくとも一部を再利用する。
【発明の効果】
【０００７】
本発明によれば、事前学習コストを削減し、検出演算コストを抑制し、検出精度を向上することができる。
【図面の簡単な説明】
【０００８】
【図１】画像処理装置のハードウェア構成の一例を示す図である。
【図２】実施形態１の画像処理装置の機能構成等の一例を示す図である。
【図３】実施形態１の情報処理の一例を示すフローチャートである。
【図４】実施形態１のＣＮＮの構造等の一例を示す図である。
【図５】検証領域選択部の処理を説明するための図である。
【図６】実施形態２の画像処理装置の機能構成等の一例を示す図である。
【図７】実施形態２の情報処理の一例を示すフローチャートである。
【図８】実施形態２のＣＮＮの構造等の一例を示す図である。
【図９】実施形態３の画像処理装置の機能構成等の一例を示す図である。
【図１０】実施形態４の画像処理装置の機能構成等の一例を示す図である。
【図１１】実施形態４の情報処理の一例を示すフローチャートである。
【図１２】実施形態４のＣＮＮの構造等の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面に基づいて説明する。
【００１０】
＜実施形態１＞
図１は、画像処理装置１００のハードウェア構成の一例を示す図である。
画像処理装置１００は、ハードウェア構成として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、記憶部１１、入力部１２、表示部１３、通信部１４、を含む。
ＣＰＵ１０は、画像処理装置１００の全体を制御する。表示部１３は、液晶画面等で構成され、ＣＰＵ１０による画像処理等の結果を表示する。入力部１２は、スイッチ及びタッチパネル等によって構成され、利用者による操作を感知して操作情報を入力する。タッチパネルの代わりにマウス、トラックボール等の他のポインティングデバイスが用いられてもよい。記憶部１１は、メモリ、又はハードディスク等の記録メディア等によって構成され、プログラム、画像等を記憶する。記録メディアの代わりに、画像処理装置１００は、記憶部１１としてＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）、又はＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワーク上のストレージを用いてもよい。通信部１４は、画像処理装置１００をネットワーク等に接続し、他の装置との通信等を制御する。ＣＰＵ１０が記憶部１１に記録されたプログラムに基づき処理を実行することによって、後述する図２、図６、図９、図１０に示す画像処理装置１００の機能構成、及び図３、図７、図１１のフローチャートの情報処理が実現される。他の例としては、画像処理装置１００の機能の少なくとも一部は、例えば複数のＣＰＵ、記憶部を協働させることにより実現してもよい。また、他の例としては、画像処理装置１００の機能の少なくとも一部は、ハードウェア回路を用いて実現されてもよい。また、他の例としては、画像処理装置１００の機能は、複数の装置が協働して実現されてもよい。
【００１１】
図２は、実施形態１の画像処理装置１００の機能構成等の一例を示す図である。
画像処理装置１００は、機能構成として、入力部１２、第一の領域カテゴリ判定部１０２、部分領域抽出部１１２、第二の領域カテゴリ判定部１０６、後処理部１０７、出力処理部１０８を含む。第一の領域カテゴリ判定部１０２は、特徴抽出部１０３、領域カテゴリ判定部１０４、検証領域選択部１０５を含む。第二の領域カテゴリ判定部１０６は、特徴抽出部１１０、領域カテゴリ判定部１１１を含む。
各部の処理について、図３のフローチャート等を用いてより具体的に説明する。本実施形態では、第一の領域カテゴリ判定部１０２と第二の領域カテゴリ判定部１０６とにＣＮＮ（畳み込みニューラルネットワーク）を用いる場合を説明する。
【００１２】
図４は、ＣＮＮの構造及びＣＮＮを用いた識別処理の一例を示す図である。図４において、Ｉｍｇ７０１は入力画像であり、ｃｏｎｖ７０２、ｃｏｎｖ７０４、ｃｏｎｖ７０７、ｃｏｎｖ７０９は畳み込み演算（Ｃｏｎｖｏｌｕｔｉｏｎ）を表す。また、ｒｅｌｕ７０３、ｒｅｌｕ７０５、ｒｅｌｕ７０８、ｒｅｌｕ７１０、ｒｅｌｕ７１９、ｒｅｌｕ７２１は正規化線形関数（Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅａｒ  Ｕｎｉｔ）を表す。Ｐｏｏｌ７０６とＰｏｏｌ７１１とはプーリング処理（Ｐｏｏｌｉｎｇ）を表す。ｆｃ７１８、ｆｃ７２０、ｆｃ７２２は全結合演算（Ｆｕｌｌ  Ｃｏｎｎｅｃｔ）を表す。Ｏｕｔｐｕｔ１（７１６）及びＯｕｔｐｕｔ２（７２３）は演算結果の出力を表す。リサイズ７１２は所定サイズへのリサイズ処理を表す。７１３は中間層のリサイズ済み出力結果を表す。７１４は特徴ベクトルである。この特徴ベクトル７１４は中間層のリサイズ済み出力結果７１３の所定位置から得られるベクトルを連結することで対応位置ごとに生成される。識別器７１５は識別器であり、本実施形態での説明では線形識別器を用いる。７１７は着目部分領域抽出処理を表す。着目部分領域抽出７１７ではＯｕｔｐｕｔ１（７１６）から所定領域の切り出しを行う。
図２と図４との各部の対応は次の通りである。即ち、図２の入力処理部１０１は、Ｉｍｇ７０１を入力する。特徴抽出部１０３は、まず、ｃｏｎｖ７０２からＰｏｏｌ７１１までの処理を経て、Ｐｏｏｌ７０６及びＰｏｏｌ７１１の処理結果をリサイズ７１２で所定サイズにリサイズし、中間層のリサイズ済み出力結果７１３を生成する。次に、特徴抽出部１０３は、中間層のリサイズ済み出力結果７１３の所定位置から特徴ベクトル７１４を生成する。本実施形態では、リサイズ時の所定サイズをＩｍｇ７０１のサイズとし、特徴ベクトル生成時の所定位置はＩｍｇ７０１の各画素の画素位置とする。領域カテゴリ判定部１０４は、識別器７１５及びＯｕｔｐｕｔ１（７１６）に対応する。検証領域選択部１０５及び部分領域抽出部１１２は、Ｏｕｔｐｕｔ１（７１６）に対して着目部分領域抽出７１７処理を施す。本実施形態における着目部分領域抽出７１７処理の動作については後述する。第二の領域カテゴリ判定部１０６は、まず、着目部分領域抽出７１７処理で切り出された領域に対して、ｃｏｎｖ７０２からＰｏｏｌ７１１までの処理を施し、Ｐｏｏｌ７１１の処理結果をｆｃ７１８からｆｃ７２２までの処理によりＯｕｔｐｕｔ２（７２３）としてカテゴリ判別結果を出力する。後処理部１０７及び出力処理部１０８については、図４には記されていない。
【００１３】
以下、図３のフローチャートを用いて図２の各部の動作説明を行う。動作説明の途中、必要に応じて図４の対応箇所を参照する。
Ｓ２０１において、入力処理部１０１は、画像（図４のＩｍｇ７０１）を入力する。入力された画像は第一の領域カテゴリ判定部１０２に渡されると共に、後段の処理に備えて記憶部１１にも格納される。記憶部１１は、入力した画像を後段の処理で使えるように入力画像を一時的に格納できればよい。
第一の領域カテゴリ判定部１０２は、入力画像（Ｉｍｇ７０１）からＣＮＮの中間層の出力結果をリサイズした後、連結して、特徴ベクトル（特徴ベクトル７１４）を生成する。第一の領域カテゴリ判定部１０２は、学習画像から生成した特徴ベクトル（特徴ベクトル７１４）を使って事前に学習した線形判別器（識別器７１５）により、テスト画像から生成した特徴ベクトル（特徴ベクトル７１４）ごとに顔度合いを表すスコアを出力する（Ｏｕｔｐｕｔ１（７１６））。
即ち、Ｓ２０２において、特徴抽出部１０３は、画像特徴を抽出する。本実施形態では、特徴抽出部１０３は、画像特徴として、ＣＮＮの中間層の出力結果を連結することで特徴ベクトルを生成する（図４の特徴ベクトル７１４）。但し、本実施形態では、特徴抽出部１０３は、上層の中間層の出力結果にその解像度を入力画像の解像度と合致させるためのリサイズ処理を適用する（図４のリサイズ７１２）。その後、特徴抽出部１０３は、Ｉｍｇ７０１の各画素の画素位置の出力結果を連結することで、Ｉｍｇ７０１の各画素に対応する特徴ベクトルを生成する。Ｓ２０２の処理は、ニューラルネットワークの複数の層から階層的な特徴ベクトルを画像特徴として抽出する処理の一例である。
【００１４】
Ｓ２０３において、領域カテゴリ判定部１０４は、Ｓ２０２で抽出された特徴ベクトルを第一の識別器（図４の識別器７１５）で識別することで部分領域ごとにカテゴリ判定を行う。本実施形態では、Ｓ２０３における部分領域を画素とし、第一の識別器を線形判別器とする。カテゴリ判定結果は画素ごとに顔度合いを表すスコアとして出力される（図４のＯｕｔｐｕｔ１（７１６））。
Ｓ２０４において、検証領域選択部１０５は、Ｓ２０３のカテゴリ判定結果から、要検証領域を選択する。ここで、検証領域選択部１０５の処理は、図５を用いて詳細に説明する。図５（ａ）は入力画像例であり、図４のＩｍｇ７０１に相当する。図５（ｂ）は入力画像のグリッド分割例である。図５（ｃ）はカテゴリ判定結果の最高スコアが所定値以上となった画素例である。図５（ｄ）は要検証領域選択例である。図５（ｅ）は最終判定グリッド例である。図５（ｆ）は検出結果例である。また、図５（ｃ）における１５０１はカテゴリ判定結果の最高スコアが所定値以上の画素を示し、グリッドごとに最大１つ選択される。図５（ｄ）における１５０２はカテゴリ判定結果の最高スコアが所定値以上の画素が存在しているグリッドを示す。図５（ｅ）の１５０３は後述の修正を反映したスコアが所定値以上となったグリッドを示す。図５（ｆ）の１５０４は検出結果を示す矩形枠である。カテゴリ判定結果の最高スコアが所定値以上の画素１５０１、カテゴリ判定結果の最高スコアが所定値以上の画素が存在しているグリッド１５０２、修正を反映したスコアが所定値以上となったグリッド１５０３においては、色の濃さが黒いほどスコアが大きいことを表している。
検証領域選択部１０５は、まず、入力画像（図５（ａ））を所定のグリッドに分割する（図５（ｂ））。次に、検証領域選択部１０５は、グリッド内の画素について、カテゴリ判定結果の最高スコアが所定値以上の画素が存在するか否かを調べる（図５（ｃ））。カテゴリ判定結果の最高スコアが所定値以上の画素が存在する場合、検証領域選択部１０５は、そのグリッドを要検証領域として選択する（図５（ｄ））。その後、検証領域選択部１０５は、選択した各グリッドについて、グリッド内の最高スコアの画素を選択し、部分領域抽出部１１２に渡す。
【００１５】
Ｓ２０９において、部分領域抽出部１１２は、入力画像から検証領域選択部１０５から渡された画素を中心として、着目部分領域抽出７１７処理により所定サイズにクロップすることで部分領域を抽出する。本実施形態では、入力画像はＳ２０１で入力された画像（Ｉｍｇ７０１）であり、入力画像は記憶部１１を通じて部分領域抽出部１１２に渡される。また、本実施形態でのクロップサイズは、第二の領域カテゴリ判定部１０６の学習時に用いられた画像サイズと同じサイズである。
部分領域抽出部１１２で抽出された部分領域は、特徴抽出部１１０に渡される。Ｓ２１０において、特徴抽出部１１０は、画像特徴を抽出する。本実施形態では、図４のＰｏｏｌ７１１で出力されるＣＮＮの中間特徴である。次に、特徴抽出部１１０は、抽出した画像特徴を領域カテゴリ判定部１１１に入力する。
【００１６】
Ｓ２０５において、領域カテゴリ判定部１１１は、第二の識別器に基づいて部分領域ごとに顔画像が含まれるか否かの判定を行う（Ｏｕｔｐｕｔ２（７２３））。第二の識別器は、図４のｆｃ７１８からｆｃ７２２までとなる。
このように、第二の領域カテゴリ判定部１０６では、第一の領域カテゴリ判定部１０２で用いたＣＮＮの一部を再利用する構成になっている（ｃｏｎｖ７０２からＰｏｏｌ７１１までに至る経路）。このとき、ｃｏｎｖ７０２からＰｏｏｌ７１１までにおける特徴抽出の演算に利用する演算パラメータは、第一の領域カテゴリ判定部１０２で利用した演算パラメータと同一である。
Ｓ２０６において、後処理部１０７は、カテゴリの最終判定を行う。後処理部１０７は、Ｓ２０４で選択された画素を基準にクロップされた部分画像に顔画像が含まれないとＳ２０５で判定された場合に、その画素が属するグリッド内のスコアを所定値減少させる。一方で、部分画像に顔画像が含まれていると判定された場合は、後処理部１０７は、その画素が属するグリッド内のスコアを所定値増加させる。後処理部１０７は、このようにスコアを修正し、修正をすべて反映したスコアをカテゴリの最終判定とする（図５（ｅ）の１５０３）。
Ｓ２０７において、後処理部１０７は、Ｓ２０６の最終判定から検出結果を生成する（図５（ｆ））。
Ｓ２０８において、出力処理部１０８は、生成された検出結果を表示部１３に出力したり、通信部１４を介した他の装置に出力したりする。
【００１７】
以上のように、本実施態では、処理の異なる第一の領域カテゴリ判定部１０２と第二の領域カテゴリ判定部１０６とを準備し、これらの処理構成の一部を再利用して同一の演算を行うように構成した。これにより、学習等、事前準備の時間と手間とを抑制しつつ検出精度の向上が可能となる。
【００１８】
また、上記説明では、第二の領域カテゴリ判定部１０６におけるカテゴリ判定をｆｃ層で識別するよう構成したが、識別器としてサポートベクトルマシン（ＳＶＭ）等、他の識別器を利用するよう構成してもよい。
また、上記説明では、第一の領域カテゴリ判定部１０２で利用する特徴ベクトル（特徴ベクトル７１４）はＣＮＮの中間層の出力結果をリサイズ後に連結して生成するものとしたが、中間層の出力結果の組み合わせを他の異なる組み合わせにしてもよい。また、中間層の出力結果を連結せずに単独で利用するよう構成してもよい。また、第一の領域カテゴリ判定部１０２で生成される画像特徴を第二の領域カテゴリ判定部１０６で再利用できるなら、ＣＮＮの中間層の出力結果以外の画像特徴を利用するよう構成してもよい。
また、上記説明では、出力処理部１０８においてＳ２０７で生成された検出結果を出力するよう構成したが、必要に応じて他の情報を出力するように構成してもよい。例えば、出力処理部１０８は、第一の領域カテゴリ判定部１０２の判定結果の一部又は全部、第二の領域カテゴリ判定部１０６の一部又は全部、後処理部１０７での後処理結果の一部又は全部、等を出力するようにしてもよい。
上記の説明では、顔検出を例にして説明を行ったが、検出対象は顔に限らず適用可能である。顔以外の検出対象に上述した処理等を適用する場合には、学習データと学習時のカテゴリとを変更すればよい。
【００１９】
＜実施形態２＞
実施形態１では、処理の異なる第一の領域カテゴリ判定部１０２と第二の領域カテゴリ判定部１０６とを準備し、これらの処理構成の一部を再利用して同一の演算を行うように構成した。
本実施形態では、第一の領域カテゴリ判定部３０１での中間生成結果を第二の領域カテゴリ判定部３０３で再利用することで、更に演算コストを抑える方法を説明する。但し、実施形態１と同一の動作を行う部分については重複説明を省略する。
図６は、実施形態２の画像処理装置１００の機能構成等の一例を示す図である。
画像処理装置１００は、機能構成として、入力処理部１０１、第一の領域カテゴリ判定部３０１、第二の領域カテゴリ判定部３０３、後処理部１０７、出力処理部１０８を含む。第一の領域カテゴリ判定部３０１は、特徴抽出部３０２、領域カテゴリ判定部１０４、検証領域選択部１０５を含む。
各部の処理について、図８を用いてＣＮＮと対応付けると共に、図７のフローチャートも用いてより具体的に説明する。
まず、図６及び図７において、実施形態１からの変更部分は、第一の領域カテゴリ判定部１０２が第一の領域カテゴリ判定部３０１になり、Ｓ２０２がＳ４０１になったことである。同時に、第二の領域カテゴリ判定部１０６が第二の領域カテゴリ判定部３０３になると共に、Ｓ２０５がＳ４０２に変更されている。
図８においての実施形態１からの変更部分は、まず、図４における着目部分領域抽出７１７が図８においては着目部分領域抽出８０２になり、図４のＰｏｏｌ７１１が図８ではＰｏｏｌ８０１に変更されている。
以下、主に実施形態１からの変更部分の処理について説明する。
【００２０】
Ｓ４０１において、特徴抽出部３０２は、Ｓ２０２と同様に特徴ベクトル（特徴ベクトル７１４）を画像特徴として抽出する。但し、本実施形態では追加の処理として、特徴抽出部３０２は、特徴ベクトル（特徴ベクトル７１４）生成のために抽出した中間層の出力結果のうち、最後の層で生成された中間層の出力結果を第二の領域カテゴリ判定部３０３に渡す（図８のｐｏｏｌ８０１から着目部分領域抽出８０２へのパス部分）。
Ｓ４０２において、第二の領域カテゴリ判定部３０３は、第二の識別器に基づいて部分領域ごとに顔画像が含まれるか否かの判定を行う。まず、第二の領域カテゴリ判定部３０３は、特徴抽出部３０２から渡された中間層の出力結果に対し、Ｓ２０４で選択した画素に対応するグリッドについて、中間層の出力結果上の画素位置を特定する。第二の領域カテゴリ判定部３０３は、特定した画素位置に対応する中間層の出力結果を抽出し、ｆｃ層に入力することで入力画像に顔画像が含まれるか否かを判定する（図８の着目部分領域抽出８０２）。
【００２１】
以上のように、本実施形態では、処理の異なる第一の検出パスと第二の検出パスとを準備し、これらの検出パスの一部について、前段の検出パス内の情報の一部（ここでは中間層の出力結果）を後段の検出パスで再利用するように構成した。これにより、検出時に演算コストを抑制しつつ検出精度の向上が可能となる。
【００２２】
上記の説明では、Ｓ４０１において、特徴抽出部３０２は、中間層の出力結果を第二の領域カテゴリ判定部３０３に渡すように構成した。しかし、第二の領域カテゴリ判定部３０３で中間層の出力結果を利用できればこのような構成に限定されない。例えば、中間層の出力結果を第二の領域カテゴリ判定部３０３からアクセス可能な場所に一時保管し、必要に応じて第二の領域カテゴリ判定部３０３で中間層の出力結果を読み込むように構成してもよい。
また、実施形態１と同様、第一の領域カテゴリ判定部３０１と第二の領域カテゴリ判定部３０３との共通部分と差異部分とを分離し、差異部分を別の場所や構成で実行してもよい。又は、第二の領域カテゴリ判定部３０３におけるカテゴリ判定に、ｆｃ層以外の他の識別器を利用するよう構成してもよい。更に、第一の領域カテゴリ判定部３０１で利用する特徴として、中間層の出力結果の任意の組み合わせを連結するよう構成してもよい。もちろん、中間層の出力結果を連結せずに単独で利用するよう構成してもよい。また、第一の領域カテゴリ判定部３０１で生成される画像特徴を第二の領域カテゴリ判定部３０３で再利用できるなら、ＣＮＮ中間層の出力結果以外の画像特徴を利用するよう構成してもよい。
また、上記の説明では、第二の領域カテゴリ判定部３０３において、中間層の出力結果の画素に対して検証すべき画素の位置を特定し、特定した画素位置の中間層の出力結果をｆｃ層に入力するよう構成した。しかし、このように検証位置を限定せず、第一の領域カテゴリ判定部３０１の判定結果と第二の領域カテゴリ判定部３０３の判定結果とをそれぞれ出力するよう構成してもよい。又は、後処理部１０７は、第一の領域カテゴリ判定部３０１の判定結果と第二の領域カテゴリ判定部３０３の判定結果との差分情報を算出する。そして、出力処理部１０８は、後処理部１０７が算出した差分情報を出力するよう構成してもよい。これにより、後段の処理で判定結果を自由に利用可能となる。
上記の説明では、顔検出を例にして説明を行ったが、検出対象は顔に限らず適用可能である。顔以外の検出対象に適用する場合には、学習データと学習時のカテゴリとを変更すればよい。
【００２３】
＜実施形態３＞
実施形態１では、処理の異なる第一の領域カテゴリ判定部１０２と第二の領域カテゴリ判定部１０６とを準備し、これらの処理構成の一部を再利用して同一の演算を行うように構成した。
本実施形態では、更に第一の領域カテゴリ判定部５０２と第二の領域カテゴリ判定部５０３とについて、共通部分と差異部分とを分離し、差異部分を別の場所及び構成で実行するようにする。
【００２４】
図９は、実施形態３の画像処理装置１００の機能構成等の一例を示す図である。
画像処理装置１００は、機能構成として、入力処理部１０１、特徴抽出部５０１、第一の領域カテゴリ判定部５０２、第二の領域カテゴリ判定部５０３、後処理部１０７、出力処理部１０８を含む。
第一の領域カテゴリ判定部５０２は、領域カテゴリ判定部１０４、検証領域選択部１０５を含む。
図９では、第一の領域カテゴリ判定部５０２と第二の領域カテゴリ判定部５０３との共通部分が特徴抽出部５０１である。差異部分が第一の領域カテゴリ判定部５０２と第二の領域カテゴリ判定部５０３とになる。
即ち、特徴抽出部５０１では、入力画像に対して、ＣＮＮの各層で中間層の出力結果が生成される。
第一の領域カテゴリ判定部５０２は、まず、特徴抽出部５０１から受け取った中間層の出力結果を連結して特徴ベクトル（特徴ベクトル７１４）を生成する。但し、第一の領域カテゴリ判定部５０２は、上層の中間層の出力結果はその解像度を下層の中間層の出力結果と合致させるために、それぞれ連結前にリサイズ処理を適用する。その後、Ｓ２０３の説明と同様、領域カテゴリ判定部１０４は、第一の識別器に基づいて部分領域ごとにカテゴリ判定を行う。
第二の領域カテゴリ判定部５０３は、特徴抽出部５０１から受け取った中間層の出力結果をｆｃ層に入力することで入力画像に顔画像が含まれるか否かを判定する。
ここで、例えば、共通部分である特徴抽出部５０１をハードウェアで実行する。そして差異部分である第一の領域カテゴリ判定部５０２、第二の領域カテゴリ判定部５０３をソフトウェアでの並列実行とするようにしてもよい。
【００２５】
以上のように、第一の領域カテゴリ判定部５０２と第二の領域カテゴリ判定部５０３との共通部分と差異部分とを分離し、差異部分を別の場所お帯構成で実行できるようにした。そのため、学習等、事前準備の時間と手間とを抑制しつつ検出精度の向上が可能となる。また、高速演算が必要な場合に、一部をハードウェア実装したり、並列計算したりする等、柔軟な構成が可能となる。より具体的に説明すると、特徴抽出部５０１をハードウェアで実装し、第一の領域カテゴリ判定部５０２、第二の領域カテゴリ判定部５０３をソフトウェアで実装する。そして、第一の領域カテゴリ判定部５０２と、第二の領域カテゴリ判定部５０３とを並列で実行するようにしてもよい。
【００２６】
＜実施形態４＞
実施形態１から実施形態３まででは、検出に係る処理について説明した。本実施形態では、画像処理装置１００の構成を一部変更することで、第一の識別器又は第二の識別器を追加学習する方法を説明する。
図１０は、実施形態４の画像処理装置１００の機能構成等の一例を示す図である。
画像処理装置１００は、機能構成として、入力処理部１６０１、第一の領域カテゴリ判定部１０２、第二の領域カテゴリ判定部１０６、後処理部１６０２、出力処理部１６０３、追加学習部１６０４を含む。即ち、図１０の第一の領域カテゴリ判定部１０２と第二の領域カテゴリ判定部１０６とは図２のそれらと同一の構成である。即ち、第一の領域カテゴリ判定部１０２の第一の識別器は図４の７１５であり、第二の領域カテゴリ判定部１０６の第二の識別器は図４のｆｃ７１８からｆｃ７２２までとなる。
【００２７】
上記のように構成された画像処理装置１００の動作について、図１１及び図１２を使って説明する。但し、実施形態１で説明した画像処理装置１００の動作と同一の動作部分については説明を省略する。
Ｓ１７０１において、入力処理部１６０１は、追加学習画像（図１２のＩｍｇ７０１）とグランドトゥルース（以下、ＧＴと呼ぶ。ここでは図１２のＧＴ１８０１）とを入力する。入力した画像は第一の領域カテゴリ判定部１０２に渡されると共に、後段の処理に備えて記憶部１１にも格納される。同時に、入力されたＧＴも記憶部１１に格納される。
第一の領域カテゴリ判定部１０２、及び第二の領域カテゴリ判定部１０６の動作は実施形態１と同じなので省略する。
Ｓ１７０２において、後処理部１６０２は、第一の識別器又は第二の識別器で誤検出しているかどうかを判定する。
第一の識別器で誤検出している場合は、後処理部１６０２は、第一の識別器の追加学習用に、誤検出領域から特徴ベクトルを抽出する（図１２の特徴ベクトル７１４）。このとき、後処理部１６０２は、特徴ベクトルが顔領域に属するか非顔領域に属するかを判定する。後処理部１６０２は、顔領域に属する場合は、特徴ベクトルを正例の特徴ベクトルとして抽出し、非顔領域に属する場合は、特徴ベクトルを負例の特徴ベクトルとして抽出する。
第二の識別器で誤検出している場合は、後処理部１６０２は、誤検出領域を追加学習対象領域として抽出する。
【００２８】
第二の識別器で誤検出している場合、Ｓ１７０３において、後処理部１６０２は、追加学習対象領域から抽出した誤検出領域から第二の識別器を追加学習するための学習画像を生成する（Ｉｍｇ７０１から対応する領域を切り出す）。第二の識別器で誤検出がない場合は、後処理部１６０２は、Ｓ１７０３では何もしない。
Ｓ１７０４において、出力処理部１６０３は、後処理部１６０２から第一の識別器の追加学習用の特徴ベクトルが抽出されている場合は、その特徴ベクトルを第一の識別器の追加学習用として記憶部１１に出力する。また、出力処理部１６０３は、後処理部１６０２で第二の識別器の追加学習用の学習画像が生成されていた場合は、生成した追加学習用の画像を記憶部１１に出力する（図１２のＯｕｔｐｕｔ３（１８０３））。
その後、Ｓ１７０５において、出力処理部１６０３は、追加学習画像が残っているかを判定する。残っている場合は、出力処理部１６０３は、Ｓ１７０１の入力処理部１６０１の処理に処理を移す。追加学習画像が残っていない場合は、出力処理部１６０３は、Ｓ１７０６の追加学習部１６０４の処理に処理を移す。
【００２９】
Ｓ１７０６において、追加学習部１６０４は、第一の識別器及び第二の識別器の追加学習を行う。
第一の識別器の追加学習を行う場合には、追加学習部１６０４は、Ｓ１７０４で出力処理部１６０３が追加学習用に記憶部１１に出力した特徴ベクトルを用いる。本実施形態では、追加学習部１６０４は、以前の学習時に抽出した特徴ベクトルに、追加学習用の特徴ベクトルを追加して、第一の識別器を再学習する。
第二の識別器の追加学習を行う場合には、追加学習部１６０４は、Ｓ１７０４で出力処理部１６０３が追加学習用に記憶部１１に出力した第二の識別器を追加学習するための学習画像を読み込み、図１２のＩｍｇ７０１としてＣＮＮに入力する。その後、追加学習部１６０４は、ｃｏｎｖ７０２からＰｏｏｌ７１１までの処理を施し、Ｐｏｏｌ７１１の処理結果をｆｃ７１８からｆｃ７２２までの処理によりＯｕｔｐｕｔ２（７２３）としてカテゴリ判別結果を算出する。算出したカテゴリ判別結果が間違っている場合には、追加学習部１６０４は、誤差逆伝搬法（バックプロパゲーション：ＢＰ）を用いることで、畳み込み演算層でのフィルタの値や全結合層での結合重み（両者をあわせて学習パラメータと呼ぶ）を更新することで追加学習を行う。
【００３０】
以上のように、本実施形態では、画像処理装置１００の後処理を一部変更することで、第一の識別器又は第二の識別器を追加学習するよう構成した。このように追加学習することで、第一の領域カテゴリ判定部１０２又は第二の領域カテゴリ判定部１０６で誤検出が生じやすい領域を重点的に追加学習することが可能となる。
【００３１】
上記の説明では、後処理部１６０２においてＩｍｇ７０１から対応する領域を切り出すことで追加学習用の画像を生成するよう構成した。しかし、後処理部１６０２は、Ｉｍｇ７０１を加工した画像からも追加学習用の画像を生成するよう構成してもよい。加工とは、例えば拡大・縮小やノイズ付与等、一般的な画像処理である。
また、上記の説明では、第一の識別器又は第二の識別器のどちらかで誤検出している場合に、追加学習用を行うように構成した。しかし、第二の識別器で誤検出した場合のみ追加学習を行うように構成してもよい。即ち、第一の識別器での誤検出は許容した上で、第二の識別器で救えるように構成する。これにより、学習等、事前準備の時間と手間とを更に抑制しつつ、検出精度の向上が可能となる。
【００３２】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００３３】
以上、本発明の実施形態の一例について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
上述した各実施形態を任意に組み合わせて実施するようにしてもよい。
【符号の説明】
【００３４】
１０    ＣＰＵ
１００  画像処理装置
【図１】
2020035098.tif 000003
【図２】
2020035098.tif 000004
【図３】
2020035098.tif 000005
【図４】
2020035098.tif 000006
【図５】
2020035098.tif 000007
【図６】
2020035098.tif 000008
【図７】
2020035098.tif 000009
【図８】
2020035098.tif 000010
【図９】
2020035098.tif 000011
【図１０】
2020035098.tif 000012
【図１１】
2020035098.tif 000013
【図１２】
2020035098.tif 000014