(57)【要約】  単一命令多重データ（ＳＩＭＤ）プロセッサに実装されるディシジョンツリーベースの適応ブースティング（ＡｄａＢｏｏｓｔ）分類器におけるオブジェクト分類のための方法の説明される例において、この方法は、ＳＩＭＤプロセッサに結合されるメモリ内の画像におけるＮ個の連続ウィンドウ位置から抽出される特徴ベクトルを受け取ること（７００）、及び、特徴ベクトル及びＳＩＭＤプロセッサのベクトル命令を用いてＡｄａＢｏｏｓｔ分類器によってＮ個の連続ウィンドウ位置を同時に評価すること（７０８）を含む。ＡｄａＢｏｏｓｔ分類器は、Ｎ個の連続ウィンドウ位置についての分類が完了する（７１２）まで、Ｎ個の連続ウィンドウ位置についてディシジョンツリーを同時にトラバースする（７１４）。
2018520443.tif 000002
【特許請求の範囲】
【請求項１】
単一命令多重データ（ＳＩＭＤ）プロセッサに実装されるディシジョンツリーベースの適応ブースティング（ＡｄＢｏｏｓｔ）分類器におけるオブジェクト分類のための方法であって、
前記ＳＩＭＤプロセッサに結合されるメモリ内の画像におけるＮ個の連続ウィンドウ位置から抽出される特徴ベクトルを受け取ること、及び
前記特徴ベクトル及び前記ＳＩＭＤプロセッサのベクトル命令を用いて前記ＡｄＢｏｏｓｔ分類器によって前記Ｎ個の連続ウィンドウ位置を同時に評価すること、
を含み、
Ｎが、特徴のビットサイズで除算される前記ＳＩＭＤプロセッサのベクトル幅であり、特徴ベクトルが、前記Ｎ個の連続ウィンドウ位置の各々に対して１つの特徴値の、Ｎ個の特徴値を含み、
前記Ｎ個の連続ウィンドウ位置について分類が完了するまで、前記ＡｄＢｏｏｓｔ分類器が、前記Ｎ個の連続ウィンドウ位置についてディシジョンツリーを同時にトラバースし、ディシジョンツリーが、複数のノードと、各ノードについての閾値と、複数のリーフとを含み、各リーフが部分スコアを含む、
方法。
【請求項２】
請求項１に記載の方法であって、前記Ｎ個の連続ウィンドウ位置を評価することが、
前記ＳＩＭＤプロセッサのベクトルロード命令を用いて前記特徴ベクトルの複数をロードすることであって、前記ＡｄＢｏｏｓｔ分類器の１つのディシジョンツリーの各ノードに対して１つの特徴ベクトルがロードされる、前記ロードすること、
各ノードに対するマスクベクトルを生成するため、前記ＳＩＭＤプロセッサのベクトル比較命令を用いて各特徴ベクトルを対応する閾値ベクトルと比較することであって、前記対応する閾値ベクトルが、前記特徴ベクトルに対応する前記ノードについての前記閾値のＮ個のコピーを含み、前記マスクベクトルが、前記特徴ベクトルの前記Ｎ個の特徴の各々に対して１つの比較結果の、Ｎ個の比較結果を含む、前記比較すること、
前記マスクベクトルと前記ディシジョンツリーの前記リーフの前記部分スコア値とに基づいて部分スコアベクトルを生成することであって、前記部分スコアベクトルが、前記Ｎ個の連続ウィンドウ位置の各々に対して１つの部分スコア値の、Ｎ個の部分スコア値を含む、前記部分スコアベクトルを生成すること、
前記部分スコアを累積されたスコアベクトルへと累積することであって、前記累積されたスコアベクトルが、前記Ｎ個の連続ウィンドウ位置の各々に対して１つの累積されたスコア値の、Ｎ個の累積されたスコア値を含む、前記累積すること、及び
オブジェクト分類が前記Ｎ個の連続ウィンドウ位置の１つ又は複数について終了され得るか否かを決定するため、前記ＳＩＭＤプロセッサのベクトル比較命令を用いて、前記累積されたスコアベクトルを出口閾値ベクトルと比較すること、
を含む、方法。
【請求項３】
請求項２に記載の方法であって、部分スコアベクトルを生成することが、
前記マスクベクトルに基づいて前記ディシジョンツリーの前記リーフの各々についてリーフ選択マスクベクトルを生成すること、及び
前記Ｎ個のウィンドウ位置の各々について部分スコアを前記リーフベクトルから選択するため、各リーフ選択マスクベクトルの、対応するリーフベクトルとの論理ＡＮＤ演算を実施すること、
を含み、
リーフ選択マスクベクトルが、前記リーフ選択マスクベクトルに対応する前記リーフに達する前記１つのディシジョンツリーのトラバースパスにおけるノードについてのマスクベクトルの論理結合であり、
対応するリーフベクトルが、前記リーフの部分スコアのＮ個のコピーを含む、
方法。
【請求項４】
請求項１に記載の方法であって、前記ディシジョンツリーが２レベル２進ディシジョンツリーである、方法。
【請求項５】
請求項１に記載の方法であって、前記ＡｄＢｏｏｓｔ分類器が歩行者分類についてトレーニングされる、方法。
【請求項６】
請求項１に記載の方法であって、前記ＳＩＭＤプロセッサがデジタルシグナルプロセッサである、方法。
【請求項７】
デジタルシステムであって、
単一命令多重データ（ＳＩＭＤ）プロセッサ、
前記ＳＩＭＤプロセッサに結合され、画像から抽出される特徴をストアするように構成される、メモリ構成要素、
前記メモリ構成要素にストアされる複数のディシジョンツリーであって、各ディシジョンツリーが、複数のノードと、各ノードについての閾値と、複数のリーフとを含み、各リーフが部分スコアを含む、前記複数のディシジョンツリー、及び
前記メモリ構成要素にストアされるオブジェクト分類についてトレーニングされるディシジョンツリーベースの適応ブースティング（ＡｄＢｏｏｓｔ）分類器、
を含み、
前記ＡｄＢｏｏｓｔ分類器が前記ＳＩＭＤプロセッサ上で実行可能であり、前記ＡｄＢｏｏｓｔ分類器がオブジェクト分類について前記複数のディシジョンツリーを用い、前記ＡｄＢｏｏｓｔ分類器が、前記特徴及び前記ＳＩＭＤプロセッサのベクトル命令を用いてＮ個の連続ウィンドウ位置を同時に評価するように構成され、前記ＡｄＢｏｏｓｔ分類器が、前記Ｎ個の連続ウィンドウ位置について分類が完了するまで、前記Ｎ個の連続ウィンドウ位置についてディシジョンツリーを同時にトラバースし、Ｎが、特徴のビットサイズで除算される前記ＳＩＭＤプロセッサのベクトル幅である、
デジタルシステム。
【請求項８】
請求項７に記載のデジタルシステムであって、前記メモリ構成要素に結合され、画像における前記Ｎ個の連続ウィンドウ位置から前記特徴を抽出するように構成される、特徴抽出構成要素を含む、デジタルシステム。
【請求項９】
請求項８に記載のデジタルシステムであって、前記画像を提供するために前記特徴抽出構成要素に結合されるカメラを含む、デジタルシステム。
【請求項１０】
請求項７に記載のデジタルシステムであって、前記ＡｄＢｏｏｓｔ分類器が、前記Ｎ個の連続ウィンドウ位置を評価するように構成され、前記評価することが、
前記ＳＩＭＤプロセッサのベクトルロード命令を用いて前記メモリ構成要素から複数の特徴ベクトルをロードすることであって、前記複数のディシジョンツリーの１つのディシジョンツリーの各ノードに対して１つの特徴ベクトルがロードされ、特徴ベクトルが、前記Ｎ個の連続ウィンドウ位置の各々に対して１つの特徴値の、Ｎ個の特徴値を含む、前記ロードすること、
各ノードに対するマスクベクトルを生成するため、前記ＳＩＭＤプロセッサのベクトル比較命令を用いて各特徴ベクトルを対応する閾値ベクトルと比較することであって、前記対応する閾値ベクトルが、前記特徴ベクトルに対応する前記ノードについての前記閾値のＮ個のコピーを含み、前記マスクベクトルが、前記特徴ベクトルの前記Ｎ個の特徴の各々に対して１つの比較結果の、Ｎ個の比較結果を含む、前記比較すること、
前記マスクベクトルと前記ディシジョンツリーの前記リーフの前記部分スコア値とに基づいて部分スコアベクトルを生成することであって、前記部分スコアベクトルが、前記Ｎ個の連続ウィンドウ位置の各々に対して１つの部分スコア値の、Ｎ個の部分スコア値を含む、前記部分スコアベクトルを生成すること、
前記部分スコアを累積して累積されたスコアベクトルにすることであって、前記累積されたスコアベクトルが、前記Ｎ個の連続ウィンドウ位置の各々に対して１つの累積されたスコア値の、Ｎ個の累積されたスコア値を含む、前記累積すること、及び
前記Ｎ個の連続ウィンドウ位置の１つ又は複数についてオブジェクト分類が終了され得るかを決定するため、前記ＳＩＭＤプロセッサのベクトル比較命令を用いて前記累積されたスコアベクトルを出口閾値ベクトルと比較すること、
によって成される、
デジタルシステム。
【請求項１１】
請求項１０に記載のデジタルシステムであって、部分スコアベクトルを生成することが、
前記マスクベクトルに基づいて前記ディシジョンツリーの前記リーフの各々についてリーフ選択マスクベクトルを生成すること、及び
前記Ｎ個のウィンドウ位置の各々について前記リーフベクトルから部分スコアを選択するため、各リーフ選択マスクベクトルの、対応するリーフベクトルとの論理ＡＮＤ演算を実施すること、
を含み、
リーフ選択マスクベクトルが、前記リーフ選択マスクベクトルに対応する前記リーフに達する前記１つのディシジョンツリーのトラバースパスにおけるノードについてのマスクベクトルの論理結合であり、
対応するリーフベクトルが前記リーフの部分スコアのＮ個のコピーを含む、
デジタルシステム。
【請求項１２】
請求項７に記載のデジタルシステムであって、前記ディシジョンツリーが、２レベル２進ディシジョンツリーである、デジタルシステム。
【請求項１３】
請求項７に記載のデジタルシステムであって、前記ＡｄＢｏｏｓｔ分類器が歩行者分類についてトレーニングされる、デジタルシステム。
【請求項１４】
請求項７に記載のデジタルシステムであって、前記ＳＩＭＤプロセッサがデジタルシグナルプロセッサである、デジタルシステム。
【請求項１５】
単一命令多重データ（ＳＩＭＤ）プロセッサ上で実行されるとき、ディシジョンツリーベースの適応ブースティング（ＡｄＢｏｏｓｔ）分類器における物体分類のための方法を実行させるソフトウェア命令をストアする非一時的コンピュータ可読媒体であって、前記方法が、
前記ＳＩＭＤプロセッサに結合されるメモリ内の画像におけるＮ個の連続ウィンドウ位置から抽出される特徴ベクトルを受け取ることであって、Ｎが、特徴のビットサイズで除算される前記ＳＩＭＤプロセッサのベクトル幅であり、特徴ベクトルが、前記Ｎ個の連続ウィンドウ位置の各々に対して１つの特徴値の、Ｎ個の特徴値を含む、前記特徴ベクトルを受け取ること、及び
前記特徴ベクトル及び前記ＳＩＭＤプロセッサのベクトル命令を用いて前記ＡｄＢｏｏｓｔ分類器によって前記Ｎ個の連続ウィンドウ位置を同時に評価すること、
を含み、
前記ＡｄＢｏｏｓｔ分類器が、前記Ｎ個の連続ウィンドウ位置について分類が完了するまで、前記Ｎ個の連続ウィンドウ位置についてディシジョンツリーを同時にトラバースし、ディシジョンツリーが、複数のノードと、各ノードについての閾値と、複数のリーフとを含み、各リーフが部分スコアを含む、
非一時的コンピュータ可読媒体。
【請求項１６】
請求項１５に記載の非一時的コンピュータ可読媒体であって、前記Ｎ個の連続ウィンドウ位置を評価することが、
前記ＳＩＭＤプロセッサのベクトルロード命令を用いて前記特徴ベクトルの複数をロードすることであって、前記ＡｄＢｏｏｓｔ分類器の１つのディシジョンツリーの各ノードに対して１つの特徴ベクトルがロードされる、前記特徴ベクトルの複数をロードすること、
各ノードに対してマスクベクトルを生成するため、前記ＳＩＭＤプロセッサのベクトル比較命令を用いて各特徴ベクトルを対応する閾値ベクトルと比較することであって、前記対応する閾値ベクトルが、前記特徴ベクトルに対応する前記ノードについての前記閾値のＮ個のコピーを含み、前記マスクベクトルが、前記特徴ベクトルの前記Ｎ個の特徴の各々に対して１つの比較結果の、Ｎ個の比較結果を含む、前記比較すること、
前記マスクベクトルと前記ディシジョンツリーの前記リーフの前記部分スコア値とに基づいて部分スコアベクトルを生成することであって、前記部分スコアベクトルが、前記Ｎ個の連続ウィンドウ位置の各々に対して１つの部分スコア値の、Ｎ個の部分スコア値を含む、前記部分スコアベクトルを生成すること、
前記部分スコアを累積して累積されたスコアベクトルにすることであって、前記累積されたスコアベクトルが、前記Ｎ個の連続ウィンドウ位置の各々に対して１つの累積されたスコア値の、Ｎ個の累積されたスコア値を含む、前記累積すること、及び
前記Ｎ個の連続ウィンドウ位置の１つ又は複数についてオブジェクト分類が終了され得るかを決定するため、前記ＳＩＭＤプロセッサのベクトル比較命令を用いて前記累積されたスコアベクトルを出口閾値ベクトルと比較すること、
を含む、
非一時的コンピュータ可読媒体。
【請求項１７】
請求項１６に記載の非一時的コンピュータ可読媒体であって、部分スコアベクトルを生成することが、
前記マスクベクトルに基づいて前記ディシジョンツリーの前記リーフの各々についてリーフ選択マスクベクトルを生成することであって、リーフ選択マスクベクトルが、前記リーフ選択マスクベクトルに対応する前記リーフに達する前記１つのディシジョンツリーのトラバースパスにおけるノードについてのマスクベクトルの論理結合である、前記リーフ選択マスクベクトルを生成すること、及び
前記Ｎ個のウィンドウ位置の各々について前記リーフベクトルから部分スコアを選択するため、各リーフ選択マスクベクトルの、対応するリーフベクトルとの論理ＡＮＤ演算を実施すること、
を含み、
対応するリーフベクトルが前記リーフの部分スコアのＮ個のコピーを含む、
非一時的コンピュータ可読媒体。
【請求項１８】
請求項１５に記載の非一時的コンピュータ可読媒体であって、前記ディシジョンツリーが２レベル２進ディシジョンツリーである、非一時的コンピュータ可読媒体。
【請求項１９】
請求項１５に記載の非一時的コンピュータ可読媒体であって、前記ＡｄＢｏｏｓｔ分類器が歩行者分類についてトレーニングされる、非一時的コンピュータ可読媒体。
【請求項２０】
請求項１５に記載の非一時的コンピュータ可読媒体であって、前記ＳＩＭＤプロセッサがデジタルシグナルプロセッサである、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、概して適応ブースティング（ＡｄａＢｏｏｓｔ）分類器に関し、より特定していえば、ＡｄａＢｏｏｓｔ分類器における効率的なディシジョンツリートラバースに関する。
【背景技術】
【０００２】
「適応ブースティング（adaptive boosting）」の略語であるＡｄａＢｏｏｓｔは、ディシジョンツリーなどの弱い分類器のリニア結合として強力な分類器を構築するためのアルゴリズムである。ＡｄａＢｏｏｓｔ分類器では、弱い分類器の出力が組み合わされて、ブーストされた分類器の最終出力を表す重み付け和となる。ＡｄａＢｏｏｓｔは、前の分類器によって誤分類されたインスタンスを優先して後続の弱い学習器を微調整することによって適性を有する。（ディシジョンツリーが弱い学習器として用いられる）ＡｄａＢｏｏｓｔは、しばしば、最良のそのまますぐに使用できる分類器と呼ばれ、視覚及びデータ解析のための一般的な分類器である。例えば、ＡｄａＢｏｏｓｔの詳細な説明が、Y. Fruend及びR. Schapireの「オンラインラーニングの決定理論的生成、及びブースティングへの適用」、Journal of Computer and System Sciences、55巻、1号、1997年8月、頁119-139に見られる。
【非特許文献１】Y. Fruend and R. Schapire, "A Decision-Theoretic Generalization of On-line Learning and an Application to Boosting," Journal of Computer and System Sciences, Vol. 55, Issue 1, August 1997, pp.119-139
【発明の概要】
【０００３】
単一命令多重データ（ＳＩＭＤ）プロセッサに実装されるディシジョンツリーベースの適応ブースティング（ＡｄＢｏｏｓｔ）分類器におけるオブジェクト分類のための方法の説明する例において、この方法は、ＳＩＭＤプロセッサに結合されるメモリ内の画像におけるＮ個の連続ウィンドウ位置から抽出される特徴ベクトルを受け取ることを含み、ここで、Ｎは、特徴のビットサイズで除算されるＳＩＭＤプロセッサのベクトル幅であり、特徴ベクトルはＮ個の特徴値を含み、Ｎ個の連続ウィンドウ位置の各々に対して１つの特徴値がある。この方法はさらに、特徴ベクトル及びＳＩＭＤプロセッサのベクトル命令を用いてＡｄＢｏｏｓｔ分類器によってＮ個の連続ウィンドウ位置を同時に評価することを含み、ここで、ＡｄＢｏｏｓｔ分類器は、Ｎ個の連続ウィンドウ位置について分類が完了するまで、Ｎ個の連続ウィンドウ位置についてディシジョンツリーを同時にトラバースし、ディシジョンツリーは、ノード、各ノードについての閾値、及びリーフを含み、各リーフは部分スコアを含む。
【０００４】
他の説明される例において、デジタルシステムが、単一命令多重データ（ＳＩＭＤ）プロセッサと、ＳＩＭＤプロセッサに結合されるメモリ構成要素であって、画像から抽出される特徴をストアするように構成されるメモリ構成要素と、メモリ構成要素にストアされるディシジョンツリーであって、各ディシジョンツリーが、ノード、各ノードについての閾値、及びリーフを含み、各リーフが部分スコアを含むディシジョンツリーと、メモリ構成要素にストアされるオブジェクト分類についてトレーニングされるディシジョンツリーベースの適応ブースティング（ＡｄＢｏｏｓｔ）分類器とを含む。ＡｄＢｏｏｓｔ分類器はＳＩＭＤプロセッサ上で実行可能である。ＡｄＢｏｏｓｔ分類器は、オブジェクト分類のためにディシジョンツリーを用いる。ＡｄＢｏｏｓｔ分類器は、特徴及びＳＩＭＤプロセッサのベクトル命令を用いてＮ個の連続ウィンドウ位置を同時に評価するように構成される。ＡｄＢｏｏｓｔ分類器は、Ｎ個の連続ウィンドウ位置について分類が完了するまで、Ｎ個の連続ウィンドウ位置についてディシジョンツリーを同時にトラバースする。Ｎは、特徴のビットサイズで除算されるＳＩＭＤプロセッサのベクトル幅である。
【０００５】
さらに説明される例において、非一時的コンピュータ可読媒体がソフトウェア命令をストアする。ソフトウェア命令が単一命令多重データ（ＳＩＭＤ）プロセッサ上で実行されると、ソフトウェア命令は、ディシジョンツリーベースの適応ブースティング（ＡｄＢｏｏｓｔ）分類器におけるオブジェクト分類のための方法を実行させる。この方法は、ＳＩＭＤプロセッサに結合されるメモリ内の画像におけるＮ個の連続ウィンドウ位置から抽出される特徴ベクトルを受け取ることを含む。ここで、Ｎは、特徴のビットサイズで除算されるＳＩＭＤプロセッサのベクトル幅であり、特徴ベクトルはＮ個の特徴値を含み、Ｎ個の連続ウィンドウ位置の各々に対して１つの特徴値がある。この方法はさらに、特徴ベクトル及びＳＩＭＤプロセッサのベクトル命令を用いてＡｄＢｏｏｓｔ分類器によってＮ個の連続ウィンドウ位置を同時に評価することを含む。ＡｄＢｏｏｓｔ分類器は、Ｎ個の連続ウィンドウ位置について分類が完了するまで、Ｎ個の連続ウィンドウ位置についてディシジョンツリーを同時にトラバースし、ディシジョンツリーは、ノード、各ノードについての閾値、及びリーフを含み、各リーフは部分スコアを含む。
【図面の簡単な説明】
【０００６】
【図１】或る画像のシーンにおける歩行者検出のためのスライドウィンドウ手法を図示する例である。
【０００７】
【図２】或る画像についての特徴抽出、及びオブジェクト検出のためのメモリにおける得られた特徴の配置を図示する例である。
【０００８】
【図３】ＡｄＢｏｏｓｔ分類器のための例示の２進ディシジョンツリーである。
【０００９】
【図４】ＡｄＢｏｏｓｔ分類器における特徴タプルの一般的概念を図示する例である。
【００１０】
【図５】ＡｄＢｏｏｓｔ分類器の各ディシジョンツリーのリーフにおける部分スコアの一般的概念を図示する例である。
【００１１】
【図６】特徴ベクトルを図示する例である。
【００１２】
【図７】単一命令多重データ（ＳＩＭＤ）プロセッサ上でＡｄＢｏｏｓｔ分類器を実行するための方法のフローチャートである。
【００１３】
【図８】例である。
【図９】例である。
【図１０】例である。
【図１１】例である。
【図１２】例である。
【図１３】例である。
【図１４】例である。
【図１５】例である。
【図１６】例である。
【図１７】例である。
【図１８】例である。
【００１４】
【図１９】図７の方法の実施形態を実行するように構成される例示のデジタルシステムの簡略化されたブロック図である。
【００１５】
【図２０】例示のＳＩＭＤデジタルシグナルプロセッサのブロック図である。
【発明を実施するための形態】
【００１６】
様々な図における同様の要素は、一貫性を保つため同様の参照数字によって示される。
【００１７】
上述したように、ＡｄａＢｏｏｓｔ分類器が、ディシジョンツリーなどの弱い分類器のリニア結合として構築され得る。本開示の実施形態は、ディシジョンツリーベースのＡｄａＢｏｏｓｔ分類器に向けられている。例えば、実施形態は、ベクトルプロセッサとしても知られる広範な単一命令多重データ（ＳＩＭＤ）プロセッサにディシジョンツリーベースのＡｄａＢｏｏｓｔ分類を実装することを対象とする。ベクトルプロセッサは、複数データポイント、すなわち、データポイントのベクトル、を同時に処理する命令を実装する。より具体的には、複数データポイントが１つのデータワードにまとめられ得、ベクトル命令が各データポイントに対する演算を同時に実行し得る。例えば、１２８ビットベクトルプロセッサでは、画像の８つの１６ビット画素が１つの１２８ビットワードにまとめられ得、これら８つの画素が同時に処理され得る。
【００１８】
説明を簡単にするために、本明細書では、本開示の実施形態は、画像内のオブジェクト（歩行者など）を検出するようにトレーニングされる例示のＡｄａＢｏｏｓｔ分類器を用いて説明される。画像内の歩行者を検出するためにスライディングウィンドウ手法が用いられる。図１は、或る画像のシーンにおける歩行者検出のためのスライディングウィンドウ手法を図示する例である。一般に、従来の手法では、ウィンドウ（ボックス又はオブジェクトモデル或いはオブジェクトパッチとも称する）が、重なり合う水平及び垂直位置で画像内を移動され、特徴（各位置においてウィンドウ内の画素値に基づいて計算される）が分類器によって解析される。ウィンドウのサイズは、歩行者の予想サイズに基づき、３６×６８であると仮定される。ウィンドウは垂直及び水平に４画素毎に検査される。異なるサイズの歩行者、すなわち、あるシーンにおいて異なる距離における歩行者、を特定するために、画像の複数の異なるスケールで歩行者検出が実施される。
【００１９】
分類は、或る画像について複数の異なるスケールで計算される特徴に基づいて実施される。オブジェクト検出の場合、例示の特徴は、傾きの大きさ、傾きの方位、ブロック和、輝度、及び色情報を含み得る。従来の分類器が用いられ得る。また、或る画像についての複数スケールでの特徴の計算は、従来の方式で成され得る。この例では、８×８のセルサイズを用いて計算される１０個の特徴の使用を仮定する。すなわち、色空間の成分、言い換えれば、Ｙ（輝度成分）、Ｃｂ（青の色差成分）、及びＣｒ（赤の色差成分）、傾きの大きさ、及び、０度〜１８０度の６つのビンについての傾きのヒストグラム（ＨＯＧ）である。そのため、３６×３８のウィンドウサイズを仮定すると、８×１６×１０＝１２８０個の特徴がウィンドウ毎に存在する。また、画像の各スケールにおいて、４×４のブロック毎に１つのウィンドウが存在する。
【００２０】
図２は、或る画像についての特徴抽出、及びオブジェクト検出のためのメモリにおける得られた特徴の配置を図示する例である。上述したように、歩行者検出のための特徴が、オリジナル画像（ベース解像度）について、及び、この画像の複数のスケールについて計算される。（上述したような）スライディングウィンドウ手法を用いてこれらの特徴が計算され、各スケールに対する各ウィンドウに１０個の特徴チャネルのセットが得られる。特徴チャネルは、或るウィンドウについて特定のタイプの特徴の計算値を含む。この例では、特徴チャネル０〜５はＨＯＧのビンであり、チャネル６は傾きの大きさであり、チャネル７〜９はそれぞれの色成分である。
【００２１】
画像の或る行における２つの連続ウィンドウの特徴チャネルは、１つの位置を除くすべての位置で重なり合う。例えば、位置ｘ、ｙにおけるウィンドウＡ、及び後続の位置ｘ＋４、ｙにおけるウィンドウＢを考える。ウィンドウＢの各特徴チャネルは、ウィンドウＡの対応する特徴チャネルから１だけオフセットされている。例えば、ウィンドウＡの特徴チャネル０が８つの値ｖ１、ｖ２、．．．、ｖ８を含む場合、ウィンドウＢの特徴チャネル０は８つの値ｖ２、．．．、ｖ８、ｖ９を含む。同様に、位置ｘ＋８、ｙにおけるウィンドウＣの特徴チャネル０は、８つの値ｖ３、．．．、ｖ８、ｖ９、ｖ１０を含む。
【００２２】
画像の各スケールに対する特徴データは、図２に示すようにメモリにおいて配置される。行０で始まる画像の４行毎に、１０個の特徴チャネルに対応する１０行の特徴データが、或るスケールの或る行に対応する特徴データの行における連続値がベクトルロード命令によってロードされ得るように、メモリにおいて「スタック」される。このように、或るスケールの行０についての１０行の特徴データがストアされ、その後、行４についての１０行の特徴データ、行８についての１０行の特徴データなどが続く。
【００２３】
分類器は、１２８０個の２進２レベルディシジョンツリーで構成され、各ツリーは各ノードにおいて特徴を評価する。図３の例に示すように、２進ディシジョンツリーはノード及びリーフを含み、２進数が各ノードで分割される。ノードはツリーにおけるディシジョンポイントであり、リーフは部分スコアを保持する。集合的決定が、或るウィンドウ内の複数のディシジョンツリーのトラバースから得られる部分スコアに基づいて形成される。各ノードにおいて、特徴値が閾値と比較される。比較の結果により、ノードから左分岐又は右分岐のいずれが選択されるかが決定される。各ノードにおいてディシジョンツリーに入力される特徴値により、４つのリーフの１つが選択される。
【００２４】
図４は、特徴タプルの一般的概念を図示する例である。特徴タプルは、分類器におけるディシジョンツリーにマッピングされる特徴のセットである。このマッピングは、ＡｄＢｏｏｓｔ分類器のトレーニングの間に形成される。より具体的には、タプルにおける各特徴のウィンドウ内の位置が確立される。異なるディシジョンツリーは、入力として異なるタプルを有し得る。タプルにおける特徴の数は、ディシジョンツリーにおけるノードの数に等しい。
【００２５】
図５は、各ディシジョンツリーのリーフにおける部分スコアの一般的概念を図示する例である。特徴タプルがそのそれぞれのディシジョンツリーを介してトラバースされるとき、リーフの１つが選択され、このリーフはこの特定の特徴タプルについての部分スコアを含む。これらの部分スコアは、加算され、最小値、出口閾値、又はソフトカスケード閾値とも呼ばれる閾値と比較される。最小値が観察される場合、この時点で分類プロセスは終了され得る（終了され得る）か、或いは、付加的な極小値がある場合、付加的な極小値を観察するため残りのツリーのトラバースが継続し得る。任意の最小値で終了することに関する決定はアプリケーション固有であり得る。例示の分類器では、所与のウィンドウにおけるツリートラバースは、このウィンドウの評価の間に閾値と交差するとき終わる。
【００２６】
上述したように、各特徴タプルに含まれる特定の特徴、及びディシジョンツリーへのタプルのマッピングは、ＡｄＢｏｏｓｔ分類器のトレーニングの間に決められる。各ツリーにおける各ノードに対し、そのノードで検討されるべき特徴のウィンドウ内の場所がトレーニングの間に決定される。また、上述したように、２つの連続オブジェクトパッチ間の対応する特徴のメモリストレージオフセットは１である。このように、各特徴タプルに対する特徴のベクトルがメモリにおいて利用可能である。これらの特徴ベクトルは、複数のオブジェクトパッチに対して同時に分類を実施するために、ベクトルプロセッサにおいて活用され得る。図７の方法を参照して説明されるように、Ｎ個の候補オブジェクトパッチが同時に評価され得る。ここで、Ｎは特徴サイズで除算されるベクトル幅である。例えば、ベクトル幅が５１２であり、特徴サイズが１６ビットである場合、Ｎ＝３２である。
【００２７】
図６は、３２個の連続候補オブジェクトパッチを仮定する場合の特徴ベクトルを図示する例である。この例では、最初の１０行（０〜９で示す）は、上述の１０個の特徴チャネルにそれぞれ対応する。ディシジョンツリー６００及びディシジョンツリー６０２両方に対し、各オブジェクトパッチに対する各ノードについての特徴値はメモリにおいて隣接しており、そのため、各ノードに対して３２個の値のベクトルロードが可能である。
【００２８】
図７は、ＳＩＭＤプロセッサ上でディシジョンツリーベースのＡｄＢｏｏｓｔ分類器を実行するための方法のフローチャートである。例えば、この方法は、Ｎ個の連続ウィンドウ（オブジェクトパッチ）を同時に評価する。ここで、Ｎは、特徴サイズで除算されたＳＩＭＤプロセッサベクトル幅である。説明のため、特徴サイズは１６ビットであり、Ｎは３２であると仮定する。また、分類器は、歩行者分類についてトレーニングされると仮定する。説明を明瞭にするために、この方法を図８〜図１８の例を参照して説明する。
【００２９】
ＡｄＢｏｏｓｔ分類器は、２レベル２進ディシジョンツリーのリニア結合として構築されると仮定する。図３を参照して説明したように、及び、図８の例に示すように、２レベル２進ディシジョンツリーは、３つのノード及び４つのリーフを有する。図９の例に示すように、各ノードは論理的に、閾値Ｔ、オフセット値Ｏ、及び特徴Ｆを含む。特徴Ｆの値は、閾値Ｔと比較するためにオフセットＯにおいてメモリからフェッチされる。分類器がトレーニングされるとき、各ツリーの各ノードに対して、閾値、オフセット、及び特定の特徴が特定され、各ツリーに対してリーフ値も特定される。幾つかの実施形態において、図１０に示すように、ＡｄＢｏｏｓｔ分類器の各ツリーのツリーパラメータ、すなわち、閾値、オフセット、及びリーフ値、がメモリに線形にストアされる。歩行者の存在についてＡｄＢｏｏｓｔ分類器が評価しようとする画像の特徴の抽出、及びこれらの特徴がメモリにどのようにストアされるかについては上述されている。
【００３０】
図１１の例を参照すると、ウィンドウサイズが歩行者の予想サイズに基づく、スライディングウィンドウ手法を用いて歩行者について画像がサーチされる。サーチされるウィンドウ位置は、垂直及び水平両方に１ずつオフセットされる。また、ウィンドウ位置はラスタースキャン順にサーチされる。
【００３１】
図７の方法を再度参照すると、３２個の連続ウィンドウ位置をサーチするために、特徴のベクトルが、分類器の第１のディシジョンツリーの各ノードに対してロードされる（６００）。したがって、特徴の３つベクトルがツリーの各ノードに対してロードされる。各特徴に対するベクトルのメモリアドレスは、ツリーにおける特徴についてのオフセットＯによって決定される。特徴がメモリに縞状に並べられる方式、ウィンドウ位置間のオフセットが１であること、及びＳＩＭＤプロセッサのベクトルロード能力のため、３２個の連続ウィンドウ位置についての特徴が自動的にロードされる。図１２は、このステップを図示する例である。
【００３２】
次いで、ツリーの各ノードに対して閾値ベクトルが生成される。すなわち、３つの閾値ベクトルが生成される。或るノードについての閾値ベクトルは、そのノードについて閾値を３２回複製することによって生成される。ＳＩＭＤプロセッサにおける複製は、メモリから１つのスカラー値を読み出し、このスカラー値でベクトルのすべての要素を満たす演算である。
【００３３】
次いで、ロードされた特徴ベクトルとそれぞれの対応する閾値ベクトルとの間でベクトル比較が実施されて（７０４）、それぞれの比較の結果を示す３つのマスクベクトルが生成される。各マスクベクトルは、各特徴値について比較が真であったか否かの指示を含む。図１３は、閾値ベクトル及びそれらの比較を図示する例である。図１３及び他の図において用いられる命名規則は、Ｆ＜ｎｏｄｅ＞＜ｐｏｓｉｔｉｏｎ＞である。ここで、ｎｏｄｅはツリーのノード番号であり、ｐｏｓｉｔｉｏｎは相対的なウィンドウ位置である。例えば、Ｆ２３は、ウィンドウ位置３についてツリーのノード２において評価される特徴である。図１４は、ベクトル比較演算から得られるマスクベクトルを図示する例である。この例では、各特徴とそれに対応する閾値との比較に対応するマスク値は、比較が偽の場合は０ｘ００００であり、比較が真の場合は０ｘＦＦＦＦである。また、比較演算の結果を示すために他のマスク値が有用である。
【００３４】
次いで、３２個のオブジェクトパッチの各々についてのツリートラバースについて部分スコア値、すなわちリーフ値、を選択するため、及び、各エントリが、ツリートラバースから対応するオブジェクトパッチについて得られる部分スコア（リーフ値）である、部分スコアベクトルを生成するために、３つのマスクベクトルが用いられる（７０６）。幾つかの実施形態では、部分スコア値のベクトルの生成は、図１５〜図１７の例に図示するように実施される。図１５に示すように、３つのマスクベクトルＭ１、Ｍ２、及びＭ３を用いて、ツリーの４つのリーフ値の各々に対して１つの、４つのリーフ選択マスクベクトルＫ１、Ｋ２、Ｋ３、及びＫ４が生成される。これらのリーフ選択マスクベクトルは、４つのリーフベクトルＬＶ１、ＬＶ２、ＬＶ３、ＬＶ４からリーフ値を選択するために用いられる。ツリーのリーフについてのリーフベクトルは、図１６に示されるとおりであり、対応するベクトルにおける各リーフ値Ｌ１、Ｌ２、Ｌ３、及びＬ４を３２回複製することによって生成される。
【００３５】
マスクベクトルＭ１、Ｍ２、Ｍ３は、図１５に示すように論理的に結合されて、リーフ選択マスクベクトルＫ１、Ｋ２、Ｋ３、Ｋ４が生成される。この論理は以下のとおりである。１）Ｍ１及びＭ２における対応する場所が真である場合、リーフ選択マスクベクトルＫ１におけるこの対応する場所を、リーフベクトルＬＶ１における対応する場所を選択するためにセットする。２）Ｍ１における場所が真であり、Ｍ２における対応する場所が偽である場合、リーフ選択マスクベクトルＫ２におけるこの対応する場所を、リーフベクトルＬＶ２における対応する場所を選択するためにセットする。３）Ｍ１における場所が偽であり、Ｍ３における対応する場所が真である場合、リーフ選択マスクベクトルＫ３におけるこの対応する場所を、リーフベクトルＬＶ３における対応する場所を選択するためにセットする。４）Ｍ１及びＭ３における対応する場所が偽である場合、リーフ選択マスクベクトルＫ４におけるこの対応する場所を、リーフベクトルＬＶ４における対応する場所を選択するためにセットする。論理マスクの組合せによってリーフ値を選択するためにセットされないリーフ選択マスクベクトルにおける場所は、リーフ値を選択しないようにセットされる。この例では、リーフ選択マスクベクトルにおける選択値は、対応するリーフベクトルにおける対応するリーフ値が選択されない場合は０ｘ００００であり、対応するリーフ値が選択される場合は０ｘＦＦＦＦである。リーフ選択マスクベクトルは、対応するリーフに達するディシジョンツリーのトラバースパスにおけるノードについてのマスクベクトルの論理結合である。
【００３６】
結果のリーフ選択マスクベクトルＫ１、Ｋ２、Ｋ３、Ｋ４が図１６に示されている。論理ＡＮＤ演算が、各リーフベクトルと、対応するリーフ選択マスクベクトルとの間で実施されて、各リーフベクトルからリーフ値（部分スコア）が選択される。これら４つの論理ＡＮＤ演算の結果は、図１７に図示するような、４つのリーフ値ベクトルである。これらの４つのベクトルは論理ＯＲ演算と組み合わされて、各エントリが３２個のウィンドウ位置のうち対応するウィンドウ位置についてディシジョンツリーを評価する結果である、部分スコアベクトルが生成される。
【００３７】
図７を再度参照すると、部分スコアベクトルは、累積されて（７０８）、３２個のウィンドウの各々に対して１つのエントリを有する累積スコアベクトルとなる。例えば、部分スコアベクトルは、前のツリートラバースからのすべての前の部分スコアの合計をストアする、累積スコアベクトルに加算され得る。これ以降により詳細に説明するように、幾つかの実施形態では、分類を終了する基準を満足したウィンドウ位置についての部分スコアをマスク除去するため、部分スコアを累積する前に、出口マスクベクトルが部分スコアベクトルに適用され得る。
【００３８】
累積スコアベクトルは、出口ベクトルと比較され（７１０）、出口閾値未満のいかなる累積部分スコア値も最終スコアとして保存される。所与のウィンドウ位置についての累積部分スコア値が出口閾値未満である場合、このウィンドウについてのツリー評価、すなわち分類、が完了する。３２個すべてのウィンドウについての分類プロセスが完了すると（７１２）、すなわち、すべての累積スコアが出口閾値未満であるか又はすべてのツリーがトラバースされると（７１４）、３２個のウィンドウについての分類プロセスが終わり、最終累積スコアベクトルが戻される（７１６）。そうでない場合、分類器における次のツリーを用いて分類が継続する（７００）。ツリーがトラバースされる順は、トレーニングプロセスの間に決定される。
【００３９】
幾つかの実施形態では、分類が３２個のウィンドウ位置のすべてについて完了しないことがあるので、どのウィンドウ位置で分類プロセスが完了し、どの位置で完了していないかを示す、出口マスクベクトルが維持される。出口マスクベクトルの生成及び使用は、図１８の例において図示されている。累積スコアベクトルの出口閾値ベクトルとのベクトル比較演算の結果、どの累積スコアが出口基準を満たし、どれが満たしていないかを示す、出口マスクベクトルが得られる。分類の次の反復では、出口マスクベクトルの逆ベクトル（「〜」はビット反転）と部分スコアベクトルの論理ＡＮＤ演算が実施されて、前に存在したいかなるウィンドウ位置についての部分スコアもマスク除去される。結果として得られる部分スコアベクトルは、累積スコアベクトルに加算され、出口閾値ベクトルとの比較が実施され、更新された出口マスクが生成される。
【００４０】
図１９は、図７の方法の実施形態を実行するように構成される、例示のデジタルシステム１９００の簡略化ブロック図である。幾つかの実施形態では、このデジタルシステムは集積回路、すなわちシステムオンチップ、とされ得る。説明を簡潔にするため、他の図の説明で用いるような歩行者分類を仮定する。デジタルシステム１９００は、マスタプロセッサ１９０２、カメラ１９０４、画像信号プロセッサ（ＩＳＰ）１９０６、特徴抽出構成要素１９０８、ＳＩＭＤ命令セットデジタルシグナルプロセッサ（ＤＳＰ）１９１０、及び共用メモリ１９１２を含む。マスタプロセッサ１９０２は、カメラ１９０４によって取り込まれるシーンにおける歩行者分類に必要とされる演算を実施するように他の構成要素の動作を制御する。マスタプロセッサ１９０２は、ＡＲＭリミテッドから入手可能な中央処理装置などの任意の好適なプロセッサとされ得る。
【００４１】
カメラ１９０４は、或るシーンの画像を取り込み、これらの画像をＩＳＰ１９０６に提供する。ＩＳＰ１９０６は、各画像に画像処理を実施して、特徴抽出のための画像を準備する。例えば、ＩＳＰ１９０６は、画像に対して、ホワイトバランス処理、黒レベル調整、ノイズフィルタリング、ＲＧＢからＹＣｂＣｒへの変換、及びエッジ強調などの演算を実施し得る。
【００４２】
特徴抽出構成要素１９０８は、ＩＳＰ１９０６からの画像に対して特徴抽出を実施する。特徴抽出については上述されている。抽出された特徴は、共用メモリ１９１２にストアされて本方法において用いられる。
【００４３】
共用メモリ構成要素１９１２は、オンチップメモリ、外部メモリ、又はこれらの組合せとされ得る。任意の好適なメモリ設計が用いられ得る。例えば、メモリ構成要素１９０２は、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、読出し専用メモリ（ＲＯＭ）、フラッシュメモリ、又はこれらの組合せを含み得る。
【００４４】
また、メモリ構成要素１９０２は、図６の方法の実施形態を実施するためのソフトウェア命令を含むＡｄＢｏｏｓｔ分類器１９１６のためのソフトウェア命令をストアする。また、メモリ構成要素は、特徴抽出構成要素１９０８よって計算される特徴１９１４、及び分類器１９１６によって用いられるディシジョンツリー１９１８をストアする。これらのソフトウェア命令及びディシジョンツリーの一部又は全部が、コンパクトディスク（ＣＤ）、ディスク、テープ、ファイル、又は任意の他のコンピュータ可読ストレージデバイスなどのコンピュータ可読媒体に初期的にストアされ得、デジタルシステム１９００にロード及びストアされ得る。幾つかの場合、ソフトウェア命令は、また、コンピュータ可読媒体及びコンピュータ可読媒体のためのパッケージング材料を含む、コンピュータプログラム製品において販売され得る。幾つかの場合において、ソフトウェア命令は、リムーバブルコンピュータ可読媒体（例えば、フロッピーディスク、光ディスク、フラッシュメモリ、ＵＳＢキー）を介して、又は別のコンピュータシステム（例えば、サーバ）上のコンピュータ可読媒体から伝送経路を介して、デジタルシステム１９００に配信され得る。
【００４５】
ＤＳＰ１９１０は、分類器１９１６のソフトウェア命令を実行し、抽出された特徴１９１４を用いて歩行者分類が実施される。ＤＳＰは、少なくとも、ベクトルロード演算、ベクトル比較演算、ベクトル加減算演算、ベクトル論理演算、並びに複製演算を提供するＳＩＭＤ命令セットを実装する。適切なＳＩＭＤ命令セットを備える任意の好適なＤＳＰが用いられ得る。このようなＤＳＰの１つを、図２０を参照して説明する。分類の結果は、分類結果に基づく歩行者検出、及び歩行者検出の結果に基づく決定などのさらなる処理のため、マスタプロセッサ１９０２に通信される。
【００４６】
図２０は、図７の方法の１つ又は複数の実施形態を実行するために適する、例示のＳＩＭＤデジタルシグナルプロセッサ（ＤＳＰ）２０００のハイレベルブロック図である。図示されるＤＳＰは、テキサス・インスツルメンツ・インコーポレイテッドから入手可能なＴＭＳ３２（３２０？）Ｃ６６ｘ  ＤＳＰである。Ｃ６６ｘ  ＤＳＰ２０００は、８個の機能ユニット、２個のレジスタファイル、及び２個のデータパスを含む。２個の汎用レジスタファイルは各々３２個の３２ビットレジスタ、合わせて６４個のレジスタ、を含む。これらの汎用レジスタは、データのために有用であり、又は、データアドレスポインタとなり得る。サポートされるデータタイプには、パック８ビットデータ、パック１６ビットデータ、３２ビットデータ、４０ビットデータ、及び６４ビットデータが含まれる。Ｃ６６ｘ  ＤＳＰ２０００は、１６ビットデータのための４ウェイＳＩＭＤ演算まで、及び８ビットデータのための８ウェイＳＩＭＤ演算までサポートする。そのため、各データパスについてのＳＩＭＤ幅は、１２８ビットのパックデータまで扱い得る幾つかの乗算演算以外は、６４ビットである。Ｃ６６ｘ及び命令セットの詳細な説明は、「ＴＭＳ３２０Ｃ６６ｘ  ＤＳＰ  ＣＰＵ及び命令セットリファレンスガイド」、ＳＰＲＵＧＨ７、２０１０年１１月に記載されており、このリファレンスガイドは、参照により本明細書に組み込まれる。
【００４７】
上述したように、図７の方法は、Ｎ個のウィンドウ（オブジェクトパッチ）を同時に評価する。ここで、Ｎは特徴サイズで除算されるＳＩＭＤ幅である。そのため、ＤＳＰ２０００では、方法の実施形態における特徴サイズが８ビットである場合、Ｎ＝８となり、方法の実施形態における特徴サイズが１６ビットである場合、Ｎ＝４となる。
【００４８】
他の実施形態
例えば、ディシジョンツリーが２レベル２進ディシジョンツリーである仮定される実施形態を記載してきた。なお、ディシジョンツリーは、２レベルより多くのレベルを含み得、及び／又は２進数である必要はない。
【００４９】
別の例において、或るオブジェクトパッチについてのツリートラバースが、そのオブジェクトパッチについての累積部分スコアが出口閾値未満に下がるとき終わる実施形態を記載してきた。なお、このようなオブジェクトパッチについてのツリートラバースを終わらせるのではなく、付加的な極小値がある場合、それを観察するために残りのツリーのトラバースが継続し得る。
【００５０】
別の例において、分類器が歩行者分類を実施していると仮定して実施形態を記載してきた。例えば、交通標識、車両、自転車に乗る人、及び動物など、画像における他のタイプのオブジェクト分類について他の実施形態が可能である。
【００５１】
図面に示され本明細書において記載されるステップの１つ又は複数が、同時に実施され得、組み合わされ得、及び／又は、図面に示され及び／又は本明細書において記載される順と異なる順で実施され得る。したがって、実施形態は、図面に示され及び／又は本明細書で記載されるステップの特定の順に限定されない。
【００５２】
構成要素は、記載される機能性から逸脱することなく、異なる名称で呼ばれ得、及び／又は、本明細書において示されていない方式で組み合わされ得る。また、例えば、第１のデバイスが第２のデバイスに結合する場合、その接続は、直接的な電気接続を介して、他のデバイス及び接続を介する間接的な電気接続を介して、光学電気接続を介して、及び／又は、無線電機接続を介して、成され得る。
【００５３】
特許請求の範囲内で、記載された実施形態の改変が可能であり、他の実施形態が可能である。
【図１】
2018520443.tif 000003
【図２】
2018520443.tif 000004
【図３】
2018520443.tif 000005
【図４】
2018520443.tif 000006
【図５】
2018520443.tif 000007
【図６】
2018520443.tif 000008
【図７】
2018520443.tif 000009
【図８】
2018520443.tif 000010
【図９】
2018520443.tif 000011
【図１０】
2018520443.tif 000012
【図１１】
2018520443.tif 000013
【図１２】
2018520443.tif 000014
【図１３】
2018520443.tif 000015
【図１４】
2018520443.tif 000016
【図１５】
2018520443.tif 000017
【図１６】
2018520443.tif 000018
【図１７】
2018520443.tif 000019
【図１８】
2018520443.tif 000020
【図１９】
2018520443.tif 000021
【図２０】
2018520443.tif 000022
【国際調査報告】
2018520443.tif 000023