説明

検出窓走査により画像内の物体を認識および位置特定するためのデータストリームパイプラインアーキテクチャを有する装置

本発明は、検出窓を走査することにより、画像内の物体を認識および位置特定する装置に関する。
本発明によれば、装置(1)は、同時ハードウェアタスク用のパイプライン形式で設計されたデータストリームアーキテクチャを含み、このアーキテクチャは、
各検出窓に対して記述子(D)を生成する手段(4、5、6、9)と、
各記述子に対して方位勾配のヒストグラムを決定するヒストグラム決定部(7)と、
N個の並列の処理ユニット(UT)であって、各処理ユニットは、各記述子に関連付けられたパラメータに応じてヒストグラムを解析することにより、関係する記述子が認識対象物体の少なくとも一部分を含む確率を表すパーシャルスコアを与えることが可能であり、各検出窓のパーシャルスコアの合計は、検出窓(F、F、…、F)が認識対象物体を含む確率を表すグローバルスコア(S、S、…、S)を与える、処理ユニット(UT)と、を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタル画像内の物体を認識および位置特定する装置に関する。本発明は特に、ビデオ監視、移動中のビデオ処理、および運転補助システムのような、検出および/または分類機能を必要とするオンボード電子装置の分野に適用可能である。
【背景技術】
【0002】
動き検出は、連続する画像同士の単純な引き算により実行可能である。しかしながら、この方法の欠点は、種類の異なる、動いている物体同士を区別できないことである。特に、風に揺れる葉の動きと人間の動きとを区別することは不可能である。さらに、オンボード用途では、たとえば、カメラを固定した車両が動いた結果として、画像全体が動きにさらされる可能性がある。
【0003】
人間や人間の顔のような複雑な物体の検出も非常に困難である。これは、物体の見かけの形状が、その形態だけでなく、その姿勢、見る角度、物体とカメラとの間の距離にも依存するためである。これらの困難に加えて、物体の照明、露出、および掩蔽が変化するという問題がある。
【0004】
P.ViolaとM.Jonesは、画像内の物体を確実に検出する方法を開発した。この方法は、特に、P.Viola、M.Jonesの「Robust Real−time Object Detection」(2nd International Workshop on Statistical and Computational Theories of Vision − Modelling, Learning, Computing and Sampling, Vancouver, Canada, July 2001)に記載されている。この方法は、トレーニングフェーズおよび認識フェーズからなる。認識フェーズでは、画像を検出窓で走査する。様々なサイズの物体を識別できるように、検出窓のサイズは可変である。物体の識別は、Haarウェーブレットのような単変数記述子を用いて行う。これらは、比較的シンプルな形状の記述子である。これらの記述子は、トレーニングフェーズにおいて決定され、認識対象物体の代表的特徴を検査することに使用可能である。これらの特徴は、一般には、物体のシグネチャと呼ぶ。画像内の各場所において、検出窓を複数の記述子により解析して、検出窓の様々な領域における特徴を検査し、比較的信頼性の高い結果を得る。
【0005】
記述子の有効性を上げるために、多変数記述子が提案されている。多変数記述子は、たとえば、強度勾配の方位のヒストグラム、ならびに強度勾配の絶対値(magnitude)の密度成分から構成される。
【0006】
この検出方法を高速化するために、これらの記述子をいくつかの分類子に分類し、その後、これらを多段カスケードまたはループの形で検査する。カスケードの各段では、前段より複雑かつ選択的な検査を実行する。これにより、空のような画像内の無関連領域が迅速に除去される。
【0007】
現時点では、ViolaとJonesの方法は、完全に専用の回路によるハードウェア形態、またはプロセッサによるソフトウェア形態で実装される。ハードウェアによる実装は、性能は良好だが、柔軟性が非常に乏しい。これは、特定の種類の物体を特定の精度で検出するために、専用回路をハードワイヤリングするためである。これに対し、ソフトウェアによる実装は、プログラムを用いるために柔軟性は非常に高いが、性能が不十分であることが多い。これは、汎用プロセッサのコンピューティング能力が不十分であるため、かつ/または、デジタル信号プロセッサ(DSP)の、条件付き分岐命令の処理効率が非常に悪いためである。さらに、ソフトウェアソリューションは、消費電力が非常に多く、全体寸法が大きいため、車両や携帯電話などのオンボードシステムへの組み込みが困難である。最後に、ほとんどの場合、内部の記憶容量および/または帯域幅は、迅速な検出を可能にするには不十分である。Li Zhangらの論文「Efficient Scan−Window Based Object Detection using GPGPU」(2008)には、ソフトウェア実装を歩行者の検出に適用する第1の実施例が記載されている。この実装は、GPGPU(General−Purpose computation on Graphics Processing Unit(グラフィックス処理ユニットでの汎用計算))に基づく。グラフィックス処理ユニットは、メモリコントローラおよびPCI Expressバスを介して、プロセッサと接続しなければならない。結果として、この実装は、グラフィックス処理ユニットおよびプロセッサの両方で大量の電力を消費し、合計で300から500W程度の電力を消費する。また、この実装の全体サイズは数十平方センチメートルになり、オンボードソリューションには不適である。Christian Wojekらの論文「Sliding−Windows for Rapid Object Class Localization: A Parallel Technique」(2008)には、やはりGPGPUに基づく、ソフトウェア実装の第2の実施例が記載されている。この実施例も、オンボード用途に関しては同じ欠点がある。
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明の1つの目的は、特に、物体の認識および位置特定に特化された装置を提供することにより、前述の欠点の一部またはすべてを克服することであり、この装置は、プログラム可能ではないが、パラメータ化により、様々な物体を(特に誤警報に関して)可変の精度で検出することを可能にする。
【課題を解決するための手段】
【0009】
この目的のために、本発明は、検出窓を走査することによって、デジタル画像内の物体を認識および位置特定する装置を提案する。本装置は、同時ハードウェアタスク用のデータストリームパイプラインアーキテクチャを含み、前記アーキテクチャは、
各検出窓に対して記述子を生成する手段であって、各記述子は、デジタル画像のうちの関係する検出窓に属する部分の範囲を定める、手段と、
関係する記述子によって範囲を定められた、デジタル画像の部分の特徴を表すヒストグラムを、各記述子に対して決定するヒストグラム決定部と、
N個の並列の処理ユニットであって、検出窓が各処理ユニットに割り当てられ、各処理ユニットは、各記述子に関連付けられたパラメータに応じて関係する記述子のヒストグラムを解析することにより、記述子が認識対象の物体の少なくとも一部分を含む確率を表すパーシャルスコアを与えることが可能であり、各検出窓のパーシャルスコアの合計は、検出窓が認識対象物体を含む確率を表すグローバルスコアを与える、処理ユニットと、
を含むことを特徴とする。
【0010】
本発明は、特に、特定用途向け集積回路(ASIC)として、またはフィールドプログラマブルゲートアレイ(FPGA)として実装可能であることが有利である。結果として、本発明による装置の表面積および消費電力は、プログラミングによるソリューションの場合の100分の1に過ぎない。したがって、本装置は、オンボードシステムに組み込むことが可能である。本装置はまた、いくつかの分類検査を並列実行することにより、高い計算能力を提供することが可能である。本装置は、完全なパラメータ化が可能である。したがって、検出のタイプ、検出の精度、ならびに使用する記述子および分類子の数を調節することにより、結果の質と計算時間とのバランスを最適化することが可能である。
【0011】
本装置の別の利点は、パイプラインアーキテクチャによってタスクを並列化することである。すべてのモジュールが並列に(同時に)動作する。この場合、所与の記述子の集合の系列を考えると、単一時間間隔において、処理ユニットは、ランクpの記述子に関連付けられたヒストグラムを解析し、ヒストグラム決定部は、ランクp+1の記述子に関連付けられたヒストグラムを決定し、記述子を生成する手段は、ランクp+2の記述子を決定する。したがって、記述子およびヒストグラムを決定する時間は、検出に割り当てられた時間、すなわち、ヒストグラム解析時間によってマスクされる。したがって、本装置は、高い計算能力を有する。
【0012】
例示として、一実施形態を詳細に説明することにより、本発明をさらに十分に説明し、他の利点を明らかにする。この説明では、添付図面を参照する。
【図面の簡単な説明】
【0013】
【図1】本発明による装置の動作の可能なステップを示す図である。
【図2】図1に示した、装置の動作の、可能なサブステップを示す図である。
【図3】本発明による装置の一例示的実施形態の概略図である。
【図4】図3の装置の処理ユニットの一例示的実施形態を示す図である。
【図5】本発明の応用に用いる様々な座標系を示す図である。
【図6】図3の装置のカスケード部の一例示的実施形態を示す図である。
【図7】図3の装置の記述子ループ部の一実施形態を示す図である。
【図8】図3の装置のヒストグラム決定部の一例示的実施形態を示す図である。
【図9】図3の装置のスコア解析部の一例示的実施形態を示す図である。
【発明を実施するための形態】
【0014】
図1は、本発明による装置の動作の可能なステップを示す。この後の説明では、Nc列×Nl行のマトリックスの画素によって形成されたデジタル画像を参照する。各画素は、重みと呼ばれる、信号の振幅を表す値を含み、たとえば、光度を表す重みを含む。本発明による装置の動作は、ViolaとJonesの方法を適応させた方法に基づいている。ViolaとJonesの方法は、たとえば、国際公開第2008/104453(A)号パンフレットに記載されている。この検出方法は、倍精度浮動小数点数の計算に基づいている。これらの計算は、複雑な浮動小数点算術演算ユニットを必要とし、これらのユニットは、実行速度、シリコン表面積、および消費電力の観点から高コストである。本発明の方法は、固定小数点データに対して演算を行うように修正したものである。これらの演算は、よりシンプルかつ高速な整数演算子のみを必要とする。本方法はまた、処理ユニットにおける検出の計算での除算演算子の使用を回避するように修正されている。したがって、整数演算子のみ(加算および乗算)を用いることにより、計算は高速になり、装置は小型になり、その消費電力は低減される。しかしながら、固定小数点計算は精度が劣るため、本方法は、計算でのこのような誤差を考慮するように修正しなければならなかった。
【0015】
第1のステップEでは、物体をサーチする画像(原画像Iorigと呼ぶ)に関して、信号の振幅勾配シグネチャを計算する。このシグネチャは、たとえば、光度の勾配のシグネチャである。これによって、(導出画像と呼ばれる)新しい画像Iderivが生成される。第2のステップEでは、この導出画像Iderivから、M個の方位画像I(mは1からMまで変化するインデックス)を計算することが可能である。各方位画像Iは、原画像Iorigと同じサイズであり、画素ごとに、特定の角度値範囲にわたる光度勾配を含む。たとえば、角度値範囲が20°であれば、9個の方位画像Iが得られる。たとえば、第1の方位画像Iは、0°から20°の範囲の方向を有する光度勾配を含む。第2の方位画像Iは、20°から40°の範囲の方向を有する光度勾配を含む。以降も同様であり、第9の方位画像Iは、160°から180°の範囲の方向を有する光度勾配を含む。光度勾配の絶対値に相当する、M+1番目(すなわち、10番目)の方位画像IM+1も計算することが可能である(図1の例ではM=9である)。このM+1番目の方位画像IM+1は、特に、輪郭の存在に関する情報を与えることに使用可能である。第3のステップEでは、各方位画像Iを積分画像Iint,mに変換する(mは1からMまで変化する)。積分画像は、原画像と同じサイズの画像であって、各画素p(m,n)の重みwi(m,n)は、画像の原点Oと当該画素p(m,n)とで範囲が定まる矩形面内に位置するすべての画素p(x,y)の重みwo(x,y)の合計によって計算される。言い換えると、積分画像Iint,mの画素p(m,n)の重みwi(m,n)は、次の関係式でモデル化できる。
【数1】


