(57)【特許請求の範囲】
【請求項１】
対象検出のコンピュータ実装方法であって、
入力画像を受信する段階と、
前記入力画像の領域を決定する段階と、
前記領域を対象候補領域として分類する、または前記領域をリジェクトするために、グラフィクス処理ユニットのビデオモーション推定モジュールを介して、線形分類器を前記入力画像の前記領域に適用する段階と、
前記領域が対象候補領域として分類されると、前記領域をカスケードフィルタステージ対象候補領域として分類する、または前記領域をリジェクトするために、前記領域をカスケードフィルタモジュールに転送し、前記領域を前記カスケードフィルタモジュールを介して処理する段階と、
前記領域がカスケードフィルタステージ対象候補領域として分類されると、マージされた領域を形成するために、前記領域を、カスケードフィルタステージ対象候補領域として分類される第２の領域とマージする段階と、
前記マージされた領域上で対象認識を実行する段階と、
を備える方法。
【請求項２】
前記グラフィクス処理ユニットの前記ビデオモーション推定モジュールを介して前記線形分類器を前記領域に適用する段階は、
前記領域を表わすベクトルと基準ベクトルとの間の絶対値の差に基づいて、絶対値の差ベクトルを決定する段階と、
前記絶対値の差ベクトルと重みベクトルとのドット積に基づいて結果値を決定する段階と、
前記結果値を閾値と比較する段階と、
を含む、請求項１に記載の方法。
【請求項３】
前記グラフィクス処理ユニットの前記ビデオモーション推定モジュールを介して前記線形分類器を前記領域に適用する段階は、
前記領域を表わすベクトルと基準ベクトルとの間の絶対値の差に基づいて、絶対値の差ベクトルを決定する段階であり、前記基準ベクトルは、ゼロ値パッチ、対象の平均、またはランダムな代表対象のうちの少なくとも１つを表す、段階と、
前記絶対値の差ベクトルと重みベクトルとのドット積に基づいて結果値を決定する段階と、
前記結果値を閾値と比較する段階と、
を含む、請求項１に記載の方法。
【請求項４】
前記グラフィクス処理ユニットの前記ビデオモーション推定モジュールを介して前記線形分類器を前記領域に適用する段階は、
前記領域を表わすベクトルと基準ベクトルとの間の絶対値の差に基づいて、絶対値の差ベクトルを決定する段階と、
前記絶対値の差ベクトルと重みベクトルとのドット積に基づいて結果値を決定する段階であり、前記重みベクトルは、事前訓練された重みベクトル、標準偏差の逆数で事前訓練された重みベクトル、線形判別で事前訓練された重みベクトル、またはサポートベクトルマシンで事前訓練された重みベクトルのうちの少なくとも１つを含む、段階と、
前記結果値を閾値と比較する段階と、
を含む、請求項１に記載の方法。
【請求項５】
前記カスケードフィルタモジュールは、７ステージカスケードフィルタを有し、前記カスケードフィルタは、ブーストカスケードフィルタ、Ｖｉｏｌａ−Ｊｏｎｅｓカスケードフィルタ、または特徴型分類を実装するＶｉｏｌａ−Ｊｏｎｅｓカスケードフィルタのうちの少なくとも１つを有する、請求項１に記載の方法。
【請求項６】
前記対象認識を実行する段階は、前記領域内の対象を識別する段階を含む、請求項１に記載の方法。
【請求項７】
前記対象認識を実行する段階は、前記領域内の対象を識別する段階を含み、前記対象は、顔、目、ランドマーク、書き込まれた文字、人間、または自動車のうちの少なくとも１つを有する、請求項１に記載の方法。
【請求項８】
対象検出のコンピュータ実装方法であって、
入力画像を受信する段階と、
前記入力画像の領域を決定する段階と、
前記領域を対象候補領域として分類する、または前記領域をリジェクトするために、グラフィクス処理ユニットのビデオモーション推定モジュールを介して、線形分類器を前記入力画像の前記領域に適用する段階と、
前記領域が対象候補領域として分類されると、前記領域を第２ステージ対象候補領域として分類する、または前記領域をリジェクトするために、前記グラフィクス処理ユニットの前記ビデオモーション推定モジュールを介して、第２線形分類器を前記領域に適用する段階と、
前記領域が第２ステージ対象候補領域として分類されると、前記領域を第３ステージ対象候補領域として分類する、または前記領域をリジェクトするために、前記グラフィクス処理ユニットの前記ビデオモーション推定モジュールを介して、第３線形分類器を前記領域に適用する段階と、
前記領域が第３ステージ対象候補領域として分類されると、前記領域をカスケードフィルタステージ対象候補領域として分類する、または前記領域をリジェクトするために、前記領域をカスケードフィルタモジュールに転送し、前記領域を前記カスケードフィルタモジュールを介して処理する段階と、
前記領域がカスケードフィルタステージ対象候補領域として分類されると、マージされた領域を形成するために、前記領域を、カスケードフィルタステージ対象候補領域として分類される第２の領域とマージする段階と、
前記マージされた領域が形成されると、前記マージされた領域上で対象認識を実行する段階と、
をさらに備える方法。
【請求項９】
前記グラフィクス処理ユニットの前記ビデオモーション推定モジュールを介して前記線形分類器を前記領域に適用する段階は、
前記領域を表わすベクトルと基準ベクトルとの間の絶対値の差に基づいて、絶対値の差ベクトルを決定する段階であり、前記基準ベクトルは、ゼロ値パッチ、対象の平均、またはランダムな代表対象のうちの少なくとも１つを表す、段階と、
前記絶対値の差ベクトルと重みベクトルとのドット積に基づいて結果値を決定する段階であり、前記重みベクトルは、事前訓練された重みベクトル、標準偏差の逆数で事前訓練された重みベクトル、線形判別で事前訓練された重みベクトル、またはサポートベクトルマシンで事前訓練された重みベクトルのうちの少なくとも１つを含む、段階と、
前記結果値を閾値と比較する段階と、
を含む、請求項８に記載の方法。
【請求項１０】
前記グラフィクス処理ユニットの前記ビデオモーション推定モジュールを介して、ビデオの動きベクトルの推定を決定する段階をさらに備える、請求項１又は８に記載の方法。
【請求項１１】
前記入力画像は、画像ファイルまたはビデオフレームのうちの少なくとも一方を含む、請求項１又は８に記載の方法。
【請求項１２】
対象検出のコンピュータ実装方法であって、
入力画像を受信する段階と、
前記入力画像の領域を決定する段階と、
前記領域を対象候補領域として分類する、または前記領域をリジェクトするために、グラフィクス処理ユニットのビデオモーション推定モジュールを介して、線形分類器を前記入力画像の前記領域に適用する段階と、
前記領域が対象候補領域として分類されると、前記領域を第２ステージ対象候補領域として分類する、または前記領域をリジェクトするために、前記グラフィクス処理ユニットの前記ビデオモーション推定モジュールを介して、第２線形分類器を前記領域に適用する段階と、
前記領域が第２ステージ対象候補領域として分類されると、前記領域を第３ステージ対象候補領域として分類する、または前記領域をリジェクトするために、前記グラフィクス処理ユニットの前記ビデオモーション推定モジュールを介して、第３線形分類器を前記領域に適用する段階と、
前記領域が第３ステージ対象候補領域として分類されると、前記領域をカスケードフィルタステージ対象候補領域として分類する、または前記領域をリジェクトするために、前記領域をカスケードフィルタモジュールに転送し、前記領域を前記カスケードフィルタモジュールを介して処理する段階であり、前記カスケードフィルタモジュールは、７ステージカスケードフィルタを有し、前記カスケードフィルタは、ブーストカスケードフィルタ、Ｖｉｏｌａ−Ｊｏｎｅｓカスケードフィルタ、または特徴型分類を実装するＶｉｏｌａ−Ｊｏｎｅｓカスケードフィルタのうちの少なくとも１つを有する、段階と、
前記グラフィクス処理ユニットの前記ビデオモーション推定モジュールを介して、ビデオの動きベクトルの推定を決定する段階と、
前記領域がカスケードフィルタステージ対象候補領域として分類されると、マージされた領域を形成するために、前記領域を、カスケードフィルタステージ対象候補領域として分類される第２の領域とマージする段階と、
前記領域がカスケードフィルタ対象候補領域として分類されると、前記領域上で対象認識を実行する段階であり、前記対象認識を実行する段階は、前記領域内の対象を識別する段階を含み、前記対象は、顔、目、ランドマーク、書き込まれた文字、人間、または自動車のうちの少なくとも１つを有する、段階と、
前記マージされた領域が形成されると、前記マージされた領域上で対象認識を実行する段階と、をさらに備え、
前記グラフィクス処理ユニットの前記ビデオモーション推定モジュールを介して前記線形分類器を前記領域に適用する段階は、
前記領域を表わすベクトルと基準ベクトルとの間の絶対値の差に基づいて、絶対値の差ベクトルを決定する段階であり、前記基準ベクトルは、ゼロ値パッチ、対象の平均、またはランダムな代表対象のうちの少なくとも１つを表す、段階と、
前記絶対値の差ベクトルと重みベクトルとのドット積に基づいて結果値を決定する段階であり、前記重みベクトルは、事前訓練された重みベクトル、標準偏差の逆数で事前訓練された重みベクトル、線形判別で事前訓練された重みベクトル、またはサポートベクトルマシンで事前訓練された重みベクトルのうちの少なくとも１つを含む、段階と、
前記結果値を閾値と比較する段階と、を含み、
前記入力画像は、画像ファイルまたはビデオフレームのうちの少なくとも一方を含み、
前記カスケードフィルタモジュールは、前記グラフィクス処理ユニットまたは中央処理ユニットのうちの少なくとも一方を介して実装され、
前記１または複数の対象認識候補領域上で前記対象認識を実行する段階は、前記グラフィクス処理ユニットまたは前記中央処理ユニットのうちの少なくとも一方を介して前記対象認識を実行する段階を含む方法。
【請求項１３】
コンピュータ上の対象検出のシステムであって、
入力画像の領域を決定し、前記入力画像の前記領域に線形分類器を適用して、前記領域を対象候補領域として分類する、または前記領域をリジェクトするビデオモーション推定モジュールを含むグラフィクス処理ユニットと、
前記グラフィクス処理ユニットに通信可能に結合される１または複数のプロセッサと、
前記１または複数のプロセッサに通信可能に結合される１または複数のメモリ記憶装置と、
前記領域をカスケードフィルタステージ対象候補領域として分類する、または前記領域をリジェクトするカスケードフィルタモジュールと、
前記領域を、カスケードフィルタステージ対象候補領域として分類される第２の領域とマージし、前記マージされた領域上で対象認識を実行する対象認識モジュールと、
を備えるシステム。
【請求項１４】
前記ビデオモーション推定モジュールは、前記線形分類器を前記領域に適用して、
前記領域を表わすベクトルと基準ベクトルとの間の絶対値の差に基づいて、絶対値の差ベクトルを決定し、
前記絶対値の差ベクトルと重みベクトルとのドット積に基づいて結果値を決定し、
前記結果値を閾値と比較することにより、前記領域を対象候補領域として分類する、または前記領域をリジェクトする、請求項１３に記載のシステム。
【請求項１５】
前記ビデオモーション推定モジュールは、前記線形分類器を前記領域に適用して、
前記領域を表わすベクトルと基準ベクトルとの間の絶対値の差に基づいて、絶対値の差ベクトルを決定し、前記基準ベクトルは、ゼロ値パッチ、対象の平均、またはランダムな代表対象のうちの少なくとも１つを表し、
前記絶対値の差ベクトルと重みベクトルとのドット積に基づいて結果値を決定し、前記重みベクトルは、事前訓練された重みベクトル、標準偏差の逆数で事前訓練された重みベクトル、線形判別で事前訓練された重みベクトル、またはサポートベクトルマシンで事前訓練された重みベクトルのうちの少なくとも１つを含み、
前記結果値を閾値と比較することにより、前記領域を対象候補領域として分類する、または前記領域をリジェクトする、請求項１３に記載のシステム。
【請求項１６】
前記ビデオモーション推定モジュールは、さらに、
前記領域が対象候補領域として分類されると、第２線形分類器を前記領域に適用して、前記領域を第２ステージ対象候補領域として分類する、または前記領域をリジェクトし、
前記領域が第２ステージ対象候補領域として分類されると、第３線形分類器を前記領域に適用して、前記領域を第３ステージ対象候補領域として分類する、または前記領域をリジェクトする、
請求項１３に記載のシステム。
【請求項１７】
前記ビデオモーション推定モジュールは、さらに、
前記領域が対象候補領域として分類されると、第２線形分類器を前記領域に適用して、前記領域を第２ステージ対象候補領域として分類する、または前記領域をリジェクトし、
前記領域が第２ステージ対象候補領域として分類されると、第３線形分類器を前記領域に適用して、前記領域を第３ステージ対象候補領域として分類する、または前記領域をリジェクトし、
前記ビデオモーション推定モジュールは、前記線形分類器を前記領域に適用して、
前記領域を表わすベクトルと基準ベクトルとの間の絶対値の差に基づいて、絶対値の差ベクトルを決定し、
前記絶対値の差ベクトルと重みベクトルとのドット積に基づいて結果値を決定し、
前記結果値を閾値と比較することにより、前記領域を対象候補領域として分類する、または前記領域をリジェクトする、請求項１３に記載のシステム。
【請求項１８】
前記カスケードフィルタモジュールは、７ステージカスケードフィルタを有し、前記カスケードフィルタは、ブーストカスケードフィルタ、Ｖｉｏｌａ−Ｊｏｎｅｓカスケードフィルタ、または特徴型分類を実装するＶｉｏｌａ−Ｊｏｎｅｓカスケードフィルタのうちの少なくとも１つを有する、請求項１３に記載のシステム。
【請求項１９】
前記対象認識モジュールは、前記領域内の対象を識別し、前記対象は、顔、目、ランドマーク、書き込まれた文字、人間、または自動車のうちの少なくとも１つを有する、請求項１３に記載のシステム。
【請求項２０】
前記ビデオモーション推定モジュールは、さらに、
前記領域が対象候補領域として分類されると、第２線形分類器を前記領域に適用して、前記領域を第２ステージ対象候補領域として分類する、または前記領域をリジェクトし、
前記領域が第２ステージ対象候補領域として分類されると、第３線形分類器を前記領域に適用して、前記領域を第３ステージ対象候補領域として分類する、または前記領域をリジェクトする、
請求項１３に記載のシステム。
【請求項２１】
前記対象認識モジュールは、前記領域内の対象を識別し、前記対象は、顔、目、ランドマーク、書き込まれた文字、人間、または自動車のうちの少なくとも１つを有し、
前記ビデオモーション推定モジュールは、さらに、
前記領域が対象候補領域として分類されると、第２線形分類器を前記領域に適用して、前記領域を第２ステージ対象候補領域として分類する、または前記領域をリジェクトし、
前記領域が第２ステージ対象候補領域として分類されると、第３線形分類器を前記領域に適用して、前記領域を第３ステージ対象候補領域として分類する、または前記領域をリジェクトする、
請求項１３に記載のシステム。
【請求項２２】
前記ビデオモーション推定モジュールは、さらに、ビデオの動きベクトルを推定する、請求項１３に記載のシステム。
【請求項２３】
前記カスケードフィルタモジュールは、前記グラフィクス処理ユニットまたは前記１または複数のプロセッサのうちの少なくとも一方を介して実装される、請求項１３に記載のシステム。
【請求項２４】
前記カスケードフィルタモジュールは、前記グラフィクス処理ユニットまたは前記１または複数のプロセッサのうちの少なくとも一方を介して実装され、前記対象認識モジュールは、前記グラフィクス処理ユニットまたは前記１または複数のプロセッサのうちの少なくとも一方を介して実装される、
請求項１３に記載のシステム。
【請求項２５】
前記グラフィクス処理ユニット、前記１または複数のプロセッサ、および前記１または複数のメモリ記憶装置は、システムオンチップを有する、請求項１３に記載のシステム。
【請求項２６】
前記カスケードフィルタモジュールは、７ステージカスケードフィルタを有し、前記カスケードフィルタは、ブーストカスケードフィルタ、Ｖｉｏｌａ−Ｊｏｎｅｓカスケードフィルタ、または特徴型分類を実装するＶｉｏｌａ−Ｊｏｎｅｓカスケードフィルタのうちの少なくとも１つを有し、
前記対象認識モジュールは、前記領域内の対象を識別し、前記対象は、顔、目、ランドマーク、書き込まれた文字、人間、または自動車のうちの少なくとも１つを有し、
前記ビデオモーション推定モジュールは、前記線形分類器を前記領域に適用して、
前記領域を表わすベクトルと基準ベクトルとの間の絶対値の差に基づいて、絶対値の差ベクトルを決定し、前記基準ベクトルは、ゼロ値パッチ、対象の平均、またはランダムな代表対象のうちの少なくとも１つを表し、
前記絶対値の差ベクトルと重みベクトルとのドット積に基づいて結果値を決定し、前記重みベクトルは、事前訓練された重みベクトル、標準偏差の逆数で事前訓練された重みベクトル、線形判別で事前訓練された重みベクトル、またはサポートベクトルマシンで事前訓練された重みベクトルのうちの少なくとも１つを含み、
前記結果値を閾値と比較することにより、前記領域を対象候補領域として分類し、または前記領域をリジェクトし、
前記ビデオモーション推定モジュールは、さらに、
前記領域が対象候補領域として分類されると、第２線形分類器を前記領域に適用して、前記領域を第２ステージ対象候補領域として分類する、または前記領域をリジェクトし、
前記領域が第２ステージ対象候補領域として分類されると、第３線形分類器を前記領域に適用して、前記領域を第３ステージ対象候補領域として分類する、または前記領域をリジェクトし、
前記ビデオモーション推定モジュールは、さらに、ビデオの動きベクトルを推定し、
前記カスケードフィルタモジュールは、前記グラフィクス処理ユニットまたは前記１または複数のプロセッサのうちの少なくとも一方を介して実装され、
前記対象認識モジュールは、前記グラフィクス処理ユニットまたは前記１または複数のプロセッサのうちの少なくとも一方を介して実装され、
前記グラフィクス処理ユニット、前記１または複数のプロセッサ、および前記１または複数のメモリ記憶装置は、システムオンチップを有し、
前記入力画像は、画像ファイルまたはビデオフレームのうちの少なくとも一方を含む、
請求項１３に記載のシステム。
【請求項２７】
コンピュータに、請求項１から１２のいずれか一項に記載の方法を実行させるプログラム。
【請求項２８】
請求項１から１２のいずれか一項に記載の方法を実行する手段を備える装置。
【発明の詳細な説明】
【背景技術】
【０００１】
対象検出は、広範なアプリケーションを有する。例えば、顔検出は、人間とコンピュータの相互伝達、フォトアルバム管理、生体認証、ビデオ監視、自動焦点イメージング、およびその他の様々な視覚システムにおいて用いられてよい。人間検出は、ビデオ監視、高度運転支援システムなどにおいて用いられてよい。他の対象検出の例は、トラフィック監視、自動車両駐車、文字認識、製造品質制御、対象計数、および品質監視を含む。
【０００２】
幾つかの既存の対象検出システムでは、Ｖｉｏｌａ−Ｊｏｎｅｓカスケード検出フレームワークが用いられる。Ｖｉｏｌａ−Ｊｏｎｅｓカスケード検出フレームワークでは、カスケード分類器を用いてウィンドウ内にターケッドが存在するか否かを調べるために、入力画像がスライドウィンドウを用いてスキャンされる。そのような方法は、実装するのに複雑な特徴ベースの分類器を採用してよい。さらに、そのような方法は、計算量が多い。様々なソフトウェアおよびハードウェア実装が提案されるが、提案された複数の実装は、特に、画像およびビデオ解像度が増大するにつれて制限を有する。
【０００３】
対象検出は、そのような多種多様なアプリケーションにおいて用いられてよいので、対象検出を効率良く実行するのが望ましい。
【図面の簡単な説明】
【０００４】
ここに記載される材料は、添付図面において、限定のためでなく例として示される。説明の簡潔かつ明確のため、複数の図面に示される複数の要素は、必ずしも縮尺どおりに描かれてはいない。例えば、幾つかの要素の複数の寸法は、明確さのために、他の複数の要素に対して誇張されてよい。さらに、適切であると判断する場合、複数の参照符号は、複数の対応するまたは類似の要素を示すために、複数の図の中で繰り返されている。
【０００５】
【図１】例示的な対象検出および／または認識システムの説明図である。
【０００６】
【図２】例示的な対象検出および／または認識過程を示すフローチャートである。
【０００７】
【図３】動作中の例示的な対象検出および／または認識過程の説明図である。
【０００８】
【図４】例示的な線形分類器の結果を示す一組のチャートである。
【０００９】
【図５】例示的な線形分類ステージの結果を示す一組のチャートである。
【００１０】
【図６】例示的な対象検出および／または認識システムの説明図である。
【００１１】
【図７】例示的なシステムの説明図である。
【００１２】
【図８】例示的なシステムの説明図であり、すべてが本開示の少なくとも幾つかの実装に従って構成される。
【発明を実施するための形態】
【００１３】
ここで、添付の図面に関して１または複数の実施形態または実装が記載される。特定の構成および配置が議論されるが、これは例示の目的のみに行われることが理解されるべきである。記載の趣旨および範囲を逸脱することなく他の構成および配置が使用されてよいことは当業者なら認識するであろう。ここに記載される複数の技術および／または構成が、ここに記載されるもの以外の他の様々なシステムおよびアプリケーションにおいて使用されてもよいことは当業者にとって明らかであろう。
【００１４】
以下の説明は、例えば、システムオンチップ（ＳｏＣ）アーキテクチャのようなアーキテクチャにおいて顕在化されてよい様々な実装を記載するが、ここに記載される技術および／または構成の実装は、特定のアーキテクチャおよび／またはコンピューティングシステムに制限されるものではなく、同様の目的の任意のアーキテクチャおよび／またはコンピューティングシステムによって実装されてよい。例えば、複数の集積回路（ＩＣ）チップおよび／またはパッケージを採用する様々のアーキテクチャ、および／または、様々なコンピューティングデバイスおよび／または、セットトップボックス、スマートフォンなどのような家電（ＣＥ）デバイスは、例えば、ここに記載される技術および／または構成を実装してよい。さらに、以下の記載は、ロジックの実装、システムコンポーネントのタイプおよび相互関係、ロジック分割／統合選択などのような多数の具体的な詳細を説明してよいが、クレームされた主題はそのような特定の詳細を含まずに実施されてよい。他の例では、例えば、制御構造および全ソフトウェア命令シーケンスのような幾つかの材料は、ここに開示される材料を不明瞭にしないようにするため、詳細に示されなくてよい。
【００１５】
ここに開示される材料は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組み合わせで実装されてよい。ここに開示される材料は、１または複数のプロセッサにより読み取られて実行されてよい機械可読媒体に格納された複数の命令として実装されてもよい。機械可読媒体は、機械（例えば、コンピューティングデバイス）により可読な形で情報を格納または送信する任意のメディアおよび／またはメカニズムを含んでよい。例えば、機械可読媒体は、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、電気、光、音、または他の形の伝搬信号（例えば、搬送波、赤外線信号、デジタル信号など）、およびその他を含んでよい。
【００１６】
明細書において「一実装」、「実装」、「例示的な実装」などと参照するとき、これは、記載される実装が、特定の特徴、構造、または特性を含んでよいが、すべての実装が、その特定の特徴、構造、または特性を必ずしも含まなくてよいことを示す。さらに、そのような文言は、必ずしも同一の実装を指さない。さらに、特定の特徴、構造、または特性が実装に関連して記載される場合、ここに明示的に記載されるか否かに関わらず、他の実装に関連して、そのような特徴、構造、または特性をもたらすことが当業者の知識の範囲内であることが提示される。
【００１７】
ビデオ推定モジュールを用いる加速対象検出フィルタに関するシステム、装置、物品、および方法が記載される。
【００１８】
上記のように、対象検出は、広範なアプリケーションを有する。しかし、対象検出の現在の実装は、計算量が多く、リアルタイム対象検出および／または認識を実現しない、利用可能な計算リソースの大部分またはすべてを消費する、および電力が集中するような制限を有する。
【００１９】
以下でより詳細に記載されるように、ビデオモーション推定モジュールが、対象検出を加速する線形分類器を実装するために再利用されて、より高い効率を提供してよく、それにより、リアルタイム対象検出および／または認識が達成され、計算リソースおよび電力がセーブされてよい。例えば、グラフィクス処理ユニットは、一般的に、モーションベクトル推定およびビデオエンコーディングの同様の計算を提供してよいビデオ推定モジュールを含んでよい。ここで用いられるように、ビデオ推定モジュールは、モーションベクトル推定およびビデオコーディングアプリケーションにおける同様の計算を提供するように構成された任意のモジュールを含んでよい。例えば、ビデオ推定モジュールは、重みベクトルと、現在のブロックのベクトルと参照ブロックのベクトルとの絶対値の差のベクトルと、のドット積を合計する計算を提供してよい。動きベクトルおよびビデオコーディングのコンテキストにおいて、そのような計算は、例えば、現在のブロックと参照ブロックとの間の（重み付けられた）差の測定値を提供してよい。
【００２０】
以下でより詳細に記載されるように、そのような計算は、対象検出プレフィルタリングのために再利用される。例えば、入力画像の個々の領域は、選択または決定されてよい。上記の計算は、再利用されて、重みベクトルと、領域を表すベクトルおよび基準ベクトルの絶対値の差のベクトルと、のドット積を合計する計算を決定してよい。これに関連して、基準ベクトルは、選択されて、目的の対象または対象の一部をおそらく含む（すなわち、線形分類器のプレフィルタリングを通る）、または目的の対象または対象の一部を含みそうにない（すなわち、線形分類器のプレフィルタリングに失敗し、リジェクトされる）領域の分類を高めてよい。例えば、顔認識アプリケーションにおいて、基準ベクトルは、ランダムな代表的な顔または顔の統計平均を表す顔を表してよい、または基準ベクトルは、ゼロ値の基準ベクトルであってよい。同様に、これに関連して、重みベクトルは、事前訓練されて対象認識プレフィルタリングを高めてよい。例えば、顔認識アプリケーションでは、重みベクトルは、複数の顔を含む多くの画像および顔を含まない多くの画像により事前訓練されてよい。
【００２１】
上記の計算は、閾値と比較される、そうでなければ評価されて、領域がプレフィルタを通るかどうか判断してよい。そのようなプレフィルタステージは、ビデオモーション推定モジュールを介して実装される線形分類器として記載されてよい。議論されるように、失敗領域は、リジェクトされてよい。合格領域は、対象認識処理のために転送されてよく、合格領域は、任意の数の追加の線形分類器のプレフィルタステージにてテストされてよい。そのような追加のステージは、例えば、ますます通り難くなってよい。ビデオモーション推定モジュールを介して実装されるそのようなステージは、それらが線形分類器であるという共通性を共有してよい。他の例では、合格領域（例えば、ビデオモーション推定モジュールを介して実装される単一のステージまたは複数の線形分類ステージを通る領域）は、追加のテストのためにカスケードフィルタに転送されてよい。カスケードフィルタは、以下でさらに議論されるように、例えばＶｉｏｌａ−Ｊｏｎｅｓカスケードフィルタまたはフレームワーク、またはスピードアップロバストフューチャ（ＳＵＲＦ）カスケードフィルタまたはフレームワークのようないずれの適切なタイプのカスケードフィルタを含んでよい。幾つかの例では、カスケードフィルタは、特徴ベースの分類ステージ（複数可）を実装してよい。
【００２２】
理解されるように、画像の他の領域は、同様に評価され、プレフィルタ処理されてよく、それにより、画像の一部（すなわち、プレフィルタ処理されない画像の部分）のみが対象認識モジュールにより処理されてよいそのようなプレフィルタリングは、貴重な計算リソースをセーブしてよい。
【００２３】
概して、ここで議論されるような対象検出は、対象（すなわち、目的のカテゴリの対象）が入力画像内にあってよいかどうか、および／または入力画像内のどこにあってよいか、を検出することを含んでよい。例えば、顔検出では、検出は、顔を検出することを含でよい。さらに、ここで議論されるような対象認識は、特定の対象（すなわち、個々の目的のカテゴリ）を認識することを含んでよい。例えば、顔認識では、認識は、どの人が検出された顔に関連付けられるかを識別することを含んでよい。記載されたハードウェア型の畳み込みプレフィルタは、対象検出および／または認識の実装のために、高速で、信頼性が高く、および低い計算および電力コストの処理を提供してよい。
【００２４】
図１は、本開示の少なくとも幾つかの実装に従って構成された、対象検出および／または認識の例示的なシステム１００の説明図である。示されるように、システム１００は、グラフィクス処理ユニット１２０およびカスケードフィルタモジュール１４０を介して実装されるビデオモーション推定モジュール１３０を含んでよい。様々な実装では、システム１００は、対象検出プレフィルタリングを実行することを含む、対象検出および／または認識を実行するよう構成されてよい。以下でさらに議論されるように、システム１００は、ビデオモーション推定モジュール１３０はグラフィクス処理ユニット１２０を介して実装されてよいという共通性を有する様々なハードウェア実装を介して使用されてよい。例えば、グラフィクス処理ユニット１２０は、ビデオモーション推定に関する計算および、特に、ここで議論されるそれらの計算を実行する専用の、または少なくとも部分的に専用のハードウェアまたはハードウェアの一部を含んでよい。幾つかの例では、ビデオモーション推定モジュール１３０は、複数のモーション推定サービスを提供してよい共有された機能またはリソースであってよい。様々な実装では、カスケードフィルタモジュール１４０は、グラフィクス処理ユニット１２０または以下でさらに議論される、しかし明確の目的のため図１に示されていない中央処理ユニット（複数可）のようなシステム１００の他の構成要素を介して実装されてよい。
【００２５】
以下でさらに議論されるように、システム１００は、明確の目的のために図１に示されない対象認識モジュールまたは追加のモジュールまたは構成要素を含んでもよい。例えば、システム１００は、無線周波数タイプ（ＲＦ）トランシーバ、ディスプレイ、アンテナ、スピーカ、マイク、加速度計、メモリ、ルータ、ネットワークインターフェースロジックなどを含んでよい。
【００２６】
議論されるように、幾つかの例では、システム１００は、複数の対象検出オペレーションまたは複数の対象検出プレフィルタオペレーションを実行してよい。例えば、システム１００は、１または複数の目的の対象１１２を含んでよい入力画像１１０を受信してよい。概して、入力画像１１０は、例えば、画像ファイルまたはビデオフレームなどのようないずれの適切な画像またはビデオデータであってよい。目的の対象１１２は、概して、例えば、顔、目、ランドマーク、書き込まれた文字、人間、または自動車などのように、対象検出および／または認識が所望されてよいいずれの対象を含んでよい。図１では、顔認識が、例示的な例として用いられる。理解されるように、幾つかの例では、入力画像１１０は、目的の対象を含まなくてよい。
【００２７】
示されるように、入力画像１１０の領域１１４は、選択または決定されてよい。領域１１４は、例えば、ビデオモーション推定モジュール１３０、グラフィクス処理ユニット１２０の別のモジュール、またはシステム１００の中央処理ユニット（複数可）のようないずれの適切なモジュールまたは構成要素により決定されてよい。理解されるように、入力画像１１０は、多くの領域に分割されてよく、個々の領域または複数の領域は、記載されるように決定され、処理されてよい。幾つかの例では、入力画像１１０の全体は、その領域のそれぞれが順に評価されるにつれて、処理されてよい。様々な実装では、複数の処理された領域は重なってよく、または複数の処理された領域は入力画像１１０の全体をカバーしなくてよい。
【００２８】
図１に示されるように、グラフィクス処理ユニット１２０のビデオモーション推定モジュール１３０は、線形分類カスケードフィルタ１３１を領域１１４に適用してよく、カスケードフィルタモジュール１４０は、カスケードフィルタ１４１を適用して、領域１１４が対象候補領域１５０であるかどうかを判断してよい。対象候補領域１５０は、合格領域（すなわち、線形分類カスケードフィルタ１３１および／またはカスケードフィルタ１４１のすべてのステージを通った領域）に関してよい。示されるように、線形分類カスケードフィルタ１３１は、線形分類ステージ１  １３２、線形分類ステージ２  １３４、および線形分類ステージＮ  １３６のように示される任意の数のステージを含んでよい。同様に、カスケードフィルタ１４１は、カスケードフィルタステージ１  １４２、カスケードフィルタステージ２  １４４、およびカスケードフィルタステージＮ  １４６として示された任意の数のステージを含んでよい。
【００２９】
概して、入力画像１１０の個々の領域は、ビデオモーション推定モジュール１３０により実装されるような線形分類カスケードフィルタ１３１を通じて処理されてよい。線形分類カスケードフィルタ１３１の複数のステージ１３２−１３６にて、領域１１４は、テストされて、それがステージを通るかどうか判断してよい。概して、ステージは、真偽テストを含んでよい。領域１１４が、図１に「Ｔ」と示されるステージを通る（例えば、領域についてのテストが真であると判断される）と、領域１１４は、次のステージに転送されてよい。そのような複数の例では、領域１１４は、対象候補領域として分類され、またはラベルされてよい。領域１１４が、図１に「Ｆ」と示されるステージを失敗する（例えば、ピクセルについてのテストが偽であると判断される）と、領域１１４は、リジェクト、破棄、および／またはリジェクト１９０としてラベルされてよい。線形分類カスケードフィルタ１３１は、例えば３つのステージのような任意の数のステージ１３２−１３６を含んでよい。幾つかの実装では、単一のステージが用いられてよい。議論されるように、領域がステージを通ると、領域は、対象候補領域として分類されてよい。領域が第２ステージを通ると、領域は、第２ステージ対象候補領域などとして分類されてよい。理解されるように、線形分類カスケードフィルタ１３１のすべてのステージを通る領域に対して、領域は、単に、対象候補領域、合格領域、線形分類合格領域などとして分類されてよい。
【００３０】
同様に、入力画像１１０の複数の領域は、カスケードフィルタ１４１を通じて処理されてよい。カスケードフィルタ１４１のステージ１４２−１４６にて、例えば、領域１１４は、テストされて、それがステージを通るかどうか判断してよい。示されるように、ステージは、真偽テストを含んでよい。領域１１４が、図１に「Ｔ」と示されるステージを通る（例えば、領域についてのテストが真であると判断される）と、領域１１４は、次のステージに転送されてよい。領域１１４が、図１に「Ｆ」と示されるステージを失敗する（例えば、ピクセルについてのテストが偽であると判断される）と、領域１１４は、リジェクト、破棄、および／またはリジェクト１４８としてラベルされてよい。幾つかの例では、カスケードフィルタ１４１は、複数のステージ１４２−１４６が複数の非線形分類器を含んでよい線形分類カスケードフィルタ１４１と異なってよい。例えば、複数のステージ１４２−１４６のいずれかは、分類（複数可）に基づく特徴を実装してよい。領域がカスケードフィルタ１４１の第２ステージの各ステージを通ると、領域は、カスケードフィルタステージ対象候補領域、合格領域、カスケードフィルタ合格領域などとして分類されてよい。
【００３１】
議論されるように、カスケードフィルタ１４１は、例えば、Ｖｉｏｌａ−Ｊｏｎｅｓカスケードフィルタまたはフレームワーク（例えば、Paul Viola, "Michael Jones, Rapid Object Detection using a Boosted Cascade of Simple Features", CVPR 2001および／またはPCT/CN2010/000997, Yangzhou Du, Qiang Li, "TECHNIQUES FOR FACE DETECTION AND TRACKING", ２０１０年１２月１０日出願参照）のようないずれの適切なタイプのカスケードフィルタを含んでよい。そのような複数の対象検出技術は、対象検出および／または認識が、顔検出、ランドマーク検出、顔アラインメント、スマイル／まばたき／性別／年齢検出、顔認識、２またはそれより多い顔を検出することなどを含むことができるようにしてよい。幾つかの例では、カスケードフィルタ１４１は、ブーストカスケードフィルタを含んでよい。
【００３２】
複数の他の例では、カスケードフィルタは、スピードアップロバストフューチャ（ＳＵＲＦ）カスケードフィルタまたはフレームワーク（例えば、Bay et al, " Surf: Speeded up robust features," Computer Vision and Image Understanding (CVIU), 110(3), 346-359ページ, 2008年および／またはPCT/CN2011/081642, Jianguo Li, Yimin Zhang, "OBJECT DETECTION USING EXTENDED SURF FEATURES", 2011年11月１日出願を参照）を含んでよい。そのような複数の対象検出技術は、対象検出および／または認識が、顔検出、ランドマーク検出、顔アラインメント、スマイル／まばたき／性別／年齢検出、顔認識、２またはそれより多い顔を検出することなどを含むことができるようにしてよい。
【００３３】
線形分類カスケードフィルタ１３１に関する議論に戻ると、概して、線形分類カスケードフィルタ１３１の様々なステージにて実装されるテストは、領域が目的の対象または目的の対象の部分を含む可能性が高いと考えられてよいかどうかの判断を含んでよい。
【００３４】
上で議論されたように、ビデオ推定モジュール１３０は、ビデオの動きベクトルの推定を提供するように構成されてよい。また、議論されるように、ビデオ推定モジュール１３０は、重みベクトルと、現在のブロックのベクトルと参照ブロックのベクトルとの絶対値の差のベクトルと、のドット積を合計する計算を提供するよう構成されてよい。そのような計算は、次のように方程式（１）に示されてよい。
Y = SUM { weight(i) × ABS [ curr block(i) - ref block(i) ] }    (1)
ただし、Ｙは計算結果であってよく、ＳＵＭはｉについての総和関数であってよく、ｉはカウンタ変数（例えば、カウンタ変数ｉは、評価されるピクセルの総数であるｎを用いて、１からｎまで走ってよい）であってよく、ＡＢＳは絶対値関数であってよく、weightは加重項であってよく、curr blockは現在のブロックであってよく、ref blockは参照ブロックであってよい。理解されるように、動きベクトルおよび複数のビデオコーディングコンテキストにおいて、そのような計算は、現在のブロックと参照ブロックとの間の加重差の程度を提供してよい。加重項が用いられない場合（すなわち、１の値が与えられる場合）、計算は、複数のブロックの類似の程度（すなわち、curr blockがref blockにどれだけ類似するかの程度）を提供する。加重項は、これに関連して、異なる重要性（複数可）を、画像またはビデオの複数のフレームの異なるエリアまたは複数の領域に導入してよい。
【００３５】
対象検出および／または認識との関連で、ビデオ推定モジュール１３０は、線形分類ステージ１−Ｎ  １３２、１３４、および／または１３６を適用するよう構成されてよい。線形分類ステージのそのようなアプリケーションは、領域を対象候補領域として分類する（すなわち、領域を通す）、または領域をリジェクトしてよい。例えば、方程式（１）は、方程式（２）に示されるように再利用されてよい。
【数１】
0006026007.tif 000002
ただし、ｙは計算結果であってよく、Ｗは重みベクトルであってよく、Ｘは領域１１４を表わすベクトルであってよく、Ｍは基準ベクトルであってよい。対象検出との関連で、方程式（２）は、領域１１４を表すベクトル（すなわちＸ）と基準ベクトル（すなわち、Ｍ）との間の絶対値の差に基づく絶対値の差ベクトルの判断を提供してよい。結果値（すなわち、ｙ）の判断は、絶対値の差ベクトルと重みベクトル（すなわち、Ｗ）とのドット積に基づく。判断された結果値（すなわち、ｙ）は、閾値と比較されてよく、比較に基づいて、領域１１４は、線形分類ステージを通った、または失敗したことを判断されてよい。
【００３６】
そのような複数の技術を用いて、例えば、ビデオ推定モジュール１３０は、領域を表すベクトルと基準ベクトルとの間の絶対値の差に基づく絶対値の差ベクトルを決定すること、絶対値の差ベクトルと重みベクトルとのドット積に基づく結果値を決定すること、および結果値を閾値と比較することにより、線形分類器（例えば、複数の分類ステージ１−Ｎ  １３２、１３４、および／または１３６のうちの１つの線形分類器）を適用してよい。
【００３７】
そのような複数の実装では、方程式（２）は、例えば、基準ベクトルＭがデータの中心を記述してよく、Ｗが各ディメンジョンの分散を反映してよいように分布関数として扱われてよい。概して、基準ベクトルＭは、線形フォームで選択されてよい。概して、基準ベクトルＭは、複数のステージ１３２−１３６にて、正確な分類を提供するその有効性のために選択されてもよい。例えば、基準ベクトルＭは、ゼロ値パッチ（すなわち、Ｍ＝０）、対象の平均（すなわち、統計平均対象）、またはランダムな代表対象を表すよう選択されてよい。さらに、重みベクトルＷは、複数のステージ１３２−１３６にて正確な分類を提供することにおけるその有効性に基づいて選択および／または算出されてよい。例えば、重みベクトルＷは、線形判別分析（ＬＤＡ）を用いて、またはサポートベクタマシン（ＳＶＭ）などを用いて、対象を有する領域内の各ピクセルに対する標準偏差（ＳＴＤ）の逆数として決定または算出されてよい。複数の顔検出アプリケーションにおけるそのような基準ベクトルＭの選択に関する複数の結果および重みベクトルＷを決定することに関する複数の方法論は、さらに以下で、特に図４について議論される。
【００３８】
結果値または計算結果ｙは、領域１１４が該当ステージを通るかどうかを判断するのに使用されてよい。例えば、結果値は、閾値（例えば、判断は、適宜、結果値が閾値より大きいまたはより小さいか否かについてされてよい）と比較されて、領域１１４が該当ステージを通るかどうか判断してよい。適用される閾値は、例えば、既定の閾値、事前訓練された閾値などを含んでよい。閾値は、例えば、複数のステージ１３２−１３６にて正確な分類を提供することにおけるその有効性に基づいて選択されてよく、時間をかけて訓練されてよい。
【００３９】
そのような複数の技術を用いて、例えば、ビデオ推定モジュール１３０は、領域を表すベクトルと基準ベクトルとの間の絶対値の差に基づく絶対値の差ベクトルを決定すること、絶対値の差ベクトルと重みベクトルとのドット積に基づく結果値を決定すること、および結果値を閾値と比較することにより、線形分類器（例えば、複数の分類ステージ１−Ｎ  １３２、１３４、および／または１３６のうちの１つの線形分類器）を適用してよい。
【００４０】
さらに、幾つかの実装では、リジェクトされた領域（複数可）１９０は、重みベクトルＷまたは適用される閾値を訓練するような訓練に用いられてよい、またはリジェクトされた領域（複数可）１９０は、基準ベクトルＭを選択することにおいて用いられてよい。そのような訓練は、ここで議論されるグラフィクス処理ユニット１２０または中央処理ユニット（複数可）を介して適用されてよい。
【００４１】
理解されるように、図１について議論される複数のプロセスおよび複数の構成要素は、様々な方法において実装されてよい。幾つかの実装では、単一の線形分類器は、カスケードフィルタを用いないで用いられてよい。そのような例では、単一の線形分類器は、領域が目的の対象または目的の対象の一部を含む可能性が高いと考えられるかどうか判断するのに用いられてよい。幾つかの実装では、単一の線形分類器は、カスケードフィルタを用いて用いられてよい。同様に、マルチステージ線形分類カスケードは、カスケードフィルタを用いてまたは用いないで用いられてよい。いずれにしても、対象候補領域（複数可）（すなわち、使用された実装を通る複数の領域）は、目的の対象または目的の対象の一部を含む可能性が高いと考えられてよい。そのような複数の領域は、任意選択的に、（例えば、グラフィクス処理ユニット１２０により、または１または複数の処理ユニットにより）マージされてよい。同様に、マージされたまたはマージされなかったいずれの複数の領域は、対象認識のために処理されてよい。対象認識は、例えば、グラフィクス処理ユニット１２０の対象認識モジュールまたは１または複数の処理ユニットにより、実行されてよい。上で議論されたように、対象検出は、入力画像が目的の対象を含むかどうか、またはどこに含むか判断することを含んでよく（例えば、入力画像は書き込まれた文字を含む）、対象認識は、対象がどのような特定の対象であってよいか識別することを含んでよい（例えば、書き込まれた文字は「Ｓ」である）。
【００４２】
以下により詳細に議論されるように、システム１００は、図２および／または図３に関連して以下に議論される様々な機能の幾つかまたはすべて、または図１について先に議論された複数の機能を実行するのに用いられてよい。
【００４３】
図２は、本開示の少なくとも幾つかの実装に従って構成された、例示的な対象検出および／または認識過程２００を示すフローチャートである。示された実装では、プロセス２００は、１または複数のブロック２０２、２０４、および／または２０６により示されるような１または複数オペレーション、機能、またはアクションを含んでよい。非限定的な例として、プロセス２００は、図１の例示のシステム１００に関してここに記載される。
【００４４】
プロセス２００は、対象検出および／または認識のコンピュータ実装方法として使用されてよい。プロセス２００は、ブロック２０２「入力画像を受信」にて開始してよい。ブロック２０２では、入力画像が受信されてよい。例えば、入力画像は、例えば、画像ファイルまたはビデオフレームなどのようないずれの適切な画像データを含んでよい。入力画像は、例えば、グラフィクス処理ユニット１２０および／またはビデオモーション推定モジュール１３０にて受信されてよい。入力画像は、いずれの適切な技術を用いて受信されてよく、別のデバイスからシステム１００により受信されてよく、システム１００にて内部で生成され、システム１００の別のモジュールからグラフィクス処理ユニット１２０に転送されてよく、またはグラフィクス処理ユニット１２０の別のモジュールにて内部で生成され、ビデオモーション推定モジュール１３０に転送されてよい。
【００４５】
処理は、オペレーション２０２からオペレーション２０４「入力画像の領域を決定」に継続してよい。オペレーション２０４では、入力画像の個々の領域が決定されてよい。領域は、例えば、グラフィクス処理ユニット１２０のビデオモーション推定モジュール１３０、グラフィクス処理ユニット１２０の別のモジュールにより、または中央処理ユニット（複数可）などにより、判断されてよい。領域は、例えば、入力画像の複数の領域のうちの個々の領域であってよい。
【００４６】
処理は、オペレーション２０４からオペレーション２０６「グラフィクス処理ユニットのビデオモーション推定モジュールを介して、線形分類器を領域に適用して、領域を対象候補領域として分類する、または領域をリジェクトする」に継続してよい。オペレーション２０６では、線形分類器は、領域に適用されて、領域が対象候補領域（すなわち、線形分類器を通り、目的の対象または目的の対象の一部である可能性が高いと考えられる）であるかどうかを判断する、または領域をリジェクトしてよい。線形分類器は、例えば、グラフィクス処理ユニット１２０のビデオモーション推定モジュール１３０を介して実装されてよい。グラフィクス処理ユニット１２０のビデオモーション推定モジュール１３０は、例えば、ビデオコーディングの動きベクトルを推定し、同様のビデオコーディングの複数の計算を提供するように構成されてもよい。
【００４７】
プロセス２００は、入力画像の他の領域（複数可）に対して繰り返されてよい。さらに、線形分類器を通る領域（複数可）は、例えば、いずれの追加の数の線形分類ステージを通じて、カスケードされてよい。任意選択的に、線形分類器を通る領域（複数可）は、単一または複数ステージカスケードフィルタにより処理されてよい。結果として生じる対象候補領域（複数可）（たとえあるとしても）は、任意選択的にマージされてよい。対象候補領域（複数可）またはマージされた対象候補領域（複数可）のいずれは、さらに、複数の領域上で対象認識を実行することにより処理されて、複数の領域内の目的の対象または目的の対象の一部を識別してよい。例えば、対象認識は、例えば、顔、目、ランドマーク、書き込まれた文字、人間、自動車などを含んでよいいずれの対象を識別してよい。
【００４８】
プロセス２００に関する幾つかの追加のおよび／または代わりの詳細が、図３に関して以下により詳細に議論される複数の実装のうちの１または複数の例において示されてよい。
【００４９】
図３は、本開示の少なくとも幾つかの実装に従って構成された、動作中の対象検出および／または認識の例示的なシステム１００およびプロセス３００の説明図である。示された実装では、プロセス３００は、アクション３１１、３１２、３１３、３１４、３１５、３１６、３２２、３２４、３３２および／または３３４のうちの１または複数により示されるような１または複数のオペレーション、機能、またはアクションを含んでよい。非限定的な例として、プロセス３００は、図１の例示のシステム１００に関してここに記載される。
【００５０】
示される実装では、システム１００は、複数のモジュール３０２など、および／または複数のそれらの組み合わせを含んでよい。例えば、複数のモジュール３０２は、ビデオモーション推定モジュール１３０、カスケードフィルタモジュール１４０、対象認識モジュール１６０など、および／またはそれらの複数の組み合わせを含んでよい。ビデオモーション推定モジュール１３０は、グラフィクス処理ユニット１２０を介して実装されてよく、入力画像の領域を決定し、線形分類器を領域に適用して、領域を対象認識モジュールとして分類するまたは領域をリジェクトするよう構成されてよい。  ビデオモーション推定モジュール１３０は、例えば、領域を表すベクトルと基準ベクトルとの間の絶対値の差に基づく絶対値の差ベクトルを決定すること、絶対値の差ベクトルと重みベクトルとのドット積に基づく結果値を決定すること、および結果値を閾値と比較することにより、線形分類器を適用するよう構成されてよい。ビデオモーション推定モジュール１３０は、複数の追加の線形分類器（複数可）を、初期の分類を通るいずれの領域に適用するよう構成されてよい。カスケードフィルタモジュール１４０は、線形分類器（複数可）を通る領域をカスケードフィルタステージ対象候補領域として分類する、または領域をリジェクトするよう構成されてよい。対象認識モジュール１６０は、カスケードフィルタモジュール１４０を通る複数の領域上で対象認識を実行するよう構成されてよい。対象認識モジュール１６０は、対象認識を実行する前に、合格領域を任意選択的にマージするよう構成されてもよい。
【００５１】
プロセス３００は、対象検出および／または認識のコンピュータ実装方法として使用されてよい。プロセス３００、ブロック３１１「入力画像を受信」にて開始してよい。ここでは、入力画像が受信されてよい。例えば、入力画像は、グラフィクス処理ユニット１２０および／またはビデオモーション推定モジュール１３０にて受信されてよい。入力画像は、システム１００により、別のデバイスから受信されてよく、またはシステム１００にて内部で生成されてよい。
【００５２】
処理は、オペレーション３１１からオペレーション３１２「領域を決定」に継続してよい。ここでは、入力画像の個々の領域が決定されてよい。領域は、入力画像の複数の領域のうちの個々の領域であってよく、対象検出および／または認識処理のために選択または決定されてよい。
【００５３】
処理は、オペレーション３１２からオペレーション３１３「線形分類ステージを適用」に継続してよい。オペレーション３１３では、線形分類ステージが、領域に適用されてよい。線形分類ステージは、グラフィクス処理ユニット１２０を介して実装されるビデオモーション推定モジュール１３０により適用されてよく、領域が対象候補領域（すなわち、線形分類器を通り、目的の対象または目的の対象の一部である可能性が高いと考えられる）またはリジェクトされた領域であるかどうかを判断してよい。線形分類ステージを適用することは、例えば、絶対値の差ベクトル（すなわち、領域を表すベクトルおよび基準ベクトルに絶対値の差を適用することにより決定されるベクトル）および重みベクトルのドット積に基づく計算を提供するビデオモーション推定モジュール１３０を再利用することを含んでよい。結果として生じる計算値は、閾値と比較されて、領域が線形分類ステージを通るかどうか判断してよい。
【００５４】
処理は、オペレーション３１３からオペレーション３１４「線形分類ステージ２−Ｎを適用」に継続してよい。ここでは、追加の複数の線形分類ステージが任意選択的に合格領域に適用されてよい。任意の数の追加のステージは、例えば、追加の２つのステージを含んで適用されてよい。いずれの追加のステージは、ビデオ推定モジュール１３０により適用されてよい。領域が追加の複数のステージを通るにつれて、領域はそれとして分類されてよい。例えば、領域が第２線形分類ステージを通ると、領域は、第２ステージ対象候補領域として分類されてよく、領域が第３線形分類ステージを通ると、領域は第３ステージ対象候補領域などとして分類されてよい。
【００５５】
処理は、オペレーション３１４から両方が「領域（複数可）を転送」とラベルされるオペレーション３１５または３１６に継続してよい。ここでは、１または複数の対象候補領域がカスケードフィルタモジュール１４０および／または対象認識モジュール１６０に転送されてよい。議論されるように、幾つかの例では、決定された複数の対象候補領域は、さらに、カスケードフィルタを適用することにより処理されてよい。複数の他の例では、いずれの決定された対象候補領域は、対象認識モジュール１６０に直接送信されてよい。
【００５６】
処理は、オペレーション３２２「カスケードフィルタを適用」にて継続してよい。ここでは、カスケードフィルタは、いずれの受信された領域に適用されて、それがカスケードフィルタステージ対象候補領域（すなわち、カスケードフィルタを通る領域）であってよいかどうかを判断してよい。適用されたカスケードフィルタは、例えば、７ステージのような任意の数のステージを含んでよい。適用されたカスケードフィルタは、例えば、ブーストカスケードフィルタ、Ｖｉｏｌａ−Ｊｏｎｅｓカスケードフィルタ、特徴型分類を実装するＶｉｏｌａ−Ｊｏｎｅｓカスケードフィルタ、またはＳＵＲＦカスケードフィルタのようないずれの適切なカスケードフィルタを含んでよい。
【００５７】
処理は、オペレーション３２２からオペレーション３２４「領域（複数可）を転送」に継続してよい。ここでは、カスケードフィルタステージ対象候補領域（複数可）として分類されたいずれの領域（複数可）は、カスケードフィルタモジュール１４０から対象認識モジュール１６０に転送されてよい。
【００５８】
処理は、オペレーション３３２「マージ」にて継続してよい。ここでは、前の処理を通ったいずれの受信された領域（複数可）は、任意選択的にマージされて、１または複数のマージされた対象候補領域を形成してよい。マージは、例えば、グラフィクス処理ユニット１２０または１または複数の中央処理ユニット（複数可）を介して実装されてよい。
【００５９】
処理は、オペレーション３３２からオペレーション３３４「目的の対象を識別」に継続してよい。ここでは、対象認識モジュール１６０は、受信された複数の対象候補領域および／または複数のマージされた対象候補領域上で対象認識を実行してよい。対象認識モジュール１６０は、例えば、顔、目、ランドマーク、書き込まれた文字、人間、自動車などを含んでよいいずれの対象を識別してよい。対象認識モジュール１６０は、例えば、グラフィクス処理ユニット１２０または１または複数の中央処理ユニット（複数可）を介して実装されてよい。
【００６０】
図２および図３に示されるように、例示的プロセス２００および３００および図１について議論された複数のプロセスの実装は、示された順序で示されるすべてのブロックの実行を含んでよいが、本開示はこれに関して限定されず、様々な例において、プロセス２００および３００の実装は、示されるおよび／または示されるものと異なる順序において複数のブロックのうちのサブセットのみの実行を含んでよい。
【００６１】
加えて、図２および図３の複数のブロックおよび図１について議論された複数のプロセスのうちの１つまたは複数は、１または複数のコンピュータプログラム製品により提供される複数の命令に応じて実行されてよい。そのような複数のプログラム製品は、例えばプロセッサにより実行されると、ここに記載される機能をもたらしてよい複数の命令を提供する信号担持媒体を含んでよい。複数のコンピュータプログラム製品は、コンピュータ可読媒体の任意の形式で提供されてよい。従って、例えば、１または複数のプロセッサコアを含むプロセッサ（複数可）は、コンピュータ可読媒体によりプロセッサへ伝達される複数の命令に応じて、図２および３に示される複数のブロックのうちの１または複数を実行してよい。
【００６２】
ここに記載されるいずれの実装において用いられるように、用語「モジュール」は、ここに記載される機能を提供するように構成されたソフトウェア、ファームウェア、および／またはハードウェアの任意の組み合わせを指す。ソフトウェアは、ソフトウェアパッケージ、コード、および／または、命令セットもしくは複数の命令として具現されてよく、「ハードウェア」という用語は、ここに記載される任意の実装で用いられるように、例えば、ハードワイヤード回路、プログラマブル回路、ステートマシン回路、および／または、プログラマブル回路により実行される複数の命令を格納するファームウェアを単独または任意の組み合わせで含んでよい。複数のモジュールは、集合的または個別に、より大きなシステムの一部を形成する回路、例えば、集積回路（ＩＣ），システムオンチップ（ＳｏＣ）などとして具現されてよい。
【００６３】
議論されるように、動作中、プロセス２００および／またはプロセス３００は、対象認識プレフィルタリングの線形分類器および／または線形分類カスケード（すなわち、複数の線形分類ステージは連結されて、線形分類カスケードを形成してよい）として動作してよい。また、議論されるように、ビデオモーション推定モジュールは、使用されて、方程式（１）および方程式（２）について議論された計算を再利用することを介して１または複数の線形分類ステージを適用してよい。さらに、計算では、基準ベクトルＭは選択されてよく、重みベクトルＷは決定されてよい。理解されるように、基準ベクトルＭおよび重みベクトルＷは、適用される線形分類ステージの有効性に影響してよい。
【００６４】
図４は、本開示の少なくとも幾つかの実装に従って構成された、例示的な線形分類器の結果を示す一組のチャートである。  図５は、本開示の少なくとも幾つかの実装に従って構成された、例示的な複数の線形分類ステージの結果を示す一組のチャートである。
【００６５】
図４および図５に示される複数のチャートは、ｘ軸に偽陽性（ＦＰ）率（ＦＰＲ）およびｙ軸に真陽性（ＴＰ）率（ＴＰＲ）を示す。複数のチャートに示される複数の曲線は、複数の線形分類器の複数の受信者操作特性（ＲＯＣ）曲線として記載されてよい。そのような表現において、１−ＴＰＲは、検出失敗率であってよく、１−ＦＰＲは、検出アルゴリズムにおけるスキャンエリアの節約であってよい。理解されるように、より高い１−ＦＰＲ及びより低い１−ＴＰＲは概して望ましくてよく、それにより、チャートの左上に向かう傾向にある複数のＲＯＣ曲線は概して望ましくてよい。
【００６６】
ここで、図４を参照すると、３つのチャート（４Ａ、４Ｂ、および４Ｃ）が、例示的な顔検出実装に対して示される。チャート４Ａは、複数の顔の統計平均（すなわち、バイアス：平均）を表す基準ベクトルが用いられる実装に対する複数のＲＯＣ曲線を示す。チャート４Ｂは、ランダムな顔（すなわち、バイアス：Ｘ（１））を表す基準ベクトルが用いられる実装に対する複数のＲＯＣ曲線を示す。チャート４Ｃは、ゼロ値パッチ（すなわち、バイアス：ゼロ）を表す基準ベクトルが用いられる実装に対する複数のＲＯＣ曲線を示す。各チャートの基準ベクトルのタイプは、便宜上、各チャートの上にラベルされる。
【００６７】
示されるように、チャート４Ａは、３つのＲＯＣ曲線を含む。ＲＯＣ曲線４０１は、対象を有する領域内の各ピクセルに対する標準偏差（ＳＴＤ）の逆数を用いて決定された重みベクトルに対するＲＯＣを示す。ＲＯＣ曲線４０２は、線形判別分析（ＬＤＡ）を用いて決定された重みベクトルに対するＲＯＣを示す。ＲＯＣ曲線４０３は、サポートベクタマシン（ＳＶＭ）を用いて決定された重みベクトルに対するＲＯＣを示す。さらに、チャート４Ａは、それぞれＳＴＤ，ＬＤＡ，およびＳＶＭに対してＴＰＲ＝０．９９になるＦＰＲを示す３つの垂線４０４、４０５および４０６を含む。
【００６８】
同様に、チャート４Ｂは、３つのＲＯＣ曲線を含む。ＲＯＣ曲線４１１は、対象を有する領域内の各ピクセルに対する標準偏差（ＳＴＤ）の逆数を用いて決定された重みベクトルに対するＲＯＣを示し、ＲＯＣ曲線４１２は、線形判別分析（ＬＤＡ）を用いて決定された重みベクトルに対するＲＯＣを示し、ＲＯＣ曲線４１３は、サポートベクタマシン（ＳＶＭ）を用いて決定された重みベクトルに対するＲＯＣを示す。また、チャート４Ｂは、それぞれＳＴＤ，ＬＤＡ，およびＳＶＭに対してＴＰＲ＝０．９９になるＦＰＲを示す３つの垂線４１４、４１５および４１６を示す。
【００６９】
さらに、チャート４Ｃは、３つの曲線を示す。ＲＯＣ曲線４２１は、対象を有する領域内の各ピクセルに対する標準偏差（ＳＴＤ）の逆数を用いて決定された重みベクトルに対するＲＯＣを示し、ＲＯＣ曲線４２２は、線形判別分析（ＬＤＡ）を用いて決定された重みベクトルに対するＲＯＣを示し、ＲＯＣ曲線４２３は、サポートベクタマシン（ＳＶＭ）を用いて決定された重みベクトルに対するＲＯＣを示す。また、チャート４Ｃは、それぞれＳＴＤ，ＬＤＡ，およびＳＶＭに対してＴＰＲ＝０．９９になるＦＰＲを示す３つの垂線４２４、４２５および４２６を示す。
【００７０】
チャート４Ａ、４Ｂ、および／または４Ｃを用いて判断されてよいように、複数の顔検出アプリケーションにおいて、ＬＤＡは、概して、重みベクトルを決定するのに好適であってよい。また、図４の複数のチャートを用いて決定されてよいように、ゼロ値パッチ（すなわち、バイアス：ゼロ）を表す基準ベクトルは、概して、顔検出実装において好適であってよい。同様の複数のチャート技術および／または複数の解析を用いて、複数の重みベクトルを決定するのに適切な複数の基準ベクトルおよび／または複数の技術が、（例えば、目、ランドマーク、書き込まれた文字、人間、自動車などのような）他の複数の対象に対する複数の実装に対して決定されてよい。
【００７１】
ここで、図５を参照すると、３つのチャートが、顔検出実装における線形分類の複数ステージに対して示される。各ステージは、ゼロ値パッチ（すなわち、バイアス：ゼロ）を表す基準ベクトルを用いる実装を示す。チャート５Ａは、処理のステージ１にてＬＤＡ実装に対するＲＯＣを示すＲＯＣ曲線５０１を示す。さらに、チャート５Ａは、ＴＰＲ＝０．９９になるＦＰＲを示す垂線５０２を示す。同様に、チャート５Ｂは、処理のステージ２にてＬＤＡ実装に対するＲＯＣを示すＲＯＣ曲線５１１を示す。また、チャート５Ｂは、ＴＰＲ＝０．９９になるＦＰＲを示す垂線５１２を示す。さらに、チャート５Ｃは、処理のステージ３にてＬＤＡ実装に対するＲＯＣを示すＲＯＣ曲線５２１を示す。また、チャート５Ｃは、ＴＰＲ＝０．９９になるＦＰＲを示す垂線５２２を含む。
【００７２】
チャート５Ａ、５Ｂ、および／または５Ｃを見ることにより理解されるように、各ステージの性能は、この実装における後の複数のステージに対して減少する。この３ステージ線形分類カスケードに対して、最終的なＦＰＲは、ＦＰＲ（３ステージ）＝０．０６７×０．５１７×０．７１３＝０．０２５のように決定されてよい。ただし、ＴＰＲ（３ステージ）＝０．９９３＝０．９７０である。従って、そのような実装は、３％（１−ＴＰＲ）の精度損失でスキャンエリアの（例えば、入力画像の）約９７．５％（１−ＦＰＲ）をフィルタ除去してよい。そのような性能は、リアルタイム対象検出および／または認識を提供してよい。さらに、議論されるように、そのような複数の線形分類ステージは、より低い電力消費を提供してよいハードウェア（すなわち、グラフィクスプロセッサユニット）において実装されてよい。そのような複数の利点は、特に、バッテリ動作および／または複数のモバイルデバイスにおいて重要であってよい。
【００７３】
図６は、本開示の少なくとも幾つかの実装に従って構成された、対象検出および／または認識の例示的なシステム１００の説明図である。示される実装では、システム１００は、１または複数の中央処理ユニット６０２、１または複数のメモリ記憶装置６０４、グラフィクス処理ユニット（複数可）１２０、および／またはシステムエージェント／メモリコントローラ６０６を含んでよい。中央処理ユニット６０２、メモリ記憶装置６０４、グラフィクス処理ユニット（複数可）１２０、および／またはシステムエージェント／メモリコントローラ６０６は、例えばバスまたは他のアクセスを介して、互いに通信可能であってよい。
【００７４】
図６に示され、上で議論されたように、ビデオ推定モジュール１３０は、グラフィクス処理ユニット（複数可）１２０を介して実装されてよい。さらに、様々な例において、カスケードフィルタモジュール１４０は、グラフィクス処理ユニット（複数可）１２０または複数の中央処理ユニット６０２を介して実装されてよい。また、様々な例において、対象認識モジュール１６０は、グラフィクス処理ユニット（複数可）１２０または複数の中央処理ユニット６０２を介して実装されてよい。
【００７５】
グラフィクス処理ユニット（複数可）１２０は、複数のプロセッサ、複数のマルチコアプロセッサ、複数の特定用途向け集積回路、プログラマブル論理デバイス、グラフィクスカード、集中画像表示、汎用グラフィクス処理ユニット（複数可）などを含んでよい。中央処理ユニット（複数可）６０２は、例えば、マイクロプロセッサ（複数可）、複数のマルチコアプロセッサ、複数の特定用途向け集積回路、チップ（複数可）、複数のチップセットなどを含むいずれの適切な実装を含んでよい。加えて、複数のメモリ記憶装置５０８は、揮発性メモリ（例えばスタティックランダムアクセスメモリ（ＳＲＡＭ），ダイナミックランダムアクセスメモリ（ＤＲＡＭ）など）、または不揮発性メモリ（例えばフラッシュメモリなど）などのような、任意のタイプのメモリであってよい。非限定的な例において、複数のメモリ記憶装置５０８は、キャッシュメモリによって実装されてよい。システムエージェント／メモリコントローラは、システム１００を管理し、メモリ記憶装置６０４を制御するよう構成されるいずれの適切な実装を含んでよい。様々な例において、システム１００は、チップセットとしてまたはシステムオンチップとして実装されてよい。ある例において、システム１００は、グラフィクスプロセッサ、クアッドコア中央処理ユニット、オンボードキャッシュ、メモリコントローラ入力／出力（Ｉ／Ｏ）モジュール（不図示）、およびディスプレイ機能、Ｉ／Ｏ機能、およびダイレクトメディアインターフェース（ＤＭＩ）機能を管理するよう構成されるシステムエージェントおよびメモリコントローラを有する単一チップまたはデバイスとして実装されてよい。
【００７６】
図７は、本開示に従う例示的なシステム７００を示す。様々な実装では、システム７００はこのコンテキストに限定されないものの、システム７００はメディアシステムであってよい。例えば、システム７００は、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯用情報端末（ＰＤＡ）、携帯電話、携帯電話／ＰＤＡの組み合わせ、テレビ、スマートデバイス（例えば、スマートフォン、スマートタブレット、またはスマートテレビ）、モバイルインターネットデバイス（ＭＩＤ）、メッセージングデバイス、データ通信デバイスなどに組み込まれてよい。
【００７７】
様々な実装では、システム７００は、ディスプレイ７２０に結合されるプラットフォーム７０２を含む。プラットフォーム７０２は、コンテンツサービスデバイス（複数可）７３０またはコンテンツ配信デバイス（複数可）７４０または他の同様な複数のコンテンツソースのようなコンテンツデバイスから、コンテンツを受信してよい。１または複数のナビゲーション機能を含むナビゲーションコントローラ７５０は、例えばプラットフォーム７０２および／またはディスプレイ７２０と相互伝達するために用いられてよい。これらの構成要素のそれぞれは、以下でより詳細に記載される。
【００７８】
様々な実装では、プラットフォーム７０２は、チップセット７０５、プロセッサ７１０、メモリ７１２、ストレージ７１４、グラフィクスサブシステム７１５、複数のアプリケーション７１６、および／または無線７１８のいずれの組み合わせを含んでよい。チップセット７０５は、プロセッサ７１０、メモリ７１２、ストレージ７１４、グラフィクスサブシステム７１５、複数のアプリケーション７１６、および／または無線７１８の間で相互通信を提供してよい。例えば、チップセット７０５は、相互通信にストレージ７１４を提供可能なストレージアダプタ（不図示）を含んでよい。
【００７９】
プロセッサ７１０は、複合命令セットコンピュータ（ＣＩＳＣ）または縮小命令セットコンピュータ（ＲＩＳＣ）プロセッサ、複数のｘ８６命令セット互換プロセッサ、マルチコア、または任意の他のマイクロプロセッサまたは中央処理ユニット（ＣＰＵ）として実装されてよい。様々な実装では、プロセッサ７１０は、デュアルコアプロセッサ（複数可）、デュアルコアモバイルプロセッサ（複数可）などであってよい。
【００８０】
メモリ７１２は、これに限定されないが、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、またはスタティックＲＡＭ（ＳＲＡＭ）のような揮発性メモリデバイスとして実装されてよい。
【００８１】
ストレージ７１４は、これに限定されないが、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、内蔵ストレージデバイス、外付けストレージデバイス、フラッシュメモリ、バッテリバックアップＳＤＲＡＭ（シンクロナスＤＲＡＭ）、および／またはネットワークアクセス可能ストレージデバイスのような不揮発性ストレージデバイスとして実装されてよい。様々な実装では、ストレージ７１４は、例えば複数のハードドライブが含まれる場合には、貴重なデジタルメディアの、保護強化された記憶性能を向上する技術を含んでよい。
【００８２】
グラフィクスサブシステム７１５は、表示のための静止画または動画のような複数の画像の処理を実行してよい。グラフィクスサブシステム７１５は、例えば、グラフィクス処理ユニット（ＧＰＵ）またはビジュアルプロセッシングユニット（ＶＰＵ）であってよい。アナログまたはデジタルインターフェースは、グラフィクスサブシステム７１５とディスプレイ７２０とを通信可能に結合するのに用いられてよい。例えば、インターフェースは、Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ、Ｄｉｓｐｌａｙ  Ｐｏｒｔ、無線ＨＤＭＩ（登録商標）、および／または無線ＨＤ準拠技術のうちのいずれかであってよい。グラフィクスサブシステム７１５は、プロセッサ７１０またはチップセット７０５に一体化されてよい。幾つかの実装では、グラフィクスサブシステム７１５は、チップセット７０５に通信可能に結合されるスタンドアロンカードであってよい。
【００８３】
ここに記載されるグラフィクスおよび／またはビデオ処理技術は、様々のハードウェアアーキテクチャにより実装されてよい。例えば、グラフィクスおよび／またはビデオ機能は、チップセット内に一体化されてよい。あるいは、別個のグラフィクスおよび／またはビデオプロセッサが用いられてよい。さらに別の実装として、複数のグラフィクスおよび／またはビデオ機能は、マルチコアプロセッサを含む汎用プロセッサにより提供されてよい。複数のさらなる実施形態において、複数の機能は家電機器において実装されてよい。
【００８４】
無線７１８は、信号を、様々な適切な無線通信技術を用いて送受信可能な１または複数の無線を含んでよい。そのような技術は、１または複数の無線ネットワークを介する通信を包含してよい。例示的な無線ネットワークは、無線ローカルエリアネットワーク（ＷＬＡＮ）、無線パーソナルエリアネットワーク（ＷＰＡＮ）、ワイヤレス大都市圏ネットワーク（ＷＭＡＮ）、セルラーネットワーク、及び衛星ネットワークを含む（但し、これに限定されない）。そのような複数のネットワークを介する通信では、無線７１８は、任意のバージョンの１または複数の適用可能な規格に従って動作してよい。
【００８５】
様々な実装では、ディスプレイ７２０は、いずれのテレビ型モニタまたはディスプレイを含んでよい。ディスプレイ７２０は、例えば、コンピュータディスプレイスクリーン、タッチスクリーンディスプレイ、ビデオモニタ、テレビ様のデバイス、および／またはテレビを含んでよい。ディスプレイ７２０は、デジタルおよび／またはアナログであってよい。様々な実装では、ディスプレイ７２０は、ホログラフィクスディスプレイでもあってよい。また、ディスプレイ７２０は、視覚投影を受信してよい透明な面であってよい。複数のそのような投影は、様々な形式の情報、画像、および／または対象を伝達してよい。例えば、複数のそのような投影は、移動拡張現実（ＭＡＲ）アプリケーションの視覚的オーバレイであってよい。１または複数のソフトウェアアプリケーション７１６の制御の下で、プラットフォーム７０２は、ディスプレイ７２０上のユーザインターフェース７２２を表示してよい。
【００８６】
様々な実装では、コンテンツサービスデバイス（複数可）７３０は、いずれの国内、国際、および／または独立サービスによりホストされてよく、従って、例えば、インターネットを介してプラットフォーム７０２にアクセス可能であってよい。コンテンツサービスデバイス（複数可）７３０は、プラットフォーム７０２および／またはディスプレイ７２０に結合されてよい。プラットフォーム７０２および／またはコンテンツサービスデバイス（複数可）７３０は、ネットワーク７６０に結合されて、ネットワーク７６０におよびからメディア情報を通信（例えば、送信および／または受信）してよい。また、コンテンツ配信デバイス（複数可）７４０は、プラットフォーム７０２および／またはディスプレイ７２０に結合されてよい。
【００８７】
様々な実装では、コンテンツサービスデバイス（複数可）７３０は、ケーブルテレビボックス、パーソナルコンピュータ、ネットワーク、電話、インターネット対応デバイスまたはデジタル情報および／またはコンテンツを配信可能なアプライアンス、およびコンテンツプロバイダとプラットフォーム７０２／ディスプレイ７２０との間で、ネットワーク７６０を介してまたは直接、一方向にまたは双方向にコンテンツを通信可能な任意の他の同様なデバイスを含んでよい。システム７００内の複数の構成要素のいずれか１つとコンテンツプロバイダとに、および、から、一方向および／または双方向に、コンテンツがネットワーク７６０を介して通信されてよいことが理解されよう。コンテンツの複数の例として、例えば、ビデオ、音楽、医療、ゲーム情報などを含む任意のメディア情報を含んでよい。
【００８８】
コンテンツサービスデバイス（複数可）７３０は、メディア情報、デジタル情報、および／または他のコンテンツを含むケーブルテレビプログラムのようなコンテンツを受信してよい。複数のコンテンツプロバイダの複数の例として、任意のケーブルまたは衛星テレビあるいは無線またはインターネットコンテンツプロバイダを含んでよい。提供される複数の例は、本開示に従う実装を決して限定するものではない。
【００８９】
様々な実装では、プラットフォーム７０２は、１または複数のナビゲーション機能を有するナビゲーションコントローラ７５０から複数の制御信号を受信してよい。コントローラ７５０の複数のナビゲーション機能は、例えば、ユーザインターフェース７２２との相互伝達に用いられよい。複数の実施形態において、ナビゲーションコントローラ７５０は、ユーザが空間（例えば、連続かつ多次元の）データをコンピュータに入力することを可能にするコンピュータハードウェアコンポーネント（具体的には、ヒューマンインターフェースデバイス）であってよいポインティングデバイスであってよい。複数のグラフィカルユーザインターフェース（ＧＵＩ）、ならびに複数のテレビおよび複数のモニタのような多くのシステムは、ユーザが、複数の身体的なジェスチャにより、コンピュータまたはテレビを制御およびそれにデータを提供することができるようにする。
【００９０】
コントローラ７５０の複数のナビゲーション機能の動きは、ディスプレイ上に表示されるポインタ、カーソル、フォーカスリング、または他の複数の視覚インジケータの動きにより、ディスプレイ（例えば、ディスプレイ７２０）上に複製されてよい。例えば、複数のソフトウェアアプリケーション７１６の制御下で、ナビゲーションコントローラ７５０上に位置される複数のナビゲーション機能は、例えば、ユーザインターフェース７２２上に表示される複数の仮想ナビゲーション機能に対してマッピングされてよい。複数の実施形態において、コントローラ７５０は別個の構成要素でなくてよいが、プラットフォーム７０２および／またはディスプレイ７２０に一体化されてよい。しかし、本開示は、ここに示されるまたは記載される要素にまたはコンテキストに限定されない。
【００９１】
様々な実装では、複数のドライバ（不図示）は、例えば、イネーブルされると、初期ブートアップ後にボタンのタッチを用いるテレビのように、複数のユーザが瞬時にプラットフォーム７０２をオンオフできるようにする技術を含んでよい。プログラムロジックは、プラットフォームがオフされても、プラットフォーム７０２がコンテンツを複数のメディアアダプタまたは他のコンテンツサービスデバイス（複数可）７３０またはコンテンツ配信デバイス（複数可）７４０にストリームできるようにしてよい。加えて、チップセット７０５は、例えば、８．１サラウンドサウンドオーディオおよび／または高解像度（７．１）サラウンドサウンドオーディオに対するハードウェアおよび／またはソフトウェアサポートを含んでよい。複数のドライバは、複数の一体化グラフィクスプラットフォームに対するグラフィクスドライバを含んでよい。複数の実施形態において、グラフィクスドライバは、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）エクスプレスグラフィクスカードを備えてよい。
【００９２】
様々な実装では、システム７００に示される複数の構成要素のうちのいずれの１つまたは複数は一体化されてよい。例えば、プラットフォーム７０２およびコンテンツサービスデバイス（複数可）７３０は一体化されてよい、またはプラットフォーム７０２およびコンテンツ配信デバイス（複数可）７４０は一体化されてよい、または、例えば、プラットフォーム７０２、コンテンツサービスデバイス（複数可）７３０、およびコンテンツ配信デバイス（複数可）７４０は一体化されてよい。様々な実施形態において、プラットフォーム７０２およびディスプレイ７２０は、一体化されたユニットであってよい。例えば、ディスプレイ７２０およびコンテンツサービスデバイス（複数可）７３０は一体化されてよく、またはディスプレイ７２０およびコンテンツ配信デバイス７４０（複数可）は一体化されてよい。これらの例は、本開示を限定することを意味しない。
【００９３】
様々な実施形態において、システム７００は、無線システム、有線システム、または両方の組み合わせとして実装されてよい。無線システムとして実装される場合、システム７００は、１または複数のアンテナ、複数の送信機、複数のレシーバ、複数のトランシーバ、複数の増幅器、複数のフィルタ、制御ロジックなどのような無線共有媒体上での通信に適切な複数の構成要素および複数のインターフェースを含んでよい。無線共有媒体の一例として、ＲＦスペクトルなどのような無線スペクトルの複数の部分を含んでよい。有線システムとして実装される場合、システム７００は、複数の入力／出力（Ｉ／Ｏ）アダプタ、Ｉ／Ｏアダプタを対応する有線通信媒体に接続する複数の物理コネクタ、ネットワークインターフェースカード（ＮＩＣ）、ディスクコントローラ、ビデオコントローラ、オーディオコントローラなどのような、有線通信媒体を介した通信に適した複数の構成要素および複数のインターフェースを含んでよい。有線通信媒体の例として、導線、ケーブル、金属鉛、プリント回路基板（ＰＣＢ）、バックプレーン、スイッチファブリック、半導体材料、ツイストペア線、同軸ケーブル、光ファイバなどを含んでよい。
【００９４】
プラットフォーム７０２は、情報を通信する１または複数の論理または物理チャネルを確立してよい。情報は、メディア情報および制御情報を含んでよい。メディア情報は、ユーザ向けのコンテンツを表す任意のデータを意味してよい。コンテンツの例として、例えば、音声会話、ビデオ会議、ストリーミングビデオ、電子メール（「ｅメール」）メッセージ、音声メールメッセージ、英数字記号、グラフィクス、画像、ビデオ、テキストなどからのデータを含んでよい。音声会話からのデータは、例えば、音声情報、沈黙時間、バックグラウンドノイズ、快適ノイズ、トーンなどであってよい。制御情報は、自動化システム向けの、複数のコマンド、複数の命令、または複数の制御ワードを表す任意のデータを指してよい。例えば、制御情報は、システムを通じてメディア情報をルーティングするために、または、所定のやり方でメディア情報を処理するようにノードに指示するために、用いられてよい。しかし、複数の実施形態は、図７に示すまたは記載される要素またはコンテキストに限定されるものではない。
【００９５】
上記のように、システム７００は、物理スタイルまたはフォームファクタの変化において具現されてよい。図８は、システム７００が具現されてよい小型フォームファクタデバイス８００の実装を示す。複数の実施形態において、例えば、デバイス８００は、複数の無線機能を有するモバイルコンピューティングデバイスとして実装されてよい。例えば、モバイルコンピューティングデバイスは、プロセッシングシステムおよび１または複数のバッテリのような移動式の電源または電力供給装置を有する任意のデバイスを指してよい。
【００９６】
上記のように、モバイルコンピューティングデバイスの複数の例は、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯用情報端末（ＰＤＡ）、携帯電話、携帯電話／ＰＤＡの組み合わせ、テレビ、スマートデバイス（例えば、スマートフォン、スマートタブレット、またはスマートテレビ）、モバイルインターネットデバイス（ＭＩＤ）、メッセージングデバイス、データ通信デバイスなどを含んでよい。
【００９７】
また、モバイルコンピューティングデバイスの複数の例は、リストコンピュータ、フィンガコンピュータ、リングコンピュータ、メガネコンピュータ、ベルトクリップコンピュータ、アームバンドコンピュータ、シューズコンピュータ、衣服コンピュータ、および他のウェアラブルコンピュータのような、人により着用されるように配置されるコンピュータを含んでよい。様々な実施形態において、例えば、モバイルコンピューティングデバイスは、複数の音声通信および／または複数のデータ通信だけでなく、複数のコンピュータアプリケーションを実行可能なスマートフォンとして実装されてよい。幾つかの実施形態が、例として、スマートフォンとして実装されるモバイルコンピューティングデバイスを用いて記載されてよいが、他の実施形態が同様に複数の他の無線モバイルコンピューティングデバイスを使用して実装されてよいことが理解されてよい。実施形態は、これに関連して、限定されない。
【００９８】
図８に示されるように、デバイス８００は、ハウジング８０２、ディスプレイ８０４、入力／出力（Ｉ／Ｏ）デバイス８０６、およびアンテナ８０８を含んでよい。デバイス８００も、複数のナビゲーション機能８１２を含んでよい。ディスプレイ８０４は、モバイルコンピューティングデバイスに適した情報を表示するための、任意の適切なディスプレイユニットを含んでよい。Ｉ／Ｏデバイス８０６は、モバイルコンピューティングデバイスに情報を入力するための、任意の適切なＩ／Ｏデバイスを含んでよい。Ｉ／Ｏデバイス８０６の複数の例として、英数字キーボード、テンキーパッド、タッチパッド、複数の入力キー、複数のボタン、複数のスイッチ、複数のロッカースイッチ、複数のマイクロホン、複数のスピーカ、音声認識デバイスおよびソフトウェアなどを含んでよい。情報も、マイク（不図示）を用いてデバイス８００に入力されてよい。そのような情報は、音声認識デバイス（不図示）によりデジタル化されてよい。実施形態は、これに関連して、限定されない。
【００９９】
様々な実施形態は、ハードウェア要素、ソフトウェア要素、または両方の組み合わせを用いて実装されてよい。ハードウェア要素の複数の例として、複数のプロセッサ、複数のマイクロプロセッサ、複数の回路、複数の回路素子（例えば、複数のトランジスタ、複数の抵抗器、複数のコンデンサ、複数の誘導子など）、複数の集積回路、複数の特定用途向け集積回路（ＡＳＩＣ）、複数のプログラマブル論理デバイス（ＰＬＤ）、複数のデジタルシグナルプロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、複数の論理ゲート、複数のレジスタ、半導体デバイス、複数のチップ、複数のマイクロチップ、複数のチップセットなどを含んでよい。ソフトウェアの複数の例として、複数のソフトウェアコンポーネント、複数のプログラム、複数のアプリケーション、複数のコンピュータプログラム、複数のアプリケーションプログラム、複数のシステムプログラム、複数の機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、複数のソフトウェアモジュール、複数のルーチン、複数のサブルーチン、複数の関数、複数の方法、複数のプロシージャ、複数のソフトウェアインターフェース、複数のアプリケーションプログラムインターフェース（ＡＰＩ）、複数の命令セット、コンピューティングコード、コンピュータコード、複数のコードセグメント、複数のコンピュータコードセグメント、複数のワード、複数の値、複数の記号、またはそれらの任意の組み合わせを含んでよい。実施形態が複数のハードウェア要素および／またはソフトウェア要素を用いて実装されるかどうかについて決定することは、任意の数の要因に従って変化してよく、そのような要因として、例えば、所望の計算レート、電力レベル、耐熱性、処理サイクル予算、入力データレート、出力データレート、メモリリソース、データバススピード、および他の設計または性能制約条件がある。
【０１００】
少なくとも１つの実施形態の１または複数の態様は、機械により読み取られると、機械にここに記載の複数の技術を実行するロジックを組み立てさせるプロセッサ内に様々なロジックを表す機械可読媒体上に格納される複数の代表的命令により実装されてよい。「ＩＰコア」として知られるそのような表現は、有形の機械可読媒体に格納され、ロジックまたはプロセッサを実際に作成する製造機械にロードする様々な顧客または製造設備に提供されてよい。
【０１０１】
ここに説明された或る特定の特徴が様々な実装に関して記載されたが、この記載は、限定的な意味に解釈されることを意図するものではない。よって、ここに記載された複数の実装の多様な変更であって、本開示に関連する当業者にとって明らかな変更は、他の実装と同様に、本開示の趣旨および範囲内であると考えられる。
【０１０２】
以下の複数の例は、さらなる実施形態に関する。
【０１０３】
一例において、対象検出のコンピュータ実装方法は、入力画像を受信することを含んでよい。入力画像の領域は決定されてよい。線形分類器は、領域を対象候補領域として分類する、または領域をリジェクトするために、グラフィクス処理ユニットのビデオモーション推定モジュールを介して、入力画像の領域に適用されてよい。
【０１０４】
一例において、対象検出のコンピュータ実装方法は、入力画像を受信することを含んでよい。入力画像の領域は決定されてよい。線形分類器は、領域を対象候補領域として分類する、または領域をリジェクトするために、グラフィクス処理ユニットのビデオモーション推定モジュールを介して、入力画像の領域に適用されてよい。領域が対象候補領域として分類されると、第２線形分類器は、領域を第２ステージ対象候補領域として分類する、または領域をリジェクトするために、グラフィクス処理ユニットのビデオモーション推定モジュールを介して、領域に適用されてよい。領域が第２ステージ対象候補領域として分類されると、第３線形分類器は、領域を第３ステージ対象候補領域として分類する、または領域をリジェクトするために、グラフィクス処理ユニットのビデオモーション推定モジュールを介して、領域に適用されてよい。領域が第３ステージ対象候補領域として分類されると、領域をカスケードフィルタステージ対象候補領域として分類する、または領域をリジェクトするために、領域は、カスケードフィルタモジュールに転送されてよく、領域は、カスケードフィルタモジュールを介して処理されてよい。カスケードフィルタモジュールは、７ステージカスケードフィルタ、ブーストカスケードフィルタ、Ｖｉｏｌａ−Ｊｏｎｅｓカスケードフィルタ、または特徴型分類を実装するＶｉｏｌａ−Ｊｏｎｅｓカスケードフィルタを含んでよい。さらに、ビデオの動きベクトルの推定は、グラフィクス処理ユニットのビデオモーション推定モジュールを介して、決定されてよい。領域がカスケードフィルタステージ対象候補領域として分類されると、マージされた領域を形成するために、領域は、カスケードフィルタステージ対象候補領域としても分類される第２の領域とマージされてよい。対象認識は、マージされた領域上で実行されてよい。線形分類器を適用することは、基準ベクトルがゼロ値パッチ、対象の平均、またはランダムな代表対象を表すように、領域を表すベクトルと基準ベクトルとの間の絶対値の差に基づく絶対値の差ベクトルを決定すること、重みベクトルが、事前訓練された重みベクトル、標準偏差の逆数で事前訓練された重みベクトル、線形判別で事前訓練された重みベクトル、またはサポートベクトルマシンで事前訓練された重みベクトルであってよいように、絶対値の差ベクトルと重みベクトルとのドット積に基づいて結果値を決定すること、および結果値を閾値と比較すること、を含んでよい。入力画像は、画像ファイルまたはビデオフレームを含んでよい。カスケードフィルタモジュールは、グラフィクス処理ユニットまたは中央処理ユニットを介して実装されてよい。対象認識候補領域上の対象認識は、グラフィクス処理ユニットまたは中央処理ユニットを介して実装されてよい。
【０１０５】
他の例では、コンピュータ上の対象検出のシステムは、入力画像の領域を決定し、入力画像の領域に線形分類器を適用して、領域を対象候補領域として分類する、または領域をリジェクトするように構成されたビデオモーション推定モジュールを含むグラフィクス処理ユニット、グラフィクス処理ユニットに通信可能に結合される１または複数のプロセッサ、および１または複数のプロセッサに通信可能に結合される１または複数のメモリ記憶装置を含んでよい。
【０１０６】
別の例において、システムは、さらに、領域上で対象認識を実行して領域内の対象を識別するよう構成された対象認識モジュールを含んでよい。対象は、顔、目、ランドマーク、書き込まれた文字、人間、または自動車を含んでよい。ビデオ推定モジュールは、線形分類器を領域に適用して、基準ベクトルがゼロ値パッチ、対象の平均、またはランダムな代表対象を表すように、領域を表すベクトルと基準ベクトルとの間の絶対値の差に基づく絶対値の差ベクトルを決定すること、重みベクトルが、事前訓練された重みベクトル、標準偏差の逆数で事前訓練された重みベクトル、線形判別で事前訓練された重みベクトル、またはサポートベクトルマシンで事前訓練された重みベクトルであってよいように、絶対値の差ベクトルと重みベクトルとのドット積に基づいて結果値を決定すること、および結果値を閾値と比較すること、により、領域を対象候補領域として分類する、または領域をリジェクトするように構成されてよい。ビデオモーション推定モジュールは、さらに、領域が対象候補領域として分類されると、第２線形分類器を領域に適用して、領域を第２ステージ対象候補領域として分類する、または領域をリジェクトするように構成されてよい。ビデオモーション推定モジュールは、さらに、領域が第２ステージ対象候補領域として分類されると、第３線形分類器を領域に適用して、領域を第３ステージ対象候補領域として分類する、または領域をリジェクトするように構成されてよい。ビデオモーション推定モジュールは、さらに、ビデオの動きベクトルを推定するよう構成されてよい。カスケードフィルタモジュールは、グラフィクス処理ユニットまたは１または複数のプロセッサを介して実装されてよい。対象認識モジュールは、グラフィクス処理ユニットまたは１または複数のプロセッサを介して実装されてよい。グラフィクス処理ユニット、１または複数のプロセッサ、および１または複数のメモリ記憶装置は、システムオンチップであってよい。入力画像は、画像ファイルまたはビデオフレームであってよい。
【０１０７】
さらなる例では、少なくとも１つの機械可読媒体は、コンピューティングデバイス上で実行されることに応じて、コンピューティングデバイスに、上記の複数の例のうちのいずれか１つに係る方法を実行させる複数の命令を含んでよい。
【０１０８】
さらに別の例では、装置は、上記の複数の例のうちのいずれか１つに係る方法を実行する手段を含んでよい。
【０１０９】
上記の複数の例は、複数の特徴の特定の組み合わせを含んでよい。しかし、そのような上記の複数の例は、これに関して限定されず、様々な実装では、上記の複数の例は、そのような複数の特徴のサブセットのみを扱うこと、そのような複数の特徴の異なる順序を扱うこと、そのような複数の特徴の異なる組み合わせを扱うこと、および／または、明示的にリストされたそれらの特徴に対して追加の特徴を扱うこと、を含んでよい。例えば、例示的な方法について記載されたすべての特徴は、例示的な装置、例示的なシステム、および／または、例示的な物品について実装されてよいし、その逆もまた同様である。
【図１】
0006026007.tif 000003
【図２】
0006026007.tif 000004
【図３】
0006026007.tif 000005
【図４】
0006026007.tif 000006
【図５】
0006026007.tif 000007
【図６】
0006026007.tif 000008
【図７】
0006026007.tif 000009
【図８】
0006026007.tif 000010