(57)【要約】  本技法は、エッジ、コーナなどの特徴を検出するためにセンサの読みに基づいて計算された結果を生成するための装置および方法を説明する。センサ装置は、複数のセンサ要素を含むセンサ要素アレイを含んでよい。センサ要素は、列および行など、2次元アレイ内に配列されてよい。センサ要素は、環境条件に基づくセンサの読みを生成することが可能であり得る。センサ装置は、センサ要素アレイに結合され、1つまたは複数のセンサ要素からの出力を受信するように構成された、ピクセル内回路、周辺回路、または専用マイクロプロセッサ内に専用コンピュータビジョン(CV)計算ハードウェアを含んでよい。専用CV計算ハードウェアは、CV演算を使用して特徴を検出するための構成可能ブロックを含んでよく、構成可能ブロックは、線形バイナリパターン(LBP)および/または符号付き勾配のヒストグラム(HSG)のコンピュータビジョン演算など、複数のCV演算の間を切り替えるように構成されてよい。
2017531864.tif 000002
【特許請求の範囲】
【請求項１】
複数のセンサ要素を備えるセンサ要素アレイであって、前記センサ要素が前記センサ要素アレイの少なくとも第1の次元および第2の次元に沿って配列され、前記複数のセンサ要素の各々が前記センサ要素に入射する光に基づく信号を生成することができる、センサ要素アレイと、
前記センサ要素アレイからの画像データを受信することができ、1つまたは複数の2次元パッチの各々におけるセンサ要素からの信号に基づいて前記センサ要素アレイ内の前記1つまたは複数の2次元パッチに対するCV特徴を順次に計算するように構成可能である専用コンピュータビジョン(CV)計算ハードウェアであって、前記専用CV計算ハードウェアが、前記CV計算ハードウェアが第1のモードで第1のタイプのCV特徴を計算することおよび第2のモードで第2のタイプのCV特徴を計算することを可能にするスイッチを含む、専用CV計算ハードウェアとを備える、ビジョンセンサ。
【請求項２】
前記専用CV計算ハードウェアが、前記センサ要素アレイに対して周辺にある、請求項1に記載のビジョンセンサ。
【請求項３】
前記第1のタイプのCV特徴が、ローカルバイナリパターン(LBP)ラベルである、請求項1に記載のビジョンセンサ。
【請求項４】
前記第1のタイプのCV特徴が、LBPラベルの第1の変形形態であり、前記第2のタイプのCV特徴が、LBPラベルの第2の変形形態である、請求項3に記載のビジョンセンサ。
【請求項５】
前記第2のタイプのCV特徴が、符号付き勾配のヒストグラム(HSG)ラベルである、請求項3に記載のビジョンセンサ。
【請求項６】
前記専用CV計算ハードウェアが、専用マイクロプロセッサに結合される、請求項1に記載のビジョンセンサ。
【請求項７】
前記第1のタイプのCV特徴が、加速セグメント試験からの特徴(FAST)のコーナである、請求項1に記載のビジョンセンサ。
【請求項８】
前記専用CV計算ハードウェアが、アプリケーションプロセッサに結合される、請求項1に記載のビジョンセンサ。
【請求項９】
前記専用CV計算ハードウェアが、比較器を備える、請求項1に記載のビジョンセンサ。
【請求項１０】
前記専用CV計算ハードウェアが、加重和演算を実行するための回路を備える、請求項1に記載のビジョンセンサ。
【請求項１１】
前記専用CV計算ハードウェアが、電荷スケーリング回路を備える、請求項8に記載のビジョンセンサ。
【請求項１２】
前記専用CV計算ハードウェアが、前記第1のタイプCV特徴および前記第2のタイプのCV特徴を計算するために第3のモードに切り替えるように構成される、請求項1に記載のビジョンセンサ。
【請求項１３】
前記専用CV計算ハードウェアの一部が、前記第1のタイプCV特徴または前記第2のタイプのCV特徴を計算するために、バイパス経路を使用してバイパスされる、請求項1に記載のビジョンセンサ。
【請求項１４】
センサ要素アレイを形成する複数のセンサ要素に入射する光に基づくセンサの読みを受信するステップであって、前記複数のセンサ要素が、前記センサ要素アレイの少なくとも第1の次元および第2の次元に沿って配列される、受信するステップと、
前記センサ要素アレイからの画像データを受信することができ、1つまたは複数の2次元パッチの各々におけるセンサ要素からの信号に基づいて前記センサ要素アレイ内の前記1つまたは複数の2次元パッチに対するCV特徴を順次に計算するように構成可能である専用コンピュータビジョン(CV)計算ハードウェアを動作させるモードを決定するステップであって、前記専用CV計算ハードウェアが、前記CV計算ハードウェアが第1のモードで第1のタイプのCV特徴を計算することおよび第2のモードで第2のタイプのCV特徴を計算することを可能にするスイッチを含む、決定するステップと、
前記決定されたモードに基づいて対応するタイプのCV特徴を計算するために、前記専用CV計算ハードウェアを前記第1のモードまたは前記第2のモードに切り替えるステップとを含む、方法。
【請求項１５】
前記専用CV計算ハードウェアが、前記センサ要素アレイに対して周辺にある、請求項14に記載の方法。
【請求項１６】
前記第1のタイプのCV特徴が、ローカルバイナリパターン(LBP)ラベルである、請求項14に記載の方法。
【請求項１７】
前記第1のタイプのCV特徴が、LBPラベルの第1の変形形態であり、前記第2のタイプのCV特徴が、LBPラベルの第2の変形形態である、請求項16に記載の方法。
【請求項１８】
前記第2のタイプのCV特徴が、符号付き勾配のヒストグラム(HSG)ラベルである、請求項16に記載の方法。
【請求項１９】
前記専用CV計算ハードウェアが、専用マイクロプロセッサに結合される、請求項14に記載の方法。
【請求項２０】
前記第1のタイプのCV特徴が、加速セグメント試験からの特徴(FAST)のコーナである、請求項14に記載の方法。
【請求項２１】
前記専用CV計算ハードウェアが、アプリケーションプロセッサに結合される、請求項14に記載の方法。
【請求項２２】
前記専用CV計算ハードウェアが、比較器を備える、請求項14に記載の方法。
【請求項２３】
前記専用CV計算ハードウェアが、加重和演算を実行するための回路を備える、請求項14に記載の方法。
【請求項２４】
前記専用CV計算ハードウェアが、電荷スケーリング回路を備える、請求項21に記載の方法。
【請求項２５】
前記専用CV計算ハードウェアが、前記第1のタイプCV特徴および前記第2のタイプのCV特徴を計算するために第3のモードに切り替えるように構成される、請求項14に記載の方法。
【請求項２６】
前記専用CV計算ハードウェアの一部が、前記第1のタイプCV特徴または前記第2のタイプのCV特徴を計算するために、バイパス経路を使用してバイパスされる、請求項14に記載の方法。
【請求項２７】
センサ要素アレイを形成する複数のセンサ要素に入射する光に基づくセンサの読みを受信するための手段であって、前記複数のセンサ要素が、前記センサ要素アレイの少なくとも第1の次元および第2の次元に沿って配列される、受信するための手段と、
前記センサ要素アレイからの画像データを受信することができ、1つまたは複数の2次元パッチの各々におけるセンサ要素からの信号に基づいて前記センサ要素アレイ内の前記1つまたは複数の2次元パッチに対するCV特徴を順次に計算するように構成可能である専用コンピュータビジョン(CV)計算ハードウェアを動作させるモードを決定するための手段であって、前記専用CV計算ハードウェアが、前記CV計算ハードウェアが第1のモードで第1のタイプのCV特徴を計算することおよび第2のモードで第2のタイプのCV特徴を計算することを可能にするスイッチを含む、決定するための手段と、
前記決定されたモードに基づいて対応するタイプのCV特徴を計算するために、前記専用CV計算ハードウェアを前記第1のモードまたは前記第2のモードに切り替えるための手段とを含む、装置。
【請求項２８】
前記第1のタイプのCV特徴が、ローカルバイナリパターン(LBP)ラベルである、請求項14に記載の方法。
【請求項２９】
前記第2のタイプのCV特徴が、符号付き勾配のヒストグラム(HSG)ラベルである、請求項16に記載の方法。
【請求項３０】
命令を含む非一時的コンピュータ可読記憶媒体であって、前記命令が、プロセッサによって、
センサ要素アレイを形成する複数のセンサ要素に入射する光に基づくセンサの読みを受信するステップであって、前記複数のセンサ要素が、前記センサ要素アレイの少なくとも第1の次元および第2の次元に沿って配列される、受信するステップと、
前記センサ要素アレイからの画像データを受信することができ、1つまたは複数の2次元パッチの各々におけるセンサ要素からの信号に基づいて前記センサ要素アレイ内の前記1つまたは複数の2次元パッチに対するCV特徴を順次に計算するように構成可能である専用コンピュータビジョン(CV)計算ハードウェアを動作させるモードを決定するステップであって、前記専用CV計算ハードウェアが、前記CV計算ハードウェアが第1のモードで第1のタイプのCV特徴を計算することおよび第2のモードで第2のタイプのCV特徴を計算することを可能にするスイッチを含む、決定するステップと、
前記決定されたモードに基づいて対応するタイプのCV特徴を計算するために、前記専用CV計算ハードウェアを前記第1のモードまたは前記第2のモードに切り替えるステップとを実行可能である、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、コンピュータビジョンを可能にすることに関し、より詳細には、コンピュータビジョンを使用して特徴を検出するための効率を改善することに関する。
【背景技術】
【０００２】
コンピュータビジョンは、アプリケーション内で使用するための画像を獲得、処理、解析および理解するための方法を含む分野である。従来、プロセッサは、センサに結合されて、センサから画像を獲得し、コンピュータビジョン(CV)の特徴および結果としてそれらの特徴に関連付けられた対象物を検出するために、センサから受信された情報に対していくつかのCV演算を実行する。CV特徴は、エッジ、コーナなどの特徴を含むことがある。これらの特徴は、顔、微笑およびジェスチャーなど、巨視的特徴を決定するために使用されることがある。プロセッサ上で実行されるプログラムは、平面検出、顔検出、微笑検出、ジェスチャー検出など、多様なアプリケーションにおいて検出された特徴を利用することがある。
【０００３】
コンピューティングデバイスがコンピューティングデバイスの視野内の特徴および対象物を検出することを可能にするために、近年、多くの努力がなされてきた。モバイルデバイスなどのコンピューティングデバイスは、処理するリソースの量と、モバイルデバイスによって使用される電力および放熱とに対する感受性をもって設計される。しかしながら、従来、コンピューティングデバイスの視野内の特徴および対象物をカメラを使用して検出することはかなりの処理リソースを必要とし、モバイルデバイスなどのコンピューティングデバイス内でより高い電力消費とより低いバッテリー寿命とをもたらす。
【発明の概要】
【課題を解決するための手段】
【０００４】
本開示の態様は例として示されている。以下の説明は図面を参照して提供され、全体を通して、同様の参照番号は同様の要素を指すために使用される。本明細書では1つまたは複数の技法の様々な詳細について説明するが、他の技法も同様に可能である。場合によっては、様々な技法の説明を容易にするために、周知の構造およびデバイスがブロック図の形式で示されている。
【０００５】
明細書の残りの部分および図面を参照することによって、本開示によって与えられる実施例の性質および利点をさらに理解することができ、同様の参照番号が、同様の構成要素を指すために、いくつかの図面全体で用いられる。場合によっては、複数の同様の構成要素の1つを指すために、サブラベルが参照番号に関連付けられる。存在するサブラベルを特定することなく、参照番号に言及する場合、参照番号はそのようなすべての同様の構成要素を指す。
【図面の簡単な説明】
【０００６】
【図１】2次元アレイ内に配列された複数のセンサ要素を備える例示的なセンサを示す図である。
【図２】センサ要素とピクセル内回路とを備える例示的なピクセルを示す図である。
【図３】センサ要素アレイに結合された例示的な周辺回路を示す図である。
【図４】専用CV処理モジュールに結合された例示的なセンサ要素アレイを示す図である。
【図５】構成可能ブロックを備える例示的なセンサ要素アレイを示す図である。
【図６】本開示の態様による、図5に示す例示的な合計バンクブロック(sum bank block)を示す図である。
【図７】本開示の態様による、図5に示すサンプルアンドホールドブロックの一例を示す図である。
【図８】本開示の態様による、図5に示す関数バンクの一例を示す図である。
【図９】図5で説明した構成可能ブロックに対する例示的な選択された構成を示す図である。
【図１０Ａ】符号付き勾配のヒストグラム(HSG)演算を実行するための例示的なセンサ要素の読みを示す図である。
【図１０Ｂ】線形バイナリパターンのヒストグラム(LBP)演算を実行するための例示的なセンサ要素の読みを示す図である。
【図１１】本開示のいくつかの態様による例示的なフローチャートである。
【図１２】画像のフレームを描くセンサアレイからの複数のセンサの読みを示す図である。
【図１３Ａ】センサ要素に対するHSGラベルのヒストグラムを生成するための例示的な方法を示す図である。
【図１３Ｂ】センサ要素に対するHSGラベルのヒストグラムを生成するための例示的な方法を示す図である。
【図１３Ｃ】センサ要素に対するHSGラベルのヒストグラムを生成するための例示的な方法を示す図である。
【図１３Ｄ】センサ要素に対するHSGラベルのヒストグラムを生成するための例示的な方法を示す図である。
【図１３Ｅ】センサ要素に対するHSGラベルのヒストグラムを生成するための例示的な方法を示す図である。
【図１４】検出された垂直エッジ、水平エッジおよびエッジ無しを示す図である。
【図１５Ａ】HSGラベルの生成を示す図である。
【図１５Ｂ】HSGラベルの生成を示す図である。
【図１６】複数のセンサ要素の読みに対するHSGラベルを使用する例示的なヒストグラムを示す図である。
【図１７Ａ】時間φ2およびφ3における9つのセンサ要素の読みの格子に対して実行される例示的な計算を示す図である。
【図１７Ｂ】時間φ2およびφ3における9つのセンサ要素の読みの格子に対して実行される例示的な計算を示す図である。
【図１７Ｃ】時間φ2およびφ3における9つのセンサ要素の読みの格子に対して実行される例示的な計算を示す図である。
【図１８】3つの連続するクロックサイクルφ1、φ2およびφ3を表す図である。
【図１９】本開示の態様において使用され得る電荷スケール回路(charge scaled circuitry)の例示的な一実装形態を提供する図である。
【図２０】本開示のいくつかの態様による動作を実行するためのピクセル内回路および/または周辺回路を示す図である。
【図２１】本開示の態様において使用され得る比較器の例示的な一実装形態を提供する図である。
【図２２】加速セグメント試験からの特徴(FAST)のコーナを使用して特徴を検出するためのブレゼンハムの円を示す図である。
【図２３】ソフトウェアでコーナを検出するための例示的な計算時間期間を示す図である。
【図２４】FASTコーナを検出するための例示的なハードウェア実装形態を示す図である。
【図２５】1つまたは複数の実施形態が実装され得るコンピューティングデバイスの一例を示す図である。
【発明を実施するための形態】
【０００７】
本開示は、一般に、コンピュータビジョンを可能にすることに関し、より詳細には、コンピュータビジョンを使用して特徴を検出するための効率を改善することに関する。
【０００８】
本技法は、エッジ、コーナなどの特徴を検出するためにセンサの読みに基づいて計算された結果を生成するための装置および方法を説明する。センサ装置は、複数のセンサ要素を含むセンサ要素アレイを含んでよい。センサ要素は、列および行など、2次元アレイ内に配列されてよい。センサ要素は、環境条件に基づくセンサの読みを生成することが可能であり得る。同じく、センサ装置は、モード間を切り替えることによって複数のモードの中からの1つのモードにおいて動作するように構成可能なハードウェアブロックを備える専用コンピュータビジョン(CV)計算ハードウェアを含んでよい。いくつかの実施形態では、スイッチングは、スイッチを使用することによって実行されてよい。スイッチは、トランジスタ、複数のトランジスタスイッチ回路、またはマルチプレクサを含むことがある。各モードは、異なるタイプのCV特徴計算技法を使用してCV特徴を検出することにおいてハードウェアを可能にし得る。たとえば、第1のモードは、線形バイナリパターン(LBP)ラベルを使用して1つまたは複数の2次元(2D)パッチに対するCV特徴を計算することに使用されてよく、第2のモードは、符号付き勾配のヒストグラム(HSG)ラベルを使用してCV特徴を計算することに使用されてよく、第3のモードは、加速セグメント試験からの特徴(FAST)のコーナを使用してCV特徴を計算することに使用されてよい。各2Dパッチは、センサ要素アレイからのセンサ要素のサブセットからの読みを含んでよい。一実装形態では、センサ要素に対するセンサ要素アレイからのセンサの読みに対するCV特徴は、専用CV計算ハードウェアによって順次に計算される。
【０００９】
例示的なビジョンセンサは、複数のセンサ要素を備えるセンサ要素アレイであって、センサ要素はセンサ要素アレイの少なくとも第1の次元および第2の次元に沿って配列され、複数のセンサ要素の各々はセンサ要素に入射する光に基づく信号を生成可能である、センサ要素アレイと、センサ要素アレイから画像データを受信することができ、1つまたは複数の2次元パッチの各々の中のセンサ要素からの信号に基づいてセンサ要素アレイ内の1つまたは複数の2次元パッチに対するCV特徴を順次に計算するように構成可能である専用コンピュータビジョン(CV)計算ハードウェアであって、専用CV計算ハードウェアは、CV計算ハードウェアが第1のモードで第1のタイプのCV特徴を計算することおよび第2のモードで第2のタイプのCV特徴を計算することを可能にするスイッチを含む、CV計算ハードウェアとを含んでよい。
【００１０】
例示的な方法は、センサ要素アレイを形成する複数のセンサ要素に入射する光に基づくセンサの読みを受信するステップであって、複数のセンサ要素が、センサ要素アレイの少なくとも第1の次元と第2の次元とに沿って配列される、受信するステップと、センサ要素アレイから画像データを受信することができ、1つまたは複数の2次元パッチの各々の中のセンサ要素からの信号に基づいてセンサ要素アレイ内の1つまたは複数の2次元パッチに対するCV特徴を順次に計算するように構成可能である専用コンピュータビジョン(CV)計算ハードウェアを動作させるためのモードを決定するステップであって、専用CV計算ハードウェアは、CV計算ハードウェアが第1のモードで第1のタイプのCV特徴を計算することおよび第2のモードで第2のタイプのCV特徴を計算することを可能にするスイッチを含む、決定するステップと、決定されたモードに基づいて対応するタイプのCV特徴を計算するために専用のCV計算ハードウェアを第1のモードまたは第2のモードに切り替えるステップとを含んでよい。
【００１１】
本明細書の中で説明される様々な他の手段が、本開示の態様を実行するために上記で説明した方法および装置によって利用されてもよい。さらに、非一時的コンピュータ可読記憶媒体は、本開示の様々な態様を実行するためにプロセッサによって実行可能な命令を含んでよい。
【００１２】
本開示のいくつかの態様では、専用CV計算ハードウェアは、センサ要素アレイの周辺にあってもよい。いくつかの例では、第1のタイプのCV特徴は、ローカルバイナリパターン(Local Binary Pattern:LBP)ラベル、LBPラベルの変形形態、または加速セグメント試験からの特徴(Features from Accelerated Segment Test:FAST)のコーナであってよい。第2のタイプのCV特徴は、LBPラベルの第2の変形形態、または符号付き勾配のヒストグラム(Histogram of Signed Gradients:HSG)ラベルであってよい。専用CV計算ハードウェアは、専用マイクロプロセッサまたはアプリケーションプロセッサに結合されてよい。専用CV計算ハードウェアは、比較器、加重和演算を実行するための回路、および/また電荷スケーリング回路(charge scaling circuitry)を含んでよい。本開示のいくつかの態様では、専用CV計算ハードウェアは、第1のタイプCV特徴および第2のタイプのCV特徴を計算するために第3のモードに切り替えるように構成されてよい。専用CV計算ハードウェアの一部は、第1のタイプCV特徴または第2のタイプのCV特徴を計算するために、バイパス経路を使用してバイパスされてもよい。
【００１３】
前記の説明では、次の詳細な説明を理解しやすくするために例の特徴および技術的利点の概略をかなり広範にわたって述べている。以下で、さらなる特徴および利点を説明する。開示する概念および特定の例は、本開示の同じ目的を実行するために他の構造を変更または設計するための基礎として容易に利用され得る。そのような同等の構成は、添付の特許請求の範囲の趣旨および範囲から逸脱しない。本明細書で開示される概念の特性を示すと思われる特徴は、その編成と動作の方法の両方に関して、関連する利点と一緒に、添付図面に関連して検討されるときに以下の説明からより良く理解される。図の各々は、特許請求の範囲の限界を定めるものとしてではなく、例示および説明のみの目的で与えられる。
【００１４】
次に、本明細書の一部を形成する添付の図面に関連して、いくつかの例示的な実施形態について説明する。本開示の1つまたは複数の態様が実装され得る特定の実施形態について以下で説明するが、本開示の範囲または添付の特許請求の範囲の趣旨から逸脱することなく、他の実施形態が使用されることがあり、様々な修正が行われることがある。
【００１５】
本技法は、エッジ、コーナなどの特徴を検出するためにセンサの読みに基づいて計算された結果を生成するための装置および方法を説明する。センサ装置は、複数のセンサ要素を含むセンサ要素アレイを含んでよい。センサ要素は、列および行など、2次元アレイ内に配列されてよい。センサ要素は、環境条件に基づいてセンサの読みを生成することが可能であってよい。同じく、センサ装置は、モード感を切り替えることによって複数のモードの中からの1つのモードにおいて動作するように構成可能なハードウェアブロックを備える専用コンピュータビジョン(CV)計算ハードウェアを含んでよい。いくつかの実施形態では、スイッチングは、スイッチを使用することによって実行されてよい。スイッチは、トランジスタ、複数のトランジスタスイッチ回路、またはマルチプレクサを含むことがある。各モードは、異なるタイプのCV特徴計算技法を使用してCV特徴を検出することにおいてハードウェアを可能にし得る。
【００１６】
たとえば、第1のモードは、線形バイナリパターン(LBP)ラベルを使用して1つまたは複数の2次元(2D)パッチに対するCV特徴を計算することに使用されてよく、第2のモードは、符号付き勾配のヒストグラム(HSG)ラベルを使用してCV特徴を計算することに使用されてよく、第3のモードは、加速セグメント試験からの特徴(FAST)のコーナを使用してCV特徴を計算することに使用されてよい。各2Dパッチは、センサ要素アレイからのセンサ要素のサブセットからの読みを含んでよい。一実装形態では、センサ要素に対するセンサ要素アレイからのセンサの読みに対するCV特徴は、専用CV計算ハードウェアによって順次に計算される。
【００１７】
いくつかの実装形態では、専用CV計算ハードウェアの構成可能ブロックが、比較器と加重和演算を実行するための回路とを含んでよい。一実装形態では、電荷スケーリング回路が、加重和演算を実行するために使用されてよい。一実装形態では、構成回路の部分が、いくつかのCV演算を実行するためにバイパス経路を使用してバイパスされてよい。他の実装形態では、マルチプレクサが、CV演算を実行するためのいくつかの入力および出力を選択するために使用されてよい。
【００１８】
構成可能ブロックは、異なる技法を使用して1つまたは複数の2Dパッチに対するCV特徴を計算するために、同じセンサ装置および関連する論理/回路が異なるモードで使用されることを可能にし得る。たとえば、一実装形態では、制御論理は、HSG演算が構成可能ブロックを使用して実行されるように、構成可能ブロックを制御してよい。別の実装形態では、制御論理は、LBP演算が構成可能ブロックを使用して実行されるように、構成可能ブロックを制御してよい。一実装形態では、制御論理内のモードまたは値は、異なるモードで動作を実行するためにSRAM内に記憶されてよい。本開示はHSGおよびLBPのラベルならびにFASTコーナ検出を生成することを論じているが、同様の技法が、本開示の範囲から逸脱することなく、異なるタイプのCV特徴を生成するために使用されてもよい。
【００１９】
たとえば、いくつかの実装形態では、異なるタイプのCV特徴が、同じく、計算しているLBPラベルの変形形態を含んでもよい。そのような変形形態は(CS)-LBPを含んでもよく、ここで中央ピクセル/ブロックは考慮されず、中央ブロック周りのすべての対向するコーナ/エッジが比較され、4つの比較ラベルが結果的に生成され、したがってLBPラベルを表し、前述のLBPと同じように使用される。他の変形形態は、限定はしないが、「パッチ対称」LBP(ここで中央ピクセル/ブロックは比較において考慮されず、3×3の全パッチの平均が計算され、次いで各エッジ/コーナが平均に対して比較される)と、「ローカル3次パターン(LTP)」(単に1またはゼロではなく+1、0および-1の結果を含むことができるLBPの変形形態、ゼロは差がしきい値より低いことを意味し、+1および-1は差がしきい値より大きいが、同じく差の符号がどちらであるかを考慮に入れることを意味する)とを含む。
【００２０】
センサは、複数のセンサ要素のセンサ要素アレイを含んでよい。センサ要素アレイは、列および行など、センサ要素アレイの2次元に配列されたセンサ要素を含む2次元アレイであってよい。センサ要素の各々は、環境条件に基づくセンサの読みを生成することが可能であり得る。いくつかの実装形態では、センサはビジョンセンサであってよく、センサ要素に入射する光に基づくセンサの読みを生成してよい。図1は、2次元アレイ内に配列された複数のセンサ要素を備える例示的なセンサ100を示す。図1では、センサ100の図は、センサ要素アレイ内の64(8×8)個のセンサ要素を表している。様々な実装形態では、センサ要素の形状、センサ要素の数、およびセンサ要素間の間隔は、本発明の範囲から逸脱することなく、大きく変動することがある。センサ要素102は、64個のセンサ要素の格子からの例示的なセンサ要素を表す。
【００２１】
いくつかの実装形態では、センサ要素は、センサ要素に結合されたピクセル内回路(計算機構(computation structure))として実装された専用CV計算ハードウェアを有してよい。いくつかの実装形態では、センサ要素およびピクセル内回路はまとめて、ピクセルと呼ばれることがある。センサ要素に結合されたピクセル内回路によって実行される処理は、ピクセル内処理と呼ばれることがある。いくつかの例では、センサ要素アレイはピクセルアレイと呼ばれることがあり、その差は、ピクセルアレイがセンサ要素と、各センサ要素に関連付けられたピクセル内回路の両方を含むことである。図2は、センサ要素202とピクセル内回路204とを有する例示的なピクセル200を示す。いくつかの実装形態では、ピクセル内回路204は、アナログ回路、デジタル回路、またはそれらの任意の組合せであってよい。
【００２２】
いくつかの実装形態では、センサ要素アレイは、センサ要素のグループに結合された周辺回路(計算機構)として実装された専用CV計算ハードウェアを有してよい。そのような周辺回路は、オンチップセンサ回路と呼ばれることがある。図3は、センサ要素アレイ302に結合された例示的な周辺回路(304および306)を示す。
【００２３】
さらに、図4に示すように、いくつかの実装形態では、センサ要素アレイは、センサ要素アレイ402に結合された専用CV処理モジュール404として実装され、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、内臓マイクロプロセッサ、または本開示の態様を実行するための任意の同様のアナログもしくはデジタルコンピューティング論理を使用して実装される、専用CV計算ハードウェアを有してよい。いくつかの実装形態では、専用CV処理モジュール404として実装される専用CV計算ハードウェアは、CV特徴を計算するために非一時的コンピュータ可読媒体に記憶されている命令を実行するように構成されてよい。
【００２４】
少なくともいくつかの実装形態では、専用CV処理モジュール404はアプリケーションプロセッサ406への追加であり、アプリケーションプロセッサ406に代わるものではないことに留意されたい。たとえば、専用CV処理モジュール404は、コンピュータビジョンの特徴を処理および/または検出してよく、一方、アプリケーションプロセッサ406は、これらの検出されたコンピュータビジョンの特徴の表示を受信し、前に記憶されている画像または基準インジケータに対してパターン照合して、微笑、顔、対象物などの巨視的特徴を決定することができる。加えて、アプリケーションプロセッサ406は、比較的、より複雑で、計算集約的、電力消費的であり、オペレーティングシステム動作などのシステムレベルの動作を実行する役目を果たし、ユーザとの対話のためのユーザインターフェースを実装し、デバイスに対する電力管理を実行し、メモリおよび他のリソースなどを管理することができる。アプリケーションプロセッサ406は、図25のプロセッサ2510に類似していてもよい。
【００２５】
さらに、本発明の態様は、ピクセル内回路、周辺回路内、もしくは専用CV処理モジュール内、またはそれらの任意の組合せ内に実装されてもよい。同じく、本発明の態様は、アナログ領域および/またはデジタル領域、あるいはそれらの任意の組合せの中に実装されてもよい。
【００２６】
本明細書で説明するように、専用CV計算ハードウェアは、対象のセンサ要素の近傍において複数の隣接するセンサ要素に関連付けられた信号に少なくとも部分的に基づいて、対象のセンサ要素の各々に対するCV特徴または局部的CV特徴を計算する。
【００２７】
本明細書で説明するように、対象のセンサ要素に比較的近いセンサ要素は、隣接するセンサ要素と呼ばれることがある。本開示のいくつかの態様では、隣接するセンサ要素は、対象のセンサ要素にすぐに隣接するセンサ要素を含んでよい。本開示のいくつかの他の態様では、同じく、隣接するセンサ要素は、対象のセンサ要素に比較的近くにあってすぐに隣接しないセンサ要素を含んでよい。たとえば、いくつかの例では、対象のセンサ要素から3つのセンサ要素以内のセンサ要素は、センサの数の幅または高さが64個のセンサ要素であるとき、やはり隣接するセンサ要素とみなされてよい。
【００２８】
本明細書で説明するように、CV特徴または局部的CV特徴は、各センサ要素またはセンサのピクセルに関連付けられたラベルなど、低レベルCVマーカまたはインジケータを検出することを指すことがある。たとえば、ラベルは、センサ要素に対するLBPラベルを含んでよい。センサ要素に対するLBPラベルは、センサ要素のセンサの読みとそれに隣接するセンサ要素のうちのいくつかとを比較することによって生成され得る。LBPラベルは、センサ要素の参照からのCV特徴がエッジ、コーナ、カーブ、スポットなどを表すかどうかを示すことができる。HSG、FASTコーナ検出またはLBPの他の適切な変形形態などの他の技法が、本開示の範囲から逸脱することなく、CV特徴を検出するために使用されてよい。
【００２９】
本開示の態様によれば、多様な異なるセンサが、本開示の態様に従って改良されてよい。例示的なセンサには、光センサ、嗅覚センサ、および/または化学センサが含まれることがある。光センサが本開示を通して論じられているが、同様の技法は、本発明の範囲から逸脱することなく、他のタイプのセンサにおいて利用されてよい。
【００３０】
図5は、センサ要素502、制御論理516、および構成可能ブロック504〜514を備える例示的なセンサ装置を示す。一実装形態では、図2、図3および図4に示すように、構成可能ブロックを備える専用CV計算ハードウェアは、ピクセル内回路204、周辺回路304、専用CV処理モジュール404、またはそれらの任意の組合せの中に実装されてよい。図5の例示的な回路には、第1のマルチプレクサ504(MUX 1)、合計バンク506、サンプルアンドホールドバンク508、第2のマルチプレクサ510(MUX 2)、関数バンク512、および第3のマルチプレクサ514(MUX 3)が含まれる。いくつかの実施態様では、合計バンク506は、加重和バンクであってよい。各バンクは、バイパス経路を随意に有してよい。いくつかのモードでは、マルチプレクサは、基準電圧または接地を出力に接続するように構成されてよい。中間のマルチプレクスを実装すること、およびいくつかのブロックをバイパスすることによって、回路のいくつかの組合せが、様々な動作を順次にまたは並列に実行することが可能になる。
【００３１】
構成可能ブロックは、異なる計算技法を使用して1つまたは複数の2Dパッチに対する異なるタイプのCV特徴を計算するために、同じセンサ装置および関連するブロックが異なるモードで使用されることを可能にし得る。たとえば、一実装形態では、制御論理516は、HSG演算が構成可能ブロックを使用して実行されるように、ブロックを制御してよい。別の実装形態では、制御論理516は、LBPラベルが構成可能ブロックを使用して生成されるように、ブロックを制御してよい。一実装形態では、制御論理内のモードまたは値は、異なるモードで動作を実行するためにスタティックランダムアクセスメモリ(SRAM)または任意の他の適切なストレージバッファ内に記憶されてよい。
【００３２】
いくつかの実装形態では、LBPもしくはHSGラベルまたはFASTコーナなどのCV特徴は、図5で説明する構成可能ブロックを使用して、複数のセンサ要素からのセンサ要素の各々に対して順次に生成されてよい。たとえば、図4を参照すると、センサの読みは、専用CV処理モジュール404によって受信されてよい。専用CV処理モジュール404は、対象のセンサ要素およびセンサ要素の対応するグループからのセンサの読みを使用してセンサ要素の各々に対するラベルを順次に生成してよい。いくつかの実施形態では、ラベルを順次に生成することは、イベントを有するセンサの読みだけに対してラベルを選択的に生成することを可能にし得る。加えて、ラベルを順次に生成することは、ラベルを生成するために必要なハードウェアを低減することを可能にする。なぜならば、同じハードウェアが、複数のラベルを生成するために順次に使用されるからである。処理技術の進歩によって、そのようなタイプのCV特徴を計算するのに必要な単純な加算および比較計算が、高速で順次に実行され得、ラベルを順次に生成することにおけるいくつかの速度の懸念が部分的に軽減される。
【００３３】
図6は、本開示の態様による、図5に示す例示的な合計バンクを示す。一実装形態では、合計バンク506は、図6に示すように、いくつかのスイッチおよびキャパシタを含んでよい。スイッチは、トランジスタ、複数のトランジスタスイッチ回路、またはマルチプレクサを含むことがある。
【００３４】
一実装形態では、φ1の間に、入力電圧が、キャパシタに書き込まれ得る。φ2の間に、キャパシタは、出力線において利用可能になり得る加重平均を計算するためにともに短絡されてよい。キャパシタは、値が異なってもよく、または等しくてもよい。一実装形態では、図6に示すように、オプションのバイパス経路が、キャパシタおよび加算演算をバイパスするために含まれてよい。いくつかの実装形態では、オプションのバイパス経路は、制御論理516内で適切な値をプログラムすることによって、マルチプレクサを使用して選択されてよい。
【００３５】
図7は、本開示の態様による、図5に示す例示的なサンプルアンドホールドブロック508を示す。一実装形態では、サンプルアンドホールド508は、図7に示すように、いくつかのスイッチおよびキャパシタを含んでよい。スイッチは、トランジスタ、複数のトランジスタスイッチ回路、またはマルチプレクサを含むことがある。
【００３６】
一実装形態では、サンプルアンドホールドブロック508への入力値は、キャパシタを使用して時刻t1において貯蔵されてよい。後刻t2において、サンプルアンドホールドブロック508に記憶された値は、スイッチングによってバイパス経路に転送されてよい。後続の回路は、古い値と現在の値とを比較して、2つの値の間の時間的対比を生成することができる。
【００３７】
図8は、本開示の態様による、図5に示す例示的な関数バンクを示す。関数ブロック512は、1つまたは複数の関数のための論理を提供してよい。例示的な関数には、比較器、最大関数、勝者独り占め関数、最小関数、敗者独り占め関数が含まれることがある。図8に示すように、例示的な一実装形態では、関数ブロックは、非線形(たとえば、整流器/ReLu(整流線形ユニット))増幅器およびシグモイド増幅器を含んでよい。
【００３８】
図9は、図5で説明した構成可能ブロックに対する例示的な選択された構成を示す。図5とは対照的に、図9に示すブロックのいくつかは、制御論理516を介して構成される特定の方法で動作する。再び、図5とは対照的に、いくつかのブロックは図9には示されていない。なぜならば、それらのブロックを非選択状態にすることによって、またはそれらが(たとえば、バイパス論理を使用して)通り抜け論理(forward through logic)として働くようにそれらを構成することによって、それらが信号経路中に現れないかのように働くような方法でそれらのブロックが構成されているからである。
【００３９】
具体的には、図9は、HSG演算を実行するように構成される。マルチプレクサ(504および510)は、HSG演算を実行するために構成可能ブロックの動作を切り替えるように構成されてよい。加重和バンク506は、単一の加重和ブロックとして動作してよい。図6に示すように、加重和バンク506は、それぞれ、キャパシタ値1C、3Cおよび1Cを有する3つの入力を有してよい。サンプルアンドホールドブロック510は示されず、通り抜けブロックまたはバイパスブロックとして働くように構成されてよい。関数ブロック512は、比較器として構成されてよい。
【００４０】
図10Aに示すように、2Dパッチに対するHSG CV特徴は、図9からの例示的な回路を使用して計算されてよい。たとえば、図10Aは、センサ要素に対する感知された読みと、2-Dマトリクス内に構成されるHSG演算に対する勾配係数とを示す。構成可能回路は、制御論理516を使用して、HSG CV特徴を計算するように構成されてよい。R2C2に関連付けられたHSGラベルを計算するために、隣接するセンサ要素/ピクセルR1C1(3)、R1C2(4)、R1C3(2)からの値が、MUX504を使用して加重和バンクへの入力として選択されてよい。同様におよび同時に、隣接するピクセルまたは周辺エリアにおける回路は、その行のそれぞれの加重和を計算するために、MUX504を使用してR3C1、R3C2およびR3C3を選択してよい。
【００４１】
さらに、MUX510は、HSGラベルを決定するためのGy成分を提供するために、加重和バンク506によって生成された第1の行からの加重和と第3の行からの加重和とを比較するために、行の加重和を比較器に通すように構成されてよい。同様に、垂直勾配成分および/または対角勾配成分は、制御論理516を使用して適切なブロックを選択することによって、同じ回路を使用して生成され得る。
【００４２】
図10Bに示すように、図5に示すものと同じ回路が、同じく、バイパス経路を使用することなく1つまたは複数の2Dパッチに対するLBP CV特徴を計算するために使用されてよい。たとえば、R2C2およびR1C1を比較するために、上記の回路は、MUX504を使用してR1C1を加重和バンク506への入力として選択し、他の入力を接地するように構成されてよい。同様におよび同時に、隣接するピクセルまたは周辺エリアにおける回路は、R2C2を選択してよい。さらに、MUX510は、比較のために比較器に送るためにR1C1およびR2C2を選択するように構成されてよい。同様に、一実装形態では、他のピクセルは、(他の比較のために、ならびにHSG計算のために使用されたものと)同じ回路を使用して、R2C2に対するLBPラベルを生成するためにR2C2の値に対して比較されてよい。
【００４３】
図5で説明した回路の一変形形態では、バイパス経路が、加重和バンク506のために実装されてよい。さらに、回路は、それぞれ、キャパシタ1C、3Cおよび1Cを有する3つの入力を含んでよい。HSG計算は加重和を利用するので、制御論理516は、HSGラベルを生成するために図9で説明した制御論理と同様または同一であってよい。しかしながら、LBPラベルを生成するために、加重和は使用されないので、電圧の大きさ(intensity voltage)を重み付けることを避けるために、バイパス経路が使用されてよい。図10Bで説明した例では、R1C1ピクセル値は加重和バンク506をバイパスし、比較器において比較されるように選択されてよい。一実装形態では、加重和回路506の他の3つの入力は接地される。
【００４４】
上記で説明したLBPラベルに加えて、異なるタイプのCV特徴が、同じく、計算しているLBPラベルの変形形態を含んでもよい。そのような変形形態は(CS)-LBPを含んでもよく、ここで中央ピクセル/ブロックは考慮されず、中央ブロック周りのすべての対向するコーナ/エッジが比較され、4つの比較ラベルが結果的に生成され、したがってLBPラベルを表し、前述のLBPと同じように使用される。他の変形形態は、限定はしないが、「パッチ対称」LBP(ここで中央ピクセル/ブロックは比較において考慮されず、3×3の全パッチの平均が計算され、次いで各エッジ/コーナが平均に対して比較される)と、「ローカル3次パターン(LTP)」(単に1またはゼロではなく+1、0および-1の結果を含むことができるLBPの変形形態、ゼロは差がしきい値より低いことを意味し、+1および-1は差がしきい値より大きいが、同じく差の符号がどちらであるかを考慮に入れることを意味する)とを含む。
【００４５】
図11は、本開示のいくつかの態様による例示的なフローチャートである。プロセス1100(または、本明細書で説明する任意の他のプロセス、またはそれらの変形形態および/もしくは組合せ)の一部または全部は、回路または論理によって実行されてよい。回路または論理は、ピクセル内回路、周辺回路、もしくは専用CV処理モジュール、またはそれらの任意の組合せの中に実装されてもよい。いくつかの例では、論理の全部または一部は、デジタル回路上で実行され、非一時的コンピュータ可読媒体に記憶されている命令を使用して実施されてもよい。
【００４６】
ブロック1102において、センサ装置の構成要素は、複数のセンサ要素に入射する光に基づくセンサの読みを受信する。複数のセンサ要素は、センサ要素アレイを形成する。さらに、複数のセンサ要素は、センサ要素アレイの少なくとも第1の次元および第2の次元に沿って配列される。
【００４７】
ブロック1104において、センサ装置の構成要素は、センサ要素アレイから画像データを受信可能であり、ハードウェアブロックを備える専用CV計算ハードウェアを動作させるためのモードを決定する。ハードウェアブロックは、1つまたは複数の2Dパッチの各々の中のセンサ要素からの信号に基づいて、センサ要素アレイ内の複数の対象のセンサ要素を備える1つまたは複数の2Dパッチに対するCV特徴を順次に計算するように構成されてよい。専用CV計算ハードウェアは、CV計算ハードウェアが、第1のモードで2Dパッチに対する第1のタイプのCV特徴を計算すること、および第2のモードで2Dパッチに対する第2のタイプのCV特徴を計算することを可能にするためのスイッチを含んでよい。
【００４８】
いくつかの実装形態では、LBPもしくはHSGのラベルまたはFASTコーナなどのCV特徴は、図5または他の図で説明する構成可能ブロックを使用して、複数のセンサ要素からのセンサ要素の各々に対して順次に生成/検出されてよい。たとえば、図4を参照すると、センサの読みは、専用CV処理モジュール404によって受信されてよい。専用CV処理モジュール404は、対象のセンサ要素およびセンサ要素の対応するグループからのセンサの読みを使用してセンサ要素の各々に対するラベルを順次に生成してよい。いくつかの実施形態では、ラベルを順次に生成することは、イベントを有するセンサの読みだけに対してラベルを選択的に生成することを可能にし得る。加えて、ラベルを順次に生成することは、ラベルを生成するために必要なハードウェアを低減することを可能にする。なぜならば、同じハードウェアが、複数のラベルを生成するために順次に使用されるからである。処理技術の進歩によって、そのようなタイプのCV特徴を計算するのに必要な単純な加算および比較計算が、高速で順次に実行され得、ラベルを順次に生成することにおけるいくつかの速度の懸念が部分的に軽減される。
【００４９】
専用CV計算ハードウェアは、ピクセル内回路204、周辺回路304、専用CV処理モジュール404、またはそれらの任意の組合せの中に実装されてもよい。第1のタイプのCV特徴および第2のタイプのCV特徴は互いに異なってよく、LBPラベル、HSGラベル、FASTコーナ、または他のタイプのCV特徴を生成/検出することのうちの1つであってよい。
【００５０】
いくつかの実施形態では、専用CV計算ハードウェアは、比較器、演算の加重和、ANDゲート、ORゲート、および/または電荷スケーリング回路を備えてよい。いくつかの実装形態では、バイパス論理が、1つのモードから別のモードに切り替えるために使用されてよい。
【００５１】
ブロック1106において、センサ装置の構成要素が、決定されたモードに基づいて対応するタイプのCV特徴を計算するために、専用CV計算ハードウェアを第1のモードまたは第2のモードに切り替える。
【００５２】
図11に示す具体的なステップは、一実施形態による、動作モード間で切り替える特定の方法を提供することを諒解されたい。代替実施形態では、ステップの他のシーケンスが実行されてもよい。たとえば、代替実施形態は、異なる順序で、上で概説されたステップ/ブロックを実行することができる。例示のために、ユーザは、第3の動作モードから第1の動作モードに変更すること、第4のモードから第2のモードに変更すること、またはそれらの任意の組合せの間で変更することを選び得る。その上、図11に示される個々のステップ/ブロックは、個々のステップに対して様々な順序で適宜実行され得る、複数のサブステップを含み得る。さらに、追加のステップ/ブロックが、具体的な用途に応じて、追加または削除され得る。当業者であれば、プロセスの多くの変形形態、修正形態、および代替形態を認識し、諒解するであろう。
【００５３】
上記で説明した本開示の態様は、HSG演算を使用してCV特徴を計算することを可能にし、同じく、HSGを使用してCV特徴を計算することと、LBPを使用してCV特徴を計算することとを切り替える。図12〜図21は、コンピュータビジョンのためのHSGの計算を加速するための追加の技法を開示する。
【００５４】
CV特徴のためのHSG計算のハードウェア加速
上記の図で説明した技法に加えて、センサ要素からのセンサの読みに対するHSGラベルを生成するための追加の技法を説明する。センサの読みに基づいて計算された結果を生成することによって、エッジ、コーナなどの特徴を検出するための装置および方法を説明する。専用CV計算ハードウェアは、隣接するセンサ要素の2つのグループに対する加重和を比較することによって、センサ要素の各々に対するHSGラベルを生成するように説明される。
【００５５】
センサの読みに基づいて計算された結果を生成するための方法および装置を説明する。センサの読みは、複数のセンサ要素を備えるセンサ要素アレイからのものであってよい。センサ要素は、センサ要素アレイの少なくとも第1の次元および第2の次元に沿って配列されてよい。センサ要素の各々は、環境条件に基づくセンサの読みを生成することが可能であり得る。方法を実行するための装置は、専用CV計算ハードウェアを含んでよい。専用CV計算ハードウェアは、センサ要素に結合されたピクセル内回路204、センサ要素アレイに結合された周辺回路304、または専用CV処理モジュール404の中に実装されてよく、複数のセンサ要素からの出力を受信するように構成されてよい。専用CV計算ハードウェアは、隣接するセンサ要素の2つのグループに対する加重和を比較することによって、センサ要素の各々に対するHSGラベルを生成するように構成された計算機構を含んでよい。いくつかの実施形態では、計算機構は3つのキャパシタを含んでよく、各々のキャパシタは、隣接するセンサ要素から印加された電圧を受ける。他のいくつかの実施形態では、計算機構は、3つの隣接するセンサ要素からの電圧を乗算および加算するための電荷スケーリング回路を備える。他のいくつかの実施形態では、計算機構は、3つだけの隣接するセンサ要素に対する勾配の合計を計算するステップと、そのセンサ要素の合計を、参照されたセンサ要素に対するHSGラベルを生成するために、追加の3つの隣接するセンサ要素に対して再使用するステップとを含む。HSGラベルは、コンピュータビジョンアプリケーションに対するエッジを検出するために、センサ要素の各々に対して生成されてよい。
【００５６】
図12は、画像1200のフレームを描くセンサ要素アレイからのセンサの読みのグループを示す。いくつかの例では、センサ要素アレイからの各センサの読みは、画像ピクセル値と呼ばれることがある。画像の各部は、複数のセンサ要素からの値を含んでよい。いくつかの実装形態では、ヒストグラムが、ブロック1202に対するセンサ要素など、複数のセンサ要素に対して生成されてよい。そのようなヒストグラムは、複数のセンサ要素1202についてのいくつかの巨視的特徴および情報を表すことができる。ヒストグラムは、複数のセンサの読み1202から特徴を識別するための統計または経験則に基づいて分析されてよい。一実装形態では、ヒストグラムは、記憶されているヒストグラムと照合されてよい。
【００５７】
一実装形態では、HSGは、ヒストグラムに対するセンサの読みに関連付けられた値を生成するために使用されてよい。図13A〜図13E、図14、図15Aおよび図15Bは、センサ要素に対するHSGラベルを決定するための例示的な技法を示す。図16は、そのようなHSGラベルを使用してヒストグラムを生成するステップを説明する。
【００５８】
図13Aは、センサ要素によって感知されたいくつかの例示的な画像ピクセル値を示しており、中央の画像ピクセルは「5」(R2C2)を有し、8つの隣接する画像ピクセル値を有する。図13Aに示す値は、画像1200に対するセンサの読みのフレームからの図12のブロック1202として示される値と同じ画像ピクセル値である。HSGラベルは、各センサ要素ロケーションに対して生成されてよい。以下のステップ(13B〜13E、14Aおよび14B)は、図13AからのR2C2(すなわち、1302)に対するHSGラベルを生成するプロセスを説明する。
【００５９】
図13Bは、x軸に対する勾配係数を含む例示的な2次元垂直エッジ検出マトリクスを示す。図13Bにおいて、ブロック1202はIを表し、ブロック1202内に示される各値は、図13Bに示される2D垂直エッジ検出マトリクスからの対応する値によって乗算される。乗算から得られた値は、図13Cの2Dアレイ内に示される。たとえば、図13AからのR1C1における値(すなわち、「7」)が図13BのGxからの-0.3によって乗算され、図13AからのR1C1に対応する図13Cのロケーションにおいて-2.1がもたらされる。同様に、図13AからのR2C3(すなわち、「3」)が図13BのGxからの1によって乗算され、図13AからのR2C3に対応する図13Cのロケーションにおいて3がもたらされる。図13Cに示されるすべての値がともに合計され、最終値または勾配の合計(すなわち、-6.6)が与えられる。
【００６０】
図13Dは、y軸に対する勾配係数を含む例示的な2次元水平エッジ検出マトリクスを示す。図13Dにおいて、ブロック1202はIを表し、ブロック1202内に示す各値は、図13Dに示される2D水平エッジ検出マトリクスからの対応する値によって乗算される。乗算から得られた値は、図13Eの2Dアレイ内に示される。たとえば、図13AからのR1C1における値(すなわち、「7」)が図13DのGyからの-0.3によって乗算され、図13AからのR1C1に対応する図13Eのロケーションにおいて-2.1がもたらされる。同様に、図13AからのR2C3(すなわち、「3」)が図13DのGyからの0によって乗算され、図13AからのR2C3に対応する図13Eのロケーションにおいて0がもたらされる。図13Eに示されるすべての値がともに合計され、最終値または勾配の合計(すなわち、-6.4)が与えられる。
【００６１】
図14は、センサ要素ロケーションに対して検出された、垂直エッジ特徴、水平エッジ特徴、およびエッジ無しを示す。各エッジの符号成分は、正または負のいずれかであってよい。したがって、2方向のエッジに対して、各ピクセルに対して4つの可能性が存在する。たとえば、図15Aに示すように、センサ要素に対して、Gxに対して検出された負の値およびGyに対して検出された正の値は、センサ要素ロケーションを左上の象限に関連付けてよい。同様に、センサ要素に対して、Gxに対して検出された正の値およびGyに対して検出された負の値は、センサ要素ロケーションを右下の象限に関連付けてよい。
【００６２】
図15Bに示すように、画像ピクセルに関連付けられたセンサ要素ロケーションのグループからの各センサ要素ロケーションは、図15Aにおいて決定された象限に基づくラベルに関連付けられてよい。したがって、20個のセンサ要素がセンサ要素の1つのグループに属しているならば、それらの画像ピクセルの各々は、それらに関連付けられたラベルを有することになる。図15Bにおいて割り当てられたラベルはA、B、CおよびDであるが、第5のラベル「E」が、同様に生成されてもよい。一実装形態では、「E」ラベルは、図13Cまたは図13Eにおける加算演算が、それぞれの軸に対してゼロまたはゼロに近い(たとえば、-.05〜0.5の範囲)結果をもたらすときだけ生成されてよい。
【００６３】
センサ要素のグループからのセンサ要素の各々に対するラベルは、センサ要素のグループに対するヒストグラムの生成に使用される。たとえば、図16に示すように、一画像のフレームに関連付けられた20個のセンサ要素の読みのうち、5個の画像ピクセルが「A」とラベル付けられ、8個の画像ピクセルが「B」とラベル付けられ、3個の画像ピクセルが「C」とラベル付けられ、4個の画像ピクセルが「D」とラベル付けられ、0個の画像ピクセルが「E」とラベル付けられてよい。
【００６４】
図16に示すヒストグラムは、一定の縮尺でまたは計算された値に基づいて描かれておらず、ヒストグラムの視覚的な例を表しているにすぎないことに留意されたい。生成されたヒストグラムは、コンピュータビジョンに対する特徴を検出するために使用されてよい。たとえば、いくつかのヒストグラムパターンは、センサ要素アレイのセンサ要素からのセンサの読みの中で、コーナ、エッジなどを表すことができる。
【００６５】
図17A〜図17Cは、回路を使用して任意の所与のセンサ要素において検出されたエッジおよびコーナを表すHSGラベルを生成するプロセスを示す。生成されたHSGラベルは、より複雑な特徴検出のために、図16で説明するようなヒストグラムを生成するために使用されてよい。本質的に、ヒストグラムは、複数のセンサの読みに対するHSGラベルのグループによって表される異なる特徴のグループ化を表す。
【００６６】
図17A〜図17Cは、任意の所与のセンサの読みに対する垂直または水平のエッジの表示を検出するために、任意の所与のピクセルに対するHSGラベルを検出するための電力を大幅に低減し、効率を大幅に向上させることができる。一実装形態では、隣接するマイクロコントローラ、専用マイクロプロセッサ、またはコンピュータシステムが、センサからHSGラベルを受信し、より複雑な特徴検出のためにHSGラベルからヒストグラムを生成することができる。
【００６７】
図17A、図17Bおよび図17Cは、それぞれ、2つのクロックサイクルφ2およびφ3(図18に示す)の間の垂直エッジ検出のための、本発明の実施形態による例示的な技法を示す。図17Aから図17Bまで、列C1の値(7、9および3)は、図20で説明する回路と類似の回路を使用して、符号なし勾配係数(0.3、1および0.3)によって上から下に効率的に乗算され、計算結果は、図17BのR2C2に示す(すなわち、0.3*7+9*1+3*0.3=12)ようにR2C2に記憶される。本開示の態様によれば、図20で説明する回路は比較を実行するので、勾配係数の符号は、比較の順序に暗に含まれる。
【００６８】
図13と比較して、図17A〜図17Cおよび図20の態様は、値のアレイではなく、各軸に対して3つだけの符号なし勾配係数を使用することに留意されたい。
【００６９】
同様に、列C2における値(8、5および4)およびC3における値(6、3および2)もまた、図20で説明する回路と類似の回路を使用して、勾配係数(0.3、1および0.3)によって上から下に効率的に乗算され、計算結果は、それぞれ、R2C3(8*0.3+5*1+4*0.3=8.6)およびR2C4(6*0.3+3*1+2*0.3=5.4)において記憶される。
【００７０】
3つすべての列に対する値が図17Bにおいて計算されるように示されているが、列C1および列C3からの加重和に対する計算結果だけが、R2C2に対するラベルを決定するためにR2C2における勾配Gxを決定するために必要である。図17Cに示すように、φ3において、R2C2に対するラベルに対して(図15Aまたは図15Bに示すような)象限に対するx成分を導出するために、C1に対する値の加重和(すなわち、12)とC3に対する値の加重和(すなわち、5.4)との間で比較が実行される。図17Cに示すように、説明された比較は、符号は実行された比較に暗に含まれるので、符号付き加算を明示的に生成する必要性をなくしている。12は5.4より大きいので、図17Cにおける論理比較は、「1」の論理結果をもたらす。列C2に対する加重和は、C1およびC3と同時に生成されるが、R2C3に対するHSGラベルを生成するために使用されてよい。
【００７１】
図20は、図17A、図17Bおよび図17Cにおける列の加重和を計算するために使用され得る回路の一例を示す。図17A、図17Bおよび図17Cは、Gx成分に対する計算だけを示しているが、任意の所与のセンサ要素に対するセンサ要素の読みに関連付けられたラベルを決定するためにGy成分を計算するために、同様の計算が行に対して実行されてもよいことに留意されたい。
【００７２】
図20の回路は、センサ要素に対するセンサの読みのそれぞれの行および列の加重和を計算するために、電荷スケーリング回路と同様の回路を使用して実装されてよい。電荷スケーリング回路と同様の回路は図20に示す回路の実装に使用されてよいが、図20に示す回路は、デジタルアナログ変換を実行するための電荷スケーリング回路に対して意図される従来の目的とは異なる目的に対して使用されてよい。3つのキャパシタおよびスイッチを有する例示的な電荷スケーリング回路を図19に示す。
【００７３】
図20は、R2C2に対するx軸勾配値の生成を示す。図20のブロック2002に示すように、列C1の加重和を計算するために、キャパシタは、1、3および1など、適切な勾配係数の倍数によって重み付けられてよい(すなわち、0.3、1および0.3の3x倍数である)。さらに、列C1からの電圧の大きさが、回路に印加されてよい。たとえば、R1C1からの電圧の大きさがVaにおいて印加され、R2C1からの電圧の大きさがVbにおいて印加され、R3C1からの電圧の大きさがVcから印加される。
【００７４】
ブロック2002において生成された値は列C1に対するVoutであり、比較器によって、ブロック2004によって生成された列C3に対するVoutと比較される。そのような回路に限定されるものではないが、例示的な比較器を図21に示す。一態様では、回路は、複数のセンサ要素に対して生成された列に対する加重和と行に対する加重和との間の対比(parallelism)を活用するように実装され得る。たとえば、図20に示すように、R2C2に対するGxを生成するために、ピクセルR2C2は、列C1からの電圧の大きさの加重和を計算することだけを必要とする。列C3に対する加重和の値は、x軸に対するそれ自体の勾配の和を生成するために、R2C4に対する回路によって生成されてよく、R2C2に対する比較のために再使用され得る。本明細書で説明するようにピクセル内回路を再使用することによって、「フィルスペース」の量または各ピクセルの面積、したがってセンサの寸法が低減され、電力効率が向上し、そのようなセンサを製造するコストが減少する。
【００７５】
さらに、同じ回路が、同じく、y軸に対する勾配の和を計算するために、同様の方法で再使用されてよい。たとえば、R2C2における回路ブロック2002はまた、図17Aに示す行R1に対する加重和を生成するために使用されてよい。たとえば、R1C1からの値がVaにおいて印加され、R1C2からの値がVbにおいて印加され、R1C3からの値がVcにおいて印加されてよく、図17Aに示す行R1からの値の加重和が生成される。同様に、R3に対する値がR4C2によって生成され、R1に対して生成された値と比較されてよい。
【００７６】
したがって、図20に示すように、各ピクセル内回路(R2C2に対するブロック2002など)は、単に、一列または一行に対する3つの値の加重和を計算することによって、それぞれ各センサ要素のx軸およびy軸に対する勾配値の加重和を生成することができる。一実装形態では、図20に示すように、異なるピクセルに関連付けられた異なるピクセル内回路からの入力を使用する比較器論理は、周辺回路内に実装されてよい。
【００７７】
図20はピクセル内回路および周辺回路の特定の実装形態を示しているが、ピクセル内回路と周辺回路との間で回路を分割するいくつかの他の変形形態が、本発明の範囲から逸脱することなく実装されてよい。たとえば、一実装形態では、すべての回路が、ピクセル内または周辺内に実装されてもよい。別の実装形態では、列および行の加重和は、行および列に対する加重和の並列計算のために、各ピクセルに対してブロック2002に類似する2つのブロックを実装することによって同時に計算されてよい。そのような変形形態は、回路を実装するためのスペースを増加させ得る一方で、各センサ要素に関連付けられたHSGラベルを生成するために必要な時間を低減することができる。
【００７８】
本発明の態様は、これらの動作をデジタル領域でプロセッサ上で実行するのではなく、センサ上の専用CV計算ハードウェア、ピクセル内回路もしくは周辺回路のいずれか、専用CV処理モジュール、またはそれらの何らかの組合せを使用してHSGラベルの生成などのCV演算を実行することを可能にする。アプリケーションプロセッサ上でCV演算を実行することは、電力消費的であり、処理集約的であり得る。さらに、プロセッサ上でHSGラベルの生成などのCV演算を実行することによって特徴を検出することは、電力消費的であり、処理集約的であり得る。なぜならば、プロセッサ上でCVを実行することは、センサからの情報をメモリに記憶するステップと、センサ情報の処理をトリガするステップと、CV計算のためにメモリから命令をフェッチするステップと、結果を記憶するステップとを必要とするからである。
【００７９】
図21は、複数の値に対する比較器の例示的な実装形態を提供する。比較器は、2つの電圧または電流を比較し、2つのうちのどちらがより大きい(またはより小さい)かを示すデジタル信号を出力することができる。比較器は、比較を実行するために、1つまたは複数の所定のおよび/または構成可能なしきい値を有してよい。図21に示す比較器は、電圧比較器の一例である。
【００８０】
本開示で説明する態様は垂直および水平のエッジを検出することを論じるが、対角エッジもまた、本発明の範囲から逸脱することなく、上記で説明したものと同様に検出され、処理されてよい。
【００８１】
CV特徴のためのFASTコーナ検出計算のハードウェア加速
加速セグメント試験からの特徴(FAST)は、コーナ検出方法であり、その方法は、特徴点を抽出するために使用され、後で、多くのCVタスクに対する対象物を追跡してマッピングするために使用され得る。FASTコーナ検出器は、一般に、高速性能ゆえに、リアルタイムビデオ処理アプリケーションに好適である。
【００８２】
一般に、図22に示すように、FASTコーナ検出器は、候補点pがコーナであるかどうかを分類するために、画像から16個のピクセルの円(半径nのブレゼンハムの円)を使用する。円内の各ピクセルは、整数番号1から16まで、時計回りにラベル付けられる。円内のN個の隣接するピクセルのセットが、すべて、候補ピクセルpの明度(Ipで示される)プラスしきい値tより明るいか、またはすべて、候補ピクセルpの明度マイナスしきい値tより暗い場合、pはコーナとして分類される。Nは、通常、12として選択される。
【００８３】
高速試験方法は、非コーナ点を除外するために適用され得る。非コーナ点を拒絶するための高速試験が、4つの例示的なピクセル、すなわちピクセル1、9、5および13を検査することによって動作される。候補コーナよりすべて明るいかまたはすべて暗い、少なくとも12個の隣接するピクセルが存在するはずであるので、これらの4つの例示的なピクセルのうち、候補コーナよりすべて明るいかまたはすべて暗い、少なくとも3つのピクセルが存在するはずである。最初にピクセル1および9が検査され、1と9の両方がIp+tとIp-tとの間にある場合、候補pはコーナではない。そうでない場合、ピクセル5および13がさらに検査され、それらのうちの3つがIp+tより明るいかまたはIp-tより暗いかがチェックされる。それらのうち、より明るいかまたはより暗い3つが存在する場合、残りのピクセルは、最終的結論のために検査される。
【００８４】
Nは通常12として選択されるが、いくつかの例では、9のNが、フレームにわたってより良い追跡性能をもたらすことがある。
【００８５】
図23に示すように、ソフトウェアにおけるFASTコーナ検出を使用してコーナを検出することは、AMD(登録商標)およびIntel(登録商標)によって製造されるx86プロセッサのような汎用プロセッサ上で、一画像に対して数ミリ秒から数十ミリ秒程度かかることがある。
【００８６】
本開示の態様は、最適化されたハードウェア実装形態を使用してコーナを速やかに検出するための技法を論じる。いくつかの例では、前述のCV計算ハードウェアはまた、FASTコーナ検出を使用してコーナを検出するための構成可能なハードウェアを備える。しきい値が、比較器内に組み込まれてよい。いくつかのピクセルが、互いに直列にもしくは並列のいずれかで、またはグループとして、中央ピクセルの明度およびそれぞれのしきい値と比較されてよく、したがって高速に処理される。
【００８７】
図24は、比較器論理、ANDゲート、およびNORゲートを使用してFASTコーナを検出するための例示的なハードウェア実装形態を開示する。いくつかの他のデジタルまたはアナログ構成要素が、本開示の範囲から逸脱することなく、本実装形態の変形形態において使用されてよい。図24は、画像を感知するセンサアレイ2402を開示する。いくつかの実施形態では、画像は、サブ感知スライディングウィンドウアレイ(sub-sensed sliding window array)2404内で処理されてよい。図24はまた、スライディングウィンドウアレイ2404内にブレゼンハムの円2406およびコーナ2408を描いている。例示的な一実施形態では、16個のピクセル明度の読みを含むブレゼンハムの円の各々は、(N個の隣接するピクセル明度を有する)16個の異なる隣接するピクセルグループをもたらす。図24は、各グループが12個の隣接するピクセルに対する明度を含む、16個の異なる隣接するピクセルグループをもたらす12のNの一例を開示する。図22に戻って参照すると、例示的な16のグループは、ピクセル1〜12、2〜13、3〜14、...、16〜11からのピクセル明度を含むグループを含むことになる。
【００８８】
比較器論理2422において、各ピクセルの明度は、中央ピクセルの明度と比較され、所定のしきい値だけオフセットされる。所定のしきい値は、事前設定されてよく、または電源投入後、比較演算前に動的に決定されてもよい。隣接するピクセルグループの各々に対して比較器論理2422における比較によってもたらされた比較器の値は、対応するN入力ANDゲートを介してともにAND演算される。図24は、隣接するピクセルグループの各々に対して、得られた比較器の値をともにAND演算するための、16個の12入力ANDゲートを表すが、全体を示してはいない。たとえば、ANDゲート2410は、隣接するピクセル1〜12に対して得られた比較器の値2412をともにAND演算する。中央ピクセルマイナスしきい値(Ip-t)より暗いものが「1」で表され、中央ピクセルプラスしきい値(Ip+t)より明るいものが「0」で表され、得られた比較器の値2412がすべて「1」である場合、ANDゲート2410の結果は「1」となる。ANDゲート2410からORゲート2420への「1」の入力はまた、ORゲート2420への他の入力にかかわらず、ORゲート2420から「1」の出力をもたらす。そのために、得られた比較器の値2412のすべてが「1」であるとき、スライディングウィンドウアレイ2404内にコーナが検出される結果がもたらされる。同様に、ANDゲート(2414、2416、...、2418)のうちのいずれかからの結果が「1」であるとき、コーナの検出がもたらされることになる。
【００８９】
そのような比較のハードウェア実装形態は、コーナ検出において著しい速度アップをもたらすことができる。たとえば、図23における時間と比較すると、図24の実装形態に類似する実装形態は、数サイクルの間に、または(非クロック論理において)値がラッチされるとすぐにコーナ検出をもたらす。
【００９０】
図24に開示する実施形態は、FASTコーナ検出のハードウェア実装形態の一例であり、本開示の範囲を限定することを意図するものでないことに留意されたい。たとえば、ゲートまたは集積回路の異なるセットが、本発明の範囲から逸脱することなく、同様の結果を達成するために使用されてもよい。さらに、信号は、スペースおよび配線の使用を最適化するために、様々な構成において配列されてもよい。たとえば、比較器論理2422からの各比較に対する計算結果が、複数のANDゲートに供給されてよい。たとえば、中央ピクセルの明度と12番目のピクセルの明度との間の比較が、16個のANDゲートのうちの12個に供給されてもよい。同一/同様の論理が、中央ピクセルより明るいピクセルと中央ピクセルより暗いピクセルとに対してコーナ検出を実行するために2回使用されてもよい。
【００９１】
さらに、図24に示す16個のANDゲートは、本開示の範囲から逸脱することなく、より多数の入力を有するより大きい集積回路か、またはより少数の入力を有するより多数の集積回路を使用して統合されてもよい。加えて、図24は12のNを論じているが、いくつかの実施形態では、Nは異なる値に対して構成可能であってもよい。
【００９２】
1つまたは複数の態様によれば、本明細書の図1〜図24において説明する方法および/または方法ステップのいずれかおよび/またはすべてが、光センサ装置などのセンサ装置によって、および/またはセンサ装置の中で実施され得る。一実施形態では、説明した方法ステップのうちの1つまたは複数は、ピクセル内回路および/または周辺回路などのセンサ装置のセンシング要素および処理論理によって実装されてよい。追加または代替として、本明細書で説明する方法および/または方法ステップのいずれかおよび/またはすべては、メモリ、ストレージまたは別のコンピュータ可読媒体などのコンピュータ可読媒体上に記憶されているコンピュータ可読命令などのコンピュータ可読命令で実施され得る。
【００９３】
図25は、本発明の実施形態を実施する際に採用されるデバイスおよびセンサ100の部品を組み込んだ例示的なコンピューティングデバイスを示す。たとえば、コンピューティングデバイス2500は、モバイルデバイスまたは任意の他のコンピューティングデバイスのコンポーネントのいくつかを表し得る。コンピューティングデバイス2500の例には、限定はされないが、デスクトップ、ワークステーション、パーソナルコンピュータ、スーパーコンピュータ、ビデオゲーム機、タブレット、スマートフォン、ラップトップ、ネットブック、または他のポータブルデバイスがある。図25は、本明細書で説明する様々な他の実施形態によって提供される方法を実行することができ、かつ/または、ホストコンピューティングデバイス、リモートキオスク/端末、販売時点デバイス、モバイル多機能デバイス、セットトップボックスおよび/もしくはコンピューティングデバイスとして機能することができる、コンピューティングデバイス2500の一実施形態の概略図を提供する。図25は、種々の構成要素の一般化された図を提供することのみを意図しており、必要に応じて、そのいずれか、またはすべてが利用される場合がある。したがって、図25は、個々のシステム要素をいかにして、比較的別々に実現できるか、または比較的より統合されるように実現できるかを広く示している。
【００９４】
バス2505を介して電気的に結合され得る(または適宜別様に通信し得る)ハードウェア要素を備える、コンピューティングデバイス2500が示されている。ハードウェア要素は、限定はしないが、1つもしくは複数の汎用プロセッサおよび/または1つもしくは複数の(デジタル信号処理チップ、グラフィックス加速プロセッサなどの)専用プロセッサを含む1つもしくは複数のプロセッサ2510と、限定はしないが、1つまたは複数のカメラセンサ2550、マウス、キーボードなどを含むことができる1つもしくは複数の入力デバイス2515と、限定はしないが、表示ユニット、プリンタなどを含むことができる1つもしくは複数の出力デバイス2520とを含み得る。センサ2550モジュールには、光センサ、嗅覚センサ、および/または化学センサが含まれることがある。例示的なセンサ100が、図1に示されている。
【００９５】
コンピューティングデバイス2500は、1つまたは複数の非一時的記憶デバイス2525をさらに含む(かつ/またはそれと通信する)ことができ、非一時的記憶デバイス2525は、限定はしないが、ローカルストレージおよび/もしくはネットワークアクセス可能なストレージを備えることができ、ならびに/または、限定はしないが、プログラム可能、フラッシュ更新可能などであり得る、ディスクドライブ、ドライブアレイ、光記憶デバイス、ランダムアクセスメモリ(「RAM」)および/もしくは読取り専用メモリ(「ROM」)などのソリッドフォーム記憶デバイスを含むことができる。そのような記憶デバイスは、限定はしないが、様々なファイルシステム、データベース構造などを含む任意の適切なデータ記憶装置を実装するように構成され得る。
【００９６】
コンピューティングデバイス2500はまた、通信サブシステム2530を含み得る。通信サブシステム2530は、データを受信し送信するための送受信機2550、または、ワイヤード媒体および/もしくはワイヤレス媒体を含み得る。通信サブシステム2530はまた、限定はしないが、モデム、ネットワークカード(ワイヤレスもしくはワイヤード)、赤外線通信デバイス、ワイヤレス通信デバイス、および/またはチップセット(Bluetooth(登録商標)デバイス、802.11デバイス、WiFiデバイス、WiMaxデバイス、セルラー通信設備など)などを含み得る。通信サブシステム2530は、ネットワーク(一例を挙げると、以下で説明するネットワークなど)、他のコンピューティングデバイス、および/または本明細書で説明する任意の他のデバイスとデータを交換することを可能にしてもよい。多くの実施形態では、コンピューティングデバイス2500は、上記で説明したように、RAMまたはROMデバイスを含み得る非一時的作業メモリ2535をさらに備えることになる。
【００９７】
コンピューティングデバイス2500は、オペレーティングシステム2540、デバイスドライバ、実行可能ライブラリ、および/または、1つもしくは複数のアプリケーションプログラム2545などの他のコードを含む、作業メモリ2535内に現在配置されているように図示されている、ソフトウェア要素を備えることができ、1つまたは複数のアプリケーションプログラム2545は、本明細書で説明するように、様々な実施形態によって提供されるコンピュータプログラムを含んでよく、ならびに/または、他の実施形態によって提供される方法を実施し、かつ/もしくはシステムを構成するように設計され得る。単なる例として、上記で説明した方法に関して説明する1つまたは複数の手順は、コンピュータ(および/またはコンピュータ内のプロセッサ)によって実行可能なコードおよび/または命令として実装され得、次いで、一態様では、そのようなコードおよび/または命令は、説明した方法に従って1つまたは複数の動作を実行するために、汎用コンピュータ(または他のデバイス)を構成し、かつ/または適応させるために使用され得る。
【００９８】
これらの命令および/またはコードのセットは、上記で説明したストレージデバイスデバイス2525などのコンピュータ可読記憶媒体上に記憶され得る。場合によっては、記憶媒体は、コンピューティングデバイス2500などのコンピューティングデバイス内に組み込まれ得る。他の実施形態では、記憶媒体に記憶されている命令/コードによって汎用コンピュータをプログラムし、構成し、かつ/または適応させるために記憶媒体が使用され得るように、記憶媒体は、コンピューティングデバイスから分離され(たとえば、コンパクトディスクのようなリムーバブル媒体)、かつ/またはインストールパッケージにおいて提供され得る。これらの命令は、コンピューティングデバイス2500によって実行可能である、実行可能コードの形をとることができ、ならびに/または(たとえば、様々な一般的に利用可能なコンパイラ、インストールプログラム、圧縮/展開ユーティリティなどのいずれかを使用した)コンピューティングデバイス2500上でのコンパイルおよび/もしくはインストール時に、次いで実行可能コードの形をとるソースコードおよび/もしくはインストール可能コードの形をとることができる。
【００９９】
具体的な要件に従って大幅な変形を行うことができる。たとえば、カスタマイズされたハードウェアが使用される場合もあり、かつ/または、特定の要素が、ハードウェア、ソフトウェア(アプレットなどのようなポータブルソフトウェアを含む)、もしくはその両方で実現される場合がある。さらに、ネットワーク入力/出力デバイスなどの他のコンピューティングデバイス2500への接続が使用されてもよい。
【０１００】
いくつかの実施形態は、本開示による方法を実行するために、コンピューティングデバイス(コンピューティングデバイス2500など)を採用することができる。たとえば、プロセッサ2510が、作業メモリ2535内に含まれる(オペレーティングシステム2540、および/またはアプリケーションプログラム2545などの他のコードに組み込まれ得る)1つまたは複数の命令の1つまたは複数のシーケンスを実行することに応答して、説明する方法の手順の一部または全部がコンピューティングデバイス2500によって実行され得る。そのような命令は、ストレージデバイス2525のうちの1つまたは複数などの、別のコンピュータ可読媒体からワーキングメモリ2535に読み込まれる場合がある。単なる例として、ワーキングメモリ2535に含まれる命令のシーケンスの実行は、プロセッサ2510に、本明細書で説明する方法の1つまたは複数の手順を実行させる場合がある。
【０１０１】
本明細書において使用されるときに、「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械を特定の方式で動作させるデータを与えることに関与する任意の媒体を指す。コンピューティングデバイス2500を使用して実装される一実施形態では、様々なコンピュータ可読媒体が、実行のためにプロセッサ2510に命令/コードを与えることに関与することがあり、ならびに/または、そのような命令/コードを(たとえば、信号として)記憶かつ/もしくは搬送するために使用されることがある。多くの実装形態において、コンピュータ可読媒体は、物理的な記憶媒体および/または有形の記憶媒体である。そのような媒体は、限定はしないが、不揮発性媒体、揮発性媒体、および伝送媒体を含む、数多くの形をとり得る。不揮発性媒体は、たとえば、ストレージデバイス2525などの光ディスクおよび/または磁気ディスクを含む。揮発性媒体は、限定はしないが、ワーキングメモリ2535などのダイナミックメモリを含む。伝送媒体は、限定はしないが、バス2505、ならびに通信サブシステム2530の種々の構成要素(および/または通信サブシステム2530が他のデバイスとの通信を提供する媒体)を含む電線を含む、同軸ケーブル、銅線、および光ファイバーを含む。したがって、伝送媒体はまた、波(限定はしないが、無線波データ通信および赤外線データ通信の間に生成されるものなどの無線波、音波、および/または光波を含む)の形をとり得る。代替実施形態では、カメラなどのイベント駆動型構成要素およびデバイスが使用されてもよく、その場合、処理の一部がアナログドメインにおいて実行されてもよい。
【０１０２】
物理的な、かつ/または有形のコンピュータ可読媒体の一般的な形は、たとえば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、または任意の他の磁気媒体、CD-ROM、任意の他の光学媒体、パンチカード、紙テープ、穴のパターンを有する任意の他の物理媒体、RAM、PROM、EPROM、フラッシュEPROM、任意の他のメモリチップまたはカートリッジ、以下において説明されるような搬送波、あるいはコンピュータが命令および/またはコードを読み取ることのできる任意の他の媒体を含む。
【０１０３】
様々な形のコンピュータ可読媒体が、1つまたは複数の命令の1つまたは複数のシーケンスを実行するためにプロセッサ2510に搬送する際に関わる場合がある。単なる例として、命令は最初に、リモートコンピュータの磁気ディスクおよび/または光ディスク上で搬送され得る。リモートコンピュータは、命令をそのダイナミックメモリにロードし、コンピューティングデバイス2500によって受信および/または実行される伝送媒体上の信号として、命令を送信することができる。電磁信号、音響信号、光信号などの形をとり得るこれらの信号はすべて、本発明の様々な実施形態による、命令が符号化され得る搬送波の例である。
【０１０４】
通信サブシステム2530(および/またはその構成要素)は、一般に信号を受信し、次いで、バス2505は、信号(および/または、信号によって搬送されるデータ、命令など)をワーキングメモリ2535に搬送する場合があり、プロセッサ2510は、ワーキングメモリ2535から命令を取り出し、実行する。ワーキングメモリ2535によって受信された命令は、オプションで、プロセッサ2510による実行の前または後のいずれかに、非一時的記憶デバイス2525上に記憶することができる。
【０１０５】
先に論じられた方法、システム、およびデバイスは例である。種々の実施形態は、必要に応じて、種々の手順または構成要素を省略、置換、または追加することができる。たとえば、代替の構成では、説明される方法は、説明される順序とは異なる順序で実施される場合があり、かつ/または、種々のステージの追加、省略、および/もしくは組合せが行われる場合がある。さらに、特定の実施形態に関して説明された特徴は、種々の他の実施形態において組み合わせることができる。実施形態の異なる態様および要素は、同じように組み合わせることができる。また、技術は発展するので、要素のうちの多くは、本開示の範囲をそれらの具体例に限定しない例である。
【０１０６】
実施形態を十分に理解してもらうために、説明において具体的な詳細が与えられている。しかしながら、実施形態は、これらの具体的な詳細を伴わずに実践することができる。たとえば、実施形態を不明瞭することを避けるために、周知の回路、プロセス、アルゴリズム、構造、および技法は、無用に詳述することなく示されている。この説明は例示的な実施形態のみに関する説明であり、本発明の範囲、適用性、または構成を限定することは意図していない。むしろ、実施形態のこれらの説明は、本発明の実施形態を実施することを可能にする説明を当業者に与える。本発明の趣旨および範囲から逸脱することなく、要素の機能および構成に種々の変更を加えることができる。
【０１０７】
また、いくつかの実施形態について、流れ図またはブロック図として示すプロセスとして説明した。各々が、動作について順次プロセスとして説明することがあるが、動作の多くは、並行にまたは同時に実行され得る。加えて、動作の順序は、並べ替えられ得る。プロセスは、図に含まれていない追加のステップを有し得る。さらに、方法の実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはこれらの任意の組合せによって実現されてもよい。関連するタスクを実施するためのプログラムコードまたはコードセグメントは、ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードにおいて実現されるときには、ストレージ媒体などのコンピュータ可読媒体に記憶されてもよい。プロセッサは、関連するタスクを実施してもよい。
【０１０８】
いくつかの実施形態について説明してきたが、様々な変更、代替構造、および均等物が本開示の趣旨から逸脱することなく使用され得る。たとえば、上記の要素は、単により大きいシステムの構成要素であってもよく、他のルールが本発明の適用例よりも優先するか、そうでなければ本発明の適用例を修正してもよい。また、上記の要素が考慮される前、考慮される間、または考慮された後に、いくつかのステップが実施されてもよい。したがって、上記の説明は本開示の範囲を限定しない。
【符号の説明】
【０１０９】
100  センサ
102  センサ要素
200  ピクセル
202  センサ要素
204  ピクセル内回路
302  センサ要素アレイ
304  周辺回路
306  周辺回路
402  センサ要素アレイ
404  専用コンピュータビジョン(CV)処理モジュール
406  アプリケーションプロセッサ
502  センサ要素
504  構成可能ブロック、第1のマルチプレクサ(MUX 1)
506  構成可能ブロック、合計バンク
508  構成可能ブロック、サンプルアンドホールドバンク
510  構成可能ブロック、第2のマルチプレクサ(MUX 2)
512  構成可能ブロック、関数バンク
514  構成可能ブロック、第3のマルチプレクサ(MUX 3)
516  制御論理回路
1200  画像フレーム
1202  センサ要素
2002  回路ブロック
2004  ブロック
2402  サブ感知スライディングウィンドウアレイ
2404  スライディングウィンドウアレイ
2406  ブレゼンハムの円
2408  コーナ
2410  ANDゲート
2412  比較器の値
2414  ANDゲート
2416  ANDゲート
2418  ANDゲート
2420  ORゲート
2422  比較器論理回路
2500  コンピューティングデバイス
2505  バス
2510  プロセッサ
2515  入力デバイス
2520  出力デバイス
2525  非一時的記憶デバイス
2530  通信サブシステム
2535  非一時的作業メモリ
2540  オペレーティングシステム
2545  アプリケーションプログラム
2550  カメラセンサ
【図１】
2017531864.tif 000003
【図２】
2017531864.tif 000004
【図３】
2017531864.tif 000005
【図４】
2017531864.tif 000006
【図５】
2017531864.tif 000007
【図６】
2017531864.tif 000008
【図７】
2017531864.tif 000009
【図８】
2017531864.tif 000010
【図９】
2017531864.tif 000011
【図１０Ａ】
2017531864.tif 000012
【図１０Ｂ】
2017531864.tif 000013
【図１１】
2017531864.tif 000014
【図１２】
2017531864.tif 000015
【図１３Ａ−１３Ｅ】
2017531864.tif 000016
【図１４】
2017531864.tif 000017
【図１５Ａ】
2017531864.tif 000018
【図１５Ｂ】
2017531864.tif 000019
【図１６】
2017531864.tif 000020
【図１７Ａ−１７Ｂ】
2017531864.tif 000021
【図１７Ｃ】
2017531864.tif 000022
【図１８】
2017531864.tif 000023
【図１９】
2017531864.tif 000024
【図２０】
2017531864.tif 000025
【図２１】
2017531864.tif 000026
【図２２】
2017531864.tif 000027
【図２３】
2017531864.tif 000028
【図２４】
2017531864.tif 000029
【図２５】
2017531864.tif 000030
【国際調査報告】
2017531864.tif 000031
2017531864.tif 000032