(57)【要約】【課題】撮像された画像内に解像度の低いコードが含まれる場合であっても短時間でコードを読み取ることができるようにするとともに、コードの読取精度を高める。【解決手段】検出部により検出されたコードの大きさに関する情報と、予め記憶されている判定基準値とに基づいて、コードの大きさが拡大補間処理対象であるか否かを判定する。コードの大きさが拡大補間処理対象であると判定される場合には、撮像部により撮像された画像のうち、コードを含む部分画像の拡大補間処理を行う。【選択図】図１８
2018136854.tif 000002
【特許請求の範囲】
【請求項１】
ワークに付されたコードを撮像する撮像素子を有する撮像部と、
上記撮像部により撮像された画像に含まれるコードの大きさに関する情報を検出するための検出部と、
上記撮像部により撮像された画像に含まれるコードの大きさに関する情報に基づいて当該コードが拡大補間処理対象であるか否かを判定する基準となる大きさ判定基準値を記憶する判定基準値記憶部と、
上記検出部により検出されたコードの大きさに関する情報と、上記判定基準値記憶部に記憶された大きさ判定基準値とに基づいて、コードの大きさが拡大補間処理対象であるか否かを判定し、コードの大きさが拡大補間処理対象であると判定される場合には、上記撮像部により撮像された画像のうち、コードを含む部分画像の拡大補間処理を行う一方、コードの大きさが拡大補間処理対象ではないと判定される場合には、コードを含む部分画像の拡大補間処理を行わないように構成された拡大補間処理部と、
上記拡大補間処理部により拡大補間処理が行われた部分画像及び上記拡大補間処理部により拡大補間処理が行われていない部分画像のいずれかに含まれるコードをデコードするデコード部とを備えていることを特徴とする光学的情報読取装置。
【請求項２】
請求項１に記載の光学的情報読取装置において、
上記撮像部により撮像された画像には、拡大補間処理対象となるコードと、拡大補間処理対象とならないコードとを含むことを特徴とする光学的情報読取装置。
【請求項３】
請求項１または２に記載の光学的情報読取装置において、
上記拡大補間処理を行う部分画像は、コードを示すコード領域及び該コード領域の周辺領域を含む画像であることを特徴とする光学的情報読取装置。
【請求項４】
請求項１から３のいずれか１つに記載の光学的情報読取装置において、
上記コードは二次元コードであり、コードの大きさに関する情報は、二次元コードの予め定められた位置に配置され、該二次元コードの位置を検出する位置検出パターンのサイズであることを特徴とする光学的情報読取装置。
【請求項５】
請求項１から３のいずれか１つに記載の光学的情報読取装置において、
上記コードは二次元コードであり、コードの大きさに関する情報は、二次元コードのセルサイズまたは二次元コードの１つのセルを構成する画素サイズであることを特徴とする光学的情報読取装置。
【請求項６】
請求項１から５のいずれか１つに記載の光学的情報読取装置において、
上記拡大補間処理部により拡大補間処理が行われた部分画像のコードのボケを補正するための補正処理を実行するボケ補正部を備え、
上記デコード部は、上記ボケ補正部による補正処理が実行された後にデコードするように構成されていることを特徴とする光学的情報読取装置。
【請求項７】
請求項１から６のいずれか１つに記載の光学的情報読取装置において、
上記デコード部は、デコードに先立って、上記拡大補間処理部により拡大補間処理が行われた部分画像に基づいてコードのセル位置を推定するセル位置推定処理を行うように構成されていることを特徴とする光学的情報読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報を光学的に読み取る光学的情報読取装置に関する。
【背景技術】
【０００２】
近年、たとえば物品の流通経路を製造段階から消費段階あるいは廃棄段階まで追跡可能にする、いわゆるトレーサビリティが重要視されてきており、このトレーサビリティを目的としたコードリーダが普及してきている。また、トレーサビリティ以外にもコードリーダは様々な分野で利用されている。
【０００３】
一般的に、コードリーダは、ワークに付されたバーコードや二次元コード等のコードをカメラによって撮像し、得られた画像に含まれるコードを画像処理によって切り出して二値化し、デコード処理して情報を読み取ることができるように構成されており、情報を光学的に読み取る装置であることから光学的情報読取装置とも呼ばれている。
【０００４】
例えば、特許文献１に開示されている読取装置は、二次元コードを読み取る際に、使用者がシャッターボタンを押下すると画面上のファインダウインドウの中央部分に矩形の枠を表示し、この枠内に二次元コードが位置するように使用者がファインダウインドウを見ながら二次元コードを移動させると、この枠内の領域を自動的に拡大して表示するように構成されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−３２２５０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上述したように二次元コードを拡大することで読取精度を向上させることができると考えられるが、特許文献１ではファインダウインドウの枠内に二次元コードが表示されるように使用者が二次元コードを移動させなければならないので手間がかかるし、使い勝手が悪いという問題があった。また、例えば連続して搬送されてくるワークに付されたコードを読み取るような用途では使用が困難であった。
【０００７】
また、カメラと二次元コードとの相対距離が変わると、画面に表示されるコードの大きさが異なることになるので、カメラと二次元コードとの相対距離が変わる都度、拡大させる領域を指定し直さなければならず、このことも使い勝手が悪化する要因となる。
【０００８】
そこで、カメラで撮像した画像の全体を拡大補間して解像度を向上させる方法が考えられるが、拡大する領域が大きくなるので処理に時間がかかり、その結果、コードの読取時間が長時間化することになる。
【０００９】
本発明は、かかる点に鑑みてなされたものであり、その目的とするところは、撮像された画像内に解像度の低いコードが含まれる場合であっても短時間でコードを読み取ることができるようにするとともに、コードの読取精度を高めることにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明では、ワークに付されたコードを撮像する撮像素子を有する撮像部と、上記撮像部により撮像された画像に含まれるコードの大きさに関する情報を検出するための検出部と、上記撮像部により撮像された画像に含まれるコードの大きさに関する情報に基づいて当該コードが拡大補間処理対象であるか否かを判定する基準となる大きさ判定基準値を記憶する判定基準値記憶部と、上記検出部により検出されたコードの大きさに関する情報と、上記判定基準値記憶部に記憶された大きさ判定基準値とに基づいて、コードの大きさが拡大補間処理対象であるか否かを判定し、コードの大きさが拡大補間処理対象であると判定される場合には、上記撮像部により撮像された画像のうち、コードを含む部分画像の拡大補間処理を行う一方、コードの大きさが拡大補間処理対象ではないと判定される場合には、コードを含む部分画像の拡大補間処理を行わないように構成された拡大補間処理部と、上記拡大補間処理部により拡大補間処理が行われた部分画像及び上記拡大補間処理部により拡大補間処理が行われていない部分画像のいずれかに含まれるコードをデコードするデコード部とを備えている構成とすることができる。
【００１１】
この構成によれば、撮像部により撮像された画像に含まれるコードの大きさに関する情報を検出部によって検出できる。コードの大きさに関する情報とは、例えば、コードの各部の寸法や、コードが二次元コードである場合にはセルサイズ、位置検出用パターン（ファインダパターン、アライメントパターン）のサイズ等であり、これらのうち、任意の１つまたは複数を検出部が検出することによってコードの大きさを得ることができる。
【００１２】
そして、拡大補間処理部は、検出部により検出されたコードの大きさに関する情報と、基準値記憶部に記憶された大きさ判定基準値とに基づいて、コードの大きさが拡大補間処理対象であるか否かを判定することができる。コードの大きさが拡大補間処理対象であると判定される場合には、撮像部により撮像された画像のうち、コードを含む部分画像の拡大補間処理を行うので、全画像を拡大補間する場合に比べて処理時間が短時間で済む。拡大補間処理後の部分画像に含まれるコードをデコード部がデコードすることができるので、コードの読取精度を高めることができる。一方、コードの大きさが拡大補間処理対象ではない場合には、コードを含む部分画像の拡大補間処理を行わないので、無用な処理が行われることはない。
【００１３】
また、上記撮像部により撮像された画像には、拡大補間処理対象となるコードと、拡大補間処理対象とならないコードとを含んでいてもよい。
【００１４】
また、上記拡大補間処理を行う部分画像は、コードを示すコード領域及び該コード領域の周辺領域を含む画像とすることができる。
【００１５】
また、上記コードは二次元コードであり、コードの大きさに関する情報は、二次元コードの予め定められた位置に配置され、該二次元コードの位置を検出する位置検出パターンのサイズとすることができる。
【００１６】
また、上記コードは二次元コードであり、コードの大きさに関する情報は、二次元コードのセルサイズまたは二次元コードの１つのセルを構成する画素サイズとすることができる。
【００１７】
また、上記拡大補間処理部により拡大補間処理が行われた部分画像のコードのボケを補正するための補正処理を実行するボケ補正部を備え、上記デコード部は、上記ボケ補正部による補正処理が実行された後にデコードするように構成することができる。
【００１８】
また、上記デコード部は、デコードに先立って、上記拡大補間処理部により拡大補間処理が行われた部分画像に基づいてコードのセル位置を推定するセル位置推定処理を行うように構成することができる。
【発明の効果】
【００１９】
本発明によれば、撮像された画像内に解像度の低いコードが含まれる場合であっても短時間でコードを読み取ることができるとともに、コードの読取精度を高めることができる。
【図面の簡単な説明】
【００２０】
【図１】光学的情報読取装置の運用時を説明する図である。
【図２】光学的情報読取装置の斜視図である。
【図３】光学的情報読取装置を照明部側から見た図である。
【図４】光学的情報読取装置の側面図である。
【図５】光学的情報読取装置を表示部側から見た図である。
【図６】偏光フィルタアタッチメントを本体から取り外した状態を示す斜視図である。
【図７】リフレクタの斜視図である。
【図８】リフレクタの正面図である。
【図９】透光パネルの斜視図である。
【図１０】透光パネルの正面図である。
【図１１】光学的情報読取装置のブロック図である。
【図１２】コンピュータのブロック図である。
【図１３】パラメータセット記憶部の記憶内容を表示するためのユーザーインターフェースである。
【図１４】モニタ時におけるチューニング用インターフェースである。
【図１５】ピント合わせが完了した状態のチューニング用インターフェースである。
【図１６】明るさ調整中のチューニング用インターフェースである。
【図１７】マッチングレベルを表示したチューニング用インターフェースである。
【図１８】運用時における制御内容を示すフローチャートである。
【図１９】撮像された画像から拡大補間処理を実行するまでの流れを模式的に示す図である。
【図２０】第１コードのアライメントパターンを示す図である。
【図２１】拡大補間処理の判定フローチャートである。
【図２２】運用時における制御内容を示すフローチャートであり、拡大補間処理にＬａｎｃｚｏｓ法を使用した場合を示す。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態を図面に基づいて詳細に説明する。尚、以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものではない。
【００２２】
図１は、本発明の実施形態に係る光学的情報読取装置１の運用時を模式的に示す図である。この例では、複数のワークＷが搬送用ベルトコンベアＢの上面に載置された状態で図１における矢印Ｙの方向へ搬送されており、そのワークＷから上方へ離れた所に、実施形態に係る光学的情報読取装置１が設置されている。光学的情報読取装置１は、ワークＷに付されているコードを撮像し、撮像された画像に含まれるコードをデコード処理して情報を読み取ることができるように構成されたコードリーダである。光学的情報読取装置１は、その運用時に動かないようにブラケット等（図示せず）に固定して使用してもよいし、ロボット（図示せず）や使用者等が把持して動かしながら運用してもよい。また、静止状態にあるワークＷのコードを光学的情報読取装置１によって読み取るようにしてもよい。運用時とは、搬送用ベルトコンベアＢによって搬送されるワークＷのコードを順に読み取る動作を行っている時である。
【００２３】
また、各ワークＷの上面にはコードが付されている。コードには、バーコード及び二次元コードの両方が含まれる。二次元コードとしては、たとえば、ＱＲコード（登録商標）、マイクロＱＲコード、データマトリクス（Ｄａｔａ  ｍａｔｒｉｘ；Ｄａｔａ  ｃｏｄｅ）、ベリコード（Ｖｅｒｉ  ｃｏｄｅ）、アズテックコード（Ａｚｔｅｃ  ｃｏｄｅ）、ＰＤＦ４１７、マキシコード（Ｍａｘｉ  ｃｏｄｅ）などがある。二次元コードにはスタック型とマトリクス型があるが、本発明はいずれの二次元コードに対しても適用できる。コードは、ワークＷに直接印刷あるいは刻印することによって付してもよいし、ラベルに印刷した後にワークＷに貼付することによって付してもよく、その手段、方法は問わない。
【００２４】
光学的情報読取装置１は、コンピュータ１００及びプログラマブル・ロジック・コントローラ（ＰＬＣ）１０１にそれぞれ信号線１００ａ、１０１ａによって有線接続されているが、これに限らず、光学的情報読取装置１、コンピュータ１００及びＰＬＣ１０１に通信モジュールを内蔵し、光学的情報読取装置１と、コンピュータ１００及びＰＬＣ１０１とを無線接続するようにしてもよい。ＰＬＣ１０１は、搬送用ベルトコンベアＢ及び光学的情報読取装置１をシーケンス制御するための制御装置であり、汎用のＰＬＣを利用することができる。コンピュータ１００は、汎用あるいは専用の電子計算機や携帯型端末等を利用することができる。
【００２５】
また、光学的情報読取装置１は、その運用時において、ＰＬＣ１０１から信号線１０１ａを介して、コード読取の開始タイミングを規定する読取開始トリガ信号を受信する。そして、光学的情報読取装置１は、この読取開始トリガ信号に基づいてコードの撮像やデコードを行う。その後、デコードした結果は、信号線１０１ａを介してＰＬＣ１０１へ送信される。このように、光学的情報読取装置１の運用時には、光学的情報読取装置１とＰＬＣ１０１等の外部制御装置との間で、信号線１０１ａを介して読取開始トリガ信号の入力とデコード結果の出力が繰り返し行われる。なお、読取開始トリガ信号の入力やデコード結果の出力は、上述したように、光学的情報読取装置１とＰＬＣ１０１との間の信号線１０１ａを介して行ってもよいし、それ以外の図示しない信号線を介して行ってもよい。例えば、ワークの到着を検知するためのセンサと光学的情報読取装置１とを直接的に接続し、そのセンサから光学的情報読取装置１へ読取開始トリガ信号を入力するようにしてもよい。
【００２６】
［光学的情報読取装置１の全体構成］
図２〜図６に示すように、光学的情報読取装置１は、装置本体２と、偏光フィルタアタッチメント３とを備えている。偏光フィルタアタッチメント３は省略してもよい。装置本体２には、照明部４と、撮像部５と、表示部６と、電源コネクタ７と、信号線コネクタ８とが設けられている。さらに、装置本体２には、図５に示すインジケータ９と、図３に示すエイマー１０と、図５に示すセレクトボタン１１と、エンターボタン１２とが設けられている。
【００２７】
この実施形態の説明では、図２〜図６に示すように光学的情報読取装置１の前面、後面、上面、下面、左面、右面を定義するが、これは説明の便宜を図るためだけであり、光学的情報読取装置１の使用時における向きを限定するものではない。すなわち、図１に示すように、光学的情報読取装置１の前面が下に向くように設置して使用することや、光学的情報読取装置１の前面が上に向くように設置して使用すること、あるいは光学的情報読取装置１の前面が傾斜した状態となるように設置して使用すること等が可能である。また、光学的情報読取装置１の左右方向は幅方向と呼ぶこともできる。
【００２８】
装置本体２は、上下方向に長い略矩形箱状をなすケーシング２ａを備えている。ケーシング２ａの内部には、図１１に示す制御ユニット２９やデコード部３１等が設けられている。図２及び図６に示すように、ケーシング２ａの前面に偏光フィルタアタッチメント３が着脱可能に取り付けられている。また、ケーシング２ａの前面には、光学的情報読取装置１の前方へ向けて光を照射することによってワークＷの少なくともコードを照明する照明部４と、光学的情報読取装置１の前方にあるワークＷの少なくともコードを撮像する撮像部５とが設けられている。さらに、ケーシング２ａの前面には、発光ダイオード（ＬＥＤ）等の発光体で構成されたエイマー１０が設けられている。このエイマー１０は、光学的情報読取装置１の前方へ向けて光を照射することによって撮像部５による撮像範囲や照明部４の光軸の目安を示すためのものである。使用者は、エイマー１０から照射される光を参照して光学的情報読取装置１を設置することもできる。
【００２９】
ケーシング２ａの上面には表示部６が設けられている。また、ケーシング２ａの上面には、光学的情報読取装置１の設定時等に使用するセレクトボタン１１及びエンターボタン１２とが設けられている。セレクトボタン１１及びエンターボタン１２は制御ユニット２９に接続されていて、制御ユニット２９はセレクトボタン１１及びエンターボタン１２の操作状態を検出可能になっている。セレクトボタン１１は、表示部６に表示された複数の選択肢の中から１つを選択する際に操作するボタンである。エンターボタン１２は、セレクトボタン１１で選択した結果を確定する際に操作するボタンである。
【００３０】
さらに、ケーシング２ａの上面の左右両側には、それぞれインジケータ９が設けられている。インジケータ９は、制御ユニット２９に接続されていて、たとえば発光ダイオード等の発光体で構成することができる。光学的情報読取装置１の作動状態をインジケータ９の点灯状態によって外部に報知することができる。
【００３１】
ケーシング２ａの下面には、光学的情報読取装置１に電力を供給するための電力配線が接続される電源コネクタ７と、コンピュータ１００及びＰＬＣ１０１に接続される信号線１００ａ、１０１ａ用のＥｔｈｅｒｎｅｔコネクタ８とが設けられている。尚、Ｅｔｈｅｒｎｅｔ規格は一例であり、Ｅｔｈｅｒｎｅｔ規格以外の規格の信号線を利用することもできる。
【００３２】
［照明部４の構成］
照明部４は、図７及び図８に示すリフレクタ１５と、図３等に示す複数の第１発光ダイオード１６及び複数の第２発光ダイオード１７とを備えている。第１発光ダイオード１６と第２発光ダイオード１７とは、制御ユニット２９に電気的に接続されていて制御ユニット２９により個別に制御され、別々に点灯及び消灯させることができるようになっている。
【００３３】
図７及び図８に示すように、リフレクタ１５は、光学的情報読取装置１の前面の上部から下部に亘って延びる板状をなしている。第１発光ダイオード１６及び第２発光ダイオード１７はそれぞれ７つ設けられているが、第１発光ダイオード１６及び第２発光ダイオード１７の数はこれに限られるものではない。第１発光ダイオード１６及び第２発光ダイオード１７はリフレクタ１５の後側に配置されて前方へ光を照射するように光軸が設定されている。リフレクタ１５の上下方向中間部には、撮像部５を外部に臨ませるための撮像用開口部１５ａが形成されている。リフレクタ１５における撮像用開口部１５ａの左右両側には、それぞれエイマー１０の光を通すためのエイマー用開口部１５ｂが形成されている。
【００３４】
リフレクタ１５における撮像用開口部１５ａよりも下側部分には、第１発光ダイオード１６の光を通すとともに前方へ集光して照射するための第１孔１５ｃが第１発光ダイオード１６の数と同じだけ、即ち７つ形成されている。これら第１孔１５ｃは同じ形状とされており、前側へ向かって次第に拡径するコーン形状をなしている。第１孔１５ｃの内面は、光の反射率を高めるために金メッキ等のメッキ処理が施されている。
【００３５】
７つの第１孔１５ｃのうち、４つの第１孔１５ｃは、光学的情報読取装置１の左右方向（幅方向）に並ぶように配置されている。残りの３つの第１孔１５ｃは、その中心が上記４つの第１孔１５ｃの中心よりも下に位置するように、かつ、上記４つの第１孔１５ｃのうち、隣合う第１孔１５ｃ、１５ｃの中心間にそれぞれ位置するように配置されている。これにより、７つの第１孔１５ｃを密に配置することができる。第１発光ダイオード１６は、各第１孔１５ｃの中心に配置される。
【００３６】
リフレクタ１５における撮像用開口部１５ａよりも上側部分には、第２発光ダイオード１７の光を通すとともに前方へ集光して照射するための第２孔１５ｄが第２発光ダイオード１７の数と同じだけ、即ち７つ形成されている。これら第２孔１５ｄは第１孔１５ｃと同じ形状とされており、第２孔１５ｄの内面には第１孔１５ｃと同様なメッキ処理が施されている。
【００３７】
７つの第２孔１５ｄのうち、４つの第２孔１５ｄは、光学的情報読取装置１の左右方向（幅方向）に並ぶように配置されている。残りの３つの第２孔１５ｄは、その中心が上記４つの第２孔１５ｄの中心よりも上に位置するように、かつ、上記４つの第２孔１５ｄのうち、隣合う第２孔１５ｄ、１５ｄの中心間にそれぞれ位置するように配置されている。これにより、７つの第２孔１５ｄを密に配置することができる。第２発光ダイオード１７は、各第２孔１５ｄの中心に配置される。
【００３８】
照明部４は撮像部５と別体に構成されていてもよい。この場合、照明部４と撮像部５とを有線または無線接続することができる。また、後述する制御ユニット２９は、照明部４に内蔵されていてもよいし、撮像部５に内蔵されていてもよい。
【００３９】
［偏光フィルタアタッチメント３の構成］
図６に示すように、偏光フィルタアタッチメント３は、枠部材２０と、透光パネル２１とを備えている。枠部材２０は、光学的情報読取装置１の前面の外形状に略一致する外形状を有している。この枠部材２０の内部に、透光パネル２１が設けられている。透光パネル２１は、照明部４の第１発光ダイオード１６及び第２発光ダイオード１７を前方から覆うとともに、撮像部５も前方から覆うように形成されている。図９及び図１０に示すように、透光パネル２１における第１発光ダイオード１６を覆う部分、即ち下側部分２１ａは第１発光ダイオード１６の光を出射する部分であり、この下側部分２１ａは、無色透明で偏光フィルタを有していない部分である。一方、透光パネル２１における第２発光ダイオード１７を覆う部分、即ち上側部分２１ｂは第２発光ダイオード１７の光を出射する部分であり、この上側部分２１ｂは、偏光フィルタが設けられた部分である。さらに、透光パネル２１における下側部分２１ａと上側部分２１ｂとの間の中間部分２１ｃは撮像部５を覆う部分であり、撮像部５に入射する光が透過する部分である。中間部分２１ｃも偏光フィルタが設けられた部分である。上側部分２１ｂの偏光フィルタの偏光方向と、中間部分２１ｃの偏光フィルタの偏光方向とは、たとえば９０度異なっている。図９及び図１０では、偏光フィルタが設けられている部分を薄く着色して示している。図２、図３及び図６では偏光フィルタが設けられている部分を無着色としているが、実際には図９や図１０と同様に薄く着色される。
【００４０】
つまり、第１発光ダイオード１６から照射された光は偏光フィルタを通過せずにワークＷに達する一方、第２発光ダイオード１７から照射された光は偏光フィルタを通過してワークＷに達する。そして、ワークＷからの反射光は偏光フィルタを通過して撮像部５に入射することになる。
【００４１】
従って、使用者が偏光フィルタアタッチメント３を取り外さなくても、光学的情報読取装置１が第１発光ダイオード１６と第２発光ダイオード１７のどちらを点灯させるかを電気的に切り替えることで、様々なワークＷに容易に対応することができる。具体的には、偏光フィルタが無い方がより有利なワークＷ（たとえば鋳物等）については第１発光ダイオード１６を点灯させて第２発光ダイオード１７を消灯させる。一方、偏光フィルタが有る方がより有利なワークＷ（たとえばプリント基板やフライス加工面、黒色樹脂等に二次元コードが付されている場合）については第１発光ダイオード１６を消灯させて第２発光ダイオード１７を点灯させる。
【００４２】
［撮像部５の構成］
図１１は光学的情報読取装置１の構成を示すブロック図である。図１１に示すように、撮像部５は、ワークＷに付されていて上記照明部４によって照明されているコードを撮像する撮像素子５ａと、レンズ等を有する光学系５ｂと、オートフォーカス機構（ＡＦ機構）５ｃとを備えている。光学系５ｂには、ワークＷのコードが付された部分から反射した光が入射するようになっている。撮像素子５ａは、光学系５ｂを通して得られたコードの画像を電気信号に変換するＣＣＤ(charge-coupled device)やＣＭＯＳ（complementary metal oxide semiconductor）等の受光素子からなるイメージセンサである。撮像素子５ａは制御ユニット２９に接続されていて、撮像素子５ａによって変換された電気信号は、制御ユニット２９に入力される。また、ＡＦ機構５ｃは、光学系５ｂを構成するレンズのうち、合焦用レンズの位置や屈折率を変更することによってピント合わせを行う機構である。ＡＦ機構５ｃも制御ユニット２９に接続され、制御ユニット２９のＡＦ制御部２９ａにより制御される。
【００４３】
［表示部６の構成］
表示部６は、たとえば有機ＥＬディスプレイや液晶ディスプレイ等からなるものである。表示部６は、制御ユニット２９に接続され、たとえば撮像部５で撮像されたコード、コードのデコード結果である文字列、読み取り成功率、マッチングレベル等を表示させることができる。読み取り成功率とは、複数回読み取り処理を実行したときの平均読み取り成功率である。マッチングレベルとは、デコードが成功したコードの読み取りのしやすさを示す読取余裕度である。これはデコード時に発生した誤り訂正の数等から求めることができ、たとえば数値で表すことができる。誤り訂正が少なければ少ないほどマッチングレベル（読取余裕度）が高くなり、一方、誤り訂正が多ければ多いほどマッチングレベル（読取余裕度）が低くなる。
【００４４】
［検出部３０の構成］
光学的情報読取装置１は検出部３０を備えている。検出部３０は、制御ユニット２９に接続されている。検出部３０は、撮像素子５ａにより撮像された画像に含まれるコードの大きさに関する情報を検出するための部分である。検出部３０は、撮像素子５ａにより撮像された画像に含まれるコードの当該画像上における位置を検出することができるように構成してもよい。
【００４５】
コードの大きさに関する情報は、例えば、二次元コードの場合、二次元コードの予め定められた位置に配置され、該二次元コードの位置を検出する位置検出パターンのサイズとすることができる。位置検出パターンとは、ファインダパターン、アライメントパターンとも呼ぶことができる。たとえば、データマトリクスの場合は、当該コードの下辺と一方の側辺とを繋いだＬ字に近いアライメントパターンをコードの大きさに関する情報として利用することができる。この場合、アライメントパターンの一辺の長さを検出部３０が検出することで、二次元コードの大きさを推定して得ることができる。
【００４６】
また、ＱＲコードの場合は、正方形の枠内に黒色の小さな正方形が配置されたファインダパターンや、コード内に配置されている同様な形状のアライメントパターン等をコードの大きさに関する情報として利用することができる。この場合、ファインダパターンの大きさやアライメントパターンの大きさを検出部３０が検出することで、二次元コードの大きさを推定して得ることができる。ファインダパターンの大きさやアライメントパターンの大きさは、これらパターンの外寸（幅、高さ等）、対角線寸法、当該パターンが表示されている面積等に基づいて得ることができる。また、ＱＲコードの場合は、ファインダパターンが複数あるので、ファインダパターンの間隔をコードの大きさに関する情報として利用することができる。
【００４７】
また、コードの大きさに関する情報は、たとえば、二次元コードのセルサイズとすることができる。セルは、二次元コードを構成する最小の白色正方形（白セル）や黒色正方形（黒セル）である。コードの大きさに関する情報を得る際には、白セルを用いてもよいし、黒セルを用いてもよい。この場合、セルの一辺の長さや対角線寸法、セルが表示されている面積を検出部３０が検出することで、セルの大きさを推定し、このセルの大きさに基づいて二次元コードの大きさを推定して得ることができる。
【００４８】
また、コードの大きさに関する情報は、二次元コードの１つのセルを構成する画像データ上の画素のサイズ（大きさ）であってもよい。すなわち、１つのセルは、縦及び横に並ぶ複数の画素で構成されており、１つのセルを構成する画素のサイズを検出することで、セルの大きさを推定することが可能になり、このセルの大きさに基づいて二次元コードの大きさを推定して得ることができる。
【００４９】
また、コードの大きさに関する情報は、たとえば、二次元コードの外寸（幅、高さ等）、対角線寸法、二次元コードが表示されている面積等であってもよい。これにより、コードの大きさを直接的に推定して得ることができる。
【００５０】
また、コードの位置については、撮像素子５ａにより撮像された画像内においてコードのたとえば中心部を推定し、その中心部のＸ座標とＹ座標を求めることで、画像内におけるコードの位置を特定することができる。
【００５１】
［デコード部３１の構成］
光学的情報読取装置１は、白黒の二値化されたデータをデコードするデコード部３１を有している。デコードには、符号化されたデータの対照関係を示すテーブルを使用することができる。さらに、デコード部３１は、デコードした結果が正しいか否かを所定のチェック方式に従ってチェックする。データに誤りが発見された場合にはエラー訂正機能を使用して正しいデータを演算する。エラー訂正機能はコードの種類によって異なる。
【００５２】
デコード部３１は、後述する拡大補間処理部２９ｄにより拡大補間処理が行われた部分画像に含まれるコードをデコードするとともに、拡大補間処理が行われなかった画像に含まれるコードもデコードするように構成されている。つまり、デコード部３１は、拡大補間処理部２９ｄにより拡大補間処理を行ったら、拡大補間処理後の部分画像に含まれるコードをデコードし、拡大補間処理部２９ｄにより拡大補間処理を行わなかったら、拡大補間処理が行われていない部分画像に含まれるコードをデコードする。デコード部３１は、コードをデコードして得られたデコード結果を記憶装置３５に書き込む。また、デコード部３１では、デコード前の画像に対して各種画像処理フィルタ等の画像処理を行う。
【００５３】
［通信部３２の構成］
光学的情報読取装置１は通信部３２を有している。通信部３２は、コンピュータ１００及びＰＬＣ１０１と通信を行う部分である。通信部３２は、コンピュータ１００及びＰＬＣ１０１と接続されるＩ／Ｏ部、ＲＳ２３２Ｃ等のシリアル通信部、無線ＬＡＮや有線ＬＡＮ等のネットワーク通信部を有していてもよい。
【００５４】
［制御ユニット２９の構成］
図１１に示す制御ユニット２９は、光学的情報読取装置１の各部を制御するためのユニットであり、ＣＰＵやＭＰＵ、システムＬＳＩ、ＤＳＰや専用ハードウエア等で構成することができる。制御ユニット２９は、後述するように様々な機能を搭載しているが、これらは論理回路によって実現されていてもよいし、ソフトウエアを実行することによって実現されていてもよい。
【００５５】
制御ユニット２９は、ＡＦ制御部２９ａと、撮像制御部２９ｂと、チューニング部２９ｃと、拡大補間処理部２９ｄと、ＵＩ管理部２９ｅと、ボケ補正部２９ｆとを有している。ＡＦ制御部２９ａは、ＡＦ機構５ｃを制御するユニットであり、従来から周知のコントラストＡＦや位相差ＡＦによって光学系５ｂのピント合わせを行うことができるように構成されている。
【００５６】
撮像制御部２９ｂは、ゲインを調整したり、照明部４の光量を制御したり、撮像素子５ａの露光時間（シャッタースピード）を制御するユニットである。ここで、ゲインとは、撮像素子５ａから出力された画像の明るさをデジタル画像処理によって増幅する際の増幅率（倍率とも呼ばれる）のことである。照明部４の光量については、第１発光ダイオード１６と第２発光ダイオード１７を別々に制御して変更することができる。ゲイン、照明部４の光量及び露光時間は、撮像部５の撮像条件である。
【００５７】
チューニング部２９ｃは、ゲイン、照明部４の光量及び露光時間等の撮像条件や、デコード部３１における画像処理条件を変更するユニットである。デコード部３１における画像処理条件とは、画像処理フィルタの係数（フィルタの強弱）や、複数の画像処理フィルタがある場合に画像処理フィルタの切替、種類の異なる画像処理フィルタの組み合わせ等である。搬送時のワークＷに対する外光の影響や、コードが付されている面の色及び材質等によって適切な撮像条件及び画像処理条件は異なる。よって、チューニング部２９ｃは、より適切な撮像条件及び画像処理条件を探索して、ＡＦ制御部２９ａ、撮像制御部２９ｂ、デコード部３１による処理を設定する。画像処理フィルタは、従来から周知の各種フィルタを使用することができる。
【００５８】
拡大補間処理部２９ｄは、検出部３０により検出されたコードの大きさに関する情報と、コードの大きさを判定するための大きさ判定基準値とに基づいて、コードの大きさが拡大補間処理対象であるか否かを判定し、コードの大きさが拡大補間処理対象であると判定される場合には、撮像部５により撮像された画像のうち、コードを含む部分画像の拡大補間処理を行う一方、コードの大きさが拡大補間処理対象ではないと判定される場合には、拡大補間処理を行わないように構成されている。大きさ判定基準値は、記憶装置３５に設けられている判定基準値記憶部３５ｄに予め記憶されている。また、拡大補間処理は、画像を構成する画素を補間して解像度を向上させる画像拡大処理であり、たとえば、バイリニア法、バイキュービック法、Ｌａｎｃｚｏｓ法等を挙げることができる。この拡大補間処理を適切に行うことで、撮像部５により撮像された画像に含まれている小さなコードの解像度を向上させて読み取ることが可能になる。
【００５９】
拡大補間処理部２９ｄによる処理手順については後述するフローチャートに基づいて詳細に説明するが、概略は次のとおりである。まず、拡大補間処理部２９ｄは、検出部３０が検出したコードの大きさに関する情報に基づいてコードの大きさを推定して得る。コードの大きさを得る手法は上述したとおりであり、たとえば二次元コードの位置検出パターン、ファインダパターン等の寸法や、セル寸法、コード寸法等に基づいてコードの大きさを推定して得る。このようにして得られたコードの大きさと、大きさ判定基準値とを比較して、コードの大きさが大きさ判定基準値以上の場合には、拡大補間処理を行わなくてもデコードできる解像度であると推定できるので、拡大補間処理対象ではないと判定して拡大補間処理を行わない。一方、得られたコードの大きさと、大きさ判定基準値とを比較して、コードの大きさが大きさ判定基準値を下回る場合には、そのままの解像度ではデコードに失敗する可能性が高いので、拡大補間処理を行う。
【００６０】
図１１に示すＵＩ管理部２９ｅは、表示部６に、各種インターフェース、撮像部５で撮像されたコード、コードのデコード結果である文字列、読み取り成功率、マッチングレベル等を表示させたり、セレクトボタン１１及びエンターボタン１２からの入力を受け付けたり、インジケータ９の点灯を制御するユニットである。
【００６１】
ボケ補正部２９ｆは、拡大補間処理部２９ｄにより拡大補間処理が行われた部分画像のコードのボケを補正するための補正処理を実行する部分である。ボケ補正部２９ｆによる処理は、従来からピントボケを補正するために用いられている画像処理であってもよいし、専用のアルゴリズムに基づいた処理によって実質的にボケを補正する手法であってもよい。画像処理の場合は、たとえばローパスフィルタ（ＬＰＦ）をかけることによる処理（フィルタ処理）を挙げることができる。また、アルゴリズムに基づいた処理としては、たとえば、デコード時に画像の２値化を行う際の前処理として複数画素の平均化処理を行うときに、画像がボケていないときは、平均化処理する画素の数を多くとる一方、画像がボケているときは、平均化処理する画素の数を敢えて減らすようにする処理を挙げることができる。これにより、ボケ情報が混ざるのを防ぎ、実質的にボケを補正することができる。補正を補正するための補正処理は複数通りを組み合わせて実行してもよい。
【００６２】
ボケ補正は、拡大補間処理としてＬａｎｃｚｏｓ法を使用した場合に有効である。Ｌａｎｃｚｏｓ法を使用すると、拡大後の画像がピントボケに類似した画像になるからである。
【００６３】
［記憶装置３５の構成］
記憶装置３５は、メモリやハードディスク等で構成されている。記憶装置３５には、デコード結果記憶部３５ａと、画像データ記憶部３５ｂと、パラメータセット記憶部３５ｃと、判定基準値記憶部３５ｄとが設けられている。デコード結果記憶部３５ａは、デコード部３１によりデコードされた結果であるデコード結果を記憶する部分である。画像データ記憶部３５ｂは、撮像素子５ａによって撮像された画像を記憶する部分である。
【００６４】
判定基準値記憶部３５ｄは、撮像素子５ａにより撮像された画像に含まれるコードの大きさに関する情報に基づいて当該コードが拡大補間処理対象であるか否かを判定する基準となる大きさ判定基準値を記憶する部分である。たとえばコードがデータマトリクスの場合であれば、アライメントパターンの一辺の長さが短くなればなるほど、撮像された画像におけるコードの大きさが小さくなるのでデコード部３１によるデコードが困難になっていく。そこで、デコード部３１によるデコードを高精度に行うことが可能なアライメントパターンの一辺の長さの下限値を予め実験等によって得ておき、この長さを大きさ判定基準値として判定基準値記憶部３５ｄに記憶することができる。したがって、アライメントパターンの一辺の長さが大きさ判定基準値以上であればデコード部３１によるデコードを高精度に行うことが可能になり、一方、アライメントパターンの一辺の長さが大きさ判定基準値未満であればデコード部３１によるデコードを高精度に行うことが困難になる。
【００６５】
このような考え方に基づいて各種コード用の大きさ判定基準値を得ておき、判定基準値記憶部３５ｄに記憶することができる。たとえば、ＱＲコードの場合には、ファインダパターンやアライメントパターン等の大きさ（外寸や表示されている面積等）が小さくなればなるほど、撮像された画像におけるコードの大きさが小さくなり、デコード部３１によるデコードが困難になっていくので、デコード部３１によるデコードを高精度に行うことが可能なファインダパターンやアライメントパターン等の大きさの下限値を予め実験等によって得ておき、この大きさを大きさ判定基準値として判定基準値記憶部３５ｄに記憶することができる。
【００６６】
また、セルサイズや画素サイズについても同様であり、セルサイズや画素サイズが小さくなればなるほど、撮像された画像におけるコードの大きさが小さくなり、デコード部３１によるデコードが困難になっていくので、デコード部３１によるデコードを高精度に行うことが可能なセルサイズや画素サイズの下限値を予め実験等によって得ておき、この大きさを大きさ判定基準値として判定基準値記憶部３５ｄに記憶することができる。
【００６７】
また、二次元コードの外寸（幅、高さ等）、対角線寸法、二次元コードが表示されている面積等についても同様にして大きさ判定基準値を求めて判定基準値記憶部３５ｄに記憶することができる。
【００６８】
図１１に示すパラメータセット記憶部３５ｃは、コンピュータ１００等の設定装置によって設定された設定情報やセレクトボタン１１及びエンターボタン１２によって設定された設定情報等を記憶する部分である。このパラメータセット記憶部３５ｃには、撮像部５の撮像条件（ゲイン、照明部４の光量及び露光時間等）と、デコード部３１における画像処理条件（画像処理フィルタの種類等）との少なくとも一方を構成する複数のパラメータを含むパラメータセットを記憶することができる。この実施形態では、図１３に示すパラメータセット表示フォーマット４６の中に、バンク１〜５として表示するように、撮像部５の撮像条件を構成するパラメータ及びデコード部３１における画像処理条件を構成するパラメータがセットになったパラメータセットを複数通り記憶することができるように構成されている。バンク１〜５には異なるパラメータセットを記憶させることができ、たとえばワークＷが異なる場合等に対応することができる。バンクの数は任意に設定することができる。
【００６９】
この光学的情報読取装置１では、パラメータセット記憶部３５ｃに記憶されている複数のパラメータセットのうち、一のパラメータセットから他のパラメータセットに切り替えることができるように構成されている。パラメータセットの切替は、使用者が行うこともできるし、ＰＬＣ１０１で行うように構成することもできる。パラメータセットの切替を使用者が行う場合には、図１３に示すユーザーインターフェースに組み込まれているパラメータセット切替部４６ｂを操作すればよい。パラメータセット切替部４６ｂを「有効」にすることで、そのバンクのパラメータセットが光学的情報読取装置１の運用時に使用され、また、パラメータセット切替部４６ｂを「無効」にすることで、そのバンクのパラメータセットが光学的情報読取装置１の運用時に使用されないようになる。つまり、パラメータセット切替部４６ｂは、一のパラメータセットから他のパラメータセットに切り替えるためのものである。尚、パラメータセット切替部４６ｂの形態は図示した形態に限られるものではなく、たとえばボタン等、各種の形態を使用することができる。
【００７０】
ここで、図１３に示すパラメータセット４６について、補足説明する。図１３では、「共通」パラメータとして、「オルタネート」（複数登録したパラメータセットを自動的に切り換えながら撮像・デコードを試行する機能）や「バンク内リトライ回数」（オルタネートするまでに行う撮像・デコードの回数）などが含まれている。「コード」パラメータとしては、「コード詳細設定」（読取を行うコード種別）や「桁限定出力機能」（読取データの出力桁を限定する機能）などが含まれている。「照明」パラメータとしては、「内部照明の使用」（光学的情報読取装置１に内蔵されている照明の使用有無）、「外部照明の使用」（光学的情報読取装置１に外付けされている照明の使用有無）及び「偏光フィルタ」（後述する偏光モードを有効にするか否か）が含まれている。「撮像」パラメータとしては、「露光時間」（撮像時の露光時間μｓ）、「ゲイン」（撮像時のゲイン）及び「コントラスト調整方式」（上述した「ＨＤＲ」、「超ＨＤＲ」、「標準特性」及び「コントラスト強調特性」のいずれか）が含まれている。さらに、「画像処理フィルタ」パラメータとして、「１番目画像処理フィルタ」（１番目に実行する画像フィルタの種別）や「１番目画像処理フィルタ回数」（１番目の画像フィルタを実行する回数）などが含まれている。
【００７１】
図１３では、バンク１〜５において、上述した「コントラスト調整方式」は、それぞれ「ＨＤＲ」「コントラスト強調」「標準」「超ＨＤＲ」「ＨＤＲ」に設定されている。また、上述した「オルタネート」は、バンク１およびバンク２のみが「有効」となっている。したがって、光学的情報読取装置１は、まず、バンク１の設定内容であるコントラスト調整方式「ＨＤＲ」を用いて、デコードを試みる。デコードに失敗した場合には、バンク１の設定内容からバンク２の設定内容に切り換えて、バンク２の設定内容であるコントラスト調整方式「コントラスト強調」を用いて、デコードを試みる。要するに、複数登録したパラメータセットを自動的に切り換えながらデコードを試みることで、自動的にコントラスト調整方式を切り替えながらデコードを試みることができ、ひいては読取精度を高めることができる。
【００７２】
なお、上述した「オルタネート」の順序は、種々の方法が考えられる。例えば、上述したように、１番から順番にバンクを切り換えてデコードを試行してもよい。その他にも、例えば、読み取り成功したバンクを優先するようにしてもよい。具体的には、読取に成功したバンクについては、次の読取時に優先的に設定されるようにしてもよい。これにより、例えばロット単位で印字状態が変わる場合に、読取タクトを短縮することができる。
【００７３】
［コンピュータ１００の構成］
コンピュータ１００は、図１２にブロック図で示すように、ＣＰＵ４０と、記憶装置４１と、表示部４２と、入力部４３と、通信部４４とを備えている。光学的情報読取装置１を小型化することで、光学的情報読取装置１の表示部６やボタン１１、１２等だけでは、光学的情報読取装置１の全ての設定を行うことが困難になるので、光学的情報読取装置１とは別にコンピュータ１００を用意し、コンピュータ１００で光学的情報読取装置１の各種設定を行って設定情報を光学的情報読取装置１に転送するようにしてもよい。
【００７４】
また、コンピュータ１００と光学的情報読取装置１とを双方向通信可能に接続して、上述した光学的情報読取装置１の処理の一部をコンピュータ１００で行うようにしてもよい。この場合、コンピュータ１００の一部が光学的情報読取装置１の構成要素の一部になる。
【００７５】
ＣＰＵ４０は、記憶装置４１に記憶されているプログラムに基づいてコンピュータ１００が備えている各部を制御するユニットである。記憶装置４１は、メモリやハードディスク等で構成されている。表示部４２は、たとえば液晶ディスプレイ等で構成されている。入力部４３は、キーボードやマウス、タッチセンサ等で構成されている。通信部４４は、光学的情報読取装置１と通信を行う部分である。通信部４４は、光学的情報読取装置１と接続されるＩ／Ｏ部、ＲＳ２３２Ｃ等のシリアル通信部、無線ＬＡＮや有線ＬＡＮ等のネットワーク通信部を有していてもよい。
【００７６】
ＣＰＵ４０は、様々な演算を行う演算部４０ａを備えている。演算部４０ａには、ＵＩ制御部４０ｂと設定部４０ｃとが設けられている。ＵＩ制御部４０ｂは、光学的情報読取装置１の撮像部５の撮像条件やデコード部３１における画像処理条件等を設定するためのユーザーインターフェースや、光学的情報読取装置１から出力されたデコード結果、画像データ等を表示するためのユーザーインターフェースを生成し、表示部４２に表示させる。表示部４２は、光学的情報読取装置１の一部を構成するものとすることができる。設定部４０ｃは、撮像部５の撮像条件及びデコード部３１における画像処理条件を設定する。なお、ＵＩ制御部４０ｂ及び設定部４０ｃは、光学的情報読取装置１に設けられていてもよい。また、ＵＩ制御部４０ｂ又は設定部４０ｃは、処理部２９ｄの機能（バンクの設定など）の全部又は一部を担っていてもよい。
【００７７】
記憶装置４１は、デコード結果記憶部４１ａと、画像データ記憶部４１ｂと、パラメータセット記憶部４１ｃと、判定基準値記憶部４１ｄとが設けられている。これら記憶部４１ａ〜４１ｄは、光学的情報読取装置１のデコード結果記憶部３５ａと、画像データ記憶部３５ｂと、パラメータセット記憶部３５ｃと、判定基準値記憶部３５ｄと同様な情報を記憶する部分である。
【００７８】
［設定時に実行される工程］
次に、上記のように構成された光学的情報読取装置１を運用する前に、運用準備段階として行われる光学的情報読取装置１の設定について説明する。この設定の際に上記チューニング部２９ｃによるチューニング工程が行われる。以下に述べる工程は、光学的情報読取装置１の制御ユニット２９が実行してもよいし、コンピュータ１００のＣＰＵ４０が光学的情報読取装置１の各部を制御しながら実行してもよい。この実施形態では、光学的情報読取装置１の制御ユニット２９にチューニング部２９ｃが設けられているので、まず、制御ユニット２９がチューニング工程を実行し、そのチューニング工程が完了した後、光学的情報読取装置１の運用に移る。
【００７９】
チューニング工程では、コンピュータ１００のＵＩ制御部４０ｂが、図１４に示すようなユーザーインターフェース４５をコンピュータ１００の表示部４２に表示させる。図１４に示すユーザーインターフェース４５は、チューニング用インターフェースである。チューニング用インターフェース４５には、モニタボタン４５ａ、オートフォーカスボタン４５ｂ、チューニングボタン４５ｃ及び画像表示領域４５ｄが組み込まれている。
【００８０】
使用者がコンピュータ１００の入力部４３を操作してモニタボタン４５ａをクリックすると、光学的情報読取装置１の撮像部５によって現在撮像されている画像が画像表示領域４５ｄに表示され、この画像表示領域４５ｄに表示される画像はほぼリアルタイムで更新される。使用者は、チューニング用インターフェース４５の画像を見ながら、ワークＷのコードＣが画像表示領域４５ｄに表示されるようにワークＷを移動させる。
【００８１】
その後、使用者がチューニング用インターフェース４５のオートフォーカスボタン４５ｂをクリックすると、撮像部５のＡＦ機構５ｃをＡＦ制御部２９ａによって制御して図１５に示すようにコードＣにピントを合わせる。これにより、コードＣが画像表示領域４５ｄ内にあることを確認できる。
【００８２】
使用者がチューニング用インターフェース４５のチューニングボタン４５ｃをクリックすると、チューニング工程が実行される。チューニング工程は、光学的情報読取装置１のセレクトボタン１１及びエンターボタン１２の操作によって実行することもできる。チューニング工程では、まず、チューニング部２９ｃがコード探索を実行する。たとえば、チューニング部２９ｃは撮像制御部２９ｂに撮像を実行させて画像データを取得させ、画像データに基づきデコード部３１に二次元コードの探索を実行させる。撮像制御部２９ｂは、その時点で有効となっている読取条件（撮像素子５ａについての撮像条件、照明部４の照明条件、デコード部３１の画像処理条件など）をパラメータセット記憶部３５ｃから読み出し、照明部４、撮像素子５ａ、デコード部３１などの各部を設定する。デコード部３１は撮像素子５ａによって取得されて画像データ記憶部３５ｂに記憶されている画像データから二次元コードを探索し、探索結果をチューニング部２９ｃに出力する。照明条件には、偏光モードを有効にするのか、無偏光モードを有効にするのかを示す情報が含まれている。偏光モードは、第１発光ダイオード１６を消灯させて第２発光ダイオード１７を点灯させるモードであり、無偏光モードは、第１発光ダイオード１６を点灯させて第２発光ダイオード１７を消灯させるモードである。
【００８３】
そして、チューニング部２９ｃは照明部４の明るさについて粗調整を実行する。本実施形態では、照明部４の明るさについて粗調整を実行し、偏光モードと無偏光モードのうち読み取り結果の優れた方を選択し、選択した照明モードについて明るさの微調整を実行するものとする。明るさを調整しているときには、図１６に示すようなチューニング用インターフェース４５が表示される。
【００８４】
その後、チューニング部２９ｃはその時点で照明部４に設定されている照明モードとは異なる照明モードに切り替える。つまり、チューニング部２９ｃは照明部４に偏光モードが設定されていれば無偏光モードに切り替え、無偏光モードが設定されていれば偏光モードに切り替える。
【００８５】
しかる後、チューニング部２９ｃは二次元コードの読み取りテストを実行する。たとえば、チューニング部２９ｃは撮像制御部２９ｂに撮像を実行させて画像データを取得させ、デコード部３１に二次元コードの探索を実行させる。ここでは、その時点で有効となっている読取条件のうち、照明モードだけが変更される。デコード部３１は撮像素子５ａによって取得されて画像データ記憶部３５ｂに記憶されている画像データについて二次元コードを探索し、探索結果をチューニング部２９ｃに出力する。
【００８６】
チューニング部２９ｃはデコード部３１の探索結果に基づき、読み取りテストに成功したかどうかを判定する。読取条件を変えながら読み取りテストを複数回実行したときは、１回でも読み取りに成功したかどうかを判定する。
【００８７】
読み取りに成功したら、チューニング部２９ｃは各照明モードについて全部でＮ個（例：２５６個）の明るさレベルがあると仮定したとき、そのＮ個のうちのｎ個（例：２７個）の明るさレベルのそれぞれについて読み取りテストを実行する。これにより、偏光モードについて２７個の明るさレベルそれぞれについての読み取り結果が得られ、無偏光モードについて２７個の明るさレベルそれぞれについての読み取り結果が得られる。なお、偏光モードと無偏光モードではチューニングの対象となる明るさレベルが異なってもよい。
【００８８】
偏光フィルタを透過することにより、偏光モードの明るさは無偏光モードの明るさの約半分になる。そこで、偏光モードの明るさレベルについてはＮ個のうちＮ／２レベル以上を割り当て、無偏光モードの明るさレベルについてはＮ個のうちＮ／２レベル未満を割り当ててもよい。これにより、Ｎ個のレベルのすべてを網羅的に探索する場合と比較して、読み取りテストの時間を半分に短縮できる。もちろん、時間短縮の要求がなければ、各照明モードにおいてＮ個のレベルのすべてを網羅的に探索してもよい。
【００８９】
そして、チューニング部２９ｃは複数の照明モードのうちよりデコード結果が良好な照明モードを決定する。たとえば、チューニング部２９ｃは各照明モードにおける読み取りテストの成功数を比較し、より多く成功した照明モードを決定する。たとえば、偏光モードでは２７個の読み取りテストに成功し、無偏光モードでは１０個の読み取りテストに成功した場合、偏光モードが選択される。なお、偏光モードの成功数と無偏光モードの成功数が同一であるか、または両者の差に有意な差が認められない場合、チューニング部２９ｃは無偏光モードを選択してもよい。これは同じ明るさを実現する場合、無偏光モードの方が消費電力や熱に関して有利だからである。ただし、外乱光などが発生しやすい環境では、偏光モードの方が外乱光の一部を偏向フィルタでカットできるため、読み取り成功率が高まる。よって、このよう場合は偏光モードを優先的に採用してもよい。ここでは、読み取りテストの成功数を比較したが、チューニング部２９ｃは読み取り成功率を比較してもよいし、読み取りのしやすさを示すマッチングレベルを算出して比較してもよい。
【００９０】
尚、マッチングレベルは、たとえば、図１７に示すようにチューニング用インターフェース４５の中に組み込まれたマッチングレベル表示領域４５ｅに表示させることができる。マッチングレベル表示領域４５ｅには、グラフ形式でマッチングレベルが表示される。横軸は明るさを示している。縦軸は、特定の明るさにおけるマッチングレベルを示している。マッチングレベルは、たとえば０〜１００の値で示すことができ、数値が大きくなるほどマッチングレベルが高くなる。
【００９１】
また、チューニング部２９ｃは明るさの粗調整結果を決定する。たとえば、明るさレベルを０から２５５まで変更できると仮定する。そのうちｎ個の明るさレベルについて読み取りテストを実行する。そして、チューニング部２９ｃは読み取りに成功したｍ個の明るさレベルの中心となる明るさ（例：平均値）を算出する。このようにして明るさの粗調整が実行される。
【００９２】
ところで、他方の照明モードでは読み取りテストに１回も成功しなかった場合、チューニング部２９ｃは、他方の照明モードで読取条件の探索処理を省略または中止して、元の照明モードを選択し、チューニング部２９ｃは元の照明モードについてｎ個（例：２７個）の明るさレベルそれぞれについて読み取りテストを実行する。これにより、元の照明モードである偏光モードまたは無偏光モードについて２７個の明るさそれぞれについての読み取り結果が得られる。その後、チューニング部２９ｃは読み取りに成功したｍ個のレベルの中心となる明るさレベル（例：平均値）を算出する。
【００９３】
明るさの粗調整が終了すると、明るさの微調整を実行する。チューニング部２９ｃは粗調整により決定された明るさレベルの周囲で明るさを変動させ、最も読み取り成功率またはマッチングレベルが高くなる明るさレベルを探索して決定する。
【００９４】
その後、チューニング部２９ｃは再度読み取りテストを実行する。チューニング部２９ｃは読み取値成功率または成功回数が閾値を超えているかどうかを判定する。読み取値成功率または成功回数が閾値を超えていれば、チューニング部２９ｃはチューニング処理を終了する。一方で、読み取値成功率または成功回数が閾値を超えていなければ、再度チューニング部２９ｃは明るさ以外の読取条件（例：露光時間、ゲイン、画像処理フィルタの係数など）を変更して読み取値成功率または成功回数が閾値を超えているか否かを判定する。
【００９５】
露光時間、ゲイン、画像処理フィルタの係数など、即ち、撮像部５の撮像条件を構成するパラメータ及びデコード部３１における画像処理条件を構成するパラメータなどは、図１３に示すユーザーインターフェースにたとえばバンク１として表示させることができ、このパラメータセットはパラメータセット記憶部３５ｃに記憶する。
【００９６】
［運用時に実行される工程］
以上のようにして光学的情報読取装置１の設定が完了して光学的情報読取装置１の運用準備が終わると、光学的情報読取装置１を運用することができる。光学的情報読取装置１の運用時には、基本的に図１８に示すフローチャートに従って制御が行われる。
【００９７】
図１８のフローチャートにおけるステップＳＡ１では、制御ユニット２９が撮像部５にワークＷを撮像させる。このときに得られた画像Ａを図１９に模式的に示す。画像Ａ内に表示されている最も大きな長方形は撮像されたワークＷの外形を示している。ワークＷの表面には、コードではない第１マークＭ１及び第２マークＭ２が付されている。第１マークＭ１及び第２マークＭ２は正方形に近い形状であり、第１マークＭ１は第２マークＭ２よりも小さく付されている。
【００９８】
ワークＷの表面には、第１コードＣ１及び第２コードＣ２も付されている。この例では第１コードＣ１及び第２コードＣ２がデータマトリクスである場合を示す。データマトリクスは、当該コードの下辺と一方の側辺とを繋いだＬ字に近いアライメントパターンを有しており、第１コードＣ１の場合、図２０に太線で示すようなアライメントパターンＡＰ１を有している。第２コードＣ２の場合も同様にアライメントパターンＡＰ２（図１９に示す）を有している。
【００９９】
図１８のフローチャートにおけるステップＳＡ１で画像を取得した後、ステップＳＡ２に進み、コード領域候補を抽出する。コード領域候補とは、ステップＳＡ１で取得された画像内において読取対象となるコード（Ｃ１、Ｃ２）が存在していると推定される領域のことである。図１９に基づいて模式的に説明すると、この例では、読取対象となる第１コードＣ１及び第２コードＣ２がデータマトリクスであるため、ステップＳＡ２では、アライメントパターン及びアライメントパターンに類似した略Ｌ字状の部分を、ステップＳＡ１で取得された画像内において探索する。
【０１００】
図１９における右上の図に示すように、第１マークＭ１及び第２マークＭ２が正方形であるため、アライメントパターンに類似した形状Ｅ１（太線で示す）が、第１マークＭ１の周縁部において２つ存在し、アライメントパターンに類似した形状Ｅ２（太線で示す）が、第２マークＭ２の周縁部においても２つ存在することになる。よって、ステップＳＡ２の段階では、第１マークＭ１及び第２マークＭ２が存在している領域もコード領域候補として抽出することになる。その他、ワークＷの外形状もコード領域候補として抽出される場合がある。
【０１０１】
また、図１９における右上の図に示すように、ステップＳＡ１で取得された画像内では、第１コードＣ１及び第２コードＣ２のアライメントパターンＡＰ１、ＡＰ２が存在しているので、第１コードＣ１及び第２コードＣ２が存在している領域をコード領域候補として抽出することになる。探索されたアライメントパターンＡＰ１、ＡＰ２を太線で示している。
【０１０２】
その後、図１８のフローチャートにおけるステップＳＡ３に進み、未デコードの領域を選択する。未デコードの領域とは、ステップＳＡ３でコード領域候補として抽出した中で、後述するステップＳＡ６のデコード処理が実行されてない領域のことである。最初のフローでは、全てのコード領域候補に対してデコード処理が実行されていないので、そのままステップＳＡ４に進むことになる。また、コード領域候補が複数抽出された場合には、ステップＳＡ３においてデコード処理を行う順番を決定する。デコード処理を行う順番を決定する際には、コード領域候補のコントラストが小さい順にデコード処理を行うようにしてもよいし、コード領域候補のコントラストが大きい順にデコード処理を行うようにしてもよい。また、コード領域候補におけるアライメントパターン（またはアライメントパターンの類似形状）の大きい順にデコード処理を行うようにしてもよいし、コード領域候補におけるアライメントパターン（またはアライメントパターンの類似形状）の小さい順にデコード処理を行うよい。
【０１０３】
ステップＳＡ４では、ステップＳＡ２で抽出されたコード領域を拡大補間する必要があるか否かを判定する。具体的には、まず、検出部３０が、コード領域候補にあるアライメントパターンＡＰ１、ＡＰ２や、アライメントパターンの類似形状Ｅ１、Ｅ２を、コードの大きさに関する情報として認識し、その情報に基づいて、上述したようにコードの大きさを推定して得る。ここでは、第１マークＭ１及び第２マークＭ２がアライメントパターンの類似形状Ｅ１、Ｅ２を有していることから、第１マークＭ１及び第２マークＭ２もコードであると仮定して大きさを推定して得る。また、ステップＳＡ４では、判定基準値記憶部３５ｄに予め記憶された大きさ判定基準値を得ておく。そして、検出部３０により検出されたコードの大きさに関する情報と、大きさ判定基準値とに基づいて、コードの大きさが拡大補間処理対象であるか否かを判定する。
【０１０４】
拡大補間処理対象であるか否かの判定フローチャートを図２１に示す。ステップＳＢ１では、コード領域候補にあるアライメントパターンＡＰ１、ＡＰ２や、アライメントパターンの類似形状Ｅ１、Ｅ２の位置を特定する。これは検出部３０で行われる。続くステップＳＢ２では、コード領域候補にあるアライメントパターンＡＰ１、ＡＰ２や、アライメントパターンの類似形状Ｅ１、Ｅ２の一辺の長さ（ｘ）を計測する。長さ（ｘ）はピクセル（画素）数で表示することもできる。
【０１０５】
そして、ステップＳＢ３では、長さ（ｘ）が大きさ判定基準値よりも短いか否かを判定する。長さ（ｘ）が大きさ判定基準値よりも短い場合にはステップＳＢ４、即ち、図１８に示すフローチャートのステップＳＡ５に進む。一方、長さ（ｘ）が大きさ判定基準値以上の場合にはステップＳＢ５、即ち、図１８に示すフローチャートのステップＳＡ６に進む。
【０１０６】
図１９における右上の図に基づいて説明すると、第１コードＣ１は第２コードＣ２よりも大きくアライメントパターンＡＰ１の一辺が十分に長いので拡大補間処理を行わなくてもデコードできる場合であり、この場合は、ステップＳＡ６に進む。また、同図において、第２マークＭ２は第１マークＭ１や第２コードＣ２よりも大きく、アライメントパターンの類似形状Ｅ２が大きいので、一辺が長く、拡大補間処理を行わなくてもよいと判定してステップＳＡ６に進む。
【０１０７】
一方、同図において、第１マークＭ１のアライメントパターンの類似形状Ｅ１及び第２コードＣ２のアライメントパターンＡＰ２は短いので拡大補間処理を行わなければデコードが困難であると推定し、この場合は、ステップＳＡ５に進む。デコードが困難であるか否かの推定は、たとえばアライメントパターンの類似形状Ｅ１やアライメントパターンＡＰ２の線幅等に基づいて行うこともできる。
【０１０８】
図１８に示すフローチャートのステップＳＡ５ではコード領域を拡大補間処理する。図１９の左下の図に示すように、第２コードＣ２が存在しているコード領域Ｄ、即ち、撮像部５により撮像された画像のうち、第２コードＣ２を含む部分画像の拡大補間処理を行うことができるので、全画像を拡大補間する場合に比べて処理時間が短時間で済む。拡大補間処理を行うコード領域、即ち、拡大補間処理を行う部分画像は、コードを示すコード領域及び該コード領域の周辺領域を含む画像とすることもできる。たとえば、拡大補間処理を行う部分画像は、縦横がコード長の４倍の矩形にすることもできる。このように拡大補間処理を行う部分画像を広く設定することで、検出部３０によるコードの位置検出が粗くて済むので、処理時間を短縮することができる。
【０１０９】
次いで、ステップＳＡ６に進んで拡大補間処理が行われたコード領域Ｄに含まれるコードをデコードした後、ステップＳＡ７に進んで読取が成功したか否かを判定する。ステップＳＡ７において読取が成功した場合にはこのフローを一旦終了する。
【０１１０】
一方、ステップＳＡ７において読取が成功しなかった場合には、ステップＳＡ３に戻り、未だデコード処理していない領域を選択する。例えば、第１マークＭ１が存在している領域をデコード処理した場合には、第１マークＭ１がコードではないので、ステップＳＡ６において読取に失敗してステップＳＡ７においてＮＯと判定されてステップＳＡ３に戻ることになる。また、第２マークＭ２をデコード処理した場合にも読取に失敗するのでステップＳＡ７においてＮＯと判定されてステップＳＡ３に戻ることになる。また、第１コードＣ１については拡大補間処理を行うことなく読取に成功する。
【０１１１】
ステップＳＡ６においてデコード処理を行う際には、デコード部３１が、デコードに先立って、セル位置推定処理を行う。セル位置推定処理とは、図２０に模式的に示すように、アライメントパターンＡＰ１を基準にし、仮想的な線Ｌ１、Ｌ２を碁盤の目を形成するように縦横に引いてセルの境界を規定する。推定したセル位置に白セルが存在しているか、黒セルが存在しているか、白黒２値化した後、そのパターンをデコード部３１が判定してデコード処理を行うことができる。アライメントパターンＡＰ１に基づいてセル位置を推定することができるので、推定結果が正確なものになる。なお、図２０では拡大補間処理を行わないアライメントパターンＡＰ１を使ってセル位置推定処理を行っているが、本発明はこれに限られず、例えば、拡大後のアライメントパターンＡＰ２を使ってセル位置推定処理を行ってもよい。
【０１１２】
ＱＲコード等の場合も基本的には上述した制御内容によって拡大補間処理の要否を判定した後、必要な部分画像のみ拡大補間処理してからデコード処理を行うことができる。
【０１１３】
［Ｌａｎｃｚｏｓ法を使用した場合の処理］
拡大補間処理にはＬａｎｃｚｏｓ法を使用することができる。Ｌａｎｃｚｏｓ法を使用した場合について図２２に示すフローチャートに基づいて説明する。拡大補間処理にＬａｎｃｚｏｓ法を使用すると、拡大後の画像がピントボケに類似した画像になるため、ボケ補正処理を行うようにしている。
【０１１４】
図２２に示すフローチャートのステップＳＣ１〜ＳＣ４までは図１８に示すフローチャートのステップＳＡ１〜ＳＡ４とそれぞれ同じである。図２２に示すフローチャートのステップＳＣ４で拡大補間処理が必要であると判定された場合にはステップＳＣ５に進み、図１８に示すフローチャートのステップＳＡ５と同じ処理を行う。そしてステップＳＣ６に進んでボケ補正付きデコードを行う。ステップＳＣ６では、ステップＳＣ５において拡大補間処理された画像のボケをボケ補正処理によって低減してから、図１８に示すフローチャートのステップＳＡ６と同様なデコード処理を行う。一方、ステップＳＣ４で拡大補間処理が不要であると判定された場合にはステップＳＣ８に進み、図１８に示すフローチャートのステップＳＡ６と同様なデコード処理を行う。ステップＳＣ７は、図１８に示すフローチャートのステップＳＡ７と同じである。
【０１１５】
［偏光フィルタアタッチメントの有無検知方法］
偏光フィルタアタッチメント３のような着脱可能な部材が本体に取り付けられているか否かを自動で検知する方法として、一般的には、たとえば機械的なスイッチや電気的接点を使用する方法が知られているが、これらの場合は構造が複雑になるというデメリットがある。
【０１１６】
この実施形態では機械的なスイッチや電気的接点を使用することなく、偏光フィルタアタッチメント３の有無を自動で検知することができるように構成されている。具体的には、光が偏光フィルタを透過することで照射する光量が半減し、また、光を受光する際も偏光フィルタを透過することで光量が半減する性質を利用し、次のようにソフトウエアによって偏光フィルタアタッチメント３の有無を自動で検知する。
【０１１７】
すなわち、まず、第１発光ダイオード１６を点灯させて第２発光ダイオード１７を消灯させた状態で撮像部５に撮像させる。その後、第１発光ダイオード１６を消灯させて第２発光ダイオード１７を点灯させた状態で撮像部５に撮像させる。この順番はどちらが先でもよい。その後、２つの画像の明るさを比較して略同等であれば偏光フィルタアタッチメント３が装着されていないと判断する。一方、一方の画像の明るさが他方の画像の明るさの倍程度（または半分程度）であれば、偏光フィルタアタッチメント３が装着されていると判断する。
【０１１８】
つまり、偏光フィルタアタッチメント３の偏光フィルタを透過するように配置されている発光体を発光させ、かつ、偏光フィルタを透過しないように配置されている発光体を光らせない状態にして撮像した画像と、偏光フィルタアタッチメント３の偏光フィルタを透過するように配置されている発光体を光らせず、かつ、偏光フィルタを透過しないように配置されている発光体を発光させて撮像した画像との明るさを比較する比較部を設けておく。そして、この比較部による２つの画像の比較結果に基づいて偏光フィルタアタッチメント３の有無を自動で検知することができる。
【０１１９】
［実施形態の作用効果］
以上説明したように、この実施形態に係る光学的情報読取装置１によれば、撮像素子５ａにより撮像された画像に含まれるコードの大きさに関する情報を検出部３０によって検出できる。これにより、コードの大きさを推定して得ることができる。
【０１２０】
そして、拡大補間処理部２９ｄは、検出部３０により検出されたコードの大きさに関する情報と、基準値記憶部３５ｄに記憶された大きさ判定基準値とに基づいて、コードの大きさが拡大補間処理対象であるか否かを判定することができる。コードの大きさが拡大補間処理対象であると判定される場合には、撮像素子５ａにより撮像された画像のうち、コードを含む部分画像の拡大補間処理を行うので、全画像を拡大補間する場合に比べて処理時間が短時間で済む。拡大補間処理後の部分画像に含まれるコードをデコード部がデコードすることができるので、コードの読取精度を高めることができる。一方、コードの大きさが拡大補間処理対象ではない場合には、拡大補間処理を行わないので、無用な処理が行われることはない。
【０１２１】
したがって、撮像された画像内に解像度の低いコードが含まれる場合であっても短時間でコードを読み取ることができるとともに、コードの読取精度を高めることができる。
【０１２２】
尚、上記実施形態では、光学的情報読取装置１の運用時に拡大補間が必要か否かを判定するようにしているが、これに限らず、光学的情報読取装置１の設定時におけるチューニング工程を行う際に拡大補間が必要か否かを判定するようにしてもよい。
【産業上の利用可能性】
【０１２３】
以上説明したように、本発明に係る光学的情報読取装置は、たとえば、バーコードや二次元コード等のコードを読み取る場合に使用することができる。
【符号の説明】
【０１２４】
１                光学的情報読取装置
４                照明部
５                撮像部
５ａ              撮像素子
２９              制御ユニット
２９ｄ            拡大補間処理部
３０              検出部
３１              デコード部
３５              記憶装置
３５ｄ            判定基準値記憶部
Ｃ１、Ｃ２        コード
Ｗ                ワーク
【図１】
2018136854.tif 000003
【図２】
2018136854.tif 000004
【図３】
2018136854.tif 000005
【図４】
2018136854.tif 000006
【図５】
2018136854.tif 000007
【図６】
2018136854.tif 000008
【図７】
2018136854.tif 000009
【図８】
2018136854.tif 000010
【図９】
2018136854.tif 000011
【図１０】
2018136854.tif 000012
【図１１】
2018136854.tif 000013
【図１２】
2018136854.tif 000014
【図１３】
2018136854.tif 000015
【図１４】
2018136854.tif 000016
【図１５】
2018136854.tif 000017
【図１６】
2018136854.tif 000018
【図１７】
2018136854.tif 000019
【図１８】
2018136854.tif 000020
【図１９】
2018136854.tif 000021
【図２０】
2018136854.tif 000022
【図２１】
2018136854.tif 000023
【図２２】
2018136854.tif 000024