(57)【特許請求の範囲】
【請求項１】
画像を取得するカメラと、
カメラにより取得される画像を複数枚記憶可能な画像メモリと、
カメラから取得された画像に含まれる光学コードをデコードするための画像処理部と、
所定の撮影指令が到来するのを待って、所定の撮像条件にてカメラを連続撮影させて複数枚の画像を取得しこれらを画像メモリに格納するマルチ画像取得手段と、
画像メモリに格納された複数枚の画像を所定の順番で１枚ずつ選択して画像処理部に与えることで当該画像に含まれる光学コードのデコードを試み、いずれかの画像に関してデコード成功が判定されるのを待って、残りの画像に関するデコードを試みることなく、デコード成功としてデコード結果を出力するマルチ画像デコード手段と、を含むことを特徴とする光学コード読取装置。
【請求項２】
画像メモリに格納された複数枚の画像を１枚ずつ選択してデコードする際の所定の順番を、デコード成功画像の撮影順番履歴に基づいて変更するデコード順番変更手段を有する、ことを特徴とする請求項１に記載の光学コード読取装置。
【請求項３】
前記カメラは、シャッタースピードを変化可能であり、
カメラの被写体を照らしかつ照明態様を変化させることが可能な照明器を更に具備し、
前記マルチ画像取得手段は、カメラのシャッタースピード若しくは照明器の照明態様の少なくとも何れか一方により規定される所定の撮像条件にてカメラを連続撮影させて複数枚の画像を取得しこれらを画像メモリに格納することを特徴とする請求項１又は２に記載の光学コード読取装置。
【請求項４】
画像を取得するカメラと、
カメラにより取得される画像を複数枚記憶可能な画像メモリと、
カメラから取得された画像に含まれる光学コードをデコードするための画像処理部と、
所定の撮影指令が到来するのを待って、所定の撮像条件にてカメラを連続撮影させて複数枚の画像を取得しこれらを画像メモリに格納するマルチ画像取得手段と、
画像メモリに格納された複数枚の画像を所定の順番で１枚ずつ選択して画像処理部に与えることで当該画像に含まれる光学コードのデコードを試み、少なくとも１つの画像においてデコード成功と判定されるときには、デコード成功としてデコード結果を出力するマルチ画像デコード手段と、
前記連続撮影における撮影間隔を、過去の１連続撮影に際してデコード成功と判定された画像の個数に基づいて変更する撮影間隔変更手段と、を有する、ことを特徴とする光学コード読取装置。
【請求項５】
連続撮影における撮影間隔を、指定された撮影間隔に応じて変更する、撮影間隔変更手段を有する、ことを特徴とする請求項４に記載の光学コード読取装置。
【請求項６】
連続撮影における撮影間隔を、連続撮影所要時間は固定したまま指定された撮影回数に応じて変更する、撮影間隔変更手段を有する、ことを特徴とする請求項４に記載の光学コード読取装置。
【請求項７】
シャッタスピードを変化させることが可能なカメラと、
カメラの被写体を照らしかつ照明態様を変化させることが可能な照明器と、
カメラにより取得される画像を複数枚記憶可能な画像メモリと、
カメラから取得された画像に含まれる光学コードをデコードするための画像処理部と、
所定の撮影指令が到来するのを待って、カメラのシャッタースピード若しくは照明器の照明態様の少なくとも何れか一方により規定される所定の撮像条件にてカメラを連続撮影させて複数枚の画像を取得しこれらを画像メモリに格納するマルチ画像取得手段と、
画像メモリに格納された複数枚の画像を所定の順番で１枚ずつ選択して画像処理部に与えることで当該画像に含まれる光学コードのデコードを試み、少なくとも１つの画像においてデコード成功と判定されるときには、デコード成功としてデコード結果を出力するマルチ画像デコード手段と、を含むことを特徴とする光学コード読取装置。
【請求項８】
所定の撮像条件が、１連続撮影中に変化する撮影条件である、請求項３又は７に記載の光学コード読取装置。
【請求項９】
所定の撮像条件が、撮影条件を変化させつつ得られた過去のデコード成功画像同士の画質比較により求められた最適撮影条件である、請求項１乃至７の何れかに記載の光学コード読取装置。
【請求項１０】
シャッタスピードを変化させることが可能なカメラと、
カメラの被写体を照らしかつ照明態様を変化させることが可能な照明器と、
カメラにより取得される画像を複数枚記憶可能な画像メモリと、
カメラから取得された画像に含まれる光学コードをデコードするための画像処理部と、
カメラのシャッタースピード若しくは照明器の照明態様の少なくとも何れか一方により規定される所定の撮像条件を変化させつつカメラを連続撮影させて複数枚の画像を取得しこれらを画像メモリに格納するマルチ画像取得手段と、
画像メモリに格納された複数枚の画像の全てに対してデコードを試み、デコード成功又は不成功を記録するマルチ画像デコード結果記憶手段と、
デコード成功画像同士の画質を比較することにより、画質の最も良好な１の画像に対する撮影条件を最適撮影条件として出力する最適撮影条件検索手段と、
を有する、光学コード読取装置。
【請求項１１】
表示器を有し、該表示器には、デコード成功画像の中で画質の最も良好な画像と、その画像に対応する付帯情報とが表示される、ことを特徴とする請求項１０に記載の光学コード読取装置。
【請求項１２】
付帯情報には、照明器における点灯パターンが含まれている、ことを特徴とする請求項１１に記載の光学コード読取装置。
【請求項１３】
所定の撮影指令が到来するのを待って、所定の撮影条件にてカメラを連続撮影させて複数枚の画像を取得し、しかるのち、取得された複数枚の画像を所定の順番で１枚ずつ選択してデコードを試み、いずれかの画像に関してデコード成功が判定されるのを待って、残りの画像に関するデコードを試みることなく、デコード成功としてデコード結果を出力する、ことを特徴とする光学コード読取方法。
【請求項１４】
デコードのために複数枚の画像を１枚ずつ選択する際の所定の順番を、デコード成功画像の撮影順番履歴に基づいて変更する、ことを特徴とする請求項１３に記載の光学コードの読取方法。
【請求項１５】
所定の撮影指令が到来するのを待って、所定の撮影条件にてカメラを連続撮影させて複数枚の画像を取得し、しかるのち、取得された複数枚の画像を所定の順番で１枚ずつ選択してデコードを試み、少なくとも１つの画像においてデコード成功と判定されるときには、デコード成功としてデコード結果を出力し、さらに前記連続撮影における撮影間隔を、過去の１連続撮影に際してデコード成功と判定された画像の個数に基づいて変更する、ことを特徴とする光学コードの読取方法。
【請求項１６】
所定の撮影指令が到来するのを待って、１連続撮影中に変化する撮影条件にてカメラを連続撮影させて複数枚の画像を取得し、しかるのち、取得された複数枚の画像を所定の順番で１枚ずつ選択してデコードを試み、少なくとも１つの画像においてデコード成功が判定されるときには、デコード成功としてデコード結果を出力する、ことを特徴とする光学コード読取方法。
【請求項１７】
所定の撮影指令が到来するのを待って、撮像条件を変化させつつカメラを連続撮影させて複数枚の画像を取得し、しかるのち、取得された複数枚の画像の全てに対してデコードを試み、デコード成功画像同士の画質を比較することにより、画質の最も良好な１の画像に対する撮影条件を最適撮影条件として出力する、ことを特徴とする光学コード読取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、バーコードや二次元コードと言った光学コードの読み取りに好適な光学コード読取方法及び装置に関する。
【背景技術】
【０００２】
搬送ライン上に固定されたイメージセンサ内蔵カメラを介して、高速で搬送されてくるワークに付された微細な光学コード（例えば、二次元コート等）を読み取るような場合、撮影タイミングをどのように設定すべきかについては、様々な提案がなされている。
【０００３】
電源が投入された以降、適当な時間間隔でＣＣＤカメラによる撮影を常時繰り返し、トリガ入力が与えられた時点では、既に撮影されてメモリに記憶されている最新の撮影画像に基づいて、直ちに、デコード処理へと移行可能とした情報コード読取装置が従来より知られている（特許文献１参照）。
【特許文献１】特開２０００−２９３６１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述の従来技術にあっては、撮影のタイミングとトリガ入力のタイミングとは完全に非同期であるから、仮に、ワーク上のコード存在位置がカメラの視野に到来したことをトリガセンサ（例えば、ファイバ型光電センサ等）で検出してトリガ入力を発生させたとしても、撮影された画像内には目的とする光学コードが存在しない場合も起こり得る。また、図１９に示されるように、ワーク上の光学コード（二次元コード８）に位置バラツキがあって、たまたま予定位置からのズレ量ΔＬがあれば、撮影タイミングが固定されている限り、カメラの視野９内に目的とする光学コード（二次元コード８）が存在しない場合、又は完全な形では存在しない場合を回避することはてきない。
【０００５】
この発明は、上述の問題点に着目してなされたものであり、その目的とするところは、ワークに付された光学コードを確実に読み取ることができる光学コード読取方法及び装置を提供することにある。
【０００６】
この発明の他の目的とするところは、読取確実性を担保しつつも、可能な限り短時間で読み取りを完了できる光学コード読取方法及び装置を提供することにある。
【０００７】
この発明の他の目的とするところは、使用するに連れて読取確実性を一層向上させることができる光学コード読取方法及び装置を提供することにある。
【０００８】
この発明の他の目的とするところは、読取確実性が高くしかも操作性の良好な光学コード読取方法及び装置を提供することにある。
【０００９】
この発明のさらに他の目的並びに作用効果については、明細書の以下の記述を参照することにより、当業者であれば容易に理解されるであろう。
【課題を解決するための手段】
【００１０】
この発明の基本となる光学コード読み取り装置は、画像を取得するカメラと、カメラにより取得される画像を複数枚記憶可能な画像メモリと、カメラから取得された画像に含まれる光学コードをデコードするための画像処理部と、所定の撮影指令が到来するのを待って、所定の撮像条件にてカメラを連続撮影させて複数枚の画像を取得しこれらを画像メモリに格納するマルチ画像取得手段と、画像メモリに格納された複数枚の画像を所定の順番で１枚ずつ選択して画像処理部に与えることで当該画像に含まれる光学コードのデコードを試み、いずれかの画像に関してデコード成功が判定されるのを待って、残りの画像に関するデコードを試みることなく、デコード成功としてデコード結果を出力するマルチ画像デコード手段と、を含むことを特徴とするものである。
【００１１】
このような構成によれば、所定の撮影指令が到来するのを待って、所定の撮影条件にてカメラを連続撮影させて複数枚の画像が取得されるため、仮に、トリガ入力のタイミングとワークの到来タイミングとの間に時間的ズレが存在したり、ワーク上の光学コード位置にバラツキが存在したとしても、複数回の連続撮像によって得られる複数枚の画像には、ワーク上の光学コードが含まれている確率が高いため、読み取り対象となる画像を唯一としていた従来技術に比べて、光学コードの読取確実性が高まる。また、外乱光等の影響で撮影状態が安定しない環境下にある静止したワークであっても、複数回の連続撮影を行うことで、読み取り確実性が向上される。
【００１２】
加えて、取得された複数枚の画像を所定の順番で１枚ずつ選択してデコードを試み、いずれかの画像に関してデコード成功が判定されたならば、残りの画像に関するデコードを試みることなく、デコード成功としてデコード結果を出力するため、必ずしも全ての画像に関するデコードを試みることが不要となって、出力応答性を向上させることができる。
【００１３】
殊に、光学コードとして２次元コードが採用される場合、情報量が膨大となることから、一枚の画像のデコードにも相当な時間がかかるが、いずれか１つの画像においてデコード成功が判定されれば、その他の画像についてはデコード処理は行われないから、無駄なデコード処理によって出力応答性を害することもない。つまり、この発明によれば、複数回の連続撮影を行うことで読取確実性を担保しつつも、一枚の画像でもデコードに成功すれば、他の画像についてはデコードを試みないから、可能な限り短時間で読取を完了することができる。
【００１４】
好ましい実施の一形態としては、画像メモリに格納された複数枚の画像を１枚ずつ選択してデコードする際の所定の順番を、デコード成功画像の撮影順番履歴に基づいて変更するデコード順番変更手段を有する、ものが考えられる。すなわち、１連続撮影において何回目の撮影順番で得られた画像に関してデコード成功したかを過去複数回の連続撮影に関して記録して撮影順番履歴として保存し、当該撮影順番履歴において出現頻度の高い撮影順番に従って優先的にデコードを行えば、一般に所定の撮影指令（トリガ入力）のタイミングとワークの到来タイミングとの関係は一定の場合が多く、しかもワーク上の光学コードの位置もほぼ同じであるとすれば、デコード成功の出現頻度の高い撮影順番の画像から優先的にデコード処理を試みることによって、デコード成功と判定されるまでの所要時間が一層短かくなる。前述の静止しているワークの場合であっても同様にデコード成功と判定される迄の所要時間を短くすることができ、次のワークの読み取り開始までの間隔を短くすることができる。
【００１５】
また、好ましい実施の一形態としては、前記カメラは、シャッタースピードを変化可能であり、カメラの被写体を照らしかつ照明態様を変化させることが可能な照明器を更に具備し、前記マルチ画像取得手段は、カメラのシャッタースピード若しくは照明器の照明態様の少なくとも何れか一方により規定される所定の撮像条件にてカメラを連続撮影させて複数枚の画像を取得しこれらを画像メモリに格納するようにしたものが考えられる。このように、カメラのシャッタースピード若しくは照明器の照明態様の少なくとも何れか一方により所定の撮像条件を規定すれば、より一層多様な撮像条件を設定することができる。
【００１６】
別の一面から見た本発明の基本となる光学コード読み取り装置は、画像を取得するカメラと、カメラにより取得される画像を複数枚記憶可能な画像メモリと、カメラから取得された画像に含まれる光学コードをデコードするための画像処理部と、所定の撮影指令が到来するのを待って、所定の撮像条件にてカメラを連続撮影させて複数枚の画像を取得しこれらを画像メモリに格納するマルチ画像取得手段と、画像メモリに格納された複数枚の画像を所定の順番で１枚ずつ選択して画像処理部に与えることで当該画像に含まれる光学コードのデコードを試み、少なくとも１つの画像においてデコード成功と判定されるときには、デコード成功としてデコード結果を出力するマルチ画像デコード手段と、前記連続撮影における撮影間隔を、過去の１連続撮影に際してデコード成功と判定された画像の個数に基づいて変更する撮影間隔変更手段と、を有する、ことを特徴とするものである。
【００１７】
すなわち、本発明にあっては、過去の１連続撮影により得られる複数の画像の中の少なくとも１つに目的とする光学コードが含まれていればデコード成功を得ることができるのであるが、連続撮影の間隔やワークの速度との関係で複数の画像の中に多数の目的とする光学コードが含まれていたり、逆に１つの画像にしか含まれていなかったり、或いは全く含まれていない場合も想定される。光学コードの含まれる画像が多くかつ全体の取得画像枚数も多いと大容量の画像メモリが必要となってコストアップとなる。一方、例え含まれていたとしても、１つの画像にしか含まれていないような場合には、僅かのタイミングズレあるいはバラツキによって、目的とする光学コードを取得できない虞がある。そのため、このように過去の１連続撮影においてデコード成功と判定された画像の個数に基づいて連続撮影における撮影間隔を修正することにより、常に適切な取得画像枚数並びに光学コード出現画像数を維持することができ、これにより読取確実性を担保しつつも、メモリ容量等を節減してコストダウンを図ることが可能となる。
【００１８】
好ましい実施の形態としては、連続撮影における撮影間隔を、指定された撮影間隔に応じて変更する、撮影間隔変更手段を有する、ものが考えられる。このような構成によれば、使用者が撮影間隔を指定することによって連続撮影における撮影間隔を任意に調整することが可能となる。
【００１９】
また、好ましい実施の形態としては、連続撮影における撮影間隔を、連続撮影所要時間は固定したまま指定された撮影回数に応じて変更する、撮影間隔変更手段を有する、ものが考えられる。すなわち、殊に、１連続撮影所要時間は固定した状態のまま、撮影回数の指定を許容するようにすれば、その条件を満たす撮影間隔を自動的に算出して、設定を行うことができる。
【００２０】
別の一面から見た本発明の基本となる光学コード読み取り装置は、シャッタスピードを変化させることが可能なカメラと、カメラの被写体を照らしかつ照明態様を変化させることが可能な照明器と、カメラにより取得される画像を複数枚記憶可能な画像メモリと、カメラから取得された画像に含まれる光学コードをデコードするための画像処理部と、所定の撮影指令が到来するのを待って、カメラのシャッタースピード若しくは照明器の照明態様の少なくとも何れか一方により規定される所定の撮像条件にてカメラを連続撮影させて複数枚の画像を取得しこれらを画像メモリに格納するマルチ画像取得手段と、画像メモリに格納された複数枚の画像を所定の順番で１枚ずつ選択して画像処理部に与えることで当該画像に含まれる光学コードのデコードを試み、少なくとも１つの画像においてデコード成功と判定されるときには、デコード成功としてデコード結果を出力するマルチ画像デコード手段と、を含むことを特徴とするものである。
【００２１】
この発明にあっては、少なくとも１つの画像においてデコード成功と判定されたとしても、直ちにその旨を外部へ出力することは要件とされておらず、残りの画像に関してデコード可否を判定することができる。そして、このような構成によれば、取得された複数の画像中に目的とする光学コードが含まれている可能性は高いから、従前のように、１回のトリガ入力に対して１回しか撮影を行わなかったものに比べれば、先に説明した２つの基本となる光学読み取り装置と同様な理由により、トリガ入力のタイミングとワークの到来タイミングとの間に時間的ズレが存在したり、ワーク上の光学コード位置にバラツキが存在したとしても、光学コードを確実に読み取ることができる。加えて、残りの画像に関してもデコード可否を判定することができるため、この判定可否に基づいて所定の撮像条件を設定することも可能となる。
【００２２】
好ましい実施の形態としては、所定の撮影条件が、１連続撮影中に変化する撮影条件である、ことが考えられる。このような構成によれば、例えば、１画像の撮影ごとに撮影条件を変化させることによって、撮影条件の異なる複数枚の画像を取得することができるから、画質の異なる複数枚の画像に対してデコードを試みることにより、被写体となるワーク又は光学コードの表面性状変化等に拘わらず、デコード成功の確率を維持することができる。つまり、ラインを搬送されるワークが同一品種であっても、１個のワークを撮影条件を変更しながら複数回撮影すれば、取得される複数枚の画像のいずれかは最適撮影条件に近い条件で取得されるであろうし、ラインを搬送されるワークの品種が混在する場合にも、取得される複数枚の画像のいずれかは最適撮影条件に近い条件で取得されるであろうから、このような撮影条件変更手法を採用することにより、読取確実性を維持することができる。加えて、静止しているワークであっても、ワーク毎に表面性状が区々の場合には、その都度最適な撮影条件に設定し直さなくても、適切な撮影条件にて取得された画像に基づいて、確実な読取が可能となる。
【００２３】
また、好ましい実施の形態としては、所定の撮影条件が、撮影条件を変化させつつ得られた過去のデコード成功画像同士の画質比較により求められた最適撮影条件である、ことが考えられる。ここで、画質にはコントラスト（画像背景領域又は光学コード領域における、最大又は平均的な白画素レベルと最小又は平均的な黒画素レベルとのレベル差）を含むことが出きる。このような構成によれば、連続撮影を繰り返すうちに、撮影条件は次第に最適な条件に収束するため、上述した１ワークに対して複数画像を取得することによる読取確実性を担保しつつも、使用するにつれて読取確実性を一層向上させることができる。
【００２４】
更に別の一面から見た本発明の光学コード読み取り装置は、シャッタスピードを変化させることが可能なカメラと、カメラの被写体を照らしかつ照明態様を変化させることが可能な照明器と、カメラにより取得される画像を複数枚記憶可能な画像メモリと、カメラから取得された画像に含まれる光学コードをデコードするための画像処理部と、カメラのシャッタースピード若しくは照明器の照明態様の少なくとも何れか一方により規定される所定の撮像条件を変化させつつカメラを連続撮影させて複数枚の画像を取得しこれらを画像メモリに格納するマルチ画像取得手段と、画像メモリに格納された複数枚の画像の全てに対してデコードを試み、デコード成功又は不成功を記録するマルチ画像デコード結果記憶手段と、デコード成功画像同士の画質を比較することにより、画質の最も良好な１の画像に対する撮影条件を最適撮影条件として出力する最適撮影条件検索手段と、を有するものである。
【００２５】
ここで、比較されるデコード成功画像の画質にはコントラストを含んでいてもよい。このような構成によれば、自動的に最適撮影条件を求め、これを装置に対して教示（ティーチング）することができる。
【００２６】
好ましい実施の形態としては、表示器を有し、該表示器には、デコード成功画像の中で画質の最も良好な画像と、その画像に対応する付帯情報とが表示されるものが考えられる。ここで、付帯情報には、照明器における点灯パターンを含めることができる。その他の付帯情報としては、先の例でも述べたように、シャッタスピード、その他の撮影条件、読取対象となるコードに関する情報（例えばセルサイズ等）を挙げることができる。そして、このような構成によれば、読取確実性を担保しつつも、操作性の良好な光学コード読取装置を提供することができる。
【００２７】
本発明の基本となる光学コード読み取り方法は、所定の撮影指令が到来するのを待って、所定の撮影条件にてカメラを連続撮影させて複数枚の画像を取得し、しかるのち、取得された複数枚の画像を所定の順番で１枚ずつ選択してデコードを試み、いずれかの画像に関してデコード成功が判定されるのを待って、残りの画像に関するデコードを試みることなく、デコード成功としてデコード結果を出力する、ことを特徴とするものである。
【００２８】
このような構成によれば、先の装置の場合と同様な理由により、トリガ入力のタイミングとワークの到来タイミングとの間に時間的ズレが存在したり、ワーク上の光学コード位置にバラツキが存在したとしても、光学コードを確実にかつ可能な限り短時間で読み取ることができる。
【００２９】
好ましい実施の形態としては、デコードのために複数枚の画像を１枚ずつ選択する際の所定の順番を、デコード成功画像の撮影順番履歴に基づいて変更するようにしたものが考えられる。このような構成によれば、先の装置の場合と同様な理由により、上述した読取確実性を担保しつつも、読取完了に至る所要時間を一層短縮することが可能となる。
【００３０】
別の一面から見た本発明の基本となる光学コード読み取り方法は、所定の撮影指令が到来するのを待って、所定の撮影条件にてカメラを連続撮影させて複数枚の画像を取得し、しかるのち、取得された複数枚の画像を所定の順番で１枚ずつ選択してデコードを試み、少なくとも１つの画像においてデコード成功と判定されるときには、デコード成功としてデコード結果を出力し、さらに前記連続撮影における撮影間隔を、過去の１連続撮影に際してデコード成功と判定された画像の個数に基づいて変更する、ことを特徴とするものである。
【００３１】
このような構成によれば、過去の１連続撮影においてデコード成功と判定された画像の個数に基づいて連続撮影における撮影間隔を修正することができるから、常に適切な取得画像枚数並びに光学コード出現画像数を維持することができ、これにより読取確実性を担保しつつも、メモリ容量等を節減してコストダウンが可能となる。
【００３２】
別の一面から見た本発明の基本となる光学コード読み取り方法は、所定の撮影指令が到来するのを待って、１連続撮影中に変化する撮影条件にてカメラを連続撮影させて複数枚の画像を取得し、しかるのち、取得された複数枚の画像を所定の順番で１枚ずつ選択してデコードを試み、少なくとも１つの画像においてデコード成功が判定されるときには、デコード成功としてデコード結果を出力する、ものである。
【００３３】
このような構成によれば、トリガ入力のタイミングとワークの到来タイミングとの間に時間的ズレが存在したり、ワーク上の光学コード位置にバラツキが存在したとしても、光学コードを確実に読み取ることができる。加えて、１画像の撮影ごとに撮影条件を変化させることによって、撮影条件の異なる複数枚の画像を取得することができるから、画質の異なる複数枚の画像に対してデコードを試みることにより、被写体となるワーク又は光学コードの表面性状変化等に拘わらず、デコード成功の確率を維持することができる。
【００３４】
更に別の一面から見た本発明の基本となる光学コード読み取り方法は、所定の撮影指令が到来するのを待って、撮像条件を変化させつつカメラを連続撮影させて複数枚の画像を取得し、しかるのち、取得された複数枚の画像の全てに対してデコードを試み、デコード成功画像同士の画質を比較することにより、画質の最も良好な１の画像に対する撮影条件を最適撮影条件として出力する、ことを特徴とするものである。
【００３５】
ここで、比較されるデコード成功画像の画質にはコントラストを含んでいてもよい。このような構成によれば、自動的に最適撮影条件を求め、これを装置に対して教示（ティーチング）することができる。
【発明の効果】
【００３６】
以上の説明で明らかなように、本発明によれば、所定の撮影指令が到来するのを待って、所定の撮影条件にてカメラを連続撮影させて複数枚の画像を取得し、しかるのち、取得された複数枚の画像の１つを所定の順番で選択してデコードを試み、少なくとも１つの画像においてデコード成功と判定されるときには、デコード成功としてデコード結果を出力するものであるから、トリガ入力のタイミングとワークの到来タイミングとの間に時間的ズレが存在したり、ワーク上の光学コード位置にバラツキが存在したとしても、連続撮影される複数の画像の１つに光学コードが含まれる確率が高いため、光学コードを確実に読み取ることができる。
【発明を実施するための最良の形態】
【００３７】
以下に、この発明の好適な実施の一形態を添付図面を参照しながら詳細に説明する。尚、以下の実施形態は本発明の一部を示すものに過ぎず、本発明の及ぶ範囲は、明細書の特許請求の範囲の記載によってのみ規定されることは言うまでもない。
【００３８】
本発明装置のシステム構成を示す模式的外観図が図１に示されている。同図において、符号１はコントローラ、２はカメラ、３はトリガタイミング検知センサ、４はハンディコンソール、５はビデオモニタ、６ａはプログラマブルコントローラ、６ｂはパソコン、７は照明器である。
【００３９】
カメラ２にはＣＣＤ等のイメージセンサが内蔵されており、カメラ２の先端部にはフードを有する照明器７が備えられている。照明器７には照明角度の異なる複数の照明要素が設けられている。各照明要素は、１個の光源又は複数の光源で構成される。これらの照明要素は１個ずつ択一的に又は２以上のものを同時に点灯することが可能とされている。これら照明要素の点灯は、コントローラ１からの制御によって行うことができる。トリガタイミング検知センサ３は、搬送路上を流れてくるワークがカメラ２の視野にさしかかったタイミングを検知して、トリガ入力を生成するものである。ハンディコンソール４及びビデオモニタ５は、本装置のヒューマンマシンインタフェースとして機能するものであり、これらを用いて本発明装置とオペレータとの対話が適切に行われる。プログラマブルコントローラ６ａ及びパソコン６ｂは、本発明装置に対する上位システムを構成するものである。例えば、プログラマブルコントローラ６ａは生産ライン全体の制御を、またパソコン６ｂはプログラマブルコントローラ６ａに対する各種の統括的な指示を与えるために使用される。
【００４０】
コントローラの内部構成を中心として示すブロック図が図２に示されている。尚、同図において、先に説明した図１の構成要素と同一部分については同符号を付して説明は省略する。
【００４１】
同図に示されるように、コントローラ１には、ＣＰＵ１０１と、メモリ１０２と、画像メモリ１０３と、画像入出力制御部１０４と、コンソールインタフェース１０５と、モニタインタフェース１０６と、カメラインタフェース１０７と、照明インタフェース１０８と、トリガセンサインタフェース１０９と、画像処理部１１０と、ＣＰＵバス１１１と、内部バス１１２と、通信インタフェース１１３とが含まれている。ＣＰＵ１０１はマイクロプロセッサを主体として構成されており、メモリ１０２に格納されたシステムプログラムを実行することによって、コントローラ１全体の制御を司る。
【００４２】
コントローラ１は、通信インタフェース１１３を介して上位システム６と接続される他、コンソールインタフェース１０５、モニタインタフェース１０６、カメラインタフェース１０７、照明インタフェース１０８、トリガセンサインタフェース１０９をそれぞれ介して、コンソール４、ビデオモニタ５、カメラ２、照明器７、トリガセンサ３のそれぞれに接続される。
【００４３】
トリガセンサ３の作動により生成されたトリガ入力は、トリガセンサインタフェース１０９を介してコントローラ１に取り込まれる。照明器７を構成する複数の照明要素は、照明インタフェース１０８を介してコントローラ１から与えられる信号によって選択的に点灯され、これにより複数の照明態様が実現される。カメラ２の撮影動作により得られた画像はカメラインタフェース１０７を介してコントローラ１に取り込まれ、最終的に画像メモリ１０３に格納される。画像メモリ１０３に格納された画像データは、適宜読み出されて、画像処理部１１０へ与えられ、ここで公知の各種の画像処理が行われた後、所定の規則に従ってデコードが試みられる。オペレータの所定操作によりコンソール４で発生される各種の指令は、コンソールインタフェース１０５を介してコントローラ１内に取り込まれる。コントローラからオペレータに対する各種の指示は、モニタインタフェース１０６を介してビデオモニタ５へと与えられ、ビデオモニタ５の画面上には該当する情報に相当する文字や図形が表示される。内部における高速の画像データ転送は内部バス１１２を介して行われ、ＣＰＵが取り扱う各種のデータはＣＰＵバス１１１を介して該当する回路要素に与えられる。
【００４４】
次に、ＣＰＵ１０１で実行される処理の全体を概略的に示すゼネラルフローチャートが図３に示されている。同図において電源投入により処理が開始されると、一般的な全体としての初期設定処理を実行した後（ステップ３０１）、コントローラに設けられた図示しないＳＥＴ／ＲＵＮ切替スイッチの内容に応じて、ＳＥＴモード系の処理（ステップ３０３，３０４，３０５）又はＲＵＮモード系の処理（ステップ３０６，３０７，３０８）が択一的に実行される。
【００４５】
実際に搬送ラインに流れているワークを対象として２次元コード読取を行う処理はＲＵＮモード処理（ステップ３０７）において実行される。一方、ＲＵＮモードに先立つ、各種の設定処理乃至教示処理（ティーチング）は、ＳＥＴモード処理（ステップ３０４）において実行される。
【００４６】
次に、ＳＥＴモードにて実行される撮影条件自動設定処理のゼネラルフローチャートが図４に示されている。同図に示されるように、この撮影条件自動設定処理は、符号４０１が付された規定回数連続撮像処理（条件都度変更）と、符号４０２が付された全撮像画像対象デコード処理と、符号４０３が付された最適条件決定処理とから構成されている。そして、この撮影条件自動設定処理は、通信インタフェース１１３やコンソールインタフェース１０５からティーチング開始信号が入力された場合に開始される。
【００４７】
規定回数連続撮影処理（条件都度変更）の詳細を示すフローチャートが図５に示されている。同図において処理が開始されると、まず、撮像の条件設定処理（ステップ５０１）が実行されて、各撮像回数に応じた照明態様とシャッタスピードの設定が行われ、該当する制御データがカメラ２と照明器７に対して送信される。これにより、カメラ２におけるシャッタスピード（一般的には、ＣＣＤ素子による電子シャッタのシャッタスピード）の設定が行われ、同時に、照明器７における照明態様（照明要素の選択点灯）が設定される。
【００４８】
続いて、撮像と画像格納処理（ステップ５０２）が実行されて、設定されている撮影条件（この例では、シャッタスピードと照明態様にて規定される）にてカメラ２の１回の撮像動作が実施され、画像メモリ１０３の当該撮影回数に対応した記憶領域には、カメラ撮影により得られた画像データが格納される。
【００４９】
続いて、予め設定された連続撮影の規定回数に達したかどうかの判定が行われ（ステップ５０３）、規定回数未満と判定されると（ステップ５０３未満）、撮影回数が＋１増加更新されて、再び撮像の条件設定処理（ステップ５０１）及び撮像と画像格納処理（ステップ５０２）とが実行され、初回とは異なる撮像条件にてカメラ撮影並びに画像メモリへの格納が行われる。以後、撮像回数が連続撮影のための規定回数に達するまでの間、上記の処理（ステップ５０１，５０２）が繰り返される。これに対して、撮像回数を更新（ステップ５０４）した結果として連続撮影のための規定回数に達したと判定されると（ステップ５０３到達）、この規定回数連続撮影処理（ステップ４０１）は終了する。
【００５０】
このようにして、規定回数連続撮影処理（条件都度変更）が終了すると、画像メモリ１０３内の撮像回数に応じた各記憶領域には、各撮像回数毎の照明条件とシャッタスピードとをもって撮影された画像データが格納された状態となり、すなわち撮影条件の異なる複数枚の画像が取得される。
【００５１】
次に、全撮像画像対象デコード処理の詳細を示すフローチャートが図６に示されている。同図において処理が開始されると、デコード対象メモリの取得処理（ステップ６０１）が実行されて、画像メモリ１０３内のデコード回数に応じた記憶領域から画像データが取得される。
【００５２】
続いて、二次元コード読取のためのデコード処理が実行される（ステップ６０２）。デコード処理の実行内容を示すフローチャートが図８に示されている。同図において処理が開始されると、まずコード位置の検出処理（ステップ８０１）が実行されて、２次元コードの位置を示す特定形状（ファンダパターン）を探すことによって、画像内のどこにコードが存在するかが調べられる。続いて、コード候補の有無が判定され（ステップ８０２）、ここでコードの位置となる候補が検出できなかった場合には（ステップ８０２なし）、デコード失敗終了に至ることとなる。これに対して、コードの位置となる候補が検出できた場合には（ステップ８０２あり）、続いてタイミングパターン検出処理（ステップ８０３）が実行される。このタイミングパターン検出処理では、セルの位置を決定する形状（タイミングパターン）が検出されて、各セルの座標が取得される。続いて、タイミングパターンの検出が成功したか失敗したかがチェックされ（ステップ８０４）、失敗した場合には（ステップ８０４失敗）、そのままデコード失敗終了に至ることとなる。これに対して、タイミングパターンの検出に成功した場合には（ステップ８０４成功）、続いてセルの白黒判定処理（ステップ８０５）が実行される。このセルの白黒判定処理では、タイミングパターンの検出によって取得したセルの座標の画素値を参照し、セルの白黒を決定する処理が行われる。続いて、誤り訂正実施（ステップ８０６）が行われ、取得したセルの白黒情報に対して、公知の手法により誤り訂正処理が実行される。その後、誤り訂正が成功したか否かが判定され（ステップ８０７）、失敗した場合には（ステップ８０７失敗）、デコード失敗終了に至ることとなる。これに対して、誤り訂正に成功した場合には（ステップ８０７成功）、デコード成功終了に至ることとなる。このように、デコード処理（ステップ６０２）においては、取得している画像メモリに対してデコード処理を実施し、該当する２次元コードの復元化が図られる。この図８のフローチャートで示されるデコード処理は、ＳＥＴモードだけでなく、ＲＵＮモードでも実行される。
【００５３】
図６に戻って、続いてデコード結果の個別記憶（ステップ６０３）が実行され、デコードの可否や、撮影条件や、デコードが可能であった場合の安定度を示すデータ等が各画像毎に個別に格納される。ここで『安定度』とは、対象となる画像からどれだけ安定的に正確な情報をデコードできるかを示す指標である。誤り訂正処理における訂正個数が多ければ、このような画像は安定度が低いものと判断される。逆に、誤り訂正処理における訂正個数が少なければ、このような画像は安定度が高いものと判断される。安定度を測定する手法としては、種々のものが考えられるが、この実施形態にあっては、当該画像のコントラストをもって安定度の高低を簡易的に判断するようにしている。換言すれば、広い意味での画質の良否が、安定度の高低に対応すると言うこともできる。
【００５４】
続いて、全撮像画像に関し処理が終了したかの判定が行われ（ステップ６０４）、終了していなければ（ステップ６０４未処理あり）、デコード回数を＋１増加させて更新させた後（ステップ６０５）、以上説明したデコード対象メモリの取得処理（ステップ６０１）、デコード処理の実行（ステップ６０２）、デコード結果の個別記憶（ステップ６０３）が再び順次実行され、以後全撮像画像終了と判定されるまでの間（ステップ６０４）、以上の処理（ステップ６０１〜６０３）が繰り返し実行される。一方、全画像終了と判定されると（ステップ６０４終了）、この全撮像画像対象デコード処理は終了する。
【００５５】
続いて、最適条件決定処理の詳細を示すフローチャートが図７に示されている。同図において処理が開始されると、デコード可能であった撮像画像の選別（ステップ７０１）が実行されて、図６に示されるデコード結果の個別記憶処理（ステップ６０３）で格納されている、各画像のデコード処理を実施した場合の結果を示すデータ（デコード成功／失敗、安定度、撮影条件等）同士の比較が行われ、どの撮像条件で読取可能であったかが調べられる。
【００５６】
続いて、デコード可能であった画像が存在したか否かの判定が行われ（ステップ７０２）、デコード可能画像なしと判定されると（ステップ７０２なし）、ティーチング結果の出力処理（ステップ７０６）が実行されて、読取可能であった画像が存在しなかった旨が、ユーザに対してビデオモニタ５等を介して通知される。これに対して、デコード可能な画像がありと判定されると（ステップ７０２あり）、安定度の高いデコード結果画像の調査（ステップ７０３）が実行されて、読取が可能であった各画像の撮影条件が当該画像の安定度の高い順に記憶される（ステップ７０４）。
【００５７】
続いて、ティーチング結果の出力処理（ステップ７０５）が実行されて、ティーチングが成功した旨がユーザに対してビデオモニタ５等を介して通知され、ティーチング成功終了に至ることとなる。
【００５８】
次に、ティーチング成功終了時のモニタ表示例を示す図が図９に示されている。この例にあっては、モニタ画面の中央にティーチング成功に関わった２次元コードの画像９０１が、読み取られた角度そのままの状態で表示され、同時にその時のシャッタスピード表示９０２が『１／１００ｓｅｃ』として、また照明点灯パターン表示９０３が照明要素シンボル７０１，７１１〜７１４，７２１〜７２４を用いて表示される。すなわち、この照明点灯パターン表示９０３は、照明器を構成する各照明要素、すなわち真上に位置する１個の照明要素に対応するシンボル７０１、その周囲内側に位置する４個の照明要素に対応するシンボル７１１〜７１４、さらにその周囲に位置する４個の照明要素に対応するシンボル７２１〜７２４を含んでいる。この例にあっては、照明要素シンボル７２１〜７２４にて示される最も外側に位置する４個の照明要素だけが点灯された照明点灯パターンによって、ティーチング成功に至ったことが示されている。尚、読取対象となった２次元コードの画像９０１の他に表示される付帯情報としては、その他様々な撮影条件、あるいは読取対象となった２次元コードの情報（例えば、セルサイズ等）を挙げることもできる。
【００５９】
次に、ＲＵＮモードにて実行される２次元コード読取処理の内、デコード順序自動修正機能の全体を示すフローチャートが図１０に示されている。この２次元コード読取処理（デコード順序自動修正機能付）は、トリガ入力が到来するのを待って開始される。トリガ入力は、トリガタイミング検知センサ３がワークの到来を検出したとき、ハンディコンソール４において撮影開始指令操作が行われたとき、上位システム６から送られてきた撮影開始コマンドが解読されたときなどに発生する。
【００６０】
トリガ入力に応答して処理が開始されると、まず繰り返し撮像処理（ステップ１００１）が実行される。繰り返し撮像処理の詳細を示すフローチャートが図１１に示されている。同図に示されるように、この繰り返し撮像処理にあっては、撮像回数を初回から＋１ずつ増加させて（ステップ１１０３）、次の撮像の時間ウエイト処理（ステップ１１０４）で決まる時間間隔をおいて、カメラによる撮像と撮像された画像の格納とを繰り返し（ステップ１１０１）、撮像回数が規定回数に達するのを待って（ステップ１１０２到達）、処理を終了する。その結果、繰り返し撮像処理（ステップ１００１）が終了した時点においては、画像メモリ１０３の各撮影回数領域には、所定の撮影条件（この例では、撮影条件は固定）にて撮影された画像が記憶される。
【００６１】
図１０に戻って、繰り返し撮像処理（ステップ１００１）が終了すると、続いてデコード対象メモリの取得処理（ステップ１００２）が実行される。このデコード対象メモリの取得処理（ステップ１００２）では、動的に決定されたデコード順序（詳細は後述）を取得するもので、取得結果は、メモリ１０２に記憶される。ここで、『デコード対象メモリ』とは、デコード対象となる画像のことを意味している。
【００６２】
続いて、取得された画像について、所定の規則に従って、デコード処理の実行が行われ（ステップ１００３）、しかる後、デコード結果の個別記憶が行われる（ステップ１００４）。なお、デコード処理の詳細については、先に、図８を参照して説明した通りである。
【００６３】
このデコード結果の個別記憶処理（ステップ１００４）においては、デコード処理が成功したか又は失敗したかが、当該画像の撮影順番と関連づけて記憶される。もっとも、先に図６を参照して説明した処理と同様に、安定度や撮像条件を記憶するようにしてもよい。
【００６４】
続いて、当該画像に関してデコードが成功したか否かの判定が行われ（ステップ１００５）、成功と判定された場合には（ステップ１００５成功）、成功タイミングの記憶と次回のデコード順序の決定を行った後（ステップ１００８）、読取成功結果の出力を行って（ステップ１００９）、読取成功終了に至ることとなる。ここで、『成功タイミング』とは、読取成功と判断された画像の１連続撮影における撮影順番のことを意味している。
【００６５】
これに対して、当該画像に関してデコード失敗と判定された場合には（ステップ１００５失敗）、続いてまだデコードを試みていない画像が存在するか否かの判定が行われ（ステップ１００６）、残画像なしと判定された場合には（ステップ１００６なし）、読取失敗結果の出力を行った後（ステップ１０１０）、読取失敗終了に至ることとなる。他方、残画像の有無判定処理において、残画像ありと判定された場合には（ステップ１００６あり）、デコード回数を＋１更新させた後（ステップ１００７）、残画像なしと判定されるまでの間（ステップ１００６なし）、デコード対象メモリの取得処理（ステップ１００２）、デコード処理の実行（ステップ１００３）、デコード結果の個別記憶（ステップ１００４）、及びデコード成功判定処理（ステップ１００５）が繰り返し実行される。
【００６６】
次に、ステップ１００８で実行される次回のデコード順を決定するための処理を示すフローチャートが図１２に示されている。同図に示されるように、処理が開始されると、まず、過去の読取結果データの作成処理が実行される（ステップ１２０１）。この過去の読取結果データの作成処理（ステップ１２０１）では、過去の連続撮影回のそれぞれにおいて、何番目に撮影された画像において、デコード成功が判定されたかを示すデータ、すなわち『デコード成功画像の撮影順番履歴』の作成が行われる。
【００６７】
撮影回数が７回である場合における過去１００回の読取結果（読取成功／読取失敗）を表にして示す図が図１３に示されている。この例にあっては、１回の連続撮影毎に７回の撮像が行われ、これにより７枚の画像が取得される。具体的には、１回前の連続撮影においては５回目の撮影によって得られた画像において、２回目の連続撮影においては５回目に撮影された画像において、３回目の連続撮影においては４回目に撮影された画像において、４回目の連続撮影においては３回目に撮影された画像において、それぞれ初めてデコード成功が生じている。そして、１００回のトータルで見ると、１回目の撮影により得られた画像では０回、２回目の撮影により得られた画像では０回、３回目の撮影により得られた画像では１回、４回目の撮影により得られた画像では９回、５回目の撮影により得られた画像では８５回、６回目の撮像により得られた画像では５回、７回目の撮像により得られた画像では０回、とそれぞれ初めてデコードが成功したタイミング（回数）が記録されている。すなわち、この過去の読取結果データの作成処理（ステップ１２０１）では、『デコード成功画像の撮影順番履歴』が求められる。
【００６８】
続いて、ステップ１２０２では、撮像番号をデコード成功回数の多い順に並べることによって、デコード順序が決定される。すなわち、図１３の例であれば、『５』→『４』→『６』→『３』→『１』→『２』→『７』のように、デコード順序の決定が行われる。このとき、成功回数が同じ画像番号に関しては、撮影番号の若い順に並べられる（ステップ１２０３，１２０４）。このようにして、次回のデコード順序を示すデータがメモリに記憶される（ステップ１２０５）。そして、ステップ１００２のデコード対象メモリの取得処理においては、こうして作成されたデコード順序を示すデータに基づいて、デコード対象メモリの取得が行われる。
【００６９】
このように、デコード成功画像の撮影順番履歴に基づいてデコード順番を決定するようにすれば、最も成功する確率の高い画像からデコード処理を行うこととなって、デコード成功に至る時間を確率的に最短とすることができる。このことは、カメラを固定して移動するワークを撮影するような場合に大きな意味がある。すなわち、トリガ入力の到来タイミングとカメラの視野に２次元コードが到来するタイミングとは、ワーク上の２次元コード位置にバラツキがなければ、ほぼ一定のはずであるから、トリガ入力の到来を待って複数回の連続撮影を行った場合、何番目の撮影において２次元コードが現れるかの傾向はほぼ一定であるから、このようなデコード成功画像の撮影順番履歴に基づいてデコード処理の順番を決定すれば、常に最短時間でデコード成功が得られるのである。
【００７０】
その結果、図１０に示される２次元コード読取処理（デコード順序自動修正機能付）によれば、連続撮影により得られた複数枚の画像に対して、所定の順序でデコードを試み、いずれかの画像においてデコード成功と判定されたときには、残りの画像に関してデコード処理を試みずに、直ちに読取成功結果を出力することによって、読取確実性を担保しつつも、短時間で読取を完了できることに加え、デコード順番を過去のデコード成功画像の撮影順番履歴に基づいて修正するため、確率的により一層短時間で読取を完了させることが可能となる。
【００７１】
次に、ＲＵＮモードにて実行される２次元コード読取処理の内、撮像間隔自動修正機能の全体を示すフローチャートが図１４に示されている。同図において処理が開始されると、繰り返し撮像処理（ステップ１４０１）が実行される。この繰り返し撮像処理（ステップ１４０１）は、先に図１１を参照して説明した処理と同様である。
【００７２】
続いて、デコード対象メモリの取得処理（ステップ１４０２）が実行される。このデコード対象メモリの取得においては、固定されたデコード順序（例えば、撮影順）に従って画像メモリ１０３からデコード対象画像の取得が行われる。続いて、図８のフローチャートを参照して先に説明したように、デコード処理の実行が行われ（ステップ１４０３）、取得された画像に対して所定の規則に従ってデコード処理が試みられる。続いて、デコード結果の個別記憶処理（ステップ１４０４）が実行されて、当該画像に関しデコード成功又は失敗が個別に記憶される。以後、デコード回数を＋１ずつ更新させながら（ステップ１４０６）、デコード対象メモリの取得（ステップ１４０２）、デコード処理の実行（ステップ１４０３）、デコード結果の個別記憶（ステップ１４０４）が繰り返され、デコード画像の抽出完了が判定されるのを待って（ステップ１４０５）、画像に関するデコード処理は終了する。
【００７３】
その後、１連続撮影において、デコード成功と判定された画像の個数が『無し又は１つ』、『２つ』、『３つ以上』のいずれであるかの判定が行われる（ステップ１４０７）。ここで、デコード成功とされた画像が『２つ』であれば（ステップ１４０７『２つ』）、直ちに読取結果の出力が行われて（ステップ１４１０）、読取終了に至ることとなる。
【００７４】
これに対して、デコード成功と判定された画像の数が『なし又は１つ』と判定されると（ステップ１４０７『なし又は１つ』）、撮像間隔を規定するウエイト時間は１段階減少させられ（ステップ１４０８）、その後、読取結果の出力処理へと進んで読取結果の出力が行われて（ステップ１４１０）、読取終了に至ることとなる。
【００７５】
他方、デコード成功と判定された画像の数が『３つ以上』と判定されると（ステップ４０７『３つ以上』）、撮像間隔を規定するウエイト時間は１段階増加させられ（ステップ１４０９）、しかる後、読取結果の出力が行われて（ステップ１４１０）、読取終了に至ることとなる。
【００７６】
このように、この２次元コード読取処理（撮像間隔自動修正機能付）によれば、１連続撮影によって得られた複数の画像のうちで、デコード成功が判定された画像が、『なし又は１つ』、『２つ』、『３つ以上』のいずれであるかによって、撮影間隔を規定するウエイト時間が増減制御される。その結果、撮像間隔は常に２つの画像に二次元コードが含まれるように、フィードバック制御されることとなる。このことは、以下のような効果に繋がることとなる。
【００７７】
ワークの移動に伴う２次元コードとカメラ視野との関係を示す説明図が図１５に示されている。同図において、時刻ｔ１，ｔ２，ｔ３，ｔ４，ｔ５はそれぞれ撮影タイミングを示している。また、符号８はワークに付された２次元コード、９はカメラ２の視野である。
【００７８】
図から明らかなように、時刻ｔ１においては、ワークに付された２次元コード８は、カメラの視野９に進入する直前にあり、カメラの視野９内に２次元コード８は存在しない。時刻ｔ２においては、２次元コード８はカメラの視野９内に進入した直後にあり、カメラの視野９の左端に２次元コード８が存在する。時刻ｔ３においては、２次元コード８はカメラの視野９から脱出する直前にあり、２次元コード８はカメラの視野９内の右端に存在する。時刻ｔ４においては、２次元コード８はカメラの視野９から脱出した状態にあり、カメラの視野９内に２次元コード８は存在しない。時刻ｔ５においては、２次元コード８はカメラの視野９をすでに大きく脱出しており、当然にして、カメラの視野９内に２次元コード８は存在しない。
【００７９】
このような状況を想定すると、カメラの視野９内に２次元コード８が存在するのは、時刻ｔ２とｔ３とで撮影された画像だけであり、時刻ｔ１，ｔ４，ｔ５で撮影された画像には２次元コードは存在しない。一方、撮影間隔をより短くしていけば、２次元コード８が含まれる画像は３個以上に増大するし、逆に撮影間隔を長くしていけば、２次元コード８を含む画像の数は１又は０となる。
【００８０】
ここで、連続撮影の所要時間を一定とすれば、撮影間隔を短くすればするほど取得される画像の枚数は増大して、メモリ容量が多く必要となり、装置のコストアップに繋がる。一方、撮影間隔を増大していけば、対象となる２次元コードの含まれる画像の数が減少していき、ワーク上の２次元コードの位置ズレがあったような場合、２次元コード８を含む画像が存在しない状態も想定される。読み取りを成功させるためには少なくとも２次元コード８を含む画像が１枚存在しなければならないが、１枚存在するように撮影間隔を長くすると、ワーク上の２次元コードの位置にバラツキが生じた場合、２次元コードを取得できなくなる。そこで、少なくとも２枚の画像に２次元コード８が存在する状態に撮影間隔を修正しておくと、仮にワーク上の２次元コード位置にバラツキがあったとしても、いずれかの画像には２次元コード８が含まれることとなる。このことから、図１４に示される２次元コード読取処理（撮像間隔自動修正機能付）にあっては、デコード成功画像ができるだけ『２つ』となるように、ウエイト時間を増減して、フィードバック制御を行っているのである。尚、この撮像間隔自動修正機能は、ＲＵＮモードだけでなく、ＳＥＴモードで用いることもできる。
【００８１】
次に、ＲＵＮモードで実行される２次元コード読取処理の内、異条件複数画像取得機能の全体を示すフローチャートが図１６に示されている。同図において処理が開始されると、規定回数連続撮像処理（条件都度変更）が実行される（ステップ１６０１）。規定回数連続撮像処理（条件都度変更）の詳細を示すフローチャートが図１７に示されている。
【００８２】
同図に示されるように、この規定回数連続撮像処理（条件都度変更）においては、撮像条件（照明態様・シャッタスピード等）の設定（変更）を行っては（ステップ１７０１）、撮像と画像格納を行う処理（ステップ１７０２）を、一定の時間間隔で（ステップ１７０５）、繰り返し実行する処理を（ステップ１７０４）、規定回数に達するまで（ステップ１７０３）行い、規定回数が到来するのを待って（ステップ１７０３到達）、処理を終了する。すなわち、この処理にあっては、撮影条件を変更しながら、複数回の連続撮影を行い、これにより得られた画像を画像メモリに順次記憶させるのである。このとき、撮像の時間間隔は一定とされている（ステップ１７０５）。
【００８３】
撮影条件である照明点灯パターンの例を示す図が図１８に示されている。同図に示されるように、この例にあっては、照明器は中央の照明要素７０１、これを取り巻く４個の照明要素７１１，７１２，７１３，７１４、さらにこれを取り巻く４個の照明要素７２１，７２２，７２３，７２４からなる９個の照明要素を備えている。ここで照明要素とは、１個の光源または複数の光源で構成される。そしてこれらの照明要素は、選択的に点灯可能となされている。
【００８４】
同図（ａ）に示される第１点灯パターンにあっては、それら９個の照明要素は全て点灯状態にある。同図（ｂ）に示される第２点灯パターンにあっては、中央の照明要素７０１を除く残りの８個の照明要素が全て点灯状態とされる。同図（ｃ）に示される第３点灯パターンにあっては、外側に位置する４個の照明要素７２１，７２２，７２３，７２４のみが点灯状態とされる。同図（ｄ）に示される第４点灯パターンにあっては、中央の照明要素７０１を取り巻く内側の４個の照明要素７１１，７１２，７１３，７１４のみが点灯状態とされる。同図（ｅ）に示される第５点灯パターンにあっては、中央の照明要素７０１のみが点灯状態とされる。
【００８５】
このように、図１８に示される照明器にあっては、９個の照明要素を選択的に点灯することによって、第１点灯パターンから第５点灯パターンまでの５つの点灯パターンを選択することができる。そして、ステップ１７０１に示される撮影条件の設定にあっては、それら点灯パターンのいずれか１つを採用することによって、撮影条件を設定変更するのである。
【００８６】
図１６に戻って、規定回数連続撮像処理（条件都度変更）が終了すると、続いてデコード対象メモリの取得（ステップ１６０２）、デコード処理の実行（ステップ１６０３）、デコード結果の個別記憶（ステップ１６０４）が前述と同様にして実行され、しかる後、当該画像に関してデコード成功の判定が行われる（ステップ１６０５）。
【００８７】
ここで、デコードが成功と判定されれば（ステップ１６０５成功）、成功条件（照明態様・シャッタスピード等）の記憶を行った後（ステップ１６０８）、読取成功結果の出力処理（ステップ１６０９）を経て、読取成功終了に至ることとなる。これに対して、デコード失敗と判定された場合には（ステップ１６０５失敗）、続いてまだデコードを試みていない画像が存在するか否かの判定が行われ（ステップ１６０６）、残画像なしと判定されれば（ステップ１６０６なし）、読取失敗結果の出力を経て（ステップ１６１０）、読取失敗終了へ至ることとなる。一方、残画像が存在すれば（ステップ１６０６あり）、デコード回数を＋１更新した後（ステップ１６０７）、先ほどと同様にして、デコード対象メモリの取得処理（ステップ１６０２）、デコード処理の実行（ステップ１６０３）、デコード結果の個別記憶（ステップ１６０４）に続いて、デコード成功か否かの判定が行われ（ステップ１６０５）、成功か失敗かに応じて該当する処理が実行される。
【００８８】
この２次元コード読取処理（異条件複数画像取得機能付）によれば、デコード対象となる複数の画像は、それぞれ撮影条件の異なるものであるから、生産ラインにおいて、２次元コードが付されたワークの表面性状（鏡面、粗面、明暗、模様の存在等）が変化したような場合にあっても、いずれかの撮影条件で得られた画像に関しては、デコード成功となる可能性が残されているため、このような被写体に対する外乱にも拘わらず、読取確実性を担保することができる。この異条件複数画像取得機能においても、ＲＵＮモードに先立って、ＳＥＴモードで最適な撮影条件を抽出しておくのが好ましい。すなわち、ＳＥＴモードで抽出した最適撮影条件を中心に条件を都度変更することにより、読み取り確実性が向上する。
【００８９】
以上の２次元コード読取処理は、移動するワークのみならず、静止状態におけるワークに関しても効果を奏する。
【００９０】
例えば、静止状態におけるワークであっても、外乱光などの影響で撮影状態が安定しない場合がある。そのような場合、複数回の連続撮影を行うことで、読み取り確実性を向上させることができる。
【００９１】
また、所定のワーク読み取り位置があり、デコードが完了するとそのワークが所定の読み取り位置から移動し、次のワークがその読み取り位置に到来するようなシステムの場合、デコード順序自動修正機能を適用すると、デコード成功の判定が出されるタイミングで次のワークの移動・読み取りが実行されるため、次のワークの読み取り開始迄の間隔を短くすることができる。
【００９２】
また、ワークの表面性状が変化する場合には、異条件複数画像取得機能を適用することにより、読み取り確実性を向上させることができる。
【００９３】
更に、デコード順序自動修正機能と異条件複数画像取得機能を共に適用することにより、ワークの表面性状が変化する場合の読み取りを確実に行い得ると共に、次のワークの読み取り迄の間隔を短くすることができる。
【図面の簡単な説明】
【００９４】
【図１】本発明装置のシステム構成を示す模式的外観図である。
【図２】コントローラの内部構成を中心として示すブロック図である。
【図３】ＣＰＵで実行される処理の全体を概略的に示すゼネラルフローチャートである。
【図４】撮影条件自動設定処理のゼネラルフローチャートである。
【図５】規定回数連続撮影処理（条件都度変更）の詳細を示すフローチャートである。
【図６】全撮像画像対象デコード処理の詳細を示すフローチャートである。
【図７】最適条件決定処理の詳細を示すフローチャートである。
【図８】デコード処理の実行内容を示すフローチャートである。
【図９】ティーチング成功終了時のモニタ表示例を示す図である。
【図１０】２次元コード読取処理（デコード順序自動修正機能付）の全体を示すフローチャートである。
【図１１】繰り返し撮像処理の詳細を示すフローチャートである。
【図１２】次回のデコード順序を決定するための処理を示すフローチャートである。
【図１３】撮像回数が７回行う場合の、過去１００回の読取り結果を表にして示す図である。
【図１４】２次元コード読取処理（撮像間隔自動修正機能付）の全体を示すフローチャートである。
【図１５】ワークの移動に伴う２次元コードとカメラ視野との関係を示す説明図である。
【図１６】２次元コード読取処理（異条件複数画像取得機能付）の全体を示すフローチャートである。）
【図１７】規定回数連続撮像処理（条件都度変更）の詳細を示すフローチャートである。
【図１８】照明点灯パターンの一例を示す図である。
【図１９】移動体上の２次元コード読取時の問題点を示す説明図である。
【符号の説明】
【００９５】
１  コントローラ
２  カメラ
３  トリガタイミング検知センサ
４  ハンディコンソール
５  ビデオモニタ
６ａ  プログラマブルコントローラ
６ｂ  パソコン
６  上位システム
８  二次元コード
９  カメラの視野
１０１  ＣＰＵ
１０２  メモリ
１０３  画像メモリ
１０４  画像入出力制御部
１０５  コンソールインタフェース
１０６  モニタインタフェース
１０７  カメラインタフェース
１０８  照明インタフェース
１０９  トリガセンサインタフェース
１１０  画像処理部
１１１  ＣＰＵバス
１１２  内部バス
１１３  通信インタフェース
７０１，７１１〜７１４，７２１〜７２４  照明要素
【図１】
0003548783.tif 000002
【図２】
0003548783.tif 000003
【図３】
0003548783.tif 000004
【図４】
0003548783.tif 000005
【図５】
0003548783.tif 000006
【図６】
0003548783.tif 000007
【図７】
0003548783.tif 000008
【図８】
0003548783.tif 000009
【図９】
0003548783.tif 000010
【図１０】
0003548783.tif 000011
【図１１】
0003548783.tif 000012
【図１２】
0003548783.tif 000013
【図１３】
0003548783.tif 000014
【図１４】
0003548783.tif 000015
【図１５】
0003548783.tif 000016
【図１６】
0003548783.tif 000017
【図１７】
0003548783.tif 000018
【図１８】
0003548783.tif 000019
【図１９】
0003548783.tif 000020