(57)【特許請求の範囲】
【請求項１】
フォーカス調整機構を備え、ワークに設けられたコードを撮像する撮像手段と、
前記撮像手段により取得された画像データをデコードするデコード手段と、
前記フォーカス調整機構における調整量を複数通りに変化させたときに、各調整量ごとに前記撮像手段により取得された各画像データについて前記デコード手段によるデコード結果を取得し、前記調整量を換算して得られる前記撮像手段から前記ワークまでの距離と当該デコード結果との対応関係を求め、当該対応関係に基づき前記コードをデコードする上で許容される前記撮像手段から前記ワークまでの距離である許容深度を演算する演算手段と、
を有することを特徴とする光学的情報読取装置。
【請求項２】
前記演算手段により演算された許容深度を表示する許容深度表示手段をさらに有することを特徴する請求項１に記載の光学的情報読取装置。
【請求項３】
前記演算手段は、前記撮像手段から前記ワークまでの距離と前記デコード結果との対応関係に基づき、前記デコード結果が所定の閾値条件を満たしている距離であって前記ワークに対して最も近い距離と、前記ワークに対して最も遠い距離とを演算し、前記ワークに対して最も近い距離から前記ワークに対して最も遠い距離までを前記許容深度として出力することを特徴とする請求項１または２に記載の光学的情報読取装置。
【請求項４】
前記閾値条件を設定する設定手段をさらに有することを特徴とする請求項３に記載の光学的情報読取装置。
【請求項５】
前記演算手段は、前記ワークから前記撮像手段までの実際の距離である基準距離と前記ワークに対して最も近い距離との差分である近方余裕度を演算することを特徴とする請求項３または４に記載の光学的情報読取装置。
【請求項６】
前記近方余裕度を表示する近方余裕度表示手段をさらに有することを特徴する請求項５に記載の光学的情報読取装置。
【請求項７】
前記演算手段は、前記ワークから前記撮像手段までの実際の距離である基準距離と前記ワークに対して最も遠い距離との差分である遠方余裕度を演算することを特徴とする請求項３ないし６のいずれか１項に記載の光学的情報読取装置。
【請求項８】
前記遠方余裕度を表示する遠方余裕度表示手段をさらに有することを特徴する請求項７に記載の光学的情報読取装置。
【請求項９】
前記フォーカス調整機構を制御するオートフォーカス制御部をさらに有し、
前記オートフォーカス制御部が前記フォーカス調整機構のフォーカスの調整量を変化させ、
前記撮像手段は各フォーカスの調整量に対してそれぞれ前記ワークに設けられたコードを撮像して画像データを出力することを特徴とする請求項１ないし８のいずれか１項に記載の光学的情報読取装置。
【請求項１０】
前記撮像手段の撮像条件と前記デコード手段における画像処理条件とを含む読取条件を制御する読取条件制御手段をさらに有し、
前記演算手段は、前記読取条件が確定した後で前記許容深度の取得処理を開始することを特徴とする請求項１ないし９のいずれか１項に記載の光学的情報読取装置。
【請求項１１】
前記演算手段が前記許容深度の取得処理を実行している間は前記読取条件制御手段が前記読取条件を変更せずに固定することを特徴とする請求項１０に記載の光学的情報読取装置。
【請求項１２】
前記許容深度の取得処理が開始されると、前記オートフォーカス制御部は、前記ワークに対して近方側に前記撮像手段の光学系の焦点が変更されるよう前記フォーカス調整機構の調整量を変化させて前記デコード手段に前記近方側についてデコード結果を取得させ、前記デコード手段が前記近方側についてのデコード結果の取得を完了すると、前記ワークに対して遠方側に前記撮像手段の光学系の焦点が変更されるよう前記フォーカス調整機構の調整量を変化させ、前記デコード手段に前記遠方側についてデコード結果を取得させることを特徴とする請求項９に記載の光学的情報読取装置。
【請求項１３】
前記撮像手段から前記ワークまでの距離と当該デコード結果との対応関係を示すグラフを表示するグラフ表示手段をさらに有することを特徴とする請求項１ないし１２のいずれか１項に記載の光学的情報読取装置。
【請求項１４】
前記対応関係を示すグラフの一部を指定する指定手段と、
前記指定手段により指定された部分に対応した前記撮像手段から前記ワークまでの距離を表示する距離表示手段と
をさらに有することを特徴とする請求項１３に記載の光学的情報読取装置。
【請求項１５】
前記デコード結果は、前記コードについての読取成功率、読み取りやすさの指標である読取余裕度、または、前記コードを構成する１つのセルが前記画像データにおいていくつの画素に相当するかを示すＰＰＣであることを特徴とする請求項１ないし１４のいずれか１項に記載の光学的情報読取装置。
【請求項１６】
フォーカス調整機構を備え、ワークに設けられたコードを撮像する撮像手段と、前記撮像手段により取得された画像データをデコードするデコード手段とを有する光学的情報読取装置の制御方法であって、
前記フォーカス調整機構における調整量を複数通りに変化させながら各調整量ごとに前記撮像手段により取得された各画像データについて前記デコード手段によるデコード結果を取得し、前記調整量を換算して得られる前記撮像手段から前記ワークまでの距離と当該デコード結果との対応関係を求め、当該対応関係に基づき前記コードをデコードする上で許容される前記撮像手段から前記ワークまでの距離である許容深度を演算することを特徴とする制御方法。
【請求項１７】
フォーカス調整機構を備え、ワークに設けられたコードを撮像する撮像手段と、前記撮像手段により取得された画像データをデコードするデコード手段とを有する光学的情報読取装置で実行されるプログラムであって、当該光学的情報読取装置に、
前記フォーカス調整機構における調整量を複数通りに変化させながら各調整量ごとに前記撮像手段により取得された各画像データについて前記デコード手段によるデコード結果を取得させ、前記調整量を換算して得られる前記撮像手段から前記ワークまでの距離と当該デコード結果との対応関係を求めさせ、当該対応関係に基づき前記コードをデコードする上で許容される前記撮像手段から前記ワークまでの距離である許容深度を演算させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は光学的情報読取装置、光学的情報読取装置の制御方法およびプログラムに関する。
【背景技術】
【０００２】
バーコードやＱＲコード（登録商標）などの２次元コードを読み取る２次元コードリーダ（以下、リーダと称す。）は広く普及している。このようなリーダの一例が特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−７６５１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、リーダで精度よく２次元コードをデコードするためには、ピンボケがないようにリーダと２次元コードまでの距離を調整する必要がある。多少のピンボケは許容されるものの、ピンボケが大きな画像ではデコード誤りが発生するからである。工場ではラインを搬送されるワーク（製造物）に２次元コードを付与したり、レーザ刻印したりして、それをリーダで読み取って生産管理をしている。リーダはラインに対して設置されるときにワークの２次元コードまでの距離を調整されるが、ラインを搬送されるワークの高さのバラツキやラインに対するワークの位置のバラツキ等によって、リーダと２次元コードまでの距離が適切な距離から外れてしまい、デコード誤りが発生することがある。もちろんリーダは多少のピンボケが発生しても２次元コードをデコードできるが、リーダと２次元コードまでの距離についてどの程度の変動が許容されるかを知った上でリーダを設置することが求められる。つまり、所望の読取成功率を達成可能な距離の範囲（許容深度と称す。）をユーザや設置担当者に提示できれば、工場でのデコードの成功率を向上できるようになろう。これはデコードの失敗によるワークの廃棄を削減する上でも重要であろう。
【０００５】
そこで、本発明は、許容深度を求めることが可能な光学的情報読取装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明によれば、たとえば、
フォーカス調整機構を備え、ワークに設けられたコードを撮像する撮像手段と、
前記撮像手段により取得された画像データをデコードするデコード手段と、
前記フォーカス調整機構における調整量を複数通りに変化させたときに、各調整量ごとに前記撮像手段により取得された各画像データについて前記デコード手段によるデコード結果を取得し、前記調整量を換算して得られる前記撮像手段から前記ワークまでの距離と当該デコード結果との対応関係を求め、当該対応関係に基づき前記コードをデコードする上で許容される前記撮像手段から前記ワークまでの距離である許容深度を演算する演算手段と、
を有することを特徴とする光学的情報読取装置が提供される。
【発明の効果】
【０００７】
本発明によれば、許容深度を求めることが可能な光学的情報読取装置が提供される。
【図面の簡単な説明】
【０００８】
【図１】光学的情報読取装置の一例を示す図
【図２】許容深度を説明するための図
【図３】読み取り距離とマッチングレベルとの関係を示す図
【図４】レンズ繰り出し量を読み取り距離に変換するための関数などの一例を示す図
【図５】リーダの一例を示す図
【図６】リーダを設定するコンピュータの一例を示す図
【図７】ユーザインタフェースの一例を示す図
【図８】許容深度の取得処理を示すフローチャート
【発明を実施するための形態】
【０００９】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１０】
図１はリーダシステム（光学的情報読取装置）の一例を示す図である。ライン１は検査対象物であるワーク２を搬送する搬送ベルトなどである。リーダ３は２次元コードを読み取ってデコードする２次元コードリーダである。なお、リーダ３自体も狭義の光学的情報読取装置である。プログラマブル・ロジック・コントローラ（ＰＬＣ５）はライン１やリーダ３を制御する制御装置である。コンピュータ４はリーダ３に対して動作条件などを設定したり、リーダ３からデコード結果などを取得して表示したりする情報処理装置である。
【００１１】
＜許容深度（読み取り深度）＞
図２（Ａ）、図２（Ｂ）は許容深度を説明するための図である。図２（Ａ）はワーク２をリーダ３から遠ざけたり、近づけたりして許容深度ＤＤを見つけることを示す図である。図２（Ｂ）はリーダ３をワーク２から遠ざけたり、近づけたりして許容深度ＤＤを見つけることを示す図である。図２（Ａ）、図２（Ｂ）においてＲＤはユーザがリーダ３を設置したときのリーダ３の先端位置Ｐ０からワーク２の表面に設けられた２次元コード６までの読み取り距離であり、これを基準距離と呼ぶことにする（読み取り距離は可変であるが、許容深度の取得処理を開始したときの読み取り距離を基準距離と呼ぶ）。ユーザは許容深度ＤＤを把握するために、ワーク２をリーダ３から遠ざけたり、近づけたりしつつ、そのときの読取のしやすさ（マッチングレベルと称す。）を確認し、所望のマッチングレベルを達成可能な遠方側のワーク２の位置Ｐｆと近方側のワーク２の位置Ｐｎとを見つけ、リーダ３の先端位置Ｐ０からＰｎまでの距離と、リーダ３の先端位置Ｐ０からＰｆまでの距離とを許容深度ＤＤとして求める。マッチングレベルはリーダ３またはコンピュータ４が算出して表示するものとする。なお、初期位置（基準位置Ｐｒ）においてリーダ３の光学系がワーク２の２次元コード６に合焦しているとは限らない。そのため、基準距離ＲＤに対して遠方側の余裕度（遠方余裕度）Ｍｆと近方側の余裕度（近方余裕度）Ｍｎとが一致しないことがある。よって、基準距離ＲＤのときの２次元コード６の位置を基準位置Ｐｒとすると、基準位置Ｐｒから近方側の読み取り限界位置Ｐｎまでの距離が近方余裕度Ｍｎである。また、基準位置Ｐｒから遠方側の読み取り限界位置Ｐｆまでの距離が遠方余裕度Ｍｆである。図２（Ｂ）が示すようにワーク２を固定してリーダ３をワーク２から遠ざけたり、近づけたりしながら各読み取り距離でのマッチングレベルを確認することで許容深度ＤＤを求めてもよい。
【００１２】
ところで、マッチングレベルとはリーダ３が２次元コード６の読み取りに成功したときにリーダ３にとって２次元コード６がどれだけ読み取りやすかったかを示すパラメータである。２次元コード６の１回の読み取りあたりの読み取り結果は成功と失敗との２つしかない。よって、デコードに成功したか失敗しただけに着目してもどの程度の余裕をもってデコードに成功したのかはわからない。そのため、当業界ではマッチングレベルという尺度が使用されている。マッチングレベルの算出方法自体はすでに当業界においてよく知られているため、ここではその詳細については省略する。
【００１３】
図３はリーダ・ワーク間の読み取り距離とマッチングレベルとの関係を示すグラフと、許容深度と、近方余裕度および遠方余裕度を表示するユーザインタフェース（ＵＩ）の一例を示している。図３では基準距離ＲＤが１７０ｍｍである例である。図３においてＵＭＬはユーザが設定した所定の閾値条件である。ここでのＵＭＬは許容できる下限のマッチングレベルである。この例では、ＵＭＬを満たす近方側の限界距離は１３０ｍｍであり、遠方側の距離は２２０ｍｍである。よって、許容深度は１３０ｍｍないし２２０ｍｍｍとなる。また、基準距離ＲＤが１７０ｍｍであり、かつ、近方側の限界距離は１３０ｍｍであるため、近方余裕度は４０ｍｍである。基準距離ＲＤが１７０ｍｍであり、かつ、遠方側の限界距離は２２０ｍｍであるため、遠方余裕度は５０ｍｍである。
【００１４】
このように許容深度等をユーザに提示できれば、リーダ３とワーク２の２次元コード６までの距離をどの程度の範囲にとどめればよいかを具体的に理解できるようになる。しかし、図２（Ａ）や図２（Ｂ）で示した手法ではユーザがワーク２を上下させたり、リーダ３を上下させたりする必要がある。とりわけ、リーダ３にはケーブル等が接続されており、手動でリーダ３を移動させることは簡単ではない。さらに、多数の位置についてデコード結果を取得する必要があり、膨大な作業となってしまうだろう。その一方で、リーダ３の光学系にフォーカス調整機構（ＡＦ機構）を採用することも可能である。ＡＦ機構は被写体に対して合焦するように光学系を駆動する機構である。そこで、本実施形態では、ＡＦ機構を駆動して合焦位置を調整し、調整量をリーダ３とワーク２までの距離に換算し、換算距離とデコード結果との対応関係を求め、この対応関係に基づき許容深度を演算する光学的情報読取装置を提供する。これにより、ユーザはリーダ３やワーク２を移動させることなく、許容深度を把握できるようになる。
【００１５】
＜ＡＦ調整量を読み取り距離に換算する方法＞
ＡＦ機構は、一般に、光学系の一部または全部のレンズを繰り出したり、液体レンズの屈折率を変化させたりして、ピント合わせ(合焦)を実行する。ここでは説明の便宜上、レンズを繰り出すものとして説明する。そこで、予めレンズの繰り出し量（ＡＦ調整量）と読み取り距離との関係を示すデータを作成しておけば、このデータに基づいて繰り出し量を読み取り距離に換算することが可能となる。なお、読み取り距離はリーダ３の先端位置Ｐ０からワーク２の２次元コード６までの距離である。
【００１６】
図４はレンズ繰り出し量と読み取り距離との対応関係の一例を示す図である。このような関係はリーダ３について実験を行ったり、シミューレションを実行したりすることで得られる。これをテーブルや関数として記憶装置に記憶しておくことで、レンズ繰り出し量を読み取り距離に換算することができる。たとえば、１２個のレンズ繰り出し量のそれぞれについて読み取り距離を測定することで、テーブルや関数が作成される。最小二乗法などの数学的な近似手法によって近似関数が生成されてもよい。また、測定値に対して補間処理を行うことで２つの測定値の間にある値を求めてもよい。なお、レンズ繰り出し量としては、たとえば、レンズの位置を調整するモータの回転数（回転量）を採用できる。液体式レンズであれば、これに代えて印加電圧（ＡＦ調整量）と読み取り距離との関係（テーブルや関数など）を予め求めて記憶部に記憶し、この関係を参照することで印加電圧を読み取り距離に換算できる。このようにＡＦ調整量を読み取り距離に換算するためのデータ等はリーダ３の工場出荷時に生成されるため、ユーザがこれを用意する手間を省ける。
【００１７】
＜制御ユニット＞
図５はリーダ３の電子的な構成を示すブロック図である。リーダ３のカメラ部（撮像手段）は、撮像素子１０、光学系９、ＡＦ機構１１、照明部１２などを有している。撮像素子１０は光学系９を通して結像した２次元コードの画像を電気的な信号に変換するＣＣＤやＣＭＯＳ等のイメージセンサである。ＡＦ機構１１は光学系９のうち合焦用のレンズの位置や屈折率を調整する機構である。照明部１２は１つ以上の発光素子を有し、２次元コードを照明するユニットである。デコード部１３は撮像素子１０によって取得された２次元コードの画像データ３２をデコードしてデコード結果３１を記憶部３０に書き込むユニットである。通信部１４はＰＬＣ５やコンピュータ４と通信するユニットである。表示部１５は液晶表示装置や発光ダイオードなどであり、情報を視覚的に出力するユニットである。表示部１５は、たとえば、２次元コードのデコード結果３１である文字情報、読み取り成功率（複数回読み取り処理を実行したときに成功の割合）、マッチングレベル（読み取りのしやすさを示す読取余裕度）、ＰＰＣ（２次元コードを構成する１つのセルが画像データにおいていくつの画素に相当するかを示す値）、許容深度、近方余裕度、遠方余裕度などを表示してもよい。入力部１６はスイッチなどの入力操作を受け付けるユニットである。制御ユニット２０はリーダ３の各部を統括的に制御するユニットである。制御ユニット２０は様々な機能を搭載しているが、これらは論理回路により実現されてもよいし、ソフトウエアを実行することによって実現されてもよい。オートフォーカス制御部（ＡＦ制御部）２１はＡＦ機構１１を制御するユニットである。撮像制御部２２は照明部１２の照明光の光量を制御したり、撮像素子１０の露光時間（シャッタースピード）を制御したりするユニットである。
【００１８】
演算部２３は様々な演算処理を実行する。たとえば、演算部２３はＡＦ制御部２１を通じて、ＡＦ機構１１における調整量を複数通りに変化させる。たとえば、演算部２３は許容深度の取得処理を開始すると、ＡＦ制御部２１を通じて、ワーク２に対して近方側に光学系の焦点が変更されるようＡＦ機構１１の調整量を変化させてデコード部１３に近方側についてのデコード結果を取得させる。たとえば、ＡＦ機構１１は最も近方側の位置までレンズを移動させた後、そこから基準位置にかけて一定のステップでレンズの繰り出し量を変化させる。撮像素子１０は各ステップごとに画像データを取得してデコード部１３に供給する。これが完了すると、ＡＦ制御部２１は、ワーク２に対して遠方側に光学系の焦点が変更されるようＡＦ機構１１のレンズ繰り出し量を変化させる。撮像素子１０は各ステップごとに画像データを取得してデコード部１３に供給する。なお、ＡＦ機構１１は、最も近方側のレンズ繰り出し量から遠方側のレンズ繰り出し量まで連続的に変化させてもよい。その一方で、演算部２３は、各調整量ごとに撮像素子１０により取得された各画像データ３２をデコード部１３にデコードさせ、デコード結果３１を取得する。さらに、演算部２３は撮像素子１０からワーク２までの読み取り距離とデコード結果３１との対応関係を求める。撮像素子１０からワーク２までの読み取り距離は、ＡＦ機構１１の調整量を換算して得られる。演算部２３はこの対応関係に基づきコードをデコードする上で許容される撮像素子１０からワーク２までの読み取り距離である許容深度を演算する。また、演算部２３は上述した近方余裕度や遠方余裕度を算出し、表示部１５に表示させてもよい。予め設定部２４はデコード結果３１に対する閾値条件を設定する。閾値条件は許容深度の基準となる。この閾値条件は図３で説明したＵＭＬである。たとえば、演算部２３は、ＡＦ制御部２１に最も近方側のレンズ繰り出し量から遠方側のレンズ繰り出し量まで連続的にレンズ繰り出し量を変化させ、そのうちマッチングレベルがＵＭＬ以上となるレンズ繰り出し量を読み取り距離に換算し、読み取り距離とマッチングレベルとを対応付けて記録してもよい。つまり、最も近方側のレンズ繰り出し量からあるレンズ繰り出し量まではそのマッチングレベルがＵＭＬ未満となるため、記録が省略される。また、読み取り距離が基準距離を超えてさらに遠方側の読み取り距離に変更されると、マッチングレベルがＵＭＬ未満となったときに、レンズ繰り出し量の調整は停止され、許容深度の取得処理も停止されてもよい。
【００１９】
読取条件制御部２５は、露光時間や照明光量などの撮像条件やデコード部１３における画像処理条件（フィルタの係数など）を制御するユニットである。ライン１を搬送されるワーク２に対する外光の影響などで適切な撮像条件や画像処理条件は変化する。よって、読取条件制御部２５は、より適切な読取条件を探索して、ＡＦ制御部２１や撮像制御部２２、デコード部１３に設定する。なお、読取条件制御部２５は演算部２３が許容深度の取得処理を実行している間は読取条件を変更せずに固定する。読取条件はマッチングレベルに影響を及ぼすため、読取条件が変動してしまうと正確な許容深度が得られなくなってしまうからである。そのため、演算部２３は、読取条件制御部２５で読取条件が確定した後で許容深度の取得処理を開始する。記憶部３０は、メモリなどの記憶装置であり、デコード部１３によって取得されたデコード結果３１、撮像素子１０によって取得された画像データ３２、コンピュータ４などの設定装置によってリーダ３に設定されたデータや入力部１６を通じて設定されたデータである設定データ３３などを記憶する。
【００２０】
図６はコンピュータ４の機能を示すブロック図である。リーダ３を小型化すると、リーダ３の表示部１５や入力部１６だけではリーダ３のすべての機能を設定することが難しくなる。そこで、一部またはすべての設定データ３３についてはコンピュータ４で作成してリーダ３に転送してもよい。ＣＰＵ４０は記憶部５０に記憶されているプログラムに基づきコンピュータ４が備えている各部を制御するユニットである。演算部４１の一機能であるＵＩ制御部４３はリーダ３の撮像条件などを設定するためのユーザインタフェースやリーダ３が出力するデコード結果３１、画像データ３２などを表示するためのユーザインタフェースを生成し、表示部６１に表示させる。ＵＩ制御部４３は許容深度や近方余裕度、遠方余裕度、リーダ３からワーク２までの距離（読み取り距離）、読み取り距離とデコード結果との対応関係を示すグラフ（図３など）などを表示部６１に表示してもよい。なお、入力部６２によってグラフの一部が指定されると、ＵＩ制御部４３は指定された部分に対応した読み取り距離を表示部６１に表示させてもよい。たとえば、ユーザは、入力部６２の一部であるポインティングデバイスによってポインタを移動させ、グラフ上の所望の位置にポインタを重ね合わせてもよい。ＵＩ制御部４３や演算部４１はポインタの座標を取得し、その座標からグラフ上での対応する読み取り距離を算出してもよい。演算部４１はリーダ３の演算部２３の代わりに上述した各種の演算処理を実行するユニットである。リーダ３の演算部２３の演算性能が低く、コンピュータ４の演算部４１の演算性能が高い場合には、コンピュータ４の演算部４１がほとんどの演算処理を実行してもよい。設定部４２は撮像条件やＵＭＬなどの制御パラメータをリーダ３に設定するユニットである。通信部６３はリーダ３の通信部１４と有線または無線で接続し、デコード結果３１や画像データ３２を受信したり、設定部４２で生成された設定データ３３を送信したりする。記憶部５０は、メモリやハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）などである。
【００２１】
＜ユーザインタフェースの一例＞
図７はデコード結果と読み取り距離との対応関係であるグラフを表示するユーザインタフェース７０ａ、７０ｂの一例を示す図である。ユーザインタフェース７０ａでは、ポインタ７１はまだグラフの一部を指定してはいない。ＵＩ制御部４３は入力部６２のポインティングデバイスの操作に連動してポインタ７１の表示位置を更新する。ＵＩ制御部４３はポインタ７１の座標がグラフの座標と一致すると、その座標に対応した読み取り距離を求め、読み取り距離をポップアップ表示する。図７ではポップアップ部７２に読み取り距離とその読み取り距離で取得された画像データとが含まれているが、少なくとも読み取り距離が含まれていればよい。また画像データを表示することでユーザは２次元コードの画像を視覚的に把握可能となり、マッチングレベルと画像との関係も理解できるようになろう。２次元コードの画像を確認することはユーザにとってＵＭＬを変更するのに役立つであろう。
【００２２】
＜フローチャート＞
リーダ３には運転モードと設定モードとが存在する。運転モードは、実際にライン１を搬送される複数のワーク２について２次元コードの読み取りを実行するモードである。設定モードは、リーダ３の読取条件を設定し、許容深度などをユーザに提示するモードである。
【００２３】
図８は許容深度の取得処理を示すフローチャートである。図８を用いて取得処理の各ステップについて説明する。ユーザはリーダ３がワーク２に設けられた２次元コードを読み取れるように、リーダ３とワーク２の距離（読み取り距離）を調整する。通常、リーダ３は支持部材に固定されており、ワーク２からの距離を調整可能となっている。ユーザは表示部１５に表示されるマッチングレベルを確認し、マッチングレベルが最大となるようにリーダ３とワーク２の距離を調整する。この状態での読み取り距離が基準距離となる。基準距離が確定すると、ユーザは入力部１６を操作して、制御ユニット２０に許容深度の取得処理を開始させる。
【００２４】
Ｓ８００で設定部２４は入力部１６またはコンピュータ４を通じて入力された値に基づき閾値ＵＭＬを設定する。設定部２４は表示部１５にＵＭＬの設定を促すメッセージ等を表示してもよい。
【００２５】
Ｓ８０１で読取条件制御部２５は撮像素子１０により取得された画像データ等に基づき読取条件を確定させ、撮像条件を撮像制御部２２に設定し、画像処理条件をデコード部１３に設定する。読取条件制御部２５はデコード結果が最良となるように、ＡＦ調整量、照明光量、露光時間、画像処理条件などを探索して設定する。
【００２６】
Ｓ８０２で演算部２３はＡＦ制御部２１を通じて取得したＡＦ機構１１のレンズ繰り出し量を読み取り距離に変換することで基準距離を求める。
【００２７】
Ｓ８０３でＡＦ制御部２１はＡＦ機構１１を制御し、光学系の焦点位置が近方側に移動するようレンズの繰り出し量を１段階だけ調整する。ここでは基準距離から徐々に読み取り距離を削減して行くものとする。Ｓ８０４で撮像制御部２２は撮像素子１０に撮像を実行させて画像データを取得し、デコード部１３に画像データについてデコード処理を実行させる。デコード部１３は画像データについてデコード処理を実行してデコード結果を取得する。Ｓ８０５で演算部２３はデコード部１３が出力するデコード結果に基づき２次元コードのデコードに成功したかどうかを判定する。２次元コードでは１回あたりの読み取り結果は成功か失敗の２つの結果しかない。そこで、たとえば、演算部２３は、ひとつの位置（読み取り距離）についてＮ回の読み取りを実行し、成功回数をカウントし、その平均成功回数（読み取り成功率）を求め、読み取り成功率が０％を超えていれば読み取り成功と判定し、読み取り成功率が０％であれば読み取り失敗と判定してもよい。読み取り成功であれば、Ｓ８０７に進み、演算部２３はデコード結果に基づきマッチングレベルを求めるとともに、レンズの繰り出し量から読み取り距離を求め、これらを記憶部３０に記憶する。一方で、読み取り失敗であれば、Ｓ８０６に進み、演算部２３はデコード結果に基づきマッチングレベルを求め、マッチングレベルが閾値以上であるかどうかを判定する。マッチングレベルが閾値以上であれば、読み取り距離はまだ近方側の限界距離には達していない。そこで、Ｓ８０３に戻り、レンズ繰り出し量を近方側に１段階調整する。その後、読み取り距離が近方側の限界距離に達するまで、Ｓ８０３ないしＳ８０７の処理を繰り返し実行する。一方で、マッチングレベルが閾値未満になると、近方側の限界距離が確定し、つまり近方余裕度（基準距離と近方側の限界距離との差分）も確定する。そのため、Ｓ８０８に進む。
【００２８】
Ｓ８０８でＡＦ制御部２１は読み取り距離が基準距離に復帰するようＡＦ機構１１を制御し、ＡＦ機構１１のレンズ繰り出し量を調整する。
【００２９】
Ｓ８０９でＡＦ制御部２１はＡＦ機構１１を制御し、光学系の焦点位置が遠方側に移動するようレンズの繰り出し量を１段階だけ調整する。ここでは基準距離から徐々に読み取り距離を増加して行くものとする。Ｓ８１０で撮像制御部２２は撮像素子１０に撮像を実行させて画像データを取得し、デコード部１３に画像データについてデコード処理を実行させる。デコード部１３は画像データについてデコード処理を実行してデコード結果を取得する。Ｓ８１１で演算部２３はデコード部１３が出力するデコード結果に基づき２次元コードのデコードに成功したかどうかを判定する。読み取り成功であれば、Ｓ８１３に進み、演算部２３はデコード結果に基づきマッチングレベルを求めるとともに、レンズの繰り出し量から読み取り距離を求め、これらを記憶部３０に記憶する。一方で、読み取り失敗であれば、Ｓ８１２に進み、演算部２３はデコード結果に基づきマッチングレベルを求め、マッチングレベルが閾値以上であるかどうかを判定する。マッチングレベルが閾値以上であれば、読み取り距離はまだ遠方側の限界距離には達していない。そこで、Ｓ８０９に戻り、レンズ繰り出し量を遠方側に１段階調整する。その後、読み取り距離が遠方側の限界距離に達するまで、Ｓ８０９ないしＳ８１３の処理を繰り返し実行する。一方で、マッチングレベルが閾値未満になると、遠方側の限界距離が確定し、つまり遠方余裕度（基準距離と遠方側の限界距離との差分）も確定する。そのため、Ｓ８１４に進む。
【００３０】
Ｓ８１４で演算部２３は近方側の限界距離と遠方側の限界距離とから許容深度を決定し、表示部１５に表示する。これによりユーザは許容深度を把握できるようになる。なお、演算部２３は許容深度とともに、または、許容深度に代えて、近方余裕度と遠方余裕度とのうち両方または一方を表示部１５に表示させてもよい。また、演算部２３は記憶部３０に記憶したマッチングレベルと読み取り距離との対応関係を示すグラフを作成し、表示部１５に表示してもよい。なお、これらの表示処理は上述したようにコンピュータ４で実行されてもよい。
【００３１】
＜まとめ＞
リーダ３は、光学系の合焦位置を調整するＡＦ機構１１と、ワーク２に設けられた２次元コード６を撮像する撮像素子１０と、撮像素子１０により取得された画像データをデコードするデコード部１３とを有している。演算部２３は、ＡＦ機構１１における調整量を複数通りに変化させたときに、各調整量ごとに撮像素子１０により取得された各画像データについてデコード部１３によるデコード結果を取得し、調整量を換算して得られる読み取り距離とデコード結果との対応関係を求め、当該対応関係に基づき許容深度を演算する。これにより許容深度を求めることが可能な光学的情報読取装置が提供される。なお、コンピュータ４の演算部４１が演算部２３の演算処理の一部またはすべてを実行してもよい。
【００３２】
表示部１５、６１は演算部２３、４１により演算された許容深度を表示する許容深度表示手段として機能してもよい。これによりユーザは許容深度を視覚的に把握できるようになる。
【００３３】
図３や図８を用いて説明したように、演算部２３は、撮像素子１０からワークまでの距離とデコード結果との対応関係に基づき、マッチングレベルが閾値条件（例：ＵＭＬ）を満たしている読み取り距離のうち、ワーク２に対して最も近い距離（近方限界距離）と、ワーク２に対して最も遠い距離（遠方限界距離）とを演算し、ワーク２に対して最も近い距離からワークに対して最も遠い距離までを許容深度として出力してもよい。これにより、閾値条件を満たすことが可能な近方側の読み取り距離と、遠方側の読み取り距離を明確に把握できるようになる。つまり、ユーザは許容深度を把握できるため、ワーク２の高低のバラツキなどを考慮し、読み取り距離を効率よく再調整することが可能となろう。つまり、ワーク２の高低のバラツキが最大となったとしても２次元コードの読み取りに成功するように、リーダ３の読み取り距離を調整できるようになる。これにより、２次元コードが読み取れないことによるワーク２の廃棄率を低下させることが可能となる。ワーク２が製品として合格レベルにあっても２次元コードが正しく印刷、貼付または刻印されていなければ、製品管理ができないためそのワーク２は廃棄される。これは、ワーク２の読み取り距離の設定が不十分であることが原因で読み取りの失敗が発生しても、そのワーク２は廃棄されてしまうことを意味する。ワーク２の不要な廃棄はワーク２の製造コストの上昇を招くため、このような読み取り失敗は削減されなければならない。とくにワーク２がエンジンブロックなどの高価な部品であればなおさらである。本実施形態では、リーダ３の許容深度をユーザに提示できるだけ、ユーザは読み取り距離を正しく設定しやすくなり、ワーク２の不要な廃棄を削減できるようになろう。
【００３４】
ユーザは設定部２４、４２を通じて閾値条件であるＵＭＬを設定してもよい。ワーク２やライン１の設置環境に応じて適切なＵＭＬが異なることが予想される。そこで、ユーザは自己の経験に基づいて適切なＵＭＬを設定してもよい。
【００３５】
図２を用いて説明したように、演算部２３、４１は、ワーク２から撮像素子１０までの実際の読み取り距離である基準距離ＲＤとワーク２に対して最も近い読み取り距離との差分である近方余裕度Ｍｎを演算してもよい。さらに、演算部２３、４１および表示部１５、６１は近方余裕度を表示する近方余裕度表示手段として機能してもよい。これによりユーザは近方余裕度Ｍｎを明確に把握できるようになろう。
【００３６】
図２を用いて説明したように、演算部２３、４１は、ワーク２から撮像素子１０までの実際の読み取り距離である基準距離ＲＤとワーク２に対して最も遠い読み取り距離との差分である遠方余裕度Ｍｆを演算してもよい。また、演算部２３、４１および表示部１５、６１は遠方余裕度を表示する遠方余裕度表示手段として機能してもよい。これによりユーザは遠方余裕度Ｍｆを明確に把握できるようになろう。
【００３７】
ＡＦ制御部２１がＡＦ機構１１のフォーカスの調整量を段階的に変化させ、撮像素子１０は各フォーカスの調整量に対してそれぞれワーク２に設けられた２次元コードを撮像して画像データを出力してもよい。これにより、ユーザは手動で読み取り距離を多数回にわたって調整し、そのたびに撮像を実行する煩わしさから解放されよう。
【００３８】
読取条件制御部２５は撮像素子１０の撮像条件とデコード部１３における画像処理条件とを含む読取条件を制御してもよい。演算部２３は、読取条件が確定した後で許容深度の取得処理を開始する。このように読取条件が適切に調整された上で許容深度の取得処理を実行することで、より正確な許容深度が求められるようになろう。同様に、演算部２３が許容深度の取得処理を実行している間は読取条件制御部２５が読取条件を変更せずに固定してもよい。読取条件を一定とすることで、より正確な許容深度が求められるようになろう。
【００３９】
図８を用いて説明したように、許容深度の取得処理が開始されると、ＡＦ制御部２１は、ワークに対して近方側に撮像素子１０の光学系の焦点が変更されるようＡＦ機構１１の調整量を変化させてデコード部１３に近方側についてデコード結果を取得させ、デコード部１３が近方側についてのデコード結果の取得を完了すると、ワークに対して遠方側に撮像素子１０の光学系の焦点が変更されるようＡＦ機構１１の調整量を変化させ、デコード部１３に遠方側についてデコード結果を取得させてもよい。これにより、近方側から遠方側にかけて効率よくデコード結果を取得できるようになろう。
【００４０】
図３や図７を用いて説明したように、演算部２３、４１および表示部１５、６１は読み取り距離とデコード結果との対応関係を示すグラフを表示するグラフ表示手段として機能してもよい。これにより、読み取り距離とデコード結果との関係がどのような特性であるかをユーザが把握できるようになる。
【００４１】
図７を用いて説明したように、対応関係を示すグラフの一部を指定する指定手段として入力部６２やポインタ７１が機能してもよい。ＵＩ制御部４３や表示部６１は、ポインタ７１により指定された部分に対応した撮像素子１０からワークまでの距離を表示する距離表示手段として機能してもよい。これによりユーザはグラフにおいて所望のマッチングレベルに対応した読み取り距離を簡易な操作によって表示させることが可能となる。
【００４２】
デコード結果は、たとえば、２次元コード６についての読取成功率、読み取りやすさの指標である読取余裕度、または、２次元コード６を構成する１つのセルが撮像素子１０によって得られた画像データにおいていくつの画素に相当するかを示すＰＰＣであってもよい。ユーザによって必要となるデコード結果の指標はさまざまである。よって、ユーザによって必要となるデコード結果の指標を求めて、表示してもよい。
【００４３】
本実施例においては、撮像手段により取得された画像データの読取成功率から許容深度を計算しているのではない。画像データをデコードした結果であるデコード結果を基に、許容深度を求めている。図３に示した例では、取得した画像データ自体の輝度、コントラスト比などを縦軸にとっているのではなく、画像データをデコードしたマッチングレベルを縦軸にとっている。コードリーダでは、画像の鮮鋭さよりも画像をデコードした結果であるデコード結果がユーザにとって重要な指標である。そのため、デコード結果を基に読取距離と許容深度を算出している。仮に、画像データから読取距離や許容深度を算出すると、デコード結果が良くない距離であっても、許容深度内にあると演算される場合もある。画像データが鮮鋭な距離と、デコード結果が優れている距離とは、必ずしも一致しないためである。
【符号の説明】
【００４４】
１…ライン、２…ワーク、３…リーダ、４…コンピュータ、５…プログラマブルロジックコントローラ（ＰＬＣ）
【図１】
0006258809.tif 000002
【図２】
0006258809.tif 000003
【図３】
0006258809.tif 000004
【図４】
0006258809.tif 000005
【図５】
0006258809.tif 000006
【図６】
0006258809.tif 000007
【図７】
0006258809.tif 000008
【図８】
0006258809.tif 000009