IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ジック アーゲーの特許一覧

特許7157118コードリーダ及び光学コードの読み取り方法
<>
  • 特許-コードリーダ及び光学コードの読み取り方法 図1
  • 特許-コードリーダ及び光学コードの読み取り方法 図2
  • 特許-コードリーダ及び光学コードの読み取り方法 図3
  • 特許-コードリーダ及び光学コードの読み取り方法 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-11
(45)【発行日】2022-10-19
(54)【発明の名称】コードリーダ及び光学コードの読み取り方法
(51)【国際特許分類】
   G06K 7/14 20060101AFI20221012BHJP
   G06K 7/10 20060101ALI20221012BHJP
【FI】
G06K7/14 060
G06K7/14 039
G06K7/10 400
【請求項の数】 14
【外国語出願】
(21)【出願番号】P 2020175195
(22)【出願日】2020-10-19
(65)【公開番号】P2021077360
(43)【公開日】2021-05-20
【審査請求日】2021-01-29
(31)【優先権主張番号】19204602.7
(32)【優先日】2019-10-22
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】591005615
【氏名又は名称】ジック アーゲー
(74)【代理人】
【識別番号】110001069
【氏名又は名称】特許業務法人京都国際特許事務所
(72)【発明者】
【氏名】ロマン ミューラー
(72)【発明者】
【氏名】ダーク ストローメイヤー
(72)【発明者】
【氏名】パスカル シューラー
(72)【発明者】
【氏名】マルセル ハンプフ
【審査官】河合 弘明
(56)【参考文献】
【文献】特開2006-268699(JP,A)
【文献】米国特許出願公開第2019/0281199(US,A1)
【文献】特開2018-136860(JP,A)
【文献】特開2004-252599(JP,A)
【文献】特開2008-071032(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06K 7/14
G06K 7/10
(57)【特許請求の範囲】
【請求項1】
光学的なコード(52)を読み取るためのコードリーダ(10)であって、前記コード(52)を含む画像データを取得するための画像センサ(18)と、前記コード(52)を少なくとも1つの復号プロセスで読み取るように構成された制御及び評価ユニット(38)とを含む、コードリーダ(10)において、
前記制御及び評価ユニット(38)が更に、前記復号プロセスのために、距離センサ(24、56)により前記コード(52)の前記コードリーダ(10)までの距離に対して特定された距離値に応じて少なくとも1つのパラメータを設定する及び/又は前記復号プロセスの少なくとも1つの補助アルゴリズムを実行する又は実行しないように構成されていること、及び
前記パラメータが、モジュールサイズ、コントラスト、又はエッジの不鮮明さであること
を特徴とするコードリーダ(10)。
【請求項2】
前記距離センサ(24)が、コードリーダ(10)に統合された、特に光伝播時間法による光電式距離センサであることを特徴とする請求項1に記載のコードリーダ(10)。
【請求項3】
前記制御及び評価ユニット(38)が距離値とそれに対応するパラメータとを含むパラメータ表を有しており、前記コード(52)の読み取りに成功したときに該パラメータ表が前記パラメータの測定値に基づいて作成及び/又は更新されることを特徴とする請求項1又は2に記載のコードリーダ(10)。
【請求項4】
前記制御及び評価ユニット(38)が、前記パラメータ表を改訂するために、複数の異なるパラメータで前記コード(52)の読み取りを試みるように構成されていることを特徴とする請求項3に記載のコードリーダ(10)。
【請求項5】
前記補助アルゴリズムが、ダウンサンプリング、アップサンプリング、超解像、局所的なコントラスト増大、ぼけの修正、及び、押圧不足の修正のうち少なくとも1つであることを特徴とする請求項1~4のいずれかに記載のコードリーダ(10)。
【請求項6】
前記制御及び評価ユニット(38)が距離値とそれに対応する補助アルゴリズムとを含む補助アルゴリズム表を有しており、該補助アルゴリズム表がその都度の補助アルゴリズムで読み取られた前記コード(52)に基づいて作成及び/又は更新されることを特徴とする請求項1~5のいずれかに記載のコードリーダ(10)。
【請求項7】
前記制御及び評価ユニット(38)が、前記補助アルゴリズム表を改訂するため、補助アルゴリズムの複数の異なる組み合わせを、特にそれまで前記コード(52)が読み取れなかったコード領域において試すように構成されていることを特徴とする請求項6に記載のコードリーダ(10)。
【請求項8】
前記制御及び評価ユニット(38)が、前記コード(52)が読み取られない段階においてパラメータ及び/又は補助アルゴリズムを試すように構成されていることを特徴とする請求項1~7のいずれかに記載のコードリーダ(10)。
【請求項9】
前記制御及び評価ユニット(38)がパラメータ及び/又は補助アルゴリズムを試すためのテスト復号器を備えていることを特徴とする請求項1~8のいずれかに記載のコードリーダ(10)。
【請求項10】
前記制御及び評価ユニット(38)が、コード領域(52)の本来の復号処理のためにパラメータ及び/又は補助アルゴリズムを選択するように構成されていることを特徴とする請求項1~9のいずれかに記載のコードリーダ(10)。
【請求項11】
前記制御及び評価ユニット(38)が、コード領域(52)とは関係なく画像データの前処理のためにパラメータ及び/又は補助アルゴリズムを選択するように構成されていることを特徴とする請求項1~10のいずれかに記載のコードリーダ(10)。
【請求項12】
前記前処理がFPGA(38a)内で実行されることを特徴とする請求項11に記載のコードリーダ(10)。
【請求項13】
前記前処理がアップサンプリング、ダウンサンプリング及び/又はコントラスト伸長を含み、特にコントラスト伸長は距離値に応じて画像データの高位又は低位のビット領域を選択することにより行われることを特徴とする請求項11又は12に記載のコードリーダ(10)。
【請求項14】
光学的なコード(52)の読み取り方法であって、前記コード(52)を検出し、少なくとも1つの復号プロセスを用いて前記コード(52)を読み取り、更に該コード(52)のコードリーダ(10)までの距離に対して距離値を特定する方法において、
前記復号プロセスのために、前記距離値に応じて少なくとも1つのパラメータを設定する及び/又は前記復号プロセスの少なくとも1つの補助アルゴリズムを実行する又は実行しないこと、及び
前記パラメータが、モジュールサイズ、コントラスト、又はエッジの不鮮明さであること
を特徴とする光学的なコードの読み取り方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、請求項1又は15のプレアンブルに記載のコードリーダ及び光学コードの読み取り方法に関する。
【背景技術】
【0002】
コードリーダは、スーパーマーケットのレジ、荷物の自動識別、郵便物の仕分け、空港での手荷物の発送等、物流での利用が知られている。コードスキャナの場合、読み取り光線が回転ミラー又はポリゴンミラーホイールでコードを横切るように案内される。カメラベースのコードリーダは画像センサを用いて物体の画像をその表面のコードとともに撮影し、画像評価ソフトウエアがその画像からコード情報を抽出する。カメラベースのコードリーダは、1次元バーコード以外の種類のコード、例えばマトリックスコードのように2次元的に構成され、より多くの情報を利用できるコードでも問題なく処理できる。
【0003】
ある重要な一群の利用形態では、コードを付した物体がコードリーダの近くを通過するように搬送される。そして、コードスキャナがその読み取り領域内に次々に入ってくるコードをそれぞれ検出する。一方、カメラベースのコードリーダでは、ライン走査カメラがコード情報を持つ物体画像を相対運動に伴って次々に1ラインずつ読み取る。2次元画像センサを用いる場合は、撮像レートと搬送速度に応じて多少重なり合う複数の画像データが規則的に取得される。物体をコンベア上で任意の向きに配置できるようにするため、読み取りトンネルに複数のコードリーダを設け、物体を複数の側又は全ての側から撮影できるようにすることも多い。
【0004】
コードリーダは複雑なセンサ系の一部であることがよくある。例えば、ベルトコンベアの近くにある読み取りトンネルでは、通常、搬送される物体の幾何学的形状を予め特別なレーザスキャナで測定し、そこから焦点情報、作動時刻、物体を含む画像領域等を特定するのが普通である。特許文献1では距離センサがカメラに統合されている。
【0005】
コード読み取りシステムの最も重要な特徴量の一つが読み取り率である。なぜなら、コードが読み取られなければ手動の後処理が生じたり、割り当て間違いにさえつながったりするからである。ところで、コードの読み取りが失敗する理由は様々である。平たい物体はコードリーダまでの物体距離がその分だけ大きく、照明がもはや十分ではなくなるため、コードのコントラストが低くなる。また、モジュールサイズ、つまりコードモジュール毎の画素数が減少し、ノイズが増大する。逆に背の高い物体は物体距離がその分だけ小さく、画像が露光過多でコントラスト不足になる傾向があるため、押圧不足、つまり印字が薄すぎるコードに似たような効果が生じる。まさに固定焦点系の場合、焦点深度の範囲によっては少なくとも若干不鮮明な画像が撮影される。
【0006】
別の例として、トレイ式ソータの木目のように妨害性の構造があまりに多く存在する可能性がある。復号器は平たい物体上のコードでも読み取るように感度良くパラメータ設定する必要がある。しかしそうすると妨害性の構造までもコード領域の可能性があると認識され、それに対して試行的な読み取りが行われ、そのために計算能力が無駄になるという副作用がある。
【0007】
従来、復号器のアルゴリズムと画像の前処理は特定の使用状況のために選択され、パラメータ設定されている。これはまず手動の工程である。さらにまた自動セットアップと駆動中の適合化が知られている。目標は、復号器のアルゴリズムの探索空間を限定し、できるだけ短い復号時間で読み取り率を最大化することである。自動セットアップは本来の駆動の前に自動的に良好なパラメータセットの算出を試みる。動的な適合化は、目立たずに進行する変化及びドリフトを補償するために前記パラメータセットを若干適合化することに特化している。
【0008】
従って、自動セットアップでは復号器のアルゴリズムのための探索空間を一度だけ、静的に設定するに過ぎない。また適合化は読み取り条件のより緩やかな変化にしか向いていない。しかし、例えばベルトコンベア付近の典型的な読み取り状況においては、物体の高さが様々であることだけでも読み取り条件が非常に動的に変化する。自動セットアップは全ての物体の高さにとって最適とはなり得ず、かなり妥協せざるを得ない。他方、適合化は、物体の高さの素早い変化に対するものではなく、緩やかでどちらかといえば僅かなパラメータ適合化を行うものであり、あまりに緩慢である。
【0009】
原則的には、画像データをその都度試行的に極めて多様なパラメータ設定とアルゴリズムで処理することが当然考えられる。しかしそれは、広いパラメータ空間の中で、考え得る多数の画像処理ステップを用いるため、実際には実行できない。
【先行技術文献】
【特許文献】
【0010】
【文献】DE 10 2018 105 301 A1
【発明の概要】
【発明が解決しようとする課題】
【0011】
故に、本発明の課題は光学コードの読み取りを改善することである。
【課題を解決するための手段】
【0012】
この課題は請求項1又は15に記載のコードリーダ及び光学コードの読み取り方法により解決される。光学コードはバーコードとすることができるが、様々な公知の標準のいずれかに準拠した2次元コードでもよい。画像センサが画像データを取得するが、それは1回の撮像の度に行うか、同時に又は異なる時点に一又は複数の画像センサにより得られた画像の結合(特に連続した一連の撮影)によるかを問わない。コードを読み取るために画像データが解析され、そこで見つかったコード領域に対して少なくとも1回、復号処理が試行される。加えて内部又は外部の距離センサがコードの距離に対して距離値を特定する。これは画像毎の距離値でもよいし、コードを付した物体又は別のより広い面に対する距離値でもよく、つまりはコードの距離と正確に一致していなくてもよい。あるいは異なる画像領域における複数の距離値を測定する。
【0013】
本発明の出発点となる基本思想は、前記距離値に応じて適合化を行うということである。それにより復号プロセスがその都度、コードの距離に合わせて最適化される。この適合化は動的な自動パラメータ設定、つまり距離値に応じて復号プロセスのパラメータを設定する探索空間適合化とすることができる。あるいはその代わりに、又はそれに加えて、画像データの前処理の特定のステップ又は復号プロセスの特定のステップ(これらを本明細書では「補助アルゴリズム」と呼ぶ)が距離値に応じて取り込まれる。故にそのステップはコードの距離に応じて実行されたりされなかったりする。
【0014】
本発明には、復号プロセスが従来よりもはるかに効率良く進むため、コードが読み取られる可能性がより高くなるという利点がある。即ち、読み取り率と復号速度という2つの主要な特徴量が最大化される。距離に適合したパラメータ設定により探索空間が成功の見込みがある領域に限定される。この領域は予め固定されるのではなく動的に見出される。従来ならコードの候補とみなされる相当な数のコード領域を、コストのかかる復号処理を試す前にパラメータ空間の適合化によって直ちに却下することができる。例えば、コントラストの低い領域を、小さい距離値用の補助基準により直ちに妨害性のコントラストとして却下することができる。また、パラメータを予めより狭く設定することにより、場合によっては、コードの読み取りができる見込みがないためこの箇所では読み取り率を上げることはできないが、コストのかかる復号処理を一切実行しないことで少なくとも計算時間を節約できる、ということを素早く認識することができる。また、まさに読み取りを実際に容易にする又は初めて可能にするような補助アルゴリズムを投入する。
【0015】
本発明により達成される復号プロセスの改善により、これまでコストのかかる自動焦点系がなければ十分な読み取り率が達成できなかった場所でも、焦点の適合化なしでコードリーダを使用できることが多くなる。これにより大きなコスト上の利点が得られる。
【0016】
距離センサは、コードリーダに統合された、特に光伝播時間法による光電式距離センサであることが好ましい。これにより、コードリーダを距離センサ付きのシステムに組み入れなくても距離値が常に利用可能になる。ただし、例えば距離プロファイルを測定するレーザスキャナにコードリーダを接続することも考えられる。
【0017】
パラメータは、モジュールサイズ、コントラスト、エッジの不鮮明さのうち少なくとも1つであることが好ましい。例えばモジュール毎の画素数で表されるモジュールサイズは、復号プロセスにおいて個々のコードモジュールを識別して区別する上で役立つ。コントラストは、例えば明るいコード要素と暗いコード要素の間の差として、あるいは明るさの中間値として提示される。エッジの不鮮明さは、例えばエッジが画素数でどのくらいの幅を持つと見込まれるかを示す尺度である。コントラストと不鮮明さは、復号プロセスが明るいコード要素と暗いコード要素を区別してその間のエッジの位置を見出すことを支援する。
【0018】
好ましくは、制御及び評価ユニットが距離値とそれに対応するパラメータとを含むパラメータ表を有しており、コードの読み取りに成功したときに該パラメータ表が前記パラメータの測定値に基づいて作成及び/又は更新される。保存されたパラメータ表を用いて、設定すべきパラメータを距離値に基づいて非常に簡単に調べることができる。パラメータ表は成功した試行的な読み取りに基づいて作成され、好ましくは定常的に更新されるため、実際の使用状況に適合したものとなる。こうしてコードリーダはコードをより速く、より良好に読み取ることを学習する。パラメータ表の距離値に粗い又は細かい段階をつけてもよい。その場合、パラメータ表にない距離値についてはパラメータの内挿又は外挿を行うことも考えられる。
【0019】
制御及び評価ユニットは、パラメータ表を改訂するために、複数の異なるパラメータでコードの読み取りを試みるように構成されていることが好ましい。これは本来のコード読み取りを意味するものではない。むしろ、そのために計算能力を利用できるときに、それまで最適とみなされていたパラメータとは別のパラメータで読み取りを試行し、しかも任意選択で、既に読み取りに成功したコード領域(GoodRead)及びそれまで読み取りに成功していないコード領域(NoRead)に対してそれを行う。このようにしてパラメータ表の中の空白を埋める又は表の入力値を更新することができる。
【0020】
補助アルゴリズムは、ダウンサンプリング、アップサンプリング、超解像、局所的なコントラスト増大、ぼけの修正、及び、押圧不足の修正のうち少なくとも1つである。ダウンサンプリングとアップサンプリングは、画像解像度を上げたり、コードが非常に近くにある等の理由で元の画像解像度が全く必要ない場合にコードをより速く読み取るために意図的に画像解像度を下げたりするときに用いられる。超解像は複数の撮像からアルゴリズムによりサブピクセルまで解像度を向上させるものである。局所的なコントラスト増大はエッジをより鮮明にしようとするものである一方、コントラスト伸長は利用可能な明度値又はグレースケール値の領域のより広い部分にわたって画像データをスケーリングし直すものである。ぼけの修正には様々なアルゴリズムが知られており、模範例としてルーシー・リチャードソンのデコンボリューション法が挙げられる。押圧不足の修正は薄く印字されたコードを読み取りやすくするアルゴリズムであるが、同様の効果は露光過多の場合にも表れる。以上の各アルゴリズム自体は公知であり、本発明の対象ではない。ただし、これらは計算能力のためだけでも簡単に全て一緒に適用することはできない。しかも、それにより読み取り結果が必ずしも良くなるわけではなく、状況によっては補助アルゴリズムが所望の結果とは逆の結果をもたらす可能性がある。物体の距離に応じて補助アルゴリズムの特に好適な組み合わせがあり、それが距離値に応じて用いられる。
【0021】
好ましくは、制御及び評価ユニットが距離値とそれに対応する補助アルゴリズムとを含む補助アルゴリズム表を有しており、該補助アルゴリズム表がその都度の補助アルゴリズムで読み取られたコードに基づいて作成及び/又は更新される。補助アルゴリズム表についてはパラメータ表について述べたことが同様に当てはまる。
【0022】
制御及び評価ユニットは、補助アルゴリズム表を改訂するため、補助アルゴリズムの複数の異なる組み合わせを、特にそれをそれまでコードが読み取れなかったコード領域において試すように構成されていることが好ましい。パラメータ表とは違って、補助アルゴリズム表は、成功した試行的な読み取りから簡単に空白を埋めることはできない。パラメータは読み取りの際に少なくとも一部が測定される。一方、補助アルゴリズムは読み取りの試行の前に既に選択されている。故に補助アルゴリズム表はまず一般的な経験から事前に用意しておくことが好ましい。その後、試験的な読み取り試行がランダムな組み合わせ又は経験的に好適と考えられる組み合わせで実行される。これによれば、既に読み取られたコード(GoodRead)のコード領域の場合、成功となる補助アルゴリズムの組み合わせが既に分かっている。それでも、試験的な読み取り試行により、とりわけ読み取り速度に関して組み合わせを更に最適化できる。それまで読み取りに失敗しているコード領域(NoRead)においてはその探索はより価値がある。なぜなら、補助アルゴリズムの適切な組み合わせが見つかれば読み取り率が上がるからである。
【0023】
制御及び評価ユニットは、新たなコードが読み取られない段階において補助アルゴリズムを試すように構成されていることが好ましい。本来の復号処理の間、例えばコードを付した物体がコードリーダの読み取り領域内にある間は、計算能力が該本来の復号処理により最大限に使われているのが普通である。故に、補助アルゴリズム表を更新する試験的な読み取り試行は、例えば次の物体が読み取り領域内に搬送されるまでの時間等、空運転の段階に行うことが好ましい。なお、このような空運転の時間は、まだパラメータ表に書き込まれていない新たなパラメータ値を用いて前述のような読み取りを試行するためにも利用できる。
【0024】
制御及び評価ユニットはパラメータ及び/又は補助アルゴリズムを試すためのテスト復号器を備えていることが好ましい。テスト復号器は本来の復号プロセスから独立して作動するため、強制的に空運転の時間に割り当てなくてよい。例えば、そのために専用のプロセッサコア又はスレッドが用いられる。もっともこれには、代わりに本来の復号プロセスに加えることもできた計算能力を拘束してしまうという欠点がある。しかしテスト復号器には少なくとも予定作業時間はないから、例えば本来の復号プロセスがまさに特に高い計算能力を必要とするとき等、必要に応じて他の任務のためにプロセッサコアを開放することや、スレッドの優先順位を適宜下げて作動させることができる。
【0025】
制御及び評価ユニットは、コード領域の本来の復号処理のためにパラメータ及び/又は補助アルゴリズムを選択するように構成されていることが好ましい。この場合、コード領域を見出すためにまず画像データが複数のセグメントに分割されるということが前提となる。本発明により距離値に応じて設定されるパラメータ又は選択される補助アルゴリズムは、この実施形態ではセグメント分割より後のステップに適用されるものであり、コード領域だけに関係する。
【0026】
制御及び評価ユニットは、コード領域とは関係なく画像データの前処理のためにパラメータ及び/又は補助アルゴリズムを選択するように構成されていることが好ましい。こちらはセグメント分割の前又はその最中の画像データに関係している。このようなやり方で適用される補助アルゴリズム乃至複数の補助アルゴリズムの組み合わせは、予め検証されたものであること、即ち、測定された距離値において、この補助アルゴリズムの適用後に、しかもできればテスト復号器を用いて、コードの読み取りに成功したものであることが好ましい。
【0027】
前処理はフィールドプログラマブルゲートアレイ(FPGA)内で実行されることが好ましい。このような構成要素は比較的簡単で単調な前処理の処置を大量のデータに対して高速で実行するのに非常に適している。一方、本来の復号プロセスは、より柔軟にプログラミング可能であってFPGAによりその負荷が低減されるマイクロプロセッサ上で実行することが好ましい。
【0028】
好ましくは、前処理がアップサンプリング、ダウンサンプリング及び/又はコントラスト伸長を含み、特にコントラスト伸長は距離値に応じて画像データの高位又は低位のビット領域を選択することにより行われるようにする。これにより、距離値に応じてアップサンプリングにより十分な画像解像度を達成したり、ダウンサンプリングにより後続の処理速度を上げたりする。場合によっては撮像レートを高めることさえできる。なぜなら、ダウンサンプリングを行えばより短い時間でより多くの画像が処理されるからである。コントラスト伸長は利用可能な明度値又はグレースケール値の範囲をより良く活用する。特に、最初に画像データが本来の復号プロセス用のビット幅(例えば8ビット)よりも広いビット幅(例えば12ビットや16ビット)を持っていることが考えられる。この場合、非常に簡単なコントラスト伸長が可能である。より広いビット幅をより狭いビット幅に縮減することはしない。代わりに、距離値に応じて高位又は低位のビットが切り出される。より大きな距離値の画像はより暗くなるのが普通であるため、高位ビットはいずれにせよ真の画像情報をほとんど持っていない。これは逆に距離値が小さい画像の低位ビットについても当てはまる。
【0029】
本発明に係る方法は、前記と同様のやり方で仕上げていくことが可能であり、それにより同様の効果を奏する。そのような効果をもたらす特徴は、例えば本願の独立請求項に続く従属請求項に模範的に記載されているが、それらに限られるものではない。
【0030】
以下、本発明について、更なる特徴及び利点をも考慮しつつ、模範的な実施形態に基づき、添付の図面を参照しながら詳しく説明する。
【図面の簡単な説明】
【0031】
図1】位置分解型の光電式距離センサを有するカメラベースのコードリーダの概略断面図。
図2】ベルトコンベアの近くに設置されたコードリーダの模範的な応用の立体図。
図3】距離値とそれに対応する復号プロセス用のパラメータとを含むパラメータ表の模範例。
図4】距離値とそれに対応する適用すべき補助アルゴリズムとを含む補助アルゴリズム表の模範例。
【発明を実施するための形態】
【0032】
図1は光電式コードリーダの概略断面図である。検出領域14からの受信光12が受光光学系16に入射し、それが受信光12を画像センサ18へ導く。受光光学系16の光学素子は複数のレンズと他の光学素子(絞り、プリズム等)から成る対物レンズとして構成されていることが好ましいが、ここでは単純化してレンズだけで表している。好ましくは焦点調節装置、特に自動焦点系を設けない。本発明を焦点調節装置と一緒に用いることも可能ではあるが、本発明は本来、安価な固定焦点系でもなお優れた読み取り結果を得ることを可能にするものである。
【0033】
コードリーダ10の撮像中に発射光20で検出領域14を照明するために、コードリーダ10は任意選択の照明ユニット22を含んでいる。これは図1では発光光学系のない単純な光源として描かれている。別の実施形態ではLEDやレーザダイオード等の複数の光源が例えば受光路を中心とするリング状に配置され、更にそれらは、照明ユニット22の色、強度、方向といったパラメータを適合させるために、多色でグループ毎又は個別に駆動可能なものとすることができる。
【0034】
画像データを取得するための本来の画像センサ18に加えて、コードリーダ10は光伝播時間法(ToF、飛行時間)で検出領域14内の物体までの距離を測定する光電式距離センサ24を備えている。距離センサ24はTOF発光光学系28を持つTOF発光器26とTOF受光光学系32を持つTOF受光器30とを含んでいる。これによりTOF光信号34が送出され、再び受光される。光伝播時間測定ユニット36がTOF光信号34の伝播時間を測定し、該伝播時間から、TOF光信号34を反射した物体までの距離を特定する。光伝播時間法を用いた光電式距離測定は公知であるため、詳細な説明は行わない。なお、光伝播時間測定ユニット36を含むTOF受光器30の全て又は少なくともその一部(例えば伝播時間測定用の時間デジタル変換器)を共通のチップに収めた高度集積型の解決策もある。それにはSPAD(シングルフォトンアバランシェダイオード)受光素子30aのマトリックスとして作り上げられたTOF受光器30が特に適している。このようにすれば横方向にも位置分解された距離測定が可能となり、異なる画像領域における複数の距離値が得られる。距離センサ24の上記構成は単なる模範例であり、代わりに一又は複数の距離値を他の光学的又は非光学的な方法で測定することも考えられる。
【0035】
制御及び評価ユニット38が照明ユニット22、画像センサ18及び距離センサ24と接続されており、コードリーダ10内での制御、評価、その他の調整の任務を担っている。該ユニットはFPGA38aやマイクロプロセッサ38bといった一又は複数の処理用構成部品を含んでおり、画像センサ18の画像データを評価する。そこでは画像データ中のコード領域が見出され、そのコードが読み出される。後で図3図4を参照してより詳しく説明するように、復号プロセスのパラメータ設定及び/又は復号器のアルゴリズムの適合化のために距離センサ24の距離値が用いられる。
【0036】
インターフェイス40を介してコードリーダ10は読み取ったコードや画像データといった情報を出力する。制御及び評価ユニット38を本来のコードリーダ10内に設けるのではなく、独立した制御装置として一又は複数のコードリーダ10に接続することも考えられる。その際、インターフェイス40は内部と外部の制御部及び評価部の間の接続にも用いられる。制御及び評価の機能は内部と外部の構成部品にほぼ任意に分配することができ、その場合、外部の構成部品はネットワーク又はクラウドを通じて接続されたものとすることもできる。以下ではそれら全てを区別せず、制御及び評価ユニット38はその具体的な実装に関わらずコードリーダ10の一部とみなす。コードリーダ10はケーシング42で保護されており、該ケーシングは受信光12が入射する前面の領域において前面パネル44で閉鎖されている。
【0037】
図2はベルトコンベア46の上方に設置された好ましい使用状況にあるコードリーダ10を示している。矢印50で示したように、ベルトコンベア46は物体48をコードリーダ10の検出領域14を通過するように搬送する。物体48の表面にはコード領域52があり、これがコードリーダ10により検出され、評価される。このコード領域52がコードリーダ10によって認識され得るのは、それが上面側又は少なくとも上方から見える箇所に付されている場合のみである。そこで、図2の描写から離れて、例えば側面又は下面に付されたコード54を読み取るために複数のコードリーダ10を異なる方向から取り付けて、いわゆる全方向からの多重読み取りを可能にしてもよい。読み取りシステムに対する複数のコードリーダ10の配置は実際には読み取りトンネルの形にすることがほとんどである。このようにベルトコンベアの近くでコードリーダ10を静止状態で用いることは実際に非常に多い。しかし、本発明は何よりコードリーダ10そのものとその内部で実行されるコードの復号法に関するものであるため、この例が本発明を限定するものと解釈すべきではない。
【0038】
図1には距離センサ24を内部に統合したコードリーダ10が描かれているが、その代わりに、又はそれに加えて、形状認識センサ56(例えばレーザスキャナ)が物体48の輪郭を捕らえ、コードリーダ10に物体48までの適切な距離値を伝えたり、早々にコード領域52を伝えたりすることもできる。
【0039】
また具体的な撮像方法も本発明にとって重要ではないため、コードリーダ10はそれ自体公知である他の何らかの原理に従って構成することができる。例えばその都度1本のラインのみ捕らえるとすると、それはライン状画像センサ又はスキャン法のいずれを用いてもよく、後者の場合、画像センサ18としてはフォトダイオード等の簡単な受光器で十分である。1本の画像ラインからコードの読み取りを直接試みたり、制御及び評価ユニット38が相対運動中に捕らえられた複数のラインを組み合わせて画像データにしたりすることもできる。マトリックス状の画像センサを用いれば、1回の撮影で既により広い領域を捕らえることができるが、ここでもまた複数の画像を運動方向及びそれと交差する方向に組み合わせることができる。複数の画像は連続的に及び/又は複数のコードリーダ10で撮影することができる。複数のコードリーダ10は例えば各々の検出領域14を合わせて初めてベルトコンベア46の幅全体をカバーする。この場合、各コードリーダ10は言わば画像全体のうち1枚のタイルのみ撮影し、それらのタイルが画像処理(スティッチング)で結合される。個々のタイル内で断片的な復号のみ行い、後でそれらコードの断片を結合することも考えられる。
【0040】
既に冒頭で述べたように、読み取り率はコードリーダ10の重要な特徴量の一つである。ところで、復号プロセスが失敗する(NoRead)理由は様々である。まず述べておくべきことは、多数のパラメータ及び前処理ステップを全て試すには制御及び評価ユニット38に十分な計算能力がない、又は検出される物体48の間に十分な時間がないということである。つまり、現有のアルゴリズム用構成部品と画像データでコードの読み取りはできるものの、前記のような実際の使用上の制約下では読み取れないということがよくある。
【0041】
コントラストが低すぎる場合、画像中のコード領域52は確実には見つからない。インテリジェントなコントラスト伸長で訂正できる可能性はあるが、これは全ての物体高さにとって有利ではない。なぜなら、一緒に伸長されるノイズ成分により、本来読み取り可能なコードが逆にもはや読み取れなくなることがあるからである。
【0042】
モジュールサイズ(特にコードモジュール毎の画素数で表されるもの)が小さすぎて復号できないことがある。しかし、広く全てのコード領域52と物体高さについてアップサンプリング又は超解像アルゴリズムを用いることは、所要時間が増大するためコスト的に実行できない。そうすると本来なら回避可能な中断が復号器に生じ、未読み取りのコードが出てしまう。
【0043】
まさに固定焦点系の場合、コード領域52が不鮮明に撮影される可能性がある。ここでも、例えば反復的なぼけ修正によりコード領域52をアルゴリズム的に処理することを広く全ての物体高さについて実行することはコスト的に不可能である。
【0044】
コード領域52が露光過多になり、押圧不足の効果を除去しなければならなくなることがあるが、これは押圧不足の効果が存在していない場合は必ずしも有益ではない。そしてこちらも無条件且つ定常的に用いるとコストがかかりすぎる。
【0045】
画像データ中のコード領域52の場所を限定するために用いられる探索対象のコントラストは、大きな距離にある平たい物体48上のコード領域52でも見つかるように、感度よく設定しなければならない。しかしそうすると理想的な焦点位置の近くでは妨害性のコントラストもコード領域52と認識される(偽陽性)ため、全体として余りに多くのコード領域52を漏れなく計算しなければならなくなる。
【0046】
これらの例に基づいて説明するように、パラメータの設定と復号器用構成部品又は補助アルゴリズムの選択を具体的な物体距離に依存させることで、復号プロセスを著しく改善し、高速化することができる。そこで制御及び評価ユニット38は、距離センサ24及び/又は形状認識センサ56の距離値に応じた動的な自動パラメータ設定及び/又は補助アルゴリズムの選択を行う。
【0047】
図3はコード領域52の様々な距離又は距離値に対して適切なパラメータを割り当てるパラメータ表である。具体的な数値は単なる模範例と理解すべきである。距離値が横方向に位置分解され、実際に各コード領域52までの距離に一致していれば有利である。もっとも、より粗めの距離値、例えば物体48に対して距離値が一つだけでも、同様に大きな貢献を成す。距離方向の解像度はより細かく又は粗くすることができ、それに応じてパラメータ表の行数は図3よりも多く又は少なくなる。欠落した行は内挿又は外挿により補うことができる。
【0048】
制御及び評価ユニット38は、処理されたコード領域52の最新の距離値に対し、復号プロセスのための適切なパラメータをパラメータ表から読み出すことで探索空間を限定することができる。パラメータとしては特にモジュールサイズ、コントラスト、及び「シグマ」と呼ばれる不鮮明さが考慮される。1次元コードと2次元コードの区別も考えられる。適切なパラメータの使用により、復号プロセスにおいて、コードの明るい領域と暗い領域の識別並びにコードモジュールの認識、場所の限定及び測定が非常に容易になる。今日用いられている複雑な復号プロセスでは更に別のパラメータも識別されるが、それらも同様にパラメータ表に入れることができる。ただしそれは距離値に対して有意な依存性を示すパラメータでなければ意味がない。
【0049】
パラメータ表の値は原理的には専門家が予め埋めておくことができる。もっとも、パラメータ表は作動時に、しかもコードの読み取りに成功した(GoodRead)コード領域52に基づいて作成及び改訂されることが好ましい。つまり、読み取り成功時に用いられたパラメータを特定し、パラメータ表に書き込むのである。既に書き込みがあるときは、単にそれを上書きするのではなく、平均計算や範囲境界の変更等により適合化することが好ましい。そうすると、読み取りに成功した後、モジュールサイズがサブピクセルの精度になる。コントラストは明るい又は暗いと分類されたコード領域の平均値として出力することができる。不鮮明度「シグマ」は識別されたエッジ移行部において判定することができる。
【0050】
まさに駆動時間がまだ短いうちは距離値/パラメータのタプルに対してまだ値がないことがあり得る。これがN/Aで示されている。その場合は最も近い距離値に対するパラメータが用いられるか、他の距離値に対する既存のパラメータから内挿又は外挿でパラメータが求められる。
【0051】
こうしてパラメータ表の割り当てが駆動中に学習及び/又は改訂される。復号プロセスは最新の距離値に応じて動的にパラメータの設定を変更し、そのために、成功した試行的な読み取りに基づいて学習し、最新の物体高さに対するセグメント分割及び復号のために最も良い応用的な予備知識を用いて作動する。
【0052】
パラメータ表を更新の都度検証し直すことが考えられる。そのために、既に読み取られたコードを、新たにパラメータ表に保存されるパラメータ量を用いて画像データから再度読み取る。その際にもしコードが失われたら、探索空間を再び広げるべきである。つまり、更新を少なくとも部分的に取り消すか、新たに古い記入値と差引勘定する。このような検証は、連続して検出領域14に搬送されてくる2つの物体48の間にある、コードリーダ10の空運転の段階に行うことができる。コードリーダ10は通例、新たな物体48が検出領域14に入るときと該領域から再び外に出るときに信号を受け取る(ゲートオン/オフ)。これにより空運転の段階の開始が分かるから、新たな物体48を処理すべき状態になったらすぐに検査的な読み取り試行が中断される。
【0053】
このような任務のためにテスト復号器のインスタンスを用意することも考えられる。テスト復号器は、例えば専用のプロセッサコア上で、又は専用のスレッドとして、又は外部でクラウド等において実装され、好ましくは、本来の復号プロセスにおいて必要とされる場合にその計算能力を該プロセスのために利用できるようにする。本来の復号プロセスの中間処理段階に、必要に応じてテスト復号器にアクセスすることができる。検証は緊急を要するものではない。なぜならその間は単に現有のパラメータ表を更新せずに引き続き利用すれば済むからである。また、空運転の段階又はテスト復号器を利用して、現有の画像データ及び処理済みのコード領域52に対して新たなパラメータの組み合わせを用いてパラメータ空間を検査することで、読み取り成功(GoodRead)か否か(NoRead)に関わらず、パラメータ表を更に改訂することも考えられる。
【0054】
図4はコード領域52の様々な距離又は距離値に対して適用される(ON)又は適用されない(OFF)補助アルゴリズムを割り当てる補助アルゴリズム表である。これによりその都度、補助アルゴリズムが適切に選択されて用いられる。この補助アルゴリズム表は単なる模範例と理解すべきであって、表中の行数を増減させたり、適用される又は適用されない補助アルゴリズムの割り当てを変えたりできる。図4のような補助アルゴリズムの距離に応じた選択を図3のような距離に応じたパラメータ設定と組み合わせてもよいし、そうしなくてもよい。
【0055】
補助アルゴリズムは測定値ではないため、成功した試行的な読み取りから直接決定することはできない。そこでは、補助アルゴリズムの特定の組み合わせではコードを読み取ることができたが別の組み合わせではできなかった、ということを確認できるに過ぎず、その組み合わせが最適であったかどうかや、読み取りが可能になるような組み合わせが他にもまだあったかどうかは不明である。
【0056】
他方、補助アルゴリズム表を予め専門知識を用いて埋めておくというやり方もある。この専門知識は、シミュレーションや、同じ又は別の使用状況から得られた過去の画像データの評価により得ることができる。もっとも、補助アルゴリズム表も自動的に生成及び拡張することが好ましい。
【0057】
そのために、空運転の時間又はテスト復号器において上述のように補助アルゴリズムの様々な組み合わせが全て試される。時間の経過とともに補助アルゴリズム表には、該当の距離値に対し、読み取り率が上がるか復号プロセスの速度が上がるようなより一層最適化された組み合わせが作られていく。補助アルゴリズムの組み合わせはランダムに試すのではなく、同じ又は類似の距離値に対する過去の成功した試行的な読み取りを変更するものであることが好ましい。なお、一つの距離値に対して複数の組み合わせを補助アルゴリズム表に保存し、復号プロセスが必要に応じて本来の駆動においてそれらを次々に試すこと(再試行)も考えられる。最初の試行的な読み取り時には基本的に補助アルゴリズムなしでやってみる、ということを常に基本構成とすることができる。
【0058】
補助アルゴリズムの特定の組み合わせの使用によりコード(特にそれまで読み取ることができなかったコード)の読み取りに成功したら、その成功した試行的な読み取りにおいて得られた測定値でパラメータ表の更新も同時に行うことが考えられる。
【0059】
図4の補助アルゴリズム表の列には補助アルゴリズムの複数の例が含まれている。アップサンプリング又はダウンサンプリングは、単位長さ当たりの画素数で表される解像度を上げたり、逆に元の解像度が全く必要ない場合には所要時間上の利益を得るために解像度を下げたりする。アップサンプリングとダウンサンプリングはとりわけ2次元コードに関係がある。超解像は複数の画像からサブピクセル精度の解像度を算出する方法であり、とりわけバーコードに適しているが、それに限定されない。局所的なコントラスト増大を行えばモジュール間のエッジがより正確に見出される。一般的なコントラスト伸長はとりわけ、最初に画像データ内でコード領域52を見つける処理を改善する。インテリジェントなぼけの修正には例えばルーシー・リチャードソンのデコンボリューション法のような反復的な方法が考えられる。押圧不足の修正は、本来は印字が薄すぎるコードに関係するものであるが、露光過多の効果もそれに似ているため、それにより修正可能である。これらの補助アルゴリズムそのものはいずれも公知であり、またここに列挙したものが全てでもない。本発明で重要なのは適用すべき適切な補助アルゴリズムを距離に応じて見出すことである。
【0060】
説明のため、更にいくつかの具体例について論じる。露光過多による押圧不足の効果はとりわけ距離値が小さい場合に生じる。アップサンプリング又は超解像法は特に距離値が大きくなってもコードの読み取りができるようにする上で有用である。これは一般に最も重要な目標である。ダウンサンプリングは、どちらかと言えば読み取り率は改善されないが、距離値が小さい場合に動作速度を上げることができる。従って、ダウンサンプリングを行う前に、この方法によりコードが失われないことをテスト復号器により又は空運転の段階で確認しておく必要がある。
【0061】
このように、どの補助アルゴリズムがむしろ近い距離に適していて、どれがむしろ遠い距離に適しているかということに関する予想がある。もっとも、これは補助アルゴリズム表を予め埋めておく場合にしか意味がない。それ以外の場合はシステムが自力で適切な割り当てと組み合わせを見出す。
【0062】
超解像やぼけの修正等、いくつかの処置は、特に固定焦点系の焦点深度の範囲をソフトウエア的な処置により拡大して所要時間の損失を抑えるもの、という見出しでまとめることができる。
【0063】
距離値が大きい場合、多くの画像領域が非常に暗くなる。その場合はコントラスト伸長を適用したり、先にテスト復号器で検査を行ったりできる。テスト復号器が画像データを改変しないように、コントラスト伸長は間に置かれたグレースケール値の参照表を介して実現することが好ましい。
【0064】
ぼけの修正のような反復的な補助アルゴリズムの場合、必要な反復回数を知ることが有利である。図3で「シグマ」と呼んでいる不鮮明度が大きいほど、十分な再鮮明化にはより多くの反復回数が必要になるのが普通である。しかし、反復回数が多すぎるとノイズ成分が増大し、画質が再び低下してしまう。不鮮明度は距離値に依存しているから、必要な反復回数も同様に学習し、距離に応じてパラメータ化することができる。
【0065】
上記の例を越えて、画像領域に最初からコードが存在しないことを判定する独立した基準として距離値を利用することもできる。これは特に距離値がベルトコンベア46の高さに合致する場合に当てはまる。それにはコードリーダ10をその取り付け高さに関して較正しておくこと、そして平たい物体48を見逃さないように距離値を十分正確に測定することが必要である。これは特に、コード領域52と誤認される可能性のある木目がついたトレイを有するトレイ式ソータにとって有利である。ここに挙げた条件下で、距離値がベルトコンベア46又は空のトレイに合致する場合には、復号の速度を上げるため、試行的な読み取りを一切行わない。
【0066】
ここまでは、既にセグメント化したコード領域52に特に適用される補助アルゴリズムについて説明した。しかし、前処理のための補助アルゴリズムの多くはセグメント分割される前の画像データにも適用できる。これは特に、FPGA(フィールドプログラマブルゲートアレイ)のように、大量のデータに対して比較的簡単な処置を高速で適用するのに適した処理用構成部品において行われる。本来の復号プロセスはマイクロプロセッサのようなどちらかと言えば柔軟性を持つ構成部品において実行し、その負荷をFPGA上での前処理により軽減することが好ましい。
【0067】
このような事前に適用される補助アルゴリズムも、先に記載したのと同じやり方で距離に応じて見出し、検証し、適用することが好ましい。この関連で好適な補助アルゴリズムの例はアップサンプリング又はダウンサンプリング、そしてコントラスト伸長である。
【0068】
例えば、テスト復号器は、ある距離からはアップサンプリングを行う必要があるということを繰り返し確認する。この確認が行われたら、今度はFPGAが、距離値がその距離以上であれば元の画像に適宜内挿を行って解像度を上げ、場合によっては再鮮明化も行う、という指示を受ける。逆にダウンサンプリング又はビニングの確認を行うこともできる。つまり、テスト復号器は、ある距離まではより低い解像度の画像データでも読み取り率を低下させずにコードを読み取ることができるということを確認する。その距離を下回ったら、今度はFPGAにおいて、復号プロセスの所要時間を改善するために、入力画像の解像度を下げる。それには、テスト復号器がFPGAの計算を十分な一致で以て模倣することができ、従って前記確認も有効である、ということが前提となる。
【0069】
FPGAは距離に応じたコントラスト伸長を特に簡単に実装することを可能にする。なぜなら、大抵の場合、画像センサ18の、そしてFPGAの入力データは、例えば12ビット又は16ビットというビット深度を有しており、8ビットグレースケール値で作動するのが典型的である本来の復号プロセスのビット深度より大きいからである。そうなれば、FPGA内の大きなビット深度を再スケーリングする代わりに、距離値に応じて高位又は低位の8ビットを切り出すことが可能である。これは暗に簡単なコントラスト伸長に相当する。つまり、距離が大きくて画像が暗い場合、最上位の数ビットにはもはや情報が保持されていないから、低位のビットを選択する。同様に距離が小さくて画像が明るい場合、低位の数ビットは、情報が全くないわけではないものの、最も大きなノイズ成分とあまり差がない。ノイズを抑制するため、メディアンフィルタリング又は他の平滑化といった別のFPGA処理を行うことも考えられる。まさにモジュールサイズが小さい場合、このようなフィルタリングは逆効果であるため、そのようなフィルタの使用もまずテスト復号器で確認することが好ましい。
図1
図2
図3
図4