説明

シンボルコード認識装置およびシンボルコード認識プログラム

【課題】 バーコード等のシンボルコードを認識するシンボルコード認識装置等に関し、帳票用紙等を読み込んで得た画像からシンボルコードを正確に抽出する。
【解決手段】 シンボルコードが記録された画像を構成する画素のうちの互いに平行な第1ピッチの各走査線上の画素の変化パターンに基づいて、該各走査線上の、シンボルコードに重なる一次元領域を抽出し、隣接する走査線上の一次元領域内の画素の変化パターンの類似性に基づいて隣接する走査線上の一次元領域を互いに統合することにより、画像上のシンボルコードが記録された二次元領域を抽出し、抽出された二次元領域に記録されているシンボルコードの内容を認識する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バーコード等のシンボルコードを認識するシンボルコード認識装置およびコンピュータにシンボルコードを認識させるシンボルコード認識プログラムに関する。
【背景技術】
【0002】
従来よりバーコード等のシンボルコードを読み取ってそのシンボルコードの内容を認識する、バーコードリーダ等のシンボルコード認識装置が知られている。また従来、読み取ったシンボルコードを正しく認識する様々な技術が提案されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−330906号公報
【特許文献2】特開平10−49622号公報
【特許文献3】特表平9−506197号公報
【特許文献4】特開2008−21009号公報
【特許文献5】特開2000−357205号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来、シンボルコードの存在があらかじめ分かっており、そのシンボルコードの領域のみ読み取った場合の正しい認識のための提案は見受けられる。しかしながら例えばA4サイズの帳票上のどこかにシンボルコードが印刷あるいは貼付されており、かつその帳票上にはシンボルコード以外にも様々な文字や図形が記録されている場合にそのシンボルコードの位置を如何にして高速かつ正確に特定するかが問題となる。特にノイズによる潰れや擦れなどで汚れた劣悪な画質の画像からであってもシンボルコードの位置を高速かつ正確に特定することが必要となる。また、そのような劣悪な画質のシンボルコードからその内容を正確に認識することも必要である。
【0005】
そこで、本件のシンボルコード認識装置およびシンボルコード認識プログラムの課題は、画像からシンボルコードを正確に抽出することにある。
【課題を解決するための手段】
【0006】
本件のシンボルコード認識装置は、抽出部と認識部とを有する。また、この抽出部は、第1抽出部と第2抽出部を有する。
【0007】
ここで、第1抽出部は、シンボルコードが記録された画像を構成する画素のうちの互いに平行な第1ピッチの各走査線上の画素の変化パターンに基づいて、各走査線上の、シンボルコードに重なる一次元領域を抽出する。
【0008】
また、第2抽出部は、第1抽出部で抽出された、隣接する走査線上の上記一次元領域内の画素の変化パターンの類似性に基づいてそれら隣接する走査線上の一次元領域を互いに統合することにより、画像上のシンボルコードが記録された二次元領域を抽出する。
【0009】
また、認識部は、抽出部で抽出された二次元領域に記録されているシンボルコードの内容を認識する。
【発明の効果】
【0010】
本件によれば、画像上からシンボルコードが記録されている二次元領域が正確に抽出され、その抽出された二次元領域に記録されているシンボルコードの内容が認識される。
【図面の簡単な説明】
【0011】
【図1】本件の一実施形態として動作するノートPCを含むシステム概要図である。
【図2】図1に示すシステムの内部構成図である。
【図3】第1実施形態のシンボルコード認識装置のブロック図である。
【図4】シンボルコードの一例を示した図である。
【図5】帳票の一例を示した模式図である。
【図6】走査線を示した図である。
【図7】認識部で採用される第2走査線を示す図である。
【図8】第2実施形態のシンボルコード認識装置のブロック図である。
【図9】図8に示すシンボルコード認識装置で実行される処理を示すフローチャートの前半部分を示した図である。
【図10】図8に示すシンボルコード認識装置で実行される処理を示すフローチャートの後半部分を示した図である。
【図11】走査線を示す図である。
【図12】候補確認処理を示す模式図である。
【図13】線幅比が規定値を満たすか否かの確認処理の説明図である。
【図14】キー検出処理の説明図である。
【図15】統合確認処理の説明図である。
【図16】統合情報の模式図である。
【図17】傾き算出処理の説明図である。
【図18】傾き候補統合部における処理の説明図である。
【図19】シンボルコードが斜めに記録されていたときの統合情報の模式図である。
【図20】シンボルデータの一例を示す図である。
【図21】シンボルデータ補正前のシンボルコードの一例を示した図である。
【図22】シンボルデータ補正後のシンボルコードの一例を示した図である。
【図23】マトリックス処理部における処理内容の説明図である。
【図24】マトリックス処理部における処理内容の説明図である。
【図25】ラインソート処理部における処理内容の説明図である。
【図26】認識結果判定部の処理内容の説明図である。
【図27】認識結果判定部における比較の優先順位を示した図である。
【発明を実施するための形態】
【0012】
以下、実施形態を説明する。
【0013】
図1は、本件の一実施形態として動作するノート型パーソナルコンピュータ(以下、「ノートPC」と略記する)を含むシステム概要図である。
【0014】
この図1にはノートPC1とスキャナ2が示されている。ノートPC1は、本体装置10と、その本体装置に対し開閉自在な表示装置20とを有し、本体装置10にはCPU(Central Processing Unit)、メモリ、記憶部といったプログラムの実行による演算処理を行なうのに必要な要素が備えられている。また、記憶部には、このノートPC1を本件のシンボルコード認識装置の一実施形態として動作させるための、一実施形態としてのシンボルコード認識プログラムが記憶されている。さらに、本体装置10の上面には、ユーザ操作を受けるキーボード110が配備されている。
【0015】
また、表示装置20は、表示画面210を有し、その表示画面210には本体部10からの指示に応じた画像が表示される。
【0016】
また、このノートPC1には、ポインティングデバイスの一種であるマウス3が接続されている。
【0017】
また、スキャナ2は、一部にシンボルコードを含む画像が記録されている帳票等からその画像を読み取って画像データを生成する。以下では、特に概念を分けて説明する必要のないときは、「画像データ」も「画像」と表現する。このスキャナ2はノートPC1に接続されており、このスキャナ2で読み取られた画像がノートPC1に入力される。
【0018】
ノートPC1では、記憶部に記憶されてシンボルコード認識プログラムが実行され、スキャナ2から画像が入力されると、このノートPC1では、その画像上のシンボルコードの領域が抽出されてそのシンボルコードの内容が認識される。
【0019】
図2は、図1に示すシステムの内部構成図である。
【0020】
ここにも、ノートPC1とスキャナ2が示されている。ノートPC1は、CPU11,メモリ12,記憶部13,操作部14,表示部15およびインタフェース16を有し、それらはバス17を介して互いに接続されている。
【0021】
CPU11は、プログラムを実行する中央演算装置である。
【0022】
メモリ12は、CPU11で実行されるプログラムが実行形式に展開されて記憶されるメモリである。また、このメモリ12は、CPU11で実行中のプログラムの作業エリアとしても使用される。
【0023】
記憶部13は、各種のプログラムやデータを不揮発的に記憶しておく、HDD(ハードディスクドライブ)等の大容量記憶部である。
【0024】
また操作部14は、ユーザから操作を受ける要素であり、図1に示すキーボード110やマウス3などを総称している。
【0025】
また、表示部15は、図1に示す表示装置20に備えられており、図1に示す表示画面210を有しCPU11からの指令を受けてその表示画面210上に画像を表示する要素である。
【0026】
さらにインタフェース16は、スキャナ2と接続されてスキャナ2で得られた画像(画像データとしての画像)を受信する要素である。
【0027】
図3は、第1実施形態のシンボルコード認識装置のブロック図である。
【0028】
このシンボルコード認識装置30は、図1,図2に示すノートPC1内でシンボルコード認識プログラムが実行されることによりそのノートPC1内に実現する機能を表わしている。
【0029】
このシンボルコード認識装置30は、抽出部31と認識部32とを有し、さらに、抽出部31は、第1抽出部311および第2抽出部312を有し、認識部32は、補正部321、第1認識部322、第2認識部323、および統合部324を有する。
【0030】
抽出部31は、画像上のシンボルコード100が記録されている二次元領域を抽出する。
【0031】
また、認識部32は、抽出部31で抽出された二次元領域に記録されているシンボルコードの内容を認識する。
【0032】
ここで、図3に示すシンボルコード認識装置30で認識対象としているシンボルコードを説明しておく。
【0033】
図4は、シンボルコードの一例を示した図である。
【0034】
このシンボルコード100は、それぞれが複数の線幅を有する黒バーおよび白バーの交互配列により構成されている一次元シンボルコードである。このシンボルコード100の先頭には、スタートコード101が記録され、そのスタートコード101に続き一つ以上のキャラクタコード102が記録され、末尾にはストップコード103が記録されている。
【0035】
シンボルコードの種別は複数存在する。ここに示す種別のシンボルコードの場合、スタートコード101,キャラクタコード102における各1つのキャラクタのコード、およびストップコード103は、いずれも、9本のバーで構成されている。これら9本のバーは、5本の黒バーとそれらの黒バーに挟まれた4本の白バーとからなる。さらにスタートコード101の前およびストップコード103の後ろには、バーの配列が存在しないクワイエットゾーン104,105が存在する。スタートコード101およびストップコード103のパターンはシンボルコード100の種別ごとに決まっている。したがってスタートコード101およびストップコード103を調べることにより、このシンボルコード100の種別が分かる。尚ここでは、黒バー/白バーと称しているが、互いに識別できる明度あるいは色のバーであれば、必ずしも黒/白に限定されるものではない。すなわち、黒バー/白バーは第1バー/第2バーの各一例である。ただし、以降の説明においても典型的なものとして黒バー/白バーと表現する。
【0036】
また、この図4に示す黒バーおよび白バーは、いずれも細線と太線との2種類の線幅のバーで構成されているが、これも一例であり、現在の規格上は黒バーおよび白バーの線幅がそれぞれ4種類のものまで存在する。以下では主に、細線と太線の2種類の線幅のバーを例に挙げて説明するが、本件は2種類以外の線幅のバーで構成されたシンボルコードにも適用される。
【0037】
図5は、帳票の一例を示した模式図である。
【0038】
ここでは、例えばA4サイズの用紙201上のどこか(図5の例では右下隅)に図4に示すような一次元のシンボルコード100が印刷又は貼付されている。
【0039】
また、この帳票には、シンボルコード100以外にも様々な文字や図形や罫線などが記録されている。
【0040】
図3に示すシンボルコード認識装置30は、例えば図5に示すような帳票を読み取って得た画像(画像データからなる画像)からシンボルコード100が存在する領域を抽出し、その抽出した領域内のシンボルコード100の内容を認識する装置である。
【0041】
ここで、図5に一例を示す帳票200上のシンボルコード100は、用紙201上の右下隅に記録されているが、用紙201上のシンボルコード100の記録位置および数はあらかじめは分かっていない。図3のシンボルコード認識装置30は、データ上の画像からそのシンボルコード100が存在する領域を見つけ出して抽出する。
【0042】
また、帳票200上のシンボルコード100は貼付されたものであることを許容している。すなわち、そのシンボルコード100は、必ずしも用紙201の辺と平行又は直角に貼付されているとは限らず、斜めに貼られている場合もある。このシンボルコード認識装置30は、そのような斜めに貼られたシンボルコード100も抽出、認識の対象としている。
【0043】
図6は、走査線を示した図である。
【0044】
図3に示すシンボルコード認識装置30の抽出部31では図1に示すスキャナ2で読み取った画像上に、第1ピッチ(例えば2.5mmピッチ)の走査線301を設定する。ただし、スキャナ2で読み取って得た画像の画素は、その第1ピッチ(2.5mmピッチ)よりも十分に細かなピッチ(例えば0.1mmピッチ)で並んでいる。
【0045】
ここで設定される走査線301は、シンボルコード100の検出を行なう前に設定されるものであり、シンボルコード100が仮に斜めに記録されているときはそのシンボルコード100を斜めに横切る走査線となる。
【0046】
図3に戻って説明を続ける。
【0047】
図3に示すシンボルコード認識装置30の第1抽出部311は、シンボルコードが記録された画像を構成する画素のうちの互いに平行な第1ピッチの各走査線上の画素の変化パターンに基づいて、各走査線上の、シンボルコードに重なる一次元領域を抽出する。具体的には、この第1抽出部311では、各走査線301(図6参照)上の画素の変化パターンに基づいてその変化パターンが以下の複数の基準を満たすか否かが判定され、それらの基準を満たす、走査線301上の領域(一次元領域)が抽出される。
【0048】
(1)クワイエットゾーン104,105(図4参照)が前後に存在すること。
【0049】
(2)黒バーと白バーとの間の線幅比が規定値を満たすこと。
【0050】
(3)複数種類の線幅のバーどうしの間の線幅比が規定値を満たすこと。
【0051】
(4)バーの本数が規定値を満たすこと。
【0052】
(5)スタートコード101およびストップコード103(図4参照)が認識されること。
【0053】
これら(1)〜(5)の具体例については後述の第2実施形態の説明に譲る。
【0054】
図3に示すシンボルコード認識装置30の第2抽出部312は、第1抽出部311で抽出された、隣接する走査線上の一次元領域内の画素の変化パターンの類似性に基づいて隣接する走査線上の一次元領域を互いに統合する。この第2抽出部312は、この統合により、画像上のシンボルコードが記録された二次元領域を抽出する。具体的には、この第2抽出部312では、複数の走査線301(図6参照)上の、第1抽出部301で抽出された複数の一次元領域の中から以下の複数の基準を満たす一次元領域を抽出し、抽出された複数の一次元領域を二次元領域に統合する第1統合処理を実行する。
【0055】
(6)それら複数の一次元領域の走査線301に沿う方向の位置が規定値内で一致すること。
【0056】
(7)それら複数の一次元領域の白バーの位置が規定値内で一致すること。
【0057】
(8)黒バーの本数が規定値内で一致すること。
【0058】
(9)黒バーが複数の走査線301に跨る方向、すなわち黒バーが延びる縦方向(図4参照)に連続していること。
【0059】
(10)それら複数の一次元領域のスタートコード101およびストップコード103(図4参照)で表わされるシンボルの種別が一致すること。
【0060】
これら(6)〜(10)の具体例についても後述の第2実施形態の説明に譲る。
【0061】
シンボルコード100が帳票用紙201(図5参照)の辺に平行に印刷又は貼付されており、かつスキャナ2(図1,図2参照)で読み取って得た画像上のシンボルコード100(図4,図5参照)の潰れや掠れが少ないときは上記の第1統合処理だけで十分である。しかしながら、ここでは、さらに低画質の画像が得られた場合であっても、シンボルコード100が印刷又は貼付された二次元領域を正確に抽出するために、以下の第2抽出処理が行なわれる。
【0062】
すなわち、第1抽出部311は、上記(1)〜(5)の基準のうちの、先ずは(1)〜(4)の基準を満たす一次元領域を一次候補領域として抽出し、さらに、一次候補領域の中から、上記(5)の基準を満たす一次候補領域を二次候補領域として抽出する。
【0063】
また、第2抽出部312は、複数の走査線301上の、第1抽出部311で抽出された複数の二次候補領域の中から、上記(6)〜(10)の基準を満たす二次候補領域を抽出する。尚、(6)〜(10)における「一次元領域」は、上記の(1)〜(5)の基準を満たす一次元領域であり、ここでの「二次元候補領域」そのものである。さらに、この第2抽出部312は、以下の基準を満たす一次候補領域も統合の対象とする。
【0064】
(11)抽出された複数の二次候補領域に挟まれた一次候補領域であること。
【0065】
(12)上記(6)〜(10)の基準のうちの(10)の基準を除く、(6)〜(9)の基準を満たすこと。
【0066】
すなわち、ここでは、上記の(6)〜(10)の基準を満たす二次候補領域と、(11)〜(12)の基準を満たす一次候補領域との双方を二次元領域に統合する第2統合処理が実行される。
【0067】
シンボルコード100が帳票用紙201(図5参照)上に斜めに貼られていた場合、上記の第1統合処理および第2統合処理では、シンボルコードが記録された二次元領域を抽出することができない場合がある。そこで、第2抽出部312では、さらに以下の第3統合処理も行なわれる。ここでは、第1抽出部311で抽出された一次候補領域のうちの、第2抽出部312における第1統合処理および第2統合処理のいずれにおいても統合対象から外れた第3統合処理対象一次候補領域を対象とし、以下の複数の基準を満たす第3統合処理対象一次候補領域が二次元領域に統合される。
【0068】
(13)スタートコードが検出されている第3統合処理対象一次候補領域のスタートコードの開始点から黒バーの延びる方向とは直角の方向に延びる直線と交わる第3統合処理対象一次元候補領域であること。
【0069】
(14)シンボルコードの傾きが規定値内で一致すること。
【0070】
(15)黒バーが複数の走査線に跨る方向に連続すること。
【0071】
(16)シンボルコードの種別が一致するか、又はシンボルコードの種別が不明の場合はシンボルコードの種別が一致する複数の第3統合処理対象一次元候補領域に挟まれていること。
【0072】
これら(13)〜(16)の処理の具体例についても、後述の第2実施形態の説明に譲る。
【0073】
また、図3のシンボルコード認識装置30の認識部32では、抽出部31で抽出されて二次元領域内に記録されているシンボルコード100(図4参照)の内容が以下のようにして認識される。この認識部32では、抽出部31で採用しているピッチの走査線301(図6参照)とは異なるピッチの走査線が採用される。
【0074】
図7は、認識部32で採用される第2走査線を示す図である。
【0075】
この第2走査線302は、シンボルコード100のバーが延びる方向に対し直角な方向に延びる走査線である。したがって、シンボルコード100が図7に示すように画像上で斜めに配置されているときは、斜めの走査線が採用される。また、図6に示す走査線301は、例えば2.5mmピッチの走査線であるが、ここで採用される第2走査線302は、例えば0.5mmピッチ等、走査線301よりも狭ピッチの走査線である。
【0076】
図3に戻って説明を続ける。
【0077】
図3に示す認識部32を構成する補正部321では、抽出部31で抽出された二次元領域内の、第2走査線302(図7参照)上のバーの本数を、第2走査線302ごとに計測し、計測した本数が規定本数と合致するか否かを判定する。そしてこの補正部321では、計測した本数が規定本数と合致しない走査線302について、黒バーの分割又は統合によりその第2走査線302上のバーの本数を規定本数に合致させる補正処理を実行する。認識部32を構成する第1認識部322および第2認識部323は、補正部321により補正された後のシンボルコードについて、以下に説明する第1の認識処理および第2の認識処理をそれぞれ実行する。
【0078】
第1認識部322は、抽出部31で抽出された二次元領域について、各第2走査線302(図7参照)上の画素の変化パターンに基づいて、各第2走査線302ごとにその二次元領域内のシンボルコードの内容を仮認識する第1認識処理が実行する。
【0079】
また、第2認識部323は、抽出部31で抽出された二次元領域を、各第2走査線上の画素の変化パターンに基づいて、その二次元領域を各キャラクタの領域に分けるとともに各1つのキャラクタの領域内をさらに複数のサブ領域に分ける。そしてこの第2認識部323は、このように分けた各サブ領域ごとにキャラクタを仮認識する第2認識処理を実行する。
【0080】
さらに、統合部324は、第1認識部322による仮認識結果と第2認識部323による仮認識結果が統合されて、二次元領域内に記録されているシンボルコードの内容が認識される。
【0081】
これら補正部321,第1認識部322,第2認識部323,および統合部324における各処理の具体例については、後述の第2実施形態での説明に譲る。
【0082】
図3に示す第1実施形態のシンボルコード認識装置30では、以上の処理を実行した後、帳票用紙を画像上で90°回転させてもう一度同じ処理を実行する。これは、シンボルコード100(図5参照)がその図5に示す向きとは90°異なる向きに印刷又は貼付されている場合があることを考慮したものである。この第1実施形態のシンボルコード認識装置30では、以上のようにして、帳票用紙上のシンボルコードが記録された領域が抽出され、その領域内のシンボルコードの内容が認識される。
【0083】
次に、より具体的な第2実施形態を説明する。この第2実施形態においても、図1に示すシステム構成および図2に示すハードウェア構成は、第1実施形態と共通であり、それらの図をそのまま参照することにし、再説明は省略する。また、この第2実施形態では、図4〜図7を参照して説明した内容も第1実施形態と共通であり、それらの図4〜図7を参照しての再説明も省略する。
【0084】
図8は、第2実施形態のシンボルコード認識装置のブロック図である。
【0085】
このシンボルコード認識装置50も、図3に示す第1実施形態のシンボルコード認識装置30と同様、図1,図2に示すノートPC1内でシンボルコード認識プログラムが実行されることにより、そのノートPC1内に実現する機能を表わしている。
【0086】
このシンボルコード認識装置50は、画像入力部51、画像格納部52、抽出部53、抽出結果格納部54、認識部55および結果出力部56を有する。
【0087】
画像入力部51は、図1,図2に示すスキャナ2で帳票用紙から読み取られた画像の入力を受ける。この画像入力部51は、ハードウェア上は、図2に示すインタフェース16に相当する。あるいは、この画像入力部51は、スキャナ2から画像の入力を受ける要素に限定されず、例えば、通信回線を介して画像を受け取る要素、可搬型記憶媒体(例えばDVDなど)の装填を受け、その可搬型記憶媒体から画像を受け取る要素、などであってもよい。あるいは、この画像入力部51は帳票用紙から直接に画像を読み取る要素、例えば図1,図2に示すスキャナ2そのものであってもよい。
【0088】
画像入力部51で得られた画像は、画像格納部52に一旦格納される。この画像格納部52は、ハードウェア上は、図2に示す記憶部13に相当する。
【0089】
抽出部53は、画像格納部52に格納されている帳票の画像からその画像上に存在するシンボルコードが記録されている領域を抽出する。この抽出部53における各種処理は、図2に示すCPU11とそのCPU11で実行されるシンボルコード認識プログラムとの複合で実現する。この抽出部53は、抽出制御部531、仮抽出部532、キー検出部533、候補統合部534、傾き算出部535、および傾き候補統合部536を有する。これら各部531〜536の説明は後に譲る。尚、これら各部531〜536のうちの、仮抽出部532とキー検出部533を合わせた要素が、前述の第1実施形態(図3参照)の第1抽出部311に対応する。また、候補統合部534、傾き算出部535、および傾き候補統合部536を合わせた要素が、前述の第1実施形態の第2抽出部312に対応する。
【0090】
抽出部53で抽出された情報は、抽出結果格納部54に格納される。この抽出結果格納部54も、画像格納部52と同様、ハードウェア上は、図2に示す記憶部13がこれに相当する。
【0091】
認識部55は、画像格納部52に格納されている帳票画像および抽出結果格納部54に格納されている抽出結果に基づいて、抽出部53で抽出された領域に記録されているシンボルコードの内容を認識する。この認識部55における各種処理も、図2に示すCPU11と、そのCPU11で実行されるシンボルコード認識プログラムとの複合で実現する。ただし、この認識部55中の認識結果格納部552は、ハードウェア上は図2の記憶部13がこれに相当する。
【0092】
この認識部55は、認識制御部551、認識結果格納部552、シンボルデータ作成部553、シンボルデータ補正部554、マトリックス処理部555、ラインソート処理部556、認識結果判定部557を有する。ここで、これら各部551〜557のうち、主にシンボル補正部554が前述の第1実施形態(図3参照)の補正部321に対応する。また、ラインソート処理部556およびマトリックス処理部555が、前述の第1実施形態の、それぞれ第1認識部322および第2認識部323に対応する。さらに、認識結果判定部557が前述の第1実施形態の統合部324に対応する。
【0093】
認識部55を構成するこれらの各部551〜557の説明も後に譲る。
【0094】
認識部55で得られたシンボルコードの認識結果は、結果出力部56から出力される。この結果出力部56から出力された認識結果の用途は、その帳票の用途に応じて異なり、ここでは、認識結果が出力されるという説明にとどめる。
【0095】
図9,図10は、図8に示すシンボルコード認識装置50で実行される処理を示すフローチャートの、それぞれ前半部分、後半部分を示す図である。図9は、図8の抽出部53で実行される処理を示し、図10は、図8の認識部55で実行される処理を示している。
【0096】
以下では、図8のブロック図と図9,図10のフローチャートの双方を参照しながら説明する。
【0097】
抽出部53の抽出制御部531は、抽出部53の各処理全体の制御を担っている。
【0098】
仮抽出部532では、画像から一次候補領域が抽出される(図9ステップS11)。すなわち仮抽出部532では、画像格納部52から1本の走査線301(図6参照)上の画像を読み出し、以下のアルゴリズムに従って一次候補領域が抽出される。
(a)読み出した一走査線分の画像の先頭からその走査線の終了点に向かって黒画素の検出を行なう。その走査線の終了点まで黒画素が検出されなかった場合は、下記(c)に分岐する。
【0099】
図11は、走査線を示す図である。
【0100】
ここでは、1番目の走査線(以下、「ライン1」と称することがある。2番目以降の走査線についても同様である。)上の画素を左から右に向かって走査し、黒画素の存在が検出される。ライン2以降の各走査線についても同様である。尚ここでは、シンボルマークのみ走査しているように示されているが、図6に示すように、帳票用紙201の全体画像について走査され、各走査線について黒画素の検出が行なわれる。
(b)黒画素が検出すると、その黒画素から続く一連の白黒パターンが、一次元シンボルコードとしての候補となり得るか否か確認する。
【0101】
下記の、「候補確認」の全ての条件を満たした場合は、一次候補領域としてその抽出情報を抽出結果格納部54に格納する。
【0102】
「候補確認」の条件は、以下に再度示す通り、前述の第1実施形態における(1)〜(4)の条件である。
【0103】
(1)クワイエットゾーン104,105(図4参照)が前後に存在すること。
【0104】
(2)黒バーと白バーとの間の線幅比が規定値を満たすこと。
【0105】
(3)複数種類の線幅のバーどうしの間の線幅比が規定値を満たすこと。
【0106】
(4)バーの本数が規定値を満たすこと。
【0107】
図12は、上記(1)〜(4)による候補確認処理を示す模式図である。
【0108】
上記(1)のクワイエットゾーンの存在については、白黒パターンが開始される先頭の黒画素の前にバーが存在しない所定長の空白が存在し、かつ白黒パターン終端の黒画素の後ろにバーが存在しない所定長の空白が存在するか否かが確認される。
【0109】
図13は、上記(2),(3)の、線幅比が規定値を満たすか否かの確認処理の説明図である。
【0110】
図13(A),(B)は、それぞれ黒バーおよび白バーの、走査線方向の幅のヒストグラムを示した図である。横軸は、線幅(太さ)を表わし、縦軸はその線幅(太さ)のバーの本数を表わしている。
【0111】
ここでは、黒バーおよび白バーの線幅が細/太の2種類であるシンボルコードを例に挙げて説明しており、線幅の細/太に対応する2つのピークが存在する。これら2つのピークは、シンボルコードの画像に潰れや掠れ等があっても十分に判別可能である。
【0112】
ここでは、各ピークが線幅を表わすものとして、黒バーと白バーの細線どうしの比率(pb1/pw1)と太線どうしの比率(pb2/pw2)が求められ、以下のように、それらの比率が規定値1.0−α1〜1.0+α1の範囲内にあるか否かが判定される。
【0113】
1.0−α1≦pb1/pw1≦1.0+α1
1.0−α1≦pb2/pw2≦1.0+α1
ここで、α1はあらかじめ定められた、1.0よりも小さい値である。
【0114】
ここでは、バーの線幅は細/太の2種類であるとして説明しているが、3種類以上の線幅を持つコマンドコードについても同様にして判定される。
【0115】
また、ここでは、黒バーと白バーとのそれぞれについて、細線に対する太線の幅どうしの比率pb2/pb1,pw2/pw1が求められ、規格上の幅比率をr、rよりも小さいあらかじめ定められた値をα2としたとき、以下のように、それらの比率が規定値r−α2〜r+α2の範囲内にあるか否かが判定される。
【0116】
r−α2≦pb2/pb1≦r+α2
r−α2≦pw2/pw1≦r+α2
尚、線幅が細/太の2種類よりも種類の多いシンボルコードの場合、最細のバーに対応するピーク(図13のpb1,pw1)を基準としたときの各太さのバーに対応するピーク(図13のpb2,pw2)が各規定値を満たすか否かが判定基準となる。
【0117】
尚、図13には、各2つのピークの太さpb1,pb2,pw1,pw2の間のボトムの太さbb1,bw1も示されているが、これらのボトムについては後述する。
【0118】
上記(4)については、一本の走査線上の、先頭の黒画素(図11参照)から所定の最大間隔以内で繰り返す黒バーの本数が計数され、その本数がある規定値以上であるか否かが判定される。黒バーの本数が少な過ぎるときは、シンボルコードではなく、帳票上の文字や図形の黒線がたまたま最大間隔以内で繰り返していたものとしてシンボルコードの候補からは除外される。ただし、黒バーの本数が多いことについての上限は設けられていない。長いコマンドコードも有り得るからである。
【0119】
このようにして上記(1)〜(4)の条件が満たされると、その走査線上の、それらの条件を満たした一次元領域を特定する情報が抽出結果格納部54に格納される。
(c)1本の走査線について、上記(a),(b)の処理が終了すると、次の走査線上の画像が読み出され、その走査線について上記(a),(b)の処理が行なわれる。
【0120】
図8の抽出部53のキー検出部533では、以上のようにして抽出した一次候補領域の情報を抽出結果格納部54から読み出し、その一次候補領域に対し、
(5)キー検出処理、すなわち、スタートコードおよびストップコードの検出処理が行なわれる(図9のステップS12)。
【0121】
図14は、キー検出処理の説明図である。
【0122】
ライン1についてキー、すなわち、スタートコードおよびストップコードが検出されると、そのライン1上の一次候補領域は二次候補領域として抽出結果格納部54に情報が格納される。この処理が各ライン(走査線)上の各一次候補について行なわれる。
【0123】
ここに示す種類のシンボルコードの場合、スタートコード、キャラクタコードを構成する1文字分のコード、およびストップコードのいずれも、5本の黒バーとそれらの黒バーに挟まれた4本の白バーとの合計9本のバーで構成されている。
【0124】
ここでは、バーの太さは、図13に示すボトムの太さbb1,bw1をしきい値としてその太さよりも細いバーを細線、その太さよりも太いバーを太線として2値化している。この2値化した細線、太線の配列が、スタートコード、ストップコードを構成する9本のバーのうち8本まで一致している場合、又は7本が一致し不一致の2本が互いに隣接している場合に、スタートコード、ストップコードが検出されたものとして扱われる。潰れや掠れにより完全には一致しない場合を考慮したものである。7本まで一致していたときに、不一致の2本が互いに隣接していることを条件としているのは、本来はその2本の一方が細く他方が太いバーであったときに、それらの細、太が逆に検出されることがあるからである。
【0125】
次に候補統合部534において、二次候補領域、すなわちキー(スタートコードとストップコード)が検出された一次元領域を基準に候補の統合が行なわれる(図9のステップS13)。ここでは、以下に示す、「統合確認」の全ての条件を満たした場合に、シンボルコードが記録されている二次元領域を表わす統合情報が作成される(図16参照)。
【0126】
ここでの「統合確認」の条件は、下記の通りである。これらの条件は、前述の第一実施形態における(6)〜(10)の条件と同一である。
【0127】
(6)複数の二次元候補領域の走査線301(図6参照)に沿う方向の位置が規定値内で一致すること。
【0128】
(7)複数の二次候補領域の白バーの位置が規定値内で一致すること。
【0129】
(8)黒バーの本数が規定値内で一致すること。
【0130】
(9)黒バーが複数の走査線301に跨る方向、すなわち例えば図4における黒バーが延びる縦方向に連続していること。
【0131】
(10)複数の二次候補領域のスタートコード101およびストップコード103(図4参照)で表わされるシンボルの種類が一致すること。
【0132】
図15は、統合確認処理の説明図である。
【0133】
ここでは、ライン1〜3のいずれにも、上記の(1)〜(5)条件を満たした二次候補領域が存在するものとする。
【0134】
このとき、上記(6)の条件として、ライン1の二次候補領域とライン2の二次候補領域の、ラインに沿う左右方向の位置があらかじめ定められた誤差範囲内で互いに一致するか否かが判定される。
【0135】
また、上記(7)の白バーの位置の判定方法として、ここでは以下の方法が採用されている。
【0136】
ここでは、太線の白バーに着目し、ライン1上の太線の白バーの本数が数えられ、またライン2上の、ライン1上の白バーと同じ位置に存在する太線の白バーの本数が数えられる。そして、例えばライン1上の太線の白バーの本数に対する、そのライン1上の太線の白バーと同じ位置にライン2上の太線の白バーが50%以上存在すれば、ライン1上の白バーとライン2上の白バーが一致していると判定される。ライン2とライン3、およびそれ以外の隣接するライン上の二次候補領域どうしの間でも同様に調べられる。
【0137】
上記(8)の黒バーの本数が一致するか否かについては、各ライン上の黒バーの本数が数えられ、例えばライン1上の黒バーの本数に対しライン2上の黒バーの本数が±10%以内の程度の範囲内で一致すれば、ライン1の黒バーの本数とライン2の黒バーの本数とが一致していると判定される。他のラインについても同様である。
【0138】
上記(9)の黒バーの連続性については、図8の画像格納部52に格納されている元の画像が参照され、黒バーが、その延在方向、すなわち、図15の縦方向に隣接するラインまで繋がっているか否かが調べられる。このように、黒バーが複数のラインを跨ぐ方向に連続していることが候補統合の1つの条件となる。
【0139】
さらに、上記(10)の通り、スタートコード/ストップコードが一致するか否か、すなわち、各ライン上のシンボルコードの種別が一致するか否かが調べられる。シンボルコードの種別が一致することが統合の1つの条件となる。
【0140】
図16は、統合情報の模式図である。
【0141】
例えば図15に示すライン1〜3について、上記(6)〜(10)の条件を満たすと図16に示すように、それらのライン1〜3を全て含む二次元のシンボル領域を表わす統合情報が作成される。この統合情報は、この二次元のシンボル領域に1つのシンボルコードが記録されていることを表わしている。
【0142】
上記(6)〜(10)の条件を満たさない場合は、以下のように取り扱われる。
【0143】
ここでは、図15に示すライン1とライン3については上記(1)〜(4)の条件を満足し、さらに(5)の条件であるスタートコードおよびストップコードが検出されたものとする。これに対し、それらのライン1,3に挟まれたライン2については、上述の(1)〜(4)は満たすものの、(5)のスタートコードおよびストップコードは検出されなかったものとする。この場合であっても、
(11)スタートコードおよびストップコードが共に一致する2つのラインに挟まれていること。
(12)上記(6)〜(10)の基準のうち(10)の基準を除く(6)〜(9)の基準を満たすこと。
の2つの条件を満足する場合は、スタートコードおよびストップコードが共に一致する2つのライン上の二次候補領域に挟まれたライン上の一次候補領域も、同じ1つのシンボルコードが記録されたラインとして統合の対象となる。
【0144】
次に、未だ統合されていない一次候補領域が存在するか否かが判定される(図9のステップS14)。
【0145】
シンボルコードが帳票上に傾きのない姿勢で印刷又は貼付されていたときは、以上の処理で、シンボルコードが記録された二次元領域の抽出処理は終了し、その二次元領域を表わす統合情報が抽出結果格納部54に格納される(図9ステップS17)。
【0146】
一方、未だ統合されなかった一次候補領域が存在する場合は、シンボルコードが斜めに記録されていることが予想され、以下の処理が実行される。
【0147】
ここでは、先ず、図8の抽出部53の傾き算出部535において、未だ統合されていない各一次候補領域に対し、傾き算出処理が行なわれる(図9ステップS15)。
【0148】
図17は、傾き算出処理の説明図である。
【0149】
この図17には、各ライン1〜3上の、黒白のパターンが連続している各一次候補領域が示されている。
【0150】
ここでは、画像格納部52に格納されている帳票画像を基にして、各ライン1〜3上の各一次元候補領域の先頭の黒バーの延びる方向が調べられ、この黒バーの延びる方向からこの白黒パターンがシンボルコードを表わしているとした場合の、そのシンボルコードの傾きが算出される。この算出された傾き情報も抽出結果格納部54に格納される。
【0151】
次に、図8の傾き候補統合部536において、傾きが検出された一次候補領域に対し、候補統合処理が行なわれる(図9ステップS16)。
【0152】
ここでは、傾きが検出された一次候補領域が以下の(13)〜(16)の基準を満たす場合に統合され、1つのシンボルコードが記録されたシンボル領域を表わす統合情報が作成される。尚、以下の(13)〜(16)の基準は、前述の第1実施形態における(13)〜(16)の基準と同一の基準である。
【0153】
(13)スタートコードが検出されている一次候補領域のスタートコードの開始点から黒バーの延びる方向とは直角の方向に延びる直線と交わる一次候補領域であること。
【0154】
(14)一次候補領域どうしの傾きが規定値内で一致すること。
【0155】
(15)黒バーが複数のラインに跨る方向に連続していること。
【0156】
(16)シンボルコードの種別が一致すること。又は、シンボルコードの種別が不明の場合は、シンボルコードの種別が一致する複数の一次候補領域に挟まれていること。
【0157】
図18は、傾き候補統合部536における上記(13)〜(16)の処理の説明図である。
【0158】
ここでは、上記(13)について調べるために、各ライン上の一次候補領域の先頭の黒バーから、その黒バーの延びる方向に対する直角の方向(傾いたシンボルコードに対し平行な方向)に延ばした直線が隣接するライン上の一次候補領域と交わるか否かが調べられる。図18に示す例では、ライン2上の一次候補領域の先頭の黒バーからシンボルコードに平行に斜め上に引いた直線は、ライン1上の一次候補領域と交わっている。またライン3上の一次候補領域の先頭の黒バーからシンボルコードに平行に斜め上に引いた直線は、ライン2上の一次候補領域、さらにライン1上の一次候補領域と交わっている。ここでは、このような交わり方をしている場合に、上記(13)の条件を満足していると判定している。
【0159】
上記(14)の傾きの一致については、画像格納部52に格納されている画像を基に、各ライン上の一次候補領域の黒バーの延びる方向が調べられ、黒バーの延びる方向が規定値内で一致するか否かが判定される。
【0160】
上記(15)の黒バーの連続性については、画像格納部52に格納されている画像を基に、各ライン上の一次候補領域の黒バーが隣接するラインを跨いで連続しているか否かが調べられる。この黒バーが連続していることも、統合の1つの条件となる。
【0161】
上記(16)のシンボルコードの種別が一致していること、という条件については、スタートコードとストップコードとの一方しか検出されていない一次候補領域であっても、上記(13)〜(15)の各条件に合致し、かつシンボルコードの種別が一致していればよい。
【0162】
さらには、スタートコードとストップコードのいずれもが検出されなかった一次候補領域であっても、シンボルコードの種別が一致している一次候補領域に挟まれており、かつ、上記(13)〜(15)の各条件に合致していれば統合対象となる。
【0163】
図19は、シンボルコードが斜めに記録されていたときの統合情報の模式図である。
【0164】
図17,図18を参照して説明しているライン1〜3が上記(13)〜(16)の条件を満足する場合、それらのライン1〜3上の一次候補領域が図19に示す1つのシンボル領域として統合される。
【0165】
図8の候補統合部534(図9のステップS13)で作成された統合情報(図16参照)、および図8の傾き候補統合部536(図9ステップS16)で作成された統合情報(図19参照)は、抽出結果格納部54に格納される(図9ステップS17)。
【0166】
以上により、図8に示す第2実施形態のシンボルコード認識装置50の抽出部53の説明を終了し、次に、認識部55について説明する。
【0167】
この認識部55では、画像格納部52に格納されている画像に基づき、抽出結果格納部54に格納された統合情報や傾き情報等が参照されて、統合情報により表わされるシンボル領域内の画像パターンが調べられる。この認識部55では、抽出部52で採用された走査線301(図6参照)よりも細かいピッチの第2走査線が採用される。またこの認識部55では、傾き情報に基づき、傾いているシンボルコードであっても、その傾いたシンボルコードに対し平行な第2走査線302が採用される(図7参照)。
【0168】
この認識部55の認識制御部551は、認識部55の各処理全体の制御を担っている。
【0169】
認識結果格納部552には、後述するマトリックス処理部555、ラインソート処理部556、および認識結果判定部557で得られた認識結果などが格納される。
【0170】
シンボルデータ作成部553では、シンボルデータが作成される(図10ステップS21)。
【0171】
図20は、シンボルデータの一例を示す図である。
【0172】
このシンボルデータ作成部553では、図7に示す第2走査線302のそれぞれについて、各第2走査線302を左から右に辿ったときの黒バーの幅、白バーの幅を交互に記録した、例えば図20(A)に示すようなシンボルデータが作成される。
【0173】
図20(A)と図20(B)との関係については後述する。
【0174】
シンボルデータ補正部554では、シンボルデータ作成部553で作成されたシンボルデータが補正される(図10ステップS22)。
【0175】
図21は、シンボルデータ補正前のシンボルコードの一例を示した図である。また図22は、シンボルデータ補正後のシンボルコードの一例を示した図である。
【0176】
画像上のシンボルコードには、図21に示すように、潰れや掠れなどが発生している場合がある。
【0177】
そこでここでは、各第2走査線(以下、この第2走査線を「ライン」と称する)ごとに黒バーの本数が数えられる。図4を参照して説明したように、ここで例示している種別のシンボルコードの場合、1つのキャラクタは、5本の黒バーとそれらの黒バーに挟まれた4本の白バーとからなる合計9本のバーで構成されている。したがって各ラインごとの黒バーの本数は5の倍数となるはずである。しかしながら実際には、潰れや掠れなどにより、5の倍数から外れた本数が数えられることがある。
【0178】
図21に示す例の場合、ライン1,2の黒バーの本数は1本少ない34本と数えられている。
【0179】
ライン3,4,5については、5の倍数である35本と数えられている。
【0180】
ライン6については、1本多い36本と数えられている。
【0181】
そこでシンボルデータ補正部554では、図22に示すように、規定本数(ここでは35本)よりも少ない本数が数えられたラインについては、最も太い黒バーから順に1本の黒バーを2本に分割する処理が行なわれる。一方、規定本数よりも多い本数が数えられたラインについては、最も細い白バーから順に黒で埋め、その白バーの両隣の黒バーを1本の黒バーに統合する処理が行なわれる。
【0182】
以上のシンボル補正処理は、シンボルデータ作成部553で作成されたシンボルデータ上で行なわれる。
【0183】
図20(A)はシンボルデータ補正前のシンボルデータの一例を表わしており、図20(B)はシンボルデータ補正後のシンボルデータの一例を表わしている。
【0184】
図20(A)では、左から3番目の欄の、黒バーを意味する「黒」の太さが「10」と記録されており、この黒バーが最も太い黒バーであるとする。また、このラインについて黒バーの本数を数えた結果、黒バーが1本不足していたとする。
【0185】
図20(B)では、この「黒:10」が、「黒:4、白:2、黒:4」に分割されている。
【0186】
このようなシンボルデータ補正によって必ずしも正しく補正されるとは限らないが、正しく補正される可能性も高い。また、正しく補正されなかった場合であっても、後の処理により、最終的にはシンボルコードが正確に認識される。
【0187】
図8のマトリックス処理部555では、シンボルデータが1キャラクタごと、かつ1キャラクタについて複数にマトリックス分割され(図10ステップS23)、さらにマトリックス分割されたシンボルデータのパターン照合が行なわれる(図10ステップS24)。
【0188】
図23は、マトリックス処理部における処理内容の説明図である。
【0189】
図23(A)に示すように、シンボルコードを、横方向には1キャラクタごとに分割し、縦方向には、ここでは3つのグループの分割している。ここでは、このように縦横ともに複数に分割することをマトリックス分割と称している。
【0190】
次に、図23(A)のようにマトリックス分割したときの各グループ領域ごとにシンボルデータのパターン照合が行なわれる。ここでパターン照合とは、画像から作成したシンボルデータ(図20参照)と各キャラクタを表わす正しいパターンとを照合し、シンボルデータがどのキャラクタを表わしているかを認識する処理をいう。
【0191】
図23(B)は、マトリックス分割されたときの1つのグループ領域を示している。このグループ内にも複数のラインが走っており、各ラインごとにキャラクタが認識される。すなわち、ここに示す例では、ライン1,2,3のいずれも数字の‘0’と認識され、ライン4,5は認識不能であったとする。このときは、図23(C)に示すように、多数決でそのグループの認識結果として‘0’が採用される。
【0192】
マトリックス処理部555では、図23(A)の各グループについて以上の認識処理が行なわれた後、さらにシンボルコード全体についての認識処理が行なわれる。
【0193】
図24は、マトリックス処理部における処理内容の説明図である。
【0194】
上記の各グループごとの認識処理により、各キャラクタごとの3つのグループI,II,IIIについて、図26に示すように、I:「?1234」、II:「01234」、III:「?1?44」と認識されたものとする。ここで、「?」はそのグループについては認識不能であったことを表わしている。この場合、多数決による優先順位が付され、優先順位の高い順に、1:「01234」、2:「01244」、3:「01235」、4:「01245」と認識される。
【0195】
この認識結果は、優先順位の情報とともに、図8の認識結果格納部552に格納される。
【0196】
なお、ここでは、優先順位は決定されたものの、未だ最終認識結果は得られていない。
【0197】
図8のラインソート処理部556では、各ラインごとのシンボルデータのパターン照合が行なわれる(図10ステップS25)。
【0198】
図25は、ラインソート処理部における処理内容の説明図である。
【0199】
ここでは各ラインごとにパターン照合が行なわれる。
【0200】
図5に示す例では、例えばライン1について説明すると、ライン1は「?1234」と認識され、認識不能であったキャラクタの数を表わすNG数は「1」である。
【0201】
ここでは、ラインごとに、NG数の少ない順に優先順位が付されている。同じNG数のときは、ここでは、上側のラインほど優先順位を上げている。
【0202】
このラインソート処理部556における認識結果も、優先順位の情報とともに図8の認識結果格納部552に格納される。
【0203】
尚、上記のマトリックス処理部555における処理(図10ステップS23〜S24)とラインソート処理部556における処理(図10ステップS25)は、時間の先後を問うものではなく、いずれの処理が先に行なわれてもよい。
【0204】
図8の認識結果判定部557では、マトリックス処理部555による認識結果とラインソート処理部556による認識結果が総合されて、最終的な認識結果が決定される(図10ステップS26)。
【0205】
図26は、認識結果判定部の処理内容の説明図である。
【0206】
認識結果判定部557では、認識結果格納部552に格納されている、マトリックス処理部555による認識結果とラインソート処理部556による認識結果が読み出される。そしてこの認識結果判定部557では双方の認識結果が優先順位の高いものから順に比較され、双方の認識結果が一致した場合に、その一致した認識結果が最終の認識結果として決定される。図26に示す例では、マトリックス処理部の優先順位1位の認識結果「01234」とラインソート処理部の優先順位1位の認識結果「01234」が一致しているため、この「01234」が最終の認識結果となる。
【0207】
図27は、認識結果判定部における比較の優先順位を示した図である。
【0208】
この図27は、先ず最初に、マトリックス処理部での優先順位1位の認識結果とラインソート処理部での優先順位1位の認識結果とが比較されることを示している。そしてそれらの1位どうしの認識結果が不一致であったときは、マトリックス処理部の優先順位1位の認識結果と、ラインソート処理部の優先順位2位の認識結果が比較される。それでも不一致のときは、この図27に従い、マトリックス処理部における優先順位2位の認識結果とラインソート処理部における優先順位1位の認識結果が比較される。
【0209】
ここで、マトリックス処理部における認識結果よりもラインソート処理部における認識結果について先に優先順位の低い認識結果に変更している。これは、ラインソート処理部による認識結果の方が比較的信頼度が高く、このため、ここではマトリックス処理部による認識結果についてはできるだけ優先順位上位の認識結果を利用することとしているのである。
【0210】
この第2実施形態においても、前述の第1実施形態と同様、以上の全ての処理を、帳票用紙を画像上で90°回転させてもう一度実行する。シンボルコード100(図5参照)が、その図5に示す向きとは90°異なる向きに印刷又は貼付されている場合があることを考慮したものである。
【0211】
以上で第2実施形態の説明を終了する。
【0212】
以上の各実施形態によれば、潰れや掠れが発生したシンボルコードであっても、帳票用紙上からそのシンボルコードが記録された領域が抽出され、そのシンボルコードが正確に認識される。
【0213】
また、以上の各実施形態によれば、斜めに貼付されたシンボルコードについても同様に、帳票用紙上からそのシンボルコードが記録された領域が抽出され、そのシンボルコードが正確に認識される。
【0214】
尚、以上の各実施形態では、黒バー/白バーの線幅が細/太の2種類のシンボルコードの認識を例に挙げて説明したが、本件は3種類以上の線幅を有するシンボルコードの認識にも適用可能である。
【0215】
以下、本件の各種形態を付記する。
【0216】
(付記1)
シンボルコードが記録された画像を構成する画素のうちの互いに平行な第1ピッチの各走査線上の画素の変化パターンに基づいて、該各走査線上の、シンボルコードに重なる一次元領域を抽出する第1抽出部と、
前記第1抽出部で抽出された、隣接する走査線上の前記一次元領域内の画素の変化パターンの類似性に基づいて該隣接する走査線上の前記一次元領域を互いに統合することにより、前記画像上のシンボルコードが記録された二次元領域を抽出する第2抽出部と
を有する抽出部と、
前記抽出部で抽出された前記二次元領域に記録されているシンボルコードの内容を認識する認識部と
を有することを特徴とするシンボルコード認識装置。
【0217】
(付記2)
当該シンボルコード認識装置は、それぞれが複数種類の線幅を有する第1バーおよび第2バーの交互配列により、先頭にスタートコード、該スタートコードに続く一つ以上のキャラクタコード、および末尾にストップコードが記録され、さらに該スタートコードの前および該ストップコードの後ろにバーの配列が存在しないクワイエットゾーンが存在する一次元シンボルコードの内容を認識する装置であることを特徴とする付記1記載のシンボルコード認識装置。
【0218】
(付記3)
前記第1抽出部は、前記各走査線上の画素の変化パターンに基づいて、前記クワイエットゾーンが前後に存在し、第1バーと第2バーとの間の線幅比、前記複数種類の線幅のバーどうしの間の線幅比、およびバーの本数が各規定値を満たし、さらに、前記スタートコードおよび前記ストップコードが認識される一次元領域を抽出するものであることを特徴とする付記2記載のシンボルコード認識装置。
【0219】
(付記4)
前記第2抽出部は、複数の走査線上の、前記第1抽出部で抽出された複数の一次元領域の中から、該一次元領域の、該走査線に沿う方向の位置、バーの位置、およびバーの本数が各規定値内でそれぞれ一致し、バーが複数の走査線に跨る方向に連続し、さらに、スタートコードおよびストップコードにより表わされるシンボルの種別が一致する複数の一次元領域を抽出し、抽出された複数の一次元領域を互いに統合する第1統合処理を実行することにより、前記二次元領域を抽出するものであることを特徴とする付記2又は3記載のシンボルコード認識装置。
【0220】
(付記5)
前記第1抽出部は、前記各走査線上の画素の変化パターンに基づいて、前記クワイエットゾーンが前後に存在し、第1バーと第2バーとの間の線幅比、前記複数種類の線幅のバーどうしの間の線幅比、およびバーの本数が各規定値を満たす一次元領域を一次候補領域として抽出し、さらに、該一次候補領域の中から、前記スタートコードおよび前記ストップコードが認識される一次候補領域を二次候補領域として抽出するものであり、
前記第2抽出部は、複数の前記走査線上の、前記第1抽出部で抽出された複数の二次候補領域の中から、該二次候補領域の、該走査線に沿う方向の位置、バーの位置、およびバーの本数が各規定値内でそれぞれ一致し、バーが複数の走査線に跨る方向に連続し、さらに前記スタートコードおよび前記ストップコードにより表わされるシンボルコードの種別が一致する複数の二次候補領域を抽出し、さらに、抽出された複数の二次候補領域に挟まれた一次候補領域が存在し、該抽出された複数の二次候補領域に挟まれた一次候補領域が、該抽出された複数の二次候補領域と比較し、該走査線に沿う方向の位置、バーの位置、およびバーの本数が各規定値内でそれぞれ一致し、かつバーが複数の走査線に跨る方向に連続する場合に、該抽出された複数の二次候補領域と該抽出された複数の二次候補領域に挟まれた一次候補領域とを統合する第2統合処理を実行することにより、前記二次元領域を抽出するものであることを特徴とする付記4記載のシンボルコード認識装置。
【0221】
(付記6)
前記第2抽出部が、前記第1抽出部で抽出された前記一次候補領域のうちの当該第2抽出部における前記第1統合処理および前記第2統合処理のいずれにおいても統合対象から外れた第3統合処理対象一次候補領域の中から、スタートコードが検出されている第3統合処理対象一次候補領域の該スタートコードの開始点から黒バーの延びる方向とは直角の方向に延びる直線と交わる第3統合処理対象一次元候補領域であり、該第3統合処理対象一次元候補領域内のシンボルコードの傾きが規定値内で一致し、バーが複数の走査線に跨る方向に連続し、シンボルコードの種別が一致するか又はシンボルコードの種別は不明であるがシンボルコードの種別が一致する複数の第3統合処理対象一次元候補領域に挟まれている第3統合処理対象一次元候補領域を統合する第3統合処理を実行することにより、前記二次元領域を抽出するものであることを特徴とする付記5記載のシンボルコード認識処理。
【0222】
(付記7)
前記認識部が、
前記抽出部で抽出された二次元領域上の互いに平行な第2ピッチの各第2走査線上の画素の変化パターンに基づいて、各第2走査線ごとに該二次元領域内のシンボルコードの内容を仮認識する第1認識処理を実行する第1認識部と、
前記抽出部で抽出された二次元領域を、前記各第2走査線上の画素の変化パターンに基づいて、該二次元領域を各キャラクタの領域に分けるとともに各1つのキャラクタの領域内をさらに複数のサブ領域に分けたときの該各サブ領域ごとにキャラクタを仮認識する第2認識処理を実行する第2認識部と、
前記第1認識部による仮認識結果と前記第2認識部による仮認識結果を統合して該二次元領域内に記録されているシンボルコードのキャラクタ列を認識する統合部とを有することを特徴とする付記1から6のうちいずれか1項記載のシンボルコード認識装置。
【0223】
(付記8)
前記二次元領域内の、前記第2走査線上のバーの本数を、該第2走査線ごとに計測し、計測した本数が規定本数と合致するか否かを判定し、合致しない走査線について、バーの分割又は統合により該第2走査線上のバーの本数を規定本数に合致させる補正処理を実行する補正部を有し、
前記第1認識部および前記第2認識部は、前記補正部により補正された後のシンボルコードについて前記第1の認識処理および前記第2の認識処理をそれぞれ実行するものであること特徴とする付記7記載のシンボルコード認識装置。
【0224】
(付記9)
コンピュータに、
シンボルコードが記録された画像を構成する画素のうちの互いに平行な第1ピッチの各走査線上の画素の変化パターンに基づいて、該各走査線上の、シンボルコードに重なる一次元領域を抽出し、
隣接する走査線上の前記一次元領域内の画素の変化パターンの類似性に基づいて該隣接する走査線上の前記一次元領域を互いに統合することにより、前記画像上のシンボルコードが記録された二次元領域を抽出し、
抽出された前記二次元領域に記録されているシンボルコードの内容を認識する処理を実行させることを特徴とするシンボルコード認識プログラム。
【0225】
(付記10)
当該シンボルコード認識プログラムは、コンピュータに、それぞれが複数種類の線幅を有する第1バーおよび第2バーの交互配列により、先頭にスタートコード、該スタートコードに続く複数のキャラクタコード、および末尾にストップコードが記録され、さらに該スタートコードの前および該ストップコードの後ろにバーの配列が存在しないクワイエットゾーンが存在する一次元シンボルコードの内容を認識させるプログラムであることを特徴とする付記9記載のシンボルコード認識プログラム。
【0226】
(付記11)
前記一次元領域の抽出にあたり、コンピュータに、前記各走査線上の画素の変化パターンに基づいて、前記クワイエットゾーンが前後に存在し、第1バーと第2バーとの間の線幅比、前記複数種類の線幅のバーどうしの間の線幅比、およびバーの本数が各規定値を満たし、さらに、前記スタートコードおよび前記ストップコードが認識される一次元領域を抽出させるものであることを特徴とする付記10記載のシンボルコード認識プログラム。
【0227】
(付記12)
前記二次元領域の抽出にあたり、コンピュータに、複数の走査線上の、抽出された複数の一次元領域の中から、該一次元領域の、該走査線に沿う方向の位置、バーの位置、およびバーの本数が各規定値内でそれぞれ一致し、バーが複数の走査線に跨る方向に連続し、さらに、スタートコードおよびストップコードにより表わされるシンボルの種別が一致する複数の一次元領域を抽出し、抽出された複数の一次元領域を互いに統合する第1統合処理を実行させることにより、前記二次元領域を抽出させることを特徴とする付記10又は11記載のシンボルコード認識プログラム。
【0228】
(付記13)
前記一次元領域の抽出にあたり、コンピュータに、前記各走査線上の画素の変化パターンに基づいて、前記クワイエットゾーンが前後に存在し、第1バーと第2バーとの間の線幅比、前記複数種類の線幅のバーどうしの間の線幅比、およびバーの本数が各規定値を満たす一次元領域を一次候補領域として抽出し、さらに、該一次候補領域の中から、前記スタートコードおよび前記ストップコードが認識される一次候補領域を二次候補領域として抽出する処理を実行させ、
前記二次元領域の抽出にあたり、コンピュータに、複数の前記走査線上の、抽出された複数の二次候補領域の中から、該二次候補領域の、該走査線に沿う方向の位置、バーの位置、およびバーの本数が各規定値内でそれぞれ一致し、バーが複数の走査線に跨る方向に連続し、さらに前記スタートコードおよび前記ストップコードにより表わされるシンボルコードの種別が一致する複数の二次候補領域を抽出し、さらに、抽出された複数の二次候補領域に挟まれた一次候補領域が存在し、該抽出された複数の二次候補領域に挟まれた一次候補領域が、該抽出された複数の二次候補領域と比較し、該走査線に沿う方向の位置、バーの位置、およびバーの本数が各規定値内でそれぞれ一致し、かつバーが複数の走査線に跨る方向に連続する場合に、該抽出された複数の二次候補領域と該抽出された複数の二次候補領域に挟まれた一次候補領域とを統合する第2統合処理を実行させることにより、前記二次元領域を抽出させることを特徴とする付記12記載のシンボルコード認識プログラム。
【0229】
(付記14)
前記二次元領域の抽出にあたり、コンピュータに、抽出された前記一次候補領域のうちの前記第1統合処理および前記第2統合処理のいずれにおいても統合対象から外れた第3統合処理対象一次候補領域の中から、スタートコードが検出されている第3統合処理対象一次候補領域の該スタートコードの開始点から黒バーの延びる方向とは直角の方向に延びる直線と交わる第3統合処理対象一次元候補領域であり、該第3統合処理対象一次元候補領域内のシンボルコードの傾きが一致し、バーが複数の走査線に跨る方向に連続し、シンボルコードの種別が一致するか又はシンボルコードの種別は不明であるがシンボルコードの種別が一致する複数の第3統合処理対象一次元候補領域に挟まれている第3統合処理対象一次元候補領域を統合する第3統合処理を実行させることにより、前記二次元領域を抽出させるものであることを特徴とする付記13記載のシンボルコード認識プログラム。
【0230】
(付記15)
前記二次元領域に記録されているシンボルコードの認識にあたり、コンピュータに、
抽出された二次元領域上の互いに平行な第2ピッチの各第2走査線上の画素の変化パターンに基づいて、各第2走査線ごとに該二次元領域内のシンボルコードの内容を仮認識し、
抽出された二次元領域を、前記各第2走査線上の画素の変化パターンに基づいて、該二次元領域を各キャラクタの領域に分けるとともに各1つのキャラクタの領域内をさらに複数のサブ領域に分けたときの該各サブ領域ごとにキャラクタを仮認識し、
前記各第2走査線ごとに前記二次元領域内のシンボルコードの内容を仮認識した結果と前記各サブ領域ごとにキャラクタを仮認識した結果とを統合して該二次元領域内に記録されているシンボルコードのキャラクタ列を認識する認識処理を実行させることを特徴とする付記9から14のうちいずれか1項記載のシンボルコード認識プログラム。
【0231】
(付記16)
コンピュータに、
前記二次元領域内の、前記第2走査線上のバーの本数を、該第2走査線ごとに計測し、計測した本数が規定本数と合致するか否かを判定し、合致しない走査線について、バーの分割又は統合により該第2走査線上のバーの本数を規定本数に合致させる補正処理を実行させ、
前記補正処理により補正された後のシンボルコードについて前記認識処理を実行させること特徴とする付記15記載のシンボルコード認識プログラム。
【符号の説明】
【0232】
1 ノートPC
2 スキャナ
10 本体装置
11 CPU
12 メモリ
13 記憶部
14 操作部
15 表示部
16 インタフェース
17 バス
20 表示装置
30,50 シンボルコード認識装置
31,53 抽出部
32,55 認識部
51 画像入力部
52 画像格納部
54 抽出結果格納部
56 結果出力部
100 シンボルコード
101 スタートコード
102 キャラクタコード
103 ストップコード
104,105 クワイエットゾーン
110 キーボード
200 帳票
201 用紙
210 表示画面
301 走査線
302 第2走査線
311 第1抽出部
312 第2抽出部
321 補正部
322 第1認識部
323 第2認識部
324 統合部
531 抽出制御部
532 仮抽出部
533 キー検出部
534 候補統合部
535 傾き算出部
536 傾き候補統合部
551 認識制御部
552 認識結果格納部
553 シンボルデータ作成部
554 シンボルデータ補正部
555 マトリックス処理部
556 ラインソート処理部
557 認識結果判定部

