(57)【特許請求の範囲】
【請求項１】
記憶部を含んで構成される情報処理装置であって、
入力画像情報を読み込む読込手段と、
前記読込手段で読み込まれた入力画像情報と、複数の画素のうち指標とする画素の位置を示す画素パターンとに基づいて、前記指標とする画素の位置に対応する前記入力画像情報の位置についての累積画像情報を生成する生成手段と、
前記生成手段で生成された累積画像情報を前記記憶部に記憶する記憶制御手段と、
を有する、情報処理装置。
【請求項２】
前記生成手段は、前記入力画像情報に対して前記画素パターンを順次移動し、移動した画素パターンについての前記複数の画素の各位置に対応する前記入力画像情報の位置の画素の合計値を算出し、算出した合計値と、前記移動した画素パターンと近隣関係の画素パターンについて生成された累積画像情報とに基づいて、前記移動した画素パターンに係る累積画像情報を生成する、請求項１記載の情報処理装置。
【請求項３】
前記記憶部に記憶された累積画像情報に基づいて、物体を識別可能な特徴量を算出する累積画像情報利用手段を更に有する、請求項１又は２記載の情報処理装置。
【請求項４】
前記累積画像情報利用手段は、前記入力画像情報の一部の領域を表す局所領域に対応した特徴量と、前記局所領域に含まれる位置の画素パターンに係る累積画像情報及び前記局所領域と近隣関係の画素パターンに係る累積画像情報から算出された特徴量とに基づいて、前記入力画像情報に前記物体を表す画像情報が含まれるか否かを判別する、請求項３記載の情報処理装置。
【請求項５】
前記読込手段は、前記入力画像情報を分割して読み込む、請求項１乃至４の何れか１項記載の情報処理装置。
【請求項６】
前記読込手段は、前記入力画像情報として、動画情報を読み込む、請求項１乃至５の何れか１項記載の情報処理装置。
【請求項７】
記憶部を含んで構成される情報処理装置による情報処理方法であって、
入力画像情報を読み込む読込工程と、
前記読込工程で読み込まれた入力画像情報と、複数の画素のうち指標とする画素の位置を示す画素パターンとに基づいて、前記指標とする画素の位置に対応する前記入力画像情報の位置についての累積画像情報を生成する生成工程と、
前記生成工程で生成された累積画像情報を前記記憶部に記憶する記憶工程と、
を有する、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
従来、情報処理分野においては、多次元配列の情報が頻繁に取り扱われている。その中でも、画像処理、画像認識、画像合成等に関わる一部処理、統計処理等では、特定領域の範囲内における要素の総和値を求めて使用することが多い。
近年、コンピュータ・グラフィックスの分野では、F. C. Crowにより長方形のsummed-area tableと称される、元の入力画像情報に対する累積画像情報の概念が提案されている（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】F. C. Crow, "Summed-Area Tables For Texture Mapping", Computer Graphics, 1984.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、累積画像情報を使用して処理ウィンドウ内の矩形領域の要素の総和を求めるには入力画像情報の全ての画素位置に対応した累積画像情報を準備しなければならず、累積画像情報の保持に多くのメモリリソースを消費する問題があった。
本発明はこのような問題点に鑑みなされたもので、累積画像情報の保持に必要なメモリリソースを低減することを目的とする。
【課題を解決するための手段】
【０００５】
そこで、本発明は、記憶部を含んで構成される情報処理装置であって、入力画像情報を読み込む読込手段と、前記読込手段で読み込まれた入力画像情報と、複数の画素のうち指標とする画素の位置を示す画素パターンとに基づいて、前記指標とする画素の位置に対応する前記入力画像情報の位置についての累積画像情報を生成する生成手段と、前記生成手段で生成された累積画像情報を前記記憶部に記憶する記憶制御手段と、を有することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、累積画像情報の保持に必要なメモリリソースを低減することができる。
【図面の簡単な説明】
【０００７】
【図１】情報処理装置のハードウェア構成の一例を示す図である。
【図２】入力画像情報と累積画像情報との関係を示す図である。
【図３】累積画像情報を用いて矩形領域内の要素の総和値を求める概念を示す図である。
【図４】パターン認識処理の一例を示す図である。
【図５】複数の弱判別器で構成されるパターン識別器の構成の一例を示す図である。
【図６】情報処理装置の全体的な処理に係るフローチャートを示す図である。
【図７】パターン識別器における処理に係るフローチャートを示す図である。
【図８】入力画像情報と累積画像情報との対応を示す図である。
【図９】累積画像情報生成部の構成を示す図である。
【図１０】入力画像情報と生成する累積画像情報との関係を示す図である。
【図１１】累積画像情報利用演算部の構成を示す図である。
【図１２】位置ずれに対する相関性を説明するための図である。
【図１３】バンド領域を示す図である。
【図１４】第２の実施形態の情報処理装置の全体的な処理に係るフローチャートを示す図である。
【図１５】多次元累積画像情報の一例である三次元の累画像積情報を示す図である。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
【０００９】
（第１の実施形態）
図１は、本発明の一実施形態に係る情報処理装置のハードウェア構成を示す図である。
はじめに、様々な画像処理装置を例に挙げて、本情報処理装置の機能の一例である画像処理、画像認識、情報分析を行うに際しての前提の技術を説明する。
画像処理を行う画像処理装置には、入力画像の矩形領域内の要素の総和値を式（１）より計算するものがある（例えば、非特許文献１を参照のこと。）。この画像処理装置は、summed-area tableを入力画像と同サイズ（同要素数）の二次元配列とし、入力画像の座標位置(x,y)の画素値をI(x,y)とし、総和値としてC(x,y)を求める。
【数１】
0005388835.tif 000002
例えば、図２に示すように、summed-area table２０の位置(x,y)の値C(x,y)は、元の入力画像１０において、原点位置(0,0)と位置(x,y)とを対角とする長方形内の要素の総和値となる。なお、非特許文献１では、summed-area tableの原点位置が画像左下として説明されている。
この画像処理装置によれば、入力画像上で水平又は垂直に配置された任意の矩形領域内の画素値I(x,y)の和を、summed-area table上の4点を参照するのみで、求めることができる。例えば、この画像処理装置は、図３に示すように(x0,y0)と(x1,y1)とを対角とする矩形領域内の画素値の総和C(x0,y0;x1,y1)を、式（２）を計算することにより求める。
【数２】
0005388835.tif 000003
したがって、この画像処理装置は、入力画像上の任意の矩形領域内の画素値の総和を高速に求めることができる。
【００１０】
他方、画像認識の分野においては、ViolaとJonesとが上記summed-area tableと同等の累積画像情報をIntegral imageと称している（例えば、参考文献１参照のこと。）。Integral imageを用いた複数の矩形フィルタからなる弱判別器をカスケード接続する構成を備える画像処理装置は、高速な顔検出処理を実現している。
参考文献１：P. Viola, M. Jones, "Rapid Object Detection using a Boosted Cascade of Simple Features", Proc. IEEE Conf. on Computer Vision and Pattern Recognition, Vol. 1, pp.511-518, December 2001.
【００１１】
この画像処理装置による画像認識における顔の認識の方法（パターン識別法）について説明する。
図４は、パターン認識処理の一例を示す図である。画像処理装置は、ある特定の大きさの矩形領域（以下「処理ウィンドウ」と称する。）８０１を処理対象となる入力画像８００内で移動させる。そして、画像処理装置は、各移動先の処理ウィンドウ８０１内に人物の顔が含まれるか否かを判定する。
図５は、各移動先の位置における処理ウィンドウ８０１において、画像処理装置が顔検出を行う構成を示す図である。画像処理装置は、ある処理ウィンドウ内における顔検出についての処理を、複数のステージによって実行する。
ここで、各ステージには、異なる組み合わせの弱判別器が割り当てられている。各弱判別器は、所謂Haar-like特徴を検出するもので、矩形フィルタが組み合わされて構成されている。また、各ステージには、順番が割り当てられており、画像処理装置は、その順番に従って各ステージの処理を行う。例えば、画像処理装置は、第１ステージでの判定の次に第２ステージでの判定を実施し、続いて第３ステージの判定を実施する。
また、例えば、画像処理装置では、各ステージに割り当てられる弱判別器の数が異なる構成を採用している。画像処理装置は、各ステージでは、ステージに割り当てられたパターンの弱判別器を用いて、処理ウィンドウ内に人物の顔が含まれるか否かを判定する。あるステージにおいて、処理ウィンドウ内に人物の顔が含まれないと判定された場合、画像処理装置は、それ以降の順番のステージでは、この位置における処理ウィンドウについての判定を実施しない（カスケード処理が打ち切られる。）。そして、画像処理装置は、最後の順番のステージによる判定で、処理ウィンドウ内に人物の顔が含まれると判定した場合に、この移動先における処理ウィンドウ内に人物の顔が含まれると判定する。
【００１２】
図１に示すように、本情報処理装置は、累積画像情報演算処理部１００、ＣＰＵ１０１、情報入力部１０２、ＤＭＡＣ１０３、外部メモリ１０４、及びバス１０５を含んで構成される。ＣＰＵは、Central Processing Unitの略称であり、ＤＭＡＣは、Direct Memory Access controllerの略称である。なお、各装置（ハードウェア）は、互いにバス１０５を介して接続され、通信可能に構成されている。
ＣＰＵ１０１は、情報処理装置の動作をコントロールし、外部メモリ１０４に格納されたプログラムの実行等を行う。
情報入力部１０２は、入力画像情報（画像データ）を入力する。例えば、情報入力部１０２は、処理対象となる入力画像情報を装置内に取り込む。なお、情報入力部１０２は、CCD等の画像センサによって構成されていてもよいし、ネットワーク等を介して外部装置から入力画像情報を受信するＩ／Ｆ装置であってもよい。ここで、本実施形態では、二次元配列の画像情報（RGB画像、Grayscale画像等の画像情報だけでなく、一次微分フィルタをかけた画像情報、加工された画像情報等も含む。）を入力画像情報と称する。
ＤＭＡＣ１０３は、ＣＰＵ１０１が動作指令することにより、外部メモリ１０４、情報入力部１０２、及び累積画像情報演算処理部１００間の所定サイズのデータ転送を自立的に連続して行う。ＤＭＡＣ１０３は、ＣＰＵ１０１により指令された転送が完了すると、バス１０５を介して割り込み信号をＣＰＵ１０１に通知する。
外部メモリ１０４は、ＲＯＭ、ＲＡＭ、ＨＤＤ等のストレージ装置であり、ＣＰＵ１０１の動作に基づき読み込まれたプログラム、長時間記憶しなくてはならないデータ等を記憶する。外部メモリ１０４は、ＣＰＵ１０１等が各種処理を行う上での作業領域として用いられる記憶領域である。また、外部メモリ１０４は、必要に応じて入力画像情報を保持するための領域として用いられる記憶領域であってもよい。
【００１３】
累積画像情報演算処理部１００は、バスＩ／Ｆ部１１０、累積画像情報生成部１１１、累積画像情報利用演算部１１２、累積画像情報保持部１１３、及びパラメータ保持部１１４を含んで構成される。
累積画像情報生成部１１１は、情報入力部１０２より入力された入力画像情報について、限定された位置の累積画像情報を生成し、累積画像情報保持部１１３は、生成された累積画像情報を保持する。ここで、本実施形態では、Summed-area table、Integral Image等の二次元配列の情報を累積画像情報と称する。
累積画像情報利用演算部１１２は、ＣＰＵ１０１からの要求に従って累積画像情報保持部１１３に保持されている累積画像情報を読み出して種々の演算をし、演算した結果をＣＰＵ１０１に返す。
累積画像情報保持部１１３は、累積画像情報を保持するためのメモリサイズSbufの専用メモリと、専用メモリへの入出力を制御するメモリコントローラと、を含んで構成される。パラメータ保持部１１４は、累積画像情報演算処理部１００内の各部の設定に関する情報を保持する。
本実施形態では、累積画像情報演算処理部１００、ＣＰＵ１０１、情報入力部１０２、ＤＭＡＣ１０３、外部メモリ１０４、及びバス１０５により、情報処理装置における機能及び後述するフローチャートに係る処理が実現される。
なお、本情報処理装置は、上述のハードウェア構成に加え、マウス、キーボード、タッチパネルデバイス、ボタン等である、各種の指示を入力する入力装置を有してもよい。また、本情報処理装置は、液晶パネル、外部モニタ等である、各種の情報を出力する出力装置を有してもよい。
【００１４】
次に、図６を参照して、情報処理装置における処理について説明する。図６は、情報処理装置における処理に係るフローチャートを示す図である。
本情報処理装置では、ユーザの操作、外部装置（図示せず。）からのトリガ等を契機に、処理が開始する。
ステップＳ１１０１では、読込手段の一例である情報入力部１０２は、入力画像情報を入力し（読込み）、入力画像情報を必要に応じて外部メモリ１０４に記憶する。
ステップＳ１１０２では、生成手段の一例である累積画像情報演算処理部１００は、外部メモリ１０４に記憶された入力画像情報を用い、累積画像情報を生成する処理を行う。累積画像情報を生成する処理では、累積画像情報演算処理部１００は、入力画像情報について、限定された位置の累積画像情報を生成する。なお、ＣＰＵ１０１は、ＤＭＡＣ１０３を設定し、外部メモリ１０４から累積画像情報演算処理部１００への入力画像情報の転送を逐次行わせる。
ステップＳ１１０３では、累積画像情報利用手段の一例である累積画像情報演算処理部１００は、累積画像情報保持部１１３に累積画像情報が格納されると、後述の図７を参照して説明するメイン処理を行う。なお、本情報処理装置では、メイン処理として、図７で説明するパターン識別処理を行っているが、累積画像情報を用いる他の処理を適用することが可能である。また、図７に示すパターン識別処理においては、後述のステップＳ１００３の判定処理において、各弱判別器で所定のHaar-like特徴を検出するため、各矩形領域内の要素の総和値を得る必要がある。これに対し、ＣＰＵ１０１は、累積画像情報利用演算部１１２を動作させて矩形領域内の要素の総和値を高速に得ることが可能である。累積画像情報利用演算部１１２の動作については、図１１を参照して説明する。
ステップＳ１１０４では、累積画像情報演算処理部１００は、パターン識別処理等のメイン処理が終了すると、後処理を行う。後処理は、外部装置、ユーザ等に処理の結果を通知する処理、認識の結果を利用して行う諸々の処理である。
【００１５】
本実施形態では、処理が逐次的に行われる構成を採用しているが、これに限られるものではない。例えば、本情報処理装置における後段の処理等で入力画像情報がそのまま利用されない場合には、情報処理装置は、ステップＳ１１０１とＳ１１０２とを並列に処理してもよい。すなわち、情報処理装置は、１ライン入力される毎にステップＳ１１０１とＳ１１０２とを繰り返してもよいし、１要素入力単位でパイプライン的に連続して処理してもよい。このとき、ＣＰＵ１０１は、ＤＭＡＣ１０３に対し、情報入力部１０２から累積画像情報演算処理部１００に入力画像情報の各要素を自動で逐次転送するように設定してもよい。なお、後段の処理とは、累積画像情報を用いるステップＳ１１０３以降の処理を指している。
【００１６】
図７は、メイン処理（本実施形態では、顔検出処理）に係るフローチャートを示す図である。ここで、図７を参照して、メイン処理について説明する。
ステップＳ１００１では、累積画像情報演算処理部１００は、処理の対象となる処理ウィンドウを入力画像情報上に配置する。累積画像情報演算処理部１００は、基本的には、図４に示される内容と同様に入力画像情報の端から一定間隔で縦方向及び横方向へスキャンすることによって網羅的に処理ウィンドウを順次移動して選択する。例えば、累積画像情報演算処理部１００は、入力画像情報をラスタスキャンすることによって処理ウィンドウを選択する。
ステップＳ１００２では、累積画像情報演算処理部１００は、選択した処理ウィンドウについて、処理ウィンドウ内に人物の顔が含まれるか否かの判定を実施するために、カスケード処理におけるステージを選択する。なお、この判定は、図５を参照して説明したように、複数のステージを用いて実施されるので、累積画像情報演算処理部１００は、判定を実施するステージとして第一のものから順に選択する。
ステップＳ１００３では、累積画像情報演算処理部１００は、選択したステージによる判定処理を実施する。この判定処理では、累積画像情報演算処理部１００は、累積得点を算出する。なお、この判定処理の内容については後述する。
【００１７】
ステップＳ１００４では、累積画像情報演算処理部１００は、累積得点がステージごとに予め定められている閾値を超えたか否かを判別する。閾値を越えなかった場合（ＮＯである場合）、累積画像情報演算処理部１００は、処理ウィンドウ内に人物の顔が含まれないと判定し（ステップＳ１００８）、ステップＳ１００７の処理を実行する。他方、累積得点がステージごとに予め定められている閾値を超えた場合（ＹＥＳである場合）、累積画像情報演算処理部１００は、続いて、ステップＳ１００５の処理を行う。
ステップＳ１００５では、累積画像情報演算処理部１００は、現在のステージが最終ステージであるか否かを判別する。最終ステージでなかった場合（ＮＯである場合）、累積画像情報演算処理部１００は、処理をステップＳ１００２に戻す。なお、ステップＳ１００２では、累積画像情報演算処理部１００は、次のステージを選択し、新たに選択したステージによる判定処理を実施する。他方、最終ステージである場合（ＹＥＳである場合）、累積画像情報演算処理部１００は、現在の処理ウィンドウ内に人物の顔が含まれるか否かの最終的な判定をする（ステップＳ１００６）。この時点で、累積画像情報演算処理部１００は、この処理ウィンドウ内に人物の顔が含まれると判断したことになる。
ステップＳ１００７では、累積画像情報演算処理部１００は、判定の対象となっていた処理ウィンドウが、入力画像情報の中で最後の処理ウィンドウであるか否かを判別する。最後の処理ウィンドウでない場合（ＮＯである場合）、累積画像情報演算処理部１００は、処理をステップＳ１００１に戻す。なお、ステップＳ１００１では、累積画像情報演算処理部１００は、次の処理ウィンドウを選択し、ステップＳ１００２以降の処理を実行する。他方、最後の処理ウィンドウである場合、累積画像情報演算処理部１００は、入力画像情報に対するメイン処理（顔検出処理）を終了する。
【００１８】
次に、各ステージにおける判定処理の内容について説明する。
各ステージには、１以上のパターンの弱判別器が割り当てられている。この割り当ては学習処理において、AdaBoost等のブースティング学習アルゴリズムによって実施される。
したがって、累積画像情報演算処理部１００は、各ステージでは、各ステージに割り当てられたパターンの弱判別器に基づいて、処理ウィンドウ内に顔が含まれるか否かの判定を行う。
より詳細に説明すると、累積画像情報演算処理部１００は、各ステージでは、各ステージに割り当てられた各パターンの弱判別器に基づいて、処理ウィンドウ内の複数の矩形フィルタ（以下「局所領域」と称する。）における特徴量をそれぞれ算出する。このとき用いられる特徴量は、各局所領域内の画素値の合計、平均等、局所領域内の画素値の合計を用いて算出される物体を識別可能な値である。この局所領域内の画素値の合計（要素の総和値）は、図３で説明したように、入力画像に対する累積画像情報（Summed-area table、Integral Image等）を用いて高速に計算される。
【００１９】
次に、累積画像情報演算処理部１００は、算出した特徴量の相対値（比、差分値等。ここでは特徴量の差分値を算出するものとする。）としての差分値を算出し、この差分値に基づいて処理ウィンドウに人物の顔が含まれるか否かの判定を実施する。より具体的には、累積画像情報演算処理部１００は、算出した差分値が、判定に用いられているパターンの弱判別器に設定された閾値よりも大きいか否か（或いは、小さいか否か）を判断する。そして、累積画像情報演算処理部１００は、この判断の結果に応じて、処理ウィンドウにおける人物の顔の存否を判定する。
ただし、この時点での判定は、各パターンの弱判別器それぞれに基づいた判定であり、ステージによる判定ではない。このように、累積画像情報演算処理部１００は、各ステージでは、割り当てられた全てのパターンの弱判別器それぞれに基づいて個別に判定を実施し、それぞれの判定結果を得る。
【００２０】
次に、累積画像情報演算処理部１００は、ステージにおける累積得点を算出する。ここで、各パターンの弱判別器には、個別の得点が割り当てられている。累積画像情報演算処理部１００は、処理ウィンドウ内に人物の顔が含まれると判定すると、そのとき使用したパターンの弱判別器に割り当てられた得点を参照し、参照している得点を当該ステージの累積得点に加算する。このようにして、累積画像情報演算処理部１００は、加算した得点の総計を、ステージにおける累積得点として算出する。そして、累積画像情報演算処理部１００は、このステージにおける累積得点が特定の閾値（累積得点閾値）を越えた場合に、このステージでは処理ウィンドウ内に人物の顔が含まれる可能性が有ると判定し、次のステージでの処理を行う。他方、ステージにおける累積得点が累積得点閾値を越えない場合、累積画像情報演算処理部１００は、このステージでは処理ウィンドウ内に人物の顔が含まれないと判定し、カスケード処理を打ち切る。
このような構成により、高速なパターン識別を実現する。なお、弱判別器は、予め適正な学習が行われている場合には、顔以外のパターン識別器として用いることができる。
【００２１】
(累積画像情報の説明)
本実施形態の累積画像情報は、Integral Image（或いは、Summed-area table）に相当する累積画像情報の中から、生成する位置を限定した累積画像情報である。
図８は、入力画像情報と、入力画像情報の各要素の位置（入力画像情報を構成する各画素の位置）に対応する累積画像情報との関係を示す図である。図８には、入力画像情報の各要素の位置に対応する累積画像情報の位置が示されている。
図８（ａ）には、入力画像情報６０１と、入力画像情報６０１の１つの画素である画素６０２とが示されている。
図８（ｂ）には、入力画像情報６０１の各画素の位置に対応する累積画像情報６１１が示されている。例えば、画素６０２に対応する累積画像情報は、累積画像情報６１２である。
本実施形態では、累積画像情報生成部１１１は、水平方向にP画素、垂直方向にQ画素の単位（P,Qは正の整数であり、少なくとも一方は２以上である。）で累積画像情報６１１を分割し、そのP×Q画素の中から1以上P×Q未満の任意の位置の累積画像情報を生成する。より具体的には、本実施形態では、累積画像情報生成部１１１が生成する累積画像情報を、P×Q画素パターン６１４の中から右下に位置する累積画像情報６１８としている。なお、累積画像情報６１３は、生成される累積画像情報であることを示している。
図８（ｃ）には、画素パターンの例が示されている。ここで、本実施形態では、累積画像情報生成部１１１は、P×Q画素パターン６１４に基づいて右下に位置する累積画像情報６１８を生成したが、これに限られるものではない。例えば、累積画像情報生成部１１１は、累積画像情報６１５から累積画像情報６１７までのいずれかの累積画像情報を生成する画素パターン６２１から画素パターン６２３までの画素パターンに基づいて累積画像情報を生成してもよい。また、例えば、累積画像情報生成部１１１は、累積画像情報６１５から累積画像情報６１８までを組み合わせた位置を生成する画素パターン６３１、画素パターン６３２等の画素パターンに基づいて累積画像情報を生成してもよい。また、例えば、累積画像情報生成部１１１は、P×Q画素単位で変則的な位置を生成する画素パターン６４１に基づいて累積画像情報を生成してもよい。すなわち、累積画像情報生成部１１１（より広義には、累積画像情報演算処理部１００）は、複数の画素のうち指標とする画素の位置を示す画素パターンに基づいて累積画像情報を生成する。
【００２２】
（累積画像情報生成部の説明）
図９及び図１０を参照して、累積画像情報生成部１１１の構成及び動作について説明する。ここでは、累積画像情報生成部１１１は、図８で説明したP=2、Q=2の画素パターン６１４に基づいて累積画像情報を生成するものとする。
図９は、バスＩ／Ｆ部１１０、累積画像情報生成部１１１、累積画像情報保持部１１３、及びパラメータ保持部１１４の構成を示す図である。また、図１０は、入力画像情報から累積画像情報を生成する構成の一例を示す図である。
パラメータ保持部１１４は、累積画像情報サイズ記憶レジスタ２０１を含んで構成される。累積画像情報サイズ記憶レジスタ２０１は、累積画像情報生成部１１１で生成する累積画像情報のサイズを記憶する。累積画像情報サイズ記憶レジスタ２０１には、バスＩ／Ｆ部１１０を介してＣＰＵ１０１により処理が開始される前に値が設定される。
累積画像情報生成部１１１は、アドレスカウンタ２０２、入力値保持レジスタ２０３、合計値保持レジスタ２０４、累積値参照レジスタ２０５、合計値計算部２０６、及び累積値計算部２０７を含んで構成される。
入力値保持レジスタ２０３は、バスＩ／Ｆ部１１０を介してＣＰＵ１０１又はＤＭＡＣ１０３の制御により入力される入力画像情報の要素値を一時保持する。ここでは、例えば、図１０における画素１３０１から画素１３０４まで（P=2,Q=2）の画像データが要素値として順次送られてくるものとする。ここで、画素１３０１の位置を(x,y)とすると、画素１３０２から画素１３０４までの各位置は、(x+1,y)、(x,y+1)、(x+1,y+1)で定義される位置となる。
合計値計算部２０６は、入力値保持レジスタ２０３に保持された画素１３０１から画素１３０４までの合計値を計算する。また、合計値保持レジスタ２０４は、計算された合計値を保持する。
ここで、各位置の画素値をI(x,y)で表すと、合計値計算部２０６は、合計値Isumを、式（３）により算出する。
【数３】
0005388835.tif 000004
【００２３】
アドレスカウンタ２０２は、累積画像情報サイズ記憶レジスタ２０１に記憶されている累積画像情報のサイズに基づき、合計値保持レジスタ２０４に合計値が入力される毎に、累積画像情報を格納すべき累積画像情報保持部１１３のメモリアドレスを計算する。例えば、アドレスカウンタ２０２は、最初の合計値（累積画像情報の原点位置）が入力されると、格納すべきアドレスを０又は所定のオフセット値にリセットし、以後終端まで、格納先アドレスを１ずつインクリメントする。
また、アドレスカウンタ２０２は、累積画像情報を求めるために必要な現在の位置の周辺の累積画像情報（換言するならば、移動先の画素パターンと近隣関係の画素パターンについて生成されている累積画像情報）の参照アドレスを計算する。例えば、現在の累積画像情報１３１４の位置が(x',y')であるとする。この場合、アドレスカウンタ２０２が参照する累積画像情報１３１１から累積画像情報１３１３までの位置は、それぞれ(x'-1,y'-1)、(x',y'-1)、(x'-1,y')となる。そこで、アドレスカウンタ２０２は、これらの位置に対応する累積画像情報保持部１１３内のアドレスを現在の位置のアドレスから計算する。ただし、現在の位置が１ライン目にある場合は、累積画像情報１３１１、累積画像情報１３１２が存在せず、1カラム目であれば累積画像情報１３１３が存在しない。この場合、アドレスカウンタ２０２は、累積画像情報の領域外であることを示す情報を累積画像情報保持部１１３に出力する。
アドレスカウンタ２０２は、計算したアドレスをメモリコントローラ１１３−２に与え、記憶制御手段の一例であるメモリコントローラ１１３−２は、記憶部の一例である累積画像情報保持メモリ１１３−１の当該アドレスへの書き込みと読み出しとを行う。
メモリコントローラ１１３−２によって読み出された累積画像情報C'(x'-1,y'-1)、C'(x',y'-1)、C'(x'-1,y')は、累積値参照レジスタ２０５により一時保持される。ただし、累積画像情報の領域外の情報が入力されている場合、メモリコントローラ１１３−２は、読み出し値として０をセットする。
【００２４】
累積値計算部２０７は、現在の位置の累積画像情報を計算する。累積値計算部２０７は、合計値保持レジスタ２０４に保持されているP×Q画素の合計値Isumと累積値参照レジスタ２０５に保持されている累積画像情報とにより、現在の位置の累積画像情報を計算する。求める現在の位置の累積画像情報をC'(x',y')とすると、累積値計算部２０７は、累積画像情報C'(x',y')を、式（４）により算出する。
【数４】
0005388835.tif 000005
そして、メモリコントローラ１１３−２は、算出された累積画像情報C'(x',y')をアドレスカウンタ２０２によって計算された格納先のアドレスの位置に書き込む。
なお、本実施形態では、累積画像情報生成部１１１は、累積画像情報を生成する位置を限定して計算を行い、累積画像情報を累積画像情報保持部１１３に保持する構成であるが、これに限られるものではない。例えば、累積画像情報生成部１１１は、一旦、全入力画素位置に対応する累積画像情報を生成した後に不要な位置の累積画像情報を間引いて累積画像情報を生成し、累積画像情報保持部１１３は、生成された累積画像情報を保存してもよい。この構成であっても、同様のメモリリソース削減の効果が得られる。
【００２５】
（累積画像情報利用演算部の説明）
図１１及び図１２を参照して、累積画像情報利用演算部１１２について説明する。図１１は、累積画像情報利用演算部１１２、累積画像情報保持部１１３、パラメータ保持部１１４、及びバスＩ／Ｆ部１１０の構成を示す図である。本実施形態では、情報処理装置は、累積画像情報を利用した演算の結果を用いる後段の処理として、パターン識別処理を行っている（例えば、図７を参照のこと。）。したがって、必要とする演算の結果は、処理ウィンドウ内に相対的に配置される、Haar-like特徴を検出する弱判別器の各局所領域内の要素の総和値である。入力画像の任意の局所領域内の要素の総和値は、図３を参照して説明したように４点の累積画像情報（要素値）を参照することで計算することができる。
【００２６】
累積画像情報利用演算部１１２は、領域指定レジスタ３０１、参照アドレス計算部３０２、参照値一時保持レジスタ３０３、加減算処理部３０４、及び演算結果保持レジスタ３０５を含んで構成される。なお、図１及び図９で示したものと同一のものについては、同一の符号を付している。また、ＣＰＵ１０１は、累積画像情報が生成される前に、バスＩ／Ｆ部１１０を介して予め累積画像情報のサイズを設定する。
ここで、ＣＰＵ１０１は、処理ウィンドウ内における要素の総和値を求める局所領域を特定する。そして、ＣＰＵ１０１は、この局所領域の２点の対角座標（相対座標）を、累積画像情報の原点からの絶対座標、例えば、図３における(x0,y0),(x1,y1)に変換する。そして、ＣＰＵ１０１は、バスＩ／Ｆ部１１０を介して領域指定レジスタ３０１に絶対座標値を設定する。
バスＩ／Ｆ部１１０を介してＣＰＵ１０１から演算開始のトリガが掛かると、参照アドレス計算部３０２は、領域指定レジスタ３０１に設定されている絶対座標値を参照し、図３に示すＡ，Ｂ，Ｃ，Ｄの位置の累積画像情報を格納しているアドレスを計算する。そして、参照アドレス計算部３０２は、計算したアドレスをメモリコントローラ１１３−２に順に渡す。
メモリコントローラ１１３−２は、受信したアドレスに基づき累積画像情報保持メモリ１１３−１にアクセスし、順次取得した４点の累積画像情報を参照値一時保持レジスタ３０３に設定する。
参照値一時保持レジスタ３０３に４点の値が保持されると、加減算処理部３０４は、４点の値を用いた所定の加減算処理を実行する。ここで、所定の加減算処理とは、式（２）に示した演算を行うものである。なお、演算結果保持レジスタ３０５は、この演算の結果を保持する。ＣＰＵ１０１は、演算の完了を、バスＩ／Ｆ部１１０を介して割り込み通知、完了フラグの参照等によって把握する。そして、ＣＰＵ１０１は、演算結果保持レジスタ３０５の値を取得し、取得した値を設定されている局所領域の要素の総和値として使用する。
【００２７】
なお、加減算処理部３０４で用いられている加減算器は、全てNbufビットの正の値を入出力とするものである。また、変換元の入力画像情報上の座標を(Xsrc,Ysrc)、対応する累積画像情報上の座標を（X'dst, Y'dst）とすると、ＣＰＵ１０１は、式（５）及び式（６）により、入力画像情報の局所領域の座標から累積画像情報の座標への変換を行う。
【数５】
0005388835.tif 000006
ここで、ＣＰＵ１０１は、X'dst,Y'dstについて、小数点以下を切り捨てることで近傍座標に近似させている。これにより求められる局所領域内の要素の総和値にずれが生じるので、このずれを許容できるアルゴリズムに適用する。このずれが許容できるアルゴリズムの１つとして参考文献１に示す認識処理が挙げられる。
例としてP=2,Q=2とすると、認識処理での要素の総和値を求める座標がずれる量は、最大で１となり、計算の結果に影響が生じるとも考えられる。
【００２８】
そこで、図１２を参照して、ずれの影響がほとんどないことを説明する。ずれがない局所領域１４０１の要素の総和値と右端に1画素のずれが生じた局所領域１４０２とを比較すると、局所領域１４０２に局所領域１４０１が包含されているので、相関性が高いことが想像できる。また、局所領域のサイズが大きいほどずれによる影響は小さいことがわかる。さらに、実際は、認識対象の様々なサンプルを使って学習処理がされているので、数画素のずれに対応することができる。そのため1画素程度のずれが与える影響は、局所領域のサイズが極端に小さい場合、局所領域のずれが起こる境界で極端な入力値をとる等の特殊なケースに限られる。
このように、座標のずれの影響は、小さいと考えられるが、さらに座標のずれの影響を極力排除するには予め学習時に生成する累積画像情報の位置を考慮しておく方法が有効である。例としてP=2,Q=2とした場合、学習時に認識処理で使用する局所領域の位置を水平方向、垂直方向共に偶数となる位置に限定しておく。これによりずれを学習の段階で考慮しておくことができるため精度低下を極力抑えられる。
【００２９】
以上、第１の実施形態に係る情報処理装置について説明した。ここで、入力画像情報から、summed area table又はintegral imageと称される累積画像情報を生成するにあたり、通常は、入力画像情報の全ての位置に対応する累積画像情報が求められてバッファに格納される。すなわち、入力画像情報の幅（横方向画素数）をXimg、高さ（縦方向画素数）をYimgとし、各画素のビット精度をNimgビット（但し正の整数）とすると、累積画像情報に要するビット精度は、式（７）により算出される。そして、全累積画像情報を格納するために必要なバッファサイズSbufは、式（８）により算出される。
【数６】
0005388835.tif 000007
したがって、累積画像情報を格納するバッファサイズSbufは、１要素のビット精度Nbufにも依存するが、Ximg、Yimgの影響も大きい。例えば、VGAサイズの８ビットGrayscale画像を入力画像とする場合、Nimg=8, Ximg=640, Yimg=480であるので、必要なビット精度は、Nbuf=27bitとなる。よって、入力画像情報に対する累積画像情報を全域分、一時的に持つ必要がある場合には、Nbuf×Ximg×Yimg=8,294,400bitものＲＡＭ等のメモリ領域を準備する必要があり、メモリリソースを多量に消費する。
【００３０】
特にこのような累積画像情報に基づく処理をハードウェアで行う場合、バッファとして用いられるメモリの容量は、回路の規模に直結するため切実な問題である。また、ソフトウェアによる処理であっても、Sbufを低減できれば、より少ないメモリで処理することが可能となって、リソースの消費量を抑えることができる。
例えば、認識処理において、累積画像情報を使用して処理ウィンドウ内の局所領域の画素値の総和を求めるには、入力画像の全ての画素位置に対応した累積画像情報を準備しなければならない。また、基本的には、入力画像と同じサイズのXimg、Yimgが必要で、累積画像情報を減らすことができなかった。
このような事情を踏まえ、本実施形態では、情報処理装置が上述した構成を有することで、累積画像情報の保持に必要なメモリリソースを低減することができる。
【００３１】
すなわち、本実施形態では、認識処理に用いる累積画像情報を保持するために必要な累積画像情報保持部１１３のバッファサイズSbufを低減するために、情報処理装置は、P×Q画素の単位で分割して所定の位置の累積画像情報のみを生成し、保持した。通常、バッファサイズSbufは、式（８）により算出されるが、本実施形態によれば、バッファサイズS'bufは、式（９）により算出される。
【数７】
0005388835.tif 000008
例えば、P=2、Q=2の場合は、バッファサイズSbufを1/4にまで低減させることができ、メモリリソースを大幅に削減することができる。このように、バッファサイズを低減させることにより、入力画像情報の全ての位置に対して要素の総和値を求めることはできなくなるが、上述したように、認識処理では影響がほとんどない。
【００３２】
また、本実施形態に係る認識処理では、入力画像からターゲットとなる物体を認識するために、累積画像情報（インテグラルイメージ）を利用して特徴量（一部領域の要素の総和値）を高速に計算する。この処理において、本実施形態では、入力画像情報の各要素に対して限定された位置の累積画像情報を保持することでメモリリソースの消費を低減させる。また、本実施形態では、特徴量を計算する位置を限定した累積画像情報のみを予め学習させておくことで認識の精度を保ちつつ、メモリリソースの消費を低減することを可能にする。
すなわち、本実施形態では、累積画像情報を使用して処理ウィンドウ内の局所領域の画素値の総和を求める処理において、累積画像情報の保持に使用するバッファ容量を低減できる。
【００３３】
＜第２の実施形態＞
第１の実施形態では、入力画像情報について、限定された位置の累積画像情報を格納する方法について説明したが、第２の実施形態では、入力画像情報をバンド領域で分割し、分割した領域ごとに累積画像情報を生成して格納する方法について説明する。
図１３は、累積画像情報保持部１１３の累積画像情報保持メモリ１１３−１を、バンドバッファとして利用する際に一時的に保持される累積画像情報に係る入力画像情報の領域を示す図である。
処理ウィンドウ７０１は、図４で示した処理ウィンドウに対応するものである。そして、入力画像情報７００をバンドに分割するものがバンド領域７１１（矩形領域）、バンド領域７１２（矩形領域）である。バンド領域７１１は、処理の開始時に入力されるバンド領域であり、バンド領域７１２は、所定ライン数（ここでは、１ライン）だけ下方に移動したバンド領域である。
バンド領域７１１の高さYbandは、処理ウィンドウ領域の高さ又はそれ以上に定められる。なお、本実施形態では、Ybandを処理ウィンドウ領域の高さと等しく定めている。また、バンド領域７１１の幅Xbandは、入力画像情報の幅に等しい。そして、バンド領域７１１の各要素に対して第１の実施形態と同様に生成する位置を限定した累積画像情報が累積画像情報７２１である。また、バンド領域７１２についても同様に、生成する位置を限定した累積画像情報が累積画像情報７２２である。そして、この累積画像情報７２１等が累積画像情報保持部１１３の累積画像情報保持メモリ１１３−１に保持される。
第１の実施形態では、情報処理装置がP×Q画素単位で累積画像情報を生成する位置の限定を行う方法を説明した。この方法は、本実施形態にも同様に適用でき、累積画像情報７２１の幅は、バンド領域の幅Xbandの1/P、累積画像情報721の高さは、バンド領域の高さYbandの1/Qのサイズとなる。そして累積画像情報保持部１１３の累積画像情報保持メモリ１１３−１をバンドバッファとして使うために必要なバッファサイズS''bufは、式（１０）により算出される。
【数８】
0005388835.tif 000009
【００３４】
次に、図１４を参照して、情報処理装置の全体の処理を説明する。なお、ここでは、第１の実施形態で示した内容と異なる点に着目して説明をする。
すなわち、第２の実施形態では、入力画像情報をバンド領域に分割して情報入力し（ステップＳ１２０１）、全バンド領域の処理が完了するまでループさせる（ステップＳ１２０５）構成が第１の実施形態に係る構成と異なる点である。
なお、本実施形態では、情報処理装置は、ステップＳ１２０１における入力画像情報をバンド領域に分割し、分割した情報を入力している。すなわち、情報処理装置は、入力画像情報を外部メモリ１０４が一旦保持し、ＣＰＵ１０１又はＤＭＡＣ１０３が１回目にバンド領域７１１に対応する画像データを送り、２回目にバンド領域７１２に対応する画像データを送る構成を有する。
【００３５】
ここで、本実施形態でのバンド領域の進ませ方は、図１３の矢印７０３に示す通りであり、バンド領域７１１、バンド領域７１２へと進み、その後、下方のバンド領域へ終端まで進ませる方法である。また、処理ウィンドウの進ませ方は、図１３の矢印７０２に示す通りであり、バンド領域内を左端から右端まで進ませる方法である。ただし、これらバンド領域と処理ウィンドウとを進ませる方法は、バンド領域に分割したときの一例であって、情報処理装置は、バンド領域を下から上に順番に進ませてもよいし、バンド領域をランダムに進ませてもよい。
また、ここで示した逐次処理は、一例であって、情報処理装置は、情報入力部１０２から入力される入力画像情報が外部メモリ１０４に１バンド領域分たまった場合に、累積画像情報を生成する処理を開始するようにパイプライン的に処理を行ってもよい。
また、本実施形態では、情報処理装置は、バンド領域７１１についての処理が終わった後に、バンド領域７１２を最初から送りなおす。しかしながら、情報処理装置は、差分だけのデータを転送して処理できるように累積画像情報保持メモリ１１３−１をリングバッファとして利用してもよい。
【００３６】
以上、第２の実施形態に係る情報処理装置について説明した。本実施形態によれば、バンド領域に分割して処理をする場合においても、累積画像情報保持メモリ１１３−１のメモリリソースをさらに低減させることができるようになる。
【００３７】
＜第３の実施形態＞
第１の実施形態及び第２の実施形態では、情報処理装置が二次元配列の情報に対して累積画像情報を生成する構成について説明したが、累積画像情報の保持に必要なバッファサイズの低減は、三次元以上の多次元配列の情報に対しても実現することができる。そこで、第３の実施形態では、三次元配列の情報を例に挙げて、情報処理装置が累積画像情報を生成する構成について説明する。三次元配列の入力画像情報とは、例えば動画情報であって、二次元配列の方法に時間軸の一次元が加わり三次元配列の情報となる。
【００３８】
図１５（ａ）において、点Ｘの位置における三次元の累積画像情報は、三次元の入力画像情報における原点と点Ｘを対角とする直方体の中に含まれる要素の総和値となる。情報処理装置は、この三次元の累積画像情報を用いて、例えば、図１５（ｂ）に示す直方体１５０１内の要素の総和値を求めることが可能である。ここで、直方体１５０１の対角を示す２点の座標を(x0,y0,t0),(x1,y1,t1)とする。Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈの座標における累積画像情報は、（Ａ）に示す内容になる。そして、情報処理装置は、これらの累積画像情報を用いて、直方体１５０１内の要素の総和値S3dを、式（１１）により算出する。
【数９】
0005388835.tif 000010
ここで、本情報処理装置は、三次元の累積画像情報に対し、第１の実施形態及び第２の実施形態に示した構成を適用して、入力画像情報について、限定した位置の累積画像情報をバッファサイズに保持することによりバッファサイズを低減させることができる。
また、三次元を超える多次元の入力画像情報に対する累積画像情報であっても、同様に超直方体で考えれば、入力画像情報について、限定した位置の累積画像情報をバッファサイズに保持することによりバッファサイズを低減させることができる。
【００３９】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００４０】
上述した実施形態の構成によれば、累積画像情報の保持に必要なメモリリソースを低減することができる。
【００４１】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００４２】
１００  累積画像情報演算処理部、  １０１  ＣＰＵ、  １０４  外部メモリ
【図１】
0005388835.tif 000011
【図２】
0005388835.tif 000012
【図３】
0005388835.tif 000013
【図４】
0005388835.tif 000014
【図５】
0005388835.tif 000015
【図６】
0005388835.tif 000016
【図７】
0005388835.tif 000017
【図８】
0005388835.tif 000018
【図９】
0005388835.tif 000019
【図１０】
0005388835.tif 000020
【図１１】
0005388835.tif 000021
【図１２】
0005388835.tif 000022
【図１３】
0005388835.tif 000023
【図１４】
0005388835.tif 000024
【図１５】
0005388835.tif 000025