(57)【要約】【課題】通常の読取処理を繰り返し行う間に、毎時の画像中の光学情報コードの質がデコード不可能な方向に変化していないか否かを判断できるようにする。【解決手段】コントローラ２は、２次元コード７をカメラ３に撮像させる処理と、得られた画像上の２次元コードの光学情報をデコードする処理とを繰り返し実行する。この読取処理においてデコードに成功すると、コントローラ２では、デコード処理の過程で行った処理の結果や２次元コードの画像データを用いて、処理対象の２次元コードの評価値を算出するとともに、この評価値の経時変化を示すグラフを表示する処理を実行する。さらにコントローラ２は、評価値を所定の警告レベルと比較し、評価値が警告レベル以下となる状態が所定回数発生したことに応じて警告信号を出力する。【選択図】　図２
2004078896.tif 000002
【特許請求の範囲】
【請求項１】
視覚認識が可能なシンボルによる光学情報コードを撮像するステップと、
前記撮像により得られた画像に所定の画像処理を施して、前記画像中の前記光学情報コードを抽出するステップと、
前記画像処理により抽出された光学情報コードに前記抽出時とは異なる画像処理を実行し、その画像処理結果に基づき前記光学情報コードの表す光学情報をデコードするステップとを、順番に実行する方法において、
前記光学情報のデコードに成功したとき、そのデコードまでに実行した処理の結果に基づき、前記画像中の光学情報コードについて所定の評価値を得るステップと、この評価値を記憶するステップと、前記評価値と過去に記憶した複数の評価値とを用いて評価値の経時変化を示すデータを出力するステップとを、実行することを特徴とする光学情報コードの読取方法。
【請求項２】
請求項１に記載された方法において、
前記評価値の経時変化を示すデータを出力するステップでは、前記データを所定の警告レベルに対比させて表示する光学情報コードの読取方法。
【請求項３】
視覚認識が可能なシンボルによる光学情報コードを撮像するステップと、
前記撮像により得られた画像に所定の画像処理を施して、前記画像中の前記光学情報コードを抽出するステップと、
前記画像処理により抽出された光学情報コードに前記抽出時とは異なる画像処理を実行し、その画像処理結果に基づき前記光学情報コードの表す光学情報をデコードするステップとを、順番に実行する方法において、
前記光学情報のデコードに成功したとき、そのデコードまでに実行した処理の結果に基づき、前記画像中の光学情報コードについて所定の評価値を得るステップと、この評価値を所定の警告レベルと比較するステップと、前記評価値が前記警告レベルに達したことを条件として、所定の態様による警告処理を実行するステップとを、実行することを特徴とする光学情報コードの読取方法。
【請求項４】
請求項１または３に記載された方法において、
前記光学情報コードを抽出するステップは、この光学情報コードに含まれる特定のパターンのモデルを前記撮像により得られた画像に走査しながら相関演算を行うステップと、前記相関演算による相関値が所定のしきい値以上となった位置を前記光学情報コードの抽出位置として特定するステップとを含んでおり、
前記評価値を得るステップでは、前記コードの抽出位置として特定された位置で得られた相関値を前記評価値として認識する光学情報コードの読取方法。
【請求項５】
請求項１または３に記載された方法において、
前記光学情報コードを抽出するステップでは、前記撮像により得られた画像から前記光学情報コードに含まれる特定のパターンを抽出する処理を実行し、
前記評価値を得るステップでは、前記光学情報コードを抽出するステップにおける特定のパターンの抽出数を用いて前記評価値を算出する光学情報コードの読取方法。
【請求項６】
請求項１または３に記載された方法において、
前記光学情報をデコードするステップには、光学情報の最小単位を示す小領域を個別に識別するステップが含まれており、
前記評価値を得るステップでは、前記小領域の識別結果と前記光学情報コードを含む画像領域内の画像データとを用いて、光学情報コードを撮像したときのフォーカス調整、光学情報コードにおけるコントラスト、小領域の大きさ、小領域内の濃度分布、コードの位置のうちの少なくとも１つにかかる評価値を算出する光学情報コードの読取方法。
【請求項７】
請求項１または３に記載された方法において、
前記光学情報をデコードするステップには、光学情報の最小単位を示す小領域を個別に識別するステップが含まれており、
前記評価値を得るステップでは、前記小領域の識別処理における誤りの度合を示す評価値を算出する光学情報コードの読取方法。
【請求項８】
請求項１または３に記載された方法において、
前記光学情報コードを撮像するステップ、前記光学情報を抽出するステップ、前記光学情報をデコードするステップの各ステップによる処理が複数サイクル実行される間に記憶された評価値を用いて、前記３つのステップによる処理がさらに所定サイクル実行された後のデコードが可能であるか否かを予測し、デコードが不可能になると予測されたとき、所定の態様による警告処理を行う光学情報コードの読取方法。
【請求項９】
視覚認識が可能なシンボルによる光学情報コードを含む画像を取得する画像取得手段と、
前記取得した画像に対し、前記光学情報コードを抽出するための画像処理を実行する画像処理手段と、
前記画像処理により抽出された光学情報コードに前記抽出時とは異なる画像処理を実行し、その画像処理結果を用いて前記光学情報コードの表す光学情報をデコードするデコード処理手段と、
前記デコード処理手段が光学情報のデコードに成功したとき、前記画像処理手段および前記デコード処理手段の少なくとも一方が実行した処理の結果に基づき、前記取得した画像中の光学情報コードについて所定の評価値を得る評価値取得手段と、
前記評価値取得手段が取得した評価値を保持するための記憶手段と、
前記記憶手段に保持された複数の評価値を用いて、評価値の経時変化を示すデータを作成して出力する経時変化出力手段とを具備して成る光学情報コード読取装置。
【請求項１０】
前記経時変化出力手段は、前記評価値の経時変化を示すデータを所定の警告レベルとともに表示する手段を含んで成る請求項９に記載された光学情報コード読取装置。
【請求項１１】
視覚認識が可能なシンボルによる光学情報コードを含む画像を取得する画像取得手段と、
前記取得した画像に対し、前記光学情報コードを抽出するための画像処理を実行する画像処理手段と、
前記画像処理により抽出された光学情報コードに前記抽出時とは異なる画像処理を実行し、その画像処理結果を用いて前記光学情報コードの表す光学情報をデコードするデコード処理手段と、
前記デコード処理手段が光学情報のデコードに成功したとき、前記画像処理手段および前記デコード処理手段の少なくとも一方が実行した処理の結果に基づき、前記取得した画像中の光学情報コードについて所定の評価値を得る評価値取得手段と、
前記評価値取得手段が取得した評価値が所定の警告レベルに達したか否かを判別する判別手段と、
前記判別手段により前記評価値が前記警告レベルに達したと判断されたときに所定の警告情報を出力する警告出力手段とを具備して成る光学情報コード読取装置。
【請求項１２】
前記画像処理手段は、前記光学情報コードに含まれる特定のパターンのモデルを前記画像取得手段が取得した画像に走査しながら相関演算を実行する手段と、前記相関演算による相関値が所定のしきい値以上となった位置を前記光学情報コードの抽出位置として特定する手段とを含み、
前記評価値取得手段は、前記光学情報コードの抽出位置として特定された位置で得られた相関値を前記デコード処理手段の処理が終了するまで保持し、前記デコード処理手段が光学情報のデコードに成功したとき、前記保持されていた相関値を前記評価値として認識する請求項９または１１に記載された光学情報コード読取装置。
【請求項１３】
前記画像処理手段は、前記画像取得手段が取得した画像から前記光学情報コードに含まれる特定のパターンを抽出するための画像処理を実行し、
前記評価値取得手段は、前記特定のパターンの抽出数を用いて、前記評価値を算出する請求項９または１１に記載された光学情報コード読取装置。
【請求項１４】
前記デコード処理手段は、光学情報の最小単位を示す小領域を個別に識別する手段を含み、
前記評価値取得手段は、前記小領域の識別結果と前記光学情報コードを含む画像領域内の画像データとを用いて、光学情報コードを撮像したときのフォーカス調整、光学情報コードにおけるコントラスト、小領域の大きさ、小領域内の濃度分布、コードの位置のうちの少なくとも１つにかかる評価値を算出する請求項９または１１に記載された光学情報コード読取装置。
【請求項１５】
前記デコード処理手段は、光学情報の最小単位を示す小領域を個別に識別する手段を含み、
前記評価値取得手段は、前記小領域の識別処理における誤りの度合を算出する請求項９または１１に記載された光学情報コード読取装置。
【請求項１６】
請求項９または１１に記載された光学情報コード読取装置において、
前記画像取得手段、画像処理手段、デコード処理手段の各手段による処理が所定サイクル実行された後の光学情報のデコードが可能であるか否かを、前記評価値記憶手段に保持された複数の評価値を用いて予測する予測手段と、
前記予測手段が前記所定サイクル実行された後の光学情報のデコードが不可能になると予測したとき、所定の態様による警告情報を出力する警告情報出力手段とを具備して成る光学情報コード読取装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、バーコードや２次元コードのように、視覚認識が可能であり、所定の情報がエンコードされたパターンを含むシンボルを、カメラ、スキャナなどにより撮像し、生成された画像中のシンボルに対する画像処理を行って、そのシンボルにより表示される情報を読み取る技術に関連する。なお、この明細書では、上記のシンボルにより表される視覚認識可能な情報（たとえば白黒、濃淡、または色彩の配列状態）を「光学情報」と呼び、前記シンボルを「光学情報コード」と呼ぶことにする。
【０００２】
【従来の技術】
バーコードや２次元コードは、光学情報の最小単位を示す白または黒の小領域を規定された方法に基づいて配置することにより種々の情報を表すように設定されている。特に２次元コードは、「セル」と呼ばれる小領域が２次元配列されているため、バーコードよりも多数の情報を表すことができる。
【０００３】
図２１（１）（２）は、それぞれ代表的な２次元コードであるデータマトリクスとＱＲコードとを示す。データマトリクスは、直交する２辺にコードの方向を示すＬ字状のファインダパターン４０が形成され、他の直交する２辺に同じくＬ字状のタイミングパターン４１が形成される。一般に、ファインダパターン４０は黒いセルを配列することで構成され、タイミングパターン４１は、白いセルと黒いセルとが交互に配列された構成をとる（以下、白いセルを「白セル」、黒いセルを「黒セル」という。）。
【０００４】
一方、ＱＲコードには、矩形状の３個の位置決めシンボル４２ａ，４２ｂ，４２ｃによるファインダパターン４２が設けられる。各位置決めシンボル４２ａ，４２ｂ，４２ｃは、複数の黒セルによる矩形パターンの周囲に白セルの枠を配置し、さらにその外側に黒セルの枠を配置して成る。これら位置決めシンボル４２ａ，４２ｂ，４２ｃは、それぞれコードの頂点に対応する位置に配備され、それぞれのシンボル４２ａ，４２ｂ，４２ｃの内側の角部を結ぶように、白セルと黒セルとが交互に配列されたＬ字型のタイミングパターン４３が形成される。
なお、データマトリクス、ＱＲコードのいずれにおいても、図示の白セルと黒セルとの関係は、背景の状態によって逆転することがある。
【０００５】
上記のような２次元コードを読み取る際には、まずエッジ抽出処理やパターンマッチング処理などによる画像処理により、画像上のファインダパターン４０，４２を抽出してコードの位置および向きを認識する。つぎに、抽出されたファインダパターン４０，４２に基づき、タイミングパターン４１，４３を検出する。そして、このタイミングパターン４１，４３での白セルと黒セルとの配列に基づき、その他のセルの位置を特定する。
【０００６】
つぎに、特定された各セルの画像データを用いて、これらのセルが表す光学情報をコンピュータで認識可能なデータ形式に変換する処理を実行する。この処理では、まず２値化処理などによって各セルが白黒いずれのセルであるかを判別し、その判別結果に応じて各セルが表す光学情報を符号化する。そして、文字など１単位分の情報を表すセルのグループ（シンボルキャラクタ）毎に、各セルのコードを配列することにより、前記情報をデコードする。また、このデコードにおいては、セルの白黒状態を判別する際に生じた誤りを訂正する処理（誤り訂正処理）も実行される。
【０００７】
上記の２次元コードは、セルの大きさを調整することによって、面積がきわめて小さな状態に形成することができる。さらに近年、レーザー光や打刻用のピンを用いて金属面の表面に直接コードをマーキングする方法（「ダイレクトマーキング」と呼ばれる。）が開発されたことから、微細な２次元コードを半永久的に消えない状態で記すことができるようになり、電子部品のような小さな対象物にも２次元コードを簡単に記すことが可能となっている。
【０００８】
このダイレクトマーキングを利用して、たとえば、工場の製品組立ラインには、２次元コードを記した部品を搬送しながら、その搬送途中で２次元コードの示す情報を読み取って、前記部品の搬送先や後工程における処理方法などを認識するようにしたシステムが導入されている。
【０００９】
上記した工場内のシステムにおいては、高精度の情報管理を行う必要があることから、システム導入時に２次元コードリーダを設置する際には、２次元コードを安定して読み取りできるような調整を行う必要がある。たとえば、セル間の境界位置や白黒状態の判別を誤ることがないように、撮像部のフォーカスや照明を調整したり、２次元コードが視野からはみ出したり、個々のセルが分解能以下の大きさになることがないように、視野の大きさを調整する必要がある。
【００１０】
従来の２次元コードリーダでは、所定回数の読取処理を行った場合の処理回数に対するデコード成功回数の比（読取率）を算出して、出力するようにしている。しかしながら、２次元コードの画像が最適な状態にある場合でも、デコード不可能な状態に近い場合でも、デコードに成功している限り、読取率は同じ値を示す。このため、ユーザーは、光学情報のデコードがどの程度の余裕度をもって行われているのか判断できず、デコードに適した画像が得られるような調整を容易に行うことができない、という問題がある。
【００１１】
下記の特許文献１には、上記の問題を解決するために、読取処理時に実行された誤り訂正の程度を示す情報を出力または表示するようにした発明が開示されている。
【００１２】
【特許文献１】
特開平９−２７４６３６号公報
【００１３】
この特許文献１では、読取処理における誤り訂正個数の最大値および最小値を求めた後、これを誤り訂正率またはその補数の最大値，最小値に換算する。そして、求められた最大値と最小値とによる数値範囲を表示することにより、誤り訂正がどの程度の割合で行われたかを認識できるようにしている。（段落［００３２］〜［００３８］，図５，図７参照。）
【００１４】
特許文献１における誤り訂正率は、誤り訂正が可能な個数（誤り訂正可能個数）に対する誤り訂正の個数の比率である。したがって、２次元コードの読取に成功しても、誤り訂正率の値が大きい場合には、読取処理における余裕度が小さくなっている、と判断することができる。
【００１５】
特許文献１には、上記誤り訂正率などの表示を、導入時のテストモードにおいて実行することが記載されている。このテストモードでは、２次元コードを静止させた状態または移動させた状態で、コードの撮像、ファインダパターンの抽出、セルの符号化、誤り訂正、デコードなどを含む一連の処理を複数回実行し、その複数回の処理における誤り訂正個数の最大値および最小値に基づき、前記表示を行うようにしている（段落［００３９］〜［００５９］，図８〜１２参照。）
【００１６】
【発明が解決しようとする課題】
特許文献１に記載された発明によれば、ユーザーは、導入時に上記のテストモードを実行することによって、どの程度の誤り訂正が行われているかを知ることができる。また、誤り訂正の度合が大きい場合には、撮像部や照明などを調整することによって、誤り訂正率を小さくし、デコードにおける余裕度を確保することができる。
【００１７】
しかしながら、工場における情報管理システムでは、多数の２次元コードを順次高速処理する必要があるので、デコードにおける余裕度は、処理を重ねるにつれて小さくなる可能性がある。余裕度が小さくなる要因としては、まず、処理対象の２次元コード自身の変化が考えられる。特に、前記したダイレクトマーキングを行う場合、マーキングに使用されるレーザーダイオードや打刻用のピンは消耗品であるので、これらが消耗してコードの状態が変化すると、画像上の濃淡度合いやセルの大きさなどが変動し、デコードが困難になるおそれがある。
【００１８】
また照明用のランプが消耗するなどの照明条件の変動によって画像の濃淡度合が変化した場合にも、同様に、デコードが困難になる可能性がある。このほか、撮像部の位置ずれによりフォーカス調整の状態や視野の大きさが変わるなど、２次元コードリーダ側で発生した要因によって、デコードが困難になる可能性もある。
【００１９】
上記した２次元コードの画像の経時劣化は、時間が経つにつれてより大きなものとなる可能性が高いので、劣化の傾向にあることを早期に発見して、消耗した部品を取り替えるなどの対応をとるのが望ましい。これに対し、特許文献１の発明では初期導入時にテストモードを実行するだけであるので、本格的な読取処理を行っている際に、２次元コードの画像の質が低下して読取不可能なレベルに近づいても、その状態をデコードが不可能になる前に検出するのは困難である。しかも、特許文献１では、コードの撮影からデコードまでの一連の動作を複数回行うことを１サイクルとして、サイクル毎にそのサイクル内で得た誤り訂正率などの範囲を出力するだけである。したがって、仮に特許文献１に開示された方法を通常の読取処理時に実行するようにしても、デコードにおける余裕度のばらつき度合を把握できる程度であり、２次元コードの画像の質が低下する傾向にあるかどうかまでを判断するのは、困難である。
【００２０】
また、一般のユーザーにとって、誤り訂正率を見ただけでその誤りの原因を把握するのは、きわめて困難であるから、原因を特定できるまでに時間がかかり、効率の良い対応をとることができない、という問題がある。
【００２１】
さらに、特許文献１における誤り訂正個数は、１つのシンボルキャラクタ毎に計数されるものである。したがって、同じシンボルキャラクタの中であれば、誤りが生じたセルが何個あっても、訂正数は「１」と数えられることになる。したがって、誤り訂正個数や誤り訂正率だけでは、２次元コードがデコードにどのくらい適しているかを正確に判別するのは困難である。
【００２２】
この発明は上記の問題点に着目してなされたもので、光学情報コードの通常の読取処理を繰り返し行う間に、毎時の画像中の光学情報コードの質がデコード不能な方向に変化していないかどうかを、常時簡単に判断できるようにして、その変化に速やかに対応できるようにすることを、目的とする。
【００２３】
【課題を解決するための手段】
以下、この発明にかかる光学情報コードの読取方法および光学情報コード読取装置について、順を追って説明する。なお、この明細書でいうところの「読取処理」とは、光学情報コードの画像を取得してからその光学情報をデコードするまでの処理全般を指すものとする。
【００２４】
（１）第１の光学情報コード読取方法
この方法では、視覚認識が可能なシンボルによる光学情報コードを撮像するステップと、前記撮像により得られた画像に所定の画像処理を施して、前記画像中の前記光学情報コードを抽出するステップと、前記画像処理により抽出された光学情報コードに前記抽出時とは異なる画像処理を実行し、その画像処理結果に基づき前記光学情報コードの表す光学情報をデコードするステップとを順番に実行する。そして前記３つのステップによる１サイクル分の処理において光学情報のデコードに成功したとき、そのデコードまでに実行した処理の結果に基づき、前記画像中の光学情報コードについて所定の評価値を得るステップと、この評価値を記憶するステップと、前記評価値と過去に記憶した複数の評価値とを用いて評価値の経時変化を示すデータを出力するステップとを、実行するようにしている。
【００２５】
上記において、光学情報コードを撮像するステップ（以下、「撮像ステップ」という。）は、レンズやＣＣＤなどの撮像素子を具備する撮像装置を用いて行うことができる。また、以下のステップにおける画像処理のために、この撮像ステップには、前記撮像素子により生成された画像をＡ／Ｄ変換する処理が含まれるのが望ましい。
【００２６】
光学情報コードを抽出するステップ（以下、「抽出処理ステップ」という。）では、少なくとも、光学情報コードの位置および向きを抽出するのが望ましい。この抽出のための最適な方法として、前記撮像ステップにより得られた画像から、光学情報コードに含まれる特定のパターンを抽出する処理を行う方法が考えられる。特定のパターンとしては、２次元コードであれば前記したファインダパターン、バーコードであれば左端のスタートキャラクタなど、同じ種類のコード間で形状が共通するパターンを使用することができる。
【００２７】
特定のパターンを抽出するための画像処理の一例として、その特定のパターンのモデルを用いたパターンマッチング処理をあげることができる。また、特定のパターンが線形のパターン、または同一の図形が直線状に並んだパターンであれば、前記画像に含まれるエッジ点を抽出した後、抽出された各エッジ点につき、濃度勾配に直交する方向に所定長さの線分を設定し、線分の重なり度合が所定の値以上となる画像領域を抽出する方法を採用することもできる。
【００２８】
光学情報コードの表す光学情報をデコードするステップ（以下、「デコード処理ステップ」という。）では、デコード対象の情報がエンコードされた領域（この明細書では、「情報表示領域」という。）の位置を認識した後、この情報表示領域において、光学情報の最小単位を示す小領域（２次元コードであればセル、バーコードであればバーまたはスペースに相当する。）を識別して、各小領域が表す光学情報を符号化することができる。さらに前記したシンボルキャラクタ毎に符号化の結果をまとめることで、前記情報表示領域内の光学情報をデコードすることができる。また、デコード処理ステップでは、シンボルキャラクタ毎に、個々の小領域に対する識別において生じた誤りを訂正する処理（誤り訂正）を行うことができる。
【００２９】
上記の撮像ステップ、抽出処理ステップ、デコード処理ステップの各ステップを順に実行することにより、１つの光学情報コードが表す光学情報をコンピュータで認識可能な情報に変換することができる。さらに、３つのステップによるサイクルを繰り返し実行することにより、複数の光学情報コードに対する読取処理を順に行うことができる。この点は、従来の光学情報コード読取方法や次に述べる第２の方法においても同様である。
【００３０】
この発明にかかる第１の方法では、上記のサイクルを繰り返し実行する過程において、デコードに成功する都度、その処理対象の２次元コードについて評価値を取得して記憶するとともに、取得した評価値と過去に記憶した評価値とを用いて、評価値の経時変化を示すデータを出力することができる。
【００３１】
なお、評価値は、詳細は後記するが、前記撮像ステップにより得られた画像中の光学情報コードがどの程度デコードに適しているかを反映するものと考えることができる。評価値を記憶するステップでは、前記撮像ステップ、抽出処理ステップ、デコード処理ステップの各ステップによる処理が所定サイクル実行される間に得られた評価値を、順次蓄積するのが望ましい。また、「評価値の経時変化を示すデータ」とは、現時点から遡って過去の所定サイクル分の処理の間に得られた評価値の推移を示すデータと、考えることができる。
【００３２】
光学情報コードのマーキングの状態や照明などの周囲環境が徐々に劣化したり、撮像部の位置ずれなどによってフォーカスや視野の調整状態が変化すると、画像中の光学情報コードの質もデコードが困難な状態に向かって変化することが予想される（以下、この変化を「光学情報コードの質の低下」という。）。上記の方法によれば、光学情報コードの読取処理を繰り返す過程において、評価値の経時変化を用いて、光学情報コードの質が低下する傾向にあるかどうかを簡単に判別することができる。よって、デコード不可能な状態になるより前に光学情報コードの質の低下を引き起こした原因を取り除いて、デコードを安定して行うことができる。
【００３３】
上記第１の光学情報コード読取方法にかかる一態様では、前記評価値の経時変化を示すデータを出力するステップにおいて、前記データを所定の警告レベルに対比させて表示させるようにしている。たとえば、評価値の経時変化を示すグラフを警告レベルを示す直線とともに表示することができる。このようにすれば、評価値の経時変化やその変化が警告レベルに近いか否かを視覚的に認識することができるので、一般ユーザーでも、光学情報コードの質が低下の方向に変化しているか否かを容易に判断することができる。
【００３４】
（２）第２の光学情報コード読取方法
この方法でも、撮像ステップ，抽出処理ステップ，デコード処理ステップの各ステップを順番に実行する。さらに、この第２の方法では、デコードに成功したとき、そのデコードまでに実行した処理の結果に基づき、前記画像中の光学情報コードについて所定の評価値を得るステップと、この評価値を所定の警告レベルと比較するステップと、前記評価値が前記警告レベルに達したことを条件として、所定の態様による警告処理を実行するステップとを、実行するようにしている。
【００３５】
評価値を求めるステップについては、第１の方法と同様であるので、ここでは説明を繰り返さない。前記所定の警告レベルは、あらかじめ、デコードを行うのに適した光学情報コードや不適切な光学情報コードを撮像し、得られた画像における評価値を求めるなどして設定することができる。なお、この警告レベルは、デコード不可能な状態にまで質が低下した光学情報コードから求めても良いが、好ましくは、デコードは可能であるが、デコード不可能な状態に近い光学情報コードから求めるのがよい。
【００３６】
前記警告処理を実行するステップでは、警報ブザーを鳴らしたり、表示装置に警告情報を表示することができる。また、この方法を実施する装置に接続される外部機器に、警告信号を出力することもできる。なお、評価値を「大」の方向に変化させることにより光学情報コードの質の低下を表す場合には、評価値が警告レベル以上または警告レベルを超える値になったときに、「警告レベルに達した」と判断することができる。また、評価値を「小」の方向に変化させることにより光学情報コードの質の低下を表す場合には、評価値が警告レベル以下または警告レベルを下回る値になったときに、「警告レベルに達した」と判断することができる。
【００３７】
上記の方法によれば、撮像ステップ、抽出処理ステップ、デコード処理ステップの各ステップによるサイクルを繰り返し実行する間に、画像中の光学情報コードの質が低下する傾向にあるか否かを常時監視し、評価値が警告レベルに達したときにユーザーや上位機器などにその旨を報知することができる。よって、読取処理に支障がなくとも、光学情報コードの質が低下する傾向を示した場合には、早期に対応して、低下の原因を取り除くことができる。
【００３８】
（３）実施態様
上記した第１、第２の光学情報コード読取方法には、いずれも、以下に示す５つの実施態様Ａ〜Ｅを適用することができる。
（３）−１　実施態様Ａ
この態様では、前記抽出処理ステップは、光学情報コードに含まれる特定のパターンのモデルを前記撮像により得られた画像に走査しながら相関演算を行うステップと、前記相関演算による相関値が所定のしきい値以上となった位置を前記光学情報コードの抽出位置として特定するステップとを含む。また、評価値を得るステップでは、前記光学情報コードの抽出位置として特定された位置で得られた相関値を前記評価値として認識するようにしている。
【００３９】
上記の抽出処理ステップでは、いわゆるパターンマッチング処理により、光学情報コードに含まれる特定のパターンを抽出することになる。画像中の特定のパターンがモデルに近い状態であれば、前記相関演算では、十分に高い相関値が得られるはずである。しかしながら、マーキング装置における部品の消耗などによって、特定のパターンの形状や濃度分布などが変化すると、相関値は小さい値に変化すると考えられる。光学情報コードが抽出できない状態になると、当然ながら、その後のデコード処理ステップを実行することもできなくなるから、相関値によって画像中の光学情報コードの質が低下する傾向にあるかどうかを、容易に判断することができる。
【００４０】
（３）―２　実施態様Ｂ
この実施態様では、前記抽出処理ステップにおいて、前記撮像により得られた画像から前記光学情報コードに含まれる特定のパターンを抽出する処理を実行する。また前記評価値を得るステップにおいて、前記抽出処理ステップにおける特定のパターンの抽出数を用いて評価値を算出するようにしている。
【００４１】
たとえば、前記したパターンマッチングにより特定のパターンを抽出するようにした場合、特定のパターンの抽出数は、前記しきい値以上の相関値が得られた回数に相当する。光学情報コードを１つずつ撮像して読取処理を行う場合、画像上に現れる特定のパターンは、１個になるはずである。しかしながら、マーキング装置の部品の劣化によって本来の光学情報コード以外のマーキングが行われたり、照明の変化によって影が生じるなどして、前記特定のパターンとして誤抽出されるノイズが発生すると、これらノイズを含む全ての抽出結果に対してデコード処理ステップが実行される。
【００４２】
上記のようなノイズが生じても、１つの光学情報コードに用意された処理時間内にデコードが完了すれば、読取には支障は生じない。しかしながら、ノイズが多くなると、特定パターンの抽出に時間を浪費してデコード処理のための時間が足らなくなり、その結果、デコードが不可能となるおそれがある。よって、この態様では、前記処理時間内に実行可能なデコード処理回数に対する特定のパターンの抽出数の比を用いるなどして、評価値を算出するのが望ましい。
【００４３】
また、この評価値は、運転時の読取処理を行う前の初期設定時に、背景状態の適正度合をチェックする目的でも使用することができる。たとえば、光学情報コードが示される対象物の表面に模様や凹凸があると、ノイズが生じる可能性も高くなるが、上記の評価値によれば、事前にノイズが読取処理に及ぼす影響をチェックできるから、できるだけ安定した状態で読取処理を行うことができるように、照明などの環境を調整することが可能となる。
【００４４】
（３）−３　実施態様Ｃ
この実施態様では、前記デコード処理ステップには、光学情報の最小単位を示す小領域を個別に識別するステップが含まれる。また、評価値を得るステップでは、前記小領域の識別結果と前記光学情報コードを含む画像領域内の画像データとを用いて、光学情報コードを撮像したときのフォーカス調整、光学情報コードにおけるコントラスト、小領域の大きさ、小領域内の濃度分布、コードの位置のうちの少なくとも１つにかかる評価値を算出する。
【００４５】
前記光学情報の最小単位を示す小領域を個別に識別するステップでは、各小領域の位置、大きさ、隣接の小領域との境界などを識別することができる。さらに前記した情報表示領域内の小領域については、それぞれその小領域の画像データに基づき、その小領域に対応する最小単位の光学情報の内容を識別することができる。なお、この識別結果は、コンピュータで認識可能な情報に変換するのが望ましい。
たとえば、２次元コードの場合であれば、上記のステップでは、前記タイミングパターンを構成する各セルを識別する処理、タイミングパターンの配列に基づき情報表示領域内の各セルの位置や大きさを識別する処理、情報表示領域内の各セルをその白黒状態に基づいて２値化する処理などを行うことができる。
【００４６】
つぎに、この態様における評価値の算出対象について簡単に説明する。フォーカス調整とは、光学情報コードを撮像するカメラなどの焦点の調整状態のことで、画像上の濃度変化を抽出するための画像処理（微分処理など）の結果を用いて、評価値を算出することができる。この評価値によれば、２次元コードのタイミングパターンやバーコードのように「白」の小領域と「黒」の小領域とが隣り合わせになっている領域において、白と黒との境界位置を明確に判別できるだけのフォーカス調整が行われているかどうかを判断することができる。
【００４７】
光学情報コードにおけるコントラストの評価値は、光学情報コードに対する照明状態の適正度合を示すものと考えることができる。この評価値は、たとえば、「白」と判断される小領域の濃度と「黒」と判断される小領域の濃度との差を用いて求めることができる。この評価値によれば、「白」の小領域と「黒」の小領域とを明瞭に判別できるだけの照明光量が確保できているかどうかを判断することができる。
【００４８】
小領域の大きさとは、前記光学情報の最小単位を示す小領域１つ１つの大きさをいう。小領域の大きさは、撮像部の視野調整によって変化するものであり、小領域の幅、面積などにより評価値を求めることができる。各小領域は、それぞれその小領域が表す光学情報を判別するのに必要な大きさ以上になるように設定する必要があり、また画像中に光学情報コードの全体像を収めることが可能な大きさ以下に設定する必要がある。よって、小領域の大きさにかかる評価値により、視野が適正であるかどうかを判断することができる。また、この評価値は、光学情報コードのマーキング状態の経時変化の影響をチェックする目的で使用することもできる。
【００４９】
小領域内の濃度分布とは、１つの小領域を構成する複数の画素間における濃度分布をいう。この場合の評価値は、たとえば、小領域内の画素の濃度値の分散値により求めることができる。
たとえば、２次元コードの読取処理では、情報表示領域内の各セルを符号化する際には、セル内の濃度平均値を求めた上で、その平均値を２値化するが、マーキング装置の部品の劣化や照明の変動などによってセル内の濃度のばらつきが大きくなると、２値化処理に誤りが生じる可能性がある。前記小領域内の濃度分布にかかる評価値によれば、マーキング状態や照明について、最小単位の光学情報に対する識別に誤りが生じるような変化が生じていないかどうかを、判断することができる。
【００５０】
コードの位置とは、撮像部の視野に対する光学情報コードの位置である。たとえば、コンベアなどにより光学情報コードが撮像部の視野に順に送り込まれる場合、前記コードの位置にかかる評価値により、視野に対する光学情報コードの位置の適正度合を判断することができる。この評価値は、たとえば、光学情報コードの抽出時などに得たコードの端点または端縁の座標に基づき、視野の端縁から光学情報コードまでの距離を算出し、その算出値をもって求めることができる。または、コードの中心点を抽出し、その抽出位置と視野の中心との間の距離の大きさを反映した評価値を設定してもよい。
【００５１】
この評価値によれば、光学情報コードの送り込み状態や撮像部の設置位置が適正であるかどうかを判断することができる。したがって、本格的な読取を開始する前の初期設定時に、撮像部の位置合わせを行ったり、光学情報コードの位置ずれのばらつきをチェックするのに使用することができる。
【００５２】
上記の態様において、たとえば、上記した５種類の対象すべてについて評価値を求め、各評価値の経時変化を切り替えて出力するようにすれば、いずれの評価値の経時変化が劣化したかによって、画像中の光学情報コードの質を低下させた具体的な原因を判断することが可能になる。よって、その原因を速やかに取り除いて、光学情報コードの質を回復することができる。
また、初期設定時などに撮像部や照明の設定の適否を確認する場合には、上記の評価の対象の中からユーザーが必要とするものを選択して、複数サイクル分の読取処理を行うことにより、目的とする確認処理を容易に実行することができる。勿論、この場合には、すべての評価値を求めるようにしてもよい。
【００５３】
（３）−４　実施態様Ｄ
この実施態様では、前記デコード処理ステップには、光学情報の最小単位を示す小領域を個別に識別するステップが含まれる。また、評価値を得るステップでは、前記小領域の識別処理における誤りの度合を示す評価値を算出する。
【００５４】
光学情報の最小単位を示す小領域を個別に識別するステップでは、前記した実施態様Ｃと同様に、各小領域の位置、大きさ、隣接の小領域との境界などを識別することができる。また、前記した情報表示領域内の小領域について、その小領域に対応する最小単位の光学情報の内容を識別することもできる。
【００５５】
この態様における評価値は、たとえば、前記識別処理に誤りの生じた小領域の数を、小領域の全数、または小領域に対して実行できる誤り訂正の最大数で除算する方法により求めることができる。
【００５６】
この態様における評価値は、前記した特許文献１における誤り訂正率とは異なり、誤りが生じた小領域の数によって変化するものとなる。たとえば、誤りが生じると評価値が低くなるように評価値の算出式を設定した場合には、誤りが生じた小領域の数が増えるほど、評価値は低くなる。よって、デコードにおける余裕度を精度良く反映した評価値が得られることになり、画像中の光学情報コードの質が、デコード不可能な方向に変化しているのを早期に見つけることができる。なお、この態様を２次元コードの読取に適用する場合、識別に誤りが生じたセルの抽出は、情報表示領域内のセルに限らず、ファインダパターンやタイミングパターンを構成するセルも、対象に含めることができる。
【００５７】
（３）−５　実施態様Ｅ
この実施態様では、前記撮像ステップ、抽出処理ステップ、デコード処理ステップの各ステップによる処理が複数サイクル実行される間に記憶された評価値を用いて、前記３つのステップによる処理がさらに所定サイクル実行された後のデコードが可能であるか否かを予測し、デコードが不可能になると予測されたとき、所定の態様による警告処理を行うようにしている。上記の予測処理では、たとえば、過去の複数サイクル分の評価値からその変化の状態に近似する直線または曲線を設定し、その直線または曲線上で所定サイクルが経過した時点に対応する値を所定のしきい値と比較する。なお、直線や曲線の設定は、個々の評価値に限らず、所定期間毎の評価値の平均値または評価値を算出する毎に得られる移動平均値に基づいて行ってもよい。
【００５８】
上記の態様によれば、現在の読取処理に問題がなくとも、所定サイクル先の読取処理においてデコードが不可能な状態にまで光学情報コードの質が低下する可能性がある場合に、ユーザーにその旨を知らせることができる。また、予測に使用した評価値の種類によって、光学情報コードの質が低下した原因を判断することも可能である。
【００５９】
（３）−６　その他
上記第１、第２のいずれの方法においても、上記Ａ〜Ｅの実施態様に掲げた複数の評価の対象についてユーザーの選択を受け付け、選択された態様に対応する評価値を求めることができる。または、読取処理の成功に応じてすべての評価値を求めるが、経時変化を示すデータの出力や警告レベルとの比較については、選択されたものに限定して行うようにしてもよい。このようにすれば、ユーザーの目的や光学情報コードの質の低下を招く可能性の高い要因によって、出力や比較の対象の評価値を変更することができ、光学情報コードの質の低下についての判断をより的確に行うことができる。
【００６０】
（４）第１の光学情報コード読取装置
この光学情報コード読取装置は、前記第１の光学情報コードの読取方法を実施するためのもので、視覚認識が可能なシンボルによる光学情報コードを含む画像を取得する画像取得手段と、前記取得した画像に対し、光学情報コードを抽出するための画像処理を実行する画像処理手段と、前記画像処理により抽出された光学情報コードに前記抽出時とは異なる画像処理を実行し、その画像処理結果を用いて前記光学情報コードの表す光学情報をデコードするデコード処理手段と、前記デコード処理手段が光学情報のデコードに成功したとき、前記画像処理手段および前記デコード処理手段の少なくとも一方が実行した処理の結果に基づき、前記取得した画像中の光学情報コードについて所定の評価値を得る評価値取得手段と、前記評価値取得手段が取得した評価値を保持するための記憶手段と、前記記憶手段に保持された複数の評価値を用いて、評価値の経時変化を示すデータを作成して出力する経時変化出力手段とを具備する。
【００６１】
画像取得手段は、少なくともカメラなどの撮像部により生成された画像を入力する入力インターフェースを具備する。また、アナログ画像信号が入力される場合には、画像取得手段には、Ａ／Ｄ変換回路を含ませるのが望ましい。
【００６２】
画像処理手段、デコード処理手段、評価値取得手段は、それぞれ前記抽出処理ステップ、デコード処理ステップ、評価値を得るステップを実行するためのプログラムを組み込んだコンピュータにより構成することができる。各手段は１つのコンピュータにより構成することができる。また、各手段のうち、画像処理手段およびデコード処理手段の中の画像処理を行う機能については、別体のコンピュータまたは画像処理専用のハードウェア回路により構成することもできる。
【００６３】
前記記憶手段は、上記したコンピュータ内のメモリに設定するのが望ましい。また、この記憶手段には、評価値の種類毎に、それぞれ所定回数分の評価値を蓄積できるだけの容量を持たせるのが望ましい。蓄積数は可変としても良いが、所定の上限値を設けておき、蓄積数がこの上限値を超える場合には、最も古い評価値のデータを消去するようにしてもよい。
【００６４】
経時変化出力手段は、後記する表示装置のほか、評価値の経時変化を示すデータを外部機器に出力するインターフェース回路とすることもできる。
【００６５】
上記構成において、画像取得手段が光学情報コードを含む画像を取得する都度、画像処理手段およびデコード処理手段が順に動作し、前記光学情報コードの表す光学情報がデコードされる。このデコードに成功したとき、評価値取得手段は処理対象の光学情報コードについて所定の評価値を求める。ここで得られた評価値は、記憶手段に保持されるとともに、この記憶手段内の過去の評価値とともに経時変化を示すデータに作成され、表示その他の方法により出力される。
【００６６】
この第１の光学情報コード読取装置については、経時変化出力手段に、前記評価値の経時変化を示すデータを所定の警告レベルとともに表示する手段を含ませることができる。この表示は、グラフ表示により行うのが望ましいが、これに限らず、数値表示を行うようにしてもよい。
【００６７】
（５）第２の光学情報コード読取装置
この光学情報コード読取装置は、前記した第２の光学情報コードの読取方法を実行するもので、第１の光学情報コード読取装置と同様の画像取得手段、画像処理手段、デコード処理手段、評価値取得手段を具備する。さらに、この装置は、前記評価値取得手段が取得した評価値が所定の警告レベルに達したか否かを判別する判別手段と、前記判別手段により前記評価値が前記警告レベルに達したと判断されたときに所定の警告情報を出力する警告出力手段とを具備する。
【００６８】
前記判別手段は、比較処理のためのプログラムが組み込まれたコンピュータにより構成するのが望ましい。警告出力手段は、評価値が警告レベルに達したときにブザーやランプを作動させる手段として構成することができる。また、第１の光学情報コード読取装置における経時変化出力手段と同様に、外部機器に判別結果や警告情報を出力することもできる。また、たとえば「ＯＫ」「ＮＧ」のような情報を表示するなど、判別手段の判別結果を常に出力するようにしてもよい。
【００６９】
（６）光学情報コード読取装置の実施態様
第１，第２の各光学情報コード読取装置では、いずれも、前記光学情報コード読取方法に示した実施態様Ａ〜Ｅにかかる方法を実施することができる。この場合の光学情報コード読取装置には、各態様に示した評価の対象について、ユーザーの選択を受け付けるための手段を付加し、評価値取得手段を、選択された対象についての評価値を取得するように設定することができる。または、評価値取得手段にすべての対象に対する評価値を取得させ、経時変化出力手段や判別手段の処理対象を前記選択操作に応じて限定するようにしてもよい。
【００７０】
なお、評価の対象の選択を受け付ける手段は、外付けのコンソール，装置本体に設けられた選択スイッチなどによる選択操作を受け付けるように構成することができる。また外部機器から選択結果を示すデータを受け付けるように設定することもできる。
【００７１】
また、第１，第２の各光学情報コード読取装置において、経時変化出力手段や警告出力手段を表示を行う手段として構成した場合、処理対象の光学情報コードの画像やその読取結果をともに表示することができる。
【００７２】
さらに、第１，第２の各光学情報コード読取装置には、前記光学情報コードを撮像する撮像部（カメラ，スキャナなど）や、光学情報コードの読取結果などを表示するためのモニタを接続することができる。あるいは、これら撮像部やモニタを一体化した装置として構成することもできる。
【００７３】
このような光学情報コード読取装置は、２次元コードリーダのほか、１次元バーコード用のバーコードリーダとして構成することができる。またこれらのコードに限らず、所定の情報を表示する種々のシンボルを処理対象とすることもできる。
【００７４】
【発明の実施の形態】
以下、この発明にかかる光学情報コード読取装置の一実施形態である２次元コードリーダについて、詳細に説明する。
【００７５】
（１）２次元コードリーダの構成および機能
図１は、この発明にかかる２次元コードリーダ１の構成を示す。図中、レンズ１０１および撮像素子（ＣＣＤ）１０２は、２次元コード７を撮像するためのもの、照明ランプ６は、処理対象の２次元コード７を照明するためのものである。
【００７６】
さらに、この２次元コードリーダ１には、撮像制御部１０４、照明制御部１０５、トリガ入力部１０６、Ａ／Ｄ変換部１０７、画像記憶部１０８、画像処理部１０９、デコード処理部１１０、評価値算出部１１１、判定処理部１１２、出力処理部１１３などを具備する。また、図中の１１は、この２次元コードリーダ１の動作を制御する上位システムであり、パーソナルコンピュータやプログラマブルコントローラ（ＰＬＣ）などにより構成される。また、モニタ４は、後記するように、２次元コードリーダ１の構成要素として設定することもできる。
【００７７】
トリガ入力部１０６は、上位システム１１から撮像開始を指示するトリガ信号を受け付ける。このトリガ信号は、撮像制御部１０４および照明制御部１０５に与えられる。これにより、照明ランプ６による照明の下でＣＣＤ１０２が作動し、２次元コード７が撮像される。
【００７８】
ＣＣＤ１０２からの画像信号は、Ａ／Ｄ変換部１０７においてディジタル変換された後、画像記憶部１０８に格納される。画像処理部１０９は、画像記憶部１０８に格納された画像データ（以下、「処理対象画像」という。）から２次元コード７のファインダパターンを抽出した後、その抽出結果に基づき、処理対象画像中の２次元コードの位置や傾きを判別する。また画像処理部１０９は、タイミングパターンを抽出し、その配列に基づき、コード内の各セルの位置、大きさを認識する。さらに２値化処理などにより、各セルが黒セル、白セルのいずれであるかの判別や、セルの大きさを判別する処理などを実行する。
【００７９】
デコード処理部１１０は、画像処理部１０９の処理結果に基づき、各セル毎の光学情報を符号化する。さらに、デコード処理部１１０は、これらの符号をシンボルキャラクタ毎にまとめながら、そのシンボルキャラクタの示す値（コードワード）に誤りが生じていないかどうかを判別し、誤りがある場合にはこれを訂正する。これにより、光学情報がデコードされると、そのデコード結果は出力処理部１１３に出力される。
【００８０】
評価値算出部１１１は、画像処理部１０９やデコード処理部１１０の処理結果を用いて、処理対象の２次元コードについて後記する各種の評価値を算出する。判定処理部１１２は、これらの評価値またはその平均値などのデータを用いて、処理対象画像中の２次元コードがデコード不可能な状態に向かって変化していないかどうかを判別する。
【００８１】
出力処理部１１３は、デコード処理部１１０、評価値算出部１１１、判定処理部１１２から処理結果を取り込んで前記上位システム１１やモニタ４に出力する。
【００８２】
（２）第１実施例
図２および図３は、前記２次元コードリーダ１の具体的な構成例を示す。まず、図２は、２次元コードリーダ１の外観とその使用状態を示すものである。この実施例の２次元コードリーダ１は、プリント配線基板の組立製造ラインにおける情報管理システムに組み込まれるもので、コンピュータが内蔵されたコントローラ２と、このコントローラ２にケーブル接続されるＣＣＤカメラ３（以下、単に「カメラ３」という。）とを基本構成とする。なお、コントローラ２の前面には、カメラ接続用のコネクタ８ａが２つ設けられるほか、モニタ４，コンソール５（いずれも図３に示す。）を接続するためのコネクタ８ｂ，８ｃなどが設けられる。また、カメラ３の内部には、前記した照明ランプ６が収容されている。
【００８３】
この実施例にかかる２次元コードリーダ１は、前記プリント配線基板に実装される部品９の表面にダイレクトマーキングされた２次元コード７を読み取る目的で設置される。前記カメラ３は、部品の搬送用コンベア１０（以下、単に「コンベア１０」という。）の上方に設置される。コントローラ２は、このコンベア１０の近傍位置に設置されており、前記した上位システム１１に接続される。コントローラ２は、この上位システム１１からのコマンドを受けてカメラ３を作動して前記２次元コード７を撮像させた後、その画像中の２次元コードが有する光学情報をデコードする。
【００８４】
前記コントローラ２で最終的に得られたデコード結果は、上位システム１１に送信される。なお前記２次元コード７には、部品の種類，部品番号，部品の搬送先，部品が組み付けられる基板の番号など、組立処理に必要な種々の情報が格納される。上位システム１１は、これらの情報を用いて、前記コンベア１０の経路を切り替えたり、図示しない組立ロボットにコマンドを送るなどの制御を実行する。
【００８５】
図３は、前記コントローラ２を中心とした２次元コードリーダ１のハードウェアブロック図を示す。この実施例のコントローラ２は、ＣＰＵ２１、メインメモリ２２、入出力制御部２３、画像処理部２４、モデルメモリ２５、画像メモリ２６などを主要構成として含む。前記したカメラ３、モニタ４、コンソール５、およびカメラ３内の照明ランプ６は、それぞれインターフェース回路２０３，２０４，２０５，２０６を介して入出力制御部２３に接続される。なお、カメラインターフェース回路２０３には、前記したＡ／Ｄ変換部１０７が含まれる。
【００８６】
またＣＰＵ２１は、通信インターフェース回路２０１を介して、前記上位システム１１とデータやコマンドのやりとりを実行する。前記図１のトリガ入力部１０６は、通信インターフェース回路２０１およびＣＰＵ２１におけるトリガ信号を受け付ける機能により構成されるものである。
【００８７】
前記入出力制御部２３および画像処理部２４は、ＣＰＵバス２７を介してＣＰＵ２１に接続されるとともに、画像バス２８を介して相互に画像データをやりとりできるように構成されている。カメラ３から出力された画像は、入出力制御部２３から画像処理部２４に提供されて、画像メモリ２６に格納される。この画像メモリ２６は、図１の画像記憶部１０８に対応する。画像処理部２４は、この画像メモリ２６に格納された画像をＣＰＵ２１からの指示に応じて読み出して、入出力制御部２３に提供する。
【００８８】
入出力制御部２３は、モニタ４に対し、前記画像処理部２４から提供された画像およびカメラ３から入力したリアルタイムの画像を切り替えて表示させることができる。また入出力制御部２３は、ＣＰＵ２１から画像の評価値の経時変化を示すグラフ（詳細は後記する。）を表示するためのデータの提供を受け、このグラフを前記モニタ４に表示させる。
【００８９】
メインメモリ２２は、ＣＰＵ２１の動作に必要なプログラムを格納するほか、処理の過程で生じたデータを一時保存したり、後記する評価値および警告出力に関わる設定データを記憶したり、読取処理の過程で得た評価値を順次蓄積するなどの目的で使用される。
【００９０】
モデルメモリ２５は、２次元コードのファインダパターンの検出に使用するモデルを登録するためのもので、画像メモリ２６とともに画像処理部２４に接続される。画像処理部２４は、画像処理専用のプロセッサやディジタル演算回路を具備するもので、前記図１の画像処理部１０９に対応する。
【００９１】
前記メインメモリ２２には、前記図１の撮像制御部１０４、照明制御部１０５、デコード処理部１１０、評価値算出部１１１、判定処理部１１２、出力処理部１１３の各処理部に対応するプログラムが格納される。ＣＰＵ２１は、これらのプログラムに基づく処理を実行することにより、各処理部として機能することができる。
【００９２】
この実施例の２次元コードリーダ１は、前記コンベア１０上に搬送される部品９の２次元コード７を順に読み取って出力する必要があるため、コントローラ２は、カメラ３を作動させて２次元コード７の画像を取り込む処理と、その画像の２次元コードを読み取る処理とを、高速で繰り返し実行するように設定されている。前記２次元コード７は、コンベア１０の上流において、図示しないマーキング装置により記されるものであるが、このマーキング装置の部品の消耗により、搬送される部品の２次元コードのマーキング状態がしだいに劣化する可能性がある。また、前記照明ランプ６が消耗して撮像対象の領域が暗くなるなどの変化が起こる可能性がある。このような変化が起こると、コントローラ２内に取り込まれる画像中の２次元コードの質もしだいに低下し、これを放置すると、デコード時の誤り訂正の頻度が高くなると考えられる。さらに放置を続けると、最終的にデコードを行うことが不可能となり、プリント配線基板の組立作業に支障が生じる可能性がある。
【００９３】
この実施例のコントローラ２は、上記の問題に対処するために、２次元コードの画像を取り込んで画像処理やデコード処理を実行する都度、処理対象画像における２次元コードの評価値を求めるようにしている。
ここでいう評価値とは、画像中の２次元コードが読取処理にどのくらい適しているかの度合を表すものである。なお、「読取処理」とは、デコード処理のみを指すのではなく、２次元コードの画像データの取り込みを含む一連の画像処理を意味するものとする。
【００９４】
この実施例では、図４に示すような複数種の評価項目を用意して、読取処理を開始する前に、ユーザーに、前記警告処理やグラフの表示の対象とする評価項目を選択させるようにしている。この後、読取処理が開始されると、コントローラ２は、読取処理の対象とした各画像（デコードに失敗した画像は除く。）につき、それぞれ選択された評価項目に対応する評価値を求めるとともに、この評価値の経時変化を示すグラフをモニタ４に表示するようにしている。
【００９５】
またコントローラ２は、前記評価値を所定の警告レベルと比較しており、評価値がこの警告レベル以下になる状態が所定回数発生すると、前記上位システム１１に警告信号を出力するようにしている（以下、この処理を「警告出力」という。）。上位システム１１は、この警告出力を受けると、前記コンベア１０を停止させたり、ブザーを鳴らすなどのエラー処理を実行して、部品の搬送処理を中止させるようにしている。
【００９６】
図５は、評価値の経時変化を示すグラフの表示例を示す。
図５（１）において、横軸は読取処理の回数を、縦軸は前記評価値のレベルを、それぞれ示すもので、過去複数回の評価値の推移が示されている（図中、矢印の方向に沿って、より新しい評価値が示される。）。またこのグラフには、２次元コードの質がある水準まで低下したときの評価値が警告レベルとして示されている。
【００９７】
図４に示した評価値は、いずれも処理対象画像中の２次元コードの質が好適な状態を「１００」として、２次元コードの質が読取可能な限界レベルに近づくほど値が低くなるように設定されている。図５（１）のグラフでは、ある時点から評価値が低下してゆき、Ｎ回目の評価値が警告レベルに達した状態になっている。よってユーザーは、前記グラフの表示により２次元コードが低下したことを確認して、マーキング装置の消耗した部品や照明ランプ６を取り替えるなどの対応をとることができる。またこの実施例では、仮にユーザーが２次元コードの質の低下に気づかなくとも、評価値が警告レベルを下回る状態が複数回発生すると、上位システム１１への警告出力が行われるようにしているので、ユーザーに、部品や照明ランプ６の取替が必要であることを認識させることができる。
【００９８】
図５（２）は、複数の評価項目（図中、Ａ，Ｂで示す。）が選択された場合の表示例であって、評価項目毎にそれぞれ評価値の経時変化が示されている。またこのグラフには、各評価項目毎の警告レベルが示されているので、ユーザーは、各評価値の適否を容易に判断することができる。
またこのグラフによれば、評価値が警告レベルに達するタイミングは評価項目によって異なるものとなっている。したがってユーザーは、使用するマーキング装置の種類や照明などの周囲環境に適合した評価項目を選択することにより、２次元コードの質の低下をより的確に検出することが可能となる。
【００９９】
ここで図４に示した各評価項目について、具体的な評価値の内容や算出方法を順に説明する。なお、計算式（Ａ）〜（Ｆ）は、図４中に示しているので、本文中での式の記載は省略する。
【０１００】
▲１▼　ファインダパターンの抽出精度
この実施例の画像処理部２４は、モデルメモリ２５内のファインダパターンのモデルを処理対象画像に走査しながら相関演算を実行するパターンマッチング処理を実行する。以下では、このパターンマッチングによりファインダパターンを検索する処理を「相関サーチ」という。この検索処理において、前記モデルに対する相関値が所定値以上となる画像領域が見つかると、画像処理部２４は、この画像領域をファインダパターンとして抽出する。なお、この相関サーチでは、モデルを所定角度ずつ回転させながら複数回の走査を行うことにより、ファインダパターンの位置および向きを特定することができる。
【０１０１】
ファインダパターンの抽出精度は、上記の相関サーチにおいて得られた相関値を利用して行われるもので、相関サーチ時にモデルにヒットした位置で得られた相関値をパーセント換算した値Ｒを評価値とする。
処理対象画像のファインダパターンがモデルと同様の良好な状態にあれば、相関サーチ時のヒット位置の相関値Ｒは高い値を示すはずである。一方、マーキング装置の部品の消耗によってファインダパターンの形状に歪みが生じたり、ファインダパターンの濃度分布のばらつきが大きくなるなどの劣化が生じると、前記相関値Ｒは小さい値を示すようになる。
【０１０２】
▲２▼　抽出されたファインダパターンの信頼度
この評価項目については、前記相関サーチ処理において、ファインダパターンの抽出数ＦＮを（Ａ）式にあてはめて評価値ＦＮｒａｔを算出する。この実施例では、コンベア１０上を搬送される２次元コードを次々と読取処理する必要があるため、１回の読取処理に対してあらかじめ所定の制限時間が設定されている。（Ａ）式中のＦＮｍａｘは、この制限時間内に実行できるデコード処理回数の上限値である。
【０１０３】
（Ａ）式によれば、評価値ＦＮｒａｔは、抽出数ＦＮ＝１のときに最大値の１００となり、以下、ＦＮの値が大きくなるほど、小さな値をとる。なお、ＦＮ＞ＦＮｍａｘとなった場合には、ＦＮｒａｔ＝０とする。
【０１０４】
前記２次元コードリーダ１は、２次元コードを１つずつ撮像して読取処理を行うようにしているので、画像上に現れるファインダパターンは、本来は１個のはずである。しかしながらマーキング装置の部品の劣化により、２次元コードの書込み位置以外の部分にパターンが形成されたり、コード内に傷が生じたり、照明ランプの劣化によって影が生じるなどして、画像上にファインダパターンに似た形状のノイズが生じると、これらのノイズもファインダパターンの候補として抽出される可能性がある。
【０１０５】
このようにノイズによりファインダパターンの候補が複数抽出された場合には、ＣＰＵ２１は、抽出された候補毎にデコード処理を実行し、デコードに失敗した候補をノイズとして除去する。したがって、最終的に正しいファインダパターンに対するデコード結果を出力することが可能である。ただし前記したように、１回の読取処理には所定の制限時間が設けられているので、ノイズが多くなると、ファインダパターンの相関サーチに時間を浪費してしまう。この結果、正しい２次元コードに対するデコード処理のための時間が不足し、正しい読取結果を出力できなくなるおそれがある。
【０１０６】
上記（Ａ）式による評価値ＦＮｒａｔは、ノイズが多くなるほど小さな値を示す。したがって、前記図５の方式に基づき、評価値ＦＮｒａｔを所定の警告レベルとともに示すようにすれば、ノイズが増加して２次元コードの読取が不可能になる可能性があるかどうかを容易に判断することができる。
【０１０７】
▲３▼　デコード処理の精度
この評価項目では、デコード処理時にコードワードの誤りを訂正した比率Ｐ（誤り訂正されたコードワードの数Ｃｗを誤り訂正可能なコードワード数Ｃｗｍａｘで割った値；以下「誤り訂正率Ｐ」という。）を式（Ｂ）にあてはめて評価値Ｅｒを算出する。処理対象画像中の２次元コードの状態が良好であれば、セルの白黒判定に誤りが生じる可能性は低くなるから、当然、評価値Ｅｒの値は高くなる。一方、マーキング状態の劣化や照明光量の減少などにより、誤り訂正率Ｐが大きくなると、評価値Ｅｒの値は低下する。
【０１０８】
▲４▼　セルサイズ
この評価項目による評価は、タイミングパターンの画像データを用いて行われる。タイミングパターンは、図２１に示したように、水平，垂直の各方向にそれぞれ白セルと黒セルとを交互に配置したパターンであり、コード内部の各セルの位置を特定するために使用される。
【０１０９】
この評価項目は、特に、刻印マーキングによる２次元コードを評価するのに適している。刻印マーキングでは、黒セルに対応する位置にピンを刺すことによって、部品の表面に円形状の凹部を形成する。この円形状の凹部は、一般に黒セルとして識別されるので、黒セルがドット状に配列された２次元コードが示されることになる。この実施例では、図６に示すように、タイミングパターンの方向に沿って各セルのセル幅Ｂｎ，Ｗｎ（ｎ＝１，２，３・・・）を順に検出した後、各黒セルのセル幅の平均値Ｂ、および各白セルのセル幅の平均値Ｗを求める。さらにこれらの平均値Ｂ，Ｗを、Ｂ＜Ｗのときは（Ｃ）式に、Ｂ≧Ｗのときは（Ｄ）式に、それぞれあてはめて、評価値Ｓを算出する。この（Ｃ）（Ｄ）式によれば、いずれも、Ｂ＝Ｗの場合のＳが最大値の１００となり、ＢとＷとの差が大きくなるほど、Ｓの値が小さくなる。
【０１１０】
刻印マーキングに使用するピンが良好な状態であれば、形成された２次元コードを撮像すると、図７（１）に示すように、黒セルに対応するドットが本来のセル間隔に応じた間隔をもって分布した画像が生成される。一方、連続使用によりピンの先が摩耗してしまうと、図７（２）に示すように、黒セルが肥大して白セルの部分が浸食され、白セルの認識が困難になる可能性が生じる。また反対に、黒セルの面積がしだいに小さくなっていくような変化が生じた場合には、白セルが肥大化して黒セルの認識が困難になるおそれがある。
【０１１１】
（Ｃ）式によれば、黒セルが小さくなるほど評価値Ｓの値が小さくなり、また（Ｄ）式によれば、黒セルが大きくなるほど、評価値Ｓの値が小さくなる。このように評価値Ｓによれば、セルの大きさの変化を精度良く検出できるので、黒セルの肥大化傾向や極小化傾向を簡単に把握することができる。
【０１１２】
▲５▼　画像コントラスト
この評価項目では、前記タイミングパターンの内側の領域内の画像データを用いて評価値Ｃ１を算出する（この領域は、具体的な情報がエンコードされた情報表示領域である。）。画像処理部２４は、前記タイミングパターンに基づき、コード内部のすべてのセルの座標位置を抽出しているから、情報表示領域内の各セルに対応する濃度値を画像メモリ２６から読み出して、評価値の算出のために使用することができる。この実施例では、各セルの濃度値を抽出した後、黒セルの平均濃度値ＱＢと白セルの平均濃度値ＱＷとをそれぞれ求め、これら平均濃度値ＱＢ，ＱＷを（Ｅ）式にあてはめて評価値Ｃ１を算出する。なお、（Ｅ）式において、Ｔは、画像データの階調に対応する数値であって、たとえば画像データが８ビット構成であれば、Ｔ＝２５６となる。また階調は、黒レベルから白レベルに向かって値が大きくなるものとする（第２実施例でも同じ。）。
【０１１３】
上記の（Ｅ）式によれば、平均濃度値ＱＢ，ＱＷの差が小さくなるほど、すなわち画像のコントラストが弱くなるほど、評価値Ｃ１の値は小さくなる。
たとえばレーザーマーキング方式のマーキング装置により２次元コードを形成する場合、黒セルに対応する部分にレーザー光を照射して黒セルのパターンを形成するが、レーザーダイオードの消耗によりレーザー光の強度が弱まると、黒セルが明瞭に表せなくなってしまう。この場合、図８に示すように、黒セルの濃度値が大きくなってコントラストが弱くなった画像が生成されるが、上記（Ｅ）式によれば、このような画像の変動を簡単に検出することができる。
【０１１４】
また照明が経時変化により弱まって画像が暗くなった場合には、反対に白セルの濃度値が小さくなるが、この場合にも、（Ｅ）式によってその濃度変化を簡単に検出することができる。なお、この照明変動による影響を重視する場合には、セルに対応する画像のみならず、２次元コードの周囲の背景の画像も評価値Ｃ１の算出要素に加えるのが望ましい。
【０１１５】
▲６▼　不良セルの比率
この評価項目では、上記の▲５▼と同様に、情報表示領域内の各セルの画像データとそのデコード結果とを用いて評価値Ｃ２を算出する。この処理では、まず各白セルの濃度値の中から最小値Ｗｍｉｎを抽出する。つぎに各黒セルについて、順にその濃度値を前記Ｗｍｉｎと比較し、Ｗｍｉｎを上回るセルを抽出する。そして最終的に抽出された黒セルの数Ｕを（Ｆ）式にあてはめて、評価値Ｃ２を算出する。
【０１１６】
なお、上記の白セル、黒セルは、誤り訂正後の最終的な判定結果に基づくものである。また（Ｆ）式において、Ｍは、全セル数（２次元コードを構成するセルの総数）である。また図９に示すように、画像上の２次元コードでは、１つのセルは複数の画素により構成されるので、前記黒セルをＷｍｉｎと比較する処理においては、黒セル内における最大の濃度値または濃度平均値を前記Ｗｍｉｎと比較するのが望ましい。
【０１１７】
黒セルの濃度値が白セルの最小の濃度値Ｗｍｉｎを上回る、ということは、すなわち処理対象画像上の黒セルと白セルとの濃度値の関係が逆転していることを意味する。たとえば、照明ランプ６が劣化して一部の領域に影ができると、上記のような逆転現象が生じることがある。デコード処理では、誤り訂正により上記のような逆転現象を補正して光学情報を正しくデコードすることができるが、ここで訂正できる範囲には限界がある。
【０１１８】
（Ｆ）式によれば、Ｕ＝０であれば、評価値Ｃ２は最大値１００となる。またＵの値が大きくなるほど、言い換えれば逆転現象の比率が高まるほど、評価値Ｃ２の値は小さくなる。
【０１１９】
なお、前記した誤り訂正率Ｐは、コードワード単位の誤り訂正の比率を示すだけであるので、評価値Ｅｒのみでは、セル単位での誤りの発生頻度を把握するのは困難である。これに対し、（Ｆ）式によれば、データ表示領域内の個々のセルに対する誤認識の割合を反映した評価値を得ることができる。よって、評価値Ｅｒ，Ｃ２の両方を求めるようにすれば、デコード処理における余裕度について、詳細に判断することができる。
【０１２０】
▲７▼　セル内の濃度分布
この評価項目では、２次元コード内の特定のセルの画像データを用いて評価値Ｖを算出する。前記したように、画像上の２次元コードでは、１つのセルは複数の画素により表される。この処理では、これらの画素について、図１０（１）（２）に示すような濃度分布ヒストグラムを生成し、そのヒストグラムの幅（分散値）Ｖａｒを（Ｇ）式にあてはめて、評価値Ｖを算出するようにしている。なお、分散Ｖａｒを求めるのは１セルに限らず、複数のセルについて分散値を求め、これらの値の平均値を（Ｇ）式にあてはめてもよい。
【０１２１】
セルの白黒判定を精度良く行うためには、図１０（１）のように、セル内の各画素の濃度のばらつきが小さい状態であるのが望ましい。上記（Ｇ）式によれば、セル内の各画素の濃度が完全に均一である場合（Ｖａｒ＝１のとき）には、評価値Ｖは最大値１００となり、以下、分散値Ｖａｒが大きくなるほど、評価値Ｖの値は小さくなる。
よって上記の評価値Ｖによれば、マーキング装置の部品や照明ランプ６の消耗によって、セル内の濃度のばらつきが大きくなった場合（図１０（２）の状態）に、この変化を簡単に検出することができる。
【０１２２】
図１１は、上記２次元コードリーダ１を使用するユーザーが実行する手順（ＳＴ１０１〜１０７）を示す。
まず装置導入時には、カメラ３やコントローラ２を適所に位置決めし、コントローラ２にモニタ４やコンソール５を接続する。この設置が完了すると、モニタ４には、前記図４に示した各種評価項目のリストなどを含む初期設定画面が表示される。ユーザーは、コンソール５などを用いて、前記設定画面上で所望の評価項目を選択することにより、評価値の算出処理対象の評価項目をコントローラ２に登録する（ＳＴ１０１）。
【０１２３】
つぎにＳＴ１０２では、前記選択した評価項目につき、警告レベルの設定を行う。たとえば、コントローラ２内に各種評価項目についてデフォルトの警告レベルが設定されている場合、ＳＴ１０２では、前記モニタ４にこのデフォルト値を表示させ、これを確定または修正する操作を行うことができる。または後記するモデル画像から評価値を求めて、これより所定レベルだけ低い値を自動登録するように設定することもできる。
【０１２４】
さらにＳＴ１０３では、警告を実行する条件（以下、「警告条件」という。）についての設定を行う。この実施例では、評価値が警告レベル以下になる状態（以下、これを「不良状態」という。）が所定回数生じた場合に警告出力が行われるように、不良状態の発生回数を評価項目毎に登録するようにしている。その理由は、前記したように、この実施例の２次元コードリーダ１では、マーキング装置の部品や照明ランプ６の劣化による２次元コードの経時的な変化に対応することを目的とし、偶発的な（１度きりの）変化が起こっても、警告出力が行われないようにするのが望ましいためである。
【０１２５】
このようにして画像評価に関わる設定が終了すると、ＳＴ１０４では、モデルの２次元コードを撮像領域において撮像させ、得られたモデル画像によりファインダパターンの抽出のためのモデルの登録処理を行う。
【０１２６】
この後、コンソール５で設定終了操作などを行うことにより、コントローラ２の設定を終了して、２次元コードに対する読取処理を開始させる（ＳＴ１０５）。この後、所定期間が経過して、コントローラ２から警告が出力されると、ユーザーは、前記モニタ４のグラフ表示などに基づき、不備の生じた部品を判断し、これを新しいものに取り替えるなどのメンテナンス処理を実行する（ＳＴ１０６，１０７）。
【０１２７】
なお、図１１の手順では、警告出力がなされた場合には、メンテナンス処理を行った後に読取処理に復帰するようにしているが、前記したように警告レベルに達しても、読取処理が不可能となる訳ではないので、警告出力後に直ちに読取処理を中止する必要はない。たとえば処理工程の切れ目などで搬送ラインが停止した際にメンテナンス処理を行うようにすれば、実稼働時に搬送ラインを停止させることなく、良好な画像を得られる環境に復帰することができる。
【０１２８】
図１２は、前記コントローラ２において、１つの２次元コードの画像データに対する読取処理の手順（ＳＴ１〜１７）を示す。
まず上位システム１１からの読取開始信号が入力されると、前記カメラ３を駆動して処理対象の２次元コードを撮像させる。カメラ３からの画像は、前記したように、入出力制御部２３から画像処理部２４に渡された後、画像メモリ２６に格納される（ＳＴ１〜３）。
【０１２９】
つぎのＳＴ４で、画像処理部２４は、前記画像メモリ２６に格納された画像に対し、モデルメモリ２５内のモデルを用いた相関サーチを行って、ファインダパターンを抽出する。なお、この相関サーチにおいて得られた相関値やファインダパターンの抽出数は、画像処理部２４からＣＰＵ２１に伝送され、メインメモリ２２に一時保存される。
【０１３０】
ファインダパターンの抽出に成功すると、ＳＴ６のデコード処理に進む。図１３は、このデコード処理の具体的な手順を示すもので、まずタイミングパターンを検出した後、その検出結果に基づき、コード内部の各セルの位置を抽出する（ＳＴ６１，６２）。そして各セル毎に、抽出位置における濃度値を２値化するなどして、セルが白であるか黒であるかを判別し、その判別結果に基づき、各セルの表わす光学情報を符号化する（ＳＴ６３）。さらにつぎのＳＴ６４では、これらの符号を誤り訂正処理を行いつつデコードする（ＳＴ６４）。そしてＳＴ６５では、デコード結果を配列した最終形式の読取データを編集する。編集された読取データや前記ＳＴ６４の処理により得られる誤り訂正率Ｐは、メインメモリ２２に一時保存される。
【０１３１】
上記一連の読取処理が支障なく実行され、デコードに成功すると、図１２のＳＴ７が「ＹＥＳ」となり、ＳＴ８以降の処理に進む。一方、デコードまたは前記のファインダパターンの抽出に失敗した場合には、ＳＴ１７に進み、上位システム１１に、デコードに失敗した旨を示すエラー信号を出力して処理を終了する。
【０１３２】
デコードに成功した場合には、評価値の算出処理を実行する。ここで前記図４の評価項目▲１▼▲２▼▲３▼のうち少なくとも１つが選択されている場合には、ＳＴ８からＳＴ９に進み、メインメモリ２２に一時保存されたデータを用いて評価値を算出する。
すなわち評価項目▲１▼が選択されている場合は、前記ファインダパターンの相関サーチにおいて得られた相関値をパーセント換算して、評価値Ｒを求める。また評価項目▲２▼が選択されている場合には、ファインダパターンの抽出数ＦＮを用いて評価値ＦＮｒａｔを算出する。また評価項目▲３▼が選択されている場合は、前記ＳＴ６４の誤り訂正処理において得られた誤り訂正率Ｐを用いて、評価値Ｅｒを算出する。
【０１３３】
つぎに評価項目▲４▼〜▲７▼のうち少なくとも１つが選択されている場合には、ＳＴ１０が「ＹＥＳ」となってＳＴ１１に進む。ＳＴ１１では、画像処理部２４の機能を用いて、画像メモリ２６から個々のセルに対応する画像データを読み出し、前記した演算式（Ｃ）（Ｄ）（Ｅ）（Ｆ）（Ｇ）にあてはめるためのパラメータを算出する。さらにこれらのパラメータを用いて演算を実行し、評価値Ｓ，Ｃ１，Ｃ２，Ｖを算出する。
【０１３４】
このようにして選択された評価項目に対応する評価値を算出すると、ＳＴ１２において、前記評価値をメインメモリ２２の評価値の蓄積エリアに格納した後、警告レベルとの比較処理を行う。ここでいずれかの評価値が前記図１１のＳＴ１０３で設定された警告条件を満たした場合、ＳＴ１３が「ＹＥＳ」となってＳＴ１４に進み、警告出力を実行する。また警告出力の有無に関わらず、ＳＴ１５では、算出された評価値を用いてモニタ４のグラフ表示を更新する処理を実行する。さらにＳＴ１６では、前記デコード処理において編集された読取データを上位システム１１に出力する。
【０１３５】
このように２次元コードの読取処理を行う都度、選択された評価項目に対応する評価値が算出されるとともに、その評価値の経時変化を示すグラフが表示される。さらに所定の評価項目について、警告レベル以下の評価値を得る状態が所定回数発生すると、上位システム１１への警告出力が実行される。
【０１３６】
上記の手順によれば、仮に警告処理が行われても、２次元コード自体の読取処理には成功しているので、読取データを出力しても上位システム１１の処理に支障が生じる虞はない。また警告処理の後は、所定の時期にメンテナンス処理を行うことで不備が取り除かれるので、仮にマーキング装置の部品消耗により画像の劣化が生じても、２次元コードが読取不可能な状態に劣化するまでマーキング装置を使用し続けることがなくなる。よって部品が無駄になったり、組立て処理工程にエラーが頻発するのを、防止することができ、２次元コードの読取処理を円滑に進めることができる。
【０１３７】
また上記実施例では、ユーザーは、評価値の算出のために、複数の評価項目▲１▼〜▲７▼の中から、使用するマーキング装置の種類や照明条件に応じた評価項目を自由に選択することができるので、現場の状況に応じたチェックを行うことができる。特に複数種の評価項目を選択した場合には、警告出力の際に、その警告にかかる評価項目を明らかにすることにより、画像が劣化した要因の推定が容易になり、速やかな対応をとることができる。
【０１３８】
（３）第２実施例
つぎに示す実施例は、装置構成は前記第１実施例とほぼ同様であるが、評価値の算出方法や算出後の処理の方法が異なっている。よって、ハードウェア構成や基本的な読取処理についての説明は省略し、第１実施例とは異なる処理の詳細について説明する。
【０１３９】
まず、この実施例では、ファインダパターンを抽出する際に、前記した相関サーチに代えて、画像上のエッジ点やその濃度勾配方向を利用した処理を実行するようにしている。
【０１４０】
このファインダパターンの抽出処理について簡単に説明する。まず処理対象画像に対しエッジ抽出のための微分処理を実行する。つぎに抽出された各エッジ点において、その濃度勾配方向（黒から白に向かう方向）に直交する方向に沿って所定長さの線分を設定する。
【０１４１】
刻印マーキングによる２次元コードでは、黒セルはドットのパターンになるので、これらドットの輪郭線上の各エッジ点に設定された線分は、ドットの接線に近似すると考えられる。たとえば、データマトリクスのファインダパターンでは、黒セルがＬ字状に配列されているから、これらの黒セルを示すドットのエッジに設定された線分の重なり度合に着目すると、前記黒セルの配列方向に沿う重なり度合が最も大きくなると考えられる。
【０１４２】
この原理に基づき、この実施例では、前記エッジ点毎に設定した線分の重なり度合が所定値以上となる画像領域を抽出し、その中でファインダパターンの形状に近似する画像領域を抽出する方法により、ファインダパターンの位置や向きを特定するようにしている。
【０１４３】
つぎに、この実施例では、２次元コードを処理する都度、図１４に示す６種類の評価項目について、評価値を求めるようにしている。またこれらの評価値を、図中の中央欄の警告レベルと比較し、評価値が警告レベル以下となったときに、右欄の警告時コメントをモニタ４に表示したり、同様の警告情報を上位システム１１に出力するようにしている。
【０１４４】
以下、図１４の評価項目およびその評価値の算出方法について、順を追って説明する。なお、各評価価値を求めるための式（ａ）〜（ｆ）は、図中に記載しているので、本文中での記載は省略するが、いずれの式も、８ビット構成の画像データを処理することを前提としている。
【０１４５】
（１）　照明（Ｌｉｇｈｔ）
この評価項目では、処理対象画像中の２次元コードのコントラストの状態により照明状態の適正度合が表わされるものと考えて、評価値Ｌｉを算出する。コントラストは、デコード処理時の誤り訂正により最終確定した白セル、黒セルの画像データを用いて算出する。（ａ）式中、ｗは、白セルと判別されたセル毎の濃度値のうちの最小値であり、ｂは、黒セルと判別されたセル毎の濃度値のうちの最大値である。
【０１４６】
先の第１実施例の（Ｅ）式では、白セルと黒セルとの間の濃度値を階調により正規化したものを、コントラストの評価値とした。これに対し、この実施例では、画像上の濃度値は最低でも５０程度の値を示すことを前提として、コントラストの想定される変化の範囲において評価値Ｌｉが１〜１００の範囲で変化するように設定している。なお、前記最低の濃度値は、ＣＣＤのショットノイズなどの影響によるものである。
【０１４７】
具体的には、（ｗ−ｂ）の値が２００以上であれば、コントラストは十分であるとみなす一方、（ｗ−ｂ）の値が１０になると、セルの識別が不可能になる可能性があるとしている。（ａ）式によれば、ｗ−ｂ＝２００のときに、評価値Ｌｉが１００となり、ｗ−ｂ＝１０のときに、評価値Ｌｉが１となる。
【０１４８】
この評価値Ｌｉに対する警告レベルはＬｉの値が６以下となったとき、すなわち、（ｗ−ｂ）の値が２０以下となったときに設定されている。評価値Ｌｉがこの警告レベルに達したときには、通常は、照明の選択に誤りがある旨を知らせるコメントを表示する。ただし、このときのｗの値が、前記最低値とみなした「５０」よりも小さくなっている場合には、照明を明るくする必要があることを知らせるコメントを表示する。反対に、ｂの値が最大値である「２５５」に達しているときは、照明を暗くする必要があることを知らせるコメントを表示する。
【０１４９】
（２）　フォーカス（Ｆｏｃｕｓ）
この評価項目にかかる評価値Ｆｃは、前記カメラ３のフォーカス調整の適正度合を示すものである。この実施例では、タイミングパターンに対する画像処理結果を用いて、黒セルと白セルとの間で濃度変化が現れる範囲の大きさＥを抽出し、このＥの値を用いた算出式（ｂ）を設定している。
【０１５０】
前記（ｂ）式のＥは、タイミングパターンの画像を一次微分した結果を二次微分することによって得られたものである。なお、この実施例では、タイミングパターンにおけるセルの配列状態を識別す際に一次微分を行い、その結果をメインメモリ２２内に保存しているので、評価値Ｆｃを算出する際には二次微分処理から開始すればよい。
【０１５１】
図１５は、タイミングパターンの配列方向における濃度変化がフォーカスの調整状態によって異なる例を３つ示す。これらの例では、白、黒、白の各セルを横切る方向における濃度変化を、一次微分，二次微分の各結果とともに示している。なお、濃度変化は、白から黒への変化を下方向（−方向）に、黒から白の変化を上方向（＋方向）に、それぞれ対応させている。
【０１５２】
図１５（１）は、フォーカスの調整が最適な場合である。最適な調整が行われた場合、一次微分で抽出される変化は殆ど幅を持たないものとなり、これを受けた二次微分における＋方向の変曲点と−方向の変曲点とは、セルの配列方向においてほぼ同じ位置に現れる。これに対し、フォーカスの調整状態が悪くなると、（２）（３）に示すように、セル間における濃度変化の幅が大きくなり、二次微分における＋、−の各変曲点の間隔もしだいに大きくなる。
【０１５３】
この実施例では、上記二次微分における＋、−の各変曲点間の間隔に対応する画素数をＥとしている。また、（ｂ）式中のＣは、セル間のピッチを表す画素数である（この実施例では、このＣを「セルサイズ」と呼ぶ。）。セルサイズＣは、コードサイズＳ（画像上の２次元コードの１辺に対応する画素数）をシンボルサイズＭ（２次元コードの１辺に対応するセルの数）で割った値（Ｓ／Ｍ）に相当する。コードサイズＳは、ファインダパターンが抽出されたとき、以後のセルの識別のために計測され、メインメモリ２２に保存されるものである。また、シンボルサイズＭは、処理対象の２次元コードの仕様に基づき、あらかじめユーザーにより入力され、メインメモリ２２内に登録されているものである。
【０１５４】
（ｂ）式によれば、Ｅ＝２のときに評価値Ｆｃが「１００」となる。Ｅ＝２となるのは、隣接する黒セルおよび白セルの双方において、一番外側の一画素のみに濃度変化が生じている場合と考えられる。一方、この実施例では、Ｅ＝Ｃになるときを最悪のフォーカス状態と考え、このときの評価値Ｆｃが１となるようにしている。また、この最悪の状態よりも１画素分小さい場合、すなわちＥ＝Ｃ−１のときの評価値Ｆｃを警告レベルとして、フォーカスの調整が適正でないことを知らせるコメントを表示するようにしている。
【０１５５】
（３）　マーキング（Ｍａｒｋ）
この評価項目にかかる評価値Ｍｋは、セルの認識処理の精度を表すものである。この実施例では、ファインダパターン、タイミングパターン、およびタイミングパターンの内側の情報表示領域について、それぞれ（ｃ１）式，（ｃ２）式，（ｃ３）式により評価値を求め、その中の最小値を評価値Ｍｋとして採用するようにしている。
【０１５６】
まず、（ｃ１）式は、情報表示領域に対する評価値の算出式である。この（ｃ１）式において、ＣＤは、誤り訂正が行われたセルの数である。またＣＤｍａｘは誤り訂正可能なセルの数である。このＣＤｍａｘは、誤り訂正が可能なコードワード数Ｃｗｍａｘに１コードワードを構成するセルの数（たとえば８）を掛けた値（Ｃｗｍａｘ×８）に相当する。
【０１５７】
（ｃ２）式は、ファインダパターンに対する評価値の算出式である。この（ｃ２）式中のＣＦは、ファインダパターンの抽出処理において、ファインダパターンに対応するセルとして認識できなかったセルの数である。また、ＣＦｍａｘは、このセルの誤認識が許容される数に相当する。
【０１５８】
（ｃ３）式は、タイミングパターンに対する評価値の算出式である。この（ｃ３）式中のＣＴは、タイミングパターンのセルの識別処理において、白黒の判別を誤ったセルの数である。また、ＣＴｍａｘは、このセルの誤認識が許容される数に相当する。
【０１５９】
上記（ｃ１）（ｃ２）（ｃ３）の各式によれば、ＣＤ，ＣＦ，ＣＴがいずれも０であれば、すなわち、２次元コード内の全てのセルを正しく認識できた場合には、評価値Ｍｋは１００となる。誤認識したセルが増えるほど評価値Ｍｋは小さくなり、ＣＤ，ＣＦ，ＣＴのいずれかが対応する最大値ＣＤｍａｘ，ＣＦｍａｘ，ＣＴｍａｘに達したときに、評価値Ｍｋは０となる。
【０１６０】
このマーキング状態については、前記誤認識数ＣＤ，ＣＦ，ＣＴが対応する最大値ＣＤｍａｘ，ＣＦｍａｘ，ＣＴｍａｘより１だけ小さい値になったときの評価値を、警告レベルとしている。そして、前記評価値Ｍｋとして採用された評価値が警告レベル以下となった場合に、認識できないセルがある旨を知らせるコメントを表示するようにしている。
【０１６１】
上記の評価値Ｍｋは、２次元コードの情報表示領域に限らず、２次元コード全体について、セル単位での誤認識の度合を示すものとなる。したがって、処理画像中の２次元コードの質を、精度良く反映するものと考えることができる。
【０１６２】
（４）　大きさ（Ｓｉｚｅ）
この評価項目にかかる評価値Ｃｓは、カメラの視野に対する２次元コードの大きさの適正度合を示すもので、黒セルを表すドットの大きさ、およびセルサイズを用いて算出される。
【０１６３】
先の第１実施例では、セルサイズ＝ドットサイズと考えたが、この実施例では、両者が異なるものも含めて考える。具体的には、図１６（１）に示すように、セルサイズをＣとし、ドットの幅Ｄをドットサイズとする。ドットサイズは、図１６（２）に示すように、ドットのマーキングの状態によって変化する。セルサイズＣは、（ｂ）式の説明の際に述べたように、コードサイズＳをシンボルサイズＭで割った値（Ｓ／Ｍ）に相当するもので、ドットサイズにかかわらず一定の値となる。
【０１６４】
なお、図１６では、１つのセルに１つのドットがマーキングされる場合を示しているが、１つのセルに複数のドットがマーキングされる場合もある。このような場合には、これら複数のドットによる集合体の大きさがドットサイズＤに相当すると考える。
【０１６５】
この実施例では、ドットサイズＤ，セルサイズＣについて、それぞれ個別に評価値を求め、そのうちの小さい方を大きさの評価値ＣＳとして特定するようにしている。
まずドットサイズＤの評価値について説明する。この実施例では、個々のセルの白黒状態を判別するには、最低でもドットサイズＤを４画素分の大きさに対応させる必要がある、と考える。なお、このドットサイズＤの最小値は、ＣＣＤの分解能によって変動する。
【０１６６】
さらに各セルを安定して識別するには、ドットサイズＤを７画素以上にする必要があると考える。しかしながら、ドットが大きくなりすぎると、前記したセルの肥大化現象を招くおそれがある。また、ドットを構成する画素数が増えることでドット内における濃度のばらつきが大きくなると、白黒状態の判別に誤りが生じるおそれがある。この点に鑑み、この実施例では、ドットサイズＤの適正な範囲を７画素から１０画素の間に定め、７＜Ｄ≦１０のときの評価値を「１００」としている。一方、Ｄ≦７のときには（ｄ１）式により評価値を算出する。この（ｄ１）式によっても、Ｄ＝７のときの評価値は「１００」となる。以下、Ｄの値が小さくなるにつれて評価値は小さくなり、識別に必要な最低限の値（Ｄ＝４）において、「１」となる。
【０１６７】
つぎに、セルサイズの評価値は、セルサイズＣおよびシンボルサイズＭを（ｄ２）式にあてはめることにより算出される。
この（ｄ２）式では、２次元コードが視野に対して４５度傾いた状態を想定し、２次元コードの対角線の長さが視野の一辺に等しくなったときの評価値が「１」となるように設定している。なお、画像中の２次元コードを処理するには、周囲に少なくとも１セル分のマージンを確保する必要があるので、（ｄ２）式では、コードの一辺の長さを、両端のマージンも含め、（Ｃ×（Ｍ＋２））と設定している。よって、２次元コードの対角線の長さは、上記一辺の長さに２の平方根を掛けた大きさ（Ｃ×（Ｍ＋２）×１．４）となる。
【０１６８】
なお、カメラ３の視野は、ｘ軸方向に５１２画素、ｙ軸方向に４８４画素の大きさを持つものとする。この場合、前記２次元コードの対角線の長さがｙ軸方向の画素数を超えると、２次元コードが視野からはみ出す可能性があるから、（ｄ２）式では、Ｃ＝３４５／（Ｍ＋２）のときに評価値が「１」となるようにしている。また、（ｄ２）式では、ドットサイズＤの好ましい数値範囲に対応させて、Ｃ＝１０のときの評価値が「１００」となるようにしている。
【０１６９】
よって、上記ドットサイズＤに対する評価値は、処理画像中の各ドットが分解能に応じた大きさを確保できているどうかを判断する指標となる。また、セルサイズＣに対する評価値は、２次元コードが視野からはみ出す可能性がないかどうかを判断する指標となる。
【０１７０】
この実施例では、ドットサイズＤが「４」にまで低下したとき（すなわちＣＳ＝１となったとき）、またはセルサイズＣが３４５／（Ｍ＋３）に達したときを警告レベルとしている。ドットサイズＤが４以下となる場合には、画像中のドットが識別できる大きさを確保できていないことになるから、警告時コメントとして、視野を小さくする（すなわちカメラの位置を下げる。）必要があることを報知する情報を表示する。一方、セルサイズＣが３４５／（Ｍ＋３）以上になる場合には、画像中の２次元コードが視野からはみ出す状態に近いことになるから、視野を大きくする（すなわちカメラの位置を上げる。）必要があることを報知する情報を表示する。
【０１７１】
（５）　位置（Ｌｏｃａｔｅ）
この評価項目にかかる評価値Ｌｏは、カメラ３の視野に対する２次元コードの位置の適正度合を示すものである。この実施例では、図１７に示すように、処理画像中の２次元コードの４頂点ａ，ｂ，ｃ，ｄの座標を用いて、各頂点から視野端までの距離Ｌ１，Ｌ２，Ｌ３，Ｌ４を求める。そして、これらの距離の中の最小の値をＬとおき、このＬを（ｅ）式にあてはめることにより、評価値Ｌｏを算出する。
【０１７２】
この実施例では、前記Ｌの値が視野の１／３以上の大きさになれば、２次元コードが視野の中央付近に位置するものと考え、Ｌ＝１６１（画素）のときに評価値Ｌｏが「１００」となるように、（ｅ）式を設定している。なお、上記の１６１画素は、前記したｙ軸方向の画素数４８４を３で割った値に近似する。
【０１７３】
また、この実施例では、前記した１セル分のマージンがなければ、２次元コードを読み取りできなくなる点を考慮して、前記距離Ｌが１セル分の大きさＣ（＝Ｓ／Ｍ）になったときに、評価値Ｌｏが「１」となるようにしている。
【０１７４】
また、警告レベルは、距離Ｌが３Ｃとなったときの評価値Ｌｏに対応させている。評価値Ｌｏがこの警告レベル以下となった場合には、警告時コメントとして、２次元コードを視野の中央に設定する必要がある旨を知らせる情報が表示される。
【０１７５】
（６）　背景（Ｂ．Ｇ）
この評価項目にかかる評価値Ｂｇは、２次元コードの背景の適正度合を示すものである。この評価値Ｂｇは、ファインダパターンの抽出処理時の抽出数ＦＮを（ｆ）式にあてはめて算出される。なお、（ｆ）式において、ＦＮｍａｘは、前記第１実施例の（Ａ）式と同様に、所定の制限時間内に実行可能なデコード回数の上限値に設定される。またＦＮｍｉｎは、０より大きくＦＮｍａｘより小さい所定数に設定される。
【０１７６】
（ｆ）式によれば、ＦＮ＝ＦＮｍａｘのときに、評価値Ｂｇは最小値の「１０」となる。また、（ｆ）式では、ＦＮ＝ＦＮｍｉｎのときに、評価値Ｂｇが「１００」となるが、ＦＮの値がＦＮｍｉｎより小さくなったときも、評価値Ｂｇの値は「１００」のまま維持するのが望ましい。なお、ＦＮがＦＮｍａｘより大きくなった場合には、デコード失敗となる。
【０１７７】
この評価項目については、評価値Ｂｇを示すのみで、警告レベルや警告時コメントは設定していない。これは、仮にＦＮ＝ＦＮｍａｘとなっても、デコード自体は可能である、という理由による。また、この実施例では、凹凸や模様のある対象物に２次元コードが付される場合に、背景状態のばらつきや読取に及ぼす影響を把握することを主な目的として評価値Ｂｇを求めている、という事情にもよる。ただし、第１実施例で述べたように、マーキング装置の部品の劣化などによって２次元コードの書込み位置以外にノイズが形成され、このノイズの発生量の変化を問題とする場合には、たとえばＦＮのＦＮｍａｘに対する差が所定値に達したときのＢｇの値を警告レベルとして設定してもよい。
【０１７８】
上記（１）〜（６）の評価値も、第１実施例の各評価値と同様に、処理画像中の２次元コードが読取処理にどのくらい適しているかの度合を反映するものと考えることができる。この第２実施例でも、第１実施例と同様に、２次元コードの撮像からデコードまでの一連の処理を実行し、デコードに成功すると、前記した６種類の評価項目について、それぞれ評価値を算出するようにしている。
【０１７９】
さらに、この実施例では、モニタ４への表示について、ユーザーの選択に応じて２種類の表示画面を提示できるようにしている。１つは、各評価値の現在値を処理対象画像や光学情報のデコード結果とともに示す画面である。
【０１８０】
図１８（１）は、上記評価値の現在値を示す表示画面の一例を示す（以下、この画面を「Ａ画面」という。）。図中の３０は処理対象の２次元コードの画像であり、３１はこの画像中の２次元コードから得た読取データの表示領域である。各評価値は、図中の領域３２内に具体的な数値として示されるほか、レーダーチャート３３としても表示されている。また、処理対象画像中の２次元コードには、誤認識したセルの位置を示すポインタ３４が表示される。
【０１８１】
さらに、所定の評価値が警告レベルに達している場合には、図示のように、警告マーク３５が表示される。また、警告マーク３５の隣には、前記警告レベルに達した評価値に対応する警告時コメント（前記図１４に示したもの）が表示される。
【０１８２】
もう一方の表示画面は、評価値の経時変化を示す画面であり、図１８（２）にその例を示す（以下、この画面を「Ｂ画面」という。）。このＢ画面では、所定の評価項目（図示例では照明）についての評価値の経時変化を示すグラフ３７が表示される。なお、このＢ画面にも、直前に処理した２次元コードの画像３０（ここでは輪郭のみ仮想線で示す。）や読取データの表示領域３１が示されるほか、通算の処理回数や読取に成功した回数などの履歴データの表示領域３６が設定される。
【０１８３】
この実施例では、照明、フォーカス、マーキング、位置の４項目について、評価値の経時変化を表示できるようにしている。なお、表示される項目は、ユーザーの選択操作によって、適宜変更することができる。なお、図中の警告マーク３５は、Ａ画面の場合と同様に、評価値の現在値に対して表示されるもので、上記４項目のほか、大きさや背景にかかる評価値も表示の対象となる。
【０１８４】
この実施例では、評価値を算出する毎に、その最新の評価値を含む過去所定回数分の評価値の平均値（いわゆる移動平均値）を算出するようにしている。前記Ｂ画面に表示されるグラフは、この平均値の変化を示しており、横軸の「０」が現時点を示す。この実施例では、この平均値を用いて、評価値のばらつき度合を評価する処理、または評価値の経時変化から２次元コードの変化の傾向を予測する処理を実行する。そして、前記ばらつき度合が大きすぎると判断したり、２次元コードが読取不可能な状態になると予測した場合には、判断対象となった評価項目を明示した警告情報を表示または出力するようにしている。
【０１８５】
評価値のばらつき度合の評価は、過去所定回数分の平均値Ｘｎについて標準偏差σを求め、（Ｘ０−３σ）の値をチェックすることにより行われる（Ｘ０は現時点で得た最新の平均値である。）。この実施例では、Ｘ０−３σ≦０となるときに、所定の警告情報を出力するようにしている。
【０１８６】
統計理論に従えば、母集団を構成するサンプルの９９．７％までが（Ｘ０±３σ）の範囲に含まれる。よって、上記の警告情報が出力されることがなければ、ユーザーは、いずれの評価値も安定した状態にあり、２次元コードの読取を支障なく行うことができると判断することができる。
【０１８７】
つぎに、２次元コードの変化の傾向を予測する処理では、たとえば、図１９に示すように、現在から１４回前に得られた平均値Ｘ１と、この平均値Ｘ１よりさらに１０００回前に得られた平均値Ｘ２とを抽出し、時間軸と平均値Ｘｎの軸とによるグラフ上にプロットする。そして、これら２点を用いて、下記の（１）式のように、評価値Ｘｎの変化を示す直線を設定する。
【０１８８】
【数１】
2004078896.tif 000003
【０１８９】
ここで、デコードに失敗したときの評価値を０として、現時点から５０００回の処理を行った時点でデコードが不可能になるものと仮定する。この仮定に基づき、上記（１）式のｎを５０００として、このときのＸｎが０以下になるものと仮定すると、Ｘ１，Ｘ２の関係は、下記の（２）式のようになる。
【０１９０】
【数２】
2004078896.tif 000004
【０１９１】
よって、Ｘ１，Ｘ２の間に（２）式の関係が成立するとき、５０００回後に処理対象となる２次元コードの読取が不可能になると判断することができる。この実施例では、２次元コードに対する処理を行う毎に、各項目毎の評価値について、それぞれ１４回前および１０１４回前の平均値Ｘ１，Ｘ２を抽出し、これらの間に上記（２）式の関係が成立するかどうかをチェックするようにしている。そして、いずれかの項目について（２）式の関係が成立した場合には、その項目を明示した警告情報をモニタ４に表示または上位システム１１に出力するようにしている。
【０１９２】
図２０は、この第２実施例における読取処理の手順を示す。なお、この読取処理の開始に先立ち、ユーザーは、モニタ４に前記Ａ画面，Ｂ画面のいずれを表示するかを選択する操作を実行する。さらに、Ｂ画面を表示する場合には、表示対象の評価項目を選択する処理を行うほか、前記したばらつきの評価または２次元コードの変化の傾向を予測する処理のいずれを実行するかの選択を行う。
【０１９３】
図２０において、ＳＴ１〜７の流れは、前記第１実施例の図１２に示したのと同様である。また、デコードに失敗したときはエラー出力を行うステップ（この実施例ではＳＴ２０）も同様である。
【０１９４】
上記の処理においてデコードに成功すると、ＳＴ７が「ＹＥＳ」となってＳＴ８に進み、前記した６種類の評価値を算出する。
つぎにＳＴ９では、前記表示画面の選択をチェックする。ここで、評価値の現在値を表示するＡ画面が選択されている場合には、ＳＴ１０に進み、６種類の評価値を処理対象画像や読取データとともに表示する。さらに、これらの評価値の中に警告レベルに達したものがある場合には、ＳＴ１１が「ＹＥＳ」となってＳＴ１２に進み、前記した警告マーク３５や警告時コメントを表示する。また、上位システム１１にも、警告時コメントと同じ内容の情報を出力する。
【０１９５】
この後は、ＳＴ１３において、算出された各評価値のうち、Ｌｉ，Ｆｃ，Ｍｋ，Ｌｏの４種類の評価値をメインメモリ２２に保存し、読取処理を終了する。なお、警告レベルに達している評価値がない場合には、ＳＴ１２をスキップしてＳＴ１３に進む。
【０１９６】
つぎに、評価値の経時変化を示すＢ画面が選択されている場合には、ＳＴ９からＳＴ１４に進む。このＳＴ１４では、選択されている評価項目について、直前に得た評価値を含む過去所定回数分の評価値をメインメモリ２２から読み出し、平均値Ｘ０を算出する。
【０１９７】
この後、ＳＴ１５では、この平均値Ｘ０を含む過去所定回数分の平均値をメインメモリ２２から読み出し、その経時変化を示すグラフを含むＢ画面を表示する。つぎのＳＴ１６では、ユーザーの選択に応じて、評価値のばらつきを評価する処理、または２次元コードの変化の傾向を予測する処理のいずれかを実行する。なお、このＳＴ１６での処理対象は、Ｂ画面の表示対象として選択されている評価値のみとしても良いが、これに限らず、Ｂ画面に表示可能な４種類の評価値Ｌｉ，Ｆｃ，Ｍｋ，Ｌｏのすべてを処理しても良い。
【０１９８】
つぎのＳＴ１７では、ＳＴ１６における処理結果が警告すべきレベルに達しているかどうかをチェックする。この判定が「ＹＥＳ」であればＳＴ１８に進み、モニタ４に所定の警告情報を表示する。さらに上位システム１１に対しても、同じ内容の警告情報を表示することができる。
【０１９９】
この後は、ＳＴ１９において、前記ＳＴ８で得た評価値やＳＴ１４で得た平均値をメインメモリ２２に保存し、読取処理を終了する。なお、ＳＴ１７において、処理結果が警告レベルに達していない場合には、ＳＴ１８をスキップしてＳＴ１９に進む。
【０２００】
なお、ＳＴ８以下の手順は、デコードが成功しているときのみ行われるので、仮にＳＴ１２やＳＴ１８の警告表示・出力が行われても、後続の２次元コードに対する読取処理を直ちに中止する必要はない。ただし、２次元コードの質を低下させている原因が取り除かれるまでは、図２０の読取処理を実行する都度、同じ警告表示や出力が行われることになる。
【０２０１】
前記図１４の設定によれば、照明、フォーカス、マーキング、位置の４項目については、評価値Ｌｉ，Ｆｃ，Ｍｋ，Ｌｏが警告レベルに達している場合には、具体的な対応の方法を示す警告時コメントが表示される。したがって、一般ユーザーでも、容易に正しい対応をとって、２次元コードの質を向上させることができる。
【０２０２】
このような設定によれば、２次元コードリーダ１の初期設定時や読取対象の２次元コード７や部品９の種類を変更したような場合に、試験的に図２０の読取処理を実行することにより、照明、フォーカス、視野、２次元コードの位置などの調整の不備をユーザーに示すことができる。よって、ユーザーは、調整の不備を速やかに修正して、２次元コードの読取に適した環境を設定することができる。また、評価値のばらつき度合を評価する処理を選択するようにすれば、ユーザーは、２次元コードの読取がどの程度の安定性をもって行われるのかを判断することができる。
【０２０３】
さらに、２次元コードリーダ１を本格的に使用する際には、デコードに成功する都度、各種評価値を算出して警告レベルと比較する処理が行われるから、２次元コードの状態がデコードが困難な方向に変化していることを速やかに検出して、ユーザーに知らせることができる。また、ユーザーは、２次元コードの変化の傾向を予測する処理を選択することにより、所定回数分の読取処理を経た時点での２次元コードの読取が可能であるか否かを判断することができる。
【０２０４】
【発明の効果】
この発明によれば、光学情報コードの読取処理を繰り返し行っている間に、毎時の画像中の光学情報コードの質がデコード不可能な状態に向かって変化している場合には、その変化をユーザーに知らしめることができるので、デコード不可能な状態にまで光学情報コードの質が低下する前に、低下を引き起こした原因を取り除くことができる。よって、光学情報コードを連続して読み取る場合にも、デコードに支障が生じることがなく、読取処理を安定して行うことができる。また、光学情報コードの質が低下の方向に変化していても、デコードが不可能になる前にその変化を検出することができるから、読取処理を即座に停止する必要がなく、読取処理における利便性を高めることができる。
【図面の簡単な説明】
【図１】この発明が適用された２次元コードリーダの構成を示す機能ブロック図である。
【図２】２次元コードリーダの外観および使用状態を示す図である。
【図３】２次元コードリーダの電気構成を示すブロック図である。
【図４】２次元コードに対する評価項目および評価値の算出式を示すテーブルである。
【図５】評価値の経時変化を示すグラフの表示例を示す図である。
【図６】セルサイズの評価に用いるパラメータの抽出方法を示す図である。
【図７】セルサイズの変動例を示す図である。
【図８】画像のコントラスト変化の例を示す図である。
【図９】セルと画素との関係を示す図である。
【図１０】セル内の分散値を求める方法を示す図である。
【図１１】ユーザーによる装置使用手順を示すフローチャートである。
【図１２】読取処理にかかるコントローラの処理手順を示すフローチャートである。
【図１３】デコード処理の詳細な手順を示すフローチャートである。
【図１４】２次元コードに対する評価項目、評価値の算出式、警告レベル、警告時コメントを示すテーブルである。
【図１５】フォーカスの評価値算出に用いられるパラメータＥの抽出方法を示す図である。
【図１６】セルサイズとドットサイズとの概念を示す図である。
【図１７】位置の評価値算出に用いられるパラメータＬの抽出方法を示す図である。
【図１８】モニタに表示する２種類の画面の表示例を示す図である。
【図１９】２次元コードの変化の傾向を予測する処理の具体例を示す図である。
【図２０】第２実施例における読取処理の手順を示すフローチャートである。
【図２１】２次元コードの代表例および各コードにおけるファインダパターン，タイミングパターンを示す説明図である。
【符号の説明】
１　２次元コードリーダ
２　コントローラ
３　カメラ
４　モニタ
５　コンソール
６　表示ランプ
７　２次元コード
２１　ＣＰＵ
２２　メインメモリ
２４　画像処理部
２６　画像メモリ
【図１】
2004078896.tif 000005
【図２】
2004078896.tif 000006
【図３】
2004078896.tif 000007
【図４】
2004078896.tif 000008
【図５】
2004078896.tif 000009
【図６】
2004078896.tif 000010
【図７】
2004078896.tif 000011
【図８】
2004078896.tif 000012
【図９】
2004078896.tif 000013
【図１０】
2004078896.tif 000014
【図１１】
2004078896.tif 000015
【図１２】
2004078896.tif 000016
【図１３】
2004078896.tif 000017
【図１４】
2004078896.tif 000018
【図１５】
2004078896.tif 000019
【図１６】
2004078896.tif 000020
【図１７】
2004078896.tif 000021
【図１８】
2004078896.tif 000022
【図１９】
2004078896.tif 000023
【図２０】
2004078896.tif 000024
【図２１】
2004078896.tif 000025
【手続補正書】
【提出日】平成15年11月5日(2003.11.5)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
視覚認識が可能なシンボルによる光学情報コードを撮像するステップと、
前記撮像により得られた画像に所定の画像処理を施して、前記画像中の前記光学情報コードを抽出するステップと、
前記画像処理により抽出された光学情報コードに前記抽出時とは異なる画像処理を実行し、その画像処理結果に基づき前記光学情報コードの表す光学情報をデコードするステップとを、順番に実行することにより、前記光学情報コードに対する読取処理を実行する方法において、
前記光学情報のデコードに成功したとき、前記光学情報コードを抽出するステップまたは前記光学情報をデコードするステップの実行過程で得られた所定の情報に基づき、前記画像中の光学情報コードが読取処理に適している度合を表す評価値を得るステップと、この評価値を記憶するステップと、前記評価値と過去に記憶した複数の評価値とを用いて評価値の経時変化を示すデータを出力するステップとを、実行することを特徴とする光学情報コードの読取方法。
【請求項２】
請求項１に記載された方法において、
前記評価値の経時変化を示すデータを出力するステップでは、前記データを所定の警告レベルに対比させて表示する光学情報コードの読取方法。
【請求項３】
視覚認識が可能なシンボルによる光学情報コードを撮像するステップと、
前記撮像により得られた画像に所定の画像処理を施して、前記画像中の前記光学情報コードを抽出するステップと、
前記画像処理により抽出された光学情報コードに前記抽出時とは異なる画像処理を実行し、その画像処理結果に基づき前記光学情報コードの表す光学情報をデコードするステップとを、順番に実行することにより、前記光学情報コードに対する読取処理を実行する方法において、
前記光学情報のデコードに成功したとき、前記光学情報コードを抽出するステップまたは前記光学情報をデコードするステップの実行過程で得られた所定の情報に基づき、前記画像中の光学情報コードが読取処理に適している度合を表す評価値を得るステップと、この評価値を所定の警告レベルと比較するステップと、前記評価値が前記警告レベルに達したことを条件として、所定の態様による警告処理を実行するステップとを、実行することを特徴とする光学情報コードの読取方法。
【請求項４】
請求項１または３に記載された方法において、
前記光学情報コードを抽出するステップは、この光学情報コードに含まれる特定のパターンのモデルを前記撮像により得られた画像に走査しながら相関演算を行うステップと、前記相関演算による相関値が所定のしきい値以上となった位置を前記光学情報コードの抽出位置として特定するステップとを含んでおり、
前記評価値を得るステップでは、前記コードの抽出位置として特定された位置で得られた相関値を前記評価値として認識する光学情報コードの読取方法。
【請求項５】
請求項１または３に記載された方法において、
前記光学情報コードを抽出するステップでは、前記撮像により得られた画像から前記光学情報コードに含まれる特定のパターンを抽出する処理を実行し、
前記評価値を得るステップでは、前記光学情報コードを抽出するステップにおける特定のパターンの抽出数を用いて前記評価値を算出する光学情報コードの読取方法。
【請求項６】
請求項１または３に記載された方法において、
前記光学情報をデコードするステップには、光学情報の最小単位を示す小領域を個別に識別するステップが含まれており、
前記評価値を得るステップでは、前記小領域の識別結果と前記光学情報コードを含む画像領域内の画像データとを用いて、光学情報コードを撮像したときのフォーカス調整、光学情報コードにおけるコントラスト、小領域の大きさ、小領域内の濃度分布、コードの位置のうちの少なくとも１つにかかる評価値を算出する光学情報コードの読取方法。
【請求項７】
請求項１または３に記載された方法において、
前記光学情報をデコードするステップには、光学情報の最小単位を示す小領域を個別に識別するステップと、前記小領域の識別処理において生じた誤りを訂正するステップとが含まれており、
前記評価値を得るステップでは、前記識別処理に誤りが生じた小領域の数を用いて、前記小領域の識別処理における誤りの度合を示す評価値を算出する光学情報コードの読取方法。
【請求項８】
請求項１または３に記載された方法において、
前記光学情報コードを撮像するステップ、前記光学情報コードを抽出するステップ、前記光学情報をデコードするステップの各ステップによる処理が複数サイクル実行される間に記憶された評価値を用いて、前記３つのステップによる処理がさらに所定サイクル実行された後のデコードが可能であるか否かを予測し、デコードが不可能になると予測されたとき、所定の態様による警告処理を行う光学情報コードの読取方法。
【請求項９】
視覚認識が可能なシンボルによる光学情報コードを含む画像を取得する画像取得手段と、
前記取得した画像に対し、前記光学情報コードを抽出するための画像処理を実行する画像処理手段と、
前記画像処理により抽出された光学情報コードに前記抽出時とは異なる画像処理を実行し、その画像処理結果を用いて前記光学情報コードの表す光学情報をデコードするデコード処理手段と、
前記デコード処理手段が光学情報のデコードに成功したとき、前記画像処理手段または前記デコード処理手段が処理の過程で得た所定の情報に基づき、前記取得した画像中の光学情報コードが読取処理に適している度合を示す評価値を取得する評価値取得手段と、
前記評価値取得手段が取得した評価値を保持するための記憶手段と、
前記記憶手段に保持された複数の評価値を用いて、評価値の経時変化を示すデータを作成して出力する経時変化出力手段とを具備して成る光学情報コード読取装置。
【請求項１０】
前記経時変化出力手段は、前記評価値の経時変化を示すデータを所定の警告レベルとともに表示する手段を含んで成る請求項９に記載された光学情報コード読取装置。
【請求項１１】
視覚認識が可能なシンボルによる光学情報コードを含む画像を取得する画像取得手段と、
前記取得した画像に対し、前記光学情報コードを抽出するための画像処理を実行する画像処理手段と、
前記画像処理により抽出された光学情報コードに前記抽出時とは異なる画像処理を実行し、その画像処理結果を用いて前記光学情報コードの表す光学情報をデコードするデコード処理手段と、
前記デコード処理手段が光学情報のデコードに成功したとき、前記画像処理手段または前記デコード処理手段が処理の過程で得た所定の情報に基づき、前記取得した画像中の光学情報コードが読取処理に適している度合を示す評価値を取得する評価値取得手段と、
前記評価値取得手段が取得した評価値が所定の警告レベルに達したか否かを判別する判別手段と、
前記判別手段により前記評価値が前記警告レベルに達したと判断されたときに所定の警告情報を出力する警告出力手段とを具備して成る光学情報コード読取装置。
【請求項１２】
前記画像処理手段は、前記光学情報コードに含まれる特定のパターンのモデルを前記画像取得手段が取得した画像に走査しながら相関演算を実行する手段と、前記相関演算による相関値が所定のしきい値以上となった位置を前記光学情報コードの抽出位置として特定する手段とを含み、
前記評価値取得手段は、前記光学情報コードの抽出位置として特定された位置で得られた相関値を前記デコード処理手段の処理が終了するまで保持し、前記デコード処理手段が光学情報のデコードに成功したとき、前記保持されていた相関値を前記評価値として認識する請求項９または１１に記載された光学情報コード読取装置。
【請求項１３】
前記画像処理手段は、前記画像取得手段が取得した画像から前記光学情報コードに含まれる特定のパターンを抽出するための画像処理を実行し、
前記評価値取得手段は、前記特定のパターンの抽出数を用いて、前記評価値を算出する請求項９または１１に記載された光学情報コード読取装置。
【請求項１４】
前記デコード処理手段は、光学情報の最小単位を示す小領域を個別に識別する手段を含み、
前記評価値取得手段は、前記小領域の識別結果と前記光学情報コードを含む画像領域内の画像データとを用いて、光学情報コードを撮像したときのフォーカス調整、光学情報コードにおけるコントラスト、小領域の大きさ、小領域内の濃度分布、コードの位置のうちの少なくとも１つにかかる評価値を算出する請求項９または１１に記載された光学情報コード読取装置。
【請求項１５】
前記デコード処理手段は、光学情報の最小単位を示す小領域を個別に識別する手段と、前記小領域の識別処理において生じた誤りを訂正する手段とを含み、
前記評価値取得手段は、前記識別処理に誤りが生じた小領域の数を用いて、前記小領域の識別処理における誤りの度合を示す評価値を算出する請求項９または１１に記載された光学情報コード読取装置。
【請求項１６】
請求項９または１１に記載された光学情報コード読取装置において、
前記画像取得手段、画像処理手段、デコード処理手段の各手段による処理が所定サイクル実行された後の光学情報のデコードが可能であるか否かを、前記評価値記憶手段に保持された複数の評価値を用いて予測する予測手段と、
前記予測手段が前記所定サイクル実行された後の光学情報のデコードが不可能になると予測したとき、所定の態様による警告情報を出力する警告情報出力手段とを具備して成る光学情報コード読取装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
この発明は上記の問題点に着目してなされたもので、光学情報コードの通常の読取処理を繰り返し行う間に、毎時の画像中の光学情報コードの質がデコード不可能な方向に変化していないかどうかを、常時簡単に判断できるようにして、その変化に速やかに対応できるようにすることを、目的とする。


