AIワンダーランド

AIエンジニアの個人開発ブログ

【YOLOv5】で動画からネコ検出(=^・・^=)

更新日:2023年5月28日

 

対象読者:Windows環境でyolov5を使ってみたい人

CPUでも大丈夫です。

 

概要

 

【プロジェクトにゃーん1】

家の近くを散歩するネコちゃんをリアルタイムで検出して

アラートを飛ばしたい!!

 

YOLO (You Only Look Once)とは

物体検出のための深層学習アルゴリズムの一つです。

従来の物体検出の手法とは異なり、YOLOは画像全体を一度に見ることで物体の検出と分類を一度に行います。この手法により、高速かつリアルタイムの物体検出が可能というのが特徴です。

YOLOアルゴリズムはこれまでに複数のバージョンが発表され、その精度と速度はバージョンアップごとに向上していて、現在はYOLOv8が最新です。Ultralytics社が開発していてYOLOv5の後継ですね。

 

※ライセンスが「GPL-3.0 license」なので、商用利用には注意が必要です。

 

今回、WEBカメラ動画をリアルタイムで物体検出したいと思い

とりあえずv5で検出を試してみたいと思います。

 

散歩するネコちゃんを見たいというプロジェクトのための実験です。

 

環境

環境:Winows11、メモリ32GB

Python : 3.10.6、CUDA : 11.8、torch : 2.0.1+cu118

 

手順

1.YOLOv5をダウンロード

gitからクローンします。

git clone https://github.com/ultralytics/yolov5.git

 

2.Python 3.8系で仮想環境構築

仮想環境を作らない場合ライブラリのインストールに飛んでください。

 

py -3.8 -m venv ./venv
.\venv\Scripts\activate
 

ライブラリのインストール

python -m pip install --upgrade pip setuptools
cd yolov5
pip install -r requirements.txt
 

3.静止画テスト

「images」フォルダを作成して、適当な画像を入れてテストする。

python -m pip install --upgrade pip setuptools
 

こちらは「yolov5s.pt」が自動でダウンロードされ実行されます。

 

1秒くらいで検出結果が出力されます。

「runs\detect\exp」の中に検出された画像が保存されているので確認。

 

 

見つかってますよーー笑

数値は予測の確信度で1が最大です。

 

 

リモートにゃーく

 

 

にゃんてこったあーー!!

自信満々にdogって言いやがった笑

 

吾輩は猫である

 

この画質で誤検出だとこの先がちょっと心配になりますね。。。

per??

 

 

ちなみに、セグメンテーションも

対応したモデルをダウンロード「yolov5m-seg.pt」すればさくっとできます。

 

python segment/predict.py --weights yolov5m-seg.pt --source images/test2.jpg

 

セグメンテーションだとネコちゃんになれてよかった・・

と思ったら一匹がウシちゃんに変身しています笑

 

4.訓練済みモデルをダウンロード

さて、次は動画でリアルタイム検出をするための準備です。

「yolov5m.pt」をダウンロードしてyolov5フォルダの中に配置しておく。

 

github.com

 

大きさ別に5種類用意あり、大きい方が精度が上がりますが速度は遅くなります。

 

 

5.動画テスト

python detect.py --source images/test.mp4 --conf 0.5 --weights yolov5m.pt
 
 

うまく検出できていますね!!

かわいいーー

 

とりあえず動かせてよかったです。

 

 

以上、【YOLOv5】でリアルタイムネコ検出でした。

 

次は最新のYOLOv8を動かしてみたいと思います。

ではまた。

 

================================

5/28追記:【YOLOv8】動かしてみました。

ai-wonderland.com

================================