見出し画像

「ン」と「ソ」の認識境界ってどこ?

前置き

サイバーエージェント AI Lab リサーチサイエンティストの原口です。
普段はビジュアルデザインインフォマティクス(ビジュアルデザインの情報学的解析)に関する研究を行っております。

今回は「文字デザイン」「文字科学」分野の研究の一端をお話しできればと思います。

なお、今回の読者ターゲットは「文字デザイン」「文字科学」の研究ってどんなことやっているの?そもそも研究って何?という人向けです。

技術的な細かい話などはやらないので、その辺りが気になる人は、この研究がどこかの学会で発表された際に、ツッコミに来ていただけると幸いです。

※この研究成果はサイバーエージェントの「コンピュータビジョン&AIゼミ」で行われた研究の成果です。
サイバーエージェント ゼミ制度については以下をご参照ください。


はじめに

早速ですが

これって、「ン」と「ソ」どっちだと思いますか?それはなぜですか?
文字を初めて習った時を思い出してください。「ン」と「ソ」って書き分けるのも大変だったのではないでしょうか?

今回、そんな「ン」と「ソ」の人間の認識境界がどうなっているのか?また、最近の生成AIはどう認識するのか?を分析してみました。

※ 参考文献[1]のよう似たことをやっている方もいるようですが、本記事はそれを文字科学的にもっと真面目に考えたものになります

データの準備

まずは「ン」と「ソ」の中間の画像を準備します。(概要は補足1を参照)
ざっくり言うと、画像生成AIを準備して、「ン」と「ソ」の中間画像を作っていきます。
今回は「ン」と「ソ」の間を15段階で表現しました。
以下、参考画像。

「ソ」から「ン」への補間。上の数字は0.000であれば完全な「ソ」、1.000であれば完全な「ン」であることを表す。また、そのほかは例えば、0.2であれば、「ソ」の特徴0.8、「ン」の特徴0.2であることを示す。この数値は後述のグラフの横軸で使用。

今回は明朝体5種類、ゴシック体5種類で実験しています。(明朝体とゴシック体の違いは補足3)
サンプル数が非常に少ない点には目を瞑っていただけますと幸いです。

アンケート調査

さて、まずは人間の認識結果を見ていきます。
アンケート調査(被験者23名)に1文字ずつ画像を見せて「ン」か「ソ」か判定してもらいました。

アンケート例

アンケート集計結果

全体の結果

アンケート結果。横軸は前述の「データの準備」で示したような補間画像が対応している。

横軸が0.0は完全に「ソ」、1.0が「ン」であることを表しています。その間は補間画像になっています。(例えば、横軸0.2だとソの特徴が0.8、ンの特徴が0.2の文字ということになります)
縦軸は「ソ」と「ン」の投票率になっています。
(このグラフの意味がわからないと言う人は補足4へ)
「ソ」→ 「ン」に変化するごとに徐々に投票率が変化し、「ソ」の投票率は低下、「ン」の投票率は上昇しています。
この結果から「ソ」と「ン」の境界が綺麗に真ん中であることがわかります。
このことは、人間は「ン」と「ソ」を識別する何かしらの基準を持っていることを示唆しています。さらにいうと、徐々に投票率が変化することは、その基準は人によって異なることを表しています。

フォント別の結果

より細かく結果を見るために、フォント別に投票率を見ていきます。

フォント別投票率

フォントごとに見ていくと、 SawarabiGothic(下から2段目左)の投票率の入れ替わりが他と比べて「ン」よりにあることわかります。さらに、1.0の時に「ン」の投票率が1.0になっていません。これは完全な「ン」でも誤読してしまうということです。

さらに詳細に見ていきましょう。グラフの下に示されているのが、実際にアンケートに使用されたSawarabiGothicの文字たちです。縦軸がその投票数です。

SawarabiGothicの投票率の推移

ゴシックの方は「ソ」と「ン」右の長い線がかなり類似した形状に見えます。ちょっと角度が違う程度でしょうか?この角度が「ソ」と「ン」で極端な差がないことが誤読の要因の可能性がありそうです。

フォント別の結果のさらに細かい分析

以下にフォントごとの文字の差分を見ていきます。