【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２４
【補正方法】変更
【補正の内容】
【００２４】
（１）第１の光学情報コード読取方法
この方法では、視覚認識が可能なシンボルによる光学情報コードを撮像するステップと、前記撮像により得られた画像に所定の画像処理を施して、前記画像中の前記光学情報コードを抽出するステップと、前記画像処理により抽出された光学情報コードに前記抽出時とは異なる画像処理を実行し、その画像処理結果に基づき前記光学情報コードの表す光学情報をデコードするステップとを順番に実行する。そして前記３つのステップによる１サイクル分の処理において光学情報のデコードに成功したとき、前記光学情報コードを抽出するステップまたは前記光学情報をデコードするステップの実行過程で得られた所定の情報に基づき、前記画像中の光学情報コードが読取処理に適している度合を表す評価値を得るステップと、この評価値を記憶するステップと、前記評価値と過去に記憶した複数の評価値とを用いて評価値の経時変化を示すデータを出力するステップとを、実行するようにしている。


【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３０
【補正方法】変更
【補正の内容】
【００３０】
この発明にかかる第１の方法では、上記のサイクルを繰り返し実行する過程において、デコードに成功する都度、その処理対象の２次元コードについて、そのコードが読取処理に適している度合を示す評価値を取得して記憶するとともに、取得した評価値と過去に記憶した評価値とを用いて、評価値の経時変化を示すデータを出力することができる。


