(57)【特許請求の範囲】
【請求項１】
物品毎に異なる識別情報を含む情報をコード化した二次元コードがそれぞれ付された複数の物品と該複数の物品に付された二次元コードの領域とを含む領域が撮影されてなる画像を取得する画像取得部と、
該画像取得部により取得された画像を、該画像に含まれるエッジ成分の分布を示すエッジ画像に変換する成分変換部と、
該成分変換部により変換されたエッジ画像から、あらかじめ定められた規則であって、前記二次元コードの領域の候補領域となるべきか否かを前記二次元コードの外形形状のパラメータに基づいて判定するための規則に従って形成されている領域を前記二次元コードの領域からなる候補領域として抽出する領域抽出部と、
前記画像取得部により取得された画像における、前記領域抽出部により抽出された候補領域に対応する対応領域それぞれについて、該対応領域の形成する要素に、該対応領域内に形成されているパターンが前記二次元コードの領域であるか否かを決定するためのパターンである特徴的なパターンが含まれているか否かを判定するパターン判定部と、
該パターン判定部により特徴的なパターンが含まれていると判定された対応領域を、前記二次元コードの領域として検出することにより、前記画像に含まれる複数の二次元コードの領域を検出可能とする領域検出部と、
該領域検出部により検出された二次元コードの領域それぞれについて、該二次元コードの領域にて示される前記識別情報を含む情報を識別する情報識別部と、
検出対象の物品を指定する指定情報を設定する指定情報設定部と、
前記識別情報と該識別情報に対応する物品に係る情報とが対応付けられてなる情報が登録されたデータベースに基づき、前記情報識別部により識別された識別情報に対応する物品のなかに前記指定情報で指定された物品が存在するか否かを判定する物品有無判定部と、
前記物品有無判定部で前記指定情報で指定された物品が存在すると判定されたときに、前記画像取得部で取得された画像に対して、該画像における前記指定された物品に対応する二次元コードの領域を強調表示する加工を施す画像加工部と、
前記画像加工部で加工された画像を表示する画像表示部と、を備え、
前記物品に係る情報は、所定保管場所において前記物品の保管を開始した時期の情報である管理開始時期情報を含み、
前記画像加工部は、前記強調表示する加工に加えて、前記画像取得部で取得された画像に対して、前記管理開始時期情報に基づき、前記指定された物品に対応する二次元コードの領域上、または、その近傍に、前記保管を開始した時期の古い順に順番を示す画像を追加する加工を前記画像取得部で取得された画像に対して施すことを特徴とする物品検出装置。
【請求項２】
物品毎に異なる識別情報を含む情報をコード化した二次元コードがそれぞれ付された複数の物品と該複数の物品に付された二次元コードの領域とを含む領域が撮影されてなる画像を取得する画像取得部と、
該画像取得部により取得された画像を、該画像に含まれるエッジ成分の分布を示すエッジ画像に変換する成分変換部と、
該成分変換部により変換されたエッジ画像から、あらかじめ定められた規則であって、前記二次元コードの領域の候補領域となるべきか否かを前記二次元コードの外形形状のパラメータに基づいて判定するための規則に従って形成されている領域を前記二次元コードの領域からなる候補領域として抽出する領域抽出部と、
前記画像取得部により取得された画像における、前記領域抽出部により抽出された候補領域に対応する対応領域それぞれについて、該対応領域の形成する要素に、該対応領域内に形成されているパターンが前記二次元コードの領域であるか否かを決定するためのパターンである特徴的なパターンが含まれているか否かを判定するパターン判定部と、
該パターン判定部により特徴的なパターンが含まれていると判定された対応領域を、前記二次元コードの領域として検出することにより、前記画像に含まれる複数の二次元コードの領域を検出可能とする領域検出部と、
該領域検出部により検出された二次元コードの領域それぞれについて、該二次元コードの領域にて示される前記識別情報を含む情報を識別する情報識別部と、
検出対象の物品を指定する指定情報を設定する指定情報設定部と、
前記識別情報と該識別情報に対応する物品に係る情報とが対応付けられてなる情報が登録されたデータベースに基づき、前記情報識別部により識別された識別情報に対応する物品のなかに前記指定情報で指定された物品が存在するか否かを判定する物品有無判定部と、
前記物品有無判定部で前記指定情報で指定された物品が存在すると判定されたときに、前記画像取得部で取得された画像に対して、該画像における前記指定された物品に対応する二次元コードの領域を強調表示する加工を施す画像加工部と、
前記画像加工部で加工された画像を表示する画像表示部と、を備え、
前記物品に係る情報は、所定保管場所における前記物品の保管期限又は前記物品の消費期限の少なくとも一方を含む管理期限の情報を含み、
前記指定情報で指定される物品は、前記管理期限を経過、または、前記管理期限までの期間が所定期間以下となっている物品であり、
前記物品有無判定部は、前記情報識別部により識別された識別情報に対応する物品のなかに前記管理期限を経過、または、前記管理期限までの期間が所定期間以下となっている物品が存在するか否かを判定することを特徴とする物品検出装置。
【請求項３】
前記成分変換部による画像のエッジ画像への変換を、異なる２種類以上の変換条件のそれぞれについて順に実施させると共に、各変換条件について変換されたエッジ画像それぞれに対し、前記領域抽出部による候補領域の位置情報の抽出、前記パターン判定部による特徴的なパターンの判定、および、前記領域検出部による二次元コードの領域の検出、を繰り返し実施させる繰り返し実施部と、
特定の前記エッジ画像に対して、前記領域抽出部により抽出された候補領域それぞれが、別のエッジ画像について前記領域抽出部が抽出した候補領域（以降「抽出済み候補領域」という）と一致するか否かを、両方の候補領域に基づいて判定する一致判定部と、を備えており、
前記繰り返し実施部は、前記パターン判定部による特徴的なパターンを有しているか否かの判定、および、前記領域検出部による二次元コードの領域の検出、を、前記領域抽出部により抽出された候補領域のうち、前記一致判定部により前記抽出済み候補領域と一致しないと判定された候補領域についてのみ実施させることを特徴とする請求項１又は請求項２に記載の物品検出装置。
【請求項４】
前記一致判定部は、特定の前記エッジ画像に対して、前記領域抽出部により抽出された候補領域それぞれが、別のエッジ画像における前記抽出済み候補領域と一致するか否かを、両方の候補領域における重複度合に応じて判定することを特徴とする請求項３に記載の物品検出装置。
【請求項５】
前記一致判定部は、特定の前記エッジ画像に対して、前記領域抽出部により抽出された候補領域それぞれが、別のエッジ画像における前記抽出済み候補領域と一致するか否かを、両方の候補領域のうちの一方の候補領域が他方の候補領域に包摂されているか否かに応じて判定することを特徴とする請求項３又は請求項４に記載の物品検出装置。
【請求項６】
前記二次元コードの領域が多角形である場合において、
前記一致判定部は、特定の前記エッジ画像において前記領域抽出部により抽出された候補領域それぞれについて、該候補領域として形成された多角形における１以上の頂点が、前記抽出済み候補領域として形成された多角形におけるいずれかの頂点から一定範囲内に位置しているか否かに応じて、前記領域抽出部により抽出された候補領域それぞれが、別のエッジ画像における前記抽出済み候補領域と一致するか否かを判定することを特徴とする請求項３乃至請求項５のいずれか１項に記載の物品検出装置。
【請求項７】
前記二次元コードは、複数のセルが配列され、前記複数のセルに色の異なる複数種類のセルが含まれるように各セルに色を付すことで該色または色の組合せに応じた１以上の情報それぞれをコード化した二次元コードであり、
前記情報識別部は、前記二次元コードの領域における各セルの領域に付された色または色の組合せに基づいて情報を識別することを特徴とする請求項１乃至請求項６のいずれか１項に記載の物品検出装置。
【請求項８】
前記二次元コードは、前記複数のセルそれぞれに付される色が、複数種類の色のうち、該セルにてコード化すべき情報、および、該セルと隣接するセルに付された色に応じた着色規則に従って定められており、
さらに、
前記領域検出部により検出された二次元コードの領域それぞれについて、該二次元コードの領域における各セルの領域のうち、該セルの領域に対して前記着色規則に従って付されるべき色、および、前記二次元コードにおいて使用されるべき色、以外の色が付されているセルの領域につき、該セルの領域に本来付されるべき色を前記着色規則に従って推定する色推定部、を備えており、
前記情報識別部は、前記二次元コードの領域における各セルの領域のうち、前記色推定部により色が推定されたセルの領域に該推定された色が付されているものとして、各セルの領域に付された色または色の組合せに基づいて情報を識別することを特徴とする請求項７に記載の物品検出装置。
【請求項９】
前記領域検出部により検出された二次元コードの領域それぞれについて、該二次元コードの領域における各セルの領域に付されている色を、該二次元コードにおいて使用される複数の色それぞれを中心に拡がる色空間上の判定領域のいずれに含まれているかにより判定する色判定部、を備えており、
前記情報識別部は、前記二次元コードの領域における各セルの領域に、該セルの領域について前記色判定部が判定した色が付されているものとして、各セルの領域に付された色または色の組合せに基づいて情報を識別することを特徴とする請求項７または請求項８に記載の物品検出装置。
【請求項１０】
前記色判定部は、複数の色それぞれに対応する前記判定領域のいずれにも含まれていないと判定したセルの領域が一定数以上存在する二次元コードの領域に対し、前記判定領域を一定領域だけ拡げたうえで、再度、各セルの領域に付されている色を判定することを特徴とする請求項９に記載の物品検出装置。
【請求項１１】
前記色判定部は、複数の色それぞれに対応する前記判定領域のいずれにも含まれていないと判定したセルの領域が一定数以上存在する二次元コードの領域に対し、該二次元コードの領域における色の分布に応じて前記判定領域を色空間上で変移させたうえで、再度、各セルの領域に付されている色を判定することを特徴とする請求項９に記載の物品検出装置。
【請求項１２】
前記領域抽出部は、前記二次元コードの形成に係る規則を規定するテンプレートに基づいて、前記成分変換部により変換されたエッジ画像から、そのテンプレートにて定められた規則に従って形成されている領域を候補領域として抽出することを特徴とする請求項１乃至請求項１１のいずれか１項に記載の物品検出装置。
【請求項１３】
請求項１乃至請求項１２のいずれか１項に記載の全ての構成部として機能させるための各種処理手順をコンピュータシステムに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の物品にそれぞれ付された二次元コードを含む領域が撮影されてなる画像から複数の二次元コードを読み取って認識し、画像内の複数の二次元コードのうち検出対象の物品に対応する二次元コードの領域それぞれを特定する物品検出装置に関する。
【背景技術】
【０００２】
従来から、二次元コードを示す画像から二次元コードの領域を特定し、その二次元コードにてコード化された情報を識別する技術が用いられている（特許文献１参照）。
また、可視光通信タグと２次元イメージセンサを用いて物品の位置管理を行う技術が特許文献２に開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−１９５５３６号公報
【特許文献２】特開２００９−１３９３１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上記特許文献１の技術においては、情報を識別する際に取得される画像が、１つの二次元コードが画像領域の大部分にわたって収まっている画像を用いるように構成されているため、複数の二次元コードが領域内に収まっている画像から、この画像に含まれる二次元コードそれぞれを特定することができなかった。
また、上記特許文献２の技術においては、物品の位置を特定するために可視光通信タグを必要とするため、大量の物品を管理する場合にコストが高くなるといった問題があった。
【０００５】
加えて、上記特許文献２の技術においては、物品の位置は視覚的に確認できるが、その物品の管理を開始した時期を示す情報等の物品に係る情報を物品の位置と共に視覚的に確認することはできなかった。
本発明は、このような課題を解決するためになされたものであり、その目的は、画像に含まれる複数の二次元コードそれぞれを特定すると共に、二次元コードそれぞれに対応する物品のうち検出対象の物品に係る情報を物品の位置と共に視覚的に確認するための技術を提供することである。
【課題を解決するための手段】
【０００６】
〔第１の構成〕
上記課題を解決するために、第１の構成の物品検出装置は、物品毎に異なる識別情報を含む情報をコード化した二次元コードがそれぞれ付された複数の物品と該複数の物品に付された二次元コードの領域とを含む領域が撮影されてなる画像を取得する画像取得部と、該画像取得部により取得された画像を、該画像に含まれるエッジ成分の分布を示すエッジ画像に変換する成分変換部と、該成分変換部により変換されたエッジ画像から、あらかじめ定められた規則であって、前記二次元コードの領域の候補領域となるべきか否かを前記二次元コードの外形形状のパラメータに基づいて判定するための規則に従って形成されている領域を前記二次元コードの領域からなる候補領域として抽出する領域抽出部と、前記画像取得部により取得された画像における、前記領域抽出部により抽出された候補領域に対応する対応領域それぞれについて、該対応領域の形成する要素に、該対応領域内に形成されているパターンが前記二次元コードの領域であるか否かを決定するためのパターンである特徴的なパターンが含まれているか否かを判定するパターン判定部と、該パターン判定部により特徴的なパターンが含まれていると判定された対応領域を、前記二次元コードの領域として検出することにより、前記画像に含まれる複数の二次元コードの領域を検出可能とする領域検出部と、該領域検出部により検出された二次元コードの領域それぞれについて、該二次元コードの領域にて示される前記識別情報を含む情報を識別する情報識別部と、検出対象の物品を指定する指定情報を設定する指定情報設定部と、前記識別情報と該識別情報に対応する物品に係る情報とが対応付けられてなる情報が登録されたデータベースに基づき、前記情報識別部により識別された識別情報に対応する物品のなかに前記指定情報で指定された物品が存在するか否かを判定する物品有無判定部と、前記物品有無判定部で前記指定情報で指定された物品が存在すると判定されたときに、前記画像取得部で取得された画像に対して、該画像における前記指定された物品に対応する二次元コードの領域を強調表示する加工を施す画像加工部と、前記画像加工部で加工された画像を表示する画像表示部と、を備えている。
そして、前記物品に係る情報は、所定保管場所において前記物品の保管を開始した時期の情報である管理開始時期情報を含み、前記画像加工部は、前記強調表示する加工に加えて、前記画像取得部で取得された画像に対して、前記管理開始時期情報に基づき、前記指定された物品に対応する二次元コードの領域上、または、その近傍に、前記保管を開始した時期の古い順に順番を示す画像を追加する加工を前記画像取得部で取得された画像に対して施す。
【０００７】
この構成では、取得された画像（原画像）から生成されたエッジ画像に基づき、このエッジ画像中における候補領域の抽出、この抽出した候補領域に対応する原画像中の対応領域それぞれに特徴的なパターンが含まれているか否かの判定を経て、原画像中から二次元コードの領域を検出することができる。
このように、原画像の領域において、エッジ画像の候補領域に対応する対応領域のうち、特徴的なパターンが含まれる対応領域を、原画像中における二次元コードの領域として検出することにより、原画像に含まれる複数の二次元コードの領域それぞれを特定することができるようになる。
【０００８】
また、上記構成では、取得された画像からエッジ画像を生成し、このエッジ画像から、二次元コードの領域の候補となる候補領域を抽出したうえで、原画像における、この抽出した候補領域に対応する領域から二次元コードの領域を検出して情報の識別を行うことができる。そのため、候補領域を抽出することなく二次元コードの領域を検出しようとする場合と比べて、抽出した候補領域という限定的な範囲から二次元コードの領域の検出を行うことができる。これにより、二次元コードの領域から情報の識別を行うまでに要する処理負荷および処理時間を抑えることができる。
【０００９】
また、上記構成では、物品毎に異なる識別情報と物品に係る情報とを対応付けてなる情報が登録されたデータベースに基づき、上記情報の識別により得られた識別情報に対応する物品のなかに指定情報で指定された物品（以下、指定物品と称す）が存在するか否かの判定を行うことで、原画像中の二次元コードの領域のなかから指定物品に対応する二次元コードの領域を特定することができる。
また、上記構成では、指定物品が存在すると判定され、該指定物品に対応する二次元コードの領域が特定されると、原画像に対して指定物品に対応する二次元コードの領域を強調表示する加工を施すことができる。
このような加工の施された画像を表示することにより、ユーザは、指定物品の位置を視覚的に簡易に把握することができる。
また、上記構成では、画像加工部で加工された画像を表示装置に表示することができる。
これにより、原画像が表示されると共に原画像中の指定物品に付されている二次元コードの領域が強調表示され、ユーザは、指定物品の位置を視覚的に簡易に把握することができる。
また、上記構成では、原画像に対して、指定物品に対応する二次元コードの領域を強調表示する加工に加えて、指定物品に係る情報に基づく情報を示す画像を追加する加工を施すことができる。
このようにして加工された画像を表示することにより、ユーザは、指定物品の位置を目視で瞬時に把握することができると共に、指定物品に係る情報に基づく情報を示す画像から、例えば、品名、個数、管理開始時期、出荷期限、消費期限などの情報を確認することができる。
また、上記構成では、物品に係る情報に含まれる物品の管理開始時期情報に基づき、指定物品の管理開始時期の古い順に、その順番を示す画像（例えば、数字画像）を、原画像における指定物品に対応する二次元コードの領域上、または、その近傍に追加する加工を行うことができる。
このようにして加工された画像を表示することにより、ユーザは、指定物品の管理開始時期の順番を視覚的に簡易に把握することができるので、物品を出荷する際に、管理開始時期の古い順に出荷する作業等を容易に行うことができる。
この構成において、原画像から変換されるエッジ画像は、原画像に含まれるエッジ成分の分布を示すものであればよく、例えば、原画像における輝度、明度など特定の成分のみを分布させた画像における所定のしきい値以上の成分のみを抽出（具体的にはしきい値で二値化）した画像や、この画像に対して輪郭線の抽出をした画像などのことである。このことは、下記第２の構成においても同様である。
【００１０】
また、エッジ画像から候補領域を抽出する際の「あらかじめ定められた規則」とは、二次元コードの領域からなる候補領域を規定するものであればよく、例えば、二次元コードの領域の外形形状、外形形状が多角形である場合における各辺の長さや各辺で形成される角度、外形形状が多角形である場合における各辺の長さの比率、エッジ画像に二次元コードの領域が含まれている場合におけるエッジ成分の分布パターン（エッジ成分の分布状態、分布されているエッジ成分の配置など）、などを規定しておけばよい。このことは、下記第２の構成においても同様である。
【００１１】
また、原画像から二次元コードの領域を検出する際に参照される「特徴的なパターン」とは、二次元コードについて定められた特徴的なパターンを直接的または間接的に示す情報であればよく、例えば、二次元コードにおいてコード化のシンボルとなるセルの配置パターンや、二次元コードであることを識別するために配置された特定シンボルの配置パターンや、二次元コードであることを識別するために配置されたマークのパターンを直接的または間接的に示す情報などのことである。このことは、下記第２の構成においても同様である。
また、「物品に係る情報」とは、品名、品名コード、シリアル番号等、個数、管理開始時期、出荷期限、消費期限などの情報を含むものである。このことは、下記第２の構成においても同様である。
また、「強調表する加工」とは、原画像中における指定物品に対応する二次元コードの領域に対して、赤色等の目立つ色のラインで周りを囲む加工、輪郭部を太線にしたり色を変更したりする加工、特定の色で塗りつぶす加工などが含まれる。他にも、処理時間の許容範囲内で、指定物品に対応する二次元コードの領域を揺らす等のアニメーション表示する加工なども含む。このことは、下記第２の構成においても同様である。
【００１２】
〔第２の構成〕
一方、上記課題を解決するために、第２の構成の物品検出装置は、物品毎に異なる識別情報を含む情報をコード化した二次元コードがそれぞれ付された複数の物品と該複数の物品に付された二次元コードの領域とを含む領域が撮影されてなる画像を取得する画像取得部と、該画像取得部により取得された画像を、該画像に含まれるエッジ成分の分布を示すエッジ画像に変換する成分変換部と、該成分変換部により変換されたエッジ画像から、あらかじめ定められた規則であって、前記二次元コードの領域の候補領域となるべきか否かを前記二次元コードの外形形状のパラメータに基づいて判定するための規則に従って形成されている領域を前記二次元コードの領域からなる候補領域として抽出する領域抽出部と、前記画像取得部により取得された画像における、前記領域抽出部により抽出された候補領域に対応する対応領域それぞれについて、該対応領域の形成する要素に、該対応領域内に形成されているパターンが前記二次元コードの領域であるか否かを決定するためのパターンである特徴的なパターンが含まれているか否かを判定するパターン判定部と、該パターン判定部により特徴的なパターンが含まれていると判定された対応領域を、前記二次元コードの領域として検出することにより、前記画像に含まれる複数の二次元コードの領域を検出可能とする領域検出部と、該領域検出部により検出された二次元コードの領域それぞれについて、該二次元コードの領域にて示される前記識別情報を含む情報を識別する情報識別部と、検出対象の物品を指定する指定情報を設定する指定情報設定部と、前記識別情報と該識別情報に対応する物品に係る情報とが対応付けられてなる情報が登録されたデータベースに基づき、前記情報識別部により識別された識別情報に対応する物品のなかに前記指定情報で指定された物品が存在するか否かを判定する物品有無判定部と、前記物品有無判定部で前記指定情報で指定された物品が存在すると判定されたときに、前記画像取得部で取得された画像に対して、該画像における前記指定された物品に対応する二次元コードの領域を強調表示する加工を施す画像加工部と、前記画像加工部で加工された画像を表示する画像表示部と、を備えている。
そして、前記物品に係る情報は、所定保管場所における前記物品の保管期限又は前記物品の消費期限の少なくとも一方を含む管理期限の情報を含み、前記指定情報で指定される物品は、前記管理期限を経過、または、前記管理期限までの期間が所定期間以下となっている物品であり、前記物品有無判定部は、前記情報識別部により識別された識別情報に対応する物品のなかに前記管理期限を経過、または、前記管理期限までの期間が所定期間以下となっている物品が存在するか否かを判定する。
この構成では、取得された画像（原画像）から生成されたエッジ画像に基づき、このエッジ画像中における候補領域の抽出、この抽出した候補領域に対応する原画像中の対応領域それぞれに特徴的なパターンが含まれているか否かの判定を経て、原画像中から二次元コードの領域を検出することができる。
このように、原画像の領域において、エッジ画像の候補領域に対応する対応領域のうち、特徴的なパターンが含まれる対応領域を、原画像中における二次元コードの領域として検出することにより、原画像に含まれる複数の二次元コードの領域それぞれを特定することができるようになる。
また、上記構成では、取得された画像からエッジ画像を生成し、このエッジ画像から、二次元コードの領域の候補となる候補領域を抽出したうえで、原画像における、この抽出した候補領域に対応する領域から二次元コードの領域を検出して情報の識別を行うことができる。そのため、候補領域を抽出することなく二次元コードの領域を検出しようとする場合と比べて、抽出した候補領域という限定的な範囲から二次元コードの領域の検出を行うことができる。これにより、二次元コードの領域から情報の識別を行うまでに要する処理負荷および処理時間を抑えることができる。
また、上記構成では、物品毎に異なる識別情報と物品に係る情報とを対応付けてなる情報が登録されたデータベースに基づき、上記情報の識別により得られた識別情報に対応する物品のなかに指定情報で指定された物品（以下、指定物品と称す）が存在するか否かの判定を行うことで、原画像中の二次元コードの領域のなかから指定物品に対応する二次元コードの領域を特定することができる。
また、上記構成では、指定物品が存在すると判定され、該指定物品に対応する二次元コードの領域が特定されると、原画像に対して指定物品に対応する二次元コードの領域を強調表示する加工を施すことができる。
このような加工の施された画像を表示することにより、ユーザは、指定物品の位置を視覚的に簡易に把握することができる。
また、上記構成では、画像加工部で加工された画像を表示装置に表示することができる。
これにより、原画像が表示されると共に原画像中の指定物品に付されている二次元コードの領域が強調表示され、ユーザは、指定物品の位置を視覚的に簡易に把握することができる。
また、上記構成では、原画像に対して、指定物品に対応する二次元コードの領域を強調表示する加工に加えて、指定物品に係る情報に基づく情報を示す画像を追加する加工を施すことができる。
このようにして加工された画像を表示することにより、ユーザは、指定物品の位置を目視で瞬時に把握することができると共に、指定物品に係る情報に基づく情報を示す画像から、例えば、品名、個数、管理開始時期、出荷期限、消費期限などの情報を確認することができる。
また、上記構成では、物品に係る情報に含まれる物品の管理期限の情報に基づき、管理期限を経過、または、管理期限までの期間が所定期間以下となった物品を指定物品として検出することができる。そして、原画像に対して、指定物品に対応する二次元コードの領域を強調表示する加工を施すことができる。
このようにして加工された画像を表示することにより、ユーザは、管理期限を経過、または、管理期限までの期間が所定期間以下となった物品を目視で瞬時に把握することができる。例えば、お菓子や生鮮食品等の食品を販売する店舗内において商品陳列棚等に載置された複数の食品の中から賞味期限切れの商品を簡易に検出することができるので、作業効率を向上することができる。
【００２０】
〔第３の構成〕
さらに、第３の構成の物品検出装置は、上記第１〜第２の構成のいずれか１において、前記成分変換部による画像のエッジ画像への変換を、異なる１種類以上の変換条件のそれぞれについて順に実施させると共に、各変換条件について変換されたエッジ画像それぞれに対し、前記領域抽出部による候補領域の位置情報の抽出、前記パターン判定部による特徴的なパターンの判定、および、前記領域検出部による二次元コードの領域の検出、を繰り返し実施させる繰り返し実施部と、特定の前記エッジ画像に対して、前記領域抽出部により抽出された候補領域それぞれが、別のエッジ画像について前記領域抽出部が抽出した候補領域（以降「抽出済み候補領域」という）と一致するか否かを、両方の候補領域に基づいて判定する一致判定部と、を備えている。
【００２１】
そして、前記繰り返し実施部は、前記パターン判定部による特徴的なパターンを有しているか否かの判定、および、前記領域検出部による二次元コードの領域の検出、を、前記領域抽出部により抽出された候補領域のうち、前記一致判定部により前記抽出済み候補領域と一致しないと判定された候補領域についてのみ実施させる。
この構成では、原画像に基づいて生成される複数種類のエッジ画像それぞれについて、候補領域の位置情報の抽出、この抽出した位置情報に対応する対応領域に特徴的なパターンが含まれているか否かの判定、および、二次元コードの領域の検出を繰り返し実施している。
これにより、特定のエッジ画像に基づいて二次元コードの領域を検出できなかったとしても、別のエッジ画像に基づいて検出されることが期待でき、その結果、原画像における二次元コードの領域の検出精度を高めることができる。
【００２２】
また、この繰り返しの過程では、特定のエッジ画像について新たに抽出された候補領域が、先に参照されたエッジ画像について抽出された抽出済み候補領域と、原画像の領域において一致している場合も想定される。ところが、上記構成では、このように一致する抽出済み候補領域について、抽出した候補領域に特徴的なパターンが含まれているか否かの判定、および、二次元コードの領域の検出を実施しない。
そのため、複数のエッジ画像それぞれに基づいて検出された各二次元コードの領域について、この二次元コードの領域にて示される情報を識別するに際し、本来同じものであるはずの二次元コードの領域を繰り返し識別してしまうといった無用な処理負担をなくすことができる。
【００２３】
〔第４の構成〕
さらに、第４の構成の物品検出装置は、上記第３の構成において、前記一致判定部は、特定の前記エッジ画像に対して、前記領域抽出部により抽出された候補領域それぞれが、別のエッジ画像における前記抽出済み候補領域と一致するか否かを、両方の候補領域における重複度合に応じて判定する。
この構成において、前記一致判定部は、特定の前記エッジ画像に対して、前記領域抽出部により抽出された候補領域それぞれが、別のエッジ画像における前記抽出済み候補領域と一致するか否かを、両方の候補領域における重複度合に応じて判定する。
この構成であれば、特定のエッジ画像から抽出された候補領域と、別のエッジ画像における抽出済み候補領域との重複度合に応じ、その重複度合が一定以上であることをもって、両候補領域が一致すると判定することができる。
〔第５の構成〕
さらに、第５の構成の物品検出装置は、上記第３〜第４の構成のいずれか１において、前記一致判定部は、特定の前記エッジ画像に対して、前記領域抽出部により抽出された候補領域それぞれが、別のエッジ画像における前記抽出済み候補領域と一致するか否かを、両方の候補領域のうちの一方の候補領域が他方の候補領域に包摂されているか否かに応じて判定する。
この構成であれば、特定のエッジ画像から抽出された候補領域、および、別のエッジ画像における抽出済み候補領域のうち、一方の候補領域が他方の候補領域に包摂されていることをもって、両候補領域が一致すると判定することができる。
〔第６の構成〕
さらに、第６の構成の物品検出装置は、上記第３〜第５の構成のいずれか１において、前記二次元コードの領域が多角形である場合において、前記一致判定部は、特定の前記エッジ画像において前記領域抽出部により抽出された候補領域それぞれについて、該候補領域として形成された多角形における１以上の頂点が、前記抽出済み候補領域として形成された多角形におけるいずれかの頂点から一定範囲内に位置しているか否かに応じて、前記領域抽出部により抽出された候補領域それぞれが、別のエッジ画像における前記抽出済み候補領域と一致するか否かを判定する。
この構成であれば、特定のエッジ画像から抽出された候補領域における１以上の頂点が、抽出済み候補領域におけるいずれかの頂点から一定範囲内に位置していることをもって、両候補領域が一致すると判定することができる。
ここでいう「いずれかの頂点から一定範囲内」とは、特定のエッジ画像から抽出された候補領域と、別のエッジ画像における抽出済み候補領域とが一致する場合における両者の位置関係で決まる範囲内とすればよい。
また、両候補領域が一致すると判定する条件としては、特定のエッジ画像から抽出された候補領域における少なくとも１の頂点が、別のエッジ画像における抽出済み候補領域におけるいずれかの頂点から一定範囲内に位置していればよい。また、両候補領域が一致すると判定するに際しては、いくつの頂点が一定範囲内に位置していることを条件としてもよく、二次元コードの領域を検出するまでの処理負担や処理速度などに応じて適宜変更することが考えられる。
〔第７の構成〕
さらに、第７の構成の物品検出装置は、上記第１〜第６の構成のいずれか１において、前記二次元コードは、複数のセルが配列され、前記複数のセルに色の異なる複数種類のセルが含まれるように各セルに色を付すことで該色または色の組合せに応じた１以上の情報それぞれをコード化した二次元コードであり、前記情報識別部は、前記二次元コードの領域における各セルの領域に付された色または色の組合せに基づいて情報を識別する。
この構成であれば、二次元コードに付された色に基づいて、二次元コードの領域で示される情報を識別することができる。
【００２４】
〔第８の構成〕
さらに、第８の構成の物品検出装置は、上記第７の構成において、前記二次元コードの領域は、前記複数のセルそれぞれに付される色が、複数種類の色のうち、該セルにてコード化すべき情報、および、該セルと隣接するセルに付された色に応じた着色規則に従って定められている。
【００２５】
さらに、前記領域検出部により検出された二次元コードの領域それぞれについて、該二次元コードの領域における各セルの領域のうち、該セルの領域に対して前記着色規則に従って付されるべき色、および、前記二次元コードにおいて使用されるべき色、以外の色が付されているセルの領域につき、該セルの領域に本来付されるべき色を前記着色規則に従って推定する色推定部、を備えている。そして、前記情報識別部は、前記二次元コードの領域における各セルの領域のうち、前記色推定部により色が推定されたセルの領域に該推定された色が付されているものとして、各セルの領域に付された色または色の組合せに基づいて情報を識別する。
【００２６】
ここで、上記第７の構成では、二次元コード全体が正常に画像として生成されていれば問題はないが、画像の生成（具体的には撮影）状態によっては、一部のセルに対応する領域が欠けてしまうなど正常に画像として生成されていないことも考えられ、この場合、情報の識別そのものができなくなってしまう。
このような問題に対しては、一部のセルに対応する領域が欠けてしまったような場合であっても、これを補償して適切な情報の識別が実現できるようにしておくことが望ましい。
【００２７】
上記第８の構成であれば、二次元コードにおける各セルのうち、一部のセルに対応する領域が欠けてしまっていたとしても、そのセルに本来付されるべき色を着色規則に従って推定し、その色に基づいて情報を識別することができるため、情報の識別そのものができなくなってしまうことを防止することができる。
なお、この構成において、着色規則に従って推定されるセルの色として、複数の色が推定されるような場合には、そのうちのいずれかの色を、例えば、推定結果の確からしさなどといったパラメータに基づいて選択し、そうして選択した色が付されていると推定することとすればよい。また、複数の色が推定されるような場合、複数の色が付されているパターンそれぞれについて情報を識別し、そうして識別した情報の中から、いずれかの情報をユーザに選択させるようにしてもよい。
〔第９の構成〕
さらに、第９の構成の物品検出装置は、上記第７または第８の構成において、前記領域検出部により検出された二次元コードの領域それぞれについて、該二次元コードの領域における各セルの領域に付されている色を、該二次元コードにおいて使用される複数の色それぞれを中心に拡がる色空間上の判定領域のいずれに含まれているかにより判定する色判定部、を備えている。そして、前記情報識別部は、前記二次元コードの領域における各セルの領域に、該セルの領域について前記色判定部が判定した色が付されているものとして、各セルの領域に付された色または色の組合せに基づいて情報を識別する。
この構成であれば、二次元コードにおける各セルの領域に付されている色を、色空間におけるいずれの判定領域に含まれているかにより判定することができる。
【００２８】
〔第１０の構成〕
さらに、第１０の構成の物品検出装置は、上記第１０の構成において、前記色判定部は、複数の色それぞれに対応する前記判定領域のいずれにも含まれていないと判定したセルの領域が一定数以上存在する二次元コードの領域に対し、前記判定領域を一定領域だけ拡げたうえで、再度、各セルの領域に付されている色を判定する。
【００２９】
上記第９の構成においては、画像の生成条件によっては多くのセルの領域に付された色がいずれの判定領域にも含まれないことも考えられ、この場合、情報の識別そのものができなくなってしまう。
このような問題に対しては、多くのセルの領域に付された色がいずれの判定領域にも含まれない場合であっても、これを補償して適切な情報の識別が実現できるようにしておくことが望ましい。
【００３０】
上記第１０の構成であれば、画像の生成条件が悪く、適切に色の判定ができない場合であっても、判定領域を拡げることで判定の感度を上げて再度色を判定することにより、色の判定確率を高めることができる。
この構成において、判定領域を拡げる際の拡張幅は、他の判定領域と干渉しない範囲を上限として拡げることとすればよく、判定領域のいずれにも含まれていないと判定したセルが一定数未満となるまで、判定領域を徐々に拡げて再度の判定を繰り返すこととしてもよい。
【００３１】
〔第１１の構成〕
さらに、第１１の構成の物品検出装置は、上記第９の構成において、前記色判定部は、複数の色それぞれに対応する前記判定領域のいずれにも含まれていないと判定したセルの領域が一定数以上存在する二次元コードの領域に対し、該二次元コードの領域における色の分布に応じて前記判定領域を色空間上で変移させたうえで、再度、各セルの領域に付されている色を判定する。
【００３２】
この構成であれば、画像の生成条件が悪く、適切に色の判定ができない場合であっても、判定領域を色の分布に応じた適切な位置まで変移させて再度色を判定することにより、色の判定確率を高めることができる。
この構成において、判定領域は、二次元コードの領域における色成分の偏りを打ち消すことのできる色空間上の位置へと変移させることとすればよい。より具体的には、二次元コードの領域において特定の色成分が全体的に大きくなっている場合に、この色成分を小さくする方向に判定領域を変移させることが考えられる。
なお、上記第１０、第１１の構成において、「判定領域のいずれにも含まれていないと判定したセルが一定数以上存在する」における「一定数」については、全てのセルに占める該当セルの割合であってもよいし、該当セルの絶対数であってもよい。また、二次元コードにおいて該当セルが特定パターンで配置されている数であってよい。
【００３８】
〔第１２の構成〕
さらに、第１２の構成の物品検出装置は、上記第１〜第１１の構成のいずれか１におい、前記領域抽出部は、前記二次元コードの形成に係る規則を規定するテンプレートに基づいて、前記成分変換部により変換されたエッジ画像から、そのテンプレートにて定められた規則に従って形成されている領域を候補領域として抽出する。
【００３９】
このように構成すれば、テンプレートで規定される規則に従って候補領域を抽出することができるため、このテンプレートと共に規則を変更することにより、任意の規則に従って形成された領域を候補領域として検出できるようにすることができる。
なお、上述した物品検出装置は、単体の装置により構成してもよいし、複数の装置が協調して動作するシステムとして構成してもよい。
【００４０】
〔第１３の構成〕
また、上記課題を解決するための第１３の構成としては、上記第１から第１２のいずれか１の構成における全ての構成部として機能させるための各種処理手順を、コンピュータシステムに実行させるためのプログラムとしてもよい。
このようなプログラムにより制御されるコンピュータシステムは、上記各構成に係る物品検出装置の一部を構成することができる。
なお、上述した各プログラムは、コンピュータシステムによる処理に適した命令の順番付けられた列からなるものであって、各種記録媒体や通信回線を介して物品検出装置や、これを利用するユーザに提供されるものである。
【図面の簡単な説明】
【００４１】
【図１】物品検出装置１の構成例を示すブロック図である。
【図２】二次元コード１００の構成例を示す図である。
【図３】コード利用物品検出処理の処理手順の一例を示すフローチャートである。
【図４】エッジ画像から抽出された候補領域それぞれが抽出済み候補領域と一致するか否かを判定するための別手法を示す図である。
【図５】（ａ）は、変数Ｙの値と画像種類およびしきい値との対応関係の一例を示す図であり、（ｂ）は、エッジ画像生成処理の処理手順の一例を示すフローチャートである。
【図６】有効領域判定処理の処理手順を示すフローチャートである。
【図７】（ａ）は、理想的な候補領域の形状例を示す図であり、（ｂ）〜（ｅ）は、誤差範囲外の形状例を示す図であり、（ｆ）〜（ｇ）は、誤差範囲内の形状例を示す図である。
【図８】色判定処理の処理手順の一例を示すフローチャートである。
【図９】物品検出処理の処理手順の一例を示すフローチャートである。
【図１０】データベースに登録された識別情報および物品情報の一例を示す図である。
【図１１】（ａ）は、物品検出モードの検出対象画像例を示す図であり、（ｂ）は、検出結果の表示例を示す図である。
【図１２】（ａ）は、期限管理モードの検出対象画像例を示す図であり、（ｂ）は、検出結果の表示例を示す図であり、（ｃ）は、カメラ７６の配設位置の一例を示す図である。
【図１３】検出モード設定処理の処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００４２】
以下に本発明の実施形態を図面に基づき説明する。
（１）物品検出装置１の構成
まず、図１に基づき、物品検出装置１の構成を説明する。図１は、物品検出装置１の構成例を示すブロック図である。
物品検出装置１は、図１に示すように、ＣＰＵ（Central Processing Unit）６０と、ＲＡＭ（Random Access Memory）６２と、ＲＯＭ（Read Only Memory）６４と、入出力インターフェース（Ｉ／Ｆ）６６と、バス６８とを含んで構成されるコンピュータシステムを備えている。ＣＰＵ６０、ＲＡＭ６２、ＲＯＭ６４およびＩ／Ｆ６６は、バス６８に接続されており、バス６８を介してこれら接続デバイス間のデータの送受信を可能としている。
【００４３】
物品検出装置１は、さらに、Ｉ／Ｆ６６を介して、記憶装置７０と、表示装置７２と、入力装置７４と、カメラ７６と、ＮＩＣ（Network Interface Card）７８とに接続されている。
ＣＰＵ６０は、ＲＯＭ６４または記憶装置７０に予め記憶された各種専用のコンピュータプログラムをＲＡＭ６２に読み込み、ＲＡＭ６２に読み込まれたプログラムに記述された命令に従って、各種リソースを駆使して、後述する二次元コードを利用した物品検出処理（以下、コード利用物品検出処理と称す）を実行する。
【００４４】
記憶装置７０は、各種専用のコンピュータプログラム、プログラムの実行において用いられるデータ等の、上記コード利用物品検出処理に必要なデータを記憶する。
具体的に、記憶装置７０は、二次元コードを特徴づける情報を規定したテンプレート、カメラ７６によって撮影して得られる画像データを記憶する。
さらに、記憶装置７０は、各二次元コードにおいて独特のセル群それぞれの色または色の組み合わせと、各二次元コードに対してユニークな情報を含む情報との対応関係が登録されたデータテーブルを記憶する。
【００４５】
さらに、記憶装置７０は、二次元コードが付された物品に関する情報（以下、物品情報と称す）と、各二次元コードの有するユニークな情報（識別情報）とを対応付けてなる情報を登録したデータベースを記憶する。このデータベースは、具体的に、物品の識別情報（品名、シリアル番号等）、個数情報、入庫時期等の保管開始時期情報、出荷期限、消費期限等の期限情報などを、各二次元コードの有するユニークな情報と対応付けて登録したものとなる。
【００４６】
ここで、記憶装置７０は、ＦＤドライブ、ＨＤドライブ等の磁気記憶型記憶装置、ＣＤドライブ、ＤＶＤドライブ、ＢＲＤドライブ等の光学的読取／書込方式記憶装置、ＭＯドライブ等の磁気記憶型／光学的読取方式記憶装置等の、コンピュータで記憶データを読み取り可能な記憶装置であれば何でもよい。
表示装置７２は、ＣＲＴディスプレイ、液晶ディスプレイなどの周知の表示装置であり、ＣＰＵ６０からの指令に応じて、カメラ７６で撮影された画像、該画像を加工した加工画像等の画像（動画を含む）の表示を行う。
【００４７】
入力装置７４は、キーボード、マウス、操作ボタン、タッチ式の入力デバイス（タッチパネル等）などのヒューマンインターフェースデバイスであり、ユーザの操作に応じた入力を受け付ける。
カメラ７６は、デジタルカメラ等の周知のカメラであり、所定の撮影領域を撮影して得られた画像を示す画像データを生成して順次Ｉ／Ｆ６６を介してＲＡＭ６２または記憶装置７０に送信して、ＲＡＭ６２または記憶装置７０に画像データを格納する。
【００４８】
ＮＩＣ７８は、ＬＡＮ、ＷＡＮ、インターネット等のネットワーク上の外部装置と通信するためのデバイスであり、一般にＬＡＮカード等と呼ばれる周知のネットワークアダプタである。ＮＩＣ７８は、ネットワークケーブルＬを介してルータやハブ等に接続され、これらを介して、物品検出装置１をネットワークに接続する。なお、周知の無線ＬＡＮ等の、無線によって無線ＬＡＮ用のアクセスポイントを介してネットワークに接続する構成であってもよい。
【００４９】
これにより、本実施の形態では、ネットワークに接続された外部カメラから、ＮＩＣ７８を介して所定の撮影領域の撮影画像を示す画像データを取得したり、ネットワークに接続されたデータサーバから各種データを取得したりすることも可能である。
なお、この物品検出装置１は、例えば、携帯電話端末、携帯情報端末、周知のパーソナルコンピュータなどに実装されるものとして構成される。
【００５０】
そして、本実施形態における物品検出装置１は、複数の物品と該物品にそれぞれ付された１以上の二次元コードとが含まれた画像を示す画像データに基づき、その画像中の二次元コードを検出する処理と、検出した二次元コードにより示される情報を識別して取得する処理とを行う装置として構成されている。さらに、取得した識別情報に対応する物品のなかに検出対象として指定された物品が存在するか否かを判定し、検出対象の物品が存在する場合に、この物品に対応する二次元コードの領域を強調表示する加工を原画像に施し、該加工後の画像を表示する処理を行う装置として構成されている。
なお、本実施形態において、上記各処理は、入力装置７４を介したユーザーの操作入力（指示情報）をトリガとして行われる一連の処理となる。
【００５１】
（２）二次元コード１００の構成
次に、図２に基づき、物品検出装置１により読み取る二次元コード１００について説明する。図２は、二次元コード１００の構成例を示す図である。
本実施形態における二次元コード１００は、図２に示すように、黒色のセパレータ１１０上に複数のセルＣ１１〜Ｃｐｑ（２≦ｐ，２≦ｑ）が一定間隔で配列され、所定の情報が各セルの色および色の組み合わせによりコード化されたものである。つまり、この二次元コードは、セルそれぞれ、または、組み合わせに係るセル群それぞれが、そこに付された複数の色（多色）、または、色の組み合わせパターンにより、数字や文字など複数種類の値（多値）を表現可能となっている。例えば、複数の二次元コードについて、それぞれ、色の組み合わせや、色の配列パターンを変えることによって、各二次元コードに固有のユニークな情報を付すことが可能である。
【００５２】
ここで、この二次元コードを構成する１行目（図２における最上部の行）のセルＣ１１〜Ｃ１ｑは、二次元コードの各セルＣに付けられうるマークの色により、順番にマークが付けられた（セルＣが塗りつぶされた）ヘッダー領域となっている。
本実施形態においては、セルＣに付けられうるマークの色として、黒（ｋ）を除く１色以上の色が、黒（ｋ）でマークが付けられたセルＣとセットで配列されている。
また、各行のセルＣのうち、先頭（図２における左端の列））に位置するセルＣ１１〜Ｃｐ１（本実施形態では、黒（ｋ）が付されたセル）は、二次元コードの位置を特定するための特定セルとして配置されたものである。
【００５３】
そして、２行目以降のセルＣ１１〜Ｃｐｑ（先頭のセルＣ１１〜Ｃｐ１を除く）は、行毎に、それぞれ１以上のセルＣからなるセル群に分けられており、そのセル群で示すべき単位情報（１以上の文字）の対応づけられた色または色の組み合わせでマークが付けられる。こうして、各セルそれぞれ、または、１以上の組み合わせに係るセル群それぞれが、複数種類の文字のいずれかや多進数の数字で示されるいずれかの値からなる情報を持つことができるようになっている。
【００５４】
また、これらセルＣにそれぞれ付けられたマークの色は、シアン（ｃ）、マゼンタ（ｍ）、イエロー（ｙ）の分布を表した三次元空間内において、それぞれ三次元領域として球形に拡がる複数の成分領域（後述する判定領域）を、これら成分領域同士が互いに干渉しない大きさおよび位置関係で配置した成分モデルにより決められる。具体的に、この成分モデルに配置された成分領域内における中心座標で表される成分それぞれが、情報色の成分または組み合わせ色における各色の成分として、セル群にマークが付けられている。
ここでいう「成分領域同士が互いに干渉しない」とは、各成分領域が重複しないように、各成分領域同士の間隔を空けて配置したり、各成分領域の境界を隣接させて配置したり、することである。
【００５５】
また、成分領域の大きさは、画像の撮影環境に応じて生じうる誤差の範囲を十分に包摂できる空間として規定したものであり、本実施形態では、特定座標における色を一般的な撮影環境下の色とし、この色から撮影環境に応じて生じうる誤差の範囲を含む領域を成分領域として規定している。
また、二次元コード１００における特定セルに付けられたマークの色、および、セパレータ１１０の色には、セルＣに付すマークの色に用いられていない成分領域における中心座標の色（本実施形態では黒系統の色）が用いられている。
【００５６】
（３）ＣＰＵ６０による処理
以下に、ＣＰＵ６０がＲＯＭ６４または記憶装置７０に記憶された専用のコンピュータプログラムに従って実行する各種処理の手順について順次説明する。
（３−１）コード利用物品検出処理
まず、物品検出装置１が、カメラ７６からの画像データを受信中において、入力装置７４を介したユーザからの指示入力に応じて開始されるコード利用物品検出処理の処理手順を、図３に基づいて説明する。
【００５７】
ここで、図３は、コード利用物品検出処理の処理手順の一例を示すフローチャートである。
コード利用物品検出処理が開始されると、まず、カメラ７６で撮影された撮影画像データからのエッジ画像データの生成、エッジ画像データからの候補領域の抽出、候補領域が有効か否かの判定、原画像における有効な候補領域に対応する領域が特徴パターンを含むか否かの判定といった手順を経て、二次元コードの領域を検出する。
【００５８】
次に、検出された二次元コードの領域に対して、セパレータ１１０の検出、セル領域を分割、各セル領域の色の判定（補正、再判定等含む）、各セル領域の色の判定結果の照合といった手順を経て、検出した二次元コードの情報を識別する。
さらに、予め設定された検出モードに応じて、検出対象の物品に対応する二次元コードの特定、原画像の加工、および加工した画像の表示といった手順を経て、原画像中の検出物品の位置が明示された画像を表示する。具体的に、画像の加工は、原画像（複写画像でも可）に対して、原画像中における特定した二次元コードの画像部分の強調（例えば、マーキング、色の変更等）、検出モードに応じた物品に係る情報画像（例えば、文字画像）の追加等を行う処理となる。従って、原画像に対して、検出対象の物品の位置を明示する画像（または効果）および該物品に係るモードに応じた情報画像が加えられた画像が、表示装置７２に表示されることになる。
【００５９】
本実施形態において、設定可能な上記検出モードには、原画像中に含まれる二次元コードの付された物品の中から、指定された物品を検出する物品検出モードと、出荷期限や消費期限の切れた物品を検出する期限管理モードとがある。
コード利用物品検出処理は、ＣＰＵ６０によって、専用のコンピュータプログラムを実行することで起動される処理であって、プログラムが実行されると、図３に示すように、まず、ステップＳ１００へと移行する。
【００６０】
ステップＳ１００では、入力装置７４を介して、ユーザからの指示入力があったか否かを判定し、指示入力があったと判定した場合(Yes)は、ステップＳ１０２に移行し、そうでない場合(No)は、入力されるまで判定処理を続行する。
ここで、物品検出モードが設定されている場合は、指示入力を行う前に、例えば、物品のシリアル番号、品名等の検出対象の物品の識別情報を設定する必要がある。この設定は、入力装置７４を介して、ユーザが検出対象の商品を識別する情報を手入力してもよいし、物品リスト等を表示してユーザがその中から物品名等の識別情報を選択するようにしてもよい。
【００６１】
一方、期限管理モードが設定されている場合は、物品検出モードと同様に識別情報を設定してもよいが、例えば、倉庫に山積みにされた出荷待ちの物品（商品）や、店内の商品陳列棚に並べられた物品等のように全てを管理対象としたい場合は、この設定は不要としてもよい。本実施形態では、期限管理モードにおいて、物品の識別情報を設定する処理を行わないこととする。
なお、本実施形態において、指示入力は、表示装置７２に表示されたカメラ７６の撮影画像を見ながらユーザが入力装置７４を介して行う処理となり、検出対象の物品は、指示入力の入力時に表示されていた撮影画像の中から検索されることになる。
【００６２】
ステップＳ１０２に移行した場合(Yes)は、ＲＡＭ６２または記憶装置７０から、指示入力のあったタイミングに表示していた画像データまたは該画像データに加えて複数フレーム分の画像データを取得して、ステップＳ１０４に移行する。
具体的に、設定されたモードや仕様に応じて、指示入力が行われたタイミングの１枚の画像、または、指示入力のタイミングを起点にして予め設定された複数フレームの画像を取得する。そして、これらの画像データに対して以降の処理が実行される。但し、説明の便宜上、本実施形態では、１枚の画像を取得し、取得した１枚の画像について処理を行うこととする。
【００６３】
ステップＳ１０４では、二次元コードを特徴づける情報を規定したテンプレートを記憶装置７０から読み出して、ステップＳ１０６に移行する。
ここでいうテンプレートは、二次元コードからなる領域を規定する領域規則、二次元コードにおける特徴的なパターン、二次元コードにマークとして付けられる色（色数，色の種類）の着色規則などを示す情報である。
【００６４】
これらのうち、「領域規則」とは、エッジ画像から候補領域を抽出（座標を特定）する際においては、例えば、二次元コードの外形形状に応じて、真円形の領域、楕円形の領域などの円形の領域、矩形の領域、三角形の領域などの多角形の領域、または、これらに類似する形状の領域などを、規定しておけばよい。類似する形状としては、例えば、二次元コードの外形形状が矩形形状であれば、台形の領域などの矩形形状を角度を変えて見た（撮影した）場合の形状等となり、二次元コードの外形形状が真円形であれば、六角形や八角形の領域などの撮影環境や原画像の画質等によって円形が崩れた場合の形状等が該当する。また、例えば、形状等は無視して、閉領域であれば何でも候補領域として抽出するといった規定でもよいし、エッジ成分の分布パターン（エッジ成分の分布状態、分布されているエッジ成分の配置など）が特定のパターンの領域を抽出するといった規定でもよい。
【００６５】
さらに、抽出した候補領域が有効であるか否かを判定する際においては、例えば、抽出した候補領域の外形形状が円形である場合における扁平率や、外形形状が多角形である場合における各辺の長さや各辺で形成される角度、外形形状が多角形である場合における各辺の長さの比率などを規定しておけばよい。
ただ、「領域規則」は、以降の処理に要する処理負担を軽減するためには、複数の項目を選択して規定したものとすることが望ましく、この場合、候補領域としての抽出数が少なくなる結果、処理負担の軽減に伴って処理時間の短縮が実現されることとなる。
【００６６】
また、「特徴的なパターン」とは、例えば、二次元コードにおいてコード化のシンボルとなるセルの配置パターンや、二次元コードであることを識別するために配置された特定シンボルの配置パターンや、二次元コードであることを識別するために配置されたマークのパターンなどのことである。
例えば、図２に例示した二次元コード１００であれば、上記特定セルＣ１１〜Ｃｐ１に付けられた色と、上記ヘッダー領域Ｃ１１〜Ｃ１ｑの各セルに付けられた複数の色との双方または一方により、二次元コードの領域を示す特徴的なパターンが形成されている。
【００６７】
なお、この特徴的なパターンとしては、セパレータ１１０の領域もパターンに含ませる構成や、ヘッダー領域や特定セル等を設けずに、情報を示す領域（図２の例では特定セルＣ１１〜Ｃｐ１を除く２行目以降の領域）の各セルに付された複数の色やその組み合わせパターン、該複数の色の付されたセルの配置順等が特徴的なパターンを形成する構成など、別の構成により実現するものとしてもよい。
【００６８】
また、「着色規則」とは、二次元コードにおける複数のセルそれぞれに付すべき色の規則であり、該当セルにてコード化すべき情報、および、該当セルと隣接するセルに付された色に応じて決められるものである。
ステップＳ１０６では、以降の処理で参照する変数Ｘ，Ｙを初期化（０→Ｘ，１→Ｙ）して、ステップＳ１０８に移行する。
【００６９】
ステップＳ１０８では、ステップＳ１０２で取得した画像データに対してエッジ画像の生成処理を実行してエッジ画像データを生成し、ステップＳ１１０に移行する。なお、このエッジ画像生成処理における具体的な処理手順については後述する。
ステップＳ１１０では、ステップＳ１０８において生成されたエッジ画像データに基づいて、このエッジ画像から、二次元コードからなる候補領域それぞれの位置を特定して、ステップＳ１１２に移行する。ここでは、ステップＳ１０４にて読み出されたテンプレートにおける「領域規則」に基づいて、第Ｙ番目のエッジ画像から、二次元コードからなる候補領域を規定する画像中の座標それぞれが特定される。
【００７０】
本実施形態では、二次元コード１００が図２に示す外形形状（矩形形状）であることから、「領域規則に従った領域」として、線形化された輪郭部によって閉領域となる矩形形状の領域を候補領域として全て特定する。また、この「領域規則に従った領域」には、領域規則に従った領域だけでなく、その領域として許容される誤差範囲のパラメータで形成された領域も含まれる。例えば、誤差範囲内であれば、矩形形状だけでなく、台形形状、平行四辺形状、菱形形状なども含まれる。
【００７１】
ステップＳ１１２では、ステップＳ１１０において、候補領域が特定されたか否かを判定し、特定されたと判定した場合(Yes)は、ステップＳ１１４に移行し、そうでない場合(No)は、ステップＳ１４０に移行する。
ステップＳ１１４に移行した場合は、ステップＳ１１０において特定された候補領域（座標情報）それぞれをリストに登録して、ステップＳ１１６に移行する。
【００７２】
ステップＳ１１６では、ステップＳ１１４においてリストに登録された候補領域のうち、以降の処理で処理対象となっていない（未処理の）候補領域があるか否かを判定し、あると判定した場合(Yes)は、ステップＳ１１８に移行し、そうでない場合(No)は、ステップＳ１３８に移行する。ここでは、リストに候補領域が登録されていない場合にも、未処理の候補領域がないと判定される。
【００７３】
ステップＳ１１８に移行した場合は、リストに登録されている未処理の候補領域のうち、いずれか１の候補領域を選択して、ステップＳ１２０に移行する。
ステップＳ１２０では、ステップＳ１１８において選択された候補領域が有効なものであるか否かを判定する有効領域判定処理を実行して、ステップＳ１２２に移行する。なお、この有効領域判定処理における具体的な処理手順については後述する。
【００７４】
ステップＳ１２２では、ステップＳ１２０の判定結果に基づき、ステップＳ１１８で選択した候補領域が、有効なものであるか否かを判定する。そして、有効なものであると判定した場合(Yes)は、ステップＳ１２４に移行し、そうでない場合(No)は、ステップＳ１１６に移行し、以降、別の候補領域について上記同様の処理を行う。
ステップＳ１２４に移行した場合は、直前に行われた上記ステップＳ１１０において特定された候補領域（新規候補領域）が、過去に行われた上記ステップＳ１１０において特定された候補領域（抽出済み候補領域）と同じであるか否かを判定する。
具体的に、新規候補領域が抽出済み候補領域に領域として所定割合以上重複している場合、または、新規候補領域および抽出済み候補領域の一方が他方に包摂されている場合に、新規候補領域が抽出済み候補領域と同じであると判定される。
【００７５】
本実施形態では、候補領域が多角形となるため、エッジ画像から抽出された候補領域それぞれが、別のエッジ画像における抽出済み候補領域と一致するか否かは、候補領域として形成された多角形における１以上の頂点Pｎが抽出済み候補領域として形成された多角形におけるいずれかの頂点Pｏから一定範囲（例えば一定の半径ｒ距離）内に位置しているか否かに応じて判定することとしてもよい（図４参照）。
なお、ここでいう「いずれかの頂点から一定範囲内」とは、特定のエッジ画像から抽出された候補領域と、別のエッジ画像における抽出済み候補領域とが一致する場合に、両方の候補領域が位置しうる位置関係で決まる範囲内とすればよく、上記一定の半径ｒ距離内に限られない。
【００７６】
そして、ステップＳ１２４において新規候補領域が過去に行われた上記ステップＳ１１０において特定されてＲＡＭ６２または記憶装置７０に格納されたいずれかの抽出済み候補領域と同じであると判定した場合(Yes)は、ステップＳ１１６に移行し、以降、別の候補領域について上記同様の処理を行う。
一方、ステップＳ１２４において新規候補領域が抽出済み候補領域と同じではないと判定された場合(No)は、ステップＳ１２６に移行する。
【００７７】
ステップＳ１２６に移行した場合は、この時点における新規候補領域を情報の識別に適したものとなるように補正して、ステップＳ１２８に移行する。
ここでは、新規候補領域における二次元コードの形状、角度が補正される。具体的には、例えば、処理対象の領域が斜めに配置されていた場合や、正方形になっていない歪んだ形状となっている場合に、そのようなズレを補正すべく回転や、座標軸に合わせた延長・短縮などが行われる。
【００７８】
なお、領域そのものを補正するのではなく、これ以降の処理で二次元コードか否かの判定、および、ここからの情報の識別を行う際に基準とする座標軸の角度や長さを補正することとしてもよい。
さらに、このステップＳ１２６では、新規候補領域における二次元コードの色成分が、各セルにおける色の識別性を高めるべく補正される。
【００７９】
具体的に、原画像データがＲＧＢ色空間等のＣＭＹＫ以外の色空間で色が表現されたカラー画像データである場合に、各ピクセル値を、ＣＭＹＫの色空間で色が表現されたカラー画像データへと変換する。これにより、以降の色判定処理において、例えば、ＲＧＢ色空間では認識しにくい色（例えば、緑色）の認識精度を向上することができる。本実施形態では、ＣＭＹＫ以外の色空間（本実施形態ではＲＧＢ色空間）の値を、ＣＭＹＫ色空間の値に変換する変換テーブル（色変換用ＬＵＴ（Look Up Table））が記憶装置７０に記憶されており、この色変換用ＬＵＴを用いて色変換を行う。
【００８０】
また、補正の必要が無い場合は、上記いずれの処理も行わずにステップＳ１２８に移行する。
ステップＳ１２８では、上記ステップＳ１０２において取得された画像データで示される原画像のうち、上記ステップＳ１２６において補正された候補領域に対応する対応領域に、二次元コードとしての特徴的なパターンが含まれているか否かを判定する。
【００８１】
ここでは、ステップＳ１２６において補正された候補領域を単位領域（１以上のドットからなる領域）ずつ走査していき、そうして特定されたセル（特にヘッダー領域および特定セル）やマークのパターンが、上記ステップＳ１０４において読み出されたテンプレートにおける「特徴的なパターン」で規定されたセルの配置パターンやマークのパターンと一致しているか否かを判定する。そして、一致している場合は、コード領域に二次元コードとしての特徴的なパターンが含まれていると判定し、一致していない場合は、コード領域に二次元コードとしての特徴的なパターンが含まれていないと判定する。
なお、この判定処理において、セルのパターンを特定する際の各セルの色の判定を行う際に、後述する色判定処理のアルゴリズムを適用することが可能である。
【００８２】
また、図２に例示した二次元コード１００は、ヘッダー領域および特定セルの領域といったように、データ領域とは別に特別に設けられた領域を有しており、この領域が「特徴的なパターン」として抽出され判定が行われる構成となっているが、この構成に限らない。
例えば、図２に示す二次元コードにおいて、ヘッダー領域および特定セルの領域を除外した、データ領域のみで構成された二次元コードなど他の構成としてもよい。
【００８３】
この場合も、二次元コード１００と同様に、データ領域における、複数種類のセルの配置パターンやマークのパターンなどが「特徴的なパターン」となり、このパターンとテンプレートにおける特徴的なパターンとを比較して、「特徴的なパターン」が含まれているか否かを判定することになる。但し、データ領域の各セルは、情報をコード化する役割も果たしており、二次元コード１００のように専用のセルとはならない。
【００８４】
また、判定の際に、特定のセルに付される色に何らかの情報を対応付けておき、この情報を用いた計算処理などによって、特徴的なパターンが含まれているか否かを判定することも可能である。つまり、各セルの配置パターンや、各セルの色などが正しいパターンおよび色となっているかを計算処理によって確認できる情報（例えば、誤り検出符号など）を対応付ける。
この場合は、例えば、計算結果の数値等が正しいパターンを示す数値となっているか否か等で判定を行うことになる。そのため、テンプレートにおける特徴的なパターンは、直接的なパターンだけではなく、間接的に正しいパターンを示す数値などの情報として設定される場合もある。
【００８５】
そして、ステップＳ１２８において、二次元コードとしての特徴的なパターンが含まれていないと判定した場合(No)は、ステップＳ１１６に移行し、以降、別のコード領域について上記同様の処理を行う。
一方、ステップＳ１２８において、二次元コードとしての特徴的なパターンが含まれていると判定した場合(Yes)は、ステップＳ１３０に移行する。
ステップＳ１３０に移行した場合は、この時点における新規候補領域を二次元コードの領域として検出して、ステップＳ１３２に移行する。
この検出処理は、新規候補領域の座標情報に基づき、原画像から新規候補領域を切り出して（複製画像を生成して）、記憶装置７０に記憶する処理となる。
【００８６】
ステップＳ１３２では、上記ステップＳ１３０において検出された二次元コードの領域につき、その二次元コードにおけるセルそれぞれに付された色を特定するための色判定処理を行って、ステップＳ１３４に移行する。
この色判定処理は、上記ステップＳ１３０において検出された二次元コードの領域を引数として実行され、この二次元コードにおけるセルそれぞれに付された色が戻り値となる。なお、この色判定処理における具体的な処理手順については後述する。
【００８７】
ステップＳ１３４では、上記ステップＳ１３０において検出された二次元コードの領域につき、上記ステップＳ１３２において特定された色に基づいて、その二次元コードで示される情報を、セルＣそれぞれに付された色およびその組み合わせに基づいて識別して、ステップＳ１３６に移行する。
ステップＳ１３６では、ステップＳ１３４において識別された情報を、ＲＡＭ６２または記憶装置７０に格納して、ステップＳ１３８に移行する。
ステップＳ１３８では、変数Ｘをインクリメント（Ｘ＋１→Ｘ）して、ステップＳ１４０に移行する。
【００８８】
ここまで示したように、上述したステップＳ１１６〜Ｓ１３６までが行われるのは、ステップＳ１１０において特定された候補領域が二次元コードの体をなしていたことを意味している。そのため、このステップＳ１３８では、この変数Ｘをインクリメントすることにより、二次元コードの領域として検出かつ識別された候補領域の数を積算していることになる。
ステップＳ１４０では、この時点で変数Ｘが所定数以上になっているか否かを判定する。つまり、所定数以上の候補領域が二次元コードの体をなしていたか否かを判定する。
【００８９】
そして、ステップＳ１４０において、変数Ｘが所定数以上になっていると判定した場合(Yes)は、ステップＳ１４０に移行し、変数Ｘが所定数以上になっていないと判定した場合(No)は、ステップＳ１４２に移行する。
つまり、上記ステップＳ１１６〜Ｓ１４０は、二次元コードとして検出かつ識別された候補領域の数が所定数以上とならない限り、リストに登録された全てのコード領域について繰り返し行われる。
その後、全ての候補領域について上記ステップＳ１１６〜Ｓ１４０が行われたら、上記ステップＳ１１６において未処理の候補領域がないと判定されて、ステップＳ１４２に移行し、この時点での変数Ｙの値が、変数ｎの値より小さい値（Ｙ＜ｎ）となっているか否かを判定する。
【００９０】
そして、ステップＳ１４２において、変数Ｙの値が変数ｎの値より小さい値となっていると判定した場合(Yes)は、ステップＳ１４４に移行する。
ステップＳ１４４に移行した場合は、変数Ｙをインクリメント（Ｙ＋１→Ｙ）して、ステップＳ１０８に移行し、上記ステップＳ１０８〜Ｓ１４４の処理を行う。
これ以降は、次のエッジ画像に基づいて上記ステップＳ１１０〜Ｓ１４４の処理が行われ、その処理の中で変数Ｘが所定数以上になれば、上記ステップＳ１４０で「Yes」と判定されて、ステップＳ１４６に移行する。一方、その処理の中で変数Ｘが所定数以上にならなければ、その次のエッジ画像についての処理が繰り返し行われることとなる。
【００９１】
さらに、ステップＳ１４２において、変数Ｙの値が変数ｎの値以上の値となっていると判定した場合(No)は、変数Ｘの値に関係なく、ステップＳ１４６に移行する。
ステップＳ１４６に移行した場合は、識別された二次元コードの情報に基づき、原画像中における指定物品を検出する物品検出処理を実行して、一連の処理を終了する。なお、この物品検出処理における具体的な処理手順については後述する。
【００９２】
（３−２）エッジ画像生成処理
続いて、図３のステップＳ１０８であるエッジ画像生成処理の処理手順の一例を図５に基づき説明する。図５（ａ）は、変数Ｙの値と画像種類およびしきい値との対応関係の一例を示す図であり、（ｂ）は、エッジ画像生成処理の処理手順の一例を示すフローチャートである。
本実施形態において、エッジ画像の生成は、異なる複数種類の変換条件に基づいて行う。
具体的に、第１〜第ｉ（１≦ｉ）の変換条件に対応する第１〜第ｉ番目のエッジ画像までが、それぞれ異なるしきい値で原画像をグレースケール化してなるグレースケール画像を二値化した画像の輪郭部を線形化した画像となる。
【００９３】
また、第（ｉ＋１）〜第（ｉ＋ｊ）の変換条件に対応する第（ｉ＋１）〜第（ｉ＋ｊ）番目（１≦ｊ）のエッジ画像までが、ｊ種類の色成分それぞれを原画像から抽出した色成分画像をグレースケール化し、該グレースケール画像を予め設定されたしきい値で二値化した二値化画像の輪郭部を線形化した画像となる。
特に、各色成分画像について、予め設定されたしきい値としてｋ種類（１≦ｋ）のしきい値を用いて二値化を行う場合は、第（ｉ＋１）〜第（ｉ＋ｊ×ｋ）の変換条件に対応する第（ｉ＋１）〜第（ｉ＋ｊ×ｋ）番目のエッジ画像までが、ｊ種類の色成分それぞれを原画像から抽出した色成分画像をグレースケール化し、該グレースケール画像をｋ種類のしきい値それぞれで二値化した二値化画像の輪郭部を線形化した画像となる。
【００９４】
従って、最大で「ｉ＋ｊ×ｋ」種類の変換条件に基づいて「ｉ＋ｊ×ｋ」種類のエッジ画像を生成することができる。
ここでいう「ｉ」および「ｋ」は、予め用意されたしきい値の種類によって値が決定し、「ｊ」は、原画像に用いられている色空間（表色系）の種類によって規定される色成分数によって値が決定する。例えば、しきい値の種類がそれぞれ３種類で、色空間がＲＧＢ色空間であれば、「ｉ」および「ｋ」の値は３、「ｊ」の値は３となる。
【００９５】
本実施形態では、図５（ａ）に示すように、変数Ｙの値に対応する１〜６の数値と、変換条件の種類を示すエッジ画像を生成する際に用いる画像の種類としきい値とが対応付けられてデータテーブルとして記憶装置７０に記憶されている。なお、図５（ａ）の例は、「ｉ」の値が３、「ｊ」の値が３、「ｋ」の値が１となる例である。ここで、変数Ｙの上限値は、変数ｎにセットされる値によって決まるが、本実施形態では、ユーザが、要求する二次元コードの検出精度に応じた値を任意にセット可能に構成されている。なお、図５（ａ）の例では、変数ｎの最大値は「６」となる。
エッジ画像生成処理が開始されると、図５（ｂ）に示すように、まず、ステップＳ２００に移行し、変数Ｙの値が３以下となっているか否かを判定する。
【００９６】
そして、ステップＳ２００において、変数Ｙの値が３以下となっていると判定した場合(Yes)は、ステップＳ２０２に移行し、変数Ｙの値が３よりも大きいと判定した場合(No)は、ステップＳ２０８に移行する。
ステップＳ２０２に移行した場合は、上記図３のステップＳ１０２で取得した原画像のデータを複製し、該複製した原画像データに基づき、グレースケール画像を生成して、ステップＳ２０４に移行する。
【００９７】
ここでは、原画像のデータが、ＲＧＢの各色８ビット（０〜２５５）のカラー画像データであるとして、この画像データからグレースケール画像を生成する。
なお、必須ではないが、原画像データのピクセル数が膨大（例えば、１２００万画素等）な場合は、処理負荷および処理時間を考慮して、検出精度を損なわない程度に、解像度をこれよりも低解像度へと変換する処理を行うようにしてもよい。
【００９８】
また、グレースケール画像の生成方法としては、例えば、中間値法、平均法等の周知の生成方法がある。
中間値法は、Ｒ、Ｇ、Ｂの３つの色成分の値のうち、最大値と最小値の２つを足して２で割ったものを利用してグレースケール化する方法である。
平均法は、平均の取り方によって、算術平均（相和平均）法、幾何平均（相乗平均）法、加重平均法等がある。
【００９９】
算術平均法は、Ｒ、Ｇ、Ｂの３つの色成分の値を算術平均（足して３で割る）して平均値を算出し、算出した平均値を利用してグレースケール化する方法である。
幾何平均法は、Ｒ、Ｇ、Ｂの３つの色成分の値を幾何平均（各色成分の値の対数値を算術平均）して平均値を算出し、算出した平均値を利用してグレースケール化する方法である。
【０１００】
加重平均法は、Ｒ、Ｇ、Ｂの３つの色成分の値に対して、重み付けをして３で割り、平均を取ってグレースケール化する方法である。この重み付けの係数の内容によって、ＮＴＳＣ加重平均法、ＨＤＴＶ加重平均法等がある。ＮＴＳＣ加重平均法は、日本やアメリカのテレビ放送で利用されている輝度信号（明るさ）の分離方法のものと同じである。また、ＨＤＴＶ加重平均法は、デジタルハイビジョン放送を映す際に基準とされる、ＨＤＴＶ規格に基づいて重み係数が設定されたものである。
グレースケール画像の生成方法は、処理速度や検出精度等を考慮して適切なものを用いることが望ましい。
【０１０１】
そして、上記いずれかの方法を用いた場合は、算出された１つの輝度値を、Ｒ、Ｇ、Ｂの３つの色成分の値（Ｒ＝Ｇ＝Ｂ）とする。
なお、ここでは、グレースケール画像を、Ｒ，Ｇ，Ｂの各要素の値を輝度値に変換することで生成する例を説明したが、輝度以外に、明度等によってグレースケール画像を生成するようにしてもよい。
このようにして、原画像データの各ピクセル値をグレースケール値に変換することで、グレースケール画像データが生成される。
【０１０２】
ステップＳ２０４では、ステップＳ２０２で生成したグレースケール画像データを、現時点の変数Ｙの値に対応したしきい値により二値化してなる二値化画像データを生成して、ステップＳ２０６に移行する。
具体的に、グレースケール画像データの各色のピクセル値が８ビットの階調値で表現されているときに、しきい値と、グレースケール画像の各ピクセル値とを比較し、ピクセル値がしきい値以下のときに、ピクセル値を「０」に変換し、ピクセル値がしきい値より大きいときに、ピクセル値を「２５５」に変換することで二値化を行う。
【０１０３】
ここでは、図５（ａ）に示すように、変数Ｙの値１、２、３に対して、１２０、１５０、２００の３種類のしきい値がそれぞれ用意されている。この二値化のしきい値は、二次元コードの「領域規則」および「特徴的なパターン」に応じ、以降の処理において有効な候補領域を抽出し、適切に二次元コードを識別するのに適した値として定められたものである。
従って、変数Ｙの値が１のときは、しきい値１２０を用いて上記ステップＳ２０２で生成したグレースケール画像を二値化し、変数Ｙの値が２、３のときは、しきい値１５０、２００をそれぞれ用いて上記ステップＳ２０２で生成したグレースケール画像を二値化する。
【０１０４】
例えば、しきい値１２０のときに、グレースケール画像におけるあるピクセル値が（８０，８０，８０）である場合は、二値化後の値は、黒色に対応する（０，０，０）となる。一方、しきい値１２０のときに、グレースケール画像におけるあるピクセル値が（１６０，１６０，１６０）である場合は、二値化後の値は、白色に対応する（２５５，２５５，２５５）となる。
このようにして、上記ステップＳ２０２で生成したグレースケール画像データの各ピクセル値を二値化したものが、原画像データに対する二値化画像データとなる。
【０１０５】
ステップＳ２０６では、二値化画像データに対して、二値化画像中の輪郭部を線形化してなるエッジ画像データを生成して、一連の処理を終了し、元の処理に復帰する。
本実施形態では、公知のブレゼンハムの線分描画アルゴリズムによって、二値化画像中に存在する物体の輪郭部を線形化する。なお、本実施形態では、線形化後の輪郭線を形成していない不要なピクセルは除去（例えば、ピクセル値を（０，０，０）に変換）する。
ここで、ブレゼンハムの線分描画アルゴリズムは、割り算等を用いずに全てを整数演算のみで行うことができるため、高速に線分を描画することができる。
このようにして、二値化画像中の輪郭部を線形化した画像のデータが、エッジ画像データとなる。
【０１０６】
一方、ステップＳ２００において変数Ｙの値が３よりも大きくてステップＳ２０８に移行した場合は、原画像のデータから、変数Ｙの値に対応した色成分を抽出して、ステップＳ２１０に移行する。
ここでは、図５（ａ）に示すように、変数Ｙの値４、５、６に対して、赤色、緑色、青色の色成分をそれぞれ抽出する。
【０１０７】
例えば、変数Ｙの値が４であり、原画像データのあるピクセル値が（１２０，８０，４５）である場合は、赤色成分値（１２０，０，０）を抽出する。同様に、変数Ｙの値が５であれば、緑色成分値（０，８０，０）を抽出し、変数Ｙの値が６であれば、青色成分値（０，０，４５）を抽出する。
このようにして、各色成分の値を抽出してなる画像データが、赤色成分画像データ、緑色成分画像データ、青色成分画像データとなる。
【０１０８】
ステップＳ２１０では、ステップＳ２０８で生成した色成分画像データからグレースケール画像データを生成して、ステップＳ２１２に移行する。
グレースケール画像データの生成は、上記ステップＳ２０２と同様の処理となる。
ステップＳ２１２では、ステップＳ２１０で生成したグレースケール画像に対して、予め設定されたしきい値で二値化を行い、二値化画像データを生成して、ステップＳ２０６に移行する。
【０１０９】
ここでは、図５（ａ）に示すように、変数Ｙの値４、５、６に対して、共通のしきい値１２０が用意されている。
従って、上記ステップＳ２１０で生成したグレースケール画像データに対して、しきい値１２０を用いて二値化を行い、ステップＳ２０８で生成した色成分画像データに対する二値化画像データを生成する。
【０１１０】
そして、ステップＳ２１２で二値化画像データを生成後は、ステップＳ２０６に移行して、二値化画像中の物体の輪郭部を線形化してなるエッジ画像データを生成し、一連の処理を終了して、元の処理に復帰する。
なお、図５（ａ）に示す例では、色成分画像に対応するグレースケール画像の二値化に用いるしきい値の種類を１種類としたが、この構成に限らず、第７以降の変換条件を設定して、複数種類のしきい値を用いて二値化を行う構成としてもよい。
【０１１１】
また、図５（ａ）に示す例では、原画像に対応するグレースケール画像に対してしきい値を小さい値から順に用いて二値化を行い、その二値化画像からエッジ画像を生成する処理を行う構成とした。さらに、原画像に対応するグレースケール画像を用いたエッジ画像の生成処理の後に、色成分画像に対応するグレースケール画像を二値化してエッジ画像を生成する処理を、赤、緑、青の色成分画像の順で行う構成としたが、この構成に限らない。
例えば、原画像に対応するグレースケール画像の二値化に用いるしきい値を別の順番で用いる構成、色成分画像に対応するグレースケール画像の二値化を別の色の順番で行う構成としてもよい。
【０１１２】
また、例えば、色成分画像を用いたエッジ画像の生成処理を原画像を用いた生成処理よりも先に行う構成、原画像と色成分画像とを用いたエッジ画像の生成処理を交互に行う構成、ランダムに行う構成など、別の順番で行う構成としてもよい。
また、色成分画像に対応するグレースケール画像の二値化を複数種類のしきい値を用いて行う場合は、そのしきい値を用いる順番も小さい方から順に行う構成だけに限らず、別の順番とする構成としてもよい。また、色成分画像に対応するグレースケール画像の二値化に用いるしきい値の値は、原画像に対応するグレースケール画像の二値化に用いるしきい値と同じ値であってもよいし、異なる値であってもよい。
【０１１３】
また、図５（ａ）に示す例では、原画像に対するしきい値を３種類、色成分画像に対するしきい値を１種類、色成分画像数を３種類としたが、これらの組み合わせに限らず、異なる種類数の組み合わせとしてもよい。
また、図５（ａ）に示す例では、原画像および色成分画像の双方を用いてエッジ画像の生成を行うことが可能な構成としたが、この構成に限らず、原画像だけを用いてエッジ画像を生成する構成や、色成分画像だけを用いてエッジ画像を生成する構成など他の構成としてもよい。
【０１１４】
また、図５（ａ）に示す例では、原画像に対応するグレースケール画像を二値化する際の３種類のしきい値として、「１２０」、「１５０」、「２００」を用いているが、これに限らず、別の値を用いる構成としてもよい。同様に、図５（ａ）に示す例では、色成分画像に対応するグレースケール画像を二値化する際のしきい値として、「１２０」を用いているが、これに限らず、別の値を用いる構成としてもよい。
【０１１５】
（３−３）有効領域判定処理
続いて、図３のステップＳ１２０である有効領域判定処理の処理手順を図６および図７に基づき説明する。
ここで、図６は、有効領域判定処理の処理手順を示すフローチャートである。また、図７（ａ）は、理想的な候補領域の形状例を示す図であり、（ｂ）〜（ｅ）は、誤差範囲外の形状例を示す図であり、（ｆ）〜（ｇ）は、誤差範囲内の形状例を示す図である。
候補領域の縦横比は、図７（ａ）に示すように、理想の領域形状における短辺の長さＡと長辺の長さＢとの比（Ａ：Ｂ＝Ａ／Ｂ）となっていることが望ましい。また、候補領域の各辺間（四隅）の角度は、図７（ａ）に示すように、理想的には、いずれも９０°であることが望ましい。
【０１１６】
しかし、上記ステップＳ１１０の候補領域の特定処理においては、矩形形状だけでなく台形形状等の形状も含む閉領域（閉四角領域）であれば何でも候補領域として特定するようになっているため、様々な外形形状の候補領域が特定されることになる。また、特定された候補領域が二次元コードのものであっても、撮影環境（撮影角度等）や撮影画像の画質等によって、形状が理想的な形状とならないこともある。そのため、厳密な判定を行ってしまうと、二次元コードの領域に該当する領域をも除外することになってしまう。そこで、本実施形態では、判定の際の縦横比および角度等の領域規則で定められた情報に誤差範囲を設定している。
【０１１７】
ここでは、二次元コードの領域が、図２に示すように、矩形形状であることと、処理負荷とを考慮して、二次元コードの理想的な縦横比と各辺間の角度とに誤差範囲を設定した領域規則に基づき有効領域か否かを判定する例を説明する。
有効領域判定処理が開始されると、図６に示すように、まず、ステップＳ３００に移行し、選択された候補領域の縦横比が、テンプレートの領域規則に定められた縦横比の誤差範囲内か否かを判定する。
【０１１８】
例えば、図７（ｂ）、（ｃ）および（ｆ）に示す候補領域のように、短辺の長さをＣ、長辺の長さをＤとした場合に、縦横比は「Ｃ：Ｄ＝Ｃ／Ｄ」となり、理想形との誤差ｄｒは、「ｄｒ＝Ａ／Ｂ−Ｃ／Ｄ」となる。そして、誤差範囲を「−ｄｘ〜＋ｄｘ」とし、本実施形態では、ｄｒが「−ｄｘ〜＋ｄｘ」の範囲内であれば、誤差範囲内であると判定し、「−ｄｘ〜＋ｄｘ」の範囲外であれば、誤差範囲外であると判定する。
【０１１９】
そして、ステップＳ３００において、候補領域の縦横比が誤差範囲外であると判定した場合(No)は、ステップＳ３０２に移行し、候補領域の縦横比が誤差範囲内であると判定した場合(Yes)は、ステップＳ３０４に移行する。
ステップＳ３０２に移行した場合は、誤差範囲外と判定された候補領域を無効な候補領域であると判定して（判定結果を戻り値として）、一連の処理を終了し、元の処理に復帰する。
これにより、例えば、図７（ｂ）および（ｃ）に示すように、理想の縦横比Ａ：Ｂに対して極端に縦横比の異なる形状を排除することができ、これらの領域に対して以降の処理（図３のステップＳ１２４以降の処理）が行われるのを防ぐことができる。
【０１２０】
一方、縦横比が誤差範囲内であると判定されステップＳ３０４に移行した場合は、候補領域の各辺間で形成される角度が、テンプレートの領域規則に定められた角度の誤差範囲内か否かを判定する。
例えば、図７（ｄ）〜（ｆ）に示すように、各辺間（四隅）の角度をβ１〜β４とした場合に、理想形の角度との誤差ｄβ１〜ｄβ４は、理想形の角度９０°から角度β１〜β４をそれぞれ減じたもの「ｄβ１〜ｄβ４＝９０°−β１〜９０°−β４」となる。そして、誤差範囲を「−ｄｙ〜＋ｄｙ」とし、本実施形態では、ｄβ１〜ｄβ４がいずれも「−ｄｙ〜＋ｄｙ」の範囲内であれば誤差範囲内であると判定し、いずれか１つでも「−ｄｙ〜＋ｄｙ」の範囲外であれば誤差範囲外であると判定する。
【０１２１】
そして、ステップＳ３０４において候補領域の各辺間の角度が誤差範囲外であると判定した場合(No)は、ステップＳ３０６に移行し、候補領域の各辺間の角度が誤差範囲内であると判定した場合(Yes)は、ステップＳ３０８に移行する。
ステップＳ３０６に移行した場合は、誤差範囲外と判定された候補領域を無効な候補領域であると判定して（判定結果を戻り値として）、一連の処理を終了し、元の処理に復帰する。
これにより、例えば、図７（ｄ）および（ｅ）に示すように、理想の角度に対して角度β１〜β４の少なくとも１つが誤差範囲外の角度となっている形状を排除することができ、これらの領域に対して以降の処理（図３のステップＳ１２４以降の処理）が行われるのを防ぐことができる。
【０１２２】
一方、角度が誤差範囲内であると判定されステップＳ３０８に移行した場合は、誤差範囲内と判定された候補領域を有効な候補領域であると判定して（判定結果を戻り値として）、一連の処理を終了し、元の処理に復帰する。
例えば、図７（ｆ）に示す候補領域のように、角度β１〜β４の誤差ｄβ１〜ｄβ４がいずれも誤差範囲内（この例では、いずれも９０°）で、縦横比の誤差ｄｒが「−ｄｘ〜＋ｄｘ」の範囲内となる程度で縦横比のみが異なる場合に、この候補領域は除外されることなく、有効な候補領域と判定される。
【０１２３】
同様に、例えば、図７（ｇ）に示す候補領域のように、縦横比の誤差ｄｒが「−ｄｘ〜＋ｄｘ」の範囲内であるが、角度β１〜β４がいずれも９０°とならずに斜めに歪んでいても、角度β１〜β４の誤差ｄβ１〜ｄβ４のいずれもが「−ｄｙ〜＋ｄｙ」の誤差範囲内となる場合には、この候補領域は除外されることなく、有効な候補領域と判定される。
つまり、本実施形態では、縦横比および角度の双方が誤差範囲内に納まっている候補領域のみを有効な候補領域と判定する。
【０１２４】
（３−４）色判定処理
続いて、図３のステップＳ１３２である色判定処理の処理手順を図８に基づき説明する。
ここで、図８は、色判定処理の処理手順の一例を示すフローチャートである。
色判定処理が開始さると、図８に示すように、まず、ステップＳ４００に移行して、図３のステップＳ１３０で検出された二次元コードの領域におけるセパレータ１１０の領域を特定（座標を特定）して、ステップＳ４０２に移行する。
【０１２５】
なお、検出された二次元コードの領域は、例えば、図２の形状姿勢において、左上のピクセルの座標を（０，０）として管理される。そして、セパレータ１１０の特定は、座標（０，０）から、行方向および列方向にピクセルを走査（ラスタスキャン）して、各ピクセルの値（色）が、セパレータ１１０の色（本実施形態では特定セルに使われている黒（ｋ））の判定領域に含まれているか否かを判定する。そして、ピクセルの色が判定領域に含まれていると判定したときに、そのピクセル（座標）をセパレータ１１０と判定する。そして、この座標情報をＲＡＭ６２または記憶装置７０に記憶する。
【０１２６】
なお、図２に例示した構成の二次元コード１００については、上記図３のステップＳ１２８において、既に、候補領域から、特徴的なパターンを識別済みであるので、識別済みの領域（例えば、ヘッダー領域および特定セルを含む領域）を切り離した残りの部分だけについて色判定処理を行うようにしてもよい。
ステップＳ４０２では、セパレータ１１０の座標情報に基づき、各セルの存在する領域を分割して、ステップＳ４０４に移行する。
具体的に、黒色（ｋ）のピクセルが所定数以上連続する領域や、セパレータ１１０に周囲（四辺）を囲まれた領域の座標を各セルの座標として、その座標情報をＲＡＭ６２または記憶装置７０に記憶する。
【０１２７】
ステップＳ４０４では、以降の処理で参照する変数を初期化（０→ａｐ，０→ｘ，０→ｙ）して、ステップＳ４０６に移行する。
ステップＳ４０６では、セパレータ１１０の特定された二次元コードの領域における座標（ｘ，ｙ）のピクセルを選択して、ステップＳ４０８に移行する。
ステップＳ４０８では、変数ａｐの値が予め定められた一定数以上か否かを判定し、一定数以上ではないと判定した場合(No)は、ステップＳ４１０に移行し、一定数以上であると判定した場合(Yes)は、ステップＳ４２２に移行する。
ステップＳ４１０に移行した場合は、選択したピクセルの値（色）が、二次元コードにおいて使用される複数の色それぞれを中心座標として広がる色空間上の判定領域のうち、いずれかの判定領域に含まれている（いずれの判定領域内に位置する）か否かを判定する。
【０１２８】
そして、ステップＳ４１０において、選択したピクセルがいずれかの判定領域内に含まれていると判定した場合(Yes)は、ステップＳ４１２に移行し、選択したピクセルがいずれの判定領域にも含まれていないと判定した場合(No)は、ステップＳ４１４に移行する。
ステップＳ４１２に移行した場合は、変数ａｐをインクリメント（ａｐ＋１→ａｐ）して、ステップＳ４１４に移行する。
ここでは、変数ａｐをインクリメントすることで、判定領域に含まれていると判定されたピクセルの数を計数している。この判定結果（判定領域の情報および計数結果を含む）は、各セルに対応付けてＲＡＭ６２または記憶装置７０に記憶される。
【０１２９】
なお、ここでは、変数ａｐにより、同じ色の判定領域に含まれるピクセルの数を計数することが望ましい。しかし、各セルの領域において、それぞれ異なる色の判定領域に含まれるピクセルがある場合に、上記ステップＳ４１２の処理では、これらを区別せずに計数してしまう。つまり、同じセルの領域において、イエローと判定されても、マゼンタと判定されても、変数ａｐはインクリメントされてしまう。従って、それぞれ異なる色の判定領域に含まれるピクセルがあることを想定した場合に、別の変数を用いて各領域に含まれるピクセルの数を計数し、上記ステップＳ４１２の処理を、現時点で最も数の多い判定領域のピクセル数を変数ａｐに設定する処理に代えてもよい。
その後、ステップＳ４１４に移行して、変数ｘの値が、その行の一番右端のｘ座標であるｘＥであるか否かを判定する。
【０１３０】
一方、選択したピクセルがいずれの判定領域にも含まれていないと判定された場合も、ステップＳ４１４に移行して、変数ｘの値が、ｘＥであるか否かを判定する。
そして、変数ｘの値がｘＥではないと判定した場合(No)は、ステップＳ４１６に移行し、変数ｘの値がｘＥであると判定した場合(Yes)は、ステップＳ４２２に移行する。
ステップＳ４１６に移行した場合は、変数ｘをインクリメント（ｘ＋１→ｘ）して、ステップＳ４１８に移行する。
つまり、変数ｘの値がｘＥではない場合に、変数ｘをインクリメントすることで、１つ右隣のピクセルに座標を変更する。
【０１３１】
ステップＳ４１８では、現時点の座標（ｘ，ｙ）が次のセルに対応するセパレータ部分の開始座標であるか否かを判定する。そして、次のセパレータの開始座標であると判定した場合(Yes)は、ステップＳ４２０に移行し、そうでない場合(No)は、ステップＳ４０６に移行する。
ステップＳ４２０に移行した場合は、変数ａｐを初期化（０→ａｐ）して、ステップＳ４０６に移行する。
【０１３２】
つまり、色判定領域に含まれる色のピクセルが一定数以上とならないまま、ｘ座標が、次のセルに対応するセパレータの開始ｘ座標に到達した場合に、変数ａｐを初期化する。
一方、ステップＳ４１４において変数ｘの値がｘＥであると判定されてステップＳ４２２に移行した場合は、変数ｙの値が列方向の一番下端のｙ座標であるｙＥであるか否かを判定する。
【０１３３】
そして、変数ｙの値がｙＥではないと判定した場合(No)は、ステップＳ４２４に移行し、変数ｙの値がｙＥであると判定した場合(Yes)は、ステップＳ４３８に移行する。
ステップＳ４２４に移行した場合は、変数ａｐおよび変数ｘを初期化（０→ａｐ，０→ｘ）し、変数ｙをインクリメント（ｙ＋１→ｙ）して、ステップＳ４０６に移行する。
つまり、変数ｘを初期化し、変数ｙをインクリメントすることで、１つ下隣の行で且つ一番左端のピクセルに座標を変更する。このとき、座標（ｘ，ｙ）が次のセルに対応した領域の座標となるので、変数ａｐも初期化する。
【０１３４】
一方、ステップＳ４０８において、変数ａｐの値が一定数以上ではないと判定されてステップＳ４２６に移行した場合は、変数ｘの値が、ｘＥであるか否かを判定する。
そして、変数ｘの値がｘＥではないと判定した場合(No)は、ステップＳ４２８に移行し、変数ｘの値がｘＥであると判定した場合(Yes)は、ステップＳ４３２に移行する。
ステップＳ４２８に移行した場合は、変数ｘをインクリメント（ｘ＋１→ｘ）して、ステップＳ４３０に移行する。
【０１３５】
ステップＳ４３０では、現時点の座標（ｘ，ｙ）が次のセルに対応するセパレータの開始座標であるか否かを判定する。そして、次のセパレータの開始座標であると判定した場合(Yes)は、ステップＳ４３２に移行し、そうでない場合(No)は、ステップＳ４２６に移行する。
ステップＳ４３２に移行した場合は、変数ａｐを初期化（０→ａｐ）して、ステップＳ４０６に移行する。
【０１３６】
つまり、変数ａｐが一定数以上のときに、上記ステップＳ４２６〜Ｓ４３０の処理を繰り返し行うことで、各セルＣに対応する領域においてその行の残りのピクセルに対して上記ステップＳ４１０の色判定処理を省略している。
ここで、上記ステップＳ４０８における変数ａｐの比較対象である一定数は、色の判定精度を考慮して予め設定される値であり、各行における各セルＣのピクセル数未満の値となる。従って、各行の色の判定に十分な一定数の色の判定がされたことに応じて、残りのピクセルに対する色判定処理を省略することとなる。
【０１３７】
具体的に、例えば、一定数を１０としたときに、あるセルの領域におけるいずれかの行においてイエローを中心座標とした判定領域に含まれると判定されたピクセルが１０ピクセル（ａｐ＝１０）になったときに、ステップＳ４０８において、変数ａｐの値が一定数以上であると判定され、該当セルＣの同じ行の残りのピクセルに対しては上記ステップＳ４１０の色判定処理が省略される。
【０１３８】
一方、ステップＳ４２６において、変数ｘの値がｘＥであると判定されてステップＳ４３４に移行した場合は、現時点における変数ｙの値が列方向の一番下端のｙ座標であるｙＥであるか否かを判定する。
そして、ステップＳ４３４において、変数ｙの値がｙＥではないと判定した場合(No)は、ステップＳ４３６に移行し、変数ｙの値がｙＥであると判定した場合(Yes)は、ステップＳ４３８に移行する。
【０１３９】
ステップＳ４３６に移行した場合は、変数ａｐおよび変数ｘを初期化（０→ａｐ，０→ｘ）し、変数ｙをインクリメント（ｙ＋１→ｙ）して、ステップＳ４０６に移行する。
一方、二次元コードの領域における全てのピクセルについて色判定が終了して、ステップＳ４３８に移行した場合は、ＲＡＭ６２または記憶装置７０に記憶された各セルＣの領域の各行のピクセルの色の判定結果に基づき、各セルＣの色を判定して、ステップＳ４４０に移行する。
【０１４０】
具体的に、各セルＣの領域について、判定領域内に含まれるピクセル数が一定数以上となっている行が所定数以上のときに、各セルＣの色をその判定領域の中心座標の色として判定する。そして、各セルＣと、判定された色とが対応づけられてＲＡＭ６２または記憶装置７０のデータテーブルに登録される。ここでは、データテーブルに登録済のセルＣに対して色が判定された場合、このセルＣに対応する色として、こうして判定された最新の色に更新される。なお、判定領域内に含まれるピクセル数が一定数以上となっている行が所定数未満であり、二次元コードに用いられる複数色の判定領域のいずれにも含まれていないと判定された場合には、該当のセルＣに対し、判定領域外の色である旨が対応づけられる。
【０１４１】
ステップＳ４４０では、ステップＳ４３８で色が判定されたセルＣの中に、着色規則に従っていない色の付されたセルＣが一定数以上存在しているか否かを判定する。
ここでは、この時点でセルＣと色とが対応づけて登録されたデータテーブルの中に、判定領域外の色である旨が対応づけられたセルＣが一定数（例えば全体の３割）以上存在していることをもって、着色規則に従っていない色の付されたセルＣが所定割合以上存在していると判定される。
【０１４２】
なお、ここでは、着色規則に従っていない色の付されたセルＣが一定数以上存在しているか否かを、二次元コードのセルＣに占める相対的な数（つまり割合）により判定するように構成しているが、二次元コードのセルＣに占める絶対数により判定するように構成してもよいし、着色規則に従っていないセルＣが特定のパターン（例えば、このセルＣが２つ以上連続しているなど）で配置されている場合におけるこのパターンの数により判定するように構成してもよい。
このステップＳ４４０において、着色規則に従っていない色の付されたセルＣが一定数以上存在していると判定した場合(Yes)は、ステップＳ４４２に移行する。
【０１４３】
ステップＳ４４２に移行した場合は、判定領域を変更して再度の色判定が可能な状態であるか否かを判定する。
ここでは、ステップＳ４１０における色判定で参照された判定領域が、あらかじめ定められた上限まで変更されている場合に、再度の色判定が可能な状態ではないと判定される。
【０１４４】
この「あらかじめ定められた上限」とは、各判定領域が他の判定領域と干渉しないように変更できる範囲として定められたものであり、後述のように、判定領域を単純に拡げていく場合であれば、各判定領域を他の領域と干渉する程度まで拡張した状態となっていることをもって「あらかじめ定められた上限まで変更されている」こととすればよい。また、判定領域を変移させていく場合であれば、判定領域で規定される色が別の色成分になる直前の位置（境界）まで変移した状態となっていることをもって、「あらかじめ定められた上限まで変更されている」こととすればよい。
【０１４５】
このステップＳ４４２において、再度の色判定が可能であると判定された場合(Yes)は、ステップＳ４４４に移行し、そうでない場合(No)は、ステップＳ４４６に移行する。
ステップＳ４４４に移行した場合は、上記ステップＳ４１０における色判定で参照された判定領域を変更して、ステップＳ４０４に移行する。ここでは、各判定領域を色空間上で一定領域だけ拡げる、または、各判定領域を色空間上で一定距離だけ変移させることにより判定領域それぞれが変更される。
【０１４６】
なお、この後者の場合、判定領域は、二次元コードの画像領域における色成分の偏りを打ち消すことのできる色空間上の位置へと変移させるように構成するとよい。具体的には、二次元コードの画像領域における色の分布を参照し、その分布において特定の色成分が全体的に大きくなっている場合に、この色成分を小さくする方向に各判定領域を変移させる。
【０１４７】
こうして、ステップＳ４４４を終えた後、ステップＳ４０４に移行し、再度、ステップＳ４０２で分割された各セルＣの領域について色の判定処理が行われる。
以降、再度色が判定されたセルＣそれぞれの中に、着色規則に従っていない色の付されたセルＣが一定数以上存在していないと判定されるまで（ステップＳ４４０の「No」の分岐）、判定領域の変更および再度の色判定が繰り返される（ステップＳ４０４〜Ｓ４４４）。
【０１４８】
一方、ステップＳ４４２において、再度の色判定が不可能であると判定されステップＳ４４６に移行した場合は、エラー処理を行って、一連の処理を終了し、元の処理に復帰する。
このエラー処理では、いずれのセルＣの色についても判定できなかったものとし、データテーブルに登録されていた全ての対応関係を消去され、こうして空のデータテーブルが戻り値として元の処理へと復帰する。この場合、図３のコード利用物品検出処理では、ステップＳ１３４，Ｓ１３６で何らの処理も行われることなく、Ｓ１３８以降の処理が行われる。
【０１４９】
そして、上記ステップＳ４３８〜Ｓ４４４までの処理中に、上記ステップＳ４４０において、着色規則に従っていない色の付されたセルＣが一定数以上存在していないと判定された場合(No)は、ステップＳ４４８に移行する。
ステップＳ４４８に移行した場合は、着色規則に従っていない色の付されたセルＣが存在しているか否かを判定する。
このステップＳ４４８において、該当セルＣが存在していると判定した場合(Yes)は、ステップＳ４５０に移行し、該当セルＣが存在していないと判定した場合(No)は、一連の処理を終了し、元の処理に復帰する。
【０１５０】
ステップＳ４５０に移行した場合は、二次元コードの中から該当セルＣを特定して、ステップＳ４５２に移行する。
ここでは、この時点でデータテーブルに登録されているセルＣのうち、着色規則に従っていない色の付されたセルＣが特定され、このセルＣが二次元コードの中から特定される。
ステップＳ４５２では、上記ステップＳ４４８において特定されたセルＣそれぞれについて、着色規則に従って本来付されるべき色を推定して、ステップＳ４５４に移行する。
【０１５１】
ここでは、上記ステップＳ４４８において特定されたセルＣに対し、着色規則に従って本来付されるべき色の候補として、そのセルＣに隣接するセルＣに付された色との関係で考えられる色が選出され、その候補の中から最も確からしい色が、そのセルＣに付されるべき色であるとして推定される。
ステップＳ４５４では、上記ステップＳ４４８において特定されたセルＣそれぞれについて、該セルＣの色が、上記ステップＳ４５２において推定された色であると判定し、一連の処理を終了し、元の処理に復帰する。
【０１５２】
ここでは、上記ステップＳ４４８において特定されたセルＣそれぞれについてのみ、データテーブルにおける色の更新がなされる。
この場合と、ステップＳ４４８において該当のセルＣが特定されなかった場合は、この時点でセルＣと色との対応関係が登録されたデータテーブルを戻り値として図３のコード利用物品検出処理へと戻る。この場合、コード利用物品検出処理では、データテーブルに基づいて各セルＣに付された色を認識したうえで、ステップＳ１３４による情報の識別を行うこととなる。
なお、上記図１のステップＳ１２８における、特徴的なパターンを含むか否かを判定する処理を行う際に、上記ステップＳ４００〜Ｓ４５４に示すアルゴリズム、または、上記ステップＳ４００〜Ｓ４３８に示すアルゴリズムを適用することが可能である。
【０１５３】
また、データ領域しか有さない二次元コードの構成であれば、ステップＳ１２８の処理を行う前に、上記ステップＳ４００〜Ｓ４３８の色判定処理、または、上記ステップＳ４００〜Ｓ４５４の色判定処理を先に行い、その判定結果に基づき、特徴的なパターンを含むか否かを判定する処理を行う構成とすることも可能である。例えば、上記図１のステップＳ１２６の処理の次に、色判定処理（Ｓ１３２）を行う構成とし、ステップＳ１２８では、先に行われた色判定処理の結果に基づき、特徴的なパターンを含むか否かの判定を行う。この場合は、以降の色判定処理を不要とすることができる。
【０１５４】
（３−５）物品検出処理
続いて、図３のステップＳ１４６である物品検出処理の処理手順を図９〜図１２に基づき具体例を示しながら説明する。
ここで、図９は、物品検出処理の処理手順の一例を示すフローチャートである。また、図１０は、データベースに登録された識別情報および物品情報の一例を示す図である。また、図１１（ａ）は、物品検出モードの検出対象画像例を示す図であり、（ｂ）は、検出結果の表示例を示す図である。また、図１２（ａ）は、期限管理モードの検出対象画像例を示す図であり、（ｂ）は、検出結果の表示例を示す図であり、（ｃ）は、カメラ７６の配設位置の一例を示す図である。
物品検出処理が開始さると、図９に示すように、まず、ステップＳ５００に移行して、設定されている検出モードが、物品検出モードか否かを判定する。
【０１５５】
そして、設定されている検出モードが物品検出モードであると判定した場合(Yes)は、検出対象として指定された物品（以下、指定物品と称す）の情報を取得して、ステップＳ５０２に移行し、物品検出モードではないと判定した場合(No)は、ステップＳ５２０に移行する。
ステップＳ５０２に移行した場合は、記憶装置７０に記憶された物品情報に基づき、ＲＡＭ６２または記憶装置７０に格納された各二次元コードの識別情報に対応する物品情報に対応する物品のなかに、指定物品があるか否かを判定する。
【０１５６】
ここで、物品情報としては、例えば、図１０に示すように、上記図３のステップＳ１３４で識別された識別情報に対応付けて、品名コード、品種、個数、保管開始時期、出荷期限、消費期限が登録されている。
本実施形態では、ダンボール等の梱包材に梱包された物品に対して、各梱包材に１つの二次元コードを付しており、品名コードは、各梱包材に梱包された１以上の物品に対して付与されるものである。従って、個数情報は、１つの梱包材に梱包された物品の個数の情報となる。
【０１５７】
また、保管開始時期は、例えば、倉庫で管理される物品であれば、入庫日の情報が登録される。また、店内の商品棚に陳列される食品等の物品であれば、陳列日の情報あるいは物品の製造日の情報が登録される。また、食品や薬品等の、経過日数に応じて状態が劣化していくような物品の場合は、消費期限（賞味期限）の情報が登録される。また、倉庫に保管する物品について、出荷（保管）期限がある場合は、出荷（保管）期限の情報が登録される。
従って、指定物品の有無の判定は、指定された品名コードに対応する識別情報が、上記図３のステップＳ１３４で識別された識別情報の中にあるか否かを判定することによって行われる。
【０１５８】
そして、ステップＳ５０２において、指定物品があると判定した場合(Yes)は、ステップＳ５０４に移行し、指定物品がないと判定した場合(No)は、ステップＳ５１８に移行する。
指定物品があると判定してステップＳ５０４に移行した場合は、記憶装置７０の物品情報から、指定物品の情報を取得して、ステップＳ５０６に移行する。
ステップＳ５０６では、ＲＡＭ６２または記憶装置７０から、原画像の画像データと、指定物品の識別情報に対応する二次元コードの原画像における座標情報とを取得して、ステップＳ５０８に移行する。
【０１５９】
ここで、原画像のデータとして、図１１（ａ）に示すように、ダンボール箱に梱包された状態の複数の物品２００が積み上げられ、ダンボール箱の正面側の面に、二次元コード１００が付された画像を示す画像データが取得されたとする。図１１（ａ）の画像例では、物品が仕切り板によって８箱毎に仕切られており、全部で８箱×１２＝９６箱の物品が積み上げられた状態となっている。これらのうち、指定物品の検出の対象となる領域は、二次元コードが正面側に表示されている（画像内に含まれている）４８箱となる。
【０１６０】
ステップＳ５０８では、ステップＳ５０６において取得した原画像のデータに対して、指定物品の二次元コードの画像領域を強調表示するための加工処理を行って、ステップＳ５１０に移行する。
ここで、上記「強調表示するための加工処理」は、例えば、原画像中の、二次元コードの画像領域の周囲を赤色等の目立つ色の線で囲んだり、二次元コードの画像領域を目立つ色で塗りつぶしたり、二次元コードの画像領域の輪郭部を強調（輪郭線を太くする、輪郭線を赤色等の目立つ色に変更する、これら双方など）したりする処理となる。他にも、点滅表示やアニメーション表示されるように加工処理を施してもよい。
【０１６１】
つまり、「強調表示するための加工処理」は、原画像中の検出対象の指定物品に対応する二次元コードの画像が視覚的に目立つようにマーキング等の強調表示加工を行う処理となる。
ステップＳ５１０では、指定物品に対応する二次元コードが複数あるか否かを判定し、複数あると判定した場合(Yes)は、ステップＳ５１２に移行し、そうでない場合(No)は、ステップＳ５１４に移行する。
【０１６２】
ステップＳ５１２に移行した場合は、保管開始時期の情報に基づき、原画像に対して、指定物品に対応する各二次元コードの近傍に、保管開始順に番号画像を追加する加工を行って、ステップＳ５１４に移行する。
ステップＳ５１４では、原画像に、指定物品の保管開始時期、出荷期限、消費期限等の画像情報を追加する加工処理を行って、ステップＳ５１６に移行する。
これら物品に係る情報は、画像中の物品２００の表示されていない部分等に表示されるように加工処理が行われる。なお、表示領域が確保できない場合は、これら情報の表示領域を生成する加工処理を行ってもよい。
【０１６３】
また、指定物品に対応する二次元コードが複数ある場合は、各番号に対応付けて物品に係る情報を表示する。
なお、ステップＳ５１４の物品２００に係る情報の表示処理は、行わないようにする、または行わない設定にできるようにしてもよく、行わない場合は、ステップＳ５１２の処理からステップＳ５１６の処理へと移行する。
【０１６４】
この場合は、ステップＳ５１６において、ステップＳ５０８，Ｓ５１２およびＳ５１４で加工された画像を、表示装置７２に表示する処理を行って、上記一連の物品検出処理を終了し、元の処理に復帰する。
ここで、図１１（ｂ）の画像例は、図１１（ａ）の原画像から、３つの指定物品が検出された場合の例であり、各物品に対応する二次元コードを、四角い枠で囲むマーキングが施されている。これにより、ユーザは、指定物品が原画像中のいずれの物品２００なのかを視覚的に瞬時に把握することができる。
【０１６５】
さらに、図１１（ｂ）に示すように、指定物品の各二次元コードの近傍（右下）には、入庫日の古い順に、番号（１）〜（３）が付される（表示される）。これにより、ユーザは、番号画像から物品の入庫された順番を視覚的に瞬時に把握することができ、簡易に入庫日の古い順に出荷作業を行うことが可能となる。特に、物品に消費期限のある場合に、消費期限へと先に到達する物品から順に出荷を行うことができる。
【０１６６】
また、図１１（ｂ）に示すように、画面右上には、入庫順に対応する番号と共に品名コード、入庫日、出荷期限および消費期限の文字画像が表示される。これにより、ユーザは、検出された物品が指定物品に間違いないか否かの判断を容易に行え、且つ、正確な入庫日、出荷期限および消費期限を容易に知ることができる。図１１（ｂ）の例では、物品は薬品であり、各物品の出荷期限や消費期限を確認することができる。
【０１６７】
一方、ステップＳ５０２において指定物品がないと判定されてステップＳ５１８に移行した場合は、ＲＡＭ６２または記憶装置７０から、原画像の画像データを取得し、取得した画像データに基づき、表示装置７２に原画像を表示する。そして、一連の処理を終了して、元の処理に復帰する。
つまり、撮影した画像中に指定物品が含まれていない場合に、強調表示加工や追加表示加工などの施されていない原画像を表示する。これにより、ユーザは指定物品が無いことを視覚的に瞬時に把握することができる。なお、指定物品が無い旨を示すメッセージ等の画像を原画像中に表示するようにしてもよい。
【０１６８】
また、ステップＳ５００において、設定された検出モードが物品検出モードではなくてステップＳ５２０に移行した場合は、設定された検出モードが期限管理モードか否かを判定する。
そして、設定された検出モードが期限管理モードであると判定した場合(Yes)は、ステップＳ５２２に移行し、期限管理モードではないと判定した場合(No)は、ステップＳ５３２に移行する。
【０１６９】
ステップＳ５２２に移行した場合は、記憶装置７０に記憶されたデータベースから、図３のステップＳ１３４において識別して得られた識別情報に対応する出荷期限および消費期限の情報を取得して、ステップＳ５２４に移行する。
ステップＳ５２４では、コンピュータシステムの有する不図示のＲＴＣ（Real Time Clock）から取得した現在（現時点）の年月日時刻の情報と、取得した出荷期限および消費期限とを比較して、期限を経過した物品があるか否かを判定する。
【０１７０】
そして、ステップＳ５２４において、期限を経過した物品（以下、経過物品と称す）があると判定した場合(Yes)は、ステップＳ５２６に移行し、経過物品がないと判定した場合(No)は、ステップＳ５３０に移行する。
ここで、ステップＳ５２４において、期限が経過した物品ではなくて、例えば、期限までの日数が所定日数以下となった物品を検出するようにしてもよい。つまり、ステップＳ５２４において、取得した出荷期限および消費期限から所定期間を減じた期限と、現時点の年月日時刻の情報とを比較して判定を行ってもよい。
ステップＳ５２６に移行した場合は、ＲＡＭ６２または記憶装置７０から、原画像の画像データと、経過物品に対応する二次元コードの領域の座標情報とを取得して、ステップＳ５２８に移行する。
【０１７１】
ここで、原画像のデータとして、例えば、図１２（ａ）に示す、商品陳列棚に複数の物品３００が載置され、各物品３００の正面側に、二次元コード１００が付された被写体の撮影画像を示す画像データが取得されたとする。なお、図１２の例では、図１２（ｂ）に示すように、物品検出装置１が、携帯型の情報端末で構成されており、この情報端末の裏面側上部には、図１２（ｃ）に示すように、カメラ７６のレンズ部分が配設されている。これにより、ユーザは、図１２（ｂ）に示されている表示画面を見ながら、裏面画のカメラ７６で、商品陳列棚を撮影することができる。そして、原画像のデータは、図１２（ｂ）に示すように、撮影範囲ＰＲの撮影画像のデータとなる。つまり、ここではユーザが物品検出装置１を携帯し、商品陳列棚の商品を撮影しながら経過物品の検出結果を確認できる実施態様を例示している。
【０１７２】
ステップＳ５２８では、ステップＳ５２６において取得した原画像のデータに対して、経過物品の二次元コードの画像領域を強調表示するための加工処理を行って、ステップＳ５１６に移行する。
ここでの加工処理は、上記ステップＳ５０８の処理と同様の処理となる。
この場合は、ステップＳ５１６において、ステップＳ５２８で加工された画像を、表示装置７２に表示する処理を行って、上記一連の物品検出処理を終了し、元の処理に復帰する。
図１２（ｂ）の画像例は、３つの経過物品が検出された例であり、各経過物品に対応する二次元コードを、丸い枠で囲むマーキングが施されている。これにより、ユーザは、経過物品が原画像中のいずれの物品３００なのかを視覚的に瞬時に把握することができる。
【０１７３】
一方、ステップＳ５２４において、経過物品がないと判定してステップＳ５３０に移行した場合は、ＲＡＭ６２または記憶装置７０から、原画像の画像データを取得し、取得した画像データに基づき、表示装置７２に原画像を表示する。そして、一連の処理を終了して、元の処理に復帰する。
つまり、撮影した画像中に経過物品が含まれていない場合に、強調表示加工や追加加工などの施されていない原画像を表示する。これにより、ユーザは経過物品が無いことを視覚的に瞬時に把握することができる。なお、経過物品が無い旨を示すメッセージ等の画像を原画像中に表示するようにしてもよい。
【０１７４】
また、ステップＳ５２０において、期限管理モードではないと判定してステップＳ５３２に移行した場合は、モードの設定を促すメッセージを表示装置７２に表示する処理を行って、上記一連の処理を終了し、元の処理に復帰する。
この処理は、物品検出モードおよび期限管理モードのいずれか一方が必ず設定されるように構成されている場合には不要の処理となる。
【０１７５】
（３−６）検出モード設定処理
続いて、図３のコード利用物品検出処理を実行する前等に行われる、検出対象の物品を指定する検出モード設定処理の処理手順を図１３に基づき説明する。
ここで、図１３は、検出モード設定処理の処理手順の一例を示すフローチャートである。
検出モード設定処理は、上記図３のコード利用物品検出処理とは独立して行われる処理であって、入力装置７４を介したユーザの指示入力に応じて起動し、図１３に示すように、まず、ステップＳ６００に移行する。
【０１７６】
ステップＳ６００では、指示入力に応じて、検出モードを設定する設定モードへと移行して、ステップＳ６０２に移行する。
ここでは、入力装置７４によって、簡易に検出モードが選択できるように、物品検出モードを選択するボタンのグラフィックスと、期限管理モードを選択するボタンのグラフィックスとを表示装置７２の表示画面に表示する。
【０１７７】
そして、例えば、画面に表示されたボタンを、入力装置７４がタッチパネルであれば指でタッチすることで選択かつ押下し、入力装置がマウスであればマウスカーソルによって選択してクリックすることにより押下することで、いずれかのモードを選択できるようにしている。つまり、ＧＵＩ（Graphical User Interface）によって、簡易に検出モードの選択および設定を行うことが可能となっている。
【０１７８】
ステップＳ６０２では、物品検出モードが選択されたか否かを判定し、選択されたと判定した場合(Yes)は、ステップＳ６０４に移行し、そうでない場合(No)は、ステップＳ６１２に移行する。
ステップＳ６０４に移行した場合は、検出モードとして物品検出モードを設定して、ステップＳ６０６に移行する。
【０１７９】
ステップＳ６０６では、指定物品の入力を促す画面を表示装置７２の表示画面に表示して、ステップＳ６０８に移行する。
例えば、指定物品として指定可能な物品のリストを表示して、その中から選択できるようにする。また、品名、品名コード、シリアル番号等で指定可能な物品を検索できるようにしてもよい。
【０１８０】
ステップＳ６０８では、指定物品の情報が入力されたか否かを判定し、入力されたと判定した場合(Yes)は、ステップＳ６１０に移行し、そうでない場合(No)は、入力されるまで判定処理を続行する。
なお、指定する物品が見つからなかった場合等において、設定モードを終了した場合は、判定処理から抜けて、一連の処理を終了する。
ステップＳ６１０では、ステップＳ６０８で入力された検出対象の指定物品を設定して、処理を終了する。
これにより、検出モードとして物品検出モードが設定され、さらに、指定物品が設定される。具体的に、これらの情報がＲＡＭ６２の所定アドレスに格納される。
【０１８１】
一方、ステップＳ６０２において、物品検出モードが選択されずにステップＳ６１２に移行した場合は、期限管理モードが選択されたか否かを判定する。そして、期限管理モードが選択されたと判定した場合(Yes)は、ステップＳ６１４に移行し、そうでない場合(No)は、ステップＳ６０２に移行して、判定処理を続行する。
ステップＳ６１４に移行した場合は、検出モードとして期限管理モードを設定して、一連の処理を終了する。
これにより、検出モードとして期限管理モードが設定される。物品検出モードと同様に、この情報はＲＡＭ６２の所定アドレスに格納される。
【０１８２】
（４）作用，効果
上記実施形態における物品検出装置１であれば、取得された画像（原画像）から、グレースケール画像の生成（図５（ｂ）のＳ２０２，Ｓ２１０）、二値化画像の生成（同図Ｓ２０４，Ｓ２１２）、二値化画像中の物体の輪郭部の線形化（同図Ｓ２０６）を経てエッジ画像を生成することができる（図３のＳ１０８）。
【０１８３】
さらに、生成したエッジ画像に基づき、このエッジ画像中における候補領域の抽出（同図Ｓ１１０）、この抽出した候補領域に対応する原画像中の対応領域それぞれに特徴的なパターンが含まれているか否かの判定（同図Ｓ１２８）を経て、原画像中から二次元コードの領域を検出することができる（同図Ｓ１３０）。
このように、二値化画像中の物体の輪郭部が線形化されたエッジ画像から、候補領域を抽出することができるので、線形化しない場合と比較して高速に候補領域を抽出することができる。
【０１８４】
そして、原画像の領域において、候補領域に対応する対応領域のうち、特徴的なパターンが含まれている対応領域を、原画像中における二次元コードの領域として検出することにより、原画像中に含まれる複数の二次元コードそれぞれを特定することができるようになる。
また、上記実施形態では、原画像に基づいて生成される複数種類のエッジ画像それぞれについて、候補領域の抽出、この抽出した候補領域に特徴的なパターンが含まれているか否かの判定、および、二次元コードの領域の検出を繰り返し実施している（図３のＳ１０８〜Ｓ１４４）。
これにより、特定のエッジ画像に基づいて二次元コードの領域を検出できなかったとしても、別のエッジ画像に基づいて検出されることが期待でき、その結果、原画像における二次元コードの検出精度を高めることができる。
【０１８５】
また、この繰り返しの過程では、特定のエッジ画像について新たに抽出された候補領域が、先に参照されたエッジ画像について抽出された抽出済み候補領域と、原画像の領域において一致している場合も想定される。ところが、上記構成では、このような抽出済み領域について、抽出した候補領域に特徴的なパターンが含まれているか否かの判定、および、二次元コードの領域の検出を実施しない（同図Ｓ１２４の「Yes」の分岐）。
そのため、複数のエッジ画像それぞれに基づいて検出された各二次元コードの領域について、この二次元コードにてコード化された情報を識別するに際し、本来同じものであるはずの二次元コードを繰り返し識別してしまうといった無用な処理負担をなくすことができる。
【０１８６】
また、この繰り返しの過程では、理想的な領域形状に対して、各候補領域の縦横比および四隅の角度等の形状情報が、あらかじめ設定された誤差範囲内となるか否かを判定することによって（図６のＳ３００〜Ｓ３０８）、抽出した候補領域が有効な候補領域であるか否かを判定することができる（図３のＳ１２２）。
これにより、理想的な形状に対して、誤差範囲外の形状を有する候補領域を、以降の処理対象から除外することができ、二次元コードの領域とは明らかに異なる領域等に対して、無用な処理が行われるのを防ぐことができる。
【０１８７】
また、上記実施形態では、原画像からエッジ画像を生成し、このエッジ画像から、二次元コードの領域の候補となる候補領域を抽出したうえで（図３のＳ１１０）、原画像における、この抽出した候補領域に対応する領域から二次元コードの領域を検出して情報の識別を行っている（同図Ｓ１１６〜Ｓ１３４）。そのため、候補領域を抽出することなく二次元コードの領域を検出しようとする場合と比べて、抽出した候補領域という限定的な範囲から二次元コードの領域の検出を行うことができる。これにより、二次元コードの領域から情報の識別を行うまでに要する処理負荷および処理時間を抑えることができる。
また、上記実施形態では、複数のエッジ画像それぞれに基づいて検出された各二次元コードの領域について、この二次元コードにてコード化された情報を識別することができる（図３のＳ１３４）。
【０１８８】
また、上記実施形態においては、特定のエッジ画像から抽出された候補領域と、別のエッジ画像における抽出済み候補領域との重複度合に応じ、その重複度合が一定以上であることをもって、両候補領域が一致すると判定することができる。
また、上記実施形態においては、特定のエッジ画像から抽出された候補領域、および、別のエッジ画像における抽出済み候補領域のうち、一方の候補領域が他方の候補領域に包摂されていることをもって、両候補領域が一致すると判定することができる。
【０１８９】
また、上記実施形態においては、特定のエッジ画像から抽出された候補領域における１以上の頂点が、抽出済み候補領域におけるいずれかの頂点から一定範囲内に位置していることをもって、両候補領域が一致すると判定することもできる。
また、上記実施形態においては、テンプレートで規定される規則に従って候補領域を抽出することができるため、このテンプレートと共に規則を変更することにより、任意の規則に従って形成された二次元コードの領域として検出できるようにすることができる。
【０１９０】
また、上記実施形態においては、二次元コードの各セルＣに付された色に基づいて、二次元コードで示される情報を識別することができる（図３のＳ１３２〜Ｓ１３４）。
また、上記実施形態では、画像の生成（具体的には撮影）状態により、二次元コードにおける各セルＣのうち、一部のセルＣに対応する領域が欠けてしまっていたとしても、そのセルに本来付されるべき色を着色規則に従って推定し（図８のＳ４５２）、その色に基づいて情報を識別することができるため、情報の識別そのものができなくなってしまうことを防止することができる。
【０１９１】
また、上記実施形態では、二次元コードにおける各セルＣに付されている色を、色空間におけるいずれの判定領域に含まれているかにより判定することができる（図８のＳ４１０）。
また、この構成においては、各ピクセルの色判定を行う際に、二次元コードの領域を、ラスタスキャンによって順番に走査して色判定処理を行い（図８のＳ４１０）、各セルＣの領域における各行に位置するピクセルについて、一定数以上が判定領域に含まれると判定された場合（図８のＳ４０８の「Yes」の分岐）に、該当セルＣの領域におけるその行の残りのピクセルに対して色判定処理を省略することができる。
これによって、各セルＣの領域における各行のピクセルの全てに対して色判定処理を行う場合と比較して、各ピクセルの色判定処理を高速に行うことができる。
【０１９２】
また、この構成においては、各セルＣの色を判定するに際し、多くのセルＣに付された色がいずれの判定領域にも含まれず、情報の識別そのものができなくなるような場合であっても、そのようなことを防止できるように構成されている。
具体的には、複数の色それぞれに対応する判定領域のいずれにも含まれていないと判定したセルが一定数以上存在する場合に（図８のＳ４４０「Yes」の分岐）、判定領域を一定領域だけ拡げる、または、変移させたうえで、再度、各セルに付されている色を判定している（同図Ｓ４４４〜Ｓ４３８）。
この構成であれば、画像の生成条件が悪く、適切に色の判定ができない場合であっても、判定領域を拡げることで判定の感度を上げて再度色を判定する、または、判定領域を色の分布に応じた適切な位置まで変移させて再度色を判定することにより、色の判定確率を高めることができる。
【０１９３】
また、上記実施形態では、物品検出モードが設定されている場合に、各セルＣの色の判定結果に基づいて識別された情報に基づき、該情報に対応する物品のなかに、指定物品が存在するか否かを判定することができる（図９のＳ５０２）。
さらに、指定物品が存在する場合に、原画像における指定物品に対応する二次元コードの領域が強調表示されるように原画像を加工し（図９のＳ５０８）、加工した画像を表示することができる（図９のＳ５１６）。
これによって、原画像中の指定物品に対応する二次元コードの領域が強調表示された画像を表示することができるので、ユーザは、表示された画像を見ることで、原画像中における指定物品の位置を簡易かつ瞬時に把握することができる。
【０１９４】
また、この構成においては、指定物品が複数あるときに、各指定物品の管理開始時期情報に基づき、管理開始時期が古い順に、順番を示す番号の画像を、指定物品に対応する二次元コードの領域上、または、その近傍に表示されるように原画像に追加する加工を行うことができるように構成されている（図９のＳ５１２）。
これによって、ユーザは、表示された画像を見ることで、各指定物品の管理開始時期の順番を視覚的に簡易かつ瞬時に把握することができる。例えば、倉庫内における物品を、その管理開始時期の古い順に出荷するなどの作業を容易に行うことができる。
【０１９５】
また、この構成においては、原画像に対して、強調表示加工に加えて、指定物品に係る表示情報を追加する加工を行うことができるように構成されている（図９のＳ５１４）。
これによって、ユーザは、表示された画像を見ることで、品名、品名コード、管理開始期限、出荷期限等の指定物品に係る情報を確認することができる。
また、この構成においては、期限管理モードを設定した場合に、出荷期限、消費期限等の期限が経過した物品、または、期限までの期間が所定期間以下の物品を指定物品とすることができる。そして、各セルＣの色の判定結果に基づいて識別された情報に対応する物品のなかから、期限を経過した物品、または、期限までの期間が所定期間以下の物品が存在するか否かを判定することができる（図９のＳ５２４）。
【０１９６】
さらに、指定物品が存在する場合に、原画像における指定物品に対応する二次元コードの領域が強調表示されるように原画像を加工し（図９のＳ５２８）、加工した画像を表示することができる（図９のＳ５１６）。
これによって、原画像中の指定物品に対応する二次元コードの領域が強調表示された画像を表示することができるので、ユーザは、表示された画像を見ることで、原画像中における指定物品の位置を簡易かつ瞬時に把握することができる。
【０１９７】
（５）変形例
以上、本発明の実施形態について説明したが、本発明は、上記実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態をとり得ることはいうまでもない。
例えば、上記実施形態においては、物品検出装置１が単体の装置により構成されている場合を例示したが、この物品検出装置１は、複数の装置が協調して動作するシステムとして構成してもよい。
【０１９８】
また、上記実施形態においては、二次元コードの領域としては、上述したような二次元コードに限らず、特定の画像（例えば、ロゴなど）を示す領域としてもよい。
また、上記実施形態では、着色規則に従って付されるべき色の候補を選出し、その中から最も確からしい単一の色を、着色規則に従って本来付されるべき色と推定しているが、こうして色の候補を選出した段階で、これら候補のいずれかをユーザに選択させることとしてもよい。
【０１９９】
また、候補として選出した色それぞれについて情報の識別までも行うようにし、そうして識別した情報の中からいずれかをユーザに選択させることとしてもよい。この場合、図８のＳ４５２では何らの処理も行わず、Ｓ４５４にて候補の色それぞれを、該当するセルＣに付された色と判定する。そして、図３のＳ１３４では、セルＣに付された色として判定された色が複数存在していれば、各色について、または、各色の組合せに基づいて情報を識別し、そうして識別した情報の中から、いずれかをユーザに選択させる、といった構成を考えることができる。
【０２００】
また、上記実施形態においては、物品検出処理において、指定された物品を検索する例と、期限について条件を満たしている物品を検索する例とを説明したが、これらの例に限らず、別の条件を満たす物品を検索できるように構成してもよい。
また、上記実施形態においては、管理開始期限の古い順に番号画像を二次元コードの領域上、または、その近傍に表示する構成としたが、この構成に限らず、消費期限が早い順など、他の条件に基づく順番の番号画像を表示する構成としてもよい。
【０２０１】
また、上記実施形態において、コード利用物品検出処理を、入力装置７４を介したユーザーの操作入力（指示情報）をトリガとして行われる一連の処理として説明したが、この構成に限らない。
例えば、検出対象の物品が設定（検出モードが設定）された状態であれば、トリガがなくてもコード利用物品検出処理を繰り返し実行して、常に、撮影画像に対して検出処理を実行し、検出結果の画像を表示する構成とするなど、他の構成としてもよい。
【０２０２】
また、上記実施形態において、物品検出装置１は、専用のプログラムをＣＰＵ６０によって実行することで、コード利用物品検出処理に必要な各機能を実現する構成としたが、この構成に限らない。例えば、処理の一部を半導体集積回路等のハードウェアに置き換えて、ハードウェアとソフトウェアとの双方によって各機能を実現する構成としてもよいし、可能であれば、処理の全てまたは略全てをハードウェアに置き換えて、ハードウェア主体で各機能を実現する構成としてもよい。
【０２０３】
（６）本発明との対応関係
以上説明した実施形態において、図３のＳ１０２が本発明における画像取得部であり、同図Ｓ１０８（図５のＳ２００〜Ｓ２１２）が本発明における成分変換部であり、同図Ｓ１１０が本発明における領域抽出部であり、同図Ｓ１２８が本発明におけるパターン判定部である。
【０２０４】
また、図３のＳ１３０が本発明における領域検出部であり、同図Ｓ１０８〜Ｓ１４４（特にＳ１０８，Ｓ１４２，Ｓ１４４）が本発明における繰り返し実施部であり、同図Ｓ１２４が本発明における一致判定部であり、同図Ｓ１３４が本発明における情報識別部である。
また、図８におけるＳ４５２が本発明における色推定部であり、同図Ｓ４１０，Ｓ４３８およびＳ４５４が本発明における色判定部である。
【０２０５】
また、図９のＳ５０２，Ｓ５２４が本発明における物品有無判定部であり、図９のＳ５０８，Ｓ５１２，Ｓ５１４が本発明における画像加工部であり、図９のＳ５０６が本発明における画像表示部である。
また、検出モードが本発明における指定情報であり、図１３のＳ６００〜Ｓ６１４が本発明における指定情報設定部である。
【符号の説明】
【０２０６】
１…物品検出装置、６０…ＣＰＵ、６２…ＲＡＭ、６４…ＲＯＭ、６６…Ｉ／Ｆ、６８…バス、７０…記憶装置、７２…表示装置、７４…入力装置、７６…カメラ、７８…ＮＩＣ、Ｃ…セル。
【要約】
【課題】画像に含まれる物品に付された二次元コードのうち検出対象の物品に対応する二次元コードの領域それぞれを特定するための技術を提供すること。
【解決手段】取得された画像（原画像）から生成されたエッジ画像に基づき、このエッジ画像中における候補領域の抽出、この抽出した候補領域に対応する原画像中の対応領域それぞれに特徴的なパターンが含まれているか否かの判定を経て、原画像中から二次元コードの領域を検出する。また、検出した二次元コードの領域について各セルの領域について色判定処理を行い、各セルの領域の色の判定結果に基づきコード化された情報を識別する。また、識別された情報に対応する物品のなかに、検出対象の物品が存在するか否かを判定し、存在する場合に、原画像中のその物品に対応する二次元コードの領域を強調表示する加工を施し、加工された画像を表示する。
【選択図】図３【図１】
0004724800.tif 000002
【図２】
0004724800.tif 000003
【図３】
0004724800.tif 000004
【図４】
0004724800.tif 000005
【図５】
0004724800.tif 000006
【図６】
0004724800.tif 000007
【図７】
0004724800.tif 000008
【図８】
0004724800.tif 000009
【図９】
0004724800.tif 000010
【図１０】
0004724800.tif 000011
【図１１】
0004724800.tif 000012
【図１２】
0004724800.tif 000013
【図１３】
0004724800.tif 000014