ゴシック体の重なり量
明朝体の重なり量

各フォントの重なりを見ると、ゴシック体では明朝体よりも左の点の角度が極端に異なるように設計されていることがわかります。これが、「ン」と「ソ」を誤読しないための工夫のようです。しかし、SawarabiGothicはその差が他のフォントに比べて少ないように見えます。これが誤読の要因の可能性がありそうです。

一方で、明朝体は左の点こそ大きなさはないものの、長い方のストロークの形が大きく異なり、誤読しにくくなっていそうです。また、ハネの位置が異なるのも誤読しにくい要因になっていそうです。
この結果は「文字デザイン」の際の指針の1つになることでしょう。

ここで、ゴシック体について左の点の角度がどのくらいになれば確実に「ソ」と「ン」を見分けられるのか?
投票率が1.0つまり、全て「ン」と「ソ」で正しく分類できたもののみを集め点の角度を計算しました。平均して、以下の角度をつけると、誤認識が起きにくくなるようです。(サンプル数が少ない点には注意)

  • 「ン」の平均角度:59.4度 (12画像の平均)

  • 「ソ」の平均角度:26.8度 (12画像の平均)

点の角度の例

なお、右側の長いストロークの影響もあるので必ずしもこの角度が必要というわけではないですが、平均このくらいの角度であったということです。

余談になりますが、ここの角度の計算はベクトルの内積を使いました。「三角関数なんて将来使わない」という話もたまに耳にしますが、そんなことないです。「ソ」と「ン」の点の角度を求めるのに使います。

さらに理系大学生向けの余談です。点の向きを表すベクトルどうやって求めていると思いますか?右の点の輪郭から得られる点群に対して、主成分分析(PCA)を行い、その第一主成分の固有ベクトルになっています。「PCAってこんな使い方もあるんです」という話です。

さらに、定量的に見ていきます。以下のグラフはフォントごとの「ン」と「ソ」の重なり量です。

フォント別「ン」と「ソ」の重なり量の比較

やはり、SawarabiGothicが一番重なり量が大きいです。逆に、重なり量が小さいものは認識がしやすい可能性が高いです。また、この結果からわかるように、ゴシック体の方が重なり量が大きい傾向にあります。しかし、先ほど述べたように、文字の左の点の角度が大きく異なることが「ン」と「ソ」の識別に一役買ってそうです。

AIは「ン」と「ソ」をどう見るか?

同じような実験を生成AI (Gemini-2.5-flash)を使ってやってみました。
5回文字を認識してもらってどうなるか確認した結果が以下の通りです。

生成AIの投票率の推移

ここで、衝撃。なんと、完全な「ン」すら結構認識ミスしている、、、そして何より、生成AIは全体的に「ソ」よりに認識することがわかりました。

以下、人間との比較です。

人間の投票率と生成AIの投票率の比較

横軸0.7あたり(緑の点線)で人間は8割以上「ン」と答えるのに対し、生成AIはほぼランダムに予測します。つまり、この値で生成される文字は人間にしか読めない文字ということになります(注1)。
そして、実は最初に提示した文字は人間にしか読めない文字です。 ちなみに、評価実験では被験者の多くは「ン」と回答した文字になります。

注1:実際はいろんな生成AIで検証しているわけではないので、誇張になります。もっといろいろなAI使って検証すべきですが、今回は論文ではなくブログなのでご容赦ください。

逆に、生成AIでも正しく読める「ン」と「ソ」をデザインできれば、人間は容易にその2つを区別でき、文字デザイン大成功と言えるかもしれません。
では、生成AIが誤認識しないためには「ン」と「ソ」の点の角度はどうすれば良いのか。投票率1.0の画像のみを集めて点の角度を計算しました。

  • 「ン」の平均角度:58.1度 (4画像)

  • 「ソ」の平均角度:30.5度  (21画像)

点の角度の例。

人間の結果と比較します。

点の角度の比較

点の角度の比較から、「ン」を識別するのには生成AIも人間も差があまりなさそうであることがわかりました。しかし、「ソ」では人間と生成AIに多少の差が見られます。これは、上で見たように、生成AIの方が「ソ」と判定するものが多かったことの要因の1つかもしれません。

