(57)【要約】【課題】本発明は、画像データに含まれるコードの自動判別・認識方法に関し、特に、1次元コード、2次元コード以外にステガノグラフィコードを確実に判別できるようにする。【解決手段】本発明は、画像データから矩形ブロック単位領域を抽出するブロック抽出工程と、前記矩形ブロック単位領域に含まれているコードの特徴量を算出するブロック特徴量算出工程と、前記特徴量から前記矩形ブロック単位領域に含まれているコードの種類を判定するブロック判定工程と、判定したコードの種類に基づいて処理を選択するコード処理選択工程とを有することを特徴とするコード画像処理方法である。これによれば、矩形ブロック領域の判別に、ステガノグラフィ固有の特徴量を用いることで、矩形ブロック領域がステガノグラフィコードの内部にあるか否かを精度良く、判別することが可能となる。【選択図】図2
2008020988.tif 000002
【特許請求の範囲】
【請求項１】
画像データから矩形ブロック単位領域を抽出するブロック抽出工程と、
前記矩形ブロック単位領域に含まれているコードの特徴量を算出するブロック特徴量算出工程と、
前記特徴量から前記矩形ブロック単位領域に含まれているコードの種類を判定するブロック判定工程と、
判定したコードの種類に基づいて処理を選択するコード処理選択工程と、
を有し、
前記ブロック特徴量算出工程は、隣接する矩形ブロック単位領域の濃度の大小関係に基づいて埋め込まれたステガノグラフィコードの特徴量を算出し、
前記ブロック判定工程は、前記ステガノグラフィコードを判別することを特徴とするコード画像処理方法。
【請求項２】
前記ブロック特徴量算出工程は、
前記矩形ブロック単位領域の濃度レベルの分布の極大位置及び極小位置を検出することを特徴とする請求項1記載のコード画像処理方法。
【請求項３】
前記ブロック判定工程は、前記ブロック特徴量算出工程が検出した極大位置及び極小位置が格子状に配置されている場合、前記矩形ブロック単位領域が、ステガノグラフィコード領域に含まれていると判定することを特徴とする請求項2記載のコード画像処理方法。
【請求項４】
前記ブロック判定工程は、前記ブロック特徴量算出工程が検出した前記矩形ブロック単位領域の極大位置の濃度レベルと極小位置の濃度レベルとの差が所定範囲内に含まれている場合、
前記矩形ブロック単位領域が、ステガノグラフィコード領域に含まれていると判定することを特徴とする請求項2記載のコード画像処理方法。
【請求項５】
前記ブロック特徴量算出工程は、1次元コード、又は2次元コードの特徴量も算出し、
前記ブロック判定工程は、前記1次元コード、又は前記2次元コードも判別することを特徴とする請求項1記載のコード画像処理方法。
【請求項６】
前記ブロック特徴量算出工程は、ステガノグラフィコード、1次元コード、又は2次元コードの特徴量を算出する順番に優先度をつけることを特徴とする請求項5記載のコード画像処理方法。
【請求項７】
画像データから矩形ブロック単位領域を抽出するブロック抽出部と、
前記矩形ブロック単位領域に含まれているコードの特徴量を算出するブロック特徴量算出部と、
前記特徴量から前記矩形ブロック単位領域に含まれているコードの種類を判定するブロック判定部と、
判定したコードの種類に基づいて処理を選択するコード処理選択部と、
を有し、
前記ブロック特徴量算出部は、隣接する矩形ブロック単位領域の濃度の大小関係に基づいて埋め込まれたステガノグラフィコードの特徴量を算出し、
前記ブロック判定部は、前記ステガノグラフィコードを判別することを特徴とするコード画像処理装置。
【請求項８】
前記ブロック特徴量算出部は、
前記矩形ブロック単位領域の濃度レベルの分布の極大位置及び極小位置を検出することを特徴とする請求項7記載のコード画像処理装置。
【請求項９】
前記ブロック判定部は、前記ブロック特徴量算出部が検出した極大位置及び極小位置が格子状に配置されている場合、前記矩形ブロック単位領域が、ステガノグラフィコード領域に含まれていると判定することを特徴とする請求項8記載のコード画像処理装置。
【請求項１０】
前記ブロック判定部は、前記ブロック特徴量算出部が検出した前記矩形ブロック単位領域の極大位置の濃度レベルと極小位置の濃度レベルとの差が所定範囲内に含まれている場合、
前記矩形ブロック単位領域が、ステガノグラフィコード領域に含まれていると判定することを特徴とする請求項8記載のコード画像処理装置。
【請求項１１】
前記ブロック特徴量算出部は、1次元コード、又は2次元コードの特徴量も算出し、
前記ブロック判定部は、前記1次元コード、又は前記2次元コードも判別することを特徴とする請求項7記載のコード画像処理装置。
【請求項１２】
前記ブロック特徴量算出部は、ステガノグラフィコード、1次元コード、又は2次元コードの特徴量を算出する順番に優先度をつけることを特徴とする請求項11記載のコード画像処理装置。
【請求項１３】
コード画像を判別するためのコード画像処理プログラムにおいて、
コンピュータを、
画像データから矩形ブロック単位領域を抽出するブロック抽出手段、
前記矩形ブロック単位領域に含まれているコードの特徴量を算出するブロック特徴量算出手段、
前記特徴量から前記矩形ブロック単位領域に含まれているコードの種類を判定するブロック判定手段、
判定したコードの種類に基づいて処理を選択するコード処理選択手段、
として機能させ、
前記ブロック特徴量算出手段は、隣接する矩形ブロック単位領域の濃度の大小関係に基づいて埋め込まれたステガノグラフィコードの特徴量を算出し、
前記ブロック判定手段は、前記ステガノグラフィコードを判別することを特徴とするコード画像処理プログラム。
【請求項１４】
前記ブロック特徴量算出手段は、
前記矩形ブロック単位領域の濃度レベルの分布の極大位置及び極小位置を検出することを特徴とする請求項13記載のコード画像処理プログラム。
【請求項１５】
前記ブロック判定手段は、前記ブロック特徴量算出手段が検出した極大位置及び極小位置が格子状に配置されている場合、
前記矩形ブロック単位領域が、ステガノグラフィコード領域に含まれていると判定することを特徴とする請求項14記載のコード画像処理プログラム。
【請求項１６】
前記ブロック判定手段は、前記ブロック特徴量算出手段が検出した前記矩形ブロック単位領域の極大位置の濃度レベルと極小位置の濃度レベルとの差が所定範囲内に含まれている場合、
前記矩形ブロック単位領域が、ステガノグラフィコード領域に含まれていると判定することを特徴とする請求項14記載のコード画像処理プログラム。
【請求項１７】
前記ブロック特徴量算出手段は、1次元コード、又は2次元コードの特徴量も算出し、
前記ブロック判定手段は、前記1次元コード、又は前記2次元コードも判別することを特徴とする請求項13記載のコード画像処理プログラム。
【請求項１８】
前記ブロック特徴量算出手段は、ステガノグラフィコード、1次元コード、又は2次元コードの特徴量を算出する順番に優先度をつけることを特徴とする請求項17記載のコード画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データに含まれるコード種類の判別・認識方法に関し、特に、1次元コード、2次元コード以外にステガノグラフィコードをも確実に判別する方法に関する。
【背景技術】
【０００２】
近年、1次元コードよりも多くの情報を埋め込むことができる2次元コードの普及が進んでいる。2次元コードでは、コード全体の2次元配列データがなければ認識できないため、読み取り装置にはデジタルカメラやイメージスキャナなどの画像読取装置が用いられている。さらに、1つの読取装置で1次元/2次元コードの両方を自動的に認識する画像読取装置が実用化されており、従来から、コードを読み取るための様々な技術が提案されている。
【０００３】
例えば、画像データを矩形ブロックに区切り、随時走査しながら矩形ブロック単位領域内の画像特徴が所定の条件を満たすか否かを判別することで、矩形ブロック単位領域が特定の種類のコード領域に存在するか否か判別する技術がある(特許文献1)。
【０００４】
また、例えば、目には見えない形で画像にデータを埋め込むステガノグラフィが実用化されている。ステガノグラフィは、画像データを複数の単位領域に分割し、各単位領域の平均濃度などの特徴量の大小関係に基づいてコードを埋め込む技術であり、その画像特徴は、1次元/2次元コードとは異なっている(特許文献2)。
【特許文献１】特開2005-173646号公報
【特許文献２】特開2004-349879号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述した従来の方法では、図1に示すように、1次元コードの画像特徴(ライン間相関が高い、1方向にエッジが必ず存在する)及び2次元コードの画像特徴(縦横2方向にエッジが存在する、黒画素率が50%)を基準にしてコード領域の判別を行っていたため、1次元コード、2次元コードと異なる特徴を有するステガノグラフィコードに対しては、コード領域にあるか否かを判別することができなかった。そのため、ステガノグラフィコードの認識を行う場合は、画像データ中のステガノグラフィコード領域の有無に関わらず特定の領域から認識処理を開始しなければならず、処理時間がかかったり、認識に失敗したりしていた。さらには、ユーザによって明示的にステガノグラフィコード領域を指示する必要があり、使い勝手が非常に悪いものであった。
【０００６】
本発明の目的は、1次元/2次元コード以外のコードの判別・認識も行えるようにすることで、コード領域において確実に認識処理を開始することができるコード画像処理方法及びその装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明は、画像データから矩形ブロック単位領域を抽出するブロック抽出工程と、前記矩形ブロック単位領域に含まれているコードの特徴量を算出するブロック特徴量算出工程と、前記特徴量から前記矩形ブロック単位領域に含まれているコードの種類を判定するブロック判定工程と、判定したコードの種類に基づいて処理を選択するコード処理選択工程とを有し、前記ブロック特徴量算出工程は、隣接する矩形ブロック単位領域の濃度の大小関係に基づいて埋め込まれたステガノグラフィコードの特徴量を算出し、前記ブロック判定工程は、前記ステガノグラフィコードを判別することを特徴とするコード画像処理方法である。これによれば、矩形ブロック単位領域の判別に用いる特徴量として、ステガノグラフィ固有の特徴量を用いることで、矩形ブロック単位領域がステガノグラフィコードの内部にあるか否かを精度良く、かつ高速に判別することが可能となる。
【０００８】
また、本発明は、前記ブロック特徴量算出工程は、前記矩形ブロック単位領域の濃度レベルの分布の極大位置及び極小位置を検出することを特徴とするコード画像処理方法である。これによれば、検出した極大位置と極小位置とを特徴量算出やコードの判別に利用することで、矩形ブロック単位領域がステガノグラフィコードの内部にあるか否かを精度良く、かつ、高速に判別することが可能となる。
【０００９】
また、本発明は、前記ブロック判定工程は、前記ブロック特徴量算出工程が検出した極大位置及び極小位置が格子状に配置されている場合、前記矩形ブロック単位領域が、ステガノグラフィコード領域に含まれていると判定することを特徴とするコード画像処理方法である。これによれば、格子状に配列している場合は、ステガノグラフィコードの内部領域であると判別することができるため、矩形ブロック単位領域がステガノグラフィコードの内部にあるか否かを精度良く、かつ、高速に判別することが可能となる。
【００１０】
また、本発明は、前記ブロック判定工程は、前記ブロック特徴量算出工程が検出した前記矩形ブロック単位領域の極大位置の濃度レベルと極小位置の濃度レベルとの差が所定範囲内に含まれている場合、前記矩形ブロック単位領域が、ステガノグラフィコード領域に含まれていると判定することを特徴とするコード画像処理方法である。これによれば、濃度変化の極大位置と極小位置とに代表されるブロックのうち、1次元方向の隣接した2ブロックペア間の平均濃度を求め、当該差が所定範囲内であるか否かを特徴量として検出することで、矩形ブロック内に含まれるブロックペアのうち、ある割合以上が所定範囲内である場合には、ステガノグラフィコードの内部領域であると判別することが可能となる。
【００１１】
また、本発明は、前記ブロック特徴量算出工程は、1次元コード、又は2次元コードの特徴量も算出し、前記ブロック判定工程は、前記1次元コード、又は前記2次元コードも判別することを特徴とするコード画像処理方法である。これによれば、ステガノグラフィ以外の1次元コード・2次元コードにも他の領域と異なる特徴量や、他のコードとは異なる特徴量が存在するため、当該特徴量を複数組み合わせて色プレーンの選択を行うことで、精度良く1次元コード、2次元コード、ステガノグラフィの含まれる領域の検出及びコード認識を行うことが可能となる。
【００１２】
また、本発明は、前記ブロック特徴量算出工程は、ステガノグラフィコード、1次元コード、又は2次元コードの特徴量を算出する順番に優先度をつけることを特徴とするコード画像処理方法である。これによれば、コードの特徴量を算出する順番に優先度をつけることができ、コード画像処理を効率化することができる。
【発明の効果】
【００１３】
本発明によれば、ステガノグラフィコードを認識する場合でも、コード領域か否かの判別を行うことができ、コード領域において確実に認識処理を開始できるようになるため、処理時間が短縮され、認識処理が向上し、また、ユーザによるコード領域の指示が不要となるため、ユーザの手間を低減し、使い勝手が向上するコード画像処理方法及びその装置を提供することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について図を参照しつつ説明する。
【実施例１】
【００１５】
実施例1では、ステガノグラフィコードの特徴量を算出することで、選択した矩形ブロック単位領域がステガノグラフィコード領域内に含まれているか否かを判定することについて説明する。
【００１６】
まず、本発明におけるコード画像処理方法が適用されるコードの種類としての1次元コード、2次元コード、及びステガノグラフィコードについて、図1を参照しつつ説明する。1次元コードは異なる太さや間隔を持つ平行な直線の組み合わせによるコードである。2次元コードは、データがセル化されて2次元状に配置されたコードであり、1つのセルは一般に複数の画素に対応する。図1に示した2次元コードはクイックレスポンス(QR)コードと呼ばれる2次元コードであり、コード領域の右上、左上、及び左下にコードの位置決め用シンボルが存在する点に特徴があり、この位置決め用シンボルが存在するためにコードを早く認識できる。ステガノグラフィコードは、画像を所定のブロック数に分割し、隣接する2つのブロック(ペアブロク)のそれぞれの濃度等の特徴量を算出し、当該特徴量の大小関係に基づいて埋め込まれるコードである。図1に示すように、入力画像を複数のブロックに分割し、ペアブロックを作成する。ペアブロックにおいて、左側のブロックのブロックの平均濃度(ブロック内の各画素の平均階調)を左側平均濃度データDlとし、右側のブロックの平均濃度を右側平均濃度データDrとする。左側平均濃度データDlが右側平均濃度データDr未満である場合、ペアブロックは、1ビット分のコードとして「0」を表す。一方、左側平均濃度データDlが右側平均濃度データDr以上である場合、ペアブロックは、1ビット分のコードとして「1」を表す。
【００１７】
図2は、本発明におけるコード画像処理方法の原理説明図である。同図において、本発明のコード画像処理方法は、入力画像データを矩形ブロック単位領域で選択するブロック選択工程(ステップS501)と、選択されたブロックの特徴量を算出するブロック特徴量算出工程(ステップS502)と、選択されたブロックが所定の条件を満たしているか否かを判定するブロック判定工程(ステップS503)と、所定の条件を満たすブロック内に含まれるコードを処理するコード処理工程(ステップS504)とを備える。
【００１８】
図3は、第1の実施の形態におけるステガノグラフィコード判定処理の詳細フローチャートである。
【００１９】
ステップS001において、処理対象の画像の中から注目する矩形ブロック単位領域が選択される。ここで、矩形ブロック単位領域は、画像の任意の位置から順番に選択してく。通常は、左上隅から順次走査して選択したり、画像中央から周辺部に向かって走査したりする場合が多い。処理対象の特性に応じて、よりコードが存在する可能性の高い位置から矩形ブロック単位領域を選択する方が、コードを即座に検出でき、処理時間を短縮することができる。
【００２０】
ステップS002において、濃度変化の凹凸の極大位置と極小位置とが検出される。着目画素の濃度が隣接画素の濃度より高く、かつ、隣接画素との差分が所定値以上の場合を極大位置、着目画素の濃度が隣接画素の濃度より低く、かつ、隣接画素との差分が所定値以上の場合を極小位置として検出する。
【００２１】
ステップS003において、矩形ブロック単位領域内における極大・極小位置が、予め指定した数よりも多いか否かが判定される。ここで、ステップS001において選択された矩形ブロック単位領域が、ステガノグラフィコードの内部でない、例えば、余白領域である場合は、極大・極小位置の数が少なくなるため、ステガノグラフィコードの内部でないと即座に判定することができる。極大・極小位置が、予め指定した数よりも多い場合は、処理はステップS004へ移行する。一方、極大・極小位置が、予め指定した数よりも少ない場合は、処理はステップS010へ移行し、選択された矩形ブロック単位領域は、ステガノグラフィコードの内部ではないと判定され、処理は終了する。その後、処理はステップS001へ戻り、次の矩形ブロック単位領域が選択される。
【００２２】
ステップS004において、極大・極小位置の配列が検出される。
【００２３】
ステップS005において、極大・極小位置が格子状に配列しているか否かが判定される。ここで、図4に、ステガノグラフィコード領域の極大位置と極小位置とを検出し、当該検出された極大・極小位置が格子状に配列されている状態を示す。また、比較例として、2次元コード領域の極大位置と極小位置とを検出し、当該検出された極大・極小位置を示す。このように、ステガノグラフィコードでは、矩形ブロックの中央部に対して、濃度に関する処理を行っているため、極大・極小位置が規則的に配列されているのに対し、2次元コードでは、極大・極小位置が不規則に配列されているため、極大・極小位置の配列に着目することで、ステガノグラフィコードと2次元コードとを差別化することができる。極大・極小位置が格子状に配列している場合は、処理はステップS006へ移行する。一方、極大・極小位置が格子状に配列していない場合は、処理はステップS010へ移行し、選択された矩形ブロック単位領域は、ステガノグラフィコードの内部ではないと判定され、処理は終了する。その後、処理はステップS001へ戻り、次の矩形ブロック単位領域が選択される。
【００２４】
ステップS006において、極大位置と極小位置との濃度差を算出する。
【００２５】
ステップS007において、1次元方向の隣接する極大・極小位置のペアに対し、当該位置におけるブロックの平均濃度を求め、当該濃度差が所定範囲内であるか否かが判定される。図5に、ステガノグラフィコード領域の極大位置と極小位置との濃度レベル差を示す。また、比較例として、2次元コード領域の極大位置と極小位置位置との濃度レベル差を示す。ステガノグラフィコードでは、画像の劣化を防止するため、極大・極小位置ペアの濃度レベル差が所定範囲内となっているのに対し、2次元コードでは、極大・極小ペアの濃度レベル差が所定範囲内となっていない。そこで、濃度レベル差に着目することで、ステガノグラフィコードと2次元コードとを差別化することができる。濃度差が所定範囲内である場合は、処理はステップS008へ移行する。一方、濃度差が所定範囲内でない場合は、処理はステップS010へ移行し、選択された矩形ブロック単位領域は、ステガノグラフィコードの内部ではないと判定され、処理は終了する。その後、処理はステップS001へ戻り、次の矩形ブロック単位領域が選択される。
【００２６】
ステップS008において、矩形ブロック単位領域がステガノグラフィコード領域にあると判定される。
【００２７】
ステップS009において、ステガノグラフィコードの認識処理を行う。処理は終了する。
【実施例２】
【００２８】
実施例1では、選択された矩形ブロック単位領域がステガノグラフィコード領域に含まれているか否かのみを判定することについて説明したが、矩形ブロック単位領域がステガノグラフィコードだけでなく、2次元コード、1次元コード領域に含まれているか否かをも判定することができる構成にすることも考えられる。
【００２９】
図6、7は、第2の実施の形態におけるコード判定処理の詳細フローチャートである。
【００３０】
ステップS101において、処理対象の画像の中から注目する矩形ブロック単位領域が選択される。
【００３１】
ステップS102において、この矩形ブロック単位領域に対して、ステガノグラフィの特徴量が算出される。このステガノグラフィの特徴量算出については、実施例1において説明した通りである。
【００３２】
ステップS103において、2次元コードの特徴量が算出される。この2次元コードの特徴量算出については、図10で詳細に説明する。
【００３３】
ステップS104において、1次元コードの特徴量が算出される。この1次元コードの特徴量算出については、図11で詳細に説明する。
【００３４】
ステップS105から、それぞれの特徴量より、矩形ブロック単位領域に、ステガノグラフィコード、2次元コード、1次元コードのうち、いずれのコードが含まれているかの判別が開始される。
【００３５】
ステップS106において、矩形ブロック単位領域にステガノグラフィコードが含まれているか否かが判定される。ステガノグラフィコードが含まれている場合は、処理はステップS109へ移行し、ステガノグラフィコード認識を行い、処理はステップS112へ移行する。一方、ステガノグラフィコードが含まれていない場合は、処理はステップS107へ移行する。
【００３６】
ステップS107において、矩形ブロック単位領域に2次元コードが含まれているか否かが判定される。2次元コードが含まれている場合は、処理はステップS110へ移行し、2次元コード認識を行い、処理はステップS112へ移行する。一方、2次元コードが含まれていない場合は、処理はステップS108へ移行する。
【００３７】
ステップS108において、矩形ブロック単位領域に1次元コードが含まれているか否かが判定される。1次元コードが含まれている場合は、処理はステップS111へ移行し、1次元コード認識を行い、処理はステップS112へ移行する。一方、1次元コードが含まれていない場合は、いずれのコードも含まれていないとして、処理はステップS113へ移行する。
【００３８】
ステップS112において、認識処理が行われる。認識が成功した場合は、コードを出力して処理は終了する。一方、認識が失敗した場合は、処理はステップS113へ移行する。ここで、認識が失敗した場合とは、コードの一部がボケている、影で見えなくなっているような問題があり、認証を行えなかった場合のことである。
【００３９】
ステップS113において、まだ使用していない矩形ブロックがある場合には、当該矩形ブロックに対して同様の処理を繰り返し行うため、処理はステップS101へ戻る。
【００４０】
以下、図6のステップS103における2次元コード特徴量算出、ステップS104における1次元コード特徴量算出について説明する。
【００４１】
図1に示したように1次元コード、及び2次元コードは、共に白、黒のようにコントラストの差が大きい2つの色を用いて印刷されている。そのため、画素の階調値のばらつき(分散)、又は標準偏差が大きくなるという特徴がある。これに対して、文字が印刷されている領域では、文字の色が下地に対して占める面積の比率が小さくなり、画素の階調値のばらつきも小さくなる。また、写真などが印刷されている領域では、画素の階調値が任意の値をとり、階調値のばらつきは小さくなる。この特徴を利用して、ブロック内の画素の階調値のばらつきが所定の範囲内となるブロックを検出することによって1次元コード、及び2次元コードが含まれる領域を検出することが可能となる。特に、2次元コードの領域内では、白と黒の色の面積の比率が所定の範囲、例えば50%±10%以内となるようにコードが作成されている。そこで、ブロック内の白黒画素の比率が所定の範囲内になるブロックを検出することによって、特に、2次元コードが含まれる領域のみを検出することが可能となる。
【００４２】
図8は、エッジ数による判定方法の説明図である。1次元コードでは、平行な直線の組み合わせによってデータが表現されるため、バーに垂直なライン上で画素を取り出した場合には、そのラインがコード内部のどこにあっても、ライン上の画素の階調値が急変する点（エッジ）がラインに直交するバーの数に対応して存在することになるが、バーに平行なライン上の画素を取り出す場合にはエッジが存在しないという特徴がある。一方、2次元コードでは、2次元に配置された明暗ドット（セル）の組み合わせによってデータが表現され、コード内部ではできるだけ明暗が一様になるようになっているため、水平方向のライン上の画素を取り出した場合にも、また垂直方向のライン上の画素を取り出した場合にも、画素の階調値が急変する点としてのエッジの数があまり変わらないという特徴がある。そこで、ブロック内の水平/垂直ライン上のエッジ数が所定の範囲内となるブロックを検出することによって、精度良く1次元/2次元コードが含まれる領域のみを検出することが可能となり、また1次元コードと2次元コードとを容易に区別することができる。
【００４３】
図9は、ライン間相関によるコードの判定方法の説明図である。ライン間相関とは、コードの中から平行な2直線を切り出し、当該2直線の画素値から算出した相互相関係数のことである。1次元コードでは、バーに対して垂直方向に平行な2直線を切り出した場合、当該2直線の画素値の変化のパターンは同一になるため、相互相関係数は大きくなるという特徴があり、バーに対して平行方向に平行な2直線を切り出した場合、当該2直線の画素値の変化のパターンは異なってくるため、相互相関係数は小さくなるという特徴がある。これに対して、2次元コードでは、水平な2直線間でも、あるいは垂直な2直線間でも、当該2直線の画素の変化のパターンは異なってくるため、相互相関の値はともに小さくなるという特徴がある。そこで、ブロック内の水平ライン間、あるいは垂直ライン間の相関の値が所定の範囲内となるブロックを検出することによって、1次元/2次元コードが含まれる領域を精度良く検出することが可能となると共に、1次元コードと2次元コードとを容易に区別することが可能となる。
【００４４】
図10は、図8のステップS103における2次元コード判定処理の詳細フローチャートである。同図において処理が開始されると、まず、ステップS301でブロック内の画素の階調値に対する標準偏差が算出される。
【００４５】
ステップS302において、ステップS301において算出された画素の階調値の標準偏差が所定の値を超えているか否かが判定される。所定の値を超えている場合は、処理はステップS303へ移行する。一方、所定の値を超えていない場合は、処理はステップS309へ移行し、当該領域は2次元コード領域ではないと判定され、処理は終了する。
【００４６】
ステップS303において、水平方向エッジ数を算出する。
【００４７】
ステップS304において、垂直方向エッジ数を算出する。
【００４８】
ステップS305において、ステップS303において算出された水平方向エッジ数、ステップS304において算出された垂直方向エッジ数のいずれか一方の値が所定の最小値を超えているか否かが判定される。所定の最小値を超えている場合は、処理はステップS306へ移行する。一方、所定の最小値を超えていない場合は、処理はステップS309へ移行し、当該領域は2次元コード領域ではないと判定され、処理は終了する。
【００４９】
ステップS306において、黒画素率が算出される。
【００５０】
ステップS307において、ステップS306において算出された黒画素率が所定の最小値以上であり、かつ、所定の最大値未満であるか否かが判定される。この条件が成立する場合は、処理はステップS308へ移行する。一方、この条件が成立しない場合は、処理はステップS309へ移行し、当該領域は2次元コード領域ではないと判定され、処理は終了する。
【００５１】
ステップS308において、当該領域は2次元コードと判定される。処理は終了する。
【００５２】
図11は、図8のステップS104における1次元コード判定処理の詳細フローチャートである。同図において処理が開始されると、まず、ステップS401でブロック内の画素の階調値に対する標準偏差が算出される。
【００５３】
ステップS402において、ステップS401において算出された画素の階調値の標準偏差が所定の値を超えているか否かが判定される。所定の値を超えている場合は、処理はステップS402へ移行する。一方、標準偏差が所定の値を超えていない場合は、処理はステップS410へ移行し、当該領域は1次元コード領域ではないと判定され、処理は終了する。
【００５４】
ステップS403において、水平方向エッジ数が算出される。
【００５５】
ステップS404において、垂直方向エッジ数が算出される。
【００５６】
ステップS405において、水平方向エッジ数、または垂直方向エッジ数の少なくともいずれか1つの値が所定の最小値を超えているか否かが判定される。この条件を満たす場合は、処理はステップS406へ移行する。一方、この条件を満たさない場合は、処理はステップS410へ移行し、当該領域は1次元コード領域ではないとして処理は終了する。
【００５７】
ステップS406において、水平ライン間相関が算出される。
【００５８】
ステップS407において、垂直ライン間相関が算出される。
【００５９】
ステップS408において、水平ライン間相関、又は垂直ライン間相関の少なくともいずれか1つの値が所定の最小値を超えているか否かが判定される。この条件を満たしている場合は、処理はステップS409へ移行する。一方、この条件を満たさない場合は、処理はステップS410へ移行し、当該領域は1次元コード領域ではないとして処理は終了する。
【００６０】
ステップS409において、当該領域は1次元コードと判定される。処理は終了する。
【実施例３】
【００６１】
実施例2では、ステガノグラフィコード、2次元コード、1次元コードの特徴量を算出した後に、ブロック内コード判別を行い、認識処理を行ったが、特徴量を算出した直後に、認識処理を行う構成にすることも考えられる。また、特徴量を算出するコードに優先順位を付ける構成にすることも考えられる。
【００６２】
図12、13は、第3の実施の形態におけるコード判定処理の詳細フローチャートである。実施例3では、ステガノグラフィコードの認識を最優先している。なお、2次元コード、1次元コードを最優先にしても良い。
【００６３】
ステップS201において、処理対象の中から注目する矩形ブロック単位領域が選択される。
【００６４】
ステップS202において、この矩形ブロック単位領域に対して、ステガノグラフィの特徴量が算出される。このステガノグラフィの特徴量算出については、実施例1で説明した通りである。
【００６５】
ステップS203において、矩形ブロック単位領域にステガノグラフィコードが含まれているか否かが判定される。ステガノグラフィコードが含まれている場合は、処理はステップS208へ移行し、ステガノグラフィコード認識を行い、処理はステップS211へ移行する。一方、ステガノグラフィコードが含まれていない場合は、処理はステップS204へ移行する。
【００６６】
ステップS204において、2次元コードの特徴量が算出される。この2次元コードの特徴量算出については、実施例2で説明した通りである。
【００６７】
ステップS205において、矩形ブロック単位領域に2次元コードが含まれているか否かが判定される。2次元コードが含まれている場合は、処理はステップS209へ移行し、2次元コード認識を行い、処理はステップS211へ移行する。一方、2次元コードが含まれていない場合は、処理はステップS206へ移行する。
【００６８】
ステップS206において、1次元コードの特徴量を算出する。この1次元コードの特徴量算出については、実施例2において説明した通りである。
【００６９】
ステップS207において、矩形ブロック単位領域に1次元コードが含まれているか否かが判定される。1次元コードが含まれている場合は、処理はステップS210へ移行し、1次元コード認識を行い、処理はステップS211へ移行する。一方、1次元コードが含まれていない場合は、処理はステップS212へ移行する。
【００７０】
ステップS211において、認識処理を行う。認識に成功した場合は、コードを出力して処理は終了する。一方、認識に失敗した場合は、処理はステップS212へ移行する。
【００７１】
ステップS212において、まだ使用していない矩形ブロックがあるか否かが判定される。未使用ブロックがある場合には、当該ブロックに対して同様の処理を繰り返し行うため、処理はステップS201に戻る。一方、未使用ブロックがない場合は、処理は終了する。
【００７２】
以上において、本発明のコード画像処理方法について、その詳細を説明したが、この方法を実行するコード画像処理装置は、携帯端末装置や一般的なコンピュータシステムをその主要構成部として構成することが可能である。図14はそのようなコンピュータシステム、すなわちハードウェア環境の構成ブロック図である。
【００７３】
図14において、コンピュータシステムは、CPU1、ROM2、RAM3、通信インタフェース4、記憶装置5、画像読取部6、可搬型記憶媒体11の読取装置7、及びこれらの全てが接続されたバス8によって構成されている。記憶装置5としては、ハードディスク、磁気ディスクなど様々な形式の記憶装置を使用することができ、ROM2、又は記憶装置5に格納されたプログラムがCPU1によって実行されることにより、本実施形態におけるステガノグラフィコードのコード領域検出などが可能となる。このようなプログラムは、情報提供者側から通信インタフェース4を介して、例えば記憶装置5に格納されることも、また市販され、流通している可搬型記憶媒体11に格納され、読取装置7にセットされて、CPU1によって実行されることも可能である。可搬型記憶媒体11としては、CD-ROM、光ディスク、DVDなど様々な形式の記憶媒体を使用することができる。このような記憶媒体に格納されたプログラムが読取装置7によって読み取られることにより、本実施形態におけるステガノグラフィコードのコード画像処理を行うことが可能になり、画像読取部6から画像を読み取ることでコード処理が実現される。また、画像読取部を有し、当該プログラムが格納された携帯端末装置を用いても、本実施形態におけるコード画像処理を実行することができる。
【図面の簡単な説明】
【００７４】
【図１】1次元コード、2次元コードとステガノグラフィコードの例を示す図である。
【図２】本発明のコード画像処理方法の原理的な図である。
【図３】第1の実施の形態における全体フローチャートである。
【図４】ステガノグラフィの特徴量を示す図(その1)である。
【図５】ステガノグラフィの特徴量を示す図(その2)である。
【図６】第2の実施の形態における全体フローチャート(その1)である。
【図７】第2の実施の形態における全体フローチャート(その2)である。
【図８】コード内のエッジ数の判定方法の説明図である。
【図９】コード内の2本のライン間の相関判定方法の説明図である。
【図１０】2次元コード判定処理の詳細フローチャートである。
【図１１】1次元コード判定処理の詳細フローチャートである。
【図１２】第3の実施の形態における全体フローチャート(その1)である。
【図１３】第3の実施の形態における全体フローチャート(その2)である。
【図１４】本発明におけるプログラムのコンピュータへのローディングを説明する図である。
【符号の説明】
【００７５】
1 CPU、2 ROM、3 RAM、4 通信インタフェース、5 記憶装置、6 画像読取部、7 可搬型記憶媒体の読取装置、8 バス、11 可搬記憶媒体
【図１】
2008020988.tif 000003
【図２】
2008020988.tif 000004
【図３】
2008020988.tif 000005
【図４】
2008020988.tif 000006
【図５】
2008020988.tif 000007
【図６】
2008020988.tif 000008
【図７】
2008020988.tif 000009
【図８】
2008020988.tif 000010
【図９】
2008020988.tif 000011
【図１０】
2008020988.tif 000012
【図１１】
2008020988.tif 000013
【図１２】
2008020988.tif 000014
【図１３】
2008020988.tif 000015
【図１４】
2008020988.tif 000016