【特許請求の範囲】
【請求項1】
シンボルコードが記録された画像を構成する画素のうちの互いに平行な第1ピッチの各走査線上の画素の変化パターンに基づいて、該各走査線上の、シンボルコードに重なる一次元領域を抽出する第1抽出部と、
前記第1抽出部で抽出された、隣接する走査線上の前記一次元領域内の画素の変化パターンの類似性に基づいて該隣接する走査線上の前記一次元領域を互いに統合することにより、前記画像上のシンボルコードが記録された二次元領域を抽出する第2抽出部と
を有する抽出部と、
前記抽出部で抽出された前記二次元領域に記録されているシンボルコードの内容を認識する認識部と
を有することを特徴とするシンボルコード認識装置。
【請求項2】
当該シンボルコード認識装置は、それぞれが複数種類の線幅を有する第1バーおよび第2バーの交互配列により、先頭にスタートコード、該スタートコードに続く一つ以上のキャラクタコード、および末尾にストップコードが記録され、さらに該スタートコードの前および該ストップコードの後ろにバーの配列が存在しないクワイエットゾーンが存在する一次元シンボルコードの内容を認識する装置であることを特徴とする請求項1記載のシンボルコード認識装置。
【請求項3】
前記第1抽出部は、前記各走査線上の画素の変化パターンに基づいて、前記クワイエットゾーンが前後に存在し、第1バーと第2バーとの間の線幅比、前記複数種類の線幅のバーどうしの間の線幅比、およびバーの本数が各規定値を満たし、さらに、前記スタートコードおよび前記ストップコードが認識される一次元領域を抽出するものであることを特徴とする請求項2記載のシンボルコード認識装置。
【請求項4】
前記第2抽出部は、複数の走査線上の、前記第1抽出部で抽出された複数の一次元領域の中から、該一次元領域の、該走査線に沿う方向の位置、バーの位置、およびバーの本数が各規定値内でそれぞれ一致し、バーが複数の走査線に跨る方向に連続し、さらに、スタートコードおよびストップコードにより表わされるシンボルの種別が一致する複数の一次元領域を抽出し、抽出された複数の一次元領域を互いに統合する第1統合処理を実行することにより、前記二次元領域を抽出するものであることを特徴とする請求項2又は3記載のシンボルコード認識装置。
【請求項5】
前記第1抽出部は、前記各走査線上の画素の変化パターンに基づいて、前記クワイエットゾーンが前後に存在し、第1バーと第2バーとの間の線幅比、前記複数種類の線幅のバーどうしの間の線幅比、およびバーの本数が各規定値を満たす一次元領域を一次候補領域として抽出し、さらに、該一次候補領域の中から、前記スタートコードおよび前記ストップコードが認識される一次候補領域を二次候補領域として抽出するものであり、
前記第2抽出部は、複数の前記走査線上の、前記第1抽出部で抽出された複数の二次候補領域の中から、該二次候補領域の、該走査線に沿う方向の位置、バーの位置、およびバーの本数が各規定値内でそれぞれ一致し、バーが複数の走査線に跨る方向に連続し、さらに前記スタートコードおよび前記ストップコードにより表わされるシンボルコードの種別が一致する複数の二次候補領域を抽出し、さらに、抽出された複数の二次候補領域に挟まれた一次候補領域が存在し、該抽出された複数の二次候補領域に挟まれた一次候補領域が、該抽出された複数の二次候補領域と比較し、該走査線に沿う方向の位置、バーの位置、およびバーの本数が各規定値内でそれぞれ一致し、かつバーが複数の走査線に跨る方向に連続する場合に、該抽出された複数の二次候補領域と該抽出された複数の二次候補領域に挟まれた一次候補領域とを統合する第2統合処理を実行することにより、前記二次元領域を抽出するものであることを特徴とする請求項4記載のシンボルコード認識装置。
【請求項6】
コンピュータに、
シンボルコードが記録された画像を構成する画素のうちの互いに平行な第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

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate


【公開番号】特開2012−88850(P2012−88850A)
【公開日】平成24年5月10日(2012.5.10)
【国際特許分類】
【出願番号】特願2010−233723(P2010−233723)
【出願日】平成22年10月18日(2010.10.18)
【出願人】(309033839)株式会社富士通コンピュータテクノロジーズ (8)
【Fターム(参考)】