JP2012048711A - フォントマッチング - Google Patents

フォントマッチング Download PDF

Info

Publication number
JP2012048711A
JP2012048711A JP2011168993A JP2011168993A JP2012048711A JP 2012048711 A JP2012048711 A JP 2012048711A JP 2011168993 A JP2011168993 A JP 2011168993A JP 2011168993 A JP2011168993 A JP 2011168993A JP 2012048711 A JP2012048711 A JP 2012048711A
Authority
JP
Japan
Prior art keywords
glyph
result
prototype
computer
normalized
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011168993A
Other languages
English (en)
Other versions
JP5885956B2 (ja
Inventor
Bruce Quincy Hammond
ブルース クインシー ハモンド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Celartem Inc
Original Assignee
Celartem Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Celartem Inc filed Critical Celartem Inc
Publication of JP2012048711A publication Critical patent/JP2012048711A/ja
Application granted granted Critical
Publication of JP5885956B2 publication Critical patent/JP5885956B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/24Character recognition characterised by the processing or recognition method
    • G06V30/242Division of the character sequences into groups prior to recognition; Selection of dictionaries
    • G06V30/244Division of the character sequences into groups prior to recognition; Selection of dictionaries using graphical properties, e.g. alphabet type or font
    • G06V30/245Font recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Character Discrimination (AREA)

Abstract

【課題】フォントマッチングのための方法、コンピュータ読取り可能な媒体、および装置を提供する。
【解決手段】グリフが受け付けられ、処理される。受け付けたグリフの処理は、グリフの縮減、グリフの境界線の計算、およびグリフの規格化を含む。処理されたグリフは、保存されたプロトタイプイメージと比較される。この比較においては、処理されたグリフの少なくとも一つのプロトタイプイメージとの距離が特定され、特定された距離がソートされ、ソートされた距離に基づいて少なくとも一つのプロトタイプイメージが選択される。
【選択図】図4

Description

本発明は、フォントマッチングの技術に関する。
現在のフォント認識プログラムおよびアルゴリズムは、フォントの使用傾向をフォントのプロバイダあるいはマネージャに対して明らかにするように構成されている。例えば、フォントに関連付けられたメタデータが収集および解析され、ある特定のフォントセットが少なくとも一つの他のフォントセットに対してどのくらいの頻度で選択されているかを特定する。より一般化して言うと、メタデータが収集および解析され、ある特定の(演算)機能の別の(演算)機能に対する選択頻度が特定される。
一般にフォントプロバイダは、特定スタイルのフォントに名前を対応させることができる。印刷の分野では、Times New RomanやArialがフォントの一般的な例である。Times New Romanフォントにおける文字「a」とArialフォントにおける文字「a」では、様式的に異なって見えることがある。もし特定のタイプあるいはスタイルのフォントがある程度頻繁に使用されるのであれば、ユーザは当該フォントに一定の慣用レベルを与えることができる。しかしながら既に膨大な数のフォントスタイルが存在し、あるいは作り出されている。フォントの選択肢が増えるに従い、特定のフォント名を思い出したり特定のフォントを指定することが困難になってきている。
発明の態様についての基本的な理解を与えるための概要説明を以下に記す。この概要説明は発明の全体を要約するものではない。発明における重要な要素を特定することを意図したものでも、発明の範囲を画定することを意図したものでもない。この概要説明は、以降の詳細な説明の前置きとして、発明に係る幾つかの概念を簡略化した形式で示したものに過ぎない。
発明の一態様は、リポジトリの生成および維持に関する。リポジトリは少なくとも一つのフォントあるいはフォントグリフについて複数のプロトタイプイメージを含みうる。一つのプロトタイプイメージが単一のフォントグリフ(すなわち当該フォントについて定義された単一の文字)を含むようにしてもよい。
プロトタイプイメージは、少なくとも一つの形式、例えばビットマップ形式で前記リポジトリに保存されうる。プロトタイプイメージについて表示されるビットマップは1ビット深度を有するようにしてもよい。
プロトタイプイメージの境界線が計算されてもよい。これに加えてあるいは代えて、プロトタイプイメージが規格化されてもよい。規格化は当該プロトタイプイメージが所定の幅や高さを有するように行なわれうる。例えば、リポジトリ内の全てのプロトタイプイメージが同じ規格化された幅や高さを有するようにしてもよい。
発明の一態様は、リポジトリに保存されたプロトタイプイメージにグリフをマッチさせることに関し、当該グリフが属するフォントあるいは類似するフォントを特定する。
受け付けたグリフは1ビット深度のビットマップ形式に縮減されうる。受け付けたグリフと1ビット深度ビットマップに縮減されたグリフの少なくとも一方について境界線が計算されうる。
受け付けたグリフは規格化に供されうる。例えば規格化を行なうことによって、受け付けたグリフは所定の幅や高さを有するものとされうる。
リポジトリに保存された少なくとも一つのプロトタイプイメージと受け付けたグリフ(縮減と規格化を経たもの)が比較されて、少なくとも一つのマッチするフォントの候補が特定されうる。この比較は、受け付けたグリフ(縮減と規格化を経たもの)とリポジトリに保存された少なくとも一つのプロトタイプイメージの間の相違あるいは距離を示すスコアを演算することによって行なわれうる。
その他の詳細な事項および特徴は、以降の説明で明らかにする。発明は添付の特許請求の範囲により特定されるが、発明を構成する各種特徴は、添付の図面を含む開示全体を査読することにより明らかになるであろう。なお図面は発明の趣旨を例示的に説明するものに過ぎず、当該趣旨に対する限定的な解釈を何ら与えるものではない。各図において同様の要素には同一の参照番号が付与されている。
本発明の態様の少なくとも一つが実施されるシステムの例を示す図である。 本発明の態様の少なくとも一つが実施されるネットワーク環境の例を示す図である。 本発明の態様の少なくとも一つに係る方法を示す図である。 本発明の態様の少なくとも一つに係る方法を示す図である。 本発明の態様の少なくとも一つに係る方法を示す図である。 本発明の態様の少なくとも一つに係るプロトタイプイメージおよびグリフを示す図である。
開示の一部をなす添付の図面を参照しつつ、発明を実施するための形態の様々な例について以下説明する。発明の趣旨を逸脱しない限りにおいて、他の実施形態の採用や構造的・機能的な改変が可能であることは明らかである。
以降の説明においては要素間の様々な接続について言及するが、特に断りのない限りにおいてこれらの接続は直接、間接、無線、有線を含む一般的なものである。本明細書はこの点について限定することを意図していない。
発明の態様の少なくとも一つが実施されるシステムの例を図1に示す。本明細書における少なくとも一つの構成および態様は、コンピュータプログラムにより実施可能である。もしくはコンピュータプログラムをコンピュータ100と組み合わせて用いることにより、および/またはコンピュータプログラムをメモリ113に格納することにより実施可能である。
コンピュータ100は汎用演算装置を示し、例えばデスクトップコンピュータ、ラップトップコンピュータ、ネットブックコンピュータ、ネットワークサーバ、携帯演算装置、PDA、スマートフォン、携帯電話、分散型演算ネットワーク装置や、以下に説明するように動作するのに必要な要素や能力を備え、本発明に係る特殊用途装置として機能しうるあらゆる装置が挙げられる。
コンピュータ100は、CPU等のプロセッサ103、RAM等の不揮発性メモリ105、ROM等のブートメモリ107、少なくとも一つのネットワークインターフェース109、少なくとも一つの入出力ポート111、および不揮発性メモリ113を備える。
ネットワークインターフェース109の例としては、イーサネット(登録商標)、無線ネットワークインターフェース、モデム等が挙げられ、コンピュータ100はネットワークインターフェース109を通じて広域ネットワークやローカルエリアネットワーク(インターネット、LAN、WAN、PAN等)に接続できる。入出力ポート111の例としては、キーボード、マウス、モニタ、プリンタ、USBポート、シリアルポート、パラレルポート、IEEE 1394/Firewireポート等が挙げられる。不揮発性メモリ113の例としては、固定ディスク、光ディスク、ホログラフィックストレージ、リムーバブル記憶媒体、フラッシュドライブ等が挙げられる。
コンピュータ100は様々なプログラム、命令、アプリケーション、およびデータをメモリ113に格納できる。メモリ113は、OSソフトウェア115、フォントサーブレット117、データ119、およびフォントデータベース121を含んでいるがこれに限られるものではない。
フォントサーブレット117の例としては、少なくとも一つのプラグインや以下に述べる各種フォントソフトウェアが挙げられる。データ119の例としては、文書、ファイルや以下に述べる各種データが挙げられる。フォントデータベース121の例としては、少なくとも一つのフォントファイルや以下に述べる各種ファイルが挙げられる。
発明の態様の少なくとも一つは、コンピュータが処理可能なデータやコンピュータが実行可能な命令によって実施される。例えば、少なくとも一つのコンピュータや各種装置により実行されて少なくとも一つのフォントを出力としてディスプレイやプリンタといった装置に表示する少なくとも一つのプログラムモジュールが挙げられる。
一般にプログラムモジュールはルーティン、プログラム、オブジェクト、コンポーネント、データ構造等を含んでおり、コンピュータにおける少なくとも一つのプロセッサや各種処理装置により実行されることにより、特定のタスクを実行したり、特定の抽象データ形式を実装したりする。
コンピュータが実行可能な命令は、コンピュータが読み取り可能な媒体に記憶されうる。そうした媒体の例としては、ハードディスク、光ディスク、リムーバブル記憶媒体、ソリッドステートメモリ、RAM等が挙げられる。
プログラムモジュールの機能性は、様々な形で必要に応じ組み合わされ、また分配される。さらに当該機能性の少なくとも一部は、ファームウェアあるいはハードウェアの等価物により実現されうる。等価物の例としては、集積回路、フィールドプログラマブルゲートアレイ(FPGA)等が挙げられる。
特定のデータ構造は発明の態様の少なくとも一つを実施するのに効果的に用いられる。そのようなデータ構造は、ここに述べるコンピュータが実行可能な命令およびコンピュータが処理可能なデータの範疇である。
発明の態様の少なくとも一つが実施されるネットワーク環境200の例を図2に示す。ネットワーク環境200は、少なくとも1つのコンピュータを含む。コンピュータの例としては、ウェブディベロッパコンピュータ205、ウェブユーザコンピュータ210、ウェブドメインサーバ220、サーブレットホスト225、およびフォントサーバ230が挙げられる。またネットワーク環境200は、少なくとも一つのローカルエリアネットワーク(LAN)やインターネット等の少なくとも一つの広域ネットワーク(WAN)を含む。
少なくとも一つの態様において、ウェブディベロッパコンピュータ205は、ウェブディベロッパや、ウェブサイトやカスケードスタイルシート(CSS)コードをデザインする各種ユーザが使用するコンピュータである。CSSはスタイルシート言語であり、これによりウェブページのような構造化文書における少なくとも一つのパラメータが制御や変更を受ける。
例えば、ユーザはCSSを用いてウェブページに表示されるテキストのフォントやフォントスタイルを定義することができる。すなわちフォントやフォントスタイルコーディングを直接各ウェブページに埋め込んでいかねばならないのではなく、ウェブページが適当なCSSを呼び出しあるいは参照している。複数のウェブページが同じフォントやフォントスタイル、およびCSSで定義される各種様式属性を使用するのであれば、同じCSSを用いることができる。
ウェブユーザコンピュータ210は、インターネット215上で少なくとも一つのウェブサイトやウェブページを閲覧するウェブユーザにより使用されるコンピュータである。
ウェブドメインサーバ220は、少なくとも一つのウェブサイトやCSSコードが格納され、リモートの要求に応じて当該少なくとも一つのウェブサイトやCSSコードを提供するコンピュータである。
サーブレットホスト225は、少なくとも一つのフォント要求処理、フォント提供コンピュータプログラムやスクリプトが格納されるコンピュータである。
フォントサーバ230は、少なくとも一つのフォントや少なくとも一つのフォントデータベースが格納されるコンピュータである。
例えば、ウェブサイトディベロッパは、ウェブディベロッパコンピュータ205を用いてCSSコードを含むウェブサイトあるいはウェブページを設計あるいは開発する。次いでウェブサイトディベロッパは、当該ウェブサイトあるいはウェブページをインターネット215を経由してウェブドメインサーバ220にアップロードする。
上記に加えてあるいは代えて、ウェブサイトディベロッパや各種ユーザは、ドメインサーバ220上においてウェブサイトあるいはウェブページを、ウェブディベロッパコンピュータ205からリモートで開発することができる。
その後、ウェブユーザはウェブユーザコンピュータ210を用いてインターネット215経由で当該ウェブサイトあるいはウェブページにアクセスする。ウェブサイトあるいはウェブページにアクセスし、そこに含まれるCSSコードを実行することにより、ユーザはフォント要求を発行することができる。
フォント要求の発行の結果、ウェブユーザコンピュータ210やウェブドメインサーバ220はフォント要求をサーブレットホスト225に送信する。当該フォント要求はフォント要求サーバのアドレス、カスタマ識別子、セキュリティトークン、フォント名、フォントファイル名や、これらの組合せを含みうる。
フォント要求を受け取ると、サーブレットホスト225は当該フォント要求を処理する。当該処理には、フォント要求の構文解析、フォント要求サーバのアドレス、カスタマ識別子、セキュリティトークン、フォント名やフォントファイル名の評価が含まれうる。
当該フォント要求が無効あるいは未承認であるとサーブレットホスト225が判定すると、サーブレットホスト225はそれ以上の処理は行なわずに、当該フォント要求を拒否するメッセージやこれと同等の応答を送信する。
一方、当該フォント要求が有効あるいは承認されたものであるとサーブレットホスト225が判定すると、サーブレットホスト225は当該フォント要求に対応する少なくとも一つのフォントをフォントサーバ230に要求する。
当該要求に応じてフォントサーバ230は当該少なくとも一つのフォントをサーブレットホスト225、ウェブドメインサーバ220、ウェブユーザコンピュータ210の少なくとも一つへ送信する。
これに加えてあるいは代えて、フォントサーバ230から当該少なくとも一つのフォントを受け取ったサーブレットホスト225が、当該少なくとも一つのフォントをウェブドメインサーバ220とウェブユーザコンピュータ210の少なくとも一方に送信する構成としてもよい。
フォント要求に応じた当該少なくとも一つのフォントを受け取ると、ウェブユーザコンピュータ210は受け取ったフォントを用いてウェブサイトの表示や印刷をする。
ネットワーク環境200は、様々な機能を実行可能な各種コンピュータを含むものとして記載したが、同じ機能性を提供すべく単独あるいは組み合わせて用いられる、任意の数のコンピュータを含むように変更可能である。例えば、上記の機能の全てを実行可能な単一のコンピュータを用いてもよい。また少なくとも一人のユーザが少なくとも一つの端末やユーザインターフェースを通じて当該単一のコンピュータとやり取りをする構成としてもよい。
別の例として、第1のコンピュータがウェブディベロッパコンピュータ205およびウェブユーザコンピュータ210の全ての機能を実行するものとして用いられ、第2のコンピュータがウェブドメインサーバ220、サーブレットホスト225、およびフォントサーバ230の全ての機能を実行するものとして用いられるように構成してもよい。
発明の態様の少なくとも一つに係るリポジトリの生成および維持方法を図3に示す。リポジトリは少なくとも一つのデータベースを含んでおり、当該データベースは少なくとも一つの演算プラットフォームに含まれるか結合されている。例えば図1および図2を用いて説明した演算エンティティとのあらゆる組合せが可能である。
ステップ302において、プロトタイプイメージが受け付けられる。より詳細には、プロトタイプとなる少なくとも一つのグリフに対応する情報またはデータが受け付けられる。当該プロトタイプイメージは、少なくとも一つの通信媒体またはプロトコルを用いてデータファイルとして受け付けられる。
これに加えてあるいは代えて、プロトタイプイメージの受け付けは、必要に応じて少なくとも一つのコンピュータにおける当該プロトタイプイメージを生成するステップを含んでもよい。
プロトタイプイメージは、リポジトリに加えられるフォントタイプに対応し、記号、文字、数字等を表す少なくとも一つのグリフを含んでいる。
ステップ308において、受け付けられたプロトタイプイメージが表示されるとともに、少なくとも一つの形式(例えばビットマップ形式)に変換される。ビットマップ形式に加えてあるいは代えて、他の形式を用いてもよい。
ステップ314において、プロトタイプイメージはビット深度削減(リダクションあるいは縮減)に供される。例えば二値化処理(1ビット深度のビットマップへのリダクション)が適用される。カラー画像から1ビット深度画像へのリダクションは、例えばホストオペレーティングシステムに関連付けられたグラフィックサービスのようなエンティティにより実行される。リダクションは図4を用いて後述する比較処理を容易にするために行なわれる。
ステップ320において、プロトタイプイメージに係る境界線が計算される。境界線はプロトタイプイメージのサイズや広がりを定めるために用いられる。例えばテキスト文書の場合、どこで第1のグリフ(例えば文字)が終了し、どこから第2のグリフ(例えば数字)が始まるのかを定めるために計算された境界線が用いられる。ここで第1のグリフと第2のグリフは互いに隣接あるいは接近しているものとする。
一例として、システムは画像解析を実行し、グリフにおける最も左側の画素、最も右側の画素、最も上側の画素、および最も下側の画素を特定する。上記計算された境界線は、ステップ326に関して説明する規格化処理を容易にするために用いられる。
ステップ326において、プロトタイプイメージに対して規格化処理がなされる。規格化処理は、プロトタイプイメージを所定の幅と高さに規格化する処理を含んでもよい。幅は例えば128ピクセルとされるが、他の値(例えば32、64、256等)であってもよい。
また規格化は、長さや高さの寸法について行ない、幅についてはこれらに比例するようにしてもよい。ステップ320で計算された境界線は、リダクション後のプロトタイプイメージにおける比例性を確保するために用いることもできる。
ステップ332において、上記の処理の少なくとも一つを経たプロトタイプイメージがリポジトリに保存される。
複数のグリフの一部(サブセット)が、図3を用いて説明した処理に供されるように構成してもよい。この場合、残りのグリフについては破棄してもよいし、図3に示す処理の少なくとも一つに供されることとしてもよいが、ステップ332については一時的な保存とする。プロトタイプイメージにおける異なるグリフについては、異なる取扱いをすることが望ましい。
また例えば、メモリの記憶容量、処理リソースや電源容量(電池で動作する装置等)に制限のある実施形態においては異なる取り扱いをしてもよい。その場合、いずれのグリフを保存するかを決定するにあたっては様々な基準が用いられる。例えば、頻繁に使用されると目されるグリフ(母音や句読点等)を保存するようにしてもよいし、逆にほとんど使用されないと目されるグリフは廃棄したり、一時的な保存に留めるようにしてもよい。
図4に示す方法は、図3に示した方法において受け付けたグリフを少なくとも一つのプロトタイプイメージにマッチさせるために用いられる。
ステップ404において、解析に供されるグリフが受け付けられる。グリフは少なくとも一つの演算エンティティ(例えば図1および図2に示した演算エンティティの少なくとも一つ)を経由して受け付けられる。グリフはスキャン画像(ファクシミリ等)、電子メール、(テキストの)メッセージとして受け付けられてもよいし、ファイルや文書として受け付けられてもよい。
ステップ410において、受け付けたグリフは少なくとも一つの形式に変換される。ステップ410における変換処理は、図3におけるステップ308について実行される変換処理に対応するようにしてもよい。すなわちステップ308の変換処理がビットマップの生成を伴うものであるとき、ステップ410ではステップ404で受け付けたグリフのビットマップを生成する処理を含みうる。
ステップ416において、受け付けたグリフがビット深度の削減処理(リダクションあるいは縮減)に供される。ステップ416における変換処理は、図3におけるステップ314について実行されるリダクションに対応するように実行されるとよい。すなわちステップ314のリダクションが1ビット深度のビットマップを得るものであるとき、ステップ416では受け付けたグリフが1ビット深度のビットマップに変換される。
ステップ422において、受け付けたグリフについて境界線が計算される。計算された境界線は、当該グリフのサイズや広がりを定めるのに用いられる。また当該境界線は、ステップ428で説明する規格化処理を容易にするためにも用いられる。
ステップ428において、受け付けたグリフに対して規格化処理が実行される。規格化処理は、当該グリフを所定の幅や比例する高さに規格化する処理を含む。幅は例えば128ピクセルとされるが、他の値(例えば32、64、256等)であってもよい。
また規格化は、長さや高さの寸法について行ない、幅についてはこれらに比例するようにしてもよい。例えば、所定の幅と高さをリポジトリに保存されているプロトタイプイメージにおける所定の幅と高さに一致させることができる。ステップ422で計算された境界線は、リダクション処理後のプロトタイプイメージにおける比例性を確保するために用いることもできる。
ステップ428の規格化処理は、ステップ434について後述する比較処理を容易にするために、図3におけるステップ326で実行される規格化処理に対応するようにしてもよい。
ステップ434において、受け付けたグリフ(ステップ404〜428で実行される処理を経たもの)と、図3のステップ322でリポジトリに保存された少なくとも一つのプロトタイプイメージとの間で比較処理がなされる。プロトタイプイメージの少なくとも一つはステップ440において出力される構成としてもよい。
図5に示すアルゴリズムの例は、図4のステップ434および440における比較処理および出力処理に用いることができる。このアルゴリズムについて以下説明する。
ステップ1:リポジトリ内において選択したプロトタイプイメージについて、第1の変数(以下、error_accumulatorと称する)をゼロとする。error_accumulatorは、選択したプロトタイプイメージと受け付けたグリフとの間の相違または距離を表すスコアを示すものである。
ステップ2:第2の変数(以下、min_num_rowsと称する)の値を、選択したプロトタイプイメージの行数および受け付けたグリフの行数以下の数とする。
ステップ3:min_num_rowsの値に至るまでの各行について、受け付けたグリフと選択したプロトタイプイメージの排他的論理和(xor)を演算するとともに、演算結果が「1」または「真」である場合にerror_accumulatorのカウント値を保持(アキュムレート)する。このステップで行われる排他的論理和演算は、受け付けたグリフと選択したプロトタイプイメージ間における画素ごとの排他的論理和をとることに相当する。各画素における演算結果が「1」または「真」である場合とは、当該画素が「オン」または「黒」である場合に相当し、演算結果が「0」または「偽」である場合とは、当該画素が「オフ」または「白」である場合に相当する。
ステップ4:受け付けたグリフと選択したプロトタイプイメージのいずれか(行数の多い方)において、ステップ3で比較の対象とされた行以外の各行についてSETビット数(例えばグレースケール画像の場合、当該画像において黒色を呈しているビットの数)をカウントし、カウント値をerror_accumulatorに加算する。
ステップ5:選択したプロトタイプイメージのスコアとしてerror_accumulatorの値を保存する。
ステップ6:リポジトリに保存されているプロトタイプイメージの各候補について上記ステップ1〜5を繰り返し、全てのプロトタイプイメージの候補について処理を行なったかを判定する。プロトタイプイメージの候補は、リポジトリに保存されているプロトタイプイメージの全てであっても一部であってもよい。
ステップ7:ステップ5で保存されたスコアをソートし、プロトタイプイメージの各候補に係るスコアのリストを得る。
ステップ8:リスト中のスコアのうち最も値の低いものを特定する。これは受け付けたグリフに最もマッチするプロトタイプイメージに対応する。当該プロトタイプイメージは出力に供される。表示装置における表示スクリーン(コンピュータモニタ等)、電子メール、テキストメッセージ、文書、音声メッセージ等の少なくとも一つを通じて出力がなされる構成とすることができる。
図6は、図5に係る上記ステップ1〜5を視覚的に示したものである。図6においては、プロトタイプイメージは3行3列の画素から成り、略X字形状を呈している。一方、受け付けられて図4に係る処理を経たグリフは4行3列の画素から成る。この場合、図5のステップ2で特定される最小行数は、プロトタイプイメージの3行に対応する3となる。
図5のステップ3により、上記3行の各々について、プロトタイプイメージと受け付けたグリフとの間で画素単位の排他的論理和演算がなされる。上から3行についての演算結果を図6における「XOR演算結果」に示す。1行目かつ3列目の画素が黒くなっているのは、当該プロトタイプイメージにおける対応画素が「オン」または「黒」であり、当該グリフにおける対応画素が「オフ」または「白」であることによる演算結果を反映してのことである。図5のステップ3完了に伴い、この排他的論理和演算に基づいてerror_accumulatorは値「1」を持つことになる。
さらに図5のステップ4により、上記グリフの4行目における「オン」または「黒」の画素の数が加算される。「XOR演算結果」における4行目かつ2列目の画素が黒くなっているのは、当該グリフの4行目かつ2列目の画素が「オン」または「黒」であることによる演算結果を反映してのことである。よって図5のステップ4によりerror_accumulatorの値が1だけ加算される。
すなわち図5のステップ4完了に伴い、error_accumulatorの値は「2」となり、図5のステップ5において、このプロトタイプイメージについてのerror_accumulatorの値として「2」が保存される。
図5のステップ6において、図6に係る上記の処理は他のプロトタイプイメージの候補(図示せず)について繰り返し行なわれ、図5のステップ7および8において、いずれのプロトタイプイメージの候補が受け付けたグリフに対して最も低いスコアを有するのかが特定される。
図6に示したのは一例に過ぎず、異なるプロトタイプイメージやグリフが用いられうる。例えば、図6に示したプロトタイプイメージとグリフの幅は、図示の簡略のために3画素としたのであって、異なる値であってもよい。
上記の方法および構成は変更が可能である。例えば、「ベストフィット」する結果を得たり、正確性を向上させるために、図3および図4に示した方法はマルチパスで実行される構成としてもよい。
図3のステップ320や図4のステップ422における境界線の計算は、増減といった調整や修正が適宜可能である。プロトタイプイメージと受け付けたグリフの一方を他方に対して変位させたり傾斜させたりする際に、そのような調整が行なわれる。計算された境界線の少なくとも一つについてオフセット値を加算あるいは減算することにより調整が行なわれる。計算された境界線に1以外の数を乗算して調整を行なってもよい。1より小さな数を乗ずると境界線が縮小し、1より大きな数を乗ずると境界線が拡大する。
ビット深度の削減(図3のステップ314および図4のステップ416)に係る技術は修正・変更することができる。例えば、二値化にあたっては、50%閾値(ビットが黒なら「オン」、白なら「オフ」と扱う)ではなく、異なる閾値を用いてもよい。例えば、現実の使用環境で問題となる印刷インク色や用紙に係る要因を補うために75%閾値を用いてもよい。受け付けたグリフにおけるビットのオンオフ状態によく適合するように異なる閾値を用いればよい。
リダクション処理においては、必要に応じて最近傍アルゴリズムを用いてもよい。例えば、ある画素へのビット値の割り当ては、受け付けたグリフの対応する位置と当該位置の近傍位置の双方についての関数としてもよい。このようにしてフィルタリングアルゴリズムを効果的に採用あるいは使用することにより、当該グリフ中の転移点を平均化あるいは平滑化する効果が得られる。
図4に示したアルゴリズムを適用することにより受け付けたグリフが変位(回転等)される構成としてもよい。そのような変位(回転等)はグリフの生成における機械的あるいは人的エラーを補うために用いうる。例えば、グリフがスキャン処理の結果として生成された場合、スキャン時に発生した不慮のグリフの回転を補償すべく、当該グリフに対して回転処理が実行されうる。
図5のステップ8で決定された最小スコアが使用されるプロトタイプイメージに対応付けられるが、当該最小スコアの代わりに別のスコアを用いた方がよい場合もある。例えば、最小スコアと次に小さなスコアの差が閾値を下回る場合に、視聴覚的なプロンプトとして最小スコアと次に小さなスコアに対応するプロトタイプイメージを表示し、ユーザにいずれか一方を選択させるように構成してもよい。
いずれのプロトタイプイメージを使用するかを決定するにあたり、ライセンス期間が考慮される構成としてもよい。例えば、図5のステップ8における最小スコアがライセンス期間に係る煩わしさを伴うプロトタイプイメージに対応し、一方で次に小さなスコアがライセンス期間に関して好ましいプロトタイプイメージに対応する場合がありうる。このような場合、2つのプロトタイプイメージのライセンス期間の差が閾値を上回るときに、次に小さなスコアに対応するプロトタイプイメージが使用されるようにしてもよい。
上記の基準(閾値の使用、ライセンス期間等)を、他の基準と組み合わせてスコア間の関係を絶つために用いてもよい。
本明細書に記載の様々な発明の態様が方法、装置や、コンピュータが実行可能な命令を格納したコンピュータ読取り可能な媒体として実施しうることは当業者にとって明らかなことである。よってこれらの態様は、全てがハードウェアの実施形態、全てがソフトウェアの実施形態、全てがファームウェアの実施形態、またはソフトウェア、ハードウェア、およびファームウェアを任意の形式で組み合わせた実施形態をとりうる。
また本明細書に記載したデータやイベントを表す各種信号は、送信元と送信先の間を信号伝達媒体を通じて光や電磁波の形で伝送される。信号伝達媒体の例としては、金属線、光ファイバや無線通信媒体(大気や宇宙等)が挙げられる。
コンピュータ読み取り可能な媒体は、トランジトリな媒体とトランジトリでない媒体を含みうる。
上述の各種方法および行為は少なくとも一つの演算サーバと少なくとも一つのネットワークにまたがって動作可能である。機能はあらゆる方法で分散されてもよいし、単一の演算装置(サーバ、クライアントコンピュータ等)に実装されてもよい。受け付けたグリフを少なくとも一つのプロトタイプイメージの候補にマッチさせるために適宜の技術が用いられうる。
上記の方法論的行為および処理は特定の機械や装置と結合されうる。例えばユーザコンピュータやサーバ等は、本発明の様々な態様において用いられて受け付けたグリフを少なくとも一つのプロトタイプイメージの候補にマッチさせる。
少なくとも一つのコンピュータは、少なくとも一つのプロセッサと、命令を格納するメモリとを備えており、当該命令が実行されることにより、上記の方法論的行為および処理が行なわれる。
上記の方法論的行為および処理は、あるもの(受け付けたグリフ)を別の状態や別のもの(少なくとも一つのプロトタイプイメージに関連付けられた性質や属性を有する、表示されるグリフ)に変えるための様々な機能を実行しうる。
発明の各種態様を、実施形態の例示を通じて説明してきたが、本明細書の開示に基づいて、添付した特許請求の範囲の記載から逸脱しない範囲において他の実施形態、変形や変更が可能であることは、当業者にとって明らかである。例えば、図面において例示した各ステップは、図示した順序以外でも実行されうる。また図示した少なくとも一つのステップは、発明の態様によっては任意に実行されるものとしてよい。

Claims (20)

  1. グリフを受け付け、
    受け付けた前記グリフを所定の形式に縮減し、
    縮減した前記グリフを規格化し、
    規格化した前記グリフを複数のプロトタイプイメージと比較し、
    前記比較に基づいて、前記複数のプロトタイプイメージの少なくとも一つを出力する、方法。
  2. 前記縮減においては、受け付けた前記グリフを1ビット深度のビットマップ形式に縮減する、請求項1に記載の方法。
  3. 前記規格化においては、縮減した前記グリフを所定の幅と比例する高さに規格化する、請求項1に記載の方法。
  4. 前記複数のプロトタイプイメージの各々は前記所定の幅に規格化される、請求項3に記載の方法。
  5. 前記複数のプロトタイプイメージを、さらにリポジトリに保存する、請求項1に記載の方法。
  6. 前記比較においては、
    規格化した前記グリフの行数と前記複数のプロトタイプイメージから選択した一つの行数を特定し、
    前記行数の少ない方の分だけ、規格化した前記グリフの画素と、前記選択したプロトタイプイメージの対応する画素との排他的論理和をとった結果を求め、
    前記排他的論理和の結果を保持し、
    規格化した前記グリフおよび前記選択したプロトタイプイメージのうち、前記排他的論理和をとられなかった各行について「オン」である画素の数を前記結果に加算し、
    加算された前記結果を保存する、請求項1に記載の方法。
  7. 前記比較においては、
    前記複数のプロトタイプイメージから少なくとも2番目に選択したものの行数を特定し、
    規格化した前記グリフの行数と、前記少なくとも2番目に選択したプロトタイプイメージの行数の少ない方の分だけ、規格化した前記グリフの画素と、前記少なくとも2番目に選択したプロトタイプイメージの対応する画素との排他的論理和をとった第2の結果を求め、
    前記排他的論理和の第2の結果を保持し、
    規格化した前記グリフおよび前記少なくとも2番目に選択したプロトタイプイメージのうち、前記排他的論理和をとられなかった各行について「オン」である画素の数を前記第2の結果に加算し、
    加算された前記第2の結果を保存し、
    前記結果と前記第2の結果の小さい方を特定する、請求項6に記載の方法。
  8. 前記出力においては、特定された前記結果と前記第2の結果の小さい方に対応するプロトタイプイメージを出力する、請求項7に記載の方法。
  9. 受け付けた前記グリフの境界線をさらに計算し、
    前記規格化は、計算した前記境界線に基づいて行なう、請求項1に記載の方法。
  10. 命令を格納したトランジトリでないコンピュータ読取り可能な媒体であって、当該命令がコンピュータに実行されることにより、当該コンピュータに
    グリフを受け付けさせ、
    受け付けた前記グリフを所定の形式に縮減させ、
    縮減した前記グリフを規格化させ、
    規格化した前記グリフを複数のプロトタイプイメージと比較させ、
    前記比較に基づいて、前記複数のプロトタイプイメージの少なくとも一つを出力させる、トランジトリでないコンピュータ読取り可能な媒体。
  11. 前記命令が前記コンピュータに実行されることにより、当該コンピュータに受け付けた前記グリフを1ビット深度のビットマップ形式に縮減させる、請求項10に記載のトランジトリでないコンピュータ読取り可能な媒体。
  12. 前記命令が前記コンピュータに実行されることにより、当該コンピュータに縮減した前記グリフを所定の幅と比例する高さに規格化させる、請求項10に記載のトランジトリでないコンピュータ読取り可能な媒体。
  13. 前記命令が前記コンピュータに実行されることにより、当該コンピュータに
    規格化した前記グリフの行数と前記複数のプロトタイプイメージから選択した一つの行数を特定させ、
    前記行数の少ない方の分だけ、規格化した前記グリフの画素と、前記選択したプロトタイプイメージの対応する画素との排他的論理和をとった結果を求めさせ、
    前記排他的論理和の結果を保持させ、
    規格化した前記グリフおよび前記選択したプロトタイプイメージのうち、前記排他的論理和をとられなかった各行について「オン」である画素の数を前記結果に加算させ、
    加算された前記結果を保存させる、請求項10に記載のトランジトリでないコンピュータ読取り可能な媒体。
  14. 前記命令が前記コンピュータに実行されることにより、当該コンピュータに
    前記複数のプロトタイプイメージから少なくとも2番目に選択したものの行数を特定させ、
    規格化した前記グリフの行数と、前記少なくとも2番目に選択したプロトタイプイメージの行数の少ない方の分だけ、規格化した前記グリフの画素と、前記少なくとも2番目に選択したプロトタイプイメージの対応する画素との排他的論理和をとった第2の結果を求めさせ、
    前記排他的論理和の第2の結果を保持させ、
    規格化した前記グリフおよび前記少なくとも2番目に選択したプロトタイプイメージのうち、前記排他的論理和をとられなかった各行について「オン」である画素の数を前記第2の結果に加算させ、
    加算された前記第2の結果を保存させ、
    前記結果と前記第2の結果の小さい方を特定させる、請求項13に記載のトランジトリでないコンピュータ読取り可能な媒体。
  15. 少なくとも一つのプロセッサと、命令を格納するメモリとを備え、当該命令が前記少なくとも一つのプロセッサに実行されることにより、
    グリフを受け付け、
    受け付けた前記グリフを所定の形式に縮減し、
    縮減した前記グリフを規格化し、
    規格化した前記グリフを複数のプロトタイプイメージと比較し、
    前記比較に基づいて、前記複数のプロトタイプイメージの少なくとも一つを出力する、装置。
  16. 前記命令が前記少なくとも一つのプロセッサに実行されることにより、受け付けた前記グリフを1ビット深度のビットマップ形式に縮減する、請求項15に記載の装置。
  17. 前記命令が前記少なくとも一つのプロセッサに実行されることにより、縮減した前記グリフを所定の幅と比例する高さに規格化する、請求項15に記載の装置。
  18. 前記命令が前記少なくとも一つのプロセッサに実行されることにより、
    規格化した前記グリフを回転し、
    回転した前記グリフと前記複数のプロトタイプイメージとを比較する、請求項15に記載の装置。
  19. 前記命令が前記少なくとも一つのプロセッサに実行されることにより、
    受け付けた前記グリフの境界線を計算し、
    計算した前記境界線に基づいて前記規格化を行ない、
    計算した前記境界線をオフセット値だけ変位させ、
    変位した前記境界線に基づいて縮減した前記グリフを規格化し、
    縮減および規格化した前記グリフを、変位した前記境界線に基づいて、前記複数のプロトタイプイメージと比較し、
    前記比較に基づいて、受け付けた前記グリフに最もマッチする少なくとも一つのプロトタイプイメージを前記複数のプロトタイプイメージから選択して特定し、
    特定された前記少なくとも一つのプロトタイプイメージを出力する、請求項15に記載の装置。
  20. 前記命令が前記少なくとも一つのプロセッサに実行されることにより、
    受け付けた前記グリフを最近傍アルゴリズムに基づいて縮減する、請求項15に記載の装置。
JP2011168993A 2010-08-02 2011-08-02 フォントマッチング Active JP5885956B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/848,246 US8488886B2 (en) 2010-08-02 2010-08-02 Font matching
US12/848,246 2010-08-02

Publications (2)

Publication Number Publication Date
JP2012048711A true JP2012048711A (ja) 2012-03-08
JP5885956B2 JP5885956B2 (ja) 2016-03-16

Family

ID=44910037

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011168993A Active JP5885956B2 (ja) 2010-08-02 2011-08-02 フォントマッチング

Country Status (4)

Country Link
US (1) US8488886B2 (ja)
EP (1) EP2416281A3 (ja)
JP (1) JP5885956B2 (ja)
CN (1) CN102375883B (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102681978A (zh) * 2012-05-15 2012-09-19 深圳市万兴软件有限公司 一种在pdf文档中显示文本的方法及系统
CN112052647A (zh) * 2019-06-05 2020-12-08 珠海金山办公软件有限公司 一种文档编辑方法、装置、电子设备和可读存储介质
US11687626B2 (en) 2020-06-17 2023-06-27 Capital One Services, Llc System and method for securing a browser against font usage fingerprinting

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5091968A (en) * 1990-12-28 1992-02-25 Ncr Corporation Optical character recognition system and method
JPH0484380A (ja) * 1990-07-27 1992-03-17 Ricoh Co Ltd 文字認識装置
JPH04219883A (ja) * 1990-12-20 1992-08-10 Nec Corp 活字文字認識装置
JPH0793481A (ja) * 1993-09-20 1995-04-07 Toshiba Corp ドキュメント読取り装置
JPH1021335A (ja) * 1996-07-02 1998-01-23 Fuji Photo Film Co Ltd 文字認識装置
JPH11203461A (ja) * 1997-10-28 1999-07-30 Ricoh Co Ltd 図形分類方法、図形検索方法、図形分類システム、図形検索システム、図形分類用特徴抽出方法、図形分類用表作成方法、情報記録媒体、図形間の類似度又は相異度の評価方法、図形正規化方法、及び、図形間対応付け方法
JP2000076378A (ja) * 1998-08-27 2000-03-14 Victor Co Of Japan Ltd 文字認識方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237627A (en) * 1991-06-27 1993-08-17 Hewlett-Packard Company Noise tolerant optical character recognition system
US6337924B1 (en) * 1999-02-26 2002-01-08 Hewlett-Packard Company System and method for accurately recognizing text font in a document processing system
EP1093058A1 (en) * 1999-09-28 2001-04-18 Cloanto Corporation Method and apparatus for processing text and character data
US7907783B2 (en) * 2007-01-24 2011-03-15 Samsung Electronics Co., Ltd. Apparatus and method of matching symbols in a text image coding and decoding system
JP4123299B1 (ja) * 2007-02-21 2008-07-23 富士ゼロックス株式会社 画像処理装置及び画像処理プログラム
US8224092B2 (en) * 2008-07-08 2012-07-17 Xerox Corporation Word detection method and system
JP2010224145A (ja) * 2009-03-23 2010-10-07 Seiko Epson Corp 情報処理装置、制御装置及びプログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0484380A (ja) * 1990-07-27 1992-03-17 Ricoh Co Ltd 文字認識装置
JPH04219883A (ja) * 1990-12-20 1992-08-10 Nec Corp 活字文字認識装置
US5091968A (en) * 1990-12-28 1992-02-25 Ncr Corporation Optical character recognition system and method
JPH0793481A (ja) * 1993-09-20 1995-04-07 Toshiba Corp ドキュメント読取り装置
JPH1021335A (ja) * 1996-07-02 1998-01-23 Fuji Photo Film Co Ltd 文字認識装置
JPH11203461A (ja) * 1997-10-28 1999-07-30 Ricoh Co Ltd 図形分類方法、図形検索方法、図形分類システム、図形検索システム、図形分類用特徴抽出方法、図形分類用表作成方法、情報記録媒体、図形間の類似度又は相異度の評価方法、図形正規化方法、及び、図形間対応付け方法
JP2000076378A (ja) * 1998-08-27 2000-03-14 Victor Co Of Japan Ltd 文字認識方法

Also Published As

Publication number Publication date
US8488886B2 (en) 2013-07-16
CN102375883A (zh) 2012-03-14
JP5885956B2 (ja) 2016-03-16
CN102375883B (zh) 2016-04-06
EP2416281A2 (en) 2012-02-08
EP2416281A3 (en) 2014-01-22
US20120027308A1 (en) 2012-02-02

Similar Documents

Publication Publication Date Title
US7623710B2 (en) Document content and structure conversion
US9697423B1 (en) Identifying the lines of a table
US9317777B2 (en) Analyzing font similarity for presentation
RU2634195C1 (ru) Способ и устройство для определения пригодности документа для оптического распознавания символов (ocr)
CN112861648B (zh) 文字识别方法、装置、电子设备及存储介质
US20110276872A1 (en) Dynamic font replacement
JP5664174B2 (ja) 持ち運び可能な電子ファイルからキャラクタの外接矩形を抽出する装置及び方法
JP2017134822A (ja) 箇条書きリスト
US20210064859A1 (en) Image processing system, image processing method, and storage medium
JP5412903B2 (ja) 文書画像処理装置、文書画像処理方法および文書画像処理プログラム
US20170161595A1 (en) Direct character recognition from page description language document
JP5885956B2 (ja) フォントマッチング
US9864750B2 (en) Objectification with deep searchability
US9798724B2 (en) Document discovery strategy to find original electronic file from hardcopy version
JP2019125353A (ja) 電子文書中の文字列塊を推測する方法
US10163004B2 (en) Inferring stroke information from an image
US20200311059A1 (en) Multi-layer word search option
JP7219011B2 (ja) 表に関するタイプセットネススコア
US20230177251A1 (en) Method, device, and system for analyzing unstructured document
US20150186758A1 (en) Image processing device
US11972208B2 (en) Information processing device and information processing method
US20190005038A1 (en) Method and apparatus for grouping documents based on high-level features clustering
US20200304683A1 (en) Image processing apparatus and non-transitory computer readable medium
US20240078270A1 (en) Classifying documents using geometric information
CN108509955B (zh) 用于字符识别的方法、系统和非瞬时计算机可读介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140731

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150526

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20150527

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150826

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160119

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160210

R150 Certificate of patent or registration of utility model

Ref document number: 5885956

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250