(57)【特許請求の範囲】
【請求項１】
コードを含む画像を取得する取得部と、
前記画像から前記コードの一部を含む複数の局所領域を検出する検出部と、
前記複数の局所領域を統合してコード領域を得るとともに、前記複数の局所領域の位置に基づいて前記コード領域の主軸を算出する統合部と、
前記主軸方向に前記コード領域を読み取る読取部と、
を備える読取装置。
【請求項２】
前記統合部は、前記複数の局所領域の位置に応じて前記複数の局所領域を統合し、１以上のコード領域を得る請求項１に記載の読取装置。
【請求項３】
前記統合部は、前記複数の局所領域それぞれについて当該局所領域の位置と他の局所領域の位置とを用いて局所領域距離を算出し、当該局所領域距離が閾値未満の局所領域を統合し、前記１以上のコード領域を得る請求項２に記載の読取装置。
【請求項４】
前記検出部は、前記複数の局所領域それぞれの方向を更に検出し、
前記統合部は、前記複数の局所領域の位置及び前記方向に応じて前記複数の局所領域を統合し、１以上のコード領域を得る請求項１に記載の読取装置。
【請求項５】
前記統合部は、前記複数の局所領域それぞれについて当該局所領域の位置と他の局所領域の位置とを用いて第１局所領域距離を算出するとともに前記局所領域の方向と前記他の局所領域の方向とを用いて第２局所領域距離を算出し、当該第１局所領域距離及び当該第２局所領域距離に基づく値が閾値未満の局所領域を統合し、前記１以上のコード領域を得る請求項４に記載の読取装置。
【請求項６】
前記統合部は、前記複数の局所領域それぞれについて当該局所領域の位置と他の局所領域の位置とを用いて第１局所領域距離を算出するとともに前記局所領域の方向と前記他の局所領域の方向とを用いて第２局所領域距離を算出し、当該第１局所領域距離が第１閾値未満であり、かつ当該第２局所領域距離が第２閾値未満である局所領域を統合し、前記１以上のコード領域を得る請求項４に記載の読取装置。
【請求項７】
前記コードは、前記主軸方向には模様が異なり、前記主軸方向に対して垂直な方向には、模様が一様なパタンであり、
前記読取部は、前記コード領域の前記パタンを認識して、前記コードを復号する請求項１〜６のいずれか１つに記載の読取装置。
【請求項８】
取得部が、コードを含む画像を取得する取得ステップと、
検出部が、前記画像から前記コードの一部を含む複数の局所領域を検出する検出ステップと、
統合部が、前記複数の局所領域を統合してコード領域を得るとともに、前記複数の局所領域の位置に基づいて前記コード領域の主軸を算出する統合ステップと、
読取部が、前記主軸方向に前記コード領域を読み取る読取ステップと、
を含む読取方法。
【請求項９】
コードを含む画像を取得する取得ステップと、
前記画像から前記コードの一部を含む複数の局所領域を検出する検出ステップと、
前記複数の局所領域を統合してコード領域を得るとともに、前記複数の局所領域の位置に基づいて前記コード領域の主軸を算出する統合ステップと、
前記主軸方向に前記コード領域を読み取る読取ステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、読取装置、方法及びプログラムに関する。
【背景技術】
【０００２】
バーコードなどの各種コードは、商品販売、物流、及び生産工程など幅広い分野において、物品の管理情報の表記に用いられている。このようなコードの読み取りには、コードを直接指示して読み取るハンドスキャナやペン入力スキャナ、又は複数方向にビームを走査させていずれかのビームでコードを読み取る定置型スキャナなどが用いられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−１５０２１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述したような従来技術では、変形可能な物体にコードが印刷又は貼り付けられている場合、物体の変形に伴いコードに歪みが生じるため、コードを読み取れない場合がある。本発明が解決しようとする課題は、歪みが生じたコードであっても読み取り可能な読取装置、方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態の読取装置は、取得部と、検出部と、統合部と、読取部と、を備える。取得部は、コードを含む画像を取得する。検出部は、前記画像から前記コードの一部を含む複数の局所領域を検出する。統合部は、前記複数の局所領域を統合してコード領域を得るとともに、前記複数の局所領域の位置に基づいて前記コード領域の主軸を算出する。読取部は、前記主軸方向に前記コード領域を読み取る。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態の読取装置の例を示す構成図。
【図２】第１実施形態のコードの例を示す図。
【図３】第１実施形態の検出部の詳細例を示す構成図。
【図４】第１実施形態の検出部により検出された複数の局所領域の例を示す図。
【図５】第１実施形態の統合部により得られたコード領域の例を示す図。
【図６】第１実施形態の統合部により得られたコード領域の例を示す図。
【図７】第１実施形態の読取部の読み取り手法の例を示す説明図。
【図８】第１実施形態の読取部の読み取り手法の例を示す説明図。
【図９】第１実施形態の読取部の読み取り手法の例を示す説明図。
【図１０】第１実施形態の読取部の読み取り手法の例を示す説明図。
【図１１】第１実施形態の読取処理例を示すフローチャート。
【図１２】第２実施形態の読取装置の例を示す構成図。
【図１３】第２実施形態の検出部の検出対象のオブジェクトの例を示す図。
【図１４】第２実施形態の統合部により得られたコード領域の例を示す図。
【図１５】第２実施形態の読取処理例を示すフローチャート。
【図１６】第１〜第２実施形態の読取装置のハードウェア構成例を示すブロック図。
【発明を実施するための形態】
【０００７】
以下、添付図面を参照しながら、実施形態を詳細に説明する。
【０００８】
（第１実施形態）
図１は、第１実施形態の読取装置１０の一例を示す構成図である。図１に示すように、読取装置１０は、取得部１１と、検出部１３と、統合部１５と、読取部１７とを、備える。読取装置１０の各部は、例えば、ＣＰＵ（Central  Processing  Unit）などの処理装置にプログラムを実行させること、即ち、ソフトウェアにより実現してもよいし、ＩＣ（Integrated  Circuit）などのハードウェアにより実現してもよいし、ソフトウェア及びハードウェアを併用して実現してもよい。
【０００９】
取得部１１は、画像入力部（図示省略）から入力される画像を取得する。画像入力部は、例えば、デジタルカメラなどの撮像装置により実現でき、撮像した画像を入力する。第１実施形態では、画像入力部が入力する画像、即ち、取得部１１が取得する画像は、湾曲など変形可能な物体に印刷又は貼り付けられているコードを撮像した画像を想定している。このため、第１実施形態では、取得部１１は、コードを含む画像を取得することになる。なお、物体の変形に伴い歪みが生じているコードを画像入力部が撮像した場合には、取得部１１が取得した画像内のコードにも当然歪みが生じている。
【００１０】
第１実施形態のコードは、光学的に認識可能なコードであり、局所的に類似した模様が繰り返し並んだパタンが用いられる。具体的には、第１実施形態のコードは、第１方向には模様が異なり、第１方向に対して垂直な第２方向には模様が一様なパタンが用いられる。第１実施形態では、第１方向は、コードが印刷又は貼り付けられる物体の主軸方向を想定しており、以下では、第１方向をコードの主軸方向と称するものとする。物体の主軸とは、例えば、物体の長手方向の中心軸が該当し、コードの主軸とは、例えば、コードの主軸方向（第１方向）での中心軸が該当する。
【００１１】
図２は、第１実施形態のコード２１の一例を示す図である。図２に示す例では、コード２１は、コード２１の主軸方向に対して白黒の縞模様のパタンが用いられた１次元のコードとなっている。なお図２に示す例では、ケーブル（図示省略）に印刷されることを想定して、コード２１を円筒形状で表しているが、コード２１の形状はこれに限定されるものではない。また図２に示す例では、コード２１の主軸方向とケーブルの主軸方向とを一致させて、コード２１をケーブルに印刷することを想定している。
【００１２】
検出部１３は、取得部１１により取得された画像から、コードの一部を含む複数の局所領域を検出する。具体的には、検出部１３は、コード（パタン）の一部を形成する模様を含む局所領域を検出対象のオブジェクトとする検出器を用いて、取得部１１により取得された画像から複数の局所領域を検出する。この検出器は、検出対象の模様を含む多数のサンプル画像を用いた機械学習を予め行っておくことで生成できる。
【００１３】
図３は、第１実施形態の検出部１３の詳細の一例を示す構成図である。図３に示すように、検出部１３は、検出器記憶部１３Ａと、特徴量算出部１３Ｂと、量子化部１３Ｃと、識別部１３Ｄとを、含む。
【００１４】
検出器記憶部１３Ａは、複数の画素領域を有する特徴領域とサンプル画像中の特徴領域の特徴量である学習特徴量を量子化して得られる量子化学習特徴量との組を、予め複数個選択して得られる組み合わせ、及びサンプル画像が検出対象のオブジェクトであるか否かを示す情報、を有する検出器を記憶する。この検出器は、予めサンプル画像に関して学習することで得られる。
【００１５】
特徴量算出部１３Ｂは、取得部１１により取得された画像中で上記組み合わせに属する各特徴領域に対応する領域の特徴量である入力特徴量を、特徴領域の画素領域の各々に異なる重みを付けた重み付け和又は重み付け和の絶対値を求めることにより算出する。
【００１６】
量子化部１３Ｃは、特徴量算出部１３Ｂにより算出された入力特徴量を量子化して量子化入力特徴量を得る。
【００１７】
識別部１３Ｄは、量子化部１３Ｃにより得られた量子化入力特徴量を、検出器記憶部１３Ａに記憶されている検出器に適用して、取得部１１により取得された画像内に検出対象のオブジェクト（局所領域）が含まれているか否かを識別する。
【００１８】
図４は、第１実施形態の検出部１３により検出された複数の局所領域２３の一例を示す図である。例えば、取得部１１により取得される画像内のコードが、図２に示すコード２１のように、コード２１の主軸方向に対して白黒の縞模様のパタンが用いられた１次元コードであるとする。この場合、検出部１３は、白黒の模様を数本含む局所領域を検出対象のオブジェクトとする検出器を用いて、取得部１１により取得された画像から、図４に示すように、白黒の模様を数本含む複数の局所領域２３を検出する。この検出器は、白黒の模様を数本含む多数のサンプル画像を用いた機械学習を予め行っておくことで生成できる。機械学習のためのサンプル画像は、実際に画像を撮像した実画像を用いてもよいし、コンピュータグラフィックスにより作成した人工的な画像を用いてもよい。なお図４に示す例では、取得部１１により取得された画像内のコード２１に歪みが生じている（コード２１の主軸が曲がっている）が、これは、コード２１が印刷されたケーブル（図示省略）の湾曲に伴う歪みである。
【００１９】
統合部１５は、検出部１３により検出された複数の局所領域を統合してコード領域を得る。具体的には、統合部１５は、検出部１３により検出された複数の局所領域の位置に応じて複数の局所領域を統合し、１以上のコード領域を得る。例えば、統合部１５は、検出部１３により検出された複数の局所領域それぞれについて当該局所領域の位置と他の局所領域の位置とを用いて局所領域距離を算出し、当該局所領域距離が閾値未満の局所領域を統合し、１以上のコード領域を得る。
【００２０】
なお第１実施形態では、統合部１５は、複数の局所領域それぞれについて、当該局所領域と当該局所領域以外の他の局所領域それぞれとの局所領域距離を算出し、算出した局所領域距離が閾値未満の局所領域を統合するものとするが、これに限定されるものではない。例えば、統合部１５は、複数の局所領域それぞれについて、当該局所領域と当該局所領域に近接する他の局所領域それぞれとの局所領域距離を算出し、算出した局所領域距離が閾値未満の局所領域を統合するようにしてもよい。
【００２１】
第１実施形態では、統合部１５は、局所領域間の中心距離に基づいて階層的クラスタリングを行って局所領域を統合するものとするが、局所領域の統合手法はこれに限定されるものではない。例えば、１の局所領域の中心位置の２次元座標が（ｘ（１），ｙ（１））、他の局所領域の中心位置の２次元座標が（ｘ（２），ｙ（２））であるとする。この場合、統合部１５は、数式（１）を用いて、１の局所領域と他の局所領域との間の局所領域距離を二乗距離Ｄで表す。
【００２２】
Ｄ（ｘ（１），ｙ（１），ｘ（２），ｙ（２））＝（ｘ（１）−ｘ（２））２＋（ｙ（１）−ｙ（２））２      …（１）
【００２３】
そして統合部１５は、算出した二乗距離Ｄ（局所領域距離）が閾値未満であれば両局所領域を統合し、閾値以上であれば両局所領域を統合しない。
【００２４】
図５及び図６は、第１実施形態の統合部１５により得られたコード領域の一例を示す図である。図５に示す例では、取得部１１により取得された画像に含まれるコードがコード２１ひとつであるため、統合部１５は、複数の局所領域２３を統合して１つのコード領域を得ている。一方、図６に示す例では、取得部１１により取得された画像に含まれるコードがコード２１、３１、４１の３つであるため、統合部１５は、複数の局所領域２３を統合したコード領域、複数の局所領域３３を統合したコード領域、及び複数の局所領域４３を統合したコード領域の３つのコード領域を得ている。このように第１実施形態では、異なるコードの局所領域を統合せずに分離できているが、これは、統合部１５が、局所領域距離が閾値未満の局所領域を統合し、局所領域距離が閾値以上の局所領域を統合しないようにしているためである。
【００２５】
また統合部１５は、検出部１３により検出された複数の局所領域の位置に基づいて、コード領域（コード）の主軸を算出する。第１実施形態では、統合部１５は、コード領域に統合された局所領域それぞれの中心位置をフィッティングした２次曲線を主軸として算出するものとするが、主軸の算出手法はこれに限定されるものではない。
【００２６】
例えば、コード領域に統合された局所領域それぞれの中心位置を（ｘ（ｉ），ｙ（ｉ））、主軸を表す２次曲線をｙ＝ａｘ２＋ｂｘ＋ｃとする。但し、ｉ＝１，２，…，Ｎであり、Ｎは、コード領域に統合された局所領域の個数である。この場合、統合部１５は、数式（２）に示す関数ｆ（ａ，ｂ，ｃ）を最小にする変数ａ，ｂ，ｃを求めることで、コード領域の主軸を表す２次曲線ｙ＝ａｘ２＋ｂｘ＋ｃを算出する。
【００２７】
【数１】
0005657503.tif 000002
【００２８】
これにより、統合部１５は、図５に示す例のように、複数の局所領域２３を統合したコード領域（コード２１）の主軸２５を算出する。
【００２９】
読取部１７は、統合部１５により得られたコード領域を読み取る。具体的には、読取部１７は、統合部１５により得られたコード領域を統合部１５により算出された主軸方向に読み取る。例えば、読取部１７は、統合部１５により得られたコード領域のパタン（コードのパタン）を認識して、コードを復号する。
【００３０】
図７〜図１０は、第１実施形態の読取部１７の読み取り手法の一例を示す説明図である。まず、読取部１７は、図７に示すように、統合部１５により算出された主軸２５上の点（画素）２８について法線２７を算出し、法線２７上の点（画素）のうち点２８を中心とする５点（点２８及び点２９）の輝度値を加算する。第１実施形態では、輝度値を加算する法線２７上の点の数を５としたが、輝度値を加算する法線２７上の点の数は、これに限定されるものではない。
【００３１】
読取部１７は、この処理を主軸２５上の各点に対して行うことにより、主軸方向を横軸、輝度値を縦軸とするヒストグラムを作成し（図８参照）、このヒストグラムを２値化する（図９参照）。
【００３２】
そして読取部１７は、２値化したヒストグラムを用いて、各白黒の主軸方向の幅のサイズを算出し、算出した幅のサイズが閾値よりも大きければ１、閾値より小さければ０とする（図１０参照）。これにより、読取部１７は、統合部１５により得られたコード領域のパタンを認識でき、コードを復号する。
【００３３】
図１１は、第１実施形態の読取装置１０で行われる読取処理の手順の流れの一例を示すフローチャートである。
【００３４】
まず、取得部１１は、画像入力部から、コードを含む画像を取得する（ステップＳ１０１）。
【００３５】
続いて、検出部１３は、取得部１１により取得された画像から、コードの一部を含む複数の局所領域を検出する（ステップＳ１０３）。
【００３６】
続いて、統合部１５は、検出部１３により検出された複数の局所領域それぞれの位置に基づいて、複数の局所領域を統合してコード領域を得る（ステップＳ１０５）。
【００３７】
続いて、読取部１７は、統合部１５により得られたコード領域を読み取る（ステップＳ１０７）。
【００３８】
以上のように、第１実施形態では、コードが印刷又は貼り付けられた物体の主軸が曲がるなど変形していてコードに歪みが生じていても、コードの局所的な形状がほとんど変わらないことを利用し、コードを含む画像からコードの一部を含む複数の局所領域を検出してコード領域に統合し、統合したコード領域を読み取る。従って第１実施形態によれば、コードに歪みが生じていても、コードを読み取ることができる。
【００３９】
また第１実施形態によれば、局所領域距離が閾値未満の局所領域を統合し、局所領域距離が閾値以上の局所領域を統合しないようにしているため、異なるコードの局所領域を統合せずに分離することができる。
【００４０】
また第１実施形態では、主軸方向には模様が異なり、主軸方向に対して垂直な方向には模様が一様なパタンが用いられたコードを使用する。このように第１実施形態によれば、主軸方向に対して垂直な方向のコードの模様は一様なので、コードが非平面に印刷又は貼り付けられており、当該垂直な方向においてコードの一部が隠れてしまう場合であっても、コードを読み取ることができる。
【００４１】
また第１実施形態において、コンピュータグラフィックスにより作成した人工的な画像をサンプル画像に用いて機械学習を行い、検出器を生成するようにすれば、サンプル画像の作成に伴う各種コスト（労力等）を削減することができる。
【００４２】
（第２実施形態）
第２実施形態では、局所領域の方向を考慮して局所領域を統合する例について説明する。以下では、第１実施形態との相違点の説明を主に行い、第１実施形態と同様の機能を有する構成要素については、第１実施形態と同様の名称・符号を付し、その説明を省略する。
【００４３】
図１２は、第２実施形態の読取装置５０の一例を示す構成図である。図１２に示すように、第２実施形態の読取装置５０では、検出部５３及び統合部５５が第１実施形態の読取装置１０と相違する。
【００４４】
検出部５３は、検出した複数の局所領域それぞれの方向を更に検出する。具体的には、検出部５３は、コード（パタン）の一部を形成する模様を含みかつ当該模様の方向を定義した局所領域を検出対象のオブジェクトとする検出器を用いて、取得部１１により取得された画像から複数の局所領域及びその方向を検出する。
【００４５】
図１３は、第２実施形態の検出部５３の検出対象のオブジェクト（局所領域）の一例を示す図である。図１３に示す例では、白黒の縞模様が０度の方向を向いている局所領域６１、白黒の縞模様が４５度の方向を向いている局所領域６２、白黒の縞模様が９０度の方向を向いている局所領域６３、及び白黒の縞模様が１３５度の方向を向いている局所領域６４が、検出対象のオブジェクトとして示されている。この場合、検出部５３は、局所領域６１を検出対象のオブジェクトとする検出器、局所領域６２を検出対象のオブジェクトとする検出器、局所領域６３を検出対象のオブジェクトとする検出器、及び局所領域６４を検出対象のオブジェクトとする検出器の４つの検出器を用いることで、取得部１１により取得された画像から複数の局所領域だけでなくその方向（０度、４５度、９０度、１３５度）を検出する。
【００４６】
統合部５５は、検出部５３により検出された複数の局所領域の位置及び方向に応じて複数の局所領域を統合し、１以上のコード領域を得る。例えば、統合部５５は、検出部５３により検出された複数の局所領域それぞれについて当該局所領域の位置と他の局所領域の位置とを用いて第１局所領域距離を算出するとともに当該局所領域の方向と他の局所領域の方向とを用いて第２局所領域距離を算出する。そして統合部５５は、第１局所領域距離及び第２局所領域距離に基づく値が閾値未満の局所領域を統合し、１以上のコード領域を得る。
【００４７】
第２実施形態では、統合部５５は、局所領域間の中心距離及び方向差（角度差）に基づいて階層的クラスタリングを行って局所領域を統合するものとするが、局所領域の統合手法はこれに限定されるものではない。例えば、統合部５５は、局所領域の中心位置の２次元座標（ｘ，ｙ）と局所領域の方向（角度）ｄとで３次元ベクトル（ｘ，ｙ，ｄ）を作り、この３次元ベクトルを用いた何らかの距離尺度に基づいてクラスタリングを行う。なお、距離には、２次元座標及び方向（角度）の３つの要素を同等に扱うユークリッド距離や二乗距離を用いてもよいし、別々の距離尺度を用いて算出した２次元座標の距離と方向（角度）の距離との和を用いるようにしてもよい。
【００４８】
例えば、１の局所領域の中心位置及び方向が（ｘ（１），ｙ（１），ｄ（１））、他の局所領域の中心位置及び方向が（ｘ（２），ｙ（２），ｄ（２））であるとする。この場合、統合部５５は、数式（３）を用いて、１の局所領域と他の局所領域との間の局所領域距離を二乗距離Ｄで表す。
【００４９】
Ｄ（ｘ（１），ｙ（１），ｄ（１），ｘ（２），ｙ（２），ｄ（２））＝Ｄ１（ｘ（１），ｙ（１），ｘ（２），ｙ（２））＋Ｄ２（ｄ（１），ｄ（２））      …（３）
【００５０】
ここで、Ｄ１（ｘ（１），ｙ（１），ｘ（２），ｙ（２））、Ｄ２（ｄ（１），ｄ（２））は、それぞれ、数式（４）、（５）を用いて求められる。
【００５１】
Ｄ１（ｘ（１），ｙ（１），ｘ（２），ｙ（２））＝（ｘ（１）−ｘ（２））２＋（ｙ（１）−ｙ（２））２      …（４）
【００５２】
Ｄ２（ｄ（１），ｄ（２））＝（ｄ（１）−ｄ（２））２      …（５）
【００５３】
そして統合部５５は、算出した二乗距離Ｄ（局所領域距離）が閾値未満であれば両局所領域を統合し、閾値以上であれば両局所領域を統合しない。
【００５４】
図１４は、第２実施形態の統合部５５により得られたコード領域の一例を示す図である。図１４に示す例では、取得部１１により取得された画像に含まれるコードがコード２１、３１の２つであるため、統合部５５は、複数の局所領域７３を統合したコード領域、及び複数の局所領域８３を統合したコード領域の２つのコード領域を得ている。このように第２実施形態では、異なるコードが近接している場合であっても異なるコードの局所領域を統合せずに分離できているが、これは、統合部５５が、局所領域の距離及び方向を考慮した局所領域距離が閾値未満の局所領域を統合し、局所領域距離が閾値以上の局所領域を統合しないようにしているためである。
【００５５】
なお、統合部５５は、第１局所領域距離が第１閾値未満であり、かつ第２局所領域距離が第２閾値未満である局所領域を統合し、１以上のコード領域を得るようにしてもよい。つまり統合部５５は、算出した二乗距離Ｄ１（第１局所領域距離）が第１閾値未満であり、かつ算出した二乗距離Ｄ２（第２局所領域距離）が第２閾値未満であれば両局所領域を統合し、そうでなければ両局所領域を統合しないようにしてもよい。
【００５６】
図１５は、第２実施形態の読取装置５０で行われる読取処理の手順の流れの一例を示すフローチャートである。
【００５７】
まず、取得部１１は、画像入力部から、コードを含む画像を取得する（ステップＳ２０１）。
【００５８】
続いて、検出部５３は、取得部１１により取得された画像から、コードの一部を含む複数の局所領域及びその方向を検出する（ステップＳ２０３）。
【００５９】
続いて、統合部５５は、検出部５３により検出された複数の局所領域それぞれの位置及び方向に基づいて、複数の局所領域を統合してコード領域を得る（ステップＳ２０５）。
【００６０】
続いて、読取部１７は、統合部５５により得られたコード領域を読み取る（ステップＳ２０７）。
【００６１】
以上のように第２実施形態では、局所領域の距離及び方向を考慮した局所領域距離が閾値未満の局所領域を統合し、局所領域距離が閾値以上の局所領域を統合しないようにしているため、異なるコードが近接している場合であっても異なるコードの局所領域を統合せずに分離することができる。
【００６２】
（ハードウェア構成）
図１６は、上記第１〜第２実施形態の読取装置のハードウェア構成の一例を示すブロック図である。図１６に示すように、上記各実施形態の読取装置は、ＣＰＵなどの制御装置９１と、ＲＯＭ（Read  Only  Memory）やＲＡＭ（Random  Access  Memory）などの記憶装置９２と、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）などの外部記憶装置９３と、ディスプレイなどの表示装置９４と、デジタルカメラやボタンなどの各種入力装置９５と通信Ｉ／Ｆ９６とを、備えており、通常のコンピュータを利用したハードウェア構成で実現できる。
【００６３】
上記各実施形態の読取装置で実行されるプログラムは、ＲＯＭ等に予め組み込んで提供される。
【００６４】
また、上記各実施形態の読取装置で実行されるプログラムを、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、ＣＤ−Ｒ、メモリカード、ＤＶＤ、フレキシブルディスク（ＦＤ）等のコンピュータで読み取り可能な記憶媒体に記憶されて提供するようにしてもよい。
【００６５】
また、上記各実施形態の読取装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記各実施形態の読取装置で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。
【００６６】
上記各実施形態の読取装置で実行されるプログラムは、上述した各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、例えば、制御装置９１が外部記憶装置９３からプログラムを記憶装置９２上に読み出して実行することにより、上記各部がコンピュータ上で実現されるようになっている。
【００６７】
以上説明したとおり、上記各実施形態によれば、歪みが生じたコードであっても読み取ることができる。
【００６８】
なお本発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
【００６９】
例えば、上記各実施形態のフローチャートにおける各ステップを、その性質に反しない限り、実行順序を変更し、複数同時に実施し、あるいは実施毎に異なった順序で実施してもよい。
【符号の説明】
【００７０】
１０、５０  読取装置
１１  取得部
１３、５３  検出部
１３Ａ  検出器記憶部
１３Ｂ  特徴量算出部
１３Ｃ  量子化部
１３Ｄ  識別部
１５、５５  統合部
１７  読取部
９１  制御装置
９２  記憶装置
９３  外部記憶装置
９４  表示装置
９５  入力装置
９６  通信Ｉ／Ｆ
【図１】
0005657503.tif 000003
【図２】
0005657503.tif 000004
【図３】
0005657503.tif 000005
【図４】
0005657503.tif 000006
【図５】
0005657503.tif 000007
【図６】
0005657503.tif 000008
【図７】
0005657503.tif 000009
【図８】
0005657503.tif 000010
【図９】
0005657503.tif 000011
【図１０】
0005657503.tif 000012
【図１１】
0005657503.tif 000013
【図１２】
0005657503.tif 000014
【図１３】
0005657503.tif 000015
【図１４】
0005657503.tif 000016
【図１５】
0005657503.tif 000017
【図１６】
0005657503.tif 000018