第4のステップEでは、このようにして得られたM+1個の積分画像Iint,mを、それぞれが1つ以上の記述子を含む、様々なサイズの検出窓で走査する。M+1個の積分画像Iint,mが同時に走査され、この走査は、これらの積分画像Iint,mの走査が、原画像Iorigの走査と対応するように行われる。記述子は、画像のうちの、検出窓に属する部分の範囲を定める。これらの画像部分において、物体のシグネチャをサーチする。検出窓による積分画像Iint,mの走査は、4レベルの入れ子ループにより行う。第1のループ(スケールループと呼ぶ)は、検出窓のサイズに対するループである。このサイズは、たとえば、スケールループが進行するにつれて小さくなるため、解析対象の領域がどんどん小さくなる。第2のループ(ステージループと呼ぶ)は、解析の複雑さのレベルに対するループである。この複雑さのレベル(ステージとも呼ぶ)は、主に、検出窓に用いる記述子の数に依存する。最初のステージでは、記述子の数は、比較的限られている。たとえば、検出窓あたり1個または2個の記述子があればよい。記述子の数は、一般に、ステージの数とともに増える。1つのステージに用いる記述子の集合を分類子と呼ぶ。第3のループ(位置ループと呼ぶ)は、実際の走査を実行する。言い換えると、第3のループは、積分画像Iint,m内の検出窓の位置に対するループである。第4のループ(記述子ループと呼ぶ)は、現在のステージに用いる記述子に対するループである。このループが反復されるごとに、分類子の記述子の1つが解析されて、これが認識対象物体のシグネチャの一部を含んでいるかどうかが判定される。
【0016】
図2は、図1の第4のステップEの可能なサブステップとして、4レベルの入れ子ループを詳細に示す。第1のステップE41では、スケールループを初期化する。スケールループの初期化は、たとえば、検出窓の初期サイズを生成することと、初期動きステップを生成することとを含む。第2のステップE42では、ステージループを初期化する。このループの初期化は、たとえば、最初のステージに用いる記述子を決定することを含む。これらの記述子は、検出窓におけるそれぞれの相対座標により特定可能である。第3のステップE43では、位置ループを初期化する。この初期化は、たとえば、検出窓を生成することと、各検出窓を、本発明による装置の処理ユニットに割り当てることとを含む。検出窓は、窓リストと呼ばれるリストの形式で生成可能である。スケールループの各反復には、別々のリストが関連付けられる。ステージループの最初の反復に際しては、検出窓は、通常、網羅的に、すなわち、積分画像Iint,mのすべての領域をカバーするように生成される。検出窓の数が処理ユニットの数を超える場合は、位置ループを複数回反復することが必要になる。検出窓は、積分画像Iint,m内のそれぞれの位置によって決定可能である。これらの位置を、窓リストに格納する。第4のステップE44では、記述子ループを初期化する。この初期化は、たとえば、処理ユニットに割り当てられた各検出窓に対して、当該ステージに関連付けられた分類子の記述子の中の第1の記述子の絶対座標を決定することを含む。第5のステップE45では、各記述子に対してヒストグラムを生成する。ヒストグラムは、たとえば、M+1個の成分Cを含む(mは1からM+1まで変化する)。各成分Cは、方位画像Iのうちの1つにおける、当該記述子に含まれる画素p(x,y)の重みwo(x,y)の合計を含む。これらの重みwo(x,y)の合計は、特に、後述するように、対応する積分画像の4個の画素の重みを取得するシンプルな方法で求めることが可能である。第6のステップE46では、ヒストグラムを解析する。各解析の結果を、パーシャルスコアと呼ばれるスコア形式で与える。これは、解析されたヒストグラムに関連付けられた記述子が認識対象物体のシグネチャの一部を含む確率を表す。第7のステップE47では、記述子ループが終了したかどうか、すなわち、現在のステージに関してすべての記述子が生成されたかどうか、を判定する。これが当てはまらない場合は、記述子ループにおいてステップE48に進み、ステップE45にループバックする。記述子ループにおいて先へ進むことは、装置の処理ユニットに割り当てられた各検出窓に対して、当該ステージに関連付けられた分類子の記述子の中の別の記述子の絶対座標を決定することを含む。次に、新しい各記述子に対して新しいヒストグラムを生成する。新しいヒストグラムは、新しいパーシャルスコアを与える。記述子ループの反復ごとにこれらのパーシャルスコアを合算することにより、最終反復における各検出窓の分類子に対するグローバルスコアSを与える。これらのグローバルスコアSは、認識対象物体が検出窓に含まれる確率を表しており、この確率は、現在のステージに関連する。ステップE47で、記述子ループが終了していることが判明した場合は、ステップE49で、グローバルスコアSが所定のステージ閾値Sより大きいかどうかを判定する検査を行う。このステージ閾値Sは、たとえば、トレーニングフェーズで決定される。ステップE50では、グローバルスコアSがステージ閾値Sより大きい検出窓を、新しい窓リストに格納する。これにより、それらの窓を、次のステージ分類子で再度解析することが可能になる。その他の検出窓は、最終的には、認識対象物体を含んでいないと見なされる。したがって、それらの窓は格納されず、以後の処理でさらに解析されることはない。ステップE51では、位置ループが終了しているかどうか、すなわち、当該のスケールおよびステージに関連するすべての検出窓が処理ユニットに割り当てられたかどうかを判定する。これが当てはまらない場合は、記述子ループにおいてステップE52に進み、ステップE44にループバックする。位置ループにおいて先へ進むことは、現在のステージの窓リストに含まれていて、まだ解析されていない検出窓を処理ユニットに割り当てることを含む。一方、位置ループが終了している場合は、ステップE53において、ステージループが終了しているかどうか、すなわち、現在のステージがループの最後のステージかどうかを判定する。現在のステージは、たとえば、ステージカウンタによりマーキングされている。ステージループが終了していない場合は、ステージE54においてステージを変更する。ステージの変更は、たとえば、ステージカウンタをインクリメントする形で行われる。ステージの変更はまた、現在のステージに用いる記述子の相対座標を決定することを含むことも可能である。ステップE55では、前のステージで生成された窓リストに応じて、位置ループを初期化する。次に、このリストにある各検出窓を、本装置の各処理ユニットに割り当てる。ステップE55の最後に、ステップE44にループバックする。ステージループの最初の反復の場合と同様に、各解析対象検出窓が最終的には確実に処理ユニットに割り当てられるように、必要に応じて、ステップE51およびE52をループバックすることが可能である。ステップE53において、ステージループが終了していることが判明した場合は、ステップE56において、スケールループが終了しているかどうかを判定する。これが当てはまらない場合は、ステップE57においてスケールを変更し、ステップE42にループバックする。スケールの変更は、たとえば、新しいサイズの検出窓およびこれらの検出窓のための新しい動きステップを決定することを含む。次に、ステージループ、位置ループ、および記述子ループを用いて、これらの新しい検出窓において物体をサーチする。スケールループが終了していれば、すなわち、すべてのサイズの検出窓が解析済みであれば、ステップE58において処理を終了する。すべてのステージを成功裏に通過した検出窓、すなわち、ステージループの最後の反復において各種窓リストに格納されている検出窓は、認識対象物体を含んでいると見なされる。
【0017】
図3は、本発明による装置1の一例示的実施形態を示しており、装置1は、図2を参照して上述した走査ステップEを実行する。装置1は、たとえば、小型の特定用途向け集積回路(ASIC)の形で実装される。この回路は、有利なことに、パラメータ化が可能である。したがって、装置1は、ある物体の認識および位置特定の用途に特化されているが、いくつかのパラメータを修正することにより、別のタイプの物体を検出することが可能である。装置1は、M+1個の積分画像Iint,mを収容するメモリ2を含んでいる。M+1個の積分画像Iint,mは、既に定義した、M個の方位画像の積分画像と、光度勾配の絶対値の積分画像とに対応している。装置1はさらに、メモリ制御部3と、スケールループ部4と、カスケード部5と、記述子ループ部6と、ヒストグラム決定部7と、N個の並列な処理ユニットUT、UT、…、UT(まとめてUTと称する)と、スコア解析部8と、制御部9とを含んでいる。メモリ制御部3は、ヒストグラム決定部7の、メモリ2へのアクセスを制御することが可能である。スケールループ部4は、制御部9によって制御されて、上述のスケールループを実行する。すなわち、スケールループ部4は、ステップE41においてスケールループの初期化を生成し、ステップE57において、積分画像Iint,mにおける検出窓サイズおよび検出窓動きステップを生成する。検出窓のサイズおよび動きステップは、パラメータ化が可能である。スケールループ部4は、検出窓サイズデータおよび動きステップをカスケード部5に送る。カスケード部5は、ステージループおよび位置ループを実行する。具体的には、カスケード部5は、検出窓サイズおよび動きステップに応じて、各検出窓に対して座標(xFA,yFA)および(xFC,yFC)を生成する。これらの座標(xFA,yFA)および(xFC,yFC)は、記述子ループ部6に送られる。カスケード部5はまた、各検出窓を処理ユニットUTに割り当てる。記述子ループ部6は、記述子ループを実行する。具体的には、記述子ループ部6は、処理ユニットUTに割り当てられた各検出窓に対し、現在のステージに関連付けられた分類子の様々な記述子の座標(xDA,yDA)および(xDC,yDC)を連続的に生成する。これらの座標(xDA,yDA)および(xDC,yDC)は、漸次ヒストグラム決定部7に送られる。ヒストグラム決定部7は、座標(xDA,yDA)および(xDC,yDC)とM+1個の積分画像Iint,mとから、各記述子についてのヒストグラムを連続的に決定する。一実施形態では、各ヒストグラムは、M+1個の成分Cを含み、各成分Cは、方位画像Iのうちの1つにおける、当該記述子に含まれる画素p(x,y)の重みwo(x,y)の合計を含む。これらのヒストグラムは、処理ユニットUT、UT、…、UTに送られる。本発明によれば、N個の処理ユニットUT、UT、…、UTは並列である。各処理ユニットUTは、そのユニットに割り当てられた検出窓に含まれる記述子の1つのヒストグラムに対し、解析を実行する。ヒストグラム解析は、たとえば、「属性」、「記述子閾値S」、「α」、「β」という4つのパラメータに応じて実行される。これらのパラメータは、修正可能であって、特に、認識対象物体の種類および当該ステージに依存する。たとえば、これらのパラメータは、トレーニングステージで決定される。これらのパラメータは、ステージ反復に依存するため、ステップE42およびE54でのステージループの反復ごとに、処理ユニットUT、UT、…、UTに送られる。ヒストグラム解析により、このヒストグラムのパーシャルスコアが、処理ユニットUTに割り当てられた検出窓の分類子に対するグローバルスコアとともに生成される。処理ユニットUTは、最大でN個のヒストグラム解析を同時に実行することが可能である。ただし、必ずしもすべての処理ユニットUTが記述子ループの反復に用いられるわけではない。使用される処理ユニットUTの数は、解析対象ヒストグラムの数に依存し、したがって、現在のステージに関連する窓リストに含まれる検出窓の数に依存する。したがって、装置1の消費電力を、実行するプロセスの数に応じて最適化することが可能である。記述子ループの最後に、各ヒストグラムのパーシャルスコアを合算することにより、各検出窓の分類子に対するグローバルスコアSを与える。これらのグローバルスコアSは、スコア解析部8に送られる。スコア解析部8は、これらのグローバルスコアSに基づいて、ステージループの次のステージのための窓リストを生成する。
【0018】
上記の装置1の説明は、図2の処理の説明を参照して行った。しかしながら、装置1は、パイプラインアーキテクチャをベースとしていることに注意されたい。したがって、別々の記述子に対して、処理における別々のステップが並列に実行される。言い換えると、装置1を構成している様々なモジュールが同時に動作する。具体的には、記述子ループ部6、ヒストグラム決定部7、N個の処理ユニットUT、UT、…、UT、およびスコア解析部8は、それぞれ、パイプラインアーキテクチャの第1、第2、第3、および第4のステージを形成している。
【0019】
図4は、M+1個の成分Cを有するヒストグラムを解析する処理ユニットUTの一例示的実施形態を示す。処理ユニットUTは、M+1個の入力部と1個の出力部とを含む第1の論理ユニット21を含んでいる。「論理ユニット」という用語は、1つ以上の入力部と1つ以上の出力部とを有する被制御回路であって、各出力部が、(たとえば、汎用コントローラによって、または論理ユニットの内部論理によって)論理ユニットに適用されるコマンドに従って、いずれかの入力部と接続可能である回路を表す。「論理ユニット」という用語は、最も広い意味に解釈すべきである。複数の入力部および/または出力部を有する論理ユニットは、それぞれが1つ以上の入力部と1つ以上の出力部とを有するマルチプレクサおよび/またはデマルチプレクサならびに論理ゲートの集合によって形成可能である。論理ユニット21は、属性パラメータに応じて、M+1個の成分Cのいずれかを選択することが可能である。処理ユニットUTはさらに、比較器22を含んでおり、比較器22は、論理ユニット21によって選択された成分Cを受け取る第1の入力部221と、記述子閾値パラメータSを受け取る第2の入力部222とを有している。選択された成分Cと閾値パラメータSとの比較の結果は、2つの入力部と1つの出力部とを含む第2の論理ユニット23に送られる。この論理ユニット23の第1の入力部231は、パラメータαを受け取り、第2の入力部232は、パラメータβを受け取る。比較の結果に応じて、論理ユニット23の出力部は、パラメータαまたはパラメータβを与える。具体的には、論理ユニット21で選択された成分Cが閾値パラメータSより大きい場合は、パラメータαが出力部に与えられる。逆に、選択された成分Cが閾値パラメータSより小さい場合は、パラメータβが出力部に与えられる。論理ユニット23の出力は、アキュムレータ24に収容されている値に加算される。ヒストグラムの複数の成分Cを比較しなければならない場合、論理ユニット21は、それらを連続して選択する。選択された成分Cは、1つずつ、閾値パラメータSと比較され、パラメータαおよび/またはβは、アキュムレータ24内で合算されて、ヒストグラムのパーシャルスコアが生成される。こうして、処理ユニットUTは、分類子を形成する記述子の様々なヒストグラムを解析する。したがって、パラメータαおよび/またはβは、当該分類子のすべての記述子に関してアキュムレータ24内で合算可能であり、これによって、検出窓におけるこの分類子に対するグローバルスコアSが得られる。
【0020】
一特定実施形態では、最初のM個の成分Cは、M+1番目の成分CM+1で除算されてから、閾値パラメータSと比較され、M+1番目の成分CM+1は、当該記述子の表面積で除算されてから、閾値パラメータSと比較される。代替として、図4に示すように、閾値パラメータSに、解析済みヒストグラムのM+1番目の成分CM+1を乗ずるか、当該成分Cに基づいて記述子の表面積を乗ずることが可能である。この場合、処理ユニットUTはさらに、第3の論理ユニット25を含んでおり、論理ユニット25は、ヒストグラムのM+1番目の成分CM+1を受け取る第1の入力部251と、記述子の表面積を受け取る第2の入力部252とを有している。論理ユニット25の出力部は、2つの入力部251および252のいずれかを、乗算器26の第1の入力部261に接続する。いずれを接続するかは、選択される乗算によって決まる。乗算器26の第2の入力部262は、閾値パラメータSを受け取り、乗算器26の出力部は、比較器22の第2の入力部222に接続されている。
【0021】
処理ユニットUTはさらに、2つのバッファメモリ27および28を直列に含むことが可能である。第1のバッファメモリ27は、ヒストグラム決定部7から、第1のヒストグラムのM+1個の成分Cを所定の時間間隔で受け取ることが可能である。その次の時間間隔において、第1のヒストグラムの成分Cを、論理ユニット21の入力部に接続された第2のバッファメモリ28に転送することが可能であり、並行して、第2のヒストグラムの成分Cを第1のバッファメモリ27にロードすることが可能である。2つのバッファメモリを用いることにより、ヒストグラムの計算時間を補償することが可能である。
【0022】
図5は、本発明に用いる様々な座標系を示す。画像41に直交基準フレーム(O,i,j)が関連付けられており、これは、この場合には、積分画像Iint,mである。原点Oは、たとえば、画像41の左上隅に固定されている。したがって、この画像41内で、検出窓Fを、検出窓Fの対向する2つの隅部FおよびFの座標(xFA,yFA)および(xFC,yFC)で識別することが可能である。検出窓Fには、第2の直交基準フレーム(OF,i,j)を関連付けることが可能である。原点OFは、たとえば、検出窓Fの左上隅に固定されている。記述子Dの位置は、基準フレーム(OF,i,j)内では、記述子Dの対向する2つの隅部DおよびDの相対座標(x’DA,y’DA)および(x’DC,y’DC)で特定され、さらに基準フレーム(O,i,j)内では、絶対座標(xDA,yDA)および(xDC,yDC)で特定される。
【0023】
図6は、カスケード部5の一例示的実施形態を示す。カスケード部5は、有限状態機械51と、4つの論理ユニット521、522、523、および524と、4つのレジスタブロック531、532、533、および534とを含んでいる。各論理ユニットは、1個の入力部とN個の出力部とを含んでおり、各レジスタブロックは、各論理ユニットに関連付けられている。レジスタブロック531、532、533、または534は、N個のデータレジスタを含んでおり、各データレジスタは、関連付けられた論理ユニット521、522、523、または524のいずれかの出力部に接続されている。有限状態機械51は、検出窓サイズおよび動きステップに関する情報を受け取り、最大N個の検出窓Fを生成して、これらを処理ユニットUT、UT、…、UTに割り当てる。検出窓の生成は、それらの隅部FおよびFの座標(xFA,yFA)および(xFC,yFC)を決定することを含む。上述のように、検出窓Fの座標(xFA,yFA)および(xFC,yFC)は、ステージループの最初の反復において余すところなく生成される。次の反復では、位置のリストに含まれている検出窓Fだけが解析される。座標(xFA,yFA)および(xFC,yFC)は、第1の論理ユニット521の入力部、第2の論理ユニット522の入力部、第3の論理ユニット523の入力部、および第4の論理ユニット524の入力部に送られる。各論理ユニット521、522、523、524は、関係する処理ユニットUTに応じて、それぞれの入力部をそれぞれのいずれかの出力部に接続する。したがって、レジスタブロック531、532、533、および534は、使用するすべての処理ユニットUTに関して、座標xFA、yFA、xFC、およびyFCをそれぞれ収容する。
【0024】
図7は、記述子ループ部6の一例示的実施形態を示す。記述子ループ部6は、第1の論理ユニット61および第2の論理ユニット62を含んでいる。論理ユニット61は、その入力部において、第1および第2のレジスタブロック531および532からデータ、すなわち、様々な処理ユニットUTに関する座標xFAおよびyFAを受け取る。論理ユニット62は、その入力部において、第3および第4のレジスタブロック533および534からデータ、すなわち、座標xFCおよびyFCを受け取る。記述子ループ部6はさらに、メモリ63を含んでおり、メモリ63は、様々な記述子Dの相対座標(x’DA,y’DA)および(x’DC,y’DC)を収容する。これらの記述子は、現在のステージに応じて変化する。現在のステージに関連付けられた分類子を形成する記述子Dの相対座標(x’DA,y’DA)および(x’DC,y’DC)は、計算部64の第1の入力部641に連続して送られる。この計算部64はさらに、第2および第3の入力部642および643において、検出窓Fの座標(xFA,yFA)および(xFC,yFC)を、論理ユニット61および62の出力部から受け取る。したがって、計算部64は、記述子Dの隅部DおよびDの絶対座標(xDA,yDA)および(xDC,yDC)を計算することが可能である。この絶対座標(xDA,yDA)および(xDC,yDC)は、論理ユニット66を介してレジスタブロック65に送られる。論理ユニット66は、たとえば、1つの入力部と4つの出力とを含んでおり、各出力は、レジスタブロック65の4つのデータレジスタのいずれかに接続されている。記述子ループ部6はさらに、有限状態機械67を含んでおり、有限状態機械67は、論理ユニット61、62、および66と、制御手段671、672、673、および674の、メモリ63への読み出しアクセスとを制御する。有限状態機械67は、接続手段675および676からスケールループおよびステージループの反復回数を受け取って、処理ユニットUTに割り当てられた各検出窓Fに対する記述子Dを連続して生成する。記述子ループ部6はさらに、計算部68を含むことが可能であり、計算部68は、絶対座標(xDA,yDA)および(xDC,yDC)から記述子の表面積を計算する。この表面積の値は、データレジスタ69に格納可能である。
【0025】
図8は、ヒストグラム決定部7の一例示的実施形態を示す。ヒストグラム決定部7は、3つの部分に分けられる。第1の部分71は、記述子Dの4つの隅部に対応する画素D、D、D、およびDのメモリアドレスを、隅部DおよびDの絶対座標(xDA,yDA)および(xDC,yDC)から生成する。第2の部分72は、ViolaとJonesの方法により、ヒストグラム成分Cを計算し、第3の部分73は、ヒストグラム成分Cをフィルタリングする。第1の部分71は、アドレス発生器711を含んでおり、アドレス発生器711は、その入力部において、絶対座標(xDA,yDA)および(xDC,yDC)と、当該記述子Dの表面積とを受け取る。したがって、記述子Dの表面積は、ヒストグラム成分Cと同じタイミングで、ヒストグラム決定部7を介して処理ユニットUTに送ることが可能である。アドレス発生部711は、絶対座標(xDA,yDA)および(xDC,yDC)から始めて、記述子Dの他の2つの隅部DおよびDの絶対座標(xDB,yDB)および(xDD,yDD)、すなわち、それぞれ、(xDC,yDA)および(xDA,yDC)を求める。したがって、アドレス発生部711は、各積分画像Iint,mに対して記述子Dの4つの隅部D、D、D、およびDのメモリアドレスを発生させる。これらの画素D、D、D、およびDの重みwo(xDA,yDA)、wo(xDB,yDB)、wo(xDC,yDC)、およびwo(xDD,yDD)は、メモリ2から、(たとえば、論理ユニット713を介して)4×(M+1)個のデータレジスタを含むレジスタブロック712にロードされる。第2の部分72は、加算器および減算器の集合721を含んでおり、集合721の入力部は、レジスタブロック712に接続されており、集合721の出力部は、M+1個のデータレジスタを含むレジスタブロック722に接続されている。この第2の部分72、特に加算器および減算器の集合721は、各クロックサイクルにおいてM+1個のヒストグラム成分Cを生成するように設計されている。各成分Cは、積分画像Iint,mの画素D、D、D、およびDの重みwo(xDA,yDA)、wo(xDB,yDB)、wo(xDC,yDC)、およびwo(xDD,yDD)から計算され、レジスタブロック722のデータレジスタのいずれかに格納される。図5に示した積分画像Iint,mおよび記述子Dの場合、成分C(mは、1からM+1の範囲の整数)の計算は、次の関係式でモデル化できる。
=D−D−D+D (2)
したがって、各成分Cは、方位画像Iの、記述子Dに含まれる画素p(x,y)の重みwo(x,y)の合計を含む。第3の部分73は、フィルタ731を含んでおり、フィルタ731は、光度勾配が非常に小さいヒストグラムを排除する。これは、そのようなヒストグラムがノイズと見なされるためである。言い換えると、成分CM+1が所定閾値(いわゆるヒストグラム閾値S)を下回る場合は、すべての成分Cをゼロに設定する。次に、成分Cをレジスタブロック732に格納する。これにより、成分Cが処理ユニットUTで使用可能になる。
ヒストグラム決定部7は、装置1における重要な要素である。ヒストグラム決定部7の性能は、メモリ2の帯域幅に直接関係する。ヒストグラムの計算では、4×(M+1)個のデータにアクセスすることが必要である。メモリ2が1サイクルにk個のデータにアクセスできるとすると、ヒストグラムの計算のサイクル数Nは、次の関係式で定義される。
【数2】


