YOLOv5のインストール【Python/PyTorchで物体検出】

YOLOv5のインストール【Pythonで物体検出】 データ分析

この記事では、YOLOv5について解説しています。

本記事の内容

  • YOLOv5とは?
  • YOLOv5のシステム要件
  • YOLOv5のインストール
  • YOLOv5の動作確認

それでは、上記に沿って解説していきます。

YOLOv5とは?

YOLOv5は、COCOデータセットでトレーニングされた物体検出技術です。
技術とは、アーキテクチャとモデルを指しています。

YOLOvシリーズの最新版と言うことになります。
YOLOv5がリリースされたのは、2020年6月9日です。

YOLOvシリーズでは、処理速度・精度が最も高いとのことです。
そりゃ、そうですよね。
そうじゃないと、新たにバージョンアップする必要がありませんから。

また、それまでとは異なり、YOLOv5はDarknetを利用していません。
その代わりに、PyTorchで実装されています。

ここでPyTorchについて、少し触れておきます。
PyTorchは、機械学習のフレームワークで最も勢いがあります。

上の条件で調べた結果が、次のグラフです。

ここ1~2年の間に、PyTorchがTensorFlowを抜きました。
時代は、PyTorchになったのです。

この流れに、YOLOv5も乗ったと言えます。

以上、YOLOv5についての説明でした。
次は、YOLOv5のシステム要件を確認します。

YOLOv5のシステム要件

現時点(2021年8月)でのYOLOv5の最新バージョンは、5.0となります。
この最新バージョンは、2021年4月12日にリリースされています。

YOLOv5のシステム要件として、以下がポイントとなります。

  • OS
  • Python
  • PyTorch

それぞれを下記で説明します。

OS

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

OSに関しては、Pythonが動けばどこでもOKのようです。
検証で利用しているOSは、Windows 10となります。

Python

サポート対象となるバージョンは、Python 3.6以降です。
ただし、Python 3.6はそのうちサポート対象外になるかもしれません。

以下は、Pythonの公式開発サイクルです。

バージョンリリース日サポート期限
3.62016年12月23日2021年12月
3.72018年6月27日2023年6月
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月

これを見る限り、Python 3.6のサポート期限は2021年末までとなっています。

なお、Python 3.6からPython 3.9へのアップグレードは簡単です。
アップグレードの手順には、次の記事でまとめています。

検証では、以下のPythonを利用しています。

>python -V 
Python 3.9.6

PyTorch

PyTorch 1.7以降が、必須となります。
PytTorchのインストールに関しては、次の記事で説明しています。

検証では、以下のPyTorchをインストールしています。

>python -c "import torch; print(torch.__version__)" 
1.9.0+cu111

まとめ

仮想環境の利用をおススメします。

requirements.txt
https://github.com/ultralytics/yolov5/blob/master/requirements.txt

上記を確認すると、多くのパッケージが記載されています。
インストールすると、さらに多くの依存パッケージがインストールされます。

よって、YOLOv5は仮想環境へのインストールをおススメします。

IDEにPyCharmを利用すれば、意識しなくても仮想環境の利用が可能です。
プロジェクト毎に仮想環境にすることができます。

また、以下のようにコマンドでも簡単に仮想環境を利用できます。

以上、YOLOv5のシステム要件に関しての説明でした。
次は、YOLOv5をインストールしていきます。

YOLOv5のインストール

まずは、現状のインストール済みパッケージを確認しておきます。
PyTorchをインストールしただけの状況です。

>pip list  
Package           Version  
----------------- ------------  
numpy             1.21.1  
Pillow            8.3.1  
pip               21.2.3  
setuptools        57.4.0  
torch             1.9.0+cu111  
torchaudio        0.9.0  
torchvision       0.10.0+cu111  
typing-extensions 3.10.0.0

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、YOLOv5のインストールです。
そのためには、まずはGitHubからソースをダウンロードします。

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

