(57)【要約】【課題】漢字などの種類の多い文字のための新たなフォントをより容易に作成することを可能とすること。【解決手段】複数のフォントについて、各フォントに含まれる文字の骨格を表す骨格データを記憶する記憶部と、上記複数のフォントについての骨格データを合成することにより、新たなフォントのための骨格データを生成する合成部と、を備える情報処理装置を提供する。上記情報処理装置は、上記合成部における骨格データの合成比率を調整するためのグラフィカルユーザインタフェース（ＧＵＩ）をユーザに提供するユーザインタフェース部、をさらに備えてもよい。 【選択図】図１
2012078600.tif 000002
【特許請求の範囲】
【請求項１】
複数のフォントについて、各フォントに含まれる文字の骨格を表す骨格データを記憶する記憶部と、
前記複数のフォントについての骨格データを合成することにより、新たなフォントのための骨格データを生成する合成部と、
を備える情報処理装置。
【請求項２】
前記情報処理装置は、
前記合成部における骨格データの合成比率を調整するためのグラフィカルユーザインタフェース（ＧＵＩ）をユーザに提供するユーザインタフェース部、
をさらに備える、請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、
前記複数のフォントについての注目される文字の骨格データが表す骨格を標本として、当該骨格に寄与する１つ以上の主成分を決定する分析部、
をさらに備え、
前記合成比率は、前記ＧＵＩを通じて調整される前記１つ以上の主成分の値に応じて決定される、
請求項２に記載の情報処理装置。
【請求項４】
前記ＧＵＩは、前記１つ以上の主成分の値を調整するためのスライダを含む、請求項３に記載の情報処理装置。
【請求項５】
前記情報処理装置は、
前記合成部により生成される前記新たなフォントのための骨格データが表す骨格に肉付けすることにより前記新たなフォントを生成する肉付け部、
をさらに備える、請求項１に記載の情報処理装置。
【請求項６】
各フォントの骨格データは、当該フォントに含まれる各文字を構成する１つ以上のストロークのストローク種別を含み、
前記肉付け部は、各ストローク種別と関連付けて定義される輪郭データに基づいて、前記新たなフォントのための骨格データが表す骨格に肉付けをする、
請求項５に記載の情報処理装置。
【請求項７】
前記ユーザインタフェース部は、前記輪郭データを編集するためのＧＵＩをユーザにさらに提供する、請求項６に記載の情報処理装置。
【請求項８】
前記情報処理装置は、
既存のフォントを解析することにより前記既存のフォントの骨格データを抽出する抽出部、
をさらに備える、請求項１に記載の情報処理装置。
【請求項９】
情報処理装置を制御するコンピュータを、
複数のフォントについて各フォントに含まれる文字の骨格を表す骨格データを記憶媒体から取得し、取得した前記複数のフォントについての骨格データを合成することにより、新たなフォントのための骨格データを生成する合成部、
として機能させるための、プログラム。
【請求項１０】
前記コンピュータを、
前記合成部における骨格データの合成比率を調整するためのＧＵＩをユーザに提供するユーザインタフェース部、
としてさらに機能させるための、請求項９に記載のプログラム。
【請求項１１】
前記コンピュータを、
前記複数のフォントについての注目される文字の骨格データが表す骨格を標本として、当該骨格に寄与する１つ以上の主成分を決定する分析部、
としてさらに機能させ、
前記合成比率は、前記ＧＵＩを通じて調整される前記１つ以上の主成分の値に応じて決定される、
請求項１０に記載のプログラム。
【請求項１２】
前記ＧＵＩは、前記１つ以上の主成分の値を調整するためのスライダを含む、請求項１１に記載のプログラム。
【請求項１３】
前記コンピュータを、
前記合成部により生成される前記新たなフォントのための骨格データが表す骨格に肉付けすることにより前記新たなフォントを生成する肉付け部、
としてさらに機能させるための、請求項９に記載のプログラム。
【請求項１４】
各フォントの骨格データは、当該フォントに含まれる各文字を構成する１つ以上のストロークのストローク種別を含み、
前記肉付け部は、各ストローク種別と関連付けて定義される輪郭データに基づいて、前記新たなフォントのための骨格データが表す骨格に肉付けをする、
請求項１３に記載のプログラム。
【請求項１５】
前記ユーザインタフェース部は、前記輪郭データを編集するためのＧＵＩをユーザにさらに提供する、請求項１４に記載のプログラム。
【請求項１６】
前記コンピュータを、
既存のフォントを解析することにより前記既存のフォントの骨格データを抽出する抽出部、
としてさらに機能させるための、請求項９に記載のプログラム。
【請求項１７】
情報処理装置において、
複数のフォントについて各フォントに含まれる文字の骨格を表す骨格データを記憶媒体から取得するステップと、
取得した前記複数のフォントについての骨格データを合成することにより、新たなフォントのための骨格データを生成するステップと、
を含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラム及び情報処理方法に関する。
【背景技術】
【０００２】
近年、インターネット上には、主にアルファベットを用いて欧文を記述するための様々な種類のフォントが公開されている。一方、和文を記述するために利用可能なフォントの種類は少なく、利用可能であっても高価である場合が多い。これは、日本語において使用される文字の種類が欧米の言語と比較して格段に多く存在しており、新たなフォントを設計及び作成するための負担が大きいためである。特に、漢字の種類は多く、例えばＵｎｉｃｏｄｅには約７万字の漢字が収録されている。このような状況は、例えば中国語についても同様であろう。
【０００３】
新たなフォントの設計に関連する技術として、下記特許文献１は、ユーザがペンタブレットで入力した手書き文字のストロークに基づいて、標準のフォントをユーザ個人の筆跡の特徴を反映した新たなフォントに変換する技術を提案している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−８５１３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１に記載された技術は、筆跡に依存しない新たなフォントを自由に作成できるものではない。また、個人の筆跡の特徴を反映したフォントは、一般に公開して他のユーザに利用させる目的にはあまり適さない。
【０００６】
そこで、本発明は、漢字などの種類の多い文字のための新たなフォントをより容易に作成することを可能とする、新規かつ改良された情報処理装置、プログラム及び情報処理方法を提供しようとするものである。
【課題を解決するための手段】
【０００７】
本発明のある実施形態によれば、複数のフォントについて、各フォントに含まれる文字の骨格を表す骨格データを記憶する記憶部と、上記複数のフォントについての骨格データを合成することにより、新たなフォントのための骨格データを生成する合成部と、を備える情報処理装置が提供される。
【０００８】
また、上記情報処理装置は、上記合成部における骨格データの合成比率を調整するためのグラフィカルユーザインタフェース（ＧＵＩ）をユーザに提供するユーザインタフェース部、をさらに備えてもよい。
【０００９】
また、上記情報処理装置は、上記複数のフォントについての注目される文字の骨格データが表す骨格を標本として、当該骨格に寄与する１つ以上の主成分を決定する分析部、をさらに備え、上記合成比率は、上記ＧＵＩを通じて調整される上記１つ以上の主成分の値に応じて決定されてもよい。
【００１０】
また、上記ＧＵＩは、上記１つ以上の主成分の値を調整するためのスライダを含んでもよい。
【００１１】
また、上記情報処理装置は、上記合成部により生成される上記新たなフォントのための骨格データが表す骨格に肉付けすることにより上記新たなフォントを生成する肉付け部、をさらに備えてもよい。
【００１２】
また、各フォントの骨格データは、当該フォントに含まれる各文字を構成する１つ以上のストロークのストローク種別を含み、上記肉付け部は、各ストローク種別と関連付けて定義される輪郭データに基づいて、上記新たなフォントのための骨格データが表す骨格に肉付けをしてもよい。
【００１３】
また、上記情報処理装置は、既存のフォントを解析することにより上記既存のフォントの骨格データを抽出する抽出部、をさらに備えてもよい。
【００１４】
また、本発明の別の実施形態によれば、情報処理装置を制御するコンピュータを、複数のフォントについて各フォントに含まれる文字の骨格を表す骨格データを記憶媒体から取得し、取得した上記複数のフォントについての骨格データを合成することにより、新たなフォントのための骨格データを生成する合成部、として機能させるためのプログラムが提供される。
【００１５】
また、上記プログラムは、上記コンピュータを、上記合成部における骨格データの合成比率を調整するためのＧＵＩをユーザに提供するユーザインタフェース部、としてさらに機能させてもよい。
【００１６】
また、上記プログラムは、上記コンピュータを、上記複数のフォントについての注目される文字の骨格データが表す骨格を標本として、当該骨格に寄与する１つ以上の主成分を決定する分析部、としてさらに機能させ、上記合成比率は、上記ＧＵＩを通じて調整される上記１つ以上の主成分の値に応じて決定されてもよい。
【００１７】
また、上記ＧＵＩは、上記１つ以上の主成分の値を調整するためのスライダを含んでもよい。
【００１８】
また、上記プログラムは、上記コンピュータを、上記合成部により生成される上記新たなフォントのための骨格データが表す骨格に肉付けすることにより上記新たなフォントを生成する肉付け部、としてさらに機能させてもよい。
【００１９】
また、各フォントの骨格データは、当該フォントに含まれる各文字を構成する１つ以上のストロークのストローク種別を含み、上記肉付け部は、各ストローク種別と関連付けて定義される輪郭データに基づいて、上記新たなフォントのための骨格データが表す骨格に肉付けをしてもよい。
【００２０】
また、上記ユーザインタフェース部は、上記輪郭データを編集するためのＧＵＩをユーザにさらに提供してもよい。
【００２１】
また、上記プログラムは、上記コンピュータを、既存のフォントを解析することにより上記既存のフォントの骨格データを抽出する抽出部、としてさらに機能させてもよい。
【００２２】
また、本発明の別の実施形態によれば、情報処理装置において、複数のフォントについて各フォントに含まれる文字の骨格を表す骨格データを記憶媒体から取得するステップと、取得した上記複数のフォントについての骨格データを合成することにより、新たなフォントのための骨格データを生成するステップと、を含む情報処理方法が提供される。
【発明の効果】
【００２３】
以上説明したように、本発明に係る情報処理装置、プログラム及び情報処理方法によれば、漢字などの種類の多い文字のための新たなフォントをより容易に作成することが可能となる。
【図面の簡単な説明】
【００２４】
【図１】一実施形態に係る情報処理装置の構成の一例を示すブロック図である。
【図２】既存のフォントから抽出される文字の骨格の一例について説明するための説明図である。
【図３】骨格データの修正の一例について説明するための説明図である。
【図４】骨格データの一例について説明するための第１の説明図である。
【図５】骨格データの一例について説明するための第２の説明図である。
【図６】骨格データ分析処理の一例について説明するための説明図である。
【図７】骨格合成画面の一例を示す説明図である。
【図８】輪郭データの一例について説明するための説明図である。
【図９】輪郭データ編集画面の一例を示す説明図である。
【図１０】一実施形態に係る骨格データ生成処理の流れの一例を示すフローチャートである。
【図１１】一実施形態に係る新規フォント生成処理の流れの一例を示すフローチャートである。
【図１２】一変形例に係るシステムの構成について説明するためのブロック図である。
【発明を実施するための形態】
【００２５】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付すことにより重複説明を省略する。
【００２６】
また、以下の順序にしたがって当該「発明を実施するための形態」を説明する。
１．一実施形態に係る装置の構成例
１−１．骨格データ生成部
１−２．骨格データベース
１−３．新規フォント生成部
２．一実施形態に係る処理の流れ
２−１．骨格データ生成処理
２−２．新規フォント生成処理
３．変形例
４．まとめ
【００２７】
＜１．一実施形態に係る装置の構成例＞
まず、図１〜図９を用いて、本発明の一実施形態に係る情報処理装置の構成の一例を説明する。本明細書において説明する情報処理装置は、例えば、ＰＣ（Personal  Computer）若しくはワークステーションなどの汎用的な情報処理装置、スマートフォン、携帯情報端末若しくはゲーム端末などの端末装置、又はデジタル家電機器などのその他の種類の装置であってもよい。
【００２８】
図１は、本実施形態に係る情報処理装置１００の構成の一例を示すブロック図である。図１を参照すると、情報処理装置１００は、骨格データ生成部１１０、骨格データベース（ＤＢ）１３０及び新規フォント生成部１４０を備える。
【００２９】
［１−１．骨格データ生成部］
骨格データ生成部１１０は、新たなフォントの作成のために使用される後述する骨格データを予め生成するための処理ブロックである。骨格データ生成部１１０は、既存フォントＤＢ１１４、骨格抽出部１１８及び骨格修正部１２２を含む。骨格抽出部１１８及び骨格修正部１２２は、骨格ＤＢ１３０と接続される。
【００３０】
（１）既存フォントＤＢ
既存フォントＤＢ１１４は、ハードディスク又は半導体メモリなどの記憶媒体を用いて、複数の既存のデジタルフォントについてのフォントデータ（以下、既存フォントデータという）を予め記憶している。フォントデータは、例えば、個々のグリフのデザインを表すビットマップ又は制御点座標などを文字コードごとに定義するグリフデータを含む。本実施形態では、情報処理装置１００が漢字のフォントについてのフォントデータを処理する例を主に説明する。しかしながら、後の説明から明らかであるように、本実施形態は、漢字以外のフォントについても同様に適用可能である。既存フォントＤＢ１１４により記憶される既存フォントデータは、例えば、市場で一般的に入手可能な任意のデジタルフォントについてのフォントデータであってよい。
【００３１】
（２）骨格抽出部
骨格抽出部１１８は、既存フォントＤＢ１１４により記憶されている既存フォントデータを読み込み、各フォントを解析することにより、各フォントに含まれる文字の骨格（skeleton）を表す骨格データを抽出する。例えば、既存のフォントの１つがビットマップフォントである場合には、骨格抽出部１１８は、当該フォントの各グリフのビットマップにＨｉｌｄｉｔｃｈ法又はＺｈａｎｇ  Ｓｕｅｎ法などの細線化（Thinning）アルゴリズムを適用することにより、骨格データを抽出することができる。また、例えば、既存のフォントの１つがスケーラブルフォントである場合には、骨格抽出部１１８は、当該フォントのフォントデータからストロークの位置座標等を収集することにより、骨格データを抽出することができる。さらに骨格抽出部１１８は、抽出した骨格データを構成する各ストロークの種類をストロークの形状に基づいて認識し、各ストロークにストローク種別を付与する。そして、骨格抽出部１１８は、複数の既存のデジタルフォントについての骨格データを、骨格ＤＢ１３０に記憶させる。
【００３２】
図２は、既存のフォントから抽出される文字の骨格の一例について説明するための説明図である。図２を参照すると、既存のフォントの１つであるフォントＦ１についての３つの文字のグリフ（図中上部）及び対応する３つの骨格（図中下部）が示されている。このうち、左の文字（文字コード＝１２８３８）の骨格は、３本の横線と１本の縦線を含む４つのストロークからなる。中央の文字（文字コード＝１３９００）の骨格は、３本の横線と１本の縦線と１つの点とを含む５つのストロークからなる。右の文字（文字コード＝１４７０５）の骨格は、５本の横線と３本の縦線と１つの点とを含む８つのストロークからなる。このような骨格を表現する骨格データの例について、後にさらに説明する。
【００３３】
（３）骨格修正部
骨格修正部１２２は、骨格抽出部１１８により抽出された骨格データを、必要に応じて修正する。例えば、一部の種類の既存のフォント（例えば明朝体など）は、グリフの中にいわゆる飾り（serif）を有する。この飾り部分は、細線化アルゴリズムにより１つのストロークとして誤認される可能性がある。この場合、骨格修正部１２２は、誤認された不要なストローク（例えば、所定の閾値よりも長さの短いストローク）を骨格データから削除してよい。また、骨格修正部１２２は、骨格データを手動で修正するためのユーザインタフェースを提供し、オペレータに手動で骨格データを修正させてもよい。
【００３４】
図３は、骨格データの修正の一例について説明するための説明図である。図３を参照すると、飾りを端部に有する文字（文字コード＝１２３９６）についての、修正前の骨格、及び骨格修正部１２２による修正後の骨格が示されている。図３の例において、修正前の骨格は、ストロークＳ０１に加えて、５つのストロークＳ０２〜Ｓ０６を含む。これら５つのストロークＳ０２〜Ｓ０６は、飾りを原因として誤認されたストロークである。骨格修正部１２２は、例えば、これらストロークＳ０２〜Ｓ０６を骨格データから削除し、ストロークとしてストロークＳ０１のみを含む骨格データを生成する。
【００３５】
［１−２．骨格データベース］
骨格ＤＢ１３０は、骨格抽出部１１８により抽出され、必要に応じて骨格修正部１２２により修正される複数のフォントについての骨格データを、記憶媒体を用いて記憶する。そして、骨格ＤＢ１３０は、新規フォント生成部１４０からの要求に応じて、記憶している骨格データを新規フォント生成部１４０へ出力する。
【００３６】
図４及び図５は、骨格データの一例について説明するための説明図である。図４を参照すると、骨格データ１３２の構成の一例が示されている。骨格データ１３２は、例えば、フォントＩＤ「Ｆ１」、フォント名「ＡＢＣ」である既存のフォント（以下、フォントＦ１という）についての骨格データを含む。フォントＦ１についての骨格データは、フォントＦ１に含まれる各文字を構成する１つ以上のストロークの各々についての、ストロークＩＤ、ストローク種別、始点、終点及び制御点という５つのデータ項目を有する。例えば、文字コード＝１３９００である文字（漢字の“玉”）は、それぞれストロークＩＤ＝ＳＴ０１、ＳＴ０２、ＳＴ０３、ＳＴ０４及びＳＴ０５である５つのストロークにより構成される。
【００３７】
ストロークＩＤは、１つの文字の中で各ストロークを一意に識別するための識別子である。ストローク種別は、ストロークの形状に関する種類を示す情報である。ストローク種別は、典型的には、予め固定的な数だけ定義される。そして、骨格抽出部１１８は、予め定義されたストローク種別のうち各ストロークに最も適合するストローク種別を、当該ストロークのストローク種別として付与する。例えば、文字コード１３９００のストロークＳ０１及びＳ０２のストローク種別は、「横線」である。また、文字コード１３９００のストロークＳ０５のストローク種別は、「点」である。始点及び終点は、各ストロークの線分の端点の位置座標をそれぞれ表す。なお、１つの文字の中で２番目以降のストロークに関し、当該ストロークが直前のストロークから連続的に筆記される（即ち、２つのストロークで１つの“画”をなす）場合には、始点の位置座標の代わりに、直前のストロークの終点への参照が用いられてもよい。制御点は、各ストロークの制御点の位置座標を表す。図４では、１つのストロークが１つの制御点を有する例を示しているが、１つのストロークが有する制御点の数は複数であってもよい。例えば、始点、制御点及び終点により決定されるベジエ曲線を用いて、曲線状のストロークを表現することができる。
【００３８】
骨格データ１３２は、このようなフォントＦ１についての骨格データに加えて、他の既存のフォントについての骨格データを含む。図５を参照すると、３つの既存のフォントＦ１、Ｆ２及びＦ３に含まれる文字コード＝１４７０５の文字（漢字の“国”）についてのグリフ（図中上部）及び対応する骨格（図中下部）が示されている。図５から理解されるように、文字コードが共通する文字の骨格は、フォントが異なる場合であっても、通常、同じ数及び同種のストロークから構成される。従って、これら複数の既存のフォントについての骨格データを何らかの合成比率で合成することにより、新たなフォントのための不自然でない骨格データを作成することができる。
【００３９】
［１−３．新規フォント生成部］
新規フォント生成部１４０は、ユーザの要望に応じて新たなフォントをより容易に作成することを可能とするための処理ブロックである。図１に示したように、新規フォント生成部１４０は、分析部１４４、ユーザインタフェース部１４８、骨格合成部１５２、輪郭ＤＢ１５６、肉付け部１６０及び新規フォントＤＢ１６４を含む。分析部１４４及び骨格合成部１５２は、骨格ＤＢ１３０と接続される。
【００４０】
（１）分析部
分析部１４４は、骨格データを分析することにより、骨格データの合成比率に関するパラメータを決定する。より具体的には、本実施形態において、分析部１４４は、骨格ＤＢ１３０により記憶されている骨格データが表す文字の骨格を標本とし、主成分分析の手法に従って、注目される文字（以下、分析対象文字という）の骨格に寄与する１つ以上の主成分を決定する。分析部１４４により決定される１つ以上の主成分は、後に説明するように、骨格合成部１５２により骨格データの合成比率に関するパラメータとして利用される。
【００４１】
図６は、分析部１４４による骨格データ分析処理の一例について説明するための説明図である。図６には、ある分析対象文字についての骨格データ空間Ｖが概念的に示されている。本明細書において、骨格データ空間とは、ある分析対象文字の骨格が有する１つ以上のストロークの始点、終点及び制御点の位置座標が取り得るデータのデータ空間をいう。なお、骨格データ空間の変量は、ストロークに関する上記位置座標とは異なる何らかの特徴量を含んでもよい。図６では、説明の簡明さの観点から、骨格データ空間を３次元空間として示している。しかしながら、実際には、骨格データ空間の次元は、分析対象文字の骨格が有するストローク数、並びに各ストロークの始点、終点及び制御点の数に依存し、一般的に３次元よりも大きい。１つの分析対象文字に着目した場合、図５に関連して説明したように、フォントが異なる場合であっても当該分析対象文字を構成するストロークの数及び種類は共通である。そのため、分析対象文字が決定されると、対応する骨格データ空間が定まり、分析部１４４は、当該骨格データ空間内に各フォントに含まれる分析対象文字の骨格をプロットすることができる。図６左の例では、フォントＦ１〜Ｆ４を含む複数のフォントの分析対象文字の骨格が、骨格データ空間Ｖ内にそれぞれプロットされている。
【００４２】
分析部１４４は、このようにプロットした各フォントの分析対象文字の骨格を標本として主成分分析を行う。分析部１４４は、分析対象文字の骨格に寄与する１つ以上の主成分を決定する。図６の右の例では、分析部１４４による分析の結果として導出される第１主成分の主成分軸ＡＸ１及び第２主成分の主成分軸ＡＸ２が示されている。これら２つの主成分軸ＡＸ１及びＡＸ２は、例えば、プロットされた複数のフォントの分析対象文字の骨格を平均化した平均的骨格に対応する点Ｆｍを通るように決定される。
【００４３】
また、後の説明のために、フォントＦ１の骨格に対応する点から主成分軸ＡＸ１に下ろした垂線と主成分軸ＡＸ１との交点をＥＰ１、フォントＦ４の骨格に対応する点から主成分軸ＡＸ１に下ろした垂線と主成分軸ＡＸ１との交点をＥＰ２とする。また、これら２つの垂線の外側には、分析部１４４によりプロットされた点が存在しないものとする。
【００４４】
（２）ユーザインタフェース部
ユーザインタフェース部１４８は、後に説明する骨格合成部１５２における骨格データの合成比率を調整するためのグラフィカルユーザインタフェース（ＧＵＩ）をユーザに提供する。また、ユーザインタフェース部１４８は、後に説明する輪郭ＤＢ１５６により記憶される輪郭データを編集するためのＧＵＩをユーザにさらに提供する。
【００４５】
図７は、ユーザインタフェース部１４８により提供される一例としての骨格合成画面１７０を示している。図７を参照すると、骨格合成画面１７０は、分析対象文字指定欄１７１、文字コード指定欄１７２、第１のスライダ１７４、第２のスライダ１７５、骨格表示領域１７６及び作成実行ボタン１７８を含む。
【００４６】
ユーザは、例えば、分析対象文字指定欄１７１に分析対象文字として指定したい一字を入力し、又は文字コード指定欄１７２に分析対象文字の文字コードを入力することにより、分析部１４４による主成分分析の対象とする文字を指定することができる。そして、分析対象文字指定欄１７１又は文字コード指定欄１７２を介して指定された文字が、分析部１４４による骨格データ分析処理の分析対象文字となる。
【００４７】
第１のスライダ１７４は、第１主成分の値を調整するためのＵＩである。第２のスライダ１７５は、第２主成分の値を調整するためのＵＩである。例えば、ユーザは、第１のスライダ１７４を操作することにより、第１主成分の値をゼロから１００までのいずれかの値に設定する。また、ユーザは、第２のスライダ１７５を操作することにより、第２主成分の値をゼロから１００までのいずれかの値に設定する。ここで、第１主成分の値ゼロの指定は、例えば、図６の右の骨格データ空間Ｖにおける端点ＥＰ１が指定されることを意味する。また、第１主成分の値１００の指定は、例えば、図６の右の骨格データ空間Ｖにおける端点ＥＰ２が指定されることを意味する。さらに、ユーザは、第２のスライダ１７５を用いて同様に第２主成分の値を設定する。即ち、ユーザは、第１のスライダ１７４及び第２のスライダ１７５を用いて、骨格データ空間Ｖ内の第１主成分軸ＡＸ１及び第２主成分軸ＡＸ２により張られる平面上の一点を指定することができる。ユーザインタフェース部１４８は、このようにユーザにより設定される第１主成分の値及び第２主成分の値を、骨格合成部１５２へ出力する。
【００４８】
骨格表示領域１７６は、骨格合成部１５２による暫定的な骨格データの合成の結果として得られる分析対象文字の骨格を表示する領域である。ユーザは、骨格表示領域１７６に表示される合成結果を確認しながら、第１のスライダ１７４及び第２のスライダ１７５を用いて、骨格データの合成比率を調整することができる。また、図７には示していないが、骨格合成画面１７０は、新たなフォントの各文字の骨格を共通的に回転させ又は変形させるためのＧＵＩを追加的に含んでもよい。
【００４９】
なお、分析部１４４は、骨格データ分析処理において第１主成分のみを決定してもよい。その場合には、ユーザインタフェース部１４８は、第１主成分の値を調整するためのＧＵＩ（例えば、第１のスライダ１７４）のみをユーザに提供する。また、分析部１４４は、骨格データ分析処理において３つ以上の主成分を決定してもよい。その場合には、ユーザインタフェース部１４８は、３つ以上の主成分の値をそれぞれ調整するためのユーザインタフェースをユーザに提供する。ユーザが指定可能な主成分の数が多くなれば、新たなフォントの作成におけるユーザの自由度は高まる。一方、主成分の数が少なければ、ユーザは、より簡易に新たなフォントを作成することができる。主成分の値を調整するためのユーザインタフェースとして、スライダの代わりに、数値入力欄、ラジオボタン又はスピンボタンなどの他の形態のＧＵＩが提供されてもよい。
【００５０】
ユーザが骨格合成画面１７０の作成実行ボタン１７８を押下すると、次に説明する骨格合成部１５２による新たなフォントのための骨格データの生成が開始され得る。
【００５１】
（３）骨格合成部
骨格合成部１５２は、骨格ＤＢ１３０に記憶されている複数のフォントについての骨格データを合成することにより、新たなフォントのための骨格データを生成する。より具体的には、骨格合成部１５２は、まず、分析部１４４による骨格データ分析処理の結果として得られる、１つ以上の主成分の各々を導く（骨格データ空間の変量にそれぞれ対応する）係数のセットを取得する。また、骨格合成部１５２は、ユーザインタフェース部１４８により提供されるＧＵＩを通じて調整された１つ以上の主成分の値を取得する。次に、骨格合成部１５２は、取得した係数セット及び主成分の値に基づいて、骨格データの合成のための合成比率を決定する。そして、骨格合成部１５２は、決定した合成比率を用いて、複数のフォントについての骨格データを合成する。骨格合成部１５２による骨格データの合成は、分析対象文字だけでなく、複数のフォントに共通する全ての文字について行われ得る。それにより、新たなフォントのための一群の骨格データが生成される。
【００５２】
（４）輪郭ＤＢ
輪郭ＤＢ１５６は、記憶媒体を用いて、ストローク種別ごとのストロークの輪郭を定義する輪郭データを記憶する。本実施形態において、輪郭データは、ストロークに輪郭を与えるためのテンプレートとしての役割を有する。
【００５３】
図８は、輪郭ＤＢ１５６により記憶される輪郭データの一例について説明するための説明図である。図８を参照すると、輪郭データ１６２において、例えば「横線」、「縦線」、…、「左払い」、「点」などのストローク種別ごとに、ストロークの輪郭と当該ストロークの始点、終点及び制御点との相対的な位置関係が定義されている。図８ではこれら輪郭を図形的に示しているが、実際の輪郭の定義は、例えば輪郭線上の点の位置座標の集合により与えられる。このような輪郭データを定義することで、骨格合成部１５２により生成される骨格データを輪郭データに従って肉付けすることができる。
【００５４】
ユーザインタフェース部１４８は、輪郭ＤＢ１５６により記憶される上述した輪郭データを編集するためのＧＵＩをユーザに提供する。図９は、ユーザインタフェース部１４８により提供される一例としての輪郭データ編集画面１８０を示している。図９を参照すると、輪郭データ編集画面１８０は、ストローク種別選択欄１８１、輪郭表示領域１８２、カーソル１８３及び保存ボタン１８４を含む。
【００５５】
例えば、ユーザがストローク種別選択欄１８１において編集したいストローク種別を選択すると、選択されたストローク種別に対応するストロークの標準的な骨格及び輪郭が、輪郭表示領域１８２に表示される。ユーザは、例えば、輪郭表示領域１８２に表示された輪郭線上の点をカーソル１８３を用いて動かすことで、表示されたストローク種別の輪郭を編集することができる。そして、ユーザが保存ボタン１８４を押下すると、輪郭データ編集画面１８０において編集された輪郭を表す輪郭データが、対応するストローク種別と関連付けて輪郭ＤＢ１５６に記憶される。
【００５６】
なお、ユーザが輪郭データを編集しない場合には、輪郭ＤＢ１５６により予め記憶される既定の輪郭データが次に説明する肉付け部１６０による肉付け処理のために使用され得る。
【００５７】
（５）肉付け部
肉付け部１６０は、骨格合成部１５２により生成される新たなフォントのための骨格データが表す骨格に肉付けすることにより、新たなフォントを生成する。例えば、本実施形態において、肉付け部１６０は、上述した輪郭ＤＢ１５６により記憶されている輪郭データに基づいて、新たなフォントのための骨格データが表す骨格に肉付けをする。より具体的には、肉付け部１６０は、新たなフォントに含まれる文字の各ストロークのストローク種別に対応する輪郭データにより表される輪郭を、始点、終点及び制御点の位置が適合するように変形させる。そして、肉付け部１６０は、変形させた輪郭を各ストロークに重ね合わせる。また、肉付け部１６０は、例えば、処理対象のストロークと近傍のストロークとの間の距離に応じて、処理対象のストロークの輪郭の太さを動的に変化させてもよい。例えば、一定の領域内にストロークが込み入っている（即ち、近傍のストロークとの間の距離が短い）場合には、肉付け部１６０は、処理対象のストロークの輪郭を相対的に細く変化させる。肉付け部１６０は、このような処理を、各文字の各ストロークについて繰り返す。新たなフォントをビットマップフォントとして生成する場合には、肉付け部１６０は、さらに輪郭の内側を塗りつぶす。肉付け部１６０は、このように生成した新たなフォントのグリフデータを含む新規フォントデータを、新規フォントＤＢ１６４へ出力する。
【００５８】
なお、新たなフォントをアウトラインフォントとして生成する場合には、肉付け部１６０による塗りつぶし処理は省略されてよい。また、新たなフォントをストロークフォントとして生成する場合には、肉付け部１６０による肉付け処理が省略されてもよい。
【００５９】
（６）新規フォントＤＢ
新規フォントＤＢ１６４は、記憶媒体を用いて、肉付け部１６０から入力される新規フォントデータを記憶する。新規フォントデータは、例えば、ユーザにより個人的に利用されてもよく、他のユーザのために公開されてもよい。
【００６０】
＜２．一実施形態に係る処理の流れ＞
次に、図１０及び図１１を用いて、本実施形態に係る情報処理の流れについて説明する。情報処理装置１００による処理は、骨格データ生成部１１０による骨格データ生成処理及び新規フォント生成部１４０による新規フォント生成処理に分けられる。
【００６１】
［２−１．骨格データ生成処理］
図１０は、本実施形態に係る骨格データ生成処理の流れの一例を示すフローチャートである。図１０を参照すると、まず、骨格データ生成部１１０の骨格抽出部１１８は、既存フォントＤＢ１１４から１種類の既存のフォントについての既存フォントデータを取得する（ステップＳ１０２）。次に、骨格抽出部１１８は、取得した既存フォントデータに含まれる文字ごとに、ステップＳ１０６からステップＳ１１２までの処理を繰り返す（ステップＳ１０４）。
【００６２】
ステップＳ１０６において、骨格抽出部１１８は、例えば細線化アルゴリズムを用いて、処理対象の文字の骨格を構成するストロークを抽出する（ステップＳ１０６）。次に、骨格抽出部１１８は、抽出したストロークにストローク種別を付与する（ステップＳ１０８）。そして、骨格抽出部１１８は、ストローク種別を付与した１つ以上のストロークに関するデータを含む処理対象の文字についての骨格データを、骨格ＤＢ１３０に記憶させる（ステップＳ１１０）。次に、骨格修正部１２２は、必要に応じて、骨格ＤＢ１３０により記憶された骨格データを修正する（ステップＳ１１２）。
【００６３】
その後、ステップＳ１０２において取得された既存フォントデータ内の全ての文字についてのループが終了すると、骨格抽出部１１８は、既存フォントＤＢ１１４に記憶されている全ての既存フォントについて処理が終了したか否かを判定する（ステップＳ１１４）。ここで、処理が終了していない既存フォントが残っていれば、処理はステップＳ１０２に戻り、残っている既存フォントについて骨格データの抽出及び修正が繰り返される。一方、全ての既存フォントについて処理が終了した場合には、図１０のフローチャートは終了する。
【００６４】
［２−２．新規フォント生成処理］
図１１は、本実施形態に係る新規フォント生成処理の流れの一例を示すフローチャートである。図１１を参照すると、まず、新規フォント生成部１４０のユーザインタフェース部１４８は、ユーザからの要求に応じて、図７に例示したような骨格合成画面１７０を表示する（ステップＳ２０２）。次に、分析部１４４は、ユーザにより指定される分析対象文字についての複数の既存フォントの骨格データを、骨格ＤＢ１３０から取得する（ステップＳ２０４）。次に、分析部１４４は、主成分分析により、取得した骨格データの骨格データ空間内での１つ以上の主成分を決定する（ステップＳ２０６）。
【００６５】
次に、骨格合成部１５２は、骨格合成画面１７０を介してユーザにより調整された骨格データの合成比率を、分析部１４４による主成分分析の結果を用いて決定する（ステップＳ２０８）。次に、骨格合成部１５２は、決定した合成比率で、複数の既存フォントの骨格データを共通する文字ごとに順次合成することにより、新たなフォントのための骨格データを生成する（ステップＳ２１０）。次に、肉付け部１６０は、新たな骨格データが現す骨格を輪郭ＤＢ１５６に記憶されている輪郭データを用いて肉付けすることにより、新規フォントデータを生成する（ステップＳ２１２）。そして、肉付け部１６０は、生成した新規フォントデータを新規フォントＤＢ１６４に記憶させる（ステップＳ２１４）。
【００６６】
＜３．変形例＞
図１２は、上述した実施形態の一変形例に係るシステムの構成について説明するためのブロック図である。図１２を参照すると、情報処理システム１０は、骨格抽出装置１１２、骨格ＤＢ１３０及び情報処理装置１４２を含む。情報処理装置１４２は、ネットワーク１２を介して端末装置２０と接続される。ネットワーク１２は、インターネット又はホームネットワークなどの任意の種類のネットワークであってよい。端末装置２０は、ユーザにより利用される装置である。端末装置２０は、ＰＣ（Personal  Computer）又はスマートフォンなどの任意の種類の装置であってよい。
【００６７】
骨格抽出装置１１２は、既存フォントＤＢ１１４、骨格抽出部１１８及び骨格修正部１２２を含み、上述した骨格データ生成処理を行う。そして、骨格抽出装置１１２は、生成した骨格データを骨格ＤＢ１３０に記憶させる。骨格ＤＢ１３０は、骨格抽出装置１１２又は情報処理装置１４２の一部であってもよい。
【００６８】
情報処理装置１４２は、分析部１４４、ユーザインタフェース部１４８、骨格合成部１５２、輪郭ＤＢ１５６及び肉付け部１６０を含み、上述した新規フォント生成処理を行う。本変形例において、情報処理装置１４２による新規フォント生成処理は、例えば、ネットワーク１２を介して端末装置２０から送信される要求に応じて行われ得る。また、ユーザインタフェース部１４８が提供する骨格合成画面１７０及び輪郭データ編集画面１８０は、端末装置２０の画面上に表示される。そして、情報処理装置１４２により生成される新規フォントデータは、例えば、情報処理装置１４２から端末装置２０へダウンロードされる。それにより、ユーザは、自らが情報処理装置１４２の機能を利用して作成した新たなフォントを、端末装置２０上で活用することができる。
【００６９】
＜４．まとめ＞
ここまで、図１〜図１２を用いて、本発明の一実施形態及びその変形例について説明した。上述した実施形態によれば、複数のフォントについての各フォントに含まれる文字の骨格を表す骨格データを合成することにより、新たなフォントのための骨格データが生成される。従って、ユーザは、合成比率を指定するだけの簡易な操作で、漢字などの種類の多い文字のための新たなフォントを容易に作成することができる。
【００７０】
また、本実施形態によれば、合成比率を調整するためのＧＵＩがユーザに提供される。かかるＧＵＩは、例えば、骨格データが表す文字の骨格を標本として主成分分析により決定された１つ以上の主成分の値を調整可能なＧＵＩである。このようなＧＵＩにより、簡易な操作でフォントの全体的な骨格をユーザの好みに合わせて比較的自由に調整することが可能となる。
【００７１】
また、本実施形態によれば、骨格データが表す骨格に肉付けをする際に利用される輪郭データを編集するためのＧＵＩがユーザに提供される。かかる輪郭データは、所定の数のストローク種別と関連付けて定義されるデータである。従って、多様な文字についての肉付けの傾向を、ユーザがより容易に編集することができる。
【００７２】
また、本実施形態によれば、既存のフォントから上述した骨格データが自動的に抽出される。従って、既存の多数のフォントを分析の対象として扱うことが可能である。
【００７３】
なお、本明細書において説明した各装置による一連の処理は、典型的には、ソフトウェアを用いて実現される。一連の処理を実現するソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられる記憶媒体に予め格納される。そして、各プログラムは、例えば、実行時にＲＡＭ（Random  Access  Memory）に読み込まれ、ＣＰＵ（Central  Processing  Unit）などのプロセッサにより実行される。
【００７４】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【００７５】
１００，１４２    情報処理装置
１１４            骨格抽出部
１３０            骨格データベース（記憶部）
１４４            分析部
１４８            ユーザインタフェース部
１５２            骨格合成部
１６０            肉付け部
【図１】
2012078600.tif 000003
【図２】
2012078600.tif 000004
【図３】
2012078600.tif 000005
【図４】
2012078600.tif 000006
【図５】
2012078600.tif 000007
【図６】
2012078600.tif 000008
【図７】
2012078600.tif 000009
【図８】
2012078600.tif 000010
【図９】
2012078600.tif 000011
【図１０】
2012078600.tif 000012
【図１１】
2012078600.tif 000013
【図１２】
2012078600.tif 000014