(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
以下、本発明の実施形態について、図面を参照しながら説明する。本実施形態では、2次元コードの代表例としてQRコード(登録商標)を読み取る画像読取装置について説明する。
【0015】
図1は、ベルト102に流れるゴミ袋101に付された2次元コードに対して画像読取装置100が撮影している様子を説明する図である。
図1に示すように、画像読取装置100のカメラ103がベルト102側に向いており、ゴミ袋101の2次元コードを撮影する。そして、画像読取装置100で2次元コードを読み取り、ゴミ袋101に詰められているゴミの中身を判別し、その判別結果に基づいてベルト102に流れるゴミ袋101が自動で分別される。また、カメラ103が向いている方向のベルト102の上部には、センサー104が取り付けられており、センサー104がゴミ袋101を感知すると、通信回線105を介してその情報が画像読取装置100に入力され、画像読取装置100側で2次元コードの撮影(読取)を開始する。そして、ゴミの中身の判別結果が、通信回線105を介してゴミ袋101を分別する自動分別装置106に転送される。
【0016】
本実施形態では、詳細は後述するが、
図5に示すような2次元コードと異なる色の制御点もしくは線が付与された2次元コードがゴミ袋101に付されており、ゴミ袋のしわによって2次元コードが歪んだ場合であっても、簡単に情報を読み取ることができる。
【0017】
図2は、本実施形態に係る画像読取装置100のハードウェア構成例を示すブロック図である。
図2において、CPU201は、画像読取装置100全体を制御するものであり、必要な時にROM203に記憶されたプログラムを読み出してRAM202に展開し、本実施形態に係る処理を実行する。画像入力装置204は、
図1に示すカメラ103に相当するものであり、CCD等の撮像素子や、アナログ信号をデジタル信号に変換するA/D変換回路、撮影した画像に対して所定の画像処理を施す信号処理回路等が含まれている。
【0018】
入力装置205は、ユーザの操作に応じてコマンドを入力する操作部材である。記憶装置206は例えばハードディスクであり、データを記憶するためのものである。画像表示装置207は例えば液晶ディスプレイであり、読み取りエラーなどを警告表示したり、撮影している2次元コードをリアルタイムで表示したりする。ネットワークインタフェースカード(NIC)208は、LAN210を介して他の情報機器とデータをやり取りするためのインターフェースである。メインバス209は前述した各構成を接続するためのバスである。
【0019】
図3は、本実施形態に係る画像読取装置100の機能構成例を示すブロック図である。また、
図15は、本実施形態において、2次元コードを読み取る処理手順の一例を示すフローチャートである。以下、
図3及び
図15を参照しながら、歪みを有する2次元コードを読み取る手順について説明する。
【0020】
まず、
図15のステップS1501において、撮像部301は、
図2の画像入力装置204を用いて2次元コードを撮像してその画像データを入力する。そして、ステップS1502において、領域解析部302は、入力された画像データに係る2次元コード(以下、2次元コード画像と称す)において、個々のセルの領域を解析する。例えば2次元コードが歪んでいる場合には、個々のセルは正方形にならないため、歪んだ状態のセルの領域を解析する必要がある。領域解析部302では、
図4に示すように、黒色のセル401及び白色のセル402の領域を区分けする。
【0021】
また、領域解析部302は、2次元コード画像を解析し、後述する制御点もしくは線が2次元コードに付与されているか否かについても判定する。そして、制御点もしくは線が付与されていない場合には、次のステップS1503の処理として2次元コード画像に制御点もしくは線を付与する処理を行う。一方、2次元コードに予め制御点もしくは線が付与されていた場合には、ステップS1503の処理を省略し、2次元コード画像の歪みを補正する処理を行うことになる。
【0022】
次に、ステップS1503において、制御点付与部303は、歪んでいる2次元コードから後述する方法によりセルを正方形に変換するために必要な基準となる制御点もしくは線を2次元コード画像に付与する。また、領域解析部302により解析された個々のセルの境界線を2次元コード画像に付与する。
【0023】
以下、制御点または線が付与された2次元コードについて説明する。
図5(a)〜
図5(d)は、線が付与された2次元コードの例を示す図であり、
図5(e)及び
図5(f)は、制御点が付与された2次元コードの例を示す図である。
【0024】
本実施形態においては、後述する歪み補正部304において2次元コード画像を補正するためには、制御点(または線)を取得する必要がある。そこで、領域解析部302により黒色セル401及び白色セル402の区分けがなされているため、各セルの行及び列の情報を取得することができる。したがって、
図5(a)〜
図5(c)に示すような例の場合は、所定の周期で行及び列を区切るような線を付与し、
図5(e)及び
図5(f)に示すような例の場合は、所定の周期でセルの角に制御点を付与する。
【0025】
なお、制御点の位置は、2次元コードの機能を妨げない位置であれば、任意の密度で可能である。最も周期を短くする場合には、各セルの境界領域に線を付与することによって、各セルの四隅に制御点を付与することになる。周期を短くすると、歪み補正の精度は向上するが、計算には多くの時間がかかるため、場合によって密度を変更するようにする。また、所定の周期ではなく、
図5(d)に示すように不規則な並びによって線や制御点を付与してもよい。さらに、制御点もしくは線は、2次元コードを構成するセルと区別できるように、2次元コードとは異なる色にすることが好ましい。
【0026】
また、セルそのものに制御点として色を付すようにしてもよい。この場合、白及び黒の2値データに変換する際に、元々の2次元コードと同様の色(白または黒)に変換されるような色である必要がある。また、2次元コードの誤り訂正機能を利用することにより、元々の2次元コードと異なる色に変換される場合であっても復号が可能である。復号が可能であるようにセルに着色する技術としては、例えば特許文献3に記載されている技術を用いることができる。
【0027】
次に、ステップS1504において、歪み補正部304は、2次元コード画像において、歪んでいる2次元コードを読み取り可能に補正する。線が付与されている場合には、各線によって格子が形成され、格子点は制御点として考えることができる。したがって、制御点が付与されている場合と同じ計算方法を用いることができる。また、線の一部を認識できずに格子点が求められない場合であっても、認識した線の一部をもとに格子点の位置を推定することができる。計算方法としては、FFD(Free-form deformation)やDDM法など、物体の形状を変形する様々な方式を利用可能である。例えば、以下の式(1)で表されるFFD法を逆に適用することによって補正することができる。
【0029】
ここで、s,tは、補正前の制御点の座標値のx,y成分を0から1の値に正規化した値を示しており、P
ijは、各制御点の補正後の座標を示している。i,jはそれぞれ、制御点における行、列の番号を示しており、X
FFDは、補正前の制御点の座標を示している。また、
aC
bは、二項係数である。なお、
図6には、FFD法により歪みが補正された後の2次元コード画像の一例を示している。また、本実施形態においては、FFD法により歪みを補正するが、4つの制御点からなる矩形領域ごとにアフィン変換を行って歪みを補正してもよい。
【0030】
次に、ステップS1505において、画像読取部305は、歪み補正部304において補正された2次元コード画像から情報を読み取る処理を行う。以下、2次元コード画像から情報を復号する(読み取る)手順について説明する。
【0031】
まず、2次元コード画像内の明暗状態を参照する。具体的には、まず、2次元コード画像内における最大反射値及び最小反射値の間の中間反射値を閾値に設定し、この中間反射率を境目に2次元コード画像を暗及び明のピクセル集合に変換する。
【0032】
次に、2次元コード画像の角部にある位置検出パターンの位置を求める。2次元コードの位置検出パターンは、4隅のうちの3隅に配置される同一の位置検出要素パターンで構成されている。
図7に示すように、各位置検出要素パターンのセルの幅は、1:1:3:1:1の比率をもつ暗−明−暗−明−暗の列で構成される。このアルゴリズムにおいて、これらの幅の許容値は0.5とする(つまり、1個のセルに対しては0.5〜1.5の範囲、3個のセルに対しては2.5〜3.5の範囲となる。)。
【0033】
次に、領域の候補が検出されたときに、
図7に示すように、2次元コード画像内のピクセル線が位置検出要素パターンの外縁に接する点A及び点Bの位置を記憶する。そして、2次元コード画像内のx軸方向に対して位置検出要素パターンの内側の暗の正方形を横切るすべての線が認識されるまで、2次元コード画像内の隣接するピクセル線についてこの処理を繰り返す。次に、2次元コード画像内のy軸方向に対しても同様に、位置検出要素パターンの内側の暗の正方形を横切るすべての線が認識されるまで、2次元コード画像内の隣接するピクセル線についてこの処理を繰り返す。
【0034】
次に、位置検出要素パターンの中心位置を求める。具体的には、x軸方向に対して位置検出要素パターンの内側の暗の正方形を横切る一番外側のピクセル線上の点A及び点Bの中央を通る線を求める。同様にy軸方向に対しても線を求め、この2本の線の交点を位置検出要素パターンの中心位置とする。以上のような手順により、他の2つの位置検出要素パターンについても中心位置を求める。
【0035】
次に、2次元コード画像内のシンボルにおいて、左上の位置検出要素パターン及びシンボルの回転角を認識する位置検出要素パターンの中心座標を分析することによってシンボルの向きを求める。そして、
図8に示すように、シンボルの最大幅を横切る、左上の位置検出要素パターン及び右上の位置検出要素パターンの中心間の距離D及び2つの位置検出要素パターンの幅W
UL、W
URを求める。
【0036】
次に、シンボルの公称X寸法を以下の式(2)により計算する。
X=(W
UL+W
UR)/14 ・・・式(2)
【0037】
次に、仮のシンボルの型番Vを以下の式(3)により計算する。
V=[(D/X)−10]/4 ・・・式(3)
【0038】
式(3)の計算の結果、仮のシンボルの型番が6以下の場合は、この値をシンボルの型番として使用する。一方、仮のシンボルの型番が7以上の場合は、次のように型番情報を復号する。まず、セルのサイズCP
URを以下の式(4)により計算する。
CP
UR=W
UR/7 ・・・式(4)
【0039】
次に、
図9に示す3つの位置検出要素パターンの中心位置A、B、Cから補助線AB、ACを求める。そして、この補助線の平行線、位置検出要素パターンの中心座標、及びセルのサイズCP
URに基づいて、
図9に示す型番情報1の領域の各セルの中心に対するサンプリンググリッドを設定する。サンプリンググリッド上の明又は暗の状態から二値データの0または1を決定する。
【0040】
型番情報1に適用されている拡張BCH誤り訂正に基づき、誤りがある場合にはそれを検出して訂正し、シンボルの型番を決定する。一方、誤り訂正能力を超える誤りを検出した場合は、左下の位置検出要素パターンのパターン幅W
DLについて同様の計算を行い、同様の方法で型番情報2を復号する。
【0041】
位置合せパターンが存在しない型番が1のシンボルについては、位置検出要素パターンに基づいてサンプリンググリッドを設定する。一方、
図10に示すように、位置合せパターンが存在する型番が2以上のシンボルについては、以下のような手順により各位置合せパターンの中心座標を求め、サンプリンググリッドを設定する。まず、左上の位置検出要素パターンP
ULの幅W
ULから、以下の式(5)によりセルの大きさCP
ULを求める。
CP
UL=W
UL/7 ・・・式(5)
【0042】
次に、
図9に示す左上の位置検出要素パターンP
ULの中心座標A、補助線AB、ACの平行線、及びセルのサイズCP
ULに基づいて、位置合せパターンP1及びP2の仮の中心座標を求める。そして、
図11に示すように、仮の中心座標のピクセルから、それぞれ、位置合せパターンP1及びP2の白い正方形の外形を走査し、実際の中心座標(X
i,Y
j)を計算する。
【0043】
次に、左上の位置検出要素パターンP
ULの中心座標、位置合せパターンP1及びP2の実際の中心座標から、位置合せパターンP3の仮の中心座標を推定する。そして、同様の手順により、位置合せパターンP3の実際の中心座標を求める。
【0044】
次に、
図12に示すように、位置合せパターンP2、P3の中心座標の距離L
x、及び位置合せパターンP1、P3の中心座標の距離L
yを求める。そして、以下の式(6)により位置合せパターンの中心モジュール間隔APを用いてモジュールピッチCP
x、CP
yを求める。
CP
x=L
x/AP
CP
y=L
y/AP ・・・式(6)
【0045】
同様に、左上の位置検出要素パターンP
ULの中心座標と位置合せパターンP1の中心座標との距離L
x′、及び左上の位置検出要素パターンP
ULの中心座標と位置合せパターンP2の中心座標との距離L
y′を求める。そして、以下の式(7)によりシンボルの左上領域の上辺及び左辺におけるモジュールピッチCP
x′、CP
y′を求める。
CP
x′=L
x′/{(位置合せパターンP1の中心の列座標)−(左上の位置検出要素パターンP
ULの中心の列座標)}
CP
y′=L
y′/{(位置合せパターンP2の中心の行座標)−(左上の位置検出要素パターンP
ULの中心の行座標)} ・・・式(7)
【0046】
次に、シンボルの左上領域の各辺のモジュールピッチCP
x、CP
x′、CP
y、CP
y′に基づき、シンボルの左上領域を網羅するサンプリンググリッドを設定する。同様の手順により、シンボルの右上領域及び左下領域についてもモジュールピッチを求め、サンプリンググリッドを設定する。
【0047】
次に、
図13に示すように、シンボルの右下領域における位置合せパターンP6については、位置合せパターンP3、P4及びP5からモジュールピッチCP
x′CP
y′を求める。そして、モジュールピッチCP
x′CP
y′、位置合せパターンP3、P4の中心を通る補助線、位置合せパターンP3、P5の中心を通る補助線、及びそれら位置合せパターンの中心座標から仮の中心座標を推定する。そして、前述した手順と同様に、シンボルの右下領域のサンプリンググリッドを設定する。さらに、2次元コードの中心部など、未処理の領域においても、シンボルの右下領域の場合と同様の手順によりサンプリンググリッドを設定する。
【0048】
以上のようにシンボルの全ての領域においてサンプリンググリッドを設定すると、以下の手順により復号を行う。まず、グリッド線の各交点上の画像ピクセル(セル)をサンプリングし、閾値に基づいて、明暗のいずれかを決める。そして、暗のピクセルを二値データの1とし、明のピクセルを二値データの0としてビットマトリックスを構築する。
【0049】
次に、左上の位置検出要素パターンP
ULに隣接する領域から形式情報を復号し、シンボルに適用された誤り訂正レベル及びマスクパターンの情報を得る。形式情報の誤り訂正能力を超える誤りが検出された場合には、右上の位置検出要素パターンP
URまたは左下の位置検出要素パターンP
DLに隣接する領域から形式情報を復号して誤り訂正レベル及びマスクパターンの情報を得る。
【0050】
次に、シンボルの符号化領域でマスクパターンを排他的論理和演算(XOR演算)することによってマスク処理を解除し、データ及び誤り訂正を示すシンボルキャラクタ(データ)を復号する。ここでは、符号化過程で適用されたマスク処理の手順を逆順することによって復号される。そして、配置規則に従い、シンボルのコード語を求める。
【0051】
次に、シンボルの型番及び誤り訂正レベルに応じて、インタリーブの過程を逆順することによって、ブロック化されたコード語列を並び替える。そして、誤り検出及び訂正復号手順に従い、シンボルの型番及び誤り訂正レベルに対する最大訂正容量までの棄却誤り及び代入誤りを訂正する。そして、列におけるデータブロックを結合することによって、元のメッセージを復元する。
【0052】
また、データビット列をモード指示子で始まるセグメントに更に分割する。その長さは、モード指示子に続く文字数指示子によって決まる。そして、適用中のモードの規則に従い、各セグメントを復号する。以上のような手順により、2次元コード画像から情報が復号される。
【0053】
図3の説明に戻り、結果出力部306は、通信回線105を介して復号された情報を自動分別装置106に出力する。
【0054】
以上の説明では、2次元コードが歪んでいる場合に、歪み補正部304により歪みを補正する例について説明したが、歪みを補正しないで情報を復号することも可能である。制御点付与部303により各セルの境界領域に線を付与した場合、もしくは2次元コードに予め各セルの境界領域に線が付与されている場合には、画像読取部305は、
図14に示すように、格子の各辺の中点を結んだ線の交点にサンプリンググリッドを設定する。そして、領域解析部302により解析された情報に従い、位置検出要素パターンに隣接する領域から形式情報を復号し、符号化領域から情報を復号する。また、制御点の間隔がセル単位よりも大きい場合には、制御点の座標からモジュールピッチを定め、サンプリンググリッドを設定する。
【0055】
以上のように本実施形態によれば、ゴミ袋などに付与された2次元コードを読み取る際に、歪んでいる2次元コードから後述する方法により正方形に変換するために必要な基準となる制御点もしくは線を付与する。そして、制御点または線によって形成される格子点を起点にして歪みを補正する。これにより、ゴミが詰まった状態でゴミ袋の2次元コードを読み取るような場合など、2次元コードの歪みが非常に大きくなっている場合であっても、十分に情報を読み取ることができる。
【0056】
また、正方形に変換するために必要な基準となる制御点もしくは線が2次元コードに予め付与されているような場合は、これらの制御点または線によって形成される格子点を起点にして歪みを補正することができる。
【0057】
(本発明に係る他の実施形態)
前述した実施形態では、廃棄物収集センターなどにおいて、廃棄物を自動分別装置により分別するために、ベルトに流れるゴミ袋の2次元コードを1台の画像読取装置が読み取る例について説明した。一方、複数の画像読取装置を配置させ、それぞれの画像読取装置が復号した結果を集計し、その集計結果に基づいて自動分別装置がゴミ袋を分別するようにしてもよい。この場合、自動分別装置側で集計結果をまとめ、最も多い復号結果を採用するような形態であってもよく、1台のサーバがそれぞれの画像読取装置から復号結果を集計し、最も多い復号結果を最終結果として自動分別装置に送るような形態であってもよい。いずれの場合もより精度良く復号結果を自動分別装置に反映させることができる。また、ゴミ袋の複数の面に2次元コードを付してもよい。
【0058】
また、前述した実施形態では、廃棄物収集センターなどを想定した例について説明したが、画像読取装置をゴミ収集車に搭載して、2次元コードが付されたゴミ袋がゴミ収集車に積載されたときに2次元コードを読み取り、ゴミを分別するような例にも適用できる。この場合、作業員が目視でゴミを仕分ける手間を不要にすることができる。
【0059】
また、前述した本発明の実施形態における画像読取装置を構成する各手段、並びに画像読取方法の各工程は、コンピュータのRAMやROMなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【0060】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【0061】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では
図15に示すフローチャートに対応したプログラム)を、システムまたは装置に直接、または遠隔から供給する場合も含む。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【0062】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0063】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
【0064】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM、DVD−R)などもある。
【0065】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【0066】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【0067】
また、その他の方法として、本発明のプログラムを暗号化してCD−ROM等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0068】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0069】
さらに、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。