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

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

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

特許7350133コード読み取り装置の自動調整方法及びカメラベースのコード読み取り装置
<>
  • 特許-コード読み取り装置の自動調整方法及びカメラベースのコード読み取り装置 図1
  • 特許-コード読み取り装置の自動調整方法及びカメラベースのコード読み取り装置 図2
  • 特許-コード読み取り装置の自動調整方法及びカメラベースのコード読み取り装置 図3
  • 特許-コード読み取り装置の自動調整方法及びカメラベースのコード読み取り装置 図4
  • 特許-コード読み取り装置の自動調整方法及びカメラベースのコード読み取り装置 図5
  • 特許-コード読み取り装置の自動調整方法及びカメラベースのコード読み取り装置 図6
  • 特許-コード読み取り装置の自動調整方法及びカメラベースのコード読み取り装置 図7
  • 特許-コード読み取り装置の自動調整方法及びカメラベースのコード読み取り装置 図8
  • 特許-コード読み取り装置の自動調整方法及びカメラベースのコード読み取り装置 図9
  • 特許-コード読み取り装置の自動調整方法及びカメラベースのコード読み取り装置 図10
  • 特許-コード読み取り装置の自動調整方法及びカメラベースのコード読み取り装置 図11
  • 特許-コード読み取り装置の自動調整方法及びカメラベースのコード読み取り装置 図12
  • 特許-コード読み取り装置の自動調整方法及びカメラベースのコード読み取り装置 図13
  • 特許-コード読み取り装置の自動調整方法及びカメラベースのコード読み取り装置 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-14
(45)【発行日】2023-09-25
(54)【発明の名称】コード読み取り装置の自動調整方法及びカメラベースのコード読み取り装置
(51)【国際特許分類】
   G06K 7/10 20060101AFI20230915BHJP
   G06K 7/14 20060101ALI20230915BHJP
   G06K 7/00 20060101ALI20230915BHJP
