本開示は、マルチタスク学習フレームワークを採用して、フォント分類を改善し、グリフ内容のクラス内変動により引き起こされる好ましくない副作用を取り除くフォント認識システムの1つまたは複数の実施形態について説明する。詳細には、フォント認識システムは、重み予測ニューラルネットワークを使用してハイブリッドフォント認識ニューラルネットワークをトレーニングして、複雑なクラス内変化を有するグリフを伴うフォント(たとえば、かなおよび漢字の変化の混合物を有する日本語フォント)に関する総合的フォント認識を改善する。いくつかの実施形態では、フォント認識システムは、システムの初期化の役割を果たす一般的なグリフを認識するための第1の構成要素、特有のグリフタイプを認識するための第2の構成要素、ならびに第1および第2の構成要素の出力に対応する重みを予測するための第3の構成要素を含む3つの構成要素を含む。第1および第2の構成要素の出力を重み付けし、組み合わせて、最終フォント予測を形成することにより、フォント認識システムは、フォント認識能力を改善する。
例示するために、1つまたは複数の実施形態では、フォント認識システムは、第1のグリフタイプ(たとえば、日本語かなグリフ)を含む第1組のトレーニングテキスト画像を使用して、第1のフォント認識ニューラルネットワークをトレーニングしてフォントを分類する。さらに、フォント認識システムは、第2のグリフタイプ(たとえば、日本語漢字グリフ)を含む第2組のトレーニングテキスト画像を使用して、第2のフォント認識ニューラルネットワークをトレーニングしてフォントを分類する。さらに別の実施形態では、第1組のトレーニングテキスト画像は、複数のグリフタイプ(たとえば、日本語の漢字とかなの両方のグリフ)を含むが、その一方で、第2組のトレーニングテキスト画像は、第2のグリフタイプだけを含む。これらのさらに別の実施形態では、第1のフォント認識ニューラルネットワークは、より一般的な認識ネットワークであり、第2のフォント認識ニューラルネットワークは、特有の、または専用の認識ネットワークである。
第1および第2のフォント認識ニューラルネットワークをトレーニングすると、フォント認識システムは、重み予測ニューラルネットワークを含むハイブリッドフォント認識ニューラルネットワークを生成する。詳細には、1つまたは複数の実施形態では、フォント認識システムは、第1および第2のフォント認識ニューラルネットワークに基づき重み予測ニューラルネットワークをトレーニングして、第1のフォント認識ニューラルネットワークが第2のフォント認識ニューラルネットワークよりもトレーニングテキスト画像に関してよりよいフォント分類を出力する第1のフォント分類確率を予測する。いくつかの実施形態では、重み予測ニューラルネットワークはまた、第2のフォント認識ニューラルネットワークが第1のフォント認識ニューラルネットワークよりもトレーニングテキスト画像に関してよりよいフォント分類確率を出力する第2のフォント分類確率を予測する。
具体的には、1つまたは複数の実施形態では、ハイブリッドフォント認識ニューラルネットワーク内部で重み予測ニューラルネットワークをトレーニングするとき、フォント認識システムは、第1のフォント認識ニューラルネットワーク、第2のフォント認識ニューラルネットワーク、および重み予測ニューラルネットワークにトレーニングテキスト画像を提供する。第1および第2のフォント認識ニューラルネットワークはそれぞれ、フォントを分類し、かついくつかの既知フォントに対応する、フォント確率ベクトルを出力する。重み予測ニューラルネットワークは、第1および第2のフォント認識ニューラルネットワークに関する2つのフォント分類確率を含む2次元予測ベクトルを出力する。フォント認識システムは、第1のフォント分類確率により第1のフォント認識ニューラルネットワークからの第1のフォント確率ベクトルを重み付けする。フォント認識システムは、第2の分類確率により第2のフォント確率ベクトルを重み付けする。次いで、フォント認識システムは、重み付きの第1および第2のフォント分類確率ベクトルを組み合わせることによりハイブリッドフォント確率を生成する。
さらに、1つまたは複数の実施形態では、フォント認識システムは、ニューラルネットワークに分類誤差損失を戻して提供することにより、誤差逆伝播フィードバックおよびエンド・ツー・エンド学習を使用して、ハイブリッドフォント認識ニューラルネットワークをトレーニングする。たとえば、フォント認識システムは、フォント認識ニューラルネットワークがすでにトレーニングされているので、小さな学習率で誤差損失を提供して、フォント認識ニューラルネットワークを精密にトレーニング(すなわち、微調整)する。しかしながら、重み予測ニューラルネットワークは最初からトレーニングされているので、フォント認識システムは、重み予測ニューラルネットワークに大きな学習率で誤差損失を提供して、重み予測ニューラルネットワークが所与のテキスト画像に関してフォント認識ニューラルネットワークに対して正確なフォント分類予測を行うことを可能にする。
いくつかの実施形態では、ハイブリッドフォント認識ニューラルネットワークは、3つ以上のフォント認識ニューラルネットワークを含む。たとえば、ハイブリッドフォント認識ニューラルネットワークは、フォント認識ニューラルネットワークの間でフォント分類確率予測を比例して分割する、重み予測ニューラルネットワークに結合した任意の数のフォント認識ニューラルネットワークを含むことができる。また、含まれるフォント認識ニューラルネットワークの数とは無関係に、ハイブリッドフォント認識ニューラルネットワークは、単一のハイブリッドフォント確率ベクトルおよび単一のフォント分類損失モデルを使用してトレーニングする。
フォント認識システムはまた、トレーニングされたハイブリッドフォント認識ニューラルネットワークを使用して、入力テキスト画像内のフォントを識別する。たとえば、さまざまな実施形態では、フォント認識システムは、入力フォントを含む入力テキスト画像を受け取る。フォント認識システムは、入力テキスト画像を、第1のトレーニングされたフォント認識ニューラルネットワーク、第2のトレーニングされたフォント認識ニューラルネットワーク、およびトレーニングされた重み予測ニューラルネットワークに提供する。第1のトレーニングされたフォント認識ニューラルネットワークは、第1のフォント確率ベクトルを出力し、第2のトレーニングされたフォント認識ニューラルネットワークは、第2のフォント確率ベクトルを出力し、トレーニングされた重み予測ニューラルネットワークは、第1のフォント分類確率および第2のフォント分類確率で出力する。言及したように、第1のフォント分類確率は、第1のトレーニングされたフォント認識ニューラルネットワークが第2のトレーニングされたフォント認識ニューラルネットワークよりも入力フォントに関してよりよいフォント分類を出力する確率を示し、第2のフォント分類確率に関して逆もまた同様である。
さらに別の実施形態では、フォント認識システムは、第1のフォント確率ベクトル、第1のフォント分類確率、第2のフォント確率ベクトル、および第2のフォント分類確率に基づき、入力フォントに関するハイブリッドフォント確率ベクトルを生成する。いくつかの実施形態では、フォント認識システムは、1から第1のフォント分類確率を減算することにより第2のフォント分類確率を決定する。
ハイブリッドフォント確率ベクトルを使用して、フォント認識システムは、既知フォントの中から入力デジタルフォントを識別する。具体的には、さまざまな実施形態では、ハイブリッドフォント確率ベクトルは、入力フォントと1組の既知フォント内の各フォントとの間の適合確率を示し、その結果、フォント認識システムは、フォント確率ベクトルの中で最も高い適合確率を有する既知フォントとして入力フォントを識別する。フォント認識システムは、次に最も高い適合確率を有する既知フォントを類似フォント(たとえば、上位5つの適合フォント)として識別することができる。
すでに言及したように、フォント認識システムは、従来のシステムおよび方法よりも多くの利点および利益を提供する。一例として、フォント認識システムは、グリフ内容のクラス内変動により生じる好ましくない副作用を従来、欠点として持つフォント(たとえば、漢字およびかなを有する日本語フォント)をトレーニングし、識別する。詳細には、(異なるグリフタイプを有する異なる組のテキスト画像で最初にトレーニングする)複数の別個のフォント認識ニューラルネットワーク、および重み予測ニューラルネットワークを採用することにより、フォント認識システムは、ハイブリッドフォント認識ニューラルネットワークをトレーニングして、グリフ内容のクラス内変動の副作用を取り除く。具体的には、フォント認識システムは、一般的なフォント認識ネットワークおよび特有のフォント認識ネットワークを最初にトレーニングして、次いで、重み予測ニューラルネットワークを使用して、一般的なフォント認識ネットワークおよび特有のフォント認識ネットワークを組み合わせることにより、グリフ内容のクラス内変動の副作用を取り除くことが可能である。
さらに、別の例として、多くの実施形態では、フォント認識システムは、トレーニング・フォント・セットに含まれない入力テキスト画像内のテキストを正確に識別することにより、既知のシステムよりも向上した柔軟性を提供する。詳細には、重み予測ニューラルネットワークを採用することによって、グリフ内容により生じる好ましくない副作用を取り除いた結果、トレーニングされたハイブリッドフォント認識ニューラルネットワークは、より汎化されるようになり、それにより、フォント認識システムは、トレーニングステージで分からなかったグリフのフォントを正確に識別することが可能になる。これは、詳細には、トレーニング・フォント・セットが可能なグリフのわずかなパーセンテージ(たとえば、およそ1%)しか含まない場合があるので、可能なグリフの多様性が大きく数が多い言語(たとえば、日本語言語ではグリフは50,000を超える)を用いて作業するときに有利である。
以下でさらに説明するように、フォント認識システムは、テキスト画像からフォントを正確に識別することに関して、直接対決の評価で最新式フォント分類システムよりも性能が優れている。たとえば、フォント認識は、日本語の漢字とかなの両方のグリフを含んだ第1組のテキスト画像だけではなく、漢字グリフだけを含んだ第2組の試験セットのテキスト画像からフォントを識別する際の総合精度に関して、最新式フォント分類システムよりも性能が優れていた。実際に、フォント認識システムは、フォントを認識するだけではなく、正確な結果を作り出す、より汎化した能力を提供する。フォント認識システムの試験および評価の結果について、図7Aおよび図7Bに関連して以下でさらに説明する。
さらに、多くのフォント分類システムと対照的に、本明細書で開示するフォント認識システムは、追加の情報またはラベルを必要とすることなくハイブリッドフォント認識ニューラルネットワークをトレーニングすることができる。詳細には、フォント認識システムは、フォント分類損失モデルと共に第1および第2のフォント認識ニューラルネットワークの出力を使用して、投票戦略または平均化戦略を採用する必要なく所与のテキスト画像に関するよりよいフォント分類をどちらのフォント認識ニューラルネットワークが出力するかに関する重み予測を動的かつ自動的に学習する。
他の利益として、フォント認識システムは、既知のシステムよりも、必要なメモリおよび計算要件を低減する。たとえば、最新式フォント分類システムが本明細書で開示するフォント認識システムに類似する結果を達成するためには、システムは、追加のトレーニング反復、著しくより大量のトレーニング・フォント・データ、および/またはメモリ記憶領域を必要とする。さらに、最新式フォント分類システムはまた、本明細書で開示するフォント認識システムに匹敵する結果を達成するニューラルネットワークをトレーニングするために追加時間を必要とする。さらに、最新式フォント分類システムは、時間および資源を増大させてさえ、本明細書で説明する1つまたは複数の実施形態と同じくらいロバストで安定したフォント認識ニューラルネットワークを作り出さない。
フォント認識システムのさらに別の利点および利益は、以下の説明を考慮して明らかになる。詳細には、1つまたは複数の図を参照してフォント認識システムの1つまたは複数の実施形態について以下で説明する。さらに、フォント認識システムの1つまたは複数の特徴について説明するために、以下の用語の規定を使用する。
本明細書で使用するとき、用語「テキスト画像」は、1つまたは複数のデジタルフォントで書かれたテキスト(すなわち、グリフ内容)を含む、任意のタイプの電子文書または電子ファイルを指す。たとえば、テキスト画像は、画像ファイル(永続的または一時的)、クリップボードファイル、ワードプロセッシング文書、PDF(portable document file)、電子メールファイル、テキストファイル、ウェブページ、または任意の他の電子ファイルの形をとる電子文書を含むことができる。テキスト画像は、公告、パンフレット、ちらし、書籍、雑誌、定期刊行物、または他の出版物などの物理的情報源に由来する可能性がある。
本明細書で使用するとき、用語「デジタルフォント」(または単に「フォント」)は、規定された1組のデジタル文字(たとえば、グリフ)を指す。詳細には,用語「フォント」は、特定のスタイルまたは書体のデジタル文字の集合体を含む。フォントは、.ttf、.otf、.fnt、.abf、.ttc、.suit、.woff、.vnf、.t65、.sfp、.sad、.pmt、.pfm、.pfb、.pfa、.odtff、.mf、.gdr、.fon、.fnt、.font、.etx、.eot、.compositefont、.acfm、.afm、または.amfmなどの拡張子を伴うデジタルファイルを含むが、それらに限定されない。たとえば、用語デジタルフォントは、Times New Roman、Helvetica、Arial、PT Sans Regular、Corbelと呼ばれるフォント、または他のフォントタイトルを含む。
フォント特徴ベクトルによりフォントを表すことができる。本明細書で使用するとき、用語「フォント特徴ベクトル」(または単に「特徴ベクトル」)は、フォントの特性および属性を表す数値からなるベクトルを指す。詳細には、用語「特徴ベクトル」は、フォントの潜在的および/または特許に関する属性および特性に対応する1組の値を含む。1つまたは複数の実施形態では、特徴ベクトルは、フォントを表す多次元データセットである。1つまたは複数の実施形態では、特徴ベクトルは、ニューラルネットワークなどの機械学習アルゴリズムにより学習した1組の数値指標を含む。たとえば、特徴ベクトルは、グリフ曲率、グリフ間隔、グリフサイズ、グリフ形状、グリフ幅、グリフ高さ、グリフ位置(たとえば、並び線に対するグリフ位置)、グリフ面積、グリフ配向、グリフあたりの曲線の数、アーク長、グリフコントラスト、およびフォント分類特徴(たとえば、フォントを分類するのに利用されるフォント特徴)などのフォント・グリフ・データを含むことができる。さらに、特徴ベクトルは、フォントのフォントクラスおよびフォント特性に関する数値を提供することができる。いくつかの実施形態では、特徴ベクトルは特徴表現の一例であるので、用語特徴ベクトルおよび特徴表現を交換可能に使用する。
上記で説明したように、特徴ベクトルは、フォント分類(すなわち、フォントクラス)の数値表現およびフォント特性を提供することができる。本明細書で使用するとき、用語「フォント分類」は、フォントカテゴリおよび/またはフォント名を指し、デジタルフォントを分類するために利用する、事前に規定したカテゴリを含むことができる。たとえば、フォント分類は、フォントクラス(すなわち、Serif、Sans Serif、Slab Serif、Script、Blackletter、Mono、Hand、またはDecorative)を含む。いくつかの実施形態では、用語「フォント特性」はまた、スタイル(たとえば、標準、太字、イタリック体、影付き、下線付き、取り消し線、下付き文字、上付き文字)、ウェート(たとえば、肉細活字体の、標準の、ボールド体のウェート)、幅(たとえば、コンデンスの、標準の、およびエキステンドの幅)、大文字使用スタイル(たとえば、すべて大文字、スモールキャピタル、先頭文字の大文字の指定、および文頭だけを大文字にする)、xハイト(たとえば、スモール、標準、ラージのxハイト)、およびコントラスト(たとえば、低い、標準の、および高いコントラスト)などの、フォントに対応する属性を指す。
用語「フォント確率ベクトル」は、入力フォントと既知フォントの間の相関関係を提供する1組の値に対応する。詳細には、用語「フォント確率ベクトル」は、n次元ベクトルを含み、ここで、nは、既知フォントの数に対応する。n個の既知フォントごとに、フォント確率ベクトルは、入力フォントが既知フォントに適合する適合確率を含む。場合によっては、フォント分類器は、入力フォントに関して生成された特徴ベクトルと各既知フォントの特徴ベクトルを(たとえば、ベクトル空間距離に基づき)比較して、入力フォントと既知フォントの間の適合確率を決定することにより、フォント確率ベクトルを生成する。
さらに、用語「ハイブリッドフォント確率ベクトル」は、複数のフォント確率ベクトルの組合せに対応する。詳細には、用語「ハイブリッドフォント確率ベクトル」は、第1の重み付きフォント確率ベクトル、および少なくとも第2の重み付きフォント確率ベクトル(およびおそらくは追加の重み付きフォント確率ベクトル)を組み合わせることを指す。たとえば、1つまたは複数の実施形態では、ハイブリッド重みは合計して1(またはほぼ1)になる。このようにして、ハイブリッドフォント確率ベクトルは、複数のフォント認識ニューラルネットワークからの複数のフォント確率ベクトルの集計であるが、単一のフォント確率ベクトルの類似する総合重みを有する。このようにして、単一のフォント分類損失モデルと共にハイブリッドフォント確率ベクトルを使用して、1つまたは複数のニューラルネットワーク(たとえば、複数のフォント認識ニューラルネットワークだけではなく、重み予測ニューラルネットワーク)をトレーニングすることができる。
上述のように、重み予測ニューラルネットワークは、ハイブリッドフォント確率ベクトルで使用する各フォント確率ベクトルのフォント分類確率を予測することができる。本明細書で使用するとき、用語「フォント分類確率」は、ハイブリッドフォント認識ニューラルネットワーク内の所与のフォント認識ニューラルネットワークに関連する予測重みを指す。詳細には、重み予測ニューラルネットワークは、ハイブリッドフォント認識ニューラルネットワーク内のフォント認識ニューラルネットワークごとのフォント分類確率を含む予測ベクトルを出力する。実際に、フォント分類確率は、所与のフォント認識ニューラルネットワークがハイブリッドフォント認識ニューラルネットワーク内の他のフォント認識ニューラルネットワークよりも所与のテキスト画像をよりよく分類する(たとえば、入力デジタルフォントをより多くの場合に、および/またはより高い精度で正しく識別する)確率を示す。たとえば、ハイブリッドフォント認識ニューラルネットワークが、jのフォント認識ニューラルネットワークを含む場合、予測ベクトルは、jのフォント分類確率を含むj次元予測ベクトルである。さらに、予測ベクトルでのフォント分類確率は、合計して1に、すなわち100%になることができる。
用語「機械学習」は、本明細書で使用するとき、データから学習し、データに関する予測を行うことができるアルゴリズムを構築し、実装する処理を指す。一般に、機械学習は、トレーニング・フォント・セットなどの代表例入力からモデルを構築して(たとえば、トレーニングして)データ駆動型予測または判定を行うことにより動作してもよい。いくつかの代表的実施形態では、機械学習は、共同特徴学習、またはトレーニング・フォント・セットからの特徴学習などの、データマイニングおよび統計的パターン認識のために使用される。
本明細書で使用するとき、用語「ニューラルネットワーク」は、入力に基づき調整して(たとえば、トレーニングして)未知の関数を近似することができる機械学習モデルを指す。詳細には、用語ニューラルネットワークは、モデルに提供された複数の入力に基づき通信し学習して複雑な関数を近似し、かつ出力を生成する、相互接続されたニューロンのモデルを含むことができる。たとえば、用語ニューラルネットワークは、1つまたは複数の機械学習アルゴリズムを含む。詳細には、用語ニューラルネットワークは、深層畳込みニューラルネットワーク(convolutional neural network)(すなわち、「CNN」)を含むことができる。さらに、ニューラルネットワークは、1組のアルゴリズムを利用して、高水準のデータ抽象化をモデル化するディープラーニング技法を実装するアルゴリズム(または、1組のアルゴリズム)である。本明細書で使用するとき、ニューラルネットワークは、損失層内に回帰損失モデル(たとえば、フォント分類損失モデルまたはトリプレット損失モデル)を有するニューラルネットワークを指す。以下の説明および図は、一般にCNNを指す。
本明細書で使用するとき、用語「損失関数」または「損失モデル」は、多次元ベクトル空間内の特徴ベクトルおよび/または確率ベクトル間の誤差損失を示す関数を指す。機械学習アルゴリズム(たとえば、ニューラルネットワーク)は、繰り返してトレーニングして、フォント分類誤差損失(たとえば、実際にトレーニングされたフォントに対してフォント分類がどれだけ正確か、または不正確か)を最小にする、および/または最大にすることができる。いくつかの実施形態では、フォント認識システムは、トレーニングの異なるステージで損失関数を採用する。損失関数の一例は、以下でさらに説明するように、交差エントロピー損失を用いるソフトマックスフォント分類器を使用するフォント分類損失モデルを含む。
次に、図を参照すると、図1は、ハイブリッドフォント認識ニューラルネットワークをトレーニングするための一般的処理100の図を示す。たとえば、さまざまな実施形態では、フォント認識システムは、処理100を実装して、別個のフォント認識ニューラルネットワークを最初にトレーニングする。フォント認識システムは、処理100を実装して、最初にトレーニングされたフォント認識ニューラルネットワークの各々だけではなく重み予測ニューラルネットワークも含むハイブリッドフォント認識ニューラルネットワークを同じくトレーニングする。フォント認識システムを、1つもしくは複数のサーバ機器、1つもしくは複数のクライアント機器、またはサーバ機器とクライアント機器の組合せなどの1つまたは複数のコンピューティング機器により実装することができる。
最初に、図は、日本語のフォントおよびグリフ(たとえば、表意文字の漢字と音節を表すかなの文体の両方)に関してフォント認識システムについて説明する。フォント認識システムおよび図に関して説明する技法、動作、方法、および活動は、他のタイプのフォントおよびグリフに、詳細には、グリフ内容のクラス内変動の好ましくない副作用を欠点として持つフォントに適用されることが認識されよう。たとえば、本明細書で説明する活動技法、動作、方法、および活動は、以下でさらに説明するように、任意の組合せの言語で書かれたグリフを含むテキスト画像に関するフォントを分類すること(すなわち、多言語フォント認識システム)に関係がある可能性がある。
図1に示すように、フォント認識システムは、一般的なフォント認識ニューラルネットワークを生成する(102)。以下でさらに説明するように、ハイブリッドフォント認識ニューラルネットワーク内部で、フォント認識ニューラルネットワークは、畳込みニューラルネットワークまたは他のタイプの分類ニューラルネットワークとすることができる。1つまたは複数の実施形態では、複数のグリフセットまたはスタイルを使用して一般的なフォント認識ニューラルネットワークをトレーニングすることができる。たとえば、フォント認識システムは、漢字とかなの両方の日本語グリフの混合物に基づきフォントを分類するフォント認識ニューラルネットワークを生成し、トレーニングする。代わりの実施形態では、一般的なフォント認識ニューラルネットワークは、複数の異なる言語(たとえば、日本語および英語)からのグリフを含む。フォント認識システムは、以下でさらに説明するように、フォント分類損失モデルを採用して、一般的なフォント認識ニューラルネットワークをトレーニングすることができる。
一般的なフォント認識ニューラルネットワークをトレーニングする一部として、フォント認識システムは、第1組のトレーニングテキスト画像を生成することができる。たとえば、フォント認識システムは、漢字およびかなのグリフを使用して書かれた(または異なる言語からのグリフを使用して書かれた)さまざまな日本語フォントを含む1組の日本語フォントテキスト画像を生成する。フォント認識システムは、第1組のトレーニングテキスト画像の一部として、何千もの、または何百万ものテキスト画像を生成することができる。テキスト画像の生成および描画に関する説明について、図2Aに関して以下でさらに提供する。
さらに、図1は、フォント認識システムが特有のフォント認識ニューラルネットワークを生成すること(104)を示す。たとえば、フォント認識システムは、単一のグリフセットまたはスタイルに基づきトレーニングされた特有のフォント認識ニューラルネットワークを生成する。たとえば、一般的なフォント認識ニューラルネットワークをトレーニングするために使用するグリフセットまたはスタイルの1つを使用して、特有のフォント認識ニューラルネットワークをトレーニングすることができる。たとえば、フォント認識システムは、漢字グリフを含むが、かなグリフを含まないトレーニングテキスト画像に基づき、特有のフォント認識ニューラルネットワークをトレーニングする(たとえば、漢字特有のフォント認識ニューラルネットワーク)。第1のトレーニングテキスト画像と同様に、フォント認識システムはまた、第2組のトレーニングテキスト画像を生成して、特有のフォント認識ニューラルネットワークをトレーニングすることができる。
一般的なフォント認識ニューラルネットワークおよび特有のフォント認識ニューラルネットワークをトレーニングすると、フォント認識システムは、図1に示すように、一般的なフォント認識ニューラルネットワークおよび特有のフォント認識ニューラルネットワークを重み予測ニューラルネットワークと組み合わせることにより、ハイブリッドフォント認識ニューラルネットワークをトレーニングする(106)。詳細には、フォント認識システムは、重み予測ニューラルネットワークを最初からトレーニングしながら、フォント認識ニューラルネットワークを微調整する。以下で詳述するように、フォント認識システムは、単一のフォント分類損失モデルを用いて、フォント認識ニューラルネットワーク(すなわち、一般的なおよび特有のもの)および重み予測ニューラルネットワークを同時にトレーニングすることができる。
トレーニングされたとき、ハイブリッドフォント認識ニューラルネットワークは、入力テキスト画像に関して、改善されたフォント分類を提供する。たとえば、かなまたは漢字の日本語グリフの1つまたは複数を含む入力テキスト画像を受け取ると、フォント認識システムは、一般的なフォント認識ニューラルネットワーク、特有のフォント認識ニューラルネットワーク、および重み予測ニューラルネットワークに入力テキスト画像を提供する。一般的なフォント認識ニューラルネットワークは、入力テキスト画像に関する第1のフォント確率ベクトルを出力する。同様に、特有のフォント認識ニューラルネットワークは、第2のフォント確率ベクトルを出力する。第1および第2のフォント確率ベクトルは、入力テキストのフォントが同じである、または異なることを示すことができる。
さらに、重み予測ニューラルネットワークは、第1のフォント分類確率(たとえば、第1の分類重み、すなわちw1)を含む2次元予測ベクトルを出力する。第1のフォント分類確率は、一般的なフォント認識ニューラルネットワークが特有のフォント認識ニューラルネットワークよりも入力テキスト画像内のフォントをよりよく分類する確率を示す。予測ベクトルはまた、第2のフォント分類確率(たとえば、第2の分類重み、すなわちw2)を含む。第2のフォント分類確率は、特有のフォント認識ニューラルネットワークが入力テキスト画像内のフォントをよりよく分類する確率を示す。
ハイブリッドフォント認識ニューラルネットワークは、第1の重み付きフォント確率ベクトルおよび第2の重み付きフォント確率ベクトルを含むハイブリッドフォント確率ベクトルを生成する。ハイブリッドフォント確率ベクトルを使用して、フォント認識システムは、入力テキスト画像で使用されたフォントを識別する。図2Bおよび図2Cに関連して、ハイブリッドフォント認識ニューラルネットワークについて以下でさらに説明する。
1つまたは複数の実施形態では、一般的なフォント認識ニューラルネットワークおよび特有のフォント認識ニューラルネットワークを生成するのではなく、フォント認識システムは、異なるグリフセットまたはスタイルに基づきトレーニングする、2つの特有のフォント認識ニューラルネットワークを生成することができる。たとえば、第1の特有のフォント認識ニューラルネットワークは、第1のタイプのグリフ(たとえば、漢字、ローマ字、日本語など)を排他的に用いてトレーニングすることができ、一方では、第2の特有のフォント認識ニューラルネットワークは、第2のタイプのグリフ(かな、日本語、中国語など)を排他的に用いてトレーニングする。
上述のように、図2A~図2Cは、ハイブリッドフォント認識ニューラルネットワークをトレーニングするためのより詳細な処理の図を示す。詳細には、図2Aは、フォント分類損失モデルを使用して別個のフォント認識ニューラルネットワーク(たとえば、第1のフォント認識ニューラルネットワーク210および第2のフォント認識ニューラルネットワーク220)を最初にトレーニングするステップを示す。図2Bは、重み予測ニューラルネットワーク240を追加することによりハイブリッドフォント認識ニューラルネットワーク230を完全にトレーニングするステップを示す。図2Cは、トレーニングされたハイブリッドフォント認識ニューラルネットワーク260を採用して入力テキスト画像内のフォントを識別するステップを示す。
図に示すように、図2Aは、第1のフォント認識ニューラルネットワーク210をトレーニングするために使用する第1組のテキスト画像202を含む。図2Aはまた、第2のフォント認識ニューラルネットワーク220をトレーニングするために使用する第2組のテキスト画像204を示す。1つまたは複数の実施形態では、第1のフォント認識ニューラルネットワーク210は、複数のグリフスタイル(たとえば、漢字およびかなのグリフ)を使用してトレーニングされた一般的なフォント認識ニューラルネットワークである。さらに、第2のフォント認識ニューラルネットワーク220は、一般的なフォント認識ニューラルネットワークのグリフスタイルをすべて使用するのではなく1つまたは複数(たとえば、漢字グリフ)を使用してトレーニングされた特有のフォント認識ニューラルネットワークである。代わりの実施形態では、第1のフォント認識ニューラルネットワーク210および第2のフォント認識ニューラルネットワーク220は両方とも、すでに言及したように、単一のタイプのグリフを使用してトレーニングされた特有のフォント認識ニューラルネットワークである。
フォント認識システムがフォント認識ニューラルネットワークの各々をどのようにトレーニングするかを説明する前に、トレーニング用のいくつかの組のトレーニング画像を得る/生成することに関する詳細をさらに提供する。図に示すように、図1は、第1組のテキスト画像202および第2組のテキスト画像204を含む。第1組のテキスト画像202は、漢字とかなの両方のグリフから生成したテキスト画像を含む。第2組のテキスト画像204は、かなグリフから生成されるのではなく漢字グリフから生成されたテキスト画像を含む。いくつかの実施形態では、第2組のテキスト画像204は、第1組のテキスト画像202と一部重複するテキスト画像を含む。代わりの実施形態では、第1組のテキスト画像202および第2組のテキスト画像204を別個に生成する。
トレーニング用のいくつかの組のトレーニング画像(たとえば、第1組のテキスト画像202および第2組のテキスト画像204)を得るために、フォント認識システムは、テキスト画像を生成する、描画する、または他の方法で得ることができる。たとえば、フォント認識システムは、フォントと1つまたは複数のグリフ(たとえば、漢字および/またはかなのグリフ)をランダムに対形成して、多数のトレーニングテキスト画像を描画する。いくつかの実施形態では、フォント認識システムは、第1組のテキスト画像202および第2組のテキスト画像204のいずれかまたは両方に関するランダムなグリフ/フォントの組合せを表示する何百万ものトレーニングテキスト画像を描画する。
より具体的には、1つまたは複数の実施形態では、フォント認識システムは、500の最も多く使用される日本語グリフ(たとえば、テキスト画像セットに応じて漢字およびかな、または漢字だけ)、上位25%の最も多く使用される日本語グリフ、10,000のランダムに選択した日本語グリフ、または別のサブセット数のグリフなどの、グリフのサブセットから1つまたは複数のグリフをランダムに選択することによりテキスト画像を描画する。第1組のテキスト画像202内のテキスト画像については、フォント認識システムは、単一のテキスト画像内に漢字グリフとかなグリフの両方を選択し、書くことができることに留意されたい。さらに、フォント認識システムは、1つまたは複数のグリフを書くフォントを選択する。たとえば、フォント認識システムは、1つまたは複数のグリフを書く600の日本語フォントの1つを選ぶ。選択したフォントで1つまたは複数の選択したグリフを書くと、フォント認識システムは、書かれたグリフをテキスト画像として描画し、描画したテキスト画像を1組のテキスト画像に追加する。
代わりのまたはさらに別の実施形態では、フォント認識システムは、テキスト画像からなる1つまたは複数の日本語フォント・トレーニング・セットを得る。たとえば、フォント認識システムは、フォントデータベースにローカルにまたは遠隔に記憶されたテキスト画像からなるトレーニング・フォント・セットをすでに作成していた。別の例では、フォント認識システムは、第三者のフォントリポジトリからトレーニング・フォント・セットを得る。フォント認識システムは、新しく描画されたテキスト画像と1つまたは複数のトレーニング・フォント・セットを組み合わせることができる。
さまざまな実施形態では、フォント認識システムは、1組のテキスト画像内のテキスト画像の中に偏差をランダムに導入する。たとえば、フォント認識システムは、雑音(たとえば、平均値ゼロおよび標準偏差3のわずかなガウス雑音)、ぼかし(たとえば、2~4の間の標準偏差のランダムなガウスぼかし)、透視図回転(たとえば、ランダムにパラメータ化されたアフィン変換)、および/または濃淡(たとえば、入力背景を満たすランダムな勾配)をテキスト画像の一部の中にランダムに導入する。さらに、フォント認識システムは、テキスト画像に、可変文字間隔および/または可変縦横比の修正を追加することができる。各フォント認識ニューラルネットワークをトレーニングしている間の、これらの変化およびロバスト性もまた、トレーニングされたフォント認識ニューラルネットワークが、多くの場合、雑音を当然含有する実世界のテキスト画像をよりよく認識することを可能にする。
次に、フォント認識ニューラルネットワークのトレーニングに戻ると、フォント認識システムは、第1のフォント認識ニューラルネットワーク210および第2のフォント認識ニューラルネットワーク220を類似の手法でトレーニングすることができる。実際に、第1組のテキスト画像202(たとえば、かなおよび漢字のグリフ)は、第2組のテキスト画像204(たとえば、漢字グリフだけ)と異なるが、各フォント認識ニューラルネットワークをトレーニングするフォント認識システムの活動は、第1および第2のフォント認識ニューラルネットワークが両方とも同じニューラル・ネットワーク・タイプ(たとえば、畳込みニューラルネットワーク)からなるとき、似ている可能性がある。あるいは詳細には、第1および第2のフォント認識ニューラルネットワークが異なる分類ニューラルネットワークからなるとき、フォント認識システムは、異なる活動を使用してフォント認識ニューラルネットワークをトレーニングすることができる。説明を容易にするために、第1のフォント認識ニューラルネットワーク210のトレーニングに関して提供する説明を、第2のフォント認識ニューラルネットワーク220および/または追加のフォント認識ニューラルネットワークのトレーニングに同様に適用することができる。
図に示すように、第1のフォント認識ニューラルネットワーク210は、下位ニューラルネットワーク層212、上位ニューラルネットワーク層214、および損失層216を含む。損失層216は、第1のフォント分類損失モデル218を含む。1つまたは複数の実施形態では、下位ニューラルネットワーク層212は、フォントを特徴ベクトルに符号化する畳込み層である。上位ニューラルネットワーク層214は、特徴ベクトルを分類し、かつ第1のフォント確率ベクトルを出力する全結合層を備えることができる。これらの機能のために、下位ニューラルネットワーク層212は、集合的に符号化器と呼ばれ、上位ニューラルネットワーク層214は、集合的にフォント分類器と呼ばれる。いくつかの実施形態では、第1のフォント認識ニューラルネットワーク210は、ディープラーニング畳込みニューラルネットワークである。
フォント認識システムは、第1のフォント分類損失モデル218を使用して、第1のフォント認識ニューラルネットワーク210を最初にトレーニングすることができる。概観として、フォント認識システムは、フォント分類を生成するために使用する第1組のテキスト画像202に基づきパラメータを調整することにより、第1のフォント認識ニューラルネットワーク210を最初にトレーニングする。さらに、フォント認識システムは、第1のフォント分類損失モデル218を採用して、フォント分類の精度に基づきフィードバックを提供し、それにより、調整可能なパラメータを更新することが可能になる。より具体的には、フォント認識システムは、誤差損失フィードバックを使用して、下位ニューラルネットワーク層212および上位ニューラルネットワーク層214でフォント特徴抽出を調整して、入力トレーニング画像からのフォントを分類する。
例証するために、フォント認識システムは、第1組のテキスト画像202(たとえば、漢字とかなの両方のグリフ)を入力として提供して、第1のフォント認識ニューラルネットワーク210を最初にトレーニングすることができる。たとえば、1つまたは複数の実施形態では、フォント認識システムは、第1組のテキスト画像202内の各入力フォントに関する特徴ベクトルを生成するために使用するフォント特徴抽出パラメータを調整することにより、下位ニューラルネットワーク層212をトレーニングする。次いで、フォント認識システムは、生成した特徴ベクトルを上位ニューラルネットワーク層214に提供し、上位ニューラルネットワーク層214は、フォント分類パラメータに基づき、下位ニューラルネットワーク層212からの生成された特徴ベクトルと既知フォントの特徴ベクトル(たとえば、第1組のテキスト画像202内のフォントから学習した特徴ベクトル)を比較する。特徴ベクトル比較に基づき、上位ニューラルネットワーク層214は、フォント分類パラメータを採用して、特徴ベクトル比較に基づき入力フォントと既知フォントの各々との一致を示す第1のフォント確率ベクトルを生成する。
次に、フォント認識システムは、第1の分類損失モデル218に第1のフォント確率ベクトルを提供する。第1のフォント分類損失モデル218は、第1のフォント確率ベクトルで示された、識別されたフォントと、トレーニングテキスト画像で採用された実際のフォントを比較して、フォント分類誤差損失(または単に「誤差損失」)の量を決定する。実際に、フォント認識システムは、フォント分類損失モデルに第1のフォント確率ベクトルを提供して、フォント分類の精度および/または誤差損失を決定することができる。いくつかの実施形態では、第1のフォント分類損失モデル218は、ソフトマックス交差エントロピー損失フォント分類器および/または平均2乗誤差計算を採用して、フォント分類損失の量を決定する。たとえば、第1のフォント分類損失モデル218は、第1のフォント確率ベクトルが、学習した特徴空間内部で入力フォントに対応するフォント特徴からしきい値距離を超えるとき、および/または第1のフォント確率ベクトルが入力フォントからしきい値距離をどの程度まで超えるか(たとえば、誤差損失)を識別する。
次いで、誤差損失を使用して、第1のフォント認識ニューラルネットワーク210のニューラルネットワーク層をトレーニングし、最適化して、フォント認識システムは、誤差逆伝播およびエンド・ツー・エンド学習を採用して、第1のフォント認識ニューラルネットワーク210の層内部の特徴抽出パラメータを調整することができる。たとえば、1つまたは複数の実施形態では、フォント認識システムは、第1のフォント分類損失モデル218から誤差損失出力を受け取り、第1のフォント分類損失モデル218からの誤差損失が最小になるまで、誤差損失出力を下位ニューラルネットワーク層212および/または上位ニューラルネットワーク層214に戻して提供する。詳細には、第1のフォント分類損失モデル218は、下位ニューラルネットワーク層212にフィードバックを提供してフォント特徴抽出パラメータをさらに調整する、および/または上位ニューラルネットワーク層214にフィードバックを提供して、フォント分類パラメータをさらに調整する。このようにして、フォント認識システムは、テキスト画像からフォント特徴を抽出する1組の最良適合パラメータを学習するために、第1のフォント認識ニューラルネットワーク210を反復して(たとえば、約20,000回の反復)トレーニングし、対応する入力フォントを正確に分類する。
上述のように、いくつかの実施形態では、フォント認識システムは、上位ニューラルネットワーク層214を採用して、入力テキスト画像の入力フォントのフォント確率ベクトルを決定する。フォント確率ベクトルの一例として、第1組のテキスト画像202が600のフォントを含む場合、上位ニューラルネットワーク層214は、0~1の間(すなわち[0,1])に及ぶ範囲のエントリを伴う600次元のフォント確率ベクトルを出力する。フォント確率ベクトルの各次元は、入力フォントの特徴ベクトルと第1組のテキスト画像202内の各フォントの特徴ベクトルの間の一致(たとえば、ベクトル空間距離に基づく適合確率)を提供する。いくつかの実施形態では、フォント認識システムは、(たとえば、フォント特徴空間に)第1のフォント認識ニューラルネットワーク210の一部として各特徴ベクトルを記憶することができる。
上述のように、フォント認識システムは、類似の手法で第2のフォント認識ニューラルネットワーク220を最初にトレーニングすることができる。たとえば、フォント認識システムは、漢字グリフだけを含む第2組のテキスト画像204を採用して、下位ニューラルネットワーク層222でフォント特徴抽出パラメータを、上位ニューラルネットワーク層224でフォント分類パラメータをトレーニングする。次いで、フォント認識システムは、対応する構成要素および要素に関して上記で説明したように、第2のフォント認識ニューラルネットワーク220の損失層226内で第2のフォント分類損失モデル228を使用する。
フォント認識ニューラルネットワークを最初にトレーニングすると、第1のフォント認識ニューラルネットワーク210は、一般に漢字またはかなのグリフで書かれたテキスト画像に関するフォントを識別することができ、第2のフォント認識ニューラルネットワーク220は同様に、一般に漢字グリフで書かれたテキスト画像に関するフォントを識別することができる。しかしながら、最初にトレーニングされたフォント認識ニューラルネットワークは、多様なグリフ内容によるクラス内変動により生じる好ましくない副作用のために、多くのタイプのフォントに関して正確な結果を単独で作り出さない場合がある。たとえば、最初にトレーニングされたフォント認識ニューラルネットワークの各々は、トレーニングで分からなかったグリフの1つまたは複数をテキスト画像が含む場合、入力テキスト画像内のフォントを誤認する可能性が高い。さらに、第2のフォント認識ニューラルネットワーク220は、かなグリフのテキスト画像を分類することができない。
認識精度を改善し、フォント汎化を増大させるために、フォント認識システムは、第1のフォント認識ニューラルネットワーク210と第2のフォント認識ニューラルネットワーク220の両方を利用して、多様なグリフによるクラス内変動の好ましくない副作用を低減する、および/または取り除くフォント認識ニューラルネットワークを作成する。例証するために、図2Bは、第1のフォント認識ニューラルネットワーク210と第2のフォント認識ニューラルネットワーク220の両方を利用するハイブリッドフォント認識ニューラルネットワーク230を示す。さらに、ハイブリッドフォント認識ニューラルネットワーク230は、重み予測ニューラルネットワーク240を含む。
図に示すように、重み予測ニューラルネットワーク240は、下位ニューラルネットワーク層242および上位ニューラルネットワーク層244を含む。1つまたは複数の実施形態では、重み予測ニューラルネットワーク240は、畳込みニューラルネットワークであり、そこでは、下位ニューラルネットワーク層242は、畳込み層であり、上位ニューラルネットワーク層244は、全結合層である。さらに、重み予測ニューラルネットワーク240は、低次元確率ベクトル(たとえば、予測ベクトル246)を学習し、生成しているので、フォント認識ニューラルネットワークよりも一般に小さい。したがって、重み予測ニューラルネットワーク240は、フォント認識ニューラルネットワーク210、220よりも少ない層を含む畳込みニューラルネットワークとすることができる。
さらに、さまざまな実施形態では、重み予測ニューラルネットワーク240の下位ニューラルネットワーク層242は、特徴ベクトルを符号化し、上位ニューラルネットワーク層244は、第1のフォント分類確率248(第1のフォント認識ニューラルネットワーク210に対応する)および第2のフォント分類確率250(第2のフォント認識ニューラルネットワーク220に対応する)を含む2次元予測ベクトル246を生成する。詳細には、第1のフォント分類確率は、第1のフォント認識ニューラルネットワーク210が第2のフォント認識ニューラルネットワーク220よりも所与の画像内のフォントをよりよく分類する確率を示す。同様に、第2のフォント分類確率は、第2のフォント認識ニューラルネットワーク220が第1のフォント認識ニューラルネットワーク210よりも所与の画像内のフォントをよりよく分類する確率を示す。
フォント認識システムは、最初にトレーニングされた第1および第2のフォント認識ニューラルネットワークを使用してハイブリッドフォント認識ニューラルネットワーク230をトレーニングすることができる。たとえば、フォント認識システムは、第1のフォント認識ニューラルネットワーク210、第2のフォント認識ニューラルネットワーク220、および重み予測ニューラルネットワーク240の各々にテキスト画像206を提供する。テキスト画像206は、第1組のテキスト画像202、第2組のテキスト画像204、および/または新しく生成したテキスト画像からのテキスト画像を含むことができる。いくつかの実施形態では、テキスト画像206は、日本語グリフ(たとえば、漢字とかなの両方)のテキスト画像の混合である。いずれの場合にも、フォント認識システムは、重み予測ニューラルネットワークをトレーニングして、テキスト画像内部のグリフ内容に関する追加情報を必要とすることなく、所与のテキスト画像をどちらのフォント認識ニューラルネットワークが最もよく分類するかに関する、正確な予測を行うことができる。たとえば、フォント認識システムは、現在のテキストが、あるタイプのグリフか別のタイプのグリフかを認識するために光学式文字認識を遂行しない、または遂行する必要がない。
テキスト画像ごとに、上記で説明したように、第1のフォント認識ニューラルネットワーク210は、第1のフォント確率ベクトル232を生成し、第2のフォント認識ニューラルネットワーク220は、第2のフォント確率ベクトル234を生成する。さらに、重み予測ニューラルネットワーク240は、第1のフォント確率ベクトル232が第2のフォント確率ベクトル234よりもテキスト画像内のフォントをよりよく分類する確率を示す第1のフォント分類確率248を含む予測ベクトル246を生成する。
予測ベクトル246はまた、対立する第2のフォント分類確率250を含む。さまざまな実施形態では、重み予測ニューラルネットワーク240は、フォント確率ベクトルにランダムな値または所定の値(たとえば、25/75)を最初に割り当てる。トレーニングが継続するにつれ、重み予測ニューラルネットワーク240は、以下でさらに説明するように、所与のテキスト画像に関するフォント分類確率をより正確に予測できるように学習する。このようにして、フォント認識システムは、重み予測ニューラルネットワーク240をトレーニングして、テキスト画像内部のグリフ内容に関する追加のラベル情報または注釈を必要とすることなく、正確な予測に動的に到達する。
例証するために、フォント認識システムは、第1のフォント認識ニューラルネットワーク210、第2のフォント認識ニューラルネットワーク220、および重み予測ニューラルネットワーク240の出力に基づき、ハイブリッドフォント確率ベクトル252を最初に生成する。より具体的には、フォント認識システムは、第1のフォント分類確率248により第1のフォント確率ベクトル232を重み付けする。同様に、フォント認識システムは、第2のフォント分類確率250により第2のフォント確率ベクトル234を重み付けする。次いで、フォント認識システムは、2つの重み付き特徴ベクトルを組み合わせて、ハイブリッドフォント確率ベクトル252を生成する。第1のフォント分類確率248および第2のフォント分類確率250は合計して1になるので、ハイブリッドフォント確率ベクトル252は、単一のフォント確率ベクトルの形の、類似する総合重みを有する。ハイブリッドフォント確率ベクトル252の数値例を、図3に関して提供する。
さらに、フォント認識システムは、ハイブリッドフォント認識ニューラルネットワーク230の損失層254内部のフォント分類損失モデル256にハイブリッドフォント確率ベクトル252を提供する。フォント分類損失モデル256は、上記で説明したフォント分類損失モデルに類似する手法で動作する。たとえば、フォント分類損失モデル256は、所与のテキスト画像内のフォントとハイブリッドフォント確率ベクトル252で示された1つまたは複数のフォントの間のフォント分類誤差損失を決定する。したがって、フォント分類誤差損失は、第1のフォント確率ベクトル232からの重み付き誤差損失と第2のフォント確率ベクトル234からの重み付き誤差損失の混合物である(この場合、割り当てられた重みは、重み付き予測の精度に応じて、誤差損失を最小にする、または異常に大きくする)。
すでに説明したように、フォント認識システムは、ハイブリッドフォント認識ニューラルネットワーク230にフィードバックを提供する。たとえば、フォント分類損失モデル256は、第1のフォント認識ニューラルネットワーク210、第2のフォント認識ニューラルネットワーク220、および重み予測ニューラルネットワーク240にフィードバックを提供する。いくつかの実施形態では、フォント認識システムは、同じ学習率を使用して各ニューラルネットワークにフィードバックを提供する。
代わりの実施形態では、フォント認識システムは、異なる学習率を使用して各ニューラルネットワークにフィードバックを提供する。たとえば、第1のフォント認識ニューラルネットワーク210および第2のフォント認識ニューラルネットワーク220は、すでにトレーニングされているので、フォント認識システムは、フォント認識ニューラルネットワークのパラメータを微調整する小さな学習率(たとえば、1e-6)で誤差損失を提供する。さらに、重み予測ニューラルネットワークは、初めてトレーニングされているので、フォント認識システムは、トレーニング中の重み予測ニューラルネットワークに大きな学習率(たとえば、1e-3)で誤差損失を提供し、それにより、所与のテキスト画像をどちらのフォント認識ニューラルネットワークがよりよく分類するかをよりよく予測するようにフォント分類パラメータがより急速に調整される。実際に、重み予測ニューラルネットワーク240は、所与のテキスト画像をどちらのフォント認識ニューラルネットワークが最もよく分類するかに関して、正確な予測を行うのに最適なフォント分類パラメータを自動的に学習する。
フォント認識システムは、ハイブリッドフォント認識ニューラルネットワーク230がトレーニングされるまで、総合フィードバックおよび最適化サイクルを反復して繰り返すことができる。たとえば、ハイブリッドフォント認識ニューラルネットワーク230は、ニューラルネットワークが収束するまで、テキスト画像206を供給し、かつハイブリッドフォント認識ニューラルネットワーク230の層を最適化し続ける。詳細には、フォント認識システムは、重み予測ニューラルネットワーク240の予測精度が増大するにつれ、学習率をゆっくり低減することにより、重み予測ニューラルネットワーク240をトレーニングする。フォント認識システムは、ハイブリッドフォント確率ベクトルに基づきフォント分類損失モデル256で総合交差エントロピーフォント分類誤差損失が最小になったとき、および/またはハイブリッドフォント認識ニューラルネットワーク230が安定したとき、トレーニングを終了させることができる。
上述のように、ハイブリッドフォント認識ニューラルネットワーク230は、3つ以上のフォント認識ニューラルネットワークを含むことができる。たとえば、いくつかの実施形態では、ハイブリッドフォント認識ニューラルネットワーク230は、3つまたは4つのフォント認識ニューラルネットワークを含む。これらの実施形態では、重み予測ニューラルネットワーク240は、合計して1に、すなわち100%になる3つまたは4つのフォント分類確率を含む3次元または4次元の予測ベクトルをそれぞれ生成する。このようにして、フォント認識システムは、フォント認識ニューラルネットワークの各々からの重み付きフォント確率ベクトルを組み合わせて、単一のフォント確率ベクトルの形の類似する総合重みを有するハイブリッドフォント確率ベクトル252を形成する。さらに、ハイブリッドフォント確率ベクトル252を使用して、フォント認識システムは、単一のフォント分類損失モデル256を使用して、重み予測ニューラルネットワーク240を自動的にトレーニングすることを含み、ハイブリッドフォント認識ニューラルネットワーク230をトレーニングすることができる。
トレーニングされると、フォント認識システムは、ハイブリッドフォント認識ニューラルネットワーク230を採用して、かなグリフと漢字グリフの両方を含む入力テキスト画像内のフォントを識別することができる。例示するために、図2Cは、トレーニングされたハイブリッドフォント認識ニューラルネットワーク260を示す。詳細には、トレーニングされたハイブリッドフォント認識ニューラルネットワーク260は、トレーニングされた第1のフォント認識ニューラルネットワーク210、トレーニングされた第2のフォント認識ニューラルネットワーク220、およびトレーニングされた重み予測ニューラルネットワーク240を含む。
図に示すように、フォント認識システムは、入力テキスト画像208を得る。たとえば、フォント認識システムは、入力テキスト画像208で使用されたフォントを識別するというユーザのリクエストを検出する。たとえば、フォント認識システムは、アプリケーション(たとえば、デスクトップまたは移動体のアプリケーション)内部の入力テキスト画像208のコピーを受け取る。入力テキスト画像208は、未知のフォントで書かれた1つまたは複数の未知の日本語グリフを含む可能性がある。
入力テキスト画像208を受け取ったことに応答して、フォント認識システムは、トレーニングされたハイブリッドフォント認識ニューラルネットワーク260を使用して、入力テキスト画像内のフォントを認識する。詳細には、フォント認識システムは、第1のフォント認識ニューラルネットワーク210、第2のフォント認識ニューラルネットワーク220、および重み予測ニューラルネットワーク240に入力テキスト画像208を提供する。第1のフォント認識ニューラルネットワーク210は、入力テキスト画像208内のフォントを分類し、第1のフォント確率ベクトル232を生成する。同様に、第2のフォント認識ニューラルネットワーク220は、入力テキスト画像208内のフォントを別個に分類し、第2のフォント確率ベクトル234を生成する。
フォント認識ニューラルネットワーク210、220の各々は、フォント確率ベクトルを生成する。論証するために、第1のフォント認識ニューラルネットワーク210は、入力テキスト画像208を受け取り、トレーニングされた(たとえば、調整された)フォント特徴抽出パラメータを使用して特徴ベクトルを生成する。生成した特徴ベクトルを使用して、第1のフォント認識ニューラルネットワーク210は、トレーニングされたフォント分類を使用して、第1のフォント確率ベクトル232を生成する。詳細には、第1のフォント認識ニューラルネットワーク210は、入力テキスト画像208内のフォントの特徴ベクトルと、トレーニングされたハイブリッドフォント認識ニューラルネットワーク260を使用して生成した既知フォントの特徴ベクトルを比較して、第1のフォント確率ベクトル232(たとえば、600の既知フォントに基づく600次元のフォント確率ベクトル)を生成する。
フォント認識ニューラルネットワークが確率ベクトルを生成することに加えて、重み予測ニューラルネットワーク240は、入力テキスト画像208内のフォントおよび/またはグリフに基づき予測ベクトル246を生成する。予測ベクトル246は、第1のフォント分類確率248および第2のフォント分類確率250を含む。上述のように、第1のフォント分類確率248は、第1のフォント確率ベクトル232が第2のフォント確率ベクトル234よりも入力テキスト画像208内のフォントをよりよく分類する予測確率を提供する。たとえば、第1のフォント分類確率248は、0%~100%の間の重さの確率である。同様に、第2のフォント確率ベクトル234は、第2のフォント確率ベクトル234が第1のフォント確率ベクトル232よりも入力テキスト画像208内のフォントをよりよく分類する対立する確率を示す。
生成したフォント確率ベクトルおよびフォント分類確率を使用して、フォント認識システムは、ハイブリッドフォント確率ベクトル252を生成する。たとえば、フォント認識システムは、対応するフォント分類確率により各フォント確率ベクトルを重み付けし、重み付きフォント確率ベクトルを一緒に組み合わせる。ハイブリッドフォント確率ベクトル252を使用して、フォント認識システムは、識別されたフォント258としてテキスト画像208内のフォントを識別する。上述のように、ハイブリッドフォント確率を作成する数値例を、図3に関して提供する。
いくつかの実施形態では、入力テキスト画像208内のフォントに関してフォント認識ニューラルネットワークにより生成された特徴ベクトルは、そのフォント認識ニューラルネットワークによりトレーニングされた既知フォントの特徴ベクトルと正確に適合するわけではない(たとえば、2つの特徴ベクトル間の距離は、ゼロよりも大きくなる)。さらに、既知フォントは、トレーニング・フォント・セット内のテキスト画像に出現する既知フォントごとの1つの特徴ベクトルなどの、フォント認識ニューラルネットワークに関して複数の特徴ベクトルを有する可能性がある。それに応じて、これらの実施形態では、特定のフォント認識ニューラルネットワークについて、フォント認識システムは、フォントに関する適合確率を生み出すとき、入力フォントの特徴ベクトルと既知フォントの平均特徴表現(すなわち、フォントに関する対応する特徴ベクトルを集めたもの)を比較する。詳細には、フォント認識システムは、入力フォントの特徴ベクトルから最も短い距離にある平均特徴表現を有する既知フォントを識別する。
識別されたフォント258を決定すると、フォント認識システムは、識別されたフォント258をユーザに提示することができる。たとえば、フォント認識システムは、識別されたフォント258をグラフィカル・ユーザ・インタフェース内部でユーザに提示する。1つまたは複数の実施形態では、フォント認識システムは、識別されたフォント258を使用して、入力テキスト画像208内のテキストを再現する。さまざまな実施形態では、フォント認識システムは、電子文書内部のテキストの一部分に、識別されたフォント258を自動的に適用する。
いくつかの実施形態では、フォント認識システムは、使用されているクライアント機器が、識別されたフォント258を有していないと判断する。そのような場合、フォント認識システムは、識別されたフォント258をユーザが得る(たとえば、ダウンロードする、購入する、インストールする、または他の方法で入手する)のを手伝うことができる。代わりの実施形態では、識別されたフォント258が、費用がかかり過ぎて入手できない場合、フォント認識システムは、より経済的な類似フォントをユーザに提供することができる。
同様に、1つまたは複数の実施形態では、フォント認識システムはまた、ユーザに類似フォントのリストを提供する。たとえば、フォント認識システムは、(たとえば、ハイブリッドフォント確率ベクトルで示される適合確率に基づき)入力テキスト画像208内の入力フォントに類似する1組の既知フォントから5つのフォントを識別する。いくつかの実施形態では、フォント認識システムは、入力フォントと同じフォントを識別することができないとき、最も近く適合する既知フォントを提供する。
上述のように、フォント認識システムは、トレーニング・フォント・セット(たとえば、第1組のテキスト画像202、第2組のテキスト画像204、テキスト画像206)または入力テキスト画像208などの入力テキスト画像を得ることができる。1つまたは複数の実施形態では、フォント認識システムは最初に、テキスト画像の不要部分を切り取り1つまたは2つのグリフにする。たとえば、フォント認識システムは、テキスト画像が複数のグリフを含むことを検出したとき、各グリフ、またはグリフの対の間の区切りを決定する。グリフの少なくとも1つについて、フォント認識システムは、第1のフォント認識ニューラルネットワークまたはハイブリッドフォント認識ニューラルネットワークなどのフォント認識ニューラルネットワークに提供される、より小さな、不要部分を切り取られたテキスト画像を生成する。一般に、テキスト画像内のグリフは、同じフォントで書かれるので、生成され不要部分を切り取られたテキスト画像のいずれかを使用して、テキスト画像で使用されたフォントをトレーニングする、または識別することができる。
いくつかの実施形態では、フォント認識システムは、複数のグリフを含むテキスト画像から、不要部分切り取られた複数のテキスト画像を生成する。これらの実施形態では、フォント認識システムは、不要部分を切り取られたテキスト画像の各々をフォント認識ニューラルネットワークに提供することができる。不要部分を切り取られた追加のテキスト画像は、トレーニングを強化する、または試験のために使用することができる。同様に、フォント認識システムは、不要部分を切り取られた追加のテキスト画像を使用して、テキスト画像内で認識されたフォントをさらに確認することができる。複数のグリフを伴うテキスト画像の一例を図7Aに提供する。
次に、図3を参照すると、ハイブリッドフォント確率ベクトル生成に関する詳細をさらに提供する。詳細には、図3は、1つまたは複数の実施形態による、ハイブリッドフォント認識ニューラルネットワークを使用してハイブリッドフォント確率ベクトルを生成するための表300を示す。図に示すように、表300の列は、フォント302、第1のフォント確率ベクトル値304、第2のフォント確率ベクトル値306、第1のフォント分類確率値308、第2のフォント分類確率値310、およびハイブリッドフォント確率ベクトル値312を含む。
さらに別の関係については、トレーニングされたハイブリッドフォント認識ニューラルネットワーク260に関して表300について説明する。たとえば、フォント認識システムは、トレーニングされたハイブリッドフォント認識ニューラルネットワーク260に入力テキスト画像208を提供する。トレーニングされたハイブリッドフォント認識ニューラルネットワーク260は、第1のフォント認識ニューラルネットワーク210、第2のフォント認識ニューラルネットワーク220、および重み予測ニューラルネットワーク240に入力テキスト画像を分配する。第1および第2のフォント認識ニューラルネットワークはそれぞれ、既知フォントおよびトレーニングされたフォントに関して入力テキスト画像208内のフォントを分類する(たとえば、第1のフォント分類確率ベクトル232および第2のフォント分類確率ベクトル234)。
図に示すように、表300のフォント302は、ハイブリッドフォント認識ニューラルネットワークをトレーニングしたトレーニング・フォント・セットに含まれたフォントを含む。わかりやすくするために、フォント302に3つのフォントだけ(すなわち、フォントA、フォントB、およびフォントC)を含む。それに応じて、ハイブリッドフォント認識ニューラルネットワーク260をトレーニングして、3つのフォント302の1つで書かれたグリフ(たとえば、漢字またはかな)を含む入力テキスト画像208内のフォントを認識する。さらに、入力テキスト画像208内のフォントがフォント302の1つで書かれていない場合、1つまたは複数の実施形態では、トレーニングされたハイブリッドフォント認識ニューラルネットワーク260は、最も近いフォントを見つける、または代替形態では、フォントを識別することができなかったことを示す。
表300に示すように、第1のフォント確率ベクトル値304は、入力テキスト画像208内のフォントに関して、第1のフォント認識ニューラルネットワーク210が出力した分類値を示す。第1のフォント確率ベクトル値304に示すように、第1のフォント認識ニューラルネットワーク210は、入力フォントが95%でフォントAに、5%でフォントBに、および0%でフォントCに適合することを示す。同様に、第2のフォント確率ベクトル値306に示すように、第2のフォント認識ニューラルネットワーク220は、入力フォントを40%でフォントAに、40%でフォントBに、および20%でフォントCに適合するとして分類する。
また、表300に示すように、第1のフォント認識ニューラルネットワーク210および第2のフォント認識ニューラルネットワーク220は、同じ入力フォントに関して異なるフォント分類を作り出す。たとえば、入力フォントは、かなグリフであり、第1のフォント認識ニューラルネットワーク210は、かなと漢字の両方のグリフに関してトレーニングされる。そのようなものとして、第1のフォント認識ニューラルネットワーク210は、入力フォントをよりよく認識する。さらに、第2のフォント認識ニューラルネットワーク220は、かなグリフを用いてまったくトレーニングされず、その結果、入力フォントの分類に対してより確信がない。
表300はまた、第1のフォント分類確率値308および第2のフォント分類確率値310を含む。上記で説明したように、重み予測ニューラルネットワーク240は、入力テキスト画像に基づき第1および第2のフォント認識ニューラルネットワークに対応するフォント分類確率を含む予測ベクトル246を決定する。表に示すように、第1のフォント分類確率値308は80%であり、第2のフォント分類確率値310は20%である。このようにして、入力テキスト画像に基づき、重み予測ニューラルネットワーク240は、第1のフォント認識ニューラルネットワーク210が第2のフォント認識ニューラルネットワーク220よりもよいフォント分類であることを予測する。たとえば、重み予測ニューラルネットワーク240は、テキスト画像内のグリフをかなグリフとして認識し、トレーニングに基づき、第1のフォント認識ニューラルネットワーク210が、かなグリフをしばしば正確に分類し、その一方で、第2のフォント認識ニューラルネットワーク220が、多くの場合かなグリフを誤認することを学習している。
代わりの例では、重み予測ニューラルネットワーク240は、入力テキスト画像内のグリフを漢字として認識する場合があり、第2のフォント認識ニューラルネットワーク220が、漢字で書かれたテキスト画像をよりよく分類すると判断する場合がある。しかしながら、重み予測ニューラルネットワーク240は、第1および第2のフォント認識ニューラルネットワークと共にトレーニングされるので、漢字グリフを検出することができ、第1のフォント認識ニューラルネットワーク210が、テキスト画像内のフォントをよりよく分類することを依然として予測する。換言すれば、重み予測ニューラルネットワーク240は、第1のフォント認識ニューラルネットワーク210が一般的なかなおよび漢字のグリフニューラルネットワークであり、かつ第2のフォント認識ニューラルネットワーク220が特有の漢字グリフニューラルネットワークであるにもかかわらず、特定の漢字グリフに関して、第1のフォント認識ニューラルネットワーク210がよりよいフォント分類であることを学習した。
上述のように、第1のフォント分類確率値308は80%であり、第2のフォント分類確率値310は20%である。そのようなものとして、フォント認識システムは、フォント302の各々に関して第1のフォント分類確率値308により第1のフォント確率ベクトル値304を重み付けして、重み付き第1のフォント確率ベクトル(すなわち、フォントA:0.95×0.80=0.76、フォントB:0.05×0.80=0.04、フォントC:0.0×0.80=0.0)を得ることができる。さらに、フォント認識システムは、フォント302の各々に関して第2のフォント分類確率値310により第2のフォント確率ベクトル値306を重み付けして、重み付き第2のフォント確率ベクトル(すなわち、フォントA:0.40×0.20=0.08、フォントB:0.40×0.20=0.08、フォントC:0.20×0.20=0.04)を得ることができる。
さらに、フォント認識システムは、フォント302の各々に関して第1の重み付きフォント確率ベクトルを第2の重み付きフォント確率ベクトルと組み合わせて、表300に示すハイブリッドフォント確率ベクトル値312(すなわち、フォントA:0.76+0.08=0.84、フォントB:0.04+0.08=0.12、フォントC:0.0+0.04=0.04)を有するハイブリッドフォント確率ベクトル252を生成することができる。表に示すように、ハイブリッドフォント確率ベクトル値312は、入力フォントがフォントAに最もよく一致することを示す。いくつかの実施形態では、フォント認識システムは、入力フォントが、しきい値(たとえば、70%、80%、95%)を超えるフォント分類スコアで既知フォントに適合することを検証する。さらに別の実施形態では、フォント認識システムは、ハイブリッドフォント確率ベクトル値312から最も高いフォント分類スコアを伴う既知フォント(たとえば、84%のフォントA)を、識別されたフォント258として提示する。注釈として、フォント確率ベクトルの各々は、フォント302の各々に関する分類値を組み合わせるとき、合計して1になる。図3の数値は、ハイブリッドフォント確率ベクトル値をどのように決定するかを例示するために提供され、実際の実験値ではないことを認識されよう。
図4は、第1のトレーニングされたフォント認識ニューラルネットワークが第2のトレーニングされたフォント認識ニューラルネットワークよりも所与のテキスト画像に関してよりよいフォント分類を出力する第1のフォント分類確率を予測する重み予測ニューラルネットワークをトレーニングするステップを遂行する一連の活動400を示す。さまざまな実施形態では、本明細書で説明するフォント認識システムは、一連の活動400を遂行する。いくつかの実施形態では、フォント認識システムは、サーバ機器により実装され、クライアント機器と一緒に一連の活動400の1つまたは複数を遂行する。
図に示すように、一連の活動400は、フォント認識システムがさまざまなグリフタイプの複数のトレーニング・フォント・セットを識別するステップ402を含む。たとえば、フォント認識システムは、フォントリポジトリにアクセスし、いくつかの日本語フォントを識別する。フォント認識システムは、識別した日本語フォントの一部またはすべてを選択することができる。さらに、フォント認識システムは、かなと漢字のグリフを両方とも含むいくつかの日本語グリフを選択する。さまざまな実施形態では、フォント認識システムは、かなおよび漢字のグリフを使用するテキスト画像からなるトレーニング・フォント・セットを生成し、かなまたは漢字のグリフだけを使用するテキスト画像からなるトレーニング・フォント・セットを生成し、日本語以外の言語のグリフを使用するテキスト画像からなるトレーニング・フォント・セットを生成し、および/またはローカルまたは遠隔のフォントデータベースから1つまたは複数のトレーニング・フォント・セットを得る。
さらに、いくつかの実施形態では、フォント認識システムは、生成されたテキスト画像それぞれとメタデータを関連づける。たとえば、フォント認識システムは、各テキスト画像で使用されたフォントおよびグリフにラベルを付ける。上記で説明したように、フォント認識システムは、トレーニング中にメタデータを使用して、精度を決定し、フォント分類誤差損失を計測することができる。
また、図に示すように、一連の活動400は、フォント認識システムが第1および第2のフォント認識ニューラルネットワークを最初にトレーニングするステップ404を含む。これまで説明したように、フォント認識システムは、異なるトレーニング・フォント・セットに基づき第1および第2のフォント認識ニューラルネットワークを別個にトレーニングすることができる。たとえば、1つまたは複数の実施形態では、フォント認識システムは、第1のトレーニング・フォント・セットおよびフォント分類損失モデルを採用して、(たとえば、20,000回の反復を使用して)第1のフォント認識ニューラルネットワークをトレーニングする。同様に、フォント認識システムは、第2のトレーニング・フォント・セットおよびフォント分類損失モデルを採用して、第2のフォント認識ニューラルネットワークをトレーニングする。第2のトレーニング・フォント・セット内のグリフは、第1のトレーニング・フォント・セットに含まれるグリフのサブセットとすることができる。代わりに、第1および第2のトレーニング・フォント・セットは、すでに説明したように、別個のグリフタイプを含むことができる。
すでに言及したように、さまざまな実施形態では、第1および第2のフォント認識ニューラルネットワークは、下位畳込み層および上位全結合層を伴う畳込みニューラルネットワークである。たとえば、第1のフォント認識ニューラルネットワークは、調整可能なフォント特徴抽出パラメータ(たとえば、重みおよびバイアス)を使用して第1のトレーニング・フォント・セット内のテキスト画像に基づき特徴ベクトルを生成する。さらに、フォント認識ニューラルネットワークは、生成した特徴ベクトルと既知フォントの特徴ベクトルを比較することにより、調整可能なフォント分類パラメータに基づきフォント確率ベクトルを生成する。代わりの実施形態では、第1のフォント認識ニューラルネットワークは、第2のフォント認識ニューラルネットワークと異なるタイプのニューラルネットワークである。
図に示すように、一連の活動400は、確率を予測する重み予測ニューラルネットワークをトレーニングするステップ406を含む。詳細には、フォント認識システムは、予測ベクトルを出力する重み予測ニューラルネットワークを生成する。各予測ベクトルは、フォント認識ニューラルネットワークが別のフォント認識ニューラルネットワークよりも所与のテキスト画像内のフォントをよりよく分類する確率を示すフォント分類確率を含む。
重み予測ニューラルネットワークをトレーニングするために、1つまたは複数の実施形態では、フォント認識システムは、ハイブリッドフォント認識ニューラルネットワークを採用する。ハイブリッドフォント認識ニューラルネットワークは、トレーニングされた第1および第2のフォント認識ニューラルネットワークを重み予測ニューラルネットワークと組み合わせる(406a)。次いで、トレーニング・フォント・セット内のテキスト画像、および単一のフォント分類損失モデルを使用して、フォント認識システムは、重み予測ニューラルネットワークをトレーニングする。
さまざまな実施形態では、ハイブリッドフォント認識ニューラルネットワークをトレーニングするために採用するトレーニングテキスト画像を、第1および/または第2のフォント認識ニューラルネットワークをトレーニングするために使用するトレーニング・フォント・セットから得る。代わりの実施形態では、トレーニング・フォント・セットは、未知の、ラベルの付いていない日本語グリフ(たとえば、漢字とかなの両方)を含む。フォント認識システムは、重み予測ニューラルネットワークをトレーニングして、この追加情報なしに所与のテキスト画像をどちらのフォント認識ニューラルネットワークが最もよく分類するかに関して正確な予測を行うことができる。
上述のように、1つまたは複数の実施形態では、フォント認識システムは、トレーニング・フォント・セット内のトレーニング画像ごとにハイブリッドフォント確率ベクトルを決定する(406b)。たとえば、フォント認識システムは、第1のフォント認識ニューラルネットワーク、第2のフォント認識ニューラルネットワーク、および重み予測ニューラルネットワークにトレーニングテキスト画像のコピーを提供する。第1および第2のフォント認識ニューラルネットワークは、上記で説明したように、テキスト画像内のフォントに関してフォントを個々に分類する第1および第2のフォント確率ベクトルを出力する。
さらに、重み予測ニューラルネットワークは、トレーニングテキスト画像に関するフォント分類確率を有する予測ベクトルを出力する。すでに説明したように、重み予測ニューラルネットワークは最初にトレーニングされていないので、第1のフォント分類確率は、デフォルト確率またはランダム確率を割り当てられる。しかしながら、重み予測ニューラルネットワークは、トレーニングするとき、トレーニングテキスト画像に基づき、各フォント認識ニューラルネットワークにどちらの確率を動的に割り当てるべきかを学習する。
例証するために、所与のトレーニングテキスト画像に関して、いくつかの実施形態では、フォント認識システムは、以下の式1に基づきハイブリッドフォント確率ベクトルを生成する。式1に示すように、Yは、入力テキスト画像Xに関するハイブリッドフォント確率ベクトルに対応する。さらに、w1およびw2は、それぞれ第1および第2のフォント分類確率(たとえば、重み1および重み2)に対応する。さらに、M1およびM2は、それぞれ第1のフォント認識ニューラルネットワークの第1のフォント確率ベクトル、および第2のフォント認識ニューラルネットワークの第2のフォント確率ベクトル(たとえば、モデル1およびモデル2)に対応する。さらに、w1およびw2は、0~1の間に及ぶ範囲であり(すなわち、[0,1])、一緒に合計して1またはほぼ1になる。換言すれば、w2=(1.0-w1)である。
Y(X)=w1M1(X)+w2M2(X) (1)
式1に示すように、フォント認識システムは、入力テキスト画像(すなわち、X)の第1のフォント確率ベクトル(すなわち、M1)に第1のフォント分類確率(すなわち、w1)を適用することにより、第1の重み付きフォント確率ベクトルを決定する。同様に、フォント認識システムは、入力テキスト画像(すなわち、X)の第2のフォント確率ベクトル(すなわち、M2)に第2のフォント分類確率(すなわち、w2)を適用することにより、第2の重み付きフォント確率ベクトルを決定する。次いで、フォント認識システムは、第1および第2の重み付きフォント確率ベクトルを組み合わせて、テキスト画像に関するハイブリッドフォント確率ベクトル(すなわち、Y(X))を形成する。上記の図3は、フォント認識システムがハイブリッドフォント確率ベクトルを生成する数値的一例を提供する。
式1に示すように、フォント認識システムは、第1および第2の重み付きフォント確率ベクトル間の一次結合(たとえば、加算)を採用して、ハイブリッドフォント確率ベクトルを形成する。代わりの実施形態では、フォント認識システムは、異なる組合せ技法を採用して、第1および第2の重み付きフォント確率ベクトルを一緒に融合させることによりハイブリッドフォント確率ベクトルを形成する。
さらに、重み予測ニューラルネットワークをトレーニングするために、フォント認識システムは、ハイブリッドフォント確率ベクトルに基づきフォント分類損失を最小にする(406c)。詳細には、フォント認識システムは、単一のフォント分類損失モデルにハイブリッドフォント確率ベクトルを提供する。1つまたは複数の実施形態では、フォント分類損失モデルは、交差エントロピー損失を採用して、従来の誤差逆伝播によりエンド・ツー・エンドの手法で総合モデルを調整するソフトマックス分類器である。たとえば、フォント分類損失モデルは、平均2乗誤差(mean square error、MSE)を採用して、フォント分類損失を決定する。
1つまたは複数の実施形態では、フォント認識システムは、フォント分類損失モデルを採用して、ハイブリッドフォント認識ニューラルネットワーク内部のさまざまなニューラルネットワークに同時フィードバックを提供する。たとえば、フォント分類損失モデルは、第1および第2のフォント認識ニューラルネットワークにフォント分類誤差損失を提供して、フォント特徴抽出パラメータをさらにトレーニングする。第1および第2のフォント認識ニューラルネットワークは最初にトレーニングされたので、フォント分類損失モデルは、対応するパラメータを微調整する小さな学習率(たとえば、1e-6)を採用する。同時に、フォント分類損失モデルは、重み予測ニューラルネットワークにフォント分類誤差損失を提供して、正確なフォント分類パラメータを学習する。重み予測ニューラルネットワークは最初にトレーニングされていないので、フォント分類損失モデルは、重み予測ニューラルネットワークのパラメータを明確に(たとえば、より大まかにかつ急速に)調整する大きな学習率(たとえば、1e-3)を採用する。
例証するために、以下は、フォント分類損失モデルがフォント分類誤差損失を使用して、重み予測ニューラルネットワークをどのようにトレーニングするかの概念上の一例である。フォント認識システムは、フォント分類損失モデルにハイブリッドフォント確率ベクトルを提供する。ハイブリッドフォント確率ベクトルは、識別されたフォントがフォントAであることを示す。フォント分類損失モデルは、フォントAが実際に、対応するトレーニングテキスト画像で使用されたフォントであるかどうかを検証する。トレーニングテキスト画像がフォントAを含む場合、フォント分類誤差損失は小さく、重み予測ニューラルネットワークにフィードバックはほとんど、またはまったく戻して提供されない。
しかしながら、トレーニングテキスト画像が、フォントAで書かれていない(たとえば、トレーニングテキスト画像がフォントBを使用した)場合、フォント分類損失モデルは、ハイブリッドフォント確率ベクトルからのフォントAに関する特徴ベクトルとフォントBに関する既知の特徴ベクトルの間のベクトル空間距離(たとえば、誤差損失)を決定する。フォント分類損失モデルは、大きな学習率を適用し(たとえば、誤差損失を0.001で除算する)、修正した誤差損失を重み予測ニューラルネットワークに提供する。誤差損失から、重み予測ニューラルネットワークは、フォント分類確率を誤って予測したことを学習し、それに応じて、フォント分類パラメータを調整する。フォント認識システムは、誤差損失が低減し始めるまで、同じトレーニングテキスト画像に関して処理を繰り返す。追加でまたは代わりに、フォント認識システムは、トレーニング・フォント・セット内の異なるトレーニングテキスト画像を用いて処理を繰り返す。さらに、総合損失が最小になり、かつ重み予測ニューラルネットワークが収束するまで、処理を反復して繰り返す。
図4に示すように、一連の活動400は、入力フォント(たとえば、漢字、かな、または両方の混合物)を含む入力テキスト画像を受け取るステップ408を含む。たとえば、ユーザは、フォント認識システムに未知のグリフの未知の入力フォントで書かれたテキストを含む画像を提供する。いくつかの実施形態では、入力テキスト画像は、メタデータをまったく伴わない単調な画像である可能性があり、フォント認識システムは、未知の入力フォントを含む入力画像の領域を識別する。別の例では、フォント認識システムは、テキスト画像内のフォントを識別するバッチ動作の一部などで、入力フォントを伴うテキスト入力ファイルを自動的に受け取る。
図4に示すように、一連の活動400は、フォント認識ニューラルネットワークを使用して、入力テキスト画像から入力フォントを識別するステップ410を含む。たとえば、フォント認識システムは、トレーニングされたハイブリッドフォント認識ニューラルネットワークに、入力フォントを伴う入力テキスト画像を提供する。それに応答して、ハイブリッドフォント認識ニューラルネットワークは、入力フォントに関する特徴ベクトルおよびハイブリッドフォント確率ベクトルを決定する。さらに、これまでに説明したように、フォント認識システムは、ハイブリッドフォント確率ベクトルから入力フォントを識別する。
1つまたは複数の実施形態では、フォント認識システムは、サーバ機器上で入力フォントを識別する。たとえば、クライアント機器は、サーバ機器に入力テキスト画像(または表現するデータ)を提供し、サーバ機器は、識別した入力フォントをクライアント機器に戻して提供する。代わりの実施形態では、フォント認識システムは、クライアント機器上に少なくとも一部は常駐し、入力テキスト画像に関する特徴ベクトルおよび/またはフォント確率ベクトルを識別する(たとえば、サーバ機器は、トレーニングされたハイブリッドフォント認識ニューラルネットワークをクライアント機器に提供する)。
さらに、1つまたは複数の実施形態では、フォント認識システムは、アプリケーションと一緒に機能して、入力テキスト画像内のフォントを受け取り、識別する。たとえば、ユーザは、ワードプロセッシングまたはグラフィックデザインのアプリケーションを使用しており、入力テキスト画像に表示されたフォントを使用するように要求する。それに応答して、フォント認識システムは、ハイブリッドフォント認識ニューラルネットワークを使用して入力テキスト画像内の入力フォントを識別し、識別したフォントをアプリケーション内部でユーザに戻して提供する。さらに、いくつかの実施形態では、フォント認識システムはまた、上記で説明したように、追加の類似フォントを提供する。
次に、図5を参照すると、1つまたは複数の実施形態によるフォント認識システムの能力および構成要素に関する詳細をさらに提供する。詳細には、図5は、フォント管理システム502内部に配置され、かつコンピューティング機器500上に収容されたフォント認識システム504の一例のアーキテクチャの概略図を示す。フォント認識システム504は、すでに説明したフォント認識システムの1つまたは複数の実施形態を表すことができる。
図に示すように、フォント認識システム504は、コンピューティング機器500上でフォント管理システム502内部に配置される。一般に、コンピューティング機器500は、さまざまなタイプのクライアント機器を表してもよい。たとえば、いくつかの実施形態では、クライアントは、携帯電話、スマートホン、PDA、タブレット、ラップトップなどのような移動体機器である。他の実施形態では、コンピューティング機器500は、デスクトップもしくはサーバ、または別のタイプのクライアント機器などの非移動体機器である。いくつかの実施形態では、コンピューティング機器500の一部分は、異なるタイプのコンピューティング機器に対応する(たとえば、いくつかの構成要素は、サーバ機器の役割を果たすとき、コンピューティング機器500上で動作し、いくつかの構成要素は、クライアント機器の役割を果たすとき、コンピューティング機器500上で動作する)。コンピューティング機器500に関する詳細については、以下で、ならびに図10に関連してさらに論じる。
フォント管理システム502は、一般に電子文書および/またはシステムアプリケーション内部のデジタルフォントの作成、修正、共有、インストール、および/または削除を容易にする。たとえば、フォント管理システム502は、フォントデータベース520内など、コンピューティング機器500上にフォントのリポジトリを記憶する。さらに、フォント管理システム502は、遠隔に配置された追加フォントにアクセスすることができる。さらに、いくつかの実施形態では、フォント管理システム502は、コンピューティング機器500から分離して配置されて、コンピューティング機器500にフォントを提供することができる。1つまたは複数の実施形態では、フォント管理システム502は、ADOBE(登録商標) TYPEKIT(登録商標)を備える。
さらに、フォント管理システム502は、1つまたは複数のアプリケーションと一緒に動作して、コンピューティング機器500上にフォントを表示することができる。たとえば、1つまたは複数の実施形態では、フォント管理システム502は、ADOBE(登録商標) ACROBAT(登録商標)、ADOBE(登録商標) INDESIGN(登録商標)、または別のワード・プロセッシング・アプリケーションなどのワード・プロセッシング・アプリケーションにフォントを提供する。他の実施形態では、フォント管理システム502は、ADOBE(登録商標) ILLUSTRATOR(登録商標)などの設計アプリケーションにフォントを提供する。
図5に示すように、フォント認識システム504は、さまざまな構成要素を含む。たとえば、フォント認識システム504は、フォントマネージャ506と、テキスト画像ジェネレータ508と、第1のフォント認識ニューラルネットワーク512、第2のフォント認識ニューラルネットワーク514、および重み予測ニューラルネットワーク516を含むハイブリッドフォント認識ニューラルネットワーク510と、フォント識別器518と、フォントトレーニング画像522およびフォント特徴ベクトル524を含むフォントデータベース520とを含む。次に、これらの構成要素の各々について、以下で説明する。
フォントマネージャ506は、コンピューティング機器500内部でフォントを記憶し、受け取り、検出し、インストールし、順序づけし、および/または組織化することができる。たとえば、1つまたは複数の実施形態では、フォントマネージャ506は、コンピューティング機器500上に1組のフォントを記憶する。いくつかの実施形態では、フォントマネージャ506は、フォント管理システム502と共に、フォントデータベース520内部でフォントを維持する。たとえば、フォントマネージャ506は、ユーザが電子文書で採用することができる1組のフォント(たとえば、日本語フォント、および他の言語のフォント)を維持する。さらに他の例では、フォントマネージャ506は、フォントトレーニング画像522(たとえば、さまざまなグリフのいくつかの組のラベル付き、およびラベルの付いていないテキスト画像)を維持する。さまざまな実施形態では、フォントマネージャ506は、コンピューティング機器500上に記憶されていない、または配置されていない追加フォントを識別し、それらにアクセスすることができる。たとえば、フォントマネージャ506は、複数の言語に対応するフォントをコンピューティング機器500上に維持する。
テキスト画像ジェネレータ508は、ハイブリッドフォント認識ニューラルネットワーク510をトレーニングするために使用するいくつかの組のテキスト画像を生成することができる。たとえば、テキスト画像ジェネレータ508は、すでに説明したように、ランダムに選択したフォントおよびグリフ(たとえば、漢字グリフだけ、かなグリフだけ、漢字およびかなのグリフ、他の言語のグリフ)からいくつかの組のテキスト画像を描画する。いくつかの実施形態では、テキスト画像ジェネレータ508は、生成したテキスト画像をフォントトレーニング画像522としてフォントデータベース520に記憶する。さらに、テキスト画像ジェネレータ508は、これまでに説明したように、トレーニングで使用するさまざまな組のテキスト画像にラベルを付ける、タグを付ける、または他の方法で注釈を付ける。
図5に示すように、フォント認識システム504は、ハイブリッドフォント認識ニューラルネットワーク510を含む。ハイブリッドフォント認識ニューラルネットワーク510は、第1のフォント認識ニューラルネットワーク512、第2のフォント認識ニューラルネットワーク514、および重み予測ニューラルネットワーク516を含む。ニューラルネットワークの各々は、下位畳込み層および上位全結合層だけではなく、トレーニング中に損失層も含むことができる。
いくつかの実施形態では、畳込み層符号化器特徴ベクトル(たとえば、フォント特徴ベクトルおよび/またはフォント分類特徴ベクトル)は、入力テキスト画像に基づく。さらに、畳込み層は、特徴ベクトルを生成するための、1つまたは複数の正規化層およびプーリング層を含むことができる。1つまたは複数の実施形態では、上位層は、生成された特徴ベクトルを解析し、分類する。たとえば、第1のフォント認識ニューラルネットワーク512および第2のフォント認識ニューラルネットワーク514は、上記で説明したように、多次元フォント確率ベクトルを出力するフォント分類器を含む。さらに、重み予測ニューラルネットワークは、これまでに説明したように、フォント分類確率を含む2次元予測ベクトルを出力するフォント分類分類器を含むことができる。
1つまたは複数の実施形態では、フォント認識システム504は、ハイブリッドフォント確率ベクトルに基づきハイブリッドフォント認識ニューラルネットワーク510をトレーニングする。上記で説明したように、フォント認識システム504は、第1のフォント認識ニューラルネットワーク512および第2のフォント認識ニューラルネットワーク514からのフォント確率ベクトルを、重み予測ニューラルネットワークからのフォント分類確率と共に組み合わせて、ハイブリッドフォント確率ベクトルを形成する。ハイブリッドフォント確率ベクトルに基づき、フォント認識システム504は、ハイブリッドフォント認識ニューラルネットワーク510をトレーニングし、フォントを識別することができる。
上述のように、さまざまな実施形態では、ニューラルネットワークは、トレーニング中に損失層を含む。たとえば、第1のフォント認識ニューラルネットワーク512および第2のフォント認識ニューラルネットワーク514はそれぞれ、最初にトレーニングしているとき、フォント分類損失モデルを採用する。さらに、ハイブリッドフォント認識ニューラルネットワーク510は、すでに説明したように、単一のフォント分類損失モデルを採用して、ハイブリッドフォント確率ベクトルに基づきトレーニングする。いずれの場合にも、ニューラルネットワークは、フォント分類損失モデルを使用して、フォント分類誤差損失を反復してトレーニングし、最小にすることができる。
トレーニングされたハイブリッドフォント認識ニューラルネットワーク510は、入力テキスト画像内のそのフォントを識別するハイブリッドフォント確率ベクトルを提供することができる。たとえば、入力テキスト画像について、トレーニングされたハイブリッドフォント認識ニューラルネットワーク510は、第1のフォント認識ニューラルネットワーク512および第2のフォント認識ニューラルネットワーク514を使用して、2つのフォント確率ベクトルを生成する。フォント認識ニューラルネットワークの各々は、生成したフォント特徴ベクトルと(たとえば、フォントデータベース520に記憶された)既知フォントのフォント特徴ベクトル524を比較することにより、フォント確率ベクトルを作成することができる。さらに、トレーニングされたハイブリッドフォント認識ニューラルネットワーク510は、第1/第2のフォント認識ニューラルネットワークが第2/第1のフォント認識ニューラルネットワークよりも入力デジタルフォントに関してよりよいフォント分類を出力することを示す、第1および第2のフォント分類確率を含む予測ベクトルを生成する。フォント確率ベクトルおよびフォント分類確率に基づき、フォント認識システム504は、上記で説明したように、ハイブリッドフォント確率ベクトルを生成する。
図に示すように、フォント認識システム504は、フォント識別器518を含む。フォント識別器518は、入力テキスト画像内部の入力フォントを受け取り、トレーニングされたハイブリッドフォント認識ニューラルネットワーク510を使用して入力フォントを識別することができる。詳細には、フォント識別器518は、ハイブリッドフォント認識ニューラルネットワーク510に入力テキスト画像を提供し、出力されたハイブリッドフォント確率ベクトルに基づき、入力テキスト画像内のフォントを識別する。さらにフォント識別器518は、識別したフォントを、たとえば入力テキスト画像を提出したユーザに提供する。
フォント認識システム504の構成要素506~524の各々は、ソフトウェア、ハードウェア、または両方を含むことができる。たとえば、構成要素506~524は、コンピュータ可読記憶媒体に記憶され、かつクライアント機器またはサーバ機器などの1つまたは複数のコンピューティング機器のプロセッサにより実行可能な1つまたは複数の命令を含むことができる。1つまたは複数のプロセッサにより実行されたとき、フォント認識システム504のコンピュータ実行可能命令は、本明細書で説明する特徴学習法を1つまたは複数のコンピューティング機器に遂行させることができる。あるいは、構成要素506~524は、ある種の関数、または関数のグループを遂行するための専用処理機器などのハードウェアを含むことができる。あるいは、フォント認識システム504の構成要素506~524は、コンピュータ実行可能命令とハードウェアの組合せを含むことができる。
さらに、フォント認識システム504の構成要素506~524を、たとえば、1つもしくは複数のオペレーティングシステムとして、1つもしくは複数のスタンドアロンのアプリケーションとして、アプリケーションの1つもしくは複数のモジュールとして、1つもしくは複数のプラグインとして、1つもしく複数のライブラリ関数、または他のアプリケーションにより呼び出されてもよい関数として、および/またはクラウド・コンピューティング・モデルとして実装してもよい。したがって、構成要素506~524を、デスクトップアプリケーションまたは移動体アプリケーションなどのスタンドアロンのアプリケーションとして実装してもよい。さらに、構成要素506~524を、遠隔サーバ上にホスティングされた1つまたは複数のウェブに基づくアプリケーションとして実装してもよい。構成要素506~524を、同じく一揃いの移動体機器アプリケーション、すなわち「app」に実装してもよい。例証するために、構成要素506~524を、ADOBE(登録商標) TYPEKIT(登録商標)、ADOBE(登録商標) INDESIGN(登録商標)、ADOBE(登録商標) ACROBAT(登録商標)、ADOBE(登録商標) ILLUSTRATOR(登録商標)、ADOBE(登録商標) PHOTOSHOP(登録商標)、ADOBE(登録商標) CREATIVE CLOUD(登録商標)のソフトウェアを含むがそれらに限定されないアプリケーションに実装してもよい。「ADOBE」、「INDESIGN」、「ACROBAT」、「ILLUSTRATOR」、「PHOTOSHOP」、および「CREATIVE CLOUD」はいずれも米国および/または他の国々のAdobe Systems Incorporatedの登録商標または商標である。
図6は、1つまたは複数の実施形態に従ってフォント認識システム504を実装してもよい環境600の概略図を示す。1つまたは複数の実施形態では、環境600は、1つまたは複数のサーバ機器602および1つまたは複数のクライアント機器604a、604bを含むさまざまなコンピューティング機器を含む。さらに環境600は、ネットワーク606を含む。ネットワーク606は、コンピューティング機器が通信することができる任意の適切なネットワークであってもよい。ネットワークの例を図10に関して以下でより詳細に論じる。
図6に示すように、環境600は、図10に関して以下で説明するコンピューティング機器の1つまたは複数などの任意のコンピューティング機器を備えてもよい1つまたは複数のサーバ機器602を含む。さらに1つまたは複数のサーバ機器602は、すでに説明したフォント管理システム502およびフォント認識システム504を含む。たとえば、上記で説明したように、フォント認識システム504は、ハイブリッドフォント認識ニューラルネットワークをトレーニングし、適用して、テキスト画像で使用されたフォント(たとえば、日本語フォント)を正確に識別することができる。
さらに、環境600は、1つまたは複数のクライアント機器604a、604bを含む。クライアント機器604a、604bは、図10に関して以下で説明するコンピューティング機器などの任意のコンピューティング機器を備えてもよい。上記で説明したように、1つまたは複数のクライアント機器604a、604bは、トレーニングされたハイブリッドフォント認識ニューラルネットワークを採用して、入力テキスト画像内部のフォントを識別することができる。
図示するように、1つまたは複数の実施形態では、1つまたは複数のサーバ機器602は、フォント認識システム504のすべてまたは一部分を含むことができる。詳細には、フォント認識システム504は、1つもしくは複数のサーバ機器602上で走るアプリケーション、または1つもしくは複数のサーバ機器602からダウンロードすることができるソフトウェアアプリケーションの一部分を備えることができる。たとえば、フォント認識システム504は、1つまたは複数のサーバ機器602上にホスティングされたコンテンツとクライアント機器604aが対話することができるようにするウェブ・ホスティング・アプリケーションを含むことができる。例証するために、環境600の1つまたは複数の実施形態では、クライアント機器604aは、1つまたは複数のサーバ機器602がサポートするウェブページにアクセスする。詳細には、クライアント機器604aは、1つまたは複数のサーバ機器602でホスティングされたウェブページまたはウェブサイト内部のテキスト画像のフォントにユーザがアクセスし、それを見て、選択し、および/または識別することができるようにするアプリケーションを走らせることができる(たとえば、ウェブページにより、ユーザは入力フォントを含むテキスト画像を提供し、入力フォントの識別を確実に受け取ることが可能になる)。
図6は、1つまたは複数のサーバ機器602、クライアント機器604a、604b、およびネットワーク606の特定の配置を示すが、さまざまな配置がさらに可能である。たとえば、図6は、ネットワーク606を介して1つまたは複数のサーバ機器602と通信する1つまたは複数のクライアント機器604a、604bを示すが、1つまたは複数の実施形態では、単一のクライアント機器が、ネットワーク606をバイパスして1つまたは複数のサーバ機器602と直接通信してもよい。
同様に、さまざまな構成要素を有するとして図6の環境600について描写しているが、環境600は、追加のまたは代わりの構成要素を有してもよい。たとえば、フォント認識システム504を複数のコンピューティング機器上に実装することができる。詳細には、フォント認識システム504を1つまたは複数のサーバ機器602により全部実装してもよい、またはクライアント機器604aにより全部実装してもよい。あるいは、フォント認識システム504を、(たとえば、1つまたは複数のサーバ機器602および1つまたは複数のクライアント機器604a、604bを利用して)複数の機器または構成要素にわたり実装してもよい。
次に、図7Aおよび図7Bを参照すると、フォント認識システムの実施形態のトレーニングおよび評価に関する詳細についてさらに提供する。詳細には、図7Aは、異なるグリフタイプの複数のグリフを含むサンプル入力テキスト画像を示す。図7Bは、1つまたは複数の実施形態による、図7Aの入力テキスト画像内のグリフに関する動的重みを決定するハイブリッドフォント認識ニューラルネットワークを示すグラフを示す。
図7Aは、トレーニングされたハイブリッドフォント認識ニューラルネットワークを試験するために使用する入力テキスト画像710を示す。入力テキスト画像710は、10の日本語グリフを含む。グリフは、漢字およびかなのグリフの混合物を含む。たとえば、グリフ1~4は漢字であり、グリフ5~10はかなである。入力テキスト画像710は、同じ文の中で漢字とかなの両方のグリフ使用することが日本語の書き物では一般的であるので、漢字およびかなのグリフの混合物を含む。
トレーニングされたハイブリッドフォント認識ニューラルネットワークに入力テキスト画像710を提供すると、フォント認識システムは、入力テキスト画像710の不要部分を切り取って複数の正方形断片(たとえば、より小さな画像)にする。すでに言及したように、フォント認識システムは、入力テキスト画像の不要部分を切り取って、各画像が1つまたは複数のグリフを含む複数のより小さな画像にすることができる。いくつかの実施形態では、フォント認識システムは、トレーニングされたハイブリッドフォント認識ニューラルネットワークに不要部分を切り取った画像の1つを提供して、画像内のフォントを識別する。さらに別の実施形態では、フォント認識システムは、これまでに説明したように、さらにフォント認識を検証および/または試験するために、不要部分を切り取った追加画像をトレーニングされたハイブリッドフォント認識ニューラルネットワークに提供する。
試験するために、入力テキスト画像710の不要部分を切り取って、各画像がグリフを含む10のより小さな画像にする。漢字とかなのグリフの組合せに関してトレーニングされた一般的なフォント認識ニューラルネットワーク、および漢字グリフを使用してトレーニングされた特有のフォント認識ニューラルネットワークを含むトレーニングされたフォント認識ニューラルネットワークに10の画像の各々を提供した。10の画像ごとに、トレーニングされたハイブリッドフォント認識ニューラルネットワーク(たとえば、重み予測ニューラルネットワーク)は、第1のフォント分類確率(たとえば、w1)および第2のフォント分類確率(たとえば、w2)を含む予測ベクトルを出力する。上記で説明したように、第2のフォント分類確率は、特有のフォント認識ニューラルネットワークが一般的なフォント認識ニューラルネットワークよりも入力テキスト画像に関してよりよいフォント分類を出力する予測確率を示す。
図7Bは、特有のフォント認識ニューラルネットワークに対応する10の画像の各々に関する第2のフォント分類確率(すなわち、w2)を示すグラフ720を示す。図に示すように、トレーニングされたハイブリッドフォント認識ニューラルネットワークの重み予測ニューラルネットワークは、漢字グリフ(たとえば、グリフ1~4)を含む画像に関してより大きな予測する重みw2(すなわち、フォント分類確率)を予測する。実際に、トレーニングされたハイブリッドフォント認識ニューラルネットワークは、漢字グリフ(たとえば、グリフ1~4)に関して一般的なフォント認識ニューラルネットワークよりも漢字特有のフォント認識ニューラルネットワークに対してより大きな予測する重みw2を予測する。
同様に、w1を別個のグラフで示していないが、w2が低いとき、w1は高い(すなわち、w2=1.0-w1)。それに応じて、トレーニングされたハイブリッドフォント認識ニューラルネットワークは、非漢字グリフ(たとえば、グリフ5~10)に関して漢字特有のフォント認識ニューラルネットワークよりも一般的なフォント認識ニューラルネットワークに対して、より大きなw1重みを予測する。したがって、図7Bは、フォント認識システムが、漢字グリフを含む画像に関して、より大きな予測する重みを漢字特有のものに割り当て、漢字グリフなしの画像に関して逆もまた同様であることを示す。
さらに、研究者は、最新式フォント分類システムと比較して、本明細書で説明する、トレーニングされたハイブリッドフォント認識ニューラルネットワークを評価した。詳細には、研究者は、正しく分類した(たとえば、正しいフォントを識別した)テストデータ(たとえば、試験するテキスト画像)の精度パーセンテージを計測することにより、ハイブリッドモデル(たとえば、トレーニングされたハイブリッドフォント認識ニューラルネットワーク)の有効性を評価した。さらに、研究者は、漢字とかなの両方のグリフでトレーニングされた最新式フォント分類システム(すなわち、一般的なモデル)、および漢字グリフでトレーニングされた最新式フォント分類システム(すなわち、漢字特有のモデル)に対して、同じテキストデータを試験した。以下の表1は、平均精度結果を示す。
表1に示すように、一般的なモデルに伴う総合認識精度は89.19%であり、その一方で、試験中に一般的なモデルに提供された漢字グリフのテキスト画像の精度は82.65%である。漢字特有のモデルについては、試験中に提供された漢字グリフのテキスト画像の精度は、一般的なモデルよりもはるかに高い90.42%である。ハイブリッドモデル(太字で示す)に関しては、ハイブリッドモデルは、総合精度をほぼ1%だけ改善する。さらに、ハイブリッドモデルは、漢字グリフのテキスト画像に関して一般的なモデルよりも7%超だけ性能が優れており(すなわち、ハイブリッドモデル:90.06%)、漢字グリフだけで試験したときの、漢字特有のモデルが達成した性能(すなわち、90.42%)と同等の結果である。
上述のように、日本語テキストが多くの場合、語の同じストリング内で漢字とかなの両方のグリフを採用するので、これらの結果は著しいものである。このように、日本語テキストの入力テキスト画像は、未知のグリフタイプを含む。実際に、これらの入力テキスト画像は、事前にソートされて、または認識されて、漢字およびかなに特有にグループ化されていない。その結果、漢字特有のモデルは、かなグリフの画像を分類することができず、一般的なモデルの性能は、本明細書で開示するハイブリッドモデルより劣る。
他の注釈として、表1の結果は、本明細書で説明するフォント認識システムと最新式フォント分類システムの比較を説明している。従来のフォント分類システムと比較したとき、本明細書で説明するフォント認識システムは、試験した各カテゴリでこれらの従来のシステムよりも性能がさらに優れている。上述のように、従来のシステムは、日本語フォントなどの、クラス内変動を含むフォントに対してフォント分類を不完全に遂行する。
図1~図7B、対応するテキスト、および例は、フォント認識システムのいくつかの異なる方法、システム、機器、および非一時的コンピュータ可読媒体を提供する。前述に加えて、1つまたは複数の実施形態についてもまた、特定の結果を達成するための活動を備えるフローチャートに関して説明することができる。たとえば、図8および図9を、より多くの、またはより少ない活動で遂行してもよい。さらに、異なる順序で活動を遂行してもよい。さらに、本明細書で説明する活動を繰り返しても、互いに並列に、または同じ活動もしくは類似する活動の異なるインスタンスと並列に遂行してもよい。
言及したように、図8は、1つまたは複数の実施形態による、重み予測ニューラルネットワークを使用して、ハイブリッドフォント認識ニューラルネットワークをトレーニングしてデジタルフォントを分類するための一連の活動800の流れ図を示す。図8は、一実施形態による活動を示すが、代わりの実施形態は、図8に示す活動のいずれかを省略する、それに追加する、それを並べ替える、および/または修正してもよい。図8の活動を、方法の一部として遂行することができる。あるいは、非一時的コンピュータ可読媒体は、1つまたは複数のプロセッサにより実行されたとき、コンピューティング機器に図8の活動を遂行させる命令を備えることができる。いくつかの実施形態では、システムは、図8の活動を遂行することができる。
1つまたは複数の実施形態では、一連の活動800を、コンピューティング機器500または1つもしくは複数のサーバ機器602などの1つまたは複数のコンピューティング機器上に実装する。さらに、いくつかの実施形態では、一連の活動800を、電子文書を作成または編集するために、デジタル環境に実装する。たとえば、一連の活動800を、デジタルフォントおよびグリフを記憶するメモリを有するコンピューティング機器に実装する。たとえば、メモリは、第1のグリフタイプの第1組のフォントトレーニング画像、および第2のグリフタイプの第2組のフォントトレーニング画像を記憶する。いくつかの実施形態では、デジタルフォントは日本語フォントであり、グリフは日本語グリフである。
一連の活動800は、第1のグリフタイプのフォントトレーニング画像を使用して第1のフォント認識ニューラルネットワークをトレーニングする活動810を含む。詳細には、活動810は、第1のグリフタイプを含む第1の複数のフォントトレーニング画像を使用して第1のフォント認識ニューラルネットワークをトレーニングして、デジタルフォントを分類するステップを伴うことができる。いくつかの実施形態では、第1の複数のフォントトレーニング画像は、第1のグリフタイプ(たとえば、日本語かなグリフ)と第2のグリフタイプ(たとえば、日本語漢字グリフ)の両方を含む。
図に示すように、一連の活動800はまた、第2のグリフタイプのフォントトレーニング画像を使用して第2のフォント認識ニューラルネットワークをトレーニングする活動820を含む。詳細には、活動820は、第2のグリフタイプを含む第2の複数のフォントトレーニング画像を使用して第2のフォント認識ニューラルネットワークをトレーニングして、デジタルフォントを分類するステップを伴うことができる。いくつかの実施形態では、第2の複数のフォントトレーニング画像は、第1のフォントタイプを含まない。さらに別の実施形態では、第1の複数のフォントトレーニング画像を、第2の複数のフォントトレーニング画像と別個に生成する。
さまざまな実施形態では、第1および/または第2のフォント認識ニューラルネットワークは、第1および/または第2の複数のフォントトレーニング画像で分かったフォントの数に応じて、多次元確率ベクトルを生成する。さらに、いくつかの実施形態では、第1および/または第2のフォント認識ニューラルネットワークは、畳込み層および全結合層を含む畳込みニューラルネットワークである。いくつかの実施形態では、畳込み層は、フォント特徴抽出パラメータに基づきフォント特徴ベクトルを出力するフォント符号化器を含む。さまざまな実施形態では、全結合層は、(たとえば、入力フォントに関する特徴ベクトルと既知フォントの特徴ベクトルを比較することにより)フォント特徴ベクトルに基づきデジタルフォントを分類し、かつフォント確率ベクトルを出力するフォント分類器を含む。
図8に示すように、一連の活動800は、第1のフォント認識ニューラルネットワーク、第2のフォント認識ニューラルネットワーク、および重み予測ニューラルネットワークを含むハイブリッドフォント認識ニューラルネットワークをトレーニングする活動830をさらに含む。1つまたは複数の実施形態では、活動830は、第1のフォント認識ニューラルネットワークが第2のフォント認識ニューラルネットワークよりも入力デジタルフォントに関してよりよいフォント分類を出力する第1のフォント分類確率を重み予測ニューラルネットワークが予測するステップを含む。さらに別の実施形態では、重み予測ニューラルネットワークは、第2のフォント認識ニューラルネットワークが第1のフォント認識ニューラルネットワークよりも入力デジタルフォントに関してよりよいフォント分類を出力する第2のフォント分類確率を予測する。
いくつかの実施形態では、活動830は、第1のフォント認識ニューラルネットワーク、第2のフォント認識ニューラルネットワーク、および重み予測ニューラルネットワークに、入力デジタルフォントを含むトレーニング画像のコピーを提供するステップを含む。さらに、活動830は、第1のフォント分類確率に基づき、入力デジタルフォントに関して第1のフォント認識ニューラルネットワークが生成した第1のフォント確率ベクトルを重み付けするステップと、第2のフォント分類確率に基づき、入力デジタルフォントに関して第2のフォント認識ニューラルネットワークが生成した第2のフォント確率ベクトルを重み付けするステップと、第1の重み付きフォント確率ベクトルおよび第2の重み付きフォント確率ベクトルを含むハイブリッドフォント確率ベクトルの交差エントロピーフォント分類損失を最小にするステップを含むことができる。さまざまな実施形態では、単一の交差エントロピーソフトマックス損失関数を使用してハイブリッドフォント認識ニューラルネットワークをトレーニングする。
さらに、さらに別の実施形態では、活動830はまた、誤差逆伝播によって第1のフォント認識ニューラルネットワーク、第2のフォント認識ニューラルネットワーク、および重み予測ニューラルネットワークに交差エントロピーフォント分類損失を誤差損失フィードバックとして提供するステップを含むことができる。さまざまな実施形態では、第1のフォント認識ニューラルネットワークおよび第2のフォント認識ニューラルネットワークに誤差損失フィードバックを小さな学習率で提供する。いくつかの実施形態では、重み予測ニューラルネットワークに誤差損失フィードバックを大きな学習率で提供する。
1つまたは複数の実施形態では、重み付け予測ニューラルネットワークは、第1のフォント分類確率および第2のフォント分類確率を含む2次元予測ベクトルを出力し、この場合、第1のフォント分類確率および第2のフォント分類確率はそれぞれ、0~1の間である、および/または第1のフォント分類確率および第2のフォント分類確率は、合計して1になる。
一連の活動800はまた、いくつかの追加活動を含むことができる。1つまたは複数の実施形態では、一連の活動800は、第3のグリフタイプを含む第3の複数のフォントトレーニング画像を使用して、第3のフォント認識ニューラルネットワークをトレーニングして、デジタルフォントを分類する活動、および第3のフォント認識ニューラルネットワークに基づきハイブリッドフォント認識ニューラルネットワークをさらにトレーニングする活動を含む。いくつかの実施形態では、重み予測ニューラルネットワークは、(たとえば第1の、第2の、および第3の)フォント認識ニューラルネットワークごとに、合計して1に、すなわち100%になる確率を予測する。
1つまたは複数の実施形態では、一連の活動800は、入力デジタルフォントを含む入力テキスト画像を受け取る活動、トレーニングされたハイブリッドフォント認識ニューラルネットワークを使用して入力デジタルフォントに関するハイブリッドフォント確率ベクトルを生成する活動、入力デジタルフォントのハイブリッドフォント確率ベクトルに基づき複数の既知デジタルフォントから入力デジタルフォントを識別する活動、および識別した入力デジタルフォントを提示する活動を含む。
すでに言及したように、図9は、1つまたは複数の実施形態による、トレーニングされたハイブリッド重み付きフォント認識ニューラルネットワークを使用して入力テキスト画像内の入力フォントを識別するための一連の活動900の流れ図を示す。図9は、一実施形態による活動を示すが、代わりの実施形態は、図9に示す活動のいずれかを省略する、それに追加する、それを並べ替える、および/または修正してもよい。図9の活動を、方法の一部として遂行することができる。あるいは、非一時的コンピュータ可読媒体は、1つまたは複数のプロセッサにより実行されたとき、コンピューティング機器に図9の活動を遂行させる命令を備えることができる。1つまたは複数の実施形態では、システムは、図9の活動を遂行することができる。いくつかの実施形態では、一連の活動900を、コンピューティング機器500または1つもしくは複数のサーバ機器602などの、1つまたは複数のコンピューティング機器上のコンピューティングシステムにより実装する。
図に示すように、一連の活動900は、入力デジタルフォントを有する入力テキスト画像を受け取る活動910を含む。1つまたは複数の実施形態では、活動910は、ユーザおよび/またはアプリケーションから入力テキスト画像を受け取るステップを含む。いくつかの実施形態では、以下で説明する入力デジタルフォントおよび既知デジタルフォントは、日本語の漢字および/またはかなのグリフを含む。
一連の活動900はまたは、入力デジタルフォントに関する第1および第2のフォント確率ベクトルを決定する活動920を含む。詳細には、活動920は、第1のグリフタイプを含む第1の複数のフォントトレーニング画像を使用してトレーニングされた第1のトレーニングされたフォント認識ニューラルネットワークにより入力デジタルフォントに関する第1のフォント確率ベクトルを決定するステップを含む。詳細には、活動920は、第2のグリフタイプを含む第2の複数のフォントトレーニング画像を使用してトレーニングされた第2のトレーニングされたフォント認識ニューラルネットワークにより入力デジタルフォントに関する第2のフォント確率ベクトルを決定するステップを含む。
図に示すように、一連の活動900は、第1のフォント認識ニューラルネットワークが入力デジタルフォントに関してよりよいフォント分類を出力する確率を示す、入力デジタルフォントに関する第1のフォント分類確率を重み予測ニューラルネットワークにより決定する活動930を含む。詳細には、活動930は、重み予測ニューラルネットワークにより、入力デジタルフォントに関して、第1のフォント認識ニューラルネットワークに関する第1のフォント分類確率を決定するステップを含み、この場合、第1のフォント分類確率は、第1のフォント認識ニューラルネットワークが第2のフォント認識ニューラルネットワークよりも入力デジタルフォントに関してよりよいフォント分類を出力する確率を含む。
さらに、一連の活動900は、入力デジタルフォントに関するハイブリッドフォント確率ベクトルを生成する活動940を含む。詳細には、活動940は、第1のフォント確率ベクトル、第1のフォント分類確率、第2のフォント確率ベクトル、および第2のフォント分類確率に基づき、入力デジタルフォントに関するハイブリッドフォント確率ベクトルを生成する活動を伴うことができる。いくつかの実施形態では、活動940は、第1のフォント分類確率に基づき、入力テキスト画像に関して第1のフォント認識ニューラルネットワークが生成した第1のフォント分類確率を重み付けする活動、第2のフォント分類確率に基づき、入力テキスト画像に関して第2のフォント認識ニューラルネットワークが生成した第2のフォント確率ベクトルを重み付けする活動、ならびに第1の重み付きフォント確率ベクトルおよび第2の重み付きフォント確率ベクトルを組み合わせる活動を含む。1つまたは複数の実施形態では、1引く第1のフォント分類確率は、第2のフォント分類確率になる。
図に示すように、一連の活動900はまた、ハイブリッドフォント確率ベクトルに基づき入力デジタルフォントを識別する活動950を含む。詳細には、活動950は、ハイブリッドフォント確率ベクトルに基づき、複数の既知フォントから入力デジタルフォントを識別するステップを含む。いくつかの実施形態では、活動950はまた、識別された入力デジタルフォントをユーザに提示するステップを含む。
一連の活動900はまた、いくつかの追加活動を含むことができる。1つまたは複数の実施形態では、一連の活動900は、入力デジタルフォントで書かれた入力テキスト画像内の複数のグリフを識別する活動、識別された複数のグリフから、識別されたグリフの不要部分を切り取る活動、ならびに第1のフォント認識ニューラルネットワーク、第2のフォント認識ニューラルネットワーク、および重み予測ニューラルネットワークに入力デジタルフォントで書かれた、不要部分を切り取られた識別されたグリフを提供する活動を含む。さまざまな実施形態では、入力テキスト画像は、既知のデジタルフォントに関連するトレーニング・フォント・セットに含まれないグリフを含む。
用語「デジタル環境」は、本明細書で使用するとき、一般にたとえば、スタンドアロンのアプリケーション(たとえば、コンピューティング機器上で走っているパーソナルコンピュータまたは移動体のアプリケーション)として、アプリケーションの要素として、アプリケーションのためのプラグインとして、1つもしくは複数のライブラリ関数として、コンピューティング機器として、および/またはクラウド・コンピューティング・システムとして実装された環境を指す。デジタル媒体環境により、フォント認識システムは、本明細書で説明するように、ハイブリッドフォント認識ニューラルネットワークをトレーニングし、採用することができるようになる。
本開示の実施形態は、たとえば、以下でより詳細に論じるように、1つまたは複数のプロセッサおよびシステムメモリなどのコンピュータハードウェアを含む専用および汎用のコンピュータを備えても、利用してもよい。本開示の範囲に入る実施形態はまた、コンピュータ実行可能命令および/またはデータ構造を移送または記憶するための物理的コンピュータ可読媒体および他のコンピュータ可読媒体を含む。詳細には、本明細書で説明するプロセッサの1つまたは複数を、少なくとも一部は、非一時的コンピュータ可読媒体に埋め込まれ、かつ1つまたは複数のコンピューティング機器(たとえば、本明細書で説明する媒体内容アクセス機器のいずれか)により実行可能な命令として実装してもよい。一般に、プロセッサ(たとえば、マイクロプロセッサ)は、非一時的コンピュータ可読媒体(たとえば、メモリ)から命令を受け取り、それらの命令を実行し、それにより、本明細書で説明する処理の1つまたは複数を含む1つまたは複数の処理を遂行する。
コンピュータ可読媒体は、汎用または専用のコンピュータシステムがアクセスすることができる任意の利用可能な媒体とすることができる。コンピュータ実行可能命令を記憶するコンピュータ可読媒体は、非一時的コンピュータ可読記憶媒体(機器)である。コンピュータ実行可能命令を移送するコンピュータ可読媒体は、伝送媒体である。したがって、限定としてではなく例として、本開示の実施形態は、少なくとも2つのはっきりと異なる種類のコンピュータ可読媒体を、すなわち、非一時的コンピュータ可読記憶媒体(機器)および伝送媒体を備えることができる。
非一時的コンピュータ可読記憶媒体(機器)は、RAM、ROM、EEPROM、CD-ROM、ソリッド・ステート・ドライブ(solid state drive、「SSD」)(たとえば、RAMに基づく)、フラッシュメモリ、相変化メモリ(phase-change memory、「PCM」)、他のタイプのメモリ、他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置、またはコンピュータ実行可能命令もしくはデータ構造の形で所望のプログラムコード手段を記憶するために使用することができ、かつ汎用もしくは専用のコンピュータがアクセスすることができる任意の他の媒体を含む。
「ネットワーク」は、コンピュータシステムおよび/またはモジュールおよび/または他の電子機器の間で電子データの移送を可能にする1つまたは複数のデータリンクとして規定される。ネットワークまたは他の通信接続(有線、無線、または有線もしくは無線の組合せ)を介してコンピュータに情報を転送または提供するたとき、コンピュータは、接続を伝送媒体と適切にみなす。伝送媒体は、コンピュータ実行可能命令またはデータ構造の形で所望のプログラムコード手段を移送するために使用することができ、かつ汎用または専用のコンピュータがアクセスすることができるネットワークおよび/またはデータリンクを含むことができる。上記の組合せもまた、コンピュータ可読媒体の範囲に含まれるべきである。
さらに、さまざまなコンピュータシステム構成要素に届くと、コンピュータ実行可能命令またはデータ構造の形のプログラムコード手段を、伝送媒体から非一時的コンピュータ可読記憶媒体(機器)に(またはその逆も同様である)自動的に転送することができる。たとえば、ネットワークまたはデータリンクを介して受け取ったコンピュータ実行可能命令またはデータ構造を、ネットワーク・インタフェース・モジュール(たとえば、「NIC」)内部のRAMにバッファリングし、次いで最終的に、コンピュータシステムRAMに、および/またはコンピュータシステムのより揮発しにくいコンピュータ記憶媒体(機器)に転送することができる。したがって、さらに(またはそれどころか主として)伝送媒体を利用するコンピュータシステム構成要素に、非一時的コンピュータ可読記憶媒体(機器)を含むことができることを理解されたい。
コンピュータ実行可能命令は、たとえば、プロセッサにより実行されたとき、ある種の機能または機能のグループを汎用コンピュータ、専用コンピュータ、または専用処理機器に遂行させる命令およびデータを備える。いくつかの実施形態では、汎用コンピュータがコンピュータ実行可能命令を実行して、汎用コンピュータを本開示の要素を実装する専用コンピュータにする。コンピュータ実行可能命令は、たとえば、バイナリ、アッセンブリ言語などの中間形式の命令、またはさらにはソースコードであってもよい。構造的特徴および/または方法論的活動に特有な言語で主題について説明してきたが、添付の特許請求の範囲で規定される主題は、説明した特徴、または上記で説明した活動に必ずしも限定されないことを理解されたい。むしろ、説明した特徴および活動は、特許請求の範囲を実装する形態の例として開示されている。
本開示を、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、メッセージプロセッサ、ハンドヘルド機器、マルチ・プロセッサ・システム、マイクロプロセッサに基づくまたはプログラム可能な家庭用電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、携帯電話、PDA、タブレット、ページャ、ルータ、スイッチなどを含む、多くのタイプのコンピュータシステム構成を備えるネットワークコンピューティング環境で実施してもよいことを当業者は認識されよう。本開示を、同じくネットワークを通して(有線データリンク、無線データリンクにより、または有線および無線のデータリンクの組合せにより)連結されたローカルおよび遠隔のコンピュータシステムが両方ともタスクを遂行する分散システム環境で実施してもよい。分散システム環境では、ローカルおよび遠隔のメモリ記憶装置の両方にプログラムモジュールを配置してもよい。
本開示の実施形態を、同じくクラウドコンピューティング環境に実装することができる。本明細書で使用するとき、用語「クラウドコンピューティング」は、構成可能なコンピューティング資源の共有プールへのオン・デマンド・ネットワーク・アクセスを可能にするためのモデルを指す。たとえば、市場でクラウドコンピューティングを採用して、構成可能なコンピューティング資源の共有プールへの、偏在的で便利なオン・デマンド・アクセスを提供することができる。構成可能なコンピューティング資源の共有プールを、仮想化を介して迅速に準備し、少ない管理努力またはサービスプロバイダの協力で公開し、次いで、それに従って規模を調整することができる。
クラウド・コンピューティング・モデルを、たとえば、オン・デマンド・セルフ・サービス、広域ネットワークアクセス、資源プーリング、迅速な融通性、度数制などのようなさまざまな特性から構成することができる。クラウド・コンピューティング・モデルはまた、たとえば、「SaaS(Software as a Service)」、「PaaS(Platform as a Service)」、および「IaaS(Infrastructure as a Service)」などのさまざまなサービスモデルを見せることができる。クラウド・コンピューティング・モデルを、プライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウドなどのような異なる導入モデルを使用してさらに導入することができる。さらに、本明細書で使用するとき、用語「クラウドコンピューティング環境」は、クラウドコンピューティングを採用する環境を指す。
図10は、上記で説明した処理の1つまたは複数を遂行するように構成されてもよい代表的コンピューティング機器1000の構成図を示す。コンピューティング機器1000などの1つまたは複数のコンピューティング機器は、上記で説明したコンピューティング機器(たとえば、コンピューティング機器500、1つまたは複数のサーバ機器602、およびクライアント機器604a、604b)を表してもよいことを認識されよう。1つまたは複数の実施形態では、コンピューティング機器1000は、移動体機器(たとえば、携帯電話、スマートホン、PDA、タブレット、ラップトップ、カメラ、トラッカ(tracker)、ウオッチ、ウェアラブル機器など)であってもよい。いくつかの実施形態では、コンピューティング機器1000は、非移動体機器(たとえば、デスクトップコンピュータまたは別のタイプのクライアント機器)であってもよい。さらに、コンピューティング機器1000は、クラウドに基づく処理および記憶能力を含むサーバ機器であってもよい。
図10に示すように、コンピューティング機器1000は、1つまたは複数のプロセッサ1002、メモリ1004、記憶装置1006、入出力(「I/O」)インタフェース1008、および通信インフラストラクチャ(たとえば、バス1012)によって通信可能に結合してもよい通信インタフェース1010を含むことができる。図10にはコンピューティング機器1000を示すが、図10に示す構成要素は、限定することを意図するものではない。追加のまたは代わりの構成要素を、他の実施形態で使用してもよい。さらに、ある種の実施形態では、コンピューティング機器1000は、図10に示す構成要素よりも少ない構成要素を含む。次に、図10に示すコンピューティング機器1000の構成要素について、さらに詳細に説明する。
特定の実施形態では、1つまたは複数のプロセッサ1002は、コンピュータプログラムを作り上げる命令などの命令を実行するためのハードウェアを含む。限定ではなく一例として、命令を実行するために、1つまたは複数のプロセッサ1002は、内部レジスタ、内部キャッシュ、メモリ1004、または記憶装置1006から命令を取り出し(またはフェッチし)、命令を復号し、実行してもよい。
コンピューティング機器1000は、1つまたは複数のプロセッサ1002に結合したメモリ1004を含む。データ、メタデータ、および1つまたは複数のプロセッサが実行するためのプログラムを記憶するために、メモリ1004使用してもよい。メモリ1004は、ランダム・アクセス・メモリ(Random-Access Memory、「RAM」)、読出し専用メモリ(Read-Only Memory、「ROM」)、ソリッド・ステート・ドライブ(「SSD」)、フラッシュ、相変化メモリ(「PCM」)、または他のタイプのデータ記憶領域などの、揮発性および不揮発性のメモリのうち1つまたは複数を含んでもよい。メモリ1004は、内部メモリであっても、分散メモリであってもよい。
コンピューティング機器1000は、データまたは命令を記憶するための記憶領域を含む記憶装置1006を含む。限定ではなく一例として、記憶装置1006は、上記で説明した非一時的記憶媒体を含むことができる。記憶装置1006は、ハード・ディスク・ドライブ(hard disk drive、HDD)、フラッシュメモリ、ユニバーサル・シリアル・バス(Universal Serial Bus、USB)ドライブ、またはこれらもしくは他の記憶装置の組み合わせを含んでもよい。
図に示すように、コンピューティング機器1000は、ユーザがコンピューティング機器1000に入力を提供し(ユーザがキーを打つなど)、コンピューティング機器1000から出力を受け取り、他の方法でコンピューティング機器1000との間でデータを転送することができるようにするように提供される、1つまたは複数のI/Oインタフェース1008を含む。これらのI/Oインタフェース1008は、マウス、キーパッドもしくはキーボード、タッチ画面、カメラ、光学スキャナ、ネットワークインタフェース、モデム、他の公知のI/O機器、またはそのようなI/Oインタフェース1008の組合せを含んでもよい。タッチ画面をスタイラスまたは指で活動化してもよい。
I/Oインタフェース1008は、グラフィックスエンジン、表示装置(たとえば、表示画面)、1つまたは複数の出力ドライバ(たとえば、表示ドライバ)、1つまたは複数のオーディオスピーカ、および1つまたは複数のオーディオドライバを含むがそれらに限定されない、ユーザに出力を提示するための1つまたは複数の機器を含んでもよい。ある種の実施形態では、I/Oインタフェース1008は、ユーザに提示するために表示装置にグラフィックデータを提供するように構成される。グラフィックデータは、特定の実装に役立つ場合があるような、1つまたは複数のグラフィカル・ユーザ・インタフェースおよび/または他のグラフィックの内容の表現であってもよい。
コンピューティング機器1000は、通信インタフェース1010をさらに含むことができる。通信インタフェース1010は、ハードウェア、ソフトウェア、または両方を含むことができる。通信インタフェース1010は、コンピューティング機器と、1つもしくは複数の他のコンピューティング機器、または1つもしくは複数のネットワークとの間で通信(たとえば、パケットに基づく通信など)のための1つまたは複数のインタフェースを提供する。限定ではなく一例として、通信インタフェース1010は、イーサネットもしくは他の有線に基づくネットワークと通信するためのネットワーク・インタフェース・コントローラ(network interface controller、NIC)もしくはネットワークアダプタ、またはWi-Fiなどの無線ネットワークと通信するための無線NIC(wireless NIC、WNIC)もしくは無線アダプタを含んでもよい。コンピューティング機器1000は、バス1012をさらに含むことができる。バス1012は、コンピューティング機器1000の構成要素を互いに接続する、ハードウェア、ソフトウェア、または両方を含むことができる。
前述の明細では、本発明について、本発明の代表的実施形態を具体的に参照して説明してきた。1つまたは複数の本発明のさまざまな実施形態および様態について、本明細書で論じた詳細を参照して説明し、添付図面は、さまざまな実施形態を例示している。上記の説明および図面は、本発明を例証しており、本発明を限定していると解釈されるべきではない。本発明のさまざまな実施形態を完全に理解するために、数多くの特有の詳細について説明した。
本発明の精神または本質的特性を逸脱することなく、他の特有の形態で本発明を具体化してもよい。説明する実施形態は、すべての点で例示的でしかなく、限定的ではないと考えられるべきである。たとえば、本明細書で説明する方法をより少ない、またはより多いステップ/活動で遂行してもよい、またはステップ/活動を異なる順序で遂行してもよい。さらに、本明細書で説明するステップ/活動を、繰り返してもよい、または互いに並列に、または同じもしくは類似するステップ/活動の異なるインスタンスと並列に遂行してもよい。したがって、本発明の範囲は、前述の説明によるのではなく、添付の特許請求の範囲により示される。特許請求の範囲の均等物の意味および範囲に入るすべての変更は、特許請求の範囲に包含されるべきである。