説明

色彩配列コードの読み取り方法及び読み取り装置

【課題】1Dカラービットコードの構成セル群の配列が一部乱れている場合や、構成セル群の周囲に切り出し用のQzを設けにくい場合でも、データを読み取れる方法を提供する。
【解決手段】
読み取り対象の1Dカラービットコード10を含む画像を撮像し、キャプチャ画像12を得る。次に、キャプチャ画像12内に細長い視野枠Bを設定し、視野枠Bの内部の狭小画像を取り出す。次に、取り出した狭小画像を狭小画像中の各画素の値によって複数の色彩領域に分割し、狭小画像の一方端から他方端に至るまでの順番と、各色彩領域の色彩と、を記述した色彩配列情報を生成する。次に、生成した色彩配列情報が1Dカラービットコードの成立を規定する成立条件を満たしている場合に、その色彩配列情報は読み取り対象の1Dカラービットコードの色彩の配列であるとみなして、その色彩配列情報に基づいてデコードを行い、データを出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、光学的自動認識コードに関する。特に、本発明者がすでに提案した1Dカラービットコード(特願2006−196705)と呼ぶ光学的自動認識コードの読み取り率をより一層向上させた読み取り方法に関する発明である。また、本発明は、光学的に自動認識コードを読み取り、デコードする方法に関する。
【背景技術】
【0002】
本発明者は、すでに色彩の配列(遷移)によってデータを表す光学的自動認識コードに関する出願を複数行っている。
【0003】
本発明者は、先の特願2006−196705号において、1Dカラービットコードを提案した。この1Dカラービットコードを構成する色彩が付されている領域を「セル」と呼ぶ。すなわち、所定の色彩が付されたセルを並べることによって、1Dカラービットコードは構成されている。なお、1個1個の1Dカラービットコードそのもの(複数のセルによって構成される幾何学的図形)を、「コードシンボル」又は「色彩配列」と呼ぶ。
【0004】
データを読み取るために色彩配列をキャプチャすると、色彩配列そのものと、色彩配列ではない部分とが1つの画像に写る。色彩配列を読み取るためには、色彩配列の部分を画像から切り出す必要がある。
【0005】
しかしながら、状況によって、読み取り対象である色彩配列の切り出しが困難な場合があった。
【0006】
そこで、本発明者は、先の出願(特願2007−130504号)において、色彩配列の周囲に設けられたクワイアットゾーンを利用する読み取り方法を提案した。クワイアットゾーンとは、色彩配列を構成する色以外の色彩の領域である。クワイエットゾーンを「Qz」と記すこともある。この読み取り方法では、色彩配列とクワイアットゾーンを含む画像データを定義に基づき複数の色領域に区分けする。そして、区分けした領域群からクワイアットゾーンを排除し、残りの領域群について、境界条件、セル数の条件、終端条件等を用いて、色彩配列を構成するセルであるか否か判定する。この方法によれば、キャプチャした画像に色彩配列でない部分が写っていても、色彩配列そのものだけを切り出すことができる。
【0007】
クワイアットゾーンを設けることなく色彩配列を切り出す方法
また、本発明者は、先の出願(特願2007−258430号)において、色彩配列が直線状であり、周囲のクワイアットゾーンが小さい、又は存在しないケースにおける色彩配列の存在の切り出し方法、及びデコード方法を提案した。この切り出し方法では、端面に色彩配列がマーキングされた複数のシート状被印物を少しずつずらしてキャプチャする。キャプチャ画像には、色彩配列のほかにシート状被印物の側面と背景とが写り、これら側面と背景がクワイアットゾーンとなることを技術的特徴の1つとする。この方法によれば、シート状被印物の端面のように広いQzを設けにくい又は存在しない状況でも、被印物の並べ方と切り出し方を工夫し、色彩配列を読み取ることができる。
【0008】
公知特許文献
下記特許文献1には、走行する車両から障害物の存在を監視する認識補助装置が開示されている。特に、この認識補助装置は、撮像素子によって取得された画像において、その画像よりも狭い領域を持つウィンドウを設定し、そのウィンドウ内に監視対象の物体が位置するようにウィンドウの位置を制御することが記載されている。
【0009】
下記特許文献2には、対象パターン及び対象外パターンを撮像したカメラ視野内で、対象パターンを画像認識により検出して位置出しをする方法が開示されている。特に、この特許文献2には、対象外パターンnの位置に基づいて、対象パターンmの周囲に認識ウィンドウを設定し、対象パターンmの重心データ及び面積データに基づいて、対象パターンmが認識ウィンドウの内にあるのか否かを判断し、認識ウィンドウの位置を補正することが記載されている。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2005−244399号公報
【特許文献2】特開平9−5022号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
本発明者が先に出願した特願2007−130504号に記載の読み取り方法では、1Dカラービットコードは、1Dカラービットコードの使用色以外の色彩の領域(クワイアットゾーン)により囲まれている必要があった。1Dカラービットコードの切り出しを容易にするためである。また、この特願2007−130504号に記載の読み取り方法では、1Dカラービットコードを構成する各色彩領域を、1Dカラービットコードの「境界条件」を基に切り出していた。この「境界条件」とは、例えば「1個のセルは他の1個又は2個のセルと接する」という条件である。
【0012】
ところが、1Dカラービットコードが何らかの理由で乱れ、1Dカラービットコードのごく一部のみが「境界条件」と合致しないものになると、1Dカラービットコード全体が読み取れなくなってしまう場合があった。この処理は、1Dカラービットコードの読み取りに正確を期するという観点では好ましい。
【0013】
しかし、状況によっては、この特願2007−130504号に記載の読み取り方法は好ましくない場合もあった。
【0014】
図1には、1Dカラービットコード10をキャプチャしたキャプチャ画像12が示されている。この図中には11個の色彩領域が示されている。これら11個の色彩領域のうち3個の色彩領域14b、14d、14hは他の3個以上の色彩領域と接する。従って、これら3個の色彩領域は上述した境界条件と合致しないので、従来の方法では、この1Dカラービットコード10は読み取れない場合が多かった。このように状況によっては多くの1Dカラービットコードが読み取れなくなるので、上記特願2007−130504号に記載の読み取り方法は、使用場面によっては、利便性に欠け、読み取り操作上、好ましくない場合があった。
【0015】
また、1Dカラービットコードが、極めて狭い場所(例えば板状体の端面などのようにきわめて幅の狭い場所)にマーキングされた場合には、Qzを設けることが容易でない又はQzを設けられないことがある。この結果、1Dカラービットコードを切り出すことが難しい場合があった。また、端面をキャプチャした画像内に背景の様々な色彩が写った場合には、1Dカラービットコードの境界を判断することが難しい場合があった。
【0016】
上述した特願2007−258430号には、板状体の端面にマーキングされた1Dカラービットコードの読み取り方法が記載されているが、この読み取り方法は、非常に狭くてもQzが存在することを前提とした読み取り方法である。具体的には、例えば、1Dカラービットコードがマーキングされた複数の板状体がずらして密着配置されている場合に、1Dカラービットコードのキャプチャ画像上では板状体の側面や背景をQzとして扱うことによって「非常に狭くてもQzが存在すること」を実現している。従って、特願2007−258430号に記載の読み取り方法は、Qzが存在しないケースには対応できない場合もあった。
【0017】
本発明の目的
本発明の第1の目的は、適当な直線状の区間にマーキングされ、コードを形成する色彩配列を読み取る方法を提供することである。また、第2の目的は、周囲にクワイアットゾーンが存在しない色彩配列を読み取る方法を提供することである。また、第3の目的は、色彩配列を構成するセル群の一部が乱れてマーキングされているような場合でも、その色彩配列を読み取る方法を提供することである。
【0018】
また、上記第1から第3までの目的に関連する技術を提供することである。
【課題を解決するための手段】
【0019】
(1)本発明は、上記課題を解決するために、色彩の遷移によってデータを表す色彩配列コードの読み取り方法において、前記色彩配列コードを含む画像をキャプチャするキャプチャステップと、前記画像内に予め設定された細長い視野枠の内部の狭小画像を取り出す狭小画像取り出しステップと、前記狭小画像中の各画素の値によって前記狭小画像を複数の色彩領域に分割する分割ステップと、前記各色彩領域ごとに、前記色彩領域の色彩と、前記狭小画像の一方端から他方端に至るまでの順番と、を記述した色彩配列情報を生成する色彩配列情報生成ステップと、前記色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の順番及び色彩であるとみなして、前記色彩及び順番に基づいて前記色彩配列コードをデコードし前記データを出力するデコードステップと、を含むことを特徴とする色彩配列コードの読み取り方法である。
【0020】
(2)また、本発明は、色彩の遷移によってデータを表す色彩配列コードの読み取り方法において、前記色彩配列コードを含む画像をキャプチャするキャプチャステップと、前記画像内に予め設定された細長い視野枠の内部の狭小画像を取り出す狭小画像取り出しステップと、前記狭小画像中の各画素の値によって前記狭小画像を複数の色彩領域に分割する分割ステップと、前記各色彩領域ごとに、前記色彩領域の色彩と、前記狭小画像の一方端から他方端に至るまでの順番と、を記述した色彩配列情報を生成する色彩配列情報生成ステップと、前記色彩配列情報のうち、前記色彩配列コードのスタートを示す切り出し用冗長セルの色彩が付された前記色彩領域を表す色彩情報と、前記色彩配列コードのエンドを示す切り出し用冗長セルの色彩が付された前記色彩領域を表す色彩情報と、の間にある色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の順番及び色彩であるとみなして、前記色彩配列情報に基づいて前記色彩配列コードをデコードし前記データを出力するデコードステップと、を含むことを特徴とする色彩配列コードの読み取り方法である。
【0021】
(3)また、本発明は、上記(1)又は(2)に記載の色彩配列コードの読み取り方法において、前記狭小画像取り出しステップは、前記画像内に1個又は複数個設定された前記視野枠の位置を、前記画像内で、利用者の指示に従って移動する第1の視野枠移動ステップ、をさらに含み、前記狭小画像取り出しステップは、前記視野枠移動ステップにおいて移動した視野枠によって前記狭小画像を取り出すことを特徴とする色彩配列コードの読み取り方法である。
【0022】
(4)また、本発明は、上記(1)又は(2)に記載の色彩配列コードの読み取り方法において、前記狭小画像取り出しステップは、前記予め設定された視野枠を、キャプチャされた前記画像ごとに異なる位置に移動させる第2の視野枠移動ステップ、をさらに含み、前記異なる位置に設定された視野枠の内部の狭小画像が、前記色彩配列コードを構成する色彩によって構成されている場合に、その視野枠の内部の狭小画像を取り出すことを特徴とする色彩配列コードの読み取り方法である。
【0023】
(5)また、本発明は、上記(4)に記載の色彩配列コードの読み取り方法において、前記視野枠は、前記画像ごとに平行な方向に異なる位置に移動することを特徴とする色彩配列コードの読み取り方法である。
【0024】
(6)また、本発明は、上記(4)に記載の色彩配列コードの読み取り方法において、前記視野枠は、前記画像ごとに前記視野枠の中心点を軸として回転する方向に異なる位置に移動することを特徴とする色彩配列コードの読み取り方法である。
【0025】
(7)また、本発明は、上記(4)に記載の色彩配列コードの読み取り方法において、前記視野枠は、前記画像ごとに平行な方向に、かつ、前記視野枠の中心点を軸として回転して移動することを特徴とする色彩配列コードの読み取り方法である。
【0026】
(8)また、本発明は、上記(1)又は(2)に記載の色彩配列コードの読み取り方法において、前記狭小画像取り出しステップは、前記予め設定された視野枠を前記画像上において走査する第3の視野枠移動ステップ、をさらに含み、前記視野枠移動ステップにおいて走査する視野枠の内部の狭小画像が、前記色彩配列コードを構成する色彩で構成されている場合に、前記視野枠の内部の狭小画像を取り出すことを特徴とする色彩配列コードの読み取り方法である。
【0027】
(9)また、本発明は、上記(8)に記載の色彩配列コードの読み取り方法において、前記視野枠は、前記画像上を縦方向又は横方向に平行に走査することを特徴とする色彩配列コードの読み取り方法である。
【0028】
(10)また、本発明は、上記(8)に記載の色彩配列コードの読み取り方法において、
前記視野枠は、前記視野枠の中心点を軸として回転する方向に走査することを特徴とする色彩配列コードの読み取り方法である。
【0029】
(11)また、本発明は、上記(8)に記載の色彩配列コードの読み取り方法において、前記視野枠は、前記画像ごとに平行な方向に、かつ、前記視野枠の中心点を軸として回転して走査することを特徴とする色彩配列コードの読み取り方法である。
【0030】
(12)また、本発明は、上記(1)〜(11)のいずれかに記載の色彩配列コードの読み取り方法において、前記視野枠は所定の幅と長さを有する形状であって、長手方向の一方が前記一方端であり、他方が前記他方端であり、前記長さが前記幅よりも長いことを特徴とする色彩配列コードの読み取り方法である。
【0031】
(13)また、本発明は、上記(12)に記載の色彩配列コードの読み取り方法において、前記視野枠のいずれかの辺は、曲線であり、前記視野枠が曲線状に配置されていることを特徴とする色彩配列コードの読み取り方法である。
【0032】
(14)また、本発明は、上記(12)又は(13)に記載の色彩配列コードの読み取り方法において、前記色彩配列情報生成ステップは、さらに、前記狭小画像中の各色彩領域の前記狭小画像の長手方向の長さを測定し、測定した長さも前記各色彩領域ごとに記述した前記色彩配列情報を生成する長さ追記ステップと、前記長さが所定の基準値より小さい場合、その色彩領域を表す色彩情報を前記色彩配列情報から削除するデータ削除ステップと、その削除した色彩情報の前後に隣接する他の色彩情報をつめる色彩配列情報修正ステップ、を含むことを特徴とする色彩配列コードの読み取り方法である。
【0033】
(15)また、本発明は、上記(1)〜(14)のいずれかに記載の色彩配列コードの読み取り方法において、前記色彩配列情報中に、前記色彩配列コードを構成する構成色が混色した色彩の領域の色彩情報が存在し、その混色した色彩の領域に隣接する領域の色彩が前記構成色である場合に、その混色した色彩を、その色彩領域に隣接するいずれかの色彩領域の色彩であると見なす色彩見なしステップ、を含むことを特徴とする色彩配列コードの読み取り方法である。
【0034】
(16)また、本発明は、上記(1)〜(15)のいずれかに記載の色彩配列コードの読み取り方法において、前記狭小画像取り出しステップと、前記色彩配列情報生成ステップと、の間に、前記狭小画像中の各画素の値を、その画素を含み、前記狭小画像の幅方向に伸展する画素列の平均値と置き換える均一化処理ステップ、を含み、前記色彩配列情報生成ステップは、前記均一化処理を行った後の前記狭小画像に基づいて前記色彩配列情報を生成することを特徴とする色彩配列コードの読み取り方法である。
【0035】
(17)また、本発明は、色彩の遷移によってデータを表す色彩配列コードの読み取り方法において、前記色彩配列コードを含む画像をキャプチャするキャプチャステップと、 前記画像中の各画素の値に基づき前記画像を色彩領域に分割する分割ステップと、前記画像内の予め決められた位置にある画素を含む色彩領域が前記色彩配列コードのスタートセルであるとみなす第1のスタートセルみなしステップと、前記スタートセルに隣接する他の色彩領域のうち、予め決められた色彩の色彩領域を前記色彩配列コードの第2セルであるとみなす第2セルみなしステップと、第(k+1)セルの重心点と、前記第(k+1)セルに隣接する他の各色彩領域の各重心点と、を通る直線を前記各重心点ごとに描き、それら直線の中から、前記第(k+1)セルの重心点と、第kセルの重心点と、を通る直線に対して成す角が最も小さい直線を選択し、その選択した直線が通る2個の重心点のうち前記第(k+1)セルの重心点以外の重心点が属する色彩領域を前記色彩配列コードの第(k+2)セルであるとみなすセル選択ステップと、前記スタートセルから前記第nセルに至るセル群であるとみなした前記各色彩領域ごとに、前記各色彩領域の色彩と、前記スタートセルから前記第nセルに至るまでの順番と、を記述した色彩配列情報を生成する色彩配列情報生成ステップと、前記色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の色彩及び順番であるとみなして、前記色彩及び順番に基づいて前記色彩配列コードをデコードし前記データを出力するデコードステップと、
を含むことを特徴とする色彩配列コードの読み取り方法である。(なお、kは1以上の自然数であり、nはkより大きい自然数とする。)
(18)また、本発明は、色彩の遷移によってデータを表す色彩配列コードの読み取り方法において、前記色彩配列コードを含む画像をキャプチャするキャプチャステップと、前記画像中の各画素の値に基づき前記画像を色彩領域に分割する分割ステップと、前記画像内の予め決められた画像端に接する色彩領域群の中から、予め決められた色彩の色彩領域を選択し、その選択した色彩領域を前記色彩配列コードのスタートセルであるとみなす第2のスタートセルみなしステップと、前記スタートセルに隣接する他の色彩領域のうち、予め決められた色彩の色彩領域を前記色彩配列コードの第2セルであるとみなす第2セルみなしステップと、第(k+1)セルの重心点と、前記第(k+1)セルに隣接する他の各色彩領域の各重心点と、を通る直線を前記各重心点ごとに描き、それら直線の中から、前記第(k+1)セルの重心点と、第kセルの重心点と、を通る直線に対して成す角が最も小さい直線を選択し、その選択した直線が通る2個の重心点のうち前記第(k+1)セルの重心点以外の重心点が属する色彩領域を前記色彩配列コードの第(k+2)セルであるとみなすセル選択ステップと、前記スタートセルから前記第nセルに至るセル群であるとみなした前記各色彩領域ごとに、前記各色彩領域の色彩と、前記スタートセルから前記第nセルに至るまでの順番と、を記述した色彩配列情報を生成する色彩配列情報生成ステップと、前記色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の色彩及び順番であるとみなして、前記色彩及び順番に基づいて前記色彩配列コードをデコードし前記データを出力するデコードステップと、を含むことを特徴とする色彩配列コードの読み取り方法である。(なお、kは1以上の自然数であり、nはkより大きい自然数とする。)
(19)また、本発明は、上記(17)に記載の色彩配列コードの読み取り方法において、前記第1のスタートセルみなしステップにおける前記予め決められた位置は複数あり、
前記第1のスタートセルみなしステップは、前記複数の予め決められた位置のいずれかの位置の色彩が、予め決められた色彩である場合に、その色彩領域を前記色彩配列コードのスタートセルであるとみなすことを特徴とする色彩配列コードの読み取り方法である。
【0036】
(20)また、本発明は、上記(18)に記載の色彩配列コードの読み取り方法において、前記第2のスタートセルみなしステップの前記予め決められた色彩は、前記色彩配列コードが付された物品の地色、又は、地色に対して前面を彩色した下地色であることを特徴とする色彩配列コードの読み取り方法である。
【0037】
(21)また、本発明は、色彩の遷移によってデータを表す色彩配列コードの読み取り装置において、前記色彩配列コードを含む画像をキャプチャするキャプチャ手段と、前記画像内に予め設定された細長い視野枠の内部の狭小画像を取り出す狭小画像取り出し手段と、前記狭小画像中の各画素の値によって前記狭小画像を複数の色彩領域に分割する分割手段と、前記各色彩領域ごとに、前記色彩領域の色彩と、前記狭小画像の一方端から他方端に至るまでの順番と、を記述した色彩配列情報を生成する色彩配列情報生成手段と、前記色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の色彩及び順番であるとみなして、前記色彩及び順番に基づいて前記色彩配列コードをデコードし前記データを出力するデコード手段と、を含むことを特徴とする色彩配列コードの読み取り装置である。
【0038】
(22)また、本発明は、色彩の遷移によってデータを表す色彩配列コードの読み取り装置において、前記色彩配列コードを含む画像をキャプチャするキャプチャ手段と、
前記画像内に予め設定された細長い視野枠の内部の狭小画像を取り出す狭小画像取り出し手段と、前記狭小画像中の各画素の値によって前記狭小画像を複数の色彩領域に分割する分割手段と、前記各色彩領域ごとに、前記狭小画像の一方端から他方端に至るまでの順番と、前記色彩領域の色彩と、を記述した色彩配列情報を生成する色彩配列情報生成手段と、前記色彩配列情報のうち、前記色彩配列コードのスタートを示す切り出し用冗長セルの色彩が付された前記色彩領域を表す色彩情報と、前記色彩配列コードのエンドを示す切り出し用冗長セルの色彩が付された前記色彩領域を表す色彩情報と、の間にある色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の色彩及び順番であるとみなして、前記色彩配列情報に基づいて前記色彩配列コードをデコードし前記データを出力するデコード手段と、を含むことを特徴とする色彩配列コードの読み取り装置である。
【0039】
(23)また、本発明は、上記(21)又は(22)に記載の色彩配列コードの読み取り装置において、前記画像内に1個又は複数個設定された前記視野枠の位置を、前記画像内で、利用者の指示に従って移動する視野枠移動手段、を含み、前記狭小画像取り出し手段が、前記移動した視野枠によって前記狭小画像を取り出すことを特徴とする色彩配列コードの読み取り装置である。
【発明の効果】
【0040】
本発明に係る読み取り方法によれば、色彩配列の一部が境界条件と合致していなくても、視野枠を用いて境界条件と合致する部分を切り出してデコードすることができる。
【0041】
また、本発明に係る読み取り方法によれば、色彩配列の一部が境界条件と合致していなくても、色彩配列の直線性を利用して追跡したので、デコードすることができる。
【図面の簡単な説明】
【0042】
【図1】1Dカラービットコード読み取り方法の原理図である。
【図2】1Dカラービットコード読み取り装置を示す図である。
【図3】ノイズの処理方法を説明する図である。
【図4】色彩が混在する領域の処理方法を説明する図である。
【図5】色彩の平均化処理を説明する図である。
【図6】短辺方向色彩均一化処理を説明する図である。
【図7】白色を1Dカラービットコードの構成色の1つとする場合のセルのマーキング方法を説明する図である。
【図8】切り出し用冗長セルを説明する図である。
【図9】切り出し用冗長セルを利用した読み取り方法を説明する図である。
【図10】視野枠の数・配置・形状のバリエーションを示す図である。
【図11】1Dカラービットコードの構成セルを追跡する方法を説明する図である。
【図12】1Dカラービットコードの構成セルを追跡する方法を説明する拡大図である。
【図13】端点セルを含む1Dカラービットコードを追跡する方法を説明する図である。
【図14】1Dカラービットコードの探索方法を説明する図である。
【図15】直列1Dカラービットコードの読み取り方法を説明する図である。
【図16】直列1Dカラービットコードの読み取り方法を説明する図である。
【図17】色彩の配列及びデコード結果を示す図である。
【図18】本実施の形態に係る読み取り方法の効果を説明する図である。
【発明を実施するための形態】
【0043】
(1)本実施の形態に係る読み取り方法の特徴事項
特徴事項1
1Dカラービットコードは、本発明者が先に出願した特願2007−130504号に示した方法によって1Dカラービットコードを含む画像から切り出される。本実施の形態における特徴事項の1つは、この切り出しを行う前に、1Dカラービットコードの画像の一部を視野枠を使用して取り出す点である。
【0044】
1Dカラービットコードが所定の境界条件と成立条件とを満たしていれば、デコード手段は、その1Dカラービットコードを読み取ることができる。ここで、境界条件とは、例えば「各セルは他の1個又は2個のセルと接する」という条件である。また、成立条件とは、従来と同様に、Rの個数、Gの個数、Bの個数、スタートの端部の色彩、エンドの端部の色彩、誤り訂正符号、などの条件である。
【0045】
しかし、1Dカラービットコードのごく一部のセルが、例えば3個のセルと接する場合には、そのセルは境界条件を満たさなくなるため、1Dカラービットコード全体を読み取れなくなる場合がある。
【0046】
一方、読み取る範囲を狭めて、境界条件を満たさない部分を読み取り対象から除外すれば、1Dカラービットコードを読み取れる場合がある。1Dカラービットコードのごく一部だけが境界条件を満たさない場合には、その部分だけを除いて、残りの部分を読むことが好ましい場合も多い。
【0047】
そこで、本実施の形態においては、デコード手段内で起動しているアプリケーションが、1Dカラービットコードの画像データ上にソフトウェア的にマスクする処理を行い、画像データを、マスクされた部分と、マスクされない部分と、に分ける。本実施の形態では、マスクされない部分を特に「狭小視野」という。本実施の形態における特徴事項の1つは、この狭小視野の画像だけを読み取り、デコードすることである。
【0048】
特徴事項2
本実施の形態において、狭小視野の位置は、デコード手段が画像上に視野枠で表示することによって利用者に提示される。視野枠の形状は、1Dカラービットコードの境界条件を満たさない部分を除外するような形状である必要がある。
【0049】
例えば、板状体の端面にマーキングされた1Dカラービットコードを読み取る場合には、短辺を1Dカラービットコードの幅よりも狭く設定した視野枠を用いることが好ましい。視野枠の内部に1Dカラービットコードの境界条件を満たさない部分が入らないようにするためである。この場合、視野枠の形状は、いわば幅の狭い直線状となる。この幅の狭い直線状の視野枠も、本願の特許請求の範囲に記載の「視野枠」の形状の好適な一例に相当する。
【0050】
このように直線状の1Dカラービットコードのうち、幅の狭い直線状の視野枠の内部に位置する部分のみを読み取れば、1Dカラービットコードの直列性を阻む部分を読み取り対象から除外することができる可能性が高い。この結果、1Dカラービットコードの直列性を阻む部分に影響されることなく、良好に1Dカラービットコードを読み取ることができ確率を向上させることができる。
【0051】
特徴事項3
また、本実施の形態における別の特徴事項は、1Dカラービットコードの切り出し動作及びデコード動作が、視野枠の長手方向(直線方向)の色彩変化のみに着目して行われる点である。
【0052】
なお、本実施の形態において、「切り出し」とは、直線状の視野枠内の色彩配列(色彩領域群)から1Dカラービットコードを構成するセル群を検出して、取り出すことをいう。また、本実施の形態において、「デコード」とは、取り出した1Dカラービットコードを構成するセル群に付された色彩の配列順を認識し、その認識した配列順からデータを出力することをいう。
【0053】
(2)従来の読み取り方法
従来の読み取り方法では、キャプチャした画像において「各セルは1個又は2個の他のセルと接する」という境界条件を満たすセルを追跡し、1Dカラービットコードを読み取っていた。しかし、1Dカラービットコードのごく一部が汚れや印刷ミス、ノイズ等によって境界条件を満たさなくなると1Dカラービットコード全体が読み取れなくなる場合もあった。
【0054】
図1には、本実施の形態における1Dカラービットコード読み取り方法の原理図が示されている。この図中には、11個の色彩領域14群が示されている。これら11個の色彩領域14群のうち、9個の色彩領域(色彩領域14a、14b、14c、14d、14f、14g、14h、14i、14j)は、図1の左から右に向かって直列に配列されている。これら9個の色彩領域14a、14b、14c、14d、14f、14g、14h、14i、14jには、それぞれR、G、B、R、B、R、G、R、Bが付されている。これら9個の色彩領域14群は1Dカラービットコード10の構成セルであり、各セル間の色彩の変化がデータを表す。
【0055】
残りの2個の色彩領域14e、14kは、それぞれ{G}、{R、G、Bのいずれでもない色彩(Q)}である。これら2個の色彩領域14e、14kは、1Dカラービットコード10の構成セルではない。なお、11個の色彩領域14群の周囲には、1Dカラービットコード10がマーキングされた被印物の表面そのものが写っている。被印物表面が写った部分は、1Dカラービットコード10と(図1中には示されていない)周囲の1Dカラービットコードではない領域とを区分けする役割を担う。
【0056】
ところで、1Dカラービットコード10の構成色が付されている10個の色彩領域のうち、色彩領域14b、14d、14f、14g、14h、14iは、3個以上の他の色彩領域と接する。1Dカラービットコード10の構成セル群のうち一部のセルが3個以上の他のセルと接すると、セルが連なる方向が2つ以上存在することとなり、セルの直列性が阻まれる。
【0057】
従来の1Dカラービットコードの切り出しアルゴリズムでは、「各セルは1個又は2個の他のセルと接する」という境界条件を満たす必要があるが、これら色彩領域14b、14d、14f、14g、14h、14iは3個以上の他のセルと接するため、この境界条件を満たさない。そのため、従来の切り出しアルゴリズムを利用した読み取り方法では、1Dカラービットコード10は切り出しの対象とはならなかった。
【0058】
1Dカラービットコードのごく一部が汚れや印刷ミス、ノイズ等によって境界条件を満たさないために1Dカラービットコード全体が読み取れなくなるのは妥当ではない場合も多い。1Dカラービットコードのごく一部に汚れ等があっても、その汚れ等を読み取り対象から除外して1Dカラービットコードを読み取れれば、非常に便利である。
【0059】
本実施の形態では、このように1Dカラービットコードのごく一部に汚れ等があっても1Dカラービットコードを読み取れる可能性が高い読み取り方法である。
【0060】
(3)本実施の形態に係る読み取り方法の原理
(3−1)読み取り装置
本実施の形態における読み取り装置を図2に基づいて説明する。図2には、1Dカラービットコードのデコードを行うデコード手段16が示されている。デコード手段16にはキャプチャ手段18が接続されている。このキャプチャ手段18は、図2では三脚上に固定されており、被印物20群がキャプチャ手段18の前を次々に移動している。キャプチャ手段18は、被印物20群にマーキングされた各1Dカラービットコード22をキャプチャし、その画像データをデコード手段16に送信する。なお、キャプチャ手段18は固定される必要はなく、例えば利用者がキャプチャ手段18を持ちながら各1Dカラービットコード22をキャプチャすることも好ましい。
【0061】
(3−2)読み取り方法
デコード手段16は、1Dカラービットコード22をデコードする所定のアプリケーションを起動している。デコード手段16の画面には、キャプチャ手段18から受信した画像データ24が写し出されている。デコード手段16は、画像データ24上にソフトウェア的にマスクする処理を行い、画像データ24を、マスクされた部分と、マスクされない部分と、に分ける。本実施の形態では、マスクされない部分を狭小視野と呼ぶ。デコード手段16は、利用者の指示に従って画面データ上に狭小視野の位置を視野枠26で表示する。本実施の形態では、視野枠の内部の画像を狭小画像という。
【0062】
上述した図1には、直列状にセル群が配列して成る1Dカラービットコード10をキャプチャしたキャプチャ画像12が示されている。まずは、最も簡単な配置の例として、直列状の1Dカラービットコード10を視野枠Bで読み取る方法を説明する。
【0063】
デコード手段は、視野枠Bでキャプチャ画像12の一部を取り出すと、左から右に向かって「色彩領域14a→14b→14c→14d→14f→14g→14h→14i→14j」の順に並ぶ狭小画像を得る。次に、デコード手段は、この狭小画像中の各画素の値に基づいて狭小画像を複数の色彩領域に分割する。そして、狭小画像の左端から右端至るまでに、{Rの色彩領域}、{Gの色彩領域}、{Bの色彩領域}、{Rの色彩領域}、{Bの色彩領域}、{Rの色彩領域}、{Gの色彩領域}、{Rの色彩領域}、{Bの色彩領域}、がこの順に存在することを認識する。
【0064】
デコード手段は、狭小画像中の色彩領域14群について「各セルは他の1個又は2個のセルと接する」という境界条件を満たすかどうか判断する。図1では、視野枠Bの短辺が色彩領域14群の(図中の縦方向の)長さよりも短く設定されているので、視野枠B内の狭小画像中の色彩領域14群は境界条件を満たす。
【0065】
次に、デコード手段は、狭小画像が1Dカラービットコード10であると想定して各色彩領域ごとに色彩情報を生成する。色彩情報とは、色彩領域に割り振られた番号(ID)と、色彩を表す情報と、前方向に隣接する色彩領域の番号と、後方向に隣接する色彩領域の番号と、が記述された情報である。視野枠Bで取り出した狭小画像中には、9個の色彩領域が存在するので、9個の色彩情報が生成される。なお、境界条件が満たされないときは、デコード手段は色彩情報を作成せず、デコード手段は、キャプチャ手段から受信する次の画像データに対して同様の処理を行う。
【0066】
図1においては、1Dカラービットコードのスタートは左端の色彩領域14aであり、エンドは右端の色彩領域14jである。従って、図1においては、色彩領域の左に隣接する色彩領域が前方向に隣接する色彩領域であり、右に隣接する色彩領域が後方向に隣接する色彩領域である。従って、デコード手段は、視野枠Bで取り出した狭小画像に基づいて、「1、R、(なし)、2」、「2、G、1、3」、「3、B、2、4」、「4、R、3、5」、「5、B、4、6」、「6、R、5、7」、「7、G、6、8」、「8、R、7、9」、「9、B、8、(なし)」、という色彩情報を生成する。これら9個の色彩情報は1個の色彩配列情報を構成する。
【0067】
この後、デコード手段は、生成した色彩配列情報が1Dカラービットコード10の色彩の配列を表すとみなして、この色彩配列情報に基づいて1Dカラービットコード10のデコードを行い、データを出力する。
【0068】
本実施の形態の読み取り方法によれば、たとえ1Dカラービットコードの一部に汚れ等があり一部が1Dカラービットコードの境界条件を満たしていなくても、デコード手段は、残りの境界条件を満たしている部分のみを読み取るので、従来のデコードアルゴリズムを利用して読み取れる可能性が飛躍的に高まる。
【0069】
なお、本実施の形態においては、デコード手段は、特許請求の範囲に記載の狭小画像取り出し手段、及び分割手段、色彩配列情報生成手段、の好適な一例に相当する。
【0070】
(3−3)視野枠について
視野枠の短辺の長さ
上述したように、本実施の形態における読み取り方法では、狭小画像だけを読み取ることを特徴の1つとする。従って、視野枠の短辺の長さは、狭小視野に境界条件を満たす部分のみが入る長さであることが好ましい。一般的には、視野枠の短辺方向(幅方向)の長さが短ければ短いほど、視野枠の内部に1Dカラービットコードの境界条件を満たさない部分が入りにくくなり、デコード手段が1Dカラービットコードを読み取れる確率が高くなる。従って、本実施の形態では、視野枠の短辺の長さは、キャプチャ画面上で最短の長さである1ピクセル又は数ピクセル程度に予め設定されている。
【0071】
デコード手段は、視野枠内部の狭小画像が境界条件を満たすか否か判定し、判定結果をインジケーターで利用者に提示する。狭小画像が境界条件を満たす場合には、デコード手段はその狭小画像に基づいてデコードを行う。
【0072】
狭小画像が境界条件を満たさない場合には、利用者は、提示された判定結果と、狭小画像と、キャプチャ画像と、を見ながら、狭小画像が境界条件を満たすように種々の操作を行うことができる。
【0073】
視野枠の短辺を1ピクセル又は数ピクセル程度のわずかなピクセル数に設定すると、狭小画像のS/N比が低くなる。その結果、デコード手段は、デコードの際に視野枠の内部に存在するノイズ等の影響を強く受け、正確にデータを出力できない場合も予想される。
【0074】
そこで、利用者の指示に従ってデコード手段がメディアンフィルタなどを利用して狭小画像中のノイズに対して適当な処理を施すことによって、ノイズの影響が出力されるデータに及ぶのを防止する。この結果、視野枠の短辺がわずか数ピクセル程度にまで短く設定された場合でも、正しくデコードを行える可能性が高まる。
【0075】
視野枠の長辺の長さ
視野枠の長辺の長さは、予めデコード手段に設定された2つのタイプのうちいずれかが利用者によって選択される。
【0076】
一方のタイプは、視野枠の長辺の長さが1Dカラービットコードの長さよりも長い狭小視野である。他方のタイプは、視野枠の長辺の長さが1Dカラービットコードの長さよりも短い視野枠である。
【0077】
図1には、前者のタイプの視野枠Aと、後者のタイプの視野枠Bと、が示されている。視野枠Aは、1Dカラービットコード10に対して十分に長いものの例である。視野枠Aの長手方向の両端は下地の領域にある。一方、視野枠Bは、1Dカラービットコード10よりも短く、その長手方向の両端が端点セルの領域内にある例である。色彩領域14aと視野枠Bとが重なる領域よりも色彩領域14aが十分長い。また他方の端点の色彩領域14jと視野枠Bとが重なる領域よりも色彩領域14jが十分長い。すなわち、言い換えれば、視野枠Aは被印物表面(Qz)がある場合の例である。視野枠Bは被印物表面(Qz)がない場合の例である。
【0078】
まず、原則的には、視野枠Bが選択される。視野枠Bで切り出した狭小画像中の色彩領域群は全て1Dカラービットコードの構成色の色彩領域だからである。しかし、1Dカラービットコードが視野枠Bよりも長く、視野枠Bの内部に1Dカラービットコードを構成する色彩領域が入りきれない場合には、視野枠Aを選択してもよい。利用者は、1Dカラービットコードの「切り出し」やすさや或いは「デコード」のしやすさを考慮して、適宜、視野枠A又はBのいずれかを選択することができる。
【0079】
視野枠Bでキャプチャ画像12の一部を取り出すと、左から右に向かって「色彩領域14a→14b→14c→14d→14f→14g→14h→14i→14j」の順に並ぶ狭小画像を得る。この狭小画像には、セル群の直列性を乱す部分は含まれていない。
【0080】
また、視野枠Aでキャプチャ画像12の一部を取り出すと、左から右に向かって「被印物表面→色彩領域14a→14b→14c→14d→14f→14g→14h→14i→14j→被印物表面」の順に並ぶ狭小画像を得る。この狭小画像にも、セル群の直列性を乱す部分は含まれていない。
【0081】
なお、視野枠の長辺の長さは、原則的には、デコード手段が1Dカラービットコードの読み取り動作を行う前に予めBに設定されているが、デコードする度に利用者がデコード手段の画面上で適宜視野枠のタイプを選ぶようにしてもよい。
【0082】
このように、本実施の形態に係る読み取り方法によれば、セル群の直列性を乱す部分を読み取り対象から除外して、残った部分だけを読み取るので、セル群の直列性を乱す部分の影響を受けることなく1Dカラービットコードを読み取ることができる。
【0083】
視野枠の個数
上述した図1及び図2では、1個の視野枠を利用して1個の狭小画像を切り出す例を示した。本実施の形態では、視野枠の位置と、1Dカラービットコードの位置と、が一致する必要がある。しかしながら、キャプチャした画像中の1Dカラービットコードが、画面上に設定されたただ1個の視野枠の位置と一致する可能性は必ずしも高くない。
【0084】
そこで、本実施の形態では、視野枠の個数を増やして、例えば図10(2)に示されるように5個の視野枠を設定し、1個のキャプチャ画像から5個の狭小画像を切り出すことも好ましい。位置が異なる複数の視野枠で同時に1個の1Dカラービットコードの検出を行えば、1個の1Dカラービットコードに対して複数の異なる狭小画像が切り出される。切り出された狭小画像が複数あれば、読み取る候補が複数に増える。複数ある狭小画像のうちいずれか1個の狭小画像が1Dカラービットコードの境界条件を満たしさえすれば、デコード手段は1Dカラービットコードをデコードすることができるので、利用者にとって利便性が飛躍的に高まる。
【0085】
キャプチャ画面そのものが視野枠である場合
上述した例では、デコード手段が画像データ上にマスクをかけて、画像データの一部を視野枠で取り出す方法を説明した。一方、画像データの一部を取り出すのではなく、狭い視野の画面を備えた読み取り装置を用いてもよい。このようにすることによっても、セルの直列性を阻む部分の影響を受けずに1Dカラービットコードを切り出すことができる。
【0086】
(4)ノイズの処理方法
上述したように、本実施の形態における読み取り方法は、視野枠を利用してキャプチャ画像の一部を取り出し、その取り出した狭小画像に基づいてデコードを行うことを特徴の1つとする。狭小画像はキャプチャ画像よりも小さい画像の画像データなので、画像データから得られる情報量が少ない。そのため、狭小画像のS/N比はキャプチャ画像のそれよりも小さいので、本実施の形態における読み取り方法はノイズに弱くなる場合もある。
【0087】
そこで、狭小画像中に混在するノイズを処理する方法を説明する。
【0088】
(4−1)色彩領域の長さを利用する処理方法
図3には、1Dカラービットコードのキャプチャ画像の一部を狭小視野で切り出した狭小画像28が示されている。図3に示されるように、狭小画像28には、Rの色彩領域、Gの色彩領域、Qの色彩領域、Bの色彩領域、Rの色彩領域、Bの色彩領域、Qの色彩領域、Rの色彩領域、Gの色彩領域、Qの色彩領域、Gの色彩領域、の11個の色彩領域がこの順に存在する。
【0089】
デコード手段は、この狭小画像28の左端から右端に至る各色彩領域に基づいて、「1、R、(なし)、2」、「2、G、1、3」、「3、Q、2、4」、「4、B、3、5」、「5、R、4、6」、「6、B、5、7」、「7、Q、6、8」、「8、R、7、9」、「9、G、8、10」、「10、Q、9、11」、「11、G、10、(なし)」という色彩情報を生成する。これら11個の色彩情報は、1個の色彩配列情報を構成する。
【0090】
図3では、さらに、デコード手段は、画像28の左端から右端に至るまでの各色彩領域の狭小画像の長手方向の長さを測り取り、その長さを各色彩情報に追記する。長さの情報を利用して、ノイズから生成された色彩情報を後で除去するためである。長さを追記した後の色彩情報は、色彩領域に割り振られる番号(ID)、色彩の情報、前方向に隣接する色彩領域の番号、後方向に隣接する色彩領域の番号、長さ、が記述された情報となる。
【0091】
画像28の左端から右端に至る各色彩領域の長さは、それぞれ、10、7、4、10、1、5、3、4、8、2、5、である。従って、各長さを追記した後の各色彩情報は、それぞれ、「1、R、(なし)、2、10」、「2、G、1、3、7」、「3、Q、2、4、4」、「4、B、3、5、10」、「5、R、4、6、1」、「6、B、5、7、5」、「7、Q、6、8、3」、「8、R、7、9、4」、「9、G、8、10、8」、「10、Q、9、11、2」、「11、G、10、(なし)、5」となる。
【0092】
ノイズの種類
狭小画像28には、2つのタイプのノイズが含まれている。
【0093】
第1タイプのノイズは、1Dカラービットコードの構成色以外の色彩が付され、かつ、長さが基準よりも短い色彩領域である。狭小画像28では、色彩領域の長さの最大値10を基準値としている。長さが基準値以上である色彩領域は、2個の1Dカラービットコードに挟まれた領域である。
【0094】
第2タイプのノイズは、1Dカラービットコードの構成色の色彩が付され、かつ、長さが非常に短い色彩領域である。狭小画像28では、長さが1である色彩領域を非常に短いとみなしている。
【0095】
図3の1Dカラービットコードの本来の色彩の配列は、「R→G→B→R→G」であるが、上述した2種類のノイズが混在した結果、本来の色彩の配列とは異なる色彩の配列を表す色彩配列情報となっている。そのため、デコード手段が上記色彩配列情報をデコードしようとしても、正しくデコードできない場合がある。
【0096】
そこで、本実施の形態では、以下に述べる2つのステップによって、上記2種類のノイズを除去する。
【0097】
(第1ステップ)まず、デコード手段が第1タイプのノイズを表す色彩情報を無視(色彩配列情報から色彩情報を削除)し、その前後の色彩情報を詰めるという処理を行う。本実施の形態において、第1タイプのノイズは3個(「3、Q、2、4、4」と、「7、Q、6、8、3」と、「10、Q、9、11、2」)あるので、デコード手段は、これら3個色彩情報を色彩配列情報から削除する。
【0098】
次に、デコード手段は、削除した各色彩情報の前方向に隣接する色彩情報中の「後方向に隣接する色彩領域の番号」を、削除した色彩情報の後方向に隣接する色彩情報中の「色彩領域の番号(ID)」に修正する。例えば、色彩情報「3、Q、2、4、4」の前方向に隣接する色彩情報(修正前)は「2、G、1、3、7」であるが、これを「2、G、1、4、7」に修正する。
【0099】
また、デコード手段は、削除した色彩情報の後方向に隣接する色彩情報中の「前方向に隣接する色彩領域の番号」を、削除した色彩情報の前方向に隣接する色彩情報中の「色彩領域の番号(ID)」に修正する。例えば、色彩情報「3、Q、2、4、4」の後方向に隣接する色彩情報(修正前)は「4、B、3、5、11」であるが、これを「4、B、2、5、11」に修正する。
【0100】
本実施の形態では、第1ステップの処理によって、上記11個の色彩情報から、「1、R、(なし)、2、10」、「2、G、1、4、7」、「4、B、2、5、11」、「5、R、4、6、1」、「6、B、5、8、5」、「8、R、6、9、4」、「9、G、8、11、8」、「11、G、9、(なし)、5」という処理結果が得られる。
【0101】
ここまでが、第1ステップの処理内容である。
【0102】
(第2ステップ)次に、デコード手段は、上記第1ステップの処理結果のうち、長さが1以下の色彩領域を第2タイプのノイズであると判断し、第2タイプのノイズであると判断した色彩領域に対応する色彩情報を無視(色彩配列情報から色彩情報を削除)する。そして、その無視する色彩情報の前方向に隣接する色彩情報と後方向に隣接する色彩情報との間を詰める処理を行う。本実施の形態においては、「5、R、4、6、1」が第2タイプのノイズの色彩情報なので、これを削除する。また、デコード手段は、無視する色彩情報の前方向に隣接する色彩情報中の「後方向に隣接する色彩領域の番号」を無視する色彩情報の後方向に隣接する色彩情報中の「色彩領域の番号(ID)」に修正し、無視する色彩情報の後方向に隣接する色彩情報中の「前方向に隣接する色彩領域の番号」を無視する色彩情報の前方向に隣接する色彩情報中の「色彩領域の番号(ID)」にそれぞれ修正する。
【0103】
この結果、第2ステップの処理によって、上記第1ステップの処理結果から、「1、R、(なし)、2、10」、「2、G、1、4、7」、「4、B、2、6、11」、「6、B、4、8、5」、「8、R、6、9、4」、「9、G、8、11、8」、「11、G、9、(なし)、5」という処理結果が得られる。
【0104】
ここまでが、第2ステップの処理内容である。
【0105】
この後、デコード手段は、第2ステップの処理結果が、1Dカラービットコードの成立条件を満たしているか否かを判断する。上記第2ステップの処理結果が成立条件を満たしていれば、デコード手段は、上記第2ステップの処理結果は正しいものであると判断してデコードを行い、データを出力する。処理結果が成立条件を満たしていない場合には、デコード手段は、デコードした1Dカラービットコードは読み取り対象ではない他の1Dカラービットコードであると判断して、再度、1Dカラービットコードを撮像し直し、再度デコードを繰り返す。
【0106】
(4−2)2個の色彩領域が重なり合った部分の処理方法
一般的なカラー印刷では、色の境界部分をわずかに重ね合わせることが広く行われている。多少、版ズレしても、色の境界部分に隙間ができないようにするためである。濃い色と薄い色との組み合わせで2色刷りした場合には、2色が重ね合わさった部分は濃い色の領域の一部になることが多いので、特に色彩の混在を認識する必要はない。
【0107】
一方、薄い色(輝度が低い色)同士の組み合わせで2色刷りした場合には、色を重ね合わせた部分が別の色彩領域になってしまうことがある。例えば、薄い黄色と薄い青色との組み合わせで2色刷りした場合には、色を重ね合わせた部分が緑色の色彩領域になる。その結果、本来の色彩の配列「(薄い黄色の領域)−(薄い青色の領域)」ではなく、それとは異なる色彩の配列「(薄い黄色の領域)−(緑色の領域)−(薄い青色の領域)」であると認識されることとなるので、妥当ではない。
【0108】
色彩領域の境界部分の模式図が図4(1)に示されている。図4(1)の色彩領域30A(右斜線で示される部分)は1Dカラービットコード構成色のA色のセルであり、色彩領域30B(左斜線で示される部分)は1Dカラービットコード構成色のB色のセルである。各色彩領域30A、30Bの一部が重なると、一定の領域(図中の領域32)にA色及びB色の2つの色彩が混在することがある。
【0109】
領域32の色彩をソフトウェア的に通常の方法で認識すると、領域32の色彩はA色やB色とは異なる別の色彩C色(A色とB色とを混色するとC色になるものとする)であるとみなされる。C色が1Dカラービットコードの構成色ではない場合には、従来の読み取り方法では、領域32はノイズとして扱われてきた。C色を1Dカラービットコードのセルの1つとみなすと、本来の色彩の変化とは異なる色彩の変化を基にデコードすることとなり、不都合が生じる恐れがあるからである。
【0110】
しかし、C色が、セル構成色であるA色及びB色が混色した色彩であることが予め分かっている場合には、領域32をノイズと認識するのは必ずしも妥当ではない。特に、C色の領域の面積が広い場合に、そのC色の領域を2個の1Dカラービットコードに挟まれた領域であると判断するのは妥当ではない。そのC色の領域を、A色又はB色のどちらかの領域として扱うのが妥当である。
【0111】
そこで、本実施の形態では、以下に述べるステップを経て、C色である領域32を色彩領域30A又は色彩領域30Bのどちらかの領域の一部であるとみなすこととした。
【0112】
図4(1)下の図中に示される色彩領域30Aに割り振られた「色彩領域の番号」が3であるとき、色彩領域30群から、色彩情報群「3、A、2、4」、「4、C、3、5」、「5、B、4、6」が生成される。
【0113】
デコード手段は、この色彩情報群を修正することによって、利用者の指示に基づき「C色の色彩領域をA色の色彩領域の一部であるとみなす」又は「C色の色彩領域をB色の色彩領域の一部であるとみなす」処理を行う。
【0114】
具体的には、前者の処理を行う場合には、まず、デコード手段が、色彩の情報がCである色彩情報と、Aである色彩情報とを探す。本実施の形態では、色彩情報「3、A、2、4」と「4、C、3、5」が該当する。
【0115】
次に、デコード手段は、これら2つの色彩情報は本来1個のA色の色彩領域を構成するとみなして、「3、A、2、4」という色彩情報を生成し、2個の色彩情報「3、A、2、4」、「4、C、3、5」と置き換える。また、他の色彩情報中の番号を適宜ずらす修正を行う。
【0116】
この結果、上記色彩情報群「3、A、2、4」、「4、C、3、5」、「5、B、4、6」は、色彩情報群「3、A、2、4」、「4、B、3、5」と修正される。この色彩情報群に基づいてデコードを行うことによって、「C色である領域32を色彩領域30Aの一部であるとみなす」ことが実現される。
【0117】
なお、上述したように色彩配列情報を修正するのではなく、デコード手段が、キャプチャした画像を複数の色彩領域に区分けする前に、「C色の画素をA色の画素に置き換える」又は「C色の画素をB色の画素に置き換える」という画像処理を行うことも、好ましい実施の形態である。
【0118】
図4(2)の処理結果34aは、領域32内にあるC色の画素を、画像処理的にA色の画素に置き換えることによって、領域32を色彩領域30Aの一部であると見なした場合の例である。また、処理結果34bは、領域32内にあるC色の画素を、画像処理的にB色の画素に置き換えることによって、領域32を色彩領域30Bの一部であると見なした場合の例である。これら2個の処理結果34a、34bのいずれを基にしても、デコード手段は、上述したのと同一の色彩情報群「3、A、2、4」、「4、B、3、5」を生成する。
【0119】
以上述べた方法によれば、色彩の情報がAである色彩情報と、色彩の情報がBである色彩情報と、の間に色彩の情報がCである色彩情報が入らないので、問題なく1Dカラービットコードを正しく認識することができる可能性が高まる。
【0120】
(4−3)色彩の平均化処理
被印物にマーキングされた1Dカラービットコードをキャプチャすると、キャプチャ画像に背景が写り込んだり、1Dカラービットコードの色彩が微妙に変化して写ったりすることがある。その結果、キャプチャ画像に対して何ら画像の処理を行わなければ、デコード手段が、キャプチャ画像から1Dカラービットコードの本来の色彩の配列とは異なる色彩の配列を読み取り、正しいデータが得られない恐れがある。
【0121】
そこで、本実施の形態では、キャプチャ画像中の色彩を補正するために、キャプチャ画像に対して色彩の平均化処理を施す。色彩の平均化処理とは、具体的には、例えば、メディアンフィルター、輝度の平均化、シェーディング補正である。
【0122】
図5には、湾曲した板状体36の端面をキャプチャしたキャプチャ画像38が示されている。この板状体36の端面には、1Dカラービットコード40がマーキングされている。1Dカラービットコード40は、板状体36の端面に隙間なくマーキングされているので、板状体36の端面そのものはキャプチャ画像38中には写っていない。1Dカラービットコード40の周囲は、背景である。
【0123】
キャプチャ画像38中の2点鎖線は視野枠42の一部である。図中、2本の2点鎖線に挟まれた部分が視野枠42の内部である。図中の斜線部分は、視野枠42の内部にある背景又はノイズが写ったものであり、1Dカラービットコードを構成する色彩領域ではない。
【0124】
デコード手段は、キャプチャ画像38の一部を視野枠42で取り出す。次に、デコード手段は、例えば、メディアンフィルターを利用して、視野枠42中の斜線部分の色彩を1Dカラービットコードの構成色に置換する。この結果、視野枠42の内部は、全て1Dカラービットコードの構成色の色彩領域となる。
【0125】
この後、デコード手段は、上記置換を終えた後の狭小画像を複数の色彩領域に分割し、上記(2)で述べた読み取り方法を実行して、1Dカラービットコード40からデータを取得する。
【0126】
本実施の形態によれば、キャプチャ画像中にある程度ノイズが混在していても、デコード結果に影響を及ばない。そのため、利用者が多少ラフなキャプチャ動作を行っても、1Dカラービットコードを正しくデコードできるという非常に有益な効果が得られる。
【0127】
1Dカラービットコードと1次元バーコードとの比較
本実施の形態における1Dカラービットコードの読み取り方法では、直線状の視野枠で画像の一部を切り出すことを特徴の1つとする。一方、この直線状の視野(枠)でコードシンボルを読み取る方式は、すでに白黒バーコード(1次元バーコードとも呼ばれる)の読み取りにも使用されている。
【0128】
従って、直線状の視野を用いるという点では、従来の1次元バーコードの読み取り方法と、本実施の形態における1Dカラービットコードの読み取り方法とでは、視野枠を用いるという点で、一部共通する事項があるかも知れない。
【0129】
しかし、1Dカラービットコードと1次元バーコードとではデータの表し方が異なるため、ノイズ色彩の処理のために色彩の平均化処理(例えば画素の置換)ができるか否かという点で大きく異なる。
【0130】
図5中の1Dカラービットコード40が1次元バーコードであった場合には、不都合が生じる場合がある。1次元バーコードのデータは、縞模様状の線の太さによって表わされる。各線(白黒(明暗)シンボル)の幅が重要である。白黒(明暗)シンボルの境界部分に曖昧さがある場合や、白黒(明暗)シンボルの幅が変化した場合には、正しくデコードできない場合があるからである。
【0131】
一方、1Dカラービットコードは、視野画像の長手方向の色彩の変化を認識することでコード(データ)を返すので、1Dカラービットコードの各セルの長さは、返すデータとは関係がない。各セルの長さにとらわれずに、ノイズを除去する色彩の平均化処理を行うことが可能である。そのため、1Dカラービットコードは、狭小画像にある程度ノイズが混在することがあっても、そのノイズ色彩からの影響を軽減しデータを正しく出力することができる。
【0132】
(4−4)短辺方向色彩均一化処理
上述した色彩の平均化処理は、1Dカラービットコードの構成色と、1Dカラービットコードの構成色でない色彩と、を区別することなく、メディアンフィルタなどで処理する。もし、1Dカラービットコードの構成色でない色彩が存在することが予め分かっている場合には、キャプチャ画像からその色彩を除去した後に色彩の平均化処理を行うことがより一層好ましい。
【0133】
そこで、本実施の形態では、ノイズ対策として、狭小画像の短辺方向の画素を均一化する短辺方向色彩均一化処理を行うステップを設けている。この短辺方向色彩均一化処理は、色彩の平均化処理を行う前に行われる。
【0134】
図6(1)には、1Dカラービットコードをキャプチャしたキャプチャ画像44が示されている。この1Dカラービットコードは、湾曲した板状体46の端面に隙間なくマーキングされている。また、キャプチャ画像44内には、視野枠48の位置が示されている。視野枠48の内部には、1Dカラービットコードと背景とが写っている。なお、視野枠48の外部は、板状体46の輪郭のみが破線で示されている。
【0135】
1Dカラービットコードのセル構成色は、例えば、赤色、緑色、青色である場合が多い。一般的な画像信号の成分とも一致し、画像処理的に扱いやすいからである。背景の部分は、部屋の照明光との干渉や様々な物体への反射によって彩度・明度が低い色(例えば灰色)になることが多い。この背景の部分をQzと表す。
【0136】
なお、本節(4−4)における「Qz」は、上記(3)における「Qz」とは意味が異なる。(3)の「Qz」は、上記背景技術で述べた「クワイアットゾーン」を指す用語である。このクワイアットゾーンは、上記背景技術でも述べたように、1Dカラービットコードの領域とその周囲の1Dカラービットコードではない領域とを区分けするという役割を担う。一方、本節の「Qz」は、単に除く領域を指して用られている用語である。要するに、本節の「Qz」はいわゆる「ノイズ」を指す。
【0137】
デコード手段は、まず、キャプチャ画像44の一部を視野枠48で切り出す。
【0138】
次に、デコード手段は、キャプチャ画像44の各画素の値を読み取る。各画素の値を読み取った結果、全画素の個数に対してQzに相当する画素の個数が占める割合が、予め定められた基準よりも高い場合には、デコード手段は、1Dカラービットコードの周囲にQzが存在している可能性が高いと判断する。そして、狭小画像の短辺方向に並ぶ1列の画素群又は狭小画像の短辺方向と平行な方向に1本の細い直線を表現できる画素群ごとに、Qzの画素を色彩の平均化処理の対象から外し(無視し)、1Dカラービットコードの構成色である画素群のみを対象として色彩の平均化処理(例えばメディアンフィルタ)を行う。なお、狭小画像の短辺方向に並ぶ複数列の画素群又は狭小画像の短辺方向と平行な方向にやや太めの直線を表現できる画素群ごとに、上記処理を行うことも好ましい。本実施の形態では、この処理ステップを短辺方向色彩均一化処理と呼んでいる。
【0139】
デコード手段は、この短辺方向色彩均一化処理を、狭小画像の一方端から他方端に至るまでの全画素について行う。このことが、図6(2)に示されている。
【0140】
次に、デコード手段は、短辺方向色彩均一化処理後の各画素の値に基づいて狭小画像を複数の色彩領域に区分けする。図6(3)には、区分けした後の狭小画像50が示されている。狭小画像50には、Qzの色彩領域は存在しない。
【0141】
この結果、デコード手段は、Qzの色彩領域が存在しない又は非常に少ない画像に基づいてデコードを行うことができるので、より一層読み取り精度の高いデコード処理が可能になる。
【0142】
なお、図6(1)において、1Dカラービットコードを構成するセル群の境界部分の色彩が、隣接する色彩領域の色彩(A色とB色)の混色であると予め分かっている場合には、上記(4−2)で述べたように、「A色orB色」という値のくくりでQzの画素群を認識するという1Dカラービットコードに特有の均一化処理を行うことが好ましい。もし、A色とB色とを単に平均化(例えば各画素のRGB値をそれぞれ平均する等)すると、色彩の遷移が変わり、色彩変化を検知する処理との整合性が悪くなる恐れがあるからである。
【0143】
Qzの色彩が、1Dカラービットコードの構成色が混色した色彩であると予め分かっている場合には、それに適した方法で処理に合った方法で処理すれば、精度の高いデコード特性をより一層実現しやすくなる。
【0144】
応用例
短辺方向色彩均一化処理を利用すれば、狭小画像内にノイズや背景が一部に混在しても1Dカラービットコードを読み取ることができる。
【0145】
そこで、視野枠の内部にノイズや背景部分が入ることを前提に、デコード手段は、視野枠に一定の幅をもたせる(短辺を長くする)ことができる。多少の曲がりがある1Dカラービットコードを読み取る場合には、1Dカラービットコードの一部の構成セルが視野枠の内部に入りきれないことがある。本実施の形態では、デコード手段は視野枠の内部だけを読み取るので、視野枠の内部に入りきれなかった構成セルはデコードされない。1Dカラービットコードの配置と視野枠の形状がわずかに違うだけで、1Dカラービットコードを読み取れなくなるのは利用者にとって利便性が低くなる恐れがある。
【0146】
そこで、利用者の指示に従ってデコード手段が、視野枠の短辺の長さを長く調節し、狭小画像内のノイズや背景が除去されれば、デコード手段は、多少の曲がりのある1Dカラービットコードも読み取ることができる。その結果、デコード手段は、曲がった1Dカラービットコードの全体を含む画像を基に正しくデータを読み取れるので、利用者によって利便性が格段に向上するという非常に有益な効果が得られる。
【0147】
短辺方向色彩均一化処理と色彩量子化処理とを行う順序
本願発明者が先に出願した特願2007−130504号に記載した1Dカラービットコードの読み取り方法では、キャプチャした画像に対して、まず色彩量子化を行う。この色彩量子化とは、キャプチャした画像を複数の色彩領域に区分けする処理をいう。
【0148】
一方、本実施の形態における読み取り方法では、色彩量子化の後に短辺方向色彩均一化処理を行うというパターン(すなわち、先に色彩量子化を行う)と、短辺方向色彩均一化処理の後に量子化を行うというパターン(すなわち、後に色彩量子化を行う)とが考えられるが、以下に述べる理由により後者のパターンが典型的である。
【0149】
図6(1)に示されるように、キャプチャ画像には1Dカラービットコードと背景とが写り込む場合がある。1Dカラービットコードは、赤色、緑色、青色などのように、彩度・明度が高い色彩のセルから構成されることが多い。一方、背景の色彩は、明度・彩度の低い色彩(例えば灰色)になる場合が多い。これらの色彩の彩度・明度の高さを比較すると、1Dカラービットコードを形成するセルの色彩は、彩度、明度ともに、背景の色彩よりも高いと考えられる。
【0150】
背景部分の画素値と1Dカラービットコードの構成セル部分の画素値との間に大きな差があるので、先に短辺方向色彩均一化処理によってQzを除去してから色彩量子化を行った方が、1Dカラービットコードを形成する色彩セルを際立たせる目的では有利である。すなわち、本実施の形態では、「短辺方向色彩均一化処理→量子化」の順に処理することが好ましい。
【0151】
また、狭小画像の短辺方向の均一化処理だけでは短辺方向ノイズを完全に除去するのは困難な場合があるので、長手方向にノイズリダクション処理を行うことがより一層好ましい。
【0152】
従って、短辺方向色彩均一化処理における典型的な処理順序は、「キャプチャ」→「短辺方向均一化処理」→長手方向「ノイズリダクション処理」→量子化、となる。
【0153】
(5)1Dカラービットコードのマーキング方法及び読み取り方法の改良例
(5−1)1Dカラービットコードの構成色について
視野枠を利用しない従来の1Dカラービットコードの読み取り方法では、例えば、「各セルは1個又は2個の他のセルと接する」という境界条件を満たすセルを追跡していた。セルに接する隣のセルを探し、次にそのセルに接するまた隣のセルを探し、さらにそのセルに接する隣のセルを探し、と次々にセルを追跡する。もし、セルの連なりが2分岐し、隣接するセルの個数が3個以上等になる場合には、境界条件を満たさなくなるので、1Dカラービットコードの切り出しができなくなる。
【0154】
一方、本実施の形態では、デコード手段が狭小画像の長手方向(直線方向)の色彩変化のみに基づいて1Dカラービットコードを検知し、デコードをする。デコード手段は、狭小画像の短辺方向(幅方向)の色彩は、平均化処理(例えば画素の置換)によって均一であると見なし、狭小画像の短辺方向(幅方向)の色彩変化を無視している。また、本実施の形態に係る読み取り方法では、狭小画像の長手方向にあるセルが隣のセルであると仮定している。
【0155】
従って、狭小画像の長手方向(直線方向)の一次元的な色彩変化のみを捕らえればよいので、狭小画像の短辺方向(幅方向)に必ずしもQzを設ける必要はない。
【0156】
一方、狭小画像の長手方向には、1Dカラービットコードの先端及び終端を表すQzを設ける必要がある。狭小画像の長手方向に1Dカラービットコード以外の画像が写る場合があるので、1Dカラービットコードと1Dカラービットコード以外の画像との境界を明確にする必要があるからである。
【0157】
もちろん、「狭小画像の長手方向が1Dカラービットコードの画像で満たされる」と規定した場合には、狭小画像の長辺近傍にQzを設ける必要はない。視野枠の長手方向の長さは有限であるから、視野枠の内部に1Dカラービットコードのセル群がちょうど全て過不足無く収まれば、Qzは不要である。
【0158】
ここで、「過不足」の「過」とは、視野枠の長辺が、1Dカラービットコードよりも長い場合を指す。視野枠の長辺が1Dカラービットコードよりも長い場合には、1Dカラービットコードとそれ以外の画像との境界を明らかにするためにQzを設ける必要がある。一方、「不足」とは、視野枠の短辺が短すぎて視野枠の内部に1Dカラービットコードの一部しか入らない場合を指す。この場合には、視野枠の外部にある1Dカラービットコードも読み取り対象とはならない。従って、1Dカラービットコードのスタートを表すQzとエンドを表すQzとを設けて、それらを目印にして1Dカラービットコード全体を視野枠の内部に入れる必要がある。
【0159】
Qzが不要な場合には、Qzに利用されていた色彩をデータを表すために使用しても良い。Qzの色彩としては一般的に白色や黒色が予約されることが多いが、白色を1Dカラービットコードの構成色に加えて、{赤色、緑色、白色}の3色で1Dカラービットコードを構成しても良い。
【0160】
(5−2)白色を1Dカラービットコードの構成色の1つとした場合のマーキング方法
例1
A色、B色、白色、の3色を用いた1Dカラービットコードのマーキングは、現実の場面では、一般的に、まず広い範囲に白色を塗布し、その上にA色のセルとB色のセルを塗布することによって行われる。
【0161】
図7(1)は、被印物52の表面の模式図である。被印物52の表面の広範囲に、1Dカラービットコードの構成色であるWのインクを下地色として塗布して白色下地54が形成されたことが示されている。ここで、広範囲とは、視野枠よりも広いことをいう。なお、図7(1)中の斜線部分は背景色を示す。
【0162】
図7(2)は、構成セル56群(A色のセル及びB色のセル)を形成した後の被印物52の表面の模式図である。白色下地54上にA色のインク又はB色のインクが重ね塗りされ、構成セル56群が構成されている。構成セル56群を構成するA色のセル及びB色のセルは、それぞれ間隔を空けて形成されている。A色のセル及びB色のセルの各セルの間には白色下地54がそのまま露出しており、この露出部分が1Dカラービットコードを構成する白色セルとなる。
【0163】
図7(3)には、1Dカラービットコードのキャプチャ画像58が示されている。デコード手段のキャプチャ画面には視野枠60が予め表示されており、デコード手段は、視野枠60を利用して視野枠60の内部の狭小画像を切り出す。
【0164】
この図7(3)に示されるように、視野枠60内には、A色のセルと、B色のセルと、白色の部分、のみしか存在しない。このように、Qzに利用していた色彩を1Dカラービットコードの構成色の1つとして利用すれば、「視野枠内に1Dカラービットコードを過不足なく納める」という状況を容易に実現することができる。
【0165】
図7(4)には、切り出された狭小画像62が示されている。デコード手段は、狭小画像62に対して色彩の平均化処理又は短辺方向色彩均一化処理を行い、各画素に基づいて複数の色彩領域に分割する。そして、狭小画像62が1Dカラービットコードの成立条件を満たしていると判断した場合には、上記(2)で述べた読み取り方法でデコードを行う。
【0166】
例2
読み取りにさらに正確性を期するために、1Dカラービットコードの両端以外の白色セルに、再度白色をマーキングすることも好ましい。もし、A色のセル及びB色のセルをマーキングする際に、白色下地が汚れたとしても、汚れの上から白色セルをマーキングすれば正しく読み取れるという有利な効果が得られる。
【0167】
また、1Dカラービットコードの構成色が、{赤色}、{緑色}、{赤色及び緑色のいずれでもない色彩}、の3種類である場合には、1Dカラービットコードの両端以外の白色セルに黄色系統の色彩をマーキングすることによっても同様の効果が得られる。
【0168】
下地色を1Dカラービットコードの構成色として利用する効果
上述したように、本実施の形態では、白色を下地色として被印物表面に塗布し、下地が露出した部分を1Dカラービットコードの構成セルとして利用することも好ましい。このように下地の色彩を1Dカラービットコードの1つとして利用すれば、以下の3つの効果が得られる。
【0169】
1つ目の効果は、1Dカラービットコードの構成色として、無彩色系統(白、黒、グレーなど)の色彩や明色系統(白、明るい黄色等)の色彩を用いることができるという効果である。
【0170】
Qzの色彩としては、従来から、無彩色系統や明色系統の色彩が用いられることが多い。無彩色系統や明色系統の色彩は背景色として一般的で、安定的にキャプチャできる色彩なので、デコードの正確性の維持及び品質的に、無彩色系統や明色系統の色彩をQzに用いるのが最も好ましかったからである。
【0171】
セルの構成色は、Qzの色彩とは別に、無彩色系統や明色系統ではない色彩(例えばR(赤色)、G(緑色)、B(青色))を選択する必要があった。無彩色系統や明色系統ではない色彩は、色彩の区分けが白色等に比べて困難な場合がある。そのため、R、G、Bをセルの構成色とすると、正しくデコードができない場合もあった。
【0172】
一方、本実施の形態では、Qzを設ける必要がないので、従来Qzに割り当てていた無彩色系統の色彩や明色系統の色彩を、1Dカラービットコードの構成色として用いることができる。キャプチャ対象として安定的な色彩を1Dカラービットコードの構成色として用いることができるので、従来よりも読み取り正確性が向上する。
【0173】
2つ目の効果は、色彩の区分けがし易くなるという効果である。1Dカラービットコードの構成色としては、R(赤色)、G(緑色)、B(青色)の3つの色彩がしばしば採用される。これら3つの色彩は色の3原色であり、色の認識が容易だからである。しかしながら、これらR、G、Bの3種類の色相は、人間の視覚とカメラで測定する感度との間にズレがある場合がある。特に、カメラを用いて{G}と{B}とを区別することは比較的に難しい。GのセルとBのセルとの配列順を誤って認識することもあり得る。一方、{R}と{G}との区別や、{R}と{B}との区別、及び{R、G、B}と{W}との区別は、比較的に容易なケースが多い。
【0174】
そこで、Wを下地色として利用すれば、{R、G、B}と{W}との組み合わせで1Dカラービットコードを構成できる。カメラを用いて1Dカラービットコードを構成する色彩をより一層容易に区分けできるので、読み取り特性が格段に向上するという有益な効果が得られる。
【0175】
3つ目の効果は、1Dカラービットを付すのに必要な色彩の種類が減り、色彩の選定が極めて容易になるという効果である。3色をセル構成色とする従来の1Dカラービットコードでは、1Dカラービットコードを構成する3種類の色彩と、Qzを表す1色と、の合計4種類の色彩を必要としていた。一方、本実施の形態では、Qzを表すための色彩を特に設ける必要がない。この結果、1Dカラービットコードを付すために必要な色彩の種類を、4種類から3種類に減じることができたという有益な効果が得られた。また、1Dカラービットコードのマーキングがより一層簡便になるという効果も得られる。
【0176】
(5−3)切り出し用冗長セル
図7(3)において、視野枠60の長辺の長さが、白色にした下地部分(白色下地54)よりも長い場合には、非下地部分(白色下地54がマーキングされていない部分)も視野枠60の内部に入り、キャプチャされてしまう。非下地部分の色彩は不定であり、非下地部分そのものが何らかの色彩パターン(模様)をもっていることもあり得る。従って、この場合には、非下地部分をデコードの対象から除外することが好ましい。ここでは、切り出し用冗長セル68a、68bを用いて、非下地部分をデコードの対象から除外する(すなわち、1Dカラービットコードのみをデコードする)方法について述べる。
【0177】
図8には、板状体64が示されている。板状体64の端面の一部には、白色下地66がマーキングされており、白色下地66上にはさらに1Dカラービットコードのセル構成色のうち白色以外の色彩のセルがマーキングされている。こうして、図中に示されるように、左端から右端に向かって、切り出し用冗長セル群68a、1Dカラービットコード70、切り出し用冗長セル群68b、がこの順にマーキングされている。
【0178】
切り出し用冗長セル群68a、68bは、それぞれ5個のセル(白色のセルを含む)から構成され、同一の色彩の配列を表す。これら切り出し用冗長セル群68a、68bは、間に1Dカラービットコード70が存在することを示す。
【0179】
図9には、上記板状体64の端面の垂直上方から1Dカラービットコード70をキャプチャしたキャプチャ画像72が示されている。図9において、視野枠74の長辺の長さは、白色の下地66より長い。そのため、非下地部分(不定色)が視野枠内に入り、キャプチャされてしまう。このような場合でも、切り出し用冗長セル群68a、68bによって1Dカラービットコードの存在を示すことによって、1Dカラービットコードの切り出しを容易にすることができるのである。デコード手段は、予め設定された視野枠74の内部の画像が、1Dカラービットコードの成立条件を満たすと判断したとき、切り出し用冗長セル68aと69bとの間にあるセル群が1Dカラービットコード70の色彩の配列を表すと想定してデコードを行う。
本実施の形態によれば、1Dカラービットコードをマーキングする被印物そのものの色彩パターン(模様)に関わらず1Dカラービットコードを読み取ることができるので、1Dカラービットコードの使用用途が格段に広がる。
【0180】
(6)デコード手段の操作性の改良例
(6−1)視野枠の数・配置・形状のバリエーション
本実施の形態において、キャプチャした画像をデコード手段の画面に表示することは容易である。視野枠の内部の画像を表示することも容易である。視野枠で1Dカラービットコードを読み取る場合、利用者が、デコード手段のキャプチャ画面上で、キャプチャ画像と視野枠との双方の位置・範囲を同時に認識できるのが好ましい。キャプチャ画像と、視野枠の内部の画像と、の双方を同時に1個の画面に表示すれば、利用者にとって操作しやすく指示しやすいので都合がよい。また、視野枠をキャプチャ画像内に表示すれば、利用者にとってエイミングが容易で更に操作しやすくなる。
【0181】
図10には、視野枠の数・配置・形状のバリエーションの例が示されている。
【0182】
図10(1)は、1個のキャプチャ画面76に1個の直線状の視野枠78を設定した例である。本実施の形態における視野枠は、必ずしも直線状である必要はない。また、視野枠の数を1個に限定するものではない。1つのキャプチャ画面に視野枠が複数ある方が読み取り操作の面で好都合である場合には、キャプチャ画面に複数の視野枠を設定することもできる。1つのキャプチャ画面に視野枠が複数存在する場合には、各視野枠を平行に配列したり、角度を変えて配列する等、操作性向上のための数多くのバリエーションがあり得る。
【0183】
図10(2)のキャプチャ画面80は、5個の直線状の視野枠が平行に設けられた例である。1Dカラービットコードを読み取るためには1Dカラービットコードを構成するセル群の画像を視野枠に合わせる必要があるが、視野枠が複数個あれば、いずれかの視野枠が1Dカラービットコードに合えばよい。この結果、1Dカラービットコードを捕らえやすくなるので、利用者にとって操作が簡便になるという効果が得られる。
【0184】
図10(3)のキャプチャ画面82は、9個の直線状の視野枠が、3個1組でそれぞれ少しずつ角度を変えて設けられた例である。上述したように、1Dカラービットコードを読み取るためには視野枠の位置を1Dカラービットコードに合わせる必要があるが、角度も合わせる必要がある。しかし、1Dカラービットコードの角度を視野枠に合わせるのが容易でない場合もある。そこで、キャプチャ画面82のように、複数個の視野枠が角度を少しずつずらして設けられていれば、視野枠と1Dカラービットコードとの角度を合わせやすくなり、利用者にとって操作がより一層簡便になる。
【0185】
図10(4)のキャプチャ画面84は、「へ」の字型の1個の視野枠を配置した例である。なお、図10中に記載されている「異形」とは、直線状ではないという意味である。1Dカラービットコードが「へ」の字型にマーキングされている場合には、それに合わせて「へ」字型の視野枠を用いれば読み取りやすくなる。
【0186】
図10(5)のキャプチャ画面86は、「U」字型の1個の視野枠を配置した例である。キャプチャ画面84と同様に、1Dカラービットコードが「U」字型に配置されている場合には、視野枠の形状も1Dカラービットコードに合わせて「U」字型に設定すれば、切り出しやすくなり読み取りやすくなる。
【0187】
本実施の形態においては、視野枠で取り出す狭小画像が短辺方向と長手方向という方向性を有することが重要である。狭小画像の長手方向のみの色彩の変化に基づいてデコードするからである。狭小画像のいずれかの縁が曲線状であったり、短辺方向の幅が変化していても(一定でなくても)、狭小画像の2つの方向性(長手方向と短辺方向)が明確であれば読み取りが可能である。
【0188】
また、視野枠は、キャプチャ画面の視野内で固定されている必要はなく、デコード手段が、視野枠をキャプチャ画面中を上下に走査するように移動させたり、回転させたりすることも考えられる。本実施の形態において、デコード手段は、特許請求の範囲に記載の視野枠移動手段の好ましい一例に相当する。また、1つのキャプチャ画面上に、複数の視野枠があっても良い。また、視野枠の幅、長さなどを1Dカラービットコードの配置に合わせて変更することも好ましい。利用者が、視野枠の形状を1Dカラービットコードの幅・長さに合わせて変更できれば、好都合である場合が多々あるものと想定される。
【0189】
また、視野枠の数・形状のバリエーションの設定は、画像をキャプチャした後にソフトウェア的に行うことができる。利用者が、視野枠のバリエーションを自由に選んだり、任意に変化を加えることも可能である。
【0190】
(6−2)1Dカラービットコードの位置と視野枠の位置とを関連づける方法
キャプチャ画像内に、1個の1Dカラービットコードがマーキングされたタグが複数個ある場合、デコード手段が、タグごとに、1Dカラービットコードが表すデータと位置情報とを関連づけてキャプチャ画像上に提示すれば、利用者にとって利便性が向上する。視野枠を利用した読み取り方式では、読み取れた1Dカラービットコードの多くは、おおよそ平行に配置されているものであるケースが多いと想定される。キャプチャカメラを上下左右に動かして読み取る場合が多いからである。読み取れた複数の1Dカラービットコードの位置と、それらの1Dカラービットコードを読み取ったときの視野枠の位置とを関連付けて認識できれば、複数のタグ同士の位置関係も認識できるのでより一層好ましい。
【0191】
上記(6−1)で述べたように、利用者は、視野枠の位置をキャプチャ画像の中で自由に設定できる。また、その他に、以下に示すような多様な方法で視野枠の位置を設定することが考えられる。
【0192】
a.1Dカラービットコードを動画キャプチャしながら、キャプチャ映像内で視野枠を自動で移動(走査)させる。
【0193】
具体的には、連続的にキャプチャされる各画像上に、視野枠を、各画像ごとに少しずつ位置を移動させて設定しておき、視野枠と色彩配列コードの位置が合致しているいずれかのキャプチャ画像についてデコード処理を行えば、この処理を行うことができる。より具体的には、各画像に設定された視野枠のうち、視野枠内の色彩領域が、色彩配列コードを構成する色彩により構成されているものについて、その視野枠内の狭小画像を取り出し、デコードの対象とするのである。この場合に、各キャプチャ画像における視野枠の移動方法は、平行に移動させても良いし、回転移動させても良い。なお、視野枠の個数は、単数個であっても複数個であっても良い。
【0194】
b.一旦取り込んだ静止画像上で、視野枠を自動で走査させる。視野枠の個数は、単数個であっても、複数個であっても良い。
【0195】
c.キャプチャ画像内の所定の位置に視野枠を固定し、利用者が、カメラ本体を動かして動画キャプチャ視野全体を移動(走査)させる。視野枠の個数は、単数個であっても、複数個であっても良い。
【0196】
上記の方法であれば、タグが複数個あった場合でも、いずれのタグも読み取ることが可能である。
【0197】
しかしながら、上記a〜cの方法で視野枠の位置を設定してタグをキャプチャすると、その後の処理で、以下の3つの処理を行うことが困難になる場合がある。
【0198】
1.タグの位置関係の認識
キャプチャ画像上において、視野枠の位置とタグとの双方が移動するので、双方の位置関係を認識することが困難になる。また、複数のタグが存在する場合に、各タグの位置関係を認識することも困難になる。
【0199】
2.同一タグの区別
視野枠の位置が移動するので、1個のタグを複数回認識したということを判断することが困難になる。
【0200】
3.読み取りに失敗したタグの処理
読み取りに失敗したタグは、再度読み取りトライを行うのが望ましい。しかし、読み取りに失敗したタグの位置の追跡をしないので、視野枠が読み取れなかったタグを一度離れると、再度読み取りトライすることが困難になる。
【0201】
これら3つの処理を行うために、以下に述べる2つの方式を併用することが好ましい。
【0202】
方式1(タグの位置の認識)
方式1は、視野枠の位置情報を利用して、タグの位置を認識する方式である。
【0203】
デコード手段は、1Dカラービットコードをデコードできたときの視野枠(デコード視野)の位置情報をキャプチャ画像とリンクさせて(貼り付けて)記憶する。位置情報とは、視野枠の内部に存在する各画素の座標情報である。デコード手段は、1Dカラービットコードからデコード結果を得る度に、デコード結果と、デコードできたときの視野枠の位置情報とをキャプチャ画像とリンクさせて(貼り付けて)記憶する。複数回デコードできたときには、複数の位置情報がキャプチャ画像にリンクされることになる。
【0204】
この結果、デコードできた1Dカラービットコードの位置が全てキャプチャ画像にリンクさせて記憶されることになるので、デコード手段が、キャプチャ画像にリンクされた位置情報全てを読み取り、キャプチャ画面上にその位置を示す枠等を表示すれば、利用者にとっては、読み取れたタグの位置を全て認識することが容易である。
【0205】
方式2(同一タグの区別)
方式2は、デコード手段が上記方式1を実行して記憶した視野枠の位置情報に基づいて、同一タグであると判断した場合には、合わせて1つとしてカウントする方式である。同一のタグであるか否かの判断は、以下の2通りの考え方がある。
【0206】
第1の考え方は、「視野枠の幅の係数倍以上」を基準とする考え方である。デコード手段が新たに得た視野枠の位置情報と、デコード手段がすでに得ている視野枠の位置情報と、を比較して、新たな視野枠が前の視野枠に対して「視野枠の幅の係数倍以上」離間している場合には、それら視野枠の内部に写っているタグは同一でないと判定する。基準内であれば、デコード手段は、同一のタグを読み取ったと判定し、新たに得た位置情報及びデコード結果を破棄する。
【0207】
第2の考え方は、「予め定められた距離」を基準とする考え方である。第1の考え方と同様に、新たな視野枠と前の視野枠との間に、基準値以上の離間があれば、それらのタグは同一でないと判定する。基準内であれば、デコード手段は、同一のタグを読み取ったと判断し、新たに得た位置情報及びデコード結果を破棄する。
【0208】
利用者は、視野枠の幅の長さ、或いは読み取ろうとするタグの密集度などに合わせて、適宜いずれか又は双方の考え方を採用することができる。この結果、デコード手段は、利用者に対して読み取れたタグの位置を提示できるので、利用者にとって操作性が向上する。また、利用者は、読み取れたタグの位置を知ることによって、読み取れていないタグがどのタグであるかを知ることもできるので、利用者にとって操作性が格段に向上する。
【0209】
(7)1Dカラービットコードの追跡
1Dカラービットコードの最も基本的な読み取り方法では、色彩のみに基づいて、キャプチャ画像中の1Dカラービットコードの構成色の色彩領域を追跡し、1Dカラービットコードを切り出す。
【0210】
しかしながら、この色彩のみに基づく追跡方法では、1Dカラービットコードを追跡する方向が規制されないので、1Dカラービットコードの配置によっては、読み取りが困難な場合もあった。
【0211】
そこで、本願発明者は、1Dカラービットコードの追跡方向を規制した改良例を2つ開発した。
【0212】
改良例1は、上述したように、幅の狭い視野枠(上述した「U」字型の視野枠や「へ」字型の視野枠のように視野枠が曲線状に配置されている場合も含まれる)を利用した読み取り方法である。上述したように、この読み取り方法では、1Dカラービットコードのキャプチャ画像に視野枠をあてがうことによって、追跡方向を規制する。
【0213】
改良例2は、1Dカラービットコードの直線性を利用した読み取り方法である。1Dカラービットコードの配置はデータとは関係がないが、一般的に1Dカラービットコードは直線状にマーキングされる場合が多い。そこで、直線状にマーキングされた1Dカラービットコードを読み取る場合には、1Dカラービットコードの直線性を利用すればより一層簡単に追跡することができる。以下では、この改良例2の具体例を2つ説明する。
【0214】
追跡例1
図11には、1Dカラービットコードを含むキャプチャ画像88が示されている。図中の16個の色彩領域90a、90b、90c、90d、90e、…、90k、90k+1、90k+2、…、90n−1、90nが1Dカラービットコードを構成する。色彩領域90qは、1Dカラービットコードの構成色と同色の色彩領域であるが、1Dカラービットコードを構成しない。なお、色彩領域90群の周囲は、1Dカラービットコードの構成色ではない色彩の色彩領域である。
【0215】
本実施の形態では、初期条件として、(A)色彩領域90aが第1セルであることが既知である。色彩領域90aが「予め定められた位置にある画素」を含むので、色彩領域90aが1Dカラービットコードの第1セルであることは初めから既知である。(B)1Dカラービットコードを構成する各セルは、「各セルは1個又は2個の他のセルと接する」という境界条件に基づいてマーキングされている。(C)「1Dカラービットコードを構成するセル群は、急峻な曲がり方をしない」という規定に基づいてマーキングされている。デコード手段は、これら3個の規定を利用して、最も直線性の高い色彩範囲(色彩領域)を順番に追っていくことによって、1Dカラービットコードを追跡する。
【0216】
デコード手段は、まず、色彩領域90aに隣接する他の色彩領域の中から1Dカラービットコードの構成色の色彩領域を選択し、その色彩領域を1Dカラービットコードの第2セルであるとみなす。本実施の形態では、色彩領域90bが第2セルとなる。
【0217】
デコード手段は、同様に、1Dカラービットコードの構成色の色彩領域を次々に選択し、色彩領域90c、90d、90e、…、90k、90k+1を、それぞれ、第3セル、第4セル、第5セル、…、第kセル、第k+1セルであるとみなす。
【0218】
次に、デコード手段は、第k+2セルである色彩領域を追跡する。図11に示されるように、色彩領域90k+1セルは、色彩領域90k+2と、色彩領域90qと、その他周囲の色彩領域と、に接する。色彩領域90k+2と色彩領域90qは、ともに1Dカラービットコードの構成色の色彩領域であり、第k+2セルである色彩領域の候補が2個存在することになるので、上記(B)の規定だけでは追跡できない。そこで、デコード手段は、上記(C)の規定を利用して1Dカラービットコードを追跡する。
【0219】
図12には、図11中の枠92の内部を拡大した図が示されている。デコード手段は、まず、色彩領域90k+1、90k、90k+2、90qの各重心点94k+1、94k、94k+2、94qの位置を算出する。
【0220】
次に、デコード手段は、重心点94k+1と、各重心点94k、94k+2、94q、とを通る直線L(k)、L(k+2)、L(q)、を各重心点ごとに描く。
【0221】
次に、デコード手段は、直線L(k)と直線L(k+2)とが成す角α(k+2)と、直線L(k)と直線L(q)とが成す角α(q)と、を比較し、直線L(k)に対して最も直線性が高い直線を選択する。本実施の形態では、角α(k+2)の方が小さいので、デコード手段は、直線L(k+2)が最も直線性が高いと判断し選択する。
【0222】
次に、デコード手段は、直線L(k+2)上にある2個の重心点のうち、重心点94k+1ではない重心点94k+2が属する色彩領域90k+2を1Dカラービットコードの第k+2セルであると判断する。
【0223】
デコード手段は、さらに色彩領域90nに至るまで色彩領域を追跡する。この結果、本実施の形態によれば、1Dカラービットコードを構成する色彩領域群をより一層簡単に追跡し、デコードを行うことができる。
【0224】
追跡例2
図13には、板状体96が示されている。板状体96の端面には、図中左から右に向かって、端点セル98a、切り出し冗長セル群98b、データセル群98c、がマーキングされている。これら3個のセル群は1Dカラービットコード98を構成する。本実施の形態の特徴の1つは、端点セル98aが、他のセルよりも端面の長手方向に長く、他のセルよりも非常に大きい色彩範囲(領域)にマーキングされていることである。なお、端点セルは、スタートセルと呼ばれることもある。
【0225】
図14には、1Dカラービットコード98をデコード手段でキャプチャしたキャプチャ画像100が示されている。図中、1Dカラービットコード98の周囲に示される色彩領域群は、背景の模様を示す。
【0226】
本実施の形態では、視野枠を用いずに、通常に視野によって1Dカラービットコードをキャプチャし、読み取る。初期条件は以下の2つである。
【0227】
第1の条件は、端点セルは、予め定められた色彩を表し、キャプチャ画像内の予め決められた画像端に接して存在するという条件である。予め決められた画像端とは、キャプチャ画像の縁のうち、利用者が指定した縁をいう。なお、縁の一部であってもよい。本実施の形態では、端点セルは、キャプチャ画像100の左縁に接して存在すると条件付けされている。
【0228】
第2の条件は、端点セルから連続して切り出し冗長セル群が存在するという条件である。切り出し冗長セル群は4個のセルからなり、予め規定された色彩の配列を表す。
【0229】
利用者は、端点セル98aがキャプチャ画像100の左縁にかかるようにデコード手段を動かして1Dカラービットコード98をキャプチャする。上述したように、端点セル98aの色彩領域は非常に大きいので、端点セル98aの色彩領域をキャプチャ場面100の左端にかかるように移動させキャプチャすることは容易である。
【0230】
デコード手段は、キャプチャ画像100を各画素の値に基づいて複数の色彩領域に分割し、キャプチャ画像86の左縁に接する色彩領域群の画素の値に基づいて端点セル98aを探索する。端点セル98aに割り当てられた色彩と同一の色彩の色彩領域を見つけた場合には、その色彩領域は端点セル98aであるとみなす。
【0231】
次に、デコード手段は、端点セル98aに隣接する4個の色彩領域の中から、各画素の値に基づいて切り出し冗長セル群98bの第1セルを見つけ出す。また、さらに、デコード手段は、画素の値に基づいて切り出し冗長セル群98bの第2セル、第3セル、第4セルを次々に追跡する。
【0232】
次に、デコード手段は、キャプチャ画像100上で、端点セル98aと、切り出し冗長セル群98bを構成するセル群と、の位置関係を認識し、位置関係に基づいてキャプチャ画像100上の配列方向(角度)を算出する。
【0233】
次に、デコード手段は、上記追跡例1と同様にして、切り出し冗長セル群98bの配列方向に対して最も直線性が高い位置に存在する色彩領域を次々に選択し、データセル群98cを構成する色彩領域群を追跡する。1Dカラービットコード98のセル群の列は曲率が比較的に小さく、直線状に配列しているので、上記追跡例1で述べた方法によって1Dカラービットコード98を切り出すことができる。
【0234】
本実施の形態において、端点セル98aは、キャプチャ画像の視野端(画像端)に接するという初期条件があるが、画像端ではなく、例えば、キャプチャ画像の視野内の決められた位置に存在する画素を含む色彩領域を端点セルであると規定しても、問題なく1Dカラービットコードを切り出すことができる。この場合、その「決められた位置」を画面内に例えば「×」印等によって表示すれば、利用者が、端点セルを「決められた位置」に合わせやすくなるので、操作性が格段に向上する。また、「決められた位置」をキャプチャ画面内で自動的に走査するように移動させることによっても操作性の向上を図ることができる。具体的には、「決められた位置」をキャプチャ画像の視野内に複数定めておいて、いずれかの「決められた位置」が端点セルを表す色彩である場合に、そこを端点セルとみなす。その結果、ある1つの「決められた位置」に色彩配列コードの端点が位置しない場合でも、他のいずれかの「決められた位置」に端点が位置すれば、画像内から「自動」で端点セルを抽出し、色彩配列コードを切り出すことができる。なお、この処理は、特許請求の範囲における「複数の予め決められた位置の中から、予め決められた色彩の色彩領域を選択し、その選択した色彩領域を前記色彩配列コードのスタートセルであるとみなす」ことの好適な一例である。
【0235】
(8)1Dカラービットコードの改良例
(8−1)追記型1Dカラービットコード
例えば、複雑に各工程が入り組んだ製造工程などでは、その各工程単位毎に、製品にコードを付加することがしばしば望まれている。これは、製造された製品がどのような工程を辿ったか、簡単にかつ精度良く管理するためである。
【0236】
そこで、本発明者は、先に、同一色彩列上に複数のコードシンボル(1Dカラービットコード)を連続的にマーキングして構成される追記型1Dカラービットコードを開発した。
【0237】
具体的には、例えば、
(A)Qz色のセルと、Qz色ではない3種類のセルと、の4種類のセルからなる追記型1Dカラービットコードを開発した。この追記型1Dカラービットコードは複数の1Dカラービットコードから構成され、各1DカラービットコードはQz色ではない3種類のセルから構成されている。そして、各1Dカラービットコード間には、Qz色のセルが挿入されている。読み取りの際には、デコード手段が、Qzを目印にして1個の追記型1Dカラービットコードを複数の1Dカラービットコードに分ける。こうして、デコード手段は、複数の1Dカラービットコードを同時に読み取ることができる。
【0238】
ところがこの実施の形態では、図7等に基づいて上述したように、Qzの色彩が1Dカラービットコードのセルの構成色となる場合がある。この場合には、Qzのセルが、データを表すセルなのか又は1Dカラービットコードの切れ目を表すセルなのかを知ることができない可能性がある。そのため、(A)の1Dカラービットコードは本実施の形態には不向きであるかも知れない。
【0239】
(B)また、本発明者は、先に出願した特願2008−200624号において、追記型コードを開示した。この追記型コードは、複数の1Dカラービットコードから構成される。各1Dカラービットコードは、構成セル数と、スタートとエンドの色彩が予め決められている。そして、複数の1Dカラービットコードを連続してマーキングして、1個の追記型コードが構成される。読み取りの際には、デコード手段は、セルの色彩とセル数に基づいて、追記型コードを個々の1Dカラービットコードに区切って読み取ることができる。この追記型コードによれば、直列に別の1Dカラービットコードを付加していくことは有用である。
【0240】
そこで、本実施の形態では、この特願2008−200624号に記載の(B)の1Dカラービットコードの技術事項を、本実施の形態における1Dカラービットコードに当てはめた読み取り方法を説明する。
【0241】
例1
図15には、原初1Dカラービットコード102及び追記1Dカラービットコード104が示されている。
【0242】
本実施の形態では、「原初1Dカラービットコードを構成するセルの個数は10個である」と予め利用者によって規定されている。また、「原初1Dカラービットコードの両端部には、それぞれ1個の白色のセルが追加してマーキングされる」と予め規定されている。これら追記した白色のセルは、原初1Dカラービットコードのスタート又はエンドを表す端点セルである。
【0243】
また、本実施の形態では、「追記1Dカラービットコードを構成するセルの個数は5個である」と予め利用者によって規定されている。また、「追記1Dカラービットコードの両端に隣接してそれぞれ1個の白色のセルがマーキングされる」と予め規定されている。これら追記した白色のセルは、追記1Dカラービットコードのスタート又はエンドを表す端点セルである。
【0244】
また、本実施の形態では、「1個の原初1Dカラービットコードに1個以上の追記1Dカラービットコードを追記して直列1Dカラービットコードを構成する」ことが利用者によって予め規定されている。また、本実施の形態では、各1Dカラービットコード間には1個だけ端点セルが設けられると規定されている。2個の1Dカラービットコードに挟まれた端点セルは、隣接する一方の1Dカラービットコードのエンドを表す端点セルと、他方の1Dカラービットコードのスタートを表す端点セルと、の2つ役割を担う。
【0245】
いま、図15(3)に示されるように、セルの個数が24個である直列1Dカラービットコード106が被印物表面にマーキングされている。デコード手段は、この直列1Dカラービットコード106を含む画像をキャプチャし、上記(3)又は(4)に記載の読み取り方法によって色彩配列情報を生成する。本実施の形態では、直列1Dカラービットコード106は24個のセルから成るので、生成した色彩配列情報は24個の色彩情報から成る。なお、色彩情報とは、上述したように、色彩領域に割り振られた番号、色彩の情報、前の色彩領域の番号、後の色彩領域の番号、を含む情報である。
【0246】
デコード手段は、色彩情報の個数に基づいて、直列1Dカラービットコード106に含まれる追記1Dカラービットコードの個数を算出する。
【0247】
直列1Dカラービットコード106には、必ず1個の原初1Dカラービットコードが含まれる。従って、24個の色彩情報のうち、10個の色彩情報は原初1Dカラービットコードから得られた色彩情報である。また、他の2個の色彩情報は原初1Dカラービットコードの端点セルの色彩情報である。
【0248】
追記1Dカラービットコードは、5個のセルから成り、終端に端点セルが1個設けられている。従って、デコード手段は、直列1Dカラービットコード106に含まれる追記1Dカラービットコードの個数は、(24−10−2)/(5+1)=2個であることを算出する。
【0249】
例2
もし、原初1Dカラービットコード及び追記1Dカラービットコードの並び順が予め利用者によって定められていれば、デコード手段は、直列1Dカラービットコード中の各1Dカラービットコードの区切り位置も判定することができる。
【0250】
例えば、図15(3)の直列1Dカラービットコード106が、「直列1Dカラービットコードの左端が原初1Dカラービットであり、その右に次々と追記1Dカラービットコードが追記される」との規定に基づいてマーキングされていた場合には、デコード手段は、直列1Dカラービットコード106から生成した色彩配列情報のうち、2個目から11個目までの色彩情報が原初1Dカラービットコードの色彩情報であり、13個目から17個目までの色彩情報が追記1Dカラービットコードの色彩情報であり、19個目から23個目までの色彩情報がもう1つの追記1Dカラービットコードの色彩情報であることを判定することができる。
【0251】
例3
原初1Dカラービットコード及び追記1Dカラービットコードの並び順が決められていない場合には、各1Dカラービットコードの両端のセルに特有の色彩を付すことによって、各1Dカラービットコードの種類を区別することができる。
【0252】
図16には、原初1Dカラービットコード108と、追記1Dカラービットコード110と、直列1Dカラービットコードの例112群が示されている。
【0253】
原初1Dカラービットコードのセルの個数と、追記1Dカラービットコードのセルの個数と、については上で述べた例1と同様に利用者によって予め規定されている。
【0254】
本例3において特徴的な事項は、原初1Dカラービットコードの両端のセルは「A」であると規定され、追記1Dカラービットコードの両端のセルは「B」であると規定されていることである。これら規定を利用することによって、デコード手段は、直列1Dカラービットコード中の原初1Dカラービットコード及び追記1Dカラービットコードの配列順を判別することができる。
【0255】
図16には、直列1Dカラービットコードの例112群が示されている。まず、直列1Dカラービットコード112aに基づいて説明する。
【0256】
デコード手段は、直列1Dカラービットコード112aを含む画像をキャプチャし、上記(3)又は(4)で述べた読み取り方法によって、色彩配列情報を生成する。直列1Dカラービットコード112aは30個のセルから構成されるので、生成された色彩配列情報は30個の色彩情報から構成される。
【0257】
30個の色彩情報のうち、1番目から2番目までの色彩の情報は、「W」「A」である。「A」は原初1Dカラービットコードが始まることを示す。原初1Dカラービットコードは10個のセルから構成されるので、デコード手段は、2番目から11番目までの色彩情報が原初1Dカラービットコードの色彩情報を表すと判定する。11番目から12番目までの色彩の情報が「A」「W」であることから、11番までの色彩情報が原初1Dカラービットコードの色彩情報であると確認的に判定してもよい。
【0258】
次に、12番目から13番目までの色彩の情報は「W」「B」である。「B」は追記1Dカラービットコードを示す。追記1Dカラービットコードは5個のセルから構成されるので、デコード手段は、13番目から17番目までの色彩情報が追記1Dカラービットコードの色彩情報を表すと判定する。17番目から18番目までの色彩の情報が「B」「W」でることから、17番目までの色彩情報が追記1Dカラービットコードの色彩情報であると確認的に判定してもよい。
【0259】
以後、デコード手段は、同様にして色彩配列情報の終端の色彩情報に至るまで判定を行う。この結果、デコード手段は、直列1Dカラービットコード112aが、「原初1Dカラービットコード」、「追記1Dカラービットコード」、「追記1Dカラービットコード」、「追記1Dカラービットコード」をこの順に配列して成ると判定することができる。
【0260】
直列1Dカラービットコード112b、112c、112dについても、同様にして、デコード手段は、原初1Dカラービットコードと追記1Dカラービットコードの配列順を判定することができる。
【0261】
このように、本実施の形態によれば、各1Dカラービットコード間に、1Dカラービットコードを区分けするQz色の色彩領域を設けなくとも、直線状に複数個の1Dカラービットコードを直列配置することが可能である。この結果、物品に複数の1Dカラービットコードをマーキングしてもそれらを区別して認識することができるので、例えば、複数の工程からなる作業の管理等を容易に実行することが可能である。
【0262】
(8−2)データの密度向上
上記(5−2)において、Qzの色彩(Qz色)を1Dカラービットコードの色彩構成色(A色、B色)に加えて、合計3種類の色彩によってデータを表す例を示した。
【0263】
1Dカラービットコードは、その構成色の種類が多ければ多いほど、表せるデータの量が増え、データの密度を上げることができる。
【0264】
1Dカラービットコードのマーキングに使用される色彩の種類が上述した3種類よりも多い例として、本発明者がすでに出願した特願2007−130504号には、A色、B色、C色、Qz色の4種類の色彩を使用してマーキングされた1Dカラービットコードが示されている。この1Dカラービットコードでは、A色、B色、C色の3種類の色彩によってデータを表す。Qz色はデータを表さない。
【0265】
この特願2007−130504号において、A色、B色、C色が、例えばそれぞれ、R(赤色)、G(緑色)、B(青色)であった場合、一般的な画像信号の成分とも一致するので画像処理的に扱いやすい。また、利用する色彩が3種類であれば、1つ色彩当たりの色彩範囲を広く取れるので、実用上便利である。なお、色彩の種類をさらに多くすると、1色あたりの色彩範囲が狭くなるので、照明光やカメラ調整等によっては、各色彩のコンタミが生じやすくなり実用性が失われていく可能性がある。
【0266】
本実施の形態における読み取り方法では、上記(5−1)で述べたように、視野枠で読み取る部分を限定するので、Qzを設けなくてもよい場合がある。Qzを設ける必要がない場合には、Qzに予約していた色彩をデータを構成する色彩に加えて、A色、B色、C色、Qz色の4種類の色彩でデータを表すことができる。4種類の色彩を用いれば、3種類の色彩を用いる時よりも、さらにセル数あたりのデータ量を増やすことができる。
【0267】
図17の表114の上の行には、1Dカラービットコードの色彩の配列が示されている。この1Dカラービットコードの色彩の配列は、「W−A−b−W−A−W−A−C−B−W−C−B−C−W−C−b−C−W」である。表114には、この色彩の配列を、スタートと、データ部の各色彩と、エンドと、に分けて示されている。スタートは「W−A−b」、データ部は「W−A−W−A−C−B−W−C−B−C−W−C」、エンドは「b−C−W」である。また、表114の下の行には、1Dカラービットコードの色彩の配列と、データと、の関係が示されている。
【0268】
スタートの「W−A−b」のうち「b」は、直前の「A」の色彩と、「W−A−b」の後方のセル「W」の色彩と、が同色とならないようにするために挿入されるセルである。つまり、「b」の色彩は前後の色彩によって都度変わる。本実施の形態では、「b」は「A」と「W」とに挟まれているから、AでもなくWでもない色彩(すなわちB又はC)である。エンドの「b−C−W」のうち「b」も、同様に、「b−C−W」の前方のセル「C」の色彩と、が同色とならないようにするために挿入されるセルである。本実施の形態においては、「b」はCに挟まれているから、「b」は「C」ではない色彩(すなわちW又はA又はB)である。
【0269】
本実施の形態では、A色、B色、C色の3つの色彩は、それぞれ数値「0」、「1」、「2」を表すと定義されている。また、Qz(W)は、その直後の色彩が表す数値を表すと定義されている。
【0270】
これらの定義に基づいて、色彩の配列「W−A−W−A−C−B−W−C−B−C−W−C」をデコードすることによって、「000021221222」という3進数のデータが得られる。このことが、図17の表114の下の行に示されている。
【0271】
このように、本実施の形態によれば、従来1Dカラービットコードよりも、さらにデータの密度を上げることができるという有益な効果が得られる。
【0272】
(9)効果
図18(1)には、被印物の表面にマーキングされた1Dカラービットコード116が示されている。1Dカラービットコード116の周囲(図中の斜線で示される部分)はQzである。1Dカラービットコードのセルに不要な色彩領域が加わったり、一部の構成セルの並び方に乱れがあると、従来の読み取り方法では正確に読み取れない場合があった。
【0273】
特に図18(2)に示されるように、板状体118の端面にマーキングされた1Dカラービットコードをキャプチャした場合には、図18(3)に示されるように、キャプチャした画像に1Dカラービットコードの画像とともに背景の色彩パターンも写ることがある。この背景の色彩パターンは、1Dカラービットコードの読み取りを妨げる場合があるため、視野枠を用いない従来の通常の1Dカラービットコード読み取り手段では、読み取りが困難な場合があった。
【0274】
しかし、本実施の形態によれば、セルの並び方に乱れがある部分を読み取り対象から除外することができるので、例えキャプチャ画像に背景の色彩パターンが写り込んでも、容易に1Dカラービットコードの読み取りを行うことができる。
【符号の説明】
【0275】
10 1Dカラービットコード
12 キャプチャ画像
14a〜14k セル
16 デコード手段
18 キャプチャ手段
20 被印物
22 1Dカラービットコード
24 画像データ
26 視野枠
28 狭小画像
30A〜30C 色彩領域
32 領域
34a、34b 処理結果
36 板状体
38 キャプチャ画像
40 1Dカラービットコード
42 視野枠
44 キャプチャ画像
46 板状体
48 視野枠
50 狭小画像
52 被印物
54 白色下地
56 構成セル群
58 キャプチャ画像
60 視野枠
62 狭小画像
64 板状体
66 白色下地
68a、68b 切り出し用冗長セル
70 1Dカラービットコード
72 キャプチャ画像
74 視野枠
76 キャプチャ画面
78 視野枠
80、82、84、86 キャプチャ画面
88 キャプチャ画像
90a〜90e、90k、90k+1、90k+2、90n−1、90n、90q 色彩領域
92 枠
94k、94k+1、94k+2、94q 重心点
96 板状体
98 1Dカラービットコード
98a 端点セル
98b 切り出し冗長セル群
98c データセル群
100 キャプチャ画像
102 原初1Dカラービットコード
104 追記1Dカラービットコード
106 直列1Dカラービットコード
108 原初1Dカラービットコード
110 追記1Dカラービットコード
112a〜112d 直列1Dカラービットコード
114 表
116 1Dカラービットコード
118 板状体
A、B 視野枠
L(k)、L(k+2)、L(q) 直線
α(k+2)、α(q) 角度