【FI】
G06K7/10 372
G06K7/14 060
G06K7/10 428
G06K7/00 095
【請求項の数】 15
【外国語出願】
(21)【出願番号】P 2022090240
(22)【出願日】2022-06-02
(65)【公開番号】P2023020897
(43)【公開日】2023-02-09
【審査請求日】2022-07-11
(31)【優先権主張番号】21188808.6
(32)【優先日】2021-07-30
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】591005615
【氏名又は名称】ジック アーゲー
(74)【代理人】
【識別番号】110001069
【氏名又は名称】弁理士法人京都国際特許事務所
(72)【発明者】
【氏名】パスカル シューラー
【審査官】小林 紀和
(56)【参考文献】
【文献】特開2021-077360(JP,A)
【文献】特開2020-155084(JP,A)
【文献】特開2014-157519(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06K 7/00
G06K 7/10
G06K 7/14
(57)【特許請求の範囲】
【請求項1】
画像センサ(18)と制御及び評価ユニット(24、38)とを備えるコード読み取り装置(10、38)を自動的に調整する方法であって、前記画像センサ(18)を用いて、該画像センサ(18)の視野(14)内に配置された、模範コードの付された模範物体の模範画像を撮影し、該模範画像の評価に基づいて、前記コード読み取り装置(10、38)の運転のための少なくとも1つの撮影パラメータ及び/又は少なくとも1つの復号パラメータを確定する方法において、
前記模範画像から計算による変形によって別の模範画像を生成し、前記少なくとも1つの撮影パラメータ及び/又は前記少なくとも1つの復号パラメータを前記別の模範画像の評価に基づいて確定することを特徴とする方法。
【請求項2】
前記模範画像の評価が復号の試行を含んでいる、請求項1に記載の方法。
【請求項3】
前記少なくとも1つの撮影パラメータが、受光感度、露出時間、画像リフレッシュレート、及び/又は、前記画像センサの前に配置された光学系(16)の焦点位置を含んでいる、請求項1に記載の方法。
【請求項4】
異なる物体サイズのための別の模範画像を生成し、特に、後続の運転時に予期される最小の物体高さと最大の物体高さに対してそれぞれ1つの別の模範画像を生成する、請求項1に記載の方法。
【請求項5】
前記別の模範画像を、解像度を上げること又は解像度を下げることにより生成し、特にバイキュービック内挿を用いる、請求項4に記載の方法。
【請求項6】
前記別の模範画像を、予期される焦点誤りに相当する不鮮明さで以て生成する、請求項4に記載の方法。
【請求項7】
画像内容のシフトにより別の模範画像を生成する、請求項1に記載の方法。
【請求項8】
前記別の模範画像を、予期される被写体ぶれで生成する、請求項7に記載の方法。
【請求項9】
最初に、前記模範コードを読み取ることができるように前記少なくとも1つの撮影パラメータ及び/又は復号パラメータの初期値を決める、請求項1に記載の方法。
【請求項10】
前記少なくとも1つの撮影パラメータ及び/又は復号パラメータを、該撮影パラメータ及び/又は復号パラメータのパラメータ空間内の徹底的な検査を含む最適化法により確定する、請求項1に記載の方法。
【請求項11】
前記模範画像を、検査すべき少なくとも1つの撮影パラメータに従った設定で改めて撮影する、請求項10に記載の方法。
【請求項12】
複数の模範画像を1つの検査すべき焦点位置と複数の受光感度で撮影する、請求項10又は11に記載の方法。
【請求項13】
前記調整を単一の模範物体を用いて行う、請求項1~11のいずれかに記載の方法。
【請求項14】
画像データを取得するための画像センサ(18)と制御及び評価ユニット(24、38)とを備えるカメラベースのコード読み取り装置(10、38)であって、請求項1~11のいずれかに記載の方法に従って調整されているとともに、運転時に物体(30)の画像を取得して該物体に付された光学コード(34)を読み取るように構成されているコード読み取り装置(10、38)。
【請求項15】
検出対象の物体(30)の流れの近く、特にベルトコンベア(28)の近くに固定的に取り付けられている、及び/又は、前記画像センサ(18)に割り当てられた、焦点位置が手動で又は予期される物体の連続よりも低速でしか調節できない光学系(16)を備えている、請求項14に記載のコード読み取り装置(10、38)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、請求項1又は14のプレアンブルに記載のコード読み取り装置の自動調整方法及びカメラベースのコード読み取り装置に関する。
【背景技術】
【0002】
コードリーダはスーパーマーケットのレジ、荷物の自動識別、郵便物の仕分け、空港での荷物の発送準備、その他の物流での応用が知られている。カメラベースのコードリーダが画像センサを用いて物品の画像をその表面に付されたコードとともに撮影し、画像処理ソフトウェアがその画像からコード情報を抽出する。カメラベースのコードリーダは、1次元バーコード以外に、マトリクスコードのように2次元的に構成され、より多くの情報を利用できる種類のコードも問題なく処理できる。
【0003】
ある重要な一群の利用形態では、コードを付した物品がコードリーダの近くを通過するように搬送される。画像センサで画像データが繰り返し取得される。これらの画像データには撮影周波数及び搬送速度に応じて多少の重なりが生じる。コードリーダはより複雑なコード読み取りシステムの一部であることが多い。例えば、物品を複数の又は全ての側から撮影するためにしばしば複数のコードリーダが読み取りトンネルに設けられる。更に、搬送される物品の形状を別個のレーザスキャナで事前に測定することがよくある。
【0004】
コード読み取りシステムの最も重要な特徴量の一つが読み取り率である。なぜなら、コードが読み取られなければ手動の後処理や、割り当て間違いにさえつながるからである。そのためにはコード読み取りシステムをその用途のために最適化すること、即ち適切な露出、カメラ設定並びにデコーダのアルゴリズムの選択及び構成(撮影された画像の適切な前処理を含む)を見出すことが重要である。これはコード読み取りシステムの調整の際に手動のステップで行うことができるが、多大なコストがかかる上、専門家しかそれを実施できない。
【0005】
様々な高さの物体に対する焦点合わせという部分問題は、個々の物体に動的に適合する自動焦点系により解決されることが多い。同時に、測定された物体高さに対してカメラ及び露出の他の設定を行うこともできる。特許文献1では更に一歩先に進み、そのデコーダをその都度の物体高さに動的に適合させる。しかし、距離値がない場合、コードリーダが固定焦点系しか提供していない場合、あるいは、焦点位置の調節は確かにできるが、個々の物体に動的に適合するには低速すぎる、いわゆる低速焦点系の場合、それは打開策にならない。
【0006】
更に、運転開始時に自動セットアップにおいて良好なパラメータセットを見つけ出すことが知られている。そのために、調整者によりコードの付いた代表的な物体が選ばれ、静止状態でコード読み取りシステムにより検出される。しかし、こうして見つけ出された動作点は基礎となる静止状態の状況に対して最適化されているに過ぎない。本来の応用では様々な高さの物体に付された移動中のコードを読み取る必要がある。また、各時点の最新の撮影画像に含まれる物体の数及びラベル又はコードの数は分からないことが多い。前記コード読み取りシステムには、代表的な物体を用いて学習した静止状態からのこれらの逸脱に対する備えがなく、故に運転中にその性能を発揮できずに終わる。
【0007】
そこで、静止状態で撮影された様々な物体について複数の構成を見つけ出し、異なるパラメータバンクに保存するという方法が一部でとられている。それでもまだ問題は解決しない。なぜなら、どの構成が具体的に次に捕らえられる物体に適しているか分からないからである。異なる構成を一通り繰り返すことはできるが、そうすると復号プロセスが遅くなる上、結局は何と言ってもまた、失敗する運命にある読み取りの試行のために貴重なリソースが消費される。画像データを試行的に極めて多様なパラメータ設定とアルゴリズムで撮影して処理するという、このような探索型のアプローチは、確かに根本的には可能であろう。それは実際には大きなパラメータ空間では実行できない。様々な学習済みの物体に対して性能を発揮することが少なくともあり得る構成に集中することが改良の第一歩であるが、それ以上のものではない。
【0008】
また、運転開始時に取得したパラメータセットを本来の運転の間に更に少しずつ適合させることが考えられる。例えば特許文献2は光学的なコード読み取りシステムの特性を自動的に調整する方法であって、その動作点を絶えず微調整するものを開示している。ただし、それが具体的に読み取り率にどのように影響を及ぼすかは予想が難しい。主としてこのような方法では緩慢に進む変化とドリフトが補償される。しかし、例えばベルトコンベア付近での典型的な読み取り状況では様々な物体高さによってだけでも条件が非常に動的に変化する。それに対し、事後的で、どちらかと言えば低速で微小なパラメータ適合化はあまりに緩慢すぎる。他方で、より劇的なパラメータ適合化を行うと、代表的ではない個別事象により最初の最適化が完全に失われる恐れがある。
【0009】
このように、コード読み取りシステムを動的な運転のために最適化することは困難であり、しかも各物体までの距離値のような測定値がなく、動的な焦点調節装置のような適時に追調整できる光学的調節装置もなければなおさらである。より長期の運転段階には手動の最適化が有効であるが、これは、復号法が常に発展を続けていることや、カメラ及びデコーダに多数のパラメータがあることから、極めて複雑で誤りの起きやすい業務である。実際にはそれは読み取り率の低下につながる。
【先行技術文献】
【特許文献】
【0010】
【文献】EP 3 812 953 A1
【文献】EP 1 014 292 B1
【発明の概要】
【発明が解決しようとする課題】
【0011】
故に本発明の課題はコード読み取り装置のパラメータ設定を改善することである。
【課題を解決するための手段】
【0012】
この課題は請求項1又は14に記載のコード読み取り装置の自動調整方法及びカメラベースのコード読み取り装置により解決される。例えば運転開始時に調整される本コード読み取り装置は画像センサと制御及び評価ユニットとを備えている。画像センサ又は該画像センサを有するカメラが後の運転時に光学コードの付いた物体の画像を撮影し、制御及び評価ユニットはその画像内で各コード領域の場所を突き止め、見つかったコードを復号する、即ちそれらの各々のコード内容を読み取る。読み取り対象の光学コードはバーコードとすることができるが、様々な公知の規格の1つに準拠した2次元コードでもよい。
【0013】
調整のために模範物体の模範画像を撮影する。模範物体は後の応用のために代表的又は典型的なものとして選択されたものであり、従って、後に運転時に読み取ることになる種類の模範コードが少なくとも1つ付されている。適切な模範物体の選択は調整者の役目である。この方法はさほど代表的ではない物体でも機能するが、やや適切さに欠ける構成が見つかる可能性がある。複数の画像センサを一緒に作動させることで、より大きな画像又は模範画像を合成し、それをそれ以降は好ましくは一緒にして、広い視野を持つ単一のカメラ又は単一の画像センサのように扱うことが考えられる。
【0014】
自動調整により、模範画像の評価に基づいて後の運転のために少なくとも1つの撮影パラメータ及び/又は復号法の少なくとも1つの復号パラメータが設定され、それを用いてコード読み取り装置がその後、運転時にコード内容を読み取る。適切なパラメータセット又はパラメータの組み合わせは動作点とも呼ばれる。
【0015】
本発明の出発点となる基本思想は、撮影された模範画像を計算による変形によって異形化し、それにより多様化することにある。「計算による」とは同じ物理的な出発画像が様々な処理により変形されることを意味する。それは言わば現実世界の撮影画像から単に間接的に作り出される仮想的な模範画像である。それは複数の物理的な出発画像がある場合を排除するものではなく、その場合はそれらが異なる又は同じサイズに処理され、以て多様化される。こうして別の模範画像を含む拡大された画像データセットができる。少なくとも1つの撮影パラメータ及び/又は復号法の少なくとも1つの復号パラメータを設定するための基準となる評価にはそれら別の模範画像も取り入れられる。こうしてより広範な基礎が作り出され、それを用いれば、物理的に撮影された模範画像だけを用いるよりも、将来の運転時の状況がより良くカバーされる。
【0016】
本方法はコンピュータで実行され、自動的に進行する。模範物体が視野内にあることの確認等、手動による一定の介入は自動的な進行に統合することができる。本来の最適化は手動のステップなしで行うことができるが、最後になお手動で調整することは調整者の自由裁量に任されている。本調整方法は、コード読み取り装置の制御及び評価ユニットにおいて、及び/又は、少なくとも部分的に、上位の制御装置、設定用コンピュータ、又は、ネットワーク(クラウドを含む)のような永続的又は一時的に接続された計算ユニットにおいて実行することができる。
【0017】
本発明には、調整の際に別の模範画像を作成し、それにより拡大された画像データセットを評価することにより、非常に適切な動作点が見出されるという利点がある。この動作点は物体の移動や物体高さの違いといった後の運転の運動性を考慮しており、模範物体及びその模範画像が全く認識できなくなるような変化さえも対象となる。これにより非常に高い読み取り率が可能になる。また、運転中に一連の画像を撮影及び評価する場合、デコーダが次の画像までに利用できる計算時間は限られているから、デコーダの時間挙動が重要になる可能性もある。最適化された動作点を用いることにより、利用可能なデコーダ時間が長くなる、あるいはより高い画像撮影周波数を設定することができる。自動進行により複雑な最適化の作業を迅速且つ低コストで実行することができる。手動による最適化の場合のように深い専門知識は必要ないから、この自動化は誤りの回避に寄与する。事後的な微調整が可能である。デコーダのアップデート等の変化に対しては、本方法を再び、場合によってはより短縮して実行することにより非常に簡単に対応することができる。
【0018】
模範画像の評価は復号の試行を含んでいることが好ましい。復号の試行とは、少なくとも1つのデコーダ又は復号法を模範画像に適用することで模範画像内のコードのコード内容を読み取ることを意味する。このような読み取りの試行は、調整内のステップに応じて、物理的に撮影された模範画像又は仮想的に生成された別の模範画像を用いて行われる。復号の試行の結果が評価され、最も簡単な場合、コードを読み取ることができたか(GoodRead)否か(NoRead)が二値的に評価される。好ましくは更にデコーダの品質の尺度として、どのような追加の品質低下があった場合にそれでもなお読み取りが可能であったかを判断できるような尺度を決める。それにより、各々の動作点を後の運転時に用いられる本物のデコーダにてテスト又は検証することができる。これが最終的に最も重要な評価部分である。このようにして、例えばソフトウェアアップグレードによるデコーダのバージョン変更に対し、非常に簡単に同じ調整法で対応することができる。これにより、復号のためのアルゴリズムの継続的な改良による進歩がその都度の最適な動作点によりサポートされる。
【0019】
前記少なくとも1つの撮影パラメータは、受光感度(ゲイン)、露出時間(シャッター)、画像リフレッシュレート、及び/又は、画像センサの前に配置された光学系の焦点位置を含んでいることが好ましい。これらは重要な撮影パラメータであり、特にそれらを通じて、適切な焦点位置によりコントラスト等の他の画像パラメータに影響を与えて十分に鮮明な画像が撮影されるとともに、受光感度と露出時間により十分に明るいと同時に過負荷がなく、動きアーチファクトを可能な限り抑えた画像が撮影される。復号パラメータは例えば読み取り対象のコードの種類、デコーダのアルゴリズムの選択、モジュールサイズ、又は、考えられる前処理(ノイズフィルタ、解像度改善のための超解像等)に関係する。撮影の合間にデコーダが利用できるデコーダ時間は最適に利用すべきである。デコーダがより高速であるほどより高い撮影周波数を選択でき、その結果、それぞれのコードがその読み取りに適したやり方で撮影される可能性が高まる。
【0020】
異なる物体サイズのための別の模範画像を生成すること、特に、後続の運転時に予期される最小の物体高さと最大の物体高さに対してそれぞれ1つの別の模範画像を生成することが好ましい。物体サイズは画像センサと撮影された物体表面との間の距離に対応しており、物体が大きくなればなるほど物体表面が画像センサに近付き、逆もまた然りである。また、カメラは上から取り付けられていると考えられることがほとんどであり、その場合、物体サイズの決定的な次元は物体高さである。他の視点から取り付ける場合はそれに応じて物体高さを理解すべきである。異なる物体サイズのための別の模範画像は、動作点を確定するための画像データセットを計算により拡大するための変形の特に有利で重要な例である。なぜなら、物体サイズ又は高さの違いはとりわけ焦点位置又はそこからのずれ並びに露出に影響を及ぼし、従って画像の最も重要な品質基準に影響するからである。動作点は、模範物体の物体サイズ又は高さに対してだけでなく、待ち受けるべき全ての物体サイズ又は高さに対して最適化される。特に、予期される最小及び最大の物体高さという極端な場合について別の模範画像が生成され、より好ましくは正確に1つずつ生成される。その場合、全部で3つの模範画像が得られる。そのうち2つは低い位置で撮影された最大距離の物体(例えば搬送面上の物体)及び高い位置で撮影された最小距離の物体に対応する仮想的な模範画像であり、もう1つは中間のサイズ又は高さの物体を物理的に撮影した模範画像である。ここで仮定しているのは、デコーダが極端な事例に対処できるのであれば、それは中間の状態にはなおさら当てはまる、ということである。もっとも、2つより多い別の模範画像を、他の物体サイズ又は高さのため、あるいは物体サイズ又は高さ以外の影響のバリエーションのために生成することも追加で考えられる。
【0021】
前記別の模範画像は解像度を上げること又は解像度を下げることにより生成されることが好ましい。これらはアップサンプリング又はダウンサンプリングとも呼ばれる。これは、仮定した物体サイズ又は高さに応じてより遠い又はより近い距離から仮想的な撮影を行うことに相当する。非常に好適な方法の1つはバイキュービック内挿である。好ましくは予め模範画像の中心を模範コードに合わせておき、アップサンプリングの後に端を切る(クロッピング)、あるいはダウンサンプリングの後、周縁部をコード構造のない予め決められた内容物で補う。そうすれば前記別の模範画像が統一された形式になり、重要な画像内容はそのまま維持される。
【0022】
前記別の模範画像は予期される焦点誤りに相当する不鮮明さで以て生成されることが好ましい。物理的な模範画像が撮影された焦点位置には限られた被写界深度しか備わっていない。後で非常に小さい若しくは大きい又は低い若しくは高い物体を物理的に撮影するとき、それは被写界深度の周縁部又はその外側にある。この焦点ぼけを考慮することが好ましい。それには、例えば点広がり関数(PSF, Point Spread Function)で前記別の模範画像を畳み込むことにより、対物レンズの作用を計算的にシミュレートすればよい。好ましい近似として、焦点ぼけから導出された標準偏差を持つガウスカーネルを用いた畳み込みが適している。点広がり関数又は他のフィルタカーネル(特にガウスカーネル)は様々な焦点位置とそこからのずれに対して予め算定して保存しておくことができる。
【0023】
異なる物体サイズのために計算により生成された別の模範画像の評価の結果は、物体サイズの所望の区間を1つの動作点だけで完全にカバーすることはできない、というものとすることができる。このようにすれば調整者は、所望の物体高さの変動を処理できるかどうかについて迅速な応答を受け取り、場合によっては、まだ表現可能な物体高さの変動や、なお元の設定を可能にするために考えられるコード読み取り装置の装備拡張又は変更に向けた助言を受け取る。
【0024】
画像内容のシフトにより別の模範画像を生成することが好ましい。これは後の運転時の移動をシミュレートするものである。画像センサ又はカメラと物体との間の様々な相対位置で画像が撮影される。好ましくは、コードを完全に捕らえた別の模範画像とコードが周縁位置にある別の模範画像とを生成する。後者は、一部しか捕らえられていないコードがなお読み取り可能であるなら、そのためにより多くのデコーダ時間を要するのが普通である。これにより必要なデコーダ時間が決まり、その時間から実現可能なフレームレート又は画像リフレッシュレートが決まる。画像内容のシフトを、仮定した異なる物体サイズ又は高さと組み合わせることが考えられる。
【0025】
前記別の模範画像は予期される被写体ぶれで生成されることが好ましい。運転時の移動は画像中の物体又はコードの位置の違いだけでなく被写体ぶれ(motion blur)も生じさせる。これはコードの読み取りを難しくする又は妨げる。被写体ぶれは、焦点ぼけのある撮影画像について既に説明した不鮮明さと同じように作り出すことができ、特にガウスフィルタカーネルでの畳み込みによることができる。ガウスフィルタカーネル用の標準偏差等、フィルタカーネルの設計にとって、焦点位置からのずれは今度は重要ではなく、例えばモジュール当たりの画素数(ppm、pixel per module)で表したモジュール幅に等しい標準偏差が選ばれる。
【0026】
好ましくは最初に、模範コードを読み取ることができるように前記少なくとも1つの撮影パラメータ及び/又は復号パラメータの初期値を決める。即ち、後の動的な運転状況のための最適化の基礎として、そもそも模範コード自体を読み取ることができることをまずは確実にしておく。これを「第一読み取り」とも呼ぶ。実施形態に応じて、この初期値を「十分に良い」という意味、即ち、模範コードがそもそも読み取られる(GoodRead)という意味に解釈するか、あるいは冒頭で概略を説明した方法でこの静的な場合に対して早くも最適化が実行される。静的な場合のインテリジェントな最適化の代わりに、模範コードがそもそも読み取られるまで、それどころか最適に読み取られるまで、パラメータを総当たり的に試すことも考えられよう。調整の間にはこのようなブルートフォース的なアプローチのための時間は十分にある。
【0027】
前記少なくとも1つの撮影パラメータ及び/又は復号パラメータは、該撮影パラメータ及び/又は復号パラメータのパラメータ空間内の徹底的な検査を含む最適化法により確定されることが好ましい。その最適化は前の段落に記載の初期値において開始することが好ましい。なぜなら、そこから始めれば一般的な初期値やランダムな初期値からよりも確実且つ迅速に最善の条件が見出されると考えられるからである。簡単な最適化法では、パラメータ空間を、初期値を中心として所定のステップで反復的にくまなく探索した後、結果が最も良かったパラメータセットを選択するか、検査したステップ間でそのようなパラメータセットを内挿により求める。他の最適化法も考えられる。例えばヒルクライミング法では、パラメータ空間を読み取り結果の良くなる方向に移動し、その際に特にステップ幅を縮める。パラメータ空間のうち特に関心を引くのは焦点位置と受光感度に関係する部分であるから、最適化は少なくとも一部の手順において他のパラメータを固定した上でこの部分空間内を動くものとすることができる。
【0028】
模範画像を、検査すべき少なくとも1つの撮影パラメータに従った設定で改めて撮影することが好ましい。このようにすれば、最適化のサイクル内で、現在検査している動作点において、少なくとも1つの実際の模範画像と、それに付属する、アップサンプリング/ダウンサンプリング及び/又は画像内容のシフト等によって計算により変形された別の模範画像とを含む新たな画像データセットが生成される。
【0029】
複数の模範画像を1つの検査すべき焦点位置と複数の受光感度で撮影することが好ましい。これによれば、受光感度の影響は計算により予測されるのではなく、複数の撮影により物理的に測定される。これにより模範物体の反射挙動が把握される。反射挙動が既知又は確認済みである理想的な参照物体については受光感度の違いの影響を予めシミュレート、算定又は学習しておくことができる。この挙動を今度は測定した反射挙動でスケーリングし直すことができる。これにより現実の作用と仮想的な異形化とが組み合わされ、別の模範画像を計算により決定するための予測、特に異なる物体サイズを仮定した場合の予測が著しく改善される。
【0030】
調整は単一の模範物体を用いて行うことが好ましい。これにより調整が著しく簡単且つ迅速化される。従来技術では正に1つの模範物体に対してその撮影状況を最適化する動作点が見出される。一般にそれはその後の動的な運転段階にとっては誤った最適化となる。これに対して本発明では、単一の模範物体の提示から別の模範画像を生成することにより、後の動的な状況まで、特に様々な物体サイズ又は高さ及び/又は移動のある状況まで一般化される。前記別の模範画像によりデコーダの挙動がその動的な状況についても検証され、実践に向いた最適な動作点が見出される。なお、前記単一の模範物体は、最適化の枠内で、実施形態に応じて様々な動作点において何度も撮影することが完全にできる。これは自動的に進行するため、調整者にとって手順が複雑化することはなく、調整者は最初に単一の模範物体が画像センサの視野内に配置されているように気を配るだけでよい。
【0031】
原理的には調整の際に単一の模範物体ではなく複数の模範物体を次々に提示することも考えられる。そうすると本調整法にかかるコストが増大するが、その代わり、どの物体を運転中に待ち受けるべきかがより明確になる。特に最適化を模範物体毎に別々に実行することができる。それらの結果を互いに差引勘定すること、特に、予期される後の物体分布に基づいて平均することができる。また、ある模範物体についての最適化の結果から他の模範物体を用いた最適化のための初期値を導き出すことができる。
【0032】
模範物体は、後の運転では移動する物体の流れを捕らえることになるとしても、静止状態で撮影することが好ましい。移動の影響は別の模範画像の生成により考慮することができる。物体の移動を伴う生産運転を観察する必要はない。
【0033】
本発明に係るカメラベースのコード読み取り装置は画像データを取得するための画像センサと制御及び評価ユニットとを備えており、該コード読み取り装置は本発明に係る方法の実施形態に従って調整されているとともに、運転時に物体の画像を取得してそれに付された光学コードを読み取るように構成されている。本コード読み取り装置は、1つの画像センサ若しくは複数の画像センサ、又は1つのカメラ若しくは複数のカメラと、1つ又は複数の計算ユニットと、搬送装置の送り速度を測定するためのエンコーダや体積測定システムといった他のセンサとを含むことができる。制御及び評価ユニットはコード読み取り装置のカメラ及び他の計算ユニットにほぼ任意に分配することができる。特に調整の間には制御及び評価の機能を外部から提供することが考えられる。それは上位の制御装置、追加接続された設定用計算機、又はネットワーク若しくはクラウドのいずれによってもよい。
【0034】
本コード読み取り装置は検出対象の物体の流れの近く、特にベルトコンベアの近くに固定的に取り付けられていることが好ましい。これによれば、検出対象の物体とコード読み取り装置が互いに相対移動する状態となる。この移動並びに物体サイズ又は高さの違いは本発明に従って見出される動作点を通じて考慮される運転の運動性の一部であることが好ましい。既に述べたように、調整は模範物体が静止状態で提示されている間に実施することが好ましい。
【0035】
本コード読み取り装置は、画像センサに割り当てられた、焦点位置が手動で又は予期される物体の連続よりも低速でしか調節できない光学系(固定焦点、低速焦点)を備えていることが好ましい。言い換えればそれは自動焦点系がないということである。そもそも自動的な焦点調節が可能であるとしても、それはいずれにせよ次の物体に対してその都度適時に調節するには速度が遅すぎるだろう。その焦点位置は、適切な動作点の枠内で、より長期の運転段階のためにしか適合させることができない。このようなコード読み取り装置はより簡素且つより低価格であり、メンテナンスがあまり必要ない。そのような装置は最適化された動作点から得られる利益が非常に大きい。
【0036】
以下、本発明について、更なる特徴及び利点をも考慮しつつ、模範的な実施形態に基づき、添付の図面を参照しながら詳しく説明する。
【図面の簡単な説明】
【0037】
図1】カメラベースのコードリーダの概略断面図。
図2】ベルトコンベア付近に取り付けられたコードリーダを有するコード読み取り装置の3次元図。
図3】物理的な模範画像から、異なる物体高さを仮定した仮想的な模範画像を生成することにより焦点位置と受光感度を適合させるための模範的なフローチャート。
図4】コードリーダの画像センサで撮影された模範画像。
図5図4の模範画像内のコードの部分拡大図。
図6図4の模範画像から生成された、最大の物体高さを仮定した場合の仮想的な模範画像。
図7図6の模範画像内のコードの部分拡大図。
図8図4の模範画像から生成された、最小の物体高さを仮定した場合の仮想的な模範画像。
図9図8の模範画像内のコードの部分拡大図。
図10図4の模範画像を改めて示した図であって、その内部で認識されたコードの中心と、中心合わせに必要なシフトの具体的な説明とを示したもの。
図11】中心合わせを行った後の図10の図。
図12】移動を仮定した仮想的な模範画像を生成することにより最適なパラメータ(特に撮影周波数)を見つけて検査するための模範的なフローチャート。
図13】完全に捕らえられたコード及び一部しか捕らえられていないコードを持つようにコード位置を様々にシフトさせた4つの異なる仮想的な模範画像。
図14】仮想的な模範画像に基づいて焦点位置と受光感度を適合させるための模範的なフローチャート。
【発明を実施するための形態】
【0038】
図1はカメラベースのコードリーダ10の概略断面図である。検出領域14からの受信光12が受光光学系16に入射し、該光学系が受信光12を画像センサ18へ導く。受光光学系16の光学素子は複数のレンズ並びに絞り及びプリズムといった他の光学素子から成る対物レンズとして構成されていることが好ましいが、ここでは簡略に1個のレンズで表されている。自動焦点系は設けられていないことが好ましいが、低速の焦点調節装置を設ける可能性はあってもよい(固定焦点、手動焦点又は低速焦点)。
【0039】
コードリーダ10での撮影中に発射光20で検出領域14をくまなく照らすため、コードリーダ10は任意選択の照明ユニット22を含んでいる。これは図1では発射光学系のない簡単な光源の形で描かれている。他の実施形態ではLEDやレーザダイオード等の複数の光源が例えば円環状に受光路の周りに配置される。それらは、色、強度及び方向といった照明ユニット22のパラメータを適合させるために、多色型でグループ毎に又は個別に制御可能とすることもできる。照明ユニット22は図から逸脱して外部にあってもよい。
【0040】
制御及び評価ユニット24が画像センサ18及び照明ユニット22と接続されており、コードリーダ10内での制御、評価及び他の調整の任務を担う。制御及び評価ユニット24はFPGA及び/又はマイクロプロセッサ等の一又は複数の処理用構成要素を含んでおり、画像センサ18の画像データを評価する。その際、画像データ内のコード領域を見つけ出してそのコードを読み取る。制御及び評価の機能は図から逸脱してほぼ任意に内部及び外部の構成要素に分配することができ、その外部の構成要素はネットワーク又はクラウドを介して接続されたものとすることができる。制御及び評価の機能の外部接続は特に、後で説明する調整段階のために利用することが考えられ、そのために場合によっては単に一時的に計算及び記憶用リソースを用意することが考えられる。コードリーダ10はインターフェイス26を通じて、読み取ったコードや画像データ等の情報を出力する。制御及び評価ユニット24が本来のコードリーダ10内にない又は完全にはない場合、インターフェイス26は内部と外部の制御及び評価を結びつける役割も果たす。
【0041】
図2はベルトコンベア28の上方に取り付けられた好ましい使用状況のコードリーダ10を示している。ベルトコンベア28は矢印32で示したようにコードリーダ10の検出領域14を通過するように物体30を搬送する。物体30はその外側表面にコード領域34を持っており、これがコードリーダ10により検出されて評価される。このコード領域34は上面に付されているか、少なくとも上から見えるように付されている場合にのみコードリーダ10で認識できる。そこで、図2の描画から逸脱して、例えば側面又は底面に付されたコード36を読み取るために複数のコードリーダ10を異なる方向で取り付けることで、いわゆる全方向からの多重読み取りを可能にしてもよい。読み取りシステムに対する複数のコードリーダ10の配置は実際には読み取りトンネルとして実施することがほとんどである。この読み取りシステムが全体としてコード読み取り装置となり、これに体積測定のためのレーザスキャナやベルトコンベア28の搬送速度を測定するためのエンコーダ等、図示せぬ他のセンサを含めることもできる。上位の制御装置38が、制御及び評価機能を分散させて実装する例として示されている。
【0042】
本発明により、図2に模範例として示したようなコード読み取り装置であって、図1で説明したコードリーダ10を一又は複数備えるものが、その後の運転段階のために例えば運転開始の枠内で自動的に調整される。「調整する」とはコードリーダ10の撮影パラメータ、又はコードの読み取りに用いられるデコーダ若しくはコードリーダ10内で実行される復号法の復号パラメータを設定することを意味する。このようなパラメータセットはコード読み取り装置の動作点とも呼ばれる。最適な動作点は運転の運動性、特に移動と物体高さの違いを考慮する。本発明では、考え得る後の読み取り状況に対応する仮想的な模範画像が生成されるが、それは決して読み取りの間に物理的に撮影されたものではない。なお、物体高さとは常に、検出対象の物体30の次元のうち物体30とコードリーダ10の間の距離にとって決定的な次元を意味する。それは上からの視点を想定して導かれたものであるが、それに相当する依存性は他の物体次元から見る他の視点にも存在し、物体高さはそれらを代表するものである。
【0043】
図3は、仮定した異なる物体高さの物体30について仮想的な模範画像を生成して評価するための模範的なフローチャートである。これは言わば、特定の動作点を徹底的に検査する、調整段階の個々の最適化サイクルを示している。ここでは焦点位置と受光感度(ゲイン)という2つのパラメータが関係しており、他のパラメータは別個に最適化されるか予め割り当てられる。十分に鮮明な画像が高い読み取り率の基本的な前提であり、また近接領域での過負荷や遠隔領域での暗すぎる画像も同様に防止する必要がある。動作点には露出時間も含めることが好ましいが、これは最適化プロセスの開始時に比較的簡単にモジュールサイズと搬送速度の商から算定することができる。最適化により、全ての予期される物体高さにわたって安定した確実な読み取りができるような動作点が見つかる。あるいは、このコード読み取り装置には物体高さの所望の区間全体をカバーできる動作点はないということが確認される。
【0044】
まずステップS1ではコードの付いた模範物体が検出領域14内に配置される。この模範物体は後に検出すべき物体30を代表するものである。その提示は静止状態で行うことが好ましい。そうすれば作業が簡単になり、最適化の間に異なるパラメータで繰り返し撮影画像を生成することが可能になる。
【0045】
ステップS2では模範物体の模範画像が撮影される。その際、焦点位置と受光感度というパラメータが、好ましくは、この最適化サイクルにおいて検査すべき値に設定される。考えられる最適化の実装については後で図14を参照して詳しく紹介する。最初は焦点位置と受光感度が例えば平均値又は他の一般的な値に設定される。あるいはまず静止状態に対する最適化、いわゆる第一読み取りを前に入れる。そしてその後の最適化サイクルにおいて他の焦点位置及び受光感度が検査される。それは反復的なループで段階的に行ってもよいし、その都度の現在の最適化の結果を用いてもよい。後者の場合は最適化サイクルの進行につれて精度が高まる。固定焦点系では焦点位置は変更できず、その場合は受光感度のみ最適化することができる。それ以外の場合は、低速の焦点変更が可能な低速焦点系から始まる。更に別の形態は手動焦点である。これは、調整者が自動的な調整法により与えられる正確な基準値に従ってその都度調節する。
【0046】
図4は説明のために、現在設定されている焦点位置と受光感度で撮影された模範画像を示している。これは本物の撮影画像、つまり模範物体の物理的な画像である。図5はコード領域の部分拡大図である。
【0047】
図3に戻り、ステップS3において物理的な模範画像から仮想的な模範画像が生成される。これは模範物体が最小又は最大の物体高さを持っているかのような検出状況をシミュレートした画像である。物体高さはコードリーダ10と物体30の間の読み取り距離に相当する。最小及び最大の物体高さは応用上の所与の基準値であり、それらがない場合、最小の物体高さには搬送面までの読み取り距離を、そして最大の物体高さにはコードリーダ10にとって辛うじて処理可能な近接領域を仮定すればよい。
【0048】
仮定した最小及び最大の物体高さへの適合化のため、ステップS2で撮影された模範画像の解像度を上げる又は下げる内挿(アップサンプリング、ダウンサンプリング)により適合させる。アンカー点としてはコード又はコード領域の重心を利用することが好ましい。模範的で好適な内挿アルゴリズムの1つにバイキュービック内挿がある。従って、異形化又は仮想的な模範画像の生成の基礎は実際に撮影された模範物体の模範画像である。物体高さ毎の純理論的な解像度の他、読み取り距離の違いに応じた光エネルギーの違いも考慮することが好ましい。それには、特にステップS2において、模範物体の反射特性を考慮するために様々な受光感度で何回も撮影すればよい。そのために最小及び最大の物体高さに対応してどの受光感度を設定することができるかは、後で図14においてより詳しく説明する。
【0049】
図6は説明のために、前記物理的な模範画像から生成した、最大の物体高さを仮定した場合の仮想的な模範画像を示しており、図8はそれに対応する、最小の物体高さを仮定した場合の仮想的な模範画像を示している。図7及び9はそれらに付属する、それぞれのコード領域の部分拡大図である。
【0050】
再び図3に戻り、任意選択のステップS4において更に鮮明度が考慮される。それは、前記最小及び最大の物体高さは通常、設定された焦点位置の被写界深度のせいぜい周縁領域内にあるだろうからである。現実的な仮定のためには、仮想的な模範画像は、ステップ2で得られた物理的な模範画像の鮮明度ではなく、現実になお予期される鮮明度を示すべきであろう。理想的な焦点位置からの逸脱又は被写界深度に対するずれを考慮する可能な方法の1つはガウスカーネルを用いた畳み込みである。これは対物レンズ又は受光光学系16の真の点広がり関数(PSF, Point Spread Function)に対する良好な近似となる。適切な標準偏差は考えられる焦点位置と関連付けて参照テーブル(LUT, Lookup Table)に保存するか、算定することができる。ガウス近似を用いて又はそれに代わる若しくはより正確なモデルからフィルタカーネルを予め算定しておき、後で調べるためにメモリに用意しておくことも考えられる。
【0051】
ステップS5では仮想的な模範画像と、場合によっては物理的な模範画像も、評価のためにデコーダに供される。その際、後で運転時にも用いられるものと全く同じ復号法を用いることが好ましい。
【0052】
ステップS6では、用いられた焦点位置と受光感度がステップS5での読み取り結果に基づいて評価される。これは単にコードが読み取られたか(GoodRead)否か(NoRead)を二値的に確認するものとすることができる。あるいは、デコーダが定量的な品質の尺度を出力する。図3で説明した最適化サイクルを好ましくは何回も実行する最適化の枠内で、そのような品質の尺度を用いて、新たな最適化サイクルのための焦点位置と受光感度の適切な値を決めることができる。あるいは、焦点位置と受光感度を一定のパラメータ区間にわたり体系的に探索し、最後に品質の尺度を用いて最も良い焦点位置及び受光感度を見出す。品質の尺度は、どの程度の信頼性でコードの読み取りができたかを算定することで、より低い画像品質にまで予め備えておくことが好ましい。更に別の基準は速度である。なぜなら、デコーダ時間が短ければ計算リソースが節約され、撮影周波数(フレームレート)をより高くできるからである。
【0053】
従って、要約すると、後の動的な運転状況を模するために、好ましくは単一の模範物体のみの本物の模範画像から、好ましくは静止状態で、追加の仮想的な模範画像が生成される。運転時にも用いられるデコーダエンジンを評価部として用いて、最適な動作点(ここでは特に焦点位置と受光感度の設定に関連する)を見つけ出す。デコーダエンジンが例えばファームウェアアップデートの枠内で改良された場合、例えばその新たなデコーダエンジンが不鮮明なコードをより良く処理できるなら、改めて最適化を実行することより簡単に動作点の追調整ができる。
【0054】
図10及び11は、後で生成する仮想画像のため、特にその解像度変更のために適したアンカー点を得るために、撮影された模範画像の中心をコード又はコード領域の重心に合わせる処理を示している。図10に示したように、囲み枠40(Bounding Box)がコードの周囲に置かれ、コードが複数ある場合はそれらの周囲に置かれる。矢印42で示唆されているように中心点からのコードのずれが中心合わせにより補償される。図11は模範的な中心合わせの結果を示している。その際、トーラスの上のように、ある縁部から押し出された画像内容がその反対側の縁部に再び填め込まれる(Wrap Around)。
【0055】
図12は移動中の物体30のための仮想的な模範画像を生成して評価するための模範的なフローチャートである。図3のステップに類似したステップが数箇所あるため、一部では短い説明しか行わず、詳細については先の説明を援用する。さて、撮影された模範画像から、移動中の読み取りに相当する仮想的な模範画像を生成する。この画像ではコードが好ましい検出点から離れてゆき、場合によっては一部しか撮影されない。これをシミュレートするため、画像内容をシフトさせ、好ましくは被写体ぶれもシミュレートする。
【0056】
まずステップS11及びS12では、コードの付いた模範物体が検出領域14内で再び撮影されて模範画像が生成される。その際、この最適化サイクルにおいて検査された動作点が設定される。例によって動作点とは撮影パラメータ(露出時間、焦点位置、受光感度等)及び/又は復号パラメータの特定の設定を意味している。この動作点で他の仮想的な模範画像が生成される限り、これらのステップは一度実行するだけでよく、例えば図3のステップS1及びS2と図12のステップS11及びS12とが一致していてもよい。
【0057】
ステップS13では、撮影された模範物体の模擬的な移動に対応する少なくとも1つの仮想的な模範画像が生成される。後の移動中の読み取りの際にはコードが一方の側から検出領域14内に進入し、好ましい撮影点を通り過ぎて他方の側から再び外に出る。この時間区間内で運転中に複数の撮影画像を生成することができる。それらの撮影画像のなかには、いくつかのコード、最善の場合は全てのコードが完全に見えるものもあれば、コードの一部しか見えないものもある。いま、仮想的な模範画像が、例えば1つのコードが少なくとも一度は完全に、少なくとも一度は周縁位置で捕らえられるように生成される。好ましくはそれぞれ二度捕らえればコストと結果のバランスが良くなる。バーコードの場合はそのコード要素の向きに応じてシフトを選択するように注意することができるが、2次元コードの場合、それは重要ではない。もっとも、周縁位置に2次元コードがある仮想的な模範画像の場合、そもそも復号処理により真剣に復号を試みて現実的な所要時間で処理するために、好ましくはファインダーパターンの部分が少なくともまだ見えるようにすべきである。
【0058】
図13はこのような仮想的な模範画像の例を4つ示している。なお、これらの模範画像のうち1つは最初に物理的に撮影された画像であってもよい。左上と右下ではコード領域が周縁位置にあり、右上と左下ではコードが完全に捕らえられている。縁部を超えて押し出された画像内容は好ましくはその反対側の縁部に再び填め込まれる(Wrap Around)。
【0059】
図12に戻り、任意選択のステップS14において、今度は更に被写体ぶれ(motion blur)がシミュレートされる。このぶれの原因は図3のステップS4における焦点ずれの場合とは違っている。しかし計算の仕方は全く同じでよく、例えば、標準偏差がモジュール幅と一致したガウスカーネルを用いた畳み込みが行われる。モジュール幅は例えば予め与えておくか、調整の先行ステップから知得しておく。特にコードの読み取りの試行が成功する度にモジュール幅を再構成することができる。なぜならそのとき、コードモジュールに関する知識とともにコード画像とその画素領域及び寸法が手元にあるからである。
【0060】
ステップS15では仮想的な模範画像が図3のステップS5と同様に復号処理に供される。その際、好ましくは、運転時に用いられるデコーダエンジンが用いられる。
【0061】
一方、ステップS16の評価の際は、図3のステップS6とは違って、コード読み取りのために動作点がどの程度適しているか又は更に改善できるかを確認することが目的ではないことが好ましい。むしろ、必要なデコーダ時間、例えば平均又は最大のデコーダ時間を見積もるべきである。運転時には撮影の合間の限られた時間しか利用できないから、このデコーダ時間は重要な尺度である。特にそれにより最適な撮影周波数を見出すことができる。デコーダ時間に決定的に寄与するのは周縁位置にあるコードである。なぜなら、そのコードを読み取るために復号処理が何度も繰り返し試行されるからである。仮想的な画像により後の運転の現実的なシナリオが先取りされる。時間の見積もりには各コードを少なくとも1回、例えば2回ずつ読み取る。その際、例えば偶然に良い状態で撮影された物理的な模範物体のせいでデコーダ時間が見かけ上あまりに短くならないように、コードが部分的に縁部にあってもよい。
【0062】
図3及び図12を参照して説明した2通りのやり方は互いに組み合わせることができる。これはまず、両方の方法を相前後して又は互いに入り組ませて実行することができることを意味する。また他方で、撮影パラメータ(焦点位置と受光感度等)を変化させると同時に移動に対応した変化もつけた仮想的な模範画像を生成することも考えられる。
【0063】
図14は模範的な詳しい実装における動作点の最適化のフローチャートを示している。以下では、図3の説明を補足し、異なる物体高さを待ち受ける場合の最適な焦点位置と受光感度の設定について説明する。もっとも、他の撮影又は復号パラメータの最適化も全く同様の、転用可能なやり方で実行される。
【0064】
様々な枠組み条件は前もって分かっていることが好ましい。それには、予期される最小及び最大の物体高さ、コードリーダ10の取り付け高さ、その向き、又は絞りの設定が挙げられるが、絞りの設定は本発明に係る方法で最適化することもできる。撮像の縮尺又は読み取り野のサイズは既知であるか、予め算定される。物体30又はベルトコンベア28の移動速度も同様に予め与えられるか、事前に測定される。提示される模範物体の高さは、例えば最適な焦点位置に基づいて、予め与える又は測定することができる。その際、物体高さと、物体30とコードリーダ10の間の距離との間の三角法による換算のために、コードリーダ10の取り付け高さと向きを用いることができる。
【0065】
好ましくは更に2つの関係が分かっている。それらは任意の形式で、例えば関数又は参照テーブル(LUT, Lookup-Table)として保存することができる。これらの関係はモデル化したり、シミュレートしたり、例えばコードリーダ10の最終仕上げの際に学習させたりできる。一方の関係は読み取り距離dに対する受光感度の依存性に関するもの、即ち既知の反射挙動を持つ基準物体についての関数Gain(d)である。二つ目の関係は最適な焦点位置から逸脱している場合の不鮮明さに関するものであり、特にガウスカーネルの標準偏差の形で保存しておくか、対物レンズの特性として導いておくことができる。
【0066】
ステップS21では初期値が決定される。これは固定された事前の割り当て値とすることができる。好ましくは、いわゆる第一読み取り時に、静止した模範物体に対して、それ自身は公知の最適化が行われる。本発明の本質部分とは違って、そこではまだ仮想的な模範画像は生成されない。特に第一読み取りの際は、露出、焦点位置及び受光感度といった重要な撮影パラメータについて、模範物体のコードを読み取ることができる初期値が見出される。また、復号法の選択又は復号パラメータの設定を行うこともできる。固有の反射特性を持つ物理的な模範物体に対して初期値をより良好に調整すればするほど、本発明に係る、動的な運転状況のための最適化がより速く成功するようになるとともに、最適化がパラメータ空間内で例えば誤って局所的な極値に迷い込む可能性がより低くなる。
【0067】
ステップS22では露出時間が設定される。これは比較的簡単である。なぜならそれはモジュールサイズ又はモジュール幅と移動速度との商として算定できるからである。移動速度は既知であるか、測定することができ、他方でモジュールサイズは同様に既知であるか、遅くとも第一読み取りに成功した後、該第一読み取り時の他の設置及び撮影パラメータの知識を用いて特定できる。こうして設定された露出時間を用いることで、被写体ぶれが最大でもモジュールサイズに限定される。この時、復号処理がそれをなお許容できることが仮定される。なお、これらの考察は、図12のステップS14でシミュレートされる被写体ぶれの大きさを決める基礎でもある。
【0068】
ステップS23では、提示された模範物体の模範画像が撮影される。これ以降の最適化の最初の実行においては、そのために撮影パラメータ(特に焦点位置と受光感度)が、第一読み取りから得られた初期値又は一般的な初期値に(例えば焦点位置は平均的な物体高さに)設定される。その先のループの実行においては撮影パラメータが変更される。直ちに復号を試行してもよい。なぜなら、それが成功しなければ、模範画像さえ処理できない現在の設定は求める最善の条件ではあり得ないからである。その場合は、撮影パラメータの新たなバリエーション又はより良い初期値を用いて改めて試行するために、ループの実行を途中で切り上げたり最適化全体を中断したりする。
【0069】
ステップS24及びS25では、任意選択で、更に追加の物理的な模範画像が最小及び最大の物体高さに対応する受光感度で撮影される。言い換えれば、まるで模範物体が最小又は最大の物体高さを持っていたかのような明るい又は暗い模範画像が生成される。ステップS24ではそのためにまず適切な受光感度が算定される。現在の焦点位置に対する受光感度は初期値として、又はその後の最適化ループの実行におけるその都度の新たな焦点位置への適合化を通じて、分かっている。先に、固定された反射特性の参照物体に対して受光感度を様々な距離に換算できるGain(d)なる関係を既に導入した。即ち、これを用いて前記焦点位置にある模範物体のための受光感度をスケーリングし直すことで、最小及び最大の高さの物体に適した受光感度を見出すことができる。
【0070】
ステップS25では、算定された各受光感度を用いて、同じ焦点位置で、最小及び最大の高さの物体のために2つの別の物理的な模範画像が撮影される。合間の移動による影響を排除するため、念のために元の模範画像も再度撮影することができる。今や3つの異なる明るさを持つ3つの物理的な模範画像が手元にある。
【0071】
ステップS26では仮想的な模範画像が生成される。これは基本的に図3で、特にステップS3及びS4について既に説明した通りである。それぞれ解像度を上げたり下げたり(アップサンプリング/ダウンサンプリング)して、出来上がった仮想的な模範画像を切り出す(アップサンプリングの場合のクロッピング)又は周縁部を完全に埋める(ダウンサンプリングの場合)。それに先立ってコード重心への中心合わせを行うことができる。好ましくは仮想的な模範画像が更に、焦点位置からの仮定したずれに対応する不鮮明さで適合化される(図3のステップS4参照)。
【0072】
そしてステップS27では仮想的な模範画像が復号法で処理される。それぞれの二値的な又は数値的な品質の尺度が保存される。いくつかのコードが読み取れない(NoRead)ことが考えられるが、この結果も保存される。それが最適化の完了時にもなおそうなっている場合、物体高さの所望の区間全体を固定の撮影パラメータセットで処理することはできない。
【0073】
ステップS28では復号結果が評価される。これは次の最適化サイクルに適したバリエーションを見つけ出すために役立つ。例えばあるパラメータ範囲をあるステップ幅で一通り繰り返すという最も簡単な最適化法の場合、その合間の評価は省略することができる。
【0074】
ステップS29において今度は撮影パラメータ(特に焦点位置と受光感度)がステップS33以降の更なる最適化サイクルのために体系的に変えられる。ここでも、例えば利用可能な最適化時間が過ぎたかどうか、所定回数の最適化サイクルが済んだかどうか、又は所望の一般的な品質の尺度に達したかどうかといった中断条件が検査される。その際、一般に普及しているあらゆる最適化法が考えられる。最も簡単な場合、初期値を中心とするパラメータ範囲が体系的に所定のステップ幅で徹底的に検査される。ヒルクライミング法等、他の最適化法では、ステップS28における評価に従って撮影パラメータを改善が期待される方向に変化させる。
【0075】
最後のステップS30では、中断条件が満たされた後、最適化が終了する。簡単な反復処理の場合、今や様々な検査済みの撮影パラメータに対する評価が手元にある。そのなかから最善の条件を選び出すか、内挿することができる。即ちこの場合、最善の条件は、できるだけ多くの予期される物体高さについて十分に適合するように設定される。他の最適化法では、既に最適化の進行中に撮影パラメータの最善の値を受け取っているため、中断条件が満たされた後の最終の評価は行われない。例えば多数の平らな又は背の高い物体が予期される場合には、最適化のプロセス又は最適化の結果に、予期される物体又は物体高さの重み付けを入れることができる。このように見出された撮影パラメータ(特に焦点位置と受光感度)を用いてコードリーダ10が後続の運転段階のために構成される。
【0076】
コードリーダ10が焦点調節装置を備えていない場合でも、その固定された単一の焦点位置に対して他のパラメータを最適化することができる。手動の焦点調節装置との組み合わせも考えられる。その場合、自動的な最適化プロセスは、ステップS29又はS30において、次の最適化ステップ又は後続の運転のためにどのように焦点を設定するかについて詳細な指示を調整者に与えることができる。
【0077】
図14は焦点位置及び受光感度の設定と強く関係している。一方、移動中の読み取りのプロセスもこれにかなり類似しており、それについては補足として図12の説明を引き合いに出すことができる。焦点位置及び受光感度のための最適化と移動のための最適化は互いに相前後して又は入り組ませて実行することができる。ステップS24からS26において、仮想的な物体高さの代わりに又はそれを補足して移動が考慮される。即ち、図12のステップS13及びS14を参照して説明したように画像内容をシフトさせる。その際に好ましくは、コードが完全に又は周縁位置に含まれている仮想的な模範画像を生成することで、現実に忠実な多様性のある模範画像を復号処理に提供し、以て良好なデコーダ時間の見積もりを得る。移動をシミュレートするための一連の画像は一つの固定された物体高さについてのみ生成すればよいが、仮定した最小又は最大の物体高さについても生成してもよい。それらの画像から、場合によっては焦点位置と受光感度のための補足的な品質の尺度を得ることができる。デコーダ時間の現実的な見積もりから、検査済みの各動作点において達成できる撮影周波数(フレームレート)を決定することができる。これは、撮影周波数をそのように設定するために用いることができるが、デコーダがあまりに低速になるという理由で動作点を拒絶したり少なくとも最適化という意味でその評価を下げたりするための基準にすることもできる。
【0078】
同様のプロセスで、又はそれに統合して若しくはそれに続けて、モジュールサイズの区間を検査することができる。そのために、読み取るべき最小及び最大のモジュールサイズ又はモジュール幅が生じるような倍率で仮想的な模範画像を生成する。そしてそれを復号することを試みる。これにより、その区間のモジュールサイズを読み取ることができること確認したり、どのモジュールサイズが読み取り可能になるか示したりできる。
【0079】
要約すると、物理的に撮影された模範画像のための露出、焦点位置及び受光感度といった本物の効果と、仮想的な模範画像のための人工的又は計算的な異形化との組み合わせから成る混合物をベースにして最適化が行われる。これによりとりわけ物体高さの違いと移動、即ち、模範物体の提示中には実在しない後の運転の動的な作用を最適化に取り込むことができる。その際、好ましくは模範物体を1つだけ提示し、その物理的な画像をごく僅かな数だけ撮影すれば足りる。また、その画像から生成される仮想的な模範画像も少数に留めることができる。従ってそれは、冒頭で部分的に挙げた従来技術のような、多数の現実の物体検出に合わせた動的な適合化と比較できるものでは決してなく、ましてや機械学習の際の訓練に必要な実例の数も比較にならない。
【0080】
最適化プロセスを追跡し、場合によってはそれに介入するため、つまり例えば仮想的な模範画像を現実的ではない又は運転時に待ち受けられないものとして除外するために、物理的及び/又は本物の模範画像を提示することができる。原理的には最適化プロセス全体を全て参照テーブルを通じて実行することもできよう。しかしそれは非常にコストがかかる上、例えばデコーダのバージョンの変更に柔軟に対応できない。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14