(57)【特許請求の範囲】
【請求項１】
複数のセルを備えた２次元コードであって、
前記２次元コードが撮像されて歪んだ形状の２次元コード画像が生成された場合に、前記歪んだ形状の２次元コード画像から情報を読み取る位置を特定するための制御点が所定の周期で前記セルの境界に付与されていることを特徴とする２次元コード。
【請求項２】
前記制御点は、前記複数のセルとは異なる色であることを特徴とする請求項１に記載の２次元コード。
【請求項３】
前記制御点は、前記歪んだ形状の２次元コード画像から情報を読み取る位置を特定するために、前記歪んだ形状を補正する起点となる点であることを特徴とする請求項１または２に記載の２次元コード。
【請求項４】
前記制御点は、前記歪んだ形状の２次元コード画像から情報を読み取る位置を特定するために、前記複数のセルそれぞれのサンプリングする位置を特定するための点であることを特徴とする請求項１または２に記載の２次元コード。
【請求項５】
複数のセルとともに、情報を読み取る位置を特定するための制御点が所定の周期で前記セルの境界に付与された２次元コードを撮像して２次元コード画像を取得する撮像手段と、
前記撮像手段によって生成された２次元コード画像内の前記制御点を起点として形状変形手法により補正する歪み補正手段と、
前記歪み補正手段によって補正された２次元コード画像から情報を読み取る復号手段とを有することを特徴とする画像読取装置。
【請求項６】
複数のセルとともに、情報を読み取る位置を特定するための制御点が所定の周期で前記セルの境界に付与された２次元コードを撮像して２次元コード画像を取得する撮像手段と、
前記撮像手段によって撮像された２次元コード画像において、前記２次元コードを構成する各セルの領域を解析する領域解析手段と、
前記撮像手段により前記２次元コードが撮像されて歪んだ形状の２次元コード画像が取得された場合に、前記撮像手段によって撮像された２次元コード画像内の前記制御点に基づいて、前記領域解析手段により解析されたセルのサンプリングする位置を特定し、前記特定した位置から情報を読み取る復号手段とを有することを特徴とする画像読取装置。
【請求項７】
複数のセルとともに、情報を読み取る位置を特定するための制御点が所定の周期で前記セルの境界に付与された２次元コードを撮像して２次元コード画像を取得する撮像工程と、
前記撮像工程において生成された２次元コード画像内の前記制御点を起点として形状変形手法により補正する歪み補正工程と、
前記歪み補正工程において補正された２次元コード画像から情報を読み取る復号工程とを有することを特徴とする画像読取方法。
【請求項８】
複数のセルとともに、情報を読み取る位置を特定するための制御点が所定の周期で前記セルの境界に付与された２次元コードを撮像して２次元コード画像を取得する撮像工程と、
前記撮像工程において撮像された２次元コード画像において、前記２次元コードを構成する各セルの領域を解析する領域解析工程と、
前記撮像工程において前記２次元コードが撮像されて歪んだ形状の２次元コード画像が取得された場合に、前記撮像工程において撮像された２次元コード画像内の前記制御点に基づいて、前記領域解析工程において解析されたセルのサンプリングする位置を特定し、前記特定した位置から情報を読み取る復号工程とを有することを特徴とする画像読取方法。
【請求項９】
請求項７または８に記載の画像読取方法の各工程をコンピュータに実行させることを特徴とするプログラム。
【請求項１０】
請求項９に記載のプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に、歪んだ２次元コードを読み取る際に好適な２次元コード、画像読取装置、画像読取方法、プログラム及び記憶媒体に関する。
【背景技術】
【０００２】
従来、ＱＲコード（登録商標）など、狭い領域に多くの情報を格納することが可能な２次元コードが多く使用されている。この２次元コードは、インターネット等を通じて情報を提供する手段のみならず、製品やチケット等に使用して瞬時にその情報を読み取るための手段として用いられている。近年では、ゴミ袋にバーコードを付与し、作業員がハンディターミナルで読み取るシステムなどが提案されている。
【０００３】
このように２次元コードは多くの用途に利用されているが、２次元コードが歪んでしまうと、十分に情報を読み取ることができなくなる場合がある。そこで、特許文献１及び２には、２次元コードが全体的に均一に歪んでいる場合に、読み取った画像からサンプリング点を抽出して各々の領域を抽出する方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−４４５８６号公報
【特許文献２】特開２００４−３６２０５３号公報
【特許文献３】特開２００９−１５１７００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ゴミが詰まった状態でゴミ袋の２次元コードを読み取るような場合は、２次元コードが局所的に歪んだり非均一に歪んだりした場合が多く、特許文献１及び２に記載の方法では、２次元コードから十分に情報を読み取ること難しい。
【０００６】
本発明は前述の問題点に鑑み、２次元コードが歪んでいるような場合に、簡単に情報を読み取ることができるようにすることを目的としている。
【課題を解決するための手段】
【０００７】
本発明の２次元コードは、複数のセルを備えた２次元コードであって、前記２次元コードが撮像されて歪んだ形状の２次元コード画像が生成された場合に、前記歪んだ形状の２次元コード画像から情報を読み取る位置を特定するための制御点が所定の周期で前記セルの境界に付与されていることを特徴とする。
【０００８】
本発明の画像読取装置は、複数のセルとともに、情報を読み取る位置を特定するための制御点が所定の周期で前記セルの境界に付与された２次元コードを撮像して２次元コード画像を取得する撮像手段と、前記撮像手段によって生成された２次元コード画像内の前記制御点を起点として形状変形手法により補正する歪み補正手段と、前記歪み補正手段によって補正された２次元コード画像から情報を読み取る復号手段とを有することを特徴とする。
また、本発明の画像読取装置の他の特徴とするところは、複数のセルとともに、情報を読み取る位置を特定するための制御点が所定の周期で前記セルの境界に付与された２次元コードを撮像して２次元コード画像を取得する撮像手段と、前記撮像手段によって撮像された２次元コード画像において、前記２次元コードを構成する各セルの領域を解析する領域解析手段と、前記撮像手段により前記２次元コードが撮像されて歪んだ形状の２次元コード画像が取得された場合に、前記撮像手段によって撮像された２次元コード画像内の前記制御点に基づいて、前記領域解析手段により解析されたセルのサンプリングする位置を特定し、前記特定した位置から情報を読み取る復号手段とを有する。
【０００９】
本発明の画像読取方法は、複数のセルとともに、情報を読み取る位置を特定するための制御点が所定の周期で前記セルの境界に付与された２次元コードを撮像して２次元コード画像を取得する撮像工程と、前記撮像工程において生成された２次元コード画像内の前記制御点を起点として形状変形手法により補正する歪み補正工程と、前記歪み補正工程において補正された２次元コード画像から情報を読み取る復号工程とを有することを特徴とする。
また、本発明の画像読取方法の他の特徴とするところは、複数のセルとともに、情報を読み取る位置を特定するための制御点が所定の周期で前記セルの境界に付与された２次元コードを撮像して２次元コード画像を取得する撮像工程と、前記撮像工程において撮像された２次元コード画像において、前記２次元コードを構成する各セルの領域を解析する領域解析工程と、前記撮像工程において前記２次元コードが撮像されて歪んだ形状の２次元コード画像が取得された場合に、前記撮像工程において撮像された２次元コード画像内の前記制御点に基づいて、前記領域解析工程において解析されたセルのサンプリングする位置を特定し、前記特定した位置から情報を読み取る復号工程とを有する。
【００１０】
本発明のプログラムは、前記の何れかに記載の画像読取方法の各工程をコンピュータに実行させることを特徴とする。
【００１１】
本発明の記憶媒体は、前記プログラムを記憶したことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、２次元コードの一部歪んでいるような場合や、２次元コードが非均一に歪んでいる場合であっても、制御点を起点として情報を読み取ることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態において、ベルトに流れるゴミ袋に付与された２次元コードに対して画像読取装置が撮影している様子を説明する図である。
【図２】本発明の実施形態に係る画像読取装置のハードウェア構成例を示すブロック図である。
【図３】本発明の実施形態に係る画像読取装置の機能構成例を示すブロック図である。
【図４】本発明の実施形態において、２次元コードにおいて区分けされた黒色のセル及び白色のセルの一例を示す図である。
【図５】本発明の実施形態において、制御点または線が付与された２次元コードの一例を示す図である。
【図６】本発明の実施形態において、逆ＦＦＤ法により歪みが補正された後の２次元コード画像の一例を示す図である。
【図７】位置検出要素パターンを示す拡大図である。
【図８】２次元コード内の位置検出要素パターンを示す図である。
【図９】２次元コード内の型番情報が格納されている位置を示す図である。
【図１０】２次元コード内の位置検出要素パターン及び位置合せパターンを示す図である。
【図１１】位置合せパターンを示す拡大図である。
【図１２】２次元コードの左上部分を示す図である。
【図１３】２次元コードの右下部分を示す図である。
【図１４】本発明の実施形態において、歪み補正をしない場合のサンプリンググリッドの位置を示す図である。
【図１５】本発明の実施形態において、２次元コードを読み取る処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について、図面を参照しながら説明する。本実施形態では、２次元コードの代表例としてＱＲコード（登録商標）を読み取る画像読取装置について説明する。
【００１５】
図１は、ベルト１０２に流れるゴミ袋１０１に付された２次元コードに対して画像読取装置１００が撮影している様子を説明する図である。
図１に示すように、画像読取装置１００のカメラ１０３がベルト１０２側に向いており、ゴミ袋１０１の２次元コードを撮影する。そして、画像読取装置１００で２次元コードを読み取り、ゴミ袋１０１に詰められているゴミの中身を判別し、その判別結果に基づいてベルト１０２に流れるゴミ袋１０１が自動で分別される。また、カメラ１０３が向いている方向のベルト１０２の上部には、センサー１０４が取り付けられており、センサー１０４がゴミ袋１０１を感知すると、通信回線１０５を介してその情報が画像読取装置１００に入力され、画像読取装置１００側で２次元コードの撮影（読取）を開始する。そして、ゴミの中身の判別結果が、通信回線１０５を介してゴミ袋１０１を分別する自動分別装置１０６に転送される。
【００１６】
本実施形態では、詳細は後述するが、図５に示すような２次元コードと異なる色の制御点もしくは線が付与された２次元コードがゴミ袋１０１に付されており、ゴミ袋のしわによって２次元コードが歪んだ場合であっても、簡単に情報を読み取ることができる。
【００１７】
図２は、本実施形態に係る画像読取装置１００のハードウェア構成例を示すブロック図である。
図２において、ＣＰＵ２０１は、画像読取装置１００全体を制御するものであり、必要な時にＲＯＭ２０３に記憶されたプログラムを読み出してＲＡＭ２０２に展開し、本実施形態に係る処理を実行する。画像入力装置２０４は、図１に示すカメラ１０３に相当するものであり、ＣＣＤ等の撮像素子や、アナログ信号をデジタル信号に変換するＡ／Ｄ変換回路、撮影した画像に対して所定の画像処理を施す信号処理回路等が含まれている。
【００１８】
入力装置２０５は、ユーザの操作に応じてコマンドを入力する操作部材である。記憶装置２０６は例えばハードディスクであり、データを記憶するためのものである。画像表示装置２０７は例えば液晶ディスプレイであり、読み取りエラーなどを警告表示したり、撮影している２次元コードをリアルタイムで表示したりする。ネットワークインタフェースカード（ＮＩＣ）２０８は、ＬＡＮ２１０を介して他の情報機器とデータをやり取りするためのインターフェースである。メインバス２０９は前述した各構成を接続するためのバスである。
【００１９】
図３は、本実施形態に係る画像読取装置１００の機能構成例を示すブロック図である。また、図１５は、本実施形態において、２次元コードを読み取る処理手順の一例を示すフローチャートである。以下、図３及び図１５を参照しながら、歪みを有する２次元コードを読み取る手順について説明する。
【００２０】
まず、図１５のステップＳ１５０１において、撮像部３０１は、図２の画像入力装置２０４を用いて２次元コードを撮像してその画像データを入力する。そして、ステップＳ１５０２において、領域解析部３０２は、入力された画像データに係る２次元コード（以下、２次元コード画像と称す）において、個々のセルの領域を解析する。例えば２次元コードが歪んでいる場合には、個々のセルは正方形にならないため、歪んだ状態のセルの領域を解析する必要がある。領域解析部３０２では、図４に示すように、黒色のセル４０１及び白色のセル４０２の領域を区分けする。
【００２１】
また、領域解析部３０２は、２次元コード画像を解析し、後述する制御点もしくは線が２次元コードに付与されているか否かについても判定する。そして、制御点もしくは線が付与されていない場合には、次のステップＳ１５０３の処理として２次元コード画像に制御点もしくは線を付与する処理を行う。一方、２次元コードに予め制御点もしくは線が付与されていた場合には、ステップＳ１５０３の処理を省略し、２次元コード画像の歪みを補正する処理を行うことになる。
【００２２】
次に、ステップＳ１５０３において、制御点付与部３０３は、歪んでいる２次元コードから後述する方法によりセルを正方形に変換するために必要な基準となる制御点もしくは線を２次元コード画像に付与する。また、領域解析部３０２により解析された個々のセルの境界線を２次元コード画像に付与する。
【００２３】
以下、制御点または線が付与された２次元コードについて説明する。図５（ａ）〜図５（ｄ）は、線が付与された２次元コードの例を示す図であり、図５（ｅ）及び図５（ｆ）は、制御点が付与された２次元コードの例を示す図である。
【００２４】
本実施形態においては、後述する歪み補正部３０４において２次元コード画像を補正するためには、制御点（または線）を取得する必要がある。そこで、領域解析部３０２により黒色セル４０１及び白色セル４０２の区分けがなされているため、各セルの行及び列の情報を取得することができる。したがって、図５（ａ）〜図５（ｃ）に示すような例の場合は、所定の周期で行及び列を区切るような線を付与し、図５（ｅ）及び図５（ｆ）に示すような例の場合は、所定の周期でセルの角に制御点を付与する。
【００２５】
なお、制御点の位置は、２次元コードの機能を妨げない位置であれば、任意の密度で可能である。最も周期を短くする場合には、各セルの境界領域に線を付与することによって、各セルの四隅に制御点を付与することになる。周期を短くすると、歪み補正の精度は向上するが、計算には多くの時間がかかるため、場合によって密度を変更するようにする。また、所定の周期ではなく、図５（ｄ）に示すように不規則な並びによって線や制御点を付与してもよい。さらに、制御点もしくは線は、２次元コードを構成するセルと区別できるように、２次元コードとは異なる色にすることが好ましい。
【００２６】
また、セルそのものに制御点として色を付すようにしてもよい。この場合、白及び黒の２値データに変換する際に、元々の２次元コードと同様の色（白または黒）に変換されるような色である必要がある。また、２次元コードの誤り訂正機能を利用することにより、元々の２次元コードと異なる色に変換される場合であっても復号が可能である。復号が可能であるようにセルに着色する技術としては、例えば特許文献３に記載されている技術を用いることができる。
【００２７】
次に、ステップＳ１５０４において、歪み補正部３０４は、２次元コード画像において、歪んでいる２次元コードを読み取り可能に補正する。線が付与されている場合には、各線によって格子が形成され、格子点は制御点として考えることができる。したがって、制御点が付与されている場合と同じ計算方法を用いることができる。また、線の一部を認識できずに格子点が求められない場合であっても、認識した線の一部をもとに格子点の位置を推定することができる。計算方法としては、ＦＦＤ（Free-form deformation）やＤＤＭ法など、物体の形状を変形する様々な方式を利用可能である。例えば、以下の式（１）で表されるＦＦＤ法を逆に適用することによって補正することができる。
【００２８】
【数１】
0005988228.tif 000002
【００２９】
ここで、ｓ，ｔは、補正前の制御点の座標値のｘ，ｙ成分を０から１の値に正規化した値を示しており、Ｐijは、各制御点の補正後の座標を示している。ｉ，ｊはそれぞれ、制御点における行、列の番号を示しており、ＸFFDは、補正前の制御点の座標を示している。また、aＣbは、二項係数である。なお、図６には、ＦＦＤ法により歪みが補正された後の２次元コード画像の一例を示している。また、本実施形態においては、ＦＦＤ法により歪みを補正するが、４つの制御点からなる矩形領域ごとにアフィン変換を行って歪みを補正してもよい。
【００３０】
次に、ステップＳ１５０５において、画像読取部３０５は、歪み補正部３０４において補正された２次元コード画像から情報を読み取る処理を行う。以下、２次元コード画像から情報を復号する（読み取る）手順について説明する。
【００３１】
まず、２次元コード画像内の明暗状態を参照する。具体的には、まず、２次元コード画像内における最大反射値及び最小反射値の間の中間反射値を閾値に設定し、この中間反射率を境目に２次元コード画像を暗及び明のピクセル集合に変換する。
【００３２】
次に、２次元コード画像の角部にある位置検出パターンの位置を求める。２次元コードの位置検出パターンは、４隅のうちの３隅に配置される同一の位置検出要素パターンで構成されている。図７に示すように、各位置検出要素パターンのセルの幅は、１：１：３：１：１の比率をもつ暗−明−暗−明−暗の列で構成される。このアルゴリズムにおいて、これらの幅の許容値は０．５とする（つまり、１個のセルに対しては０．５〜１．５の範囲、３個のセルに対しては２．５〜３．５の範囲となる。）。
【００３３】
次に、領域の候補が検出されたときに、図７に示すように、２次元コード画像内のピクセル線が位置検出要素パターンの外縁に接する点Ａ及び点Ｂの位置を記憶する。そして、２次元コード画像内のｘ軸方向に対して位置検出要素パターンの内側の暗の正方形を横切るすべての線が認識されるまで、２次元コード画像内の隣接するピクセル線についてこの処理を繰り返す。次に、２次元コード画像内のｙ軸方向に対しても同様に、位置検出要素パターンの内側の暗の正方形を横切るすべての線が認識されるまで、２次元コード画像内の隣接するピクセル線についてこの処理を繰り返す。
【００３４】
次に、位置検出要素パターンの中心位置を求める。具体的には、ｘ軸方向に対して位置検出要素パターンの内側の暗の正方形を横切る一番外側のピクセル線上の点Ａ及び点Ｂの中央を通る線を求める。同様にｙ軸方向に対しても線を求め、この２本の線の交点を位置検出要素パターンの中心位置とする。以上のような手順により、他の２つの位置検出要素パターンについても中心位置を求める。
【００３５】
次に、２次元コード画像内のシンボルにおいて、左上の位置検出要素パターン及びシンボルの回転角を認識する位置検出要素パターンの中心座標を分析することによってシンボルの向きを求める。そして、図８に示すように、シンボルの最大幅を横切る、左上の位置検出要素パターン及び右上の位置検出要素パターンの中心間の距離Ｄ及び２つの位置検出要素パターンの幅ＷUL、ＷURを求める。
【００３６】
次に、シンボルの公称Ｘ寸法を以下の式（２）により計算する。
Ｘ＝（ＷUL＋ＷUR）／１４  ・・・式（２）
【００３７】
次に、仮のシンボルの型番Ｖを以下の式（３）により計算する。
Ｖ＝［（Ｄ／Ｘ）−１０］／４  ・・・式（３）
【００３８】
式（３）の計算の結果、仮のシンボルの型番が６以下の場合は、この値をシンボルの型番として使用する。一方、仮のシンボルの型番が７以上の場合は、次のように型番情報を復号する。まず、セルのサイズＣＰURを以下の式（４）により計算する。
ＣＰUR＝ＷUR／７  ・・・式（４）
【００３９】
次に、図９に示す３つの位置検出要素パターンの中心位置Ａ、Ｂ、Ｃから補助線ＡＢ、ＡＣを求める。そして、この補助線の平行線、位置検出要素パターンの中心座標、及びセルのサイズＣＰURに基づいて、図９に示す型番情報１の領域の各セルの中心に対するサンプリンググリッドを設定する。サンプリンググリッド上の明又は暗の状態から二値データの０または１を決定する。
【００４０】
型番情報１に適用されている拡張ＢＣＨ誤り訂正に基づき、誤りがある場合にはそれを検出して訂正し、シンボルの型番を決定する。一方、誤り訂正能力を超える誤りを検出した場合は、左下の位置検出要素パターンのパターン幅ＷDLについて同様の計算を行い、同様の方法で型番情報２を復号する。
【００４１】
位置合せパターンが存在しない型番が１のシンボルについては、位置検出要素パターンに基づいてサンプリンググリッドを設定する。一方、図１０に示すように、位置合せパターンが存在する型番が２以上のシンボルについては、以下のような手順により各位置合せパターンの中心座標を求め、サンプリンググリッドを設定する。まず、左上の位置検出要素パターンＰULの幅ＷULから、以下の式（５）によりセルの大きさＣＰULを求める。
ＣＰUL＝ＷUL／７  ・・・式（５）
【００４２】
次に、図９に示す左上の位置検出要素パターンＰULの中心座標Ａ、補助線ＡＢ、ＡＣの平行線、及びセルのサイズＣＰULに基づいて、位置合せパターンＰ１及びＰ２の仮の中心座標を求める。そして、図１１に示すように、仮の中心座標のピクセルから、それぞれ、位置合せパターンＰ１及びＰ２の白い正方形の外形を走査し、実際の中心座標（Ｘi，Ｙj）を計算する。
【００４３】
次に、左上の位置検出要素パターンＰULの中心座標、位置合せパターンＰ１及びＰ２の実際の中心座標から、位置合せパターンＰ３の仮の中心座標を推定する。そして、同様の手順により、位置合せパターンＰ３の実際の中心座標を求める。
【００４４】
次に、図１２に示すように、位置合せパターンＰ２、Ｐ３の中心座標の距離Ｌx、及び位置合せパターンＰ１、Ｐ３の中心座標の距離Ｌyを求める。そして、以下の式（６）により位置合せパターンの中心モジュール間隔ＡＰを用いてモジュールピッチＣＰx、ＣＰyを求める。
ＣＰx＝Ｌx／ＡＰ
ＣＰy＝Ｌy／ＡＰ  ・・・式（６）
【００４５】
同様に、左上の位置検出要素パターンＰULの中心座標と位置合せパターンＰ１の中心座標との距離Ｌx′、及び左上の位置検出要素パターンＰULの中心座標と位置合せパターンＰ２の中心座標との距離Ｌy′を求める。そして、以下の式（７）によりシンボルの左上領域の上辺及び左辺におけるモジュールピッチＣＰx′、ＣＰy′を求める。
ＣＰx′＝Ｌx′／｛（位置合せパターンＰ１の中心の列座標）−（左上の位置検出要素パターンＰULの中心の列座標）｝
ＣＰy′＝Ｌy′／｛（位置合せパターンＰ２の中心の行座標）−（左上の位置検出要素パターンＰULの中心の行座標）｝  ・・・式（７）
【００４６】
次に、シンボルの左上領域の各辺のモジュールピッチＣＰx、ＣＰx′、ＣＰy、ＣＰy′に基づき、シンボルの左上領域を網羅するサンプリンググリッドを設定する。同様の手順により、シンボルの右上領域及び左下領域についてもモジュールピッチを求め、サンプリンググリッドを設定する。
【００４７】
次に、図１３に示すように、シンボルの右下領域における位置合せパターンＰ６については、位置合せパターンＰ３、Ｐ４及びＰ５からモジュールピッチＣＰx′ＣＰy′を求める。そして、モジュールピッチＣＰx′ＣＰy′、位置合せパターンＰ３、Ｐ４の中心を通る補助線、位置合せパターンＰ３、Ｐ５の中心を通る補助線、及びそれら位置合せパターンの中心座標から仮の中心座標を推定する。そして、前述した手順と同様に、シンボルの右下領域のサンプリンググリッドを設定する。さらに、２次元コードの中心部など、未処理の領域においても、シンボルの右下領域の場合と同様の手順によりサンプリンググリッドを設定する。
【００４８】
以上のようにシンボルの全ての領域においてサンプリンググリッドを設定すると、以下の手順により復号を行う。まず、グリッド線の各交点上の画像ピクセル（セル）をサンプリングし、閾値に基づいて、明暗のいずれかを決める。そして、暗のピクセルを二値データの１とし、明のピクセルを二値データの０としてビットマトリックスを構築する。
【００４９】
次に、左上の位置検出要素パターンＰULに隣接する領域から形式情報を復号し、シンボルに適用された誤り訂正レベル及びマスクパターンの情報を得る。形式情報の誤り訂正能力を超える誤りが検出された場合には、右上の位置検出要素パターンＰURまたは左下の位置検出要素パターンＰDLに隣接する領域から形式情報を復号して誤り訂正レベル及びマスクパターンの情報を得る。
【００５０】
次に、シンボルの符号化領域でマスクパターンを排他的論理和演算（ＸＯＲ演算）することによってマスク処理を解除し、データ及び誤り訂正を示すシンボルキャラクタ（データ）を復号する。ここでは、符号化過程で適用されたマスク処理の手順を逆順することによって復号される。そして、配置規則に従い、シンボルのコード語を求める。
【００５１】
次に、シンボルの型番及び誤り訂正レベルに応じて、インタリーブの過程を逆順することによって、ブロック化されたコード語列を並び替える。そして、誤り検出及び訂正復号手順に従い、シンボルの型番及び誤り訂正レベルに対する最大訂正容量までの棄却誤り及び代入誤りを訂正する。そして、列におけるデータブロックを結合することによって、元のメッセージを復元する。
【００５２】
また、データビット列をモード指示子で始まるセグメントに更に分割する。その長さは、モード指示子に続く文字数指示子によって決まる。そして、適用中のモードの規則に従い、各セグメントを復号する。以上のような手順により、２次元コード画像から情報が復号される。
【００５３】
図３の説明に戻り、結果出力部３０６は、通信回線１０５を介して復号された情報を自動分別装置１０６に出力する。
【００５４】
以上の説明では、２次元コードが歪んでいる場合に、歪み補正部３０４により歪みを補正する例について説明したが、歪みを補正しないで情報を復号することも可能である。制御点付与部３０３により各セルの境界領域に線を付与した場合、もしくは２次元コードに予め各セルの境界領域に線が付与されている場合には、画像読取部３０５は、図１４に示すように、格子の各辺の中点を結んだ線の交点にサンプリンググリッドを設定する。そして、領域解析部３０２により解析された情報に従い、位置検出要素パターンに隣接する領域から形式情報を復号し、符号化領域から情報を復号する。また、制御点の間隔がセル単位よりも大きい場合には、制御点の座標からモジュールピッチを定め、サンプリンググリッドを設定する。
【００５５】
以上のように本実施形態によれば、ゴミ袋などに付与された２次元コードを読み取る際に、歪んでいる２次元コードから後述する方法により正方形に変換するために必要な基準となる制御点もしくは線を付与する。そして、制御点または線によって形成される格子点を起点にして歪みを補正する。これにより、ゴミが詰まった状態でゴミ袋の２次元コードを読み取るような場合など、２次元コードの歪みが非常に大きくなっている場合であっても、十分に情報を読み取ることができる。
【００５６】
また、正方形に変換するために必要な基準となる制御点もしくは線が２次元コードに予め付与されているような場合は、これらの制御点または線によって形成される格子点を起点にして歪みを補正することができる。
【００５７】
（本発明に係る他の実施形態）
前述した実施形態では、廃棄物収集センターなどにおいて、廃棄物を自動分別装置により分別するために、ベルトに流れるゴミ袋の２次元コードを１台の画像読取装置が読み取る例について説明した。一方、複数の画像読取装置を配置させ、それぞれの画像読取装置が復号した結果を集計し、その集計結果に基づいて自動分別装置がゴミ袋を分別するようにしてもよい。この場合、自動分別装置側で集計結果をまとめ、最も多い復号結果を採用するような形態であってもよく、１台のサーバがそれぞれの画像読取装置から復号結果を集計し、最も多い復号結果を最終結果として自動分別装置に送るような形態であってもよい。いずれの場合もより精度良く復号結果を自動分別装置に反映させることができる。また、ゴミ袋の複数の面に２次元コードを付してもよい。
【００５８】
また、前述した実施形態では、廃棄物収集センターなどを想定した例について説明したが、画像読取装置をゴミ収集車に搭載して、２次元コードが付されたゴミ袋がゴミ収集車に積載されたときに２次元コードを読み取り、ゴミを分別するような例にも適用できる。この場合、作業員が目視でゴミを仕分ける手間を不要にすることができる。
【００５９】
また、前述した本発明の実施形態における画像読取装置を構成する各手段、並びに画像読取方法の各工程は、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００６０】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００６１】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図１５に示すフローチャートに対応したプログラム）を、システムまたは装置に直接、または遠隔から供給する場合も含む。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００６２】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００６３】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００６４】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などもある。
【００６５】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００６６】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００６７】
また、その他の方法として、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００６８】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００６９】
さらに、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【符号の説明】
【００７０】
３０１  撮像部
３０２  領域解析部
３０３  制御点付与部
３０４  歪み補正部
３０５  画像読取部
３０６  結果出力部
【図１】
0005988228.tif 000003
【図２】
0005988228.tif 000004
【図３】
0005988228.tif 000005
【図４】
0005988228.tif 000006
【図５】
0005988228.tif 000007
【図６】
0005988228.tif 000008
【図７】
0005988228.tif 000009
【図８】
0005988228.tif 000010
【図９】
0005988228.tif 000011
【図１０】
0005988228.tif 000012
【図１１】
0005988228.tif 000013
【図１２】
0005988228.tif 000014
【図１３】
0005988228.tif 000015
【図１４】
0005988228.tif 000016
【図１５】
0005988228.tif 000017