【特許請求の範囲】
【請求項1】
色彩の遷移によってデータを表す色彩配列コードの読み取り方法において、
前記色彩配列コードを含む画像をキャプチャするキャプチャステップと、
前記画像内に予め設定された細長い視野枠の内部の狭小画像を取り出す狭小画像取り出しステップと、
前記狭小画像中の各画素の値によって前記狭小画像を複数の色彩領域に分割する分割ステップと、
前記各色彩領域ごとに、前記色彩領域の色彩と、前記狭小画像の一方端から他方端に至るまでの順番と、を記述した色彩配列情報を生成する色彩配列情報生成ステップと、
前記色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の順番及び色彩であるとみなして、前記色彩及び順番に基づいて前記色彩配列コードをデコードし前記データを出力するデコードステップと、
を含むことを特徴とする色彩配列コードの読み取り方法。
【請求項2】
色彩の遷移によってデータを表す色彩配列コードの読み取り方法において、
前記色彩配列コードを含む画像をキャプチャするキャプチャステップと、
前記画像内に予め設定された細長い視野枠の内部の狭小画像を取り出す狭小画像取り出しステップと、
前記狭小画像中の各画素の値によって前記狭小画像を複数の色彩領域に分割する分割ステップと、
前記各色彩領域ごとに、前記色彩領域の色彩と、前記狭小画像の一方端から他方端に至るまでの順番と、を記述した色彩配列情報を生成する色彩配列情報生成ステップと、
前記色彩配列情報のうち、前記色彩配列コードのスタートを示す切り出し用冗長セルの色彩が付された前記色彩領域を表す色彩情報と、前記色彩配列コードのエンドを示す切り出し用冗長セルの色彩が付された前記色彩領域を表す色彩情報と、の間にある色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の順番及び色彩であるとみなして、前記色彩配列情報に基づいて前記色彩配列コードをデコードし前記データを出力するデコードステップと、
を含むことを特徴とする色彩配列コードの読み取り方法。
【請求項3】
請求項1又は2に記載の色彩配列コードの読み取り方法において、
前記狭小画像取り出しステップは、前記画像内に1個又は複数個設定された前記視野枠の位置を、前記画像内で、利用者の指示に従って移動する第1の視野枠移動ステップ、
をさらに含み、
前記狭小画像取り出しステップは、前記視野枠移動ステップにおいて移動した視野枠によって前記狭小画像を取り出すことを特徴とする色彩配列コードの読み取り方法。
【請求項4】
請求項1又は2に記載の色彩配列コードの読み取り方法において、
前記狭小画像取り出しステップは、前記予め設定された視野枠を、キャプチャされた前記画像ごとに異なる位置に移動させる第2の視野枠移動ステップ、
をさらに含み、
前記異なる位置に設定された視野枠の内部の狭小画像が、前記色彩配列コードを構成する色彩によって構成されている場合に、その視野枠の内部の狭小画像を取り出すことを特徴とする色彩配列コードの読み取り方法。
【請求項5】
請求項4に記載の色彩配列コードの読み取り方法において、
前記視野枠は、前記画像ごとに平行な方向に異なる位置に移動することを特徴とする色彩配列コードの読み取り方法。
【請求項6】
請求項4に記載の色彩配列コードの読み取り方法において、
前記視野枠は、前記画像ごとに前記視野枠の中心点を軸として回転する方向に異なる位置に移動することを特徴とする色彩配列コードの読み取り方法。
【請求項7】
請求項4に記載の色彩配列コードの読み取り方法において、
前記視野枠は、前記画像ごとに平行な方向に、かつ、前記視野枠の中心点を軸として回転して移動することを特徴とする色彩配列コードの読み取り方法。
【請求項8】
請求項1又は2に記載の色彩配列コードの読み取り方法において、
前記狭小画像取り出しステップは、前記予め設定された視野枠を前記画像上において走査する第3の視野枠移動ステップ、
をさらに含み、
前記視野枠移動ステップにおいて走査する視野枠の内部の狭小画像が、前記色彩配列コードを構成する色彩で構成されている場合に、前記視野枠の内部の狭小画像を取り出すことを特徴とする色彩配列コードの読み取り方法。
【請求項9】
請求項8に記載の色彩配列コードの読み取り方法において、
前記視野枠は、前記画像上を縦方向又は横方向に平行に走査することを特徴とする色彩配列コードの読み取り方法。
【請求項10】
請求項8に記載の色彩配列コードの読み取り方法において、
前記視野枠は、前記視野枠の中心点を軸として回転する方向に走査することを特徴とする色彩配列コードの読み取り方法。
【請求項11】
請求項8に記載の色彩配列コードの読み取り方法において、
前記視野枠は、前記画像ごとに平行な方向に、かつ、前記視野枠の中心点を軸として回転して走査することを特徴とする色彩配列コードの読み取り方法。
【請求項12】
請求項1〜11のいずれか1項に記載の色彩配列コードの読み取り方法において、
前記視野枠は所定の幅と長さを有する形状であって、長手方向の一方が前記一方端であり、他方が前記他方端であり、前記長さが前記幅よりも長いことを特徴とする色彩配列コードの読み取り方法。
【請求項13】
請求項12に記載の色彩配列コードの読み取り方法において、
前記視野枠のいずれかの辺は、曲線であり、前記視野枠が曲線状に配置されていることを特徴とする色彩配列コードの読み取り方法。
【請求項14】
請求項12又は13に記載の色彩配列コードの読み取り方法において、
前記色彩配列情報生成ステップは、
さらに、前記狭小画像中の各色彩領域の前記狭小画像の長手方向の長さを測定し、測定した長さも前記各色彩領域ごとに記述した前記色彩配列情報を生成する長さ追記ステップと、
前記長さが所定の基準値より小さい場合、その色彩領域を表す色彩情報を前記色彩配列情報から削除するデータ削除ステップと、
その削除した色彩情報の前後に隣接する他の色彩情報をつめる色彩配列情報修正ステップ、
を含むことを特徴とする色彩配列コードの読み取り方法。
【請求項15】
請求項1〜14のいずれか1項に記載の色彩配列コードの読み取り方法において、
前記色彩配列情報中に、前記色彩配列コードを構成する構成色が混色した色彩の領域の色彩情報が存在し、その混色した色彩の領域に隣接する領域の色彩が前記構成色である場合に、その混色した色彩を、その色彩領域に隣接するいずれかの色彩領域の色彩であると見なす色彩見なしステップ、
を含むことを特徴とする色彩配列コードの読み取り方法。
【請求項16】
請求項1〜15のいずれか1項に記載の色彩配列コードの読み取り方法において、
前記狭小画像取り出しステップと、前記色彩配列情報生成ステップと、の間に、
前記狭小画像中の各画素の値を、その画素を含み、前記狭小画像の幅方向に伸展する画素列の平均値と置き換える均一化処理ステップ、
を含み、
前記色彩配列情報生成ステップは、前記均一化処理を行った後の前記狭小画像に基づいて前記色彩配列情報を生成することを特徴とする色彩配列コードの読み取り方法。
【請求項17】
色彩の遷移によってデータを表す色彩配列コードの読み取り方法において、
前記色彩配列コードを含む画像をキャプチャするキャプチャステップと、
前記画像中の各画素の値に基づき前記画像を色彩領域に分割する分割ステップと、
前記画像内の予め決められた位置にある画素を含む色彩領域が前記色彩配列コードのスタートセルであるとみなす第1のスタートセルみなしステップと、
前記スタートセルに隣接する他の色彩領域のうち、予め決められた色彩の色彩領域を前記色彩配列コードの第2セルであるとみなす第2セルみなしステップと、
第(k+1)セルの重心点と、前記第(k+1)セルに隣接する他の各色彩領域の各重心点と、を通る直線を前記各重心点ごとに描き、それら直線の中から、前記第(k+1)セルの重心点と、第kセルの重心点と、を通る直線に対して成す角が最も小さい直線を選択し、その選択した直線が通る2個の重心点のうち前記第(k+1)セルの重心点以外の重心点が属する色彩領域を前記色彩配列コードの第(k+2)セルであるとみなすセル選択ステップと、
前記スタートセルから前記第nセルに至るセル群であるとみなした前記各色彩領域ごとに、前記各色彩領域の色彩と、前記スタートセルから前記第nセルに至るまでの順番と、を記述した色彩配列情報を生成する色彩配列情報生成ステップと、
前記色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の色彩及び順番であるとみなして、前記色彩及び順番に基づいて前記色彩配列コードをデコードし前記データを出力するデコードステップと、
を含むことを特徴とする色彩配列コードの読み取り方法。(なお、kは1以上の自然数であり、nはkより大きい自然数とする。)
【請求項18】
色彩の遷移によってデータを表す色彩配列コードの読み取り方法において、
前記色彩配列コードを含む画像をキャプチャするキャプチャステップと、
前記画像中の各画素の値に基づき前記画像を色彩領域に分割する分割ステップと、
前記画像内の予め決められた画像端に接する色彩領域群の中から、予め決められた色彩の色彩領域を選択し、その選択した色彩領域を前記色彩配列コードのスタートセルであるとみなす第2のスタートセルみなしステップと、
前記スタートセルに隣接する他の色彩領域のうち、予め決められた色彩の色彩領域を前記色彩配列コードの第2セルであるとみなす第2セルみなしステップと、
第(k+1)セルの重心点と、前記第(k+1)セルに隣接する他の各色彩領域の各重心点と、を通る直線を前記各重心点ごとに描き、それら直線の中から、前記第(k+1)セルの重心点と、第kセルの重心点と、を通る直線に対して成す角が最も小さい直線を選択し、その選択した直線が通る2個の重心点のうち前記第(k+1)セルの重心点以外の重心点が属する色彩領域を前記色彩配列コードの第(k+2)セルであるとみなすセル選択ステップと、
前記スタートセルから前記第nセルに至るセル群であるとみなした前記各色彩領域ごとに、前記各色彩領域の色彩と、前記スタートセルから前記第nセルに至るまでの順番と、を記述した色彩配列情報を生成する色彩配列情報生成ステップと、
前記色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の色彩及び順番であるとみなして、前記色彩及び順番に基づいて前記色彩配列コードをデコードし前記データを出力するデコードステップと、
を含むことを特徴とする色彩配列コードの読み取り方法。(なお、kは1以上の自然数であり、nはkより大きい自然数とする。)
【請求項19】
請求項17に記載の色彩配列コードの読み取り方法において、
前記第1のスタートセルみなしステップにおける前記予め決められた位置は複数あり、
前記第1のスタートセルみなしステップは、前記複数の予め決められた位置のいずれかの位置の色彩が、予め決められた色彩である場合に、その色彩領域を前記色彩配列コードのスタートセルであるとみなすことを特徴とする色彩配列コードの読み取り方法。
【請求項20】
請求項18に記載の色彩配列コードの読み取り方法において、
前記第2のスタートセルみなしステップの前記予め決められた色彩は、前記色彩配列コードが付された物品の地色、又は、地色に対して前面を彩色した下地色であることを特徴とする色彩配列コードの読み取り方法。
【請求項21】
色彩の遷移によってデータを表す色彩配列コードの読み取り装置において、
前記色彩配列コードを含む画像をキャプチャするキャプチャ手段と、
前記画像内に予め設定された細長い視野枠の内部の狭小画像を取り出す狭小画像取り出し手段と、
前記狭小画像中の各画素の値によって前記狭小画像を複数の色彩領域に分割する分割手段と、
前記各色彩領域ごとに、前記色彩領域の色彩と、前記狭小画像の一方端から他方端に至るまでの順番と、を記述した色彩配列情報を生成する色彩配列情報生成手段と、
前記色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の色彩及び順番であるとみなして、前記色彩及び順番に基づいて前記色彩配列コードをデコードし前記データを出力するデコード手段と、
を含むことを特徴とする色彩配列コードの読み取り装置。
【請求項22】
色彩の遷移によってデータを表す色彩配列コードの読み取り装置において、
前記色彩配列コードを含む画像をキャプチャするキャプチャ手段と、
前記画像内に予め設定された細長い視野枠の内部の狭小画像を取り出す狭小画像取り出し手段と、
前記狭小画像中の各画素の値によって前記狭小画像を複数の色彩領域に分割する分割手段と、
前記各色彩領域ごとに、前記狭小画像の一方端から他方端に至るまでの順番と、前記色彩領域の色彩と、を記述した色彩配列情報を生成する色彩配列情報生成手段と、
前記色彩配列情報のうち、前記色彩配列コードのスタートを示す切り出し用冗長セルの色彩が付された前記色彩領域を表す色彩情報と、前記色彩配列コードのエンドを示す切り出し用冗長セルの色彩が付された前記色彩領域を表す色彩情報と、の間にある色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の色彩及び順番であるとみなして、前記色彩配列情報に基づいて前記色彩配列コードをデコードし前記データを出力するデコード手段と、
を含むことを特徴とする色彩配列コードの読み取り装置。
【請求項23】
請求項21又は22に記載の色彩配列コードの読み取り装置において、
前記画像内に1個又は複数個設定された前記視野枠の位置を、前記画像内で、利用者の指示に従って移動する視野枠移動手段、
を含み、前記狭小画像取り出し手段が、前記移動した視野枠によって前記狭小画像を取り出すことを特徴とする色彩配列コードの読み取り装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2011−103023(P2011−103023A)
【公開日】平成23年5月26日(2011.5.26)
【国際特許分類】
【出願番号】特願2009−256987(P2009−256987)
【出願日】平成21年11月10日(2009.11.10)
【出願人】(506226175)ビーコア株式会社 (39)
【Fターム(参考)】