(57)【要約】実施態様における単一チップビジョンセンサは1個のピクセルアレーと1以上の回路とを含む。1以上の回路は、1以上の特徴のモデルを利用して1以上の特徴に対するイメージをサーチするように構成されている。単一チップビジョンセンサにおける実施態様での方法は、少なくとも一部は感知された光に基づいてイメージを取得すること、および1以上の特徴のモデルを利用して1以上の特徴に対するイメージをサーチすることを含む。実施態様におけるシステムには、単一チップビジョンセンサとデバイスが含まれる。デバイスは、単一チップビジョンセンサから1以上の信号を受け取り、少なくとも一部は1以上の信号に基づいて動作を制御するように構成されてなる。
2011508293.tif 000002
【特許請求の範囲】
【請求項１】
ピクセルアレーと、1以上の特徴のモデルを利用して1以上の特徴に対するイメージをサーチするように構成された1以上の回路とを含む単一チップビジョンセンサ。
【請求項２】
前記1以上の回路は、前記イメージを生成するためにピクセルアレーから供給された1以上の信号を処理するように構成されている、請求項1記載の単一チップビジョンセンサ。
【請求項３】
前記モデルは、各々モデル基準点に関する対応する座標を含む複数のモデル指示を含む、請求項1記載の単一チップビジョンセンサ。
【請求項４】
前記1以上の回路は、モデルとイメージとの間の少なくとも部分的な一致をもたらす、イメージと相対的なモデルの1以上の姿勢を記録するように構成されている、請求項1記載の単一チップビジョンセンサ。
【請求項５】
前記1以上の回路は、モデルの1以上の座標を1以上のアフィン変換値に従って変換するように構成されている、請求項1記載の単一チップビジョンセンサ。
【請求項６】
前記1以上の回路は、モデルの1以上の座標を変換した後で、イメージに対するモデルの複数のポジショニングの各々について同時にモデルをイメージと比較するように構成されている、請求項1記載の単一チップビジョンセンサ。
【請求項７】
前記複数のポジショニングは、イメージの行内の複数の位置におけるモデルの基準点のポジショニングを含む、請求項6記載の単一チップビジョンセンサ。
【請求項８】
前記1以上の回路は、モデルの座標を少なくとも一部は1以上の変換値に基づいて変換済み座標に変換するように構成されたイメージアドレスプロセッサを含む、請求項1記載の単一チップビジョンセンサ。
【請求項９】
前記1以上の回路はさらに、あるイメージのイメージデータを記録して、少なくとも1個の前記変換済み座標を利用して複数のイメージメモリデバイスがアクセスされる場合にデータを互いに同時に出力するための複数のイメージメモリデバイスを含む、請求項8記載の単一チップビジョンセンサ。
【請求項１０】
前記1以上の回路はさらに、イメージのデータを受け取り、少なくとも1個の前記変換済み座標に基づく量でデータをシフトさせるように構成されたイメージデータセレクタを含む、請求項8記載の単一チップビジョンセンサ。
【請求項１１】
前記1以上の回路は、イメージのデータに基づいて取得された1以上の対応する値をモデルの1以上の値と互いに同時に比較するための複数のコンパレータを含む、請求項１記載の単一チップビジョンセンサ。
【請求項１２】
前記1以上の回路はさらに複数のアキュムレータを含んでおり、複数のアキュムレータの各アキュムレータはモデルの累積増分を受け取り、複数のコンパレータの対応するコンパレータの出力に基づいて選択的に累積を実行して累積増分を累積するように構成されている、請求項11記載の単一チップビジョンセンサ。
【請求項１３】
前記1以上の回路はさらに、1以上の値およびモデルの累積増分をモデルデータシフタ内部でシフトさせて、1以上の値を複数のコンパレータに供給し、かつ累積増分を複数のアキュムレータに供給するための、モデルデータシフタを含む、請求項12記載の単一チップビジョンセンサ。
【請求項１４】
前記1以上の回路は、バイナリタグワードに従ってモデルのポジショニングを示すためのプライオリティエンコーダを含んでおり、前記バイナリタグワードはモデルの1以上の座標が変換された後でモデルをイメージと比較した結果に基づいて形成される、請求項1記載の単一チップビジョンセンサ。
【請求項１５】
単一チップビジョンセンサにおいて、少なくとも一部は感知された光に基づいてイメージを取得して、1以上の特徴のモデルを利用して1以上の特徴に対するイメージをサーチする方法。
【請求項１６】
モデルとイメージとの少なくとも部分的な一致をもたらすイメージに対するモデルの1以上の姿勢を記録することを含む、請求項15記載の方法。
【請求項１７】
モデルの1以上の座標を変換した後で、イメージに対するモデルの複数のポジショニングの各々について同時にモデルをイメージと比較することを含む、請求項15記載の方法。
【請求項１８】
前記複数のポジショニングは、イメージの行内の複数の位置におけるモデルの基準点のポジショニングを含む、請求項17記載の方法。
【請求項１９】
前記サーチは、モデルの座標を1以上の変換値に基づいて変換済み座標に変換することを含む、請求項15記載の方法。
【請求項２０】
前記サーチはさらに、複数のイメージメモリデバイスに少なくとも1個の前記変換済み座標を利用して複数のイメージメモリデバイスにアクセスすることによって、データを互いに同時に出力させることを含む、請求項19記載の方法。
【請求項２１】
前記サーチはさらに、少なくとも1個の前記変換済み座標に基づく量でイメージのデータをシフトさせることを含む、請求項19記載の方法。
【請求項２２】
前記サーチは、複数のコンパレータに、イメージのデータに基づいて取得された1以上の対応する値をモデルの1以上の値と互いに同時に比較させることを含む、請求項15記載の方法。
【請求項２３】
前記サーチはさらに、選択的に累積を実行して、複数のコンパレータの対応するコンパレータの出力に基づいてアキュムレータ内で累積増分を累積することを含む、請求項22記載の方法。
【請求項２４】
さらに、前記サーチの結果に基づいて情報を出力することを含む、請求項15記載の方法。
【請求項２５】
少なくとも一部は感知された光に基づいてイメージを取得し、1以上の特徴のモデルを利用して1以上の特徴に対してイメージをサーチするように構成された単一チップビジョンセンサと、単一チップビジョンセンサから1以上の信号を受け取り、少なくとも一部は1以上の信号に基づいて動作を制御するためのデバイスとを含むシステム。
【請求項２６】
あるイメージのイメージデータを格納するための複数のイメージメモリデバイスと、座標を少なくとも一部は1以上の変換値に基づいて変換済み座標に変換し、少なくとも1個の変換済み座標を利用して複数のイメージメモリデバイスにアクセスするように構成されたイメージアドレスプロセッサとを含むビジョンセンサ。
【請求項２７】
さらに、複数のイメージメモリデバイスからデータを受け取り、少なくとも1個の変換済み座標に基づく量でデータをシフトさせるように構成されたイメージデータセレクタを含む、請求項26記載のビジョンセンサ。
【請求項２８】
さらに、少なくとも一部はイメージデータセレクタから供給されたデータに基づいて取得された1以上の対応する値を、1以上の値と互いに同時に比較するための複数のコンパレータを含む、請求項27記載のビジョンセンサ。
【請求項２９】
さらに、各々少なくとも一部は複数のコンパレータの対応するコンパレータの出力に基づいて選択的に累積を実行するように構成された複数のアキュムレータを含む、請求項28記載のビジョンセンサ。
【請求項３０】
前記複数のイメージメモリデバイスの各々がイメージの対応する列に対するデータを格納するように構成されており、さらに前記ビジョンセンサがタグ内のビットに基づくイメージの列を示す複数のプライオリティエンコーダを含む、請求項26記載のビジョンセンサ。
【請求項３１】
さらに、各々対応するデータパスによって複数のイメージメモリデバイスの対応するイメージメモリデバイスに接続された複数の算術論理演算ユニットを含む、請求項26記載のビジョンセンサ。
【発明の詳細な説明】
【技術分野】
【０００１】
E.ジョン・マクガリー、A.ピアス・N.プラマーによる：
関連する出願の参照
本出願は2008年7月31日に出願された合衆国特許出願番号12/184187「ビジョンセンサ、システムおよび方法」の利益を主張し、同出願は2007年11月30日に出願された仮出願番号60/991545「チップ上のビジョンシステム」の利益を主張するものであり、参照により両出願の全内容は本明細書に編入される。本出願はまた2007年11月30日に出願された仮出願番号60/991545「チップ上のビジョンシステム」の利益をも主張する。
【０００２】
背景情報
本発明の実施態様は一般的にはイメージの取得および処理を可能にするビジョンセンサ、システムおよび方法に関し、種々の実施態様においては単一チップ上にピクセル回路とデジタル処理素子とを有するビジョンセンサに関する。
【０００３】
ビジョンセンサは、一般にはマシンビジョンシステムおよび物理的場面のイメージを取得してこれらのイメージを処理するその他のシステムに用いられる。このようなビジョンセンサは、典型的に各々撮像された場面の対応する部分の光度をサンプリングする光センサを有するピクセルアレーを含んでいる。
あるビジョンセンサはピクセルアレーとデジタル処理素子を単一チップに統合して、捕捉されたイメージをビジョンセンサ内部で処理できるようにした。しかしながら、改良されたビジョンセンサとイメージ処理のためのアルゴリズムが必要とされている。
【０００４】
図1に関連技術の単一チップビジョンセンサ100のブロック図を示す。ビジョンセンサ100はピクセルアレー108、ピクセルコントローラ105、複数のアナログコンパレータ107、アナログランプ発生器104、複数のアナログ・デジタル変換器(ADC) ラッチ回路109およびデジタルランプ発生器103を含んでいる。ピクセルアレー108は、行および列に配列された複数のピクセル回路106を含んでいる。各ピクセル回路106は撮像された場面の対応する部分の光度をサンプリングするための感光素子、例えば光ダイオード等を含んでおり、各ピクセル回路106は、サンプリングされた光度に基づいてアナログピクセル信号を供給するように構成されている。
【０００５】
ピクセルコントローラ105は、ピクセル回路106の動作を制御するためにピクセルアレー108内のピクセル回路106に制御信号を供給する。ピクセルアレー108の同じ行にあるピクセル回路106はピクセルコントローラ105から出る共通行の制御信号を共有してよく、ピクセルアレー108と同じ列にあるピクセル回路106は共通列の読み出し線を共有して出力を供給してよい。ピクセルコントローラ105は典型的にピクセル回路106を制御して行毎に出力を供給する。ピクセルアレー108内のピクセル回路106の各列から出力されるアナログピクセル信号は、対応するアナログコンパレータ107に入力される。
【０００６】
ピクセルアレー108から出力されたアナログピクセル信号のアナログ・デジタル変換は、複数のアナログコンパレータ107、アナログランプ発生器104、複数のADCラッチ回路109およびデジタルランプ発生器103を用いて実行される。ピクセルアレー108の各列で出力されたアナログピクセル信号は対応するアナログコンパレータ107において、アナログランプ発生器104によって生成された共通のアナログ基準レベルと比較される。デジタルランプ発生器103は、アナログランプ発生器104によって生成されるアナログ基準レベルを表すデジタル信号を発生する。いずれかの列においてアナログ基準レベルがアナログピクセル信号のレベルと等しいとき、対応するアナログコンパレータ107はデジタル出力を生成し、これは対応するADCラッチ回路109にデジタルランプ発生器103によって供給されたデジタル信号の値を保持させる。
【０００７】
ビジョンセンサ100はさらに制御プロセッサ101、汎用メモリ102、複数のイメージ入力レジスタ110、複数の入力/出力(I/O)レジスタ111、複数のシフトレジスタ112、複数の算術論理演算ユニット(ALU)113、複数のイメージメモリデバイス114および複数のデジタルイメージバス118を含んでいる。制御プロセッサ101は汎用メモリ102に接続されていて、ここからビジョンセンサ100の素子を制御するためのプログラムを得る。各ADCラッチ回路109は対応するイメージ入力レジスタ110に接続されており、各イメージ入力レジスタ110は出力データラインによって対応するデジタルイメージバス118に接続されている。
【０００８】
各デジタルイメージバス118は、データをビットシリアル形式で伝送するシリアルバスであってよい。デジタルイメージバス118は対応するイメージ入力レジスタ110、対応するI/Oレジスタ111、対応するシフトレジスタ112、対応するALU113および対応するイメージメモリデバイス114に接続されている。複数のI/Oレジスタ111はそれぞれ制御プロセッサ101と接続されており、制御プロセッサ101との間でデータを入出力する。複数のシフトレジスタ112はそれぞれ左右すぐ隣にシフトレジスタがあるときはこれらと接続されている。各ALU113は、少なくとも2個のデータ入力レジスタ(aおよびb)と1個の伝送レジスタ(c)を含む1組のレジスタを介して対応するデジタルイメージバス118に接続されている。
【０００９】
各イメージ入力レジスタ110はデジタル化されたイメージデータを、対応するデジタルイメージバス118を介して対応するI/Oレジスタ111、対応するシフトレジスタ112、対応するALU113および対応するイメージメモリデバイス114に提供する。典型的な処理動作において、イメージデータは複数のイメージメモリデバイス114に一時的に保存され、複数のALU113を用いて処理される。処理されたイメージデータは次に二次データ処理および処理されたイメージデータと外部デバイスとの外部通信のために、複数のI/Oレジスタ111を介して制御プロセッサ101によってアクセスされてよい。
【００１０】
実際問題としては、ビジョンセンサ100の能力は、マシンビジョン処理の初期段階の特徴である比較的単純なフィルタリング動作にとって有利である。より複雑なアルゴリズムを適用すると、ビジョンセンサ100のデジタル処理素子から導かれる計算効率は、素子間の通信によって、および算術論理演算ユニット113の単純化された性質によって著しく制限される。それゆえ、イメージ処理のために改良されたビジョンセンサが必要とされている。
【発明の概要】
【００１１】
本発明の実施態様は一般的にはイメージの取得および処理を可能にするビジョンセンサ、システムおよび方法に関し、種々の実施態様においては単一チップ上にピクセル回路とデジタル処理素子とを有するビジョンセンサに関する。種々の実施態様においてチップ上のビジョンシステム(VSoC)は、単一チップ上にピクセル回路とデジタル処理素子を有するビジョンセンサを含む。種々の実施態様においてビジョンセンサのデジタル処理素子は、パターンマッチングを実行してイメージ内の興味のある位置を特定するように構成されている。幾つかの実施態様においてビジョンセンサは、感知された光に基づいてイメージに対するイメージデータを取得して、イメージと最大限に相関するモデルをもたらす特徴のモデルの一部または全部の変換を特定するように構成されている。
【００１２】
本発明の実施態様に従う単一チップビジョンセンサは、ピクセルアレーと1以上の回路を含んでいる。種々の実施態様において1以上の回路は1以上の特徴のモデルを利用して1以上の特徴に対するイメージをサーチするように構成されている。また、種々の実施態様において1以上の回路は、ピクセルアレーから供給された1以上の信号を処理してイメージを生成するように構成されている。幾つかの実施態様においてモデルは各々モデル基準点に関する対応する座標を含む複数のモデル指示を含んでいる。種々の実施態様において1以上の回路は、モデルとイメージとの少なくとも部分的な一致をもたらす、イメージと相対的なモデルの1以上の姿勢を記録するように構成されている。また、種々の実施態様において1以上の姿勢がそれぞれイメージの対応する行、イメージの対応する列、対応する回転角度および対応するスケール値と関係づけられている。
【００１３】
幾つかの実施態様において、1以上の回路がモデルの1以上の座標を1以上のアフィン変換値に従って変換するように構成されている。幾つかの実施態様において、1以上の回路がモデルの1以上の座標を、モデルの回転、スケールおよび/または移動を指定する1以上の変換値に従って変換するように構成されている。種々の実施態様において1以上の回路は、モデルの1以上の座標を変換した後で、イメージに対するモデルの複数のポジショニングの各々について同時にモデルをイメージと比較するように構成されている。また、種々の実施態様において複数のポジショニングは、イメージの行内の複数の位置におけるモデルの基準点のポジショニングを含む。このように種々の実施態様において、幾何学的に変換されたモデルは、イメージに関して幾何学的に変換されたモデルの複数の位置に対するイメージと同時に比較され得る。幾つかの実施態様において、1以上の回路はモデルを利用して実行された比較の結果に基づいて、モデルの幾つかの姿勢に関する情報を格納するように構成されている。
【００１４】
幾つかの実施態様において、1以上の回路はモデルの座標を少なくとも一部は1以上の変換値に基づいて変換済み座標に変換するように構成されたイメージアドレスプロセッサを含む。また、幾つかの実施態様において1以上の回路はさらに、あるイメージのイメージデータを記録して、少なくとも1個の前記変換済み座標を利用して複数のイメージメモリデバイスがアクセスされる場合にデータを互いに同時に出力するために複数のイメージメモリデバイスを含む。幾つかの実施態様において1以上の回路はさらに、イメージのデータを受け取り、少なくとも1個の前記変換済み座標に基づく量でデータをシフトさせるように構成されたイメージデータセレクタを含む。
【００１５】
種々の実施態様において、1以上の回路はイメージのデータに基づいて取得された1以上の対応する値をモデルの1以上の値と互いに同時に比較するための複数のコンパレータを含む。また、種々の実施態様において1以上の回路はさらに複数のアキュムレータを含んでおり、複数のアキュムレータの各アキュムレータはモデルの累積増分を受け取り、複数のコンパレータの対応するコンパレータの出力に基づいて選択的に累積を実行して累積増分を累積するように構成されている。幾つかの実施態様において1以上の回路はさらにモデルデータシフタを含んでおり、1以上の値およびモデルの累積増分をモデルデータシフタ内部でシフトさせて1以上の値を複数のコンパレータに供給し、かつ累積増分を複数のアキュムレータに供給する。種々の実施態様において、1以上の回路はバイナリタグワードに従ってモデルのポジショニングを示すためのプライオリティエンコーダを含んでおり、前記バイナリタグワードはモデルの1以上の座標が変換された後でモデルをイメージと比較した結果に基づいて形成される。
【００１６】
単一チップビジョンセンサの実施態様に従う方法は、少なくとも一部は感知された光に基づいてイメージを取得すること、および1以上の特徴のモデルを利用して1以上の特徴に対するイメージをサーチすることを含む。幾つかの実施態様において、モデルは各々モデル基準点に関する対応する座標を含む複数のモデル指示を含んでいる。種々の実施態様において、サーチは少なくともモデルの一部を利用した比較の結果に基づいて決定されたイメージに対するモデルの1以上の姿勢を記録することを含む。種々の実施態様において、取得は感知された光に基づいて供給された信号を処理してイメージを生成することを含む。幾つかの実施態様において、本方法はモデルの1以上の座標を変換した後で、イメージに対するモデルの複数のポジショニングの各々について同時にモデルをイメージと比較することを含む。また、幾つかの実施態様において複数のポジショニングは、イメージの行内の複数の位置におけるモデルの基準点のポジショニングを含む。
【００１７】
種々の実施態様において、本方法はモデルの座標を1以上の変換値に基づいて変換済み座標に変換することを含む。幾つかの実施態様において、本方法は複数のイメージメモリデバイスに少なくとも1個の前記変換済み座標を利用して複数のイメージメモリデバイスにアクセスすることによって、データを互いに同時に出力させることを含む。また、幾つかの実施態様において、本方法は少なくとも1個の前記変換済み座標に基づく量でイメージのデータをシフトさせることを含む。種々の実施態様において、本方法は複数のコンパレータに、イメージのデータに基づいて取得された1以上の対応する値をモデルの1以上の値と互いに同時に比較させることを含む。また、種々の実施態様において、本方法は選択的に累積を実行して、複数のコンパレータの対応するコンパレータの出力に基づいてアキュムレータ内で累積増分を累積することを含む。幾つかの実施態様において、本方法はサーチの結果に関する情報を出力することを含む。
【００１８】
本発明の実施態様に従うシステムは単一チップビジョンセンサとデバイスを含んでいる。種々の実施態様において、単一チップビジョンセンサは少なくとも一部は感知された光に基づいてイメージを取得し、1以上の特徴のモデルを利用して1以上の特徴に対するイメージをサーチするように構成されている。また、種々の実施態様において、デバイスは単一チップビジョンセンサから1以上の信号を受け取り、少なくとも一部は1以上の信号に基づいて動作を制御するように構成されている。幾つかの実施態様において、1以上の信号が制御信号である。幾つかの実施態様において、1以上の信号がデータまたは情報を指定する。種々の実施態様において、デバイスは他のデバイスを制御することによって動作を制御する。幾つかの実施態様において、単一チップビジョンセンサは制御信号をデバイスに供給し、デバイスは制御信号に基づいて動作を実行することによって動作を制御する。
【図面の簡単な説明】
【００１９】
【図１】図1は関連技術のビジョンセンサのブロック図を示す。
【図２】図2は本発明の実施態様に従うビジョンセンサのブロック図を示す。
【図３】図3は本発明の実施態様に従うシステムのブロック図を示す。
【図４】図４は本発明の実施態様に従う方法のフローチャートを示す。
【図５】図5はイメージ例から1個の特徴のモデルを生成するための本発明の実施態様に従う方法のフローチャートを示す。
【図６】図6Aは本発明の実施態様に従い座標系をポジショニングし、イメージ例上に任意のポイントをポジショニングする例を示す。図6Bは本発明の実施態様に従い1組のポイントに対する2進数を生成し、および2進数を復号する例を示す。図6Cは本発明の実施態様に従う1個の特徴のモデルに対するモデル指示を示す。
【図７】図7Aは本発明の実施態様に従う座標系およびイメージ例上のポイントのポジショニングの例を示す。図7Bは本発明の実施態様に従う2個以上の特徴に対してビット列を形成する例を示す。図7Cは本発明の実施態様に従う2個以上の特徴のモデルに対するモデル指示の例を示す。
【図８】図8は本発明の実施態様に従うビジョンセンサのブロック図を示す。
【図９】図9は本発明の実施態様に従うビジョンセンサのブロック図を示す。
【図１０】図10Aは本発明の実施態様に従うモデルの座標を変換するためのイメージアドレスプロセッサのブロック図を示す。図10Bは本発明の実施態様に従うモデルの座標を変換するための方程式を示す。
【図１１】図11は本発明の実施態様に従うコンパレータ・アキュムレータを示す。
【図１２】図12は本発明の実施態様に従いイメージを捕捉して当該イメージに関するパターンマッチングを実行するための方法のフローチャートを示す。
【図１３】図13は本発明の実施態様に従い1以上の特徴のモデルのモデル指示を実行するためのフローチャートを示す。
【図１４】図14は本発明の実施態様に従いモデル指示の例を実行するときのビジョンセンサの動作例を示す。
【発明を実施するための形態】
【００２０】
図2は本発明の実施態様に従う単一チップビジョンセンサ200のブロック図を示す。ビジョンセンサ200はピクセルアレー208と1以上の回路230を単一チップ上に含んでいる。種々の実施態様において、ピクセルアレー208は撮像された場面について感知された光に基づいて、ピクセル信号を1以上の回路230に供給するように構成されている。また、種々の実施態様において、1以上の回路230はピクセルアレー208から供給されたピクセル信号を処理してイメージを形成するように構成されており、任意選択でこのイメージに関してパターンマッチングを実行するように構成されている。種々の実施態様において、ピクセルアレー208と1以上の回路230は半導体材料の基板上に単一の集積回路を形成する。また、種々の実施態様において、ビジョンセンサ200はビジョンセンサ200との間でデータを入出力するために1以上のI/Oピン(図示せず)を含んでいる。
【００２１】
ビジョンセンサ200は種々の用途、例えばマシンビジョン用途、民生用途等に用いられてよい。種々の実施態様において、ビジョンセンサ200は、(i)イメージ取得、(ii)イメージ前処理、(iii)パターンマッチングのいずれか1以上に必要とされる用途で用いられてよい。種々の実施態様において、ビジョンセンサ200によりイメージ取得、イメージ前処理および/またはパターンマッチングを単一チップまたは集積回路で実行することが可能である。
【００２２】
図3は本発明の実施態様に従うシステム270のブロック図を示す。システム270はビジョンセンサ200とデバイス240を含んでいる。システム270において、ビジョンセンサ200はデバイス240と通信して信号をデバイス240に伝送する。幾つかの実施態様において、この信号は制御信号である。幾つかの実施態様において、この信号はデータまたは情報を指定する。幾つかの実施態様において、ビジョンセンサ200はデバイス240と通信してデバイス240から信号を受け取る。種々の実施態様において、デバイス240により物理的世界に作用または影響できる。幾つかの実施態様において、デバイス240は少なくとも一部はビジョンセンサ200から受け取った1以上の信号に基づいて動作を制御または実行するように構成されている。
【００２３】
幾つかの実施態様において、デバイス240はビジョンセンサ200から受け取ったデータに基づいて他のデバイスまたは装置(図示せず)を制御するように構成されている。種々の実施態様において、デバイス240は制御可能であり、ビジョンセンサ200は制御信号をデバイス240に送ってデバイス240を制御するように構成されている。
【００２４】
デバイス240として使用できるデバイスのタイプの例として、表示装置、通信装置、計算装置、ロボットアーム、スイッチ、車両制御装置、製品組立装置、検査装置、監視装置、医療装置等があるが、これらに限定されるものではない。
【００２５】
種々の実施態様において、ビジョンセンサ200はイメージを取得して、イメージの処理を実行し、処理の結果に基づいてデータをデバイス240に供給するように構成されている。例えば種々の実施態様において、ビジョンセンサ200は1以上の特徴の1以上のモデルに基づいてイメージ内の1以上の特徴をサーチし、サーチの結果に基づいてデータをデバイス240に出力するように構成されている。イメージ取得によってイメージを得ることと、パターンマッチングによってイメージ内の特徴をサーチすることの双方を単一チップまたは集積回路で可能にすると、イメージデータをビジョンセンサ200からビジョンセンサ200の外部にある別個のプロセッサに伝送し、この別個のプロセッサでパターンマッチングを行わなければならない場合と比較して、ビジョンセンサ200から伝送されるデータの量を減らすことができる。
【００２６】
例えば種々の実施態様においてビジョンセンサ200はイメージを取得し、イメージ内に1以上の特徴が見いだされた場合は、1以上の特徴のモデルを利用して、1以上の特徴に対するイメージをサーチし、トリガ信号をデバイス240に供給するために使用されてよい。また、幾つかの実施態様においてビジョンセンサ200はイメージを取得し、イメージ内に1以上の特徴が見いだされた場合は、1以上の特徴のモデルを利用して1以上の特徴に対するイメージをサーチし、次に物理的場面における1以上の特徴の位置を示す位置データをデバイス240に供給するために使用されてよい。その結果として、このような実施態様において、全イメージデータをビジョンセンサから別個の外部プロセッサに伝送してこの別個の外部プロセッサに特徴のサーチを実行させるのではなく、ビジョンセンサ200はビジョンセンサチップ上でサーチを実行することができ、そしてトリガ信号、位置データ等をデバイス240に送るだけでよい。これにより、ビジョンセンサ200から伝送される必要のあるデータ量を減らすことができる。
【００２７】
種々の実施態様において、ビジョンセンサ200はイメージを取得し、このイメージの処理を実行して、および処理の結果に基づいてデバイス240を制御するように構成されている。例えば種々の実施態様において、ビジョンセンサ200は1以上の特徴の1以上のモデルに基づいてイメージ内の1以上の特徴をサーチし、サーチの結果に基づいてデバイス240の動作を制御するように構成されている。その結果として、このような実施態様において、全イメージデータをビジョンセンサ200から別個の外部プロセッサに伝送し、この別個の外部プロセッサに特徴のサーチを実行させる代わりに、ビジョンセンサ200はビジョンセンサチップ上でサーチを実行でき、制御信号、制御命令等をデバイス240に送るだけでよい。それによってビジョンセンサ200から伝送される必要があるデータの量を減らすことが可能となる。
【００２８】
種々の実施態様において、ビジョンセンサ200から伝送される必要のあるデータ量を減らすことによって、ビジョンセンサ200がイメージを取得できる速度（1秒当たりのフレーム数）を増すことが可能になる。なぜならばビジョンセンサ200は出力の伝送が完了するまで待機する必要がないからである。例えば、幾つかの実施態様において、ビジョンセンサ200はイメージを1秒当たり200フレーム以上の速度で捕捉および処理するように構成されてよく、そうすることによってビジョンセンサ200は自動化されたビデオ監視、車両制御、識別(ID)読取装置の起動、ジェスチャー認識、固定型または可動型ビジョンセンサを用いた3次元(3D)モデリングによるオブジェクトの寸法設計、運動解析等の用途に有利に使用できるであろう。
【００２９】
種々の実施態様において、ビジョンセンサ200は自己起動するように構成されてよく、種々の実施態様においてビジョンセンサ200は常時作動してイメージを取得できる。種々の実施態様において、ビジョンセンサ200はその他のビジョン用途、例えばID読取装置用のソフトウェアトリガとして用いられるトリガを供給するように構成されてよい。ビジョンセンサ200の種々の実施態様は他のビジョンシステムに使用され、またはこれらを補完することができる。例えば (i)合衆国特許出願番号10/865155「オブジェクトのビジョン検出および検査の方法と装置」および(ii)合衆国特許出願番号11/763752「オブジェクトの光電子検出および位置把握の方法とシステム」に開示されたシステムがあり、参照によりこれに編入される。
【００３０】
ビジョンセンサ200のチップから伝送される必要のあるデータ量を減らすことにより、チップから信号を送り出すのに必要とされる電流が少なくなるので電力損失を小さくすることもでき、またビジョンセンサ200と外部装置との間で交換されるデータの量が減るために電磁妨害(EMI)の発生を少なくすることが可能になる。電力損失が小さくなることは、多くの用途、例えばバッテリーに制約された用途、医療用途、軍事用途、車両用途等で利点がある。例えば種々の実施態様において、ビジョンセンサ200は盲人の目の代用をするセンサとして使用されてよく、この場合電力損失が小さく、処理速度が速いことが好都合である。同様に、EMIが減少することは多くの用途、例えば車両制御用途、軍事用途等、EMIが他の装置の動作を妨害する恐れのある場合に利点がある。
【００３１】
幾つかの実施態様において、デバイス240はイメージデータを処理できるタイプの装置であり、ビジョンセンサ200はイメージデータをデバイス240に伝送するように構成されている。ビジョンセンサ200がイメージデータをデバイス240に伝送するように構成されている実施態様において、ビジョンセンサ200は1以上の特徴のモデルを利用して1以上の特徴に対するイメージをサーチし、このイメージ内に少なくとも1以上の特徴が見いだされた場合のみ当該イメージのイメージデータをデバイス240に伝送するように構成されている。また、ビジョンセンサ200がイメージデータをデバイス240に伝送するように構成されている実施態様において、ビジョンセンサ200は1以上の特徴のモデルを利用して1以上の特徴に対するイメージをサーチして、デバイス240にはサーチによって識別されたデータに基づいて決定されるイメージ内で興味のある領域に対するイメージデータのみ伝送するように構成されている。ビジョンセンサ200がイメージデータをデバイス240に伝送するように構成されている種々の実施態様において、ビジョンセンサ200はイメージに対する全イメージデータをデバイス240に伝送するように制御可能であってよい。幾つかの実施態様において、ビジョンセンサ200は1以上の特徴が検出されたイメージに対するモデルの姿勢を示す姿勢情報をデバイス240に伝送するように構成されている。
【００３２】
種々の実施態様において、デバイス240はプロセッサ(図示せず)を含んでよく、ビジョンセンサ200はデバイス240のプロセッサと処理タスクをインタラクティブに交換するように、および/または例えば処理量、メモリデバイスの使用等を最適化できるように、ユーザがビジョンセンサ200とデバイス240のプロセッサの各々によって実行されるべき特定のタスクを指定できるように構成されてよい。また、種々の実施態様において、デバイス240はプロセッサ(図示せず)を含んでよく、ビジョンセンサ200は1以上の特徴を含んでよいイメージ候補またはイメージ部分を決定し、次にこれらのイメージ候補またはイメージ部分をデバイス240に伝送してデバイス240によって処理させるように構成されてよい。幾つかの実施態様において、ビジョンセンサ200は1以上のその他の装置(図示せず)、例えば自動焦点光学系、自動適応装置等と一緒に用いられて、例えばイメージを取得し、および任意選択でそれらを処理している間、ID用途等の種々の用途のための有益な時間内で、異なる深度のフィールド照射または異なる照射を供給する。
【００３３】
図4は本発明の実施態様に従う方法のフローチャートを示す。Slにおいて、1以上のイメージ例から1以上の特徴のモデルが形成される。種々の実施態様において、1以上の特徴のモデルは1以上の特徴の単純化された表現である。幾つかの実施態様において、モデルを1以上のイメージ例から形成する代わりに、1以上の特徴のモデルは他の何らかの適当な仕方、例えば1以上の特徴に対するコンピュータ支援設計(CAD)データから形成されてもよい。図3および図4を参照して、幾つかの実施態様においてデバイス240は1以上のイメージ例から1以上の特徴のモデルを形成し、このモデルをビジョンセンサ200に伝送するように構成された計算装置等を含んでいる。幾つかの実施態様において、ビジョンセンサ200は1以上のイメージ例から1以上の特徴のモデルを形成するように構成されている。種々の実施態様において、1以上の特徴のモデルは何らかの適当な装置の1以上のイメージ例から形成されて、それからビジョンセンサ200にダウンロードされてよい。幾つかの実施態様において、モデルは各々モデルの基準点に関して指定された座標を含む複数のモデル指示を含んでいる。また、幾つかの実施態様においてモデルは1以上のイメージ例に基づいて取得された1以上の値を含んでいる。モデルが形成されたら本方法はS2へと続く。
【００３４】
S2において、ビジョンセンサ200はモデルを利用してイメージ内の1以上の特徴をサーチする。種々の実施態様において、ビジョンセンサ200は光を検出し、検出された光に基づいて処理を実行することによってイメージを取得し、このイメージを供給するように構成されている。また、種々の実施態様においてビジョンセンサ200はビジョンセンサ200によって取得されたイメージ内の1以上の特徴をサーチするように構成されている。こうして、種々の実施態様においてビジョンセンサ200はイメージを取得し、1以上の特徴のモデルを利用して当該イメージ内の1以上の特徴をサーチすることができる。
【００３５】
図5は、イメージ例から1個の特徴のモデルを生成するための本発明の実施態様に従う方法のフローチャートを示す。種々の実施態様において、図5の方法は図4の方法のステップS1でモデルを形成するために使用されてよい。幾つかの実施態様において、コンピュータ読出し可能記憶媒体(図示せず)はプログラムを格納しており、これが計算装置上で実行されたら計算装置に図5の方法を実行させてモデルを形成する。このような実施態様において、モデルはビジョンセンサ、例えば図2のビジョンセンサ200に伝送されてよい。幾つかの実施態様において、ビジョンセンサ200は図5の方法でモデルを形成するように構成されている。もちろん、図5の方法は単に本発明の実施態様に従ってモデルを形成するための方法の1例にすぎず、他の種々の実施態様においてその他の適当な方法を使用してイメージ例から複数の特徴の他の適当なモデルを形成できると理解されるべきである。
【００３６】
図5に示す方法の種々の実施態様において、イメージ例はどのような情報源から取得されてもよい。図5の方法の理解に役立てるために、図6Aに本発明の実施態様に従う例を示す。図6Aにはイメージ例500の例が示されており、イメージ例500は基準点570にセンタリングされたイメージ例500に対する座標系を基準にして直角座標対(行、列)によりアドレス指定され、行軸Ixおよび列軸Iyで表すことができる。イメージ例500の内部に特徴501が存在するが、これは例えばある場面内のオブジェクト等を表す。特徴501は単に特徴の一例として提示されたものであり、イメージ例には多様な形状、寸法および1以上の形状または要素を含む特徴が含まれてよいと理解されるべきである。
【００３７】
図5および図6Aを参照して、S10でイメージ例に対するモデル座標系が確定される。例えば図6Aの例では、イメージ例500内の特徴501に対してモデル基準点580が選択され、このモデル基準点580にセンタリングされて行軸Xおよび列軸Yによって指定されたモデル座標系が特徴501に対して確定される。次に本方法はS11に続く。S11では所定数のポイントがモデル座標系を基準にしてポジショニングされる。種々の実施態様において、これらのポイントはモデル座標系に関して任意の位置にポジショニングされてよい。例えば図6Aの例では、図中で10個のポイントが１〜10の数字で標示され、それぞれモデル座標系のモデル基準点580を基準にしてポジショニングされている。これと異なる数のポイントを使用してもよく、10個のポイントは単に例として提示されたにすぎないと理解されるべきである。次に図5の方法はS12に続く。
【００３８】
S12において、ポイントはそれぞれ整数であるm個のポイントを含む組に分けられる。例えば図6Aの例では、10個のポイントはそれぞれ5個のポイントを含む2組、すなわちA1とB1に分けられる。ここで2組というのは単に例として提示されたにすぎず、種々の実施態様において所望する任意の数のポイントの組があってよいと理解されるべきである。幾つかの実施態様においては1個のモデルに対して100組以上のポイントがあってよい。ここに見る例ではA1組はポイント1-5を含み、B1組はポイント6-10を含む。次に本方法はS13に続く。S13では各組でポイントが順序付けられる。例えば図6Aの例では、A1組のポイント1から5まで順序付けられ、A2組のポイントは6から10まで順序付けられる。次に本方法はS14に続く。
【００３９】
S14では、順序づけられた各ポイントに対して、モデルに対するモデル指示が形成される。図6Cは図6Aの特徴501に対するモデル503の例を示しており、モデル503は複数のモデル指示を含んでいる。図6Aおよび図6Cの例を参照して、モデル503は各々のポイント1-10に対するモデル指示を含んでいる。モデル503でNと標示された列は各々のモデル指示に対する指示番号を含んでおり、モデル指示はポイント1-10と同じ順序に並んでいる。再び図5を参照して、次に本方法はS15に続く。S15では、ポイントに対するモデル指示に、モデル座標系における各ポイントに対する座標が含まれる。例えば図6Aと図6Cの例では、モデル503においてXおよびYで標示された列は、ポイントに対するモデル指示における各ポイントに対する座標を含んでいる。こうして、例えばポイント1に対するモデル指示は座標(-7、-2)を有するが、これはモデル座標系を基準としたポイント1に対する座標である。また、例えばポイント2に対するモデル指示は座標(-4、-5) を有するが、これはモデル座標系を基準としたポイント2に対する座標である。次に本方法はS16に続く。
【００４０】
S16では、モデルにおける最初のモデル指示にリセット命令が含まれる。例えば図6Cの例では、モデル503の第1モデル指示に対してRSTと標示された列で値「1」のビットが設定されている。モデル503における第2モデル指示から最後のモデル指示まで、RSTと標示された列は値「0」のビットを含んでいる。種々の実施態様において、モデル内のリセット命令は1以上のアキュムレータに対し、モデルの実行準備において1以上のアキュムレータが既定値にリセットされるべきであることを示すものである。図5を参照して、次に本方法はS17に続く。S17では、各ポイント組の最後のポイントに対するモデル指示に比較命令が含まれる。例えば図6Aおよび図6Cの例でA1組の最後のポイントに対する第5のモデル指示は、モデル503でCMPと標示された列に値「1」のビットを含んでいる。同様に、B1組の最後のポイントに対する第10モデル指示は、モデル503でCMPと標示された列に値「1」のビットを含んでいる。モデル503におけるその他のモデル指示は、CMPと標示された列に値「0」のビットを含んでいる。種々の実施態様において、モデル内の比較命令は1以上のコンパレータに対して、当該1以上のコンパレータが比較動作を実行しなければならないことを示すものである。
【００４１】
図5を参照して、次に本方法はS18に続く。Sl8では各ポイントに対し当該ポイントにおけるイメージ例に対するデータに基づいて黒色値または白色値が割り当てられる。種々の実施態様において、イメージ例は2値イメージであり、各ポイントに対する黒色値または白色値は、イメージ例が当該ポイントで黒色であるか白色であるかに基づいて割り当てられる。その他の種々の実施態様において、イメージ例はグレースケールイメージまたはカラーイメージであり、各ポイントに対する黒色値または白色値は当該ポイントにおけるイメージ例の値と閾値との比較に基づいて割り当てられる。図6Aの例では、イメージ例500は2値イメージである。また、図6Aの例では黒色値は「0」であり、白色値は「1」であると前提されている。こうして、図6Aの例ではポイント1、4、5、6、7および9にはイメージ例500の白色部分であるため値「1」が割り当てられ、ポイント2、3、8および10にはイメージ例500の黒色部分であるため値「0」が割り当てられる。次に本方法はS19に続く。
【００４２】
S19では、各組のポイントに割り当てられた黒色値また白色値に基づいて、これらの組に対して2進数が生成される。図6Bは、A1組およびB1組のポイントに割り当てられた黒色値また白色値に基づいて、これらの組に対して生成された2進数の例を含むテキストボックス502を示す。図6Bの例では、A1組に対して2進数「11001」が生成され、B1組に対して2進数「01011」が生成される。ここで注意すべきは、図6Bの例において各組に対する2進数は組内のポイントに基づき、組内の最初のポイントに対する2進数で最下位ビットを起点として、組内の最後のポイントに対する2進数で最上位ビットに向かうように形成されることである。こうしてA1組に対する2進数「11001」では、ポイント5は値「1」と結び付けられ、ポイント4は値「1」と結び付けられ、ポイント3は値「0」と結び付けられ、ポイント2は値「0」と結び付けられ、ポイント1は値「1」と結び付けられる。次に本方法はS20に続く。
【００４３】
S20では各組の2進数が対応する2mビット列に復号される。例えば図6Bの例ではA1組に対する2進数「11001」は10進数25に対応し、ビット列「00000010000000000000000000000000」に復号される。ここで値「1」は、最下位ビットがビット位置0である場合にビット25に対する位置に置かれる。同様に、図6Bの例ではB1組に対する2進数「01011」は10進数11に対応し、ビット列「00000000000000000000100000000000」に復号される。ここで値「1」は、最下位ビットがビット位置0である場合にビット11に対する位置に置かれる。注意すべきは、図6Bの例で、mの値は5であり、5ポイントを含む各組はイメージ例の内容に応じて2の5乗すなわち32個の可能な状態を持つことができる。ここでmは別の例では異なる値に設定されてよく、5は単に例として提示されたにすぎないことが理解されるべきである。
【００４４】
図5を参照して、次に本方法はS21に続く。S21において、各ポイント組の最初のポイントに対するモデル指示に、対応する累積増分値が含まれる。例えば図6Cの例では、モデル503における第1モデル指示は、A1組の最初のポイントに対するモデル指示であり、モデル503の列Vにおける16進値「0xXX」で表された対応する累積増分を有する。ここで「XX」は累積増分として何らかの特定の値に設定できることを示している。同様に、モデル503における第6モデル指示はB1組の最初のポイントに対するモデル指示であり、モデル503の列Vにおける16進値「0xXX」で表された対応する累積増分を有する。ここで「XX」は、累積増分が何らかの特定の値に設定できることを示している。次に本方法はS22に続く。
【００４５】
S22において、各ポイント組に対するビット列がブロックに分割される。例えば図6Bの例では、A1組に対するビット列は「00000010」、「00000000」、「00000000」、および「00000000」の4ブロックに分割され、それぞれ16進数「0x02」、「0x00」、「0x00」および「0x00」を表す。同様に図6Bの例では、B1組に対するビット列は「00000000」、「00000000」、「00001000」、および「00000000」の4ブロックに分割され、それぞれ16進数「0x00」、「0x00」、「0x08」および「0x00」を表す。図5を参照して、次に本方法はS23に続く。
【００４６】
S23で、各ポイント組に対するビット列のブロックは、当該組における第2のポイントから最後のポイントに対するモデル指示まで配分される。例えば図6Bおよび図6Cの例では、A1組に対するビット列のブロックはモデル503の列Vにおける第2モデル指示から第5モデル指示まで配分される。ここで注意すべきは、図6Cの例でブロックはビット列の最下位ビットに対するブロックを起点として、ビット列の最上位ビットを有するブロックに向かって進むモデル指示に配分されていることである。同様に図6Bおよび図6Cの例ではB1組に対するビット列のブロックは、モデル503の列Vにおける第7モデル指示から第10モデル指示にまで配分される。
【００４７】
こうして、図5のフローチャートによって指定された方法に従い、イメージ例内の1個の特徴に対してモデルが形成されてよい。種々の実施態様において、1以上のイメージ例から形成されたモデルは「養成されたモデル」と呼ぶことができる。なぜなら、このモデルは1以上のイメージ例から学習されているからである。もちろん、図5の方法に従って形成されたモデルは単にモデルの１タイプにすぎず、他の種々の実施態様において特徴を表現する異なるタイプのモデルが形成され得ると理解されるべきである。例えば種々の実施態様において、イメージの多ビット平面を取得し、このイメージの多ビット平面からモデルを形成されてよい。このような実施態様において、モデル内の各ポイントを指定するために追加のビット平面値が用いられてよい。この場合、あるポイントに対する追加のビット平面値がこのポイントのビット平面を指定する。
【００４８】
種々の実施態様において、モデルは2個以上のイメージから得られた2個以上の特徴を表してよい。図7Aは特徴601を有するイメージ例600の例を示す。図7Cは、図7Aのイメージ例600から得られた特徴601と、図6Aのイメージ例500から得られた特徴501とのモデル605の例を示す。図7Aのイメージ例において、特徴601は図6Aのイメージ例500の特徴501と異なるが、モデル基準点680はイメージ例600の基準点670を基準にして確定されており、ポイント1-10はモデル基準点680を基準にしてモデル基準点580に対するのと同じ座標にポジショニングされている。こうして図7Aの例では、ポイントは図6AでA1組とB1組に分割されたのと同じ仕方でA2組とB2組とに分割される。
【００４９】
図7Bは(i) 図7Aに記載されたA2組とB2組に関連した値を含むテキストボックス602、(ii) 図6Bに記載されたテキストボックス502、(iii) 値AXとBXを含むテキストボックス604を示す。テキストボックス602の値は、図5の方法のステップS18-S20を図7Aのポイントに適用することによって取得される。図7Bの例でテキストボックス602において、A2組に対して形成された2進数は「10011」であり、B2組に対して形成された2進数は「11011」である。ここで注意すべきは、図7Bの例では各組の2進数は組内のポイントから、組内の最初のポイントに対する2進数の最下位ビットに始まり、組内の最後のポイントに対する2進数の最上位ビットに向かうように形成されることである。こうして、A2組に対する2進数「10011」は、ポイント5は白色値「1」と結び付けられ、ポイント4は黒色値「0」と結び付けられ、ポイント3は黒色値「0」と結び付けられ、ポイント2は白色値「1」と結び付けられ、ポイント1は白色値「1」と結び付けられる。
【００５０】
図7Bの例でテキストボックス602において、A2組に対する2進数「10011」は10進数19に対応しており、ビット列「00000000000010000000000000000000」に復号される。ここで値「1」は最下位ビットがビット位置0である場合にビット19の位置に置かれる。同様に、図7Bの例ではB2組に対する2進数「11011」は10進数27に対応しており、ビット列「00001000000000000000000000000000」に復号される。ここで値「1」は最下位ビットがビット位置0である場合にビット27の位置に置かれる。次にテキストボックス604内のAXの値が、テキストボックス502内のA1に対するビット列と、テキストボックス602内のA2に対するビット列との論理ORを通して取得される。同様に、テキストボックス604内のBXの値が、テキストボックス502内のB1に対するビット列と、テキストボックス602内のB2に対するビット列との論理ORを通して取得される。
【００５１】
図6A、図7A、図7Bおよび図7Cを参照して、モデル605は特徴501および特徴601に対するモデル指示を含んでいる。モデル605においてNで標示された列は、図6Aおよび図7Aにおけるポイントの番号と一致するモデル指示番号を含む。XおよびYで標示された列は、各モデル指示に対する関連するポイントのモデル座標系内の点座標を含んでいる。モデル605においてVで標示された列は、第1および第6モデル指示に累積増分を含み、残りのモデル指示にはビット列AXおよびBX のブロックを含む。例中のビット列AXはブロックに分割され、モデル605内の第2モデル指示から第5モデル指示にまで配分され、例中のビット列BXはブロックに分割され、モデル605内の第7モデル指示から第10モデル指示にまで配分される。モデル605でRSTと標示された列は、第1モデル指示におけるリセット命令ビット「1」を含み、モデル605でCMP と標示された列は、各ポイント組における最後のポイントに対するモデル指示中の比較命令ビット「1」を含む。こうして種々の実施態様において、モデルは2個以上のイメージ例から得られた2個以上の特徴を表現するように形成されてよい。
【００５２】
図8はビジョンセンサ200の実施態様を示す。ビジョンセンサ200はピクセルアレー208および1以上の回路230を含んでいる。種々の実施態様において、1以上の回路230は制御回路222、汎用メモリ202、処理回路224、イメージアドレスプロセッサ300、1以上のイメージメモリデバイス214、イメージデータセレクタ215、モデルデータシフタ216、1以上のコンパレータ・アキュムレータ400およびプライオリティエンコーダ217を含んでいる。
【００５３】
種々の実施態様において、ピクセルアレー208は撮像された場面に対する感知された光に基づいて1以上のピクセル信号を供給するように構成されている。また、種々の実施態様において処理回路224はピクセルアレー208から供給された1以上のピクセル信号を処理してイメージを生成するように構成されている。幾つかの実施態様において、ピクセルアレー208から供給される1以上のピクセル信号はアナログ信号であり、処理回路224はアナログ・デジタル変換を実行して1以上のピクセル信号をデジタルピクセル値に変換するように構成されている。種々の実施態様において処理回路224は、1以上のピクセル信号から得られたデジタルピクセル値に対して1回以上の前処理動作を実行して前処理されたイメージデータを供給するように構成されている。
【００５４】
例えば種々の実施態様において、処理回路224はノイズ低減のための前処理を実行してデジタルピクセル値におけるノイズを低減するように構成されている。イメージノイズはピクセル値の不規則変動であり、ビジョンセンサ200等の電子ノイズによって引き起こされる。種々の実施態様において、処理回路224はノイズ低減をフィルタリング処理、例えばメジアンフィルタリングによって実施するように構成されている。この場合、オリジナルピクセル値は隣接するピクセル値の強度のメジアン値で置き換えられる。幾つかの実施態様において、処理回路224は他のタイプフィルタリング、例えば低域フィルタリングを実行するように構成されている。この場合、スムーズな動作を表すマスクでピクセル値のデータを覆い、各々のピクセル値を隣接するピクセル値に近づけようとすることによってノイズが低減される。ここで、メジアンフィルタリングおよび低域フィルタリングは単に例として提示されたにすぎず、他の種々の実施態様においてビジョンセンサ200はその他のタイプのフィルタリングを実行するように構成されてよいと理解されるべきである。
【００５５】
種々の実施態様において、処理回路224はまた、グレースケールピクセル値を2進ピクセル値に変換するための前処理を実行するように構成されている。幾つかの実施態様において、処理回路224は、例えばグレースケールピクセル値と閾値との比較に基づいて、グレースケールピクセル値を黒色値ピクセル値または白色ピクセル値に変換するために閾値化処理を実行するように構成されている。このような閾値化処理によりピクセル値の2値化が可能になる。種々の実施態様において、処理回路224はまたデータの形態学的な閉演算を実行するように構成されている。この場合、構造化要素を用いた膨張が実行され、次にその結果得られたデータに構造化要素を用いた収縮が実行される。このような形態学的な閉演算は、例えばイメージの前景領域内にある背景色の穴を収縮させるために使用されてよい。
【００５６】
種々の実施態様において、1以上のイメージメモリデバイス214はあるイメージのイメージデータを格納するように構成されている。例えば種々の実施態様において、処理回路224はピクセルアレー208から供給されたピクセル信号の処理を実行して、この処理の結果をイメージのイメージデータとして1以上のイメージメモリデバイス214に格納する。種々の実施態様において、1以上のイメージメモリデバイス214はデータの格納および供給を行うために、それぞれランダムアクセスメモリー(RAM)等を含んでいる。
【００５７】
種々の実施態様において制御回路222は、ピクセルアレー208を制御して光を捕捉しピクセル信号を供給するように構成されており、さらに処理回路224を制御してピクセルアレー208から送られたピクセル信号を処理してイメージのイメージデータを供給するように構成されている。幾つかの実施態様において、ピクセルアレー208は可視スペクトル内の光を捕捉し、捕捉された光に基づいてピクセル信号を供給するように構成されている。幾つかの実施態様において、ピクセルアレー208は可視スペクトル外の光を捕捉し、捕捉された光に基づいてピクセル信号を供給するように構成されている。幾つかの実施態様において、ピクセルアレー208は可視スペクトル内および可視スペクトル外の光を捕捉し、捕捉された光に基づいてピクセル信号を供給するように構成されている。
【００５８】
種々の実施態様において制御回路222は、外部装置(図8図示せず)から1以上の特徴のモデルに対してモデル指示を受け取るように構成されており、さらにこれらのモデル指示を汎用メモリ202に格納するように構成されている。種々の実施態様において、汎用メモリ202はデータの格納および供給のためにRAM等を含む。種々の実施態様において、汎用メモリ202は制御回路222によって実行され得るプログラムを格納している。幾つかの実施態様において、汎用メモリ202はビジョンセンサ200の外部にある外部メモリデバイス(図示せず)によって補完されてよく、さらにこのような実施態様においてビジョンセンサ200は外部メモリデバイスと汎用メモリ202との間でデータの伝送を可能にするように構成されてよい。種々の実施態様において、図8の要素は種々異なる用途のために所望されるならば、補完または省略することができる。
【００５９】
種々の実施態様において1以上の回路230が、1以上の特徴のモデルを利用して1以上の特徴に対するイメージをサーチするように構成されている。幾つかの実施態様において、サーチされるイメージが1以上のイメージメモリデバイス214に格納されており、さらにイメージをサーチするために利用される1以上の特徴のモデルのモデル指示が汎用メモリ202に格納されている。種々の実施態様において、制御回路222は汎用メモリ202からのモデル指示を実行し、さらに処理回路224、イメージアドレスプロセッサ300、モデルデータシフタ216および複数のコンパレータ・アキュムレータ400をモデル指示に基づいて制御するように構成されている。
【００６０】
幾つかの実施態様において、各々のモデル指示はモデル基準点に対して位置を指定する相応の座標を含んでいる。また、幾つかの実施態様において制御回路222は、座標をモデルのモデル指示からイメージアドレスプロセッサ300に供給するように構成されており、さらにイメージアドレスプロセッサ300はこれらの座標を少なくとも一部は1以上の変換値に基づいて変換済み座標に変換するように構成されている。種々の実施態様において、イメージアドレスプロセッサ300はモデルの座標を幾何学的変換に従って変換することを可能にする。
【００６１】
幾何学的変換に従ってモデルの座標を変換する能力を有することにより、イメージ内の特徴をサーチするときに、イメージ内の特徴を異なる角度で回転させ、異なる寸法に拡大縮小し、または異なるイメージ内の異なる位置に変化させることができるという利点が提供される。幾つかの例で、1個の特徴のモデルを幾何学的に変換する能力により、モデルはイメージ内の特徴の回転、スケールまたは位置に関わりなくイメージ内の特徴を検出するために利用されることができる。種々の実施態様において、イメージアドレスプロセッサ300は1以上のアフィン変換値に従ってモデルの1以上の座標を変換するように構成されている。
【００６２】
種々の実施態様においてイメージアドレスプロセッサ300は、1以上のイメージメモリデバイス214にアクセスするために変換済み座標の第1の座標を1以上のイメージメモリデバイス214に供給し、さらに1以上のイメージメモリデバイス214が変換済み座標の第1の座標によってアドレス指定されたデータをイメージデータセレクタ215に供給するように構成されている。種々の実施態様においてイメージアドレスプロセッサ300は、変換済み座標の第2の座標をイメージデータセレクタ215に供給して、このイメージデータセレクタ215に1以上のイメージメモリデバイス214から受け取られたデータを変換済み座標の第2の座標に基づく量でシフトさせるように構成されている。
【００６３】
種々の実施態様において、制御回路222はモデルから累積増分および1以上の値をモデルデータシフタ216に供給するように構成されており、さらにモデルデータシフタ216は1以上の値および累積増分を1以上のコンパレータ・アキュムレータ400に供給するように構成されている。種々の実施態様において1以上のコンパレータ・アキュムレータ400は、サーチされるイメージのデータに基づいて取得された1以上の値を、モデルから得られた1以上の値と比較するように構成されている。また、種々の実施態様において1以上のコンパレータ・アキュムレータ400は、比較の結果に基づいて選択的に累積を実行して累積増分を累積するように構成されている。
【００６４】
種々の実施態様において、処理回路224は1以上のコンパレータ・アキュムレータ400から累積値を受け取って、イメージとモデルデータとの比較に対する極大応答を示すためにバイナリタグワードを形成するように構成されている。また、種々の実施態様において、プライオリティエンコーダ217は、処理回路224からバイナリタグワードを受け取り、このバイナリタグワードに基づいて制御回路222に出力を供給するように構成されている。種々の実施態様において、制御回路222はビジョンセンサ200から出力を供給するように構成されている。
【００６５】
図9はビジョンセンサ200の1実施態様を示す。種々の実施態様において、ビジョンセンサ200はピクセルアレー208、ピクセルコントローラ205、複数のアナログコンパレータ207、アナログランプ発生器204、複数のアナログ・デジタル変換器(ADC)ラッチ回路209およびデジタルランプ発生器203を含んでいる。種々の実施態様において、ピクセルアレー208は行と列に配列された複数のピクセル回路206を含んでいる。また、種々の実施態様において各ピクセル回路206は、撮像された場面の対応する部分の光度をサンプリングするために感光素子または光検出器、例えば光ダイオード等を含んでおり、さらに各ピクセル回路206はサンプリングされた光度に基づいてアナログピクセル信号を供給するように構成されている。
【００６６】
種々の実施態様において、ピクセルコントローラ205はピクセルアレー208内のピクセル回路206に制御信号を供給してピクセル回路206の動作を制御する。幾つかの実施態様において、ピクセルアレー208の同じ行にあるピクセル回路206は、ピクセルコントローラ205から送られる共通行の制御信号を共有し、ピクセルアレー208の同じ列にあるピクセル回路206は共通列の読み出し線を共有して出力を供給する。種々の実施態様において、ピクセルコントローラ205はピクセル回路206を制御して行毎に出力を供給する。また、種々の実施態様において、ピクセルアレー208内のピクセル回路206の各列から出力されたアナログピクセル信号は、対応するアナログコンパレータ207に入力される。
【００６７】
種々の実施態様において、ピクセルアレー208から出力されたアナログピクセル信号のアナログ・デジタル変換は、複数のアナログコンパレータ207、アナログランプ発生器204、複数のADCラッチ回路209およびデジタルランプ発生器203を用いて実行される。幾つかの実施態様において、ピクセルアレー208の各列で出力されたアナログピクセル信号が、対応するアナログコンパレータ207において、アナログランプ発生器204によって生成された共通アナログ基準レベルと比較される。また、幾つかの実施態様においてデジタルランプ発生器203は、アナログランプ発生器204によって生成されたアナログ基準レベルを表わすデジタル信号を生成するように構成されている。種々の実施態様において、いずれかの列でアナログ基準レベルがアナログピクセル信号に等しい場合には、対応するアナログコンパレータ207がデジタル出力を生成し、このデジタル出力が対応するADCラッチ回路209にデジタルランプ発生器203によって供給されたデジタル信号の値を保持させる。
【００６８】
種々の実施態様において、ビジョンセンサ200はさらに制御プロセッサ201、汎用メモリ202、複数のイメージ入力レジスタ210、複数の入力/出力(I/O)レジスタ211、複数のシフトレジスタ212、複数の算術論理演算ユニット(ALU)213、複数のイメージメモリデバイス214および複数のデータパス218を含んでいる。種々の実施態様において制御プロセッサ201は汎用メモリ202に接続されていて、ここからビジョンセンサ200の各要素を制御するためのプログラムおよびモデルを取得する。種々の実施態様において各ADCラッチ回路209は対応するイメージ入力レジスタ210に接続されており、各イメージ入力レジスタ210は出力データラインによって対応するデータパス218に接続されている。
【００６９】
種々の実施態様において、各データパス218はデータをビットシリアル形式で伝送するシリアルデータパスを含んでいる。他の種々の実施態様において、各データパス218はデータを伝送するための複数のデータラインを含んでいる。幾つかの実施態様において、複数のデータパス218はバスの部分である。また、幾つかの実施態様において、ピクセルアレー208内のピクセル回路206の各列にたいして少なくとも1個のデータパス218がある。種々の実施態様において、各データパス218は対応するイメージ入力レジスタ210、対応するI/Oレジスタ211、対応するシフトレジスタ212、対応するALU213および対応するイメージメモリデバイス214に接続されている。また、種々の実施態様において複数のI/Oレジスタ211はそれぞれ制御プロセッサ201に接続されていて、制御プロセッサ201との間でデータを出入力する。幾つかの実施態様において、複数のシフトレジスタ212はそれぞれ左右すぐ隣にシフトレジスタがあるときはこれらと接続されている。また、幾つかの実施態様において各ALU213は、少なくとも2個のデータ入力レジスタ(aおよびb)と1個の伝送レジスタ(c)を含む1組のレジスタを介して対応するデジタルイメージバス218と接続されている。
【００７０】
種々の実施態様において、各イメージ入力レジスタ210はデジタル化されたイメージデータを、対応するデータパス218を介して対応するI/Oレジスタ211、対応するシフトレジスタ212、対応するALU213および対応するイメージメモリデバイス214に提供する。種々の処理動作において、イメージデータは複数のイメージメモリデバイス214に一時的に保存されて、複数のALU213を用いて処理される。種々の実施態様において、処理されたイメージデータまたはその他のデータは、二次データ処理および/またはビジョンセンサ200の外部にある外部装置(図9に図示せず)とのデータの外部通信のために、制御プロセッサ201により複数のI/Oレジスタ211を通してアクセスされることができる。
【００７１】
図8および図9を参照して、種々の実施態様において制御回路222は制御プロセッサ201およびピクセルコントローラ205を含んでいる。また、種々の実施態様において処理回路224は複数のアナログコンパレータ207、アナログランプ発生器204、複数のADCラッチ回路209、デジタルランプ発生器203、複数のイメージ入力レジスタ210、複数のI/Oレジスタ211、複数のシフトレジスタ212および複数のALU213を含んでいる。種々の実施態様において、図8に示す1以上のイメージメモリデバイス214は、図9に示された複数のイメージメモリデバイス214を含む。
【００７２】
図9を参照して、種々の実施態様においてビジョンセンサ200はさらにイメージアドレスプロセッサ300、イメージデータセレクタ215、モデルデータシフタ216、複数のコンパレータ・アキュムレータ400,プライオリティエンコーダ217を含んでいる。種々の実施態様において、データパス218の各々はイメージデータセレクタ215に接続されている。また、種々の実施態様において制御プロセッサ201はイメージアドレスプロセッサ300に接続されており、イメージアドレスプロセッサ300は複数のイメージメモリデバイス214のアドレス入力およびイメージデータセレクタ215の制御入力に接続されている。
【００７３】
幾つかの実施態様において、制御プロセッサ201はモデルデータシフタ216の入力に接続されており、モデルデータシフタ216の出力は複数のコンパレータ・アキュムレータ400の各入力に接続されている。各コンパレータ・アキュムレータ400はまたイメージデータセレクタ215から入力を受け取るように接続されている。種々の実施態様において、イメージデータセレクタ215は双方向バレルシフタ等を含む。また、種々の実施態様において複数のコンパレータ・アキュムレータ400の各々は対応するデータパス218に接続されている。幾つかの実施態様において、プライオリティエンコーダ217は各データパス218に接続され、さらに制御プロセッサ201に接続されている。図9に示すビジョンセンサ200の実施態様は単に例として提示されたにすぎず、他の種々の実施態様においてビジョンセンサ200は他の適当な設計を有してよいと理解されるべきである。
【００７４】
図10はイメージアドレスプロセッサ300の実施態様のブロック図を示す。種々の実施態様においてイメージアドレスプロセッサ300は、変換モデルの座標を少なくとも一部は1以上の変換値に基づいて変換済み座標に変換するように構成されている。種々の実施態様において、イメージアドレスプロセッサ300は変換値を格納するために変換係数レジスタ302、303、304、305、イメージ行オフセットレジスタ301およびイメージ列オフセットレジスタ306を含んでいる。種々の実施態様において、イメージアドレスプロセッサ300はさらに符号付き乗算器307、308、309、310およびアドレス311、312、313、314を含んでいる。
【００７５】
種々の実施態様において、モデルの第1の座標(図10AにてXで示す)およびモデルの第2の座標(図10AにてYで示す)がイメージアドレスプロセッサ300への入力として用意される。図9および10Aを参照して、種々の実施態様において制御プロセッサ201は汎用メモリ202から1個のモデル指示を取り出し、このモデル指示に含まれている座標をイメージアドレスプロセッサ300に供給するように構成されている。例えば、図6C、図9および図10Aを参照して、制御プロセッサ201はモデルのモデル指示、例えばモデル例として提供されているモデル503の第1モデル指示を汎用メモリ202から取り出して、このモデル指示に含まれている座標、たとえば例における座標(-7、-2)をイメージアドレスプロセッサ300に供給するように構成されてよい。この例では、第1の座標に対する値-7はX入力としてイメージアドレスプロセッサ300に供給され、第2の座標に対する値-2はY入力としてイメージアドレスプロセッサ300に供給されるであろう。
【００７６】
図10Aを参照して、種々の実施態様において変換係数レジスタ302、303、304および305はそれぞれアフィン変換係数K00、K01、K11およびK10を格納するように書き込み可能であり、K00、K01、K11およびK10の値は所望の変換を実行できるように設定可能である。種々の実施態様において、イメージ行オフセットレジスタ301は行オフセット値DRを格納するように書き込み可能であり、イメージ列オフセットレジスタ306は列オフセット値DCを格納するように書き込み可能であり、DRおよびDCの値は設定可能である。図9および図10Aを参照して、種々の実施態様において制御プロセッサ201は、モデルに対する所望の幾何学的変換に基づいて値K00、K01、K11、K10、DRおよびDCをイメージアドレスプロセッサ300で設定するように構成されている。
【００７７】
種々の実施態様において、符号付き乗算器307は変換係数レジスタ302から入力と、変換される第1の座標である入力を受け取り、加算器311に出力を供給する。また、種々の実施態様において符号付き乗算器308は変換係数レジスタ303から入力と、変換される第2の座標である入力を受け取り、加算器311に出力を供給する。種々の実施態様において、符号付き乗算器309は変換係数レジスタ304から入力と、変換される第2の座標である入力を受け取り、加算器312に出力を供給する。また、種々の実施態様において符号付き乗算器310は変換係数レジスタ305からの入力と、変換される第1の座標である入力を受け取り、加算器312に出力を供給する。
【００７８】
種々の実施態様において、加算器311は符号付き乗算器307および符号付き乗算器308から入力を受け取り、出力を加算器313に供給する。また、種々の実施態様において加算器312は符号付き乗算器309および符号付き乗算器310から入力を受け取り、加算器314に出力を供給する。種々の実施態様において、加算器313はイメージ行オフセットレジスタ301および加算器311から入力を受け取り、出力として第1の変換済み座標(図10AにてRで示す)を供給する。また、種々の実施態様において加算器314はイメージ列オフセットレジスタ306および加算器312から入力を受け取り、出力として第2の変換済み座標(図10AにてCで示す)を供給する。こうして、図10Aの実施態様ではイメージアドレスプロセッサ300は複数の変換値K00、K01、Kll、K10、DRおよびDCに基づいて座標(X、Y)を変換済み座標(R、C)に変換することを可能にする。
【００７９】
図10Bは、図10Aのイメージアドレスプロセッサ300の実施態様に対して、(X、Y)入力と(R、C)出力との関係を指定する方程式を含むテキストボックス315を提供する。図10Bに示されているように、Rに対する方程式はR=X*K00+Y*K01+DR、およびCに対する方程式はC=X*K10+Y*K11+DCとして提供される。こうして、図10Aのイメージアドレスプロセッサ300の実施態様は、所望の幾何学的変換に対する変換値を設定することにより、幾何学的変換、例えば回転、拡大縮小または移動に従ってモデルの座標を変換することを可能にする。イメージアドレスプロセッサ300の使用により幾何学的変換を可能にすることにより、1以上の特徴のモデルをイメージ内の1以上の特徴の異なる回転、スケールおよび移動に対するパターンマッチングのために使用できる。
【００８０】
図10Aのイメージアドレスプロセッサ300の実施態様において、イメージアドレスプロセッサ300は6個の変換値K00、K01、K11、K10、DRおよびDCに基づいて座標を変換することを可能にする。こうして、図10Aのイメージアドレスプロセッサ300の実施態様は、変換に対して6個の自由度を許容する。もちろん、イメージアドレスプロセッサ300の他の種々の実施態様において、変換に対して7個以上の自由度を許容するために7個以上の変換値を使用できると理解されなければならない。例えば種々の実施態様において、イメージアドレスプロセッサ300に他の3個の変換値が提供され、イメージアドレスプロセッサ300はさらに斜視図的な歪みに変換できるように構成されている。他の種々の実施態様において、イメージアドレスプロセッサ300に6個未満の変換値も使用されてよいと理解されるべきである。例えば、イメージアドレスプロセッサ300の種々の実施態様は、変換のために2個のみの変換値を設定できる。また、図10Aに示したイメージアドレスプロセッサ300の実施態様は、単にイメージアドレスプロセッサ300の設計例として提示されたにすぎず、他の種々の実施態様において、座標を変換する目的でイメージアドレスプロセッサ300に対して異なる設計が使用されてよいと理解されるべきである。
【００８１】
図11はコンパレータ・アキュムレータ400の実施態様のブロック図を示す。種々の実施態様において、コンパレータ・アキュムレータ400はイメージデータシフタ401、イメージデータデコーダ402、複数のANDゲート403、ORゲート404、マッチシフタ405、マッチエンコーダ406およびマッチアキュムレータ407を含んでいる。種々の実施態様において、イメージデータシフタ401はイメージデータ入力ライン408からデータを受け取り、イメージデータシフタ401がクロックされる毎にイメージデータシフタ401内部でデータを1位置ずつシフトさせるように構成されている。また、種々の実施態様においてイメージデータシフタ401は出力をイメージデータデコーダ402に供給するように構成されている。
【００８２】
種々の実施態様において、イメージデータデコーダ402はイメージデータシフタ401から供給された値を復号し、復号された値の各ビットを複数のANDゲート403の対応するANDゲートの対応する第1の入力に供給するように構成されている。また、種々の実施態様においてモデルの1以上のモデル値の各ビットは1本以上のモデルデータ入力ライン409を介して、複数のANDゲート403の対応するANDゲートの対応する第2の入力に供給される。例えば、図6B、図6C、図9および図11を参照して、モデル、例えばモデル503が制御プロセッサ201によって実行される場合には、図6Bに示されたA1組に対するビット列がモデルデータシフタ216内で再構成され得るが、そのためには制御プロセッサ201に値をモデル503内の第2モデル指示から第5モデル指示までの各々のV列から、モデルデータシフタ216に送らせ、次にモデルデータシフタ216がビット列の各ビットを1本以上のモデルデータ入力ライン409を通して複数のANDゲート403の対応するANDゲートの対応する第2の入力に送る。
【００８３】
さらに、種々の実施態様において、イメージからのビットがイメージデータシフタ401にシフトされ、次にイメージデータデコーダ402によって、イメージデータシフタ401内の2進数の10進値に対応するビット位置では「1」、その他すべての位置では「0」ビットを有するビット列への2進拡張を通して復号されてよく、復号されたビット列内の下位ビットはビット位置0に対応する。種々の実施態様において、イメージデータデコーダ402からの復号されたビット列は複数のANDゲート403を用いて、モデル内の値から再構成され1本以上のモデルデータ入力ライン409で供給されたビット列と比較されてよい。種々の実施態様において、ORゲート404は複数のANDゲート403の各々の出力を受け取り、複数のANDゲート403の出力のいずれかが「1」である場合には出力ビット「1」を送り出す。幾つかの実施態様においてORゲート404は、複数のANDゲート403のいずれかが値「1」のビットを出力したか決定するように構成された複数のORゲートと置き換えることができる。種々の実施態様において、ORゲート404の出力はあるイメージのイメージデータと、モデルの特定の幾何学的変換に対するモデルのモデルデータと、幾何学的に変換されたモデルのイメージに関するポジショニングとの間に一致が見いだされたか否かを示す。種々の実施態様において、複数のANDゲート403およびORゲート404はコンパレータと見なされてよい。もちろん、複数のANDゲート403およびORゲート404は単に比較を実行するための設計例として提示されたにすぎず、他の種々の実施態様においてその他のタイプのコンパレータ使用がされてよいと理解されるべきである。
【００８４】
種々の実施態様において、ORゲート404の出力はマッチシフタ405に供給され、さらにこのマッチシフタ405はORゲート404から供給されたビットを入力し、他のビットはマッチシフタ405がクロックされる毎に1位置ずつマッチシフタ405にシフトさせるように構成されている。種々の実施態様において、マッチシフタ405内のデータはマッチエンコーダ406に出力され、さらにこのマッチエンコーダ406はマッチシフタ405内に格納されたビットによって表される値を符号化して、マッチアキュムレータ407のクロックに出力を供給するように構成されている。種々の実施態様において、マッチアキュムレータ407は1本以上のモデルデータ入力ライン409を通してモデルの累積増分を受け取り、マッチエンコーダ406の出力の値に基づいてクロックされると累積増分を累積するように構成されている。また、種々の実施態様においてマッチアキュムレータ407は、マッチアキュムレータ407内で累積された値を対応するデータパス218に出力するように構成されている。
【００８５】
図6C、図8、図9および図11を参照して、種々の実施態様において制御回路222は各コンパレータ・アキュムレータ400に信号を送って、制御回路222がリセット命令、例えばモデル503における第1モデル指示に対するRST列内の値「1」のビットを含むモデル指示を実行すると、各コンパレータ・アキュムレータ400内のマッチアキュムレータ407が既定値にリセットされるように構成されている。また、種々の実施態様において制御回路222は、制御回路222が比較命令、例えばモデル503における第5モデル指示に対するCMP列内の値「1」のビットを含むモデル指示を実行すると、各コンパレータ・アキュムレータ400内のマッチアキュムレータ407による累積を可能にするように構成されている。このような実施態様において、各コンパレータ・アキュムレータ400内のマッチアキュムレータ407は対応するマッチエンコーダ406の出力によってクロックされてもよく、累積が許容されれば、マッチアキュムレータ407は対応するマッチエンコーダ406から出力された値に応じて累積を実行するか、または実行しない。
【００８６】
図9を参照して、種々の実施態様においてビジョンセンサ200はイメージを取得し、処理を効果的に実行して、格納された1以上の特徴のモデルへの最大応答を特定することを可能にする。種々の実施態様において、ピクセル値は自動的または準自動的にイメージ例または1組のイメージ例から抽出されてイメージ処理カーネルまたはモデルを生み出す。また、種々の実施態様においてビジョンセンサ200によってモデルを利用して図像レベルのパターンマッチングが実行される。幾つかの実施態様において、モデルデータの座標はビジョンセンサ200によって幾何学的に変換され体系的にイメージ候補に適用されて、コンパレータ・アキュムレータ応答を生成する。コンパレータ・アキュムレータ応答はそれぞれ幾何学的に変換されたモデルとイメージ内の対応する候補位置との間の類似の程度を表す。種々の実施態様において、ビジョンセンサ200はコンパレータ・アキュムレータ応答をサーチして最大類似のポイントを特定することを可能にし、これらのポイントの座標はそれぞれモデルの幾何学的変換とイメージ候補が潜在的に一致する個別の位置に対応している。本発明の種々の実施態様は、あるイメージを捕捉し、この捕捉されたイメージと最大限に相関するモデルをもたらすような、養成されたモデルまたは図像レベルのパターン例の一部または全部の変換を識別するための効果的方法およびビジョンセンサを提供する。
【００８７】
図12は、本発明の実施態様に従う方法のフローチャートを示す。種々の実施態様において、本方法は養成されたモデルとの最大類似を呈するイメージ内の特徴をサーチするためにビジョンセンサ、例えば図9に示すビジョンセンサ200を使用することを可能にする。S30では、入って来る光学的イメージを捕捉および処理してサーチされる場面の2値イメージを形成する。図9および図12を参照して、種々の実施態様においてピクセルアレー208のピクセル回路206はそれぞれ撮像された場面の対応する部分の光度をサンプリングし、サンプリングされた光度に基づいてピクセル信号を供給するように構成されている。種々の実施態様において、ビジョンセンサ200はプログラムを実行することにより、ピクセル回路206内で集めたデータをデジタル化および処理して1個の2値イメージを形成し、この2値イメージを複数のイメージメモリデバイス214に格納する。このような実施態様において、複数のイメージメモリデバイス214に格納された2値イメージは情報を保持するように形成されており、この情報に基づいて撮像された物理的場面に存在するオブジェクトの境界が、2値イメージに対するイメージデータから確実に推定できる。
【００８８】
種々の実施態様において、検査される物理的場面に対する光はピクセルアレー208によってサンプリングされてピクセル信号を供給する。ピクセル信号は複数のアナログコンパレータ207、アナログランプ発生器204、デジタルランプ発生器203および複数のADCラッチ回路209によってデジタル化され、このデジタル化されたピクセル信号から2値イメージが形成されて、複数のイメージメモリデバイス214に格納される。幾つかの実施態様において、ピクセル信号はグレースケール強度値にデジタル化され、次にこれらのグレースケール強度値は複数のALU213を用いて基準レベルと比較されて2値イメージに到達する。そこで基準レベルは制御プロセッサ201により比較のために複数のI/Oレジスタ211に格納される。幾つかの実施態様において、ビジョンセンサ200は捕捉されたイメージを処理して特定の空間周波数をフィルタリングし、フィルタリングされたイメージをデジタル化して2値イメージを形成し、複数のイメージメモリデバイス214に格納するように構成されている。幾つかの実施態様において、ビジョンセンサ200は多数のイメージを取得および処理して複合的2値結果を形成し、複数のイメージメモリデバイス214に格納するように構成されている。こうして、ビジョンセンサ200の種々の実施態様は、ピクセルイメージ毎に検査される物理的場面を表す1個のビットを形成することができる。
【００８９】
再び図12を参照して、次に本方法は最も外側のループ1201に続く。図12の方法は最も外側のループ1201と、この最も外側のループ1201に内包されている最も内側のループ1202を含んでいる。図12の方法のループ1201および1202は、モデルの幾何学的変換と格納された2値イメージを体系的に比較することを可能にする。最も内側のループ1202は1度にイメージの1行の移動次元を横断することを可能にし、最も外側のループ1201はサーチ空間の回転および/またはスケール次元を横断することを可能にする。サーチの種々の実施態様において、サーチ空間におけるいずれかの次元でのサンプリング速度は、受入れ可能なイメージ特徴の一致に対するモデルの予想される応答と、非常に類似しているが真の一致を表していないイメージ特徴に対するモデルの予想される応答の双方によって設定されてよい。
【００９０】
種々の実施態様において、最も外側のループ1201はサーチのすべてのアフィン変換に対して反復される。図9、図10Aおよび図12を参照して、S31において2値イメージに対するモデルの回転およびスケールを確定するために変換係数がイメージアドレスプロセッサ300に書き込まれる。種々の実施態様において、制御プロセッサ201はアフィン変換係数をイメージアドレスプロセッサ300に書き込むように構成されている。また、種々の実施態様において回転およびスケールを設定するためのアフィン変換係数は、それぞれ変換係数レジスタ302、303、304および305に格納されたK00、K01、K11およびK10である。次に本方法は最も内側のループ1202 に続く。
【００９１】
種々の実施態様において、最も内側のループ1202は2値イメージ内のすべてのサーチ行に対して反復される。種々の実施態様において、S32で2値イメージに対するモデルの移動を確定するために、イメージアドレスプロセッサ300に1以上の変換係数が書き込まれる。幾つかの実施態様において、ビジョンセンサ200は全行の結果を平行に累積するように構成されており、列変換コンポーネント(DC)はイメージ列オフセットレジスタ306内で「0」に設定されてよい。なぜならばこのような比較は2値イメージの列軸に沿って不変な変換だからである。種々の実施態様において、制御プロセッサ201は行変換コンポーネント(DR)をイメージ行オフセットレジスタ301書き込んで、2値イメージに対するモデルの行オフセットを設定する。次に本方法はS33に続く。
【００９２】
S33において、モデルのモデル指示が実行されてコンパレータ・アキュムレータ応答を形成する。図2、図9および図12を参照して、種々の実施態様においてモデルを実行する処理によって複数のコンパレータ・アキュムレータ400は2値イメージとモデルとの類似の程度を表すデジタル値を計算する。種々の実施態様において、モデルは現在の行に沿って2値イメージの各列で同時に2値イメージと比較される。種々の実施態様において1以上の回路230は、モデルの1以上の座標を変換した後で、イメージに対するモデルの複数のポジショニングの各々についてモデルを2値イメージと比較するように構成されている。このような実施態様において、複数のポジショニングはイメージの行における複数の位置でのモデルの基準点のポジショニングを含んでいる。モデルの基準点の例が図6Aおよび図6Cの例ではモデル503の基準点580によって示されている。種々の実施態様において、幾何学的に変換されたモデルはイメージに対する現在のサーチ行に沿ってモデルの複数のポジショニングの各々について同時に2値イメージと比較されてよい。このような平行処理によってイメージ内の特徴の効果的なサーチが可能になる。
【００９３】
図14は、本発明の実施態様に従うモデル指示の復号および実行の例700を示す。例700では本発明の実施態様に従い汎用メモリ202、プログラムカウンタ237、イメージアドレスプロセッサ300、モデルデータシフタ216、複数のイメージメモリデバイス214、イメージデータセレクタ215、複数のコンパレータ・アキュムレータ400、データパス218および1本以上のモデルデータ入力ライン409が示されている。例700では、汎用メモリ202は図7Cのモデル605を格納しているが、これは単にモデルのタイプ例として提示されているにすぎない。図9および図14を参照して、種々の実施態様において、制御プロセッサ201はプログラムカウンタ237を含んでおり、制御プロセッサ201はプログラムカウンタ237によって指定されたモデル指示を読み取って復号してからプログラムカウンタ237の値を次の値に増分することによって、汎用メモリ202に格納されたモデル指示を読み取り復号するように構成されている。例700ではプログラムカウンタ237の現在の値は10であり、例700は汎用メモリ202に格納された第10モデル指示を示している。
【００９４】
例700では、イメージアドレスプロセッサ300は例として次の変換値が書き込まれている。K00=1、K01=0、K10=0、K11=1、DR=9およびDC=0。こうして例700では、イメージアドレスプロセッサ300は各モデル指示に対する座標(X、Y)を2つの方程式(i)R=X*1+Y*0+9および(ii)C=X*0+Y*1+0に従って変換する。例700で与えられた変換値は単に例として提示されたにすぎず、イメージアドレスプロセッサ300内の変換値はモデルの異なる所望の幾何学的変換に対して変更され得ると理解されるべきである。
【００９５】
図13は本発明の実施態様に従う方法のフローチャートを示す。図13の方法は種々の実施態様においてモデルを実行するために図12の方法のステップS33で用いられてよい。図9、13および14を参照して、S50で複数のコンパレータ・アキュムレータ400およびプログラムカウンタ237が既定値にリセットされて、本方法はS51に続く。S51において、プログラムカウンタ237内の値によって指定されたモデル指示のV部分から1個の値がモデルデータシフタ216にシフトされる。例えば例700は、例700の汎用メモリ202内の第1モデル指示例から第10モデル指示例まで実行された後で、汎用メモリ202内の第10モデル指示例が実行されるときのプログラムカウンタ237およびモデルデータシフタ216の状態を示している。例700では、例中の第10モデル指示のV列から値「0x08」がモデルデータシフタ216にシフトされ、モデルデータシフタ216はV列から値を、例中の第6モデル指示から第9モデル指示に対してモデルデータシフタ216内の位置にシフトする。種々の実施態様において、モデルデータシフタ216は多数のモデル指示からデータを集めて複数のコンパレータ・アキュムレータ400に配分されるモデルデータ入力ワードを構成する。次に本方法はS52に続く。
【００９６】
S52で、現在実行しているモデル指示の座標は、イメージアドレスプロセッサ300を用いて変換済み座標に変換される。例えば例700において、例700の第10モデル指示が実行されるときに座標(4、4)がイメージアドレスプロセッサ300に供給され、イメージアドレスプロセッサ300は例700で設定された変換値に基づいて変換済み座標(13、4)を供給する。種々の実施態様において、イメージアドレスプロセッサ300は、変換済み座標の第1の座標を複数のイメージメモリデバイス214に供給するように構成されており、さらに変換済み座標の第2の座標を複数のイメージメモリデバイス215に供給するように構成されている。例えば例700では、イメージアドレスプロセッサ300は変換済み座標の第1の座標に対する値「13」を複数のイメージメモリデバイス214に送り、イメージアドレスプロセッサ300は変換済み座標の第2の座標に対する値「4」をイメージデータセレクタ215に送る。次に本方法はS53に続く。
【００９７】
S53では、変換済み座標の第1の座標を用いて複数のイメージメモリデバイス214がアクセスされ、それにより複数のイメージメモリデバイス214は互いに同時にイメージデータセレクタ215にデータを出力する。例えば例700では、変換済み座標の第1の座標の値「13」を用いて複数のイメージメモリデバイス214がアクセスされ、それにより複数のイメージメモリデバイス214は複数のイメージメモリデバイス214内に格納された2値イメージの行13のデータに対して、互いに同時にイメージデータセレクタ215にデータを出力する。例700におけるイメージメモリデバイス214内のデータは単に2値イメージの1例に対するデータ例にすぎない。例700では、2値イメージの行13および列19における2値イメージに対するデータは値「1」のビットであり、これは行13からのその他のデータと一緒にイメージデータセレクタ215に供給されることが示されている。次に本方法はS54に続く。
【００９８】
S54では、イメージデータセレクタ215内のデータは変換済み座標の第2の座標に基づく量だけシフトされて、対応するコンパレータ・アキュムレータ400に出力される。例えば例700では、イメージデータセレクタ215は変換済み座標の第2の座標に対して値「4」を受け取り、次にイメージデータセレクタ215内のデータを左に4位置シフトさせる。こうして例700では、2値イメージの行13および列19からの値「1」のビットはイメージデータセレクタ215内で左に4位置だけシフトされて、列15のコンパレータ・アキュムレータ400に出力される。次に本方法はS55に続く。
【００９９】
S55で、複数のコンパレータ・アキュムレータ400の各コンパレータ・アキュムレータ400の各イメージデータシフタ401が、イメージデータセレクタ215から供給される対応するビットにシフトする。例えば例700では、列15のコンパレータ・アキュムレータ400のイメージデータシフタ401はイメージデータセレクタ215からの値「1」のビットにシフトし、また先行の4個のモデル指示を実行することを通して取得されたビットを、列15のコンパレータ・アキュムレータ400のイメージデータシフタ401で1位置下にシフトする。次に本方法はS56に続く。
【０１００】
S56では、現在実行されているモデル指示が比較命令を含んでいるか否か決定される。現在実行されているモデル指示が比較命令を含んでいない場合には方法はS57に続き、ここでプログラムカウンタ237が増分され、次に本方法はS51に戻ってモデル内の次のモデル指示を実行する。他方、現在実行されているモデル指示が比較命令を含んでいる場合には、本方法はS58に続く。例えば例700では、第10モデル指示に対する列CMPの値「1」のビットで示されているように第10モデル指示は比較命令を含んでいる。
【０１０１】
S58では、各コンパレータ・アキュムレータ400の各イメージデータシフタ401内のデータは対応するビット列に復号されて、モデルデータシフタ216のデータから形成されるビット列と比較される。例えば例700では列15のコンパレータ・アキュムレータ400における2進値「11011」は10進値27に相当し、ビット列「00001000000000000000000000000000」に復号される。ここで値「1」は最下位ビットがビット位置0である場合にビット27の位置に置かれる。また、例700ではモデルデータシフタ216からの値「0x08」、「0x00」、「0x08」および「0x00」が2進形式で組み合わされてビット列「00001000000000000000100000000000」を形成する。これは1本以上のモデルデータ入力ライン409を介して複数のコンパレータ・アキュムレータ400の各々に供給される。次に例700では、列15のコンパレータ・アキュムレータ400がビット列「00001000000000000000000000000000」とビット列「00001000000000000000100000000000」の論理ANDを実行し、その結果「00001000000000000000000000000000」の非ゼロ値が得られる。例700では比較の結果が非ゼロ値であるから一致が存在する。種々の実施態様において、複数のコンパレータ・アキュムレータ400が互いに同時に、2値イメージのデータに基づいて取得された1以上の対応する値をモデルの1以上の値と比較する。次に本方法はS59に続く。
【０１０２】
S59では、モデルデータシフタ216から供給された累積増分が、S58で一致が見いだされた複数のコンパレータ・アキュムレータ400の各コンパレータ・アキュムレータ400に累積される。例えば例700では、モデルデータシフタ216は第10モデル指示を実行するときに累積増分として16進値「0xW2」を供給する。ここで「W2」は例700における第6モデル指示から供給された累積増分に対する任意のウェイト設定である。種々の実施態様においてコンパレータ・アキュムレータ400内に非ゼロ比較が存在する場合は、比較から非ゼロが出力されることによりコンパレータ・アキュムレータ400のアキュムレータがクロックされて、モデルデータシフタ216からの累積増分を累積する。例700では、列15のコンパレータ・アキュムレータ400は一致を有しており、そのため累積増分0xW2を例700で既に累積された値0xW1に累積する。その結果として例700では、列15のコンパレータ・アキュムレータ400に格納された値0xWl+0xW2は、モデルの基準点が2値イメージの行9(DR=9)および列15にポジショニングされている場合に、イメージアドレスプロセッサ300による変換として実行されたモデルと、複数のイメージメモリデバイス214に格納された値イメージとの間に完全な一致があったことを示している。次に本方法はS60に続く。
【０１０３】
S60では、現在実行されているモデル指示が、実行されているモデル指示の最後の命令であるか否か決定される。現在実行されているモデル指示が当該モデルにおける最後の指示ではないと決定された場合には方法はS57に続き、そこでプログラムカウンタ237は増分され、次にS51に戻って次のモデル指示を実行する。他方、現在実行されているモデル指示が当該モデルにおける最後の指示であると決定された場合には、図13の方法はS61で終わる。
【０１０４】
再び図12を参照して、S33でモデルのモデル指示が実行されてコンパレータ・アキュムレータ応答を形成したら、図12の方法はS34に続く。図9および図12を参照して、S34ではモデルの実行により複数のコンパレータ・アキュムレータ400の各々に累積された値が処理されて、関連するコンパレータ・アキュムレータ400における有意な極大値を有する列を表示するタグワードを形成する。種々の実施態様において、サーチされている現在の行に沿ったモデルの応答が複数のALU213を用いて処理されて、当該行に沿った極大値のビットマップを生成する。このような処理は種々の方法によって実行されてよい。例えば1次元グレースケールモルフォロジー演算によって局所近傍におけるより弱い値を連続的にフィルタアウトして、フィルタリングされた結果を所定の全体最小応答と比較して2値イメージの各列に対して1ビットを有するバイナリタグワードを形成する。ここである列に対するバイナリタグワードにおける論理値「1」は、当該列に関連して所定の全体最小応答より大きいコンパレータ・アキュムレータ400からの極大応答が存在することを示している。種々の実施態様において、極大応答が決定された局所近傍のサイズを定義するためにウインドウサイズは少なくとも列によって指定されてよい。次に本方法はS35に続く。S35では、S34で形成されたバイナリタグワードがプライオリティエンコーダ217に供給され、本方法は次にS36に続く。
【０１０５】
S36では、プライオリティエンコーダ217が制御プロセッサ201によって読み取られて、現在処理されている行に対してモデルの実行に基づく極大応答と関連した列のリストを形成する。種々の実施態様においてプライオリティエンコーダ217は、プライオリティエンコーダがバイナリタグワードで値「1」を有する最上位ビットの列座標を出力するように構成されている。次に、プライオリティエンコーダ217は制御プロセッサ201によって読み取られる度に、バイナリタグワードで値「1」を有する次の最上位ビットの列座標で応答し、バイナリタグワードで値「1」を有する最後のビットの列座標を出力するまで続く。このような実施態様において、制御プロセッサ201は現在処理されている行におけるすべての極大応答に対して、当該行に対して存在する有効な極大値と同じ数のステップで列座標を取得でき、その数は実際には小さい数であってよい。種々の実施態様において、制御プロセッサ201は現在処理されている行に対してプライオリティエンコーダ217から取得された列座標を、制御プロセッサ201による後続の処理のために汎用メモリ202内のリストに格納するように構成されている。種々の実施態様において、現在処理されている行に対してモデルを実行する際に、モデルを実行した結果、複数のコンパレータ・アキュムレータ400から所定の全体最小応答に適合する極大応答が生じないことがある。この場合にはバイナリタグワードはすべてゼロとなり、制御プロセッサ201によって当該行に対する列位置のリストに列位置が付加されないであろう。次に本方法はS37に続く。
【０１０６】
S37で、制御プロセッサ201はステップS36で形成された列座標のリストを用いて対応するコンパレータ・アキュムレータ400にアクセスし、対応するコンパレータ・アキュムレータ400に格納された累積値または累積結果を読み取る。次に本方法はS38に続く。S38では、コンパレータ・アキュムレータ400から取得された累積値または累積応答が制御プロセッサ201によって行、列、角度およびスケール座標と組み合わされて、それぞれ現在処理されている行に沿った潜在的一致に対するサーチ空間座標を含む姿勢のリストを形成する。種々の実施態様において、各姿勢に対する行は2値イメージの現在処理されている行として設定され、各姿勢に対する列は対応するコンパレータ・アキュムレータ400の列として設定され、これが読み取られて当該姿勢に対する累積値を供給する。また、種々の実施態様において、姿勢に対する角度およびスケール情報は現在イメージアドレスプロセッサ300で設定されている変換値に基づいて供給される。
【０１０７】
種々の実施態様において、制御プロセッサ201は、モデルと2値イメージとの少なくとも部分的な一致をもたらす、2値イメージと相対的なモデルの何らかの姿勢を記録するように構成されている。種々の実施態様において、各姿勢はイメージの対応する行およびイメージの対応する列を指定する。幾つかの実施態様において、各姿勢はさらにモデルの対応する回転角度およびモデルの対応するスケール値を指定する。また、幾つかの実施態様において各姿勢はさらに対応するコンパレータ・アキュムレータ400から読み取られた累積値を指定する。種々の実施態様において、制御プロセッサ201はステップS36で形成された列座標のリスクに含まれた列座標に基づいて、現在処理されている行に対する姿勢リストを形成するように構成されている。次に本方法はS39に続く。
【０１０８】
S39において、現在処理されている行に対する姿勢を含む行姿勢リストは、全体姿勢リストと統合されて更新済み全体姿勢リストを形成する。種々の実施態様において、制御プロセッサ201はステップS38で形成された姿勢リストを、現在のサーチステップまで累積されてきた全体姿勢リストと統合するように構成されている。幾つかの実施態様において、行姿勢リストと全体姿勢リストとの統合は、それらのサーチ空間の近似性に基づいて対応する同一ポイントを表すものと決定された姿勢を集合することによって達成される。種々の実施態様において、それらの集合の中で他の姿勢に対して準最大応答を有する姿勢は冗長的と見なされ、全体姿勢リストから削除されてよい。種々の実施態様において、最も内側のループ1202は2値イメージ内のすべてのサーチ行に対して反復され、最も外側のループ1201はサーチのすべてのアフィン変換に対して反復される。幾つかの実施態様において、サーチ中少なくとも1個のコンパレータ・アキュムレータ400から少なくともある所定のレベルか、またはそれ以上の応答が得られたことが全体姿勢リスト内の情報によって証明される場合には、サーチは早期に終了されてもよい。最も外側のループ1201が完成したら、本方法はS40に続く。
【０１０９】
S40では、全体姿勢リストが処理されてサーチ結果を形成する。種々の実施態様において、全体姿勢リストがサーチされてすべての応答の間に全体最大応答を見いだす。幾つかの実施態様において、所定の基準を満たす全体姿勢リスト内の応答の数が計数される。種々の実施態様において、制御プロセッサ201は、サーチ結果に基づいてビジョンセンサ200からのデータを出力するように構成されている。図3および図9を参照して、種々の実施態様においてビジョンセンサ200はサーチ結果に基づいてデータをデバイス240に供給するようには構成されている。種々の実施態様において、ビジョンセンサ200はサーチ結果に基づいて2値イメージ中に1以上の特徴が見いだされたと決定された場合にトリガ信号をデバイス240に供給するように構成されている。幾つかの実施態様においてデバイス240は、イメージデータを処理することができるタイプの装置であり、ビジョンセンサ200はサーチ結果に基づいて選択されたイメージデータをデバイス240に伝送するように構成されている。
【０１１０】
幾つかの実施態様において、制御プロセッサ201はサーチ結果に基づいて適応利得または露出制御を実行して、同じまたは異なるオブジェクトのイメージを取得するためのパラメータ、例えばピクセルアレー208を用いて露出時間を制御するために使用されるパラメータを特定の値またはレンジに調整するように構成されている。種々の実施態様において、制御プロセッサ201は種々異なる利得、露出および/またはオフセットパラメータの全部または一部を循環するように構成されている。これに従い種々の実施態様において、パラメータの循環によって取得されたイメージが処理されて、以後の処理にとって良好な1以上のイメージが選択される。幾つかの実施態様において、制御プロセッサ201は他のパラメータを変化させてイメージを取得し、それらのイメージをサーチして、以後の内部処理のために特定のイメージ候補を識別し、または以後の処理のために装置、例えばデバイス240の種々の実施態様に送られる。例えばID読取り機に使用する場合、種々の実施態様においてビジョンセンサ200は多数のイメージを取得し、種々のモデルを利用してイメージをサーチして、以後の処理のためのイメージ候補を識別する。種々の実施態様において、ビジョンセンサ200はID読取り機を代用できる。
【０１１１】
幾つかの実施態様において、ビジョンセンサ200はある場面を通過移動するときに、1以上の特徴のモデルを利用して連続的に捕捉された多数のイメージで実行されるサーチのサーチ結果に基づき1以上の特徴を追跡するように構成されている。幾つかの実施態様において、制御プロセッサ201は、サーチのサーチ結果に基づいて特定のプログラム、モデルまたはその他のデータを外部装置から汎用メモリ202に取り込むように構成されている。また、種々の実施態様において制御プロセッサ201は、サーチのサーチ結果に基づいて1以上の光学装置(図示せず)を制御して当該光学装置の焦点を合わせるように構成されている。
【０１１２】
幾つかの実施態様においてビジョンセンサ200は、1以上のオブジェクトを表す1以上の特徴のモデルを利用して連続的に捕捉された多数のイメージで実行されるサーチのサーチ結果に基づいて、ある場面における1以上のオブジェクトの運動に関する証拠を集めるように構成されており、さらに集められた証拠に基づいて1以上のオブジェクトの未来の位置を予測するように構成されている。また、幾つかの実施態様においてビジョンセンサ200は、イメージを取得して、連続するイメージの分析に基づいてある場面の照明が特定の目的のために十分であるか否かに関する証拠を集めるように構成されている。幾つかの実施態様においてビジョンセンサ200は、イメージを処理した結果に基づいて予測または決定を行い、さらにビジョンセンサ200がそれ以上のイメージを取得および分析を続けるときに、予測または決定を連続的に精緻化するように構成されてよい。
【０１１３】
幾つかの実施態様において、ビジョンセンサ200は全体シャッタ動作を使用するように構成されており、ピクセルアレー208内のすべてのピクセル回路206がリセットされ、次に同時に所定の時間露出されて、捕捉動作のために光から電荷を蓄積する。幾つかの実施態様においてビジョンセンサ200は、巻上げシャッタ動作を使用するように構成されており、ピクセルアレー208の同じ行におけるすべてのピクセル回路206がリセットされ、次に同時に所定の時間露出され、さらに捕捉処理はピクセルアレー208を通して行毎に処理する。他の種々の実施態様において、別のタイプのシャッタ動作が用いられてよい。
【０１１４】
種々の実施態様においてビジョンセンサ200は、ピクセルアレー208の露出パターンが露出情報に従って設定されるタイプのシャッタ動作を用いてイメージを取得するように構成されており、露出情報は時間とともに少なくとも一部はピクセルアレー208の少なくとも一部分に蓄積された電荷に基づいて変化する。このような実施態様において、ビジョンセンサ200は2008年1月11日に出願された合衆国仮出願番号61/020560「マシンビジョンのためのCMOSイメージセンサ」に開示された回路を含んでよく、参照によりその全体が本明細書に編入される。種々の実施態様において、ビジョンセンサ200によって使用されるタイプのシャッタ動作は、1以上のモデルを利用してイメージに対して行われるサーチのサーチ結果に基づいて決定されてよい。また、種々の実施態様において、シャッタ動作のためのパラメータ、例えば露出時間等は、1以上のモデルを利用してイメージに対して行われるサーチのサーチ結果に基づいて決定されてよい。
【０１１５】
ここに開示された実施態様は、あらゆる点で説明のためのものであり、本発明を制限するものではない。例えば種々の実施態様において上述した以外のタイプの特徴のモデルを使用してよく、そのようなモデルを処理するための種々の実施態様におけるビジョンセンサの設計はモデルの処理に応じて調整されてよい。本発明は上記の実施態様に限定されるものでは決してない。これらの実施態様に対して本発明の精神と範囲から逸脱することなく種々の変更および修正を加えることが可能である。請求項と等効の意味および範囲内にある種々の変更および修正は、本発明の範囲内に含まれることが意図されている。
【図１】
2011508293.tif 000003
【図２】
2011508293.tif 000004
【図３】
2011508293.tif 000005
【図４】
2011508293.tif 000006
【図５】
2011508293.tif 000007
【図６】
2011508293.tif 000008
【図７】
2011508293.tif 000009
【図８】
2011508293.tif 000010
【図９】
2011508293.tif 000011
【図１０】
2011508293.tif 000012
【図１１】
2011508293.tif 000013
【図１２】
2011508293.tif 000014
【図１３】
2011508293.tif 000015
【図１４】
2011508293.tif 000016
【国際調査報告】
2011508293.tif 000017