(57)【要約】【課題】再度のチューニングを実行することなく、ワークに付与されたコードの読み取り精度を向上させること。【解決手段】チューニング部６５は、チューニングモードにおいて、基準となるワークに設けられたコードを撮像素子３１に撮像させ、取得されたコードの画像データをデコード部５３にデコードさせ、デコード結果に基づき、読取条件を構成する複数のパラメータのセットである基準バンク７４を決定する。演算部６３は、運用モードにおいて、ライン１を搬送される複数のワーク２について基準バンク７４を用いてコードを読み取る。基準バンク７４を用いて取得されたデコード結果が所定の結果を下回ると、演算部６３は、基準バンク７４を構成しているパラメータを調整ルールにしたがって調整することで拡張バンク７５を生成する。その後、拡張バンク７５が適用されるコードの読み取りが継続される。【選択図】図５
2018045735.tif 000002
【特許請求の範囲】
【請求項１】
ワークに設けられたコードを撮像する撮像手段と、
前記撮像手段により取得された画像データをデコードするデコード手段と、
前記撮像手段の撮像条件と前記デコード手段における画像処理条件とを含む読取条件を制御する読取条件制御手段とを有し、
前記読取条件制御手段は、
基準バンクを決定するチューニングモードにおいて、基準となるワークに設けられたコードを前記撮像手段に撮像させ、前記撮像手段により取得された前記コードの画像データを前記デコード手段にデコードさせ、前記デコード手段のデコード結果に基づき、前記読取条件を構成する複数のパラメータのセットである基準バンクを決定する決定手段と、
前記基準バンクを構成している複数のパラメータのうちの少なくともいくつかのパラメータを、予め定められた調整ルールにしたがって調整することで拡張バンクを生成する生成手段と
を有し、
ラインを搬送される複数のワークについて前記基準バンクを用いてコードを読み取る運用モードにおいて前記基準バンクを用いて取得されたデコード結果が所定の結果を下回ると、前記基準バンクに代えて前記撮像手段および前記デコード手段によって前記拡張バンクが使用されることを特徴とする光学的情報読取装置。
【請求項２】
前記拡張バンクを決定するために調整されるパラメータは、前記基準バンクを構成している複数のパラメータのうちの一部であることを特徴とする請求項１に記載の光学的情報読取装置。
【請求項３】
前記生成手段は、前記基準バンクを構成する複数のパラメータのうちの一部について調整して前記拡張バンクのパラメータを生成し、前記基準バンクを構成する複数のパラメータのうちの残りの一部については調整せずにコピーして前記拡張バンクのパラメータを生成することを特徴とする請求項１または２に記載の光学的情報読取装置。
【請求項４】
前記基準バンクを構成する複数のパラメータのうち調整されるパラメータの１つは前記コードの画像の明るさに関連したパラメータであり、
前記基準バンクを構成する複数のパラメータのうち調整されずに前記拡張バンクへコピーされるパラメータの１つは前記コードの種類を特定するパラメータであることを特徴とする請求項３に記載の光学的情報読取装置。
【請求項５】
前記基準バンクを構成する複数のパラメータのうち調整されずに前記拡張バンクへコピーされるパラメータには、前記コードのコード種と、 前記コードの読取桁数と、前記コードの画像データについて白黒反転処理を適用するかどうかを示すパラメータと、前記コードの画像データについて左右反転処理を適用するかどうかを示すパラメータと、前記コードのバージョンを特定するパラメータとのうち少なくとも１つが含まれていることを特徴とする請求項３または４に記載の光学的情報読取装置。
【請求項６】
前記基準バンクを構成する複数のパラメータのうち調整されるパラメータには、前記コードの画像データの明るさレベル、 前記コードの画像データに関するエッジ強度、デコードの繰り返しを制限するためのタイムアウト時間、前記画像データに適用されるフィルタの種類、前記画像データに対して適用されるフィルタ処理の回数のうち少なくとも１つが含まれていることを特徴とする請求項３ないし５のいずれか１項に記載の光学的情報読取装置。
【請求項７】
前記生成手段は、前記コードがバーコードであるときはいずれのフィルタも無効とするように前記拡張バンクを生成することを特徴とする請求項１ないし６のいずれか１項に記載の光学的情報読取装置。
【請求項８】
前記生成手段は、前記基準バンクにおいて偏光フィルタを通した照明光を照射する照明モードが有効にされているときは前記拡張バンクにおいても当該照明モードを有効とし、前記基準バンクにおいて偏光フィルタを通さずに照明光を照射する照明モードが有効にされているときは前記拡張バンクにおいては偏光フィルタを通した照明光を照射する照明モードが有効となるようにパラメータを変更することを特徴とする請求項１ないし６のいずれか１項に記載の光学的情報読取装置。
【請求項９】
前記生成手段が１つの基準バンクに対して生成した複数の拡張バンクを記憶する記憶手段をさらに有し、
前記複数の拡張バンクのうち前記デコード手段によってデコードに成功した拡張バンクが優先的に使用されることを特徴とする請求項１ないし８のいずれか１項に記載の光学的情報読取装置。
【請求項１０】
前記基準バンクと、前記基準バンクから派生して生成された複数の拡張バンクとにそれぞれ優先度を設定する設定手段をさらに有し、
前記デコード手段は前記優先度にしがって前記基準バンクおよび前記複数の拡張バンクから１つのバンクを選択して適用することを特徴とする請求項１ないし９のいずれか１項に記載の光学的情報読取装置。
【請求項１１】
前記デコード手段は、前記基準バンクおよび前記拡張バンクのそれぞれに割り当てられている前記優先度にしたがってデコード処理のリトライ回数を制御することを特徴とする請求項１０に記載の光学的情報読取装置。
【請求項１２】
ワークに設けられたコードを撮像する撮像手段と、前記撮像手段により取得された画像データをデコードするデコード手段とを有する光学的情報読取装置において前記撮像手段の撮像条件と前記デコード手段における画像処理条件とを含む読取条件を制御して前記コードを読み取る光学的情報読取方法であって、
基準バンクを決定するチューニングモードにおいて、基準となるワークに設けられたコードを前記撮像手段に撮像させ、前記撮像手段により取得された前記コードの画像データを前記デコード手段にデコードさせ、前記デコード手段のデコード結果に基づき、前記読取条件を構成する複数のパラメータのセットである基準バンクを決定する決定工程と、
前記基準バンクを構成している複数のパラメータのうちの少なくともいくつかのパラメータを、予め定められた調整ルールにしたがって調整することで拡張バンクを生成する生成工程と、
ラインを搬送される複数のワークについて前記基準バンクを用いてコードを読み取る運用モードにおいて前記基準バンクを用いてコードを読み取る工程と、
前記運用モードにおいて前記基準バンクを用いて取得されたデコード結果が所定の結果を下回ると、前記基準バンクを前記拡張バンクに切り替え、前記拡張バンクを用いてコードを読み取る工程と
を有することを特徴とする光学的情報読取方法。
【請求項１３】
請求項１ないし１１のいずれか１項に記載された光学的情報読取装置の各手段として当該光学的情報読取装置を機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報を光学的に読み取る光学的情報読取装置等に関する。
【背景技術】
【０００２】
バーコードやＱＲコード（登録商標）などの２次元コードを読み取る２次元コードリーダ（以下、リーダと称す。）は広く普及している。このようなリーダの一例が特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−７６５１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
２次元コードの読み取り成功率はワークの表面性質や２次元コードをマーキングするプリンタや刻印器の状態に依存する。そのため、実際にワーク（生産品）を読み取って読取条件（例：明るさ、露光時間などの撮影条件や画像処理フィルタの使用の有無などの画像処理条件）を調整する必要がある。このように各ワークごとに読取条件を適切に調整する処理をチューニングと呼ぶ。チューニングはワークを搬送するラインを稼働させる前に予め実行され、これにより読取条件が確定する。
【０００５】
しかし、工場では多数のワークを生産するため、徐々に２次元コードの濃度が薄くなってくることがある。また、鋳物の表面に２次元コードを打刻する場合には、打刻に用いるドットピーンの先端が徐々に摩耗し、２次元コードの打刻精度が低下することもある。また、外光が入射する環境では外光の影響が時刻に応じて変化する。このような場合には読取条件の再チューニングが必要になるが、これはラインを停止させないと実行できないため、生産効率の低下を招く。
【０００６】
そこで、本発明は、再度のチューニングを実行することなく、ワークに付与されたコードの読み取り精度を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
本発明によれば、たとえば、
ワークに設けられたコードを撮像する撮像手段と、
前記撮像手段により取得された画像データをデコードするデコード手段と、
前記撮像手段の撮像条件と前記デコード手段における画像処理条件とを含む読取条件を制御する読取条件制御手段とを有し、
前記読取条件制御手段は、
基準バンクを決定するチューニングモードにおいて、基準となるワークに設けられたコードを前記撮像手段に撮像させ、前記撮像手段により取得された前記コードの画像データを前記デコード手段にデコードさせ、前記デコード手段のデコード結果に基づき、前記読取条件を構成する複数のパラメータのセットである基準バンクを決定する決定手段と、
前記基準バンクを構成している複数のパラメータのうちの少なくともいくつかのパラメータを、予め定められた調整ルールにしたがって調整することで拡張バンクを生成する生成手段と
を有し、
前記拡張バンクは、ラインを搬送される複数のワークについて前記基準バンクを用いてコードを読み取る運用モードにおいて前記基準バンクを用いて取得されたデコード結果が所定の結果を下回ると、前記基準バンクに代えて前記撮像手段および前記デコード手段によって使用されることを特徴とする光学的情報読取装置が提供される。
【発明の効果】
【０００８】
本発明によれば、再度のチューニングを実行することなく、ワークに付与されたコードの読み取り精度を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】光学的情報読取装置を示す図
【図２】光学的情報読取装置の構造を示す図
【図３】画像表示装置の支持構造を示す図
【図４】光学的情報読取装置の表示および操作パネルを示す図
【図５】光学的情報読取装置の電気的な構成を示す図
【図６】光学的情報読取装置に接続されるコンピュータを示す図
【図７】偏光フィルタの形状の一例を示す図
【図８】偏光フィルタの形状の一例を示す図
【図９】基準バンクにおける明るさレベルと拡張バンクにおける明るさレベルとの関係を示す図
【図１０】コードの変化と読み取り結果の一例を示す図
【図１１】拡張バンクの生成方法の一例を示す図
【図１２】拡張バンクの生成方法の一例を示すフローチャート
【図１３】拡張バンクに設定される明るさレベルと偏光フィルタとの関係を説明する図
【発明を実施するための形態】
【００１０】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１１】
図１はリーダシステム（光学的情報読取装置）の一例を示す図である。ライン１は検査対象物であるワーク２を搬送する搬送ベルトなどである。リーダ３は２次元コードを読み取ってデコードする２次元コードリーダである。なお、リーダ３自体も狭義の光学的情報読取装置である。プログラマブル・ロジック・コントローラ（ＰＬＣ５）はライン１やリーダ３を制御する制御装置である。コンピュータ４はリーダ３に対して動作条件などを設定したり、リーダ３からデコード結果などを取得して表示したりする情報処理装置である。
【００１２】
＜リーダ３の構造＞
図２（Ａ）はリーダ３の斜視図であり、図２（Ｂ）は主要部品の展開図である。リーダ３の形状は略直方体であるため、筐体外面は概ね６つの面を有している。図２（Ｂ）が示すようにフロントケース１０には４つの開口が設けられている。頂面側の開口にはホルダー１３と、ホルダー１３によって支持される画像表示装置１４と、画像表示装置１４をカバーするように配置される表示パネル１５と、メインシート１６が設けられる。フロントケース１０の前面側の開口には透光性を有する窓部１１と、フロントカバー１２とが設けられる。とりわけ、本実施形態では窓部１１の一部に偏光フィルタが設けられる。フロントケース１０の背面側の開口から、リフレクタ１７と照明基板１８とが挿入され、リアケース１９によってふたをされる。リアケース１９には、メイン基板２１と、メイン基板２１に固定された光学系５０およびＡＦ機構５１が設けられている。リフレクタ１７は、照明基板１８に設けられた発光素子からの光を効率よく前方に照射するための構造部品である。リフレクタ１７には、照明用の発光素子からの光を前方に集光して照射するためのコーン（円錐台）型の集光部１７６〜１７９と、ポインタ用の発光素子からの光を前方に集光して照射するためのコーン型の集光部１７５とが設けられている。これらには集光効率を高めるために金メッキ等が施されている。フロントケース１０の下面側に開口にはコネクタホルダ２０が取り付けられる。コネクタホルダ２０には２本の通信ケーブルが接続されており、それぞれコンピュータ４とＰＬＣ５とに接続される。コネクタホルダ２０にはコネクタ基板が取り付けられている。
【００１３】
図３（Ａ）〜図３（Ｃ）はホルダー１３の周辺の構造を説明するための図である。図３（Ａ）や図３（Ｂ）が示すようにホルダー１３は画像表示装置１４を支持する支持部材である。照明基板１８は、ホルダー１３に対して直交した方向に延在し、ホルダー１３に係合してホルダー１３を支持する。つまり、ホルダー１３はフロントケース１０の上面に対して平行に設けられており、照明基板１８はフロントケース１０の前面と平行に設けられており、両者は直交している。なお、ホルダー１３の下面側には溝１３１が設けられており、溝１３１に照明基板１８の端部が嵌合することで、ホルダー１３を照明基板１８に対してしっかりと固定してもよい。このようなホルダー１３を採用することで画像表示装置１４を取り付ける回路基板を不要とすることができる。
【００１４】
図３（Ａ）や図３（Ｃ）が示すように、照明基板１８には、画像表示装置１４の表示面と同じ側に押圧面が存在する押しボタン型のスイッチ２４、２５が配置されていてもよい。ホルダー１３と一体に構成された押圧部材２２、２３によって、それぞれスイッチ２４、２５が押圧され、それぞれの接点が閉じるように構成されていてもよい。スイッチ２４、２５の押圧方向と、ホルダー１３を指示する照明基板１８の長さ方向とが一致しているため、スイッチ２４、２５を押圧してもホルダー１３が撓みにくい。押圧部材２２はホルダー１３の主体から延びる弾性の腕部３９ａによって支持されている。同様に、押圧部材２３はホルダー１３の主体から延びる弾性の腕部３９ｂによって支持されている。押し下げられた押圧部材２２、２３は腕部３９ａ、３９ｂの弾性によって元の位置に復帰する。腕部３９ａ、３９ｂはホルダー１３と一体構成型されているため、ばね等の復帰用の追加部材を省略できる利点がある。
【００１５】
図３（Ａ）や図３（Ｂ）が示すように、照明基板１８には、撮像素子３１に対応して設けられる光学系モジュール（光学系５０やＡＦ機構５１など）を実装するための円形の開口部３３が設けられている。開口部３３の周囲には照明用の４つの発光素子２６〜２９が設けられている。図３（Ａ）が示すように、照明基板１８とホルダー１３との係合部の付近にはインジケータとして機能する１つまたは複数の発光素子３２が設けられている。発光素子３２の光がフロントケース１０の上面から外部に出力されるように、ホルダー１３に導光用の開口部３４が設けられている。つまり、２つのスイッチ２４、２５の間にインジケータが配置されている。図３（Ｃ）が示すように開口部３４の四方は遮光壁３６ａ〜３６ｄで囲まれているため、インジケータの光が画像表示装置１４の方へ漏れにくくなっている。ホルダー１３には画像表示装置１４を収容するための収容溝３７が設けられている。また収容溝３７の底部には画像表示装置１４の信号ケーブルを通すための穴部３８が設けられている。
【００１６】
図３（Ｂ）が示すようにメイン基板２１には撮像素子３１が配置されている。図３（Ｂ）が示すように照明基板１８にはポインタ用の光を出力する発光素子３５が配置されている。上述したようにリフレクタ１７には、発光素子３５用の集光部１７５に加え、発光素子２６〜２９用の集光部１７６〜１７９が設けられている。集光部１７５〜１７９はコーン型の形状であり、コーンの頂上側の開口から光が入射し、底面側から出射する。
【００１７】
図４はメインシート１６を示す図である。メインシート１６の中央部には画像表示装置１４の表示面４０が設けられている。メインシート１６の下部にはセレクトキー４２、インジケータ４４、エンターキー４３が設けられている。セレクトキー４２は、上述したスイッチ２４と押圧部材２２によって構成されている。エンターキー４３は、上述したスイッチ２５と押圧部材２３によって構成されている。インジケータ４４は、２つの発光素子３２によって構成されており、たとえば、２次元コードの読み取りが成功すると緑色の発光素子が点灯し、２次元コードの読み取りが失敗すると赤色の発光素子が点灯する。なお、画像表示装置１４は撮像素子３１によって取得した画像（静止画または動画）に加え、セレクトキー４２とエンターキー４３の割り当てをユーザに示唆する画像（図４のＳＥＬとＭＥＮＵ（ただしＥＮＴと表示されることもある））を表示してもよい。
【００１８】
＜制御ユニット＞
図５はリーダ３の電子的な構成を示すブロック図である。リーダ３のカメラ部（撮像手段）は、撮像素子３１、光学系５０、ＡＦ機構５１、照明部５２などを有している。撮像素子３１は光学系５０を通して結像した２次元コードの画像を電気的な信号に変換するＣＣＤやＣＭＯＳ等のイメージセンサである。ＡＦ機構５１は光学系５０のうち合焦用のレンズの位置や屈折率を調整する機構である。ＡＦ機構５１と光学系５０は、図３（Ｂ）において撮像素子３１と開口部３３との間に配置される。ＡＦ機構５１と光学系５０は一体化されて光学系モジュールを構成していてもよい。
【００１９】
照明部５２は１つ以上の発光素子を有し、２次元コードを照明するユニットである。照明部５２は、たとえば、照明用の発光素子２６〜２９やポインタ用の発光素子３５を有している。ポインタの光は光学系５０の光軸の目安となり、ユーザはポインタの位置を参照してワーク２を正しい位置に設置してもよい。
【００２０】
デコード部５３は撮像素子３１によって取得された２次元コードの画像データ７２をデコードしてデコード結果７１を記憶部７０に書き込むユニットである。通信部５４はＰＬＣ５やコンピュータ４と通信するユニットである。通信部５４は、たとえば、ＰＬＣ５と通信するＩ／Ｏ部、ＲＳ２３２Ｃなどのシリアル通信部、無線ＬＡＮや有線ＬＡＮなどのネットワーク通信部などを備えていてもよい。
【００２１】
表示部５５は画像表示装置１４やインジケータ用の発光素子３２を備えている。表示部５５は、たとえば、２次元コードのデコード結果７１である文字列、読み取り成功率（複数回読み取り処理を実行したときの平均読み取り成功率）、マッチングレベル（読み取りのしやすさを示す読取余裕度）、ＰＰＣ（２次元コードを構成する１つのセルが画像データにおいていくつの画素に相当するかを示す値：ピクセル・パー・セル）などを表示してもよい。入力部５６はスイッチなどの入力操作を受け付けるユニットであり、セレクトキー４２やエンターキー４３を備えている。
【００２２】
制御ユニット６０はリーダ３の各部を統括的に制御するユニットである。とりわけ、制御ユニット６０は撮像素子３１の撮像条件とデコード部５３における画像処理条件とを含む読取条件を制御する読取条件制御手段として機能する。制御ユニット６０は様々な機能を搭載しているが、これらは論理回路により実現されてもよいし、ソフトウエアを実行することによって実現されてもよい。オートフォーカス制御部（ＡＦ制御部）６１はＡＦ機構５１を制御するユニットである。撮像制御部６２は照明部５２の照明光の光量を制御したり、撮像素子３１の露光時間（シャッタースピード）を制御したりするユニットである。とりわけ、撮像制御部６２は、チューニング部６５や演算部６３からの指示に応じて照明部５２の複数の発光素子のうちどれを点灯させるかを制御する点灯制御手段として機能する。
【００２３】
演算部６３は様々な演算処理を実行する。たとえば、演算部６３はデコード結果や画像データなどを用いて、読み取り成功率やマッチングレベル、ＰＰＣを演算する。もちろんこれらの演算は、デコード部５３やチューニング部６５など、演算部６３以外のユニットで実行されてもよい。
【００２４】
チューニング部６５は、読取条件を制御する読取条件制御手段または照明条件を決定する条件決定手段として機能する。読取条件は、たとえば、露光時間や照明光量、ゲインなどの撮像条件やデコード部５３における画像処理条件（フィルタの係数など）である。ライン１を搬送されるワーク２に対する外光の影響などで適切な撮像条件や画像処理条件は変化する。よって、チューニング部６５は、より適切な読取条件を探索する。つまり、チューニング部６５は、チューニングモードにおいて読取条件のチューニングを実行して決定したパラメータのセットを基準バンク７４として記憶部７０に格納する。演算部６３はチューニングモードから運用モードに遷移すると、基準バンク７４を記憶部７０から読み出して、ＡＦ制御部６１や撮像制御部６２、デコード部５３に設定する。なお、演算部６３は、基準バンク７４が決定されると、記憶部７０から調整ルール７６を読み出し、調整ルール７６にしたがって基準バンク７４に含まれているパラメータを調整（修正）し、いくつかの拡張バンク７５を生成する。運用モードにおいて基準バンク７４を用いて２次元コードを読み取っていると、上述したようにマッチングレベルが所定の閾値よりも低下しうる。また、２次元コードを読み取りに失敗することもある。そこで、マッチングレベルが閾値未満になったり、読み取りに失敗したりすると、演算部６３は、基準バンク７４に代えて拡張バンク７５を撮像制御部６２やデコード部５３に適用する。なお、チューニングモードとは、基準バンクを決定するモードである。運用モードは、ライン１を搬送される複数のワーク２について基準バンク７４または拡張バンク７５を用いて２次元コードを読み取るモードである。つまり、運用モードでは、工場で実際に生産されたワーク２の２次元コードが読み取られる。拡張バンク７５は予め複数用意される必要はなく、複数の調整ルール７６が用意されていれば十分である。つまり、基準バンク７４での読み取りに失敗すると、演算部６３は、即座に調整ルール７６を読み出して拡張バンク７５を作成し、撮像制御部６２やデコード部５３に設定してもよい。なお、拡張バンク７５には変更されたパラメータだけが登録され、変更されないパラメータについて基準バンク７４から読み出されてもよい。
【００２５】
ＵＩ管理部６６は、画像表示装置１４に画像データを表示したり、入力部５６からのユーザ指示を受け付けたり、インジケータの点灯を制御したりするユニットである。ＵＩ管理部６６は、たとえば、図４に示したようなユーザインタフェースを表示部５５の画像表示装置１４に表示する。チューニングモードと運用モードの切り替えは、このユーザインタフェースを通じてユーザによって指示されてもよい。
【００２６】
記憶部７０は、メモリなどの記憶装置であり、デコード部５３によって取得されたデコード結果７１、撮像素子３１によって取得された画像データ７２、コンピュータ４などの設定装置によってリーダ３に設定されたデータや入力部５６により設定されたデータである設定データ７３などを記憶する。設定データ７３には、基準バンク７４や拡張バンク７５などが含まれている。記憶部７０には基準バンク７４から拡張バンク７５を生成するための調整ルール７６が記憶されていてもよい。
【００２７】
図６はコンピュータ４の機能を示すブロック図である。リーダ３を小型化すると、リーダ３の表示部５５や入力部５６だけではリーダ３のすべての機能を設定することが難しくなる。そこで、一部の設定データ７３についてはコンピュータ４で作成してリーダ３に転送してもよい。ＣＰＵ８０は記憶部９０に記憶されているプログラムに基づきコンピュータ４が備えている各部を制御するユニットである。演算部８１の一機能であるＵＩ制御部８３はリーダ３の撮像条件（とりわけ、偏光フィルタの付与された発光素子を使用するか否か）などを設定するためのユーザインタフェースやリーダ３が出力するデコード結果７１、画像データ７２などを表示するためのユーザインタフェースを生成し、表示部８４に表示させる。演算部８１は様々な演算を実行するユニットである。通信部８６はリーダ３の通信部５４と有線または無線で接続し、デコード結果７１や画像データ７２を受信したり、設定部８２で生成された設定データ７３を送信したりする。記憶部９０は、メモリやハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）などである。
【００２８】
＜照明モード（偏光モードと無偏光モード）＞
本実施形態ではユーザの設置負担を軽減でき、かつ、様々なワークに付与されたコードを精度よく読み取り可能とするために、複数の照明手段を設け、第一照明手段には偏光フィルタを配置し、第二照明手段には偏光フィルタを配置しない。そして、第一照明手段と第二照明手段とをワーク２に応じて使い分ける。これによりユーザはリーダ３の設置角度をワークごとに調整する手間を省けるようになる。とりわけ、偏光フィルタはハレーションの除去に有効である。
【００２９】
上述したようにワーク２に対してリーダ３を正面取り付けすると、撮像素子３１にはワーク２からの正反射光が大量に入射しやすくなる。これはワーク２上での２次元コードの設置面が平滑な面である場合に発生しやすく、２次元コードのデコードを失敗させる原因となる。正反射光を削減する手段として、撮像素子３１と照明部５２とにそれぞれ偏光方向の異なる偏光フィルタを配置することが考えられる。しかし、照明部５２の全体を偏光フィルタで覆ってしまうと、鋳物の表面にダイレクト・パーツ・マーキングされた２次元コードを精度よく読み取れなくなってしまう。つまり、鋳肌に印刷または刻印された２次元コードは照明部５２に偏光フィルタを設けない方が、読取精度が高い。このように、ワーク２の表面や２次元コードの付与方法に応じて、偏光フィルタを設けた方が適していたり、偏光フィルタを設けない方が適していたりする。また、偏光フィルタを設けると、発光側の偏光フィルタで光量が１／２に減衰し、受光側の偏光フィルタで光量がさらに１／２に減衰する。つまり、トータルで光量が１／４にまで減衰してしまう。光量が減衰すると２次元コードの読み取りに失敗しやすくなる。減衰分を補償するために発光素子の発光光量を増大させれば、消費電力が増加するだけでなく、熱も増加してしまう。これらはデメリットになりうる。
【００３０】
１つのリーダ３で様々なワーク２に対応する方法として、すべての発光素子の出射領域を覆う取り外し式の偏光フィルタを採用することも考えられる。しかし、この場合は、ユーザが偏光フィルタを設置するか外すかを自ら判断する必要があるとともに、手作業で偏光フィルタの取り付けと取り外しを実行する必要がある。すなわち、ユーザにとって設置角度の調整は不要となるが、その代わりに偏光フィルタの設置・取り外し作業が必要となってしまう。
【００３１】
そこで、本実施形態では、偏光フィルタを設けられた第一照明手段と、偏光フィルタを設けられていない第二照明手段とを設け、これらをワーク２に応じて切り替えて使用するリーダ３を提案する。
【００３２】
図７（Ａ）はリーダ３の斜視図であり、図７（Ｂ）は窓部１１の拡大図である。窓部１１のうち、発光素子２６の光が射出する部分（光出射領域）と、発光素子２７の光が射出する部分とには偏光フィルタ９１が設けられている。また、窓部１１のうち、撮像素子３１の光学系に光が入射する部分（光入射領域）には偏光フィルタ９２が設けられている。なお、偏光フィルタ９１の偏向方向と、偏光フィルタ９２の偏向方向とは異なっており、たとえば、９０度異なっている。その一方で、窓部１１のうち、発光素子２８の光が射出する部分と、発光素子２９の光が射出する部分とには偏光フィルタは設けられていない。このように、発光素子２６と発光素子２７で第一照明手段を形成し、発光素子２８と発光素子２９で第二照明手段を形成してもよい。つまり、ユーザが偏光フィルタの設置や取り外しを実行する代わりに、リーダ３がどちらの照明手段を点灯させるかを電気的に切り替えればよい。たとえば、偏光フィルタが無い方がより有利なワーク（例：鋳物など）については第二照明手段を点灯させて、第一照明手段を消灯させる。一方で、偏光フィルタがある方がより有利なワーク（例：プリント基板やフライス加工面、黒樹脂などに二次元コードを有するワーク）については第一照明手段を点灯させて、第二照明手段を消灯させる。これによりユーザの負担を大幅に軽減できるとともに、１つのリーダ３で様々なワークに設けられた２次元コードを精度よく読み取ることが可能となる。
【００３３】
図８（Ａ）は偏光フィルタ９１と偏光フィルタ９２との形状の一例を示している。とりわけ、撮像素子用の偏光フィルタ９２は略円形の形状をしており、偏光フィルタ９２の左端と右端とにはそれぞれ位置合わせ部材９３ａ、９３ｂが設けられている。偏光フィルタ９１の底部の左端と右端とは位置合わせ部材９３ａ、９３ｂの形状と整合しており、この例では直線状となっている。偏光フィルタ９１の底部の中央は略半円形となっており、偏光フィルタ９２の上部の形状に整合している。このように、位置合わせ部材９３ａ、９３ｂを採用することで、窓部１１に対して偏光フィルタ９１と偏光フィルタ９２とを正確に貼付しやすくなる。また、偏光フィルタ９１の頂部の形状は窓部１１の頂部の形状に整合しているため、窓部１１に対して偏光フィルタ９１を正確に位置合せして貼付しやすくなっている。
【００３４】
＜読取条件のチューニング＞
２次元コードは、ワーク２に貼り付けられる用紙やタグに印刷されることが一般的であったが、近年はダイレクト・パーツ・マーキング（ＤＰＭ）が普及している。ＤＰＭでは、２次元コードがワーク２の表面に印刷されたり、レーザ刻印されたり、ドットピーンで打刻されたりしてマーキングされる。ＤＰＭによって付与された２次元コードの読み取り成功率は、ワーク２の表面の材質、マーキング方法、リーダ３の設置環境に依存する。そのため、基準ワーク（合格品）を用いたチューニングによって読取条件を適切に調整して、基準バンク７４を作成しておく必要がある。しかし、ワーク２の金型が摩耗したり、ドットピーンの先端が摩耗したり、インクが薄れたり、外光の影響が変化したりすると、チューニングで決定した読取条件では２次元コードを精度よく読み取れなくなってしまうことがある。ワーク２の生産工程には複数の工程が含まれており、たとえば、ワークの焼き入れ工程、メッキ工程、コーティング工程などが含まれることもある。よって、表面処理工程を実行する前に２次元コードの読み取り工程が存在していたのに、何らかの理由によって工程変更が実行され、表面処理工程を実行した後に２次元コードの読み取り工程が移動することもある。これらの表面処理工程は、ワーク２の表面を変化させるため、適切な読み取り条件も変化する。ワーク２が金属であれば、金属腐食によって２次元コードのコントラストが低下することもある。このような場合にも２次元コードの読み取りは失敗するだろう。このように、運用モードにおいて２次元コードの読み取りに失敗すると、ライン１を停止させ、再度チューニングを実行して基準バンク７４を作り直さなければならない。ライン１を停止させれば、ワーク２の生産効率が低下してしまう。基準バンク７４によってコードの読み取りに失敗したからと言ってそのワークを廃棄すれば、製品の歩留まりが低下する。エンジンブロックのような大型の鋳物は高価な部品であり、コードの読み取り成功率を上げることは非常に重要である。
【００３５】
予めワーク２の材質の変化や２次元コードの薄れを正確に再現できれば、それにあった基準バンク７４を作成できるであろう。しかし、運用開始前に予め変化した実ワークを用意することは極めて困難である。特に、ＤＰＭによって２次元コードを付与される鋳物等のワークを用意することは難しい。これは、ＤＰＭ用のドットピーンとして摩耗していないものから摩耗したものまで複数の摩耗レベルのドットピーンを用意して、それぞれでワーク２に２次元コードを施し、それをリーダ３で読み取って複数の基準バンク７４を作成しなければならないからである。よって、予め複数の基準バンク７４を用意しておくことも難しい。
【００３６】
そこで、本実施形態では運用モード中に基準バンク７４に含まれているパラメータを調整ルール７６で調整して拡張バンク７５を作成することで、２次元コードの読み取り成功率を向上させることにする。演算部６３は基準バンク７４での２次元コードの読み取りに失敗すると、拡張バンク７５に切り替えて読み取りを再度実行させる。また、演算部６３は拡張バンク７５での２次元コードの読み取りに失敗すると、別の拡張バンク７５に切り替えて読み取りを再度実行させる。つまり、複数の拡張バンク７５を順番に切り替えて、２次元コードの読み取りが実行される。本実施形態ではチューニングが不要となるため、ライン１を稼働させたまま、２次元コードの読み取り成功率を向上させることが可能となる。
【００３７】
●明るさレベル
図９は、明るさレベルについての基準バンクと複数の拡張バンクとの関係の一例を示す図である。横軸は明るさレベル（０〜２５５）を示し、縦軸はマッチングレベルを示している。各プロットは、チューニング部６５が明るさレベルのチューニングを実行して得られたマッチングレベルを示している。チューニング部６５はチューニングを実行して、最もマッチングレベルが高くなる明るさレベルａを判別し、基準バンク７４に書き込む。演算部６３は、明るさレベルａから所定間隔ずつ離れている明るさレベルｂ、ｃ、ｄを用いて３つの拡張バンク７５を作成する。この例では最も単純な調整ルールを採用しているが、明るさレベルの差が等間隔とならないような、より複雑な調整ルールが採用されてもよい。このように基準バンク７４の明るさレベルａを明るさレベルｂ、ｃ、ｄに差し替えることで、容易に拡張バンク７５が作成される。
【００３８】
本実施形態では、基準バンク７４と拡張バンク７５とを使用する運用モードを前提としているが、基準バンク７４のみを用いる運用モードが設けられてもよい。ユーザによっては、ライン１の停止がそれほど大きな問題とならないことがある。基準バンク７４は、ワーク２を用いてチューニングによって生成されるため、そのワーク２にとっては拡張バンク７５よりも精度の高い読み取りが実現される。よって、リーダ３は、運用モードにおいて２次元コードが読み取れなかったときにチューニングモードに遷移して基準バンク７４を更新してもよい。なお、どちらの運用モードを採用するかは、リーダ３の入力部５６またはコンピュータ４の入力部８５を通じて指定されてもよい。
【００３９】
●膨張フィルタ
図１０（Ａ）はＤＰＭによって形成された２次元コードの一例（ドット細りなし）を示している。図１０（Ｂ）はＤＰＭによって形成された２次元コードの一例（ドット細りあり）を示している。上述したようにＤＰＭ用のドットピーンは使用回数に応じて摩耗する。摩耗する前は、図１０（Ａ）に示すように２次元コードの各セル（ドット）が正確な面積で打刻される。しかし、摩耗が進むと、図１０（Ｂ）に示すように２次元コードの各セルの面積が小さくなってしまう。そこで、画像処理によって各セルの面積を増やすことで、読み取り成功率を向上させる。このような画像処理を実行するフィルタとして膨張フィルタがある。基準バンク７４では膨張フィルタを無効にするか、または、効き具合を弱めておく。一方で、拡張バンク７５では膨張フィルタを無効から有効にするか、または、効き具合を強める。これにより、ドット細りが発生して２次元コードの読み取りに失敗したときは、演算部６３が基準バンク７４を拡張バンク７５に切り替える。デコード部５３は膨張フィルタで画像処理を実行してから、２次元コードのデコードを実行する。
【００４０】
●コントラスト低下
図１０（Ｃ）が示すように、２次元コードのコントラストが徐々に低下することがある。この場合、基準バンク７４により設定された明るさレベルでは２次元コードを読み取れなくなることがある。拡張バンク７５の明るさレベルは、基準バンク７４の明るさレベルよりも低く設定されている。たとえば、基準バンク７４の明るさレベルを１００％とすると、−１０％〜−７０％の明るさレベルを有する７つの拡張バンク７５が用意される。演算部６３は、基準バンク７４での読み取りに失敗すると、順番に拡張バンク７５を切り替えることで、照明部５２の明るさレベルを徐々に低下させる。これにより、コントラストの低下した２次元コードについてもデコードに成功するようになる。
【００４１】
＜読取条件＞
読取条件を構成している代表的なパラメータについて説明する。基準バンク７４に含まれている複数のパラメータのうち拡張バンク７５では変更されるパラメータと変更されないパラメータとがある。拡張バンク７５では、基準バンク７４に含まれているパラメータのすべてが変更されるわけではない。すべてのパラメータが増えると、読み取り速度の低下を招くので、読み取りの向上に効果的なパラメータが変更される。
（１）変更されるパラメータ
●明るさレベル
明るさは、上述した照明光量だけでなく、撮像素子３１の露光時間やデコード部５３のゲインなどがある。たとえば、基準バンク７４における明るさレベルを１００％とすると、演算部６３はこのレベルに対して１０％刻みで＋７０％〜−７０％のパラメータを生成し、拡張バンク７５を作成する。
【００４２】
●エッジ強度
デコード部５３は２次元コードを探索するためにエッジ検出を実行する。エッジ検出において使用されるパラメータがエッジ強度である。エッジ強度を増加減少させることで、コントラストの低下した２次元コードも検出可能となる。
【００４３】
●タイムアウト時間
タイムアウト時間は、２次元コードの探索を打ち切るための目安となる時間である。たとえば、基準バンク７４のタイムアウト時間に対して、拡張バンク７５では所定時間（例：２０ミリ秒）が加算される。
【００４４】
●フィルタの種類
デコード部５３は様々な画像処理用のフィルタを備えている。たとえば、平均化フィルタ、膨張フィルタ、収縮フィルタ、オープンフィルタ、クローズフィルタ、メディアンフィルタ、アンシャープマスクフィルタなどがある。チューニングを実行することでこのうちの１つのフィルタが有効化される。さらに、平均化フィルタ、膨張フィルタ、収縮フィルタおよびアンシャープマスクフィルタといった４つのフィルタがさらに有効化または無効化されて、拡張バンク７５が作成される。これは２次元コードを構成するセル（ドット）のボケ、位置ずれ、ワークの傷、ドット細りに対して２次元コードの読み取り成功率を向上させるであろう。
【００４５】
ただし、２次元コードがバーコードである場合、これらのフィルタの設定を変更するとバーの太さが変化してしまうため、かえって読み取り成功率が低下しうる。よって、バーコードが読み取り対象である場合、演算部６３は、基準バンク７４におけるフィルタ設定を変更せずに、そのままコピーして拡張バンク７５を作成する。
【００４６】
●フィルタ回数
フィルタ回数とは、２次元コードの画像データに対してフィルタ処理を繰り返し適用する回数である。フィルタ回数は、たとえば、１回〜３回の間で可変される。これは２次元コードを構成するセル（ドット）のボケ、位置ずれ、ワークの傷、ドット細りに対して２次元コードの読み取り成功率を向上させるであろう。
【００４７】
●偏光フィルタ
基準バンク７４で偏光フィルタが無効となっている場合、演算部６３は、偏光フィルタを有効化し、拡張バンク７５を生成する。とくに外光等によってハレーションが発生している場合、偏光フィルタによってハレーションが軽減され、２次元コードの読み取り成功率が向上しようする。
（２）変更されないパラメータ
●コード種
基準バンク７４でコード種がＱＲコードに設定されていれば、拡張バンク７５でもコード種はＱＲコードに設定される。コード種が変更されることはほとんどないからである。
【００４８】
●読取桁数
読取桁数も通常は変更されないからである。
【００４９】
●モデル・コードバージョン
モデル・コードバージョンも通常は変更されないからである。
【００５０】
●偏光フィルタ
基準バンク７４で偏光フィルタが有効となっている場合、演算部６３は、偏光フィルタをそのまま有効化し、拡張バンク７５を生成する。偏光フィルタを無効化したとしても、読み取り成功率が向上する可能性は低いので、拡張バンクにおいても偏光フィルタをそのまま有効としておく。
【００５１】
●白黒反転
２次元コードの各ドットの白黒の割り当ては固定されており、通常は変更されないからである。
【００５２】
●左右反転
２次元コードの印刷の向きは固定されており、通常は変更されないからである。
【００５３】
＜拡張バンクの生成方法＞
図１１は拡張バンクの生成方法の一例を示す図である。図１１に示すように、基準バンク７４には読取条件のパラメータの一例として明るさレベル、エッジ強度、タイムアウト時間、フィルタの種類およびフィルタ回数が含まれている。調整ルール７６にはこれらのパラメータの調整方法が記されている。なお、「−」の記号はパラメータを変更しないことを意味する。この例では９個の調整ルール（パラメータテーブル）が用意されているため、演算部６３は、９個の拡張バンク７５を作成できる。
【００５４】
ここでは、説明の便宜上、明るさレベルは０から１８４までの値をとるものと仮定する。基準バンク７４の明るさレベルは５０であり、１番の調整ルールでは相対光量として０が設定されている。よって、１番の拡張バンク７５の明るさレベルは５０である。１番の調整ルール７６によれば、エッジ強度、タイムアウト時間、フィルタ、フィルタ回数は変更されない。１番の拡張バンク７５のエッジ強度、タイムアウト時間、フィルタ、フィルタ回数には、基準バンク７４のエッジ強度、タイムアウト時間、フィルタ、フィルタ回数がそのままコピーされる。同様に、２番の調整ルール７６では相対光量として２が設定されている。よって、２番の拡張バンク７５の明るさレベルは５２である。４番の調整ルール７６のエッジ強度は１６であるため、４番の拡張バンク７５のエッジ強度は１６に設定される。４番の調整ルール７６のタイムアウト時間は＋２０ミリ秒であるため、４番の拡張バンク７５のタイムアウト時間は５０ミリ秒に２０ミリ秒を加算し、７０ミリ秒に設定される。７番の調整ルール７６のフィルタ回数は２回であるため、７番の拡張バンク７５のフィルタ回数は２回に変更される。９番の調整ルール７６のフィルタは収縮フィルタであるため、９番の拡張バンク７５のフィルタは収縮フィルタに変更される。
【００５５】
このように演算部６３は調整ルール７６に従って基準バンク７４のパラメータを調整して拡張バンク７５を生成する。チューニング部６５が基準バンク７４を作成したときに、演算部６３が拡張バンク７５を作成してもよい。しかし、この場合は記憶部７０に複数の拡張バンク７５を保存するための記憶領域が必要になる。そこで、基準バンク７４での読み取りに失敗したときに、演算部６３がリアルタイムで１つの拡張バンク７５を作成し、撮像素子３１およびデコード部５３に読み取りを実行させる。もし、１つ目の拡張バンク７５でも読み取りに失敗すると、演算部６３が２番目の拡張バンク７５を作成し、撮像素子３１およびデコード部５３に読み取りを実行させてもよい。このようにすることで、拡張バンク７５の記憶領域としては少なくとも１つの拡張バンク７５を記憶する領域が記憶部７０に存在すればよい。
【００５６】
＜拡張バンクのオルタネート＞
上述したように複数の調整ルール７６を基準バンク７４に適用することで複数の拡張バンク７５が生成される。そこで、演算部６３は、各バンクに優先度（優先順位）を付与してもよい。たとえば、基準バンク７４は常に最初に試行されるバンクであるため、最も高い優先度が付与される。複数の拡張バンク７５のうち２次元コードの読み取りに成功したバンクについては、読み取りに成功した数に応じて２番目以降の優先度が割り当てられる。なお、拡張バンク７５に対する優先度の割り当ては、調整ルール７６に対する優先度の割り当てと同義である。このように演算部６３は拡張バンク７５（または調整ルール７６）をソーティングすることができる。読み取りに成功したバンクは次も読み取りに成功する確率が高いといえる。よって、このような優先度にしたがって拡張バンク７５を使用することで、２次元コードの読み取りに要するトータルの処理時間を削減できるようになろう。
【００５７】
＜リトライ回数＞
上述したように基準バンク７４や複数の拡張バンク７５には優先度が設定されうる。ところで、２次元コードの読み取り処理は何回かリトライされてもよい。リトライを実行することでバンクを変更しなくても読み取りに成功することがあるからである。これにより、バンクの切り替え処理を省略できるため、さらにトータルでの読み取り時間を削減可能となろう。
【００５８】
たとえば、演算部６３は、優先度が１番目に高い基準バンク７４のリトライ回数を最大値（例：３回）に設定する。また、演算部６３は、優先度が２番目に高い拡張バンク７５のリトライ回数と３番目に高い拡張バンク７５のリトライ回数をそれぞれ２回に設定する。また、演算部６３は、優先度が４番目に高い拡張バンク７５のリトライ回数を１回に設定する。これらのリトライ回数は例示にすぎず、優先度が高ければリトライ回数が多くなるような傾向があれば十分である。
【００５９】
このように優先度の高いバンクほどリトライ回数が高くなるように設定されてもよい。これにより読み取り成功率の高そうなバンクほど多くリトライされることになる。
【００６０】
上述した実施形態では、基準バンク７４の優先度を常に最高に設定しているが、基準バンク７４を含めて優先度を変更してもよい。これにより拡張バンク７５であっても最高の優先度を割り当て可能となる。読取成功率やマッチングレベルについて拡張バンク７５が基準バンク７４を上回る場合に、このような優先度の割り当ては有用であろう。
【００６１】
なお、ソーティングを施す前の初期状態では明るさレベルを変更する拡張バンク７５の優先度を高く設定してもよい。明るさは２次元コードの画像データの絵づくりに及ぼす影響が大きいからである。ただし、明るさレベルの変更は絵づくりへの影響が大きいため、１０％ずつ緩やかに変更させて、複数の拡張バンク７５を作成することにしてもよい。また、明るさレベルの次にフィルタの種類が絵づくりに影響を与える。そこで、フィルタの種類を変更する拡張バンク７５の優先度を、明るさレベルを変更する拡張バンク７５の優先度の次の優先度を割り当ててもよい。
【００６２】
＜フローチャート＞
図４に示したようなユーザインタフェースを通じてユーザはチューニングモードの実行を指示したり、運用モードの実行を指示したりする。チューニング部６５はチューニングモードの実行指示が入力されると、チューニングを実行し、基準バンク７４を決定し、記憶部７０に格納する。より具体的に説明すると、チューニング部６５は、読取条件（例：明るさレベル、エッジ強度、タイムアウト時間、フィルタの種類、フィルタ回数）を変えながら実際に基準となるワーク２を撮像素子３１で撮像し、デコード部５３でデコードし、デコード結果に基づきマッチングレベル（または読み取り成功率）を算出する。チューニング部６５は、マッチングレベル（または読み取り成功率）が最大となるように、読取条件を構成している各パラメータを調整する。これによりワーク２について試行した読取条件のうちで最も適切と考えられる読取条件が決定され、基準バンク７４として保持される。
【００６３】
図１２は運用モードの各工程を示すフローチャートである。演算部６３は運用モードの実行指示が入力されると、本フローチャートにしたがって２次元コードの読み取り処理を実行する。
【００６４】
Ｓ１で演算部６３は記憶部７０から基準バンク７４を読み出し、基準バンク７４に含まれている撮像条件のパラメータを撮像制御部６２に設定し、画像処理条件のパラメータをデコード部５３に設定する。なお、基準バンク７４よりも優先度の高い拡張バンクが存在する場合は、この拡張バンクが使用されてもよい。撮像制御部６２は撮像条件に応じて撮像素子３１の露光時間や照明部５２の光量などを設定する。また、デコード部５３は、画像処理条件に応じて画像データに適用するべきフィルタとフィルタ回数を決定する。
【００６５】
Ｓ２で演算部６３は撮像制御部６２に撮像を指示する。撮像制御部６２はワーク２に付与された２次元コードの撮像を実行し、画像データ７２を生成し、デコード部５３に渡す。デコード部５３は画像処理条件に応じてデコードを実行し、デコード結果７１を演算部６３に出力する。
【００６６】
Ｓ３で演算部６３はデコード結果に基づき２次元コードの読み取り（デコード）に失敗したかどうかを判定する。２次元コードの読み取りに成功したのであれば、本フローチャートに係る読み取り処理を終了する。なお、次のワーク２についての読み取りについては再度ステップＳ１から各ステップが実行される。一方で、２次元コードの読み取りに失敗したのであれば、Ｓ４に進む。なお、２次元コードの読み取りに成功したかどうかを判定するのではなく、マッチングレベルが閾値を下回ったかどうかを判定してもよい。
【００６７】
Ｓ４で演算部６３は記憶部７０から優先度に応じて拡張バンク７５を読み出して、拡張バンク７５に含まれている撮像条件のパラメータを撮像制御部６２に設定し、画像処理条件のパラメータをデコード部５３に設定する。なお、拡張バンク７５をＳ４で作成してもよい。この場合、演算部６３は記憶部７０から優先度に応じて調整ルール７６を読み出し、調整ルール７６にしたがって基準バンク７４のパラメータを修正して拡張バンク７５を作成する。
【００６８】
Ｓ５で演算部６３は撮像制御部６２に撮像を指示する。撮像制御部６２は拡張バンク７５のパラメータにしたがってワーク２に付与された２次元コードの撮像を実行し、画像データ７２を生成し、デコード部５３に渡す。デコード部５３は拡張バンク７５により指定されている画像処理条件に応じてデコードを実行し、デコード結果７１を演算部６３に出力する。
【００６９】
Ｓ６でデコード結果に基づき２次元コードの読み取り（デコード）に失敗したかどうかを判定する。なお、２次元コードの読み取りに成功したかどうかを判定するのではなく、マッチングレベルが閾値を下回ったかどうかを判定してもよい。２次元コードの読み取りに成功したのであれば、Ｓ７に進む。Ｓ７で演算部６３は読み取りに成功した拡張バンク７５の優先度を更新する。たとえば、演算部６３は拡張バンク７５の優先度を上げ、本フローチャートに係る読み取り処理を終了する。次のワーク２については、再びＳ１から各工程が実行される。なお、その際には、読み取りに成功した拡張バンク７５が用いられてもよいし、基準バンクが用いられてもよい。たとえば、優先度に応じてどちらのバンクが使用されるかが決定されてもよい。一方、２次元コードの読み取りに失敗したのであればＳ８に進む。
【００７０】
Ｓ８で演算部６３はその拡張バンク７５についてのリトライ回数が閾値（リトライ回数の上限値であり、たとえば、３回など）未満であるかどうかを判定する。リトライ回数が閾値以上であれば、次の拡張バンク７５を用いた読み取りを試行するためにＳ４に戻る。一方で、リトライ回数が閾値未満であればＳ９に進む。Ｓ９で演算部６３はその拡張バンク７５についてのリトライ回数を１つインクリメントし、Ｓ５に戻る。Ｓ５においてその拡張バンク７５を再度用いて２次元コードの読み取りが実行される。
【００７１】
なお、すべて拡張バンク７５を用いても２次元コードの読み取りに失敗した場合、コードが読み取れていない状態で終了処理が指定されると、演算部６３は、通信部５４を通じてコンピュータ４またはＰＬＣ５に読み取り失敗通知を送信する。２次元コードの読み取りに成功した場合、演算部６３は、通信部５４を通じてコンピュータ４またはＰＬＣ５に読み取り成功通知（デコードした文字列を含む）を送信する。
【００７２】
図４に示したようなユーザインタフェースを通じてユーザにより運用モードの終了が指示されると、演算部６３は本フローチャートに係る読み取り処理を終了する。
【００７３】
また、Ｓ２やＳ５ではバンクにより設定されたタイムアウト時間が経過するまで読み取りが試行され、タイムアウト時間が経過しても読み取りに成功できないときに、演算部６３は読み取り失敗と判定してもよい。
【００７４】
＜拡張バンクの削減＞
画像データの絵づくりに関連したパラメータとしては、上述したように明るさレベル、フィルタの種類、フィルタ回数などがある。たとえば、明るさレベルが全部で１５レベルあり、フィルタの種類は７種類であり、フィルタ回数が１〜３回であったと仮定する。これらの組み合わせは３１５通りある。フィルタを用いない組み合わせは１５通りあるため、全体では３３０通りがある。つまり、これだけでも３３０個の拡張バンク７５を生成できる。しかし、そのすべてについて読み取りを試行することは難しい。１つの拡張バンク７５を試すのに１００ミリ秒の時間が必要と仮定すると、３３０個の拡張バンク７５をすべて試すのに３３秒の時間が必要となってしまう。そこで、拡張バンク７５の数を削減する工夫が必要となる。
【００７５】
●明るさレベルとフィルタの組み合わせは試さない
明るさレベルの変更が有効な「コントラスト変化」の発生要因と、フィルタの変更が有効な「ボケ・ドット位置ずれ・ワーク傷・ドット細り」の発生要因は、経験上、異なることが多い。たとえば、打刻機が揺れてドットずれが起きた場合、印刷の濃さ（ドットのサイズ）は変わらない。よって、明るさレベルの変更は不要である。焼入れ処理でコントラストが変わっても、ドットサイズは変わらない。そのため、フィルタの変更は不要である。そこで、基準バンク７４と比較して明るさレベルが変更され拡張バンク７５では、フィルタの種類とフィルタ回数を変更しないことにする。また、基準バンク７４と比較してフィルタの種類とフィルタ回数が変更される拡張バンク７５では、明るさレベルを変更しないことにする。
【００７６】
●バーコードではフィルタは変動させない
読み取り対象のコード種がバーコードの場合、フィルタを掛けるとバーの太さが変化し、かえって誤読確率が増加することがある。よって、フィルタは変動条件に含めない。よって、バーコード用の拡張バンク７５では基準バンク７４と比較してフィルタの種類と回数を変更しないことにする。
【００７７】
これらの制限を課すことで、たとえば、２次元コード用の拡張バンク７５の数を１４＊２＋５＊３  ＝  ４３個まで削減できる。また、バーコード用の拡張バンク７５の数を１４＊２  ＝  ２８個まで削減できる。
【００７８】
＜偏光フィルタ＞
上述したように基準バンク７４において偏光モードが有効となっている場合、拡張バンク７５では偏光モードをそのまま有効とする。一方で、基準バンク７４において偏光モードが無効となっている場合、拡張バンク７５では偏光モードから無偏光モードに変更する。これにより、基準バンク７４ではハレーション等が原因で読み取りに失敗しても、拡張バンクでは偏光フィルタによってハレーション等を軽減し、読み取り成功率が向上するだろう。
【００７９】
さらに偏光フィルタに関しても拡張バンク７５の数を削減することが可能である。上述したように偏光フィルタ９１が照明部５２に設けられることで光量が半分になる。たとえば、明るさレベルを５０％削減することは、偏光フィルタを無効から有効に変えることと同義である。
【００８０】
ところで、明るさレベルは少量ずつ徐々に変化させることが好ましい。急激に明るさが変化すると、ユーザは故障が発生したのかと心配するかもしれないからである。そのため、たとえば、基準バンク７４の明るさレベルに対して１０％ずつ変化せることが望ましい。
【００８１】
図１３は拡張バンクの番号と基準バンクの明るさレベルに対する変更量（％）との関係を示す図である。図１３によれば基準バンク７４の明るさレベルに対して＋１０％ずつ明るさレベルを増加させる。明るさレベルが＋７０％に達すると、今度は−７０％になるまで、−１０％ずつ明るさレベルを減少させる。図１３から明らかなように、０％から＋７０％までの増加区間（実線部分）と＋７０％から０％までの減少区間（破線部分）とでは、それぞれ光量が等しい。たとえば、増加区間と減少区間とで＋１０％がそれぞれ１回ずつ存在する。そこで、増加区間で偏光フィルタ９１が無効であれば、減少区間では偏光フィルタ９１を有効とする。これにより拡張バンク７５の数を増やすことなく、読み取り条件のバリエーションを増加させることが可能となる。
【００８２】
図１３が示すように、基準バンク７４の明るさレベルと比較して、明るさレベルが低下される区間（０％〜−７０％）では偏光フィルタ９１を有効にしていない。これは、偏光フィルタ９１を挿入すると明るさレベルが減少してしまうからである。
【００８３】
＜まとめ＞
本実施形態によれば、チューニング部６５は、チューニングモードにおいて、基準となるワークに設けられたコードを撮像素子３１に撮像させ、撮像素子３１により取得されたコードの画像データをデコード部５３にデコードさせ、デコード部５３のデコード結果に基づき、読取条件を構成する複数のパラメータのセットである基準バンク７４を決定する。演算部６３は、運用モードにおいて、ライン１を搬送される複数のワーク２について基準バンク７４を用いてコードを読み取る。基準バンク７４を用いて取得されたデコード結果（読み取り成功率やマッチングレベルなど）が所定の結果（閾値など）を下回ると（たとえば、コードの読み取りに失敗すると）、演算部６３は、基準バンク７４を構成している複数のパラメータのうちの少なくともいくつかのパラメータを、予め定められた調整ルールにしたがって調整することで拡張バンク７５を生成する。その後、拡張バンク７５が適用されるコードの読み取りが継続される。このように拡張バンク７５を導入することで、再度のチューニングを実行することなく、ワーク２に付与されたコードの読み取り精度を向上させることができる。
【００８４】
図１１などを用いて説明したように、拡張バンク７５を決定するために調整されるパラメータは、基準バンク７４を構成している複数のパラメータのうちの一部である。したがって、再度チューニングを実行して基準バンク７４を作成するよりも短い時間で拡張バンク７５を作成できる。たとえば、演算部６３は、基準バンク７４を構成する複数のパラメータのうちの一部について調整して拡張バンク７５のパラメータを生成し、基準バンク７４を構成する複数のパラメータのうちの残りの一部については調整せずにコピーして拡張バンク７５のパラメータを生成してもよい。
【００８５】
図１１などを用いて説明したように、基準バンク７４を構成する複数のパラメータのうち調整されるパラメータの１つはコードの画像の明るさに関連したパラメータである。基準バンク７４を構成する複数のパラメータのうち調整されずに拡張バンク７５へコピーされるパラメータの１つはコードの種類を特定するパラメータである。明るさに関連したパラメータは画像データの絵づくりに大きな影響を及ぼすため、これを調整することでコードの読み取り成功率の向上が期待できる。一方で、コードの種類が変更されることは基本的に想定されない。同一の製品であるにもかかわらず、コードの種類を変更してしまうと、製品管理が複雑になってしまうからである。
【００８６】
基準バンク７４を構成する複数のパラメータのうち調整されずに拡張バンク７５へコピーされるパラメータには、コードのコード種と、コードの読取桁数と、コードの画像データについて白黒反転処理を適用するかどうかを示すパラメータと、コードの画像データについて左右反転処理を適用するかどうかを示すパラメータと、コードのバージョンを特定するパラメータとのうち少なくとも１つが含まれていてもよい。上述したようにこれらのパラメータもライン１の稼働中に変更されにくいからである。
【００８７】
基準バンク７４を構成する複数のパラメータのうち調整されるパラメータには、コードの画像データの明るさレベル、コードの画像データに関するエッジ強度、デコードの繰り返しを制限するためのタイムアウト時間、画像データに適用されるフィルタの種類、画像データに対して適用されるフィルタ処理の回数のうち少なくとも１つが含まれていてもよい。これらはいずれも絵づくりに影響を与えるからである。つまり、これらはデコード部５３にとってコードの読み取りに大きな影響を及ぼす。これらのパラメータを変更することで、コードを読み取りにくい難読ワークであっても、コードの読み取りに成功する可能性が高まるであろう。
【００８８】
演算部６３は、読み取り対象のコードがバーコードであるときはいずれのフィルタも無効とするように拡張バンク７５を生成してもよい。上述したように、バーコードの画像データに対してフィルタ処理を適用すると、バーが細くなったり、太くなったりして、かえって読み取り成功率が低下することがあるからである。よって、撮像条件など他のパラメータを調整したほうが、読み取り成功率を効率よく上昇させることが可能となろう。このようにバーコードに関しては、フィルタを無効とするか、変更しないことが好ましいだろう。
【００８９】
演算部６３は、基準バンク７４において偏光フィルタ９１を通した照明光を照射する照明モード（偏光モード）が有効にされているときは拡張バンク７５においても当該照明モードを有効としてもよい。また、演算部６３は、基準バンク７４において偏光フィルタ９１を通さずに照明光を照射する照明モード（無偏光モード）が有効にされているときは拡張バンク７５においては偏光フィルタ９１を通した照明光を照射する照明モード（偏光モード）が有効となるようにパラメータを変更してもよい。これによりハレーション等の影響を緩和できるようになるため、拡張バンク７５での読み取り成功率が向上するであろう。
【００９０】
演算部６３が１つの基準バンク７４に対して生成した複数の拡張バンク７５を記憶する記憶部７０をリーダ３がさらに有していてもよい。複数の拡張バンク７５のうちデコード部５３によってデコードに成功した拡張バンク７５が優先的に使用されてもよい。上述したように、演算部６３は基準バンク７４を作成した直後に拡張バンク７５を生成してもよいし、運用モードにおいてリアルタイムで生成してもよい。上述したように、拡張バンク７５や調整ルール７６に優先度（優先順位）を付与しておき、読み取りに成功した拡張バンク７５や調整ルール７６の優先度を上げてもよい。一度でも読み取りに成功した拡張バンク７５は、次も読み取りに成功する確率が高いと考えられるからである。よって、読み取りに成功した拡張バンク７５の優先度を、読み取りに成功していない拡張バンク７５の優先度よりも高く設定することが好ましい。
【００９１】
上述したように、演算部６３は、基準バンク７４と、基準バンク７４から派生して生成された複数の拡張バンク７５とにそれぞれ優先度を設定する設定手段として機能する。デコード部５３は優先度にしがって基準バンク７４および複数の拡張バンク７５から１つのバンクを選択して適用してもよい。闇雲に拡張バンク７５を選択する場合と比較して、読み取りに成功するまでの時間を短縮することが可能となろう。
【００９２】
デコード部５３は、基準バンク７４および拡張バンク７５のそれぞれに割り当てられている優先度にしたがってデコード処理のリトライ回数を制御してもよい。とりわけ、優先度の高いバンクについては優先度の低いバンクよりもリトライ回数を増加させてもよい。優先度が過去の読み取り実績に基づいて更新される場合、読み取り実績の高いバンクをより多くリトライすることが可能となる。たとえば、外光の変化などは繰り返し発生し、その再現性も高い。よって、過去に読取に成功したバンクは、別の日にも読み取りに成功する可能性が高いのである。
【符号の説明】
【００９３】
１…ライン、２…ワーク、３…照明装置、４…カメラ、５…画像処理装置、６…入力部、７…表示部
【図１】
2018045735.tif 000003
【図２】
2018045735.tif 000004
【図３】
2018045735.tif 000005
【図４】
2018045735.tif 000006
【図５】
2018045735.tif 000007
【図６】
2018045735.tif 000008
【図７】
2018045735.tif 000009
【図８】
2018045735.tif 000010
【図９】
2018045735.tif 000011
【図１０】
2018045735.tif 000012
【図１１】
2018045735.tif 000013
【図１２】
2018045735.tif 000014
【図１３】
2018045735.tif 000015
【手続補正書】
【提出日】平成30年1月11日(2018.1.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ワークに設けられたコードを撮像する撮像手段と、
前記撮像手段により取得された画像データをデコードするデコード手段と、
前記撮像手段の撮像条件と前記デコード手段における画像処理条件とを含む読取条件を制御する読取条件制御手段とを有し、
前記読取条件制御手段は、
基準バンクを決定するチューニングモードにおいて、基準となるワークに設けられたコードを前記撮像手段に撮像させ、前記撮像手段により取得された前記コードの画像データを前記デコード手段にデコードさせ、前記デコード手段のデコード結果に基づき、前記読取条件を構成する複数のパラメータのセットである基準バンクを決定する決定手段と、
前記基準バンクを構成している複数のパラメータのうちの少なくともいくつかのパラメータを、予め定められた調整ルールにしたがって調整することで拡張バンクを生成する生成手段と
を有し、
ラインを搬送される複数のワークについて前記基準バンクを用いてコードを読み取る運用モードにおいて前記基準バンクを用いて取得されたデコード結果が前記コードの読み取り失敗であると、前記基準バンクに代えて前記撮像手段および前記デコード手段によって前記拡張バンクが使用されることを特徴とする光学的情報読取装置。
【請求項２】
前記拡張バンクを決定するために調整されるパラメータは、前記基準バンクを構成している複数のパラメータのうちの一部であることを特徴とする請求項１に記載の光学的情報読取装置。
【請求項３】
前記生成手段は、前記基準バンクを構成する複数のパラメータのうちの一部について調整して前記拡張バンクのパラメータを生成し、前記基準バンクを構成する複数のパラメータのうちの残りの一部については調整せずにコピーして前記拡張バンクのパラメータを生成することを特徴とする請求項１または２に記載の光学的情報読取装置。
【請求項４】
前記基準バンクを構成する複数のパラメータのうち調整されるパラメータの１つは前記コードの画像の明るさに関連したパラメータであり、
前記基準バンクを構成する複数のパラメータのうち調整されずに前記拡張バンクへコピーされるパラメータの１つは前記コードの種類を特定するパラメータであることを特徴とする請求項３に記載の光学的情報読取装置。
【請求項５】
前記基準バンクを構成する複数のパラメータのうち調整されずに前記拡張バンクへコピーされるパラメータには、前記コードのコード種と、 前記コードの読取桁数と、前記コードの画像データについて白黒反転処理を適用するかどうかを示すパラメータと、前記コードの画像データについて左右反転処理を適用するかどうかを示すパラメータと、前記コードのバージョンを特定するパラメータとのうち少なくとも１つが含まれていることを特徴とする請求項３または４に記載の光学的情報読取装置。
【請求項６】
前記基準バンクを構成する複数のパラメータのうち調整されるパラメータには、前記コードの画像データの明るさレベル、 前記コードの画像データに関するエッジ強度、デコードの繰り返しを制限するためのタイムアウト時間、前記画像データに適用されるフィルタの種類、前記画像データに対して適用されるフィルタ処理の回数のうち少なくとも１つが含まれていることを特徴とする請求項３ないし５のいずれか１項に記載の光学的情報読取装置。
【請求項７】
前記生成手段は、前記コードがバーコードであるときはいずれのフィルタも無効とするように前記拡張バンクを生成することを特徴とする請求項１ないし６のいずれか１項に記載の光学的情報読取装置。
【請求項８】
前記生成手段は、前記基準バンクにおいて偏光フィルタを通した照明光を照射する照明モードが有効にされているときは前記拡張バンクにおいても当該照明モードを有効とし、前記基準バンクにおいて偏光フィルタを通さずに照明光を照射する照明モードが有効にされているときは前記拡張バンクにおいては偏光フィルタを通した照明光を照射する照明モードが有効となるようにパラメータを変更することを特徴とする請求項１ないし６のいずれか１項に記載の光学的情報読取装置。
【請求項９】
前記生成手段が１つの基準バンクに対して生成した複数の拡張バンクを記憶する記憶手段をさらに有し、
前記複数の拡張バンクのうち前記デコード手段によってデコードに成功した拡張バンクが優先的に使用されることを特徴とする請求項１ないし８のいずれか１項に記載の光学的情報読取装置。
【請求項１０】
前記基準バンクと、前記基準バンクから派生して生成された複数の拡張バンクとにそれぞれ優先度を設定する設定手段をさらに有し、
前記デコード手段は前記優先度にしがって前記基準バンクおよび前記複数の拡張バンクから１つのバンクを選択して適用することを特徴とする請求項１ないし９のいずれか１項に記載の光学的情報読取装置。
【請求項１１】
前記デコード手段は、前記基準バンクおよび前記拡張バンクのそれぞれに割り当てられている前記優先度にしたがってデコード処理のリトライ回数を制御することを特徴とする請求項１０に記載の光学的情報読取装置。
【請求項１２】
ワークに設けられたコードを撮像する撮像手段と、前記撮像手段により取得された画像データをデコードするデコード手段とを有する光学的情報読取装置において前記撮像手段の撮像条件と前記デコード手段における画像処理条件とを含む読取条件を制御して前記コードを読み取る光学的情報読取方法であって、
基準バンクを決定するチューニングモードにおいて、基準となるワークに設けられたコードを前記撮像手段に撮像させ、前記撮像手段により取得された前記コードの画像データを前記デコード手段にデコードさせ、前記デコード手段のデコード結果に基づき、前記読取条件を構成する複数のパラメータのセットである基準バンクを決定する決定工程と、
前記基準バンクを構成している複数のパラメータのうちの少なくともいくつかのパラメータを、予め定められた調整ルールにしたがって調整することで拡張バンクを生成する生成工程と、
ラインを搬送される複数のワークについて前記基準バンクを用いてコードを読み取る運用モードにおいて前記基準バンクを用いてコードを読み取る工程と、
前記運用モードにおいて前記基準バンクを用いて取得されたデコード結果が前記コードの読み取り失敗であると、前記基準バンクを前記拡張バンクに切り替え、前記拡張バンクを用いてコードを読み取る工程と
を有することを特徴とする光学的情報読取方法。
【請求項１３】
請求項１ないし１１のいずれか１項に記載された光学的情報読取装置の各手段として当該光学的情報読取装置を機能させることを特徴とするプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
本発明によれば、たとえば、
ワークに設けられたコードを撮像する撮像手段と、
前記撮像手段により取得された画像データをデコードするデコード手段と、
前記撮像手段の撮像条件と前記デコード手段における画像処理条件とを含む読取条件を制御する読取条件制御手段とを有し、
前記読取条件制御手段は、
基準バンクを決定するチューニングモードにおいて、基準となるワークに設けられたコードを前記撮像手段に撮像させ、前記撮像手段により取得された前記コードの画像データを前記デコード手段にデコードさせ、前記デコード手段のデコード結果に基づき、前記読取条件を構成する複数のパラメータのセットである基準バンクを決定する決定手段と、
前記基準バンクを構成している複数のパラメータのうちの少なくともいくつかのパラメータを、予め定められた調整ルールにしたがって調整することで拡張バンクを生成する生成手段と
を有し、
前記拡張バンクは、ラインを搬送される複数のワークについて前記基準バンクを用いてコードを読み取る運用モードにおいて前記基準バンクを用いて取得されたデコード結果が前記コードの読み取り失敗であると、前記基準バンクに代えて前記撮像手段および前記デコード手段によって使用されることを特徴とする光学的情報読取装置が提供される。