Windowsでgitコマンドを動かすためには、次の記事が参考になります。

gitコマンドを使えない場合、次のページからダウンロードしてもOKです。
https://github.com/ultralytics/yolov5

ダウンロード(解凍)した「yolov5」フォルダを確認します。

「requirements.txt」を利用して、インストールします。
「yolov5」フォルダに移動してから、次のコマンドを実行。

pip install -r requirements.txt

インストールには、しばらく時間がかかります。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list 
Package                 Version 
----------------------- --------------------- 
absl-py                 0.13.0 
cachetools              4.2.2 
certifi                 2021.5.30 
charset-normalizer      2.0.4 
colorama                0.4.4 
cycler                  0.10.0 
google-auth             1.34.0 
google-auth-oauthlib    0.4.5 
grpcio                  1.39.0 
idna                    3.2 
kiwisolver              1.3.1 
Markdown                3.3.4 
matplotlib              3.4.2 
numpy                   1.21.1 
oauthlib                3.1.1 
opencv-python           4.5.3.56 
pandas                  1.3.1 
Pillow                  8.3.1 
pip                     21.2.3 
protobuf                3.17.3 
pyasn1                  0.4.8 
pyasn1-modules          0.2.8 
pyparsing               2.4.7 
python-dateutil         2.8.2 
pytz                    2021.1 
PyYAML                  5.4.1 
requests                2.26.0 
requests-oauthlib       1.3.0 
rsa                     4.7.2 
scipy                   1.7.1 
seaborn                 0.11.1 
setuptools              57.4.0 
six                     1.16.0 
tensorboard             2.6.0 
tensorboard-data-server 0.6.1 
tensorboard-plugin-wit  1.8.0 
thop                    0.0.31.post2005241907 
torch                   1.9.0+cu111 
torchaudio              0.9.0 
torchvision             0.10.0+cu111 
tqdm                    4.62.0 
typing-extensions       3.10.0.0 
urllib3                 1.26.6 
Werkzeug                2.0.1 
wheel                   0.36.2

かなりの数のパッケージが、インストールされました。
やはり、YOLOv5は仮想環境にインストールすべきですね。

以上、YOLOv5のインストールを説明しました。
最後に、YOLOv5の動作確認を行います。

YOLOv5の動作確認

「yolov5」フォルダに移動しておきます。
次のコマンドを実行して、YOLOv5の動作確認を行います。

python detect.py --source ./data/images/ --weights yolov5s.pt --conf 0.4

「–source」で指定した場所にある画像を対象に物体検出を実施します。
ダウンロードした時点では、次の画像が用意されています。

「–weights 」で指定したモデルを物体検出時に利用します。
ダウンロードした時点では、「yolov5s.pt」は存在していません。

存在していない場合は、「yolov5s.pt」がダウンロードされます。
存在していれば、それ以降はダウンロードの処理は実施されません。

では、実際に上記のコマンドを実行します。
処理には、少し時間がかかります。

Results saved to runs\detect\exp 
Done. (0.123s)

上記が表示されると、物体検出は完了となります。
そして、その結果は「runs\detect\exp」に保存されています。

何やら、枠で囲ってありますね。
男性二人の映っている方を見てみましょう。

さすがに「ジダン」とは出ないのですね。
「ネクタイ」は、ちゃんと検出・認識できています。

「tie 0.66」における数字「0.66」は、確率値となります。
YOLOv5がどれだけ自信を持って認識したのかを示す数値と言えます。

スクリプト実行時に「–conf 0.4」と指定していました。
これは、確率値が0.4以下は表示しないということです。

ちなみに、「–conf 0.2」と指定して実行した結果は以下。

personが1個、ネクタイが1個、さらに追加で検出されました。
YOLOv5の動作確認としては、ここまでで十分でしょう。

以上、YOLOv5の動作確認の説明でした。

タイトルとURLをコピーしました