IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社デンソーウェーブの特許一覧

<>
  • 特許-読取装置 図1
  • 特許-読取装置 図2
  • 特許-読取装置 図3
  • 特許-読取装置 図4
  • 特許-読取装置 図5
  • 特許-読取装置 図6
  • 特許-読取装置 図7
  • 特許-読取装置 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-11
(45)【発行日】2023-09-20
(54)【発明の名称】読取装置
(51)【国際特許分類】
   G06K 7/015 20060101AFI20230912BHJP
   G06K 7/10 20060101ALI20230912BHJP
   G06K 7/14 20060101ALI20230912BHJP
【FI】
G06K7/015
G06K7/10 372
G06K7/10 436
G06K7/14 043
【請求項の数】 5
(21)【出願番号】P 2019225852
(22)【出願日】2019-12-13
(65)【公開番号】P2021096533
(43)【公開日】2021-06-24
【審査請求日】2022-08-04
(73)【特許権者】
【識別番号】501428545
【氏名又は名称】株式会社デンソーウェーブ
(74)【代理人】
【識別番号】110000110
【氏名又は名称】弁理士法人 快友国際特許事務所
(72)【発明者】
【氏名】藤角 岳史
【審査官】北村 学
(56)【参考文献】
【文献】米国特許出願公開第2006/0081712(US,A1)
【文献】特開2002-092542(JP,A)
【文献】特開2018-045347(JP,A)
【文献】特開2019-135572(JP,A)
【文献】特開2018-055530(JP,A)
【文献】特開2005-085214(JP,A)
【文献】特開2007-034388(JP,A)
【文献】特開2011-008574(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
IPC G06K 7/00 - 7/14
(57)【特許請求の範囲】
【請求項1】
情報コードを撮像する撮像部と、
前記情報コードを指示するための指示マーカを照射する照射部と、
前記撮像部によって撮像された前記情報コードの画像に基づいて、前記情報コードに記録されたデータを読み取り可能な読取部と、
前記撮像部によって前記情報コードが撮像される場合に、前記照射部によって照射される前記指示マーカが前記情報コードを指示しているか否かを判定する判定部と、
前記判定部が、前記指示マーカによって前記情報コードが指示されていると判定する場合に、前記読取部によって読み取られた前記データを出力する出力制御部と、
前記撮像部によって前記情報コードが撮像される場合に、前記情報コードの周囲の領域の中から、コード特有の特徴を有する特徴領域を特定する特定部と、
前記撮像部によって前記情報コードが撮像される場合に、特定済みの前記特徴領域に関する特徴情報を利用して、前記判定部が前記指示マーカによって前記情報コードが指示されていると判定するための判定基準を変更する変更部と、
を備えており、
前記特徴情報は、前記情報コードと前記特徴領域との並び方向における前記情報コードと前記特徴領域との間隔を示し、
前記判定基準は、前記情報コードと前記指示マーカとの距離である判定距離を含み、
前記変更部は、
前記特徴情報によって示される前記間隔が、前記情報コードの前記並び方向におけるコード長さよりも短い場合に、前記判定距離を短く変更し、
前記特徴情報によって示される前記間隔が、前記コード長さよりも長い場合に、前記判定距離を長く変更する、読取装置。
【請求項2】
前記判定部は、前記撮像部によって撮影される前記情報コードと前記指示マーカによって指示される位置を含む判定領域とが重なる場合に、前記指示マーカによって前記情報コードが指示されていると判定し、
前記判定基準は、前記判定領域のサイズを含み、
前記変更部は、前記判定領域のサイズを変更する、請求項1に記載の読取装置。
【請求項3】
前記特定部は、さらに、
前記撮像部によって前記情報コードである第1の情報コードが撮像される場合に、前記第1の情報コードの周囲の領域の中から、コード特有の特徴を有する第1の特徴領域を特定し、
前記撮像部によって前記第1の情報コードが撮像された後に、前記撮像部によって前記情報コードである第2の情報コードが撮像される場合に、前記第2の情報コードの周囲の領域の中から、コード特有の特徴を有する第2の特徴領域を特定し、
前記読取装置は、さらに、
前記撮像部によって前記第1の情報コードが撮像される場合に、前記第1の情報コードと前記第1の特徴領域との第1の間隔をメモリに記憶する記憶制御部を備え、
前記変更部は、
前記撮像部によって前記第1の情報コードが撮像された後に、前記撮像部によって前記第2の情報コードが撮像される場合に、前記メモリ内の前記第1の間隔と、前記第2の情報コードと前記第2の特徴領域との第2の間隔とに応じて、前記判定基準を変更する、請求項1または2に記載の読取装置。
【請求項4】
情報コードを撮像する撮像部と、
前記情報コードを指示するための指示マーカを照射する照射部と、
前記撮像部によって撮像された前記情報コードの画像に基づいて、前記情報コードに記録されたデータを読み取り可能な読取部と、
前記撮像部によって前記情報コードが撮像される場合に、前記照射部によって照射される前記指示マーカが前記情報コードを指示しているか否かを判定する判定部と、
前記判定部が、前記指示マーカによって前記情報コードが指示されていると判定する場合に、前記読取部によって読み取られた前記データを出力する出力制御部と、
前記撮像部によって前記情報コードが撮像される場合に、前記撮像部によって撮像された前記情報コードの画像に基づいて、前記指示マーカによって指示された前記情報コードが単独で存在しているか否かを判断する判断部と、
前記撮像部によって前記情報コードが撮像される場合に、前記判定部が前記指示マーカによって前記情報コードが指示されていると判定するための判定基準を変更する変更部と、
を備えており、
前記判定基準は、前記指示マーカによって指示される位置を含む判定領域のサイズを含み、
前記変更部は、
前記判断部が、前記指示マーカによって指示された前記情報コードが単独で存在していないと判断する場合に、前記判定領域のサイズを小さく変更し、
前記判断部が、前記指示マーカによって指示された前記情報コードが単独で存在していると判断する場合に、前記判定領域のサイズを大きく変更する、読取装置。
【請求項5】
情報コードを撮像する撮像部と、
前記情報コードを指示するための指示マーカを照射する照射部と、
前記撮像部によって撮像された前記情報コードの画像に基づいて、前記情報コードに記録されたデータを読み取り可能な読取部と、
前記撮像部によって前記情報コードが撮像される場合に、前記照射部によって照射される前記指示マーカが前記情報コードを指示しているか否かを判定する判定部と、
前記判定部が、前記指示マーカによって前記情報コードが指示されていると判定する場合に、前記読取部によって読み取られた前記データを出力する出力制御部と、
前記撮像部によって前記情報コードが撮像される場合に、前記情報コードの周囲の領域の中から、コード特有の特徴を有する特徴領域を特定する特定部と、
前記撮像部によって前記情報コードが撮像される場合に、前記情報コードと前記特徴領域との並び方向における前記情報コードと前記特徴領域との間隔を利用して、前記判定部が前記指示マーカによって前記情報コードが指示されていると判定するための判定基準を決定する決定部と、
を備えており、
前記判定基準は、前記指示マーカによって指示される位置を含む判定領域のサイズを含み、
前記決定部は、
前記間隔が所定の閾値以上である場合に、前記判定領域のサイズを第1のサイズに決定し、
前記間隔が前記所定の閾値よりも小さい場合に、前記判定領域のサイズを前記第1のサイズよりも小さい第2のサイズに決定する、読取装置。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書で開示する技術は、情報コードを指示するための指示マーカを照射可能な読取装置に関する。
【背景技術】
【0002】
特許文献1には、情報コード(例えばバーコード)を読み取るための読取装置が開示されている。読取装置は、マーカ光を照射可能なマーカ光照射部を備える。読取装置は、マーカ光によって指示された情報コードの読取結果を出力する。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2010-97453号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
読取装置のユーザは、読取装置の姿勢を調整して、マーカ光が照射される位置を調整する。例えば、複数個の情報コードが密に並んでいる場合には、ユーザが意図する情報コードとは異なる情報コードがマーカ光によって指示されて、ユーザが意図しない情報コードの読取結果が出力され得る。また、情報コードが単独で存在する場合や複数個の情報コードが疎らに並んでいる場合には、ユーザが意図する情報コードとは異なる情報コードが指示される可能性が低いものの、ユーザが意図する情報コードをマーカ光で正確に指示することにユーザが煩わしさを感じ得る。
【0005】
本明細書では、指示マーカを照射可能な読取装置において、ユーザの利便性を向上するための技術を提供する。
【課題を解決するための手段】
【0006】
本明細書は、読取装置を開示する。前記読取装置は、情報コードを撮像する撮像部と、前記情報コードを指示するための指示マーカを照射する照射部と、前記撮像部によって撮像された前記情報コードの画像に基づいて、前記情報コードに記録されたデータを読み取り可能な読取部と、前記撮像部によって前記情報コードが撮像される場合に、前記照射部によって照射される前記指示マーカが前記情報コードを指示しているか否かを判定する判定部と、前記判定部が、前記指示マーカによって前記情報コードが指示されていると判定する場合に、前記読取部によって読み取られた前記データを出力する出力制御部と、前記撮像部によって前記情報コードが撮像される場合に、前記情報コードの周囲の状態に応じて、前記判定部が前記指示マーカによって前記情報コードが指示されていると判定するための判定基準を変更する変更部と、を備える。
【0007】
ここで、「周囲の状態」は、例えば、複数個の情報コードが密に並んでいる状態、複数個の情報コードが疎らに並んでいる状態、情報コードが単独して存在する状態等である。例えば、複数個の情報コードが密に並んでいる状態では、ユーザが意図する情報コードとその隣の情報コードとの双方に近い場所に、指示マーカが照射され得る。この場合、指示マーカがユーザの意図する情報コードとは異なる情報コードを指示していると判定して、ユーザの意図しない情報コードに記録されているデータが出力され得る。上記の構成によると、読取装置は、複数個の情報コードが密に並んでいる状態に応じて、判定基準を変更する(例えば指示マーカの中心と情報コードの表示領域との少なくとも一部が重なる場合に指示と判定する)ことができる。これにより、ユーザが意図しない情報コードではなく、ユーザが意図する情報コードに対して指示と判定する可能性を高め得る。この結果、ユーザが意図しない情報コードのデータが出力されることを抑制し得る。また、例えば、複数個の情報コードが疎らに並んでいる状態又は情報コードが単独で存在する状態では、情報コードを指示マーカで正確に指示することにユーザは煩わしさを感じ得る。上記の構成によると、読取装置は、複数個の情報コードが疎らに並んでいる状態等に応じて、判定基準を変更する(例えば指示マーカが情報コードの表示領域の近傍に照射されれば指示と判定する)ことができる。これにより、情報コードを指示マーカで正確に指示しなくても、情報コードに対して指示と判定する可能性を高め得る。この結果、ユーザが情報コードを指示マーカで正確に指示しなくても、ユーザが意図する情報コードのデータを出力し得る。以上より、指示マーカを照射可能な読取装置において、ユーザの利便性を向上し得る。
【0008】
前記読取装置は、さらに、前記撮像部によって前記情報コードが撮像される場合に、前記情報コードの周囲の領域の中から、コード特有の特徴を有する特徴領域を特定する特定部を備え、前記変更部は、特定済みの前記特徴領域に関する特徴情報を利用して、前記判定基準を変更してもよい。
【0009】
特徴領域が特定されることは、例えば、ユーザが意図する情報コードの周囲に他の情報コードが存在することを意味する。上記の構成によると、読取装置は、特徴領域に関する特徴情報を利用して、例えば、複数個の情報コードが密に並んでいる状態なのか、複数個の情報コードが疎らに並んでいる状態なのかを判定することができる。そして、読取装置は、その結果に応じて、判定基準を変更することができる。
【0010】
前記特徴情報は、前記情報コードと前記特徴領域との並び方向における前記情報コードと前記特徴領域との間隔を示し、前記判定基準は、前記情報コードと前記指示マーカとの距離である判定距離を含み、前記変更部は、前記特徴情報によって示される前記間隔が、前記情報コードの前記並び方向におけるコード幅よりも狭い場合に、前記判定距離を短く変更し、前記特徴情報によって示される前記間隔が、前記コード幅よりも広い場合に、前記判定距離を長く変更してもよい。
【0011】
情報コードと特徴領域との間隔がコード幅より狭いことは、複数個の情報コードが密に並んでいることを意味する。この場合に、判定距離を短く変更することによって、ユーザが意図しない情報コードではなく、ユーザが意図する情報コードに対して指示と判定する可能性を高めることができる。また、情報コードと特徴領域との間隔がコード幅より広いことは、複数個の情報コードが疎らに並んでいることを意味する。この場合に、判定距離を長く変更することによって、情報コードを指示マーカで正確に指示しなくても、情報コードに対して指示と判定する可能性を高めることができる。
【0012】
前記判定部は、前記撮像部によって撮影される前記情報コードと前記指示マーカによって指示される位置を含む判定領域とが重なる場合に、前記指示マーカによって前記情報コードが指示されていると判定し、前記判定基準は、前記判定領域のサイズを含み、前記変更部は、前記判定領域のサイズを変更してもよい。
【0013】
この構成によると、情報コードと判定領域とが重なる場合に、指示マーカによって前記情報コードが指示されていると判定される一態様において、判定領域のサイズを変更することによって判定基準を変更して、ユーザの利便性を向上することができる。
【0014】
前記読取装置は、さらに、前記撮像部によって前記情報コードである第1の情報コードが撮像される場合に、前記第1の情報コードの周囲の状態に関する情報をメモリに記憶する記憶制御部を備え、前記変更部は、前記撮像部によって前記第1の情報コードが撮像された後に、前記撮像部によって前記情報コードである第2の情報コードが撮像される場合に、前記メモリ内の前記情報によって示される前記第1の情報コードの周囲の状態と、前記第2の情報コードの周囲の状態とに応じて、前記判定基準を変更してもよい。
【0015】
上記の構成によると、読取装置は、過去の周囲の状態(即ち第1の情報コードの周囲の状態)と、現在の周囲の状態(即ち第2の情報コードの周囲の状態)と、に応じて判定基準を変更する。上記の構成によると、現在の周囲の状態だけでなく、過去の周囲の状態も考慮して、判定基準を変更することができる。
【図面の簡単な説明】
【0016】
図1】読取装置の利用状況を示す。
図2】読取装置のブロック図を示す。
図3】読取装置において実行される処理のフローチャートを示す。
図4】判定領域変更処理のフローチャート示す。
図5】情報コードが密に並んでいる具体的なケースを示す。
図6】情報コードが疎らに並んでいる具体的なケースを示す。
図7】情報コードが横に並んでいる一態様を示す。
図8】情報コードが斜めに並んでいる一態様を示す。
【発明を実施するための形態】
【0017】
(読取装置10の利用状況;図1
本実施例の読取装置10は、情報コード(例えばバーコードBC2)に記録されているデータを読み取るための装置である。読取装置10は、可搬型である。例えば、図1に示すように、物体100(例えば1枚の紙)の表面に複数個の情報コード(例えば3個のバーコードBC1~BC3)が並んでいる場合において、複数個の情報コードのうちの対象の情報コード(例えばバーコードBC2)に記録されているデータを読み取る利用状況が想定される。このような場合に、読取装置10のユーザは、読取装置10の姿勢を調整して、読取装置10の照射部14によって照射される指示マーカの位置を調整して、対象の情報コードを指示する。読取装置10は、後述する図3の処理を実行することによって、指示マーカが対象の情報コードを指示していると判定して、対象の情報コードに記録されているデータを読み取る。図1では、照射部14と操作部16と表示部18の符号は記載されているが、各部14、16、18以外の部位(例えば撮像部12)の図示及び符号は省略されている。なお、読取装置10の各部の詳細については、後述する。
【0018】
(読取装置10の構成)
図2に示すように、読取装置10は、撮像部12と、照射部14と、操作部16と、表示部18と、制御部30と、メモリ32と、を備える。撮像部12は、発光部12aと、受光部12bと、を備える。
【0019】
発光部12aは、情報コードを照らす照明光を発光可能な部位である。発光部12aは、例えば、LEDである。受光部12bは、発光部12aによる照射光の反射光を受光可能な部位である。受光部12bは、反射光を集光するレンズと、当該レンズによって集光された光を電気信号(例えば画像データ)に変換するイメージセンサと、を含む。なお、変形例では、発光部12aは、レーザを走査して情報コードに照射するレーザ光源であり、受光部12bは、当該レーザの反射レーザを受光する素子であってもよい。また、他の変形例では、撮像部12は、情報コードを撮影可能なカメラであってもよい。
【0020】
照射部14は、情報コードを指示するための指示マーカを照射可能な部位である。照射部14は、例えば、レーザ光源と、当該レーザ光源によって照射されたレーザを集光するレンズと、を備える。照射部14によって照射されたレーザが、物体100(図1参照)に照射されると、物体100の表面に指示マーカが映される。指示マーカの形状は、所定の円である。なお、変形例では、指示マーカの形状は、所定の楕円、多角形(例えば三角)、星形等であってもよい。指示マーカの形状は、何ら限定されるものではない。
【0021】
操作部16は、複数個のキーを備える。ユーザは、操作部16を操作することによって、様々な指示を読取装置10に入力することができる。表示部18は、様々な情報を表示するためのディスプレイである。表示部18は、ユーザから指示を受け付けるタッチパネル(即ち操作部)としても機能する。なお、変形例では、表示部18は、操作部として機能しないディスプレイであってもよい。
【0022】
制御部30は、メモリ32に記憶されているプログラム34に従って様々な処理を実行する。制御部30は、例えば、CPUである。メモリ32は、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ32には、さらに、指示マーカを利用するのか否かを示すマーカ設定値36と、判定領域値38と、履歴データ40と、が記憶されている。
【0023】
マーカ設定値36は、指示マーカを利用することを示す値「ON」と、指示マーカを利用しないことを示す値「OFF」と、のうちのいずれかの値に設定される。マーカ設定値は、ユーザが操作部16を操作することによって、読取装置10に入力される。
【0024】
判定領域値38は、指示マーカによって情報コードが指示されていると判定するための判定領域(即ち判定基準)に関する値である。判定領域は、指示マーカを中心とする円領域である。判定領域値38は、判定領域の直径である。判定領域の直径は、指示マーカの実際の直径よりも大きい。即ち、判定領域は、指示マーカによって指示される位置を含む仮想的な領域である。判定領域値38は、後述する判定領域変更処理(図4)によって変更される。
【0025】
履歴データ40は、後述する図3の処理が繰り返し実行される状況において、過去に実行された図3の処理で取得されたデータの履歴を示す。履歴データ40の詳しい内容は後述する。
【0026】
(読取装置の処理;図3
図3を参照して、読取装置10の制御部30によって実行される処理を説明する。図3の処理は、操作部16において情報コードの読取を開始するための操作が行われることをトリガとして開始される。
【0027】
S10では、制御部30は、物体100の表面の撮像の開始を撮像部12に指示する。具体的には、発光部12aは、制御部30からの指示に応じて、照射光を発光する。受光部12bは、当該照射光の反射光を受光し、反射光を電気信号(例えば画像データ)に変換して、当該電気信号を制御部30に供給する。これより、制御部30は、物体100の表面に記載されている情報コードを表す電気信号(例えば画像データ)を取得する。
【0028】
S12では、制御部30は、メモリ32内のマーカ設定値36が「ON」を示すのか否かを判定する。制御部30は、マーカ設定値36が「ON」を示すと判定する場合(S12でYES)に、S20において、指示マーカの照射を照射部14に指示する。
【0029】
S22では、制御部30は、撮像部12によって撮像された画像全体を分析して、当該画像全体の中から指示マーカの検出を試行する。そして、制御部30は、指示マーカの検出が成功する場合(S22でYES)に、S24に進む。ここで、指示マーカの検出は、画像全体の中から指示マーカを示す所定の画像(例えば中塗りの円)を検出することと、検出済みの所定の画像の中心の座標を算出することと、を含む。
【0030】
S24では、制御部30は、撮像部12によって撮像された画像全体の中の情報コードの画像に基づいて、当該情報コードに記録されたデータを読み取る読取処理を実行する。制御部30は、S22で算出された指示マーカの座標を中心とした矩形の読取領域を画像全体の中に配置する。そして、制御部30は、当該読取領域に含まれる情報コードの画像を読取対象に決定する。例えば、複数個の情報コードの画像が当該読取領域に含まれる場合には、制御部30は、指示マーカの座標に最も近い情報コードの画像を読取対象に決定する。そして、制御部30は、読取対象をデコードして、情報コードに記録されたデータを読み取る。なお、変形例では、制御部30は、複数個の情報コードの画像のそれぞれをデコードして、複数個の情報コードに対応する複数個のデータを読み取ってもよい。
【0031】
S26では、制御部30は、S24の読取処理が成功したのか否かを判定する。制御部30は、情報コードの画像のデコードが成功して、情報コードに記録されたデータを取得する場合には、読取処理が成功したと判定して(S26でYES)、S28に進む。
【0032】
S28では、制御部30は、S22で算出された指示マーカの座標を中心とし、かつ、メモリ32内の判定領域値38によって示される値を直径とした判定領域を撮像部12によって撮像された画像全体の中に配置する。そして、制御部30は、配置済みの判定領域が読取対象と重なるのか否かを判定する。判定領域が読取対象と重なることは、指示マーカが読取対象の情報コードを指示していることを意味する。制御部30は、配置済みの判定領域が読取対象と重なると判定する場合(S28でYES)に、S30に進む。
【0033】
S30では、制御部30は、S24で配置された読取領域を拡張して、読取対象の周囲の領域を探索する。具体的には、制御部30は、拡張済みの読取領域の上端から下端に亘って、拡張済みの読取領域を一定間隔で走査する。そして、制御部30は、その走査結果を示す走査データ(例えば、走査線上に並ぶ画素の色数の変化のパターン(例えば白黒パターン)を示すデータ、走査線上の画像の濃淡の変化のパターン(例えば周波数パターン)を示すデータ)を取得する。
【0034】
S32では、制御部30は、S30で取得した走査データを利用して、判定領域値38を変更するための判定領域変更処理(図4参照)を実行する。これにより、図3の処理が再び実行される場合に利用される判定領域値38が変更される。
【0035】
続くS40では、制御部30は、S24で読み取ったデータを出力する。例えば、制御部30は、当該データによって表される読取結果(例えば文字列)を表示部18に表示する。また、例えば、制御部30は、当該データをメモリ32に記憶して、当該データを利用した所定の処理(例えば当該データによって識別される商品を決済するための通信)を実行する。S40が終了すると図3の処理が終了する。
【0036】
また、制御部30は、画像全体の中から指示マーカを示す所定の画像が検出されないことに起因して指示マーカの検出が失敗する場合(S22でNO)、読取処理が失敗する場合(S26でNO)、及び、判定領域が読取対象と重ならないと判定する場合(S28でNO)のうちのいずれかの場合に、S42に進む。
【0037】
S42では、制御部30は、情報コードに記録されているデータの出力に失敗したことを示す失敗情報を表示部18に表示する。S42が終了すると図3の処理が終了する。
【0038】
また、制御部30は、マーカ設定値が「OFF」を示すと判定する場合(S12でNO)に、指示マーカの照射を照射部14に指示することなく、S54に進む。S54及びS56は、S24及びS26と同様である。制御部30は、読取処理が成功したと判定する場合(S56でYES)に、S40に進み、読取処理が失敗したと判定する場合(S56でNO)に、S42に進む。上述したように、S40又はS42が終了すると、図3の処理が終了する。
【0039】
(判定領域変更処理;図4図6
図4を参照して、図3のS32の判定領域変更処理について説明する。以下の説明では、図5及び図6を適宜参照する。図5は、3個のバーコードBC1~BC3が縦方向に沿って密に並んでいる具体的なケースを示し、図6は、3個のバーコードBC1~BC3が縦方向に沿って疎らに並んでいる具体的なケースを示す。
【0040】
S100では、制御部30は、図3のS30で取得した走査データを利用して、拡張済みの読取領域の中にコード特有の特徴を有する特徴領域が存在するのか否かを判定する。ここで、特徴領域は、読取対象の情報コードの周囲の領域である。そして、コード特有の特徴は、例えば、バーコード特有の白黒パターンを有する領域である。図5のケースにおいて、例えば、真ん中のバーコードBC2が読取対象である。拡張前の読取領域は、バーコードBC2のみを含む。そして、拡張済みの読取領域は、3個のバーコードBC1~BC3を含む。このため、走査データは、バーコードBC2以外のバーコードBC1、BC3の白黒パターンを示すデータを含む。この場合、制御部30は、拡張済みの読取領域の中に特徴領域が存在すると判定して(S100でYES)、S102に進む。一方、制御部30は、走査データが読取対象のバーコードの白黒パターンを示すデータのみを含む場合に、拡張済みの読取領域の中に特徴領域が存在しないと判定して(S100でNO)、図4の処理を終了する。
【0041】
S102では、制御部30は、読取対象と特徴領域の並び方向(例えば縦方向)における読取対象と特徴領域との間隔Xが、読取対象の並び方向の幅Yよりも狭いのか否かを判定する。間隔Xが幅Yより狭いことは、複数個の情報コードが並び方向に密に並んでいることを意味する。例えば、図5のケースでは、制御部30は、走査データを利用して、バーコードBC1に対応する第1の特徴領域の下端の座標と、読取対象であるバーコードBC2の上端及び下端の座標と、バーコードBC3に対応する第2の特徴領域の上端の座標を取得する。制御部30は、第1の特徴領域の下端の座標とバーコードBC2の上端を示す座標との距離を第1の特徴領域との間隔X1として取得する。制御部30は、第2の特徴領域の上端の座標とバーコードBC2の下端を示す座標との距離を第2の特徴領域との間隔X2として取得する。そして、制御部30は、間隔X1と間隔X2の平均値を間隔Xと決定する。図5のケースでは、制御部30は、間隔Xが幅Yよりも狭い(即ちX<Y)と判定し(S102でYES)、S104に進む。
【0042】
S104では、制御部30は、履歴データ40を利用して、図3の処理が繰り返し実行される状況において所定の閾値よりも小さい間隔で並んだ情報コードを連続して読み取ったのか否かを判定する。履歴データ40には、今回の処理の前に実行された過去の処理おいて取得された間隔Xと幅Yが含まれる。制御部30は、履歴データ40のうちの最新の間隔Xと今回の処理において取得された間隔Xとの平均値が所定の閾値よりも小さい場合には、所定の閾値よりも小さい間隔で並んだ情報コードを連続して読み取ったと判定して(S104でYES)、S108に進む。一方、制御部30は、当該平均値が所定の閾値以上である場合には、並び方向に密に並んだ情報コードを連続して読み取っていないと判定して(S104でNO)、S106に進む。なお、当該平均値を利用した判定は、一例に過ぎない。例えば、制御部30は、履歴データ40内の過去数回分(例えば過去3回分)の間隔Xを利用して判定してもよいし、履歴データ40内の間隔Xと幅Yの双方を利用して判定してもよい。
【0043】
S106では、制御部30は、第1の数式を利用して、判定領域の直径を小さく変更する。即ち、制御部30は、メモリ32内の判定領域値38を第1の数式を利用して算出された直径Rに変更する。第1の数式は、例えば、以下の通りである。
【0044】
R = R0 - α1・S1
S1 = |Y - X|・w1
【0045】
ここで、R0は、変更前の判定領域の直径(即ち、メモリ32内の判定領域値38)を示す。α1は、所定の係数(例えば0.2)を示す。w1も、所定の係数(例えば0.8)を示す。
【0046】
また、S108では、制御部30は、第1の数式とは異なる第2の数式を利用して、判定領域の直径を小さく変更する。第2の数式は、例えば、以下の通りである。
【0047】
R = R0 - 2・α1・Sa
【0048】
ここで、Saは、履歴データ40内の過去数回分のSと今回の処理において算出されたSから算出される平均値である。
【0049】
なお、判定領域の直径には、下限値が設定されている。仮に、第1及び第2の数式において、下限値以下の直径が算出される場合には、制御部30は、判定領域の直径を小さく変更することなく、図4の処理を終了する。
【0050】
S106又はS108が終了すると、制御部30は、S112において、今回の処理において取得された間隔X及び幅Yを履歴データ40としてメモリ32に記憶する。S112が終了すると、図4の処理が終了する。
【0051】
また、制御部30は、間隔Xが幅Yよりも広いと判定する場合(S102でNO)に、S110に進む、間隔Xが幅Yよりも広いことは、複数個の情報コードが並び方向に疎らに並んでいることを意味する。例えば、図6のケースでは、拡張済みの読取領域の中に、バーコードBC1の下部に対応する第1の特徴領域と、バーコードBC3の上部に対応する第2の特徴領域と、が存在する。そして、図6のケースでは、制御部30は、第1の特徴領域との間隔X1と第2の特徴領域との間隔X2との平均値である間隔Xが幅Yよりも広い(即ちY>X)と判定する(S102でNO)。
【0052】
S110では、制御部30は、第3の数式を利用して、判定領域の直径を大きく変更する。第3の数式は、例えば、以下の通りである。
【0053】
R = R0 + α2・S2
S2 = |Y - X|・w2
【0054】
ここで、α2は、所定の係数を示す。w2も、所定の係数を示す。α2は、α1と同じでもよいし、異なっていてよい。w2は、w1と同じでもよいし、異なっていてよい。
【0055】
なお、判定領域の直径には、上限値が設定されている。仮に、第3の数式において、上限値以上の直径が算出される場合には、制御部30は、判定領域の直径を大きく変更することなく、図4の処理を終了する。
【0056】
S110が終了すると、制御部30は、S112に進み、その後、図4の処理を終了する。
【0057】
なお、上記した第1~第3の数式は、一例に過ぎない。例えば、各数式は、幅Yに対する間隔Xの割合を利用してもよいし、間隔X1及びX2のうちの小さい方の値を利用してもよいし、間隔X及び幅Yだけでなく、これら値以外の値(例えば読取対象以外のバーコードの幅)を利用してもよい。
【0058】
(本実施例の効果)
例えば、複数個のバーコードBC1~BC3が密に並んでいる図5のケースでは、ユーザが意図するバーコードBC2とその下隣のバーコードBC3との双方に近い場所に、指示マーカが照射され得る。指示マーカが隣のバーコードBC3に少しでも近づくと、ユーザが意図しないバーコードが指示されたと判定されて、ユーザが意図しないバーコードに記録されているデータが出力され得る。図3及び図4の処理によると、読取装置10は、複数個の情報コードが密に並んでいる場合(図4のS102でYES)に、判定領域の直径を小さく変更する(S106)。これにより、読取装置10は、次回の処理において、今回の処理よりも小さい判定領域を利用して、判定領域と読取対象が重なるのか否かの判定を実行する(図3のS28)。例えば、物体100が商品の一覧を示す紙であり、物体100内のバーコードBC1~BC3のそれぞれに商品を識別するデータが記録されている状況が想定される。このような状況では、読取装置10のユーザ(店員)は、物体100内のバーコードを繰り返し読み取る。当該ユーザが物体100内のバーコードを繰り返し読み取ることで、図3及び図4の処理が繰り返し実行されて、判定領域の直径がバーコードBC1~BC3の実際の間隔を反映した直径まで小さく変更される。例えば、図5に示すように、変更前の判定領域では、判定領域と読取対象のバーコードBC2が重なり、指示マーカが読取対象を指示していると判定される。しかし、判定領域の直径が小さく変更されると、変更後の判定領域では、判定領域と読取対象のバーコードBC2が重ならず、指示マーカが読取対象を指示していると判定されない。このため、指示マーカを読取対象のバーコードに近づけることをユーザに促すことができる。この結果、ユーザが意図しないバーコードではなく、ユーザが意図するバーコードに対して指示と判定する可能性を高めることができる。ユーザが意図しないバーコードのデータが出力されることを抑制することができる。ユーザの利便性が向上する。
【0059】
また、例えば、複数個のバーコードBC1~BC3が疎らに並んでいる図6のケースでは、読取対象のバーコードを指示マーカで正確に指示することにユーザは煩わしさを感じ得る。図3及び図4の処理によると、読取装置10は、複数個の情報コードが疎らに並んでいる場合(図4のS102でNO)に、判定領域の直径を大きく変更する(S110)。これにより、読取装置10は、次回の処理において、今回の処理よりも大きい判定領域を利用して、判定領域と読取対象が重なるのか否かの判定を実行する(図3のS28)。読取装置10のユーザが、商品の一覧を示す物体100内のバーコードを繰り返し読み取ることで、図3及び図4の処理が繰り返し実行されて、判定領域の直径がバーコードBC1~BC3の実際の間隔を反映した直径まで大きく変更される。例えば、図5に示すように、変更前の判定領域では、判定領域と読取対象のバーコードBC2が重ならず、指示マーカが読取対象を指示していると判定されない。しかし、判定領域の直径が大きく変更されると、変更後の判定領域では、判定領域と読取対象のバーコードBC2が重なり、指示マーカが読取対象を指示していると判定される。これにより、読取対象のバーコードを指示マーカで正確に指示しなくても、バーコードに対して指示と判定する可能性を高めることができる。この結果、ユーザがバーコードを指示マーカで正確に指示しなくても、ユーザが意図するバーコードのデータを出力することができる。ユーザの利便性が向上する。
【0060】
また、図3及び図4の処理によると、読取装置10は、所定の閾値より小さい間隔で並んだ情報コードを連続して読み取ったと判定する場合(図4のS104でYES)に、第2の数式を利用して、判定領域の直径Rを算出し、判定領域値38を算出済みの直径Rに変更する(S110)。ここで、第2の数式では、履歴データ40内の過去数回分から算出されたSを利用した平均値であるSaを含む。第2の数式を利用することで、現在の状況だけでなく、過去の状況も考慮して、判定領域の直径を小さく変更することができる、また、第2の数式では、重み付けの係数α1に「2」が乗算されている。このため、第2の数式では、第1の数式よりも小さい直径Rを算出することができる。所定の閾値よりも狭い間隔で並んだ情報コードが連続して読み取られることは、密に並んだ情報コードが頻繁に読み取られることを意味する。このような場合に、判定領域の直径の縮小幅をさらに大きくすることで、密に並んだ情報コードが頻繁に読み取られる状況において、ユーザが意図しないバーコードのデータが出力されることをさらに抑制することができる。
【0061】
(2次元コードが横方向に並ぶケース;図7
図7は、複数個の2次元コードTC1~TC3が横方向に並んでいるケースを示す。本ケースでは、例えば、真ん中の2次元コードTC2が読取対象である。そして、拡張済みの読取領域は、3個の2次元コードTC1~TC3を含む。本ケースでも、制御部30は、拡張済みの読取領域内を走査して、走査データを取得する(図3のS30)。制御部30は、取得済みの走査データを利用して、2次元コードTC1に対応する第1の特徴領域の右端の座標と、読取対象であるバーコードBC2の左端及び右端の座標と、2次元コードTC3に対応する第2の特徴領域の左端の座標を取得する。制御部30は、第1の特徴領域の右端の座標と2次元コードTC2の左端を示す座標との距離を第1の特徴領域との間隔X1として取得する。制御部30は、第2の特徴領域の左端の座標とバーコードBC2の右端を示す座標との距離を第2の特徴領域との間隔X2として取得する。そして、制御部30は、間隔X1と間隔X2の平均値を間隔Xと決定する。そして、制御部30は、間隔Xが、読取対象の2次元コードTC2の横方向の幅Yよりも狭い(即ちX<Y)と判定する場合(図4のS102でYES)に、判定領域の直径を小さく変更する(S106又はS108)。この場合でも、図5のケースと同様に、ユーザが意図しない2次元コードのデータが出力されることを抑制することができる。また、制御部30は、間隔Xが、読取対象の横方向の幅Yよりも広い(即ちX>Y)と判定する場合(S102でNO)に、判定領域の直径を大きく変更する(S110)。この場合でも、図6のケースと同様に、ユーザが2次元コードを指示マーカで正確に指示しなくても、ユーザが意図する2次元コードのデータを出力することができる。即ち、本ケースでも、ユーザの利便性が向上する。
【0062】
(2次元コードが斜め方向に並ぶケース;図8
図8は、複数個の2次元コードTC1~TC3が斜め方向に並んでいるケースを示す。本ケースでは、例えば、真ん中の2次元コードTC2が読取対象である。そして、拡張済みの読取領域は、3個の2次元コードTC1~TC3を含む。本ケースでも、制御部30は、拡張済みの読取領域内を走査して、走査データを取得する(図3のS30)。制御部30は、取得済みの走査データを利用して、3個の2次元コードTC1~TC3のそれぞれの中心を近似的に通過する直線Lを算出する。制御部30は、算出済みの直線Lが延びる方向を3個の2次元コードTC1~TC3の並び方向に決定する。制御部30は、取得済みの走査データを利用して、2次元コードTC1に対応する第1の特徴領域の決定済みの並び方向における右下端の座標と、2次元コードTC3に対応する第2の特徴領域の決定済みの並び方向における左上端の座標を取得する。さらに、制御部30は、読取対象であるバーコードBC2の決定済みの並び方向における左上端の座標及び右下端の座標を取得する。制御部30は、第1の特徴領域の右下端の座標と2次元コードTC2の左上端を示す座標との距離を第1の特徴領域との間隔X1として取得する。制御部30は、第2の特徴領域の左上端の座標とバーコードBC2の右下端を示す座標との距離を第2の特徴領域との間隔X2として取得する。そして、制御部30は、間隔X1と間隔X2の平均値を間隔Xと決定する。そして、制御部30は、間隔Xが、読取対象の2次元コードTC2の決定済みの並び方向の幅Yよりも狭い(即ちX<Y)と判定する場合(図4のS102でYES)に、判定領域の直径を小さく変更する(S106又はS108)。この場合でも、図5のケースと同様に、ユーザが意図しない2次元コードのデータが出力されることを抑制することができる。また、制御部30は、間隔Xが、読取対象の決定済みの並び方向の幅Yよりも広い(即ちX>Y)と判定する場合(S102でNO)に、判定領域の直径を大きく変更する(S110)。この場合でも、図6のケースと同様に、ユーザが2次元コードを指示マーカで正確に指示しなくても、ユーザが意図する2次元コードのデータを出力することができる。即ち、本ケースでも、ユーザの利便性が向上する。
【0063】
(対応関係)
読取装置10、撮像部12、照射部14が、それぞれ、「読取装置」、「撮像部」、「照射部」の一例である。バーコードBC2又は2次元コードTC2が、「情報コード(又は第2の情報コード)」の一例である。図3のS24、S28、S40、S32が、それぞれ、「読取部」、「判定部」、「出力制御部」、「変更部」によって実現される処理の一例である。間隔X、幅Yが、それぞれ、「間隔」、「コード幅」の一例である。判定領域値38が、「判定領域のサイズ(又は判定基準)」の一例である。読取対象の情報コードと判定領域とが重なる概念的な距離が、「判定距離」の一例である。図3のS30、図4のS112が、それぞれ、「特定部」、「記憶制御部」によって実現される処理の一例である。履歴データ40が、「第1の情報コードの周囲の状態に関する情報」の一例である。
【0064】
以上、本明細書で開示する技術の具体例を説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。例えば、以下の変形例を採用してもよい。
【0065】
(変形例1)上記の実施例では、読取装置10は、拡張済みの読取領域の中に特徴領域が存在しない場合(図4のS100でNO)に、図4の処理を終了する。これに代えて、読取装置10は、S100でNOの場合に、判定領域の直径を大きく変更してもよい。拡張済みの読取領域の中に特徴領域が存在しないことは、情報コードが単独で存在していることを意味する。このような状態では、情報コードを指示マーカで正確に指示することにユーザは煩わしさを感じ得る。この変形例によると、読取装置10は、情報コードが単独で存在している状態に応じて、判定領域の直径を大きく変更することができる。情報コードを指示マーカで正確に指示しなくても、情報コードに対して指示と判定する可能性を高めることができ、ユーザの煩わしさを低減することができる。
【0066】
(変形例2)上記の実施例では、読取装置10は、間隔Xが幅Yよりも狭い場合(図4のS102でYES)に、判定領域の直径を小さく変更し(S106)、間隔Xが幅Yよりも広い場合(S102でNO)に、判定領域の直径を大きく変更する(S110)。これに代えて、読取装置10は、S102の判定を実行せず、拡張済みの読取領域の中に特徴領域が存在する場合(S100でYES)に、判定領域の直径を小さく変更し、拡張済みの読取領域の中に特徴領域が存在しない場合(S100でNO)に、判定領域の直径を大きく変更してもよい。即ち、読取装置10は、読取対象の情報コードの周囲に他の情報コードが存在する場合に、判定領域の直径を小さく変更し、読取対象の情報コードが単独で存在する場合に、判定領域の直径を大きく変更してもよい。この変形例によると、複数個の情報コードが並んでいる状態を考慮して、ユーザが意図しない情報コードのデータが出力されることを抑制することができ、さらに、情報コードが単独で存在する状態を考慮して、情報コードを指示マーカで正確に指示するという煩わしさを低減することができる。
【0067】
(変形例3)上記の実施例では、読取装置10は、判定領域が読取対象と重なると判定した後に(図3のS28)、判定領域値38を変更する(S32)。即ち、読取装置10は、次回の処理内の判定で利用される判定領域値38を変更する。これに代えて、読取装置10は、今回の処理内の判定で利用される判定領域値38を変更してもよい。この変形例では、例えば、読取装置10は、読取処理が成功した場合(S26でYES)に、判定領域変更処理を実行し、変更後の判定領域値38を利用して、判定領域が読取対象と重なるのか否かの判定(S28)を実行してもよい。一般的に言えば、「判定基準」は、撮像部によって情報コードが撮像される場合に、変更されればよい。
【0068】
(変形例4)図4のS100の判定は実行されなくてもよい。例えば、読取装置10は、走査データを利用して、拡張済みの読取領域の中に、読取対象の情報コードの画像以外の画像(例えば情報コードではない画像も含む)が存在するのか否かを判定してもよい。そして、読取装置10は、読取対象の情報コードの画像以外の画像が存在すると判定する場合に、複数個の情報コードが密に並んでいると推定して、判定領域の直径を小さく変更してもよい。また、読取装置10は、読取対象の情報コードの画像以外の画像が存在しないと判定する場合に、情報コードが単独で存在していると推定して、判定領域の直径を大きく変更してもよい。本変形例では、「特定部」を省略可能である。
【0069】
(変形例5)「判定基準」は、判定領域の直径に限らず、例えば、所定の距離を示す閾値でもよい。この変形例では、例えば、読取装置10は、読取対象の情報コードの中心座標と指示マーカの座標との距離が上記の閾値以下である場合に、指示マーカが情報コードを指示していると判定してもよい。そして、読取装置10は、判定領域変更処理において、間隔Xが幅Yよりも狭い場合(図4のS102でYES)に、閾値を小さく変更し、間隔Xが幅Yよりも広い場合(S102でNO)に、閾値を大きく変更してもよい。本変形例では、上記の閾値が、「判定距離(又は判定基準)」の一例である。
【0070】
(変形例6)「判定領域」は、指示マーカによって指示される位置を含む仮想的な領域に限らず、例えば、物体100に映された指示マーカ自体であってもよい。この変形例では、読取装置10は、指示マーカ自体の大きさを変更することによって、判定領域の直径を変更してもよい。指示マーカ自体の大きさは、例えば、照射部14内のレンズの焦点を調整することによって調整してもよい。
【0071】
(変形例7)図4のS108及びS112の処理は実行されなくてもよい。本変形例では、「記憶制御部」を省略可能である。
【0072】
(変形例8)「指示マーカ」は、単独の円に限らず、例えば、矩形の枠を示す枠マーカと、当該枠の中心に位置する内部マーカ(例えば十字の形状を有するマーカ)と、を含んでいてもよい。この変形例では、内部マーカが情報コードを指示していると判定するための判定基準が、「判定基準」の一例である。
【0073】
(変形例9)本明細書で開示の技術は、図5図8の具体的なケースに限らず、例えば、複数個のバーコードが横方向又は斜め方向に並んでいるケース、複数個の2次元コードが縦方向に並んでいるケース、若しくは、バーコード又は2次元コードが単独で存在しているケースにも採用可能である。
【0074】
本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【0075】
10 :読取装置
12 :撮像部
12a :発光部
12b :受光部
14 :照射部
16 :操作部
18 :表示部
30 :制御部
32 :メモリ
34 :プログラム
36 :マーカ設定値
38 :判定領域値
40 :履歴データ
100 :物体
BC1~BC3 :バーコード
TC1~TC3 :2次元コード
図1
図2
図3
図4
図5
図6
図7
図8