(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-14
(45)【発行日】2023-09-25
(54)【発明の名称】ラインカメラの画像データの明度及び色の補正
(51)【国際特許分類】
H04N 23/12 20230101AFI20230915BHJP
G06T 1/00 20060101ALI20230915BHJP
G06K 7/10 20060101ALI20230915BHJP
【FI】
H04N23/12
G06T1/00 510
G06K7/10 428
【外国語出願】
(21)【出願番号】P 2022043451
(22)【出願日】2022-03-18
【審査請求日】2022-04-20
(31)【優先権主張番号】10 2021 110 388.6
(32)【優先日】2021-04-23
(33)【優先権主張国・地域又は機関】DE
(73)【特許権者】
【識別番号】591005615
【氏名又は名称】ジック アーゲー
(74)【代理人】
【識別番号】110001069
【氏名又は名称】弁理士法人京都国際特許事務所
(72)【発明者】
【氏名】ロマン ミューラー
(72)【発明者】
【氏名】マルセル ファイファー
【審査官】鈴木 肇
(56)【参考文献】
【文献】独国実用新案第202019106363(DE,U1)
【文献】特開平06-303426(JP,A)
【文献】特開2016-075608(JP,A)
【文献】特開2003-087556(JP,A)
【文献】特開2011-055362(JP,A)
【文献】特開2011-061433(JP,A)
【文献】米国特許出願公開第2011/0058237(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06K 7/00 - 7/14
G06T 1/00 - 1/40
G06T 3/00 - 5/50
H04N 9/04 - 9/11
H04N 23/10
H04N 23/12 -23/17
H04N 25/10 -25/17
H04N 25/611
(57)【特許請求の範囲】
【請求項1】
ラインカメラ(10)、特にコード読み取り型ラインカメラの画像データの明度及び色の補正方法であって、前記画像データを取得するために、照明モジュール(28)で前記ラインカメラ(10)の検出領域(14)を照明した状態で前記ラインカメラ(10)の少なくとも2つのライン配列(20a~b)を用いて1つのグレースケール画像と少なくとも2つの単色画像を撮影し、前記ライン配列(20a~b)のライン位置及び/又は撮影された物体の距離に依存する前記照明モジュール(28)の明度関数を用いて前記画像データを補正する方法において、
前記明度関数(48)が予め前記ラインカメラ(10)から独立して前記照明モジュール(28)のために決定されて該照明モジュール(28)内に保存されること、及び、前記明度関数(48)が前記ラインカメラ(10)により読み出されて前記グレースケール画像及び前記単色画像の各々の補正に用いられることを特徴とする方法。
【請求項2】
前記グレースケール画像がコード(44)の読み取りに用いられる、請求項1に記載の方法。
【請求項3】
前記単色画像からカラー画像が生成され、該カラー画像が特に、コードを付した物体(40)及び/又はコード領域(44)の認識、分類及び/又は画像背景からの識別を行うために用いられる、請求項1又は2に記載の方法。
【請求項4】
前記明度関数(48)が色正規化関数(54、56)を用いて前記単色画像の色についてそれぞれ修正され、その結果、グレースケール画像と各単色画像に対する補正がそれぞれ独自の明度関数を用いて行われ、色正規化関数(54、56)は様々なライン位置及び距離に対して前記照明モジュール(28)の該当色における明度を全スペクトルにわたる明度に対する比に変換するものである、請求項1~3のいずれかに記載の方法。
【請求項5】
前記色正規化関数(54、56)が予め前記照明モジュール(28)の型に対して共通に決定されている、請求項4に記載の方法。
【請求項6】
前記色正規化関数が予め前記照明モジュール(28)に対して、特に前記明度関数(48)を用いて、個々に決定される、請求項4に記載の方法。
【請求項7】
前記明度関数(52、62、64)が前記ラインカメラ(10)の光学パラメータに基づいて高精度化される、請求項1~6のいずれかに記載の方法。
【請求項8】
前記グレースケール画像と前記単色画像が異なるアナログ及び/又はデジタルの増幅で以て取得される、請求項1~7のいずれかに記載の方法。
【請求項9】
2つの単色画像が3原色のうち2つで撮影される、請求項1~8のいずれかに記載の方法。
【請求項10】
第3の原色が前記グレースケール画像及び前記2つの単色画像から再構成される、請求項1~9のいずれかに記載の方法。
【請求項11】
2つの原色が赤と青である、請求項9又は10に記載の方法。
【請求項12】
カラー画像の補正した色値が、それぞれのグレースケール画像のグレースケール値及び各単色画像の単色値と色補正用の重み付け係数とを用いた線形結合から算出される、請求項1~11のいずれかに記載の方法。
【請求項13】
グレースケール値Wを持つグレースケール画像、赤色値Rを持つ赤色画像及び青色値Bを持つ青色画像に対する補正されたRGB値R’G’B’が、重み付け係数x
1~x
12を用いて、
R’=x
1*R+x
2*(3*W-R-B)+x
3*B+x
4
G’=x
5*R+x
6*(3*W-R-B)+x
7*B+x
8
B’=x
9*R+x
10*(3*W-R-B)+x
11*B+x
12
で求められる、請求項12に記載の方法。
【請求項14】
前記補正された色値が、色感度を持つ少なくとも1つの別のセンサのカラー画像に基づいて学習させたニューラルネットワークを用いて決定される、請求項12又は13に記載の方法。
【請求項15】
カメラ(10)、特に光学コード(44)を読み取るためのコードリーダであって、画像データを取得するための受光画素(22)から成る少なくとも2つのライン配列(20a~b)を有するライン状の画像センサ(18)と、前記画像データを処理するための制御及び評価ユニット(24)とを備え、前記ライン配列(20a~b)が1つのモノクロチャネルと少なくとも2つのカラーチャネルとを成し、前記モノクロチャネルの受光画素(22)がグレースケール画像を撮影するために白色光に感度を持ち、前記カラーチャネルの受光画素(22)がそれぞれ該カラーチャネルの色の光にのみ感度を持つ、というカメラ(10)において、
前記制御及び評価ユニット(24)が、請求項1~14のいずれかに記載の方法で前記画像データの明度及び色を補正するように構成されていることを特徴とするカメラ(10)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、請求項1のプレアンブルに記載の、ラインカメラの画像データの明度及び色の補正方法、並びに該方法を用いるカメラに関する。
【背景技術】
【0002】
ラインカメラの画像データは多くの工業及び物流の用途において利用されている。それを用いて様々な工程を自動化することができる。様々な測定、操作及び検査業務の他、画像データを用いて読み取られたコードに基づく物品の自動的な仕分けが知られている。そのために、バーコード、マキシコード(Maxicode)若しくはAztecコード等の様々な2次元コード、又はテキスト認識(OCR)で解読される文字が読み取られる。
【0003】
製造ライン、空港における手荷物の発送、物流センターにおける荷物の自動仕分けといった典型的な利用状況では、物品がカメラの傍を通り過ぎるように搬送され、その表面に付されたコードを含む該物品の画像データがライン毎の走査によって取得される。個々の画像ラインは既知の又は測定されたベルト速度に基づいて結合される。ラインカメラは高い解像度と速度を達成できる。
【0004】
従来のラインカメラにはモノクロ画像を撮影するものがよくある。これはグレースケール画像又は白黒画像とも呼ばれる。これにより最大の光子収量が達成され、以て最大の信号雑音比が得られる。一方、色の検出は、いずれにせよ明領域と暗領域しか持たないコードの読み取り等、多くの用途にとって関心の対象外である。それでも色情報を得なければならない場合、普通はマトリクスカメラに頼る。しかしそれは、まさに高速のベルトに応用する場合に都合が悪い。なぜなら、高いフレームレートが必要である上、マトリクスカメラの個々の画像を結合すること(スティッチング)は画像ラインを単純に隙間なく並べることに比べて非常に計算コストが大きいからである。その上、マトリクス画像センサはライン方向においてライン画像センサと同じ画素数を達成することができない。
【0005】
マトリクス画像センサを色の取得用に構成する最も広く知られた方法は、画素毎に2種類の緑フィルタ、1種類の赤フィルタ及び1種類の青フィルタをベイヤー型で設けるというものである。もっとも、例えば白のチャネルの追加(RGBW)や、赤、黄及び青(RYBY)といった減法混色の原色の使用等、他の色パターンもある。
【0006】
カラーラインカメラも知られている。これには例えば、赤、緑及び青(RGB)の3つのラインを持つもの、これらの原色が交互に現れる単一のラインを持つもの、又は、ベイヤー型にならって赤と青が交互に現れる1つのラインと緑だけの第2のラインとを持つものがある。これらのカラー画像センサにはいずれも色フィルタにより受信光に損失が生じるという欠点があり、解像度に対する要求が高いコード読み取り等への応用には依然として白黒画像の方が優れている。つまり、色情報を得るには白黒評価に関する性能の低下という犠牲を払わざるを得ない。
【0007】
更に、ラインカメラはその使用状況において動的な変化の影響を受ける。周囲光への依存性は能動的な照明と必要に応じた遮蔽によって大幅に解消される。しかし照明そのものと画像撮影はなおも物体毎に変化しやすい。とりわけそれに寄与するのは各々の物体距離とライン方向における不均一性(周縁での光の減少等)である。統合された照明を測定して明るさの動的変化を現場で学習させることで該動的変化を補償することが知られている。しかしそうすると較正コストが高くなる。その上、カラー撮影の場合、照明の明るさの動的変化と不均一なスペクトル特性が原因で撮影色が偏移するため、より一層の妨げとなるが、これはこれまで補償されていなかった。
【0008】
特許文献1にはモノクロカメラと調節可能な色フィルタとの組み合わせにより色を検出することが記載されている。しかし、これでは撮影時間の損失が余りに大きく、また色フィルタがあるためモノクロカメラに比べて受光レベルが不足する。
【0009】
特許文献2にはマルチスペクトル照明を用いて駆動される2重ラインカメラが記載されている。しかしこれも実質的に色フィルタと変わりはない。こちらは色フィルタを別の場所で作り出しているが、時間と光の損失を防止するものではない。
【0010】
特許文献3及び4からそれぞれ、画素マトリクスを用いて画像を撮影するコード読み取り機器が知られている。大部分の画素はモノクロであり、カラー画素が格子状の配置でちりばめられている。これらのカラー画素はベイヤー型となっている。
【0011】
特許文献5は光学コード読み取り用コードリーダを開示している。このコードリーダは少なくとも1つの2重ラインを画像センサとして利用する。そのうち少なくとも1ラインの受光画素が白色光に感度を持ち、残りのラインの受光画素が1つの色にのみ感度を持つ。これによりグレースケール画像とカラー画像が撮影できる。いくつかの実施形態では1つの原色がグレースケール画像と他の2つの原色から再構成される。それでも色補正は不完全であり、そのカラー画像にはまだ色ずれが目立つ。
【先行技術文献】
【特許文献】
【0012】
【文献】DE 10 2015 116 568 A1
【文献】EP 3 012 778 A2
【文献】US 2010/0316291 A1
【文献】US 2012/0002066 A1
【文献】DE 20 2019 106 363 U1
【発明の概要】
【発明が解決しようとする課題】
【0013】
故に本発明の課題は、色付きの画像データの取得を改善することである。
【課題を解決するための手段】
【0014】
この課題は請求項1に記載の、ラインカメラの画像データの明度及び色の補正方法、並びに該方法を用いる請求項15に記載のカメラにより解決される。前記ラインカメラは受光画素から成る複数のライン配列を有するライン状画像センサを備えている。複数のライン配列とは少なくとも10より小さい少数を意味しており、ライン方向の解像度つまりライン方向の受光画素数はそれより数桁大きく、数百、数千又はそれ以上になる。照明モジュールがラインカメラの検出領域を隈無く照らす間、1つのグレースケール画像と少なくとも2つの単色画像が撮影される。単色画像とは例えば青又は赤という特定の1色の画像である。そのために前記受光画素は、特に色フィルタの使用又はその省略によって異なるスペクトル感度を有している。ある特定のスペクトル感度を有する受光画素群はそれぞれ撮影チャネルの一部、即ちグレースケール画像用の1つのモノクロチャネルと単色画像用の複数のカラーチャネルと解釈することができる。
【0015】
画像データは照明モジュールの明度関数で補正される。明度関数は最大2つの変数に依存する。即ち、例としてXと呼ぶライン配列に沿ったライン方向、又は、例としてZと呼ぶ撮影対象の物体の距離方向、又は特に好ましくはその両方である。離散化された形式では明度関数を明度ベクトル乃至は明度マトリクスにより表すことができる。明度関数は直接補正に用いることもできるし、より複雑な補正の中に入れることもできる。これについては後で有利な実施形態に基づいて説明する。
【0016】
本発明の出発点となる基本思想は、明度関数を予め例えば仕上げの際に照明モジュールのために決定して該照明モジュール内に保存するということである。これはまだラインカメラから完全に独立して行うことができ、特定のラインカメラと照明モジュールとの関係はこの時点ではまだ全く分かっていないことが好ましい。その後、稼働時に、当該照明モジュールと一緒に使用されるラインカメラによって該照明モジュールから明度関数が読み出され、ラインカメラがそれを明度及び色の補正に直接用いるか、或いはラインカメラが照明モジュール内に保存された明度関数から独自の補正関数を作成し、それをその後の稼働中に用いる。明度関数は、モノクロチャネルとカラーチャネルのそれぞれにおいて、即ちグレースケール画像と単色画像のそれぞれに対して、補正のために用いられる。カラーチャネルにおける明度補正は色の相互の重みをシフトさせるものだから、自動的に色補正でもある。別の有利な実施形態では、モノクロチャネルが色の再構成に加えられ、その結果、該モノクロチャネルの明度も色に影響を及ぼす。更に他にも有利な色補正を加えることができる。これも同様にまた説明する。
【0017】
本発明には、高いコントラストと可能な限り高い信号雑音比で最大の解像度のグレースケール画像又は白黒画像が得られるという利点がある。同時に色情報も得られ、それを様々な追加の又は代替の評価に利用することができる。この追加的な色検出はグレースケール画像における解像度又は信号雑音比を犠牲にせずに行うことができる。本発明によれば照明モジュールの照明スペクトルを補償することができる。また照明モジュールは最初はカメラから独立しており、単独で較正することができる。このようにすれば、カメラ自体がそれと一緒に用いられる照明モジュールに適応するから、稼働開始や維持管理が容易になる。照明特性を学習させるにはかなりのコストと専門知識を要するが、現場でそれを行う必要はない。
【0018】
それぞれ色選択的な感光性を有する受光画素の、ラインカメラのライン配列中の分布は実施形態に応じて変わる。好ましくはグレースケール画像用のモノクロチャネルの受光画素が少なくとも1つの完全なラインを成す。これは白色ラインと呼ぶことができる。これらの受光画素は白色光に感度を持つ。これは、それらの画素が光スペクトル全体を捕らえるものであり、例えば色フィルタを持たないことを意味する。検出される光には使用されるカメラ画素の不可避のハードウェア的な制約による限界があることは当然である。カラーチャネルの受光画素の分布、つまり1つの色にのみ感度を持つ各々の単色画像の撮影は様々なパターンにすることができ、それは実施形態に応じて変わる。カラーチャネル用のライン配列は白色ラインに対して有色ラインと呼ぶことができる。原理的には有色ラインの中に更に白色画素をちりばめることも可能ではあるが、そのような画像情報は白色ライン自体が担当する。
【0019】
好ましくは2つ、3つ又は4つのライン配列が設けられ、そのうち1つ又は2つのライン配列が白色ラインであるようにする。ここに挙げた数字は正確な数であり、最小数ではない。ライン配列を少数にすれば画像センサの構造が非常にコンパクトになる。最小の実施形態は1つの白色ラインと1つの有色ラインを有する2重ラインであって、その場合、前記有色ラインは、それぞれ少なくとも2つの異なる色の1つに対して感度を有する複数の受光画素のパターンにより、少なくとも2つのカラーチャネルを支える。カラー画像のライン方向の解像度をより高めるには少なくとも2つの有色ラインを設けることが好ましい。
【0020】
1つの有色ライン内の受光画素は同じ色に感度を持っていることが好ましい。言い換えれば、1つの有色ライン全体が例えば赤色ライン又は青色ラインのように均一である。このようにすればそれに対応する色情報が最大の解像度で得られる。また、1つの有色ライン内の受光画素が異なる色に感度を持ち、特に赤青赤青のように交互に現れるようにすることもできる。更には均一の有色ラインと混成の有色ラインを組み合わせることも考えられる。
【0021】
グレースケール画像はコードの読み取りに用いられること、即ちコード内に符号化された内容が読み取られることが好ましい。グレースケール画像は最大の解像度と可能な限り高い信号雑音比を有しているため、従来のモノクロ型ラインカメラを用いる場合と同じ品質でコードの読み取りが可能である。同時に、復号の結果を損なわずに色情報を出力することができる。この色情報は任意の機能に利用できるが、例えば最初にコード領域を分割又は検出する等、コードの読み取りに関係する機能にも利用できる。
【0022】
単色画像からカラー画像が生成されることが好ましい。カラー画像とは、RGB形式のように人間の目で普通に認識できる色を持つ、通常の語法でいうところの画像であって、例えば赤の色情報しか含まないような単色画像とは区別すべきものである。全ての原色を単色画像として取得すれば、それらを合わせてカラー画像にするのに十分である。他に、原色の1つを他の原色から再構成することが考えられる。特に好ましくは、コードの付された物体及び/又はコード領域の認識、分類及び/又は画像背景からの識別を行うために、カラー画像をコードの読み取りと関連付けてその読み取りを支援するために用いる。コードの下地は周囲と色が異なることがよくあり、また、コードの付された物体を認識して背景から分離するために色情報を利用することができる。或いはカラー画像を他の何らかの機能に利用する。特にそれをそのまま出力し、後から視覚化及び診断の機能のため又は全く別の追加の課題に利用する。こうして、コードの読み取りに特に適したグレースケール画像の撮影とそれを支援するため又は他の目的で利用可能なカラー画像の撮影という2つの機能が1つの方法及び1つの装置に統合され、その際、主たる機能であるコードの読み取りは追加のカラー画像の撮影によって損なわれることがない。グレースケール画像は補足的に又はコードの読み取りとは別の目的で利用することができる。
【0023】
好ましくは1つのグレースケール画像と1つのカラー画像が生成される。これにより両方の画像が復号又は他の機能のために利用可能になる。カラー画像はグレースケール画像よりも低い解像度を持つことが好ましい。コードの読み取りのように解像度に関して要求の高い用途については解像度の高い白色ラインのグレースケール画像が既に利用可能である。前記低い解像度は、ライン方向における各色の受光画素の数を少なくする又はサイズを大きくすることより最初からそうなるようにすることができる。或いはハードウェア又はソフトウェアのレベルでビニング又はダウンサンプリングを行う。
【0024】
好ましくは、ラインカメラと撮影対象の物体又はコードとの間の相対運動の間に撮影された画像ラインを合成して全体画像にする。バーコードの場合は代わりに単一のライン状撮影画像からコードを読み取ることが考えられるが、バーコードも前記のように合成された平面的な全体画像から読み取ることが好ましい。
【0025】
明度関数が色正規化関数を用いて単色画像の色についてそれぞれ修正され、その結果、グレースケール画像と各単色画像に対する補正がそれぞれ独自の明度関数を用いて行われ、前記色正規化関数は様々なライン位置及び距離に対して照明モジュールの該当色における明度を全スペクトルにわたる明度に対する比に変換するものであることが好ましい。色正規化関数は明度関数と同じ次元、即ちライン方向X及び/又は距離方向Zに照明モジュールのスペクトルの差異を再現するものであることが好ましい。離散化された形式では色正規化関数をベクトル又はマトリクスにより表すことができる。色正規化関数と明度関数の解像度は異なっていてもよく、その場合はそれを例えば内挿により合わせることができる。カラーチャネル毎に色正規化関数と明度関数を混合すると、色の適合化と正規化が成されたより良好な又は修正された明度関数が得られる。モノクロチャネル乃至はグレースケール画像用の明度関数は正規化の必要はない。それに相当するグレー正規化関数は単に「1」から成るものに過ぎず、何も変化させない。なぜならここでは全スペクトルにわたる明度に対するグレースケール値はそれ自体を指すからである。色正規化関数を用いた明度関数の修正は、カメラが照明モジュールから明度関数を読み出した後、稼働開始時に実行されることが好ましい。その後、修正された明度関数が、その後の運転中の明度及び色の補正で使用するためにラインカメラ内に保存される。
【0026】
色正規化関数は予め照明モジュールの型に対して共通に決定されていることが好ましい。この実施形態は、使用される照明モジュールのシリーズ又は型が機器を超えて少なくとも或る程度安定的なスペクトル特性を示すことを前提としている。この色正規化関数は照明モジュール毎にではなく一度だけ決定される。差異は許容差として容認される。この色正規化関数は照明モジュール内又はラインカメラ内のいずれに保存してもよい。なぜならそれは具体的な照明モジュールには依存しておらず、その型に依存しているに過ぎないからである。
【0027】
色正規化関数は予め照明モジュールに対して個々に決定されることが好ましい。この代替の実施形態では色正規化関数が明度関数と同じく機器毎に存在し、後でラインカメラにおいて使用するために同様に照明モジュール内に保存される。好ましくは、色正規化関数と明度関数を、同じ工程で、例えば色感度を持つ受光器を用いて、様々なX方向及び/又はZ方向における明度関数の較正測定を行う間に学習させる。
【0028】
明度関数はラインカメラの光学パラメータに基づいて高精度化されることが好ましい。照明モジュールに保存された明度関数はX方向及び/又はZ方向に値が例えば10個だけという低い分解能しか持たないことが好ましい。このようにすれば、最初に明度関数を照明モジュールに保存する必要がある場合に、該照明モジュールを較正する際のコストが低減される。ラインカメラはその後、稼働場所においてこのまだかなり粗めに分解された明度関数を読み込み、焦点距離や絞り等の光学パラメータを含む光学モデルを利用して、その関数をより分解能の高い明度関数に変える。好ましくは、まず明度関数を色正規化関数と混合することでモノクロチャネル及びカラーチャネル毎に明度関数を取得し、続いてこれらのチャネル毎に得られた明度関数を高精度化する。このときは既に明度関数が正規化されているため、モノクロチャネルとカラーチャネルにおいて同じ高精度化アルゴリズムを用いることができる。ただし、カラーチャネルにおいては色自体に、それどころか色毎に適合化された高精度化アルゴリズムを用いることも考えられる。
【0029】
グレースケール画像と単色画像は異なるアナログ及び/又はデジタルの増幅で以て取得されることが好ましい。色フィルタのせいでカラーチャネルにおけるレベルは低いことが典型的であるが、これは増幅により調整することができる。その際、全ての色を同じ増幅率で強めることも、互いに異なる増幅を行うこともできる。ハードウェア的に可能であればアナログの増幅を行うことにより最高の信号品質が得られる。デジタルの増幅は、明度関数又は色正規化関数における所望の増幅率での点毎のスケーリングのために考慮することができる。
【0030】
2つの単色画像が3原色のうち2つで撮影されることが好ましい。ここでは1つのモノクロチャネルとそれぞれ異なる原色の2つのカラーチャネルとがある。従って、ラインカメラの各有色ラインはそれぞれ2つの原色のうちの一方に感度を持つ受光画素を備えている一方、第3の原色に感度を持つ受光画素はない。原色は加法混色の原色である赤、緑及び青、又は減法混色の原色である青緑(シアン)、紫(マゼンタ)及び黄である。そのうち2つだけを設けることにより受光画素とライン配列が削減される。代わりに3つの原色を全て設けることも考えられる(RGBW、CMYW)。
【0031】
第3の原色はグレースケール画像及び2つの単色画像から再構成されることが好ましい。白色ラインは全ての原色が重なったものを取得するため、他の2つの原色の画像が得られれば第3の原色を分離することができる。ただし、単純にそのまま減算すると、特に照明モジュールのスペクトルが不均一である場合、色に見分けできない狂いが生じる。一方、本発明では、好ましくは色正規化関数を考慮に入れて、上記のように明度関数を用いた補正を行うため、色がそのまま保たれる。追加の有利な色補正について後で更に説明する。
【0032】
前記2つの原色は赤と青であることが好ましい。一般に加法混色の原色の方がよい結果が出る。まさにベイヤー型の場合に2重に設けられる緑がこの好ましい実施形態では撮影されないため、そのための受光画素とライン配列を設けなくてよい。必要に応じて白色ラインと赤及び青の色情報から緑が作り出される。具体的にはG=3*W-R-Bから緑が再構成されるが、その際に本発明に従って明度及び色の補正を行って初めて満足のいく結果が出る。原色の赤と青の選択は、照明モジュールが緑のスペクトルにおいて低めの強度を示す場合に特に有利である。
【0033】
好ましくは、カラー画像の補正した色値が、それぞれのグレースケール画像のグレースケール値及び各単色画像の単色値と色補正用の重み付け係数とを用いた線形結合から算出される。重み付け係数は静的であって、これを用いた追加の色補正で良好な色の印象を得るために経験的に決定される。この特別な脈絡において、原色の1つが白色ライン又はグレースケール画像から再構成される場合は、白色ラインで取得された画像情報も色とみなされ、線形結合において同様に考慮される。
【0034】
好ましくは、グレースケール値Wを持つグレースケール画像、赤色値Rを持つ赤色画像及び青色値Bを持つ青色画像に対する補正されたRGB値R’G’B’が、重み付け係数x1~x12を用いて、
R’=x1*R+x2*(3*W-R-B)+x3*B+x4、
G’=x5*R+x6*(3*W-R-B)+x7*B+x8、及び
B’=x9*R+x10*(3*W-R-B)+x11*B+x12
で求められる。これは簡単且つ明瞭な計算規則であり、一目で分かる数の重み付け係数x1~x12は是認できるコストで決まると同時に良好な色補正のために十分な柔軟性がある。ここでもまた好ましい一対である赤と青の単色画像が撮影される。他の原色の場合は置き換えにより上記のような方程式を示すことができる。1つ又は若干数の重み付け係数、特にオフセットのx4、x8及びx12はゼロになる可能性がある。
【0035】
補正された色値はニューラルネットワークを用いて決定することが好ましい。そうすれば重み付け係数を手作業で決める必要がなく、該係数がサンプルデータに基づいて自動的に学習される。正解として学習すべき色基準を含む必要なデータセットは参照パターンを通じて予め定めることができる。その訓練は色感度を持つ又は好ましくは色較正した少なくとも1つの別のセンサのカラー画像に基づいて行うことが特に好ましい。この追加の色センサは一度だけ、例えば製造現場で必要となるだけであるから、その1回のコストはさほど重要ではなく、必要な質と量のラベル付き訓練データが簡単に生成される。
【0036】
本発明に係る方法は、前記と同様のやり方で仕上げていくことが可能であり、それにより同様の効果を奏する。そのような効果をもたらす特徴は、例えば本願の独立請求項に続く従属請求項に模範的に記載されているが、それらに限られるものではない。
【0037】
以下、本発明について、更なる特徴及び利点をも考慮しつつ、模範的な実施形態に基づき、添付の図面を参照しながら詳しく説明する。
【図面の簡単な説明】
【0038】
【
図2】物体を載せたベルトコンベアの上方に、特にコードの読み取りのために固定的に取り付けられたラインカメラの使用を示す3次元図。
【
図3】赤色、青色及び白色のラインを持つライン状画像センサの概略図。
【
図4】赤色、青色及び2本の白色のラインを持つライン状画像センサの概略図。
【
図5】赤と青が交互に現れるラインと白色ラインとを持つライン状画像センサの概略図。
【
図6】赤と青が交互に現れる2本のラインと2本の白色ラインとを持つライン状画像センサの概略図。
【
図7】正規化されたグレースケール画像と単色画像を生成するための模範的なフローチャート。
【
図10】グレースケール画像のモノクロチャネルに対する正規化の前及び後の様々な距離における画像の例。
【
図11】赤色画像の赤のカラーチャネルに対する正規化の前及び後の様々な距離における画像の例。
【
図12】青色画像の青のカラーチャネルに対する正規化の前及び後の様々な距離における画像の例。
【
図13】様々な距離における照明モジュールの模範的なスペクトル。
【
図14】様々な色に対する受光画素の量子効率の模範的な図。
【発明を実施するための形態】
【0039】
図1は、好ましくは一次元又は二次元の光学コードを読み取るためのコードリーダとして構成されたラインカメラ10の非常に簡略化したブロック図である。ラインカメラ10は撮影対物レンズ16を通して検出領域14からの受信光12を捕らえる。対物レンズはここでは単に簡単なレンズで表されている。ライン状画像センサ18が検出領域14並びに場合によってはそこにある物体及びコード領域の画像データを生成する。画像センサ18は感光性を有する受光画素22から成る少なくとも2つのライン20a~bを備えており、ライン方向には好ましくは数百、数千又はそれ以上の多数の受光画素22が設けられている。
【0040】
画像センサ18の画像データは制御及び評価ユニット24により読み出される。制御及び評価ユニット24はマイクロプロセッサ、ASIC、FPGA等の一又は複数のデジタル部品上に実装されており、その全体又は一部をラインカメラ10の外部に設けることもできる。評価のうち優先される部分は、取得した画像ラインを隙間なく並べて1つの全体画像にすることである。その他、評価の際に画像データを準備的にフィルタリングしたり、平滑化したり、特定の領域に切り詰めたり、二値化したりできる。本発明では明度乃至は色の補正が行われるが、これについては後で
図7~14を参照して詳しく説明する。コードリーダというラインカメラ10の好ましい実施形態では個々の物体及びコード領域を見出すセグメント化を行うことが典型的である。それからそのコード領域内のコードが復号される。即ち、コードに含まれている情報が読み出される。
【0041】
検出領域14を発射光26で十分に明るく隈無く照らすため、光源30(典型的には例えばLEDの形をした多数の光源)と発光光学系32とを持つ照明モジュール28が設けられている。照明モジュール28は
図1ではラインカメラ10のケーシング34内に描かれている。これは1つの可能な実施形態であって、ここでは照明モジュール28は製造工程の後の方で、それどころか製造後に完成した機器内へ、例えば稼働場所において、ラインカメラ10の適宜のスロット内へ差し込まれる。或いは、照明モジュール28が独自のケーシングを備えており、又は外部の機器であり、稼働のためにラインカメラ10と接続される。
【0042】
ラインカメラ10のインターフェイス36にはデータが出力可能であり、しかも読み取ったコード情報と同様に、生画像データ、前処理された画像データ、識別された物体、又はまだ復号されていないコード画像データ等、様々な処理段階における他のデータも出力できる。逆にインターフェイス36又は他のインターフェイスを通じてラインカメラ10のパラメータ設定を行うことができる。
【0043】
図2は、ラインカメラ10をベルトコンベア38付近に取り付けて使用できることを示している。ベルトコンベア38は矢印で示したようにラインカメラ10の検出領域14を通って物体40を搬送方向42に搬送する。物体40は表面にコード領域44を持っていることがある。この応用例におけるコードリーダとしてのラインカメラ10の任務は、コード領域44を認識し、そこに付されたコードを読み取り、復号して、それぞれ該当する物体40に割り当てることである。側面に付されたコード領域46も認識するため、好ましくは複数のラインカメラ10が異なる視点から用いられる。また、例えば物体40の形状を捕らえるための前段のレーザスキャナやベルトコンベア38の速さを検出するためのインクリメンタルエンコーダといった追加のセンサがあってもよい。物体40を載せたベルトコンベア38付近にラインカメラ10を固定的に取り付けることは、コードの読み取り以外の画像評価を行う用途においても考えられる。
【0044】
ラインカメラ10の検出領域14はライン状画像センサ18に対応するライン状の読み取り野を持つ平面である。それに対応して照明モジュール28は、許容差を除けば前記読み取り野と一致するライン状の照明領域を生成する。
図2では照明モジュール28を簡略化して単に概略的にラインカメラ10内のブロックとして書き込んでいる。既に述べたように、照明モジュール28は外部の機器であってもよい。物体40が搬送方向42に1ラインずつ撮影されることにより、コード領域44を含めた搬送中の物体40の全体画像が次第に作り出される。なお、ライン20a~bは非常に近接しているため、実質的に同じ物体断面を捕らえる。代わりにずれを計算で補うこともできる。
【0045】
ラインカメラ10はまずその画像センサ18でコードの読み取りに用いられるグレースケール画像又は白黒画像を取得する。それに加えて色情報又はカラー画像も取得される。色情報は多くの追加機能に利用できる。一例として、物体40が例えば荷物であるか、封筒であるか、あるいは紙袋であるかを見出すための分類作業がある。ベルトコンベアの容器(例えば深皿コンベアの深皿、又は箱)が空かどうかを確認することができる。物体40又はコード領域44における画像データのセグメント化を色情報に基づいて行う又はそれにより支援することができる。また、例えば危険物表示用の特定の刷り込み又はステッカーの認識等、追加的な画像認識の課題を解決したり、文字を読み取ったりできる(OCR、光学文字認識)。
【0046】
図3~6はこのように白黒画像と色情報を取得するための画像センサ18の実施形態のいくつかの例を示している。これらの実施形態に共通しているのは、ライン20a~dのうち少なくとも1つが、ハードウェアの限界内でスペクトル全体の光を捕らえる受光画素22を有する白色ラインであるということである。少なくとも別の1つライン20a~dが、特定の色だけに感度を持つ受光画素22を有する有色ラインであり、これは特に適宜の色フィルタによる。有色ラインの各々の受光画素22にわたる各色の配分は実施形態によって異なるが、普通のRGB、特にベイヤー型とは違っている。完全な白色ラインが少なくとも1つ設けられていることは、それによりグレースケール画像が最大の解像度で撮影されるため、好ましい。また、白色と有色のラインの区別がより分かりやすくなる。もっとも、そのパターンから逸脱し、ライン20a~d内で白色と有色の受光画素22を混在させることも考えられる。同じスペクトル感度を持つ受光画素22がモノクロチャネルにおいてはグレースケール画像用にまとめられ、各カラーチャネルにおいては、例えば赤色に感度を持つ赤色のカラーチャネル内の受光画素22は赤色画像用に、青色に感度を持つ青色のカラーチャネル内の受光画素22は青色画像用にというように、単色画像用にまとめられる。
【0047】
図3は赤色ライン20a、青色ライン20b及び白色ライン20cをそれぞれ有する実施形態を示している。即ち、ライン20a~cはそれぞれ均一であり、1つのライン20a~c内の受光画素22は同じ光スペクトルに感度を持つ。
図4は白色ライン20dを追加した変形を示している。
【0048】
図5の実施形態では赤色と青色に感度を持つ受光画素22が有色ライン20a内で交互に現れるように混在している。このようにすれば、白色ライン20bと組み合わせて全部で2本のラインだけを持つ構成が可能である。
図6はその変形であって、こちらは有色ライン20a~bと白色ライン20c~dが共に2重になっている。
【0049】
コードの読み取りには白色ラインの解像度が高いことが望まれる一方、色情報はより低い解像度しか必要とされない場合が多い。故に、
図5及び6のように有色ラインに一定程度の解像度の損失があっても、状況によっては全く妨げにならない。それどころか、画素の統合により意図的に解像度を下げる(ビニング、ダウンサンプリング)ことで信号雑音比を改善することが可能な場合もかなりある。
【0050】
これらの例は原色の赤及び青と白(RBW)に基づいた1つの選択に過ぎない。他の実施形態では別の色フィルタと色が用いられる。例えば、緑と赤又は青(RGW、BGW)や3原色全て(RGBW)を用いることも考えられるであろう。更には減法混色の原色である青緑(シアン)、紫(マゼンタ)及び黄を同様に組み合わせること(CMW、CYW、MYW又はCMYW)も考慮の対象になる。
【0051】
異なる色の受光画素22の生の画像データは、有用な色を出力するには様々な点で余りにバランスが取れていない。それはまず空間的な検出状況のせいである。なぜなら、距離が遠く、ライン20a~dの縁部にある物体40が受ける照明強度は、距離が近く、中央にある物体40とは異なるからである。従って、ライン20a~dのX方向及び物体距離のZ方向における空間的な依存性がある。加えて、特にLEDのような半導体光源を用いた場合、照明モジュール28は異なる波長領域における明度が互いに明らかに異なるようなスペクトル特性を示す。しかもその空間特性とスペクトル特性は、例えば光源30のロットの違いや他の許容差により、個々の照明モジュール28毎にばらつきがある。以下、様々な有利な実施形態において、照明モジュール28の個別の変動及び/又は一般的なスペクトル及び空間的変動を補う明度及び色補正について説明する。
【0052】
図7は補正又は正規化されたグレースケール画像と単色画像を生成するための模範的なフローチャートを示している。なお、ここではグレースケール画像用の1つのモノクロチャネルと赤色画像及び青色画像用の2つのカラーチャネルという例を説明するが、この例に限定されない。
【0053】
照明モジュール28は、許容差やロットの違い等による個別の特殊性を柔軟に考慮できるようにするため、ラインカメラ10とは別に例えば仕上げの際に較正される。例えば、照明モジュール28を製造時にスライド台の上で測定することで、横方向つまりX方向に分配された複数の受光素子又はフォトダイオードをそれぞれ照明モジュール28から様々な距離にずらしながら、該フォトダイオードの各々の(X,Z)位置に対応する明度値を出力する。その値から例えば10行10列の解像度を持つ明度マトリクスが得られる。即ち、10通りの距離で、横方向に分配された10個のフォトダイオードを用いて、或いは1つの距離当たりフォトダイオードを10回ずらして測定を行う。当然ながら解像度は違っていてもよく、特にX方向とZ方向の解像度が同じである必要は全くないが、数値が小さすぎると補償が不完全になり、数値が大きすぎると較正コストが不必要に高くなる。
【0054】
こうして予め得られた照明モジュール28の明度マトリクス48は、照明モジュール28の好ましくは不揮発性のメモリ(EEPROM)に保存されるとともに、
図7のフローチャートの出発点となる。本来の使用のためには、好ましくは既に稼働場所に着いてから、照明モジュール28をラインカメラ10に接続する。どの照明モジュール28をどのラインカメラ10に用いるかを事前に何らかの方法で確定する必要はなく、両方の機器が柔軟に互いに知らせ合う。
【0055】
図7には示していない第1の調整ステップとして、ラインカメラ10内でモノクロチャネルと2つのカラーチャネルに異なる増幅率を用いること、即ち、κ
i>1として、gain
farbe,i=κ
igain
monoとすることができる。カラーチャネル同士を区別することは任意である。つまりi個のカラーチャネル全てにκ
i=κを適用することもできる。これによりモノクロチャネルとカラーチャネルが既に似たようなダイナミックレンジに収まる。白色ラインとカラーラインが分かれている等、画像センサ18を用いてハードウェア側で対応できる場合は、そこで既に異なる増幅をアナログ的に行うことで、より良好な信号雑音特性が達成される。その代わりに、又はそれに加えて、デジタル的な増幅も可能である。純粋にデジタル的な増幅率は掛け合わせて簡単にカラーチャネルの補正マトリクス(以下に紹介する)にすることができる。
【0056】
明度調整のためにラインカメラ10はモノクロチャネル高精度化50において照明モジュール28に保存された明度マトリクス48を読み出す。焦点距離、絞り等の光学パラメータを用いて、元の明度マトリクス48よりもはるかに多くの値が書き込まれたより高精度のモノクロチャネル明度マトリクス52が算出される。モノクロチャネル明度マトリクス52は、距離の増大に伴う強度の低下によりライン軸又はX軸に沿って並びにZ軸に沿ってこの個々の照明モジュール28の照明に生じる不均一性を補償する。これによりモノクロチャネル又はグレースケール画像に対する白色調整が成される。
【0057】
カラーチャネルでは更にスペクトルの違いも考慮すべきである。そのために追加の色正規化マトリクス54、56が用いられる。色正規化マトリクス54、56は明度マトリクス48と同じ次元X、Zを持つが、解像度は異なっていてもよく、その場合は例えば内挿により補われる。
図8は青用の色正規化マトリクス54の例、
図9は赤用の色正規化マトリクス56の例を示している。これらの色正規化マトリクス54、56を得るために照明モジュール28の分光測定が行われる。そして(X,Z)位置毎にスペクトル全体の強度に対する青又は赤の各色の強度の比が求められる。色正規化マトリクス54、56は、全体の強度に対する該当の色の分量がどの程度かを、位置分解された分布で分かりやすく示す。色正規化マトリクス54、56は照明モジュール28毎に個々に決定するのではなく、照明モジュール28の型又はシリーズに対して一度だけ決定することが好ましい。その場合、それらは製造品とは無関係に分かるから、例えば表(LUT、ルックアップテーブル)として照明モジュール28とラインカメラ10のどちらにでも保存できる。
【0058】
結合ステップ58ではカラーチャネル毎に色正規化マトリクス54、56が明度マトリクス48と混合される。そのために、簡単且つ有利な実装では個々の値を互いに掛け合わせることができるが、これは全てのマトリクス48、54及び56が適切に正規化されている又は正規化されることが前提である。或いはより複雑な組み合わせの計算が行われる。これにマトリクス48、54及び56の解像度の適合化を含めることもできる。
【0059】
得られる各補償マトリクスはカラーチャネル高精度化60に付される。これにはモノクロチャネル高精度化50の場合と同じアルゴリズムを用いることができる。または色固有の特性を考慮し、それにより両カラーチャネルに共通のアルゴリズム又はそれどころかカラーチャネル毎のアルゴリズムを修正する。その結果が青又は赤のカラーチャネル用の高精度化されたカラーチャネル明度マトリクス62、64である。これを用いてカラーチャネル及び単色画像に対しても白色調整が成される。高精度化されたマトリクス52、62及び64は例えば稼働開始の際や照明モジュール28をラインカメラ10に接続する際に一度だけ計算すればよい。
【0060】
図7を参照して説明したモノクロチャネル及びカラーチャネルの明度補正では、明度マトリクス48はスペクトル特性に依存せずに取得され、色固有の適合化は色正規化マトリクス54、56によって行われる。代わりに、明度マトリクス48を異なる各色で直接取得し、照明モジュール28に保存することが考えられる。そうすると、モノクロチャネルと各カラーチャネルに対してそれぞれ異なる明度マトリクス48が生成される。色正規化マトリクス54、56の情報は既にその中に含まれているから、結合ステップ58は省略できる。そのためには、特に照明モジュール28の測定のために、上記のような白色光に感度を持つフォトダイオードの代わりに相応の色フィルタを持つ受光器又はフォトダイオードを用いることができる。その場合、色の正規化は前述のように照明モジュール28の型又はシリーズに共通にではなくモジュール毎に個別に行われる。
【0061】
図10~12はここまでに得られた正規化後の白色、赤色及び青色値の結果を示している。各図は同じように構成されており、
図10はモノクロチャネル、
図11は赤チャネル、
図12は青チャネルを示している。なお、赤及び青チャネルはモノクロチャネルに対して予め約3倍の増幅率で増幅している。各列は距離又はZ方向が異なっている。上の行はライン位置XをX軸上にとり、連続的に撮影された異なるラインをY軸上に並べた生画像を示している。2番目の行は対応する結果を正規化後の画像の形で示している。一番下の行は生画像の全画像ラインにわたる平均を正規化後の画像の全画像ラインにわたる平均と比較して示している。正規化後の画像に対応する明るめに描いた線は少なくとも近似的に平坦に走っている。即ち、生画像に対応する暗めの線の不規則な推移が正規化によって所望の通りに平坦化されている。
【0062】
こうして正規化された画像データは更なる色の正規化及び再構成の入力データとして用いることができる。まず
図13は照明モジュール28の模範的な照明スペクトルを示している。青のピーク66と赤のピーク68が明瞭に見て取れる。複数の線があるのは光学系の分散のせいで照明スペクトルに距離依存性があるからである。
図14は白色の特性曲線70、青色の特性曲線72、緑色の特性曲線74及び赤色の特性曲線76を持つ受光画素22用の色フィルタの模範的な量子効率を補足的に示している。
【0063】
図13の照明スペクトルにおいて480nm付近の波長領域に局所極小がある。
図14の例によれば、そこには典型的には緑フィルタの透過窓がある。それ故、白い標的上で似たような強度を出す青と赤のカラーチャネルを使用し、緑のカラーチャネルは使用しないことが好ましい。そうすればダイナミックレンジがより余すところなく利用され、より高い信号雑音比が達成される。
【0064】
青と緑のカラーチャネルを選択した場合は2つの原色の画像データしか決まらない。RGB値の色表現が望まれる場合、欠けている色である緑を関数f(W,R,B)からから再構成する。まずはG=3*W-R-Bからであるが、これではまだ色の良好な再現には不十分である。なぜなら、照明スペクトルは不均一であり、緑の波長領域に局所極小があるからである。ある程度の調整が上述した正規化により行われる。できるだけ忠実な色の結果を得るにはR、B及びWの相関を求めて利用することが好ましい。これは例えば相関係数又は重み付け係数x1~x12を用いた次の形の線形結合である。
R’=x1*R+x2*(3*W-R-B)+x3*B+x4
G’=x5*R+x6*(3*W-R-B)+x7*B+x8
B’=x9*R+x10*(3*W-R-B)+x11*B+x12
重み付け係数x1~x12は経験的に求められ、静的である。青と赤があり緑がないという場合以外のカラーチャネルについては相応の補正が可能である。
【0065】
図13に示したように緑のスペクトルに局所極小があっても、重み付け係数により色の再現が可能である。分かりやすくするため、ラインカメラ10が緑色の標的を検出することを考えてみる。青チャネルと赤チャネルではどちらも緑色光はほとんど通過せず、記録される強度はほぼゼロである。モノクロチャネルでは、例えば
図14の白色光の特性曲線70を見れば分かるように、わずかに存在する緑色光が通過し、ゼロを或る程度超える強度が生じる。x
6の値を大きくすると共にx
5とx
7の値を補正することで緑の値G’を再構成できる。代わりに黒い標的にすると、どのチャネルでも有意な強度は検出されないから、G’についての方程式における係数x
5~x
7は変わらない。その結果、緑の値がゼロ付近に完全に正しく再構成される。ここで、オフセット値x
4、x
8及びx
12に大きすぎない値又はそれどころかゼロ付近の値が合理的に選ばれていることが明らかになる。グレーの標的の場合は両方のカラーチャネルから或る程度の信号が生じ、或る程度の緑の値G’が再構成されるから、それを合計すれば所望の通りグレーのRGB色が得られる。
【0066】
紹介した重み付け係数の代わりに、又はそれに加えて、ニューラルネットワーク(特に複数の隠れ層を持つもの)が用いられる。入力としては生の又は前補正された色ベクトルが与えられ、ニューラルネットワークは補正された色ベクトルを返す。このようなニューラルネットワークの訓練は、例えば追加の色センサを用いて、教師あり学習において訓練画像のために学習すべき色を予め設定することにより行うことができる。また、隣接画素の色値を考慮することによって信号雑音特性を改善するようなアルゴリズム又はニューラルネットワークを用いることができる。