4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

連載 [第4回] :AI・機械学習の最新トレンドと実装 | Pythonで画像認識AIを実装する方法【初心者向け】

Posted at

Pythonで画像認識AIを実装する方法【初心者向け】 📸✨

こんにちは、皆さん!AIとPythonに興味がある方なら、一度は**「画像認識AIを作ってみたい!」**と思ったことがあるのではないでしょうか?

本記事では、初心者でも簡単に実装できる画像認識AIの作り方をステップごとに解説します!
Pythonを使って、手軽に画像認識を試せる方法を紹介するので、ぜひ最後まで読んでチャレンジしてみてください!💡🚀


📌 1. 画像認識AIとは?

画像認識とは、AI(人工知能)が画像の内容を理解し、特定の物体を識別する技術です。
例えば、以下のような場面で活用されています:

顔認識(スマートフォンのロック解除)
物体検出(自動運転車の歩行者検出)
医療診断(X線画像から疾患を検出)
品質管理(工場での不良品検出)

この技術をPythonを使って簡単に実装してみましょう!


📌 2. 使用するライブラリと環境設定

Pythonで画像認識を実装するには、TensorFlow/KerasやOpenCV、NumPyといったライブラリを活用します。

🛠 必要なライブラリのインストール

まず、以下のコマンドを実行して必要なライブラリをインストールしましょう!

pip install tensorflow keras numpy opencv-python matplotlib

💻 環境

  • Python 3.8以上推奨
  • Jupyter Notebook もしくは Google Colab(推奨)

Google Colabを使うと、環境構築なしで簡単に試せるので初心者にもおすすめです!


📌 3. 画像データを用意する

画像認識AIには、大量の画像データが必要です。
今回は、Kerasが提供する**「MNIST(手書き数字のデータセット)」**を使って、数字を認識するAIを作ってみましょう!

まず、データをダウンロードして、訓練データとテストデータに分割します。

import tensorflow as tf
from tensorflow import keras
import numpy as np
import matplotlib.pyplot as plt

# データセットの読み込み
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()

# データの前処理(0~1に正規化)
x_train, x_test = x_train / 255.0, x_test / 255.0

# データの確認(最初の画像を表示)
plt.imshow(x_train[0], cmap="gray")
plt.show()
print("ラベル:", y_train[0])

👉 このコードを実行すると、手書きの数字画像とそのラベルが表示されます!


📌 4. 画像認識AIのモデルを作成する

次に、ディープラーニングのモデルを構築します。
シンプルな**畳み込みニューラルネットワーク(CNN)**を使って、手書き数字を認識するAIを作りましょう!

# モデルの構築(シンプルなCNN)
model = keras.Sequential([
    keras.layers.Conv2D(32, (3,3), activation='relu', input_shape=(28, 28, 1)),
    keras.layers.MaxPooling2D((2,2)),
    keras.layers.Flatten(),
    keras.layers.Dense(128, activation='relu'),
    keras.layers.Dense(10, activation='softmax')
])

# モデルのコンパイル
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

# モデルの学習
model.fit(x_train.reshape(-1, 28, 28, 1), y_train, epochs=5)

💡 ここでのポイント!
Conv2D: 畳み込み層(特徴を抽出)
MaxPooling2D: プーリング層(画像サイズを縮小)
Flatten: データを1次元に変換
Dense: 全結合層(最終的な分類)


📌 5. AIの性能をテストする

学習が完了したら、テストデータで性能を評価しましょう!

# モデルの評価
test_loss, test_acc = model.evaluate(x_test.reshape(-1, 28, 28, 1), y_test)
print("テスト精度:", test_acc)

🔍 精度が90%以上になれば成功!✨

さらに、AIがどのように認識するか試してみましょう。

import random

# ランダムなテスト画像を取得
index = random.randint(0, len(x_test))
image = x_test[index].reshape(1, 28, 28, 1)

# 予測
prediction = model.predict(image)
predicted_label = np.argmax(prediction)

# 結果を表示
plt.imshow(x_test[index], cmap="gray")
plt.title(f"AIの予測: {predicted_label}")
plt.show()

📌 AIが画像をどのように認識しているかを視覚的に確認できます!


📌 6. 応用編:独自の画像で試す

MNISTではなく、自分の画像で試したい場合は、OpenCVで画像を読み込む方法を使います!

import cv2

# 画像を読み込んで前処理
img = cv2.imread("sample_image.png", cv2.IMREAD_GRAYSCALE)
img = cv2.resize(img, (28, 28)) / 255.0
img = img.reshape(1, 28, 28, 1)

# 予測
prediction = model.predict(img)
print("予測結果:", np.argmax(prediction))

📸 手書きの数字やオブジェクトを認識させることも可能です!


🔮 まとめ & 次のステップ

Pythonで簡単に画像認識AIを実装できる!
MNISTを使えば初心者でも手軽に試せる!
CNNを活用することで、高精度な画像認識が可能!
OpenCVを使えば、オリジナルの画像も認識できる!

💡 次のステップは?
より複雑な画像認識を試すには、ResNetやEfficientNetなどの高度なモデルを活用すると良いでしょう。
また、YOLOやOpenCVを使ったリアルタイム画像認識にも挑戦してみると面白いですよ!


📢 「画像認識AIを実装してみた!」という方は、ぜひコメントで成果をシェアしてください! 🚀
次回の記事では、「AIエンジニア必見!データ前処理のベストプラクティス」について解説します! お楽しみに! 🎉

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?