有利なことに、メモリ2は、率kを4×(M+1)に近づけることが可能な、広い帯域幅を有する。いかなる場合でも、率kは、サイクル数Nが10未満になるように選択することが好ましい。この数Nは、ヒストグラムの計算時間に対応する。ヒストグラムの計算時間は、ヒストグラムの解析においては、処理ユニットUTのバッファメモリ27によってマスクすることが可能である。
【0026】
図9は、スコア解析部8の一例示的実施形態を示す。スコア解析部8は、FIFOスタック81、すなわち、最初の入力データ要素が最初の出力になるスタックを含んでいる。FIFOスタック81は、位置リストを制御することが可能である。具体的には、FIFOスタック81は、分類子のグローバルスコアSが現在のステージ閾値Sより大きい検出窓Fの座標(xFA,yFA)および(xFC,yFC)を格納することが可能であり、この閾値Sは、ステージに応じて可変である。FIFOスタック81はまた、これらの座標(xFA,yFA)および(xFC,yFC)に関連付けられたグローバルスコアSを格納することが可能である。スケールループの現在の反復が既知であるため、検出窓Fの位置およびサイズを特定するためには、検出窓Fの座標(xFA,yFA)だけを格納すればよい。図9に示した一特定実施形態では、FIFOスタック81は、論理ユニット82を介してレジスタブロック531の座標xFAを連続的に受け取り、論理ユニット83を介してレジスタブロック532の座標yFAを連続的に受け取る。N個の処理ユニットUTによって計算されたグローバルスコアSは、レジスタブロック84に格納され、論理ユニット85を介して、座標xFAおよびyFAととともにFIFOスタック81に送られる。検出窓Fに関連付けられたグローバルスコアSに応じて、座標(xFA,yFA)は、FIFOスタック81に書き込まれても書き込まれなくてもよい。スコアSは、たとえば、現在のステージ閾値Sと比較される。様々なステージ閾値Sを、レジスタブロック86に格納することが可能である。ステージ閾値Sは、たとえば、論理ユニット87によって選択される。論理ユニット87は、入力部がレジスタブロック86に接続されており、出力部が比較器88に接続されている。比較器88は、スコアSのそれぞれと、現在のステージ閾値Sとを比較する。スコアSが閾値Sより大きければ、座標(xFA,yFA)がFIFOスタック81に書き込まれる。論理ユニット82、83、85、および87は、有限状態機械89によって制御される。スコア解析部8はまた、アドレス発生器801を含んでおり、アドレス発生器801は、FIFOスタック81からの読み出しと、FIFOスタック81のデータの、カスケード部5へのエクスポートとを制御することにより、現在のステージを通過した検出窓Fが、次のステージで解析されることを可能にする。スケールループの各反復の最後には、FIFOスタックは、すべてのステージを成功裏に通過した位置のリスト、すなわち、認識対象物体がある位置のリストを収容する。したがって、FIFOスタック81の内容は、メモリ制御部3によってメモリ2に転送可能である。
【0027】
一特定実施形態では、装置1は、図1に示したように、パラメータ抽出部10を含んでいる。パラメータ抽出部10は、ステージごとのパラメータ属性、記述子閾値S、α、およびβを格納するメモリを含んでいる。これらのパラメータは、装置1の使用前に実行されるトレーニングステップにおいて決定される。ステップE42およびE54でステージループが反復されるごとに、対応するパラメータが、使用される処理ユニットUTに送られる。
【0028】
一特定実施形態では、装置1は、図1に示したように、画像分割部11を含んでいる。画像分割部11は、複数の画像(この場合はM+1個の積分画像)をいくつかの副画像に分割することが可能である。画像分割部11は、解析対象画像がメモリ2の容量を超えてメモリ空間を占有するほどに解析対象画像の解像度が高い場合に特に有用である。この場合は、積分画像の所与の領域に対応する副画像を、連続的にメモリ2にロードする。次に装置1は、副画像がある限り、ステップEを繰り返すことにより、積分画像の場合と同様に副画像を処理することが可能であり、この画像解析は、すべての副画像が解析された時点で終了する。画像分割部11は、有限状態機械を含んでおり、この有限状態機械は、画像の解像度およびメモリ2の容量に応じて、副画像の境界を生成する。副画像の境界は、検出窓のサイズおよび動きステップを副画像に適応させるために、カスケード部5に送られる。

