JP6561891B2 - バーコード領域検知装置、バーコード読み取りシステム、バーコード領域検知方法及びプログラム - Google Patents

バーコード領域検知装置、バーコード読み取りシステム、バーコード領域検知方法及びプログラム Download PDF

Info

Publication number
JP6561891B2
JP6561891B2 JP2016072640A JP2016072640A JP6561891B2 JP 6561891 B2 JP6561891 B2 JP 6561891B2 JP 2016072640 A JP2016072640 A JP 2016072640A JP 2016072640 A JP2016072640 A JP 2016072640A JP 6561891 B2 JP6561891 B2 JP 6561891B2
Authority
JP
Japan
Prior art keywords
image
block
area
barcode
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016072640A
Other languages
English (en)
Other versions
JP2017182679A (ja
Inventor
正 安達
正 安達
俊 釼持
俊 釼持
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2016072640A priority Critical patent/JP6561891B2/ja
Publication of JP2017182679A publication Critical patent/JP2017182679A/ja
Application granted granted Critical
Publication of JP6561891B2 publication Critical patent/JP6561891B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Sorting Of Articles (AREA)

Description

本発明は、バーコード領域検知装置、バーコード読み取りシステム、バーコード領域検知方法及びプログラムに関する。
郵便物の配送先を区分する際、郵便物に付与された配送先の住所の情報を含むバーコードが利用される場合がある。
特許文献1には、関連する技術として、バーコードを読み取る技術が開示されている。
特開2010−140311号公報
ところで、例えば、雑誌などの上にバーコードと同程度のサイズの余白があり、その余白の中にバーコードが印字されるような、複雑な背景の中にバーコードがある場合、バーコードの存在する領域を特定することは困難であった。
本発明は、上記の課題を解決することのできるバーコード領域検知装置、バーコード読み取りシステム、バーコード領域検知方法及びプログラムを提供することを目的としている。
上記目的を達成するために、本発明は、原画像データが示す直交する二軸で表される二次元の原画像における一方の軸方向と他方の軸方向のそれぞれに対して画素を間引いた、間引き後画像データを生成する画像間引き処理部と、前記原画像を区分けした複数のブロックそれぞれにおけるエッジ強度と、前記間引き後画像を区分けした複数のブロックそれぞれにおけるエッジ強度とを算出するエッジ強度算出部と、前記原画像におけるブロックのエッジ強度と、前記間引き後画像におけるブロックのエッジ強度とを各画像の対応する位置のブロック間でそれぞれ比較し、前記各画像の対応する位置において強いエッジ強度を示すブロックを選択し、前記各画像の対応する位置において選択した原画像または間引き後画像におけるブロックを有する画像を示す合成画像データと、前記原画像データとに基づいて、バーコードが存在するバーコード領域を特定するバーコード領域絞り込み部と、を備えるバーコード領域検知装置である。
また、本発明は、上記のバーコード領域検知装置と、前記バーコード領域検知装置が特定したバーコード領域のバーコード読み取るバーコードリーダと、を備えるバーコード読み取りシステムである。
また、本発明は、原画像データが示す直交する二軸で表される二次元の原画像における一方の軸方向と他方の軸方向のそれぞれに対して画素を間引いた、間引き後画像データを生成することと、前記原画像を区分けした複数のブロックそれぞれにおけるエッジ強度と、前記間引き後画像を区分けした複数のブロックそれぞれにおけるエッジ強度とを算出することと、前記原画像におけるブロックのエッジ強度と、前記間引き後画像におけるブロックのエッジ強度とを各画像の対応する位置のブロック間でそれぞれ比較し、前記各画像の対応する位置において強いエッジ強度を示すブロックを選択し、前記各画像の対応する位置において選択した原画像または間引き後画像におけるブロックを有する画像を示す合成画像データと、前記原画像データとに基づいて、バーコードが存在するバーコード領域を特定することと、を含むバーコード領域検知方法である。
また、本発明は、コンピュータに、原画像データが示す直交する二軸で表される二次元の原画像における一方の軸方向と他方の軸方向のそれぞれに対して画素を間引いた、間引き後画像データを生成することと、前記原画像を区分けした複数のブロックそれぞれにおけるエッジ強度と、前記間引き後画像を区分けした複数のブロックそれぞれにおけるエッジ強度とを算出することと、前記原画像におけるブロックのエッジ強度と、前記間引き後画像におけるブロックのエッジ強度とを各画像の対応する位置のブロック間でそれぞれ比較し、前記各画像の対応する位置において強いエッジ強度を示すブロックを選択し、前記各画像の対応する位置において選択した原画像または間引き後画像におけるブロックを有する画像を示す合成画像データと、前記原画像データとに基づいて、バーコードが存在するバーコード領域を特定することと、を実行させるプログラムである。
本発明によれば、バーコード領域検知装置は、複雑な背景の中にバーコードがある場合、バーコードの存在する領域を特定することは困難であった。
本発明の第一の実施形態によるバーコード読み取りシステムの構成を示す図である。 本発明の第一の実施形態によるバーコード領域検知装置の構成を示す図である。 本発明の第一の実施形態においてエッジ画像データを生成する際の原画像上の所定の方向を説明するための図である。 本発明の第一の実施形態における最小値フィルタの処理を説明するための図である。 本発明の第一の実施形態における間引き処理を説明するための図である。 本発明の第一の実施形態によるバーコード領域絞込み部の構成を示す図である。 本発明の第一の実施形態におけるブロック変換画像を示す図である。 本発明の第一の実施形態における射影変換画像を示す図である。 本発明の第一の実施形態における外形矩形の面積の算出を説明するための図である。 本発明の第一の実施形態によるバーコード読み取りシステムの処理フローを示す図である。 本発明の第一の実施形態によるバーコード領域検知装置の処理フローを示す第1の図である。 本発明の第一の実施形態によるバーコード領域検知装置の処理フローを示す第2の図である。 本発明の第一の実施形態におけるバーコードの例を示す図である。 本発明の第一の実施形態における統合ブロックの例を示す図である。 本発明の第一の実施形態において8つのベクトルのそれぞれに対して検知したエリアの例を示す図である。 本発明の第一の実施形態における原画像の例を示す図である。 本発明の第一の実施形態において検知したバーコード領域の例を示す図である。 本発明の第二の実施形態におけるバーコード領域検知装置の最小構成を示す図である。
<第一の実施形態>
本発明の第一の実施形態によるバーコード読み取りシステムについて説明する。
本発明の第一の実施形態によるバーコード読み取りシステム1は、図1に示すように、搬送制御装置200と、画像取得カメラ300と、バーコード領域検知装置400と、バーコードリーダ500と、区分先決定機600と、を備える。
搬送制御装置200は、郵便物100を搬送する。なお、郵便物100には、配送先の住所の情報を含んだバーコードが付与されている。
画像取得カメラ300は、搬送中の郵便物100の濃淡画像を示す濃淡画像データを取得する。
画像取得カメラ300が取得した濃淡画像データは、例えば、0〜255の256階調の濃淡を示す複数の画素で構成される画像を示す画像データである。階調は、0が黒を示し、数値が255に近づくにつれて画像が明るくなる(白に近づく)ことを示す。
なお、画像取得カメラ300が取得した濃淡画像データは、原画像を示す原画像データである。以下、画像取得カメラ300が取得した濃淡画像データを「原画像データ」と記載する。
バーコード領域検知装置400は、郵便物100の原画像データに基づいてバーコードが存在するバーコード領域を検知する。
バーコードリーダ500は、バーコード領域検知装置400が検知したバーコード領域においてバーコードを読み取る。
区分先決定機600は、バーコードリーダ500が読み取ったバーコードが示す配送先の住所に応じて、郵便物100の配送先ごとに設けられた複数の容器700の中から1つの容器700を決定する。
次に、本発明の第一の実施形態によるバーコード領域検知装置400について説明する。
本発明の第一の実施形態によるバーコード領域検知装置400は、図2に示すように、エッジ画像生成部402と、直交エッジ画像生成部403と、ブロック平均処理部404と、ブロック差分処理部405と、最小値フィルタ部406と、処理回数判定部407と、画像間引き処理部430と、バーコード領域絞り込み部401と、繰り返し判定部420と、バーコード領域合成部440と、領域座標出力部450と、を備える。
エッジ画像生成部402は、画像取得カメラ300から原画像データを取得する。
エッジ画像生成部402は、取得した原画像データが示す原画像における注目画素a(i,j)とその注目画素a(i,j)に隣接する8つの画素の合計9つの画素について、隣接する8つの画素のうちの2つを結ぶ複数のベクトルのうち注目画像a(i,j)の一部を通過する8つのベクトル1〜ベクトル8のそれぞれに対してエッジ画像を示すエッジ画像データを生成する。なお、エッジ画像とは、次に示すように、階調の差に基づいて生成される画像のことである。
8つのベクトルは、例えば、図3に示すように、二次元の原画像上の注目画素a(i,j)を中心とする8つの方向(原画像における所定の方向)を向くベクトルである。具体的には、8つのベクトルは、画素a(i−1,j)から画素a(i+1,j)へ向かうベクトル1、画素a(i−1,j)から画素a(i+1,j+1)へ向かうベクトル2、画素a(i−1,j−1)から画素a(i+1,j+1)へ向かうベクトル3、画素a(i−1,j−1)から画素a(i,j+1)へ向かうベクトル4、画素a(i,j−1)から画素a(i,j+1)へ向かうベクトル5、画素a(i+1,j−1)から画素a(i,j+1)へ向かうベクトル6、画素a(i+1,j−1)から画素a(i−1,j+1)へ向かうベクトル7、画素a(i+1,j)から画素a(i−1,j+1)へ向かうベクトル8である。
エッジ画像生成部402は、図3に示すベクトル1に対してエッジ画像データを生成する場合、「画素a(i−1,j)の階調と画素a(i+1,j)の階調との差の絶対値」を算出し、算出した絶対値をベクトル1に対するエッジ画像における画素a(i,j)の階調とする。具体的には、画素a(i−1,j)の階調が203であり画素a(i+1,j)の階調が105である場合、エッジ画像生成部402は、差の絶対値として98を算出する。同様に、エッジ画像生成部402は、原画像におけるすべての画素を注目画素a(i,j)として、上述の絶対値を算出し、すべての画素に対する絶対値(階調の差)を算出し、ベクトル1に対するエッジ画像データを生成する。なお、階調の差が大きいということは、白と黒の差が大きい、すなわち、エッジがはっきりし、エッジ強度が強いことを意味する。
エッジ画像生成部402は、ベクトル1に対する上述のエッジ画像データの生成と同様に、ベクトル2〜ベクトル8のそれぞれに対してエッジ画像データを生成する。
直交エッジ画像生成部403は、エッジ画像生成部402が生成した8つのエッジ画像が示すエッジ画像のそれぞれに対して直交する方向のエッジ画像(以下、「直交エッジ画像」と記載)を示す直交エッジ画像データを生成する。
ブロック平均処理部404は、エッジ画像データにおいて8×8画素を1ブロックとし、1ブロックごとに階調の平均値を求める処理を行い、階調が平均化された複数のブロックで構成される画像(以下、「ブロック平均画像」と記載)を示すブロック平均画像データを生成する。なお、ブロック平均処理部404がこの処理を行うことにより、1ブロックは、平均化された階調を有する1画素で示される。そのため、ブロック平均画像全体のサイズは、縦方向及び横方向のそれぞれについて8分の1に縮小される。
また、ブロック平均処理部404は、直交エッジ画像データにおいて8×8画素を1ブロックとし、1ブロックごとに階調の平均値を求める処理を行い、階調が平均化された複数のブロックで構成される画像(以下、「直交ブロック平均画像」と記載)を示す直交ブロック平均画像データを生成する。なお、ブロック平均処理部404がこの処理を行うことにより、1ブロックは、平均化された階調を有する1画素で示される。そのため、直交ブロック平均画像全体のサイズは、縦方向及び横方向のそれぞれについて8分の1に縮小される。
ブロック差分処理部405(エッジ強度算出部)は、ブロック平均画像データと直交ブロック平均画像データのそれぞれが示す画像どうしの階調の差分を算出して、その階調の差分を示す画像(以下、「ブロック平均差分画像」と記載)を示すブロック平均差分画像データを生成する。
なお、階調の差分は、白と黒の差、すなわち、エッジ強度を示す。
最小値フィルタ部406は、ブロック平均差分画像データが示すブロック平均差分画像に対して、積分を用いて階調を平滑化する一般的に最小値フィルタと呼ばれる処理を行う。
例えば、最小値フィルタ部406は、ブロック平均差分画像データを3×3のブロックを示す3×3ブロックデータごとに分割する。最小値フィルタ部406は、3×3ブロックデータのそれぞれに対して、最小値フィルタの処理を行う。具体的には、最小値フィルタ部406は、図4(a)に示す数値の階調の差分(エッジ強度)を有する3×3ブロックデータに対して最小値フィルタの処理を行う場合、図4(b)に示すように、3×3のブロックの中心のブロックに対して、隣接する8つのブロックそれぞれが示すエッジ強度のうち最小のエッジ強度(図4に示すエッジ強度の場合、ブロック1のエッジ強度30)を適用する。したがって、最小値フィルタ部406が行う処理は、エッジ強度の強いブロックがエッジ強度の弱いブロックに囲まれて孤立している場合に、エッジ強度の強いブロックを、エッジ強度の弱いブロックに置き替えて、3×3ブロックデータを生成する処理である。
処理回数判定部407は、エッジ画像生成部402、直交エッジ画像生成部403、ブロック平均処理部404、ブロック差分処理部405、最小値フィルタ部406のそれぞれが行った画像データ処理が1回目であるか2回目であるかを判定する。
画像間引き処理部430は、処理回数判定部407が画像データ処理が1回目であると判定した場合、原画像データが示す原画像の縦方向と横方向のそれぞれに対して画素を間引き、間引き後画像を示す間引き後画像データを生成する。
具体的には、画像間引き処理部430は、処理回数判定部407が画像データ処理が1回目であると判定した場合、例えば、図5(a)に示す原画像における画素を縦方向に2分の1間引き、横方向に2分の1間引いて、原画像において残った画素を最も近い画素どうしを結合させて図5(b)に示す間引き後画像を示す間引き後画像データを生成する。
なお、本発明の実施形態において「間引く」とは、所定のアルゴリズムに基づいて決定した画素それぞれに対して画像データ処理を行わないことをいう。また、本発明の実施形態において、「間引く」画素は、画像において1つの行を構成する画素の集合体、または、画像において1つの列を構成する画素の集合体の単位で所定のアルゴリズムに基づいて決定される。
バーコード領域絞り込み部401は、図6に示すように、画像合成部408と、二値化部409と、射影変換部410と、有効ブロック群生成部411と、統合ブロック生成部412と、エリア生成部413と、最小矩形探索部414と、領域統合判断部415と、分離領域結合部416と、画像サイズ復元部417と、領域座標取得部418と、領域座標評価部419と、を備える。
画像合成部408は、処理回数判定部407が画像データ処理が2回目であると判定した場合、最小値フィルタ部406が1回目に生成した画像データと2回目に生成した画像データとにおいて対応する各ブロックにおけるエッジ強度どうしを比較する。
画像合成部408は、エッジ強度の比較結果に基づいて、エッジ強度の強いブロックを選択し、選択したブロックを用いて合成画像を示す合成画像データを生成する。
二値化部409は、画像合成部408が生成した合成画像が示す各ブロックにおけるエッジ強度と所定のしきい値が示すエッジ強度とを比較する。
二値化部409は、合成画像におけるブロックが示すエッジ強度がしきい値が示すエッジ強度以上であるか否かを判定する。
二値化部409は、合成画像におけるブロックが示すエッジ強度がしきい値が示すエッジ強度以上であると判定した場合、合成画像におけるそのブロックをエッジ強度が強いことを示す有効ブロック“1(有効ブロック)”に変換する。
また、二値化部409は、合成画像におけるブロックが示すエッジ強度がしきい値が示すエッジ強度未満であると判定した場合、合成画像におけるそのブロックをエッジ強度が弱いことを示す無効ブロック“0(無効ブロック)”に変換する。
二値化部409は、合成画像における各ブロックを有効ブロックまたは無効ブロックに変換して、ブロック変換画像を示すブロック変換画像データを生成する。
例えば、二値化部409は、ベクトル2について、図7に示すブロック変換画像を示すブロック変換画像データを生成する。
なお、図7ではベクトル2についてのブロック変換画像であることを明確にするために、ベクトル2の方向の一直線上位置するブロックを有効ブロックまたは無効ブロックに変換した例を示している。しかしながら、実際には、図7に示すブロック変換画像において、白い四角で示されたブロックについても“1(有効ブロック)”または“0(無効ブロック)”の何れかに変換されている。
射影変換部410は、二値化部409が生成したブロック変換画像データを、エッジ画像生成部402が生成したエッジ画像に対応する8つのベクトル1〜ベクトル8のうち対象としている1つのベクトルが示す方向と、原画像データが示す直交する二軸で表される二次元の原画像における一方の軸方向と他方の軸方向とに基づいて射影変換し、射影変換画像を示す射影変換画像データを生成する。
具体的には、射影変換部410は、二値化部409が生成したブロック変換画像データを、画像取得カメラ300が取得した原画像において基準となる方向(例えば、原画像におけるX軸方向で示される横方向(原画像における一方の軸方向)または原画像におけるY軸方向で示される縦方向(原画像における他方の軸方向))に対して射影変換し、射影変換画像を示す射影変換画像データを生成する。
例えば、射影変換部410は、図7で示したブロック変換画像の複数のブロックに対して、図8に示すように、所定の方向の一線上に位置するブロックごとにY軸方向の座標を同一とする変換を行った画像である射影変換画像を示す射影変換画像データを生成する。
なお、図8において、斜線が付与されたブロックは、図7で示したブロック変換画像において存在しないブロックであり、画像データ処理の対象としないブロックである。
有効ブロック群生成部411は、射影変換部410が生成した射影変換画像データをX軸方向に走査し、隣接する有効ブロックを示す有効ブロックデータどうしを統合して有効ブロック群を示す有効ブロック群データを生成する。
統合ブロック生成部412は、同一の走査線上にありX軸方向の距離が近い有効ブロック群データどうしを統合して統合ブロックを示す統合ブロックデータを生成する。
エリア生成部413は、Y軸方向に隣接する統合ブロックどうしを接続してエリアを生成する。
最小矩形探索部414は、エリア生成部413が生成したすべてのエリアのそれぞれについて、エリアのX軸方向の最小座標と最大座標、Y軸方向の最小座標と最大座標を四角形の頂点とする外接矩形の面積を算出する。
例えば、図9に示すエリアAである場合、最小矩形探索部414は、外接矩形R1の面積を「ΔX×ΔY」と算出する。
最小矩形探索部414は、エリア生成部413が生成したすべてのエリアに対して重心を算出する。
最小矩形探索部414は、すべてのエリアそれぞれに対して、算出した重心を中心としてエリアを1度ずつ回転させ、エリアのX軸方向の最小座標と最大座標、Y軸方向の最小座標と最大座標を四角形の頂点とする外接矩形の面積を算出する。
最小矩形探索部414は、すべてのエリアそれぞれに対して、算出した外接矩形の面積のうち最も小さい面積となる外形矩形の回転角度とそのときの外接矩形の領域とを特定する。
領域統合判断部415は、最小矩形探索部414が生成したすべての最小外接矩形領域に対して、4つの条件、すなわち、任意の2つの最小外接矩形領域どうしの回転角度の差が一定の差未満であることと、それら2つの最小外接矩形領域の中心を結ぶ直線の傾きとそれら2つの最小外接矩形領域に対応するそれぞれの回転角度との差が一定の差未満であることと、それら2つの最小外接矩形領域の間の距離が一定の距離未満であることと、それら2つの最小外接矩形領域の幅の差が一定の差未満であることとがすべて満たされた場合、それら2つの最小外接矩形領域が元々1つの領域であり画像処理の過程で2つに分離したと判断する。
分離領域結合部416は、領域統合判断部415が、2つの最小外接矩形領域が元々1つの領域であり画像処理の過程で2つに分離したと判断した場合に、2つの最小外接矩形領域を結合した結合領域を示す結合領域データを生成する。
画像サイズ復元部417は、結合領域データが示す結合領域に含まれるブロックのサイズ原画像が示すブロックのサイズに変更して復元結合領域を示す復元結合領域データを生成する。
領域座標取得部418は、画像サイズ復元部417が生成した復元結合領域データが示す復元結合領域の面積を取得する。
領域座標評価部419は、領域座標取得部418が取得した復元結合領域の面積と想定されるバーコードの面積とを比較し、面積の差が所定の面積の差の範囲内にある場合に、その復元結合領域をバーコードが存在する領域(以下、「バーコード領域」と記載)と判定する。
繰り返し判定部420は、エッジ画像生成部402、直交エッジ画像生成部403、ブロック平均処理部404、ブロック差分処理部405、最小値フィルタ部406、処理回数判定部407、画像間引き処理部430、画像合成部408、二値化部409、射影変換部410、有効ブロック群生成部411、統合ブロック生成部412、エリア生成部413、最小矩形探索部414、領域統合判断部415、分離領域結合部416、画像サイズ復元部417、領域座標取得部418、領域座標評価部419のそれぞれが行う処理を8つのベクトル1〜ベクトル8のそれぞれに対して繰り返す制御を行う。
バーコード領域合成部440は、8つのベクトル1〜ベクトル8のそれぞれに対してエッジ画像生成部402、直交エッジ画像生成部403、ブロック平均処理部404、ブロック差分処理部405、最小値フィルタ部406、処理回数判定部407、画像間引き処理部430、画像合成部408、二値化部409、射影変換部410、有効ブロック群生成部411、統合ブロック生成部412、エリア生成部413、最小矩形探索部414、領域統合判断部415、分離領域結合部416、画像サイズ復元部417、領域座標取得部418、領域座標評価部419のそれぞれが行う処理により得られた8つのバーコード領域どうしを比較する。
バーコード領域合成部440は、比較した結果、バーコード領域が他のバーコード領域を包含している場合には、包含されているバーコード領域を棄却する。
領域座標出力部450は、バーコード領域合成部440が内包されたバーコード領域を棄却した後のバーコード領域と、対応する回転角度とをバーコードリーダ500に送信する。
次に、本発明の第一の実施形態によるバーコード読み取りシステム1の処理について説明する。
ここでは、図10に示すバーコード読み取りシステム1の処理フローについて説明する。
ユーザは、郵便物100の配送を手配する。
配送業者は、バーコード読み取りシステム1に郵便物100を供給する。
搬送制御装置200は、図1で示した点線で描かれた矢印Uの方向に郵便物100を搬送する(ステップS1)。
画像取得カメラ300は、搬送制御装置200が郵便物100を搬送している間に、郵便物100の表面の画像を取得する(ステップS2)。
画像取得カメラ300がステップS2の処理により取得した画像は、原画像である。
バーコード領域検知装置400は、画像取得カメラ300が取得した原画像を示す原画像データを画像取得カメラ300から取得する。
バーコード領域検知装置400は、取得した原画像データを解析する(ステップS3)。
バーコード領域検知装置400は、解析結果に基づいて、バーコード領域の候補を特定する(ステップS4)。
バーコード領域検知装置400は、特定した1つ以上のバーコード領域の候補の位置を含むバーコード領域情報をバーコードリーダ500に送信する。
バーコードリーダ500は、バーコード領域検知装置400からバーコード領域情報を受信する。
バーコードリーダ500は、受信したバーコード領域情報に基づいてバーコード領域の候補のそれぞれに対してバーコードを読み取る処理を行う(ステップS5)。
バーコードリーダ500は、読み取ることのできたバーコードに含まれる住所の情報を特定する(ステップS6)。
バーコードリーダ500は、特定した住所を示す住所情報を区分先決定機600に送信する。
区分先決定機600は、バーコードリーダ500から住所情報を受信する。
区分先決定機600は、区分先別に分かれた複数の容器700の中から受信した住所の情報に応じた容器700を決定する(ステップS7)。
バーコード読み取りシステム1において、搬送制御装置200、画像取得カメラ300、バーコード領域検知装置400、バーコードリーダ500、区分先決定機600のそれぞれが行う一連の処理が、郵便物100が複数の容器700のうち最初の容器700に到達するまでの間に完了することにより、郵便物100を配送先の住所に応じた容器700に区分することができる。
次に、本発明の第一の実施形態によるバーコード領域検知装置400の処理について説明する。
ここでは、図11A〜図11Bに示すバーコード領域検知装置400の処理フローについて説明する。
エッジ画像生成部402は、画像取得カメラ300から原画像を取得する。
そして、取得した原画像データが示す原画像における注目画素a(i,j)とその注目画素a(i,j)に隣接する8つの画素の合計9つの画素について、隣接する8つの画素のうちの2つを結ぶ複数のベクトルのうち注目画像a(i,j)の一部を通過する8つのベクトル1〜ベクトル8のうちの1つに対してエッジ画像データを生成する(ステップS11)。
具体例として、図3で示したベクトル1に対してエッジ画像を生成する場合について説明する。
エッジ画像生成部402は、画像取得カメラ300から原画像データを取得する。
エッジ画像生成部402は、取得した原画像データが示す原画像における注目画素a(i,j)とその注目画素a(i,j)に隣接する8つの画素の合計9つの画素について、隣接する8つの画素のうちの2つを結ぶ複数のベクトルのうち注目画像a(i,j)の一部を通過する8つのベクトル1〜ベクトル8のそれぞれに対してエッジ画像データを生成する。
エッジ画像生成部402は、図3で示したベクトル1に対してエッジ画像を示すエッジ画像データを生成する場合、「画素a(i−1,j)の階調と画素a(i+1,j)の階調との差分の絶対値」を算出し、算出した絶対値をベクトル1に対するエッジ画像における画素a(i,j)の階調とする。具体的には、画素a(i−1,j)の階調が203であり画素a(i+1,j)の階調が105である場合、エッジ画像生成部402は、差の絶対値として98を算出する。同様に、エッジ画像生成部402は、原画像におけるすべての画素を注目画素a(i,j)として、上述の絶対値を算出し、すべての画素に対する絶対値(階調の差分)を算出し、ベクトル1に対するエッジ画像データを生成する。
エッジ画像生成部402は、生成したエッジ画像データをブロック平均処理部404に送信する。
直交エッジ画像生成部403は、エッジ画像生成部402が生成したエッジ画像データが示すエッジ画像に直交する画像である直交エッジ画像を示す直交エッジ画像データを生成する。(ステップS12)。
具体的には、直交エッジ画像生成部403は、上述のベクトル1に直交するベクトルにおける始点と終点の画素どうしで階調の差分の絶対値を求め、エッジ画像データと同様に直交エッジ画像データを生成する。
直交エッジ画像生成部403は、生成した直交エッジ画像をブロック平均処理部404に送信する。
ブロック平均処理部404は、エッジ画像生成部402からエッジ画像を受信する。
ブロック平均処理部404は、エッジ画像データにおいて8×8画素を1ブロックとし、1ブロックごとの階調の平均値を求める処理を行い、複数のブロック平均画像を示すブロック平均画像データを生成する(ステップS13)。なお、ブロック平均処理部404は、8×8画素から成る1ブロックの階調の平均値を1画素として生成する。ブロック平均処理部404が行うこの処理により、ブロック平均画像全体のサイズは、縦方向及び横方向のそれぞれについて8分の1に縮小される。
ここで、8×8画素のサイズは、バーコードの高さを超えず、バーコードの複数のバーを含むサイズである。バーコードの一例を図12に示す。図12において、符号Hは、バーコードの高さを示している。また、符号Wは、バーの幅を示している。
なお、バーコードのサイズは未知ではあるが、画像上のバーコードの大きさはある程度想定できる。そのため、複数のバーを部分的に含むようなブロックのサイズを決定することができる。ここでは、ブロックのサイズの一例として8×8画素としている。
ブロック平均処理部404は、生成したブロック平均値画像データをブロック差分処理部405に送信する。
また、ブロック平均処理部404は、直交エッジ画像生成部403から直交エッジ画像データを受信する。
また、ブロック平均処理部404は、直交エッジ画像データにおいて8×8画素を1ブロックとし、1ブロックごとの階調の平均値を求める処理を行い、階調が平均化された複数の直交ブロック平均画像を示す直交ブロック平均画像データを生成する(ステップS14)。なお、この処理によりブロック平均画像全体のサイズは、縦方向及び横方向のそれぞれについて8分の1に縮小される。なお、ブロック平均処理部404が行うこの処理により、直交ブロック平均画像全体のサイズは、縦方向及び横方向のそれぞれについて8分の1に縮小される。
ブロック平均処理部404は、生成した直交ブロック平均画像データをブロック差分処理部405に送信する。
ブロック差分処理部405は、ブロック平均処理部404からブロック平均画像データと直交ブロック平均画像データのそれぞれを受信する。
ブロック差分処理部405は、ブロック平均画像データと直交ブロック平均画像データのそれぞれが示す画像どうしの階調の差分を算出して、その差分を示すブロック平均差分画像を示すブロック平均差分画像データを生成する(ステップS15)。
なお、ブロック差分処理部405が生成したブロック平均差分画像データは、1つのブロックにおいてバーコードのバーの外形を多く含む場合に階調の差分の大きい(エッジ強度の強い)ブロックが連続する画像のデータとなる。また、ブロック差分処理部405が生成したブロック平均差分画像データは、1つのブロックにおいて文字のようにさまざまな方向にエッジを持つ場合に階調の差分の大きい(エッジ強度の強い)ブロックが不連続な画像のデータとなる。また、ブロック差分処理部405が生成したブロック平均差分画像データは、どの方向にも強いエッジを持たない階調の差分が平坦な場合に階調の差分の小さいブロックが連続する画像のデータとなる。
ブロック差分処理部405は、生成したブロック平均差分画像データを最小値フィルタ部406に送信する。
最小値フィルタ部406は、ブロック差分処理部405からブロック平均差分画像データを受信する。
最小値フィルタ部406は、ブロック平均差分画像データが示すブロック平均差分画像に対して、最小値フィルタの処理を行う(ステップS16)。
具体的には、最小値フィルタ部406は、ブロック平均差分画像データを3×3のブロックを示す3×3ブロックデータごとに分割する。最小値フィルタ部406は、3×3ブロックデータのそれぞれに対して、最小値フィルタの処理を行う。具体的には、最小値フィルタ部406は、図4(a)で示した数値の階調の差分(エッジ強度)を有する3×3ブロックデータに対して最小値フィルタの処理を行う場合、図4(b)で示したように、3×3のブロックの中心のブロックに対して、隣接する8つのブロックそれぞれが示すエッジ強度のうち最小のエッジ強度(図4で示したエッジ強度の場合、ブロック1のエッジ強度30)を適用する。したがって、最小値フィルタ部406が行う処理は、エッジ強度の強いブロックがエッジ強度の弱いブロックに囲まれて孤立している場合に、エッジ強度の強いブロックを、エッジ強度の弱いブロックに置き替えて、3×3ブロックデータを生成する処理である。
処理回数判定部407は、エッジ画像生成部402、直交エッジ画像生成部403、ブロック平均処理部404、ブロック差分処理部405、最小値フィルタ部406のそれぞれが行った画像データ処理が1回目であるか2回目であるかを判定する(ステップS17)。
画像間引き処理部430は、処理回数判定部407が処理データ処理が1回目であると判定した場合(ステップS17において“1回目”)、原画像データが示す原画像の縦方向と横方向のそれぞれに対して画素を間引き、間引き後画像を示す間引き後画像データを生成する(ステップS18)。
具体的には、画像間引き処理部430は、処理回数判定部407が画像データ処理が1回目であると判定した場合、例えば、図5(a)で示した原画像における画素を縦方向に2分の1間引き、横方向に2分の1間引いて、原画像において残った画素を最も近い画素どうしを結合させて図5(b)で示した間引き後画像を示す間引き後画像データを生成する。
画像間引き処理部430は、ステップS11の処理に戻す。
エッジ画像生成部402、直交エッジ画像生成部403、ブロック平均処理部404、ブロック差分処理部405、最小値フィルタ部406のそれぞれは、画像間引き処理部430が生成した間引き後画像データに対して、画像取得カメラ300が取得した原画像を示す原画像データの場合と同様の処理を行う。
画像合成部408は、処理回数判定部407が画像データ処理が2回目であると判定した場合(ステップS17において“2回目”)、最小値フィルタ部406が1回目に生成した画像データと2回目に生成した画像データとにおいて対応する各ブロックにおけるエッジ強度どうしを比較する。
画像合成部408は、エッジ強度の比較結果に基づいて、エッジ強度の強いブロックを選択し、選択したブロックを用いて合成画像を示す合成画像データを生成する(ステップS19)。
画像合成部408は、生成した合成画像データを二値化部409に送信する。
ここで、バーコード領域検知装置400が行うステップS17〜ステップS19の処理は、バーコードにおいて最も幅の狭いナローバーと最も幅の広いワイドバーの両方に対応するための処理である。
バーコードは、バー幅の異なるバーで構成されている。最も幅の狭いバーと最も幅の広いバーとでは、バーコードの規格にもよるが、バーの幅は約2〜4倍異なる。上記のステップS11〜ステップS16の処理は、最も幅の狭いバーと最も幅の広いバーの両方に対して同時に有効な処理ではない。そこで、画像解像度にもよるが、例えば、原画像を使用して最も幅の狭いバーに対応し、間引き後画像を使用して最も幅の広いバーに対応するためにステップS17〜ステップS19の処理を行っている。
なお、2回目に生成したブロック平均差分画像データは、縦方向と横方向のそれぞれに2分の1ずつ間引きされた画像をもとに生成されている。そのため、画像合成部408は、ステップS19の処理においてブロック平均差分画像データどうしを合成する場合、2回目に生成したブロック平均差分画像データを縦方向と横方向のそれぞれに2倍に拡大して、1回目に生成したブロック平均差分画像データと同一のサイズにした後にブロック平均差分画像データどうしを比較し選択して合成画像を生成する。画像合成部408が生成した合成画像は、バーコードにおける最も幅の狭いバーと最も幅の広いバーの両方に対して階調の差分が大きい(エッジ強度の強い)ことを示す合成画像である。
二値化部409は、画像合成部408から合成画像を受信する。
二値化部409は、画像合成部408が生成した合成画像が示す各ブロックにおけるエッジ強度と所定のしきい値が示すエッジ強度とを比較する。
二値化部409は、合成画像におけるブロックが示すエッジ強度がしきい値が示すエッジ強度以上であるか否かを判定する。
二値化部409は、合成画像におけるブロックが示すエッジ強度がしきい値が示すエッジ強度以上であると判定した場合、合成画像におけるそのブロックをエッジ強度が強いことを示す有効ブロック“1(有効ブロック)”に変換する。
また、二値化部409は、合成画像におけるブロックが示すエッジ強度がしきい値が示すエッジ強度未満であると判定した場合、合成画像におけるそのブロックをエッジ強度が弱いことを示す無効ブロック“0(無効ブロック)”に変換する。
二値化部409は、合成画像における各ブロックを有効ブロックまたは無効ブロックに変換して、ブロック変換画像を示すブロック変換画像データを生成する(ステップS20)。
例えば、二値化部409は、ベクトル2について、図7で示したブロック変換画像を示すブロック変換画像データを生成する。
二値化部409は、生成したブロック変換画像データを射影変換部410に送信する。
射影変換部410は、二値化部409からブロック変換画像データを受信する。
射影変換部410は、二値化部409が生成したブロック変換画像データを、エッジ画像生成部402が生成したエッジ画像に対応する8つのベクトル1〜ベクトル8のうち対象としている1つのベクトルが示す方向と、原画像データが示す直交する二軸で表される二次元の原画像における一方の軸方向と他方の軸方向とに基づいて射影変換し、射影変換画像を示す射影変換画像データを生成する(ステップS21)。
具体的には、射影変換部410は、二値化部409が生成したブロック変換画像データを、画像取得カメラ300が取得した原画像において基準となる方向(例えば、原画像におけるX軸方向で示される横方向(原画像における一方の軸方向)または原画像におけるY軸方向で示される縦方向(原画像における他方の軸方向))に対して射影変換し、射影変換画像を示す射影変換画像データを生成する。
例えば、射影変換部410は、図7で示したブロック変換画像の複数のブロックに対して、図8で示したように、所定の方向の一線上に位置するブロックごとにY軸方向の座標を同一とする変換を行った画像である射影変換画像を示す射影変換画像データを生成する。
射影変換部410は、生成した射影変換画像データを有効ブロック群生成部411に送信する。
有効ブロック群生成部411は、射影変換部410から射影変換画像データを受信する。
有効ブロック群生成部411は、射影変換部410が生成した射影変換画像データをX軸方向に走査し、隣接する有効ブロックを示す有効ブロックデータどうしを統合して有効ブロック群を示す有効ブロック群データを生成する(ステップS22)。
例えば、有効ブロック群生成部411は、有効ブロックとなったブロックを縦横4方向に隣接するという条件で接続して領域を形成する。その際、図3で示したベクトル1またはベクトル5のように、画像の走査方向(X軸方向)または副走査方向(Y軸方向)に一致している方向には、プログラムなどで処理を行いやすい。しかしながら、その他の方向に関しては、後段の処理を簡単にするために、以下のような画像の射影変換を行う。
有効ブロック群生成部411は、例えば、図3で示したベクトル2の方向について、注目ブロックは図7で示したように斜め下方に向かって並んで存在する。
ベクトル2の方向に基づいて射影変換された画像が図8で示した画像である。
有効ブロック群生成部411は、射影変換後の画像上で、同じ走査線上にある有効ブロックを接続するため、図8で示した注目ブロックの行において隣接する有効ブロック同士を接続して1つの有効ブロック群とした有効ブロック群データを生成する。
有効ブロック群生成部411は、生成したすべての有効ブロック群データをエリア生成部413に送信する。
統合ブロック生成部412は、有効ブロック群生成部411からすべての有効ブロック群データを受信する。
統合ブロック生成部412は、同一の走査線上にありX軸方向の距離が近い有効ブロック群データどうしを統合して統合ブロックを示す統合ブロックデータを生成する(ステップS23)。
例えば、図8で示した射影変換画像の場合、統合ブロック生成部412は、同一の行で距離が近い有効ブロック群どうしである有効ブロック群aと有効ブロック群bのデータを統合して統合ブロックを示す統合ブロックデータを生成する。
統合ブロック生成部412は、統合ブロックデータを生成する処理をすべての行について行う。
統合ブロック生成部412は、生成したすべての統合ブロックデータをエリア生成部413に送信する。
エリア生成部413は、統合ブロック生成部412からすべての統合ブロックデータを受信する。
エリア生成部413は、Y軸方向に隣接する統合ブロックの統合ブロックデータどうしを統合してエリアを示すエリアデータを生成する(ステップS24)。
例えば、統合ブロック生成部412が統合ブロックを生成する処理を行い図13に示す統合ブロックを示す統合ブロックデータが生成された場合、エリア生成部413は、Y軸方向に隣接する統合ブロックを示す統合ブロックデータどうしを統合してエリア1を示すエリア1データとエリア2を示すエリア2データのそれぞれを生成する。
なお、エリア生成部413が行うこの処理は、一種のラベリング処理である。
エリア生成部413は、生成したすべてのエリアデータを最小矩形探索部414に送信する。
最小矩形探索部414は、エリア生成部413からすべてのエリアデータを受信する。
最小矩形探索部414は、エリア生成部413から受信したすべてのエリアデータが示すエリアのそれぞれについて、エリアのX軸方向の最小座標と最大座標、Y軸方向の最小座標と最大座標を四角形の頂点とする外接矩形の面積を算出する。
例えば、図9に示すエリアAである場合、最小矩形探索部414は、外接矩形R1の面積を「ΔX×ΔY」と算出する。
最小矩形探索部414は、エリア生成部413が生成したすべてのエリアに対して重心を算出する。
最小矩形探索部414は、すべてのエリアそれぞれに対して、算出した重心を中心としてエリアを例えば−45度〜+45度の範囲で1度ずつ回転させ、エリアのX軸方向の最小座標と最大座標、Y軸方向の最小座標と最大座標を四角形の頂点とする外接矩形の面積を算出する。
最小矩形探索部414は、すべてのエリアそれぞれに対して、算出した外接矩形の面積のうち最も小さい面積となる外形矩形の回転角度とそのときの外接矩形の領域とを特定する(ステップS25)。
なお、最小矩形探索部414は、最小矩形の傾きが「8方向の範囲角度(180度÷8)+誤差」の範囲内すなわち対象とするベクトルが示す向きに対して−15度〜+15度程度であった場合、その回転角度はバーコード領域を特定する回転角度であると判定する。
また、最小矩形探索部414は、回転角度が対象とするベクトルが示す向きに対して−15度〜+15度程度の範囲から外れた場合、その回転角度はバーコード領域を特定する回転角度ではないと判定する。
領域統合判断部415は、最小矩形探索部414が生成したすべての最小外接矩形領域のそれぞれに対して、4つの条件のすべてが満足された場合、それら2つの最小外接矩形領域が元々1つの領域であり画像処理の過程で2つに分離したと判断する(ステップS26)。
4つの条件の1つ目は、任意の2つの最小外接矩形領域どうしの回転角度の差が一定の差未満(例えば、5度未満)であることである。
この4つの条件の1つ目は、結合すべき領域の回転角度は同じ方向(平行)であることを示す。
4つの条件の2つ目は、2つの最小外接矩形領域の中心を結ぶ直線の傾きと、それら2つの最小外接矩形領域に対応するそれぞれの回転角度との差が一定の差未満(例えば、5度未満)であることである。
この4つの条件の2つ目は、1つ目の条件を満たしていても、隣接する別のバーコードのように平行であるが段違いである場合に結合しないようにする条件である。
4つの条件の3つ目は、2つの最小外接矩形領域の間の距離が一定の距離未満(例えば、8ブロック未満)であることである。
この4つの条件の3つ目は、近隣する雑音領域を結合しないように、所定以上の距離の差がある場合には結合しないようにする条件である。
4つの条件の4つ目は、2つの最小外接矩形領域の幅の差が一定の差未満(例えば、4ブロック未満)であることである。
この4つの条件の4つ目は、同一のバーコードでないものどうしを結合しないようにするための条件である。
分離領域結合部416は、領域統合判断部415が、2つの最小外接矩形領域が元々1つの領域であり画像処理の過程で2つに分離したと判断した場合に、2つの最小外接矩形領域を結合した結合領域を示す結合領域データを生成する(ステップS27)。
分離領域結合部416は、生成した結合領域データを画像サイズ復元部417に送信する。
画像サイズ復元部417は、分離領域結合部416から結合領域を受信する。
画像サイズ復元部417は、結合領域データが示す結合領域に含まれるブロックのサイズ原画像が示すブロックのサイズに変更して復元結合領域を示す復元結合領域データを生成する(ステップS28)。
画像サイズ復元部417は、生成した復元結合領域データを領域座標取得部418に送信する。
領域座標取得部418は、画像サイズ復元部417から復元結合領域データを受信する。
領域座標取得部418は、画像サイズ復元部417が生成した復元結合領域データが示す復元結合領域の面積を取得する(ステップS29)。
領域座標取得部418は、取得した復元結合領域の面積を示す情報を領域座標評価部419に送信する。
領域座標評価部419は、領域座標取得部418から復元結合領域の面積を示す情報を受信する。
領域座標評価部419は、領域座標取得部418が取得した復元結合領域の面積と想定されるバーコードの面積とを比較する。
領域座標評価部419は、比較結果に基づいて、復元結合領域の面積と想定されるバーコードの面積の差が所定の面積の差の範囲内にあるか否かを判定する(ステップS30)。
領域座標評価部419は、復元結合領域の面積と想定されるバーコードの面積の差が所定の面積の差の範囲内にないと判定した場合(ステップS30においてNO)、バーコード領域以外の領域が検知されたと判定し、その復元結合領域を棄却する(ステップS31)。
領域座標評価部419は、復元結合領域の面積と想定されるバーコードの面積の差が所定の面積の差の範囲内にあると判定した場合(ステップS30においてYES)、その復元結合領域をバーコード領域と判定して、バーコード領域を特定する(ステップS32)。
繰り返し判定部420は、エッジ画像生成部402、直交エッジ画像生成部403、ブロック平均処理部404、ブロック差分処理部405、最小値フィルタ部406、処理回数判定部407、画像間引き処理部430、画像合成部408、二値化部409、射影変換部410、有効ブロック群生成部411、統合ブロック生成部412、エリア生成部413、最小矩形探索部414、領域統合判断部415、分離領域結合部416、画像サイズ復元部417、領域座標取得部418、領域座標評価部419のそれぞれが行う処理を8つのベクトル1〜ベクトル8のそれぞれに対して繰り返す制御を行う(ステップS33)。
繰り返し判定部420がステップS33の処理を行った場合、例えば、図14に示すような8つのベクトルのそれぞれに対して検知したバーコード領域を示す画像が得られる。なお、図14において、バーコード領域として検出された領域の外周の座標は実線で囲まれている。図14から、ベクトル1、ベクトル7、ベクトル8のそれぞれに対応する画像それぞれにおいて、1つ以上のバーコード領域が検出されていることが分かる。
バーコード領域合成部440は、8つのベクトル1〜ベクトル8のそれぞれに対してエッジ画像生成部402、直交エッジ画像生成部403、ブロック平均処理部404、ブロック差分処理部405、最小値フィルタ部406、処理回数判定部407、画像間引き処理部430、画像合成部408、二値化部409、射影変換部410、有効ブロック群生成部411、統合ブロック生成部412、エリア生成部413、最小矩形探索部414、領域統合判断部415、分離領域結合部416、画像サイズ復元部417、領域座標取得部418、領域座標評価部419のそれぞれが行う処理により得られた8つのバーコード領域どうしを比較する。
バーコード領域合成部440は、比較した結果、バーコード領域が他のバーコード領域を包含している場合には、包含されている小さいバーコード領域を棄却して、バーコード領域を生成する(ステップS34)。
バーコード領域合成部440は、生成した棄却後のバーコード領域を示す情報を領域座標出力部450に送信する。
領域座標出力部450は、バーコード領域合成部440から棄却後のバーコード領域を示す情報を受信する。
領域座標出力部450は、バーコード領域合成部440が内包された小さいバーコード領域を棄却した後のバーコード領域と、対応する回転角度とをバーコードリーダ500に送信する(ステップS35)。
このようにすれば、バーコード領域検知装置400は、複雑な背景の中にバーコードがある場合であっても、バーコードを検知することができる。
(実施例)
本発明を実際の大型郵便物に対して適用した例を図14、図15、図16に示す。図15が原画像、図14が8つのベクトル1〜ベクトル8のそれぞれに対して生成したエリアデータが示すエリアを示す画像であり、検知した領域を実線で囲っている。図16はバーコードの検知結果を示す画像で、バーコード領域を実線で表している。検出した領域は封筒上の2つのバーコードを囲っており、この領域座標を目安に、後段のバーコード認識処理を容易に自動実行できる。
以上、本発明の第一の実施形態によるバーコード読み取りシステム1について説明した。
本発明の第一の実施形態によるバーコード読み取りシステム1において、バーコード領域検知装置400は、画像間引き処理部430、ブロック差分処理部405(エッジ強度算出部)、バーコード領域絞り込み部401と、を備える。画像間引き処理部430は、原画像データが示す直交する二軸で表される二次元の原画像における一方の軸方向と他方の軸方向のそれぞれに対して画素を間引いた、間引き後画像データを生成する。ブロック差分処理部405は、原画像を区分けした複数のブロックそれぞれにおけるエッジ強度と、間引き後画像を区分けした複数のブロックそれぞれにおけるエッジ強度とを算出する。バーコード領域絞り込み部401は、原画像におけるブロックのエッジ強度と、間引き後画像におけるブロックのエッジ強度とを各画像の対応する位置のブロック間でそれぞれ比較する。バーコード領域絞り込み部401は、各画像の対応する位置において強いエッジ強度を示すブロックを選択する。バーコード領域絞り込み部401は、各画像の対応する位置において選択した原画像または間引き後画像におけるブロックを有する画像を示す合成画像データと、原画像データとに基づいて、バーコードが存在するバーコード領域を特定する。
このようにすれば、バーコード領域検知装置400は、最も幅の狭いバーと最も幅の広いバーの両方を検知することができ、バーコード領域をより確実に検知することができる。その結果、バーコード領域検知装置400は、複雑な背景の中にバーコードがある場合であっても、バーコードを検知することができる。
<第二の実施形態>
本発明の第二の実施形態によるバーコード領域検知装置について説明する。
本発明の第二の実施形態によるバーコード領域検知装置400は、本発明の最小構成のバーコード領域検知装置である。
本発明の第二の実施形態によるバーコード領域検知装置400は、図17に示すように、少なくとも、画像間引き処理部430、エッジ強度算出部405、バーコード領域絞り込み部401と、を備える。
画像間引き処理部430は、原画像データが示す直交する二軸で表される二次元の原画像における一方の軸方向と他方の軸方向のそれぞれに対して画素を間引いた、間引き後画像データを生成する。
エッジ強度算出部405は、原画像を区分けした複数のブロックそれぞれにおけるエッジ強度と、間引き後画像を区分けした複数のブロックそれぞれにおけるエッジ強度とを算出する。
バーコード領域絞り込み部401は、原画像におけるブロックのエッジ強度と、間引き後画像におけるブロックのエッジ強度とを各画像の対応する位置のブロック間でそれぞれ比較する。
バーコード領域絞り込み部401は、各画像の対応する位置において強いエッジ強度を示すブロックを選択する。
バーコード領域絞り込み部401は、各画像の対応する位置において選択した原画像または間引き後画像におけるブロックを有する画像を示す合成画像データと、原画像データとに基づいて、バーコードが存在するバーコード領域を特定する。
このようにすれば、バーコード領域検知装置400は、最も幅の狭いバーと最も幅の広いバーの両方を検知することができ、バーコード領域をより確実に検知することができる。その結果、バーコード領域検知装置400は、複雑な背景の中にバーコードがある場合であっても、バーコードを検知することができる。
本発明の実施形態における処理フローは、適切な処理が行われる範囲において、処理の順番が入れ替わってもよい。
本発明の実施形態における記憶部のそれぞれは、適切な情報の送受信が行われる範囲においてどこに備えられていてもよい。また、記憶部のそれぞれは、適切な情報の送受信が行われる範囲において複数存在しデータを分散して記憶していてもよい。
本発明の実施形態について説明したが、上述の搬送制御装置200、画像取得カメラ300、バーコード領域検知装置400、バーコードリーダ500、区分先決定機600のそれぞれは内部に、コンピュータシステムを有していてもよい。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータがそのプログラムを実行するようにしてもよい。
また、上記プログラムは、前述した機能の一部を実現してもよい。さらに、上記プログラムは、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるファイル、いわゆる差分ファイル(差分プログラム)であってもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例であり、発明の範囲を限定しない。これらの実施形態は、発明の要旨を逸脱しない範囲で、追加、種々の省略、置き換え、変更を行ってよい。
1・・・バーコード読み取りシステム
100・・・郵便物
200・・・搬送制御装置
300・・・画像取得カメラ
400・・・バーコード領域検知装置
402・・・エッジ画像生成部
403・・・直交エッジ画像生成部
404・・・ブロック平均処理部
405・・・ブロック差分処理部(エッジ強度算出部)
406・・・最小値フィルタ部
407・・・処理回数判定部
408・・・画像合成部
409・・・二値化部
410・・・射影変換部
411・・・有効ブロック群生成部
412・・・統合ブロック生成部
413・・・エリア生成部
414・・・最小矩形探索部
415・・・領域統合判断部
416・・・分離領域結合部
417・・・画像サイズ復元部
418・・・領域座標取得部
419・・・領域座標評価部
420・・・繰り返し判定部
430・・・画像間引き処理部
440・・・バーコード領域合成部
450・・・領域座標出力部
500・・・バーコードリーダ
600・・・区分先決定機
700・・・容器

Claims (9)

  1. 原画像データが示す直交する二軸で表される二次元の原画像における一方の軸方向と他方の軸方向のそれぞれに対して画素を間引いた、間引き後画像データを生成する画像間引き処理部と、
    前記原画像を区分けした複数のブロックそれぞれにおけるエッジ強度と、前記間引き後画像を区分けした複数のブロックそれぞれにおけるエッジ強度とを算出するエッジ強度算出部と、
    前記原画像におけるブロックのエッジ強度と、前記間引き後画像におけるブロックのエッジ強度とを各画像の対応する位置のブロック間でそれぞれ比較し、前記各画像の対応する位置において強いエッジ強度を示すブロックを選択し、前記各画像の対応する位置において選択した原画像または間引き後画像におけるブロックを有する画像を示す合成画像データと、前記原画像データとに基づいて、バーコードが存在するバーコード領域を特定するバーコード領域絞り込み部と、
    を備えるバーコード領域検知装置。
  2. 前記バーコード領域絞り込み部は、
    前記合成画像データの生成に用いられた複数のブロックのうち隣接する所定しきい値以上のエッジ強度を示す有効ブロックそれぞれを一つの領域と判定し、その領域に含まれる複数のブロックである有効ブロック群を示す有効ブロック群データを生成し、
    生成した前記有効ブロック群データに基づいて、前記バーコード領域を特定する、
    請求項1に記載のバーコード領域検知装置。
  3. 前記バーコード領域絞り込み部は、
    前記原画像における前記所定の方向の仮想線上に位置し、かつ、前記一方の軸方向に対して距離が近い前記有効ブロック群それぞれを統合して統合ブロックを示す統合ブロックデータを生成し、
    生成した前記統合ブロックデータに基づいて、前記バーコード領域を特定する、
    請求項2に記載のバーコード領域検知装置。
  4. 前記バーコード領域絞り込み部は、
    前記他方の軸方向に対して隣接する前記統合ブロックそれぞれを統合してバーコード候補エリアを示すエリアデータを生成し、
    生成した前記エリアデータに基づいて、前記バーコード領域を特定する、
    請求項3に記載のバーコード領域検知装置。
  5. 前記バーコード領域絞り込み部は、
    前記バーコード候補エリアのそれぞれについて、重心を算出し、
    前記バーコード候補エリアを前記重心を中心に所定の回転角度で回転させ、
    回転させるごとに前記バーコード候補エリアを囲む前記他方の軸方向に平行な2辺と前記一方の軸方向に平行な2辺とを有する四角形を特定して当該四角形の面積を算出し、
    算出した四角形の面積のうち最も面積の小さい四角形を特定し、
    特定した四角形の領域と対応する回転角度を示す情報をバーコードリーダに送信する、
    請求項4に記載のバーコード領域検知装置。
  6. 前記バーコード領域絞り込み部は、
    前記合成画像データの生成に用いられた複数のブロックのすべてに対して、所定の方向の一線上に位置するブロックごとに前記他方の軸方向の座標を同一とする変換を行う、
    請求項1から請求項5の何れか一項に記載のバーコード領域検知装置。
  7. 請求項1から請求項6の何れか一項に記載のバーコード領域検知装置と、
    前記バーコード領域検知装置が特定したバーコード領域のバーコード読み取るバーコードリーダと、
    を備えるバーコード読み取りシステム。
  8. 原画像データが示す直交する二軸で表される二次元の原画像における一方の軸方向と他方の軸方向のそれぞれに対して画素を間引いた、間引き後画像データを生成することと、
    前記原画像を区分けした複数のブロックそれぞれにおけるエッジ強度と、前記間引き後画像を区分けした複数のブロックそれぞれにおけるエッジ強度とを算出することと、
    前記原画像におけるブロックのエッジ強度と、前記間引き後画像におけるブロックのエッジ強度とを各画像の対応する位置のブロック間でそれぞれ比較し、前記各画像の対応する位置において強いエッジ強度を示すブロックを選択し、前記各画像の対応する位置において選択した原画像または間引き後画像におけるブロックを有する画像を示す合成画像データと、前記原画像データとに基づいて、バーコードが存在するバーコード領域を特定することと、
    を含むバーコード領域検知方法。
  9. コンピュータに、
    原画像データが示す直交する二軸で表される二次元の原画像における一方の軸方向と他方の軸方向のそれぞれに対して画素を間引いた、間引き後画像データを生成することと、
    前記原画像を区分けした複数のブロックそれぞれにおけるエッジ強度と、前記間引き後画像を区分けした複数のブロックそれぞれにおけるエッジ強度とを算出することと、
    前記原画像におけるブロックのエッジ強度と、前記間引き後画像におけるブロックのエッジ強度とを各画像の対応する位置のブロック間でそれぞれ比較し、前記各画像の対応する位置において強いエッジ強度を示すブロックを選択し、前記各画像の対応する位置において選択した原画像または間引き後画像におけるブロックを有する画像を示す合成画像データと、前記原画像データとに基づいて、バーコードが存在するバーコード領域を特定することと、
    を実行させるプログラム。
JP2016072640A 2016-03-31 2016-03-31 バーコード領域検知装置、バーコード読み取りシステム、バーコード領域検知方法及びプログラム Active JP6561891B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016072640A JP6561891B2 (ja) 2016-03-31 2016-03-31 バーコード領域検知装置、バーコード読み取りシステム、バーコード領域検知方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016072640A JP6561891B2 (ja) 2016-03-31 2016-03-31 バーコード領域検知装置、バーコード読み取りシステム、バーコード領域検知方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2017182679A JP2017182679A (ja) 2017-10-05
JP6561891B2 true JP6561891B2 (ja) 2019-08-21

Family

ID=60007182

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016072640A Active JP6561891B2 (ja) 2016-03-31 2016-03-31 バーコード領域検知装置、バーコード読み取りシステム、バーコード領域検知方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6561891B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5956941B2 (ja) * 2013-02-18 2016-07-27 株式会社キーエンス 光学コード読取システム及び光学コードの読取制御方法

Also Published As

Publication number Publication date
JP2017182679A (ja) 2017-10-05

Similar Documents

Publication Publication Date Title
JP4911340B2 (ja) 二次元コード検出システムおよび二次元コード検出プログラム
JP3910447B2 (ja) マルチ解像度ラベルロケータ
JP2832646B2 (ja) 2次元cddイメージ中のバーコード・シンボルの精細な方位角を求める方法および装置
US9367758B2 (en) Feature extraction device, feature extraction method, and feature extraction program
US8590794B2 (en) Barcode recognion method and computer product thereof
US20050242186A1 (en) 2D rectangular code symbol scanning device and 2D rectangular code symbol scanning method
JP4535584B2 (ja) ディジタル画像処理方法
JP2002133426A (ja) 多値画像から罫線を抽出する罫線抽出装置
CN108021837B (zh) 一种条形码检测方法、条形码检测装置及电子设备
CN109741551B (zh) 一种商品识别结算方法、装置及系统
US20170372156A1 (en) Table data recovering in case of image distortion
US5841905A (en) Business form image identification using projected profiles of graphical lines and text string lines
KR20090109047A (ko) 화상 처리 장치, 화상 처리 방법 및 기록 매체
US6880758B2 (en) System and method for identifying object information
JP5294798B2 (ja) 画像処理装置及び画像処理方法
JP2010165052A (ja) 画像処理装置及び画像処理方法
JP4062987B2 (ja) 画像の領域分割方法、画像の領域分割装置、画像の領域分割プログラム
JP6106808B2 (ja) 文書内バーコード配置特定
JP6561891B2 (ja) バーコード領域検知装置、バーコード読み取りシステム、バーコード領域検知方法及びプログラム
JP6448204B2 (ja) 物体検出装置、物体検出方法及びプログラム
US11570331B2 (en) Image processing apparatus, image processing method, and storage medium
JP6567384B2 (ja) 情報認識装置、情報認識方法、およびプログラム
JP7144384B2 (ja) オブジェクト検出装置、方法及びプログラム
JP4872895B2 (ja) 顔中心線検出装置
JP5702960B2 (ja) 画像処理装置、画像処理方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190617

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190625

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190708

R150 Certificate of patent or registration of utility model

Ref document number: 6561891

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150