YOLOv3をPyTorch1.4で動かしてみた
はじめに
PyTorch1.4で動作するYOLOv3の実装を、Ultralytics LLCという会社が公開しているので試してみた。
備忘録的に書きなぐっているので、内容が雑なのはご容赦。
環境
- OS: Ubuntu18.04
- GPU: GeForce GTX 1070
pytorchの動作確認までの手順
- Ubuntu18.04をインストールする。
-
パッケージを最新化する。
$sudo apt update
$sudo apt upgrade
-
CUDA Toolkit 10.1 update2 Archiveのインストール
-
以下のコマンドを実行する。
$wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
$sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
$sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
$sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
$sudo apt-get update
$sudo apt-get install cuda-10-1
- cuda公式サイトのコマンドのままだと最新のバージョン(10.2)がインストールされるので注意。
この記事投稿時はpytorchは10.2に未対応。
apt-get install cuda-10-1 のようにバージョンを明示する必要がある。
また、aptではなく、apt-getを使っている。apt upgradeしたときに問題起こるかも。
- インストール中に、secure bootのパスワード登録が求められる。適当に登録した。よくわからなかった。
-
".bashrc"に以下を追記する。
$gedit ~/.bashrc
---
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
-
anacondaのインストール
- インストーラをダウンロードする。
https://www.anaconda.com/distribution/#download-section
から、以下を選択する。
---
Python 3.7 version
64-Bit (x86) Installer (522 MB)
- インストーラを実行する。
$bash Anaconda3-2020.02-Linux-x86_64.sh
-
pytorch環境構築
-
適当にconda環境を切る。
$conda create -n pytorch1_4 python=3.7
$conda activate pytorch1_4
pytorchをインストールする。
$conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
-
pytorch動作確認
以下のパイソンコードを実行する。
from __future__ import print_function
import torch
x = torch.rand(5, 3)
print(x)
print(torch.cuda.is_available())
''' 出力
tensor([[0.1166, 0.4387, 0.5680],
[0.2340, 0.6470, 0.9463],
[0.2673, 0.2899, 0.2766],
[0.1243, 0.6881, 0.5566],
[0.3168, 0.7495, 0.0149]])
True
'''
yolov3を動かす
-
ここのリポジトリをクローンする。
- 同ページの Pretrained Weights のリンク先から、拡張子がptのものをダウンロードして、yolov3/weights/に置く。
今回は、yolov3-tiny.ptを落とした。
- サンプル実行する。
$cd yolov3
$python3 detect.py --cfg cfg/yolov3-tiny.cfg --weights yolov3-tiny.pt --source ./data/samples/zidane.jp
- Ubuntu18.04をインストールする。
-
パッケージを最新化する。
$sudo apt update $sudo apt upgrade
-
CUDA Toolkit 10.1 update2 Archiveのインストール
-
以下のコマンドを実行する。
$wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin $sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600 $sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub $sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /" $sudo apt-get update $sudo apt-get install cuda-10-1
- cuda公式サイトのコマンドのままだと最新のバージョン(10.2)がインストールされるので注意。
この記事投稿時はpytorchは10.2に未対応。
apt-get install cuda-10-1 のようにバージョンを明示する必要がある。
また、aptではなく、apt-getを使っている。apt upgradeしたときに問題起こるかも。 - インストール中に、secure bootのパスワード登録が求められる。適当に登録した。よくわからなかった。
- cuda公式サイトのコマンドのままだと最新のバージョン(10.2)がインストールされるので注意。
-
".bashrc"に以下を追記する。
$gedit ~/.bashrc --- export PATH="/usr/local/cuda/bin:$PATH" export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
-
-
anacondaのインストール
- インストーラをダウンロードする。
https://www.anaconda.com/distribution/#download-section
から、以下を選択する。
---
Python 3.7 version
64-Bit (x86) Installer (522 MB)
- インストーラを実行する。
$bash Anaconda3-2020.02-Linux-x86_64.sh
- インストーラをダウンロードする。
-
pytorch環境構築
-
適当にconda環境を切る。
$conda create -n pytorch1_4 python=3.7 $conda activate pytorch1_4
pytorchをインストールする。
$conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
-
pytorch動作確認
以下のパイソンコードを実行する。from __future__ import print_function import torch x = torch.rand(5, 3) print(x) print(torch.cuda.is_available()) ''' 出力 tensor([[0.1166, 0.4387, 0.5680], [0.2340, 0.6470, 0.9463], [0.2673, 0.2899, 0.2766], [0.1243, 0.6881, 0.5566], [0.3168, 0.7495, 0.0149]]) True '''
-
yolov3を動かす
-
ここのリポジトリをクローンする。
- 同ページの Pretrained Weights のリンク先から、拡張子がptのものをダウンロードして、yolov3/weights/に置く。
今回は、yolov3-tiny.ptを落とした。
- サンプル実行する。
$cd yolov3
$python3 detect.py --cfg cfg/yolov3-tiny.cfg --weights yolov3-tiny.pt --source ./data/samples/zidane.jp
今回は、yolov3-tiny.ptを落とした。
$cd yolov3
$python3 detect.py --cfg cfg/yolov3-tiny.cfg --weights yolov3-tiny.pt --source ./data/samples/zidane.jp
何個かモジュールが無いぞと怒られるので、適宜インストールする。
動いたらyolov3/outputに結果が出力される。
学習とアノテーション
学習手順
- tensorboardをインストールする。(
pip install tensorboard
)
-
Pretrained Weights のリンク先からyolov3-spp-ultralytics.ptをダウンロードしてweightsディレクトリに置く。
-
Tutorials のTrain Custom Dataの手順を実行する。(手順5、6は必要であれば実施)。
アノテーション
labelImgインストール
-
ここのリポジトリをクローンする。をクローンする。
-
同ページの Python 3 + Qt5 (Recommended) のコマンドを実行する。
例:
$sudo apt-get update
$sudo apt-get install pyqt5-dev-tools
$cd labelImg
$pip install -r requirements/requirements-linux-python3.txt
$make qt5py3
$python labelImg.py
使い方(Yoloフォーマットでの出力時の注意事項が丁寧)
https://demura.net/deeplearning/14350.html
余談
pip install tensorboard
)同ページの Python 3 + Qt5 (Recommended) のコマンドを実行する。
例:
$sudo apt-get update
$sudo apt-get install pyqt5-dev-tools
$cd labelImg
$pip install -r requirements/requirements-linux-python3.txt
$make qt5py3
$python labelImg.py
使い方(Yoloフォーマットでの出力時の注意事項が丁寧)
https://demura.net/deeplearning/14350.html
最初は、ここの実装を試そうとしたが、推奨PyTorchのバージョンが古い(0.4)のでメンテされてない可能性があるのと、重みファイルのダウンロードに2度ほど失敗したのであきらめた。
Author And Source
この問題について(YOLOv3をPyTorch1.4で動かしてみた), 我々は、より多くの情報をここで見つけました https://qiita.com/harayama_dev68/items/fc660bec06ee05ed32c3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .