1. はじめに:AIって創造的になれるの?
AIというと、機械学習、ディープラーニング、自然言語処理…と、なんだか難しい理論やモデルばかり思い浮かびがちです。でも、ちょっと視点を変えると、「AIっぽいこと」は意外とシンプルな処理でも表現できるんです。
今回は、Pythonの「Turtle(カメ)」モジュールと、ランダム性を使って「創造的に見えるお絵かきAI」を作ってみましょう。
「Turtleって教材用じゃないの?」「業務に関係ないのでは?」と思うかもしれませんが、実はこのテーマには以下のような学びがあります。
- 生成AIの基礎的な考え方(ランダム性 × ルール)
- ロジックで創造性を生み出す設計思考
- Pythonでのビジュアル出力スキルの習得
それでは、Let's draw like AI!
2. 技術概要:Turtle × Random で作る「それっぽい創造性」
● Turtleとは?
Pythonに標準搭載されている図形描画ライブラリ。仮想のカメを動かして線を描くことで、ビジュアル表現を行います。
pip install Python(インストール不要:標準ライブラリ)
● Randomとは?
Pythonのrandom
モジュールを使って、乱数(=予測不可能な値)を生成します。AIにおける「創造的」な表現の一端を担う大事な要素です。
import random
この2つを組み合わせることで、ルールベースながらも偶発的な美しさを持つ図形を描くことができます。これが、AI的創造性の第一歩です。
3. 実装してみよう:AIっぽいお絵かきボット
● 基本のセットアップ
import turtle
import random
# 画面初期化
screen = turtle.Screen()
screen.bgcolor("black")
# カメの設定
bot = turtle.Turtle()
bot.speed(0)
bot.pensize(2)
● カラーパレットの定義
colors = ["#FF5733", "#33FFCE", "#FFC300", "#C70039", "#900C3F", "#581845"]
● 描画ループ(AIっぽい!)
for i in range(200):
bot.color(random.choice(colors))
bot.forward(random.randint(50, 150))
bot.right(random.randint(30, 120))
bot.circle(random.randint(10, 60))
bot.left(random.randint(60, 180))
● 実行と終了処理
# 画面をクリックで終了
screen.exitonclick()
✅ 完成イメージ
実行すると、カラフルでランダムな線や円の組み合わせによる幾何学アートが出来上がります。
4. 実務にも効く!現場視点のTIPS
💡 ランダムの「種」を固定すれば再現性が出せる
random.seed(42)
MLのモデル評価などでも同じですが、ランダムの再現性はデバッグや比較にとても重要です。
💡 視覚化処理のロジックはデバッグの味方
描画をロジックと合わせて見ることで、「処理の流れ」「パターン生成の偏り」などを直感的に可視化できます。これはデータ前処理や特徴量エンジニアリングにも通じる考え方です。
💡 一時停止やステップ実行を入れると教育用途にも最適
import time
time.sleep(0.1)
こうすることで、1ステップずつ動きを観察できます。
5. 発展編:もっとAIっぽくするには?
● GAN的な要素を取り入れるなら?
2つのカメを使い、互いに違うアルゴリズムで描かせて「対抗」させるのも面白いアプローチです。
# bot1とbot2に異なる描画戦略を与える
● OpenCVや画像処理との連携
描いた画像をOpenCVで保存し、フィルターや加工をかけて「最終生成物」にする流れは、生成AIの画像パイプラインと同じ発想です。
6. まとめ:お絵かきAIは遊びじゃない!
✅ メリット
- PythonだけでビジュアルなAIっぽい体験ができる
- 創造的アルゴリズムの入門に最適
- 実装が簡単なのに意外と奥深い
❗ デメリット
- あくまで「AIっぽさ」であり、学習はしていない
- 業務応用にはさらなるステップが必要
👨💻 ぜひ触ってみてください!
Turtleで始めるお絵かきAI。たった数十行でも、**「AIってこういう考え方もあるんだ!」**と気づいてもらえたら嬉しいです。ちょっとした遊びから、大きな発想につながることもありますよ。
それでは、良きお絵かきAIライフを!