【特許請求の範囲】
【請求項1】
検出窓(F、F、…、F)を走査することによって、デジタル画像(Iorig)内の物体を認識および位置特定する装置において、
前記装置は、同時ハードウェアタスク用のデータストリームパイプラインアーキテクチャを備え、前記アーキテクチャは、
各検出窓(F、F、…、F)に対して記述子(D)を生成する手段(4、5、6、9)であって、各記述子(D)は、前記デジタル画像のうちの関係する前記検出窓に属する部分の範囲を定める、手段(4、5、6、9)と、
前記関係する記述子(D)によって範囲を定められた、前記デジタル画像の前記部分の特徴を表すヒストグラムを、各記述子に対して決定するヒストグラム決定部(7)と、
N個の並列の処理ユニット(UT、UT、…、UT)であって、検出窓(F、F、…、F)が各処理ユニット(UT、UT、…、UT)に割り当てられ、各処理ユニットは、各記述子(D)に関連付けられたパラメータ(属性、S、α、β)に応じて前記関係する記述子(D)の前記ヒストグラムを解析することにより、前記記述子が認識対象の前記物体の少なくとも一部分を含む確率を表すパーシャルスコアを与えることが可能であり、各検出窓の前記パーシャルスコアの合計は、前記検出窓(F、F、…、F)が前記認識対象物体を含む確率を表すグローバルスコア(S、S、…、S)を与える、前記処理ユニット(UT、UT、…、UT)と、
を含むことを特徴とする装置。
【請求項2】
ASICのような専用集積回路の形で実装されることを特徴とする、請求項1に記載の装置。
【請求項3】
各検出窓に対して記述子(D)を生成する前記手段(4、5、6、9)、前記ヒストグラム決定部(7)、および前記N個の処理ユニット(UT、UT、…、UT)の集合は、それぞれが前記パイプラインアーキテクチャの一ステージを形成することを特徴とする、請求項1または2に記載の装置。
【請求項4】
前記デジタル画像(Iorig)は、M+1個の方位画像(I)に変換され、最初のM個の方位画像(I)のそれぞれは、画素(p(x,y))ごとに、ある角度値範囲にわたる信号の振幅の勾配を含み、最後の方位画像(I)は、画素(p(x,y))ごとに、前記信号の振幅の勾配の絶対値を含み、各ヒストグラムは、M+1個の成分(C)を含み、各成分(C)は、前記方位画像(I)のうちの1つにおける、当該の記述子(D)に含まれる前記画素(p(x,y))の重み(wo(x,y))の合計を収容することを特徴とする、請求項1〜3のいずれか一項に記載の装置。
【請求項5】
各処理ユニット(UT、UT、…、UT)は、
M+1個の入力部と1個の出力部とを備え、前記第1のパラメータ(属性)に応じてヒストグラムの前記成分(C)のうちの1つを連続して選択する、第1の論理ユニット(21)と、
前記選択された成分(C)と前記第2のパラメータ(S)とを比較する比較器(22)と、
2つの入力部(231、232)と1つの出力部とを備える第2の論理ユニット(23)であって、前記第1の入力部(231)は、前記第3のパラメータ(α)を受け取り、前記第2の入力部(232)は、前記第4のパラメータ(β)を受け取り、前記出力部は、前記比較の結果に応じて前記第3のパラメータ(α)または前記第4のパラメータ(β)を与える、第2の論理ユニット(23)と、
前記第2の論理ユニット(23)の前記出力部に接続されたアキュムレータ(24)であって、一方で、関係する前記検出窓(F、F、…、F)の前記様々な記述子(D)に関連付けられた前記パーシャルスコアを与えることと、他方で、前記検出窓(F、F、…、F)に関連付けられた前記グローバルスコア(S、S、…、S)を与えることとのために、前記第3および/または第4のパラメータ(α、β)を合算するアキュムレータ(24)と、
を備えることを特徴とする、請求項4に記載の装置。
【請求項6】
各処理ユニット(UT、UT、…、UT)は、第3の論理ユニット(25)および乗算器(26)を含み、前記論理ユニット(25)は、第1の入力部(251)において関係する前記ヒストグラムのM+1番目の成分(CM+1)を受け取り、第2の入力部(252)において前記関係する記述子(D)の表面積を受け取り、最初のM個の成分のうちの1つが前記第2のパラメータ(S)と比較された場合は前記論理ユニット(25)の前記第1の入力部(251)を前記乗算器(26)の第1の入力部(261)に接続し、あるいは前記M+1番目の成分(CM+1)が前記第2のパラメータ(S)と比較された場合は前記論理ユニット(25)の前記第2の入力部(252)を前記乗算器(26)の第1の入力部(261)に接続し、前記乗算器(26)の第2の入力部(262)は、前記第2のパラメータ(S)を受け取り、前記乗算器(26)の出力部は、前記比較器(22)の入力部(222)に接続されて、前記選択された成分(C)が、前記M+1番目の成分(CM+1)または前記記述子の前記表面積で重み付けされた前記第2のパラメータ(S)と比較されることを特徴とする、請求項5に記載の装置。
【請求項7】
前記ヒストグラム決定部(7)は、M+1個の積分画像(Iint,m)からヒストグラムを決定することが可能であり、各積分画像(Iint,m)は、各画素(p(m,n))の重み(wi(m,n))が、前記方位画像(I)のうちの1つにおける、原点(O)と関係する前記画素(p(m,n))とによって範囲が定まる矩形面にあるすべての前記画素(p(x,y))の重み(wo(x,y))の合計に等しい画像であることを特徴とする、請求項4、5または6に記載の装置。
【請求項8】
前記装置が、前記M+1個の積分画像(Iint,m)を収容するメモリ(2)と、前記メモリ(2)へのアクセスを制御するメモリ制御部(3)とを備え、前記メモリ(2)の帯域幅は、各ヒストグラムが、10以下のサイクル数Nで4×(M+1)個のデータから決定されるように決定され、前記サイクル数Nは、関係式
【数1】


