見出し画像

漢字アンビグラムを遺伝的アルゴリズムで自動生成してみた

最近テレビでアンビグラムというものを知りました。

検索すればたくさん出てきますが(是非みて欲しい!)、要は逆さにしても読める文字画像です。

漢字のアンビグラムを自動生成できれば楽しいかなと思い、挑戦してみました!

とりあえず、結果から

画像12

「勝利」に見えるでしょうか?笑
反転すると・・・

画像11

「挑戦」の方は、はっきり読めますね。

手法

まあ、遊びなので遺伝的アルゴリズムでゴリ押しです。

遺伝子の優劣の評価方法ですが、

0.あらかじめ作りたい文字列の画像をそれぞれ生成しておく
(一方は180度反転)

スクリーンショット 2020-06-14 15.39.04

1.各遺伝子に基づき0.の画像をそれぞれ変形

スクリーンショット 2020-06-14 15.39.22

2.それらを重ねた時の誤差を評価

スクリーンショット 2020-06-14 15.39.37

という感じです。

実装はPython3です。

いざ、実行!

「勝利」と「挑戦」でやってみます。
(僕が初めて見たアンビグラムと同じ)


1世代

画像1

まあ文字画像を変形して重ねたものなので、最初から文字らしさはあります。


10世代

画像2

ちょっとゴチャゴチャ感が減りました。


20世代

画像3

果たして良くなっているのか。。。?


30世代

画像4

うーん


40世代

画像5

30世代からすると「勝」の力の字がはっきりしています。


50世代目(とりあえず完成)

画像6

反転すると。。。

画像7

実行時間は大体15分ぐらいです。

感想

欲しい結果は得られました。が、やはり単純な手法なのでクオリティは手作りの物には及びません。

今後も少しづつ改良できればと思います。



この記事が気に入ったらサポートをしてみませんか?