「フォントピント」が縦書き・複数行のテキストに対応しました

画像から日本語フォントを検索できる唯一のサービス「フォントピント」が、縦書きや複数行のテキストに対応しました!より柔軟にフォントの検索が可能になりました。あとちょっぴり精度が良くなったはずです。検索のための内部の方法が大きく変わったので、またまた備忘録を兼ねて書いておきたいと思います。

実際どうなったのか?

例えば以下のような縦書きの看板で検索ができます!!一番確率の高いと予測されている黒龍爽なんかはかなり近いんじゃないでしょうか。

考え方

以下の画像が全てです。これまでは検索対象の画像が与えられたときランダムで正方形のパッチを複数枚切り抜き、フォント予測モデルの入力としていました。これだと文字の情報が上手く使えなかったり、運が悪いとほとんど背景のパッチができたりしてしまいます。

実際は文字認識のために、クラウドサービスが提供するOCR APIを使用しています。このようなAPIはほとんどが、文字の領域を囲うバウンディングボックスの座標を返却してくれます。このバウンディングボックスを使えば、正確に1文字ずつを切り取ったパッチをフォント予測モデルの入力として使用でき、予測精度の向上が期待できます(学習データは自分で作成している人工データなので、もちろんバウンディングボックスの定義が可能です)。また副次的な効果として1文字ずつを入力とするので、横書きとか縦書きとかが関係なくなります。

システム的なところ

これまではフォント認識と文字認識が独立したタスクだったため、フロントから両方のAPIにリクエストを投げていました。これからは、フォント認識では文字認識の結果を使うようになるので、フォント認識APIから文字認識のためのcloud vision apiにリクエストを投げるようにしました。