【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００３１
【補正方法】変更
【補正の内容】
【００３１】
なお、評価値を記憶するステップでは、前記撮像ステップ、抽出処理ステップ、デコード処理ステップの各ステップによる処理が所定サイクル実行される間に得られた評価値を、順次蓄積するのが望ましい。また、「評価値の経時変化を示すデータ」とは、現時点から遡って過去の所定サイクル分の処理の間に得られた評価値の推移を示すデータと、考えることができる。


【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００３４
【補正方法】変更
【補正の内容】
【００３４】
（２）第２の光学情報コード読取方法
この方法でも、撮像ステップ，抽出処理ステップ，デコード処理ステップの各ステップを順番に実行する。さらに、この第２の方法では、デコードに成功したとき、前記抽出処理ステップまたは前記デコード処理ステップの実行過程で得られた所定の情報に基づき、前記画像中の光学情報コードが読取処理に適している度合を表す評価値を得るステップと、この評価値を所定の警告レベルと比較するステップと、前記評価値が前記警告レベルに達したことを条件として、所定の態様による警告処理を実行するステップとを、実行するようにしている。


【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００５３
【補正方法】変更
【補正の内容】
【００５３】
（３）−４　実施態様Ｄ
この実施態様では、前記デコード処理ステップには、光学情報の最小単位を示す小領域を個別に識別するステップと、前記小領域の識別処理において生じた誤りを訂正するステップとが含まれる。また、評価値を得るステップでは、前記識別処理に誤りが生じた小領域の数を用いて、前記小領域の識別処理における誤りの度合を示す評価値を算出する。


