物体検出の技術は、画像分析に革命をもたらしました。特に、YOLO(You Only Look Once)は、その速度と精度で知られるようになりました。最新のYOLOv8は、この分野でのさらなる進化を象徴しています。このブログでは、Anacondaを使ってYOLOv8の環境をセットアップし、物体検出を行う方法をステップバイステップで解説します。また、GPUが適切に動作しているかを確認する方法も紹介します。
・物体検出ってどうやるの?
・Yoloの環境構築方法がわからない。
こんな疑問に答えます。今回は実際にyoloを実行できる環境を構築して、物体検出をやってみましょう。
・物体検出ができるようになる。
・Yoloの環境構築ができるようになる。
yoloを実施するためにまずは、仮想環境を作成しましょう。今回はVS codeを使用して、仮想環境の作成して、環境構築する方法を紹介します。

ステップ1: Anacondaで仮想環境の作成
Anacondaは、データサイエンスと機械学習の分野で広く使用されているパッケージマネージャーおよび環境マネージャーです。まずは、Anacondaをインストールしていない場合は、公式サイトからダウンロードしてインストールしてください。
Anacondaのインストールが完了したら、VS codeで仮想環境を作成します。VS codeを開き、フォルダをドロップします。

フォルダが反映されたら、ターミナルの新しいターミナルをクリック

Command promptを選択

選択すると、現在のディレクトリが表示されます。

では仮想環境を作成しましょう。anaconda では下記コマンドで仮想環境を作成できます。
”yolo-env”の名前で仮想環境を作成します。
conda create -n yolo-env
こんな感じになります。

yでenterを押します。完了するとこのように表示されます。

これで仮想環境が作成されました。仮想環境が作成されたら、仮想環境をアクティベートしてみましょう。
conda activate 仮想環境名
アクティベートされると、仮想環境がかっこで表示されます。

一応下記コマンドでアップデートを行います。
conda update --all

ステップ2: 必要なパッケージのインストール
次に、YOLOv8とそれに関連するパッケージをインストールします。
git clone https://github.com/ultralytics/ultralytics.git
実行するとこんな感じになります。

完了すると、ultralysticsのフォルダが作成されています。

次に、condaでultralyticsをインポートします。
conda install -c conda-forge ultralytics
実行するとこんな感じで、ライブラリがインポートされます。

yを押してenter

完了するとこのようになります。

次にpytorchをインストールします。conda installだとうまくいかなかったため、pipでインストールします。
下記サイトで自分のPC環境に合わせたバージョンをインストールしてください。CUDAのバージョンもあわせてください。(私の環境はGPU:RTX 3060 T python:3.12.2 CUDA 11.8 )

※CUDAのバージョンはコマンドプロンプトで下記コマンドで確認できます。
nvcc -V

バージョンを確認したら、
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
するとこのようにインストールが開始されます。結構時間がかかりいます。

15分くらいで完了しました。

これでライブラリの準備完了です。インストールが完了したので、GPUが適切にセットあぷされているかを確認します。
ステップ3: GPUの動作確認
GPUが適切にセットアップされているかを確認するために、Pythonスクリプトを使用してNVIDIA CUDA Toolkitが正しく認識されているかテストします。
jupyter notebookでやっていくため、はじめにtest.ipynbのファイルを作成します。

ファイルを作成したら、下記プログラムを打ちます。
# gpu_test.py
import torch
# CUDAが使用可能かどうかを確認
if torch.cuda.is_available():
print("CUDA is available. GPU is ready to use!")
# 利用可能なGPUの数と、デフォルトのGPU情報を表示
print(f"Number of GPUs available: {torch.cuda.device_count()}")
print(f"Default GPU: {torch.cuda.get_device_name(0)}")
else:
print("CUDA is not available. Check your GPU settings.")
プログラムを実行します。(Shift + Enter)

実行した結果、CUDA is availableと表示されれば完了です。このスクリプトは、システムにGPUが存在し、CUDAによって正しく認識されているかを確認します。CUDAが利用可能であれば、「CUDA is available. GPU is ready to use!」というメッセージが表示されます。
環境構築ができました。
もし、GPUの設定ができていない場合は、CUDAのバージョンやpytorchの設定CUDNNの設定pathが通っていないなどが考えられますので、確認してください。
これで、YOLOv8を使用して物体検出を行う準備が整いました。このガイドが、物体検出の世界への第一歩となることを願っています。次のステップでは、実際にYOLOv8を使用して物体検出を行う方法を紹介します。お楽しみに!
実際にプログラムを使った実践例がこちらのブログに記載しています。