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