LoginSignup
1
0

More than 3 years have passed since last update.

YOLOv3をPyTorch1.4で動かしてみた

Last updated at Posted at 2020-04-03

はじめに

PyTorch1.4で動作するYOLOv3の実装を、Ultralytics LLCという会社が公開しているので試してみた。
備忘録的に書きなぐっているので、内容が雑なのはご容赦。

環境

  • OS: Ubuntu18.04
  • GPU: GeForce GTX 1070

pytorchの動作確認までの手順

  1. Ubuntu18.04をインストールする。
  2. パッケージを最新化する。

    $sudo apt update
    $sudo apt upgrade
    
  3. CUDA Toolkit 10.1 update2 Archiveのインストール

    1. 以下のコマンドを実行する。

      $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のパスワード登録が求められる。適当に登録した。よくわからなかった。
    2. ".bashrc"に以下を追記する。

      $gedit ~/.bashrc
      ---
      export PATH="/usr/local/cuda/bin:$PATH"
      export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
      
  4. anacondaのインストール

    1. インストーラをダウンロードする。
      https://www.anaconda.com/distribution/#download-section
      から、以下を選択する。
      ---
      Python 3.7 version
      64-Bit (x86) Installer (522 MB)
    2. インストーラを実行する。
      $bash Anaconda3-2020.02-Linux-x86_64.sh
  5. pytorch環境構築

    1. 適当にconda環境を切る。

      $conda create -n pytorch1_4 python=3.7
      $conda activate pytorch1_4
      
    2. pytorchをインストールする。
      $conda install pytorch torchvision cudatoolkit=10.1 -c pytorch

    3. 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を動かす

  1. ここのリポジトリをクローンする。
  2. 同ページの Pretrained Weights のリンク先から、拡張子がptのものをダウンロードして、yolov3/weights/に置く。
    今回は、yolov3-tiny.ptを落とした。
  3. サンプル実行する。
$cd yolov3  
$python3 detect.py --cfg cfg/yolov3-tiny.cfg --weights yolov3-tiny.pt --source ./data/samples/zidane.jp

何個かモジュールが無いぞと怒られるので、適宜インストールする。
動いたらyolov3/outputに結果が出力される。

学習とアノテーション

学習手順

  1. tensorboardをインストールする。( pip install tensorboard )
  2. Pretrained Weights のリンク先からyolov3-spp-ultralytics.ptをダウンロードしてweightsディレクトリに置く。
  3. TutorialsTrain Custom Dataの手順を実行する。(手順5、6は必要であれば実施)。

アノテーション

labelImgインストール
  1. ここのリポジトリをクローンする。をクローンする。
  2. 同ページの 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
    
  3. 使い方(Yoloフォーマットでの出力時の注意事項が丁寧)
    https://demura.net/deeplearning/14350.html

余談

最初は、ここの実装を試そうとしたが、推奨PyTorchのバージョンが古い(0.4)のでメンテされてない可能性があるのと、重みファイルのダウンロードに2度ほど失敗したのであきらめた。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0