【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００６０
【補正方法】変更
【補正の内容】
【００６０】
（４）第１の光学情報コード読取装置
この光学情報コード読取装置は、前記第１の光学情報コードの読取方法を実施するためのもので、視覚認識が可能なシンボルによる光学情報コードを含む画像を取得する画像取得手段と、前記取得した画像に対し、光学情報コードを抽出するための画像処理を実行する画像処理手段と、前記画像処理により抽出された光学情報コードに前記抽出時とは異なる画像処理を実行し、その画像処理結果を用いて前記光学情報コードの表す光学情報をデコードするデコード処理手段と、前記デコード処理手段が光学情報のデコードに成功したとき、前記画像処理手段または前記デコード処理手段が処理の過程で得た所定の情報に基づき、前記取得した画像中の光学情報コードが読取処理に適している度合を示す評価値を取得する評価値取得手段と、前記評価値取得手段が取得した評価値を保持するための記憶手段と、前記記憶手段に保持された複数の評価値を用いて、評価値の経時変化を示すデータを作成して出力する経時変化出力手段とを具備する。


【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００６５
【補正方法】変更
【補正の内容】
【００６５】
上記構成において、画像取得手段が光学情報コードを含む画像を取得する都度、画像処理手段およびデコード処理手段が順に動作し、前記光学情報コードの表す光学情報がデコードされる。このデコードに成功したとき、評価値取得手段は処理対象の光学情報コードについて、そのコードが読取処理に適している度合を表す評価値を求める。ここで得られた評価値は、記憶手段に保持されるとともに、この記憶手段内の過去の評価値とともに経時変化を示すデータに作成され、表示その他の方法により出力される。


