画像処理がしたいです。
このような要望にお応えします。
今回は、Pythonの遺伝的アルゴリズムによる描画処理ツールを使用して、画像描画してみます。
- https://github.com/anopara/genetic-drawing
遺伝的アルゴリズムとは
遺伝的アルゴリズムは、データを遺伝子とみなして複数用意し、適応度の高い遺伝子を優先的に選択して交叉/突然変異等の操作を繰り返すことで解を探索する手法です。
遺伝的アルゴリズムの処理は、大まかに以下になります。
- N個の個体が入る集合を用意する。
- 初期個体群をランダム生成する。
- 評価関数に基づき、各個体の適応度を計算する。
- 交叉/突然変異/変化なし(エリート保存)の操作(進化オペレーション)を行う確率に基づき、操作を選択し個体に適応させる。
- 次世代の個体数がN個になるまで4を繰り返す。
- 次世代の個体を現世代にする。
- 3~6の処理を設定した世代数Gまで繰り返す。
交叉・・・2つの個体を選択し、各個体の一部を入れ替える処理です。
突然変異・・・1つの個体を選択し、個体の一部を変化させる処理です。
それでは、遺伝的アルゴリズムによる画像描画処理を行います。
ツールは、以下を使用しました。
- https://github.com/anopara/genetic-drawing
Google Colaboratoryの準備
・Googleのアカウントを作成します。
・Googleドライブにアクセスし、「新規」→「その他」から「Google Colaboratory」の順でクリックします。そうすると、Colaboratoryが起動します。
・Colaboratoryが起動したら、以下のコマンドをCoalboratoryのセルに入力し実行します。
そうすることで、Googleドライブをマウントします。
1 2 |
from google.colab import drive drive.mount('/content/drive') |
・実行後、認証コードの入力が促されます。このとき、「Go to this URL in a browser」が指しているURLにアクセスしgoogleアカウントを選択すると、認証コードが表示されますので、それをコピーしenterを押します。これでGoogleドライブのマウントが完了します。
genetic drawingの準備
ツールをダウンロードする場所に移動します。 本記事では、マイドライブにツールをダウンロードします。
1 |
cd drive/My\ Drive |
ツールをダウンロードします。
1 |
!git clone https://github.com/anopara/genetic-drawing.git |
ダウンロードしたフォルダに移動します。
1 |
cd genetic-drawing/ |
genetic-drawingフォルダにjupyter形式のGeneticDrawing.ipynbがあります。このファイルの内容を一つずつ実行することで、入力画像をベースとして遺伝的アルゴリズムによる描画処理を実行することができます。
出力結果
遺伝的アルゴリズムによる進化論的描画処理を行いました。ツールは、Githubで公開されていますので使用してみてはいかがでしょうか。