(57)【要約】【課題】マルチタスク学習フレームワークを採用して、共にフォント分類を改善し、かつグリフ内容のクラス内変動により生じる好ましくない副作用を取り除くフォント認識システムを提供すること。【解決手段】たとえば、１つまたは複数の実施形態では、フォント認識システムは、フォント分類損失モデルおよびトリプレット損失モデルを使用してフォント認識ニューラルネットワークを共にトレーニングして、改善されたフォント分類を提供するディープ・ラーニング・ニューラル・ネットワークを生成することができる。さらに、フォント認識システムは、トレーニングされたフォント認識ニューラルネットワークを採用して、入力画像内部のフォントを効率的に認識するだけではなく、他の示唆されるフォントも提供することができる。【選択図】図１
2019083002.tif 000002
【特許請求の範囲】
【請求項１】
トリプレット損失を使用して、ニューラルネットワークをトレーニングしてデジタルフォントを分類するためのシステムであって、
さまざまなデジタルフォントのテキストを備える複数のテキスト画像を備えるトレーニング・フォント・セットを備えるメモリと、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサにより実行されたとき、前記システムに、
前記トレーニング・フォント・セットに基づき、アンカーテキスト画像、正例テキスト画像、および負例テキスト画像をそれぞれ備える複数のフォントトリプレットを生成させ、
デジタルフォントを分類するように構成されたフォント認識ニューラルネットワークを生成させ、
トリプレット損失を最小にすることにより前記フォント認識ニューラルネットワークをトレーニングさせる
命令を記憶する少なくとも１つの非一時的コンピュータ可読記憶媒体と
を備え、前記トリプレット損失は、正例テキスト画像に関する特徴ベクトルとアンカーテキスト画像の特徴ベクトルの間の距離を最小にしようとし、一方では同時に、負例テキスト画像に関する特徴ベクトルと前記アンカーテキスト画像の前記特徴ベクトルの間の距離を増大させようとするシステム。
【請求項２】
前記複数のテキスト画像は、日本語フォントグリフの画像を備える、請求項１に記載のシステム。
【請求項３】
前記少なくとも１つのプロセッサにより実行されたとき、前記システムに、前記フォント認識ニューラルネットワークとパラメータを共有するトリプレット・ニューラル・ネットワークを生成することにより、前記フォント認識ニューラルネットワークをトレーニングさせる命令をさらに備える、請求項１に記載のシステム。
【請求項４】
前記少なくとも１つのプロセッサにより実行されたとき、前記システムに、フォントトリプレットごとに、
第１のフォントの第１のテキストを備える前記アンカーテキスト画像、
前記第１のテキストと異なる、前記第１のフォントの第２のテキストを備える前記正例テキスト画像、および
前記第１のテキストと異なる第２のフォントの前記第１のテキストを備える前記負例テキスト画像
を生成することにより、前記複数のフォントトリプレットを生成させる命令をさらに備える、請求項３に記載のシステム。
【請求項５】
前記少なくとも１つのプロセッサにより実行されたとき、前記システムに、前記アンカーテキスト画像、前記正例テキスト画像、または前記負例テキスト画像のうち１つに雑音、ぼかし、回転、または濃淡を追加させる命令をさらに備える、請求項４に記載のシステム。
【請求項６】
前記少なくとも１つのプロセッサにより実行されたとき、前記システムに、前記トリプレット損失およびフォント分類損失を共に最小にすることにより、前記フォント認識ニューラルネットワークをトレーニングさせる命令をさらに備える、請求項３に記載のシステム。
【請求項７】
前記フォント認識ニューラルネットワークは、畳込みニューラルネットワークであり、
前記フォント分類損失は、前記畳込みニューラルネットワークからの出力を受け取るソフトマックス損失関数を採用し、
前記トリプレット・ニューラル・ネットワークは、前記フォント認識ニューラルネットワークに基づく３つの複製順伝播型ニューラルネットワークを備え、
前記トリプレット損失は、前記トリプレット・ニューラル・ネットワークからの出力を受け取るヒンジ損失関数を採用する、
請求項６に記載のシステム。
【請求項８】
前記少なくとも１つのプロセッサにより実行されたとき、前記システムに、エンド・ツー・エンド学習および誤差逆伝播に基づき前記トリプレット・ニューラル・ネットワークの前記ヒンジ損失関数を最小にするとき、同時に前記ソフトマックス損失関数を最小にさせる命令をさらに備える、請求項７に記載のシステム。
【請求項９】
前記ヒンジ損失関数は、前記正例テキスト画像に関する特徴ベクトルとアンカーテキスト画像の前記特徴ベクトルの間の前記距離と、前記負例テキスト画像に関する特徴ベクトルと前記アンカーテキスト画像の前記特徴ベクトルの間の前記距離とを区別する限界を備える、請求項７に記載のシステム。
【請求項１０】
前記少なくとも１つのプロセッサにより実行されたとき、前記システムに、
入力デジタルフォントを備える入力テキスト画像を受け取らせ、
前記トレーニングされたフォント認識ニューラルネットワークを使用して、前記入力デジタルフォントに関する特徴ベクトルを生成させ、
前記入力デジタルフォントの前記特徴ベクトルと、前記フォント認識ニューラルネットワークを使用して生成した、既知のデジタルフォントの特徴ベクトルを比較することに基づき、前記入力デジタルフォントに関するフォント確率ベクトルを生成させ、
前記フォント確率ベクトルに基づき前記入力デジタルフォントを識別させ、
前記識別した入力デジタルフォントを提示させる
命令をさらに備える、請求項１に記載のシステム。
【請求項１１】
前記入力テキスト画像は、前記トレーニング・フォント・セットに含まれないテキストを備える、請求項１０に記載のシステム。
【請求項１２】
非一時的コンピュータ可読媒体であって、少なくとも１つのプロセッサにより実行されたとき、コンピュータシステムに、
入力デジタルフォントを備える入力テキスト画像を受け取らせ、
正例テキスト画像に関する特徴ベクトルとアンカーテキスト画像の特徴ベクトルの間の距離を最小にしようとし、一方では同時に、負例テキスト画像に関する特徴ベクトルと前記アンカーテキスト画像の前記特徴ベクトルの間の距離を増大させようとするトリプレット損失、およびフォント分類損失を共に最小にすることによりトレーニングされたフォント認識ニューラルネットワークを使用して、前記入力デジタルフォントに関する特徴ベクトルを決定させ、
前記入力デジタルフォントの前記特徴ベクトルと、前記トレーニングされたフォント認識ニューラルネットワークを使用して生成した、既知のデジタルフォントの特徴ベクトルを比較することにより、前記入力デジタルフォントを識別させる
命令を記憶する非一時的コンピュータ可読媒体。
【請求項１３】
前記入力デジタルフォントおよび前記既知のデジタルフォントは、日本語デジタルフォントを備える、請求項１２に記載の非一時的コンピュータ可読媒体。
【請求項１４】
前記少なくとも１つのプロセッサにより実行されたとき、前記コンピュータシステムに、前記識別した入力デジタルフォントをユーザに提示させる命令をさらに備える、請求項１２に記載の非一時的コンピュータ可読媒体。
【請求項１５】
前記入力テキスト画像は、前記既知のデジタルフォントに関連するトレーニング・フォント・セットに含まれないテキストを備える、請求項１２に記載の非一時的コンピュータ可読媒体。
【請求項１６】
前記命令は、前記コンピュータシステムに、前記入力デジタルフォントの前記特徴ベクトルと、前記既知のデジタルフォントの各々に対応する平均特徴表現を比較することにより、全記入力デジタルフォントをさらに識別させる、請求項１２に記載の非一時的コンピュータ可読媒体。
【請求項１７】
前記命令は、前記コンピュータシステムに、前記入力デジタルフォントの前記特徴ベクトルから最小距離を有する平均特徴表現を有する前記既知のデジタルフォントを選択することにより、前記入力デジタルフォントをさらに識別させる、請求項１２に記載の非一時的コンピュータ可読媒体。
【請求項１８】
電子文書を作成または編集するためのデジタル媒体環境で、デジタルフォントの画像を検索および識別するコンピュータ実装方法であって、
さまざまなデジタルフォントを備える複数のテキスト画像から複数のフォントトリプレットを決定するためのステップを遂行するステップと、
トリプレット損失を使用してフォント認識ニューラルネットワークをトレーニングするステップを遂行するステップと
を備え、前記トリプレット損失は、前記複数のフォントトリプレットに基づき、
前記トリプレット損失は、正例テキスト画像に関する特徴ベクトルとアンカーテキスト画像の特徴ベクトルの間の距離を最小にしようとし、一方では同時に、負例テキスト画像に関する特徴ベクトルと前記アンカーテキスト画像の前記特徴ベクトルの間の距離を増大させようとする方法。
【請求項１９】
前記トリプレット損失を使用して前記フォント認識ニューラルネットワークをトレーニングする前記ステップを遂行するステップは、前記トリプレット損失およびフォント分類損失を共に最小にするステップを備える、請求項１８に記載の方法。
【請求項２０】
入力デジタルフォントを備えるテキストの入力画像を受け取るステップと、
前記トレーニングされたフォント認識ニューラルネットワークを使用して前記入力デジタルフォントを識別するステップを遂行するステップと
をさらに備える、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、マルチタスク学習フレームワークを採用して、共にフォント分類を改善し、かつグリフ内容のクラス内変動により引き起こされる好ましくない副作用を取り除くフォント認識システムに関する。
【背景技術】
【０００２】
近年、電子文書の作成および編集に関してデジタルタイポグラフィの領域でコンピューティング機器を使用することが急速に普及するのを体験してきた。実際に、個人および企業がデジタルタイポグラフィを使用して、デスクトップコンピュータ、ラップトップコンピュータ、移動体機器、タブレット、スマートホン、または他のコンピューティング機器を利用して、カスタマイズされたウェブページ、電子メール、雑誌、宣伝広告材料、および他の電子文書を作成することは、今では普通である。
【０００３】
デジタルタイポグラフィは、デジタルフォントの使用を含む。近年はまた、電子文書で利用するデジタルフォントのタイプおよび多様性が増大するのも体験してきた。たとえば、電子文書は、何千ものデジタルフォントの集合体から選択したデジタルフォントを使用することができる。さらに個人は、電子文書を作成するために使用するコンピューティング機器上で追加のデジタルフォントを苦もなく見つけ出し、アクセスし、インストールすることができる。
【０００４】
デジタルフォントの数の増加に伴い生じた主要な難題は、デジタルフォントを正しく検出し、認識する能力である。たとえば、個人は、文書または画像内のフォントを見て、同じフォントを電子文書で使用することを望む。したがって、文書または画像内のフォントは、それをユーザがデジタルフォントとして使用することができる前に、正しく識別されなければならない。一般に、デジタルフォントを検出し、認識できることは、電子文書を作成および編集するとき、個人の体験を大きく向上させることができる。
【０００５】
機械学習アルゴリズムを使用してフォントを認識するために、いくつかのフォント分類システムが最近開発されてきたが、これらの最近のフォント分類システムは、デジタルフォントのクラス内部のクラス内変動の領域（たとえば、同じフォントのグリフ間の変化）で依然として苦心している。この課題は、ローマ字を使用するグリフ（たとえば、語を構成する固有記号）に関して存在するが、課題の大きさは、他の言語で大きくなる。例示するために、ローマ字は、２６の異なるグリフを使用するが、日本語の文字は、５０，０００を越えるグリフを含む。他の言語もまた、何千ものグリフを含む。
【０００６】
日本語フォントの場合など、グリフの数が増えるにつれ、グリフ内容内部のクラス内変動の数も同様に増える。多くの場合、グリフの数のために、最近のフォント分類システムは、トレーニング・データ・セットでグリフの各々を提示せず、これにより、不正確な結果がしばしば引き起こされる。別の問題として、詳細には日本語フォントに関して、異なる日本語文字タイプ（たとえば、漢字およびかな）間の視覚的差は著しく、フォントを正確に認識し、分類するために追加トレーニングサンプルを必要とする。要するに、最近のフォント分類システムでさえ、日本語フォントを正しく識別するために必要な汎化および精度のレベルを提供することができない。
【０００７】
さらに、フォントを分類するために機械学習アルゴリズムを採用する最近のフォント分類システムは、大量のメモリおよび計算要件を必要とする。詳細には、最近のフォント分類システムは、ニューラルネットワークを収束させて正確なフォント特徴ベクトルを識別するために、追加のメモリ、処理資源、および時間を必要とする。さらに、追加要件のために、最近のフォント分類システムは多くの場合、不安定である。さらに、これらの要件のために、クライアント機器は、詳細には移動体機器は、これらのニューラルネットワークを実行することができない。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
既存のシステムおよび方法を使用して、デジタルフォント、および詳細には日本語フォントを検出し、分類することに関して、これらおよび他の課題が存在する。
【課題を解決するための手段】
【０００９】
本開示の実施形態は、利益を提供し、および／またはトリプレット損失モデルを使用してトレーニングされたディープラーニング技法を使用してデジタルフォント（または単に「フォント」）を効果的に認識するためのシステム、コンピュータ媒体、および方法を用いて当技術分野の、前述の課題または他の課題の１つまたは複数を解決する。たとえば、本開示のシステムは、トリプレット損失モデルを使用してフォント認識ニューラルネットワークをトレーニングして、入力画像から既知フォントへフォントを効果的に認識する。トリプレット損失モデルを採用してフォント分類ニューラルネットワークをトレーニングすることにより、本開示のシステムは、フォント分類の性能を改善するだけではなく、グリフ内容のクラス内変動により生じる好ましくない副作用を取り除くことができる。
【００１０】
より詳細には、本開示のシステムは、さまざまなフォントのテキスト画像を含むトレーニング・フォント・セットからフォントトリプレットを生成する。フォントトリプレットは、アンカーテキスト画像、正例テキスト画像、および負例テキスト画像を含むことができる。アンカーテキスト画像および正例テキスト画像（たとえば、正例対）は、同じフォントであるが異なるテキスト（たとえば、グリフ）を共有する。アンカーテキスト画像および負例テキスト画像（たとえば、負例対）は、同じテキストであるが異なるフォントを共有する。本開示のシステムは、トリプレット損失を最小にすることによりフォント認識ニューラルネットワークをトレーニングする。１つまたは複数の実施形態では、トリプレット損失は、テキスト画像の正例対に関する特徴ベクトル間の距離を最小にしようとするが、その一方で同時に、テキスト画像の負例対に関する特徴ベクトル間の距離を増大させる。
【００１１】
トレーニングされると、フォント認識ニューラルネットワークは、入力フォントを含む入力テキスト画像を受け取り、入力フォントに関するフォント確率ベクトルを決定することができる。さらに、本開示のシステムは、確率ベクトルに基づき入力フォントを識別することができる。
【００１２】
以下の説明は、本開示のシステム、コンピュータ媒体、および方法の１つまたは複数の実施形態の特徴および利点をさらに示す。場合によっては、そのような特徴および利点は、この説明から当業者に明らかになるであろう、または本開示の実施形態を実施することにより学習されてもよい。
【００１３】
詳細な説明は、以下に簡潔に説明するように、添付図面を利用することによってさらに具体的かつ詳細に１つまたは複数の実施形態を提供する。
【図面の簡単な説明】
【００１４】
【図１】１つまたは複数の実施形態による、トリプレット損失モデルを使用してフォント認識ニューラルネットワークをトレーニングするための一般的処理の図を示す。
【図２Ａ】１つまたは複数の実施形態による、トリプレット損失モデルを使用してフォント認識ニューラルネットワークをトレーニングするためのより詳細な処理の図を示す。
【図２Ｂ】１つまたは複数の実施形態による、トリプレット損失モデルを使用してフォント認識ニューラルネットワークをトレーニングするためのより詳細な処理の図を示す。
【図２Ｃ】１つまたは複数の実施形態に従って、トレーニングされたフォント認識ニューラルネットワークを採用して入力画像内部のフォントを識別する図を示す。
【図３】１つまたは複数の実施形態によるフォントトリプレットの一例を示す。
【図４】１つまたは複数の実施形態による、さまざまなデジタルフォントを含むテキスト画像からトリプレットを決定するためのステップを遂行する際の活動だけではなく、トリプレット損失モデルを使用してフォント認識ニューラルネットワークをトレーニングするためのステップを遂行する際の活動も示す。
【図５】１つまたは複数の実施形態によるフォント認識システムの概略図を示す。
【図６】１つまたは複数の実施形態による、フォント認識システムを実装してもよい代表的環境の概略図を示す。
【図７】最近のシステムと本明細書で開示するフォント認識システムの１つまたは複数の実施形態との間のフォント特徴マップの比較を示す。
【図８】最近のシステムと本明細書で開示するフォント認識システムの１つまたは複数の実施形態との間のフォント認識精度を比較する棒グラフを示す。
【図９】１つまたは複数の実施形態による、トリプレット損失を使用してフォント認識ニューラルネットワークをトレーニングしてデジタルフォントを分類するための一連の活動の流れ図を示す。
【図１０】１つまたは複数の実施形態による、トレーニングされたフォント認識ニューラルネットワークを使用して入力画像内の入力フォントを識別するための一連の活動の流れ図を示す。
【図１１】本開示の１つまたは複数の実施形態を実装するための代表的コンピューティング機器の構成図である。
【発明を実施するための形態】
【００１５】
本開示は、マルチタスク学習フレームワークを採用して、フォント分類を改善し、グリフ内容のクラス内変動により引き起こされる好ましくない副作用を取り除くフォント認識システムの１つまたは複数の実施形態について説明する。詳細には、フォント認識システムは、トリプレット損失モデルを使用してフォント認識ニューラルネットワークをトレーニングして、多様なグリフ内容による副作用を取り除くことにより総合的フォント認識を改善する。
【００１６】
例示するために、さまざまな実施形態では、フォント認識システムは、ラベル付テキスト画像のトレーニング・フォント・セットを使用して、フォントを分類するようにトレーニングされたフォント認識ニューラルネットワークを生成する。さらに、フォント認識システムは、フォント認識ニューラルネットワークとパラメータ（たとえば、下位層および上位層）を共有する３つの複製順伝播型ニューラルネットワーク（たとえば、トリプレット・ニューラル・ネットワーク）を生成する。フォント認識システムは、トリプレット・ニューラル・ネットワークからのトリプレット損失モデルおよびフォント認識ニューラルネットワークからのフォント分類損失モデルを共に最小にすることにより、フォント認識ニューラルネットワークをさらにトレーニングする。フォント分類損失モデルは、類似フォントクラスの特徴ベクトル間の距離を最小にする。トリプレット損失モデルは、トリプレットテキスト画像からの正例対の特徴ベクトル間の距離を最小にするが、その一方で同時に、トリプレットテキスト画像の負例対の特徴ベクトル間の距離を増大させる。
【００１７】
１つまたは複数の実施形態では、フォント認識システムは、フォント分類損失モデル（たとえば、交差エントロピーフォント分類損失モデルを用いるソフトマックスに基づく分類器）を使用して初期フォント認識ニューラルネットワークをトレーニングする。フォント認識システムは、初期フォント認識ニューラルネットワークの順伝播型ニューラルネットワークの３つの複製を含むトリプレット・ニューラル・ネットワークを追加する。トリプレット・ニューラル・ネットワークおよび初期フォント認識ニューラルネットワークは、パラメータを共有する（すなわち、これらのニューラルネットワークは、特徴抽出のために同じ下位層を、フォント分類のために同じ上位層を共有する）。
【００１８】
言及したように、フォント認識システムは、フォントトリプレットを採用して、フォント認識ニューラルネットワークをトレーニングし、精緻なものにする。フォントトリプレットは、アンカーテキスト画像、正例テキスト画像、および負例テキスト画像として含む、テキストの１組の３つの画像を含む。さらに、フォントトリプレットは、アンカーテキスト画像と正例テキスト画像の間の正例テキスト画像対だけではなく、アンカーテキスト画像と負例テキスト画像の間の負例テキスト画像対も含む。
【００１９】
フォント認識システムは、トリプレット・ニューラル・ネットワークを使用して、フォントトリプレットに基づき初期フォント認識ニューラルネットワークをトレーニングし、精緻なものにする。詳細には、上述のように、フォント認識システムは、フォント分類損失モデル（たとえば、ソフトマックス損失関数）およびトリプレット損失モデル（たとえば、ヒンジ損失関数）を採用して、フォント認識ニューラルネットワークを共にトレーニングする。第１の順伝播型ニューラルネットワークは、フォントトリプレット内部のアンカーテキスト画像を処理し、第２の順伝播型ニューラルネットワークは、フォントトリプレット内部の正例テキスト画像を処理し、第３の順伝播型ニューラルネットワークは、フォントトリプレット内部の負例テキスト画像を処理する。次いで、トリプレット損失モデルは、これらの出力を使用して、ニューラルネットワークをトレーニングする。詳細には、フォント認識システムは、エンド・ツー・エンド学習および誤差逆伝播を採用して、フォント認識ニューラルネットワークをトレーニングして，急速に収束させる。たとえば、間違って分類された（たとえば、負例対が、特徴空間で正例対よりも短い距離を有する）フォントトリプレットを検出すると、トリプレット損失モデルは、誤差逆伝播を採用して、フォント認識ニューラルネットワーク内部のパラメータを同時に更新する。
【００２０】
急速に収束するロバストなフォント認識ニューラルネットワークを生成する手助けをするために、フォント認識システムは、トレーニングで使用するトリプレットをインテリジェントに生成することができる。詳細には、フォント認識システムは、トリプレットをランダムに選択するのではなく、厳然とした負例（ｈａｒｄ−ｎｅｇａｔｉｖｅ）サンプリング戦略を使用することができる。詳細には、フォント認識システムは、画像内部のテキストに関して、グリフ内容（たとえば、語またはテキスト）間で異なるが同じフォントスタイルを含む１対のフォントとして、フォントトリプレットの正例テキスト画像対を規定することができる。フォント認識システムは、フォントが異なるが同じグリフ内容を含む１対のフォントとして負例テキスト画像対を規定することができる。このようにして、トリプレット損失モデルは、グリフが異なるが同じフォントを有する正例テキスト画像対間の短い距離、およびフォントが異なるが同じグリフを有する負例テキスト画像対間の長い距離のほうを好む。
【００２１】
さらに、１つまたは複数の実施形態では、フォント認識システムは、トレーニング・フォント・セット内のフォントのテキスト画像の中にランダム偏差を導入する。たとえば、フォント認識システムは、さまざまなテキスト画像に少量のガウスの雑音、ぼかし、または濃淡をランダムに導入する。さらに、フォント認識システムは、ランダムに選択したテキスト画像透視図を回転させる。ランダムな偏差を追加することにより、フォント認識システムは、フォント特徴ベクトルの生成に関して、トレーニングをより困難にすることにより、したがって、トレーニングされたフォント認識ニューラルネットワークをより弁別力のある（たとえば、より選択能力を持つ）ようにすることにより、フォント認識ニューラルネットワークのロバスト性を改善することができる。
【００２２】
フォント認識システムは、トリプレット損失でトレーニングされたフォント認識ニューラルネットワークを使用して、入力画像内のテキストのフォントを識別する。たとえば、さまざまな実施形態では、フォント認識システムは、入力フォントを含む入力テキスト画像を受け取る。入力テキスト画像を受け取ると、フォント認識システムは、トリプレット損失でトレーニングされたフォント認識ニューラルネットワークを使用して、入力フォントに関する１つまたは複数のフォント確率ベクトルを決定する。さらに、フォント認識システムは、決定したフォント確率ベクトルに基づき入力フォントを識別する。
【００２３】
具体的には、さまざまな実施形態では、フォント認識システムは、トレーニングされたフォント認識ニューラルネットワークを採用して、入力テキスト画像に関するフォント確率ベクトルを決定する。たとえば、フォント分類器は、入力フォントと１組の既知フォント内の各フォントとの間の適合確率を示すフォント確率ベクトルを生成し、その結果、フォント認識システムは、フォント確率ベクトルの中の最も高い適合確率を有する既知フォントとして入力フォントを識別する。フォント認識システムは、次に最も高い適合確率を有する既知フォントを類似フォント（たとえば、上位５つの適合フォント）として識別することができる。
【００２４】
すでに言及したように、フォント認識システムは、従来のシステムおよび方法よりも多くの利点および利益を提供する。一例として、フォント認識システムは、従来、グリフ内容のクラス内変動により生じる副作用を欠点として持つフォント（たとえば、日本語フォント）をトレーニングし、識別する。詳細には、フォント分類損失モデルと一緒にトリプレット損失モデルを採用することにより、フォント認識システムは、グリフ内容のクラス間変動という副作用を取り除くフォント認識ニューラルネットワークをトレーニングする。
【００２５】
さらに、別の例として、多くの実施形態では、フォント認識システムは、トレーニング・フォント・セットに含まれない入力画像内のテキストを正確に識別することにより、既知のシステムよりも向上した柔軟性を提供する。詳細には、グリフ内容により生じる副作用を取り除いた結果として、トレーニングされたトリプレット損失フォント認識ニューラルネットワークは、より汎化されるようになり、それにより、フォント認識システムは、トレーニング段階で分からなかったグリフのフォントを正確に識別することが可能になる。これは、可能なグリフの種類および数が多い言語（たとえば、日本語で５０，０００を超えるグリフ）を取り扱うとき、特に有利である。
【００２６】
以下でさらに説明するように、フォント認識システムは、テキスト画像からフォントを正確に識別することに関して、直接対決の評価で最新式フォント分類システムよりも性能が優れていた。たとえば、フォント認識は、トレーニング・フォント・セットで分かった漢字グリフと分からなかった漢字グリフの両方の認識に関して最新式フォント分類システムよりも性能が優れていた。詳細には、フォント認識システムは、より汎化された認識能力を提供しただけではなく、より正確な結果も作り出した。さらに別の結果について、図７および図８に関して以下で説明する。
【００２７】
他の利益として、フォント認識システムは、既知のシステムよりも、必要なメモリおよび計算要件を低減する。たとえば、フォント認識システムは、フォント認識ニューラルネットワークをトレーニングするとき、トリプレット・ニューラル・ネットワークを採用することにより、少なくとも２０％だけ総合トレーニング時間を低減する。別様に述べると、最新式フォント分類システムは、本明細書で開示するフォント認識システムと同じ水準の精度を達成するために、追加のトレーニング反復、トレーニング・フォント・データ、および／またはメモリ記憶領域だけではなく、ニューラルネットワークを収束させて本明細書で開示する認識システムに匹敵する結果を達成するための追加時間も必要とする。さらに、最新式フォント分類システムは、時間および資源を増大させてさえ、本明細書で説明する１つまたは複数の実施形態と同じくらいロバストで安定したフォント認識ニューラルネットワークを作り出さない。
【００２８】
参考のために、以下の用語を提供する。本明細書で使用するとき、用語「テキスト画像」は、１つまたは複数のデジタルフォントで書かれたテキスト（すなわち、グリフ内容）を含む、任意のタイプの電子文書または電子ファイルを指す。たとえば、テキスト画像は、画像ファイル（永続的または一時的）、クリップボードファイル、ワードプロセッシング文書、ＰＤＦ（ｐｏｒｔａｂｌｅ  ｄｏｃｕｍｅｎｔ  ｆｉｌｅ）、電子メールファイル、テキストファイル、ウェブページ、または任意の他の電子ファイルの形をとる電子文書を含むことができる。テキスト画像は、公告、パンフレット、ちらし、書籍、雑誌、定期刊行物、または他の出版物などの物理的情報源に由来する可能性がある。
【００２９】
本明細書で使用するとき、用語「デジタルフォント」（または単に「フォント」）は、規定された１組のデジタル文字（たとえば、グリフ）を指す。詳細には，用語「フォント」は、特定のスタイルまたは書体のデジタル文字の集合体を含む。フォントは、．ｔｔｆ、．ｏｔｆ、．ｆｎｔ、．ａｂｆ、．ｔｔｃ、．ｓｕｉｔ、．ｗｏｆｆ、．ｖｎｆ、．ｔ６５、．ｓｆｐ、．ｓａｄ、．ｐｍｔ、．ｐｆｍ、．ｐｆｂ、．ｐｆａ、．ｏｄｔｆｆ、．ｍｆ、．ｇｄｒ、．ｆｏｎ、．ｆｎｔ、．ｆｏｎｔ、．ｅｔｘ、．ｅｏｔ、．ｃｏｍｐｏｓｉｔｅｆｏｎｔ、．ａｃｆｍ、．ａｆｍ、または．ａｍｆｍなどの拡張子を伴うデジタルファイルを含むが、それらに限定されない。たとえば、用語デジタルフォントは、Ｔｉｍｅｓ  Ｎｅｗ  Ｒｏｍａｎ、Ｈｅｌｖｅｔｉｃａ、Ａｒｉａｌ、ＰＴ  Ｓａｎｓ  Ｒｅｇｕｌａｒ、Ｃｏｒｂｅｌと呼ばれるフォント、または他のフォントタイトルを含む。
【００３０】
フォント特徴ベクトルによりフォントを表すことができる。本明細書で使用するとき、用語「フォント特徴ベクトル」（または単に「特徴ベクトル」）は、フォントの特性および属性を表す数値からなるベクトルを指す。詳細には、用語「特徴ベクトル」は、フォントの潜在的および／または特許に関する属性および特性に対応する１組の値を含む。１つまたは複数の実施形態では、特徴ベクトルは、フォントを表す多次元データセットである。１つまたは複数の実施形態では、特徴ベクトルは、ニューラルネットワークなどの機械学習アルゴリズムにより学習した１組の数値指標を含む。たとえば、特徴ベクトルは、グリフ曲率、グリフ間隔、グリフサイズ、グリフ形状、グリフ幅、グリフ高さ、グリフ位置（たとえば、並び線に対するグリフ位置）、グリフ面積、グリフ配向、グリフあたりの曲線の数、アーク長、グリフコントラスト、フォント分類特徴（たとえば、フォントを分類するのに利用されるフォント特徴）などのフォント・グリフ・データを含むことができる。さらに、特徴ベクトルは、フォントのフォントクラスおよびフォント特性に関する数値を提供することができる。
【００３１】
上記で説明したように、特徴ベクトルは、フォント分類（すなわち、フォントクラス）の数値表現およびフォント特性を提供することができる。本明細書で使用するとき、用語「フォント分類」は、フォントカテゴリを指し、デジタルフォントを分類するために利用する、事前に規定したカテゴリを含むことができる。たとえば、フォント分類は、フォントクラス（すなわち、Ｓｅｒｉｆ、Ｓａｎｓ  Ｓｅｒｉｆ、Ｓｌａｂ  Ｓｅｒｉｆ、Ｓｃｒｉｐｔ、Ｂｌａｃｋｌｅｔｔｅｒ、Ｍｏｎｏ、Ｈａｎｄ、またはＤｅｃｏｒａｔｉｖｅ）を含む。いくつかの実施形態では、用語「フォント特性」はまた、スタイル（たとえば、標準、太字、イタリック体、影付き、下線付き、取り消し線、下付き文字、上付き文字）、ウェート（たとえば、肉細活字体の、標準の、ボールド体のウェート）、幅（たとえば、コンデンスの、標準の、およびエキステンドの幅）、大文字使用スタイル（たとえば、すべて大文字、スモールキャピタル、先頭文字の大文字の指定、および文頭だけを大文字にする）、ｘハイト（たとえば、スモール、標準、ラージのｘハイト）、およびコントラスト（たとえば、低い、標準の、および高いコントラスト）などの、フォントに対応する属性を指す。
【００３２】
用語「フォント確率ベクトル」は、入力フォントと既知フォントの間の相関関係を提供する１組の値に対応する。詳細には、用語「フォント確率ベクトル」は、ｎ次元ベクトルを含み、ここで、ｎは、既知フォントの数に対応する。ｎ個の既知フォントごとに、フォント確率ベクトルは、入力フォントが既知フォントに適合する適合確率を含む。場合によっては、フォント分類器は、入力フォントに関して生成された特徴ベクトルと既知フォントの特徴ベクトルを（たとえば、ベクトル空間距離に基づき）比較して、入力フォントと既知フォントの間の適合確率を決定することにより、フォント確率ベクトルを生成する。
【００３３】
本明細書で使用するとき、用語「トリプレット」は、トリプレット内の第１の項目と残りの２つの項目の相対距離（すなわち、類似度）を比較する１組の３つの項目またはオブジェクト（たとえば、多次元データ点）を指す。用語「フォントトリプレット」は、アンカーテキスト画像、正例テキスト画像、および負例テキスト画像を備える１組の３つのフォントテキスト画像を指す。１つまたは複数の実施形態では、各フォントトリプレット内部で、アンカーテキスト画像および正例テキスト画像は、テキストが異なるが同じフォントを共有し、アンカーテキスト画像および負例テキスト画像は、異なるフォントで書かれているが同じテキストを共有する。別様に述べると、正例対は、画像内部のテキストに関してグリフ内容（たとえば、語またはテキスト）が異なるが同じフォントスタイルを含む。負例対は、フォントスタイルが異なるが、同じグリフ内容を含む。
【００３４】
用語「機械学習」は、本明細書で使用するとき、データから学習し、データに関する予測を行うことができるアルゴリズムを構築し、実装する処理を指す。一般に、機械学習は、トレーニング・フォント・セットなどの代表例入力からモデルを構築して（たとえば、トレーニングして）データ駆動型予測または判定を行うことにより動作してもよい。いくつかの代表的実施形態では、機械学習は、共同特徴学習、またはトレーニング・フォント・セットからの特徴学習などの、データマイニングおよび統計的パターン認識のために使用される。
【００３５】
本明細書で使用するとき、用語「ニューラルネットワーク」は、入力に基づき調整して（たとえば、トレーニングして）未知の関数を近似することができる機械学習モデルを指す。詳細には、用語ニューラルネットワークは、モデルに提供された複数の入力に基づき通信し学習して複雑な関数を近似し、かつ出力を生成する、相互接続されたニューロンのモデルを含むことができる。たとえば、用語ニューラルネットワークは、１つまたは複数の機械学習アルゴリズムを含む。詳細には、用語ニューラルネットワークは、深層畳込みニューラルネットワーク（ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）（すなわち、「ＣＮＮ」）を含むことができる。さらに、ニューラルネットワークは、１組のアルゴリズムを利用して、高水準のデータ抽象化をモデル化するディープラーニング技法を実装するアルゴリズム（または、１組のアルゴリズム）である。本明細書で使用するとき、ニューラルネットワークは、損失層内に回帰損失モデル（たとえば、フォント分類損失モデルまたはトリプレット損失モデル）を有するニューラルネットワークを指す。以下の説明および図は、一般にＣＮＮを指す。
【００３６】
本明細書で使用するとき、用語「共同学習」は、複数の学習モデルを一緒に解決する機械学習アルゴリズムを指す。詳細には、用語「共同学習」は、タスク全体にわたって役割および制約条件を利用しながら、複数の学習タスクを同時に解決するステップを含む。たとえば、フォント認識システムは、共同学習フレームワークの一部として、複数の損失モデルを同時に最小にするステップを採用することができる。
【００３７】
本明細書で使用するとき、用語「損失関数」または「損失モデル」は、多次元ベクトル空間内の特徴ベクトルおよび／またはフォント確率ベクトル間の損失誤差を示す関数を指す。機械学習アルゴリズム（たとえば、ニューラルネットワーク）は、全総合損失を最小にするように繰り返してトレーニングすることができる。いくつかの実施形態では、フォント認識システムは、複数の損失関数を採用し、２つの損失関数間の全損失（たとえば、全損失＝フォント分類損失＋トリプレット損失）を最小にする。損失関数の一例は、交差エントロピー損失を用いて分類したソフトマックスを備えるフォント分類損失を含む。損失関数の別の例は、フォントトリプレットおよび細部パラメータ限界に基づきフォント分類器をトレーニングするために使用するヒンジ損失関数を備えるトリプレット損失を含む。フォント分類損失とトリプレット損失の両方について、以下でさらに説明する。
【００３８】
次に図１を参照すると、図１は、１つまたは複数の実施形態による、フォント認識ニューラルネットワークをトレーニングするための一般的処理１００の図を示す。たとえば、１つまたは複数の実施形態では、フォント認識システムは、フォント認識ニューラルネットワークをトレーニングするための処理１００を実装する。フォント認識システムを、１つもしくは複数のサーバ機器、１つもしくは複数のクライアント機器、またはサーバ機器とクライアント機器の組合せなどの１つまたは複数のクライアント機器に配置することができる。
【００３９】
最初に、図は、日本語フォントに関してフォント認識システムを説明している。フォント認識システムに関して説明する技法、動作、方法、および活動、ならびに図は、他のタイプのフォントに、詳細には、グリフ内容のクラス内変動を欠点として持つフォントに適用されることが認識されよう。さらに、本明細書で説明する技法、処理、方法、および活動はまた、従来クラス内変動を示す他のタイプの画像を分類し、認識するステップに関係がある可能性がある。
【００４０】
図１に示すように、フォント認識システムは、１組の日本語フォントテキスト画像を受け取る（１０２）。たとえば、テキスト画像は、トレーニング・フォント・セットの一部である。１つまたは複数の実施形態では、フォント認識システムは、既知フォントに基づき１組のテキスト画像を生成する。代わりの一実施形態では、フォント認識システムは、ローカルデータベースまたは遠隔情報源から１組のテキスト画像を取り出す。これらの実施形態のいずれでも、フォント認識システムは、テキスト画像に関連するメタデータ（たとえば、ラベル、注釈、またはタグ）に基づき、各テキスト画像に描かれたフォントを識別する。
【００４１】
１組の日本語フォントテキスト画像を受け取ると、フォント認識システムは、最初にフォント認識ニューラルネットワークをトレーニングして、初期特徴パラメータを生成する（１０４）。たとえば、１つまたは複数の実施形態では、フォント認識システムは最初に、フォント分類損失モデルを採用して、テキスト画像内に含まれるフォントの特徴ベクトルを生成するために使用する抽出パラメータを確立するフォント認識ニューラルネットワークをトレーニングする。いくつかの実施形態では、フォント認識システムは、ソフトマックス交差エントロピー損失モデルを用いて畳込みニューラルネットワークをトレーニングする。最初にトレーニングされたフォント認識ニューラルネットワークの一例を、以下で説明する図２Ａに提供する。
【００４２】
最初にトレーニングされたフォント認識ニューラルネットワークを、完全にトレーニングされたフォント認識ニューラルネットワークをトレーニングするステップの初期化段階とみなすことができる。たとえば、最初にトレーニングされたフォント認識ニューラルネットワークは、１組の日本語フォントテキスト画像内のさまざまなテキスト画像間の空間的関係を含む。しかしながら、日本語フォントはクラス内変動を示すので、最初にトレーニングされたフォント認識ニューラルネットワークは、対応する特徴ベクトル間の空間的関係を不適切にマッピングする場合がある。たとえば、最初にトレーニングされたフォント認識ニューラルネットワークは、対応するテキスト画像が、同じ日本語の語または文字を共有するとき、互いに近い、異なるフォントをグループ化する場合がある。
【００４３】
クラス内変動問題に対処するために、フォント認識システムは、初期フォント認識ニューラルネットワークにトリプレットネットワークを追加して、フォント認識ニューラルネットワークのトレーニングを著しく改善することができる。例証するために、図１は、同じく最初にトレーニングされたフォント認識ニューラルネットワークにトリプレット・ニューラル・ネットワークを組み合わせてトレーニングを最適化する（１０６）フォント認識システムを示す。詳細には、トリプレット・ニューラル・ネットワークは、最初にトレーニングされたフォント認識ニューラルネットワーク（たとえば、下位畳込み層および上位全結合層の両方）で生成されたパラメータを使用する、３つの複製順伝播型畳込みニューラルネットワークを含む。さらに、トリプレット・ニューラル・ネットワークは、順伝播型ニューラルネットワークへの入力として明確に規定されたトリプレットを使用する。さらに、トレーニング・フォント・セットは、フォント認識ニューラルネットワークのトレーニングをさらに改善するトリプレット損失モデルを追加する。トリプレット・ニューラル・ネットワークの一例を、以下で説明する図２Ｂに提供する。
【００４４】
トリプレット・ニューラル・ネットワークを追加することにより、フォント認識システムは、日本語フォントに関してグリフ内容の間のクラス内変動を、完全に取り除かないとしても、著しく低減することができる。実際に、完全にトレーニングされた、またはトリプレット損失でトレーニングされたフォント認識ニューラルネットワークは、同じフォントクラスからのフォント間の距離を低減し、かつ異なるフォントクラスからのフォント間の距離を増大させる、特徴ベクトル間の新しい空間関係を学習する。例証するために、図１は、正例フォント対（「＋」記号として示す）が、負例フォント対（「−」記号として示す）に対して、トリプレット・ニューラル・ネットワークを組み合わせた後に、アンカーフォントにより近くなることを示す。さらに、トレーニング中に使用するトリプレットのタイプのために、完全にトレーニングされたフォント認識ニューラルネットワークでの空間関係は、グリフ内容にかかわりなくフォントクラスをグループ化する。その結果、完全にトレーニングされたフォント認識ニューラルネットワークは、トレーニングステージで分からなかったグリフに十分に汎化される。
【００４５】
上述のように、図２Ａおよび図２Ｂは、フォント認識ニューラルネットワークを共にトレーニングするためのより詳細な処理の図を示す。詳細には、図２Ａは、フォント分類損失モデルを使用してフォント認識ニューラルネットワーク２０１を最初にトレーニングするステップを示し、図２Ｂは、（たとえば、トリプレット・ニューラル・ネットワークを介して）フォントトリプレット、フォント分類損失モデル、およびトリプレット損失モデルを使用してフォント認識ニューラルネットワーク２０２を完全にトレーニングするステップを示す。
【００４６】
たった今言及したように、図２Ａは、テキスト画像２０４を使用してトレーニングされたフォント認識ニューラルネットワーク２０１を含む。フォント認識ニューラルネットワーク２０１は、下位ニューラルネットワーク層２０６、上位ニューラルネットワーク層２０８、および損失層２１０を含む。さまざまな実施形態では、フォント認識ニューラルネットワーク２０１は、ディープラーニング畳込みニューラルネットワークである。たとえば、下位ニューラルネットワーク層２０６は、（１つまたは複数の正規化層およびプーリング層を含む）畳込み層であり、高位ニューラルネットワーク層２０８は、フォント分類器を含む全結合層である。
【００４７】
図に示すように、フォント認識システムは、日本語グリフのテキスト画像２０４を受け取る。テキスト画像２０４の各々は、フォント内に日本語グリフ（たとえば、文字、テキスト、または語）を含む。さらにテキスト画像２０４の各々は、テキスト画像に含まれるフォントに関してラベルを付けられる、注釈を付けられる、または他の方法でタグを付けられる。
【００４８】
１つまたは複数の実施形態では、フォント認識システムは、テキスト画像２０４の１つまたは複数を生成する。たとえば、フォント認識システムは、日本語グリフとフォントをランダムに対にして、多数のテキスト画像を作成する。例証するために、フォント認識システムは、１つまたは複数の日本語グリフをランダムに選択する。いくつかの実例では、フォント認識システムは、５，０００（または別の数）の最も使用されるグリフのサブセットから１つまたは複数のグリフを選択する。ランダムに選択された１つまたは複数のグリフごとに、フォント認識システムは、グリフを描画するフォントを選択する。たとえば、フォント認識システムは、１つまたは複数のグリフを描画する６００の日本語フォントの１つを選ぶ。いくつかの実施形態では、フォント認識システムは、ランダムなグリフ／フォントの組合せを表示する、何百万もの合成テキスト画像２０４を生成する。
【００４９】
さまざまな実施形態では、フォント認識システムは、トレーニング・フォント・セット内のテキスト画像の中にランダム偏差を導入する。たとえば、フォント認識システムは、雑音（たとえば、平均値ゼロおよび標準偏差３のわずかなガウス雑音）、ぼかし（たとえば、２〜４の間の標準偏差のランダムなガウスぼかし）、透視図回転（たとえば、ランダムにパラメータ化されたアフィン変換）、および／または濃淡（たとえば、入力背景を満たすランダムな勾配）をランダムに導入する。さらに、フォント認識システムは、生成した画像に、可変文字間隔および／または可変縦横比の修正を追加することができる。これらの偏差は、トレーニングされたフォント認識ニューラルネットワークにロバスト性を追加するだけではなく、フォント認識ニューラルネットワークが現実世界のテキスト画像をよりよく認識することを可能にする。
【００５０】
テキスト画像２０４を使用して、フォント認識システムは、画像を入力として提供して、フォント認識ニューラルネットワーク２０１を最初にトレーニングする。たとえば、１つまたは複数の実施形態では、フォント認識システムは最初に、テキスト画像２０４を使用してフォント認識ニューラルネットワーク２０１をトレーニングする。詳細には、フォント認識システムは、下位ニューラルネットワーク層２０６、１つまたは複数の上位ニューラルネットワーク層２０８、および／または損失層２１０をトレーニングして、テキスト画像２０４から特徴を抽出するために使用することができる特徴重みおよびパラメータを生成し、各日本語フォントに関する特徴ベクトルのマッピングを生成し、フォント確率ベクトルを出力するフォント分類パラメータを生成する。
【００５１】
図に示すように、損失層２１０は、フォント分類損失モデル２１２を含む。１つまたは複数の実施形態では、フォント分類損失モデル２１２は、各フォントの抽出特徴を出力するソフトマックス交差エントロピー損失分類器である。いくつかの実施形態では、ソフトマックス分類器は、平均２乗誤差計算を使用して各フォントの抽出特徴を決定する。例によって示すために、テキスト画像２０４で６００のフォントが使用されている場合、フォント分類損失モデル２１２は、０〜１（すなわち、［０，１］）に及ぶ範囲のエントリを伴う６００次元確率特徴ベクトルを出力する。さらに、フォント認識システムは、（たとえば、フォント特徴空間に）フォント認識ニューラルネットワーク２０１の一部として各特徴ベクトルを記憶することができる。
【００５２】
さらに、ニューラルネットワーク層（すなわち、下位ニューラルネットワーク層２０６および上位ニューラルネットワーク層２０８）をトレーニングするステップの一部として、フォント認識システムはまた、誤差逆伝播を採用して、テキスト画像２０４から特徴ベクトルをよりよく抽出し、学習することができる。たとえば、１つまたは複数の実施形態では、フォント認識システムは、フォント分類損失モデル２１２から出力される特徴ベクトルを得て、特徴ベクトルを、フォント分類損失モデル２１２からの誤差損失が最小になるまで下位ニューラルネットワーク層２０６および／または上位ニューラルネットワーク層２０８に戻して提供する。
【００５３】
上述のように、最初にトレーニングされたフォント認識ニューラルネットワーク２０１は、最初の１組の特徴ベクトルおよび／またはフォント確率ベクトルを使用して、日本語フォントの入力テキスト画像を仮定したフォント推奨を提供することができる。しかしながら、最初にトレーニングされたフォント認識ニューラルネットワーク２０１は単独で、グリフ内容に伴うクラス内変動を示す、日本語フォントなどの多くのタイプのフォントに関して正確な結果を作り出さない場合がある。たとえば、最初にトレーニングされたフォント認識ニューラルネットワーク２０１は、トレーニングで使用するテキスト画像２０４にグリフの１つまたは複数が含まれていない場合、テキスト画像内のグリフのフォントを誤認する可能性が高い。
【００５４】
フォント認識ニューラルネットワーク２０１を改善するために、図２Ｂに示すように、フォント認識システムは、トリプレット損失モデルを使用してフォント認識ニューラルネットワーク２０１をさらにトレーニングする。詳細には、フォント認識システムは、フォントトリプレットの形で入力を同時に処理する３つの複製順伝播型ニューラルネットワーク（またはいくつかの組の並列ニューラルネットワーク）を含むトリプレット・ニューラル・ネットワークを追加する。トリプレット・ニューラル・ネットワークを追加することにより、フォント認識システムは、フォント認識ニューラルネットワーク２０２をさらにトレーニングして、日本語グリフの好ましくない副作用（すなわち、クラス内変動）を受けないフォント特徴を抽出することができる。
【００５５】
図２Ｂに示すように、トリプレット・ニューラル・ネットワークは、アンカーテキスト画像２０５ａを受け取る第１の順伝播型ニューラルネットワーク、および高位ニューラルネットワーク層２０８内部にアンカーフォント分類器２０８ａを含む。第２の順伝播型ニューラルネットワークは、正例テキスト画像２０５ｂを受け取り、高位ニューラルネットワーク層２０８内部に正例フォント分類器２０８ｂを含む。第３の順伝播型ニューラルネットワークは、負例テキスト画像２０５ｃを受け取り、高位ニューラルネットワーク層２０８内部に負例フォント分類器２０８ｃを含む。アンカーフォント分類器２０８ａ、正例フォント分類器２０８ｂ、および負例フォント分類器２０８ｃは、互いの複製とすることができ（すなわち、最初にトレーニングされたフォント認識ニューラルネットワーク２０１に基づき同じ層を採用する）、説明を手助けするためだけに異なる名前で呼ばれる。
【００５６】
１つまたは複数の実施形態では、フォント認識システムは、最初にトレーニングされたフォント認識ニューラルネットワーク２０１を使用して、フォント認識ニューラルネットワーク２０２内部にトリプレット・ニューラル・ネットワークを作成する。たとえば、フォント認識システムは、最初にトレーニングされたフォント認識ニューラルネットワーク２０１に関して決定した特徴抽出重みおよびパラメータを共有する（すなわち、再利用する）。詳細には、フォント認識システムは、各組の並列順伝播型ニューラルネットワーク層（たとえば、下位ニューラルネットワーク層２０６および上位ニューラルネットワーク層２０８）に関する共有された特徴抽出重みおよびパラメータを複製する。このようにして、フォント認識システムは、フォント認識ニューラルネットワーク２０２をさらにトレーニングするとき、新しい重みおよびパラメータを決定するステップを著しく低減することができ、それにより、メモリおよび計算の必要性が低減されることになる。
【００５７】
最初にトレーニングされたフォント認識ニューラルネットワーク２０１にトリプレット・ニューラル・ネットワークを追加することにより、フォント認識システムは、フォントトリプレット２０５を使用して、フォント認識ニューラルネットワーク２０２をさらにトレーニングすることが可能になる。上述のように、フォントトリプレットは、アンカーテキスト画像２０５ａ、正例テキスト画像２０５ｂ、および負例テキスト画像２０５ｃを含む。たとえば、正例テキスト画像２０５ｂは、異なるグリフ内容を使用して書かれているが（たとえば、同じフォントで書かれた異なる語または文字）アンカーテキスト画像２０５ａに含まれるのと同じフォントを含む。負例テキスト画像２０５ｃは、異なるフォントを使用して書かれているが（たとえば、異なるフォントで書かれた同じ語または文字）アンカーテキスト画像２０５ａに含まれるのと同じグリフ内容を含む。詳細には、負例テキスト画像対形成の際に、フォントとグリフの間でフォントトリプレット内の対照を意図的に選択するので（たとえば、ランダムなグリフとフォントをただ対形成するだけではない）、負例対形成は、しばしば「厳然とした負例」と呼ばれる。
【００５８】
さまざまな実施形態では、フォント認識システムは、フォントトリプレット２０５を生成する。たとえば、いくつかの実施形態では、フォント認識システムは、フォント認識ニューラルネットワークを最初にトレーニングするために使用した、日本語フォントのテキスト画像２０４からの１つまたは複数の画像に基づき、合成フォントトリプレットを生成する。代わりの実施形態では、フォント認識システムは、新しいテキスト画像を生成して、フォントトリプレットを形成する。（フォントトリプレットの例を含む）フォントトリプレットを生成するステップに関する詳細について、図３に関して以下でさらに説明する。
【００５９】
図２Ｂに示すように、フォント認識システムは、トリプレット・ニューラル・ネットワークの中にフォントトリプレット２０５を入力して、フォント認識ニューラルネットワーク２０２をトレーニングする。１つまたは複数の実施形態では、フォント認識システムは、トリプレット・ニューラル・ネットワークにアンカーテキスト画像、ならびに対応する正例テキスト画像および負例テキスト画像を同時に入力する。このようにして、フォント認識システムは、フォント認識ニューラルネットワーク２０２をトレーニングして、フォントトリプレットにより規定される関係を学習する。注目すべきは、図２Ｂは、１つまたは複数の実施形態で３つの複製順伝播型ニューラルネットワークを別個のネットワークとして示すが、下位ニューラルネットワーク層２０６および／または高位ニューラルネットワーク層２０８は、互いに混ざり合う単一ネットワークを形成する（すなわち、下位層を共有する）。
【００６０】
入力されたフォントトリプレットごとに、フォント認識システムは、高位ニューラルネットワーク層２０８から特徴ベクトルを出力し、特徴ベクトルは、次に損失層２１０に提供される。図に示すように、アンカーフォント分類器２０８ａは、フォント認識システムがフォント認識ニューラルネットワーク２０２をトレーニングして、（フォントトリプレット内のその他のテキスト画像に関して）アンカーテキスト画像２０５ａからフォント特徴ベクトルおよびフォント確率ベクトルを抽出しているとき、フォント分類損失モデル２１２に出力を提供する。さらに、アンカーフォント分類器２０８ａ、正例フォント分類器２０８ｂ、および負例フォント分類器２０８ｃは、トリプレット損失モデル２１４に出力を提供する。
【００６１】
１つまたは複数の実施形態では、フォント分類損失モデル２１２は、トレーニングで誤差により生じる損失の量を決定する。たとえば、フォント分類損失モデル２１２は、特徴空間にマッピングされたとき、同じフォントを共有する２つのテキスト画像の特徴ベクトルが、互いにしきい値距離を越えて配置されるときを識別するために、ソフトマックス分類器を採用する。誤差損失を決定すると、フォント分類損失モデル２１２は、誤差逆伝播によって下位ニューラルネットワーク層２０６および／または上位ニューラルネットワーク層２０８に誤差損失をフィードバックとして提供して、特徴ベクトル間の距離を低減する。
【００６２】
すでに言及したように、フォント認識ニューラルネットワーク２０２はまた、トリプレット損失モデル２１４を含む。トリプレット損失モデル２１４は、フォント認識ニューラルネットワーク２０２をトレーニングするために使用するフォントトリプレット間の最小距離を決定することができる。いくつかの実施形態では、トリプレット損失モデル２１４は、トレーニングで誤差により生じた、決定された損失に基づきフィードバックを提供する。たとえば、トリプレット損失モデル２１４は、アンカーテキスト画像２０５ａと正例テキスト画像２０５ｂの特徴ベクトル間の正例距離、およびアンカーテキスト画像２０５ａと負例テキスト画像２０５ｃの特徴ベクトル間の負例距離を識別する。トリプレット損失モデル２１４は、正例距離が負例距離よりもしきい値（たとえば、所定の限界または許容範囲）だけ大きいとき、誤差が存在すると判断することができる。トリプレット損失を誤差逆伝播する際、トリプレット損失モデル２１４は、すでに検出したトリプレット損失をトレーニングの今後の反復が改善するか、解決するかどうかを判断することができる。このようにして、フォント認識システムは、トリプレット損失モデル２１４を採用して、正例対のテキスト画像に関して特徴ベクトル間の距離を最小にしようとするが、その一方で同時に、負例対のテキスト画像に関して特徴ベクトル間の距離を増大させる。
【００６３】
さらに１つまたは複数の実施形態では、フォント認識ニューラルネットワーク２０２に対する総合損失を最小にするために、フォント認識システムは、組合せ損失モデル２１６として示される、フォント分類損失モデル２１２とトリプレット損失モデル２１４の間の共同損失を最小にする。たとえば、いくつかの実施形態では、フォント分類損失モデル２１２およびトリプレット損失モデル２１４は、トレーニングで誤差により生じる損失の量を集合的に決定する組合せ損失モデル２１６に損失出力を提供する。組合せ損失モデル２１６は同様に、誤差逆伝播によって下位ニューラルネットワーク層２０６および／または上位ニューラルネットワーク層２０８にフィードバックを提供して、フォント認識ニューラルネットワーク２０２のトレーニングを改善する。フォント認識システムは、フォント分類損失モデル２１２とトリプレット損失モデル２１４の両方に対する共同損失が最小値になったとき、トレーニングを終了することができる。組合せ損失モデル２１６に関する詳細について、図４に関して以下でさらに提供する。
【００６４】
誤差逆伝播によってフィードバックを提供することにより、フォント認識システムは、エンド・ツー・エンドの手法でフォント認識ニューラルネットワーク２０２を共にトレーニングすることができる。したがって、フォント認識システムにより、フォント認識ニューラルネットワーク２０２は正確で安定した学習済み状態に急速に収束可能とすることができる。実際に、トリプレット・ニューラル・ネットワークを追加することにより、フォント分類に関してグリフ内容の間のクラス内変動が低減される、または除去されるので、フォント認識システムは、トレーニング中に分からなかったグリフを入力テキスト画像が含んでいる場合でさえ、入力テキスト画像に関するフォントを正確に識別する、日本語（または他の）フォントに関する特徴ベクトルを学習する。
【００６５】
さらに例示するために、図２Ｃは、１つまたは複数の実施形態による、トレーニングされたフォント認識ニューラルネットワーク２２２を採用して、入力画像に基づきフォントを識別する図を示す。詳細には、図２Ｃは、フォント認識システムが、トレーニングされたフォント認識ニューラルネットワーク２２２を使用して入力テキスト画像２２４内のテキストに関する識別されたフォント２２６を決定することを示す。
【００６６】
図に示すように、フォント認識システムは、入力テキスト画像２２４を得る。たとえば、フォント認識システムは、入力テキスト画像２２４で使用されたフォントを識別するというユーザのリクエストを検出する。たとえば、フォント認識システムは、アプリケーション（たとえば、デスクトップまたは移動体のアプリケーション）内部の入力テキスト画像２２４のコピーを受け取る。入力テキスト画像２２４は、特定のフォントで書かれた１つまたは複数のグリフを含む。いくつかの実施形態では、ユーザは、入力テキスト画像２２４内部のグリフの不要部分を切り取った選択部分を提供する。
【００６７】
入力テキスト画像２２４を受け取ったことに応答して、フォント認識システムは、入力テキスト画像２２４内部で見つかった、テキストの入力フォント（すなわち、グリフ）に関する１つまたは複数の特徴ベクトルを決定する。詳細には、フォント認識システムは、トレーニングされたフォント認識ニューラルネットワーク２２２を使用して、入力フォントに基づき１つまたは複数の特徴ベクトルを抽出する。上記で説明したように、いくつかの実施形態では、フォント認識システムは、入力フォントに関する多次元特徴ベクトルを決定することができる。同じく上記で説明したように、トレーニングされたフォント認識ニューラルネットワーク２２２は、トリプレット損失およびフォント分類損失を共に最小にすることによりトレーニングされ、この場合、トリプレット損失モデルは、正例テキスト画像に関する特徴ベクトルとアンカーテキスト画像の特徴ベクトルの間の距離を最小にしようとし、その一方で同時に、負例テキスト画像に関する特徴ベクトルとアンカーテキスト画像の特徴ベクトルの間の距離を増大させようとする。
【００６８】
決定した特徴ベクトルを使用して、フォント認識システムは、入力フォントの識別されたフォント２２６を識別するフォント確率ベクトルを生成する。たとえば、フォント認識システムは、フォント分類器を採用して、入力フォントの特徴ベクトルと、トレーニングされたフォント認識ニューラルネットワークを使用して生成した既知フォントの特徴ベクトルを比較して、識別されたフォントを示すフォント確率ベクトルを生成する。多くの場合、既知フォントの特徴ベクトルは、フォント認識ニューラルネットワーク２２２をトレーニングするために使用するフォントに対応する（たとえば、上述のテキスト画像２０４）。たとえば、６００のフォントを使用して、テキスト画像２０４を生成し、フォント認識ニューラルネットワーク２２２をトレーニングする場合、フォント認識システムは、入力フォントの１つまたは複数の特徴ベクトルと６００のフォントの特徴ベクトルを比較して、入力フォントが６００の既知フォントの各々に適合する確率を示す、６００次元のフォント確率ベクトルを生成する。フォント確率ベクトルを使用して、フォント認識システムは、識別されたフォント２２６を識別する。
【００６９】
さらに、入力フォントに関して決定された特徴ベクトルは、既知フォントの特徴ベクトルに完全に適合しない可能性が高い（たとえば、２つの特徴ベクトルの距離は、ゼロよりも大きくなる）。さらに、既知フォントは、トレーニング・フォント・セットおよび／またはフォントトリプレット内のテキスト画像に出現する既知フォントごとの１つの特徴ベクトルなどの、複数の特徴ベクトルを有する可能性がある。したがって、いくつかの実施形態では、フォント認識システムは、フォントに関する適合確率を生み出すとき、入力フォントの特徴ベクトルと既知フォントの平均特徴表現（すなわち、フォントに関する対応する特徴ベクトルを集めたもの）を比較する。詳細には、フォント認識システムは、入力フォントの特徴ベクトルから最も短い距離にある平均特徴表現を有する既知フォントを識別する。
【００７０】
識別されたフォント２２６を決定すると、フォント認識システムは、識別されたフォント２２６をユーザに提示することができる。たとえば、フォント認識システムは、識別されたフォント２２６をグラフィカル・ユーザ・インタフェース内部でユーザに提示する。１つまたは複数の実施形態では、フォント認識システムは、識別されたフォント２２６を使用して、入力テキスト画像２２４内のテキストを再現する。さまざまな実施形態では、フォント認識システムは、電子文書内部のテキストの一部分に、識別されたフォント２２６を自動的に適用する。
【００７１】
いくつかの実施形態では、フォント認識システムは、識別されたフォント２２６をユーザが有していないと判断し、識別されたフォント２２６をユーザが得る（たとえば、ダウンロードする、購入する、インストールする、または他の方法で入手する）のを手伝う。代わりの実施形態では、識別されたフォント２２６が、費用がかかり過ぎて入手できない場合、フォント認識システムは、より経済的な類似フォントをユーザに提供することができる。
【００７２】
同様に、１つまたは複数の実施形態では、フォント認識システムはまた、ユーザに類似フォントのリストを提供する。たとえば、フォント認識システムは、入力テキスト画像２２４内の入力フォントに（たとえば、フォント確率ベクトルで示される適合確率に基づき）類似する１組の既知フォントから５つのフォントを識別する。いくつかの実施形態では、フォント認識システムは、入力フォントと同じフォントを識別することができないとき、最も近く適合する既知フォントを提供する。
【００７３】
図３は、フォントトリプレット３００の一例を示す。図に示すように、フォントトリプレット３００は、３つのテキスト画像を、すなわち、アンカーテキスト画像３０２、正例テキスト画像３０４、および負例テキスト画像３０６を含む。アンカーテキスト画像３０２は、第１のフォントの第１組の日本語グリフを含む。正例テキスト画像３０４は、同じく第１のフォントの第２組の日本語グリフを含む。したがって、正例テキスト画像３０４内の第２組の日本語グリフは、第１組の日本語グリフと異なるが、第１組の日本語グリフと第２組の日本語グリフの両方は、同じフォント（すなわち、第１のフォント）を使用して書かれている。フォントトリプレット３００の中では、アンカーテキスト画像３０２および正例テキスト画像３０４は、正例テキスト画像対（または単に正例対）を一緒に形成する。
【００７４】
アンカーテキスト画像３０２と同様に、負例テキスト画像３０６は、第１組の日本語グリフを含む。しかしながら、アンカーテキスト画像３０２と異なり、負例テキスト画像３０６内の第１組の日本語グリフは、第１のフォントとは別個の第２のフォントを使用して書かれている。フォントトリプレット３００の中では、アンカーテキスト画像３０２および負例テキスト画像３０６は、負例テキスト画像対（または単に負例対）を一緒に形成する。
【００７５】
上述のように、フォント認識システムは、フォントトリプレットを生成することができる。１つまたは複数の実施形態では、フォント認識システムは、２組のグリフ、および２つのフォントを選択し、上述のように、アンカーテキスト画像、正例テキスト画像、および負例テキスト画像を作成することによりフォントトリプレットを生成する。代わりの実施形態では、フォント認識システムは、第１のフォントで書かれた第１組の日本語グリフを用いてアンカーテキスト画像３０２をランダムに生成する。次いで、フォント認識システムは、上述のように、ランダムに生成したアンカーテキスト画像３０２に基づき、正例テキスト画像３０４および負例テキスト画像３０６を生成する。
【００７６】
フォントトリプレットを選択する処理は、些細なことではない。正例対が同じフォントを単に共有し、かつ負例対が互いに異なるフォントを有するように、すべてのトリプレットをフォント認識システムがランダムに選択すれば、フォントトリプレットの多くは、容易に満たされ、フォントトリプレットは、クラス内変動課題を解決することも、トレーニング中に急速な収束を可能にすることもない。しかしながら、正例対内部の１組の日本語グリフが別個のものであり、および／または負例対内部の１組の日本語グリフが適合することを確実にする、厳然とした負例サンプリング戦略を採用することにより、フォント認識システムは、フォント認識ニューラルネットワークをトレーニングして、グリフ内容内部のクラス内変動を、除去しないとしても、低減することができる。詳細には、この厳然とした負例サンプリング戦略によりフォント認識ニューラルネットワークは、特徴を抽出するとき、より弁別力があるようになり、このことは、より別個の特徴ベクトルにつながる。さらに、厳然とした負例サンプリング戦略を採用する別の利益として、フォント認識システムは、学習／トレーニング処理を加速し、その結果、フォント認識ニューラルネットワークは、これまでのシステムよりも急速に収束する。
【００７７】
上述のように、フォント認識システムは、フォント認識ニューラルネットワークを最初にトレーニングするために使用したトレーニング・フォント・セット（たとえば、入力テキスト画像）からテキスト画像を選択することができる。追加でまたは代わりに、フォント認識システムは、新たに生成したテキスト画像を使用して、フォントトリプレットを生成することができる。１つまたは複数の実施形態では、フォント認識システムは、同じアンカーテキスト画像３０２に関して複数のフォントトリプレットを生成する。代わりの実施形態では、フォント認識システムは、ランダムに生成したアンカーテキスト画像３０２ごとフォントトリプレットを１つだけ生成する。
【００７８】
１つまたは複数の実施形態では、フォント認識システムは、フォントトリプレットの１つまたは複数のテキスト画像の中にランダムな偏差を導入する。たとえば、フォント認識システムは、テキスト画像に少量のガウスの雑音、ぼかし、または濃淡をランダムに導入する。さらにフォント認識システムは、フォントトリプレット内のテキスト画像の透視図を時折回転させる。上述のように、ランダムな偏差を追加することにより、トレーニング中のフォント認識ニューラルネットワークのロバスト性を改善することができる。
【００７９】
上述のように、トリプレット損失と最初にトレーニングされたフォント認識ニューラルネットワークのソフトマックス損失を組み合わせた結果、フォントトリプレット内の正例テキスト画像対の特徴ベクトル間の距離は、負例テキスト画像対の特徴ベクトル間の距離よりも短くなる。したがって、上記で説明したように、フォント認識システムは、エンド・ツー・エンド誤差逆伝播を使用して、フォントトリプレットに関して、正例対間の距離が負例対間の距離よりも短くなるまで、フォント認識ニューラルネットワークを完全にトレーニングする。トリプレット・ニューラル・ネットワークに関する詳細について、図４で、以下でさらに提供する。
【００８０】
図４は、上述のように、複数のテキスト画像から複数のトリプレットを決定するステップを遂行するだけではなく、トリプレット損失を使用してフォント認識ニューラルネットワークをトレーニングするステップを遂行する、一連の活動４００を示す。さまざまな実施形態では、本明細書で説明するフォント認識システムは、一連の活動４００を遂行する。いくつかの実施形態では、フォント認識システムは、サーバ機器に配置され、クライアント機器と一緒に一連の活動４００の１つまたは複数を遂行する。
【００８１】
図に示すように、一連の活動４００は、テキスト画像のトレーニング・フォント・セットを得るステップ４０２を含む。いくつかの実施形態では、フォント認識システムは、グリフを含み、かつグリフを描画するために使用するフォントを示す、ラベル付テキスト画像を識別する。１つまたは複数の実施形態では、グリフは日本語である。代わりの実施形態では、グリフは、すでに言及したように、異なる言語に対応する。
【００８２】
これまでに説明したように、フォント認識システムは、トレーニング・フォント・セットのために、合成テキスト画像を生成することができる、または他の方法でテキスト画像を得ることができる。たとえば、フォント認識システムは、外部情報源からフォントトリプレットを得る。追加でまたは代わりに、フォント認識システムは、トレーニング・フォント・セットのための合成テキスト画像を生成する。上記で説明したように、フォント認識システムは、トレーニング・フォント・セットのための、何百万ものラベル付テキスト画像を生成することができる。
【００８３】
図４にさらに示すように、一連の活動４００は、テキスト画像からフォントトリプレットを決定するステップ４０４を含む。１つまたは複数の実施形態では、フォントトリプレットを決定するために使用する画像を、トレーニング・フォント・セットで見つかったテキスト画像から選び出す。代わりの実施形態では、フォントトリプレットを決定するために使用する画像を、新たに生成する、または別個の情報源から得る。いくつかの実施形態では、フォント認識システムは、フォントトリプレットを作成するために、トレーニング・フォント・セットからいくつかのテキスト画像を得て、他のテキスト画像を生成する。
【００８４】
すでに説明したように、フォントトリプレットは、アンカーテキスト画像、正例テキスト画像、および負例テキスト画像を含む。フォント認識システムは、アンカーテキスト画像を選択することによりフォントトリプレットを生成することができる。１つまたは複数の実施形態では、フォント認識システムは、ランダムに選択したフォントを１つまたは複数のグリフのストリングに適用することにより、フォントテキスト画像を選択する。さらにフォント認識システムは、グリフのテキスト画像を画像ファイルとして保存することができる。
【００８５】
選択したアンカー・テキスト・ファイルに基づき、フォント認識システムは、正例テキスト画像および負例テキスト画像を選択することができる。たとえば、フォント認識システムは、アンカーテキスト画像と異なるフォントで書かれた１つまたは複数のグリフのストリングを含む正例テキスト画像を識別する、または生成する。さらに、フォント認識システムは、アンカーテキスト画像内の１つまたは複数のグリフが、正例テキスト画像内のグリフに適合しないことを検証することができる。同様に、フォント認識システムは、アンカーテキスト画像と異なるフォントで書かれているが、アンカーテキスト画像と同じグリフを含む負例テキスト画像を識別する、または生成することができる。
【００８６】
いくつかの実施形態では、フォント認識システムは、２つのフォントおよび２組のグリフをランダムに選択することによりフォントトリプレットを生成する。次いで、フォント認識システムは、第１のフォントの１つおよび第１組のグリフを用いてアンカーテキスト画像を生成する。第１のフォントであるが第２組のグリフを使用して、フォント認識システムは、フォントトリプレットに関する正例テキスト画像を生成する。さらに、第１組のグリフおよび第２のフォントを使用して、フォント認識システムは、フォントトリプレットに関する負例テキスト画像を生成する。
【００８７】
図４に示すように、一連の活動４００は、トリプレット損失を使用してフォント認識ニューラルネットワークをトレーニングするステップ４０６を含み、この場合、トリプレット損失は、フォントトリプレットに基づく。上記で説明したように、フォント認識ニューラルネットワークをトレーニングするステップは、フォント特徴抽出のための初期パラメータ（たとえば、重みパラメータ）を得るために、フォント分類損失関数（すなわち、フォント分類損失モデル）を使用して、畳込みニューラルネットワーク（たとえば、フォント認識ニューラルネットワーク）を最初にトレーニングし、次いでさらに、フォント特徴抽出のための初期パラメータを基盤として採用するトリプレット・ニューラル・ネットワークを使用して、畳込みニューラルネットワークをトレーニングするステップを含むことができる。上述のように、トリプレット・ニューラル・ネットワークのための初期パラメータを使用することにより、フォント認識システムは、フォント認識ニューラルネットワークをさらにトレーニングするために必要な時間および資源を著しく低減する。
【００８８】
トリプレット・ニューラル・ネットワークを採用してフォント認識ニューラルネットワークをトレーニングするステップの一部として、フォント認識システムは、フォントトリプレットを入力として受け取る３つの複製順伝播型ニューラルネットワークを追加する。たとえば、フォントトリプレットは、トリプレット・ニューラル・ネットワークにアンカーテキスト画像、正例テキスト画像、および負例テキスト画像を提供する。それに応答して、フォント認識システムは、フォント認識ニューラルネットワークをトレーニングして、フォントトリプレット内のテキスト画像の特徴ベクトル間の関係を学習する。具体的には、フォント認識システムは、フォント認識ニューラルネットワークをトレーニングして、アンカーテキスト画像および負例テキスト画像に関する特徴ベクトル間の負例距離よりも互いに近い、アンカーテキスト画像および正例テキスト画像に関する特徴ベクトル間の正例距離をマッピングする。
【００８９】
トリプレット損失関数を含むトリプレット・ニューラル・ネットワークをフォント分類関数に追加することにより、マルチタスク学習フレームワークを生成して、共にフォント分類性能を改善し、グリフ内容のクラス内変動により生じる好ましくない副作用を取り除く。例証するために、フォント分類損失関数およびトリプレット損失関数を組み合わせるステップは、組み合わせて、以下の総合目的関数を作成する。
Ｌ総計＝Ｌフォント分類＋Ｌトリプレット  （１）
【００９０】
式１で、Ｌは、総合組合せ総計損失を示し、Ｌフォント分類は、フォント分類損失関数からの損失を示し、Ｌトリプレットは、トリプレット損失関数からの損失を示す。
【００９１】
１つまたは複数の実施形態では、フォント認識システムは、Ｌフォント分類のためにソフトマックス交差エントロピー分類器を採用することができる。たとえば、フォント認識システムは、平均２乗誤差（ｍｅａｎ  ｓｑｕａｒｅ  ｅｒｒｏｒ、ＭＳＥ）を採用して、フォント分類損失を決定する。代わりの実施形態では、フォント認識システムは、抽出した特徴ベクトルを同様に出力する異なるタイプの分類器を採用し、この場合、出力した特徴ベクトルの各々は、異なるフォントを示す。
【００９２】
【数１】
2019083002.tif 000003
【００９３】
式２で、
【００９４】
【数２】
2019083002.tif 000004
【００９５】
は、フォントトリプレット内のアンカーテキスト画像を表し、
【００９６】
【数３】
2019083002.tif 000005
【００９７】
は、フォントトリプレット内の正例テキスト画像を表し、
【００９８】
【数４】
2019083002.tif 000006
【００９９】
はフォントトリプレット内の負例テキスト画像を表す。さらに、ｆは、テキスト画像からフォント特徴を抽出するために使用する関数を表す。さらに、ｍは、正例対と負例対の間に強制される限界距離を示す細部パラメータを表す。１つまたは複数の実施形態では、限界を手作業で設定する。代わりの実施形態では、フォント認識システムは、特徴空間のサイズ、テキスト画像の数、および／またはトレーニング・フォント・セット内のフォントの数に基づき、限界を自動的に設定する、および／または調節する。
【０１００】
式２は、フォントトリプレット内の正例対間の（たとえば、アンカーテキスト画像と正例テキスト画像の特徴ベクトル間の）絶対値の正例距離（または正例距離）だけではなく、フォントトリプレット内の負例対間の（たとえば、アンカーテキスト画像と負例テキスト画像の特徴ベクトル間の）絶対値の負例距離（または負例距離）を提供する。正例距離が、負例距離よりも少なくとも限界だけ短いとき、フォントトリプレットは、誤差損失をまったく生み出さない。換言すれば、正例テキスト画像が、特徴空間内で、負例テキスト画像よりも（少なくとも限界だけ）アンカーテキスト画像に近く配置されるとき、アンカーテキスト画像、正例テキスト画像、および負例テキスト画像に対応する特徴ベクトルのマッピングは、十分に満たされる。
【０１０１】
しかしながら、負例テキスト画像が、正例テキスト画像よりもアンカーテキスト画像に近い（たとえば、負例距離が正例距離よりも短い）場合、または正例テキスト画像が近いが、限界により指定されるしきい値量だけ近くない場合、フォントトリプレット特徴ベクトルマッピングは、十分満たされるわけではない。したがって、式２が正しくない場合、フォント認識システムは、フォント認識ニューラルネットワークに損失誤差情報を戻して提供して、フォント認識ニューラルネットワークをさらにトレーニングすることができる。詳細には、フォント認識システムは、以下のヒンジ損失関数で示すように、誤差損失の量を提供する。
【０１０２】
【数５】
2019083002.tif 000007
【０１０３】
式３に示すように、ヒンジ損失関数は、式２に密接に基づく。たとえば、式３は、式２を書き直して損失関数にする。式３のトリプレット損失関数（すなわちＬトリプレット）は、ゼロ（０）と各フォントトリプレットの誤差損失の間の最大値をとる。上述のように、誤差損失は、フォントトリプレット内の負例距離が正例距離よりも少なくとも限界だけ短いときに発生する。
【０１０４】
別様に述べると、トリプレットが最適にマッピングされた（たとえば、十分満足される）とき、正例距離は、負例距離よりも少なくとも限界だけ短くなる。その結果、誤差損失は、負数になる。この場合、フォント認識システムは、ゼロが２つの数値の大きい方（すなわち、最大値）であるので、ゼロを選択する。逆に、フォントトリプレットが十分に満たされているわけではない場合、最大値は、正例距離引く限界よりも負例距離のほうが長い、残りの長さになる。この場合、フォント認識システムは、全トリプレット誤差損失に残りの長さを加算する。
【０１０５】
フォント認識システムは、トレーニング中にフォント認識ニューラルネットワークの中に全トリプレット誤差損失を戻してフィードバックする（たとえば、誤差逆伝播する）ことができる。トリプレット誤差損失をフィードバックすることにより、フォント認識システムは、フォントトリプレットを十分に満足させるまで、フォントトリプレットの負例距離を増大させながら、正例距離を低減しようと試みる。詳細には、フォント認識システムは、フィードバックデータを使用して、３つの順伝播型ニューラルネットワークすべてを同時にトレーニングすることができる。同様に、フォント認識システムはまた、フォント認識ニューラルネットワークの中に全フォント分類損失をフィードバックする。
【０１０６】
フォント認識システムは、フォント分類損失とトリプレット損失の間の全組合せ損失（すなわち、式１）を最小にするまで、処理を繰り返す（すなわち、フォント認識ニューラルネットワークをトレーニングする）ことができる。場合によっては、全組合せ損失を最小にすることは、最適フォント分類損失または最適トリプレット損失をもたらすのではなく、むしろ、共にトレーニングするとき、２つの損失モデルの間で最適共同損失をもたらす。
【０１０７】
図４はまた、トレーニングされたフォント認識ニューラルネットワークを使用して入力デジタルフォントを識別するステップを遂行するためのアルゴリズムの活動を示す。図４に示すように、一連の活動４００は、入力フォントを含む入力テキスト画像を受け取るステップ４０８を含む。たとえば、ユーザは、未知の入力フォントで書かれたテキストを含む画像をフォント認識システムに提供する。いくつかの実施形態では、入力テキスト画像は、メタデータをまったく伴わない平坦な画像である可能性があり、フォント認識システムは、未知の入力フォントを含む入力画像の領域を識別する。別の例では、フォント認識システムは、バッチ動作の一部などの、入力フォントを伴うテキスト入力ファイルを自動的に受け取って、テキスト画像内のフォントを識別する。
【０１０８】
図４に示すように、一連の活動４００は、フォント認識ニューラルネットワークを使用して、入力テキスト画像から入力フォントを識別するステップ４１０を含む。たとえば、フォント認識システムは、トレーニングされたフォント認識ニューラルネットワークに、入力フォントを備える入力テキスト画像を提供する。それに応答して、フォント認識ニューラルネットワークは、入力フォントに関する特徴ベクトルおよびフォント確率ベクトルを決定する。さらに、これまでに説明したように、フォント認識システムは、フォント確率ベクトルに基づき入力フォントを識別する。
【０１０９】
１つまたは複数の実施形態では、フォント認識システムは、サーバ機器上で入力フォントを識別する。たとえば、クライアント機器は、サーバ機器に入力テキスト画像（または表現するデータ）を提供し、サーバ機器は、識別した入力フォントをクライアント機器に戻して提供する。代わりの実施形態では、フォント認識システムは、クライアント機器上に少なくとも一部は常駐し、および／またはフォント確率ベクトルは、クライアント機器上で入力テキスト画像に関する特徴ベクトルを識別するだけではなく、入力フォントも識別する（たとえば、サーバ機器は、トレーニングされたフォント認識ニューラルネットワークをクライアント機器に提供する）。
【０１１０】
さらに、１つまたは複数の実施形態では、フォント認識システムは、アプリケーションと一緒に機能して、入力テキスト画像内のフォントを受け取り、識別する。たとえば、ユーザは、ワードプロセッシングまたはグラフィックデザインのアプリケーションを使用しており、入力テキスト画像に表示されたフォントを使用するように要求する。それに応答して、フォント認識システムは、フォント認識ニューラルネットワークを使用して入力テキスト画像内の入力フォントを識別し、識別したフォントをアプリケーション内部でユーザに戻して提供する。さらに、いくつかの実施形態では、フォント認識システムはまた、上記で説明したように、追加の類似フォントを提供する。
【０１１１】
次に、図５を参照すると、１つまたは複数の実施形態によるフォント認識システムの能力および構成要素に関する詳細をさらに提供する。詳細には、図５は、フォント管理システム５０２内部に配置され、かつコンピューティング機器５００上に収容されたフォント認識システム５０４の一例のアーキテクチャの概略図を示す。フォント認識システム５０４は、すでに説明したフォント認識システムの１つまたは複数の実施形態を表すことができる。
【０１１２】
図に示すように、フォント認識システム５０４は、コンピューティング機器５００上でフォント管理システム５０２内部に配置される。一般に、コンピューティング機器５００は、さまざまなタイプのクライアント機器を表してもよい。たとえば、いくつかの実施形態では、クライアントは、携帯電話、スマートホン、ＰＤＡ、タブレット、ラップトップなどのような移動体機器である。他の実施形態では、コンピューティング機器５００は、デスクトップもしくはサーバ、または別のタイプのクライアント機器などの非移動体機器である。いくつかの実施形態では、コンピューティング機器５００の一部分は、異なるタイプのコンピューティング機器に対応する（たとえば、いくつかの構成要素は、サーバ機器の役割を果たすとき、コンピューティング機器５００上で動作し、いくつかの構成要素は、クライアント機器の役割を果たすとき、コンピューティング機器５００上で動作する）。コンピューティング機器５００に関する詳細については、以下で、ならびに図１１に関連してさらに論じる。
【０１１３】
フォント管理システム５０２は、一般に電子文書および／またはシステムアプリケーション内部のデジタルフォントの作成、修正、共有、インストール、および／または削除を容易にする。たとえば、フォント管理システム５０２は、フォントデータベース５２４内など、コンピューティング機器５００上にフォントのリポジトリを記憶する。さらに、フォント管理システム５０２は、遠隔に配置された追加フォントにアクセスすることができる。さらに、いくつかの実施形態では、フォント管理システム５０２は、コンピューティング機器５００から分離して配置されて、コンピューティング機器５００にフォントを提供することができる。
【０１１４】
さらに、フォント管理システム５０２は、１つまたは複数のアプリケーションと一緒に動作して、コンピューティング機器５００上にフォントを表示することができる。たとえば、１つまたは複数の実施形態では、フォント管理システム５０２は、ＡＤＯＢＥ（登録商標）  ＡＣＲＯＢＡＴ（登録商標）、ＡＤＯＢＥ（登録商標）  ＩＮＤＥＳＩＧＮ（登録商標）、または別のワード・プロセッシング・アプリケーションなどのワード・プロセッシング・アプリケーションにフォントを提供する。他の実施形態では、フォント管理システム５０２は、ＡＤＯＢＥ（登録商標）ＩＬＬＵＳＴＲＡＴＯＲ（登録商標）などの設計アプリケーションにフォントを提供する。
【０１１５】
図５に示すように、フォント認識システム５０４は、さまざまな構成要素を含む。たとえば、フォント認識システム５０４は、フォントマネージャ５０６、フォント・トリプレット・ジェネレータ５０８、フォント認識ニューラルネットワーク５１０、フォント識別器５２２、ならびにトレーニング・フォント・セット５２６およびフォント特徴ベクトル５２８を含むフォントデータベース５２４を含む。次に、これらの構成要素の各々について、以下で説明する。
【０１１６】
フォントマネージャ５０６は、コンピューティング機器５００内部でフォントを記憶し、受け取り、検出し、インストールし、順序づけ、および／または組織化することができる。たとえば、１つまたは複数の実施形態では、フォントマネージャ５０６は、コンピューティング機器５００上に１組のフォントを記憶する。いくつかの実施形態では、フォントマネージャ５０６は、フォント管理システム５０２と共に、フォントデータベース５２４内部でフォントを維持する。たとえば、フォントマネージャ５０６は、ユーザが電子文書で採用することができる１組のフォント（たとえば、日本語フォント）を維持する。追加の一例として、フォントマネージャ５０６は、トレーニング・フォント・セット５２６（たとえば、日本語フォントのラベル付テキスト画像）を維持する。さまざまな実施形態では、フォントマネージャ５０６は、コンピューティング機器５００上に記憶されていない、または配置されていない追加フォントを識別し、それらにアクセスすることができる。たとえば、フォントマネージャ５０６は、複数の言語に対応するフォントをコンピューティング機器５００上に維持する。
【０１１７】
フォント・トリプレット・ジェネレータ５０８は、フォント認識ニューラルネットワーク５１０をトレーニングするために使用するフォントトリプレットを生成することができる。たとえば、フォント・トリプレット・ジェネレータ５０８は、すでに説明したように、アンカーテキスト画像、正例テキスト画像、および負例テキスト画像を含むフォントトリプレットを生成する。このようにして、フォント・トリプレット・ジェネレータ５０８は、アンカーテキスト画像と正例テキスト画像の間の正例対、およびアンカーテキスト画像と負例テキスト画像の間の負例対を含むフォントトリプレットを生成することができる。フォントトリプレットの生成に関する説明については、図４に関連して上記でさらに提供された。
【０１１８】
フォント認識システム５０４は、フォント認識ニューラルネットワーク５１０を含む。図に示すように、フォント認識ニューラルネットワーク５１０は、畳込み層５１２、上位層５１４、および損失層５１６を含む。損失層５１６は、フォント分類損失５１８およびトリプレット損失５２０を含む。上記で説明したように、フォント認識システム５０４は、機械学習アルゴリズムを採用して、フォント認識ニューラルネットワーク５１０を共にトレーニングする。詳細には、フォント認識システム５０４は、トレーニング・フォント・セット５２６を採用して、フォント分類損失５１８を使用してフォント認識ニューラルネットワーク５１０の層を最初にトレーニングし、次いで、上記で詳細に説明したように、トリプレット損失５２０を含むトリプレット・ニューラル・ネットワークを追加することによりフォント認識ニューラルネットワーク５１０の層をさらにトレーニングする。たとえば、フォント認識システム５０４は、エンド・ツー・エンド学習および誤差逆伝播を使用して、フォント分類損失５１８とトリプレット損失５２０の間の組合せ損失を最小にすることにより、フォント認識ニューラルネットワークをトレーニングする。
【０１１９】
フォント認識ニューラルネットワーク５１０を使用して、フォント認識システム５０４は、フォントデータベース５２４に記憶される１組の特徴ベクトル５２８を生成する。１つまたは複数の実施形態では、フォント認識システム５０４は、フォント認識ニューラルネットワーク５１０をトレーニングするステップの一部として、トレーニング・フォント・セット５２６内のフォントごとにフォント特徴ベクトル５２８を生成する。追加のおよび／または代わりの実施形態では、フォント認識システム５０４は、コンピューティング機器５００上に記憶されたフォントなどの、（トレーニング・フォント・セットと）異なる１組のフォントに対応するフォント特徴ベクトル５２８を生成し、記憶する。
【０１２０】
図に示すように、フォント認識システム５０４は、フォント識別器５２２を含む。フォント識別器５２２は、入力テキスト画像内部の入力フォントを受け取り、トレーニングされたフォント認識ニューラルネットワーク５１０を使用して入力フォントを識別することができる。詳細には、フォント識別器５２２は、トレーニングされたフォント認識ニューラルネットワーク５１０に入力テキスト画像を引き渡すことにより、入力テキスト画像内部の入力テキストに関する１つまたは複数のフォント特徴ベクトルを識別する。さらに、フォント識別器５２２は、これまでに説明したように、入力フォントの１つまたは複数の特徴ベクトルとフォント特徴ベクトル５２８を比較して、入力フォントに関するフォントを識別する（たとえば、フォント確率ベクトルを生成する）。さらにフォント識別器５２２は、識別したフォントを、たとえば入力テキスト画像を提出したユーザに提供する。
【０１２１】
フォント認識システム５０４の構成要素５０６〜５２８の各々は、ソフトウェア、ハードウェア、または両方を含むことができる。たとえば、構成要素５０６〜５２８は、コンピュータ可読記憶媒体に記憶され、かつクライアント機器またはサーバ機器などの１つまたは複数のコンピューティング機器のプロセッサにより実行可能な１つまたは複数の命令を含むことができる。１つまたは複数のプロセッサにより実行されたとき、フォント認識システム５０４のコンピュータ実行可能命令は、本明細書で説明する特徴学習法を１つまたは複数のコンピューティング機器に遂行させることができる。あるいは、構成要素５０６〜５２８は、ある種の関数、または関数のグループを遂行するための専用処理機器などのハードウェアを含むことができる。あるいは、フォント認識システム５０４の構成要素５０６〜５２８は、コンピュータ実行可能命令とハードウェアの組合せを含むことができる。
【０１２２】
さらに、フォント認識システム５０４の構成要素５０６〜５２８を、たとえば、１つもしくは複数のオペレーティングシステムとして、１つもしくは複数のスタンドアロンのアプリケーションとして、アプリケーションの１つもしくは複数のモジュールとして、１つもしくは複数のプラグインとして、１つもしく複数のライブラリ関数、または他のアプリケーションにより呼び出されてもよい関数として、および／またはクラウド・コンピューティング・モデルとして実装してもよい。したがって、構成要素５０６〜５２８を、デスクトップアプリケーションまたは移動体アプリケーションなどのスタンドアロンのアプリケーションとして実装してもよい。さらに、構成要素５０６〜５２８を、遠隔サーバ上にホスティングされた１つまたは複数のウェブに基づくアプリケーションとして実装してもよい。構成要素５０６〜５２８を、同じく一揃いの移動体機器アプリケーション、すなわち「ａｐｐ」に実装してもよい。例証するために、構成要素５０６〜５２８を、ＡＤＯＢＥ（登録商標）  ＴＹＰＥＫＩＴ（登録商標）、ＡＤＯＢＥ（登録商標）  ＩＮＤＥＳＩＧＮ（登録商標）、ＡＤＯＢＥ（登録商標）  ＡＣＲＯＢＡＴ（登録商標）、ＡＤＯＢＥ（登録商標）  ＩＬＬＵＳＴＲＡＴＯＲ（登録商標）、ＡＤＯＢＥ（登録商標）  ＰＨＯＴＯＳＨＯＰ（登録商標）、ＡＤＯＢＥ（登録商標）  ＣＲＥＡＴＩＶＥ  ＣＬＯＵＤ（登録商標）のソフトウェアを含むがそれらに限定されないアプリケーションに実装してもよい。「ＡＤＯＢＥ」、「ＩＮＤＥＳＩＧＮ」、「ＡＣＲＯＢＡＴ」、「ＩＬＬＵＳＴＲＡＴＯＲ」、「ＰＨＯＴＯＳＨＯＰ」、および「ＣＲＥＡＴＩＶＥ  ＣＬＯＵＤ」はいずれも米国および／または他の国々のＡｄｏｂｅ  Ｓｙｓｔｅｍ  Ｉｎｃｏｒｐｏｒａｔｅｄの登録商標または商標である。
【０１２３】
図６は、１つまたは複数の実施形態による、フォント認識システム５０４を実装してもよい環境６００の概略図を示す。１つまたは複数の実施形態では、環境６００は、１つまたは複数のサーバ機器６０２および１つまたは複数のクライアント機器６０４ａ、６０４ｂを含むさまざまなコンピューティング機器を含む。さらに環境６００は、ネットワーク６０６を含む。ネットワーク６０６は、コンピューティング機器が通信することができる任意の適切なネットワークであってもよい。ネットワークの例を図１１に関して以下でより詳細に論じる。
【０１２４】
図６に示すように、環境６００は、図１１に関して以下で説明するコンピューティング機器の１つまたは複数などの任意のコンピューティング機器を備えてもよい１つまたは複数のサーバ機器６０２を含む。さらに１つまたは複数のサーバ機器６０２は、すでに説明したフォント管理システム５０２およびフォント認識システム５０４を含む。たとえば、上記で説明したように、フォント認識システム５０４は、フォント認識ニューラルネットワークをトレーニングし、適用して、テキスト画像で使用されたフォント（たとえば、日本語フォント）を正確に識別することができる。
【０１２５】
さらに、環境６００は、１つまたは複数のクライアント機器６０４ａ、６０４ｂを含む。クライアント機器６０４ａ、６０４ｂは、図１１に関して以下で説明するコンピューティング機器などの任意のコンピューティング機器を備えてもよい。上記で説明したように、１つまたは複数のクライアント機器６０４ａ、６０４ｂは、トレーニングされたフォント認識ニューラルネットワークを採用して、入力テキスト画像内部のフォントを識別することができる。
【０１２６】
図示するように、１つまたは複数の実施形態では、１つまたは複数のサーバ機器６０２は、フォント認識システム５０４のすべてまたは一部分を含むことができる。詳細には、フォント認識システム５０４は、１つもしくは複数のサーバ機器６０２上で走るアプリケーション、または１つもしくは複数のサーバ機器６０２からダウンロードすることができるソフトウェアアプリケーションの一部分を備えることができる。たとえば、フォント認識システム５０４は、１つまたは複数のサーバ機器６０２上にホスティングされたコンテンツとクライアント機器６０４ａが対話することができるようにするウェブ・ホスティング・アプリケーションを含むことができる。例証するために、環境６００の１つまたは複数の実施形態では、クライアント機器６０４ａは、１つまたは複数のサーバ機器６０２がサポートするウェブページにアクセスする。詳細には、クライアント機器６０４ａは、１つまたは複数のサーバ機器６０２でホスティングされたウェブページまたはウェブサイト内部のテキスト画像のフォントにユーザがアクセスし、それを見て、選択し、および／または識別することができるようにするアプリケーションを走らせることができる（たとえば、ウェブページにより、ユーザは入力フォントを含むテキスト画像を提供し、入力フォントの識別を確実に受け取ることが可能になる）。
【０１２７】
図６は、１つまたは複数のサーバ機器６０２、クライアント機器６０４ａ、６０４ｂ、およびネットワーク６０６の特定の配置を示すが、さまざまな配置がさらに可能である。たとえば、図６は、ネットワーク６０６を介して１つまたは複数のサーバ機器６０２と通信する１つまたは複数のクライアント機器６０４ａ、６０４ｂを示すが、１つまたは複数の実施形態では、単一のクライアント機器が、ネットワーク６０６をバイパスして１つまたは複数のサーバ機器６０２と直接通信してもよい。
【０１２８】
同様に、さまざまな構成要素を有するとして図６の環境６００について描写しているが、環境６００は、追加のまたは代わりの構成要素を有してもよい。たとえば、フォント認識システム５０４を複数のコンピューティング機器上に実装することができる。詳細には、フォント認識システム５０４を１つまたは複数のサーバ機器６０２により全部実装してもよい、またはクライアント機器６０４ａにより全部実装してもよい。あるいは、フォント認識システム５０４を、（たとえば、１つまたは複数のサーバ機器６０２および１つまたは複数のクライアント機器６０４ａ、６０４ｂを利用して）複数の機器または構成要素にわたり実装してもよい。
【０１２９】
次に、図７および図８を参照すると、フォント認識システムの実施形態の評価に関して詳細をさらに提供する。詳細には、図７は、最近のシステムと本明細書で開示するフォント認識システムの１つまたは複数の実施形態との間のフォント特徴マップの比較を示す。さらに、図８は、最近のシステムと本明細書で開示するフォント認識システムの１つまたは複数の実施形態との間のフォント認識精度を比較する棒グラフを示す。
【０１３０】
図７は、トリプレット損失を用いずに（たとえば、トリプレット・ニューラル・ネットワークを採用することなしに）トレーニングされたフォント特徴の第１のフォント特徴マップ７１０と、トリプレット損失を用いてトレーニングされたフォント特徴の第２のフォント特徴マップ７２０との間の２次元の視覚的比較を示す。より具体的には、図７のフォント特徴マップは、１０のフォントに関するニューラルネットワークの最終全結合層からのフォント特徴の２次元可視化を提供する。Ｔ−ＳＮＥツールを使用して、対応するニューラルネットワークそれぞれの最終全結合層のフォント特徴マップを得た。
【０１３１】
第１のフォント特徴マップ７１０は、最近のまたは最新式フォント分類システムを表し、第２のフォント特徴マップ７２０は、本明細書で開示するフォント認識システムにより提供された改善を表す。第１のフォント特徴マップ７１０に示すように、同じフォントは、特徴マップ全体を通して複数の位置にクラスタ化されている。例証するために、円７１２ａ、７１２ｂ、および７１２ｃで示す３つの領域は、同じフォントのクラスタを示す。対照的に、第２のフォント特徴マップ７２０は、同じフォントを単一領域７２２でクラスタ化する。
【０１３２】
本明細書で開示するフォント認識システムは、一部は、上記で説明したトリプレット・ニューラル・ネットワークがより弁別力があるフォント認識ニューラルネットワークをもたらすので、最近のシステムよりもよりよく作動する。さらに、トレーニングされたフォント認識ニューラルネットワークは、グリフ内容の好ましくない副作用（たとえば、クラス内変動）を取り除くように、より汎化される。
【０１３３】
第２のフォント特徴マップ７２０にさらに示すように、同じフォント特徴が複数のグループではなく単一グループにグループ化されるので、クラスタの総数は低減される。たとえば、第１のフォント特徴マップ７１０は、ほぼ１８のフォントクラスタを含むが、第２のフォント特徴マップ７２０は、ほぼ１２のクラスタを含む。したがって、フォントを識別するとき、より少ないフォントクラスタは、より高い精度をもたらす。
【０１３４】
例証するために、上記で説明したように、入力フォントの特徴ベクトルと既知フォントの特徴ベクトルを比較する。したがって、フォント特徴マップが既知フォントの特徴ベクトルを含む場合、フォント認識システムは、フォント特徴マップ内部の入力フォントの特徴ベクトルをプロットして、入力フォントの特徴ベクトルが、特徴ベクトルのどのクラスタと最もぴったりと合うかを判断する。第２のフォント特徴マップ７２０のクラスタのほうが、第１のフォント特徴マップ７１０よりもよりよく規定され、集中しているので、本明細書で説明するフォント認識システムは、入力フォントをよりよく識別し、提供する。
【０１３５】
上述のように、図８は、最近のシステムと本明細書で開示するフォント認識システムの１つまたは複数の実施形態との間のフォント認識精度を比較する棒グラフ８００を示す。たとえば、棒グラフ８００は、最近の最新式システム（網掛けなしで示す）と本明細書で開示するフォント認識システムの実施形態（網掛けで示す）の有効性の間の評価を示す。
【０１３６】
具体的には、棒グラフ８００は、トレーニングされたニューラルネットワークが正しく認識する試験データ（たとえば、入力テキスト画像）の精度パーセンテージを示す。図に示すように、棒グラフ８００は、ニューラルネットワークをトレーニングするために使用するトレーニング・フォント・セットに含まれる同じフォント（すなわち、「漢字」）を有する日本語の漢字フォントの入力テキスト画像に関する第１の比較８０２を含む。さらに、棒グラフ８００は、トレーニング・フォント・セットに含まれない日本語の漢字フォント（すなわち、「分からなかった漢字」）の入力テキスト画像に関する第２の比較８０４を含む。さらに、棒グラフ８００は、最初の２つの比較を組み合わせる第３の比較８０６を含む。
【０１３７】
比較の各々では、本開示で説明するフォント認識システムは、最近のシステムよりも性能が優れている。図示するように、本明細書で説明するシステムは、総合精度をほぼ３．６％点改善し、これは著しい改善である。本明細書で説明するフォント認識システムは、詳細には第２の比較８０４で、分からなかった漢字に関して最近のシステムよりも性能が優れており、本明細書で説明するフォント認識システムは、最近のシステムよりもよりよく汎化することを示す。上述のように、本明細書で説明するフォント認識システムは、フォント認識ニューラルネットワークをトレーニングするとき、トリプレット・ニューラル・ネットワークを採用することによって、汎化を改善し、分からなかったフォントをよりよく識別する。別様に述べると、本明細書で説明するフォント認識システムは、トリプレット監視を採用して、グリフ内容に対してあいまいなままであるが、フォントをよりよく弁別する。
【０１３８】
注釈として、図８は、本明細書で説明するフォント認識システムと最近の最新式フォント分類システムとの間の比較を示す。従来のフォント認識システムと比較したとき、本明細書で説明するフォント認識システムは、これらの従来のシステムよりもさらに性能が優れている。上述のように、従来のシステムは、日本語フォントなどの、クラス内変動を含むフォントに対してフォント分類を不完全に遂行する。
【０１３９】
図１〜図８、対応するテキスト、および例は、フォント認識システムのいくつかの異なる方法、システム、機器、および非一時的コンピュータ可読媒体を提供する。前述に加えて、１つまたは複数の実施形態についてもまた、特定の結果を達成するための活動を備えるフローチャートに関して説明することができる。たとえば、図９および図１０を、より多くの、またはより少ない活動で遂行してもよい。さらに、異なる順序で活動を遂行してもよい。さらに、本明細書で説明する活動を繰り返しても、互いに並列に、または同じ活動もしくは類似する活動の異なるインスタンスと並列に遂行してもよい。
【０１４０】
言及したように、図９は、１つまたは複数の実施形態による、トリプレット損失を使用してフォント認識ニューラルネットワークをトレーニングしてデジタルフォントを分類するための一連の活動９００の流れ図を示す。図９は、一実施形態による活動を示すが、代わりの実施形態は、図９に示す活動のいずれかを省略する、それに追加する、それを並べ替える、および／または修正してもよい。図９の活動を方法の一部として遂行することができる。あるいは、非一時的コンピュータ可読媒体は、１つまたは複数のプロセッサにより実行されたとき、コンピューティング機器に図９の活動を遂行させる命令を備えることができる。いくつかの実施形態では、システムは、図９の活動を遂行することができる。
【０１４１】
１つまたは複数の実施形態では、一連の活動９００を、コンピューティング機器５００または１つもしくは複数のサーバ機器６０２などの１つまたは複数のコンピューティング機器上に実装する。さらにいくつかの実施形態では、一連の活動９００を、電子文書を作成または編集するために、デジタル環境に実装する。たとえば、一連の活動９００を、さまざまなデジタルフォントのテキストを含む複数のテキスト画像を含むトレーニング・フォント・セットを記憶するメモリを有するコンピューティング機器上に実装する。いくつかの実施形態では、テキスト画像のトレーニング・フォント・セットは、日本語フォントグリフを含む。
【０１４２】
一連の活動９００は、トレーニング・フォント・セットからフォントトリプレットを生成する活動９１０を含む。詳細には、活動９１０は、アンカーテキスト画像、正例テキスト画像、および負例テキスト画像をそれぞれ含む複数のフォントトリプレットを、トレーニング・フォント・セットに基づき生成するステップを伴うことができる。いくつかの実施形態では、活動９１０は、フォントトリプレットごとに、第１のフォントの第１のテキストを伴うアンカーテキスト画像を生成するステップと、第１のテキストと異なる、第１のフォントの第２のテキストを伴う正例テキスト画像を生成するステップと、第１のフォントと異なる第２のフォントの第１のテキストを伴う負例テキスト画像を生成するステップとを含む。１つまたは複数の実施形態では、活動９１０は、生成したフォントトリプレットに伴うアンカーテキスト画像、正例テキスト画像、または負例テキスト画像の１つに雑音、ぼかし、回転または濃淡を追加するステップを含む。
【０１４３】
図に示すように、一連の活動９００はまた、フォント認識ニューラルネットワークを生成する活動９２０を含む。詳細には、活動９２０は、デジタルフォントを分類するように構成されたフォント認識ニューラルネットワークを生成するステップを伴うことができる。１つまたは複数の実施形態では、フォント認識ニューラルネットワークは、（ソフトマックス損失などの）フォント分類損失を採用する畳込みニューラルネットワークである。さらに、活動９２０は、ヒンジ損失関数を採用するトリプレット・ニューラル・ネットワークを生成するステップを伴うことができる。
【０１４４】
図に示すように、一連の活動９００はまた、トリプレット・ニューラル・ネットワークを使用してトリプレット損失を最小にすることによりフォント認識ニューラルネットワークをトレーニングする活動９３０を含む。さまざまな実施形態では、トリプレット損失は、正例テキスト画像に関する特徴ベクトルとアンカーテキスト画像の特徴ベクトルの間の距離を最小にしようとするが、その一方で同時に、負例テキスト画像に関する特徴ベクトルとアンカーテキスト画像の特徴ベクトルの間の距離を増大させようとする。１つまたは複数の実施形態では、活動９３０は、トリプレット損失およびフォント分類損失を共に最小にすることによりフォント認識ニューラルネットワークをトレーニングするステップを含む。
【０１４５】
一連の活動９００はまた、いくつかの追加活動を含むことができる。１つまたは複数の実施形態では、一連の活動９００は、エンド・ツー・エンド学習および誤差逆伝播に基づきトリプレット・ニューラル・ネットワークのヒンジ損失関数を最小にするとき、同時にソフトマックス損失関数を最小にする活動を含む。１つまたは複数の実施形態では、フォント分類損失の畳込みニューラルネットワークは、トリプレット・ニューラル・ネットワークの３つの複製順伝播型ニューラルネットワークが共有するパラメータを生成する。たとえば、さまざまな実施形態では、３つの複製順伝播型ニューラルネットワークの各々は、最初にトレーニングされたフォント認識ニューラルネットワークのコピーであるが、トリプレットと異なる入力テキスト画像を受け取る。
【０１４６】
いくつかの実施形態では、一連の活動９００は、入力デジタルフォントを含む入力テキスト画像を受け取る活動、トレーニングされたフォント認識ニューラルネットワークを使用して入力フォントに関する特徴ベクトルを生成する活動、フォント認識ニューラルネットワークを使用して、入力デジタルフォントの特徴ベクトルと既知のデジタルフォントの特徴ベクトルの比較に基づき入力デジタルフォントに関するフォント確率ベクトルを生成する活動、フォント確率ベクトルに基づき入力デジタルフォントを識別する活動、および識別した入力デジタルフォントをコンピューティング機器またはユーザに提示する活動を含む。いくつかの実施形態では、入力テキスト画像は、トレーニング・フォント・セットに含まれないテキストを含む。
【０１４７】
すでに言及したように、図１０は、１つまたは複数の実施形態による、トレーニングされたフォント認識ニューラルネットワークを使用して入力画像内の入力フォントを識別するための一連の活動１０００の流れ図を示す。図１０は、一実施形態による活動を示すが、代わりの実施形態は、図１０に示す活動のいずれかを省略する、それに追加する、それを並べ替える、および／または修正してもよい。図１０の活動を、方法の一部として遂行することができる。あるいは、非一時的コンピュータ可読媒体は、１つまたは複数のプロセッサにより実行されたとき、コンピューティング機器に図１０の活動を遂行させる命令を備えることができる。１つまたは複数の実施形態では、システムは、図１０の活動を遂行することができる。いくつかの実施形態では、一連の活動１０００を、コンピューティング機器５００または１つもしくは複数のサーバ機器６０２などの１つまたは複数のコンピューティング機器上のコンピューティングシステムにより実装する。
【０１４８】
図に示すように、一連の活動１０００は、入力デジタルフォントを含む入力テキスト画像を受け取る活動１０１０を含む。１つまたは複数の実施形態では、活動１０１０は、ユーザおよび／またはアプリケーションから入力テキスト画像を受け取るステップを含む。いくつかの実施形態では、以下で説明する入力デジタルフォントおよび既知のデジタルフォントは、日本語デジタルフォントを含む。
【０１４９】
一連の活動１０００はまた、トリプレット損失およびフォント分類損失を共に最小にすることによりトレーニングされたフォント認識ニューラルネットワークを使用して、入力デジタルフォントに関する特徴ベクトルを決定する活動１０２０を含む。詳細には、トリプレット損失は、正例テキスト画像に関する特徴ベクトルとアンカーテキスト画像の特徴ベクトルの間の距離を最小にしようとするが、その一方で同時に、負例テキスト画像に関する特徴ベクトルとアンカーテキスト画像の特徴ベクトルの間の距離を増大させようとする。いくつかの実施形態では、フォント認識ニューラルネットワークは、畳込みニューラルネットワークであり、フォント分類損失は、畳込みニューラルネットワークからの出力を受け取るソフトマックス損失関数を採用し、トリプレット・ニューラル・ネットワークは、フォント認識ニューラルネットワークに基づく３つの複製順伝播型ニューラルネットワークを含み、トリプレット損失は、トリプレット・ニューラル・ネットワークからの出力を受け取るヒンジ損失関数を採用する。
【０１５０】
さらに、一連の活動１０００は、トレーニングされたフォント認識ニューラルネットワークを使用して入力デジタルフォントを識別する活動１０３０を含む。詳細には、活動１０３０は、入力デジタルフォントの特徴ベクトルと、トレーニングされたフォント認識ニューラルネットワークを使用して生成した、既知のデジタルフォントの特徴ベクトルを比較することにより、入力デジタルフォントを識別するステップを伴うことができる。いくつかの実施形態では、活動１０３０は、入力デジタルフォントの特徴ベクトルと、既知のデジタルフォントの各々に対応する平均特徴表現を比較するステップを含む。さらに別の実施形態では、活動１０３０は、入力デジタルフォントの特徴ベクトルから最も短い距離を有する平均特徴表現を有する既知のデジタルフォントを選択するステップを含む。
【０１５１】
一連の活動１０００はまた、いくつかの追加活動を含むことができる。１つまたは複数の実施形態では、一連の活動１０００は、識別した入力デジタルフォントをユーザに提示する活動を含む。さまざまな実施形態では、入力テキスト画像は、既知のデジタルフォントに関連するトレーニング・フォント・セットに含まれないテキストを含む。
【０１５２】
用語「デジタル環境」は、本明細書で使用するとき、一般にたとえば、スタンドアロンのアプリケーション（たとえば、コンピューティング機器上で走っているパーソナルコンピュータまたは移動体のアプリケーション）として、アプリケーションの要素として、アプリケーションのためのプラグインとして、１つもしくは複数のライブラリ関数として、コンピューティング機器として、および／またはクラウド・コンピューティング・システムとして実装された環境を指す。デジタル媒体環境により、フォント認識システムは、本明細書で説明するように、フォント認識ニューラルネットワークを共にトレーニングし、採用することができるようになる。
【０１５３】
本開示の実施形態は、たとえば、以下でより詳細に論じるように、１つまたは複数のプロセッサおよびシステムメモリなどのコンピュータハードウェアを含む専用および汎用のコンピュータを備えても、利用してもよい。本開示の範囲に入る実施形態はまた、コンピュータ実行可能命令および／またはデータ構造を移送または記憶するための物理的コンピュータ可読媒体および他のコンピュータ可読媒体を含む。詳細には、本明細書で説明するプロセッサの１つまたは複数を、少なくとも一部は、非一時的コンピュータ可読媒体に埋め込まれ、かつ１つまたは複数のコンピューティング機器（たとえば、本明細書で説明する媒体内容アクセス機器のいずれか）により実行可能な命令として実装してもよい。一般に、プロセッサ（たとえば、マイクロプロセッサ）は、非一時的コンピュータ可読媒体（たとえば、メモリ）から命令を受け取り、それらの命令を実行し、それにより、本明細書で説明する処理の１つまたは複数を含む１つまたは複数の処理を遂行する。
【０１５４】
コンピュータ可読媒体は、汎用または専用のコンピュータがアクセスすることができる任意の利用可能な媒体とすることができる。コンピュータ実行可能命令を記憶するコンピュータ可読媒体は、非一時的コンピュータ可読記憶媒体（機器）である。コンピュータ実行可能命令を移送するコンピュータ可読媒体は、伝送媒体である。したがって、限定としてではなく例として、本開示の実施形態は、少なくとも２つのはっきりと異なる種類のコンピュータ可読媒体を、すなわち、非一時的コンピュータ可読記憶媒体（機器）および伝送媒体を備えることができる。
【０１５５】
非一時的コンピュータ可読記憶媒体（機器）は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、ソリッド・ステート・ドライブ（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ、「ＳＳＤ」）（たとえば、ＲＡＭに基づく）、フラッシュメモリ、相変化メモリ（ｐｈａｓｅ−ｃｈａｎｇｅ  ｍｅｍｏｒｙ、「ＰＣＭ」）、他のタイプのメモリ、他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置、またはコンピュータ実行可能命令もしくはデータ構造の形で所望のプログラムコード手段を記憶するために使用することができ、かつ汎用もしくは専用のコンピュータがアクセスすることができる任意の他の媒体を含む。
【０１５６】
「ネットワーク」は、コンピュータシステムおよび／またはモジュールおよび／または他の電子機器の間で電子データの移送を可能にする１つまたは複数のデータリンクとして規定される。ネットワークまたは別の通信接続（有線、無線、または有線もしくは無線の組合せ）を介してコンピュータに情報を転送または提供するとき、コンピュータは、接続を伝送媒体と適切にみなす。伝送媒体は、コンピュータ実行可能命令またはデータ構造の形で所望のプログラムコード手段を移送するために使用することができ、かつ汎用または専用のコンピュータがアクセスすることができるネットワークおよび／またはデータリンクを含むことができる。上記の組合せもまた、コンピュータ可読媒体の範囲に含まれるべきである。
【０１５７】
さらに、さまざまなコンピュータシステム構成要素に届くと、コンピュータ実行可能命令またはデータ構造の形のプログラムコード手段を、伝送媒体から非一時的コンピュータ可読記憶媒体（機器）に（またはその逆も同様である）自動的に転送することができる。たとえば、ネットワークまたはデータリンクを介して受け取ったコンピュータ実行可能命令またはデータ構造を、ネットワーク・インタフェース・モジュール（たとえば、「ＮＩＣ（ｎｅｔｗｏｒｋ  ｉｎｔｅｒｆａｃｅ  ｃｏｎｔｒｏｌｌｅｒ）」）内部のＲＡＭにバッファリングし、次いで最終的に、コンピュータシステムＲＡＭに、および／またはコンピュータシステムのより揮発しにくいコンピュータ記憶媒体（機器）に転送することができる。したがって、さらに（またはそれどころか主として）伝送媒体を利用するコンピュータシステム構成要素に、非一時的コンピュータ可読記憶媒体（機器）を含むことができることを理解されたい。
【０１５８】
コンピュータ実行可能命令は、たとえば、プロセッサにより実行されたとき、ある種の機能または機能のグループを汎用コンピュータ、専用コンピュータ、または専用処理機器に遂行させる命令およびデータを備える。いくつかの実施形態では、汎用コンピュータがコンピュータ実行可能命令を実行して、汎用コンピュータを本開示の要素を実装する専用コンピュータにする。コンピュータ実行可能命令は、たとえば、バイナリ、アッセンブリ言語などの中間形式の命令、またはさらにはソースコードであってもよい。構造的特徴および／または方法論的活動に特有な言語で主題について説明してきたが、添付の特許請求の範囲で規定される主題は、説明した特徴、または上記で説明した活動に必ずしも限定されないことを理解されたい。むしろ、説明した特徴および活動は、特許請求の範囲を実装する形態の例として開示されている。
【０１５９】
本開示を、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、メッセージプロセッサ、ハンドヘルド機器、マルチ・プロセッサ・システム、マイクロプロセッサに基づくまたはプログラム可能な家庭用電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、携帯電話、ＰＤＡ、タブレット、ページャ、ルータ、スイッチなどを含む、多くのタイプのコンピュータシステム構成を備えるネットワークコンピューティング環境で実施してもよいことを当業者は認識されよう。本開示を、同じくネットワークを通して（有線データリンク、無線データリンクにより、または有線および無線のデータリンクの組合せにより）連結されたローカルおよび遠隔のコンピュータシステムが両方ともタスクを遂行する分散システム環境で実施してもよい。分散システム環境では、ローカルおよび遠隔のメモリ記憶装置の両方にプログラムモジュールを配置してもよい。
【０１６０】
本開示の実施形態を、同じくクラウドコンピューティング環境に実装することができる。本明細書で使用するとき、用語「クラウドコンピューティング」は、構成可能なコンピューティング資源の共有プールへのオン・デマンド・ネットワーク・アクセスを可能にするためのモデルを指す。たとえば、市場でクラウドコンピューティングを採用して、構成可能なコンピューティング資源の共有プールへの、偏在的で便利なオン・デマンド・アクセスを提供することができる。構成可能なコンピューティング資源の共有プールを、仮想化を介して迅速に準備し、少ない管理努力またはサービスプロバイダの協力で公開し、次いで、それに従って規模を調整することができる。
【０１６１】
クラウド・コンピューティング・モデルを、たとえば、オン・デマンド・セルフ・サービス、広域ネットワークアクセス、資源プーリング、迅速な融通性、度数制などのようなさまざまな特性から構成することができる。クラウド・コンピューティング・モデルはまた、たとえば、「ＳａａＳ（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）」、「ＰａａＳ（Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）」、および「ＩａａＳ（Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）」などのさまざまなサービスモデルを見せることができる。クラウド・コンピューティング・モデルを、プライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウドなどのような異なる導入モデルを使用してさらに導入することができる。さらに、本明細書で使用するとき、用語「クラウドコンピューティング環境」は、クラウドコンピューティングを採用する環境を指す。
【０１６２】
図１１は、上記で説明した処理の１つまたは複数を遂行するように構成されてもよい代表的コンピューティング機器１１００の構成図を示す。コンピューティング機器１１００などの１つまたは複数のコンピューティング機器は、上記で説明したコンピューティング機器（たとえば、コンピューティング機器５００、１つまたは複数のサーバ機器６０２、およびクライアント機器６０４ａ、６０４ｂ）を表してもよいことを認識されよう。１つまたは複数の実施形態では、コンピューティング機器１１００は、移動体機器（たとえば、携帯電話、スマートホン、ＰＤＡ、タブレット、ラップトップ、カメラ、トラッカ（ｔｒａｃｋｅｒ）、ウオッチ、ウェアラブル機器など）であってもよい。いくつかの実施形態では、コンピューティング機器１１００は、非移動体機器（たとえば、デスクトップコンピュータまたは別のタイプのクライアント機器）であってもよい。さらに、コンピューティング機器１１００は、クラウドに基づく処理および記憶能力を含むサーバ機器であってもよい。
【０１６３】
図１１に示すように、コンピューティング機器１１００は、１つまたは複数のプロセッサ１１０２、メモリ１１０４、記憶装置１１０６、入出力（「Ｉ／Ｏ」）インタフェース１１０８、および通信インフラストラクチャ（たとえば、バス１１１２）によって通信可能に結合してもよい通信インタフェース１１１０を含むことができる。図１１にはコンピューティング機器１１００を示すが、図１１に示す構成要素は、限定することを意図するものではない。追加のまたは代わりの構成要素を、他の実施形態で使用してもよい。さらに、ある種の実施形態では、コンピューティング機器１１００は、図１１に示す構成要素よりも少ない構成要素を含む。次に、図１１に示すコンピューティング機器１１００の構成要素について、さらに詳細に説明する。
【０１６４】
特定の実施形態では、１つまたは複数のプロセッサ１１０２は、コンピュータプログラムを作り上げる命令などの命令を実行するためのハードウェアを含む。限定ではなく一例として、命令を実行するために、１つまたは複数のプロセッサ１１０２は、内部レジスタ、内部キャッシュ、メモリ１１０４、または記憶装置１１０６から命令を取り出し（またはフェッチし）、命令を復号し、実行してもよい。
【０１６５】
コンピューティング機器１１００は、１つまたは複数のプロセッサ１１０２に結合したメモリ１１０４を含む。データ、メタデータ、および１つまたは複数のプロセッサが実行するためのプログラムを記憶するために、メモリ１１０４使用してもよい。メモリ１１０４は、ランダム・アクセス・メモリ（Ｒａｎｄｏｍ−Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、「ＲＡＭ」）、読出し専用メモリ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ、「ＲＯＭ」）、ソリッド・ステート・ドライブ（「ＳＳＤ」）、フラッシュ、相変化メモリ（「ＰＣＭ」）、または他のタイプのデータ記憶領域などの、揮発性および不揮発性のメモリのうち１つまたは複数を含んでもよい。メモリ１１０４は、内部メモリであっても、分散メモリであってもよい。
【０１６６】
コンピューティング機器１１００は、データまたは命令を記憶するための記憶領域を含む記憶装置１１０６を含む。限定ではなく一例として、記憶装置１１０６は、上記で説明した非一時的記憶媒体を含むことができる。記憶装置１１０６は、ハード・ディスク・ドライブ（ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ、ＨＤＤ）、フラッシュメモリ、ユニバーサル・シリアル・バス（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ、ＵＳＢ）ドライブ、またはこれらもしくは他の記憶装置の組み合わせを含んでもよい。
【０１６７】
図に示すように、コンピューティング機器１１００は、ユーザがコンピューティング機器１１００に入力を提供し（ユーザがキーを打つなど）、コンピューティング機器１１００から出力を受け取り、他の方法でコンピューティング機器１１００との間でデータを転送することができるようにするように提供される、１つまたは複数のＩ／Ｏインタフェース１１０８を含む。これらのＩ／Ｏインタフェース１１０８は、マウス、キーパッドもしくはキーボード、タッチ画面、カメラ、光学スキャナ、ネットワークインタフェース、モデム、他の公知のＩ／Ｏ機器、またはそのようなＩ／Ｏインタフェース１１０８の組合せを含んでもよい。タッチ画面をスタイラスまたは指で活動化してもよい。
【０１６８】
Ｉ／Ｏインタフェース１１０８は、グラフィックスエンジン、表示装置（たとえば、表示画面）、１つまたは複数の出力ドライバ（たとえば、表示ドライバ）、１つまたは複数のオーディオスピーカ、および１つまたは複数のオーディオドライバを含むがそれらに限定されない、ユーザに出力を提示するための１つまたは複数の機器を含んでもよい。ある種の実施形態では、Ｉ／Ｏインタフェース１１０８は、ユーザに提示するために表示装置にグラフィックデータを提供するように構成される。グラフィックデータは、特定の実装に役立つ場合があるような、１つまたは複数のグラフィカル・ユーザ・インタフェースおよび／または他のグラフィックの内容の表現であってもよい。
【０１６９】
コンピューティング機器１１００は、通信インタフェース１１１０をさらに含むことができる。通信インタフェース１１１０は、ハードウェア、ソフトウェア、または両方を含むことができる。通信インタフェース１１１０は、コンピューティング機器と、１つもしくは複数の他のコンピューティング機器、または１つもしくは複数のネットワークとの間で通信（たとえば、パケットに基づく通信など）のための１つまたは複数のインタフェースを提供する。限定ではなく一例として、通信インタフェース１１１０は、イーサネット（登録商標）もしくは他の有線に基づくネットワークと通信するためのネットワーク・インタフェース・コントローラ（ＮＩＣ）もしくはネットワークアダプタ、またはＷｉ−Ｆｉなどの無線ネットワークと通信するための無線ＮＩＣ（ｗｉｒｅｌｅｓｓ  ＮＩＣ、ＷＮＩＣ）もしくは無線アダプタを含んでもよい。コンピューティング機器１１００は、バス１１１２をさらに含むことができる。バス１１１２は、コンピューティング機器１１００の構成要素を互いに接続する、ハードウェア、ソフトウェア、または両方を含むことができる。
【０１７０】
前述の明細では、本発明について、本発明の代表的実施形態を具体的に参照して説明してきた。１つまたは複数の本発明のさまざまな実施形態および様態について、本明細書で論じた詳細を参照して説明し、添付図面は、さまざまな実施形態を例示している。上記の説明および図面は、本発明を例証しており、本発明を限定していると解釈されるべきではない。本発明のさまざまな実施形態を完全に理解するために、数多くの特有の詳細について説明した。
【０１７１】
本発明の精神または本質的特性を逸脱することなく、他の特有の形態で本発明を具体化してもよい。説明する実施形態は、すべての点で例示的でしかなく、限定的ではないと考えられるべきである。たとえば、本明細書で説明する方法をより少ない、またはより多いステップ／活動で遂行してもよい、またはステップ／活動を異なる順序で遂行してもよい。さらに、本明細書で説明するステップ／活動を、繰り返してもよい、または互いに並列に、または同じもしくは類似するステップ／活動の異なるインスタンスと並列に遂行してもよい。したがって、本発明の範囲は、前述の説明によるのではなく、添付の特許請求の範囲により示される。特許請求の範囲の均等物の意味および範囲に入るすべての変更は、特許請求の範囲に包含されるべきである。
【符号の説明】
【０１７２】
２０１、２０２  フォント認識ニューラルネットワーク
２０４  テキスト画像
２０５  フォントトリプレット
２０５ａ  アンカーテキスト画像
２０５ｂ  正例テキスト画像
２０５ｃ  負例テキスト画像
２０６  下位ニューラルネットワーク層
２０８  上位ニューラルネットワーク層
２０８ａ  アンカーフォント分類器
２０８ｂ  正例フォント分類器
２０８ｃ  負例フォント分類器
２１０  損失層
２１２  フォント分類損失モデル
２１４  トリプレット損失モデル
２１６  組合せ損失モデル
２２２  トレーニングされたフォント認識ニューラルネットワーク
２２４  入力テキスト画像
２２６  識別されたフォント
３００  フォントトリプレット
３０２  アンカーテキスト画像
３０４  正例テキスト画像
３０６  負例テキスト画像
５００  コンピューティング機器
５０２  フォント管理システム
５０４  フォント認識システム
５０６  フォントマネージャ
５０８  フォント・トリプレット・ジェネレータ
５１０  フォント認識ニューラルネットワーク
５１２  畳込み層
５１４  上位層
５１６  損失層
５１８  フォント分類損失
５２０  トリプレット損失
５２２  フォント識別器
５２４  フォントデータベース
５２６  トレーニング・フォント・セット
５２８  フォント特徴ベクトル
６００  環境
６０２  サーバ機器
６０４ａ、６０４ｂ  クライアント機器
６０６  ネットワーク
７１０  第１のフォント特徴マップ
７１２ａ、７１２ｂ、７１２ｃ  同じフォントのクラスタ
７２０  第２のフォント特徴マップ
７２２  単一領域
８０２  第１の比較
８０４  第２の比較
８０６  第３の比較
１１００  コンピューティング機器
１１０２  プロセッサ
１１０４  メモリ
１１０６  記憶装置
１１０８  入出力（Ｉ／Ｏ）インタフェース
１１１０  通信インタフェース
１１１２  バス
【図１】
2019083002.tif 000008
【図２Ａ】
2019083002.tif 000009
【図２Ｂ】
2019083002.tif 000010
【図２Ｃ】
2019083002.tif 000011
【図３】
2019083002.tif 000012
【図４】
2019083002.tif 000013
【図５】
2019083002.tif 000014
【図６】
2019083002.tif 000015
【図７】
2019083002.tif 000016
【図８】
2019083002.tif 000017
【図９】
2019083002.tif 000018
【図１０】
2019083002.tif 000019
【図１１】
2019083002.tif 000020