【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０１１９
【補正方法】変更
【補正の内容】
【０１１９】
なお、前記した誤り訂正率Ｐは、コードワード単位の誤り訂正の比率を示すだけであるので、評価値Ｅｒのみでは、セル単位での誤りの発生頻度を把握するのは困難である。これに対し、（Ｆ）式によれば、情報表示領域内の個々のセルに対する誤認識の割合を反映した評価値を得ることができる。よって、評価値Ｅｒ，Ｃ２の両方を求めるようにすれば、デコード処理における余裕度について、詳細に判断することができる。


【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】０１４８
【補正方法】変更
【補正の内容】
【０１４８】
この評価値Ｌｉに対する警告レベルはＬｉの値が６以下となったとき、すなわち、（ｗ−ｂ）の値が２０以下となったときに設定されている。評価値Ｌｉがこの警告レベルに達したときには、通常は、照明の選択に誤りがある旨を知らせるコメントを表示する。ただし、このときのｗの値が、前記最低値とみなした「５０」よりも小さくなっている場合には、照明を明るくする必要があることを知らせるコメントを表示する。反対に、ｗの値が最大値である「２５５」に達しているときは、照明を暗くする必要があることを知らせるコメントを表示する。


【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】０１５０
【補正方法】変更
【補正の内容】
【０１５０】
前記（ｂ）式のＥは、タイミングパターンの画像を一次微分した結果を二次微分することによって得られたものである。なお、この実施例では、タイミングパターンにおけるセルの配列状態を識別する際に一次微分を行い、その結果をメインメモリ２２内に保存しているので、評価値Ｆｃを算出する際には二次微分処理から開始すればよい。