(57)【特許請求の範囲】
【請求項１】
ディジタル化画像の中から、所定の対角線長さを持つ実質的に矩形のパターンを検出する方法であって、
ディジタル化画像のデータを取得するステップと、
その画像中の連結成分を検出するステップと、
その連結成分中の複数の極点を求めるステップと、
前記複数の極点の中に、前記所定の対角線長さに実質的に等しい距離の極点のペアがあるか否かを判定するステップと、
そのようなペアがあれば、その極点ペアに係るパターン候補の頂点の位置を求めるステップと、
それら頂点群により、所定寸法の実質的に矩形形状のパターンが規定されるかを判定するステップと、
を含む方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ハードコピー文書を利用して文書処理アプリケーションのためのユーザインタフェースを実現する技術に関し、特に、ハードコピー文書を用いて、そのハードコピー文書に関連するタグ上に印刷データとして格納されたユーザ情報又はサービス情報に従って各種サービスを実行するようにしたタグ利用ユーザインタフェーススキームに関する。
【０００２】
【従来の技術】
多くの人々にとって、文書はハードコピー（紙等に印刷した状態）で取り扱うのがもっとも扱いやすい。一般に、ハードコピー文書は、ディジタル状態の文書よりも読みやすく、取り扱いやすく、保存しやすい。特別の専門知識やコンピュータハードウエアも必要としない。
【０００３】
しかしながら、一般に文書は、ディジタル状態の方が細かな操作が行いやすい。テキスト文書は、索引付けしたり、検索したり、フォーマット（形式）を変更したり、一部を抽出したり、その他の変更を加えたりすることができる。保存された文書は容易にしかも品質の劣化なく複製でき、人から人へ（例えば電子メールなどで）送信することができる、そして、重要なことに、これら全てのことは紙を用いずに行うことができる。更には、オフィスや家庭でディジタル複写機やスキャナの普及が進んでいる。
【０００４】
その一方で、文書をディジタル状態で取り扱うには、一般にはコンピュータシステムやネットワークにアクセスする必要がある。コンピュータシステムのユーザがそのシステムを使うための基礎レベルの専門知識や能力を持っていない場合は、生産性に悪影響を及ぼすおそれもある。このことは、ディジタル文書を（紙文書に替えて）主たる文書タイプする「ペーパレスオフィス」の実現の大きな妨げになる。
【０００５】
したがって、ディジタルドメインの文書を効率的に管理できるようにし、ハードコピー文書からディジタル文書へ容易に変換できるようにすることが要望されている。
【０００６】
ディジタル文書の取扱を可能にする従来の試みでは、伝統的なユーザインタフェースパラダイムを用いることが多かった。例えば、ハードコピー文書をスキャンして文書保管部に入力する場合、そのためのコマンドがまずコンピュータ端末又はスキャナ装置に入力され、これによりそれら装置がその文書について所望のサービスを提供する。同様の手順は、ハードコピーをスキャンしてファックスしたり、スキャンして電子メール送信したり、スキャンして（ＯＣＲソフトウエアで）文字認識したり、その他様々な処理を行ったりする際にも実行される。コマンドの入力は、ユーザフレンドリなソフトウエアやそのまま読めば分かるコマンドにより行うことができるが、このようなコマンド入力のための余計なステップは退屈なものであり、ある程度の専門知識を要するものでもある。更に、入力される一連のコマンドは、いったん操作が終わると失われてしまい、経験のあるユーザでさえ誤りを起こすおそれがある。
【０００７】
別の手法として、それらコマンド群を指定するためのフォームを含んだカバーシートを用いるものがある。カバーシートにはユーザの希望に従って書き込み（例えば手書きのコマンドやチェックボックスへのチェック書き込み）が行われ、スキャナはカバーシート上のそれらコマンドを解釈し、添付された文書をそれに従って処理する。これも、手間がかかり、比較的効率がよくない。なぜなら、この方法では、各ジョブごとに専用のカバーシートを必要とするからである。そのような専用のカバーシートを常時用意するのは容易ではない。
【０００８】
各種の１次元及び２次元のデータコードが、ハードコピー文書上にディジタルデータを記すためのものとして知られており、利用されている。例えば、各種のバーコード（例えば小売製品コードとして用いられている周知のＵＰＣシンボル）が非常によく知られており、これらはデコードに関するロバスト性が高い。線形バーコードの他の例としては、Ｃｏｄｅ３９やＣｏｄｅ１２８、Inteleaved2of5、Ｐｏｓｔｎｅｔなどが知られている。ＰＤＦ４１７やUnited Percel Service社で荷物の追跡に用いられているＵＰＳ  ＭａｘｉＣｏｄｅなどの２次元バーコードも、普及しつつある。
【０００９】
Ｘｅｒｏｘ社のＤａｔａＧｌｙｐｈのようなセルフクロック（自動クロック生成）・グリフは、通常のハードコピー文書を含む各種の画像の中に、機械読取可能なディジタル情報を埋め込む手法として魅力のあるものである。これらのコードは、画像ひずみやノイズに対して実質的に耐性がある。なぜなら、そのコードでエンコードされたディジタル情報は、明確に示される機械読取可能なマーク（すなわち“グリフ”。ここで、この用語は、Ｘｅｒｏｘ社のＤａｔａＧｌｙｐｈに限定するものではなく、機械読取可能な全てのマークを含むものとして用いる）群に埋め込まれ、それらマークによって完全に規定されるからである。これらグリフは、そのコードに埋め込まれる情報を表すだけでなく、そのコードから情報を取り出すために用いるサンプリングクロックを定めるためにも用いられる。したがって、それらグリフは、コードに“セルフクロック”特性をもたらすと共に、歪み・ノイズ耐性をもたらしている。
【００１０】
セルフクロック・グリフコードの別の利点は、通常の場合見た目に目立たないという点である。この利点は、グリフ群が、その各々の中心が２次元空間的に周期的なパターン（例えば正方格子パターン）に従うように配列される場合に顕著である。なぜなら、グリフが空間的に周期的に繰り返されることにより、コードがある程度均一なテクスチャ（構造）に見えるからである。例えば、論理的に順番に並んだ１ビットのディジタル量子は、所定の空間フォーマット規則に従う２次元の空間的な周期パターンに従って記される、スラッシュ（斜線）状の長いグリフにコード化される。ここで、各グリフは、垂直線に対してほぼ＋４５°又は−４５°と右左に傾いた線分として記され、一方が論理値“０”を、他方が“１”を示す。この方式では、１ビットディジタル量子の２つの論理値を表すグリフが互いに対して垂直となるので、コードの弁別性が向上し、コードパターンがほぼ均一なグレースケールに見えるほど精細なパターンで表された場合でさえ、コードに埋め込まれた情報の再生が十分に可能となる。なお、セルフクロック・グリフコードは、上述の１ビットディジタル量子（１ビットコード）だけでなく、複数ビットディジタル量子（例えば１バイトコードなど）をコード化するのに用いることもできる。
【００１１】
【発明が解決しようとする課題】
本発明は、ディジタル文書の利用と、ハードコピー形式からディジタル形式への文書の変換を可能にする、単純かつ効率的で便利な、ユーザ側の専門知識をほとんど又はまったく要求しない解決手段を提供することを目的とする。
【００１２】
【課題を解決するための手段】
参考例では、コードが付された粘着式のステッカーやラベルなどのタグを利用し、ハードコピー文書処理システムの基本的なユーザインタフェースを提供する。このシステムでは、ユーザは、実行させたいアクションやサービスを指定したり、自分の識別情報を示したりするのに、文書にステッカーを貼り、これをコピー機やスキャナのビンに投入して読み取らせるだけでよい。
【００１３】
ステッカーは、比較的小さくて目立たないものとする。参考例を適用した一つの具体例としては、ユーザＩＤや所望のサービス、及びサービスについてのオプションの引数などをエンコードするのに、Ｘｅｒｏｘ社のＤａｔａＧｌｙｐｈを利用するものがあり、これについては後に詳しく説明する。ユーザは、特定のサービス（例えば「スキャンして私の個人用電子メールアカウントに送る」などの個別のサービス）のためのステッカーを持っているようにする。ユーザは、そのサービスを実行させたいと思ったときには、単にその目的に合ったステッカーを文書に貼り付けるだけでよい。
【００１４】
参考例に係るコンピュータシステムは、まずユーザの身元を表す識別情報を受け取る。この識別情報は、例えば、そのユーザの名刺を読み取って解析するなどにより得ることができる。この情報はデータベースに保存され、この情報に対して一意的なユーザＩＤ番号が付与される。このユーザＩＤは、要求されるサービスのコードと組み合わせられ、この結果得られたデータセットは、要求された印刷データフォーマットに従ってエンコードされる。そして、このシステムは、そのユーザＩＤとサービスを表したそのユーザ専用のラベルを印刷出力する。
【００１５】
ユーザは、自分のステッカーが示すサービスを受けたいと思ったときは、単にそのステッカーを１枚とって文書に貼り付け、この文書をスキャナのキュー（読取処理用のトレイなど）に入れればよい。すると、この文書が読み取られ、ステッカーが識別されてそのデータのデコードが行われ、データベースから検索されたユーザの情報に対して関連づけされ、要求されたサービスが実行される。
【００１６】
このシステムが、単に文書を読み取って文書保管部に格納するサービスや、文書をファクシミリ送信するサービス、文書を標準的な電子文書形式（例えばマイクロソフト社のＷｏｒｄ形式など）に変換するサービス、その他様々なサービスやアクション（動作）の実行に適用可能なことは明らかであろう。
【００１７】
このように、参考例に係るステッカーを用いたユーザインタフェースは便利かつ簡単であり、ユーザは、コンピュータシステムにコマンドを入力したり、処理すべき文書毎にそのカバーシートのチェックボックス等に書き込みを行ったり、等の作業をする必要がない。このシステムは、ユーザが小さなステッカーを切らさないように管理しているだけでよいので、効率的である。
本発明に係る方法は、ディジタル化画像の中から、所定の対角線長さを持つ実質的に矩形のパターンを検出する方法であって、ディジタル化画像のデータを取得するステップと、その画像中の連結成分を検出するステップと、その連結成分中の複数の極点を求めるステップと、前記複数の極点の中に、前記所定の対角線長さに実質的に等しい距離の極点のペアがあるか否かを判定するステップと、そのようなペアがあれば、その極点ペアに係るパターン候補の頂点の位置を求めるステップと、それら頂点群により、所定寸法の実質的に矩形形状のパターンが規定されるかを判定するステップと、を含む。
【００１８】
【発明の実施の形態】
以下、本発明の実施の形態（以下実施形態という）について、図面に基づいて説明する。
【００１９】
図１は、本発明に係るペーパー・ユーザインタフェース・タグとして用いることができるグリフ・ステッカーパターン１１０の一例を示す。ここで注意しておきたいのは、この図に示したパターン１１０はいずれかの特定の縮尺に対応して描いたものではないということである。ここに例示のパターンは、垂直方向２．５ｃｍ（１インチ）以下程度のオーダを想定したものであるが、ここでは細部が識別できるよう明確にするため、拡大して示している。
【００２０】
更に、ここでは、ユーザインタフェースタグは、文書に取り付け可能な粘着式のステッカーとして図１に示したが、このパターン１１０はフォーム（帳票）やスリップシート（合紙）、カバーシート、名刺、ＩＤカード、ネームタグなど、文書に対して関連付け可能で且つ機械読取可能な情報を担持できるものであればどのようなものにも適用できる。例えば、本発明のある具体化例では、パターン１１０を担持したラペル（襟）ピンを用い、文書をスキャンして処理する際に（例えばハンドヘルド型のレーザスキャナで）そのピンをスキャンすることで、そのピンをその文書に関連付けることができる。
【００２１】
グリフパターン１１０は、いくつかの重要な属性を持っている。実質的に矩形の境界線１１１がその他の特徴部分を取り囲んでおり、その境界線自体は白色スペース部１１３で取り囲まれている。グリフフィールド１１２は、本実施形態の目的を実現するために用いるディジタルデータの印刷表現を含んでいる。グリフフィールド１１２の構造と内容は、後で詳しく説明する。ここでは、図１のグリフフィールド１１２が、Ｘｅｒｏｘ社のＤａｔａＧｌｙｐｈを用いていることに留意されたい。しかしながら、バーコードや１次元あるいは２次元のデータパターン、光学読み取り認識可能なアルファベットや数字などの文字（アルファニューメリック文字）など（ただしこれらに限定はしない）も、例示したグリフと同様の効果をもたらすものとして利用することができるのは言うまでもない。
【００２２】
グリフステッカーパターン１１０には、その他の識別用要素を含めることができる。例えば、図示の例では、Ｘｅｒｏｘ社のロゴ“Ｄｉｇｉｔａｌ  Ｘ”１１４や登録商標“ＰａｐｅｒＷａｒｅ”１１６などが表示されており、これらは美的な目的や商標表示のために用いられている。“Ｔｈｅ  Ｐｅｒｓｏｎ”というフレーズ１１８も表示されているが、この部分はユーザの名前やその他視覚的な識別のための情報の表示に置き換えることができる。境界部１２０は、隅が折られたページを示している。この折り曲げ部を表す境界部１２０は、美的目的のためのみに設けてもよいが、グリフステッカーパターン１１０の正しい向きの判別のために用いてもよい。これらの点については、後に改めて説明する。
【００２３】
次に図２を参照して説明する。図２は、グリフフィールド１１２に埋め込まれるデータ構造２１０の一例を示す。データ構造２１０は、サービスコード２１２を含み、このコードは例えばこの例では１バイト（２進ビットで８ビット）である。したがってこの例では、サービスコード２１２は２５６種類までの異なるアクション、変換及びサービスを示すことができる。サービスには、例えば「文書をスキャンして保管部に保管」、「スキャンして電子メールで送信」、「スキャンしてファックス送信」、「スキャンしてコピー印刷」など（ただし、これらに限定されるものではない）が含まれる。１つのサービスが複数のアクション（例えば、スキャンした後文字認識を行い、更にそのテキストを電子メール送信する、など）を含むようにすることもでき（ただしこれに限定するものではない）、またサービスには、ハードコピーから電子形式への文書の変換やその逆変換なども含まれる。さらに、アクションの中には、文書のディジタル化画像上のグリフステッカーパターン１１０を削除したり変更したりする処理もある。グリフステッカーパターン１１０は、いったん本実施形態のシステム及び方法によって機能した後は、もはや文書上に存在する必要はない（あれば、その文書の見栄えを損なうかも知れない）ので、そのような処理を行う場合も出てくる。
【００２４】
サービス引数２１４は、サービスコード２１２に対する引数をコード化したものである。本実施形態では、引数２１４は、付加的な１バイト（８ビット）の情報である。例えば、数字の引数（例えば「スキャンしてコピー印刷」のコードの後に「１０」という引数が続けば、１０部のコピーを印刷する指示となる）を必要とするサービスもある。別のサービスの中には、これとは異なるやり方でコード化した引数を必要とするものもある（例えば「スキャンしてファックス送信」の後に「２」という引数が続いた場合、文書を（当該ユーザのオフィスのファックス番号や当該オフィスの別のファックス番号ではなく）当該ユーザの自宅のファックス番号に送信することを表すものとする、などである。オフィスのファックス番号には、別の引数が割り当てられる）。サービス引数２１４は、本発明の範囲を逸脱することなく、他にも様々な利用の仕方ができる。
【００２５】
識別コード２１６は、データ構造２１０の残りのほとんどの部分から校正されている。本実施形態では、識別コードは、１６バイトの識別情報（これだけあれば、考え得る全人口の各メンバーの一意的な識別番号を表すのに十分である）と、８バイトのセキュリティ情報を含んでいる。セキュリティ情報は、識別情報に耐タンパ性を付与する（識別情報の改竄を防止する）。識別情報は、その識別コードを発行したマシンのネットワークアドレス（Ｅｔｈｅｒｎｅｔアドレス又はＩＰアドレス）、タイムスタンプ、及びシーケンシャル番号（自動生成される続き番号）を含む。この方式で生成される番号はあらゆる状況で一意であるとは保証できない（例えばシーケンシャル番号のデータベースが失われ、同じタイムスタンプが同時に２度使われる場合など）が、本発明が目的とするような範囲では、ロバスト性が高く、十分に一意的なものである。なお、識別コードは、その他の様々な方法で生成することができ、これら様々な方法は全て本実施形態で利用することができる。
【００２６】
データ構造２１０は、上記のデータフィールド全体にわたって、本発明の分野で周知の方式で誤り訂正及び同期のための情報を含むが、これらは図２には示していない。図３は本実施形態のシステムレベルでの概要を表す図であり、いくつかの高レベルの機能要素に分けて示されている。「フロントエンド」部３１０はデータ入力部３１２から情報を受け取る。データ入力部３１２はキーボード、名刺スキャナ、音声認識装置、その他ユーザの識別情報を取得するための機能を持つデータ収集手段を含む。データ入力部３１２はユーザーの名前、会社、肩書、住所、（１つ又は複数の）電話番号、（１つ又は複数の）電子メールアドレス、その他の識別情報（合衆国社会保障番号やカンファレンスのＩＤ番号など）を取得するためのものである。このユーザ情報は、識別処理部３１４に渡される。識別処理部３１４は、その情報を、データベースサーバ３１６が管理するデータベースに格納する。同時に、ユーザ情報は識別処理部３１４で処理され、これにより識別コード２１６（上述の識別及びセキュリティのための情報を含む）が生成される。そして、識別コード２１６と、要求に応じて付け加えられるサービスコード２１２及びサービス引数２１４とが、エンコードされ、プリンタ３１８その他の識別処理部３１４に接続されたハードコピー出力装置にてプリントされる。
【００２７】
ユーザがある文書を処理したいと思った場合、そのユーザは本実施形態のグリフステッカーをその文書に貼り付け、その文書をスキャナ３２０にセットする。スキャナ３２０は本システムの「バックエンド」３１９の一部である。スキャナは、複数のジョブと複数ページの文書をユーザの介入無しに取り扱うことができる自動スキャナであることが望ましい。ただし、本実施形態では、他のタイプのディジタル化装置（例えばフラットベッド型スキャナ、ディジタルコピー機、ハンドヘルド型のスキャナなど）を利用することもできる。スキャナ３２０は文書を読み取り、その文書（及びその文書上のグリフステッカー）のビットマップ表現を形成する。
【００２８】
アクション処理部３２２は、スキャナ３２０から受け取ったビットマップを読み取り、グリフステッカーを識別してデコード（復号）し、データベースサーバ３１６にアクセスしてユーザの識別を行う。要求されたサービスは、アクション処理部３２２がローカルで持っている提供可能なサービスのリストにアクセスすることで知ることができ、またデータベースサーバ３１６のサービスデータベースにアクセスすることで判定することもでき、更には単にユーザの識別情報から推論することもできる。
【００２９】
このようにして求められたユーザの識別情報と要求されたサービスに基づき、アクション処理部３２２は、その要求されたアクションを実行する。このアクションは、変換された文書を出力装置３２４から出力する動作を含みうる。出力装置３２４についてはここで概略の特徴を示した。しかしながら、出力装置３２４は、上述のように、ハードコピープリンタやファクシミリ装置（又はファックスメッセージが送信可能なモデム）、電子メールのためのネットワーク接続装置、文書保管部への接続装置、ディジタル記憶装置（フロッピーディスクドライブなど）、あるいは上述の機能のいくつか又は全てを有する装置、を含みうる。
【００３０】
図３のシステムは、いくつかの機能ブロックに分けて示したが、これらの機能は単一のコンピュータシステムで実現することもできるし、通信ネットワークを介して接続された複数のコンピュータシステムで実現することもできる。例えば、データベースサーバ３１６は、識別処理部３１４及びアクション処理部３２２にローカル接続することもできるし、インターネットや社内イントラネットなどの通信ネットワークを介して他の機器と通信する個別の処理装置として構成することもできる。
【００３１】
図３を用いて示したように、本システムのフロントエンド処理、すなわちユーザ情報及び要求されたサービスに基づくグリフステッカーパターン１１０の生成処理は、一連のステップにより行われる。これら一連のステップが図４のフローチャートに示される。
【００３２】
まず、ユーザ（又は他の人）が、典型的にはデータ入力部３１２（図３）を介して、本システムに情報を入力する（ステップ４１０）。全ての情報は、データベースサーバ３１６のデータベースに格納される（ステップ４１２）。そして、サービスが選択される（ステップ４１４）。サービスは、例えば、提供可能なサービス群を示す「メニュー」から選択される。なお、ただ１つのサービスのみが可能なシステムも本発明の範囲内である。提供可能なサービスが１つだけの場合、サービスコード２１２やサービス引数２１４（図２）を、グリフステッカーパターン１１０から省略することもできる。
【００３３】
次に、ユーザ識別コード２１６、サービスコード２１２及びサービス引数２１４がエンコードされ、その情報を表すグリフフィールド１１２内に書き込まれる（ステップ４１６）。このようにして新規作成されたユーザ専用のグリフフィールド１１２は、グリフステッカーパターン１１０として、ユーザが利用したいときに所望の数のステッカーに、好きなだけ繰り返して印刷される（ステップ４１８）。
【００３４】
図５は、ユーザが文書にステッカーを貼り付けスキャナに投入した後に起こる処理を説明するためのフローチャートである。まず、その文書はスキャンされ（ステップ５１０）、この結果得られたビットマップが処理のために保持される。この時点では、オリジナルのハードコピー文書はユーザの手元に戻り、その後は本システムでは必要とされない。
【００３５】
次に、グリフステッカーパターン１１０がその文書の中から検出される（ステップ５１２）。本発明の好適な実施例では、グリフステッカーパターンは、図６を用いて後に説明する矩形マッチング法によって検出される。別の実施例としては、ユーザが文書上の予め決められた場所（先頭ページの右上隅など）にグリフステッカーを貼ることで、グリフステッカーパターン１１０の位置検出のための処理を単純化するという方法もある。更に別の例では、スキャンした文書のビットマップをテキスト部分とグラフィックス（図形）部分とに分割し、線図形部分の中からグリフステッカーパターン１１０の境界線を含んだ直角の線を検出することにより、ステッカーパターン１１０が文書上のどこにあっても検出することができる。これを実現するための方法は、ブルームバーグ（Bloomberg）に付与された米国特許第５，２０２，９３３号“SEGMENTATION OF TEXT AND GRAPHICS（テキストと図形の分割）”に詳細に示されており、この米国特許の内容をここにリファレンスとして組み込む。これを可能とするために、ハーフトーンや精細なテクスチャのグラフィックス領域（リソグラフ写真など）も、米国特許第５，０６５，４３７号や同第５，１３１，０４９号などに示される方法を用いて、分割（そして線図形部分から区別）する。ここで、グリフステッカーパターン１１０は、ほとんどあらゆる向きを取り得ることに注意が必要である。したがって、この分割手法は、グリフステッカーパターンがないと決定する前に、（前記米国特許５，２０２，９３３号で用いられるモーフォロジカル（morphological）操作にて、異なった形状の構造化要素を用い、水平線及び垂直線を識別することにより）いくつかの異なる方向についてチェックできるようになっている必要がある。ハウスドルフ距離を用いたアルゴリズムを用いることもできる。この方法は、上述したモーフォロジカル方式と同様、回転に敏感であり、従って計算的には効率がよくないことに注意が必要である。
【００３６】
グリフステッカーパターン１１０が検出されると、グリフフィールド１１２の中のデータが次にデコードされる（ステップ５１４）。これは、後に図７から４を用いて詳細に説明する方法を用いて実現される。次にこのデータは、（データベースサーバ３１６から受け取った）ユーザ識別情報と要求されたサービスとに関連付けられ（ステップ５１６）、そのサービスが、公知の上述の手段により実行される（ステップ５１８）。
【００３７】
ディジタル画像からユーザインタフェースタグ（例えば図１のグリフステッカーパターン１１０）を検出するのに用いる好適な方法を図６に示す。この方法は、一隅が折り畳まれたページのアイコン表現のような、本発明の一実施例のグリフステッカーパターン１１０（図１）として用いられるものと同様の、ほぼ矩形形状のオブジェクトを識別し検出するために用いることができる。このような矩形オブジェクトは、高さと幅によって特徴づけられる。この識別方法は、所望のパターンがどの方向を向いていても、多少の寸法の変化があっても（これは印刷や読取の際に起こる）、あるいは画像にノイズが含まれている場合でさえも、そのパターンを識別することができる。この方法はモノクロ画像（すなわち１画素当たり１ビットで表されたバイナリ画像）に対して適用できる。もしディジタル化画像が他の形式（カラーやグレースケールなど）であった場合は、まず、図６に示した方法を実行する前に、その画像をバイナリ形式に変換する必要がある。この変換は例えば、しきい値関数やディザ法により実行することができる。
【００３８】
利用するディジタル化装置の特性（例えば解像度）は既知であるとする。したがって、グリフステッカーパターン１１０（図１）の絶対サイズは既知なので、その画像サイズが計算できる。すなわち、画素単位でのパターン１１０の幅をｗ、高さをｈとすると、それらは既知であるか、あるいは簡単に計算できる。前述のような寸法の小さな変化を考慮して、幅と高さの許容誤差（それぞれΔｗ、Δｈとする）を考えに入れると、期待される幅の最小値はｗmin＝（ｗ−Δｗ）、最大値はｗmax＝（ｗ＋Δｗ）、期待される高さの最小値はｈmin＝（ｈ−Δｈ）、最大値はｈmax＝（ｈ＋Δｈ）となる。好適な例では、Δｈ＝（０．１）ｈ、Δｗ＝（０．１）ｗであり、これは別の言い方では、許容誤差は高さ、幅のそれぞれ１０％であるということになる。なお、当然ながら許容誤差の範囲はこれに限らず、高さ及び幅について他の許容誤差を用いることもできる。
【００３９】
したがって、上述の説明によれば、対角線の長さの最小値及び最大値は、それぞれ、ｄmin＝｛（ｗ−Δｗ）2＋（ｈ−Δｈ）2｝1/2 、ｄmax＝｛（ｗ＋Δｗ）2＋（ｈ＋Δｈ）2｝1/2となる。
【００４０】
適切なディジタル画像が得られると、その画像内の全ての連結成分をまず識別する（ステップ６１０）。連結成分は、ある単一の値（例えば黒を表す値）の画素の組であり、その組の任意の画素から同じくその組の別の任意の画素まで、その組から外れることなく（すなわち黒画素のみを通って）パスを形成することができる。一般的な用語では、連結成分は「４連結」か「８連結」のいずれかである。４連結の場合、パスは垂直方向又は水平方向にのみ伸展することができ、すなわち４つの方向を取りうる。したがって、斜め方向について隣り合う２つの黒画素同士は、他の黒画素が水平又は垂直方向に隣接してそれら２つの橋渡しをしない限り、４連結ではない。８連結の場合、画素間のパスは斜め方向にも延びることができる。好適な実施形態としては８連結の成分を用いるが、４連結の成分も識別でき使用することができる。
【００４１】
グリフステッカーパターン１１０（図１）の境界線１１１は、連続する１組の黒画素が形成されているので、境界線１１１は単一の連結成分からなることが検知される。境界線１１１の周囲の空白スペース１１３は、グリフステッカーパターン１１０が適用されたハードコピー文書の一部に、その境界線１１１が偶然接触してしまうことがないよう、十分に広いスペースとなっている。更に、境界線１１１は、画像ノイズによって偶然にとぎれてしまうことがないよう、十分に太いものである。
【００４２】
画像中の連結成分は、公知の方法（すなわち、画像中のある１つの黒画素から出発し、連結成分が完全に求められるまで、その黒画素に連結する画素を再帰的に検出し、これを画像中の全ての黒画素が連結成分に属する様になるまで繰り返すなど）により識別される。なお、これ以外の方法でも同様のことを成し得る。
【００４３】
次に、各連結成分がそれぞれ個別に処理される。もし未処理の連結成分があれば（ステップ６１１）、これについて以下に示す処理を行う。連結成分が小さすぎる場合（ステップ６１２）、すなわちその連結成分の高さ又は幅が、前述した期待される高さ、幅の最小値より小さい場合は、その連結成分を削除する（ステップ６１４）。パターン１１０の回転を考慮して、ｈminとｗminうちの小さい方を、高さ及び幅の共通の最小値として用いることもできる。同様に、連結成分が大きすぎる場合（ステップ６１６）、すなわち幅又は高さが想定した最大値よりもかなりの程度大きい場合、その連結成分は削除される（ステップ６１４）。パターン１１０の回転を考慮して、ｈmaxとｗmaxうちの大きい方を、高さ及び幅の共通の最大値として用いることもできる。パターン１１０（又は任意の矩形）がある角度に傾いていると、その幅及び高さが想定よりも大きく見え、ｄmaxに近づく。したがって、上記の後者のチェックにはある程度余裕を見込む。
【００４４】
連結成分Ｃを構成する画素の組から、８個の「コンパス位置」（東西南北などの方位）の各々について１つずつ、合計８個の極点を選択する（ステップ６１８）。各点は（ｘ，ｙ）の座標ペアで表される位置を持っており、画像平面内で選ばれた方向（北、北東、東、南東、南、南西、西、又は北西）について最も端にある連結成分Ｃの画素を表している。各極点は次のようにして選ばれる。
【００４５】
【数１】
0004486193.tif 000002
これら８個の極点を識別する方法には、様々な最適化を施すことができることに注意すべきである。例えば、もし連結成分Ｃが連続した画素群からなる水平方向のラン（run）に分解されれば、ＮＷ（北西）、Ｗ（西）、及びＳＷ（南西）の極点の候補として、それら各ランの最左端の画素のみを考慮すればよい。また、ＮＥ（北東）、Ｅ（東）、ＳＥ（南東）の極点の候補としては、各ランの最右端の画素のみを考慮すればよい。更に、水平ランが垂直方向に並んでいれば、上端及び下端のランの端点のみが、Ｎ（北）及びＳ（南）の極点を求めるのに考慮される。境界線１１１（図１）が、正立状態に対して正確に４５°間隔で傾いた各向き（すなわち、０°、４５°、９０°、１３５°・・・と傾いた各状態）にある場合、連結成分の中には、上述の極点の条件を１つ又はそれ以上を満足する画素が多数出てくることになる。これは実際のところ問題とはならない。条件を満足する点ならどれを選んでもよい。例えば、図１の境界線１１１には単一の最南画素というものはなく、底辺上のいずれの画素を選んでもよい。さらに、１つの画素が複数の極点として用いられてもよい。図１を再び参照すれば、例えば右下隅の画素１２２は、Ｓ、ＳＥ及びＥの各極点として用いることができ、こうしても本実施形態の方法に何ら影響はない。
【００４６】
もし連結成分Ｃが境界線１１１（すなわち一隅が欠けた矩形）であれば、３つの極点が矩形の各隅の点の情報（折り返された隅の情報は補われる）を含み、他の５つの極点は不要な情報を含むことになる。ただし、ここに示す方法は、まだこの時点では、その連結成分Ｃが境界線１１１であるか否かを判定していないし、どの極点が境界線の隅の点を表すかも判別していない。この判定については後で説明する。
【００４７】
次に、８つの極点全てについて考える。真反対の位置にある２つの極点のペアのいずれかについて、それら両者間の距離が前述の対角線長さの条件を満足すれば（ステップ６２０）、その連結成分は境界線の候補となる。すなわち、もし以下の４つの条件、
【数２】
0004486193.tif 000003
のいずれかが成立すれば、境界線の候補が見つかったことになる。その他の場合には、その連結成分は削除される（ステップ６１４）。
【００４８】
求められた対角線に基づき、当該連結成分のもう１組の隅の点が識別され（ステップ６２２）、考慮に入れられる。もし極点Ｎ−Ｓ間、又はＥ−Ｗ間が対角線であると分かった場合、Ｎ，Ｅ，Ｗ，Ｓの各値がそれぞれ、境界線候補の４隅の点を表すｐ1，ｐ2，ｐ3，ｐ4に用いられる。同様に、極点ＮＥ−ＳＷ間、又はＳＥ−ＮＷ間が対角線であると分かった場合、ＮＥ，ＳＥ，ＮＷ，ＳＷの各値がそれぞれ、境界線候補の４隅の点を表すｐ1，ｐ2，ｐ3，ｐ4に用いられる。
【００４９】
次に、４つの点ｐ1，ｐ2，ｐ3，ｐ4の間の関係を調べ、矩形形状をなしているかを判定する（ステップ６２４）。ｐ1ｐ2間、ｐ2ｐ3間、ｐ3ｐ4間、及びｐ4ｐ1間の各距離がすべて調べられる。（これら４つの距離のうち）少なくとも１つの距離が、前述した期待される幅にほぼ等しく、これに隣接する（対向ではない）少なくとも１つの距離が、前述した期待される高さに等しくなる必要がある。
【００５０】
すなわち、
【数３】
0004486193.tif 000004
または
【数４】
0004486193.tif 000005
のいずれかが成り立てば、注目している連結成分Ｃは境界線１１１である可能性があり、Ｃが、可能性のある位置のリストに追加される（ステップ６２６）。そうでなければ、その連結成分Ｃは削除される（ステップ６１４）。
【００５１】
上述のように、可能性のある位置のリストは、上述の条件を満足するすべての境界線候補から構成される。このリストの全体が、このあと、デコードプロセス（図５のステップ５１４）に渡される。おそらくは、それらの中のただ１つの境界線候補のみが有効なグリフ（又はその他の形式の）データを含んでいる。もし有効なデータを含む境界線候補が１個より多い場合は、最初に見つけたものを使用する。
【００５２】
上述の方法は、グリフステッカーパターン１１０の実質的に矩形形状の境界線１１１がどの向きに向いていても、大きさが多少変わっていても、それを識別し検出することができるが、この方法は、他の様々な画像処理アプリケーションに適用でき、有用である。図６を参照して以上に説明した方法は、ディジタル化画像中から、実質的に矩形のパターンであればほぼどのようなものでも、それを識別し、検出することができるようにするものである。このことに、ここに示した他の特徴や性能の中の一つとして、あるいはそれらとは別個に注目されたい。
【００５３】
更に、当業者ならば容易に分かるように、この方法に多少の変更を加えれば、矩形や略矩形の形状に加え、平行四辺形や菱形、台形、及び不等辺四辺形などの様々なパターンを識別しその位置を検出できる。このような変形例では、２本の対角線の１つ又は両方を検査する。これら２つの対角線は異なる長さを持っていると想定できる。更に、この方法は、ｎ辺からなる多角形一般の識別及び位置検出に拡張することができる。このためには、２ｎ個の等間隔のコンパス位置の極点を求め、交互に極点の位置にある頂点を探していけばよい。ｎが奇数の場合、求められる対角線は、直径的な（すなわち真反対の頂点を結ぶ）ものではないことに注意されたい。しかしながら、隣り合う頂点間又は隣り合わない頂点間の期待される距離（又はその組）は、ほぼどのようなｎ角形でも、画像中から多角形を識別するための本実施形態の方法に用いることができる。
【００５４】
図７は、グリフフィールド１１２（図１）を認識しそれをバイナリデータに変換するための一連の処理を示している。まず、グリフの格子が求められる（ステップ７１０）。基本的には、スキュー（斜方歪み）と寸法の情報を持つグリフ格子ベクトル（図８）を求める必要がある。この処理は、図９に図示されており、その詳しい説明は後ほど行う。次に、シード（種）グリフが見つけられる（ステップ７１２）。認識処理は、１つの「よい」グリフ、すなわちシードグリフ、を見つけることにより始まる。次に、シードグリフから順に隣を再帰的に調べていくことにより（図１２、１３参照）、すべてのグリフが検出される（ステップ７１４）。格子ベクトルがサーチの基準となり、画像空間からグリフ値の行列への写像処理を助ける。後に示すように、これらのステップはすべて、グリフフィールドの回転にかかわらず実行できる。
【００５５】
すべてのグリフの検出が終わると、グリフフィールド１１２自体の回転を検出する（ステップ７１６）。図１に示したように、好適なグリフ構成は＋４５°及び−４５°の向きの「スラッシュ」パターンを含んでいる。したがって、グリフフィールド１１２は、０°、９０°、１８０°及び２７０°の向きのときには、有効であるように見える。そこで、グリフフィールド１１２によって表されるバイナリパターンを処理して正しい回転位置（向き）を求める。１つの例としては、グリフフィールド１１２に同期パターンを埋め込む方法がある。この同期パターンは、フィールド１１２が正しい向きを向いているときにだけ、正しく再構成される。グリフフィールドの向きを特定する方法については、ヘクト（Ｈｅｃｈｔ）及びスターンズ（Ｓｔｅａｒｎｓ）に付与された米国特許第５，４４９，８９５号『セルフクロックグリフコードのための明示的な同期手法（EXPLICIT SYNCHRONIZATION FOR SELF-CLOCKING GRYPH CODES）』を参照されたい。この特許は、参照のために本明細書に組み込む。この米国特許の特に第１５〜１６欄に、回転方向の特定のための詳細な記述がある。別の方法として、折られた隅１２０（図１）の位置からグリフフィールド１１２の正しい向きを決定することもできる。
【００５６】
図８に示すように、グリフ画像８１０は、２つの格子並進ベクトル８１２及び８１４と、各格子点で表されるべき情報を示す２つ（又はそれ以上）のビットマップ８１６及び８１８とによって規定される。この定義は、固体物理の結晶の定義と類似している。グリフ画像を表すためのこの方法は、幅広く様々な構造のことを考慮しているが、更に任意の回転、寸法、格子、及びビットマップを取り扱うためのスキームも用意している。例えば、グリフ画像８１０の回転は、並進格子ベクトル８１２及び８１４の回転に対応する。並進ベクトルがグリフ画像の構築の際のグリフ中心からグリフ中心までの変位を規定するのと同様、並進ベクトルは認識処理の際のグリフ中心からグリフ中心までの変位を規定している。グリフ画像を格子と見ることにより、回転と寸法変化を扱い得る多彩なグリフフォーマットスキームが実現できる。
【００５７】
グリフ格子を求める方法は、グリフの局所的な隣のものを示す平均画像を構築し、この平均から格子ベクトルを求める、という処理に基づいている。好適な例では、この方法は次に示すようにして実装される（図９を参照）。
【００５８】
グリフ画像（すなわち境界線１１１の中の領域）において、画像内のいくつかの画素を、処理のためのシード画素として検出する（ステップ９１０）。これらシード画素は、例えば、その画像全体にわたって、Ｎ×Ｎ画素の格子上に離間配置される。ここで、Ｎは１０〜５０程度のオーダである（グリフ画像８１０全体でだいたい１００個のシード画素となるように、間隔が選択される）。
【００５９】
次に、各シード画素毎に、当該シードの最近傍部の画像における画像強度の極小部を求める（ステップ９１２）。シード画素から適切な距離の範囲（例えば１０画素分）内でそのような極小部が見つけられなかったら、次のシード画素の処理に移行する。極小部、すなわちビットマップ中での最も暗い点は、基本的にはグリフに相当する。
【００６０】
極小部が見つけられると、その極小部から１乃至２画素の範囲（すなわち中心部）と、その極小部から３乃至４画素の範囲（すなわち周辺部）との間に十分な画像コントラストがあるかどうかが判定される（ステップ９１４）。もしコントラストが、その極小部の周囲の平均的な画像強度（明るさ）と比較して小さすぎる場合は、その現在の極小部に関する以降の処理を取り止め、グリフ画像中の次のシード画素の処理に移行する（もちろん次のシード画素があればの話である）。このステップは、ノイズその他の非グリフ部による偽物の極小部を除去するためのものである。このステップは、望むならば、なくしてもよい。
【００６１】
コントラストが良好であれば、その極小部を含む部分のグレースケール画像が、コンポジット画像に追加される（ステップ９１６）。コンポジット画像は、最初は、値が０の画素のみによって満たされている。このコンポジット画像は、この処理の間に構築されるものであり、グリフ画像中の多数の極小部の周囲のビットマップを足し合わせたものとなる。コンポジット画像は、２０×２０画素のオーダの寸法である。
【００６２】
もし未処理のシード画素が残っていれば（ステップ９１８）、この処理が繰り返される。
【００６３】
すべてのシード画素についての極小部が見つけられると、コンポジット画像の解析が行われ（ステップ９２０）、各平均グリフ位置が求められる。例えば、コンポジット画像の中心は、必ず極小部である。なぜなら、コンポジット画像は、極小部を中心とする多数の画像から構築されているからである。その中心に最も近い極小部は、グリフ格子内における、グリフに最も近い隣のグリフの平均位置に対応する。これら極小部をコンポジット画像から求める（ステップ９２２）ことにより、グリフ格子の構造に関する知識が得られ、これから格子ベクトル８１２及び８１４が求められる（ステップ９２４）。
【００６４】
上述した図９の方法は、コンポジット画像を構成する際の平均操作の特性により、ロバスト性が高いものとなる。あらゆる信号の平均化処理と同様、コンポジット画像では、グリフの位置に対応する画素は、一貫して足し合わされるのに対し、画像ノイズの部分はそのようにはならない。実際、多数のグリフ（全体の５０％以上）が画像ノイズや他の像への上書きによりぼやけて不明瞭になっている場合でも、画像についての前述の平均グリフ格子パラメータはしっかりと求めることができた。更に、この処理は、画像がいかに歪んでいても機能する。
【００６５】
グリフの格子ベクトル８１２及び８１４から、サーチ方向リスト１０１０が生成される。図１０を参照のこと。サーチ方向リストは、画像空間１０１２とデータ空間１０１４とのそれぞれにおける、隣のグリフを見つけるための相対変位の情報のリストである。画像空間における既知のグリフから、サーチ方向リスト１０１０は、隣接グリフがあるべき位置に関する情報を提供する。画像空間における各変位（１０１６、１０１８、１０２０及び１０２２）に対応して、データ空間においてそれらに対応する変位（１０２４、１０２６、１０２８及び１０３０）が存在する。したがって、格子構造、回転及び寸法が既知の場合、画像空間内での相対移動は、データ空間における相対移動を変化させることなく、特定することができる。サーチ処理を規定するこの方法は、多様なグリフ格子、多様な回転、多様な寸法を処理することができる。サーチ方向リストは、２番目に近いグリフのサーチや、非直線的なサーチパターンなどのために拡張することもできる。
【００６６】
図１１を参照して、認識処理のためのシードグリフを見つけるための操作について説明する。よいシードグリフを見つけることが非常に重要である。もしシードグリフが実際には偽の中心であったならば、処理はすぐに失敗する。好適には、本処理では、少なくとも４つの隣接グリフをもつシードグリフを探す。この方法によれば、選んだシードグリフが偽物でないことについて幾分の保証が得られる。
【００６７】
シードグリフは、画像中のランダムな位置から見つけ出される。選択されたランダム位置（ステップ１１１０）において、３×３の近傍画素群に対して１組の相関フィルタが適用され、これにより１個のグリフの領域が覆われる（ステップ１１１２）。３×３近傍により、グリフ格子内のノイズや微小な変化が許容されるようになる。適用される相関フィルタは、格子ベクトル８１２及び８１４の算出により求められた画像スキュー（歪み）に依存する。もしスキューが  −２２．５から＋２２．５°の間であれば、次の相関フィルタ・カーネル、
【数５】
0004486193.tif 000006
が適用される。
【００６８】
スキューが  −４５°から−２２．５の間であれば、次の相関フィルタ・カーネル、
【数６】
0004486193.tif 000007
が適用される。
【００６９】
スキューが  ＋２２．５°から＋４５°の間であれば、次の相関フィルタ・カーネル、
【数７】
0004486193.tif 000008
が適用される。
【００７０】
２つの相関カーネルは、それぞれ個別に、グリフがあると期待される３×３近傍に適用される。グリフは典型的には黒に見えるので、２つの相関の最小値を調べ、それら２つの相関の差を求め（ステップ１１１４）、しきい値と比較する（ステップ１１１６）。すなわち、
【数８】
0004486193.tif 000009
である。ここで、*は相関演算を示す。もしｖの絶対値が、予め定められたしきい値より小さければ（ステップ１１１８）、その場所にはグリフは含まれない。もしｖが正の値であればグリフの値は０であり、ｖが負の値であればグリフの値は１である。
【００７１】
グリフが見つかると、本処理では、上述のサーチ方向リストを用いて隣のグリフを探す（ステップ１１２０）。そして、４つの隣接グリフを持つグリフを見つけたところで（ステップ１１２２）、このシードグリフ・サーチ処理は終了する。
【００７２】
認識処理の最後のステップは、個々のグリフの値を求め、その値を行列に登録する処理である。本実施形態では、サーチ方向リスト（図１０）を用いることにより、新たなグリフを見つけ、それらの値を行列上に正しくマッピングする。この処理は、図１３に示したが、シードグリフから開始される。シードグリフは動的データ行列に配置され、画像空間上及びデータ空間上でのそのシードグリフの位置がサーチ用のＦＩＦＯ（first-in first-out）リストに入れられる（ステップ１３１０）。
【００７３】
このサーチＦＩＦＯリストは、クラスタリング処理を制御するために用いられる。新たなグリフが見つかると、このグリフはサーチＦＩＦＯリストの末尾に加えられる。基本的に、サーチＦＩＦＯリストは、隣接グリフ群の探索が必要な画像位置のリストである。サーチＦＩＦＯリストが空の場合、処理が終了する。
【００７４】
シードグリフから出発して、ＦＩＦＯリストにグリフがあれば（ステップ１３１２）、このＦＩＦＯリストからグリフの位置が一つ取り出される（ステップ１３１４）。そしてそのグリフの値が求められ（ステップ１３１６）、その値がデータ行列中に配置される。グリフの値は、シードグリフを求めるのに用いたのと同様の相関カーネルを用いて求める。次に、外側に向かってサーチを行い、隣接グリフを探す（ステップ１３１８）。この探索は、サーチ方向リストを用いて行う（図１２（ａ）参照）。そして、隣接グリフ群がＦＩＦＯリストに加えられる（ステップ１３２０）。この方法では、既知のグリフのクラスタが生成され、このクラスタの外辺部の周囲に新たなグリフを見つける毎にクラスタが成長していく（図１２（ｂ））。この処理の結果、グリフ画像８１０を表す、すべてのデータ値からなるデータ行列１２１０が得られる。
【００７５】
この方法はいくつかの好ましい特徴を持っている。まず、境界が任意形状のグリフグループを取り扱うことができる。グリフブロックが矩形である必然性はない。第二に、この方法によれば、寸法や向き（回転）の変化をきれいに処理することができる。最後に、この方法は、強度勾配やグリフ上へのマーキングなどに対して耐性がある。なお、ここではＦＩＦＯを用いたが、ＬＩＦＯ（last-in first-out）スタックや、画像中での位置などのその他の順序づけスキームを用いたリスト、などを利用した方法を用いても、同様の処理を行うことができる。
【００７６】
最後に、既に説明したように、データ行列は、図１４に示すような手順で利用される。まず、上述のように、データ行列の回転の向きが特定される（ステップ１４１０）。次に、これに従って、データ行列中のバイナリ値が再配置される（ステップ１４１２）。この処理では、特定された向きに基づき、必要な行列の順序替えとデータ値の反転が行われる。この結果求められたデータから、サービスコードが抽出され（ステップ１４１４）、更にユーザコードが抽出され（ステップ１４１６）、これに基づき、図３で説明したようなサービスのための処理が行われる。
【図面の簡単な説明】
【図１】  本発明に係るグリフステッカーの一例を示す図である。
【図２】  グリフステッカーによって表現されるデータ構造の一例を示す図である。
【図３】  システムレベルのブロック図である。
【図４】  本発明に係るステッカー作成機能の高レベルの機能フローチャートである。
【図５】  本発明に係るステッカー処理機能の高レベルの機能フローチャートである。
【図６】  ステッカー検出処理の詳細を示すフローチャートである。
【図７】  デコード処理の詳細を示すフローチャートである。
【図８】  グリフ格子、グリフビットマップ及び格子ベクトルの説明のための図である。
【図９】  グリフ格子を求めるための処理手順を示すフローチャートである。
【図１０】  グリフのサーチに用いられるサーチ方向リストを説明するための図である。
【図１１】  シードグリフの探索処理の手順を示すフローチャートである。
【図１２】  グリフフィールドのすべてのグリフが検出されていくプロセスを模式的に示す図である。
【図１３】  シードグリフからすべてのグリフを見つけていく手順を示すフローチャートである。
【図１４】  グリフパターンのデコード処理の手順を示すフローチャートである。
【符号の説明】
１１０  グリフパターン、１１１  境界線、１１２  グリフフィールド、２１２  サービスコード、２１４  サービス引数、２１６  識別コード、３１０  フロントエンド部、３１２  データ入力部、３１４  識別処理部、３１６  データベースサーバ、３１９  バックエンド部、３２０  スキャナ、３２２  アクション処理部、３２４  出力装置。
【図１】
0004486193.tif 000010
【図２】
0004486193.tif 000011
【図３】
0004486193.tif 000012
【図４】
0004486193.tif 000013
【図５】
0004486193.tif 000014
【図６】
0004486193.tif 000015
【図７】
0004486193.tif 000016
【図８】
0004486193.tif 000017
【図９】
0004486193.tif 000018
【図１０】
0004486193.tif 000019
【図１１】
0004486193.tif 000020
【図１２】
0004486193.tif 000021
【図１３】
0004486193.tif 000022
【図１４】
0004486193.tif 000023