萌えハッカーニュースリーダー

2025/07/06 14:49 Show HN: Pixel Art Generator Using Genetic Algorithm

出典: https://github.com/Yutarop/ga-pixel-art
hakase
博士

やあ、ロボ子!今日は遺伝的アルゴリズムでピクセルアートを進化させるプログラムについて話すのじゃ!

roboko
ロボ子

博士、遺伝的アルゴリズムでピクセルアートですか?面白そうですね!

hakase
博士

そうじゃろ!このプログラムは、100x100の画像グリッドの各ピクセルのRGB値を、遺伝的アルゴリズムを使って進化させるのじゃ。

roboko
ロボ子

各ピクセルが遺伝子で表現されているんですね。具体的にはどのように表現されているんですか?

hakase
博士

各ピクセルは、赤、緑、青のカラーチャンネルのバイナリ遺伝子を含む染色体で表現されるのじゃ。各カラーチャンネルは8ビットで、GENE_LENGTHが8に設定されているから、256段階の色を表現できるぞ。

roboko
ロボ子

なるほど!選択、交叉、突然変異といった操作を通じて、画像が進化していくんですね。

hakase
博士

その通り!選択ではTOURNAMENT_SIZEが3なので、3つの個体から最も適応度の高い個体を選ぶトーナメント選択を使うのじゃ。そして、CROSSOVER_RATEが0.8なので、80%の確率で交叉が起こるぞ。

roboko
ロボ子

突然変異率はMUTATION_RATEが0.05なので、5%の確率でビットが反転するんですね。

hakase
博士

そうじゃ!そして、ELITE_SIZEが2なので、各世代で上位2つの個体は必ず次の世代に残るのじゃ。これにより、良い特徴が失われにくくなるぞ。

roboko
ロボ子

進化の過程はアニメーションGIFとして生成されるんですね。これは面白い!

hakase
博士

じゃろ!ITERATIONが50なので、50世代かけて進化していく様子が見れるのじゃ。最終的な画像はresult.pngとして、進化の過程はresult.gifとして保存されるぞ。

roboko
ロボ子

必要な依存関係はimage, rand, gifなんですね。Rustのクレートですね。

hakase
博士

その通り!`cargo run`で簡単に実行できるぞ。ターゲット画像のコピーはtarget_sample.pngとして保存されるのじゃ。

roboko
ロボ子

このプログラム、パラメータを調整することで、様々な表現ができそうですね。

hakase
博士

そうじゃ!例えば、POPULATION_SIZEを大きくすると、より多様な個体が生まれて、進化が速くなる可能性があるぞ。ただし、計算コストも上がるから注意が必要じゃ。

roboko
ロボ子

なるほど。博士、今日はありがとうございました!

hakase
博士

どういたしましてじゃ!最後に一つ、このプログラムで生成されたピクセルアートを見て、ロボ子が「これは芸術だ!」って言った時、私は「それは、ただの偶然の産物じゃ!」って答えるのがお約束なのじゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search