(57)【特許請求の範囲】
【請求項１】
ラインを搬送されるワークに設けられているコードを撮像する撮像手段と、
前記撮像手段により取得された画像データをデコードするデコード手段と、
前記撮像手段の露光時間と、前記デコード手段でデコード可能な前記画像データにおける前記コードの最大許容ぶれ量とに基づき、前記コードをデコード可能な前記ワークの最大搬送速度を演算する演算手段と、
を有することを特徴とする光学的情報読取装置。
【請求項２】
前記演算手段は前記最大許容ぶれ量を前記露光時間で除算することで前記ワークの最大搬送速度を算出することを特徴とする請求項１に記載の光学的情報読取装置。
【請求項３】
前記演算手段は、前記ワークの搬送方向における前記撮像手段の視野範囲の長さから前記ワークの搬送方向における前記コードの長さを減算して差を求め、当該差を、前記視野範囲を前記コードが通過しているときに当該コードを撮像してデコードする回数と当該コードを撮像してデコードするのに要する処理時間とで除算することで搬送速度を算出する処理を、前記回数を１つずつ減少させながら繰り返し実行することで、前記最大搬送速度以下となる上限の搬送速度と、当該上限の搬送速度が得られたときの前記回数とを求めることを特徴とする請求項２に記載の光学的情報読取装置。
【請求項４】
前記演算手段は、前記ワークの搬送方向における前記撮像手段の視野範囲の長さから前記ワークの搬送方向における前記コードの長さを減算して差を求め、当該差を、前記最大搬送速度と当該コードを撮像してデコードするのに要する処理時間とで除算することで、前記視野範囲を前記コードが通過しているときに当該コードを撮像してデコード可能な回数を算出することを特徴とする請求項２に記載の光学的情報読取装置。
【請求項５】
ラインを搬送されるワークに設けられているコードを撮像する撮像手段と、
前記撮像手段により取得された画像データをデコードするデコード手段と、
前記撮像手段の露光時間と前記デコード手段でデコード可能な前記画像データにおける前記コードの最大許容ぶれ量とに基づき前記コードをデコード可能な前記ワークの最大搬送速度を演算し、さらに、前記ワークの搬送方向における前記撮像手段の視野範囲の長さから前記ワークの搬送方向における前記コードの長さを減算して差を求め、当該差を、前記視野範囲を前記コードが通過しているときに当該コードを撮像してデコードする回数と当該コードを撮像してデコードするのに要する処理時間とで除算することで、前記最大搬送速度以下となるような前記ワークの上限の搬送速度を演算する演算手段と
を有することを特徴とする光学的情報読取装置。
【請求項６】
前記演算手段は、前記ワークの搬送方向における前記撮像手段の画角と前記撮像手段から前記ワークまでの距離とに基づき、前記ワークの搬送方向における前記撮像手段の視野範囲の長さを算出することを特徴とする請求項３ないし５のいずれか１項に記載の光学的情報読取装置。
【請求項７】
前記撮像手段はオートフォーカス機能を有し、前記演算手段は、前記オートフォーカス機能からフォーカスの調整量を取得し、当該調整量を前記撮像手段から前記ワークまでの距離に換算することを特徴とする請求項６に記載の光学的情報読取装置。
【請求項８】
前記演算手段は、前記ワークの搬送方向における前記撮像手段の画素数で前記撮像手段の視野範囲の長さを除算して商を求め、前記画像データにおける前記ワークの搬送方向での前記コードの画素数を乗算することで、前記ワークの搬送方向における前記コードの長さを算出することを特徴とする請求項３ないし７のいずれか１項に記載の光学的情報読取装置。
【請求項９】
前記デコード手段のデコード結果に基づき前記撮像手段の露光時間とゲインを調整する調整手段をさらに有し、
前記演算手段は、前記調整手段によって前記露光時間が変更されると前記最大搬送速度を演算し直すことを特徴とする請求項１ないし４および６ないし８いずれか１項に記載の光学的情報読取装置。
【請求項１０】
前記ワークが前記撮像手段の視野範囲を通過する間に前記ワークを１回だけ撮像してデコードするときの最も大きな搬送速度である前記最大搬送速度を表示する第一表示手段をさらに有することを特徴とする請求項１ないし９のいずれか１項に記載の光学的情報読取装置。
【請求項１１】
前記ワークが前記撮像手段の視野範囲を通過する間に前記ワークを複数回にわたり撮像してデコードするときの前記上限の搬送速度を表示する第一表示手段をさらに有することを特徴とする請求項３または５に記載の光学的情報読取装置。
【請求項１２】
前記デコード可能な回数を表示する第二表示手段をさらに有することを特徴とする請求項４に記載の光学的情報読取装置。
【請求項１３】
前記撮像手段の撮像条件と前記デコード手段における画像処理条件とを含む読取条件を制御する読取条件制御手段をさらに有し、
前記演算手段は、前記読取条件制御手段によって前記読取条件が確定した後で、前記最大搬送速度を演算することを特徴とする請求項１ないし１２のいずれか１項に記載の光学的情報読取装置。
【請求項１４】
前記撮像手段のオートフォーカス機能における調整量を複数通りに変化させたときに、各調整量ごとに前記撮像手段により取得された各画像データについて前記デコード手段によるデコード結果を取得し、前記調整量を換算して得られる前記撮像手段から前記ワークまでの距離と当該デコード結果との対応関係を求め、当該対応関係に基づき前記コードをデコードする上で許容される前記撮像手段から前記ワークまでの距離である許容深度を算出する算出手段をさらに有し、
前記演算手段は、前記許容深度が確定した後で、前記最大搬送速度を演算することを特徴とする請求項１ないし１３のいずれか１項に記載の光学的情報読取装置。
【請求項１５】
ラインを搬送されるワークに設けられているコードを撮像する撮像手段と、
前記撮像手段により取得された画像データをデコードするデコード手段と、
前記撮像手段の露光時間と、前記デコード手段でデコード可能な前記画像データにおける前記コードの最大許容ぶれ量とに基づき、前記コードをデコード可能な前記ワークの最大搬送速度を演算する演算手段として、コンピュータを機能させるプログラム。
【請求項１６】
ラインを搬送されるワークに設けられているコードを撮像する撮像工程と、
前記撮像工程において取得された画像データをデコードするデコード工程と、
前記撮像工程における露光時間と、前記デコード工程でデコード可能な前記画像データにおける前記コードの最大許容ぶれ量とに基づき、前記コードをデコード可能な前記ワークの最大搬送速度を演算する演算工程と、
を有することを特徴とする光学的情報読取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報を光学的に読み取る光学的情報読取装置、光学的情報読取方法およびプログラムに関する。
【背景技術】
【０００２】
バーコードやＱＲコード（登録商標）などの２次元コードを読み取る２次元コードリーダ（以下、リーダと称す。）は広く普及している。このようなリーダの一例が特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−７６５１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
生産ラインを搬送されるワークの２次元コードを読み取るために、生産ラインにリーダが設置されることもある。この場合、搬送ベルトによってワークを搬送し、リーダのところで搬送ベルトを停止して読み取りを行う方法と、搬送ベルトでワークを搬送しながら読み取りを行う方法とがある。前者は露光時間を長くできるため、読み取り成功率が向上するが、単位時間当たりの読み取り個数は少なくなる。後者は単位時間当たりの読み取り個数を増加できる利点があるが、露光時間を長くできないため、読み取り成功率が低下する。ある程度の搬送速度までであれば２次元コードの読み取り画像の撮影ブレは小さい。そのため、リーダは２次元コードの読み取り結果に誤り訂正を行うことでデコードに成功するだろう。しかし、従来は、所望の読み取り成功率を達成可能な最速の搬送速度を求めるために、ユーザが搬送ベルトの搬送速度を徐々に上げながらワークの読み取りテストを実行しなければならなかった。そのため、搬送速度を決定するのに多大な時間を要していた。
【０００５】
そこで、本発明は、所望の読み取り成功率を達成可能なワークの搬送速度を求めるためのユーザの負担を軽減することを目的とする。
【課題を解決するための手段】
【０００６】
本発明によれば、たとえば、
ラインを搬送されるワークに設けられているコードを撮像する撮像手段と、
前記撮像手段により取得された画像データをデコードするデコード手段と、
前記撮像手段の露光時間と、前記デコード手段でデコード可能な前記画像データにおける前記コードの最大許容ぶれ量とに基づき、前記コードをデコード可能な前記ワークの最大搬送速度を演算する演算手段と
を有することを特徴とする光学的情報読取装置が提供される。
【０００７】
また本発明によれば、たとえば、
ラインを搬送されるワークに設けられているコードを撮像する撮像手段と、
前記撮像手段により取得された画像データをデコードするデコード手段と、
前記ワークの搬送方向における前記撮像手段の視野範囲の長さから前記ワークの搬送方向における前記コードの長さを減算して差を求め、当該差を、前記視野範囲を前記コードが通過しているときに当該コードを撮像してデコードする回数と当該コードを撮像してデコードするのに要する処理時間とで除算することで、前記ワークの上限搬送速度を演算する演算手段と
を有することを特徴とする光学的情報読取装置が提供される。
【発明の効果】
【０００８】
本発明によれば、読み取り成功率を達成可能なワークの搬送速度を求めるためのユーザの負担を軽減することができる。
【図面の簡単な説明】
【０００９】
【図１】光学的情報読取装置を示す図
【図２】ぶれ量の異なる２次元コードの一例を示す図
【図３】コードとリーダの視野範囲との関係を示す図
【図４】視野距離を求める方法を説明する図
【図５】コードサイズの算出方法を説明する図
【図６】読取条件がデコード結果に与える影響を示す図
【図７】読取条件がデコード結果に与える影響を示す図
【図８】チューニング方法を指定するためのユーザインタフェースを示す図
【図９】リーダの電子的な構成を示すブロック図
【図１０】コンピュータの電子的な構成を示すブロック図
【図１１】搬送速度と撮像回数を表示するユーザインタフェースを示す図
【図１２】搬送速度の決定方法を示すフローチャート
【図１３】許容深度を説明する図
【図１４】許容深度の決定方法を説明する図
【発明を実施するための形態】
【００１０】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１１】
図１はリーダシステム（光学的情報読取装置）の一例を示す図である。ライン１は検査対象物であるワーク２を搬送する搬送ベルトなどである。リーダ３は２次元コードを読み取ってデコードする２次元コードリーダである。なお、リーダ３自体も狭義の光学的情報読取装置である。プログラマブル・ロジック・コントローラ（ＰＬＣ５）はライン１やリーダ３を制御する制御装置である。コンピュータ４はリーダ３に対して動作条件などを設定したり、リーダ３からデコード結果などを取得して表示したりする情報処理装置である。
【００１２】
＜最大許容ぶれ量＞
図２はぶれ量の異なる２次元コードの一例を示している。コード２１ａはワーク２を静止させた状態で撮像して得られたコード画像である。コード２１ｂは所望の読み取り成功率を達成可能な最大搬送速度ｖｍａｘで搬送したときに撮像されたコード画像である。なお、搬送速度は移動速度と呼ばれてもよい。コード２１ｂは読み取りに失敗するほど高速でワーク２を搬送しながら撮像して得られたコード画像である。コード２１ｂのように多少のぶれが存在しても誤り訂正機能等によって正しくデコードは実行可能である。ここでは所望の読み取り成功率を達成可能なぶれ量を最大許容ぶれ量と呼ぶことにする。最大許容ぶれ量ｃは、たとえば、２次元コードを構成している最小の単位であるセル２２の個数で表現されてもよい。最大許容ぶれ量ｃは、予め工場出荷時に求められ、リーダ３のＲＯＭ等の記憶装置に記憶されているものとする。
【００１３】
１回の読み取り（ワーク２を１回撮像し、得られた画像をデコードすること）を行うときのワーク２の最大搬送速度ｖｍａｘは次式から算出可能である。
【００１４】
ｖｍａｘ  ＝  ｃ  ／  ｔ  ・・・（１）
ここでｔは露光時間である。露光時間ｔはリーダ３の設置環境によって変化する値である。最大許容ぶれ量ｃは既知であるため、露光時間ｔが設置環境に応じて決定されれば最大搬送速度ｖｍａｘが算出可能となる。
【００１５】
＜複数回読み取りにおける最大搬送速度（上限搬送速度）＞
ところで、２次元コードがリーダ３の撮影視野範囲を通過するときに複数回の読み取りを実行することも可能である。複数回の読み取りを実行することでより正確に２次元コードをデコードすることが可能だからである。
【００１６】
図３は２次元コードとリーダ３の視野範囲３０との関係を示す図である。ここでは横方向（水平方向）に２次元コード２１が付与されたワーク２が搬送されるものと仮定する。つまりワーク２の搬送方向と視野範囲３０の水平方向とが平行になっていると仮定している。図３が示すように水平方向における視野範囲３０の長さを視野距離ｈと呼び、水平方向における２次元コード２１の長さをコードサイズＣＳと呼ぶことにする。この場合、２次元コード２１の全体が欠けることなく、視野範囲３０に滞在する距離はｈ−ＣＳである。ここで、２次元コードが視野範囲３０に滞在している間に２次元コードを読み取り可能な回数ＲＣは次式により算出可能である。
【００１７】
ＲＣ  ＝  ＳＴ  ／  ＲＴ  ・・・（２）
ここで、ＲＴは１回の読み取りに係る処理時間（読み取り時間）であり、ＳＴはコードが視野範囲３０に滞在する時間（滞在時間）である。読み取り時間ＲＴはリーダ３に固有の値であり、既知である。また、滞在時間ＳＴは次式により算出可能である。
【００１８】
ＳＴ  ＝  （ｈ−ＣＳ）／ｖ  ・・・（３）
ここでｖはＲＣ回の読み取りを実行する際の上限搬送速度である。式（２）、（３）から上限搬送速度ｖは式（４）により算出可能である。
【００１９】
ｖ  ＝  （ｈ−ＣＳ）／（ＲＣ・ＲＴ）  ・・・（４）
ここで上限搬送速度ｖは上述した最大搬送速度ｖｍａｘ以下でなければならない。よって、最大読み取り回数ＲＣｍａｘは次式を満たすＲＣのうち最大の整数として算出される。
【００２０】
ｖｍａｘ  ＞＝  （ｈ−ＣＳ）／（ＲＣ・ＲＴ）  ・・・（５）
（５）式で求まったＲＣｍａｘを（４）式のＲＣに代入することで上限搬送速度ｖが算出される。なお、（４）式のｖにｖｍａｘを代入し、読み取り回数ＲＣを算出してもよい。
【００２１】
ＲＣ  ＝  （ｈ−ＣＳ）／（ｖｍａｘ・ＲＴ）  ・・・（５）’。
【００２２】
＜視野距離ｈとコードサイズＣＳの算出方法＞
上述した視野距離ｈとコードサイズＣＳはユーザによって手入力されてもよいが、リーダ３が算出すればユーザにとって便利であろう。
【００２３】
図４は視野距離ｈを求める方法を説明する図である。リーダ３からワーク２までの距離を設置距離ｄと呼ぶことにする。θはリーダ３の光学系の画角であり、既知である。設置距離ｄはユーザがスケールを使って測定して入力してもよいし、リーダ３が算出してもよい。レーザ測距装置がリーダ３に搭載されていれば、それによって設置距離ｄが測定されてもよい。また、オートフォーカス（ＡＦ）機構を備えたリーダ３ではワーク２の２次元コードに合焦した状態における合焦用レンズの位置（ＡＦ用モータのステップ数や回転量など）や屈折率（液体レンズへの印加電圧など）の調整量Δが設置距離ｄに換算されてもよい。これは予め調整量Δと設置距離ｄとの換算式または換算テーブルなどを用意しておくことで、容易に実現可能である。このようにして求められた設置距離ｄを式（６）に代入することで、視野距離ｈが演算される。
【００２４】
ｈ  ＝  ２ｄ・ｔａｎ（θ／２）  ・・・（６）
図５はコードサイズＣＳの算出方法を説明する図である。リーダ３が出力する横サイズと画像の縦サイズは、１２８０×７６８画素のごとく、既知である。また、読取画像において２次元コード２１が何画素で構成されているかは容易にカウントできる。さらに、視野距離ｈは読取画像３２の横サイズに対応している。よって、コードサイズＣＳは次式から算出可能である。
【００２５】
ＣＳ  ＝  （ｈ  ／  ＨＰ）×  ｎ  ・・・（７）
ここでｎは読取画像３２において２次元コード２１を構成している横方向の画素数である。
【００２６】
このように１回読み取り行うときの最大搬送速度ｖｍａｘや複数回読み取りを行うときの上限搬送速度ｖはリーダ３が求めることができるため、ユーザの負担を大幅に軽減できるであろう。
【００２７】
＜読取条件制御（チューニング）＞
リーダ３は２次元コードのデコードに成功するように各種の読み取り条件を調整する。ここでは、読み取り条件のうち、露光時間とゲインとの関係を説明する。ゲインとはデジタル画像処理によって画像の明るさを増幅する率（増幅率または倍率とも呼ばれる）のことである。
【００２８】
図６が示すように、露光時間が長くなると、２次元コードの読み取り画像は明るくなるものの、ぶれが発生するため、リーダ３はデコードには失敗してしまう。露光時間が適切であれば、２次元コードの読み取り画像の明るさも十分なまま、ぶれも発生しないため、リーダ３はデコードに成功する。露光時間が短くなると、２次元コードの読み取り画像にぶれは発生しないが、読み取り画像が暗くなるため、リーダ３はデコードには失敗してしまう。
【００２９】
図７が示すように露光時間を短めに設定し、かつ、ゲインを高めに設定すると、２次元コードの読み取り画像は明るくなり、ぶれも発生しないが、読取画像のノイズ成分も増幅されてしまうため、リーダ３はデコードには失敗してしまう。露光時間を長めに設定し、かつ、ゲインを低めに設定すると、２次元コードの読み取り画像は明るくなるが、画像にぶれが発生しやすくなり、リーダ３はデコードには失敗してしまう。
【００３０】
よって、露光時間とゲインとが適切に調整される必要がある。本実施形態ではワーク２を搬送したままリーダ３で２次元コードを読み取ることをターゲットにしている。そのため、露光時間については予めぶれが生じない程度の短い露光時間が指定され、固定されるものとする。その一方でゲインについては可変とし、リーダ３が適切なゲインを探索するものとする。
【００３１】
図８はワーク２が移動体である場合のチューニング方法を指定するためのユーザインタフェース（ＵＩ）の一例を示す図である。ＵＩ４０はたとえばコンピュータ４のディスプレイに表示される。ＵＩ４０にはワーク２が移動体である場合の明るさ調整方法の指定部４１と、ワーク２が移動体である場合の露光時間の指定部４２とが設けられている。ユーザが露光時間を指定することで、リーダ３はその露光時間に対応した適切なゲインを算出する。
【００３２】
＜制御ユニット＞
図９はリーダ３の電子的な構成を示すブロック図である。リーダ３のカメラ部（撮像手段）は、撮像素子３１、光学系５０、ＡＦ機構５１、照明部５２などを有している。撮像素子３１は光学系５０を通して結像した２次元コードの画像を電気的な信号に変換するＣＣＤやＣＭＯＳ等のイメージセンサである。ＡＦ機構５１は光学系５０のうち合焦用のレンズの位置や屈折率を調整する機構である。照明部５２は１つ以上の発光素子を有し、２次元コードを照明するユニットである。
【００３３】
デコード部５３は撮像素子３１によって取得された２次元コードの画像データ７２をデコードしてデコード結果７１を記憶部７０に書き込むユニットである。通信部５４はＰＬＣ５やコンピュータ４と通信するユニットである。通信部５４は、たとえば、ＰＬＣ５と通信するＩ／Ｏ部、ＲＳ２３２Ｃなどのシリアル通信部、無線ＬＡＮや有線ＬＡＮなどのネットワーク通信部などを備えていてもよい。
【００３４】
表示部５５は画像表示装置やインジケータ用の発光素子を備えている。表示部５５は、たとえば、２次元コードのデコード結果７１である文字列、読み取り成功率（複数回読み取り処理を実行したときの平均読み取り成功率）、マッチングレベル（読み取りのしやすさを示す読取余裕度）、ＰＰＣ（２次元コードを構成する１つのセルが画像データにおいていくつの画素に相当するかを示す値：ピクセル・パー・セル）などを表示してもよい。とりわけ、本実施形態の表示部５５は最大搬送速度ｖｍａｘ、上限搬送速度ｖ、ワーク２が視野範囲３０内に滞在する間に２次元コードを撮像してデコード可能な回数ＲＣを表示する表示手段として機能してもよい。なお、これらの情報はコンピュータ４などのディスプレイに表示されてもよい。入力部５６はスイッチなどの入力操作を受け付けるユニットである。
【００３５】
制御ユニット６０はリーダ３の各部を統括的に制御するユニットである。制御ユニット６０は様々な機能を搭載しているが、これらは論理回路により実現されてもよいし、ソフトウエアを実行することによって実現されてもよい。オートフォーカス制御部（ＡＦ制御部）６１はＡＦ機構５１を制御するユニットである。撮像制御部６２は、上述したゲインを調整したり、照明部５２の照明光の光量を制御したり、撮像素子３１の露光時間（シャッタースピード）を制御したりするユニットである。
【００３６】
演算部６３は様々な演算処理を実行する。たとえば、演算部６３はデコード結果や画像データなどを用いて、読み取り成功率やマッチングレベル、ＰＰＣを演算する。もちろんこれらの演算は、デコード部５３など、演算部６３以外のユニットで実行されてもよい。設定部６４は通信部５４のＩＰアドレスなどを設定するユニットである。演算部６３は最大搬送速度ｖｍａｘ、上限搬送速度ｖ、デコード可能な回数ＲＣを演算してもよい。また、これらの演算はコンピュータ４で実行されてもよい。
【００３７】
チューニング部６５は、読取条件制御手段であり、露光時間や照明光量、ゲインなどの撮像条件やデコード部５３における画像処理条件（フィルタの係数など）を制御するユニットである。ライン１を搬送されるワーク２に対する外光の影響などで適切な撮像条件や画像処理条件は変化する。よって、チューニング部６５は、より適切な読取条件を探索して、ＡＦ制御部６１や撮像制御部６２、デコード部５３を設定する。
【００３８】
ＵＩ管理部６６は、表示部５５に画像データを表示したり、入力部５６からのユーザ指示を受け付けたり、インジケータの点灯を制御したりするユニットである。たとえば、表示部５５は、最大搬送速度ｖｍａｘ、上限搬送速度ｖ、デコード可能な回数ＲＣの演算に必要な情報を入力するためのＵＩを表示部５５に表示させたり、最大搬送速度ｖｍａｘ、上限搬送速度ｖ、デコード可能な回数ＲＣを表示するためのＵＩを作成し、表示部５５に表示させたりする。
【００３９】
記憶部７０は、メモリなどの記憶装置であり、デコード部５３によって取得されたデコード結果７１、撮像素子３１によって取得された画像データ７２、コンピュータ４などの設定装置によってリーダ３に設定されたデータや設定部６４により設定されたデータである設定データ７３などを記憶する。
【００４０】
図１０はコンピュータ４の機能を示すブロック図である。リーダ３を小型化すると、リーダ３の表示部５５や入力部５６だけではリーダ３のすべての機能を設定することが難しくなる。そこで、一部の設定データ７３についてはコンピュータ４で作成してリーダ３に転送してもよい。ＣＰＵ８０は記憶部９０に記憶されているプログラムに基づきコンピュータ４が備えている各部を制御するユニットである。演算部８１の一機能であるＵＩ制御部８３はリーダ３の撮像条件などを設定するためのユーザインタフェースやリーダ３が出力するデコード結果７１、画像データ７２などを表示するためのユーザインタフェースを生成し、表示部８４に表示させる。たとえば、ＵＩ制御部８３は、図８に示したようなＵＩ４０を作成して表示部８４表示させてもよいし、図１１に示したようなＵＩ１１０を作成して表示部８４表示させてもよい。ＵＩ１１０はワーク２の搬送速度を表示する表示エリア１１１と、撮像回数の表示エリア１１２と、撮像回数の指定部１１３とを含んでいる。搬送速度は、たとえば、最大搬送速度ｖｍａｘおよび上限搬送速度ｖの少なくとも一方である。ＵＩ制御部８３は指定部１１３に対する指示に応じて、撮像回数を１回ずつ増加させたり、低下させたりする。演算部８１は様々な演算を実行するユニットである。リーダ３の演算部６３が実行する演算のすべてまたは一部は演算部８１が実行してもよい。通信部８６はリーダ３の通信部５４と有線または無線で接続し、デコード結果７１や画像データ７２を受信したり、設定部８２で生成された設定データ７３を送信したりする。記憶部９０は、メモリやハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）などである。
【００４１】
＜フローチャート＞
ここでは図１２を用いてリーダ３の制御ユニット６０が実行する各工程について説明する。なお、各工程はコンピュータ４のＣＰＵ８０がリーダ３を制御しつつ実行してもよい。予めリーダ３の光軸上に２次元コードを付与されたワーク２が置かれているものとする。以下の各ステップの順序は、全体の処理に支障を来さない限り、変更可能である。
【００４２】
Ｓ１２０１で演算部６３はチューニング部６５にチューニングの実行開始を指示する。チューニング部６５は撮像制御部６２を制御し、撮像素子３１からの映像信号に基づき適切な露光時間ｔを決定する。あるいは演算部６３が、図８に示したＵＩ４０を通じて指定された露光時間ｔを設定データ７３から取得することで、露光時間ｔを決定してもよい。
【００４３】
Ｓ１２０２で演算部６３はチューニング部６５に露光時間ｔに基づきゲインと読み取り時間ＲＴを決定させる。露光時間ｔに対する適切なゲインの値は関数またはテーブルとして用意されており、記憶部７０に記憶されているものとする。チューニング部６５は、撮像制御部６２により決定された露光時間ｔに対応するゲインを記憶部７０に記憶されている関数またはテーブルを用いて決定する。また、露光時間ｔに対する読み取り時間ＲＴは関数またはテーブルとして用意されており、記憶部７０に記憶されているものとする。チューニング部６５は、露光時間ｔに対応する読み取り時間ＲＴを記憶部７０に記憶されている関数またはテーブルを用いて決定する。
【００４４】
Ｓ１２０３で演算部６３はチューニング部６５を通じてＡＦ制御部６１にオートフォーカスを実行させ、ＡＦ制御部６１からＡＦ調整量Δを取得する。
【００４５】
Ｓ１２０４で演算部６３はチューニング部６５を通じて撮像制御部６２に２次元コードの撮像を実行させる。撮像素子３１によって取得された画像には、２次元コードの全体が欠けることなく写っているものとする。
【００４６】
Ｓ１２０５で演算部６３はＡＦ調整量Δに基づき設置距離ｄを決定する。上述したように、ＡＦ調整量Δを設置距離ｄに換算するための関数やテーブルは記憶部７０に記憶されているものとする。
【００４７】
Ｓ１２０６で演算部６３は設置距離ｄに基づき視野距離ｈを決定する。たとえば、上述した（６）式が記憶部７０に記憶されており、演算部６３は（６）式を用いて設置距離ｄに基づき視野距離ｈを算出する。
【００４８】
Ｓ１２０７で演算部６３は視野距離ｈに基づきコードサイズＣＳを決定する。演算部６３は上述した（７）式を用いてコードサイズＣＳを算出する。
【００４９】
Ｓ１２０８で演算部６３は１回読み取りについての最大搬送速度ｖｍａｘを決定する。上述したように、演算部６３は（１）式を用いて、露光時間ｔと最大許容ぶれ量ｃから最大搬送速度ｖｍａｘを算出する。
【００５０】
Ｓ１２０９で演算部６３は設定データ７３から、予め指定された読み取り回数ＲＣを取得する。読み取り回数ＲＣは、ＵＩ１１０を通じてユーザによって指定されて設定データ７３に書き込まれてもよいし、予め固定された値であってもよい。
【００５１】
Ｓ１２１０で演算部６３は上限搬送速度ｖを決定する。たとえば、（４）式を用いて説明したように、演算部６３は視野距離ｈ、コードサイズＣＳ、読み取り回数ＲＣおよび読み取り時間ＲＴに基づいて上限搬送速度ｖを算出する。
【００５２】
Ｓ１２１１で演算部６３は、算出した上限搬送速度ｖが最大搬送速度を超えているかどうかを判定する。上限搬送速度ｖが最大搬送速度ｖｍａｘを超えていなければＳ１２１２に進むが、上限搬送速度ｖが最大搬送速度ｖｍａｘを超えていればＳ１２１３に進む。つまり、ある読み取り回数ＲＣのときに上限搬送速度ｖが最大搬送速度ｖｍａｘを超えたとすると、その直前の読み取り回数ＲＣ＋１が上述した最大の整数であり、そのときの上限搬送速度ｖは最大搬送速度ｖｍａｘ以下となる上限の搬送速度となる。
【００５３】
Ｓ１２１２で演算部６３は読み取り回数ＲＣを１つ減算して、Ｓ１２１０に戻り、上限搬送速度ｖを再度算出する。このように、最大搬送速度ｖｍａｘ以下となる上限の搬送速度が見つかるまでＳ１２１０ないしＳ１２１２の処理が繰り返し実行される。
【００５４】
Ｓ１２１３で演算部６３は読み取り回数ＲＣ、最大搬送速度ｖｍａｘ、上限搬送速度ｖをＵＩ管理部６６に渡し、ＵＩ管理部６６は読み取り回数ＲＣ、最大搬送速度ｖｍａｘ、上限搬送速度ｖを表示するためのＵＩを作成し、表示部５５に表示させる。なお、１回読み取りを行うときはＳ１２０９ないしＳ１２１２を省略し、最大搬送速度ｖｍａｘだけが表示部５５に表示されてもよい。複数回読み取りを行うときはＳ１２０９ないしＳ１２１２を実行し、読取可能回数ＲＣと上限搬送速度ｖとが表示部５５に表示される。なお、読取可能回数ＲＣの表示は省略されてもよい。
【００５５】
＜まとめ＞
本実施形態によれば、演算部６３は、撮像素子３１の露光時間ｔと、デコード部５３でデコード可能な画像データにおけるコードの最大許容ぶれ量ｃとに基づき、コードをデコード可能なワークの最大搬送速度ｖｍａｘを演算する。よって、所定の読み取り成功率を達成可能なワークの搬送速度を求めるためのユーザの負担を軽減することができる。
【００５６】
（１）式を用いて説明したように、演算部６３は最大許容ぶれ量ｃを露光時間ｔで除算することでワークの最大搬送速度ｖｍａｘを算出してもよい。
【００５７】
演算部６３は、複数回読み取りを実行する際の上限搬送速度ｖを演算してもよい。（４）式を用いて説明したように、演算部６３は、ワーク２の搬送方向における撮像素子３１の視野範囲の長さ（視野距離ｈ）からワーク２の搬送方向におけるコードの長さ（コードサイズＣＳ）を減算して差を求める。演算部６３は、この差を、視野範囲をコードが通過しているときに当該コードを撮像してデコードする回数（読み取り回数ＲＣ）と当該コードを撮像してデコードするのに要する処理時間（読み取り時間ＲＴ）とで除算することで搬送速度ｖを算出する。これにより、所定の読み取り成功率を達成可能なワークの搬送速度を求めるためのユーザの負担を軽減することができる。なお、演算部６３は、この処理を、最大搬送速度ｖｍａｘ以下となる上限の搬送速度ｖが見つかるまで、読み取り回数ＲＣを１つずつ減少させながら繰り返し実行してもよい。これにより複数回読み取りを行う際の上限となる搬送速度についても容易に演算できるようになる。
【００５８】
（５）’式を用いて説明したように、演算部６３は、視野距離ｈからコードサイズＣＳを減算して差（ｈ−ＣＳ）を求め、当該差を、最大搬送速度ｖｍａｘと読み取り時間ＲＴとで除算することで、デコード可能な回数（読み取り回数ＲＣ）を算出してもよい。これにより、最大搬送速度ｖｍａｘでワーク２を搬送したときの読取可能な回数がわかるようになる。
【００５９】
演算部６３は、ワークの搬送方向における撮像素子３１の画角θと撮像素子３１からワーク２までの設置距離ｄとに基づき、ワークの搬送方向における撮像素子３１の視野範囲の長さ（視野距離ｈ）を算出してもよい。これによりユーザが視野距離ｈを算出する手間を省けるようになる。
【００６０】
演算部６３は、オートフォーカス機能（ＡＦ機構５１およびＡＦ制御部６１）からフォーカスの調整量Δを取得し、調整量Δを撮像素子３１からワークまでの設置距離ｄに換算してもよい。この場合は、ユーザが設置距離ｄを測定する手間を省ける。また、設置距離ｄを測定するための専用の測距装置を省略できるため、製造コストの面でも有利である。
【００６１】
演算部６３は、ワーク２の搬送方向における撮像素子３１の画素数ＨＰで視野距離ｈを除算して商を求め、画像データにおけるワーク２の搬送方向でのコードの画素数ｎを乗算することで、ワークの搬送方向におけるコードサイズＣＳを算出してもよい。これによりユーザがコードサイズＣＳを入力したり、計算したりする手間を省けるようになる。
【００６２】
チューニング部６５および撮像制御部６２は、デコード部５３のデコード結果に基づき撮像素子３１の露光時間ｔとゲインｇを調整する調整手段として機能してもよい。上述した実施形態では予め露光時間ｔを求めておくものとして説明したが、このようにデコード結果を利用して露光時間ｔとゲインｇを調整してもよい。これによりユーザが露光時間ｔを入力する手間を省けるようになる。また、チューニングの結果、露光時間ｔが変化したときは、最大搬送速度ｖｍａｘ等も変化する。そこで、演算部６３は、チューニング部６５および撮像制御部６２によって露光時間ｔが変更されると最大搬送速度ｖｍａｘを演算し直してもよい。
【００６３】
表示部５５、８４は、ワーク２が撮像素子３１の視野範囲を通過する間にワークを１回だけ撮像してデコードするときの上限の搬送速度である最大搬送速度ｖｍａｘを表示する第一表示手段として機能してもよい。同様に、表示部５５、８４は、ワーク２が撮像素子３１の視野範囲を通過する間にワークを複数回にわたり撮像してデコードするときの上限の搬送速度である上限搬送速度ｖを表示する第一表示手段として機能してもよい。さらに、表示部５５、８４はデコード可能な回数を表示する第二表示手段として機能してもよい。
【００６４】
チューニング部６５および撮像制御部６２は、撮像素子３１の撮像条件とデコード部５３における画像処理条件とを含む読取条件を制御する読取条件制御手段として機能してもよい。演算部６３は、チューニング部６５および撮像制御部６２によって読取条件が確定した後で、最大搬送速度を演算してもよい。このように読取条件が適切に決定された後で最大搬送速度を算出することで、リーダ３の設置環境に応じてより精度よく最大搬送速度を算出できるようになる。
【００６５】
演算部６３は、許容深度算出手段として機能してもよい。許容深度とは、ワーク２とリーダ３とがある設置距離ｄ（基準距離ＲＤ）となるように設置されているときに、所望のデコード結果（読み取り成功率またはマッチングレベル）を達成できる設置距離ｄの変化範囲のことである。
【００６６】
図１３が示すようにリーダ３とワーク２は設置距離ｄが基準距離ＲＤとなるように設置されている。基準距離ＲＤは任意の距離である。図１３で基準距離ＲＤはリーダ３の端部Ｐ０から２次元コード２１の位置（基準位置Ｐｒと称す）までの距離である。Ｐｎは２次元コード２１を近方側に移動しても所望のデコード結果を達成可能な位置である。Ｐｆは２次元コード２１を遠方側に移動しても所望のデコード結果を達成可能な位置である。よって、許容深度ＤＤは、ＰｎからＰｆまでの範囲である。リーダ３またはワーク２を手動で移動させながら許容深度ＤＤを求めるのは非常に面倒であろう。なぜなら、リーダ３は生産ラインに固定されているからである。
【００６７】
そこで、演算部６３は、撮像素子３１のオートフォーカス機能における調整量Δを複数通りに変化させたときに、各調整量ごとに撮像素子３１により取得された各画像データについてデコード部５３によるデコード結果としてマッチングレベルを取得する。マッチングレベルは当業界においてよく知られているように２次元コードのデコードのしやすさを示す指標である。
【００６８】
図１４に示すように、演算部６３は、調整量Δを換算して得られる設置距離ｄとデコード結果との対応関係を求める。ＵＭＬはユーザが所望したマッチングレベルである。設置距離ｄのうち、対応するマッチングレベルがＵＭＬ以上であれば、その設置距離ｄは許容深度の範囲内である。このように演算部６３は、設置距離ｄとデコード結果との対応関係に基づきコードをデコードする上で許容される撮像素子３１からワークまでの距離である許容深度ＤＤを算出する。図１４に示した例では、基準距離ＲＤは１７０ｍｍであり、許容深度ＤＤは１３０ｍｍ〜２２０ｍｍであり、近方側の余裕度Ｍｎは４０ｍｍであり、遠方側の余裕度Ｍｆは５０ｍｍである。
【００６９】
演算部６３は、許容深度ＤＤが確定した後で、最大搬送速度ｖｍａｘや上限搬送速度ｖを演算してもよい。許容深度ＤＤが確定したときにはリーダ３とワーク２との設置距離ｄが適切に調整されているため、チューニングも適切に実行され、搬送速度などの演算精度も向上するからである。
【符号の説明】
【００７０】
１…ライン、２…ワーク、３…照明装置、４…カメラ、５…画像処理装置、６…入力部、７…表示部
【図１】
0006358888.tif 000002
【図２】
0006358888.tif 000003
【図３】
0006358888.tif 000004
【図４】
0006358888.tif 000005
【図５】
0006358888.tif 000006
【図６】
0006358888.tif 000007
【図７】
0006358888.tif 000008
【図８】
0006358888.tif 000009
【図９】
0006358888.tif 000010
【図１０】
0006358888.tif 000011
【図１１】
0006358888.tif 000012
【図１２】
0006358888.tif 000013
【図１３】
0006358888.tif 000014
【図１４】
0006358888.tif 000015