(57)【特許請求の範囲】
【請求項１】
所定の画像を表すディジタル画像データに基づいて同画像内に特定の図形が存在するか否かをコンピュータにて検出する画像検出プログラムを記録した媒体であって、
上記図形に部分的に合致する複数のテンプレートデータと、各テンプレートの相対位置情報とを有し、一のテンプレートデータを利用して上記画像データ内で移動させながらテンプレートマッチングを行う第一のテンプレートマッチング機能と、
この第一のテンプレートマッチング機能でヒットした場合にその位置情報と上記相対位置情報に基づいて上記複数のテンプレートデータにおける互いに離れた他のテンプレートデータの初期位置を設定しつつ所定範囲内で順次テンプレートマッチングを行い、そのテンプレートマッチングの結果に基づいて上記図形の有無を判断する第二のテンプレートマッチング機能と、
上記初期位置の設定にあたりそれまでのテンプレートデータの検出位置と初期位置とのずれに基づいて当該初期位置を修正するものであり、当該初期位置を修正するにあたりテンプレートデータの検出位置と初期位置とのずれに対してテンプレートデータごとに反映される際の重み付けを相対位置情報におけるテンプレート間の相対距離が離れているほど大きく設定する初期位置調整機能とをコンピュータに実行させることを特徴とする画像検出プログラムを記録した媒体。
【請求項２】
上記請求項１に記載の画像検出プログラムを記録した媒体において、上記図形は、略円形であり、上記第一のテンプレートマッチング機能では、同図形をマスク可能な幅を有する円弧形状のマスキングテンプレートでテンプレートマッチングを行い、ヒットした場合に当該円弧形状のマスキングプレートでマスクされた円弧形状部分内において上記図形を異なる角度に回転させた形状の複数のテンプレートデータでテンプレートマッチングを行い、いずれかがヒットするか否かを判断することを特徴とする画像検出プログラムを記録した媒体。
【請求項３】
上記請求項１または請求項２のいずれかに記載の画像検出プログラムを記録した媒体において、上記第二のテンプレートマッチング機能では、設定された初期位置を中心として所定範囲でテンプレートを移動させ、各場所においてテンプレートマッチングを行うことを特徴とする画像検出プログラムを記録した媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像検出プログラムを記録した媒体に関する。
【０００２】
【従来の技術】
従来、この種の画像検出装置では、検出すべき図形をそのまま利用していた。例えば、スキャナで画像データを取り込み、予め取り込んでおいた図形の画像データを利用してテンプレートマッチングを行う。そして、テンプレートマッチングで得られるスコアをしきい値と比較し、スコアがしきい値よりも大きい場合にヒットしたと判断している。
【０００３】
【発明が解決しようとする課題】
上述した従来の画像検出装置においては、図形全体の画像データを利用するので、図形が大きくなるとハードウェア回路やソフトウェア処理で必要な資源が大きくなる。特に、処理速度を向上させると資源の増加は指数的に増加してしまう。
本発明は、上記課題にかんがみてなされたもので、より簡易な構成で処理速度も速めることが可能な画像検出プログラムを記録した媒体の提供を目的とする。
【０００４】
【課題を解決するための手段】
上記目的を達成するため、請求項１にかかる発明は、所定の画像を表すディジタル画像データに基づいて同画像内に特定の図形が存在するか否かをコンピュータにて検出する画像検出プログラムを記録した媒体であって、上記図形に部分的に合致する複数のテンプレートデータと、各テンプレートの相対位置情報とを有し、一のテンプレートデータを利用して上記画像データ内で移動させながらテンプレートマッチングを行う第一のテンプレートマッチング機能と、この第一のテンプレートマッチング機能でヒットした場合にその位置情報と上記相対位置情報に基づいて上記複数のテンプレートデータにおける互いに離れた他のテンプレートデータの初期位置を設定しつつ所定範囲内で順次テンプレートマッチングを行い、そのテンプレートマッチングの結果に基づいて上記図形の有無を判断する第二のテンプレートマッチング機能と、上記初期位置の設定にあたりそれまでのテンプレートデータの検出位置と初期位置とのずれに基づいて当該初期位置を修正するものであり、当該初期位置を修正するにあたりテンプレートデータの検出位置と初期位置とのずれに対してテンプレートデータごとに反映される際の重み付けを相対位置情報におけるテンプレート間の相対距離が離れているほど大きく設定する初期位置調整機能とをコンピュータに実行させる構成としてある。また、この初期位置調整機能は第二のテンプレートマッチング機能の一部として機能させても良い。
【０００５】
上記のように構成した請求項１にかかる発明においては、上記図形に部分的に合致する複数のテンプレートデータと、各テンプレートの相対位置情報とを有し、一のテンプレートデータを利用して上記画像データ内で移動させながらテンプレートマッチングを行うとともに、ヒットした場合にその位置情報と上記相対位置情報に基づいて上記複数のテンプレートデータにおける互いに離れた他のテンプレートデータの初期位置を設定しつつ所定範囲内で順次テンプレートマッチングを行い、そのテンプレートマッチングの結果に基づいて上記図形の有無を判断する。この際、上記初期位置の設定にあたりそれまでのテンプレートデータの検出位置と初期位置とのずれに基づいて当該初期位置を修正する。
図形の一部でテンプレートマッチングを行うと、自ずからその一部形状だけを含む他の画像であっても、ヒットすることが起こりやすくなる。むろん、他の部位についてもテンプレートマッチングを行うので、最終的には図形と一致しないものを区別できる。この場合、上記のように構成した請求項１にかかる発明においては、第一のテンプレートマッチングでたまたま図形以外のものでヒットした場合でも、互いに離れたテンプレートについて順次テンプレートマッチングに利用することによって早期に誤りを検出できるようになる。
例えば、画像データに半円が含まれるとして円弧のテンプレートを利用すれば第一のテンプレートマッチング機能でヒットするが、ここで正反対の位置にあるテンプレートを利用するとヒットしないのですぐに判別できる。もし、隣接するテンプレートを利用するとすると、２〜３回ヒットした後で初めてヒットしなくなり、判別できるまで時間がかかることになる。
また、それまでのテンプレートデータの検出位置と初期位置とのずれを利用して初期位置を設定することにより、以降のテンプレートマッチングで早期にヒットさせることができるようになる。
また、各テンプレートの相対位置などに応じて初期位置を修正する際の重み付けを変えることができ、修正をより正確に行えるようになる。
【０００６】
また、好適には、上記テンプレートデータは円弧を表すものである構成としても良い。
上記のように構成した発明においては、図形が円であることを前提にテンプレートを円弧の形状としてあり、このようにすると入力画像の回転角度が不明な場合でも、その回転角度と無関係に検出を行えることができる。
【０００９】
また、好適には、上記第二のテンプレートマッチング機能では、設定された初期位置を中心として所定範囲でテンプレートを移動させ、各場所においてテンプレートマッチングを行う構成としても良い。
上記のように構成した発明においては、画像データの中に図形の一部を発見できたときに、本来の正確な相対位置情報に基づく位置でテンプレートを利用したテンプレートマッチングをしても、当該画像データの取り込み特性によってはヒットしないことがある。このため、設定された初期位置を中心として所定範囲でずらしながらテンプレートマッチングを行うことにより、正しく検出することができるようになる。
【００１２】
また、好適には、上記図形は、略円形であり、上記第一のテンプレートマッチング機能では、同図形をマスク可能な幅を有する円弧形状のマスキングテンプレートでテンプレートマッチングを行い、ヒットした場合に当該円弧形状のマスキングプレートでマスクされた円弧形状部分内において上記図形を異なる角度に回転させた形状の複数のテンプレートデータでテンプレートマッチングを行い、いずれかがヒットするか否かを判断する構成としても良い。
【００１３】
略円形であっても、縁が波打っているというように真円ではない図形もある。この場合、上記のように構成した発明においては、同図形をマスク可能な幅を有する円弧形状のマスキングテンプレートを使用して第一段階のテンプレートマッチングを行う。このマスキングテンプレートはマスキングされている部分以外のテンプレートマッチングを行う。このようにすれば、波打っている形状であっても、略円形部分以外ではヒットする。そして、図形が回転しているとしても検出できる。ヒットした場合には、円弧形状部分のテンプレートデータでテンプレートマッチングする。このテンプレートは上記図形を異なる角度に回転させた形状に対応して複数用意してあるため、図形の回転角度に関わらず検出できる。また、円弧状部分に限っており、面積が小さいのでテンプレートマッチングの負荷は小さい。
【００１４】
また、好適には、上記第一のテンプレートマッチング機能と上記第二のテンプレートマッチング機能のいずれかまたは両方では、上記テンプレートデータの一部についてテンプレートマッチングを行い、ヒットした場合に残りの部分のテンプレートデータを合わせてテンプレートマッチングを行う構成としても良い。
【００１５】
上記のように構成した発明においては、テンプレートマッチングを二段階で行う。すなわち、テンプレートデータの一部についてテンプレートマッチングを行い、ヒットした場合に残りの部分のテンプレートデータを合わせてテンプレートマッチングを行なう。二段階とすることによりテンプレートマッチングのハードウェア回路やソフトウェア負荷を多く必要としない。
むろん、このような記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。また、一次複製品、二次複製品などの複製段階については全く問う余地無く同等である。
【００１６】
さらに、一部がソフトウェアであって、一部がハードウェアで実現されている場合においても発明の思想において全く異なるものではなく、一部を記録媒体上に記憶しておいて必要に応じて適宜読み込まれるような形態のものとしてあってもよい。むろん、このプログラム自体に発明の思想が反映されていることはいうまでもない。
このように、図形に部分的に合致する複数のテンプレートデータを利用して順次テンプレートマッチングする手法は実体のあるコンピュータにおいて実現され、その意味で本発明をそのようなコンピュータを含んだ実体のある装置としても適用可能であることは容易に理解できる。このため、好適には、所定の画像を表すディジタル画像データに基づいて同画像内に特定の図形が存在するか否かを検出する画像検出装置であって、上記図形に部分的に合致する複数のテンプレートデータと、各テンプレートの相対位置情報とを有し、一のテンプレートデータを利用して上記画像データ内で移動させながらテンプレートマッチングを行う第一のテンプレートマッチング手段と、この第一のテンプレートマッチング手段でヒットした場合にその位置情報と上記相対位置情報に基づいて上記複数のテンプレートデータにおける互いに離れた他のテンプレートデータの初期位置を設定しつつ所定範囲内で順次テンプレートマッチングを行い、そのテンプレートマッチングの結果に基づいて上記図形の有無を判断する第二のテンプレートマッチング手段と、上記初期位置の設定にあたりそれまでのテンプレートデータの検出位置と初期位置とのずれに基づいて当該初期位置を修正するものであり、当該初期位置を修正するにあたりテンプレートデータの検出位置と初期位置とのずれに対してテンプレートデータごとに反映される際の重み付けを相対位置情報におけるテンプレート間の相対距離が離れているほど大きく設定する初期位置調整手段とを具備する構成としても良い。
【００１７】
すなわち、コンピュータで制御される実体のある装置としても有効であることに相違はない。むろん、このような画像検出装置は単独で実施される場合もあるし、ある機器に組み込まれた状態で他の方法とともに実施されることもあるなど、発明の思想としてはこれに限らず、各種の態様を含むものであって、適宜、変更可能である。
また、このような画像検出プログラムを記録した媒体はかかる制御に従って処理を進めていく上で、その根底にはその手順に発明が存在するということは当然であり、方法としても適用可能であることは容易に理解できる。このため、、好適には、所定の画像を表すディジタル画像データに基づいて同画像内に特定の図形が存在するか否かを検出する画像検出方法であって、上記図形に部分的に合致する複数のテンプレートデータと、各テンプレートの相対位置情報とを有し、一のテンプレートデータを利用して上記画像データ内で移動させながらテンプレートマッチングを行う第一のテンプレートマッチング工程と、この第一のテンプレートマッチング工程でヒットした場合にその位置情報と上記相対位置情報に基づいて上記複数のテンプレートデータにおける互いに離れた他のテンプレートデータの初期位置を設定しつつ所定範囲内で順次テンプレートマッチングを行い、そのテンプレートマッチングの結果に基づいて上記図形の有無を判断する第二のテンプレートマッチング工程と、上記初期位置の設定にあたりそれまでのテンプレートデータの検出位置と初期位置とのずれに基づいて当該初期位置を修正するものであり、当該初期位置を修正するにあたりテンプレートデータの検出位置と初期位置とのずれに対してテンプレートデータごとに反映される際の重み付けを相対位置情報におけるテンプレート間の相対距離が離れているほど大きく設定する初期位置調整工程とを具備する構成としても良い。
【００１８】
すなわち、必ずしも実体のある媒体などに限らず、その方法としても有効であることに相違はない。
【００１９】
【発明の効果】
以上説明したように本発明は、図形に部分的に合致する複数のテンプレートデータと、各テンプレートの相対位置情報とを利用して、順次部分的なテンプレートマッチングを繰り返すことにより、使用する資源を少なくしたまま正確なテンプレートマッチングを行うことが可能な画像検出プログラムを記録した媒体を提供することができる。
また、図形以外のものを誤認識しそうになった場合でも早期に誤りを判別できるようになる。
また、テンプレートマッチングの結果を次のテンプレートの初期位置にフィードバックすることにより、早期にヒットしやすくなる。
また、位置修正のフィードバックをより細やかに行うことができ、早期にヒットしやすくなる。
【００２０】
さらに、本発明によれば、円弧を探すため、図形の回転角度にかかわらず検出が可能となる。
さらに、本発明によれば、テンプレートを微動させることによって読み取り誤差などがあっても正しくテンプレートマッチングを行うことができる。
【００２１】
さらに、本発明によれば、略円形の図形について大きな資源を要することなく比較的簡易に検出することができる。
【００２２】
さらに、本発明によれば、より省資源で図形の検出を行なうことができる。
さらに、本発明によれば、同様の効果を奏する画像検出装置を提供することができる。
さらに、本発明によれば、同様の効果を奏する画像検出方法を提供することができる。
【００２３】
【発明の実施の形態】
以下、図面にもとづいて本発明の実施形態を説明する。
図１は、本発明の一実施形態にかかる画像認識プログラムを実行するコピーシステムを概略ブロック図により示している。
【００２４】
本コピーシステム１０は、画像をスキャンしてディジタル画像データに変換するスキャナ１１と、このディジタル画像データを取得して印刷用ディジタル画像データに変換するコピーサーバ１２と、この印刷用ディジタル画像データを入力して印刷するプリンタ１３とを備えている。
コピーサーバ１２は、スキャナ１１から出力されるディジタル画像データを一時的に蓄える画像バッファ１２ａと、この画像バッファ１２ａに蓄えられたディジタル画像データに基づいて印刷に適した画像となるような所定の画像処理を実行するとともに、色変換と解像度変換とを行ってプリンタ１３を駆動可能な印刷用ディジタル画像データに変換するための画像処理部１２ｂを備えている。この画像処理部１２ｂは、コピーサーバ１２内の特定ロゴマーク検出部１２ｃからの実行制御信号を入力して上記処理を実施する。
【００２５】
特定ロゴマーク検出部１２ｃは、上記画像バッファ１２ａに一時的に蓄えられたディジタル画像データを処理対象として当該画像の中に所定のロゴマーク（図形）が存在するか否かを判断ものである。そして、所定のロゴマークがないと検出された場合に上記実行制御信号を出力する。
なお、本実施形態においては、所定のロゴマークを検出した場合にコピーをしない構成としているが、用途に応じて適宜変更可能であり、所定のロゴマークを検出した場合にだけコピーしたり、検出したロゴマークに応じてコピーの機能を変化させるというような用途とすることも当然に可能である。むろん、コピーの制御に利用するだけでなく、一般的な画像認識として利用することも可能である。
【００２６】
図２は、コピーサーバ１２のハードウェア構成を概略ブロック図により示している。演算処理を実行するＣＰＵ１２ｄと、ワークエリアやバッファとして利用されるＲＡＭ１２ｅと、テンプレートやテーブルやプログラムなどが記録されたＲＯＭ１２ｆと、外部との信号処理を実行するＩ／Ｏ１２ｇと、所定の操作を入力させるための操作パネル１２ｈと、各種の表示を実行する表示器１２ｊとを備えている。
【００２７】
すなわち、画像バッファ１２ａはＲＡＭ１２ｅ内にて構成され、画像処理部１２ｂや特定ロゴマーク検出部１２ｃはＣＰＵ１２ｄがＲＯＭ１２ｆに記憶された所定のテンプレートやテーブルを参照してプログラムを実行することにより構成される。なお、本実施形態ではソフトウェア処理で実現するようにしているが、ＡＳＩＣなどのハードウェアロジック回路で実現することも可能である。むろん、テンプレートやテーブルなどはハードディスクやＲＡＭなどに記憶するようにしても良い。
【００２８】
図３はＣＰＵ１２ｄが実行する画像認識プログラムの概略をフローチャートにより示している。なお、本実施形態においては、特定ロゴマーク検出部１２ｃの機能について主に説明する。
ステップ１００では画像データ取り込み・変換処理を実行する。スキャナ１１が出力するディジタル画像データは画像をドットマトリクス状の画素に分割しつつ、ＲＧＢ三原色について各８ビットを割り当てた各色２５６階調で各画素を表現するものとなっており、本実施形態のようなロゴマークの有無の検出については利用しずらい。このため、同所定のロゴマークの色を基準として二値化することにより処理の単純化を図ることにする。
【００２９】
図４はこの画像データ取り込み・変換処理の内容をより詳しく示している。スキャナ１１に対して画像の読み取りを制御する処理を実行しても構わないが、本実施形態においては画像バッファ１２ａ内に既に蓄えられている画像データを読み込み、二値化する処理を当該画像データ取り込み・変換処理と呼ぶことにする。
ステップ２００では、各画素毎に所定の色空間内に入っているか否かで二値化する。図５はＲＧＢ表色空間を模式的に示しており、ＲＧＢの三軸を各２５６階調で座標化したとき、特定のロゴマークは図中の卵状の空間１３ａで表現されるとする。この場合、具体的に同卵状の空間１３ａに入るか否かを判断することも可能であるが、処理が複雑になる。このため、簡易的に上記空間１３ａの外郭に接する直方体１３ｂに含まれるか否かで二値化することにする。具体的には、対象画素の画素データが（Ｒｔ，Ｇｔ，Ｂｔ）と表されるときに、
Ｒ１＜Ｒｔ＜Ｒ２
Ｇ１＜Ｇｔ＜Ｇ２
Ｂ１＜Ｂｔ＜Ｂ２
なる条件が成立すれば含まれることにする。この場合、含まれれば”１”となり、含まれなければ”０”となる。むろん、この二値化の処理が二値化処理機能に相当する。また、精度を上げるために本来の卵状の空間１３ａで判断するようにしても良い。
【００３０】
本実施形態においては、ＲＧＢで表現される色に基づいて判定しているが、色度を演算して求め、この色度で判断するようにしても良い。色度の場合は明度の影響を受けにくいため、判定の精度を向上させることができる。この他にも各種の色空間を利用するようにしても良い。
次のステップ２０２では後述するテンプレートマッチングで利用するテンプレートの解像度とスキャナ１１が出力する画像データの解像度とが一致するか否かを判断する。むろん、スキャナ１１に読み取りを指示する時点でテンプレートの解像度に一致させることが可能であればかかる解像度で読み取りを実行させておいても良い。
【００３１】
解像度が一致しない場合はステップ２０４にて解像度変換を行う。図６は解像度変換の処理をフローチャートにより示している。ステップ３００では変換後の画像サイズを決定する。変換式は、テンプレートの解像度をＫｔ、スキャナ１１の解像度をＫｓ、画像ファイルの横画素数をＮｘと縦画素数をＮｙとすると、生成する画像の横画素数Ｔｘと縦画素数Ｔｙは、
Ｔｘ＝Ｎｘ＊（Ｋｔ／Ｋｓ）
Ｔｙ＝Ｎｙ＊（Ｋｔ／Ｋｓ）
となる。例えば、スキャナ１１の解像度が３００ドット／インチで、テンプレートの解像度が１５０ドット／インチであるとし、元の画像サイズが１２００ドット×６００ドットであるとすると、
Ｔｘ＝１２００＊（１５０／３００）＝６００
Ｔｙ＝６００＊（１５０／３００）  ＝３００
となる。
【００３２】
ステップ３０２以下では、生成する画像サイズに合わせて各画素を示すポインタを設定し、ループ処理で各画素の値を判定していく。ステップ３０２ではポインタを初期化する。ここでは、横方向を主走査方向とし、縦方向を副走査方向としてポインタを更新していくものとする。
ステップ３０４ではポインタで指定される画素と、元の画像サイズの画素との対応範囲を特定する。図７は１／４に縮小する例を示しているが、ポインタで示される画素は元の画像サイズでは斜線の升目が該当範囲になる。
【００３３】
この場合、ステップ３０６で該当範囲に一つでも”１”の画素があればステップ３０８に示すように変換画素として”１”をセットし、一つも”１”の画素がない場合には変換画素として”１”をセットしない。すなわち、画像を縮小するとしてもできるだけ”１”の画素が残るようにしている。これに対して、図８は４倍に拡大する例を示しており、白丸と黒丸が新たに生成される画素を示し、太線で区分けされる升目が元の画像サイズの画素を示している。この場合、新たに生成される複数画素の該当範囲が大きなサイズの元の画像サイズの一画素に含まれる。従って、元の画像サイズの画素として”１”を設定されていれば、この画素に含まれるいずれの画素についても”１”が設定されることになる。以上のような処理により、できるだけ”１”と設定した画素の情報が消えてしまわないようにし、認識率の向上を図っている。
【００３４】
ステップ３１０ではポインタを主走査方向と副走査方向に更新していき、ステップ３１２にて全画素が終了したと判断されるまでループ処理を繰り返す。なお、この解像度変換の処理が解像度一致化機能に相当する。
解像度が一致していた場合、あるいは、解像度を一致させた場合、二値化されたワーク用画像データをステップ２０６にてＲＡＭ１２ｅのワーク領域へ出力し、画像データ取り込み・変換処理を終了する。
【００３５】
次に、このワーク用画像データを利用して特定のロゴマークが含まれているか否かを判断する。ここで、図９はロゴマークの認識の概略を示している。認識しようとしているのは図中の円である。この円の直径はある解像度で約１００ドットであるとする。従来であれば、１００×１００ドットのテンプレートを用意しておき、テンプレートマッチングをすることになるであろう。
しかしながら、本実施例では、図中に示すようにより小さなサイズのテンプレート（Ｎｏ．１〜Ｎｏ．５）Ｐｔ１〜Ｐｔ５を利用する。各テンプレートＰｔ１〜Ｐｔ５の基本的な大きさは３２ドット×３２ドットである。すなわち、テンプレートＰｔ１でテンプレートマッチングを行い、マッチングしたらその位置を基準とした相対位置関係を利用してテンプレートＰｔ２〜Ｐｔ５のテンプレートマッチングを行う。
【００３６】
本実施形態では、認識しようとする円のロゴマークについて、左上角部と、上端中央、下端中央、左端中央、右端中央に配置される５つのテンプレートを利用しているが、図１０に示すように左上角部、右上角部、左下角部、右下角部という４箇所にテンプレートＰｔ１’〜Ｐｔ４’を配置することも可能であるなど、適宜変更可能である。ただし、左上角部のテンプレートは主走査方向と副走査方向との関係からも最初にロゴマークを発見できる可能性が高い。
【００３７】
一方、３２×３２ドットというサイズも適宜変更可能である。図９に示すような円のロゴマークに対して１００×１００ドットのエリアを基準として単純に左上角部にテンプレートを配置しようとすると、図１１に示すテンプレートＰｔ１となるが、３２×３２ドットを有効に利用しようとすればテンプレート位置を中心側へずらしてテンプレートＰｔ１ａに示すようにしても良い。すなわち、テンプレートマッチング自体は矩形の領域としておくのが演算の上で都合がよいが、”１”の画素が対角領域を有効に使いきる配置が効果的だからである。一方、３２×３２ドットというテンプレートのサイズを縮小することも可能であり、テンプレートＰｔ１ｂに示すように最初のサイズの範囲で有効に利用された対角領域だけを使用してテンプレートを縮小する。テンプレートが小さくなればそれに比して演算速度を小さくできたり、演算回路を小面積で構成するということが可能になってくる。また、薄い円弧のテンプレートＰｔ２に対して両側を省略した細幅のテンプレートＰｔ２ａにすることも可能である。
【００３８】
図１２はワーク画像データに対してテンプレートＰｔ１を初期位置にセットした状態を模式的に示している。
ステップ１０２にてテンプレートＰｔ１の位置を表すポインタに所定値をセットし、ステップ１０４にて同位置にあるワーク画像データのデータを読み込んでテンプレートマッチングを行う。テンプレートマッチングでは、テンプレートを構成する各画素の値とワーク画像データから読み込んだ画素の値とが一致するか否かによってスコア計算を行う。
【００３９】
図１３はスコア計算の例を５×５ドットの簡素化した例で示している。テンプレートＰｔを挟んで左右に画像データを示している。左側の画像データＤ１はテンプレートＰｔと全く関連性を持たない例として全画素が”１”の場合を示しており、右側の画像データＤ２はテンプレートＰｔと一画素分ずれた場合の例を示している。画像データの各画素とテンプレートの各画素とがそれぞれ一致すればスコアテーブルＳ１，Ｓ２に「１」を代入し、一致しなければ「０」を代入する。スコアは「１」を代入した総数となる。
【００４０】
全く関連性のない左のスコアＳ１で「１３／２５」であり、ややずれた右のスコアＳ２で「１８／２５」となっている。情報の一致度は「２５／２５」が最大であるが、関連性のなさは「１２．５／２５」が最小となる。
上述した３２×３２ドットのテンプレートの場合、最大値は「１０２４／１０２４」であり、ステップ１０６にて所定のしきい値、例えば「９８２／１０２４｝を越えているか否かを判断する。越えていればヒットとなるが、マッチするまではヒットとならず、ステップ１０８にてテンプレートＰｔ１の位置をずらし、ステップ１１０にて最終位置まで移動させたか否かの判断を行ない、最終位置に移動させるまでステップ１０４以下を繰り返す。この一連の処理が第一のテンプレートマッチング機能に相当する。
【００４１】
なお、画像データの側にロゴマークの色領域に属する画素が全くないにもかかわらずテンプレートマッチングを行ったとしてもマッチングするはずがない。すなわち、明らかにテンプレートマッチングを行う必要がない場合もある。従って、図１４に示すように画像データの側で明らかに”１”の画素が大半を占めている（ステップ１０６ａにて「最大しきい値ｍａｘを越えている」か判断）か、”１”の画素が殆どない（ステップ１０６ｂにて「最小しきい値ｍｉｎ未満となっている」か判断）というような場合にはスコア計算（ステップ１０６ｃ）を実施しないようにすることも可能である。
【００４２】
ところで、特定のロゴマークとして円を検出するようにした場合には特別なメリットがある。それは円であればどのような角度で置かれたとしても円あるいは円弧のテンプレートとは必ず一致するからである。従って、円に特定することで他のロゴマークの一部の領域を検出する場合に比べて顕著なメリットが存在する。
一方、円の特性を活かし、真円以外の物に適用する余地もある。図１５は非真円の場合のスコア計算をフローチャートにより示しており、図１６は該当するロゴマークとテンプレートとを示している。
【００４３】
非真円のロゴマークでも、図１６に示すように波形の線のロゴマークＭ１であるとか、破線などは、所定幅のマスキングテンプレートＰｔｍを使用して線の部分以外でテンプレートマッチングすることが可能である。マスキングテンプレートＰｔｍの斜線表示部分だけでスコアを計算し、一定のスコア以上であれば内部のスコア計算を行うことにする。この場合、異なる回転角度に応じた複数のテンプレートＰｔｍ１，Ｐｔｍ２…を用意しておき、いずれかにおいてスコアがしきい値以上であればマッチングしたと判断すればよい。
【００４４】
具体的には、ステップ４００にてマスキングテンプレートＰｔｍを使用して斜線領域である非円弧部のスコアを計算し、ステップ４０２にて同スコアとしきい値とを比較してヒットしたかを判定する。ヒットしなければステップ４０４にてヒットしない旨である「ノーヒット」を上位プログラムに告知して当該処理を終了する。一方、ヒットしたら、ステップ４０６で円弧部内での”１”の画素数を計算し、ステップ４０８にてこの画素数と、本来の円弧内の画素数との誤差がしきい値以内か否かを判断する。単純な例として真っ白な領域と上記マスキングテンプレートＰｔｍを利用してテンプレートマッチングをした場合、スコアは満点となるが、実際はロゴマークがあるわけではなく、次に複数のテンプレートＰｔｍ１，Ｐｔｍ２…を使用した計算を行うとすると負荷が大きい。このため、まず、画素数だけで円弧部内がロゴマークに近そうなものかを判定する。破線であれば円弧部で”１”の画素数は全画素数のほぼ半分となるが、真っ白な領域であればほとんど”０”となり、一次的なフィルタとしては簡易かつ有効なフィルタとなる。
【００４５】
このフィルタをパスした場合、ステップ４１０にて異角度に対応した上記複数のテンプレートＰｔｍ１，Ｐｔｍ２…を使用してスコア計算し、ステップ４１２にていずれか一つでも所定のしきい値より高いスコアが得られたと判断されれば、ステップ４１４にて「ヒット」を上位プログラムに告知して当該処理を終了する。また、いずれのスコアもしきい値を下回っていればステップ４０４にて「ノーヒット」を上位プログラムに告知して当該処理を終了する。なお、この場合は複数のテンプレートＰｔｍ１，Ｐｔｍ２…を使用してスコア計算するが、テンプレートＰｔｍ１，Ｐｔｍ２…のサイズが小さくなっているので、演算の負荷が特に大きくなるわけではない。むろん、スコア計算の際には曲線状のままでなく、演算に適した矩形などの形状に変化させればよい。
【００４６】
次に、テンプレートマッチングの際の演算時間を短縮する方法としてテンプレートを少しずつ移動させ、重なる領域について演算結果を保持することも可能である。図１７は領域を半分重ね合わせて移動させていく際のテンプレートの移動状況を示している。同図に示すように最初に３２×３２ドットのテンプレートＰｔｓ１を使用したテンプレートマッチングでヒットしたと判断した場合、次には１６ドットだけスライドさせた場所での３２×３２ドットのテンプレートＰｔｓ２を使用してテンプレートマッチングを行うことにする。この場合、実質的には左半分の領域と右半分の領域とを分けてスコア計算することにし、ヒットして移動する際には前のテンプレートＰｔｓ１での右半分の領域のスコアを残しておき、後のテンプレートＰｔｓ２では新たな右半分の領域のスコアを計算して合算することによって演算負荷を半減させる。
【００４７】
以上のようにしてテンプレートＰｔ１についてスコア計算をし、同スコアがしきい値を越えてテンプレートＰｔ１についてヒットしたと判断されると、以下、テンプレートＰｔ２〜Ｐｔ５を利用してテンプレートマッチングをおこなうべく、ステップ１１２ではポインタとしての変数ｎに「２」を代入する。すなわち、テンプレートＰｔ（ｎ）を利用してテンプレートマッチングを行い、マッチしたらテンプレートＰｔ（ｎ＋１）へと順次切り換えてテンプレートマッチングを行うことになる。
【００４８】
各テンプレートＰｔ２〜Ｐｔ５については、最初のテンプレートＰｔ１の発見位置との相対位置を図１８に示すテンプレート情報テーブルに記録してあり、図１９はその関係を模式的に示している。
テンプレート情報テーブルは、第一項目として各テンプレートの番号、第二、第三項目として横方向と縦方向の相対位置ズレ量を表すオフセット量、第四、第五項目は位置修正についてフィードバックさせる際の重み付けパラメータである。
【００４９】
テンプレートＰｔ２について具体的に説明すると、テンプレート番号は「２」であり、横方向のオフセット量は「３３」ドット、縦方向のオフセット量は「６７」ドットである。すなわち、テンプレートＰｔ１についてヒットしたと判断した場合、その時点でのテンプレートＰｔ１の位置を表すポインタに対してこれらのオフセット（３３，６７）を加えた位置をテンプレートＰｔ２についての初期位置とする。フローチャートではステップ１１４にてこの初期位置をセットすることになる。
【００５０】
次のステップ１１６では新たにポインタで指定された位置でテンプレートＰｔ２を利用してスコア計算し、テンプレートマッチングを行う。ここで、テンプレートＰｔ２〜Ｐｔ５が必ずしも上記オフセット量で示される初期位置でヒットするとは限らない。スキャニングの状況や解像度による誤差が加わるので、テンプレート自体を上下左右に±１０ドットの範囲で微動させてみる。すなわち、ステップ１１８にてヒットしないときにはステップ１２０にて位置を微修正し、ステップ１２２にて微修正の範囲を超えたと判断されるまではステップ１１６以下を繰り返す。なお、この一連のループ処理が第二のテンプレートマッチング機能に相当する。
【００５１】
図２０はこの微修正する範囲での微動動作方向の一例を示している。斜線で示す初期位置を起点として右回りに渦巻き状に移動させていくことにする。むろん、このような渦巻き状の移動に限られるものではなく、適宜移動方向については変更可能である。
ところで、このように微動させる場合には図２１に示すように最大で一点鎖線で示す５２×５２ドットの範囲の画像データと比較することになる。このような場合、１ドットずつ移動させるたびに画像バッファ１２ａのワーク画像データから該当する３２×３２ドットの画像データを読み込んできても良いが、画像データの画素を一部切り出し、その部分について先にテンプレートマッチングを行ない、ヒットすれば残りの部分についてテンプレートマッチングを行うというようにしても良い。図２１には中心位置が最外周の対角位置に到達した二つの状態を破線で示しているが、中央の１２×１２ドットの画素については重なっている。従って、画像データのうちのこの部分についてテンプレートを移動させながらスコア計算をし、画素数に見合ったしきい値を越えていれば残りの画素についてもスコア計算をする。
【００５２】
図２２はこのような二段階のスコア計算をフローチャートにより示している。ステップ５００で１２×１２ドットの画素についてテンプレートの位置に応じた部分的なスコア計算を行い、ステップ５０２にてスコアがしきい値を越えたか判断する。しきい値を越えていればヒットとなり、ステップ５０４にて残り部分のスコア計算を含めて全体のスコアを計算する。そして、ステップ５０６にてしきい値を越えたか否かを判断し、越えていれば「ヒット」を上位プログラムに告知して当該処理を終了する。
【００５３】
このようにすれば、１２×１２画素のスコア計算だけを行った時点でステップ５０２にて第一段階目の判定を行ってしまうため、ヒットしそうにない位置で無駄なスコア計算をすることがなくなり、微修正の際の演算負荷を低減させることが可能となる。また、このように二段階にすれば、ＣＰＵ１２ｄが有するキャッシュや内部メモリ内に３２×３２ドットのテンプレートと１２×１２ドットの画像データを取り込むことも可能であり、ＣＰＵ１２ｄは一切外部とのデータのやりとり行うことなく処理を進めることができるとともに、ＣＰＵ１２ｄ内での非常に高速な演算を利用できるので、全体的に処理速度を向上させることができる。
【００５４】
位置を微修正しながらテンプレートＰｔ２を利用してテンプレートマッチングを行った結果、ステップ１１８にてある位置でヒットしたと判断すると、ステップ１２４にてテンプレートの番号を表すポインタとしての変数ｎの値を「１」だけ加える。そして、ステップ１２６では変数ｎの値が５を越えたか判断する。
テンプレートマッチングは上述したように５つのテンプレートＰｔ１〜Ｐｔ５について行うようにしており、順次ヒットして変数ｎが５を越えれば全てのテンプレートについてマッチングしたといえるので、ステップ１２８にて特定のロゴマークを検出したと報知する。報知によって別の処理を実行するために本プログラムを終了しても良いし、報知をして他のプログラムの処理を起動させつつ最初のテンプレートＰｔ１を次の位置へと移動させて上述した処理を繰り返すようにしても良い。図３のフローチャートは後者のようにするべくステップ１２８を実行後、ステップ１０８にてテンプレートＰｔ１の位置を更新させるようにしている。
【００５５】
ところで、ステップ１１４にてテンプレートＰｔ２〜Ｐｔ５について初期位置を決定するときにはそれまでのテンプレートの発見位置に応じて修正を図ることも可能である。
上述したように、図１８のテンプレート情報テーブルには位置修正についてフィードバックさせる際の重み付けパラメータｋｘ，ｋｙを備えている。各テンプレートＰｔｎ（１＜ｎ＜５）についてテンプレートＰｔ１の検出位置を基準としてオフセット量を加えた位置と実際の各テンプレートＰｔｎの検出位置とのズレをｘｄｎ，ｙｄｎとすると、位置ズレフィードバック量ｘｆｂ，ｙｆｂは、
【数１】
0004164620.tif 000002
【数２】
0004164620.tif 000003
とする。すなわち、テンプレートＰｔｎがオフセット量を加えただけの初期位置からｘ方向に＋４ドット、ｙ方向に＋２ドットずれた位置で発見されたとすると、
ｘｆｂ＝（４）／２＝２
ｙｆｂ＝（２）／２＝１
というフィードバック量が得られる。従って、ステップ１１４にてテンプレートＰｔ３についての初期位置をセットするときには図１８に示すオフセット（３３，０）に対してさらにこの（ｘｆｂ，ｙｆｂ）＝（２，１）を加える。重み付けを変えているのは、図１９に示すようにテンプレートＰｔ２，Ｐｔ４のテンプレートＰｔ１からの距離と、テンプレートＰｔ５，Ｐｔ５のテンプレートＰｔ１からの距離とが異なるため、その影響度合いを調整するためである。むろん、この値は適宜調整可能であるし、上述したフィードバック量を求める演算についても適宜変更可能である。このようにフィードバック量を算出して初期位置へ反映させることにより、以降のテンプレートＰｔ３〜Ｐｔ５において初期位置の近辺でヒットする可能性が高くなり、演算量を減らすことができるようになる。このフィードバックの処理が位置ずれ修正機能に相当する。
【００５６】
なお、上述した実施形態においては、様々な回転角度に対応できるように円のロゴマークを検出している。この場合、円の内部に模様がある場合でも、外周の円の色領域で二値化しておくことにより円だけを探し、円を見つけたら二値化する色領域を変えて再度二値化し、内部のマークを相対的に回転させてテンプレートマッチングを行えばよい。
一方、円であれば様々な回転角度であっても問題なく検出できるが、特定のロゴマークを分割して検出する手法は円以外にも利用可能である。図２３は一例として四角のロゴマークを判定する際の分割したテンプレートの作成状況を示している。実線の四角のロゴマークに対して四隅の角部の形状をテンプレートＰｔｑ１〜Ｐｔｑ４にする。
【００５７】
この場合もテンプレートＰｔｑ１を使用してテンプレートマッチングを行い、ヒットすれば図２４に示すテンプレート情報テーブルを参照してオフセット量を読み出す。各テンプレートＰｔｑ２〜Ｐｔｑ４を利用するにあたっては同オフセット量を求めて初期位置を設定し、微動させながらテンプレートマッチングを行う。そして、微動してヒットした場合には上述したようにフィードバック量を算出して初期位置にフィードバックさせることにより初期位置の近辺でヒットする可能性が高くなり、演算量を減らすことが可能となる。
【００５８】
また、ロゴマークは必ずしも図形とは限らず、所定の寸法で統一された文字などからなるものにおいても分割してテンプレートマッチングを行うのは可能である。
次に、上記構成からなる本実施形態の動作を説明する。
操作者がスキャナ１１に読み取り原稿をセットし、図示しない操作パネル１２ｈでコピーを指示する操作を行うと、ＣＰＵ１２ｄはＩ／Ｏ１２ｇを介してスキャナ１１に対して解像度を指示しつつ所定の読み取り範囲についての読み取り指示を出力する。すると、スキャナ１１は当該指定された解像度で、かつ、指示された読み取り範囲で原稿を操作し、ＲＧＢ各２５６階調の画像データを出力する。ＣＰＵ１２ｄはこの画像データをＲＡＭ１２ｅの画像バッファ１２ａに保存する。そして、保存した画像データに基づいて図３に示すフローチャートに従いロゴマークの検出を実行する。
【００５９】
まず、ステップ１００，２００にて読み取った画像データを二値化する。二値化は色空間を利用して行うため、単に明るさだけで二値化する場合と比較して精度を向上させることが可能となる。また、テンプレートＰｔ１の解像度とスキャナ１解像度とが一致できていれば解像度変換は不要であるが、一致できなかった場合はステップ２０２，２０４にて解像度変換を行って解像度を一致させる必要がある。
【００６０】
このようにして二値化され、解像度を一致させた画像データは、ステップ２０６にて画像バッファ１２ａのワーク領域へ出力される。
次に、ステップ１０２〜ステップ１１０にてレンプレートＰｔ１を利用してテンプレートマッチングを行う。テンプレートＰｔ１は円弧の一部であり、上記ワーク領域内の画像データに当該円弧の一部と一致する画像が含まれているか判断する。円のロゴマークに対して円弧のテンプレートでテンプレートマッチングを行うため、ロゴマークの回転角度に関わらず、一致するか否かを判断できる。また、主走査方向が横方向であり、副走査方向が縦方向であるので、左上角部の形状にあたるテンプレートＰｔ１は早期にロゴマークを検出することができる。
【００６１】
テンプレートＰｔ１でヒットすると、ロゴマークにおける他の部分の形状に一致するテンプレートＰｔ２〜Ｐｔ５を利用してテンプレートマッチングを行う。各テンプレートＰｔ２〜Ｐｔ５を利用したテンプレートマッチングでは一つのテンプレートがヒットしないと次のテンプレートでのテンプレートマッチングを行わないため、全てのテンプレートＰｔ１〜Ｐｔ５が全てヒットしたときにだけステップ１２８にてロゴマークを検出した報知を行うことになる。
【００６２】
テンプレートＰｔ２〜Ｐｔ５はテンプレートＰｔ１との相対位置が分かっているため、同テンプレートＰｔ１の発見位置を基準として初期位置がセットされ、当該位置を基準として上下方向に±１０ドット、左右方向に１０ドットの範囲で微動させてテンプレートマッチングを行う。このようにテンプレートＰｔ１の発見位置を基準として初期位置がセットされ、本来のロゴマークであれば比較的早期に発見することができる。
【００６３】
また、初期位置自体も次々に検出されるテンプレートＰｔ２〜Ｐｔ４の発見位置をフィードバックしているため、初期位置を設定していく際の精度が向上し、早期に発見することができる。テンプレートＰｔ１〜Ｐｔ５を使用して順次テンプレートマッチングを行う場合、なるべく隣接するものを連続して使用せず、比較的遠い位置に存在するテンプレートを使用するようにしている。たまたまロゴマークの一部に似た形状が存在してヒットしたような場合でも、離れた位置で一致する可能性は低いだろうと想像でき、全体的にみれば誤認識を早く検知できるようになる。また、発見位置のずれのフィードバックも良好となる。
【００６４】
一方で、このように分割しつつ、順番にテンプレートマッチングを行うことにより、ロゴマークを発見できない場合はすぐにテンプレートＰｔ１を移動させることができ、無駄な演算処理を実行しないという側面も持つ。
このように、あくまでもロゴマークの一部の形状に一致するテンプレートＰｔ１〜Ｐｔ５を利用するのでそれぞれのテンプレートマッチングで必要とする演算負荷や回路規模を小さくできるし、この一部が一致しない場合というのは全体のテンプレートを利用しても一致しない場合であるから、その意味では無駄な演算を実施しなくて済み、演算負荷を低減させることができる。また、最初のテンプレートＰｔ１が見つかったときに初めて以降のテンプレートＰｔ２〜Ｐｔ５を利用するのであるから、効率的なテンプレートマッチングを行うことができる。
【図面の簡単な説明】
【図１】本発明の一実施形態にかかる画像認識プログラムを実行するコピーシステムの概略ブロック図である。
【図２】コピーサーバのハードウェア構成を示す概略ブロック図である。
【図３】ＣＰＵが実行する画像認識プログラムの概略フローチャートである。
【図４】画像データ取り込み・変換処理の内容を示すフローチャートである。
【図５】ＲＧＢ表色空間とロゴマークが属する領域を示す図である。
【図６】解像度変換処理の内容を示すフローチャートである。
【図７】縮小の過程を示す模式図である。
【図８】拡大の過程を示す模式図である。
【図９】ロゴマークとテンプレートの概略状況を示す図である。
【図１０】ロゴマークとテンプレートの他の構成例を示す図である。
【図１１】テンプレートの有効化のための変形例を示す図である。
【図１２】テンプレートマッチングの概略を示す模式図である。
【図１３】テンプレートマッチングにおけるスコア計算を示す模式図である。
【図１４】スコア計算の簡略化を図る変形例を示すフローチャートである。
【図１５】真円でない場合のスコア計算を示すフローチャートである。
【図１６】真円でない場合のテンプレートマッチングのテンプレートを示す図である。
【図１７】テンプレートマッチングの変形例を示す模式図である。
【図１８】テンプレート情報テーブルを示す図である。
【図１９】テンプレート情報テーブルの内容に相当するテンプレートの配置を示す図である。
【図２０】テンプレートの微動状況の一例を示す図である。
【図２１】テンプレートの一部でテンプレートマッチングを行う状況を示す図である。
【図２２】二段階でスコア計算する処理を示すフローチャートである。
【図２３】円以外のロゴマークの検出例を示す模式図である。
【図２４】テンプレート情報テーブルを示す図である。
【符号の説明】
１０…コピーシステム
１１…スキャナ
１２…コピーサーバ
１２ａ…画像バッファ
１２ｂ…画像処理部
１２ｃ…特定ロゴマーク検出部
１２ｄ…ＣＰＵ
１２ｅ…ＲＡＭ
１２ｆ…ＲＯＭ
１２ｇ…Ｉ／ Ｏ
１２ｈ…操作パネル
１２ｊ…表示器
１３…プリンタ
【図１】
0004164620.tif 000004
【図２】
0004164620.tif 000005
【図３】
0004164620.tif 000006
【図４】
0004164620.tif 000007
【図５】
0004164620.tif 000008
【図６】
0004164620.tif 000009
【図７】
0004164620.tif 000010
【図８】
0004164620.tif 000011
【図９】
0004164620.tif 000012
【図１０】
0004164620.tif 000013
【図１１】
0004164620.tif 000014
【図１２】
0004164620.tif 000015
【図１３】
0004164620.tif 000016
【図１４】
0004164620.tif 000017
【図１５】
0004164620.tif 000018
【図１６】
0004164620.tif 000019
【図１７】
0004164620.tif 000020
【図１８】
0004164620.tif 000021
【図１９】
0004164620.tif 000022
【図２０】
0004164620.tif 000023
【図２１】
0004164620.tif 000024
【図２２】
0004164620.tif 000025
【図２３】
0004164620.tif 000026
【図２４】
0004164620.tif 000027