(57)【要約】  画像の特定のピクセルが特徴であるかどうかを判断する方法は、特定のピクセルを囲む(画像からの)複数のピクセルに対応するデータを受信するステップを含む。方法は、1組の比較結果を決定するステップをさらに含み、各比較結果は、複数のピクセルのうちの1つに対応し、複数のピクセルのうちの1つに対応する属性値を比較値(特定のピクセルの特定の属性値および閾値に基づく)と比較する結果を示す。方法は、プロセッサによって実行されると、プロセッサに、特定のピクセルが特徴であることを示す1組の比較結果のサブセットを識別させるプロセッサ実行可能命令を実行するステップをさらに含む。識別されたサブセットは、複数のピクセルのうちのいくつかのピクセルの連続的な順序とすることができる。
2015521335.tif 000002
【特許請求の範囲】
【請求項１】
画像を処理する方法(800)であって、
特定のピクセル(320)を囲む複数のピクセルに対応するデータを受信するステップ(702、802)であり、前記複数のピクセルの各々が画像からのものである、ステップと、
前記複数のピクセルに関連付けられた1組の比較結果(138、330)を決定するステップ(704、804)であり、前記1組の比較結果(138、330)の各比較結果が、前記複数のピクセルのうちの1つに対応し、前記複数のピクセルのうちの前記1つに対応する属性値を比較値と比較する結果を示し、前記比較値が、前記特定のピクセル(320)の特定の属性値、および閾値に基づく、ステップと、
プロセッサ(130、1010)によって実行されると、前記プロセッサ(130、1010)に、前記特定のピクセル(320)が特徴であることを示す前記1組の比較結果(138、330)のサブセットを識別させるプロセッサ実行可能命令(160)を実行することによって、前記画像の前記特定のピクセル(320)が前記特徴であるかどうかを判断するステップ(806)であり、前記識別されたサブセットが、前記特定のピクセル(320)を囲む連続的な順序で配置される前記複数のピクセルのうちのいくつかのピクセルに対応する、ステップと
を含む方法。
【請求項２】
前記比較値が前記特定の属性値と前記閾値との合計である、請求項1に記載の方法。
【請求項３】
前記比較値が前記特定の属性値と前記閾値との差である、請求項1に記載の方法。
【請求項４】
前記プロセッサ(130、1010)によって識別される前記1組の比較結果(138、330)の前記サブセットの各比較結果が、前記属性値が前記特定の属性値と前記閾値との合計よりも大きい、または、前記属性値が前記特定の属性値と前記閾値との差よりも小さいことを示す、請求項1に記載の方法。
【請求項５】
前記複数のピクセルが16のピクセルを含み、前記1組の比較結果(138、330)の前記識別されたサブセットが前記複数のピクセルのうちの9つのピクセルに関連付けられている、請求項1に記載の方法。
【請求項６】
前記特徴が角である、請求項1に記載の方法。
【請求項７】
前記特定の属性値が強度値であり、前記閾値が閾強度値である、請求項1に記載の方法。
【請求項８】
前記特定のピクセル(320)が前記特徴であるかどうかを判断するステップが、携帯電話(1000)、コンピューティングデバイス(110)、ポータブル電子デバイス、タブレットコンピューティングデバイス、電子リーダーデバイス、ゲームコンソール、カメラ、その周辺機器、またはそれらの任意の組合せで実行される、請求項1に記載の方法。
【請求項９】
前記1組の比較結果(138、330)が、前記比較値に対する前記複数のピクセルの各々の属性値の比較を実行するベクトル比較操作によって決定される、請求項1に記載の方法。
【請求項１０】
前記1組の比較結果(138、330)をインデックスとして使用してテーブル探索操作(150)を実行するステップが、前記特定のピクセル(320)が前記特徴であるかどうかを示す、請求項1に記載の方法。
【請求項１１】
前記特定のピクセル(320)が前記特徴であると決定することに応答して、前記閾値を変更するステップ(904)と、
前記特定のピクセル(320)の前記特定の属性値、前記変更された閾値、および前記特定のピクセル(320)を囲む前記複数のピクセルの各々の前記属性値に依存する動作に基づいて、前記画像の前記特定のピクセル(320)が特徴テストを満たすかどうかを判断するステップ(906)と、
前記特定のピクセル(320)に関連付けられたスコアを決定するステップ(908)であり、前記特定のピクセル(320)が前記特徴テストを満たすとき、前記スコアが前記変更された閾値に基づく、ステップと
をさらに含む請求項1に記載の方法。
【請求項１２】
前記特定のピクセル(320)が前記特徴テストを満たすと決定することに応答して、1つまたは複数のさらに変更された閾値に基づいて1つまたは複数の第2の特徴テストを実行するステップと、
前記特定のピクセル(320)が特定の第2の特徴テストを満たすと決定することに応答して、前記特定の第2の特徴テストに対応する特定のさらに変更された閾値に基づいて前記スコアの値を設定するステップと
をさらに含む請求項11に記載の方法。
【請求項１３】
画像の特定のピクセルが特徴であるかどうかを判断するための装置であって、
特定のピクセル(320)を囲む複数のピクセルに対応するデータを受信するための手段であり、前記複数のピクセルの各々が画像からのものである、手段と、
前記複数のピクセルに関連付けられた1組の比較結果(138、330)を決定するための手段であり、前記1組の比較結果(138、330)の各比較結果が、前記複数のピクセルのうちの1つに対応し、前記複数のピクセルのうちの前記1つに対応する属性値を比較値と比較する結果を示し、前記比較値が、前記特定のピクセル(320)の特定の属性値、および閾値に基づく、手段と、
プロセッサ(130、1010)によって実行されると、前記プロセッサ(130、1010)に、前記特定のピクセル(320)が特徴であることを示す前記1組の比較結果(138、330)のサブセットを識別させるプロセッサ実行可能命令(160)を実行することによって、前記画像の前記特定のピクセル(320)が前記特徴であるかどうかを判断するための手段であり、前記識別されたサブセットが、前記特定のピクセル(320)を囲む連続的な順序で配置される前記複数のピクセルのうちのいくつかのピクセルに対応する、手段と
を備える装置。
【請求項１４】
前記特定のピクセル(320)を囲む複数のピクセルに対応するデータを受信するための前記手段が、特徴検出プロセッサモジュール(130)であり、前記複数のピクセルに関連付けられた前記1組の比較結果(138、330)を決定するための前記手段が、特徴検出プロセッサモジュール(130)であり、前記画像の前記特定のピクセル(320)が前記特徴であるかどうかを判断するための前記手段が、前記特徴検出プロセッサモジュール(130)である、請求項13に記載の装置。
【請求項１５】
前記特定のピクセル(320)を囲む複数のピクセルに対応するデータを受信するための前記手段が、プロセッサ(130、1010)によって実行されると、前記プロセッサ(130、1010)に、前記特定のピクセル(320)を囲む複数のピクセルに対応するデータを受信させるプロセッサ実行可能命令(1060)を含む第1の非一時的コンピュータ可読媒体を含み、
前記複数のピクセルに関連付けられた前記1組の比較結果(138、330)を決定するための前記手段が、前記プロセッサ(130、1010)によって実行されると、前記プロセッサ(130、1010)に、前記複数のピクセルに関連付けられた1組の比較結果(138、330)を決定させるプロセッサ実行可能命令(1060)を含む第2の非一時的コンピュータ可読媒体を含み、
前記画像の前記特定のピクセル(320)が前記特徴であるかどうかを判断するための前記手段が、前記プロセッサ(130、1010)によって実行されると、前記プロセッサ(130、1010)に、前記画像の前記特定のピクセル(320)が前記特徴であるかどうかを判断させるプロセッサ実行可能命令(1060)を含む第3の非一時的コンピュータ可読媒体を含む
請求項13に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の主張
本出願は、その内容全体が参照により本明細書に組み込まれる、「SYSTEM  AND  METHOD  TO  PERFORM  FEATURE  DETECTION  AND  TO  DETERMINE  A  FEATURE  SCORE」という名称の2012年5月31日に出願された米国仮特許出願第61/653,683号の優先権を主張する。
【０００２】
本開示は概して、画像処理に関する。
【背景技術】
【０００３】
顔認識アプリケーション、ジェスチャー制御インターフェース、および拡張現実アプリケーションを有する製品は、画像を取得し、処理し、分析するための方法を提供するコンピュータビジョンアルゴリズムに依存する。コンピュータビジョンの一態様は、画像内の関係するポイントを識別するために画像情報の処理およびコンピューティングを伴う特徴検出である。Features  from  Accelerated  Segment  Test(「FAST」)プロセス(たとえば、FAST9、FAST10、FAST11、FAST12など)に基づく特徴検出は、候補ピクセルを囲む円形の配置における1組のピクセルを分析する。
【０００４】
特徴検出のソフトウェア実装は、画像を処理するための効率を制限していた可能性がある。たとえば、特徴検出のソフトウェア実装は、多数行のコードを有し得、多くの比較命令、条件付き分岐命令、およびジャンプ命令の実行を伴い得る。したがって、特徴検出を実行するために、かなりの量の処理時間およびプロセッサリソースが消費され得る。特徴検出アルゴリズムのために実行されている条件付き分岐命令が多数であるため、プロセッサのデータレベルの並列性が制限され得る。さらに、デジタル信号プロセッサなどのマイクロプロセッサにおいてかなりの数の比較、条件付き分岐、およびジャンプ命令を実施することは、命令のレイテンシのために、実行効率に影響を及ぼす可能性がある。
【０００５】
技術の進歩は、小さく、軽量で、ユーザによって容易に搬送されるワイヤレスコンピューティングデバイスを含めて、ポータブルパーソナルコンピューティングデバイスなど、より小さく、より強力なコンピューティングデバイスをもたらした。さらに、多くのそのようなワイヤレスコンピューティングデバイスには、内部に他の種類のデバイスが組み込まれている。たとえば、ワイヤレス電話は、デジタルスチルカメラ、デジタルビデオカメラ、デジタルレコーダ、およびオーディオファイルプレーヤを含むこともできる。ワイヤレスコンピューティングデバイスは、かなりの計算能力を有することができるにもかかわらず、従来の特徴検出は、非常に複雑で、ワイヤレス電話など、そのようなワイヤレスコンピューティングデバイスへの適応には適していない可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００６】
特徴検出は、ピクセルのうちの1つまたは複数が、1つまたは複数のピクセル属性(たとえば、強度、発光、色相、色度、輝度、彩度など)に基づいて定義され得る画像の特徴(たとえば、角)を表すかどうかを判断するために、画像内のピクセル(候補ピクセル)の処理を伴う。候補ピクセルが特徴を表すかどうかを判断するために、特徴検出プロセス(たとえばFAST)に従って、候補ピクセルを囲む複数のピクセルが分析され得る。そのような分析は、ピクセル属性に関して、候補ピクセルに対する複数のピクセルの各ピクセルの比較を実行することを伴い得る。そのような分析によって生成される1組の結果は、複数のピクセルの各ピクセルがピクセル属性に関して特定の量だけ候補ピクセルと異なるかどうかを示し得る。特定の量は、閾値に基づいて定義され得る。候補ピクセルは、比較結果に基づいて、特徴と識別され得る。
【０００７】
複数のピクセルの分析によって生成される1組の結果は、候補ピクセルが特徴であることを1組の結果が示すかどうかを判断するためにテーブル探索操作を使用して処理され得る。テーブル探索操作は、1組の結果を決定するために考慮されたピクセル属性に関して、候補ピクセルが特徴であることを示す所定のパターンに1組の結果が一致するかどうかを判断するために、特徴ルックアップテーブルを検索することができる。特徴ルックアップテーブルにおける各パターンは、所定の1組の結果に基づいて定義され得る。所定の1組の結果は、ピクセル属性に基づく候補ピクセルに対する複数のピクセルの比較によって生成され得る。
【０００８】
代替として、複数のピクセルの分析によって生成される1組の結果は、候補ピクセルが特徴であることを1組の結果が示すかどうかを示す結果を生成することができる特徴識別命令(プロセッサ実行可能命令)によっても処理され得る。特徴識別命令の実行は、候補ピクセルが特徴であることを示す特定の組合せが存在するかどうかを判断するために、1組の結果の各結果の比較を含み得る。
【０００９】
候補ピクセルは、候補ピクセルの特徴スコアを決定するために、さらに処理され得る。特徴スコアは、特定の特徴の強度を示し得る。特徴の強度は、特定ピクセル属性に関して、候補ピクセルと複数のピクセルとの間の相違度を示し得る。特徴スコアは、候補ピクセルについての特徴検出プロセスの1つまたは複数の反復を実行することによって計算され得、特定の属性および閾属性値に関して、候補ピクセルを囲む複数のピクセルが候補ピクセルと比較される。第1の反復は、候補ピクセルが特徴であるかどうか判断するために、最初の閾属性値に基づいて実行され得る。特徴と識別されない候補ピクセルでは、特徴スコアは、0の値、または最初の閾値未満である別の値を有し得る。ひとたび候補ピクセルが特徴と識別されると、閾属性値の変更に基づく変更された閾属性値を使用して、次の反復が実行され得る。反復によって候補ピクセルが特徴と識別されるように、最大閾属性値が決定され得るまで、反復が実行される。候補ピクセルの特徴スコアは、候補ピクセルが特徴であることを示した最大閾属性値に基づいて定義され得る。
【００１０】
特定の実施形態では、方法は、画像の特定のピクセルが特徴であるかどうかを判断するステップを含む。画像の特定のピクセルが特徴であるかどうかを判断するステップは、特定のピクセルを囲む複数のピクセルに対応するデータを受信するステップを含む。複数のピクセルの各々は、画像からのものである。画像の特定のピクセルが特徴であるかどうかを判断するステップは、複数のピクセルに関連付けられた1組の比較結果を決定するステップを含む。1組の比較結果の各比較結果は、複数のピクセルのうちの1つに対応し、複数のピクセルのうちの1つに対応する属性値を比較値と比較する結果を示す。比較値は、特定のピクセルの特定の属性値および閾値に基づいて定義される。画像の特定のピクセルが特徴であるかどうかを判断するステップは、1組の比較結果をインデックスとして使用してテーブル探索操作を実行することによって、特定のピクセルが特徴であることを1組の比較結果が示すかどうかを判断するステップを含む。
【００１１】
特定の実施形態では、画像を処理する方法は、特定のピクセルを囲む複数のピクセルに対応するデータを受信するステップを含む。複数のピクセルの各々は、画像からのものである。方法は、複数のピクセルに関連付けられた1組の比較結果を決定するステップをさらに含む。1組の比較結果の各比較結果は、複数のピクセルのうちの1つに対応し、複数のピクセルのうちの1つに対応する属性値を比較値と比較する結果を示す。比較値は、特定のピクセルの特定の属性値および閾値に基づいて定義される。方法は、プロセッサによって実行されると、プロセッサに、特定のピクセルが特徴であることを示す1組の比較結果のサブセットを識別させるプロセッサ実行可能命令を実行することによって、画像の特定のピクセルが特徴であるかどうかを判断するステップをさらに含む。識別されたサブセットは、特定のピクセルを囲む連続的な順序で配置される複数のピクセルのうちのいくつかのピクセルに対応する。
【００１２】
別の特定の実施形態では、画像を処理する方法は、特定のピクセルの特定の属性値、閾値、および特定のピクセルを囲む複数のピクセルの各々の属性値に依存する第1の動作に基づいて、画像の特定のピクセルが第1の特徴テストを満たすかどうかを判断するステップを含む。方法は、特定のピクセルが第1の特徴テストを満たすことを決定することに応答して、閾値を変更するステップをさらに含む。方法は、特定のピクセルの特定の属性値、変更された閾値、および特定のピクセルを囲む複数のピクセルの各々の属性値に依存する第2の動作に基づいて、画像の特定のピクセルが第2の特徴テストを満たすかどうかを判断するステップをさらに含む。方法は、特定のピクセルに関連付けられたスコアを決定するステップをさらに含み、特定のピクセルが第2の動作に基づいて第2の特徴テストを満たすとき、スコアは変更された閾値に基づく。
【００１３】
別の特定の実施形態では、装置は、プロセッサと、プロセッサにとってアクセス可能なメモリとを含む。メモリは、プロセッサによって実行されると、プロセッサに、画像の特定のピクセルが特徴であるかどうかを判断させる命令を含む。画像の特定のピクセルが特徴であるかどうかを判断するステップは、特定のピクセルを囲む複数のピクセルに対応するデータを受信するステップを含む。複数のピクセルの各々は、画像からのものである。画像の特定のピクセルが特徴であるかどうかを判断するステップは、複数のピクセルに関連付けられた1組の比較結果を決定するステップを含む。1組の比較結果の各比較結果は、複数のピクセルのうちの1つに対応し、複数のピクセルのうちの1つに対応する属性値を比較値と比較する結果を示す。比較値は、特定のピクセルの特定の属性値および閾値に基づいて定義される。画像の特定のピクセルが特徴であるかどうかを判断するステップは、1組の比較結果をインデックスとして使用してテーブル探索操作を実行することによって、特定のピクセルが特徴であることを1組の比較結果が示すかどうかを判断するステップを含む。
【００１４】
別の特定の実施形態では、装置は、プロセッサと、プロセッサにとってアクセス可能なメモリとを含む。メモリは、プロセッサによって実行されると、プロセッサに、特定のピクセルを囲む複数のピクセルに対応するデータを受信させる命令を含む。複数のピクセルの各々は、画像からのものである。命令は、プロセッサによって実行されると、さらに、プロセッサに、複数のピクセルに関連付けられた1組の比較結果を決定させる。1組の比較結果の各比較結果は、複数のピクセルのうちの1つに対応し、複数のピクセルのうちの1つに対応する属性値を比較値と比較する結果を示す。比較値は、特定のピクセルの特定の属性値および閾値に基づいて定義される。命令は、プロセッサによって実行されると、さらに、特定のピクセルが特徴であることを示す1組の比較結果のサブセットをプロセッサに識別させるプロセッサ実行可能命令を実行することによって、画像の特定のピクセルが特徴であるかどうかをプロセッサに判断させる。識別されたサブセットは、特定のピクセルを囲む連続的な順序で配置される複数のピクセルのうちのいくつかのピクセルに対応する。
【００１５】
別の特定の実施形態では、装置は、プロセッサと、プロセッサにとってアクセス可能なメモリとを含む。メモリは、プロセッサによって実行されると、プロセッサに、特定のピクセルの特定の属性値、閾値、および特定のピクセルを囲む複数のピクセルの各々の属性値に依存する第1の動作に基づいて、画像の特定のピクセルが第1の特徴テストを満たすかどうかを判断させる命令を含む。命令は、プロセッサによって実行されると、さらに、プロセッサに、特定のピクセルが第1の特徴テストを満たすことを決定することに応答して、閾値を変更させる。命令は、プロセッサによって実行されると、さらに、プロセッサに、特定のピクセルの特定の属性値、変更された閾値、および特定のピクセルを囲む複数のピクセルの各々の属性値に依存する第2の動作に基づいて、画像の特定のピクセルが第2の特徴テストを満たすかどうかを判断させる。命令は、プロセッサによって実行されると、さらに、プロセッサに、特定のピクセルに関連付けられたスコアを決定させ、特定のピクセルが第2の動作に基づいて第2の特徴テストを満たすとき、スコアは変更された閾値に基づく。
【００１６】
別の特定の実施形態では、非一時的プロセッサ可読媒体は、プロセッサによって実行されると、プロセッサに、画像の特定のピクセルが特徴であるかどうかを判断させる命令を記憶する。画像の特定のピクセルが特徴であるかどうかを判断するステップは、特定のピクセルを囲む複数のピクセルに対応するデータを受信するステップを含む。複数のピクセルの各々は、画像からのものである。画像の特定のピクセルが特徴であるかどうかを判断するステップは、複数のピクセルに関連付けられた1組の比較結果を決定するステップを含む。1組の比較結果の各比較結果は、複数のピクセルのうちの1つに対応し、複数のピクセルのうちの1つに対応する属性値を比較値と比較する結果を示す。比較値は、特定のピクセルの特定の属性値および閾値に基づいて定義される。画像の特定のピクセルが特徴であるかどうかを判断するステップは、1組の比較結果をインデックスとして使用してテーブル探索操作を実行することによって、特定のピクセルが特徴であることを1組の比較結果が示すかどうかを判断するステップを含む。
【００１７】
別の特定の実施形態では、非一時的プロセッサ可読媒体は、プロセッサによって実行されると、プロセッサに、特定のピクセルを囲む複数のピクセルに対応するデータを受信させる命令を記憶する。複数のピクセルの各々は、画像からのものである。命令は、プロセッサによって実行されると、さらに、プロセッサに、複数のピクセルに関連付けられた1組の比較結果を決定させる。1組の比較結果の各比較結果は、複数のピクセルのうちの1つに対応し、複数のピクセルのうちの1つに対応する属性値を比較値と比較する結果を示す。比較値は、特定のピクセルの特定の属性値および閾値に基づいて定義される。命令は、プロセッサによって実行されると、プロセッサに、特定のピクセルが特徴であることを示す1組の比較結果のサブセットを識別させる1つのプロセッサ実行可能命令を含む。識別されたサブセットは、特定のピクセルを囲む連続的な順序で配置される複数のピクセルのうちのいくつかのピクセルに対応する。
【００１８】
別の特定の実施形態では、非一時的プロセッサ可読媒体は、プロセッサによって実行されると、プロセッサに、特定のピクセルの特定の属性値、閾値、および特定のピクセルを囲む複数のピクセルの各々の属性値に依存する第1の動作に基づいて、画像の特定のピクセルが第1の特徴テストを満たすかどうかを判断させる命令を記憶する。命令は、プロセッサによって実行されると、さらに、プロセッサに、特定のピクセルが第1の特徴テストを満たすことを決定することに応答して、閾値を変更させる。命令は、プロセッサによって実行されると、さらに、プロセッサに、特定のピクセルの特定の属性値、変更された閾値、および特定のピクセルを囲む複数のピクセルの各々の属性値に依存する第2の動作に基づいて、画像の特定のピクセルが第2の特徴テストを満たすかどうかを判断させる。命令は、プロセッサによって実行されると、さらに、プロセッサに、特定のピクセルに関連付けられたスコアを決定させ、特定のピクセルが第2の動作に基づいて第2の特徴テストを満たすとき、スコアは変更された閾値に基づく。
【００１９】
開示する実施形態のうちの少なくとも1つによって提供される特定の利点は、特徴である画像のピクセルを識別するために実行される処理の量を低減することを含む。画像の関連のある特徴の識別の精度は、特定の属性に関して、特定のピクセルと周囲ピクセルとの間の相違度を示す特徴スコアによって向上され得る。
【００２０】
本開示の他の態様、利点、および特徴は、以下のセクション、すなわち、図面の簡単な説明、発明を実施するための形態、および特許請求の範囲を含む、本出願全体の検討後に明らかになろう。
【図面の簡単な説明】
【００２１】
【図１】画像のピクセルが特徴であるかどうかを判断し、特徴に関連付けられたスコアを決定するためのシステムの特定の実施形態のブロック図である。
【図２】画像のピクセルが特徴であるかどうかを判断し、特徴に関連付けられたスコアを決定するためのシステムの別の特定の実施形態のブロック図である。
【図３】画像のピクセルが特徴であるかどうかを判断する第1の例示的な例を示す図である。
【図４】画像のピクセルが特徴であるかどうかを判断する第2の例示的な例を示す図である。
【図５】画像のピクセルが特徴であるかどうかを判断する第3の例示的な例を示す図である。
【図６】特徴として識別された画像のピクセルに関連付けられたスコアを決定する例示的な例を示す図である。
【図７】画像のピクセルが特徴であるかどうかを判断する方法の第1の特定の実施形態のフローチャートである。
【図８】画像のピクセルが特徴であるかどうかを判断する方法の第2の特定の実施形態のフローチャートである。
【図９】特徴として識別された画像のピクセルに関連付けられたスコアを決定するための方法の特定の実施形態のフローチャートである。
【図１０】画像のピクセルが特徴であるかどうかを判断し、特徴に関連付けられたスコアを決定するように動作可能な構成要素を含むワイヤレス電子デバイスのブロック図である。
【発明を実施するための形態】
【００２２】
本開示の特定の実施形態が、図面を参照して以下で説明される。説明において、共通の要素は、図面を通じて共通の参照番号により指定される。
【００２３】
図1を参照すると、画像のピクセルが特徴であるかどうかを判断し、特徴に関連付けられたスコアを決定するためのシステム100の特定の実施形態が示される。システム100は、たとえば、画像または画像の一部分を含み得るフレーム、ピクセル、または画像ストリームなどの画像データ122を受信する画像コントローラ120を含む。システム100は、特徴検出プロセッサモジュール130および特徴スコアプロセッサモジュール140も含む。システム100の特定の実施形態は、両方ではなく、特徴検出プロセッサモジュール130または特徴スコアプロセッサモジュール140を含み得る。システム100は、限定はしないが、携帯電話、コンピューティングデバイス、ポータブル電子デバイス、タブレットコンピューティングデバイス、電子リーダーデバイス、ゲームコンソール、カメラ、その周辺機器、またはそれらの組合せを含む様々な電子デバイスに統合され得る。
【００２４】
特定の実施形態では、特徴検出プロセッサモジュール130および特徴スコアプロセッサモジュール140によって実行されるものとして本明細書で説明する1つまたは複数の機能または方法は、コンピューティングデバイス110のプロセッサによって実行される命令を使用して実施され得る。プロセッサによって実行される命令は、コンピューティングデバイスのメモリ内に記憶され得、またはプロセッサに関連付けられたローカルストレージにあり得る。
【００２５】
特定の実施形態では、特徴検出プロセッサモジュール130および特徴スコアプロセッサモジュール140によって実行されるものとして本明細書で説明する1つまたは複数の機能は、たとえば、プログラマブル論理アレイ、フィールドプログラマブルゲートアレイ(FPGA)デバイス、特定用途向け集積回路(ASIC)、別のハードウェアデバイス、またはそれらの任意の組合せなど、専用のハードウェアによって実行され得る。
【００２６】
特徴検出プロセッサモジュール130は、1つまたは複数のピクセルが画像の特徴であるかどうかを判断するために、画像データ122に含まれる画像の1つまたは複数のピクセルを処理するように構成され得る。たとえば、画像の特徴は、角に対応し得る。区別可能な特徴である画像の特定のピクセル(たとえば、「候補ピクセル」)は、特定のピクセルに関連付けられた1つまたは複数の属性(たとえば、強度、発光、色相、色度、輝度、彩度など)を含む特徴を定義する1つまたは複数の基準に基づいて識別され得る。画像データ122の1つまたは複数のピクセルは、図2〜図9を参照して説明するものなど、特定の特徴検出プロセスに従って処理され得る。
【００２７】
説明の目的で、本明細書で説明する方法または機能は、FASTタイプ機能検出(たとえば、FAST9)の実装に基づく。しかしながら、本明細書で説明する方法または機能は、他の特徴検出の実装に基づいて実行され得る。FASTタイプの実装では、候補ピクセルが特徴であるかどうかを判断するために、画像の候補ピクセルを囲む1組のピクセル(たとえば、16のピクセル)が分析される。FASTが1組の16の周囲ピクセルに基づいて実装されるとき、1組の16のピクセルの少なくとも9つの連続するピクセルが、特定の閾値よりも多く、候補ピクセルと異なる属性値を有するとき、候補ピクセルは特徴と考えられ得る。
【００２８】
特定の実施形態では、特徴検出プロセッサモジュール130は、画像の特定のピクセルが特徴であるかどうかを判断するために、画像の特定のピクセルを囲む画像の複数のピクセルに関連付けられたデータを処理するように構成される。たとえば、FASTによる処理は、候補ピクセルに関して画像の特徴を定義する基準に対して各周囲ピクセルの値(たとえば、属性値)を比較することを含み得る。たとえば、基準は、画像の特徴を定義する1つまたは複数の属性(たとえば、強度、発光、色相、色度、輝度、彩度など)に関連付けられた比較値に基づいて定義され得る。また、比較値は、属性に関して特徴をさらに定義する調整可能な閾値に基づいて定義され得る。
【００２９】
特徴検出プロセッサモジュール130は、比較値に対する周囲ピクセルの各々の比較を実行することによって、1組の比較結果138を生成することができる。1組の比較結果138の各比較結果は、比較値に対する複数のピクセルのうちの1つの比較の結果に対応し得る。各比較結果は、0または1の論理値であり得、0の値は、特徴を定義する状態が満たされなかったことを示し、1の値は、特徴を定義する状態が満たされたことを示し、または逆もまた同じである。たとえば、16の周囲ピクセルを調査することによって特徴検出が実施されるとき、1組の比較結果138は16の論理値を含み得、各々が0または1の値を有する(たとえば、「1111111111000000」)。1組の比較結果138が生成された後、候補ピクセルが特徴であるかどうかを判断するために、1組の比較結果138が使用され得る。たとえば、FASTの場合、1組の比較結果138が9つの連続する1(1の値が、特徴決定基準が満たされることを示すとき)または0(0の値が、特徴決定基準が満たされることを示すとき)を含むかどうかを判断するために、1組の比較結果138が調査され得る。1組の比較結果138の処理を加速するために、候補ピクセルが特徴であるかどうかを判断するために、1組の比較結果138を使用して、テーブル探索操作150が実行され得る。別の特定の実施形態では、特徴識別命令160は、候補ピクセルが画像の特徴であるかどうかを判断するために、1組の比較結果138を処理することができる。
【００３０】
1組の比較結果138を使用して特徴ルックアップテーブル152において動作(たとえば読込み動作)を実行することによって、特定のピクセルが特徴であるかどうかを判断するために、テーブル探索操作150が使用され得る。特定の実施形態では、1組の比較結果138が特定のピクセルが特徴であることを示すパターンを表すかどうかを判断するために、1組の比較結果138が特徴ルックアップテーブル152に対するインデックスとして使用され得る。特徴ルックアップテーブル152は、1つまたは複数のエントリを含み得、各エントリは、1ビット値(0または1)の特定の組合せに対応するパターン(たとえば、ビットシーケンス)に基づくインデックス値を有する。インデックス値の長さは、特定のピクセルを囲むピクセル数に対応し得る。特徴ルックアップテーブル152は、インデックス値を形成する1ビット値の可能な組合せごとのエントリを含み得る。各エントリは、特定のピクセルがインデックス値の1ビット値のパターンに対応する特徴であるかどうかを示す1ビット値(たとえば、0の値が偽、1の値が真である場合)であり得る特徴フラグを含み得る。FASTでは、インデックス値は16ビットシーケンスに基づき、特徴ルックアップテーブルは、各々が16の1ビット値の個別のシーケンスを有するインデックス値に対応する216のエントリを有し得る。特徴ルックアップテーブル152の各エントリは、特定のピクセルが特徴であることを16ビットシーケンスが示すかどうかを判断するために使用される16ビットシーケンスを有するインデックス値を有し得る。たとえば、特徴ルックアップテーブル152のエントリは、1の値(たとえば、1の値が真である場合)を有する特徴フラグ、および少なくとも9つの連続する1(1の値が、特徴決定基準が満たされることを示すとき)または9つの連続する0(0の値が、特徴決定基準が満たされることを示すとき)を含むパターンに対応する16ビットシーケンスであり得るインデックスを有することができる。
【００３１】
別の特定の実施形態では、1組の比較結果138を表すパターンについて特徴ルックアップテーブル152を検索することによって、特定のピクセルが特徴であるかどうかを判断するために、テーブル探索操作が使用され得る。本実施形態では、特徴ルックアップテーブル152は、1つまたは複数のエントリを含み得、各エントリは、特定のピクセルが特徴であることを示すパターン(たとえば、ビットシーケンス)を識別する。FASTでは、特徴ルックアップテーブル152は、少なくとも9つの連続する1(1の値が、特徴決定基準が満たされることを示すとき)または9つの連続する0(0の値が、特徴決定基準が満たされることを示すとき)を含む16ビットシーケンスを含み得る。
【００３２】
FAST以外の実装形態では、特徴ルックアップテーブル152に異なるエントリが記憶され得る。特徴ルックアップテーブル152は、コンピューティングデバイス110のメモリ内に記憶され得る、またはプロセッサに関連付けられたローカルストレージに含まれ得、その両方ともは、テーブル探索操作150を実行するために特徴検出プロセッサモジュール130によってアクセス可能であり得る。代替として、図1に示すように、特徴ルックアップテーブル152は、特徴検出プロセッサモジュール130内に含まれ得る。特徴ルックアップテーブル操作150の具体的な実施形態が、図3および図4を参照してさらに説明される。
【００３３】
特徴識別命令160は、プロセッサによって実行されると、プロセッサに、1組の比較結果138を生成するために使用される特定のピクセルが特徴であることを、1組の比較結果138が示すかどうかを判断させ得るプロセッサ実行可能命令とすることができる。特徴識別命令160は、1組の比較結果138を入力パラメータと見なす単一のマイクロアーキテクチャ命令とすることができる。入力パラメータのサイズは、特定のピクセル周辺で調査される複数のピクセルに基づいて定義され得る1組の比較結果138のサイズに等しくてもよい。
【００３４】
プロセッサによる特徴識別命令160の実行で、プロセッサは、特定のピクセルが特徴であるかどうかを判断するために、特徴識別命令160に関連付けられた入力パラメータを分析することができる。たとえば、特徴検出が16の周囲ピクセルを使用したFASTに基づくとき、1組の比較結果138の9つ以上の連続する比較結果が1(1の値が、特徴決定基準が満たされることを示すとき)に等しいか、0(0の値が、特徴決定基準が満たされることを示すとき)に等しいかを判断するために、1組の比較結果138が処理され得る。特徴識別命令160の実行を示す一例について、図6を参照しながらさらに説明する。
【００３５】
特定の実施形態では、特徴スコアプロセッサモジュール140は、画像の特徴である1つまたは複数のピクセルの各々に、特徴スコアが関連付けられ得るかどうかを判断するために、画像データ122に含まれる画像の1つまたは複数のピクセルを処理するように構成され得る。あるいは、特徴スコアプロセッサモジュール140は、特徴検出プロセッサモジュール130から（複数の）特徴ピクセル134の識別を受信し、（複数の）特徴ピクセル134に関連付けられた特徴スコアを決定することができる。特徴スコアは、特徴と識別される特定のピクセルと、特定のピクセルを囲む複数のピクセルとの間の相違度を示す、特徴の「強度」を表すことができる。
【００３６】
特徴スコアプロセッサモジュール140が特徴ピクセル134の代わりに画像データ122を受信するとき、特徴スコアプロセッサモジュール140は、画像データ122のどの特定のピクセルが特徴であるかを決定するために、特徴テスト(たとえば、特徴検出)を最初に実行し得る。特徴テストは、モジュール130によって実施されるものと同じ特徴テストでもよく、または異なる特徴テストでもよい。代わりに、特徴スコアモジュール140は、(たとえば、特徴テスト要求136を送ることによって)特徴を識別するための特徴検出プロセッサモジュール130に依存し得る。
【００３７】
特徴ピクセルが識別された後、特徴スコアプロセッサモジュール140は、特徴ピクセルのうちの1つまたは複数の特徴スコアを計算することができる。たとえば、特徴でないピクセルは、特定のピクセルが最初の特徴テストに基づいて特徴と識別されなかったことを示し得る値(たとえば、0)が割り当てられ得る。候補ピクセルが特徴と識別される場合、各特徴テストが実行される前に、特徴を定義する基準(たとえば、閾属性値)を変更することによって、追加の特徴テストが反復的に実行され得る。追加の特徴テストは、本明細書で説明する特定の実施形態のうちの任意のものの特徴テストとすることができる。一例では、閾属性値は、反復ごとに増加または低減される。特徴テストは、候補ピクセルが特徴テストに不合格になるまで、閾値の増減とともに反復的に実行され得る。候補ピクセルの特徴スコアは、最後にパスした反復で使用される閾属性値に基づいて定義され得る。たとえば、反復ごとに閾属性値が増加されるとき、より多くの反復をパスした特徴ピクセルは、反復をあまりパスしていない特徴ピクセルよりも高い特徴スコア(「より強い」特徴を示す)を有する。特徴スコアがどのように計算されるかを示す特定の実施形態について、図6を参照しながらさらに説明する。
【００３８】
動作時、コンピューティングデバイス110は、画像データ122を受信することができる。画像データ122は、限定はしないが、カメラ、入力デバイス、コンピューティングデバイス、またはそれらの組合せを含み得る1つまたは複数のソース(図示せず)から受信され得る。画像コントローラ120は、コンピューティングデバイス110のための画像データ122を受信することを処理し得る。画像コントローラ120は、画像データ122を特徴検出プロセッサモジュール130、特徴スコアプロセッサモジュール140、または両方に提供することができる。特徴検出プロセッサモジュール130は、画像データ122における画像の1つまたは複数のピクセルが画像の特徴であるかどうかを判断するために、画像データ122を処理することができる。特定の実施形態では、特徴検出プロセッサモジュール130は、特徴スコアを決定するために、特徴スコアプロセッサモジュール140に、特徴と識別された1つまたは複数の特徴ピクセル134を提供することができる。特徴スコアは、1つまたは複数の特徴ピクセル134の各々について識別された各特徴に関連付けられ得る。特徴スコアプロセッサモジュール140は、(たとえば、ゼロの特徴スコアを特徴ピクセル134以外のピクセルに割り当てることを含めて)1つまたは複数の追加のピクセルの特徴スコアを決定するために、画像データ122の1つまたは複数の追加のピクセルを処理することができる。システム100の特定の実施形態は、特徴検出を実行する、特徴スコアを決定する、または両方のために利用され得る。
【００３９】
したがって、図1のシステム100は、特定のピクセルが特徴であるかどうかを判断するために、テーブル探索操作またはプロセッサ実行可能命令を使用して、特徴検出を実行することを可能にし得、これは、特徴検出のために実行される処理量を(たとえば、約20%だけ)低減し得る。さらに、図1のシステム100は、特徴の強度を示す特徴スコアを計算することを可能にし得、これは、画像の特徴を識別する際の精度を向上させ得る。
【００４０】
図2を参照すると、画像のピクセルが特徴であるかどうかを判断し、特徴に関連付けられたスコアを決定するためのシステムの別の特定の実施形態が示され、全体的に200と示される。
【００４１】
システム200は、バスインターフェース208を介してキャッシュメモリ212に結合され得るメモリ202(たとえば、ランダムアクセスメモリ(RAM))を含む。特定の実施形態では、システム200の全部または一部分が、プロセッサに統合され得る。あるいは、メモリ202は、プロセッサの外部にあってもよい。メモリ202は、図1の画像データ122を記憶することができる。メモリ202は、図1の特徴ルックアップテーブル152および/または図1の特徴識別命令160を記憶することもできる。システム200の全部または一部分がプロセッサに統合され得る特定の実施形態では、キャッシュメモリ212は、プロセッサ内に統合されるローカルキャッシュとして統合され得る。動作中、キャッシュメモリ212は、画像データ122および/または特徴ルックアップテーブル152の全部または一部分を記憶することができる。
【００４２】
命令キャッシュ216も、バスインターフェース208を介してメモリ202に結合されてよい。命令キャッシュ216は、バス222を介してシーケンサ218に結合され得る。シーケンサ218は、汎用割込み220を受信することができ、この割込みは、割込みレジスタ(図示せず)から取り出すことができる。特定の実施形態では、命令キャッシュ216は、複数の現在の命令レジスタ(図示せず)を介してシーケンサ220に結合することができ、シーケンサ220は、バス222に結合され、プロセッサ内に統合されたシステム200の特定のスレッド(たとえば、ハードウェアスレッド)に関連付けられ得る。特定の実施形態では、システム200は、同時および/または並列のマルチスレッド処理をサポートするプロセッサとすることができる。特定の実施形態では、バス222は128ビットバスでよく、シーケンサ218は、各々が32ビット長の命令パケットを介して、メモリ202から命令204のうちの1つまたは複数を取り出すように構成され得る。シーケンサ218は、たとえば実行ユニット210の各々など、1つまたは複数の実行ユニット210に結合され得る。実行ユニット210の各々は、バス224を介して汎用レジスタファイル226に結合され得る。汎用レジスタファイル226はまた、バス230を介してシーケンサ218、データキャッシュ212、およびメモリ202に結合可能である。
【００４３】
特定の実施形態では、実行ユニット210のうちの1つまたは複数は、特徴識別命令160の実行中に使用され得る特徴識別ロジック240を含み得る。特徴識別論理240の特定の実施形態について、図5を参照しながらさらに説明する。
【００４４】
特定の実施形態では、システム200は、1つまたは複数のピクセルの各々が特徴であるかどうかを判断するために、画像の1つまたは複数のピクセルを並行して処理することができる。たとえば、1つまたは複数の実行ユニット210の各々は、各々、たとえば図1、図3〜図5、図7、図8、および図10を参照しながら説明されるものなど、特徴検出プロセッサモジュール130の方法または機能を実行することが可能であり得る。代替または追加として、システム200は、1つまたは複数のピクセルの各々について特徴スコアを決定するために、画像の1つまたは複数のピクセルを並行して処理することができる。たとえば、1つまたは複数の実行ユニット210の各々は、各々、たとえば図1、図6、図9、および図10を参照しながら説明されるものなど、図1の特徴スコアプロセッサモジュール140の方法または機能を実行することが可能であり得る。
【００４５】
特定の実施形態では、システム200は、ピクセルが画像の特徴であるかどうかを判断するために画像のピクセルを処理するために実行されるベクトル処理操作をサポートすることができる。たとえば、システム200は、特定のピクセルを囲む複数のピクセルの各々に対して特定のピクセルを比較するために、ベクトル処理操作を実行することができる。複数のピクセルの各々に対応するデータは、ベクトルプロセッサによって実行可能なベクトル処理操作(または命令)をサポートするベクトルフォーマットで受信され得る。たとえば、データは、1つまたは複数のベクトルデータ構造で受信され得、その各々は、1つまたは複数ピクセルの属性情報を含み得る。別の例では、各ベクトルデータ構造は、画像の特定の行に対応し得、特定の行の1つまたは複数のピクセルに対応するデータを含み得る。並列処理は、複数のピクセルの各々に対応するデータがベクトルフォーマットであるとき、実行され得る。
【００４６】
特定の実施形態では、システム200は、候補ピクセルを囲む複数のピクセルの各々のために、ベクトルデータ(たとえば、2つの9ピクセルベクトル)を生成することができる、先入れ先出し(FIFO)バイトロード命令をサポートすることができる。そのような命令は、複数のピクセルの各々に関連付けられたデータを取得することに関して、特徴検出の実行の効率を向上させ得る。命令は、8バイトの入力を受け入れることができ、バイトの各々を1要素だけシフトすることができる。空けられた位置は、メモリからロードされる別のバイトで満たされ得る。命令は、フィルタにおける遅延線および/または一連のバイトの配列において使用するのに有益であり得る。
【００４７】
別の特定の実施形態では、システム200は、そのような各特徴に関連付けられた特徴スコアを決定するための特徴と識別される画像の1つまたは複数のピクセルの並行処理をサポートすることができる。たとえば、実行ユニット210の各々は、異なる特徴ピクセルの特徴スコアを並行して決定することができる。
【００４８】
図3を参照すると、画像のピクセルが特徴であるかどうかを判断する第1の例示的な例の図300が示される。たとえば、判断は、図1の特徴検出プロセッサモジュール130によって行われ得る。図300のグリッド310は、候補ピクセル(P)320(「テスト中のピクセル」とも呼ばれる)、およびピクセル320を囲む複数のピクセルP1〜P16を含む画像のピクセルを表す。例示的な一実施形態では、グリッド310は、図1の画像データ122の一部分である。この例では、グリッド310のピクセル320が特徴であるかどうかの判断はFASTタイプ機能検出に基づく。
【００４９】
特徴検出器(たとえば、図1の特徴検出プロセッサモジュール130)は、複数のピクセル(P1〜P16)の各々の属性(たとえば、強度)をピクセル320の比較値と比較することによって、画像のピクセル320が特徴であるかどうかを判断することができる。たとえば、比較値は、ピクセル320の強度および調整可能な強度閾値に基づいて定義され得る。
【００５０】
図3では、ピクセル320の強度および複数のピクセル(P1〜P16)の各々は、値0〜10の範囲内にあり得、0の値は、白いピクセル背景によって示される最も低い強度を示し、10の値は、黒い実線のピクセル背景で示される最も高い強度を示し得る。斜めのグリッドピクセル背景(たとえば、P8〜P11)は、6の値を有し得る。白い点(たとえば、ピクセル320、P7、P12、およびP13)を有する斜めのストライプのピクセル背景は、8の値を有し得る。図3では、ピクセル320は、8の値を有し得る。説明の明快のために0〜10の強度範囲が記載されているが、強度値(たとえば、0〜255)の他の範囲が使用されてもよい。
【００５１】
複数のピクセル(P1〜P16)に関連付けられた1組の比較結果330が決定され得、各比較結果は、周囲ピクセル(P1〜P16)のうちの1つに対応し、周囲ピクセルの強度値をピクセル320に関連付けられた比較値と比較する結果を示す。特定の実施形態では、ピクセル320の比較値は、ピクセル320の強度属性値(p)(たとえば、8)および閾値強度(たとえば、2)に基づいて定義され得る。1組の比較結果330は、図1の1組の比較結果138でもよい。
【００５２】
各比較結果は、論理値(たとえば、0または1)でもよい。たとえば、0の値は、対応する周囲ピクセル(P1〜P16)の強度が少なくとも閾値強度(たとえば、2)だけピクセル320の強度(たとえば、8)と異ならないことを示し得る。すなわち、0の値は、周囲ピクセルの強度が6以上および10以下であることを示すことができる。1の値は、複数のピクセル(P1〜P16)のうちの1つのピクセルの強度が6未満である、または10を超えることを示し得る。ピクセル320は、少なくとも9つのピクセル(P1〜P6およびP14〜P16)が1の比較値を有するとき、特徴と識別され得る。図3に示される例は、少なくとも9つの連続するピクセル(P1〜P6およびP14〜P16)が少なくとも2の閾値強度だけピクセル320(すなわち、8)の強度と異なる強度(すなわち、0)を有するので、ピクセル320が特徴であることを示す。
【００５３】
特定の実施形態では、ピクセル320の比較値は、ピクセル320の属性値(p)と閾属性(b)値との合計(たとえば、p+b)に基づいて最大値と定義され得る。図3では、ピクセル320の強度(p)が8であり、強度閾値(b)が2であるとき、ピクセル320の比較値は10の最大値を有し得る。比較値が最大値と定義されるとき、対応する周囲ピクセルが10よりも大きい強度を有するとき、比較結果は1の値を有し得る。式1は、この状態を示す。
[式1]
比較結果P(N)=
1、ただし(p+b)<P(N)の場合
0、ただし(p+b)>=P(N)の場合
式中、P(N)は、周囲ピクセル(N)の属性値を表す。
【００５４】
別の特定の実施形態では、ピクセル320の比較値は、ピクセル320の属性値(p)と閾属性(b)値との差(たとえば、p-b)に基づいて最小値と定義され得る。図3では、ピクセル320の強度(p)が8であり、強度閾値(b)が2であるとき、ピクセル320の比較値は6の最小値を有し得る。比較値が最小値と定義されるとき、対応する周囲ピクセルが6未満の強度を有するとき、比較結果は1の値を有し得る。式2は、この状態を示す。
[式2]
比較結果P(N)=
1、ただしP(N)<(p-b)の場合
0、ただしP(N)>=(p-b)の場合
式中、P(N)は、周囲ピクセル(N)の属性値を表す。
【００５５】
別の特定の実施形態では、比較結果は、ピクセル320の2つの比較値、最大値(p+b)によって定義される第1の比較値、および最小値(p-b)によって定義される第2の比較値に基づいて決定され得る。図3では、ピクセル320の強度に基づいて、ピクセル320は、6の最小値および10の最大値を有し得る。最大値および最小値に基づいて2つの比較値が定義されるとき、複数のピクセル(P1〜P16)のうちの1つのピクセルが6未満であるか10を超えるとき、比較結果は1の値を有し、ピクセルが6以上および10以下であるとき、0の値を有し得る。式3は、この状態を示す。
[式3]
比較結果P(N)=
1、ただし(P(N)<(p-b))||((p+b)<P(N))の場合
0、ただし(p-b)<=P(N)<=(p+b)の場合
式中、P(N)は、周囲ピクセル(N)の属性値を表す。
【００５６】
図3の例では、1組の比較結果330は、式3に基づいて生成される。1組の比較結果330に基づいて、ピクセル320が画像の特徴であるかどうかの判断が行われ得る。たとえば、FASTタイプ特徴検出が使用されるとき、1組の比較結果330は、少なくとも9つの連続する比較結果が1の値を有するとき、ピクセル320が特徴であることを示し得る。特定の実施形態では、1組の比較結果330が少なくとも9つの連続する1を有するかどうかを判断するために、テーブル探索操作(たとえば、図1のテーブル探索操作150)が実行され得る。
【００５７】
特定の実施形態では、テーブル探索操作は、特徴ルックアップテーブル340の1つまたは複数のエントリに対する1組の比較結果330の比較を実行することを含み得る。特徴ルックアップテーブル340は、図1の特徴ルックアップテーブル152の例を表す。特徴ルックアップテーブル340の各エントリは、1組の比較結果を生成するために使用されるピクセルが特徴であることを示す1組の比較結果を表す。
【００５８】
図3の例では、特徴ルックアップテーブル340のエントリ342が1組の比較結果330に一致するので、ピクセル320は、特徴であると決定され得る。
【００５９】
図4を参照すると、図400は、画像のピクセルが特徴であるかどうかを判断する第2の例示的な例を示す。図4の特徴ルックアップテーブル410は、図1の特徴ルックアップテーブル152の別の例を表す。代替実施形態では、テーブル探索操作は、図3の1組の比較結果330を図4の特徴ルックアップテーブル410内のエントリの位置を特定するためのインデックスとして使用して、図3のピクセル320が特徴であるかどうかを判断することを含み得る。特徴ルックアップテーブル410の各エントリは、潜在的な1組の比較結果に対応する16の1ビット値のパターンに基づくインデックス値を有し得る。各インデックス値に関連付けられた特徴フラグは、パターンが特徴を識別するかどうかを示す。図4の例では、1組の比較結果330が特徴ルックアップテーブル410内のエントリ420におけるインデックス値に一致するので、ピクセル320は、特徴であると決定され得る。特徴ルックアップテーブル410におけるエントリ420は、パターンが特徴を識別することを示す1の値を有する特徴フラグを有する。
【００６０】
代替として、テーブル探索操作を使用する代わりに、1組の比較結果330が少なくとも9つの連続する1を含むかどうかを判断するために、特徴識別命令(たとえば、図1の命令160)が使用され得る。図5を参照すると、図500は、図3の1組の比較結果330が少なくとも9つの連続する1を含むかどうかを判断することによって、図3のピクセル320が特徴であるかどうかを判断するための図1の特徴識別命令160の動作を示す。特定の実施形態では、図5に示される論理は、図2の特徴識別論理240の回路実装に含まれる。
【００６１】
特徴識別命令は、入力パラメータが、各々が1の値を有する連続する1ビット値のサブセットを有するかどうかを判断するために、入力パラメータを処理することができる。サブセットの長さは、構成可能であり得、FASTタイプ特徴検出を実施するとき、9に設定され得る。特徴識別命令の動作は、画像処理のコンテキストで説明されているが、そのような命令は、1組が値に一致するサブセットを有するかどうかを判断し、サブセットが閾値数の要素(たとえば、閾値サブセットサイズ)を超えるいくつかの要素を有するかどうかを判断することを伴う他のコンピューティング動作のためにも使用され得ることに留意されたい。画像処理のために使用されるとき、命令に入力される各1ビット値は、比較値に対する候補ピクセルを囲むピクセルのうちの1つの比較の結果に対応し得る。図5に示す例では、特徴識別命令は、入力パラメータとして図3の1組の比較結果330で実行される。
【００６２】
特定の実施形態では、特徴識別命令は、16の2入力AND論理ゲートを使用して実行され得る。図5では、16のAND論理ゲートの各々によって実行されるAND論理演算の結果は、AND論理ゲート内に示される。特徴識別命令の実行中、図5におけるステップ1〜8によって示されるように、16のAND論理ゲートを使用した一連の反復動作が実行され得る。図5には16x8=128のAND論理ゲートが示されているが、1組の16のAND論理ゲートを使用して、ステップ1〜8が代わりに実行され得ることに留意されたい(たとえば、各連続的なステップの入力の1つがシフターによって生成される)。ステップの数は、入力パラメータ内でどれくらいの連続する値が識別されるかに基づいて変わり得る。特徴識別命令(たとえば、図1の160)のために実行されるステップの数は、識別される連続する値の数よりも1少なくなり得る。たとえば、9つの連続する値が入力パラメータから識別されるので、図5の例は8つのステップに基づく。ステップ8が実行された後、16のAND論理ゲートのうちの少なくとも1つが、結果として得られた1の値を有するとき、候補ピクセル(たとえば、図3のピクセル320)が特徴と識別される。この決定は、結果として得られた値を16の入力OR論理関数に入れることによって取得され得る。たとえば、ステップ8の16のAND論理ゲートの各々から結果として得られた値が16の入力OR論理ゲート560に入れられ得、これは、ステップ8でのAND論理ゲート554が1の出力値を有するので、結果として得られた1の値を生成する。
【００６３】
ステップ1で、入力パラメータ(たとえば、図3の1組の比較結果330)の各ビット(B1〜B16)は、16のAND論理ゲート(たとえば、540)のうちの1つへの入力として提供される。各ビット(B1〜B16)は、周囲ピクセル(P1〜P16)に関連付けられた1組の比較結果330の特定のピクセルP1〜P16に対応する。たとえば、AND演算は、最も左のAND論理ゲート542でB16とB1との間で、および最も右のAND論理ゲート540でB1とB2との間で実行される。ステップ1が終了すると、1の値を出力する各AND論理ゲートは、2つの連続する1のサブセットが1組の比較結果330の中に存在することを示し得る。
【００６４】
ステップ2で、ステップ1において決定された結果は、ステップ1でAND論理ゲートによって生成された各結果を、ステップ1で隣接するAND論理ゲートによって生成された各隣接する結果と比較することによって、別の1組の16のAND演算を実行するために使用される。たとえば、AND論理ゲート540からの結果は、AND論理ゲート548によって、AND論理ゲート542からの結果と比較される。ステップ2が終了すると、1の値を出力する各AND論理ゲートは、3つの連続する1のサブセットが1組の比較結果330の中に存在することを示し得る。
【００６５】
図5におけるステップ3〜8は、同様の方法で実行され得る。ステップ8が終了すると、1の値を出力する各AND論理ゲートは、9つの連続する1のサブセットが1組の比較結果の中に存在することを示し得る。このように、AND論理ゲート554が1の出力値を有するので、特徴識別命令は、ピクセル320が特徴であることを決定することができる。
【００６６】
図6を参照すると、図600は、画像のピクセルについて識別される特徴に関連付けられたスコアを決定する第1の例示的な例を表す。たとえば、スコアの決定は、図1の特徴スコアプロセッサモジュール140によって行われ得る。特に、図600は、図3のピクセル320に関連付けられた特徴について特徴スコアがどのように決定され得るかを示す。
【００６７】
反復6-1で、特徴テスト(たとえば、特徴検出)は、図3のピクセル320が画像の特徴であるかどうかを判断するために実行され得る。図6に示した例では、特徴テストは、6の最小値によって定義される第1の比較値、および10の最大値によって定義される第2の比較値に基づいて、および2の最初の閾値強度に基づいて定義され得る。式3に基づいて、周囲ピクセル(P1〜P16)についての第1の組の結果610が生成され得る。第1の反復での特徴テストは、第1の組の結果610が1の値を有する1組の比較結果の少なくとも9つの連続する比較結果を含むので、図3のピクセル320が特徴であることを決定することができる。図3のピクセル320が反復6-1において特徴であると決定した後、図3のピクセル320について識別される特徴について、特徴スコアが決定され得る。特徴スコアは、閾値強度(b)に基づいて定義され得る。たとえば、最初の閾値強度が2であるので、反復6-1の特徴スコアは2に等しくなり得る。
【００６８】
特徴の強度を決定するために、1つまたは複数の追加の特徴テストがその後の反復で図3のピクセル320において実行され得る。各その後の反復は、特定の追加の特徴テストのために増減する特定の変更された閾強度値に基づき得る。図3のピクセル320が特徴として識別可能でなくなるまで、1つまたは複数の追加の特徴テストは各々実行され得る。特定の実施形態では、特徴スコアは、図3のピクセル320が特徴であることを示す最後の成功した特定の追加の特徴テストの変更された閾値に基づいて定義され得る。
【００６９】
たとえば、図6の反復6-2は、結果として2の最小値および14の最大値をもたらす、6の変更された閾値強度を使用して第2の特徴テストによって生成される第2の組の比較結果620を示す。第2の組の比較結果は少なくとも9つの連続する1を含むので、図3のピクセル320は、第2の組の比較結果620に基づいて特徴として識別可能なままである。しかしながら、6である場合、候補ピクセルが変更された閾値強度を使用して特徴テストにパスしたので、特徴スコアは6に変更され得る。さらに、反復6-2の間、候補ピクセルが特徴として識別可能なままだったので、別の反復(反復6-3)が実行され得る。
【００７０】
たとえば、図6の反復6-3は、結果として0の最小値および16の最大値をもたらす、8の閾値強度を使用して生成される第3の組の比較結果630を示す。図3のピクセル320は、もはや第3の組の比較結果630に基づいて特徴と識別されない。このように、図3のピクセル320は、6の特徴スコアを有する強度に基づいて特徴として区別される。特徴スコアは、少なくとも9つの連続する周囲ピクセルが6の強度だけ図3のピクセル320と異なることを示す。
【００７１】
最大閾値強度を反映する特徴スコアを決定するために、図3のピクセル320が特徴と識別されるまで、8の変更された閾値強度を低減することによって、1つまたは複数のその後の反復が実行され得る。図6の例では、図3のピクセル320が6の変更された閾値強度に基づいて特徴と識別され、8の変更された閾値強度に基づいて特徴と識別することができないので、追加の特徴テストは7の変更された閾値強度を使用して実行され得る。図3のピクセル320は、7の変更された閾値強度を使用して追加の特徴テストに基づいて、特徴と識別され得る。追加の特徴テストは、第2の組の比較結果620と類似の1組の比較結果を生成する。7である場合、候補ピクセルが変更された閾値強度を使用して特徴テストにパスしたので、特徴スコアは7に変更され得る。7の特徴スコアは、図3のピクセル320を特徴と識別する最大閾値強度を表す。
【００７２】
図7を参照すると、画像のピクセルが特徴であるかどうかを判断するための方法の第1の実施形態が示され、全体的に700と示される。方法700は、図1の特徴検出プロセッサモジュール130によって実行され得る。方法700は、システム200の全部または一部分によって実行され得る。
【００７３】
702で、方法700は、画像の特定のピクセルを囲む複数のピクセルに対応するデータを受信するステップを含む。たとえば、図1の特徴検出プロセッサモジュール130は、画像の特定のピクセルを囲む複数のピクセルに対応するデータを受信することができる。複数のピクセルに対応するデータは、図1の画像データ122の一部分として、図1の特徴検出プロセッサモジュール130によって受信され得る。データは、複数のピクセルの各々に対応する属性情報(たとえば、強度、発光、色相、色度、輝度、彩度など)を含み得る。
【００７４】
704で、方法700は、複数のピクセルに関連付けられた1組の比較結果を決定するステップを含む。たとえば、図1の特徴検出プロセッサモジュール130は、図1の1組の比較結果138を決定することができる。1組の比較結果の各比較結果は、複数のピクセルのうちの1つに対応し、複数のピクセルのうちの1つに対応する属性値を比較値(たとえば、強度、発光、色相、色度、輝度、彩度など)と比較する結果を示し得る。たとえば、1組の比較結果は、式1、式2、または式3に基づいて決定され得る。
【００７５】
706で、方法700は、1組の比較結果をインデックスとして使用してテーブル探索操作を実行することによって、特定のピクセルが特徴であることを1組の比較結果が示すかどうかを判断するステップを含む。たとえば、図1の特徴検出プロセッサ130は、図1のテーブル探索操作150を実行することによって特定のピクセルが特徴であることを、図1の1組の比較結果138が示すかどうかを判断することができる。例示的な一実施形態では、図1のテーブル探索操作150は、図3および図4を参照しながら説明するように実行され得る。708で方法700が終わる。
【００７６】
図8を参照すると、画像のピクセルが特徴であるかどうかを判断するための方法の第2の実施形態が示され、全体的に800と示される。方法800は、図1の特徴検出プロセッサモジュール130によって実行され得る。方法800は、システム200の全部または一部分によって実行され得る。
【００７７】
802で、方法800は、画像の特定のピクセルを囲む複数のピクセルに対応するデータを受信するステップを含む。たとえば、図1の特徴検出プロセッサモジュール130は、画像の特定のピクセルを囲む複数のピクセルに対応するデータを受信することができる。複数のピクセルに対応するデータは、図1の画像データ122の一部分として、図1の特徴検出プロセッサモジュール130によって受信され得る。データは、複数のピクセルの各々に対応する属性情報(たとえば、強度、発光、色相、色度、輝度、彩度など)を含み得る。
【００７８】
804で、方法800は、複数のピクセルに関連付けられた1組の比較結果を決定するステップを含む。たとえば、図1の特徴検出プロセッサモジュール130は、図1を参照しながら説明したように、1組の比較結果138を決定することができる。
【００７９】
806で、方法800は、プロセッサによって実行されると、プロセッサに、特定のピクセルが特徴であることを示す1組の比較結果のサブセットを識別させるプロセッサ実行可能命令を実行することによって、画像の特定のピクセルが特徴であるかどうかを判断するステップを含む。たとえば、図1の特徴検出プロセッサモジュール130は、図1の特徴識別命令160を実行することによって、画像の特定のピクセルが画像の特徴であるかどうかを判断することができる。例示的な一実施形態では、図1の特徴識別命令160は、図5を参照しながら説明したものなど、1組の16のAND論理ゲートを使用して実行され得る。808で方法800が終わる。
【００８０】
図9を参照すると、画像のピクセルについて識別された特徴に関連付けられたスコアを決定するための方法の特定の実施形態が示され、全体的に900と示される。方法900は、図1の特徴スコアプロセッサモジュール140によって実行され得る。方法900は、システム200の全部または一部分によって実行され得る。
【００８１】
902で、方法900は、特定のピクセルの特定の属性値、閾値、および特定のピクセルを囲む複数のピクセルの各々の属性値に依存する第1の動作に基づいて、画像の特定のピクセルが第1の特徴テストを満たすかどうかを判断するステップを含む。たとえば、第1の特徴テストは、最初の閾値に基づいて特定のピクセルが特徴であるかどうかを判断することができる、図7の方法700、図8の方法800、またはそれらの組合せに従って実行され得る。特定の実施形態では、図1の特徴スコアプロセッサモジュール140は、特定のピクセルが特徴であるかどうかを決定するために、図1の特徴テスト要求136を図1の特徴検出プロセッサモジュール130に送ることができる。第1の特徴テストは、FASTタイプ特徴検出を実行することを含み得る。たとえば、図1の特徴スコアプロセッサモジュール140は、第1の組の比較結果610を生成することによって図6を参照しながら説明したように特徴テストを実行することができる。第1の組の比較結果610が少なくとも9つの連続する1を含むかどうかを判断するために、第1の組の結果610において、テーブル探索操作(たとえば、図1のテーブル探索操作150)が実行され得る。代替として、第1の組の比較結果が少なくとも9つの連続する1を含むかどうかを判断するために、図1の特徴識別命令160が実行され得る。
【００８２】
904で、方法は、特定のピクセルが第1の特徴テストを満たすことを決定することに応答して、閾値を変更するステップを含む。たとえば、図1の特徴スコアプロセッサモジュール140は、第1の特徴テストに基づいて特定のピクセルが特徴であることを決定することに応答して、第1の特徴テストの間に使用された閾値を変更することができる。閾値は、図6の反復6-2に関して説明するように変更され得る。
【００８３】
906で、方法は、特定のピクセルの特定の属性値、変更された閾値、および特定のピクセルを囲む複数のピクセルの各々の属性値に依存する追加(たとえば、第2、第3、および第4)の動作に基づいて、画像の特定のピクセルが追加(たとえば、第2、第3、および第4)の特徴テストを満たすかどうかを判断するステップを含む。たとえば、追加の特徴テストは、図6の反復6-2を参照して説明したように実行され得る。第2の組の比較結果620は、特定のピクセルが特徴として識別可能なままかどうかを判断するために、(たとえば、テーブルルックアップを実行することによって、または特徴識別命令を実行することによって)処理され得る。特定の実施形態では、変更された閾値は、特定のピクセルが特徴として識別可能であり得るように、推定された最大閾値に基づいて定義され得る。
【００８４】
908で、方法900は、特定のピクセルに関連付けられたスコアを決定するステップを含み、特定のピクセルが追加の動作(たとえば、第2の動作)に基づいて追加の特徴テスト(第2の特徴テスト)を満たすとき、スコアは変更された閾値に基づく。たとえば、特定のピクセルが追加の特徴テストにパスするとき、図1の特徴スコアプロセッサモジュール140は、変更された閾値に基づいて特定のピクセルに関連付けられた特徴スコアを決定することができる。例示のために、候補ピクセルが図6の反復6-2の第2の特徴テストにパスするので、特徴スコアは、2の最初の閾値の代わりに6の変更された閾値に等しくてもよい。910で方法900が終わる。
【００８５】
特定の実施形態では、方法900は、以前の変更された閾値のさらなる変更に基づいて追加の特徴テストを実行するために、906に戻ることができる。たとえば、変更された閾値が推定された最大閾値に基づくとき、方法は、推定された最大閾値未満であるさらに変更された閾値を使用して追加の特徴テストを実行するために、906に戻ることができる。変更された閾値は、バイナリサーチアルゴリズムに基づいて新しい変更された閾値を選択することによって、さらに変更され得る。新しい変更された閾値は、以前の変更された閾値と最初の閾値との間にある値と識別され得る。908で、方法は、特定のピクセルがさらに変更された閾値に基づいて追加の特徴テストを満たすとき、特定のピクセルに関連付けられたスコアを決定する。スコアは、特定のピクセルが特徴と識別されるとき、さらに変更された閾値に基づいて決定され得る。スコアは、変更された閾値のために1つまたは複数の追加のテストが実行された後の最大閾値を表し得る。
【００８６】
別の特定の実施形態では、特定のピクセルが追加の特徴テストを満たすとき、方法は、より正確なスコアを決定するために、追加の特徴テストを実行するために906に戻ることができる。たとえば、方法は、特定のピクセルが特徴として識別可能なままかどうかを判断するために、増加するさらに変更された閾値に基づいて、追加の特徴テストを実行するために、906に戻ることができる。908で、特定のピクセルがさらに変更された閾値に基づいて追加の特徴テストを満たす場合、特定のピクセルのスコアは、追加の特徴テストに対応するさらに変更された閾値に基づく。
【００８７】
たとえば、追加の特徴テストは、8のさらに変更された閾値を使用する図6に示される例の反復6-3で実行される特徴テストでもよい。候補ピクセル(すなわち、図3のピクセル320)が(8の閾値に従って)特徴でないことを反復6-3で実行される追加の特徴テストが示すので、特徴スコアは、8のさらに変更された閾値に等しくなるように更新される代わりに、6に等しいままである。図3のピクセル320が8のさらに変更された閾値に基づいて特徴ではないと識別されるので、図3のピクセル320が6の変更された閾値強度に基づいて特徴と識別され、8の変更された閾値強度に基づいて特徴と識別することができないので、追加の特徴テストは7の変更された閾値強度を使用して実行され得る。図3のピクセル320は、7の変更された閾値強度を使用して追加の特徴テストに基づいて、特徴と識別され得る。7である場合、候補ピクセルが変更された閾値強度を使用して特徴テストにパスしたので、特徴スコアは7に変更され得る。7の特徴スコアは、図3のピクセル320を特徴と識別する最大閾値強度を表す。
【００８８】
図10は、画像のピクセルが特徴であるかどうかを判断し、特徴に関連付けられたスコアを決定するように動作可能な構成要素を含むワイヤレス電子デバイスのブロック図であり、全体的に1000と示される。ワイヤレス電子デバイス1000は、メモリ1032に結合されたプロセッサ1010を含む。例示的な例では、ワイヤレス電子デバイス1000は、図1のシステム100、図2のシステム200、またはその構成要素を含み得る。ワイヤレス電子デバイス1000は、図1〜図8を参照しながら説明した方法または機能に従って動作し得る。
【００８９】
プロセッサ1010は、図1の画像コントローラ120、図1の特徴検出プロセッサモジュール130、図1の特徴スコアプロセッサモジュール140、またはそれらの組合せを含む、または実装することができる。特定の実施形態では、プロセッサ1010は、図2の特徴識別論理240を含んでもよい。たとえば、そのようなモジュールは、プロセッサ1010に統合され得、図1〜図9を参照しながら説明した機能の少なくとも一部分を実行するために、専用の回路または他の論理を含むことができる。
【００９０】
メモリ1032は、命令1060を記憶する非一時的な有形のコンピュータ可読記憶デバイスおよび/またはプロセッサ可読記憶デバイスであり得る。命令1060は、図1の画像コントローラ120、図1の特徴検出プロセッサモジュール130、図1の特徴スコアプロセッサモジュール140、またはそれらの組合せを含む、または実装するために、プロセッサ1010によって実行可能であり得る。たとえば、命令1060は、図1の特徴検出プロセッサモジュール130、図1の特徴スコアプロセッサモジュール140、またはそれらの組合せに関して説明した1つまたは複数の機能または方法を実行するために、プロセッサ1010によって実行可能であり得る命令を含み得る。命令1060は、プロセッサ1010に、図1〜図6を参照しながら説明した1つまたは複数の機能もしくは方法、図7の方法700、図8の方法800、図9の方法900、またはそれらの組合せを実行させるためにプロセッサ1010によって実行可能な命令を含み得る。例示のために、命令1060は、画像のピクセルが特徴であるかどうか決定するためのコードを含み得る。たとえば、命令1060は、図1の特徴識別命令160を含み得る。
【００９１】
メモリ1032は、ワイヤレス電子デバイス1000で本明細書で説明した1つまたは複数の方法を実行するために、プロセッサ1010によって実行可能である命令を含むことができる。たとえば、そのようなワイヤレスインターフェースは、画像の1つまたは複数のピクセルを含む画像データを送るまたは受信するために使用され得る。たとえば、画像データは、図1の画像データ122でよい。メモリ1032は、図1の特徴ルックアップテーブル152を含み得る。他の実装形態では、プロセッサ1010がメモリ1032から命令を実行することによって実行されるものとして本明細書で説明した1つまたは複数の機能は、代わりに、専用ハードウェア(たとえば、プログラマブル論理アレイ、FPGAデバイス、ASIC、またはたとえばCPU、DSP、マイクロプロセッサ、ARMプロセッサ、コントローラ、別のハードウェアデバイス、もしくはファームウェアデバイスのような、識別された機能を実行するようにプログラムされた処理ユニット、またはそれらの任意の組合せ)によって実行され得る。
【００９２】
図10はまた、プロセッサ1010およびディスプレイ1028に結合されたディスプレイコントローラ1026を示す。コーダ/デコーダ(コーデック)1034も、プロセッサ1010に結合することができる。スピーカ1036およびマイクロフォン1038は、コーデック1034に結合することができる。
【００９３】
図10はまた、ワイヤレスコントローラ1040がプロセッサ1010に結合することができ、ワイヤレスコントローラ1040が送受信機1050を介してアンテナ1042と通信していることを示す。ワイヤレスコントローラ1040、送受信機1050、およびアンテナ1042は、こうして、モバイル通信デバイス1000によりワイヤレス通信を可能にするワイヤレスインターフェースを表すことができる。たとえば、そのようなワイヤレスインターフェースは、画像の1つまたは複数のピクセルを含む画像データを送るまたは受信するために使用され得る。たとえば、画像データは、図1の画像データ122でよい。ワイヤレス電子デバイス1000は多数のワイヤレスインターフェースを含んでよく、異なるワイヤレスネットワークは異なるネットワーキング技術またはネットワーキング技術の組合せをサポートするように構成される。
【００９４】
図10は、カメラ1070が、カメラ1070からプロセッサ1010に画像データを提供することができるカメラコントローラ1024に結合され得ることを示す。プロセッサ1010は、画像データによって表される画像の1つまたは複数のピクセルが画像の特徴であるかどうかを判断することができる。プロセッサ1010は、画像の特徴であるピクセルに関連付けられた特徴スコアを決定するように構成され得る。特定の実施形態では、カメラコントローラ1024は、図1の画像コントローラ120でよい。
【００９５】
特定の実施形態では、プロセッサ1010、メモリ1032、ディスプレイコントローラ1026、カメラコントローラ1024、コーデック1034、ワイヤレスコントローラ1040、および送受信機1050は、システムインパッケージデバイスまたはシステムオンチップデバイス1022に含まれる。特定の実施形態では、入力デバイス1030および電源1044が、システムオンチップデバイス1022に結合されている。さらに、特定の実施形態では、図10に示すように、入力デバイス1030、スピーカ1036、マイクロフォン1038、アンテナ1042、および電源1044は、システムオンチップデバイス1022の外部にある。しかしながら、入力デバイス1030、スピーカ1036、マイクロフォン1038、アンテナ1042、および電源1044の各々は、インターフェースまたはコントローラのような、システムオンチップデバイス1022の構成要素に結合され得る。
【００９６】
図10はワイヤレス電子デバイスを表すが、プロセッサ1010およびメモリ1032は、マルチメディアプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、個人情報端末(PDA)、モバイルパーソナルコンピュータ、スマートフォン、固定位置データユニット、コンピューティングデバイス(たとえば、図1のコンピューティングデバイス110、タブレットコンピューティングデバイス、ラップトップコンピューティングデバイス、デスクトップコンピューティングデバイスなど)、メディアデバイス、または画像データを処理するように構成される別のデバイスなど、他のデバイスに統合され得ることに留意されたい。
【００９７】
記載されているシステムおよび方法と連動して、画像の特定のピクセルが特徴であるかどうかを判断するための装置が開示される。装置は、特定のピクセルを囲む複数のピクセルに対応するデータを受信するための手段を含み、複数のピクセルの各々は、画像からのものである。たとえば、受信するための手段は、プロセッサ1010、図1の特徴検出プロセッサモジュール130、図1の特徴スコアプロセッサモジュール140、特定のピクセルを囲む複数のピクセルに対応するデータを受信するように構成された別のデバイス、またはそれらの任意の組合せを含み得る。装置は、複数のピクセルに関連付けられた1組の比較結果を決定するための手段を含む。1組の比較結果の各比較結果は、複数のピクセルのうちの1つに対応し、複数のピクセルのうちの1つに対応する属性値を比較値と比較する結果を示し得る。比較値は、特定のピクセルの特定の属性値および閾値に基づいて定義され得る。1組の比較結果を決定するための手段は、プロセッサ1010、図1の特徴検出プロセッサモジュール130、図1の特徴スコアプロセッサモジュール140、複数のピクセルに関連付けられた1組の比較結果を決定するように構成された別のデバイス、またはそれらの任意の組合せを含み得る。装置は、1組の比較結果をインデックスとして使用してテーブル探索操作を実行することによって、特定のピクセルが特徴であることを1組の比較結果が示すかどうかを判断するための手段を含む。判断するための手段は、プロセッサ1010、図1の特徴検出プロセッサモジュール130、図1の特徴スコアプロセッサモジュール140、テーブル探索操作を実行することによって、特定のピクセルが特徴であることを、1組の比較結果が示すかどうかを判断するように構成された別のデバイス、またはそれらの任意の組合せを含み得る。
【００９８】
記載されているシステムおよび方法と連動して、特定のピクセルが画像の特徴であるかどうかを判断するための装置が開示される。装置は、特定のピクセルを囲む複数のピクセルに対応するデータを受信するための手段を含み、複数のピクセルの各々は、画像からのものである。データを受信するための手段は、プロセッサ1010、図1の特徴検出プロセッサモジュール130、図1の特徴スコアプロセッサモジュール140、特定のピクセルを囲む複数のピクセルに対応するデータを受信するように構成された別のデバイス、またはそれらの任意の組合せを含み得る。装置は、複数のピクセルに関連付けられた1組の比較結果を決定するための手段を含む。1組の比較結果の各比較結果は、複数のピクセルのうちの1つに対応し、複数のピクセルのうちの1つに対応する属性値を比較値と比較する結果を示し得る。比較値は、特定のピクセルの特定の属性値および閾値に基づいて定義され得る。1組の比較結果を決定するための手段は、プロセッサ1010、図1の特徴検出プロセッサモジュール130、図1の特徴スコアプロセッサモジュール140、複数のピクセルに関連付けられた1組の比較結果を決定するように構成された別のデバイスを含み得る。装置は、プロセッサによって実行されると、プロセッサに、特定のピクセルが特徴であることを示す1組の比較結果のサブセットを識別させるプロセッサ実行可能命令を実行することによって、画像の特定のピクセルが特徴であるかどうかを判断するための手段を含む。識別されたサブセットは、特定のピクセルを囲む連続的な順序で配置される複数のピクセルのうちのいくつかのピクセルに対応し得る。判断するための手段は、プロセッサ1010、図1の特徴検出プロセッサモジュール130、図1の特徴スコアプロセッサモジュール140、図5を参照しながら説明したものなど1組の論理ゲート、プロセッサによって実行されると、プロセッサに、特定のピクセルが特徴であることを示す1組の比較結果のサブセットを識別させるプロセッサ実行可能命令を実行することによって、特定のピクセルが画像の特徴であるかどうかを判断するように構成された別のデバイス、またはそれらの任意の組合せを含み得る。装置は、画像の画像データを捕捉するための手段を含むことができ、複数のピクセルに対応するデータは、画像データに含まれる。捕捉するための手段は、図1の画像コントローラ120、カメラコントローラ824、画像データを捕捉するように構成された別のデバイス、またはそれらの任意の組合せを含むことができる。
【００９９】
記載されているシステムおよび方法と連動して、装置が開示される。装置は、特定のピクセルの特定の属性値、閾値、および特定のピクセルを囲む複数のピクセルの各々の属性値に依存する第1の動作に基づいて、画像の特定のピクセルが第1の特徴テストを満たすかどうかを判断するための手段を含む。判断するための手段は、プロセッサ1010、図1の特徴検出プロセッサモジュール130、図1の特徴スコアプロセッサモジュール140、特定のピクセルの特定の属性値、閾値、および特定のピクセルを囲む複数のピクセルの各々の属性値に依存する第1の動作に基づいて、画像の特定のピクセルが第1の特徴テストを満たすかどうかを判断するように構成された別のデバイス、またはそれらの組合せを含むことができる。装置は、特定のピクセルが第1の特徴テストを満たすことを決定することに応答して、閾値を変更するための手段を含む。閾値を変更するための手段は、プロセッサ1010、図1の特徴検出プロセッサモジュール130、図1の特徴スコアプロセッサモジュール140、特定のピクセルが第1の特徴テストを満たすことを決定することに応答して、閾値を変更するように構成された別のデバイス、またはそれらの任意の組合せを含み得る。装置は、特定のピクセルの特定の属性値、変更された閾値、および特定のピクセルを囲む複数のピクセルの各々の属性値に依存する第2の動作に基づいて、画像の特定のピクセルが第2の特徴テストを満たすかどうかを判断するための手段を含む。判断するための手段は、プロセッサ1010、図1の特徴検出プロセッサモジュール130、図1の特徴スコアプロセッサモジュール140、特定のピクセルの特定の属性値、変更された閾値、および特定のピクセルを囲む複数のピクセルの各々の属性値に依存する第2の動作に基づいて、画像の特定のピクセルが第2の特徴テストを満たすかどうかを判断するように構成された別のデバイス、またはそれらの任意の組合せを含むことができる。装置は、特定のピクセルに関連付けられたスコアを決定するための手段を含み、特定のピクセルが第2の動作に基づいて第2の特徴テストを満たすとき、スコアは変更された閾値に基づく。スコアを決定するための手段は、プロセッサ1010、図1の特徴検出プロセッサモジュール130、図1の特徴スコアプロセッサモジュール140、特定のピクセルが
第2の動作に基づいて第2の特徴テストを満たすとき、スコアが変更された閾値に基づく場合、特定のピクセルに関連付けられたスコアを決定するように構成された別の手段、またはそれらの任意の組合せを含み得る。
【０１００】
さらに、本明細書で開示された実施形態に関して説明された様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムのステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを、当業者は諒解されよう。上記に、様々な例示的な構成要素、ブロック、構成、モジュール、回路、およびステップについて、それらの機能に関して概略的に説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱をもたらすものと解釈すべきではない。
【０１０１】
本明細書で開示された実施形態に関して記載された方法またはアルゴリズムのステップは、直接ハードウェアで具現化されるか、プロセッサによって実行されるソフトウェアモジュールで具現化されるか、またはその2つの組合せで具現化され得る。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ(CD-ROM)、または当分野で知られている任意の他の形態の非一時的記憶媒体の中に常駐することができる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替形態において、記憶媒体はプロセッサと一体であってもよい。プロセッサおよび記憶媒体はASIC内に常駐することができる。ASICは、コンピューティングデバイスまたはユーザ端末(たとえば、モバイル電話もしくはPDA)に存在する場合がある。代替として、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末内の個別構成要素として存在する場合がある。
【０１０２】
開示される実施形態の上記の説明は、当業者が、開示される実施形態を作製し、または使用できるようにするために提供される。これらの実施形態に対する様々な修正が、当業者には容易に明らかとなり、本明細書で定義される原理は、本開示の範囲から逸脱することなく、他の実施形態に適用され得る。したがって、本開示は、本明細書で開示した実施形態に限定されることは意図されず、以下の特許請求の範囲で定義されるような原理および新規の特徴と矛盾しない、可能な最大の範囲を認められるべきである。
【符号の説明】
【０１０３】
100  システム
110  コンピューティングデバイス
120  画像コントローラ
122  画像データ
130  特徴検出プロセッサモジュール
134  特徴ピクセル
136  特徴テスト要求
138  1組の比較結果
140  特徴スコアプロセッサモジュール
150  テーブル探索操作
152  特徴ルックアップテーブル
160  特徴識別命令
200  システム
202  メモリ
208  バスインターフェース
210  実行ユニット
212  キャッシュメモリ
216  命令キャッシュ
218  シーケンサ
220  汎用割込み
226  汎用レジスタファイル
230  バス
240  特徴識別論理
310  グリッド
320  候補ピクセル(P)
330  1組の比較結果
340  特徴ルックアップテーブル
410  特徴ルックアップテーブル
420  エントリ
540  AND論理ゲート
542  AND論理ゲート
548  AND論理ゲート
554  AND論理ゲート
560  OR論理ゲート
610  第1の組の結果
620  第2の組の比較結果
630  第3の組の比較結果
700  方法
800  方法
900  方法
1000  ワイヤレス電子デバイス
1010  プロセッサ
1022  システムオンチップデバイス
1024  カメラコントローラ
1026  ディスプレイコントローラ
1028  ディスプレイ
1030  入力デバイス
1032  メモリ
1034  コーダ/デコーダ(コーデック)
1036  スピーカ
1038  マイクロフォン
1040  ワイヤレスコントローラ
1042  アンテナ
1044  電源
1050  送受信機
1060  命令
1070  カメラ
【図１】
2015521335.tif 000003
【図２】
2015521335.tif 000004
【図３】
2015521335.tif 000005
【図４】
2015521335.tif 000006
【図５】
2015521335.tif 000007
【図６】
2015521335.tif 000008
【図７】
2015521335.tif 000009
【図８】
2015521335.tif 000010
【図９】
2015521335.tif 000011
【図１０】
2015521335.tif 000012
【手続補正書】
【提出日】平成26年3月31日(2014.3.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像を処理する方法(800)であって、
特定のピクセル(320)を囲む複数のピクセルに対応するデータを受信するステップ(702、802)であり、前記複数のピクセルの各々が前記画像からのものである、ステップと、
前記複数のピクセルに関連付けられた1組の比較結果(138、330)を決定するステップ(704、804)であり、前記1組の比較結果(138、330)の各比較結果が、前記複数のピクセルのうちの1つに対応し、前記複数のピクセルのうちの前記1つに対応する属性値を比較値と比較する結果を示し、前記比較値が、前記特定のピクセル(320)の特定の属性値、および閾値に基づく、ステップと、
プロセッサ(130、1010)によって実行されると、前記プロセッサ(130、1010)に、前記特定のピクセル(320)が特徴であることを示す前記1組の比較結果(138、330)のサブセットを識別させる単一のプロセッサ実行可能命令(160)を実行することによって、前記画像の前記特定のピクセル(320)が前記特徴であるかどうかを判断するステップ(806)であり、前記識別されたサブセットが、前記特定のピクセル(320)を囲む連続的な順序で配置される前記複数のピクセルのうちのいくつかのピクセルに対応する、ステップと
を含む方法。
【請求項２】
前記単一のプロセッサ実行可能命令が単一のマイクロアーキテクチャ命令である、請求項1に記載の方法。
【請求項３】
前記比較値が前記特定の属性値と前記閾値との差である、または前記特定の属性値と前記閾値との合計である、請求項1に記載の方法。
【請求項４】
前記プロセッサ(130、1010)によって識別される前記1組の比較結果(138、330)の前記サブセットの各比較結果が、前記属性値が前記特定の属性値と前記閾値との合計よりも大きい、または、前記属性値が前記特定の属性値と前記閾値との差よりも小さいことを示す、請求項1に記載の方法。
【請求項５】
前記複数のピクセルが16のピクセルを含み、前記1組の比較結果(138、330)の前記識別されたサブセットが前記複数のピクセルのうちの9つのピクセルに関連付けられている、請求項1に記載の方法。
【請求項６】
前記特徴が角である、請求項1に記載の方法。
【請求項７】
前記特定の属性値が強度値であり、前記閾値が閾強度値である、請求項1に記載の方法。
【請求項８】
前記特定のピクセル(320)が前記特徴であるかどうかを判断するステップが、携帯電話(1000)、コンピューティングデバイス(110)、ポータブル電子デバイス、タブレットコンピューティングデバイス、電子リーダーデバイス、ゲームコンソール、カメラ、その周辺機器、またはそれらの任意の組合せで実行される、請求項1に記載の方法。
【請求項９】
前記1組の比較結果(138、330)が、前記比較値に対する前記複数のピクセルの各々の属性値の比較を実行するベクトル比較操作によって決定される、請求項1に記載の方法。
【請求項１０】
前記1組の比較結果(138、330)をインデックスとして使用して特徴ルックアップテーブルにおいてテーブル探索操作(150)を実行するステップが、前記特定のピクセル(320)が前記特徴であるかどうかを示し、前記特徴ルックアップテーブルが、前記インデックスのインデックス値を形成する1ビット値のいくつかの可能な組合せの数に基づくいくつかのエントリの数を有する、請求項1に記載の方法。
【請求項１１】
前記特定のピクセル(320)が前記特徴であると決定することに応答して、
前記閾値を変更するステップ(904)と、
前記特定のピクセル(320)の前記特定の属性値、前記変更された閾値、および前記特定のピクセル(320)を囲む前記複数のピクセルの各々の前記属性値に依存する動作に基づいて、前記画像の前記特定のピクセル(320)が特徴テストを満たすかどうかを判断するステップ(906)と、
前記特定のピクセル(320)に関連付けられたスコアを決定するステップ(908)であり、前記特定のピクセル(320)が前記特徴テストを満たすとき、前記スコアが前記変更された閾値に基づく、ステップと
をさらに含む請求項1に記載の方法。
【請求項１２】
前記特定のピクセル(320)が前記特徴テストを満たさないと決定することに応答して、
前記変更された閾値を減分するステップと、
前記減分された変更された閾値に基づいて、第2の特徴テストを実行するステップと、
前記特定のピクセル(320)が前記第2の特徴テストを満たすと決定することに応答して、前記減分された変更された閾値に基づいて前記スコアの値を設定するステップと
をさらに含む請求項11に記載の方法。
【請求項１３】
画像の特定のピクセル(320)が特徴であるかどうかを判断するための装置であって、
前記特定のピクセル(320)を囲む複数のピクセルに対応するデータを受信するための手段であり、前記複数のピクセルの各々が前記画像からのものである、手段と、
前記複数のピクセルに関連付けられた1組の比較結果(138、330)を決定するための手段であり、前記1組の比較結果(138、330)の各比較結果が、前記複数のピクセルのうちの1つに対応し、前記複数のピクセルのうちの前記1つに対応する属性値を比較値と比較する結果を示し、前記比較値が、前記特定のピクセル(320)の特定の属性値、および閾値に基づく、手段と、
プロセッサ(130、1010)によって実行されると、前記プロセッサ(130、1010)に、前記特定のピクセル(320)が特徴であることを示す前記1組の比較結果(138、330)のサブセットを識別させる単一のプロセッサ実行可能命令(160)を実行することによって、前記画像の前記特定のピクセル(320)が前記特徴であるかどうかを判断するための手段であり、前記識別されたサブセットが、前記特定のピクセル(320)を囲む連続的な順序で配置される前記複数のピクセルのうちのいくつかのピクセルに対応する、手段と
を備える装置。
【請求項１４】
前記特定のピクセル(320)を囲む複数のピクセルに対応するデータを受信するための前記手段が、特徴検出プロセッサモジュール(130)であり、前記複数のピクセルに関連付けられた前記1組の比較結果(138、330)を決定するための前記手段が、特徴検出プロセッサモジュール(130)であり、前記画像の前記特定のピクセル(320)が前記特徴であるかどうかを判断するための前記手段が、前記特徴検出プロセッサモジュール(130)である、請求項13に記載の装置。
【請求項１５】
前記特定のピクセル(320)を囲む複数のピクセルに対応するデータを受信するための前記手段が、プロセッサ(130、1010)によって実行されると、前記プロセッサ(130、1010)に、前記特定のピクセル(320)を囲む複数のピクセルに対応するデータを受信させるプロセッサ実行可能命令(1060)を含む第1の非一時的コンピュータ可読媒体を含み、
前記複数のピクセルに関連付けられた前記1組の比較結果(138、330)を決定するための前記手段が、前記プロセッサ(130、1010)によって実行されると、前記プロセッサ(130、1010)に、前記複数のピクセルに関連付けられた1組の比較結果(138、330)を決定させるプロセッサ実行可能命令(1060)を含む第2の非一時的コンピュータ可読媒体を含み、
前記画像の前記特定のピクセル(320)が前記特徴であるかどうかを判断するための前記手段が、前記プロセッサ(130、1010)によって実行されると、前記プロセッサ(130、1010)に、前記画像の前記特定のピクセル(320)が前記特徴であるかどうかを判断させるプロセッサ実行可能命令(1060)を含む第3の非一時的コンピュータ可読媒体を含む
請求項13に記載の装置。
【国際調査報告】
2015521335.tif 000013