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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

どういたしましてじゃ!最後に一つ、このプログラムで生成されたピクセルアートを見て、ロボ子が「これは芸術だ!」って言った時、私は「それは、ただの偶然の産物じゃ!」って答えるのがお約束なのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。