OTHERS

2017.06.05 Up

Posted by Nao Tokui

適切なフォントの組み合わせを生成 – Fontjoy

適切なフォントの組み合わせを生成 – Fontjoy

[mathjax]

見出し、中見出し・小見出し、そして本文.  全体の一貫性を保ちつつも適当なコントラストをもたせたフォントの組み合わせ(font pair)を選ぶにはどうしたらよいのか. そんなデザイナーの悩みを機械学習で軽減しようという試みです。

ディープラーニングのモデル(CNNだと思われます)で抽出したフォントの特徴量を用いて、「共通する特徴がある」と同時に、「違いがはっきりしている」ものを選びます。 こうして選択されたフォントのペアの例を幾つか. いかがでしょうか? 確かに統一感とコントラストのバランスが良さそうですね。

具体的には特徴量のベクトルに対して、次の式で自動的にペアを選びます。(AとBの二つのフォントのn次元の特徴に対して、内積の正の項と負の項を分けてあつかっています)

$$ Contrast\ Similarity = -N * P $$

$$ P = \sum_{i=1}^{n}A_iB_i \ \ \ [A_iB_I > 0] $$
$$ N = \sum_{i=1}^{n}A_iB_i \ \ \ [A_iB_I < 0]$$

特徴が近いものと、遠いもの、両方の特徴量を兼ね備えているということですね. 抽出された特徴量の空間は、TensorFlowのembeddingとしてこちらで見れます.

実用的な機械学習の利用法として、カラーパレットを作るColormindというサービスを以前に紹介しました。実はFontjoyも同じチームの手によるものです。今後にも期待できそうです!

The goal of font pairing is to select fonts that share an overarching theme yet have a pleasing contrast. Which fonts work together is largely a matter of intuition, but we approach this problem with a neural net. See Github for more technical details.