(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-03-10
(54)【発明の名称】光学コード認識用イメージセンサ
(51)【国際特許分類】
G06T 1/20 20060101AFI20220303BHJP
G06K 7/10 20060101ALI20220303BHJP
【FI】
G06T1/20 Z
G06K7/10 372
G06K7/10 420
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021524041
(86)(22)【出願日】2019-10-28
(85)【翻訳文提出日】2021-06-30
(86)【国際出願番号】 EP2019079357
(87)【国際公開番号】W WO2020094441
(87)【国際公開日】2020-05-14
(32)【優先日】2018-11-06
(33)【優先権主張国・地域又は機関】FR
(81)【指定国・地域】
(71)【出願人】
【識別番号】520341234
【氏名又は名称】テレダイン・イー2ブイ・セミコンダクターズ・ソシエテ・パール・アクシオン・サンプリフィエ
【氏名又は名称原語表記】Teledyne e2v Semiconductors SAS
(74)【代理人】
【識別番号】100145403
【氏名又は名称】山尾 憲人
(74)【代理人】
【識別番号】100189555
【氏名又は名称】徳山 英浩
(74)【代理人】
【識別番号】100100479
【氏名又は名称】竹内 三喜夫
(72)【発明者】
【氏名】ディアスパッラ,ブルーノ
(72)【発明者】
【氏名】リゴザ,ティエリー
(72)【発明者】
【氏名】ギゲ,ロマン
(72)【発明者】
【氏名】パウエル,ギャレス
(72)【発明者】
【氏名】ファンルンベーケ,ジェローム
(72)【発明者】
【氏名】フーシェ,アルノー
【テーマコード(参考)】
5B057
【Fターム(参考)】
5B057CA08
5B057CA12
5B057CA16
5B057CD08
5B057CH04
5B057CH09
5B057CH11
5B057DB02
5B057DB09
(57)【要約】
光学コード認識システムでのコードリーダ用のCMOSイメージセンサを開示する。これは、計算プロセスをキャプチャ画像データ(DATA)に適用するデジタル処理回路(7)を集積しており、前記データは、センサの順次読み出し回路(4)によって取得され、キャプチャ画像データからマクロ画像(マクロデータ)を計算し、これはキャプチャ画像内のコードの位置情報に対応しており、そして、キャプチャ画像データに続いて、画像フレーム(DATA-OUT)内のマクロ画像をフレームのフッタに伝送する。
【特許請求の範囲】
【請求項1】
外部コマンド(trig)で画像のキャプチャを実施し、光学コード認識システムに向けて、対応する画像フレーム(DATA-OUT)内のキャプチャ画像データを出力するように構成されたCMOSイメージセンサであって、
イメージセンサは、同じ集積回路チップ内に集積され、
N個のラインおよびM個の列を含む画素マトリクス(1)と、
マトリクスの画素のN個のラインの順次読み取り回路(4)とを備え、
該センサはさらに、順次読み取り回路(4)によるそれらの取得に従って、キャプチャ画像データに計算プロセス(100)を適用し、そして同期した方法で、マクロ画像をオンザフライで計算し、前記キャプチャ画像内のコード位置情報に対応するキャプチャ画像データをスタートポイントとし、前記キャプチャ画像データに続いて、それを前記画像フレームのフッタ(DATA-OUT)に伝送するように構成されたデジタル処理回路(7)を含み、
前記マクロ画像は、各マクロ画像ポイントがキャプチャ画像のポイントのブロック(B)に対応するように構成され、
マクロ画像の前記計算プロセスは、少なくとも
・マトリクスの各画素について、
・畳み込みマスクの係数によって定義される少なくとも1つのフィルタ(F
CV)の計算の第1ステージ(101)であって、
画素に対して、画素を中心とする畳み込みマスクによって区切られた隣接ウインドウ内の前記画素および隣接画素のキャプチャ画像データから抽出された高周波空間情報に対応する第1数値(V
F)を確立し、
計算は、取得が進行するとともに、個々の画素および隣接画素の前記キャプチャ画像データについて、順次読み取り回路(4)によってオンザフライで実行され、
前記第1数値は、前記キャプチャ画像データと同じビット数(r)を使用してエンコードされる、第1ステージ(101)と、
・第1数値の2値化(BIN1)の第2ステージ(102)であって、マトリクスの各画素について第1バイナリ値(V
B1)を確立する、第2ステージ(102)と、
・マトリクスの画素の各ブロック(B)について、
・Q=b1+b2出力ビットの累積レジスタにおいて関係するブロック内の画素の前記第1バイナリ値(V
B1)を合計することによって、第2数値(VΣ)の計算の第3ステージ(103)であって、b1およびb2は、ブロック内の画素のラインの数n=2
b1およびブロック内の画素の列の数m=2
b2を定義し、nおよびmは1より大きい、第3ステージ(103)と、を含むことを特徴とするイメージセンサ。
【請求項2】
第2数値は、qビット(VΣ
q)を用いてエンコードされた値であり、q=1~Qである、請求項1に記載のイメージセンサ。
【請求項3】
計算プロセス(100)は、前記第2数値の2値化(BIN2)の第4ステージ(104)を含む、請求項1または2に記載のイメージセンサ。
【請求項4】
計算プロセス(100)は、浸食と、それに続いて膨張とを含み、これは第4ステージによって確立されたバイナリ値に適用される、請求項3に記載のイメージセンサ。
【請求項5】
設定可能な畳み込みマスクのメモリを備える、請求項1~4のいずれかに記載のイメージセンサ。
【請求項6】
第1数値は、畳み込みマスク計算の結果の絶対値である、請求項1~5のいずれかに記載のイメージセンサ。
【請求項7】
前記第1計算ステージは、マトリクスの各画素での水平勾配計算および垂直勾配にそれぞれ対応する少なくとも第1および第2畳み込みマスクに対して並列的に適用され、
第1数値(V
F)は、計算した前記勾配の絶対値の合計である、請求項1~5のいずれかに記載のイメージセンサ。
【請求項8】
前記第1ステージ(101)は、、下記リストからの少なくとも1つのフィルタの中からのフィルタ計算に対応する、請求項1~5のいずれかに記載のイメージセンサ。
固定した方向で1つ以上の勾配計算を組み合わせた無指向性の高周波フィルタ計算、
あるコードタイプを表す空間特性に対応するフィルタ。
【請求項9】
センサは、第1データフィルタ計算を、ターゲット物体の第1キャプチャ画像のデータに適用し、そして第1とは異なる第2フィルタ計算を、同じターゲット物体の第2キャプチャ画像のデータに適用し、
前記第1および第2フィルタ計算は、前記リストから選択される、請求項8に記載のイメージセンサ。
【請求項10】
第2キャプチャ画像は、第1キャプチャ画像のデータを用いて計算されたマクロ画像をスタートポイントとして決定した関心領域でのズームインに対応する、請求項9に記載のイメージセンサ。
【請求項11】
画素のブロックサイズは、キャプチャ画像内のコードのサイズの関数である、請求項1~10のいずれかに記載のイメージセンサ。
【請求項12】
ブロックサイズは、設定可能である、請求項11に記載のイメージセンサ。
【請求項13】
2値化ステージは、設定可能である個別の閾値(Vs1、Vs2)を利用する、請求項1~12のいずれかに記載のイメージセンサ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、光学コード認識デバイスで使用されるアクティブ画素(受光エレメント画素構造および制御トランジスタ)を含むCMOSタイプのマトリクスイメージセンサに関する。記号、リニアコード(1Dバーコード)またはマトリクスコード(QRコード(登録商標)、データマトリクス、Aztecなど)などのバーコードが存在する。前記コードは、例えば、工業または小売製品、医療または実験製品、または本に印刷され(ラベル、チケット、ポスター)または刻印されているか、あるいは、スマートフォンに画像として表示される(電子コード)。これらは、トレーサビリティ(製造、流通、ヘルスケア)、販売、在庫管理、発券(輸送、美術館)、そしてより一般的には支払いサービスへのアクセス、その他の追加コンテンツへのリンクの提供(ウエブページ)など、様々なアプリケーションに使用される。認識対象のコードは、ハードコピー文書または飾り額(ナンバープレート)に印刷またはエンボス加工された英数字の文字列でもよく、関連するアプリケーションは、特に、安全なアクセス管理及び/又は、例えば、道路料金所を通過する際のナンバープレートの認識や駐車場へのアクセスなどのサービスに対する有料アクセスである。
【背景技術】
【0002】
光学コード認識システムが、デジタル画像処理による画像のキャプチャおよびコードの認識または読み取りの2つの機能を有する。これにより光学コード認識システムは、製品、情報コンテンツ、サービスなどについて認識されるコードを関連付ける。
【0003】
画像は、リーダ(コードリーダ)に集積されたイメージセンサによってキャプチャされ、これは、照明システム(光学アセンブリ(ミラー、レンズ)とともに取り付けられたLED及び/又はレーザビームなどの光源)を集積し、そして、外部からの起動時に(ボタンまたはトリガーなどの機械的手段、または存在検出システムなどの電子的手段によって)、ターゲット物体の照明を制御し、センサによる画像の撮影を起動する電子制御システムを集積する。レーザポインタも設けられることがある(中央フォーカスとともに)。各画像は、外部デジタル処理システムに伝送され、これは、適合型デジタル処理ソフトウェアを用いて、画像を解析し、画像内に含まれる1つまたは複数のコードを検出(位置特定)し、認識(デコード)し、関連するアプリケーション機能を起動する。このシステムは、1つまたは複数のコードを迅速に認識できることが必要があり、そのためにハードウェア画像解析リソース(メモリ、DSPマイクロプロセッサ)を使用し、位置、コードタイプの調査(幾何学的基準)、解読方向への方向転換、復号化のための種々の異なる複雑な処理アルゴリズムを実施する。
【0004】
そのために、特にコントラストに関して、画質に応じていくつかの画像が必要になることがあり、システムは、リーダを起動して、例えば、露光時間、照明、ゲインなどの画像キャプチャパラメータを変更する。アクティブ画素を含むCMOSイメージセンサでは、処理システムは、関心領域の1つ以上を特定して、これらの特定の領域での画像データの取得を制限することが可能である。
【0005】
光学コード認識システムの本質的な特徴は、その処理速度である。前記処理速度は、画像品質に依存し、これは、画像が撮影されるコンテキスト(照明、露光時間)、ターゲット物体自体(サポート特性:平面性、反射品質、ストライプなど)、センサカメラに面する物体の相対位置に応じて変化する。画像コントラストは、デジタル処理(増強)によって、または多いまたは少ない照明を用いて新しい画像キャプチャを要求することによって改善できる。露光時間を調整し、より良い画像ヒストグラム(画像のグレースケール密度曲線)及び/又は変換ゲインを取得することも可能である。
【0006】
しかしながら、処理速度は、処理すべきデジタルデータの量、即ち、キャプチャ画像のサイズにも依存する。
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、現在のトレンドは、高解像度のCMOSイメージセンサを使用することであり、これは、特に、キャプチャ距離の制約(撮像面とターゲット物体との間の距離)を緩和することが可能になり、高いエンコードダイナミクス、例えば、8,10または12ビットを備える。よって、数メガビットのデータの出力画像を提供するイメージセンサが使用される。
【0008】
これに伴う1つの問題は、材料リソース(計算能力およびメモリ容量)の寸法決定(および消費)および処理時間の両方に関して、デジタル処理システムに直接影響を与えることである。
【課題を解決するための手段】
【0009】
本発明の1つの目的は、光学コード認識システムの性能を改善することであり、特にそれらの消費(計算能力、メモリ)を低減し、それらの応答時間を改善することである。それを改善する1つの方法は、前記システムが、伝送されるキャプチャ画像に含まれる有用な情報に集中できるようにすることである。前記有用な情報(1つまたは複数のコード)は、キャプチャ画像のごく一部に対応し、換言すると、画像内の1つ以上の関心領域に対応する。こうして計算能力は、これらの領域に集中できる。
【0010】
こうして下記技術的問題が解決された。出力を提供するためのイメージセンサ機能に集積し、さらに、適切な信頼度指数(正確なデータ)を用いて、画像データ、コード位置情報となる補足データをキャプチャすること。そして、センサに最小のコストで、即ち、画像配給時間フレームに影響を与えず、センサのサイズに影響を与えずにこれを行うこと(コンパクトさ:センサチップへの集積)。
【0011】
コードの共通の特徴は、それらの画像が、画像内のコードおよびそれらの配向に従って、1つ以上の方向に多くの高周波空間情報(黒/白のコントラスト)を含むことであり、コード周辺の画像領域とは反対である。さらに、この機能は、認識に使用される輪郭検出アルゴリズムで利用される。
【0012】
本発明では、各画像キャプチャポイントで少なくとも1回の畳み込み(convolution)結果、その結果の大きさ(その絶対値)およびバイナリ閾値を計算することによって、イメージセンサ自体で、高周波情報、またはより一般的には空間コード特徴を表す情報を抽出することを提案しており、画像内のノイズから求まる情報を分離して、その値0または1がコード位置情報であることに関する情報を取得する(値1は、画素が潜在的にコード領域にあることを意味する)。
【0013】
一例では、畳み込み計算は勾配の計算であり、我々の関心対象は、位置情報を示すものとしての前記勾配の大きさ(即ち、その絶対値)である。
【0014】
これは、最小のコストで実際のセンサ内でこの情報を抽出することに関する。特に、後者は、キャプチャ画像データの取得または伝送の速度に影響を及ぼしてならない。換言すると、抽出は、キャプチャ画像が取得される時間内に行われる必要があり、位置情報を保持するデータは、外部コード認識システムに向けて、キャプチャ画像の伝送フレーム内に統合する必要がある。このことは、画像メモリや複雑な専用プロセッサなど、相当な材料リソースは必要としない。この抽出機能をCMOSイメージセンサ内の集積回路チップ内に実装するために必要な材料リソースを、様々なコードおよび光学認識アプリケーションとともに容易な適応(順応性)のために、プログラム可能または設定可能な方法で好都合に集積することが必要である。最後に、抽出し伝送する情報は、外部認識システムによって直接使用できるように、その計算能力を最適化し、その処理速度を改善することができるように、非常に信頼できるものである必要がある。
【0015】
これらの種々の技術的な制約に対する解決策は、本発明において、デジタル処理ブロックを組み込んだCMOSイメージセンサによって達成される。デジタル処理ブロックは、撮影した各キャプチャ画像について、画素マトリクス内のライン選択信号(読み取り)で同期化され、情報が画素によって取得される(画素の露出時間およびライン単位の順次読み取り)時間内にマクロ画像を計算し、キャプチャ画像データに続いて、キャプチャ画像フレームのフッタにそれを提供するように構成される。マクロ画像の各ポイントは、キャプチャされた画像のドットのブロックに対応し、マクロ画像の各ポイントの値は、キャプチャ画像内の対応するドットブロック内のコード位置を示す情報に関係する。
【0016】
こうして本発明は、外部で制御されると画像の撮影を実施し、光学コード認識システムに向けて、対応する画像フレーム内のキャプチャ画像データを伝送し出力するように構成されたCMOSイメージセンサに関する。イメージセンサは、同じ集積回路チップ内に集積され、N個のラインおよびM個の列を含む画素マトリクスと、マトリクスの画素のN個のラインの順次読み取り回路とを備える。本発明によれば、センサはさらに、順次読み取り回路によるそれらの取得に従って、キャプチャ画像データに計算プロセスを適用し、そして同期した方法で、バイナリマクロ画像を計算し、前記キャプチャ画像内のコード位置情報に対応するキャプチャ画像データをスタートポイントとし、前記キャプチャ画像データに続いて、それを前記画像フレームのフッタに伝送するように構成されたデジタル処理回路内に集積され、前記マクロ画像は、各マクロ画像ポイントがキャプチャ画像のポイントのブロックに対応するように構成され、
マクロ画像の前記計算プロセスは、少なくとも
・マトリクスの各画素について、
・畳み込みマスクの係数によって定義される少なくとも1つのフィルタの計算の第1ステージであって、
画素に対して、画素を中心とする畳み込みマスクによって区切られた隣接ウインドウ内の前記画素および隣接画素のキャプチャ画像データから抽出された高周波空間情報に対応する第1数値を確立し、
計算は、前記画素および隣接画素の前記キャプチャ画像データについて、順次読み取り回路(4)によってオンザフライで実行され、
前記第1数値は、前記キャプチャ画像データと同じビット数(r)を使用してエンコードされる、第1ステージと、
・第1数値の2値化の第2ステージであって、マトリクスの各画素について第1バイナリ値を確立する、第2ステージと、
・マトリクスの画素の各ブロックについて、
・Q=b1+b2出力ビットの累積レジスタにおいて関係するブロック内の画素の前記第1バイナリ値を合計することによって、第2数値の計算の第3ステージであって、b1およびb2は、ブロック内の画素のラインの数n=2b1およびブロック内の画素の列の数m=2b2を定義し、nおよびmは1より大きい整数である、第3ステージと、を含む。
【0017】
本発明の一態様によれば、第2数値は、qビットを用いてエンコードされた値であり、q=1~Qである。
【0018】
一変形例では、計算プロセスは、前記第2数値の2値化の第4ステージ(104)を含む。
【0019】
一実施形態では、形態学的浸食タイプの処理、およびそれに続く膨張タイプの処理が、コード位置情報の信頼性指標を改善することを目的として、第4ステージに続いて得られるバイナリ値に適用される。
【0020】
計算の第1ステージは、好ましくは、無指向性である高周波フィルタ計算に対応し、換言すると、結果の表示は考慮されず、1つ以上のフィルタの計算を並列的に使用できる。特に、少なくとも1つの垂直勾配および1つの水平勾配であり、加算によって、より大きな情報値が得られる。
【0021】
本発明の別の態様によれば、第1ステージのフィルタ計算は、下記リストからの少なくとも1つのフィルタに適用する。1つ以上の勾配計算および固定した方向での勾配計算を組み合わせた無指向性の高周波フィルタ計算と、あるコードタイプを表す空間特性に対応するフィルタ。
【0022】
センサは、好都合には、第1データフィルタ計算を、ターゲット物体の第1のキャプチャ画像のデータに適用し、そして第1とは異なる他のフィルタ計算を、同じターゲット物体からキャプチャされた第2画像のデータに適用するように構成してもよい。こうして信頼性指数を使用して、マクロ画像の位置データを補足できる。一変形例では、第2キャプチャ画像は、第1キャプチャ画像のデータを用いて計算したマクロ画像をスタートポイントとして決定された関心領域でのズームインに対応する。
【0023】
本発明は、キャプチャ画像が撮影される条件(照明、キャプチャ距離)及び/又はコードタイプおよびサイズに応じて、計算および圧縮パラメータをプログラミングするための設備を通じて、非常に柔軟な解決策を提供することを可能にする。特に、フィルタの数、寸法および係数は、アプリケーションに応じてプログラムしてもよい。2値化閾値は、アプリケーションに応じて定義してもよく、キャプチャ画像で計算される他の特徴、例えば、ヒストグラムなどに応じて、画像が撮影される実際の条件(照明、距離)に適合してもよい。
【図面の簡単な説明】
【0024】
本発明の他の特徴、詳細および利点は、例として添付した、それぞれ下記を表す図面を参照して、下記の説明を読むことから明らかになるであろう。
【0025】
【
図1】本発明に係るCMOSイメージセンサの機能ブロック図である。
【
図2】先行技術に係る、クロック信号およびキャプチャ画像フレームからのデータのタイミング図である。
【
図3】本発明に係る、クロック信号およびキャプチャ画像フレームからのデータのタイミング図であり、フレームのフッタにおける、前記補足データフレームにおける抽出および伝送を含む。
【
図4】キャプチャ画像データの取得に応じて、補足データを計算することによって、抽出の様々なステージを詳説するフローチャートであり、様々なステージで抽出され計算されたデータに対応する画像のシミュレーションを示す。
【
図5】キャプチャ画像ポイントの各々での第1計算ステージの説明図である。
【
図6】本発明に係るマクロ画像を形成するための第2計算ステージの説明図である。
【
図7】バイナリマクロ画像のデータの信頼性指標を補足するために、形態学演算子(morphological operator)を使用した補足ステージを示す図である。
【
図8】本発明に係るマクロ画像を形成するために使用される画素のブロックサイズと画像内で検出されるコードサイズとの間の関係を強調する図である。
【発明を実施するための形態】
【0026】
コードリーダが、CMOSイメージセンサと、走査窓を経由してターゲット(物体やナンバープレートなどに貼付された1つ以上のコード)を照射する光源と、ターゲットで反射した光をセンサの画素マトリクス上に後方反射する光学システムとを備える。光源は、一般にLEDをベースとしており、画像を撮影するためのターゲットをフラッシュによって照射する。さらに、幾つかのシステムは、回折光学デバイスが取り付けられたレーザ光源を組み込み可能であり、特定のモチーフ(十字、アングルなど)を投影することによって、画像を撮影する前にオペレータがターゲットコードを中央配置するのを支援するのを目的とする。この操作は、アングロサクソン語「aimer(エイマー)」で知られている。前記レーザ光源は、画像を撮影するためのLEDフラッシュが発生する前は、通常、消灯している。リーダによる画像の撮影は、電子的または手動的なメカニズムによって起動される。リーダは、スタンバイモード(低消費)を終了し、光源およびセンサを起動して、画像を取得し、センサの外部にある外部コード認識システムに伝送する。
【0027】
図1に示すように、従来のCMOSイメージセンサは、N本のラインおよびM個の列(column)(N,Mは整数)を含む画素マトリクス1を備える。画素トランジスタ制御信号は、制御回路2(「SEQ」)によって発生し、これは、コード認識のトリガー信号Trigによって活性化される。前記画素制御信号は、全体的な方法で(「スナップショット」)または行単位でスクロール式で(「巻き上げシャッタ)そして行単位で順次読み取る方法で、画素の露光時間を制御するように機能する。特に、SEQ回路は、水平同期信号Lsyncを画素ライン選択回路3に提供し、読み取り回路を用いて画素ラインの順次読み取りをクロック動作させる。読み取り回路は、一般にゲイン制御(CAG)ステージに関連付けられたデジタルアナログ変換チェーン(CAN)を備え、読み取り用に選択された現在の画素ラインに対して読み取られたM個の数値は、対応するライン活性期間中(Lsync)に、クロックレート出力Clk
pxで配送される。こうして、
図2に示すように、画素ラインL
iの選択に対応する各Lsnchパルスの際に、読み取り回路は、例えば、列の昇順で、対応するM個のデジタルデータを連続的に出力する。DATA-L
iは、ランクiの画素ラインで読み取られるM個のデータを意味する(iは1~Nに等しい整数)。一連のN個のDATA-L
iは、センサのインタフェースI/O回路6に送信されるキャプチャ画像データのDATAフローを形成し、外部コード認識システム(不図示)に提供される対応するDATA-OUTキャプチャ画像フレームを形成する。
【0028】
キャプチャ画像フレームの典型的な実施形態を
図2に示す。FSyncフレーム同期信号が表示されており、「活性化」は、N個の画像ラインの読み取りフェーズの開始をマークし、前記読み取りフェーズの終了までアクティブのままである。Lsync活性化の各期間には、対応するDATA-L
iデータフローがある。
【0029】
実際に外部認識システムに送信される画像データフレームは、フレームのヘッダおよびフッタを含み、これらはN個の画像ラインのデータの流れをフレーム化する。特にヘッダは、例えば、画像データの量(画像のサイズ)などの情報を含む。実際は、全体画像キャプチャ、または関心領域のみに基づくキャプチャが実行できる。撮影が済んだ画像の画像キャプチャパラメータの値も同様に、一般的に記録される。特に、それは、露光時間のTINT期間、エンコーディングダイナミクス(グレースケールコードの数)および変換ゲインに関する。これらの値は、フレーム同期信号Fsyncの活性化の前に、対応する信号F-hの活性化期間中に、センサのパラメータのレジスタ5(
図1)によって提供される。これらの値は、画像を利用したり、画像が撮影されたときの状態を評価したりするのに有用であるため、伝送される。これにより、特に、受信した画像が、例えば、露出不足や露出過多などで良好でない場合、外部システムが異なる値で画像を再撮影するように命令できる。通常は、画像に関して計算したデータ、例えば、画像の全部または一部に関して計算したヒストグラムをページのフッタに伝送する。前記ヒストグラムは、特に画像の正しい露出を評価するのに役立つ。
【0030】
フレームヘッダおよびフッタのサイズ(ビット数)は、実際の画像データ用に予約されているフレームサイズに比べて小さい。一例では、画像ラインのデータのビット数に対応する数のビットが、ページのヘッダまたはフッタに提供される。
【0031】
これらの一般的なリマインダが作成されて、我々は、本発明で提案されるバーコードリーダ用のCMOSイメージセンサの実施形態を説明することが可能になる。
【0032】
本発明によれば、CMOSイメージセンサは、画像データ、画像内のコードの存在または位置に関する情報に対応するデータを確実に抽出可能にする計算手段を集積する。前記情報は、画像フレームのフッタ内の外部認識システムを補完する方法で提供され、前記補完データのおかげで、その計算能力およびメモリ能力を、識別可能な画像領域内のキャプチャ画像データに集中させることができる。
【0033】
こうしてイメージセンサは、デジタル処理手段7(
図1)を備え、これは、画像である小さな画像またはマクロ画像を計算するように構成され、その各ポイントは、キャプチャ画像のポイントのブロックに対応する。各マクロ画像ポイントの値は、キャプチャ画像の対応する部分(ポイントのブロック)内のコードの存在/位置の指標である。
【0034】
従来、センサは、一般に、基本計算の演算子が使用するデジタル処理手段(加算器、乗算器、除算器、比較器)を含み、これは、例えば、ヒストグラムを計算するために使用される。ヒストグラム計算は、センサにとって有用であり、画像が露出過多または露出不足であることをヒストグラムが示す場合、データアプリケーションのデフォルト値に設定された画素の露出時間を調整できるようにする。センサは、読み取りストリームの変換ゲインを調整して、コントラストを増加できる。本発明に係るマクロ画像計算は、同じ基本演算子を使用し、そのためスペースが節約され、センサチップに組み込むのが容易になり、各マクロ画像ポイントの値を計算し、コードの空間的特徴を表すフィルタ計算を用いて、データが取得されるポイントでのキャプチャ画像データを、スタートポイントとしている。前記回路7(
図1)は、フィルタマスクのサイズに適合した、有限の深さ(ラインの数)の一時的なラインメモリM
Lを備える。このラインメモリは、現在の読み取りラインの直前に読み取られた画素ラインのデータを保持する。通常のマスクサイズは、3×3および5×5である。例えば、3×3マスクの場合、2行のメモリラインが、各画素でオンザフライでフィルタ計算を行うのに充分である。いずれの場合も、ラインメモリは、少なくとも12ラインの深さを有し、これらは、センサチップに容易に組み込み可能である。デジタル処理回路7はまた、それらの計算に従って、マクロ画像ポイントデータを蓄積するために、蓄積/記憶の手段A
CCを備える。いったん画素のマトリクスが読み取られると、前記手段は、マクロ画像データ(マクロデータ)をI/Oインタフェース回路に提供する。実際の実行の観点で、前記手段A
CCは、計算対象のマクロ画像ポイントと同じ数の蓄積レジスタを含んでもよい。しかし、マクロ画像の各ラインのポイント値をオンザフライで実行する計算を保存するために、マクロ画像メモリに関連付けられたマクロ画像ライン中のポイントと同じ数のレジスタを有することも可能である。以下では、問題を簡素化するために、蓄積レジスタ(A
CC)について説明する。
【0035】
デジタル回路7に実装された、空間デジタルシグネチャ(署名)を抽出するための本発明に係るオンザフライでの計算プロセスは、
図3に示すタイミング図、
図4に示すフローチャート、
図5と
図6に示す計算プロセスのステージの詳細とともに説明することにする。この説明では、計算プロセス100が選択され、これは、フィルタリングのためにサイズ3×3マスクを利用する。ラインメモリM
Lのうちの2つのメモリラインM
L1,M
L2を使用する(
図1)。
図5に概略的に示すように、列フッタ内の同じ読み取り回路(
図1)によるN個の画素ラインの順次読み取りの従来の場合には、ランク1のラインL
1から開始し、ランクNのラインL
Nまで、現在の読み取りフェーズ(Lsync)がラインL
iである場合、ラインメモリM
L1は、ラインL
i-1の読み取りデータを含み、ラインメモリM
L2のメモリは、ラインL
i-2の読み取りデータを含む。次の読み取りフェーズ(ラインL
i+1の読み取り)では、ラインL
iのデータがラインメモリM
L1に渡され、これは、ラインL
i-1のデータをラインL
i-2のメモリの中に「押し込む(プッシュ)」する。
【0036】
同様に、例えば、キャプチャ画像の高周波シグネチャを抽出するためのプロセスを採用でき、少なくとも1つの方向に高密度の白黒の交互配列、または2つの極めて対照的なグレーレベルを含むコード領域を識別できることが必要とされる対応するマクロ画像を取得することを目的としている。一方、画像の残り(関連するアプリケーションコンテキスト)はほとんど含まない。換言すると、このマクロ画像内で、サイズが何らかのコードに対応できる白い「ボックス」を識別できることが予想される。
【0037】
この抽出のために、少なくとも一方向に勾配計算が適用され、保持される情報は、勾配の大きさ(即ち、符号を考慮しない勾配の絶対値)である。勾配計算が、好ましくは、少なくとも2つの方向に適用され、個々の大きさを合計することによって、各ポイントで可能性のある最大値を取得するようにする。実際、画像内の「キャプチャ」コードは、画素マトリクス軸に対して必ずしも整列していない。これは、コードリーダが静止していて、走査対象のアイテムがリーダのカメラの前方にあるコンベヤベルトに到着するアプリケーションの場合にしばしばある。同様に、特定のコード、特に記号的2Dコードと英数字の文字列は、様々な方向に高周波シグネチャシグネチャを有する。可能な限り最も信頼性の高い位置を可能にするために、最も完全である(最も広範囲である)と思われる各ポイントで高周波情報を取得することが興味深い。
【0038】
こうして計算プロセス100は、フィルタ計算の第1ステージ101を備える。このステージ101(
図4)において、個々の畳み込み(convolution)マスク[a]
1(
図5)を使用して、水平勾配G
Hに対応する第1フィルタFcv
1がこの例に適用され、そして個々の畳み込みマスク[a]
2を使用して、垂直勾配G
Vに対応する第2フィルタFcv
2が適用される。水平方向は、従来の方法では、画素のラインの方向に対応し、垂直方向は、画素の列の方向に対応する。2つのフィルタ計算は、関係するキャプチャ画像ポイントを中心として、マスクウィンドウの内側での前記ポイントおよび隣接ポイントのデータの取得に従って、各キャプチャ画像ポイントについてオンザフライで並行して実装される(画素マトリクス内のラインi-1および列jにある画素に対応する画像ポイントについてのウインドウW
i-1,j、
図5)。2つの対応する記録された値V
GH,V
GVが得られ、その絶対値が加算され(符号を考慮しない勾配の大きさ)、値V
Fが得られ、これはステージ101で実装されたフィルタ計算の結果であり、ここでは、このポイントでの高周波情報の量を表しており、方向を考慮していない。
【0039】
実際、計算は、読み取り回路による画素データの提供に沿って、行単位でオンザフライで行われる。いったんプロセスが画素およびその隣接画素(関係する画素を中心とするマスクウインドウによって定義される)の数値を取得できると、各画素では、各フィルタの計算結果(フィルタ係数と画素を中心とする隣接ウィンドウ内の画像ポイントの値の線形結合)が得られる。
図5から、選択された現在の読み取りラインがラインL
iである場合、画素PX
i-1,jの値V
GH、V
GV、およびV
Fが取得されることが明らかである。
【0040】
キャプチャ画像ポイントの数値V
pxは、読み取り回路4によって提供される値であり、撮影された画像の露光時間中に対応する信号によってマトリクス中に統合される信号の量を表す。前記値は、rビット(この例(
図4)では12ビット)を使用してエンコードされる。値V
GH、V
GV,V
Fは、前記同じビット数を使用してエンコードされた値である。
【0041】
図4は、全ての計算されたデータが各々について個々の画像メモリに収集された場合
(これは純粋に仮想説であり、ここではシミュレーションのみが関係する)、対応する計算した画像がどのようなものであるかを示し、一例として、異なるサイズの記号タイプ(1Dと2D)の複数のコードを含むターゲット物体のキャプチャ画像が表示される。
【0042】
全てのデータVpxに対応する画像IHD(N個のDATA-Liによって形成された集合データグループ)が見える。本発明に係る計算プロセスのステージ101において、水平勾配(IGH)、垂直勾配(IGV)、および高周波の無指向性情報(IF)を有する、計算された対応する画像も見える。これらすべての画像IHD、IGH、IGVおよびIFは、N個のライン、M個の列および深さ12ビットを有する。
【0043】
計算プロセスに続くステージ102は、得られた高周波画像の2値化に対応しており、これは、画像の高周波信号からノイズを分離するのに役立つ。信号対ノイズ比を改善することによって、センサの出力で提供されるコード位置情報に関する信頼性指標が増加する。実際、2値化は、以前のようにオンザフライでフィルタリングステージ計算プロセス101から得られる値V
Fの各々に対して実行される(
図4と
図5)。そして、それは、2値化閾値Vs1での値V
Fを比較することである。実際、この値Vs1は、センサパラメータレジスタ(5)によってデジタル処理回路7に提供され、そしてあるデフォルト値が設定されることが予想でき、これは、一般に平均グレーレベルに対応する。デフォルト閾値(レジスタ内の)は、例えば、アプリケーションコンテキストで取得されたテスト画像特性(テスト画像または実際の画像で計算されたグレーレベルの平均値)に従って、ユーザまたは認識システムによって変更できる。また、デジタル処理回路は、既に処理されたキャプチャ画像データのグレーレベル値に基づいて、計算に沿って前記閾値を調整することもできる。この場合、使用される閾値は、画像の高さに沿って必ずしも一定ではない。
【0044】
キャプチャ画像ポイントごとにバイナリ値VB1が得られる。対応するシミュレーション画像IB1は、1ビットの深さでN個のラインとM個の列で構成される。このステージで、コード位置情報ではないポイント情報が出現する。画像内に存在する可能性のあるコードのサイズを考慮して、重要なコード位置情報を形成するために、この情報を信頼できることが必要である。
【0045】
これは、バイナリコード位置マクロ画像がキャプチャ画像内に形成されたばかりの後続ステージ103,104の機能に関係する。
【0046】
これらのステージは、他と同様に、各マクロ画像ポイントの値を計算するために必要なデータの受信に沿って、オンザフライで実装される。比喩的に言うと、これは、それらの間で情報を中継することに関係するものであり、画像内のコードの位置に対応して、「有意(significant)ボックス」を形成しようとして、簡単な方法で、オンザフライで、しかし確実に計算することによるものであり、このことは、情報出力が増加した信頼性指標を有することを意味する。
【0047】
そのために、
図6に詳述されている2つのステージに進む。
【0048】
第1ステージ103は、テッセレーション(tessellation)に対応し、これにより、マクロ画像ポイントを、記録された値VΣqが計算されるキャプチャ画像のポイントの各ブロックBと一致させることが可能になり、開始点として、ブロックBのポイントのバイナリ値VBIN1を採用する。換言すると、画像シミュレーションIB1を参照して、問題のブロック内の白いポイントの数がカウントされる。値VΣqは、関係するブロックBは画像内のコードの場所に対応し得ることを示す。このパッセージは、処理されたブロックに対応するレジスタ要素ACCの累積演算Σqによって実装され、関連するブロックBのポイントのバイナリ値VBIN1がオンザフライでそれらの計算に追加されることを意味する(ステージ101,102)。
【0049】
テッセレーション操作は、キャプチャ画像がn=2b1個のラインおよびm=2b2個の列のブロックによって分割されることに対応する。これは、ブロックのn×mポイントのバイナリ値の累積レジスタ要素の寸法を定義する。これは、Q=b1+b2のQビットレジスタに関係する。
【0050】
好ましくは、全てのコードおよび全ての方向に適合した、b1=b2を有する正方形からなるテッセレーションが選択されるであろう。例えば、b1=b2=6とした場合、ブロックB当り4096個のキャプチャ画像ポイントがあり、各ブロックの累積レジスタ要素ACCにより、0(全てのポイントが値0を有する)から4096(全てのポイントが値1を有する)までカウントできる。
【0051】
好都合には、各ブロックの出力内に提供される値VΣqは、切り捨てた値でもよく、そうでなくてもよい。インデックスqは、それを示すパラメータであり、1、2、3、…、またはQビットに等しい値を有する。例えば、q=4の場合、各ブロックの出力として提供される値VΣqは、4ビットのみを用いてエンコードされた値になる。
【0052】
こうして対応するマクロ画像IΣ
q(
図4)は、nライン、m列およびqビットの深さを含む。
【0053】
qの値が大きいほど、マクロ画像に含まれる位置情報が豊富になる。
【0054】
値n、m,qの選択は、マクロ画像サイズIΣqの寸法を定義する。こうしてブロックのサイズ(小さいまたは大きい)に応じて、値qが選択でき、これは、より小さくでき(小さいブロック用)、または大きくでき(大きいブロック用)、マクロ画像のサイズ(ビット数)を取得し、キャプチャ画像が取得された時点でオンザフライでそれを計算し、フレームのフッタへの統合も同様である。換言すると、処理時間、マクロ画像の寸法、豊富な情報の間でバランスをとる必要がある。
【0055】
ブロックの寸法(ラインおよび列の数)は、最初に画素マトリクスのラインおよび列の数に依存する。そして、所望の圧縮レベル(計算時間、フレームのフッタへの統合)を取得するために、小さすぎてはいけない。しかしながら、それは、画像内のコードのサイズを超えるべきでなく、そうでなければ対応する位置情報が失われることになる。これらの態様については、以下でさらに説明する。
【0056】
現実的な例では、N=1920ラインおよびM=256列の画素マトリクスでは、64ライン×64列のブロックサイズが定義できる。n=30ラインでm=40列のマクロ画像IΣqが得られる。q=12ビットの場合、対応するマクロ画像ビットの量は14400ビットである。q=8ビットの場合は9600ビット、q=4の場合は4800ビットである。ブロックサイズは、例えば、100×100画素など、より大きなサイズの画像のコードに適合される。
【0057】
1つの変形例では、I
B2のバイナリマクロ画像を提供したい(
図4と
図6)。好ましくは、切り捨てを伴う累積はステージ103において実行され、qの値は1より大きく、Qよりも小さい。例えば、新しい閾値に関連して、得られた値を2値化するために、q=4ビットが選択される。圧縮演算は、より良い品質のものになる。これは、閾値Vs2に関連して値VΣ
qの2値化BIN2のステージ104であり、
図4と
図6に示す。閾値Vs2は、Vs1のように、パラメータのレジスタ5によって提供される値に固定でき、アプリケーションコンテキストに応じて定義でき、あるいは、テスト画像または実際の画像のいずれかに基づいて計算されたマクロ画像をスタートポイントとして調整できる。マクロ画像IΣ
qの部分当りの平均グレーレベル計算を想定して、適応閾値レベルVs2を定義することも可能である。新しいバイナリ値V
B2が、対応するバイナリマクロ画像ポイントI
B2ごとに取得され、これは、
図4に示す白黒画像であり、キャプチャ画像I
HD内のコードの位置に対応する白い「ボックス」の形態を示す。
【0058】
その形態は「完全」ではなく、鋸歯状エッジまたは小さな突起を伴うことが判る。
【0059】
図7に示す一実施形態では、補足的な形態学的計算ステージ105が適用され、浸食(erosion)とそれに続いて膨張(expansion)を含み、バイナリマクロ画像I
B2の重要なコンテンツを改善することを可能にする。前記浸食とそれに続く膨張演算は、同じ隣接画素セットに基づいて、各マクロ画像ポイントI
B2上で実行され、その近傍は、構造化要素として知られる構造によって区切られる。構造化要素は、検出される1つまたは複数のコードの幾何学的基準に適合される。例えば、画素を中心とする構造化要素は十字形状であり、そのパラメータは、特に、枝の幅と長さ(画素数)に関係する。
図7は、画像の改善を示しており、白いボックスの形態はより良く画定され、いくつかのノイズが除去されている。
【0060】
最終的に、イメージセンサに実装された計算プロセスは、キャプチャ画像内のコードの位置に関する有意なコンテンツを備えた小さな画像を取得することを可能にし、これは、キャプチャ画像データに続いて、画像伝送フレームフッタに伝送できる、前記位置データは、外部コード認識システムによって直接に使用可能であり、これは、その画像処理アルゴリズムを、高周波情報を含むものとして、マクロ画像中で識別されたキャプチャ画像領域に集束させることができる。
【0061】
図8は、演算103のためのブロックのサイズが、どのようにして本発明で実施される抽出プロセスの性能基準となるかを説明するのに役立つ。3つのコード1Dを含むキャプチャ画像が示され、これらの一方が他方より小さく、Code-1として知られており、これは、この例では対角線上に配向しており、本質的に水平に配向している他の2つのコードとは異なる。2つのコードが水平に整列している場合、垂直勾配の計算は、興味深い情報を照らすことにならないことに留意できる。この状況は、小さなコード「Code-1」では相違しており、その結果として、対角線上に配向している。
【0062】
さらに、小さいコード、例えば、64×64よりもサイズが大きいブロックBが使用される場合、それは、小さなコードCode-1が設置されていないプロセス100(ステージ104の後、またはステージ105の後)から出力される小さいバイナリ画像に対応する画像I1から見ることができる(ステージの後)。画像I’1は、キャプチャ画像I0への小さな画像I1の情報の重ね合わせをシミュレートしている。小さいブロックB(例、32×32)では、小さいコードが適切に配置されていることが判る(画像I2と画像I’2)。
【0063】
上述したデジタル処理回路7によって実施されるマクロ画像を計算するための計算プロセス100は、読み取り回路4によるキャプチャ画像データの読み取り(取得)と同期して行われ、画素ラインのデータを1つずつ順番に処理する。換言すると、デジタル処理回路7は、画素マトリクス、読み取り回路、インタフェース回路I/Oのように、Fsyncフレーム同期クロック信号(新しい画像)、Lsyncライン同期(新しいライン)および画素クロックClk
px(次の画素)によってクロック設定される(
図1)。
【0064】
各新しいフレーム(Fsych)において、デジタル処理回路は再初期化され、特に、ラインメモリM
Lおよび蓄積レジスタA
CCがゼロにリセットされる。そして、プロセスのステージ101~103、101~104、または101~105が、各計算に含まれる値の利用可能性に従って、各画素について、巻き上げ方式で、xおよびyにおいて(
図5)、画素クロックのクロックパルスで行われる。
【0065】
対応する画像フレームを
図3に示しており、これは、小さな画像が実際に同期的な方法で継続的にどのように計算され、マクロデータを累積レジスタA
CC内に形成するかを概略的に示している。前記マクロデータは、フレームの本体で伝送された、画像データDATA-L
iに続いて、フレームのフッタに統合される。
【0066】
高周波キャプチャ画像シグネチャを抽出するための丁度説明した計算プロセスは、他の空間シグネチャ(繰り返し、方向など)を抽出するために同じ方法で適用できる。同じ物体では、撮影された多数の連続画像が実行される場合、画像全体またはその一部に関して、異なる空間シグネチャを計算することが可能であり、これにより、連続したパスによって位置情報を補足することが可能になる。特に、フル画像から抽出され、小さな画像をスタートポイントとして決定された関心領域に対応する場面の一部をズームインすることによって(センサを集積するコードリーダの光学システムに属する拡大レンズを用いて)画像キャプチャを実行することが可能であり、そして他の幾何学的基準に基づいて、より正確な空間シグネチャを取得することが可能である。数値例を挙げると、所定のキャプチャ距離で撮影されたキャプチャ画像内のコードのサイズが256×256画素を占める場合、対応する「白」ボックスがマクロ画像内で取得され、これは、4×4画素を超えることはないが、適切な位置情報(キャプチャ画像内の位置およびサイズ)を提供する。認識システムは、上述したように、空間高周波基準または他の幾何学的コード基準に基づいて、より正確な空間情報を取得するために、対応する関心領域にズームインして、画像を2回撮影することを要求してもよい。
【0067】
毎回、フィルタ計算(または並列した複数のフィルタ計算)が残る。変更するものは、使用する畳み込み(convolution)マスクであり、換言すると、フィルタの係数、および可能性としてマスクのサイズ(例えば、3×3の代わりに5×5)である。従って、マスクメモリ[a]
kがセンサ内に容易に提供でき、撮影した所定の画像については、1つまたは複数の畳み込みマスクが前記メモリ内で選択される。プロセスの様々な閾値、即ち、Vs1、Vs2および切り捨て値qは、ブロックBの寸法と同様に構成可能である。後者は、対応するパラメータ(例えば、マスクメモリ)メモリのためのポインタ値を用いて、あるいはパラメータの実際の値を用いて、様々な方法で実行可能である。当業者は、実際に実装する方法を知る。こうしてセンサは、対応するパラメータを1つ以上のパラメータレジスタ(レジスタ5、
図1)に備える。
【国際調査報告】