(式中、kは、1サイクルの間に前記メモリ(2)によってアクセス可能なデータの数)
で定義されることを特徴とする、請求項7に記載の装置。
【請求項9】
各検出窓に対して記述子(D)を生成する前記手段は、前記検出窓(F、F、…、F)のサイズと、前記デジタル画像(Iorig)における前記検出窓(F、F、…、F)の動きのステップとを反復的に決定するスケールループ部(4)を備えることを特徴とする、請求項1〜8のいずれか一項に記載の装置。
【請求項10】
各検出窓に対して記述子(D)を生成する前記手段は、カスケード部(5)を備え、前記カスケード部(5)は、検出窓(F、F、…、F)の座標(xFA,yFA)および(xFC,yFC)を、前記検出窓のサイズおよび動きステップに応じて生成し、各検出窓(F、F、…、F)を処理ユニット(UT、UT、…、UT)に割り当てることを特徴とする、請求項1〜9のいずれか一項に記載の装置。
【請求項11】
各検出窓に対して記述子(D)を生成する前記手段は、記述子ループ部(6)を備え、前記記述子ループ部(6)は、各検出窓(F、F、…、F)に対して、前記検出窓(F、F、…、F)および前記認識対象物体の座標(xFA,yFA)および(xFC,yFC)に応じて、記述子(D)の座標(xDA,yDA)および(xDC,yDC)を反復的に生成することを特徴とする、請求項10に記載の装置。
【請求項12】
前記装置がスコア解析部(8)を備え、前記スコア解析部(8)は、グローバルスコア(S、S、…、S)と検出窓(F、F、…、F)の位置((xFA,yFA)、(xFC,yFC))とのリストを、ステージ閾値(S)に応じて生成することを特徴とする、請求項1〜11のいずれか一項に記載の装置。
【請求項13】
前記装置がパラメータ抽出部(10)を備え、前記パラメータ抽出部(10)は、前記パラメータ(属性、S、α、β)を前記N個の処理ユニット(UT、UT、…、UT)に同時に送ることを特徴とする、請求項1〜12のいずれか一項に記載の装置。
【請求項14】
前記パラメータ(属性、S、α、β)は、トレーニングステップにおいて決定され、前記トレーニングは、前記認識対象物体に依存することを特徴とする、請求項1〜13のいずれか一項に記載の装置。
【請求項15】
物体の前記認識および位置特定を実施するためのすべての算術演算が、整数型の加算、減算、および乗算の演算装置において、固定小数点データを用いて実行されることを特徴とする、請求項1〜14のいずれか一項に記載の装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公表番号】特表2012−511756(P2012−511756A)
【公表日】平成24年5月24日(2012.5.24)
【国際特許分類】
【出願番号】特願2011−539995(P2011−539995)
【出願日】平成21年11月23日(2009.11.23)
【国際出願番号】PCT/EP2009/065626
【国際公開番号】WO2010/066563
【国際公開日】平成22年6月17日(2010.6.17)
【出願人】(510074896)
【Fターム(参考)】