(57)【要約】【課題】単一の静止画データに適用させ、且つ、処理時間が画素数の対数に比例し、同時に必要とする記憶容量を削減する。【解決手段】特徴量辞書２２０は、入力画像データの部分領域が検出対象画像データを含む場合にとり得る画像特徴の最大値又は最小値を保持する。特徴選択部２４２は、画像特徴の集合から少なくとも一つの画像特徴を選択する。積分画像生成部２３１は、特徴選択部２４２により選択された画像特徴について、入力画像データの特徴量を演算するための積分画像データを生成する。画像検出部２４４は、特徴量辞書及び積分画像データに基づいて、入力画像データから検出対象画像データに対応する検出結果領域を検出する。積分画像破棄部２３５は、入力画像データから検出結果領域が検出された後、積分画像データを破棄する。【選択図】図２
2013257832.tif 000002
【特許請求の範囲】
【請求項１】
入力画像データの部分領域が検出対象画像データを含む場合にとり得る画像特徴の最大値又は最小値を保持する特徴量辞書と、
前記画像特徴の集合から少なくとも一つの画像特徴を選択する選択手段と、
前記選択手段により選択された画像特徴について、前記入力画像データの特徴量を演算するための積分画像データを生成する生成手段と、
前記特徴量辞書及び前記積分画像データに基づいて、前記入力画像データから前記検出対象画像データに対応する検出結果領域を検出する検出手段と、
前記検出手段により前記入力画像データから検出結果領域が検出された後、前記積分画像データを破棄する破棄手段とを有することを特徴とする画像処理装置。
【請求項２】
前記特徴量辞書は、画像特徴毎に特徴量の演算に用いられる積分画像データの識別子を保持し、前記選択手段は、各画像特徴に対応する積分画像データの識別子群に基づいて同時に保持される積分画像データの数を制限するべく前記画像特徴の集合から画像特徴を選択することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記選択手段は、前記検出手段により検出された検出結果領域と、前記特徴量辞書において保持される積分画像データの識別子とに基づいて、積分画像データが占める記憶領域を考慮して前記生成手段により積分画像データを生成可能な範囲で前記画像特徴の集合から画像特徴を選択することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記特徴量辞書は、前記画像特徴毎に検出結果領域が持ち得る誤差を保持し、
前記特徴量辞書において保持される誤差を用いて検出結果領域を補正することにより、補正検出領域を算出する補正手段を更に有することを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記画像特徴と前記検出対象画像データとに基づいて前記誤差を算出する誤差算出手段を有することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記画像特徴は、画像データの部分領域内で事象が発生する頻度に対応することを特徴とする請求項１乃至５の何れか１項に記載の画像処理装置。
【請求項７】
入力画像データの部分領域が検出対象画像データを含む場合にとり得る画像特徴の最大値又は最小値を保持する特徴量辞書を有する画像処理装置によって実行される画像処理方法であって、
前記画像特徴の集合から少なくとも一つの画像特徴を選択する選択ステップと、
前記選択ステップにより選択された画像特徴について、前記入力画像データの特徴量を演算するための積分画像データを生成する生成ステップと、
前記特徴量辞書及び前記積分画像データに基づいて、前記入力画像データから前記検出対象画像データに対応する検出結果領域を検出する検出ステップと、
前記検出ステップにより前記入力画像データから検出結果領域が検出された後、前記積分画像データを破棄する破棄ステップとを有することを特徴とする画像処理方法。
【請求項８】
入力画像データの部分領域が検出対象画像データを含む場合にとり得る画像特徴の最大値又は最小値を保持する特徴量辞書を有する画像処理装置によって実行される画像処理方法をコンピュータに実行させるためのプログラムであって、
前記画像特徴の集合から少なくとも一つの画像特徴を選択する選択ステップと、
前記選択ステップにより選択された画像特徴について、前記入力画像データの特徴量を演算するための積分画像データを生成する生成ステップと、
前記特徴量辞書及び前記積分画像データに基づいて、前記入力画像データから前記検出対象画像データに対応する検出結果領域を検出する検出ステップと、
前記検出ステップにより前記入力画像データから検出結果領域が検出された後、前記積分画像データを破棄する破棄ステップとをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データから物体を検出する技術に関するものである。
【背景技術】
【０００２】
従来、画像データ中から顔等の物体を検出する各種手法が知られている。例えば、非特許文献１には、積分画像データから特徴量を定数時間で取得する手法と、画像データ中のある部分領域が検出対象の被写体に類似しない場合に高速に棄却できる識別関数を事前に学習しておく手法とを組み合わせ、画像データ中のあらゆる部分領域の部分画像データが検出対象の被写体であるか否かを網羅的に探索する技術が開示されている。但し、非特許文献１に開示される技術においては、あらゆる部分領域に対して網羅的な探索を行うために、その計算量は画像データの画素数の二乗に比例する。
【０００３】
これに対し、特許文献１には、非特許文献１に開示される網羅的な探索について、動画データにおける前フレームと次フレームとの相関を手掛かりに探索対象となる画素数を削減する技術が開示されている。非特許文献２には、画像データ中のある部分領域が検出対象の被写体を含む場合に満たされるべき不等式を事前に定義しておき、その不等式に基づいて画像データ内を分割探索し、この分割探索と積分画像データによる定数時間での特徴量の取得とを組み合わせた技術が開示されている。非特許文献２に開示される技術においては、積分画像データにより不等式の結果は定数時間で得られ、且つ画像データ内を分割探索していくため、計算量をその画素数との比例関係以下に抑え込むことができる。非特許文献３には、非特許文献１に開示される識別関数に基づく画像データ中の物体検出において、その特徴量に、画像データ中のある部分領域内の矩形小領域のエッジの方向別ヒストグラムを用いる技術が開示されている。
【０００４】
ここで、非特許文献２に開示される技術では、特徴量の生成に必要な積分画像データの全てを同時に保持する必要がある。例えば、非特許文献２に開示される技術における特徴量として、非特許文献３に開示される、矩形小領域毎のエッジ方向別ヒストグラムを用いる場合、そのエッジ方向のそれぞれについて積分画像データを持つ必要がある。この場合、必要となる記憶容量は、画素数×エッジ方向数÷矩形小領域あたりの画素数に比例する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１６５０５２号公報
【非特許文献】
【０００６】
【非特許文献１】“Ｒａｐｉｄ ｏｂｊｅｃｔ Ｄｅｔｅｃｔｉｏｎ ｕｓｉｎｇ ａ Ｂｏｏｓｔｅｄ Ｃａｓｃａｄｅ ｏｆ Ｓｉｍｐｌｅ Ｆｅａｔｕｒｅｓ”，Ｐ．Ｖｉｏｌａ，Ｍ．Ｊｏｎｅｓ，Ｐｒｏｃ．ｏｆ ＩＥＥＥ Ｃｏｎｆ．ＣＶＰＲ，１，ｐｐ．５１１−５１８，２００１
【非特許文献２】“Ｂｅｙｏｎｄ Ｓｌｉｄｉｎｇ Ｗｉｎｄｏｗｓ：Ｏｂｊｅｃｔ Ｌｏｃａｌｉｚａｔｉｏｎ ｂｙ Ｅｆｆｉｃｉｅｎｔ Ｓｕｂｗｉｎｄｏｗ Ｓｅａｒｃｈ”，Ｃｈｒｉｓｔｏｐｈ Ｈ．Ｌａｍｐｅｒｔ，Ｍａｔｔｈｅｗ Ｂ．Ｂｌａｓｃｈｋｏ，Ｔｈｏｍａｓ Ｈｏｆｍａｎｎ，，ＩＥＥＥ Ｃｏｍｐｕｔｅｒ Ｓｃｉｅｎｃｅ Ｃｏｎｆｅｒｅｎｃｅ ｏｎ Ｃｏｍｐｕｔｅｒ Ｖｉｓｉｏｎ ａｎｄ Ｐａｔｔｅｒｎ Ｒｅｃｏｇｎｉｔｉｏｎ（ＣＶＰＲ），２００８
【非特許文献３】“Ｈｉｓｔｏｇｒａｍｓ ｏｆ Ｏｒｉｅｎｔｅｄ Ｇｒａｄｉｅｎｔｓ ｆｏｒ Ｈｕｍａｎ Ｄｅｔｅｃｔｉｏｎ”，Ｎａｖｎｅｅｔ Ｄａｌａｌ ａｎｄ Ｂｉｌｌ Ｔｒｉｇｇｓ，ＣＶＰＲ２００５
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、画像データからの物体検出において、非特許文献１及び非特許文献３に開示される技術では、上記のとおり、画像データの画素数が増えると計算量が大きくなるという問題がある。また、特許文献１に開示される技術では、単一の静止画データに適用し得ないという問題がある。また、非特許文献２に開示される技術では、処理時間は画素数の対数に比例するが、記憶容量の利用量が大きいという問題がある。
【０００８】
そこで、本発明の目的は、単一の静止画データに適用させ、且つ、処理時間が画素数の対数に比例し、同時に必要とする記憶容量を削減することにある。
【課題を解決するための手段】
【０００９】
本発明の画像処理装置は、入力画像データの部分領域が検出対象画像データを含む場合にとり得る画像特徴の最大値又は最小値を保持する特徴量辞書と、前記画像特徴の集合から少なくとも一つの画像特徴を選択する選択手段と、前記選択手段により選択された画像特徴について、前記入力画像データの特徴量を演算するための積分画像データを生成する生成手段と、前記特徴量辞書及び前記積分画像データに基づいて、前記入力画像データから前記検出対象画像データに対応する検出結果領域を検出する検出手段と、前記検出手段により前記入力画像データから検出結果領域が検出された後、前記積分画像データを破棄する破棄手段とを有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、単一の静止画データに適用することが可能であり、且つ、処理時間が画素数の対数に比例し、同時に必要とする記憶容量を削減することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係る画像情報装置のハードウェア構成を示す図である。
【図２】本発明の実施形態に係る画像処理装置の機能的な構成を示すとともに、画像処理装置の機能を説明するために必要な外部構成を示す図である。
【図３】検出対象画像データ群に含まれる検出対象画像データの例と、検出対象画像データ２００における色クラスタの分布とを示す図である。
【図４】入力画像データの例と、入力画像データ上の補正検出領域の例とを示す図である。
【図５】特徴量辞書の例を示す図である。
【図６】ある画像データにおけるある画像特徴の生起頻度とその積分画像データとの例を示す図である。
【図７】辞書学習部の処理を示すフローチャートである。
【図８】積分画像生成部の処理及び画像特徴量演算部の処理を示すフローチャートである。
【図９】画像特徴量取得部及び検出部の処理を示すフローチャートである。
【図１０】入力画像データから検出結果領域を取得する例を説明するための図である。
【図１１】図９のステップＳ９０４の詳細を示すフローチャートである。
【図１２】図９のステップＳ９０６の詳細を示すフローチャートである。
【図１３】ＲＡＭのメモリマップを示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００１３】
図１は、本発明の実施形態に係る画像情報装置のハードウェア構成を示す図である。図１において、１０１は、ＣＣＤやＣＭＯＳ等で構成され、被写体像を光から電気信号に変換するための撮像素子である。１０２は、撮像素子１０１から出力される被写体像に関する時系列信号を処理し、デジタル信号に変換する信号処理回路である。１０３は、ＣＰＵであり、ＲＯＭ１０４に格納されている制御プログラムを実行することにより、本画像処理装置全体を制御する。１０４はＲＯＭであり、ＣＰＵ１０３によって実行される制御プログラムや各種パラメータを格納する。制御プログラムは、ＣＰＵ１０３において実行されることにより、後述するフローチャートに示す各処理を実行するための各種手段として本画像情報装置を機能させる。１０５はＲＡＭであり、画像データや各種情報を記憶する。またＲＡＭ１０５は、ＣＰＵ１０３のワークエリアやデータの一時待避領域として機能する。１０６はディスプレイであり、例えばＬＣＤやＣＲＴで構成される。
【００１４】
なお、本実施形態では、後述するフローチャートの各ステップに対応する処理を、ＣＰＵ１０３を用いてソフトウェアで実現することとするが、その処理の一部又は全部を電子回路等のハードウェアで実現するようにしても構わない。また、本実施形態に係る画像処理装置は、撮像素子１０１や信号処理回路１０２を省いて汎用ＰＣを用いて実現してもよいし、画像処理専用装置として実現するようにしても構わない。また、ネットワーク又は各種記憶媒体を介して取得したソフトウェア（プログラム）をパーソナルコンピュータ等の処理装置（ＣＰＵ、プロセッサ）にて実行させてもよい。
【００１５】
図２は、本実施形態に係る画像処理装置の機能的な構成を示すとともに、画像処理装置の機能を説明するために必要な外部構成を示す図である。図２に示すように、本実施形態に係る画像処理装置は、その機能的な構成として画像特徴量取得部２３０及び検出部２４０を備えるとともに、特徴量辞書２２０を内部に格納している。また、図２においては、本実施形態に係る画像処理装置の機能を説明するために、画像処理装置以外の外部構成である検出対象画像データ群２００及び辞書学習部２１０も示している。
【００１６】
検出部２４０は、図１のＲＡＭ１０５の記憶容量及びＣＰＵ１０３の演算量が制限された環境下において、検出対象画像データ群２００に含まれる検出対象画像データに類似する領域を入力画像データ２４１から検出し、補正検出領域２４７を求める。図３（Ａ）は検出対象画像データ群２００に含まれる検出対象画像データの例を示している。図４（Ａ）は入力画像データ２４１の例を示している。図４（Ｂ）の４０１は入力画像データ２４１上の補正検出領域２４７の例を示している。
【００１７】
辞書学習部２１０は、検出部２４０の処理に先立ち、画像特徴量取得部２３０と連携して検出対象画像データ群２００から画像特徴群２２１を求め、統計的に処理し、特徴量辞書２２０を生成する。なお、辞書学習部２１０は、検出部２４０とは異なる環境、即ち、図１に示した本実施形態に係る画像処理装置のハードウェア構成の環境とは異なる環境下で実行され、当該環境における記憶容量や計算量は必要なだけ用意できるものとする。辞書学習部２１０は、特徴量辞書２２０として、画像特徴群２２１、対象画像検出器２２２、特徴別積分画像識別子群２２３、特徴別積分極値２２４及び特徴別検出誤差２２５を生成する。
【００１８】
検出対象画像データ群２００は、検出対象画像データを集めたものであり、各検出対象画像データは色、大きさ、コントラスト及び傾き等について正規化されている。また、検出対象画像データにおいて、検出対象となる物体と無関係な背景の領域については、辞書学習部２１０内での演算上無視できるように例えばマスク処理されている。その他、検出対象画像データ群２００では、統計的に無視できる程度に背景が分散し、且つ検出対象画像データ群２００の枚数を多くしてもよい。
【００１９】
図５は、特徴量辞書２２０の例を示す図である。本実施形態において、画像特徴は、ある画像データの部分領域内である事象が発生する頻度を意味し、画像特徴群２２１はそのような画像特徴を集めたものである。例えば、画像特徴は、画像データの各ピクセルの色をクラスタに分類し、被写体領域内における任意の色クラスタの組み合わせに含まれる色クラスタの生起頻度の和とする。この色クラスタの組み合わせを色クラスタ共起と称し、その生起頻度の和を色クラスタ共起頻度と称す。なお、画像特徴群２２１は、非特許文献３に開示される矩形小領域毎のエッジ方向別ヒストグラムでも構わない。
【００２０】
特徴別積分画像識別子群２２３は、画像特徴群２２１に含まれる画像特徴のそれぞれについて、画像特徴量取得部２３０におけるその画像特徴量２３４の演算に必要な積分画像データ２３２の識別子を集めたものである。例えば、画像特徴群２２１の色クラスタ共起は複数の色クラスタから構成され、且つ色クラスタ一つに積分画像データ一つが対応する。このため、特徴別積分画像識別子群２２３は、色クラスタ共起を構成する色クラスタの集合に対応する積分画像データの識別子となる。例えば、図５に示す特徴量辞書２２０において、画像特徴ＩＤ５は白、黒及びベージュの各色クラスタから構成され、この画像特徴量２３４を求めるためには、白、黒及びベージュの各色クラスタの積分画像データが必要となる。
【００２１】
特徴別積分極値２２４は、画像特徴群２２１に含まれる画像特徴それぞれについて、ある画像データが検出対象画像データ群２００に類似する領域を含む場合にとり得る、画像特徴量２３４の最大値又は最小値を集めたものである。後述する実施形態において、この最大値又は最小値を求めるための関数は、色クラスタ共起に含まれる色クラスタの生起頻度の和の最小値を求める関数である。但し、この関数は、色クラスタ共起に含まれる色クラスタの生起頻度の和の最小値を求める際の演算に全ての画像特徴を必要としない関数であり、且つ、各頻度特徴に対して単純増加する任意の関数である。例えば、重み付き和の最小値を求めるための関数や、弱判別器の線形結合による識別関数等が相当する。図５に示す特徴量辞書２２０において、ある画像データが検出対象画像データに類似する領域を含む場合、画像特徴ＩＤ５に対応する特徴別積分極値は、白、黒及びベージュそれぞれの色クラスタの生起頻度の和であって、その値は少なくとも６２０以上となる。
【００２２】
特徴別検出誤差２２５は、画像特徴群２２１に含まれる画像特徴それぞれについて、画像検出部２４４がその画像特徴に基づいて検出結果領域２４５を求めたときに、検出結果領域２４５の大きさと検出対象画像データの大きさとの差を集めたものである。図４（Ｂ）の例では、特徴別検出誤差２２５は、検出結果領域４０２から補正検出領域４０１を求めるために用いられる。
【００２３】
画像特徴量取得部２３０は、検出対象画像データ群２００又は入力画像データ２４１のある領域から画像特徴量２３４を取得する。画像特徴量取得部２３０は、辞書学習部２１０からも検出部２４０からも用いられる。画像特徴量取得部２３０は、検出部２４０と動作する場合のみ、検出部２４０と同様に、図１に示すＲＡＭ１０５の記録容量及びＣＰＵ１０３の演算量の制限を受ける。
【００２４】
画像特徴量取得部２３０は、積分画像生成部２３１、画像特徴量演算部２３３及び積分画像破棄部２３５を備える。積分画像生成部２３１は、画像特徴量２３４を生成するために必要な積分画像データ２３２を生成する。積分画像データ２３２は、ある画像データ又はその部分領域の原点から、その画像データにおけるある画像特徴の生起頻度を横軸及び縦軸それぞれに積算していったものである。但し、積分画像データ２３２は入力画像データ２４１と同一画素数である必要はない。即ち、入力画像データ２４１中のある部分領域内での生起頻度の総和を積分画像データの１画素が担っても構わない。積分画像データ２３２においては、ある特徴のある矩形領域内における生起頻度を、その矩形の対角する２頂点の和同士の差を求めることにより、定数時間で求めることができる。
【００２５】
図６（Ａ）は、ある画像データにおけるある画像特徴の生起頻度とその積分画像データとの例を示している。例えば、画像データの部分領域６０１におけるある画像特徴の生起頻度の総和は、積分画像データにおいて、（値６０２＋値６０５）−（値６０３＋値６０４）によって求められる。画像特徴量演算部２３３は、積分画像データ２３２を用いて画像特徴量２３４を求める。積分画像破棄部２３５は、不要となった積分画像データ２３２を破棄する。
【００２６】
検出部２４０は、入力画像データ２４１から補正検出領域２４７を求める。検出部２４０の動作環境は、図１に示すＲＡＭ１０５の記憶容量及びＣＰＵ１０３の演算量の制限を受ける。検出部２４０は、検出が収束するまで、特徴選択部２４２、画像検出部２４４及び検出領域補正部２４６の処理を繰り返す。
【００２７】
特徴選択部２４２は、入力画像データ２４１、補正検出領域２４７及び特徴別積分画像識別子群２２３を用いて画像特徴量取得部２３０が画像特徴量２３４を生成することが可能なように選択特徴２４３を求める。選択特徴２４３は画像特徴群２２１の部分集合であり、色クラスタ共起の集合である。画像検出部２４４は、積分画像データ２３２及び特徴別積分極値２２４から検出結果領域２４５を求める。なお、検出結果領域２４５を算出する方法は、非特許文献２に開示された分割探索法に準ずる。即ち、積分画像データ２３２内のある領域から得た画像特徴量２３４がその画像特徴の特徴別積分極値２２４を上回る領域のうち、許容できる限り小さい領域を求め、それを検出結果領域２４５とする。
【００２８】
検出結果領域２４５は、入力画像データ２４１のうち検出対象画像データに類似する領域を含むとされる領域である。検出領域補正部２４６は、検出結果領域２４５及び特徴別検出誤差２２５から、画像検出部２４４のアルゴリズムに由来して発生し得る誤差を補正し、補正検出領域２４７を求める。画像検出部２４４は、ある色クラスタに属する画素を含む検出結果領域２４５を求める。このとき、検出対象画像データの一部にのみ含まれる色を基準にすると、検出結果領域２４５として検出対象画像データに類似する領域よりも小さな領域が求められる。この検出対象画像データの大きさと検出結果領域２４５の大きさとの差が特徴別検出誤差２２５となる。具体的には、例えば、検出対象画像データ群２００に対して図５に示す画像特徴ＩＤ１に基づき図４（Ｂ）の検出結果領域４０２が検出されたものとする。このとき、画像特徴ＩＤ１に対応する特徴別検出誤差２２５を考慮して、検出結果領域４０２から補正検出領域４０１が求められる。
【００２９】
図７は、辞書学習部２１０の処理を示すフローチャートである。以下、図７を参照しながら、辞書学習部２１０の処理について説明する。図７のフローチャートに示す処理において、辞書学習部２１０は、検出対象画像データ群２００を入力とする。そして辞書学習部２１０は、特徴量辞書２２０に含まれる、画像特徴群２２１、対象画像検出器２２２、特徴別積分画像識別子群２２３、特徴別積分極値２２４及び特徴別検出誤差２２５を出力とする。
【００３０】
ステップＳ７０１において、辞書学習部２１０は、検出対象画像データ群２００から画像特徴群２２１を求める。即ち、画像特徴量取得部２３０は、検出対象画像データ群２００に含まれる全ての検出対象画像データにおいて、起こり得る全ての色クラスタ共起の生起頻度の和と最小値とを求める。そして辞書学習部２１０は、生起頻度の和と最小値とがともに上位となるいくつかの色クラスタ共起を選択し、それらの色クラスタ共起を画像特徴群２２１とする。図３（Ｂ）は、図３（Ａ）に示す検出対象画像データ２００における色クラスタの分布を示している。
【００３１】
ステップＳ７０２において、辞書学習部２１０は、画像特徴群２２１に含まれるそれぞれの画像特徴について、特徴別積分画像識別子群２２３と特徴別積分極値２２４とを求める。即ち、画像特徴量取得部２３０は、画像特徴群２２１に含まれる全ての画像特徴と、検出対象画像データ群２００に含まれる全ての検出対象画像データとについて、画像特徴量２３４を求める。辞書学習部２１０は、全ての検出対象画像データについて画像特徴量２３４の最小値を求め、特徴別積分極値２２４とする。例えば図５において、画像特徴ＩＤ１に対応する画像特徴は、黒色に相当する色クラスタから生成される積分画像データから求められ、検出対象画像データ群２００内において１０００回発生し、その最小値は１００回だったとする。また、灰色に相当する色クラスタから生成される積分画像データから求められる画像特徴は、頻出はするもののその最小値が小さいため、ステップ７０１において画像特徴群２２１としては選択されなかったものとする。
【００３２】
ステップＳ７０３において、辞書学習部２１０は、特徴別検出誤差２２５を求める。即ち、辞書学習部２１０は、画像特徴群２２１に含まれる全ての画像特徴と、検出対象画像データ群２００に含まれる全ての検出対象画像データとについて、その色クラスタ共起に含まれる任意の色クラスタの画素が成す画素塊の外接矩形の短辺と検出対象画像データの長辺との割合を求める。そして辞書学習部２１０は、検出対象画像データ群２００の全ての検出対象画像データについてその割合の最大値を求め、特徴別検出誤差２２５とする誤差算出を行う。
【００３３】
ステップＳ７０４において、辞書学習部２１０は対象画像検出器２２２を学習する。この手法は任意であり、例えば非特許文献１や非特許文献３に開示される、学習機械に基づく典型的な物体検出手法の検出器学習手法を用いてもよい。以上のようにステップＳ７０１〜Ｓ７０４において求められた画像特徴群２２１、対象画像検出器２２２、特徴別積分画像識別子群２２３、特徴別積分極値２２４及び特徴別検出誤差２２５が辞書学習部２１０の出力となる。
【００３４】
次に、画像特徴量取得部２３０の処理について説明する。画像特徴量取得部２３０は、積分画像生成部２３１、画像特徴量演算部２３３及び積分画像破棄部２３５を備える。積分画像生成部２３１が初期化又はコンストラクタとして呼ばれた後、画像特徴量演算部２３３が複数回数呼ばれ、積分画像破棄部２３５が後処理又はデストラクタとして呼ばれる。
【００３５】
図８（Ａ）は、積分画像生成部２３１の処理を示すフローチャートである。図８（Ａ）に示すフローチャートは、積分画像生成部２３１によって生成される積分画像データ２３２の識別子群（特徴別積分画像識別子群）、入力画像データ２４１、矩形領域を入力とし、積分画像データ２３２を出力とする。
【００３６】
ステップＳ８０１において、積分画像生成部２３１は、積分画像データ２３２の領域をＲＡＭ１０５から確保する。なお、特徴別積分画像識別子群中の要素数と矩形領域に含まれる画素数との積が積分画像データ２３２の領域となる。
【００３７】
ステップＳ８０２において、積分画像生成部２３１は、入力画像データ２４１の矩形領域中の各ピクセルについて、矩形領域の左上点から縦横方向にそれぞれ網羅的にステップＳ８０３〜Ｓ８０６を繰り返す。
【００３８】
ステップＳ８０３において、積分画像生成部２３１は、ステップＳ８０２で着目したピクセルにおける色から、当該色が属する色クラスタを求める。ある色から当該色が属する色クラスタを求める手法としては任意の手法を適用することが可能である。例えば、ある色のＲＧＢ値をそれぞれ０〜２５５をとるＨＳＶ値に変換した後、（Ｈ％４）×１６＋（Ｓ％６４）×４＋（Ｖ％６４）とする。但し、ここで％演算子は、除法の商又はその整数部を求める演算子である。図３（Ｂ）は、図３（Ａ）に示す入力画像データ２４１について色クラスタを求めた状態を示している。なお、図３（Ｂ）に示す各領域はそれぞれ凡例が示す色を混合して含んでいる。
【００３９】
ステップＳ８０４において、積分画像生成部２３１は、特徴別積分画像識別子群に含まれる各特徴別積分画像識別子について、ステップＳ８０５〜Ｓ８０６の処理を繰り返す。ステップＳ８０５において、積分画像生成部２３１は、ステップＳ８０４で着目した特徴別積分画像識別子に対応する積分画像データにおいて、ステップＳ８０２で着目したピクセルの上のピクセルの値と左のピクセルの値とを足した値を、ステップＳ８０２で着目したピクセルに保存する。
【００４０】
ステップ８０６において、積分画像生成部２３１は、ステップＳ８０３で得た色クラスタがステップＳ８０４で着目した特徴別積分画像識別子に等しい場合、その特徴別積分画像識別子に対応する積分画像データにおけるステップＳ８０２で着目したピクセルについてさらに１追加する。ステップＳ８０２及びＳ８０４のループが終了した後、作成された積分画像データが積分画像生成部２３１の出力となる。
【００４１】
例えば、図３（Ｂ）に示す色クラスタ群において、作成される積分画像データの特徴別積分画像識別子が黒であり、且つ積分画像データを作成する矩形領域が図４（Ｂ）に示す画像データ全体であった場合、図６（Ｂ）に示す積分画像データが生成されたものとする。但し、図６（Ｂ）における数値は積分画像データの画素値を示し、数値を示していない箇所は積分画像データの画素値を省略している。
【００４２】
次に、画像特徴量演算部２３３について説明する。画像特徴量演算部２３３は、画像特徴群２２１の部分集合である選択特徴２４３、辞書学習部２１０で作成された特徴別積分画像識別子群２２３、積分画像生成部２３１で作成された積分画像データ２３２、及び、積分画像データ２３２上の矩形領域を入力する。そして画像特徴量演算部２３３は画像特徴量２３４を出力する。
【００４３】
図８（Ｂ）は、画像特徴量演算部２３３の処理を示すフローチャートである。ステップＳ８１１において、画像特徴量演算部２３３は、選択特徴２４３に含まれる各画像特徴についてステップＳ８１２〜Ｓ８１４を繰り返す。
【００４４】
ステップＳ８１２において、画像特徴量演算部２３３は、特徴別積分画像識別子群２２３から、ステップＳ８１１で着目した画像特徴に対応する特徴別積分画像識別子群を取得する。画像特徴量演算部２３３は、その特徴別積分画像識別子群に対応する各積分画像データについてステップＳ８１３を繰り返す。ステップＳ８１３において、画像特徴量演算部２３３は、積分画像データ２３２上の矩形領域の対角する２対の頂点の値の和同士の差を求め、積分特徴とする。ステップＳ８１２のループが終了した後、ステップＳ８１４において、画像特徴量演算部２３３は、ステップＳ８１３において得た積分特徴群から画像特徴量２３４を求める。本実施形態では、積分特徴群の特徴量の総和を求め、画像特徴量２３４とする。ステップＳ８１１のループが終了した後、ステップＳ８１４で求められた画像特徴量２３４が画像特徴量演算部２３３の出力となる。例えば、図６（Ｂ）に示す積分画像データ６１１において領域６１２の画像特徴量の値は９２６−０で９２６となる。
【００４５】
積分画像破棄部２３５は、ステップＳ８０１において積分画像生成部２３１により確保された積分画像データ２３２の領域を解放する。
【００４６】
次に、図９を参照しながら画像特徴量取得部２３０及び検出部２４０の処理について説明する。ここでは、辞書学習部２１０により特徴量辞書２２０が事前に作成されているものとする。また、画像特徴群２２１に含まれる全ての画像特徴が処理されるまで、特徴選択部２４２、画像検出部２４４及び検出領域補正部２４６により図９に示す処理が繰り返される。図９のフローチャートにおいて、検出部２４０は、入力画像データ２４１、辞書学習部２１０で作成された特徴別積分画像識別子群２２３、特徴別積分極値２２４、特徴別検出誤差２２５及び対象画像検出器２２２を入力とする。
【００４７】
ステップＳ９０１において、検出部２４０は初期化を行う。具体的には、検出部２４０は、画像特徴群２２１に含まれる画像特徴に対応する使用済みフラグを用意し、その使用済みフラグの全てをクリアする。次に検出部２４０は検出領域候補リストを初期化する。検出領域候補リストには検出すべき矩形領域の座標が保存される。ここでは、検出領域候補リストに入力画像データ２４１全体の領域の座標が保存される。
【００４８】
ステップＳ９０２において、検出部２４０は、使用済フラグの全てがセットされるか、検出領域候補リストにエントリがなくなるまで、ステップＳ９０３〜Ｓ９０８を繰り返す。ここで、使用済フラグの全てがセットされた場合、検出領域候補リストにおいて保存される領域が検出対象画像データ群２００に類似する領域の候補となる。一方、検出領域候補リストにエントリがなくなった場合、検出部２４０は、入力画像データ２４１には検出対象画像データ群２００に類似する領域は含まれないと判定する。
【００４９】
ステップＳ９０３において、検出部２４０は、検出領域候補リストから検出領域候補を取得する。ステップＳ９０４において、検出部２４０は、使用済フラグと検出領域候補と特徴別積分画像識別子群２２３とから、選択特徴２４３の集合と使用積分画像データ群とを選択する。この処理は、検出部２４０内の特徴選択部２４２によって実行される。
【００５０】
ステップＳ９０５において、画像特徴量取得部２３０は、ステップＳ９０４で得た使用積分画像データ群の全てについて、入力画像データ２４１の検出領域候補内の積分画像データ２３２を生成する。この処理は、画像特徴量取得部２３０内の積分画像生成部２３１によって実行される。ステップＳ９０６において、検出部２４０は、選択特徴２４３と特徴別積分極値２２４とステップ９０５で生成された積分画像データ２３２とに基づいて、積分画像データ２３２内から検出対象画像データに似た領域を探索し、検出結果領域２４５の集合を求める。この処理は、検出部２４０内の画像検出部２４４によって実行される。
【００５１】
ステップＳ９０７において、検出部２４０は、ステップＳ９０６で求めた検出結果領域２４５を検出領域候補リストに追記する。ステップＳ９０８において、画像特徴量取得部２３０は、ステップＳ９０５で生成された積分画像データ２３２の記憶容量を解放する。この処理は、画像特徴量取得部２３０内の積分画像破棄部２３５によって実行される。説明の簡略のために、ステップＳ９０２のループにおいて一回のループの終了毎に全ての積分画像データを破棄することとする。但し、演算高速化が必要であれば、例えば積分画像データの破棄に先だって後続するループにおける特徴選択を行い、次のループにおいても継続して用いる積分画像データは破棄せずに再利用する、等の処理を行っても構わない。
【００５２】
ステップＳ９０２のループの終了後、ステップＳ９０９において、検出部２４０は、検出領域候補リスト中のそれぞれの検出領域候補内について対象画像検出器２２２を用いて検出し、検出領域を得る。但し、検出領域候補リスト内にエントリがない場合、入力画像データ２４１内に検出対象画像データ群２００に似た領域は存在しないとする。この検出手法は、図７のステップＳ７０４で学習した対象画像検出器２２２に対応する手法であるべきである。ステップ９０９で求められた検出領域が検出部２４０の出力となる。
【００５３】
図９のフローチャートに示した動作は、例えば以下のようになる。例えば、図４（Ａ）に示す入力画像データ２４１が与えられ、図５に示す特徴別積分画像識別子群２２３、特徴別積分極値２２４及び特徴別検出誤差２２５が与えられたものとする。図１０（Ａ）は、図４（Ａ）に示す入力画像データ２４１から画像特徴、即ち、色クラスタを求めた状態を示している。なお、図１０（Ａ）に示す各領域はそれぞれ、図１０（Ｃ）の凡例が示す色を混合して含んでいる。
【００５４】
ステップＳ９０１において初期化された後、ステップＳ９０４において使用済フラグが全てリセットされた状態、即ち、入力画像データ２４１の全体を検出領域候補とする状態において、選択特徴２４３として図５の画像特徴ＩＤ１が得られ、使用積分画像データ群として黒が得られたとする。ステップＳ９０５において黒の積分画像データが生成される。ステップＳ９０６において図５の画像特徴ＩＤ１に示す選択特徴２４３、特徴別積分極値２２４、及び、ステップ９０５において生成された黒の積分画像データから、検出結果領域２４５として図１０（Ｂ）の領域１００１が得られたものとする。その後、ステップＳ９０７において領域１００１が検出結果領域リストに追記され、ステップＳ９０８において生成された黒の積分画像データは破棄される。
【００５５】
次に、検出結果領域２４５として図１０（Ｂ）の領域１００１が得られた後、ステップＳ９０２のループについて、ステップＳ９０３〜Ｓ９０８を再度下記のように繰り返したとする。即ち、先ずステップＳ９０３において、検出領域候補として領域１００１が取得される。次にステップＳ９０４において、使用済フラグのうち図５に示す画像特徴ＩＤ１がセットされた状態において、選択特徴２４３の集合として画像特徴ＩＤ２、３、４、５が得られ、使用積分画像データ群として白、黒、ベージュ、さらに使用済フラグの全てがセットされたとする。ステップＳ９０５において、白、黒、ベージュに対しそれぞれ入力画像データ２４１の領域１００１内の積分画像データ２３２が生成される。ステップ９０６において、検出結果領域２４５として図１０（Ｂ）の領域１００２が得られ、ステップＳ９０８において、積分画像データ２３２が解放される。ステップＳ９０２のループ終了後、ステップＳ９０９において、対象画像検出器２２２が領域１００２内から領域１００３を検出領域であると判定したとする。この場合、領域１００３が検出部２４０の出力となる。
【００５６】
以上のように、本実施形態によれば、検出において同時に必要となる画像特徴を分割することにより、同時に必要となる記憶容量を低減することができる。
【００５７】
図１１は、図９のステップＳ９０４の詳細を示すフローチャートである。図１１に示す処理では、利用可能な記憶容量の範囲内で積分画像データを生成可能であるように、選択特徴２４３の集合と使用積分画像データ群とが選択される。この選択手法は、制限下で最適解を求めるいわゆるナップサック問題である。具体的な選択手法は任意であるが、ここでは、画像データ中の物体検出タスクであることと、動画への適用時にフレームレート内で演算を終了せねばならないことを考慮して、効果的に検出可能だと思われる画像特徴から順に選択するとする。なお、図１１に示すフローチャートは、図９で初期化され、ループ判定に使用されている使用済フラグと、図９のステップＳ９０３で求められた検出領域候補と、特徴別積分画像識別子群２２３とを入力とする。
【００５８】
ステップＳ１１０１において、検出部２４０は、選択特徴２４３の集合と使用積分画像データ群とを初期化する。ステップＳ１１０２において、検出部２４０は、利用可能な記憶容量を取得する。ここで取得される利用可能な記憶容量は、図１におけるＲＡＭ１０５の未使用領域のうち、積分画像データ２３２の保持に利用可能な容量であるとする。
【００５９】
ステップＳ１１０３において、検出部２４０は、画像特徴群２２１に含まれ、且つその使用済フラグがセットされていないそれぞれの画像特徴について、ステップＳ１１０４〜Ｓ１１０９を繰り返す。その順序は任意であるが、例えば、その特徴別積分極値を生成頻度の総和で割った値が大きい順とする。
【００６０】
ステップＳ１１０４において、検出部２４０は、ステップＳ１１０３で着目した画像特徴の未使用積分画像データ群を求める。具体的には、検出部２４０は、図５の特徴別積分画像識別子群２２３から、着目した画像特徴に対応する特徴別積分画像識別子群を取得し、この特徴別積分画像識別子群のうち、使用積分画像データ群に含まれない特徴別積分画像識別子の集合を求める。
【００６１】
ステップＳ１１０５において、検出部２４０は、記憶容量が足りるか否かを判定する。記憶容量が足りない場合、ステップＳ１１０６〜Ｓ１１０９を省略し、ステップ１１０３のループを次の画像特徴について継続する。一方、記憶容量が足りる場合、処理はステップＳ１１０６に移行する。具体的には、検出部２４０は、未使用積分画像データ群に含まれる要素数に対し、検出領域候補と同等の面積の積分画像データに必要な記憶容量を乗算し、その積が利用可能な記憶容量を超えるか否かを識別する。未使用積分画像データ群が空集合であれば、この積は０となる。
【００６２】
ステップＳ１１０６において、検出部２４０は利用可能な記憶容量を更新する。具体的には、検出部２４０は利用可能な記憶容量からステップ１１０５で求めた積を減算する。ステップＳ１１０７において、検出部２４０は使用積分画像データ群にステップ１１０４で求めた未使用積分画像データ群を追加する。ステップＳ１１０８において、検出部２４０は、選択特徴２４３の集合にステップ１１０３で着目した画像特徴を追加する。ステップＳ１１０９において、検出部２４０は、ステップ１１０３で着目した使用済フラグをセットする。
【００６３】
ステップＳ１１０３のループを終了した場合、ステップＳ１１０８で求めた選択特徴２４３の集合、ステップＳ１１０７で求めた使用積分画像データ群及びステップＳ１１０９で更新された使用済フラグがこのフローチャートの出力である。但し、選択特徴２４３の集合が空集合であれば、記憶容量の不足を意味するため、異常終了すべきである。
【００６４】
このフローチャートの動作は例えば以下のようになる。例えば入力時に使用済フラグが全てリセットされた状態、且つ検出領域候補として入力画像データ２４１の全体、例えば１９２０＊１０８０の大きさを持つ面積、画像特徴ＩＤ１の特徴別積分画像識別子群２２３が入力だったとする。図１３にＲＡＭ１０５のメモリマップを示す。
【００６５】
ステップＳ１１０１において、選択特徴２４３の集合、使用積分画像データ群が初期化される。ステップＳ１１０２において、ＲＡＭ１３０１の利用可能な記憶容量１３０２として３メガバイトが得られたとする。ステップＳ１１０３で画像特徴として画像特徴ＩＤ１が選択されたとする。ステップＳ１１０４において、画像特徴ＩＤ１の特徴別積分画像識別子は黒、且つ使用積分画像データ群は空集合なので、未使用積分画像データとして黒が選択される。
【００６６】
ステップＳ１１０５において、黒の積分画像データの作成に必要な記憶容量１３０３として１９２０＊１０８０＊１として約２メガバイトが求められ、記憶容量が足りると判定される。ステップＳ１１０６において、記憶容量１３０２から記憶容量１３０３を減算し、残りの記憶容量１３０４は３メガバイト−２メガバイト＝１メガバイトとなる。
【００６７】
ステップＳ１１０７において、使用積分画像データ群に黒が追加される。ステップＳ１１０８において、選択特徴２４３の集合に画像特徴ＩＤ１が追加される。ステップＳ１１０９において、画像特徴ＩＤ１の使用済フラグがセットされる。ステップＳ１１０３〜Ｓ１１０９のループが繰り返されるが、このループの範囲内では、ステップＳ１１０５において記憶容量が足りるとみなされることはなく、ステップＳ１１０６〜Ｓ１１０９が実行されることはないとする。すると、このフローチャートは、選択特徴２４３として特徴量ＩＤ１、使用積分画像データ群として黒、使用済フラグとして画像特徴ＩＤ１をセットした状態をアウトプットとする。
【００６８】
または、入力時に、使用済フラグのうち画像特徴ＩＤ１がセットされた状態、且つ検出候補領域として画像データに示す領域、例えば８００＊６００の大きさを持つ面積、図５に示す特徴別積分画像識別子群２２３が与えられたとする。ステップＳ１１０１において、選択特徴２４３の集合、使用積分画像データ群が初期化される。ステップＳ１１０２において、ＲＡＭ１３１１の利用可能な記憶容量１３１２として３メガバイトが得られたとする。ステップＳ１１０３で画像特徴として画像特徴ＩＤ４が選択されたとする。
【００６９】
ステップＳ１１０４において、画像特徴ＩＤ４の特徴別積分画像識別子２２３は白と黒、且つ使用積分画像データ群は空集合なので、未使用積分画像データとして白と黒が選択される。ステップＳ１１０５において、白と黒の積分画像データの作成に必要な記憶容量１３１３として８００＊６００＊２として約０．９６メガバイトと推定され、記憶容量が足りると判定される。
【００７０】
ステップＳ１１０６において、記憶容量１３１２から記憶容量１３１３が減算され、残りの記憶容量１３１４は３メガバイトから０．９６メガバイトを引き２．０４メガバイトとなる。ステップＳ１１０７において、使用積分画像データ群に白と黒が追加される。ステップＳ１１０８において、選択特徴２４３の集合に画像特徴ＩＤ４が追加される。ステップＳ１１０９において、画像特徴ＩＤ４の使用済フラグがセットされる。ステップＳ１１０３のループが繰り返され、さらに、選択特徴２４３の集合及び使用済フラグとして画像特徴ＩＤ２、３、５、使用積分画像データとしてベージュが追加されたとする。ベージュの積分画像データの作成に必要な記憶容量１３１５は０．４８メガバイト、残りの記憶容量１３１６は１．５６メガバイトとなる。すると、このフローチャートは、選択特徴２４３として画像特徴ＩＤ２、３、４、５、使用積分画像データ群として白、黒、ベージュ、使用済フラグの全てをセットした状態をアウトプットとする。
【００７１】
先に示した図１１の２つの動作例が示すように、本実施形態によれば、画像特徴の生成に必要な積分画像データ数を求めることにより、同時に必要となる記憶容量の最大値を求めることができる。且つ、積分画像データの生成に必要となる記憶容量を求め、利用可能な記憶容量と比較し、同時に保持する積分画像データ数を制御することにより、積分画像データが使用する記憶容量に上限を設定することができる。
【００７２】
図１２は、図９のステップＳ９０６の詳細を示すフローチャートである。図１２（Ａ）に示すフローチャートは、選択特徴２４３の集合、特徴別積分画像識別子群２２３、特徴別積分極値２２４、特徴別検出誤差２２５及び積分画像データ２３２を入力とする。積分画像データ２３２中から、選択特徴２４３の集合に含まれるそれぞれの画像特徴について、検出対象画像データ群２００に似た領域を二分探索し、且つ特徴別検出誤差２２５を用いて適宜検出結果を補正し、検出結果領域２４５の集合を求める。なお、二分探索は再帰呼び出し処理で実現することができる。
【００７３】
ステップＳ１２０１において、検出部２４０は初期化を行う。具体的には、検出部２４０は、積分画像データ２３２の全領域を求め、開始時領域及び処理中領域に設定する。ステップＳ１２０２において、検出部２４０は、選択特徴２４３の集合に含まれるそれぞれの画像特徴について、ステップＳ１２０３〜Ｓ１２０８を繰り返す。
【００７４】
ステップＳ１２０３において、検出部２４０は、ステップＳ１２０２で着目した画像特徴について、特徴別積分極値２２４を求める。ステップＳ１２０４において、検出部２４０は検出済領域リストを初期化する。ステップＳ１２０５において、処理中領域の画像特徴量が特徴別積分極値２２４よりも大きいか否かを判定する。処理中領域の画像特徴量が特徴別積分極値２２４よりも大きくない場合、検出部２４０は、検出領域なしとしてこのフローチャートを終了する。なお、処理中領域の画像特徴量２３４の取得は、画像特徴量演算部２３３に準じる。一方、処理中領域の画像特徴量が特徴別積分極値２２４よりも大きい場合、処理はステップＳ１２０６に移行する。
【００７５】
ステップＳ１２０６において、検出部２４０は、処理中領域を探索して検出済領域リストを求める。図１２（Ｂ）は、ステップＳ１２０６の詳細を示すフローチャートである。ステップＳ１２０７において、検出部２４０は、検出済領域リストのそれぞれの検出済領域について、ステップＳ１２０８を繰り返す。
【００７６】
ステップＳ１２０８において、検出部２４０は検出済領域を補正する。具体的には、検出部２４０は、ステップＳ１２０２で着目した画像特徴に対応する特徴別検出誤差２２５を取得し、ステップＳ１２０７で着目した検出済領域を特徴別検出誤差２２５の分だけ拡大し、その拡大した領域と開始時領域との積領域をとる。そして、検出部２４０はその積領域を処理中領域リストに登録する。検出済領域の拡大は、例えば、検出済領域の矩形の中央を同一とする、検出済領域の縦横それぞれについて特徴別検出誤差２２5を掛けた積をその縦横に持つ矩形領域を求めればよい。このステップは検出領域補正部２４６に相当する。次に、ステップＳ１２０７のループ及びステップＳ１２０２のループの終了後、ステップＳ１２０９において、検出部２４０は、処理中領域リストを検出結果領域２４５の集合とする。ステップＳ１２０９で求められた検出結果領域２４５の集合がこのフローチャートの出力である。
【００７７】
このフローチャートの動作は例えば以下のようになる。例えば入力時に、選択特徴２４３の集合として図５に示す画像特徴ＩＤ１、特徴別積分画像識別子群２２３、特徴別積分極値２２４及び特徴別検出誤差２２５が得られ、積分画像データ２３２として図６（Ｂ）に示す積分画像データ６１１が得られたとする。
【００７８】
ステップＳ１２０１において、検出部２４０は、開始時領域及び処理中領域を積分画像データ６１１の全領域、即ち領域６１２に設定する。ステップＳ１２０２において、検出部２４０は、選択特徴２４３のうち画像特徴ＩＤ１に着目する。ステップＳ１２０３において、検出部２４０は、図５の特徴別積分極値２２４から画像特徴ＩＤ１に対応する特徴別積分極値を求める。
【００７９】
ステップＳ１２０４において、検出部２４０は検出済領域リストを初期化する。ステップＳ１２０５において、検出部２４０は、領域６１２から得られる画像特徴量、即ち９２６は特徴別積分極値、即ち１００よりも大きい。従って、処理はステップＳ１２０６に移行する。ステップＳ１２０６において、検出部２４０は、処理中領域、即ち領域６１２内を探索して検出済領域リストを求める。検出済領域リストとして領域６１５が得られたとする。
【００８０】
ステップＳ１２０８において、検出部２４０は、図５の特徴別検出誤差２２５から画像特徴ＩＤ１に対応する特徴別検出誤差を求める。図６の領域６１４が図１０（Ｂ）において領域１００４に対応するとして、検出済領域リストとして得られた領域１００４を拡大し、領域１００１を得る。ステップＳ１２０８で得た領域１００４をこのフローチャートの出力とする。
【００８１】
次に、図１２（Ｂ）を参照しながら、図１２（Ａ）のステップＳ１２０６について説明する。このフローチャートに示す処理では、積分画像データ２３２中から、ある画像特徴について、特徴別積分極値２２４と画像特徴量取得部２３０とを用いて検出対象画像データ群２００に似た領域が二分探索で求められる。なお、このフローチャートは、特徴別積分極値２２４、積分画像データ２３２、検出済領域リスト及び処理中領域を入力とする。
【００８２】
ステップＳ１２１０において、画像特徴量演算部２３３は、処理中領域を２つに分割し、それぞれの分割領域について積分画像データから処理中領域の画像特徴量２３４を取得する。ステップＳ１２１１において、検出部２４０は、二分探索を継続するか否かを判定する。二分探索を継続する場合、処理はステップＳ１２１２に移行する。一方、二分探索を継続しない場合、処理はステップＳ１２１３に移行する。処理中領域が十分に大きく、且つ、分割領域の何れかが検出対象画像データ群２００を含む場合に二分探索が継続される。なお、ある分割領域が検出対象画像データ群２００を含むとは、その分割領域の画像特徴量が入力された特徴別積分極値よりも大きい場合である。処理中領域の大きさが検出対象画像データ群２００の大きさを下回った場合や、両方の分割画像データで検出対象画像データ群２００を含むか含まないかの結果が一致する場合、過分割と判断され、探索を終了する。ステップＳ１２１２において、検出部２４０は、その画像特徴量が特徴別積分極値を超えた部分領域を処理中領域として、再帰的に処理中領域を探索し、検出済み領域リストを求める。ステップＳ１２１３において、検出部２４０は、検出済み領域リストに処理中領域を追加する。ステップＳ１２１１で二分探索を継続するか否かに関わらず、ステップＳ１２１３で求められた検出済み領域リストをこのフローチャートの出力とし、このフローチャートの実行を終了する。
【００８３】
このフローチャートの動作は例えば以下のようになる。入力時に、特徴別積分極値２２４として図５に示す画像特徴ＩＤ１に示した特徴別積分極値、図６（Ｂ）に示す積分画像データ６１１、処理中領域として積分画像データ中の領域６１２が得られたとする。
【００８４】
ステップＳ１２１０において、検出部２４０は、処理中領域６１１を領域６１３と領域６１４との二つに分割して、それぞれの分割領域について画像特徴量を取得する。それぞれ、（１０＋０）−（７＋０）＝３、（２２２＋７）−（１０＋９）＝２１０が取得される。ステップＳ１２１１において、検出部２４０は、二分探索を継続するか否かを判定する。ここで処理中領域は十分に大きいものとする。領域６１３の画像特徴量は特徴別積分極値を超えず、領域６１４の画像特徴量は特徴別積分極値を超える。よって、領域６１４について二分探索を継続すると判定される。ステップＳ１２１１において二分探索を継続すると判定されたため、ステップＳ１２１２において、領域６１４についてこのフローチャートを再帰的に呼び出す。以上のような再帰呼び出しを繰り返し、領域６１５を処理中領域として、このフローチャートが呼び出されたものとする。
【００８５】
ステップＳ１２１０において、検出部２４０は、領域６１５を領域６１６と領域６１７との二つに分割して、それぞれの画像特徴量として（７６＋１６）−（１８＋３３）＝４１及び（１４８＋１６）−（１８＋４４）＝６１を得る。ステップＳ１２１１において、領域６１６及び領域６１７の画像特徴量が特徴別積分極値を超えないため、過分割と判定され、二分探索を継続しないと判定される。従って、ステップＳ１２１３において、検出済み領域リストに領域６１５が追加される。ステップ１２１３で追加された領域６１５がこのフローチャートによって求められた画像特徴ＩＤ１に基づいて検出された領域である。
【００８６】
上述した動作例が示すように、本実施形態によれば、積分画像データを用いることにより積分画像データ領域内の特徴量の取得を定数時間内で実現し、且つ、図１２（Ｂ）のフローチャートが示すように画像データ内の分割探索、即ち画像データの画素数に対する線形時間以下の計算量を実現している。この分割探索は非特許文献２に開示されており、必要とされる検出領域の精度に応じて分割手法を改良する余地があることも非特許文献２に示唆されている。本実施形態では、図９のステップＳ９０９に記載したとおり、従来の物体検出技術である対象画像検出器２２２を検出領域内に適用することで検出領域の精度を確保している。但し、分割手法及び探索継続の判断の改良については任意の手法が適用可能である。
【００８７】
上述した本発明の実施形態においては、画素数に対して対数的に比例する処理時間で、同時に必要とする記憶容量量を削減することができる。
【００８８】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。
【００８９】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００９０】
２００：検出対象画像データ群、２１０：辞書学習部、２２０：特徴量辞書、２２１：画像特徴群、２２２：対象画像検出器、２２３：特徴別積分画像識別子群、２２４：特徴積分極値、２２５：特徴別検出誤差、２３０：画像特徴量取得部、２３１：積分画像生成部、２３２：積分画像データ、２３３：画像特徴量演算部、２３４：画像特徴量、２３５：積分画像破棄部、２４０：検出部、２４１：入力画像データ、２４２：特徴選択部、２４３：選択特徴、２４４：画像検出部、２４５：検出結果領域、２４６：検出領域補正部、２４７：補正検出領域
【図１】
2013257832.tif 000003
【図２】
2013257832.tif 000004
【図３】
2013257832.tif 000005
【図４】
2013257832.tif 000006
【図５】
2013257832.tif 000007
【図６】
2013257832.tif 000008
【図７】
2013257832.tif 000009
【図８】
2013257832.tif 000010
【図９】
2013257832.tif 000011
【図１０】
2013257832.tif 000012
【図１１】
2013257832.tif 000013
【図１２】
2013257832.tif 000014
【図１３】
2013257832.tif 000015