岐阜AI勉強会 (第一回) 2025/3/23 の資料

1. 概要

2025年3月23日(日)に開催予定の岐阜AI勉強会(第一回)で参照するために用意したページになります。

2. Google Colab を利用した物体検出モデル YOLO の推定処理の実行
2.1. Google アカウントの作成

Google Colab と Google Drive を使用するため、Google アカウントを作成します。
作成した Google アカウントで Chrome にログインします。

2.2. Google Colab で YOLO の推定処理を実行

こちらのリンクを開きます。

岐阜AI勉強会(第一回)のために用意した Google Colab 用のページになります。

まず、下記のコードセル左上の矢印をクリックします。
Python パッケージ ultralytics および関連するパッケージがインストールされ、その後、ultralytics の動作確認プログラムが実行されます。

%pip install ultralytics
import ultralytics
ultralytics.checks()

下記のスクリプトが記載されたコードセル左上の矢印をクリックします。YOLO11n を使用した物体認識が実行されます。
source で指定した画像の URL を別の画像に変えると、別の画像を対象とした物体認識が実行されます。

# Run inference on an image with YOLO11n
!yolo predict model=yolo11n.pt source='https://www.leafwindow.com/wordpress-05/wp-content/uploads/2023/12/IMG_6460-20.jpg'

物体認識の結果の画像は下の画像のように Google Colab の左のフォルダアイコンをクリックしてフォルダを開き、出力された画像をダブルクリックすると表示されます。

YOLO11n を使用した物体認識以外に、YOLO11n よりもネットワークサイズが大きな YOLO11x を使った物体認識のコードセルも上記のページに用意しました。また、YOLO11n-pose を使った人の姿勢推定のコードセルも用意しました。

3. Google Drive のデータを参照した YOLO の処理の実行
3.1. Goole Colab からの Google Drive のデータの参照

下記のスクリプトが記載されたコードセル左上の矢印をクリックします。Google Drive に置いたファイルを参照することができるようになります。

from google.colab import drive
drive.mount('/content/drive')

一つ目の画像のようなポップアップが表示されるので、「Google Drive に接続」を選択します。
二つ目の画面でどの Google アカウントの Google Drive に接続するかを選択します。
三つ目の画面で「次へ」をクリックします。
四つ目の画面で「すべて選択」のチェックボックスをクリック後、「続行」をクリックします(四つ目と五つ目の画像)。
六つ目の画像のように Google Colab の左側にマウントされた drive フォルダが表示されます。drive フォルダをクリックすると MyDrive フォルダが表示されます。

3.2. Google Drive へのデータのアップロード

こちらのリンクをクリックし、GitHub に置いたデータセットの圧縮ファイルを選択します。

一つ目の画像の緑枠内をクリックし、データセットの圧縮ファイルをダウンロードします。
二つ目の画像のように Google アカウントでログインした Chrome から Google Drive に接続します。Google Colab を開いたタブとは別のタブで Google のトップページを開きます。その後、右上の緑枠内のボタンをクリックし、ドライブを選択します。
三つ目の画像のように Google Drive に接続後、マイドライブを選択します。

一つ目の画像のようにマイドライブで右クリックし、「ファイルをアップロード」を選択します。
二つ目の画像のようにアップロードするファイルをPCのフォルダから選択します。この例ではダウンロードフォルダの gifu-ai-2025-03-23.zip を選択しています。
三つ目の画像のように gifu-ai-2025-03-23.zip がマイドライブにアップロードされます。

3.3. Google Drive に置いた画像を YOLO で参照

上記 3.2. の例ではデータセットの圧縮ファイル gifu-ai-2025-03-23.zip をアップロードしましたが、同様の手順で画像ファイルもアップロードできます。

下記のコードセルは、マイドライブに置いた画像ファイル DSC00422-min (SonyAlpha-横).JPG を参照して物体認識を実行します。

# Run inference on an image in Google Drive
!yolo predict model=yolo11n.pt source='/content/drive/MyDrive/DSC00422-min (SonyAlpha-横).JPG'
3.4. Google Drive に置いたデータセットで YOLO を training

下記のスクリプトが記載されたコードセル左上の矢印をクリックします。Google Drive に置いたデータセットの圧縮ファイル gifu-ai-2025-03-23.zip を Google Colab のフォルダにコピーし、展開します。

%%bash
mkdir -p dataset
cd dataset
cp /content/drive/MyDrive/gifu-ai-2025-03-23.zip .
unzip gifu-ai-2025-03-23.zip

下記のスクリプトが記載されたコードセル左上の矢印をクリックします。Google Drive からコピーしたデータセットを参照し、YOLO の物体検出モデルを training します。

!yolo train model=yolo11n.pt data=/content/dataset/gifu-ai-2025-03-23/data.yaml epochs=50 batch=10

このコマンドの例では training の繰り返し回数 (epochs) は 50 です。バッチサイズを指定する batch には 10 をセットしています。バッチサイズは training 後に得られる物体検出モデルの認識性能に影響するため、適切なサイズを指定します。

他のデータセットで training 済みの物体検出モデル yolo11n.pt を初期値とし、与えたデータセットで training します。

岐阜市の鳥羽川と百々ヶ峰で撮影したいくつかの種類の野鳥を検出できるように training します。データセット内の野鳥は、ダイサギ、アオサギ、オオバン、キジバト、ヤマガラ、カルガモ、マガモ(オス)、ヒドリガモ(オス)、カワウ等です。

3.5. training した YOLO で野鳥を認識

下記のスクリプトが記載されたコードセル左上の矢印をクリックします。展開したデータセット内のディレクトリ gifu-ai-2025-03-23/images/test に置かれた 17 の画像ファイルを参照し、物体検出が実行されます。

!yolo predict model=/content/runs/detect/train/weights/best.pt source=/content/dataset/gifu-ai-2025-03-23/images/test

上記のコマンドの model で指定した /content/runs/detect/train/weights/best.pt は上記 3.4. で training して得られた物体検出モデルです。source で指定した /content/dataset/gifu-ai-2025-03-23/images/test には training では参照されなかった画像が置かれています。

下の画像は検出結果の画像の例です。/content/runs/detect/predict/DSC01632.jpg に出力された画像をダブルクリックして表示しています。

下記のスクリプトも上記 3.4. の training で得られた物体検出モデルを使用した物体検出を実行します。
今回用意したデータセット外の画像を入力として物体検出を行っています。

!yolo predict model=/content/runs/detect/train/weights/best.pt source=https://www.leafwindow.com/wordpress-05/wp-content/uploads/2023/02/DSC00022-min-SonyAlpha-%E6%A8%AA.jpg

下の画像は上記のスクリプトが記載されたコードセルを実行し、得られた結果の例になります。source で指定する画像を変えて得られた三通りの結果になります。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA