(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024121201
(43)【公開日】2024-09-06
(54)【発明の名称】コード読取システム、コードリーダ、コード読取方法、およびコード読取プログラム
(51)【国際特許分類】
G06K 7/14 20060101AFI20240830BHJP
G06K 7/10 20060101ALI20240830BHJP
G06T 7/00 20170101ALI20240830BHJP
【FI】
G06K7/14 060
G06K7/10 372
G06T7/00 610
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2023028164
(22)【出願日】2023-02-27
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】松井 修一
(72)【発明者】
【氏名】荒木 恒彦
(72)【発明者】
【氏名】藤川 正寛
(72)【発明者】
【氏名】横井 忠正
(72)【発明者】
【氏名】阪本 達典
(72)【発明者】
【氏名】岸田 晃宏
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA02
5L096AA06
5L096BA03
5L096DA03
5L096EA43
5L096GA51
(57)【要約】
【課題】コードリーダによる読取速度を最適化させることができる。
【解決手段】コード読取システム1は、検証器200とコードリーダ300とを備える。検証器200は、ワーク5に印字されたコード8の印字品質を検証し、当該印字品質を示す検証結果をコードリーダ300へ送信する。コードリーダ300は、検証結果に基づいて、複数のアルゴリズムの中からコード8の読み取りに使用する読取アルゴリズムを決定する決定部と、読取アルゴリズムに従ってコード8を読み取る読取部とを含む。複数のアルゴリズムは、互いに、コード8の読み取りに関するロバスト性が異なる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
検証器とコードリーダとを備え、
前記検証器は、ワークに印字されたコードの印字品質を検証し、当該印字品質を示す検証結果を前記コードリーダへ送信し、
前記コードリーダは、
前記検証結果に基づいて、複数のアルゴリズムの中から前記コードの読み取りに使用する読取アルゴリズムを決定する決定部と、
前記読取アルゴリズムに従って前記コードを読み取る読取部とを含み、
前記複数のアルゴリズムは、互いに、前記コードの読み取りに関するロバスト性が異なる、コード読取システム。
【請求項2】
前記決定部は、前記印字品質が高いほど、前記複数のアルゴリズムのうち前記ロバスト性が低いアルゴリズムを前記読取アルゴリズムとして決定する、請求項1に記載のコード読取システム。
【請求項3】
前記決定部は、前記印字品質が低いほど、前記複数のアルゴリズムのうち前記ロバスト性が高いアルゴリズムを前記読取アルゴリズムとして決定し、
前記複数のアルゴリズムは、通常アルゴリズムと、前記通常アルゴリズムよりも前記ロバスト性が高い1以上のロバストアルゴリズムとを含み、
前記1以上のロバストアルゴリズムは、前記通常アルゴリズムよりも前記コードの読取速度が遅い、請求項1に記載のコード読取システム。
【請求項4】
前記決定部は、前記印字品質が低いほど、前記複数のアルゴリズムのうち前記ロバスト性が高いアルゴリズムを前記読取アルゴリズムとして決定し、
前記複数のアルゴリズムは、通常アルゴリズムと、前記通常アルゴリズムよりも前記ロバスト性が高い1以上のロバストアルゴリズムとを含み、
前記1以上のロバストアルゴリズムにより読み取り可能な前記コードの印字品質の範囲は、前記通常アルゴリズムにより読み取り可能な前記コードの印字品質の範囲よりも広い、請求項1に記載のコード読取システム。
【請求項5】
前記決定部は、前記印字品質が低いほど、前記複数のアルゴリズムのうち前記ロバスト性が高いアルゴリズムを前記読取アルゴリズムとして決定し、
前記複数のアルゴリズムは、通常アルゴリズムと、前記通常アルゴリズムよりも前記ロバスト性が高い1以上のロバストアルゴリズムとを含み、
前記1以上のロバストアルゴリズムは、読取条件を前記ロバスト性が向上するように変更することを定める、請求項1に記載のコード読取システム。
【請求項6】
前記決定部は、前記印字品質が低いほど、前記複数のアルゴリズムのうち前記ロバスト性が高いアルゴリズムを前記読取アルゴリズムとして決定し、
前記複数のアルゴリズムは、通常アルゴリズムと、前記通常アルゴリズムよりも前記ロバスト性が高い1以上のロバストアルゴリズムとを含み、
前記1以上のロバストアルゴリズムは、前記通常アルゴリズムに処理を追加してより多くの処理を実行することを定める、請求項1に記載のコード読取システム。
【請求項7】
前記決定部は、前記印字品質が低いほど、前記複数のアルゴリズムのうち前記ロバスト性が高いアルゴリズムを前記読取アルゴリズムとして決定し、
前記複数のアルゴリズムは、通常アルゴリズムと、前記通常アルゴリズムよりも前記ロバスト性が高い1以上のロバストアルゴリズムとを含み、
前記通常アルゴリズムは、読取条件として予め定められた条件に従って前記コードの読み取りを1回行うことを定め、
前記1以上のロバストアルゴリズムは、前記読取条件を予め定められた範囲内で変更して前記コードの読み取りのリトライを行うことを定める、請求項1に記載のコード読取システム。
【請求項8】
前記コード読取システムは、前記読取アルゴリズムが前記1以上のロバストアルゴリズムのうちのいずれか1つである場合に警告通知を出力する出力部をさらに備える、請求項3~7のいずれか1項に記載のコード読取システム。
【請求項9】
前記コード読取システムは、前記ワークに前記コードを印字するレーザマーカをさらに備える、請求項1~7のいずれか1項に記載のコード読取システム。
【請求項10】
前記読取条件は、前記コードの読み取り時におけるコントラストの閾値、前記コードに含まれるセルの2値化の閾値、前記コードの読み取り時における画像処理の条件、前記コードの読み取り時における前記コードリーダの照明の色、および前記コードの読み取り時における前記照明の明るさのうち少なくとも1つを含む、請求項5または7に記載のコード読取システム。
【請求項11】
ワークに印字されたコードの印字品質を示す検証結果を取得する取得部と、
前記検証結果に基づいて、複数のアルゴリズムの中から前記コードの読み取りに使用する読取アルゴリズムを決定する決定部と、
前記読取アルゴリズムに従って前記コードを読み取る読取部とを備え、
前記複数のアルゴリズムは、互いに、前記コードの読み取りに関するロバスト性が異なる、コードリーダ。
【請求項12】
ワークに印字されたコードの印字品質を示す検証結果を取得することと、
前記検証結果に基づいて、複数のアルゴリズムの中から前記コードの読み取りに使用する読取アルゴリズムを決定することと、
前記読取アルゴリズムに従って前記コードを読み取ることとを備え、
前記複数のアルゴリズムは、互いに、前記コードの読み取りに関するロバスト性が異なる、コード読取方法。
【請求項13】
請求項12に記載のコード読取方法をコンピュータに実行させる、コード読取プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コード読取システム、コードリーダ、コード読取方法、およびコード読取プログラムに関する。
【背景技術】
【0002】
工場内の生産ラインでは、例えばレーザマーカによってコードがワーク(例えば、製品)に印字され、コードリーダによって当該コードの読み取りが行われる。たとえば、特開2004-214250号公報(特許文献1)には、表面状態に応じて設定された符号認識レベル情報に従って識別符号を読み取る読み取り装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特開2004-214250号公報に開示される読み取り装置では、識別符号の印字品質について考慮されていない。そのため、当該読み取り装置では、どのような印字品質の識別符号でも読み取れるようなロバスト性の高いアルゴリズムで読み取りが行われるため、読取速度が遅くなる。
【0005】
本開示は、コードリーダによる読取速度を最適化させることを一つの目的とする。
【課題を解決するための手段】
【0006】
本開示のある局面に従うコード読取システムは、検証器とコードリーダとを備える。検証器は、ワークに印字されたコードの印字品質を検証し、当該印字品質を示す検証結果をコードリーダへ送信する。コードリーダは、検証結果に基づいて、複数のアルゴリズムの中からコードの読み取りに使用する読取アルゴリズムを決定する決定部と、読取アルゴリズムに従ってコードを読み取る読取部とを含む。複数のアルゴリズムは、互いに、コードの読み取りに関するロバスト性が異なる。
【0007】
この構成によれば、コードの印字品質に応じたロバスト性を有するアルゴリズムが読取アルゴリズムとして選択されるため、コードリーダによる読取速度を最適化させることができる。
【0008】
上述の開示において、好ましくは、決定部は、印字品質が高いほど、複数のアルゴリズムのうちロバスト性が低いアルゴリズムを読取アルゴリズムとして決定する。
【0009】
この構成によれば、印字品質が高い場合には、コードリーダによる読取速度を速くすることができる。
【0010】
上述の開示において、好ましくは、決定部は、印字品質が低いほど、複数のアルゴリズムのうちロバスト性が高いアルゴリズムを読取アルゴリズムとして決定する。複数のアルゴリズムは、通常アルゴリズムと、通常アルゴリズムよりもロバスト性が高い1以上のロバストアルゴリズムとを含む。1以上のロバストアルゴリズムは、通常アルゴリズムよりもコードの読取速度が遅い。
【0011】
この構成によれば、印字品質が低い場合でも、コードリーダによる読み取りの失敗を抑制することができる。
【0012】
上述の開示において、好ましくは、決定部は、印字品質が低いほど、複数のアルゴリズムのうちロバスト性が高いアルゴリズムを読取アルゴリズムとして決定する。複数のアルゴリズムは、通常アルゴリズムと、通常アルゴリズムよりもロバスト性が高い1以上のロバストアルゴリズムとを含む。1以上のロバストアルゴリズムにより読み取り可能なコードの印字品質の範囲は、通常アルゴリズムにより読み取り可能なコードの印字品質の範囲よりも広い。
【0013】
この構成によれば、印字品質が低い場合でも、コードリーダによる読み取りの失敗を抑制することができる。
【0014】
上述の開示において、好ましくは、決定部は、印字品質が低いほど、複数のアルゴリズムのうちロバスト性が高いアルゴリズムを読取アルゴリズムとして決定する。複数のアルゴリズムは、通常アルゴリズムと、通常アルゴリズムよりもロバスト性が高い1以上のロバストアルゴリズムとを含む。1以上のロバストアルゴリズムは、読取条件をロバスト性が向上するように変更することを定める。
【0015】
この構成によれば、印字品質が低い場合でも、コードリーダによる読み取りの失敗を抑制することができる。
【0016】
上述の開示において、好ましくは、決定部は、印字品質が低いほど、複数のアルゴリズムのうちロバスト性が高いアルゴリズムを読取アルゴリズムとして決定する。複数のアルゴリズムは、通常アルゴリズムと、通常アルゴリズムよりもロバスト性が高い1以上のロバストアルゴリズムとを含む。1以上のロバストアルゴリズムは、通常アルゴリズムに処理を追加してより多くの処理を実行することを定める。
【0017】
この構成によれば、印字品質が低い場合でも、コードリーダによる読み取りの失敗を抑制することができる。
【0018】
上述の開示において、好ましくは、決定部は、印字品質が低いほど、複数のアルゴリズムのうちロバスト性が高いアルゴリズムを読取アルゴリズムとして決定する。複数のアルゴリズムは、通常アルゴリズムと、通常アルゴリズムよりもロバスト性が高い1以上のロバストアルゴリズムとを含む。通常アルゴリズムは、読取条件として予め定められた条件に従ってコードの読み取りを1回行うことを定める。1以上のロバストアルゴリズムは、読取条件を予め定められた範囲内で変更してコードの読み取りのリトライを行うことを定める。
【0019】
この構成によれば、印字品質が低い場合でも、コードリーダによる読み取りの失敗を抑制することができる。
【0020】
上述の開示において、好ましくは、コード読取システムは、読取アルゴリズムが1以上のロバストアルゴリズムのうちのいずれか1つである場合に警告通知を出力する出力部をさらに備える。
【0021】
この構成によれば、レーザマーカおよびコードリーダの計画的な保守が可能となる。
【0022】
上述の開示において、好ましくは、コード読取システムは、ワークにコードを印字するレーザマーカをさらに備える。
【0023】
この構成によれば、コードの印字、検証、および読み取りを自動化することができる。
【0024】
上述の開示において、好ましくは、読取条件は、コードの読み取り時におけるコントラストの閾値、コードに含まれるセルの2値化の閾値、コードの読み取り時における画像処理の条件、コードの読み取り時におけるコードリーダの照明の色、およびコードの読み取り時における照明の明るさのうち少なくとも1つを含む。
【0025】
この構成によれば、印字品質が低い場合でも、コードリーダによる読み取りの失敗を抑制することができる。
【0026】
本開示の他の局面に従うコードリーダは、ワークに印字されたコードの印字品質を示す検証結果を取得する取得部と、検証結果に基づいて、複数のアルゴリズムの中からコードの読み取りに使用する読取アルゴリズムを決定する決定部と、読取アルゴリズムに従ってコードを読み取る読取部とを備える。複数のアルゴリズムは、互いに、コードの読み取りに関するロバスト性が異なる。
【0027】
この構成によれば、コードリーダによる読取速度を最適化させることができる。
【0028】
本開示の他の局面に従うコード読取方法は、ワークに印字されたコードの印字品質を示す検証結果を取得することと、検証結果に基づいて、複数のアルゴリズムの中からコードの読み取りに使用する読取アルゴリズムを決定することと、読取アルゴリズムに従ってコードを読み取ることとを備える。複数のアルゴリズムは、互いに、コードの読み取りに関するロバスト性が異なる。
【0029】
この構成によれば、コードリーダによる読取速度を最適化させることができる。
【0030】
本開示の他の局面に従うコード読取プログラムは、上記のコード読取方法をコンピュータに実行させる。
【0031】
この構成によれば、コードリーダによる読取速度を最適化させることができる。
【発明の効果】
【0032】
本開示によれば、コードリーダによる読取速度を最適化させることができる。
【図面の簡単な説明】
【0033】
【
図1】本実施の形態におけるコード読取システムを示す図である。
【
図2】本実施の形態における検証器のハードウェア構成の一例を示す図である。
【
図3】本実施の形態におけるコードリーダのハードウェア構成の一例を示す図である。
【
図4】本実施の形態におけるコード読取システムのコード読取処理の概要を説明するための図である。
【
図5】本実施の形態における複数のアルゴリズムを示す図である。
【
図6】本実施の形態における複数のアルゴリズムについてのロバスト性と読取速度とコードの印字品質との関係を示す図である。
【
図7】本実施の形態におけるコード読取システムのコード読取処理の手順を示すフローチャートである。
【
図8】変形例1における複数のアルゴリズムを示す図である。
【発明を実施するための形態】
【0034】
以下、図面を参照しつつ、本開示に従う実施の形態および変形例について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される実施の形態および変形例は、適宜選択的に組み合わされてもよい。
【0035】
[実施の形態]
<A.適用例>
まず、本開示が適用される場面の一例について説明する。
【0036】
図1は、本実施の形態におけるコード読取システムを示す図である。本実施の形態におけるコード読取システム1は、レーザマーカ100と、検証器200と、コードリーダ300とを備える。レーザマーカ100、検証器200、およびコードリーダ300は、ある工場内の生産ライン10に沿って設けられる。ワーク5(例えば、製品)は、生産ライン10上を矢印2の方向へ搬送される。
【0037】
レーザマーカ100は、生産ライン10上を搬送されてきたワーク5にレーザ光3を照射して、ワーク5にコード8を印字する。例えば、コード8は、バーコード、QRコード(登録商標)、またはDataMatrix(登録商標)である。
【0038】
検証器200は、ワーク5に印字されたコード8の印字品質を検証し、当該印字品質を示す検証結果をコードリーダ300へ送信する。検証器200は、検証結果に何番目に搬送されてきたワークであるかを示す番号情報を付加する。
【0039】
コードリーダ300は、N(Nは整数)番目に搬送されてきたワーク5に印字されたコード8について、N番目を示す番号情報が付加された検証結果に基づいて、複数のアルゴリズムの中からコード8の読み取りに使用する読取アルゴリズムを決定する。コードリーダ300は、当該読取アルゴリズムに従ってコード8を読み取る。複数のアルゴリズムは、互いに、コード8の読み取りに関するロバスト性が異なる。以下の説明において、コード8の読み取りに関するロバスト性を単に「ロバスト性」とも称する。
【0040】
ロバスト性が高いアルゴリズムは、ロバスト性が低いアルゴリズムよりもコード8の読取条件が広くなるように定められる。そのため、コード8の印字品質が低い場合でも、ロバスト性が高いアルゴリズムを用いてコード8の読み取りを行うことでコードリーダ300による読み取りの失敗を抑制することができる。ただし、アルゴリズムのロバスト性に応じて、コードリーダ300による読取速度が異なる。
【0041】
コードリーダ300は、コード8の印字品質に基づいて読取アルゴリズムを決定する。アルゴリズムのロバスト性に応じて、コードリーダ300による読取速度が異なる。そのため、コード8の印字品質に応じたロバスト性を有するアルゴリズムが読取アルゴリズムとして選択されることにより、コードリーダ300による読取速度を最適化させることができる。
【0042】
<B.検証器のハードウェア構成>
図2は、本実施の形態における検証器のハードウェア構成の一例を示す図である。検証器200は、制御部210と、照明220と、撮像装置230と、通信インターフェイス240とを備える。制御部210と、照明220と、撮像装置230と、通信インターフェイス240とは、バス299で接続される。
【0043】
制御部210は、プロセッサ211、メモリ212、およびストレージ213を含む。プロセッサ211は、例えばCPU(Central Processing Unit)またはMPU(Micro-Processing Unit)で構成される。メモリ212は、例えばDRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)などの揮発性記憶装置で構成される。ストレージ213は、例えばHDD(Hard Disk Drive)、SSD(Solid State Drive)、またはフラッシュメモリなどの不揮発性記憶装置で構成される。
【0044】
ストレージ213は、プログラム214を記憶する。プログラム214は、検証器200を制御するためのコンピュータ読取可能な命令を含む。プロセッサ211はプログラム214を実行することで、検証器200の各部を制御し、本実施の形態に従う各種処理を実現する。
【0045】
プログラム214は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、任意のプログラムと協働して本実施の形態に従う処理が実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う検証器200の趣旨を逸脱するものではない。また、プログラム214によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。
【0046】
照明220は、ワーク5の表面に光を当てる。撮像装置230は、例えば、CCD(Charge Coupled Device)カメラを含む。撮像装置230は、ワーク5に印字されたコード8を撮像し、コード8の画像をプロセッサ211へ送信する。
【0047】
通信インターフェイス240は、コードリーダ300と通信する。一例として、プロセッサ211は、通信インターフェイス240を介して、コードリーダ300へコード8の印字品質を示す検証結果を送信する。
【0048】
<C.コードリーダのハードウェア構成>
図3は、本実施の形態におけるコードリーダのハードウェア構成の一例を示す図である。コードリーダ300は、制御部310と、照明320と、撮像装置330と、スピーカー340と、通信インターフェイス350とを備える。制御部310と、照明320と、撮像装置330と、スピーカー340と、通信インターフェイス350とは、バス399で接続される。
【0049】
制御部310は、プロセッサ311、メモリ312、およびストレージ313を含む。プロセッサ311は、例えばCPUまたはMPUで構成される。メモリ312は、例えばDRAMまたはSRAMなどの揮発性記憶装置で構成される。ストレージ313は、例えばHDD、SSD、またはフラッシュメモリなどの不揮発性記憶装置で構成される。
【0050】
ストレージ313は、プログラム314を記憶する。プログラム314は、コードリーダ300を制御するためのコンピュータ読取可能な命令を含む。プログラム314は、本開示における「コード読取プログラム」を含む。プロセッサ311はプログラム314を実行することで、コードリーダ300の各部を制御し、本実施の形態に従う各種処理を実現する。
【0051】
プログラム314は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、任意のプログラムと協働して本実施の形態に従う処理が実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従うコードリーダ300の趣旨を逸脱するものではない。また、プログラム314によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。
【0052】
照明320は、ワーク5の表面に光を当てる。撮像装置330は、例えば、CCDカメラを含む。撮像装置330は、ワーク5に印字されたコード8を撮像し、コード8の画像をプロセッサ311へ送信する。
【0053】
スピーカー340は、読取アルゴリズムが後述する1以上のロバストアルゴリズムのうちのいずれか1つである場合に警告通知を出力する。警告通知は、読取アルゴリズムが後述する1以上のロバストアルゴリズムのうちのいずれか1つであることを知らせるための通知である。スピーカー340は、警告通知として、通知音を発してもよいし、音声を発してもよい。スピーカー340は、本開示における「出力部」の一例である。
【0054】
通信インターフェイス350は、検証器200と通信する。通信インターフェイス350は、本開示における「取得部」の一例である。一例として、プロセッサ311は、通信インターフェイス350を介して、検証器200からコード8の印字品質を示す検証結果を受信する。
【0055】
<D.コード読取システムのコード読取処理>
図4は、本実施の形態におけるコード読取システムのコード読取処理の概要を説明するための図である。
【0056】
検証器200は、撮像装置230、検証部271、および送信部272を含む。検証部271および送信部272は、プロセッサ211がプログラム214を実行することにより実現される。
【0057】
検証部271は、撮像装置230から受信したコード8の画像を基にコード8の印字品質を検証し、当該印字品質を示す検証結果を取得する。より具体的には、検証部271は、撮像装置230から受信したコード8の画像を基に複数の検査パラメータの各々についてスコア(グレード)を算出する。検証部271は、複数の検査パラメータのうち最もスコアが低かった検査パラメータのスコアに基づいて、コード8の印字品質を示す1つのスコアを算出する。検査項目およびスコアの算出方法は国際規格で定められている。一例として、コード8の印字品質は0.0~4.0点の範囲で点数化され、スコアが4.0点に近いほどコード8の印字品質が高い。コード8の印字品質を示すスコアは、本開示における「検証結果」の一例である。
【0058】
送信部272は、コード8の印字品質を示す検証結果(コード8の印字品質を示す1つのスコア)をコードリーダ300へ送信する。なお、送信部272は、検証結果として、複数の検査パラメータの各々のスコアをコードリーダ300へ送信してもよい。
【0059】
コードリーダ300は、撮像装置330、決定部371、読取部372、およびスピーカー340を含む。決定部371および読取部372は、プロセッサ311がプログラム314を実行することにより実現される。
【0060】
決定部371は、コード8について取得(受信)した検証結果に基づいて、複数のアルゴリズムの中からコード8の読み取りに使用する読取アルゴリズムを決定する。複数のアルゴリズムは、互いに、コード8の読み取りに関するロバスト性が異なる。
【0061】
複数のアルゴリズムは、通常アルゴリズムと、通常アルゴリズムよりもロバスト性が高い1以上のロバストアルゴリズムとを含む。通常アルゴリズムは、読取条件として予め定められた条件に従ってコード8の読み取りを1回行うことを定める。ロバスト性が高いアルゴリズムは、ロバスト性が低いアルゴリズムよりもコード8の読取条件が広くなるように定められる。
【0062】
一例として、1以上のロバストアルゴリズムにより読み取り可能なコード8の印字品質の範囲は、通常アルゴリズムにより読み取り可能なコード8の印字品質の範囲よりも広い。他の例として、1以上のロバストアルゴリズムは、コード8の読取条件をロバスト性が向上するように変更することを定める。他の例として、1以上のロバストアルゴリズムは、通常アルゴリズムに処理を追加してより多くの処理を実行することを定める。他の例として、1以上のロバストアルゴリズムは、コード8の読取条件を予め定められた範囲内で変更してコード8の読み取りのリトライを行うことを定める。
【0063】
そのため、1以上のロバストアルゴリズムを用いてコード8の読み取りを行う場合には、処理のステップ数が増えるため、コード8の読取速度は遅くなるが、印字品質の低いコード(例えば、変形したコード、一部が欠落しているコード、または、コントラストの低いコード等)であってもコード8の読み取りに失敗することを抑制することができる。
【0064】
決定部371は、コード8の印字品質が高いほど、複数のアルゴリズムのうちロバスト性が低いアルゴリズムを読取アルゴリズムとして決定する。決定部371は、コード8の印字品質が低いほど、複数のアルゴリズムのうちロバスト性が高いアルゴリズムを読取アルゴリズムとして決定する。
【0065】
読取部372は、撮像装置330から受信したコード8の画像を基に、コード8を決定部371によって決定された読取アルゴリズムに従って読み取る。
【0066】
スピーカー340は、読取アルゴリズムが1以上のロバストアルゴリズムのうちのいずれか1つである場合に警告通知を出力する。
【0067】
図5は、本実施の形態における複数のアルゴリズムを示す図である。本実施の形態における複数のアルゴリズムは、1つの通常アルゴリズムと1つのロバストアルゴリズムとを含む。すなわち、本実施の形態においては、1以上のロバストアルゴリズムとして、1つのロバストアルゴリズムが設けられる。
【0068】
通常アルゴリズムとロバストアルゴリズムとでは、コード8の読取条件が異なる。読取条件は、コード8の読み取り時におけるコントラストの閾値、コード8に含まれるセルの2値化の閾値、コード8の読み取り時における画像処理(前処理)の条件、コード8の読み取り時における照明320の色、およびコード8の読み取り時における照明320の明るさを含む。以下の説明において、コード8の読み取り時におけるコントラストの閾値を「コントラストの閾値」と称する。以下の説明において、コード8に含まれるセルの2値化の閾値を「2値化の閾値」と称する。以下の説明において、コード8の読み取り時における画像処理(前処理)の条件を「画像処理の条件」と称する。以下の説明において、コード8の読み取り時における照明320の色を「照明320の色」と称する。以下の説明において、コード8の読み取り時における照明320の明るさを「照明320の明るさ」と称する。
【0069】
コントラストの閾値は、コード8を検索するときの白黒(明暗)エッジの判定閾値である。コントラストの閾値が高い場合には、コード8の候補数が少ない。そのため、コントラストの閾値が高い場合には、コードの読取時間は短縮されるが、コード8の印字品質が低い場合には、コード8が見つからず、コード8の読み取りに失敗することがある。一方、コントラストの閾値が低い場合には、コード8の候補数が多い。そのため、コントラストの閾値が低い場合には、コードの読取に時間はかかるが、コード8の印字品質が低くてもコード8の読み取りに失敗することが抑制される。
【0070】
通常アルゴリズムは、ロバストアルゴリズムよりもコントラストの閾値が高くなるように定められる。一方、ロバストアルゴリズムは、通常アルゴリズムよりもコントラストの閾値が低くなるように定められる。なお、ロバストアルゴリズムは、予め定められた範囲内でコントラストの閾値を変更してコード8の読み取りのリトライを行うことを定めるのでもよい。
【0071】
2値化の閾値は、コード8に含まれるセルの2値化に使用される閾値である。2値化の閾値としてコード8の全体に対し共通の値が設定される場合には、コードの読取時間は短縮されるが、コード8の印字品質が低い場合には、コード8の読み取りに失敗することがある。一方、2値化の閾値としてコード8の局所的な部分ごとに異なる値が設定される場合には、コードの読取に時間はかかるが、局所的なノイズの影響を低減することができる。そのため、2値化の閾値としてコード8の局所的な部分ごとに異なる値が設定される場合には、コード8の印字品質が低くてもコード8の読み取りに失敗することが抑制される。
【0072】
通常アルゴリズムでは、2値化の閾値としてコード8の全体に対し共通の値が設定される。より具体的には、通常アルゴリズムは、コード8の全体の白黒(明暗)の最大値と最小値とに基づいて白黒(明暗)の中心値を算出し、当該中心値を2値化の閾値に設定することを定める。一方、ロバストアルゴリズムでは、2値化の閾値としてコード8の局所的な部分ごとに異なる値が設定される。より具体的には、ロバストアルゴリズムは、コード8の局所的な部分ごとに2値化の閾値を設定することを定める。例えば、16×16のセルで構成されるコードの場合には、局所的な部分とは、例えば、3×3のセルで構成される部分である。なお、ロバストアルゴリズムは、予め定められた範囲内で2値化の閾値を変更してコード8の読み取りのリトライを行うことを定めるのでもよい。
【0073】
コード8の読み取り時における画像処理(前処理)は、例えば、コード8内の白(明)領域とコード8内の黒(暗)領域との少なくとも一方を膨張または収縮する処理である。これにより、隣接するドットを連結させることができる。ドットは、コード8に含まれるセルの構成要素である。
【0074】
他の例として、コード8の読み取り時における画像処理(前処理)は、コード8内の白(明)領域における黒欠陥(スポット)と、コード8内の黒(暗)領域における白欠陥(ボイド)とを除去する処理である。これにより、コード8内の白(明)領域における黒欠陥と、コード8内の黒(暗)領域における白欠陥とを除去することができる。
【0075】
コード8の読み取り時に画像処理(前処理)が行われない場合には、コードの読取時間は短縮されるが、コード8の印字品質が低い場合には、コード8の読み取りに失敗することがある。一方、コード8の読み取り時に画像処理(前処理)が行われる場合には、コードの読取に時間はかかるが、コード8の印字品質が低くてもコード8の読み取りに失敗することが抑制される。
【0076】
通常アルゴリズムでは、画像処理(前処理)が行われない。一方、ロバストアルゴリズムでは、予め定められた範囲内で画像処理(前処理)の条件を変更してコード8の読み取りのリトライを行うことを定める。
【0077】
照明320の色は、コード8の読み取り時にコード8に当てる光の色である。照明320の色が固定値である場合には、コードの読取時間は短縮されるが、コード8の印字品質が低い場合には、コード8の読み取りに失敗することがある。一方、照明320の色を変更してコード8の読み取りのリトライを行う場合には、コードの読取に時間はかかるが、コード8の印字品質が低くてもコード8の読み取りに失敗することが抑制される。
【0078】
通常アルゴリズムでは、照明320の色は固定値である。一方、ロバストアルゴリズムは、予め定められた範囲内で照明320の色を変更してコード8の読み取りのリトライを行うことを定める。
【0079】
照明320の明るさは、コード8の読み取り時にコード8に当てる光の強さである。照明320の明るさが固定値である場合には、コードの読取時間は短縮されるが、コード8の印字品質が低い場合には、コード8の読み取りに失敗することがある。一方、照明320の明るさを変更してコード8の読み取りのリトライを行う場合には、コードの読取に時間はかかるが、コード8の印字品質が低くてもコード8の読み取りに失敗することが抑制される。
【0080】
通常アルゴリズムでは、照明320の明るさは固定値である。一方、ロバストアルゴリズムは、予め定められた範囲内で照明320の明るさを変更してコード8の読み取りのリトライを行うことを定める。
【0081】
このような通常アルゴリズムとロバストアルゴリズムとの違いにより、ロバストアルゴリズムは、通常アルゴリズムよりもコード8の読み取りに関するロバスト性が高い。一方で、ロバストアルゴリズムを用いてコード8を読み取る場合には、通常アルゴリズムを用いてコード8を読み取る場合よりも、コード8の読み取りに時間がかかる。すなわち、ロバストアルゴリズムは、通常アルゴリズムよりもコード8の読取速度が遅い。複数のアルゴリズムのうちロバスト性が低いアルゴリズムほど、コード8の読取速度が速い。
【0082】
図6は、本実施の形態における複数のアルゴリズムについてのロバスト性と読取速度とコードの印字品質との関係を示す図である。上述の通り、ロバストアルゴリズムは、通常アルゴリズムよりもコード8の読み取りに関するロバスト性は高いが、コード8の読取速度は遅い。
【0083】
コード8の印字品質を示すスコアが1.5点以上である場合には、決定部371は通常アルゴリズムを読取アルゴリズムとして決定する。一方、コード8の印字品質を示すスコアが1.5点未満である場合には、決定部371はロバストアルゴリズムを読取アルゴリズムとして決定する。これにより、コード8の印字品質が予め定められた品質以上である場合には、コード8の読み取りに関するロバスト性は低いが、コード8の読取速度が速いアルゴリズムが読取アルゴリズムとして決定される。コード8の印字品質が予め定められた品質未満である場合には、コード8の読取速度は遅いが、コード8の読み取りに関するロバスト性が高いアルゴリズムが読取アルゴリズムとして決定される。なお、本実施の形態においては、スコアの閾値として1.5点を採用したが、スコアの閾値はこれに限られない。
【0084】
図7は、本実施の形態におけるコード読取システムのコード読取処理の手順を示すフローチャートである。ステップS1およびS2は、検証器200で行われる処理である。ステップS3~S7は、コードリーダ300で行われる処理である。
【0085】
ステップS1において、プロセッサ211は、コード8の印字品質を検証する。ステップS2において、プロセッサ211は、コード8の印字品質を示す検証結果(コード8の印字品質を示すスコア)をコードリーダ300へ送信する。
【0086】
ステップS3において、プロセッサ311は、検証結果を取得(受信)する。ステップS4において、プロセッサ311は、コード8について取得した検証結果に基づいて、複数のアルゴリズムの中からコード8の読み取りに使用する読取アルゴリズムを決定する。ステップS5において、プロセッサ311は、コード8が印字されたワーク5が予め定められた位置に到達したときに、コード8をステップS4にて決定された読取アルゴリズムに従って読み取る。
【0087】
ステップS6において、プロセッサ311は、コード8の読み取りに使用された読取アルゴリズムが1以上のロバストアルゴリズムのうちのいずれか1つであるか否かを判定する。コード8の読み取りに使用された読取アルゴリズムが1以上のロバストアルゴリズムのうちのいずれか1つである場合には(ステップS6にてYES)、プロセッサ311はステップS7へ処理を進める。一方、コード8の読み取りに使用された読取アルゴリズムが1以上のロバストアルゴリズムのうちのいずれでもない場合には(ステップS6にてNO)、プロセッサ311はコード読取処理を終了する。
【0088】
ステップS7において、プロセッサ311は、警告通知の出力をスピーカー340に指示する。ステップS7の後、コード読取処理が終了する。
【0089】
このように、本実施の形態におけるコード読取システム1では、コード8の印字品質に基づいて、複数のアルゴリズムの中からコードの読み取りに使用する読取アルゴリズムが決定される。複数のアルゴリズムは、互いに、コード8の読み取りに関するロバスト性が異なる。そのため、本実施の形態におけるコード読取システム1では、コード8の印字品質に応じたロバスト性を有するアルゴリズムが読取アルゴリズムとして選択されるため、コードリーダ300による読取速度を最適化させることができる。また、本実施の形態におけるコード読取システム1は、コード8の印字品質が低い場合でも、コードリーダ300による読み取りの失敗を抑制することができる。そのため、本実施の形態におけるコード読取システム1は、印字品質が低いコード8の読み取り異常による歩留まり低下と、予期せぬ生産ライン10の停止を抑制することができる。したがって、本実施の形態におけるコード読取システム1では、生産ライン10のラインスピードが最適化されるため、生産コストが抑制される。
【0090】
ユーザが複数のアルゴリズムの中からコード8の印字品質に合った読取アルゴリズムを選択する場合には、試行錯誤が必要であり、ユーザにとっては手間である。近年、同じ生産ラインで異なる製品を生産することも多い。異なる製品が搬送されてくるたびにユーザが当該製品に印字されたコード8の印字品質に合った読取アルゴリズムを選択することは、ユーザにとって手間である。しかしながら、本実施の形態におけるコード読取システム1では、コード8の印字品質に基づいて読取アルゴリズムが決定される。そのため、本実施の形態におけるコード読取システム1は、ユーザにとって便利、かつ、信頼性の高いシステムといえる。
【0091】
コード8の印字品質に関わらず、常にコード8の読み取りにロバスト性が高いアルゴリズムを使用する場合には、コード8の読み取りに時間がかかり生産ライン10のラインタクトが長くなる。しかしながら、本実施の形態におけるコード読取システム1では、コード8の印字品質が低い場合には、コード8の読み取りにロバスト性が高いアルゴリズム(例えば、ロバストアルゴリズム)を使用するが、コード8の印字品質が高い場合には、コード8の読み取りにロバスト性が低いアルゴリズム(例えば、通常アルゴリズム)を使用する。そのため、本実施の形態におけるコード読取システム1は、生産ライン10のラインタクトが長くなることを抑制することができる。
【0092】
本実施の形態におけるコード読取システム1では、読取アルゴリズムが1以上のロバストアルゴリズムのうちのいずれか1つである場合に警告通知が出力される。これにより、ユーザは読取アルゴリズムが1以上のロバストアルゴリズムのうちのいずれか1つであることを知ることができる。読取アルゴリズムが1以上のロバストアルゴリズムのうちのいずれか1つである場合には、コード8の印字品質が低いことと、コードリーダ300の読取条件がコード8に合っていないこととの少なくとも一方が推測される。したがって、警告通知は、ユーザがレーザマーカ100の印字条件とコードリーダ300の読取条件との少なくとも一方を調整する契機となる。そのため、本実施の形態におけるコード読取システム1では、レーザマーカ100およびコードリーダ300の計画的な保守が可能となる。
【0093】
[変形例1]
上記実施の形態においては、1以上のロバストアルゴリズムとして、1つのロバストアルゴリズムが設けられていたが、1以上のロバストアルゴリズムとして、複数のロバストアルゴリズムが設けられてもよい。
【0094】
図8は、変形例1における複数のアルゴリズムを示す図である。変形例1における複数のアルゴリズムは、1つの通常アルゴリズムと3つのロバストアルゴリズムとを含む。通常アルゴリズムとロバストアルゴリズムとの違いは、上記実施の形態で説明した通りである。3つのロバストアルゴリズムは、ロバストアルゴリズムAと、ロバストアルゴリズムBと、ロバストアルゴリズムCとを含む。変形例1においても、複数のアルゴリズムは、互いに、コード8の読み取りに関するロバスト性が異なる。
【0095】
複数のアルゴリズムのうちロバスト性が最も高いアルゴリズムは、ロバストアルゴリズムCである。複数のアルゴリズムのうちロバスト性が2番目に高いアルゴリズムは、ロバストアルゴリズムBである。複数のアルゴリズムのうちロバスト性が3番目に高いアルゴリズムは、ロバストアルゴリズムAである。複数のアルゴリズムのうちロバスト性が最も低いアルゴリズムは、通常アルゴリズムである。複数のアルゴリズムのうちロバスト性が低いアルゴリズムほど、コードリーダ300によるコード8の読取速度が速い。
【0096】
3つのロバストアルゴリズムは、例えば、互いに上述のコントラストの閾値が異なる。ロバスト性が高いロバストアルゴリズムほどコントラストの閾値が低い。他の例として、3つのロバストアルゴリズムは、互いに上述の2値化の閾値として共通の値が設定される領域(コード8の局所的な部分)の広さが異なる。ロバスト性が高いロバストアルゴリズムほど2値化の閾値として共通の値が設定される領域が狭い。
【0097】
変形例1においても、コード8の印字品質は0.0~4.0点の範囲で点数化され、スコアが4.0点に近いほどコード8の印字品質が高い。コード8の印字品質を示すスコアが3.5点以上である場合には、決定部371は通常アルゴリズムを読取アルゴリズムとして決定する。コード8の印字品質を示すスコアが2.5点以上3.5点未満である場合には、決定部371はロバストアルゴリズムAを読取アルゴリズムとして決定する。コード8の印字品質を示すスコアが1.5点以上2.5点未満である場合には、決定部371はロバストアルゴリズムBを読取アルゴリズムとして決定する。コード8の印字品質を示すスコアが1.5点未満である場合には、決定部371はロバストアルゴリズムCを読取アルゴリズムとして決定する。これにより、コード8の印字品質に応じた読取アルゴリズムが決定される。
【0098】
したがって、変形例1におけるコード読取システム1は、上記実施の形態におけるコード読取システム1と同様の効果を奏する。
【0099】
なお、変形例1においてスコアの閾値として使用した数値は一例であり、スコアの閾値はこれらに限られない。また、1以上のロバストアルゴリズムとして、複数のロバストアルゴリズムが設けられる場合には、ロバストアルゴリズムの数は2以上であればよい。
【0100】
[変形例2]
上記実施の形態におけるコード読取システム1は、レーザマーカ100を備えたが、上記実施の形態におけるコード読取システム1は、レーザマーカ100を備えなくてもよい。
【0101】
[変形例3]
上記実施の形態におけるコード読取システム1は「出力部」としてスピーカー340を備えていたが、上記実施の形態におけるコード読取システム1はスピーカー340に替えて、または、スピーカー340に加えてディスプレイを備えてもよい。コード読取システム1が「出力部」としてディスプレイを備える場合には、当該ディスプレイに警告通知が表示される。
【0102】
また、「出力部」は、コードリーダ300における、PLC(Programmable Logic Controller)との通信部でもよい。その場合には、当該通信部を介して、PLCに警告通知が送信され、PLCにて生産ライン10の制御を変更したり、メンテナンス時期を調整したりすることが可能となる。
【0103】
また、上記実施の形態におけるコード読取システム1では、「出力部」はコードリーダ300に設けられていたが、「出力部」はコードリーダ300と通信可能な装置(例えば、レーザマーカ100、検証器200、または、ユーザが使用する端末等)に設けられてもよい。
【0104】
[変形例4]
上記実施の形態において、読取条件は、コントラストの閾値、2値化の閾値、画像処理の条件、照明320の色、および照明320の明るさを含んでいたが、読取条件はこれらに限られない。読取条件は、コントラストの閾値、2値化の閾値、画像処理の条件、照明320の色、および照明320の明るさのうち少なくとも1つを含んでもよいし、これらの条件の代わりに別の条件を含んでもよい。
【0105】
[変形例5]
上記実施の形態において、検証器200およびコードリーダ300は、生産ライン10上を搬送されてきたワーク5が何番目に搬送されてきたかによって、ワーク5に印字されたコード8を識別したが、検証器200およびコードリーダ300によるコード8の識別方法はこれに限られない。他の例として、コード読取システム1がPLCを備える場合には、検証器200およびコードリーダ300はPLCと通信してコード8を識別してもよい。
【0106】
[変形例6]
上記実施の形態において、決定部371はコードリーダ300に含まれたが、検証器200に含まれてもよい。決定部371が検証器200に含まれる場合には、検証器200は読取アルゴリズムを決定し、当該読取アルゴリズムの設定指示をコードリーダ300へ送信する。
【0107】
また、コード読取システム1は、PLCをハブとして備えてもよい。その場合には、読取アルゴリズムの設定指示は、PLCを介して検証器200からコードリーダ300へ送信される。
【0108】
また、コード読取システム1がPLCを備える場合には、決定部371はPLCに含まれてもよい。決定部371がPLCに含まれる場合には、PLCは検証器200から検証結果を受信し、当該検証結果に基づいて読取アルゴリズムを決定する。PLCは、当該読取アルゴリズムの設定指示をコードリーダ300へ送信する。
【0109】
[変形例7]
コード読取システム1は、コードリーダ300を複数備えてもよい。その場合には、検証器200は、検証結果を当該検証結果に対応するコードの読み取りに使用されるコードリーダ300へ送信してもよい。また、検証器200は、検証結果に基づいて読取アルゴリズムを決定し、当該読取アルゴリズムの設定指示を当該検証結果に対応するコードの読み取りに使用されるコードリーダ300へ送信してもよい。
【0110】
また、コード読取システム1は、複数のコードリーダ300に加えて、PLCをさらに備えてもよい。その場合には、PLCは、検証器200から受信した検証結果を、当該検証結果に対応するコードの読み取りに使用されるコードリーダ300へ送信してもよい。また、PLCは、検証器200から受信した検証結果に基づいて読取アルゴリズムを決定し、当該読取アルゴリズムの設定指示を当該検証結果に対応するコードの読み取りに使用されるコードリーダ300へ送信してもよい。
【0111】
[変形例8]
上記実施の形態において、コード8はレーザマーカ100によって印字されていたが、コード8を印字する手法はこれに限られない。コード8は、プリンタによって印字されてもよい。
【0112】
[変形例9]
コードリーダ300は、PC(Personal Computer)等のコンピュータと接続可能に構成されてもよい。コードリーダ300とコンピュータとの接続形態は、直接接続でもよいし、ネットワークを介しての接続でもよい。コンピュータには専用のアプリケーションがインストールされており、コードリーダ300でコード8の読取条件を変更するための閾値、検証器200の検証結果、コードリーダ300の読取結果、コードリーダ300の読取時間、コードリーダ300による読み取り時のコード8の画像、および、コードリーダ300による読み取りの履歴などをコンピュータ上で設定、確認できるようにしてもよい。
【0113】
[付記]
上述した実施の形態および変形例は、以下のような技術思想を含む。
【0114】
[構成1]
検証器(200)とコードリーダ(300)とを備え、
前記検証器(200)は、ワーク(5)に印字されたコード(8)の印字品質を検証し、当該印字品質を示す検証結果を前記コードリーダ(300)へ送信し、
前記コードリーダ(300)は、
前記検証結果に基づいて、複数のアルゴリズムの中から前記コード(8)の読み取りに使用する読取アルゴリズムを決定する決定部(371)と、
前記読取アルゴリズムに従って前記コード(8)を読み取る読取部(372)とを含み、
前記複数のアルゴリズムは、互いに、前記コード(8)の読み取りに関するロバスト性が異なる、コード読取システム。
【0115】
[構成2]
前記決定部(371)は、前記印字品質が高いほど、前記複数のアルゴリズムのうち前記ロバスト性が低いアルゴリズムを前記読取アルゴリズムとして決定する、構成1に記載のコード読取システム。
【0116】
[構成3]
前記決定部(371)は、前記印字品質が低いほど、前記複数のアルゴリズムのうち前記ロバスト性が高いアルゴリズムを前記読取アルゴリズムとして決定し、
前記複数のアルゴリズムは、通常アルゴリズムと、前記通常アルゴリズムよりも前記ロバスト性が高い1以上のロバストアルゴリズムとを含み、
前記1以上のロバストアルゴリズムは、前記通常アルゴリズムよりも前記コード(8)の読取速度が遅い、構成1に記載のコード読取システム。
【0117】
[構成4]
前記決定部(371)は、前記印字品質が低いほど、前記複数のアルゴリズムのうち前記ロバスト性が高いアルゴリズムを前記読取アルゴリズムとして決定し、
前記複数のアルゴリズムは、通常アルゴリズムと、前記通常アルゴリズムよりも前記ロバスト性が高い1以上のロバストアルゴリズムとを含み、
前記1以上のロバストアルゴリズムにより読み取り可能な前記コード(8)の印字品質の範囲は、前記通常アルゴリズムにより読み取り可能な前記コード(8)の印字品質の範囲よりも広い、構成1に記載のコード読取システム。
【0118】
[構成5]
前記決定部(371)は、前記印字品質が低いほど、前記複数のアルゴリズムのうち前記ロバスト性が高いアルゴリズムを前記読取アルゴリズムとして決定し、
前記複数のアルゴリズムは、通常アルゴリズムと、前記通常アルゴリズムよりも前記ロバスト性が高い1以上のロバストアルゴリズムとを含み、
前記1以上のロバストアルゴリズムは、読取条件を前記ロバスト性が向上するように変更することを定める、構成1に記載のコード読取システム。
【0119】
[構成6]
前記決定部(371)は、前記印字品質が低いほど、前記複数のアルゴリズムのうち前記ロバスト性が高いアルゴリズムを前記読取アルゴリズムとして決定し、
前記複数のアルゴリズムは、通常アルゴリズムと、前記通常アルゴリズムよりも前記ロバスト性が高い1以上のロバストアルゴリズムとを含み、
前記1以上のロバストアルゴリズムは、前記通常アルゴリズムに処理を追加してより多くの処理を実行することを定める、構成1に記載のコード読取システム。
【0120】
[構成7]
前記決定部(371)は、前記印字品質が低いほど、前記複数のアルゴリズムのうち前記ロバスト性が高いアルゴリズムを前記読取アルゴリズムとして決定し、
前記複数のアルゴリズムは、通常アルゴリズムと、前記通常アルゴリズムよりも前記ロバスト性が高い1以上のロバストアルゴリズムとを含み、
前記通常アルゴリズムは、読取条件として予め定められた条件に従って前記コード(8)の読み取りを1回行うことを定め、
前記1以上のロバストアルゴリズムは、前記読取条件を予め定められた範囲内で変更して前記コード(8)の読み取りのリトライを行うことを定める、構成1に記載のコード読取システム。
【0121】
[構成8]
前記コード読取システムは、前記読取アルゴリズムが前記1以上のロバストアルゴリズムのうちのいずれか1つである場合に警告通知を出力する出力部(340)をさらに備える、構成3~7のいずれか1つに記載のコード読取システム。
【0122】
[構成9]
前記コード読取システムは、前記ワーク(5)に前記コード(8)を印字するレーザマーカ(100)をさらに備える、構成1~8のいずれか1つに記載のコード読取システム。
【0123】
[構成10]
前記読取条件は、前記コード(8)の読み取り時におけるコントラストの閾値、前記コード(8)に含まれるセルの2値化の閾値、前記コード(8)の読み取り時における画像処理の条件、前記コード(8)の読み取り時における前記コードリーダ(300)の照明(320)の色、および前記コード(8)の読み取り時における前記照明(320)の明るさのうち少なくとも1つを含む、構成5または7に記載のコード読取システム。
【0124】
[構成11]
ワーク(5)に印字されたコード(8)の印字品質を示す検証結果を取得する取得部と、
前記検証結果に基づいて、複数のアルゴリズムの中から前記コード(8)の読み取りに使用する読取アルゴリズムを決定する決定部(371)と、
前記読取アルゴリズムに従って前記コード(8)を読み取る読取部(372)とを備え、
前記複数のアルゴリズムは、互いに、前記コード(8)の読み取りに関するロバスト性が異なる、コードリーダ。
【0125】
[構成12]
ワーク(5)に印字されたコード(8)の印字品質を示す検証結果を取得することと、
前記検証結果に基づいて、複数のアルゴリズムの中から前記コード(8)の読み取りに使用する読取アルゴリズムを決定することと、
前記読取アルゴリズムに従って前記コード(8)を読み取ることとを備え、
前記複数のアルゴリズムは、互いに、前記コード(8)の読み取りに関するロバスト性が異なる、コード読取方法。
【0126】
[構成13]
構成12に記載のコード読取方法をコンピュータに実行させる、コード読取プログラム。
【0127】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0128】
1 コード読取システム、2 矢印、3 レーザ光、5 ワーク、8 コード、10 生産ライン、100 レーザマーカ、200 検証器、210,310 制御部、211,311 プロセッサ、212,312 メモリ、213,313 ストレージ、214,314 プログラム、220,320 照明、230,330 撮像装置、240,350 通信インターフェイス、271 検証部、272 送信部、299,399 バス、300 コードリーダ、340 スピーカー、371 決定部、372 読取部。