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