遺伝的プログラミングで「モナ・リザ」を学習

画像データに遺伝的プログラミング(Genetic Programming)を用いて、レオナルド・ダビンチの名画「モナ・リザ」を描いた方が注目を浴びているようです。

始めはただのポリゴンの集まりだったのが、進化を経て、徐々に「モナ・リザ」へと変わっていく過程が大変面白いので、皆さんもちょっとリンクを辿って行くと、良いものが見れるかもしれません。

screenshot

Genetic Programming: Evolution of Mona Lisa « Roger Alsing Weblog

Roger Alsing氏はグラフィック関連の技術に関心のある方のようで、今回は遺伝的プログラミングを画像データに適用してみたようです。

手順が簡単だったので、翻訳してみました。

0) ランダムなDNA文字列を生成 (アプリのスタート)
Setup a random DNA string (application start)

1) 現在のDNA配列をコピーして、それをわずかに突然変異させる
Copy the current DNA sequence and mutate it slightly

2) 新しいDNAをキャンバスにポリゴンとしてレンダリング
Use the new DNA to render polygons onto a canvas

3) ソース画像と比較
Compare the canvas to the source image

4) もし突然変異させた画像が、突然変異前の画像よりもソース画像に似ていたら、現在のDNAを採用する
If the new painting looks more like the source image than the previous painting did, then overwrite the current DNA with the new DNA

5) 1から繰り返す
repeat from 1

比較的簡単な作業を繰り返し行うことで、画像が「モナ・リザ」へと進化していく過程が見れるわけですね。

この手法をjavascriptで実装した方もいるようなので、実際に自分たちで体験することも出来るようです。

screenshot

FirefoxWebKitOperaなどで動作するようです。