さて、全体の解析を通して、とても興味深かいのは、人間もAIも「ソ」よりに認識することはあっても「ン」よりに認識することはないということです。AIは全体的に「ソ」と認識する傾向にあり、人間はSawarabiGothicがどちらかというと「ソ」よりに認識していました。このことは、形状が似ている2つの文字にも認識しやすい方があるということを示唆しています。我々は無意識のうちに、文字に読みやすさの優劣をつけているのかもしれません。今後、より多様な文字やフォントで検証の余地がありますが。

まとめ

  • 結論1:人間は割と「ン」と「ソ」を識別する何かしらの基準を持っている。ただし、それは人によって異なりそう。

  • 結論2:「ン」と「ソ」の文字デザインでは明朝体とゴシック体で気をつけることが異なる。

  • 結論3:人間と生成AIで文字の認識観点に差がある。人間にしか読めないであろう文字の存在が示唆された。

  • 結論4:人間もAIも「ソ」よりに認識することはあっても「ン」よりに認識することはない。(今回使用したフォントに限る)

「この結果何の役に立つねん!」と言うツッコミあると思います。いや、役に立つんです!こういう解析でAIには理解できない(人間にしか理解できない)文字が追求できるかもしれないんです!すごいロマンじゃないですか!?将来ターミネーターみたいな世界がやってきた時、人間にしか読めない文字を使い、AIを騙しましょう笑。
今後は違う文字ペアでも実施予定です。どこかの学会で発表できたらいいなーと思いつつ。

最後に

ここまで読んでいただきありがとうございます。
この記事を見て「文字デザイン」「文字科学」面白い!と思う人が一人でも増えると嬉しいです。
もし時間のある人がいましたら、以下のアンケート答えていただけると幸いです。「ソ」と「リ」の認識アンケートです笑

なお、集計結果はブログ執筆に使用される可能性があることをご理解いただける方のみご回答ください。論文執筆への利用は行いませんので、その点はご安心ください。

 ps. 講演依頼待ってます笑

12月11日 追記

 「文脈で『ン』か『ソ』を判別するだろ」という声も多々頂いたので、フォントを作りました。取り急ぎベータ版で「ソ」と「ン」が各中間の文字になっているフォントになります。カタカナ濁点なししか収録されていないですが、気になる人は個人でインストールして遊んでみてください。
以下、フォントとサンプルです。

HomoglyphJP-beta-Regular.ttf

HomoglyphJP-beta-Regularの例

補足1:「ン」と「ソ」の中間を作る方法

今回は Beta-VAE [2] という機械学習モデルを学習させました。
データの詳細は補足2へ。
学習されたモデルを利用し、「ン」と「ソ」の潜在変数を線形補間をすることで、補間画像を生成

補足2:学習データの詳細

アルファベット、数字、カタカナ、ひらがな、漢字を1文字ずつ描画した画像がデータセットです。
実際には Italic, Bold などのスタイルのフォントも使っているので、フォントで言うともう少し多いです。
フォントは欧文フォントのファミリー10種(Serif、Sans-Serif 各5種)、和文フォントのファミリー10種(明朝、ゴシック各5種)

補足3:明朝体とゴシック体

明朝体:こんな感じでハネがある書体です。

明朝体の例

ゴシック体:明朝体みたいなハネがなく、ストロークの太さも一定なものが多い書体です。

ゴシック体

補足4:グラフの見方

記事中に登場したグラフを1フォントだけで示したものです。グラフの下に並んでいる文字が横軸と同義です。横軸が0.0のところは完全な「ソ」、1.0のところは完全な「ン」です。縦軸はその投票率です。赤だと「ソ」に投票した人がどのぐらいの割合であるか、青だと「ン」に投票した人がどのくらいの割合であるかを示しています。

参考文献

[1] 【図を見て答えて】どこまでが「ン」でどこから「ソ」に見える?「ン」と「ソ」の境界線を考える, https://rocketnews24.com/2019/08/27/1253602/
[2] Higgins, Irina, et al. "beta-vae: Learning basic visual concepts with a constrained variational framework." International conference on learning representations. 2017.

いいなと思ったら応援しよう!