• トップ
  • ブログ一覧
  • Windows 10 で YOLOv3 を自前画像で学習させる(環境構築編)【機械学習】
  • Windows 10 で YOLOv3 を自前画像で学習させる(環境構築編)【機械学習】

    広告メディア事業部広告メディア事業部
    2020.05.15

    IT技術

    物体検出モデル YOLOv3 を自前画像で学習させよう

    「YOLOv3」とは、物体検出(画像から物体の位置と種類を検出)する機械学習モデルです。

    この「YOLOv3」を、Windows 10 上で動かしてみたいと思います!

    どんなものができるの?

    今回は、YOLOv3 を動作させる環境を構築します。

    最終的に目指すのは、以下のようなイメージです。

    2つの本が、別々のものとして検出されています。

    「環境構築編」では、これを実現するための環境構築を目指します。

    ディープラーニングの開発環境

    ディープラーニングの開発環境として、Google が開発したフレームワーク「Tensorflow(テンソルフロー)」と、フロントエンドには「Keras(ケラス)」を使っていきます。

    そして、物体検出のモデルは「YOLOv3」という環境になります。

    環境構築の流れ

    1. Anaconda(Python 仮想環境)のインストール
    2. CUDA のインストール
    3. cuDNN のインストール
    4. Anadonda 仮想環境の作成
    5. Tensorflow や Keras などの必要パッケージのインストール
    6. MNIST で動作確認

    こちらの記事もオススメ!

    featureImg2020.07.28機械学習 特集知識編人工知能・機械学習でよく使われるワード徹底まとめ!機械学習の元祖「パーセプトロン」とは?【人工知能】ニューラルネ...

    featureImg2020.07.17ライトコード的「やってみた!」シリーズ「やってみた!」を集めました!(株)ライトコードが今まで作ってきた「やってみた!」記事を集めてみました!※作成日が新し...

    Anaconda(Python仮想環境)のインストール

    初めに、Python の環境をインストールします。

    Python の環境は、Python のサイトよりインストーラをダウンロードすれば、インストールすることができます。

    ですが、ちょっと待ってください!!

    「Anaconda」で環境を切り替える

    先ほどお伝えした通り、今回は「Tensorflow 1.14.0」をインストールしていきます。

    さて、バージョンアップがあったとき、そのバージョンでも作成したアプリケーションを動かしてみたくなりませんか?

    例えばですが…

    バージョン 1.14 をアンインストールし、バージョン 2.0 をインストールしてテスト…
    終わったら、またバージョン 2.0 をアンインストールし、バージョン 1.14 をインストール…

    なんてしたくないですよね(泣)

    そんな時、使うのが「Anaconda」というソフトウェアです。

    これは、複数の Python 環境を、OS(Windows10)に手を加えることなく、仮想環境を切り替えて使えるのです

    Anaconda のインストール

    それでは、Anaconda をインストールしていきましょう。

    以下のサイトから、インストーラをダウンロードします。

    【Anaconda】
    https://www.anaconda.com/

    今回は、Windows 10 で動かすので、「Windows」をクリックしてください。

    バージョンを選択しダウンロード

    次に、「Python 3.7 Version」からダウンロードします。

    64bit 用と 32bit 用の2つのインストーラーがあります。ご自身の環境に合った方をダウンロードしてください。

    インストーラを起動

    ダウンロードが完了したら、インストーラを起動します。

    「次へ」を繰り返せば、インストール完了です。

    CUDA(クーダ)のインストール

    ディープラーニングでは、CPU だけでなく GPU も使うことで、学習速度を大幅に向上させることができます。

    現在は、NVIDIA 社が提供している GPU を使うことがほとんどで、ほぼ独占状態です。

    その GPU を使うときに必要なソフトウェアが、CUDA(Compute Unified Device Architecture)です。

    CUDA のインストール

    それでは、以下のサイトから、CUDA Toolkit をダウンロードしていきます。

    【CUDA Toolkit】
    https://developer.nvidia.com/cuda-downloads

    バージョンの選択

    今回は、「Tensoeflow 1.14.0」を使いますので、最新版ではなくバージョン 10.0 を使います

    インストーラを起動

    ダウンロードが完了したら、インストーラを起動。

    「次へ」を繰り返しクリックしていけば、インストールが完了します。

    cuDNN のインストール

    cuDNN(CUDA Deep Neural Network library )は、ニューラルネットワーク計算用のライブラリーです。

    一言でいうと、CUDA での処理を高速化してくれます

    cuDNN のインストール

    それでは、cuDNN のサイトからダウンロードしていきます。

    【NVIDIA cuDNN】
    https://developer.nvidia.com/cudnn

    メンバー登録

    ただ、最初に、「メンバー登録」が必要になりますので、登録していきましょう。

    cuDNNをダウンロード

    メンバー登録ができたら、再度「Download cuDNN」のリンクをクリックします。

    バージョンを選択

    「Download cuDNN v7.6.5 (November 5th, 2019), for CUDA 10.0」から、「CUDA 10.0」対応の「cuDNN v7.6.5」をダウンロードします。
    Windows 10 を使いますので、「cuDNN Library for Windows 10」を選びます。

    インストール

    次にインストールですが、ダウンロードした zip ファイルの中に、以下の3つのファイルがあります。

    CUDA がインストールされたフォルダにコピーしてください。

    1. cudnn64_7.dll
    2. cudnn.h
    3. cudnn.lib

    インストール先を変えてなければ、「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0」になります。

    Anaconda 仮想環境の作成

    それでは、Anaconda で仮想環境を作っていきます。

    まず、スタートメニューから「Anaconda3」下の「Anaconda Prompt」を起動します。

    仮想環境の作成

    「tf114」という名前の仮想環境を作っていきます。

    1conda create -n tf114 python=3.7

    ※ conda create -n [仮想環境名] python=3.7

    1Proceed ([y]/n)? y

    仮想環境を起動

    インストールが終わったら、早速、仮想環境を起動してみます。

    1conda activate tf114

    ※ conda activate [仮想環境名]

    Tensorflow や Keras などの必要パッケージのインストール

    パッケージのインストールは、「pipコマンド」を使います。

    Tensorflow のインストール

    この記事を書いている時の最新バージョンは 2.1.0 です。

    バージョン1系のプログラムがそのままでは動かないなど、大きく変更されています。

    今回、使うのは、「Tensorflow 1.14.0」と「Keras 2.2.4」です

    まずは、Tensorflow(GPU版)をインストールします。

    1(tf114)>pip install tensorflow-gpu==1.14.0
    1(tf114)>pip list
    2:
    3:
    4tensorboard          1.14.0
    5tensorflow-estimator 1.14.0
    6tensorflow-gpu       1.14.0
    7:
    1(tf114)>python -c "import tensorflow as tf;print(tf.__version__)"
    2:
    3:
    41.14.0

    GPUが無い場合は「pip install tensorflow==1.14.0」

    Keras のインストール

    次に、Keras をインストールします。

    1(tf114)>pip install keras==2.2.4
    1(tf114)>pip list
    2:
    3:
    4Keras                2.2.4
    5Keras-Applications   1.0.8
    6Keras-Preprocessing  1.1.0
    7:
    1(tf114)>python -c "import keras;print(keras.__version__)"
    2:
    3:
    42.2.4

    MNIST で動作確認

    Tensorflow と Keras のインストールが終わりました。

    MNIST(手書き文字)を学習させて、動作テストをしてみましょう!

    こちらのページに、Keras 用の MNIST 学習 Python サンプルプログラムがあります。

    【GitHub】
    https://github.com/keras-team/keras/blob/master/examples/mnist_cnn.py

    「mnist_cnn.py」という名前で保存して、Python コマンドで実行します。

    1(tf114)>python mnist_cnn.py

    学習時のログの見方

    実行したときに出力されるログから、ポイント抜粋します。

    トレーニングデータが 60,000 個、評価用データが 10,000 個入力として扱われます。

    1Train on 60000 samples, validate on 10000 samples

    GPU として「Geforce GTX 1060 6GB」が認識されました。

    1name: GeForce GTX 1060 6GB major: 6 minor: 1 memoryClockRate(GHz): 1.759

    学習の結果

    60,000個のトレーニングデータで12回目の学習が終了した結果、正解率は 0.9926(99.26%)となりました

    1Epoch 12/12
    260000/60000 [==============================] - 6s 96us/step - loss: 0.0243 - acc: 0.9925 - val_loss: 0.0267 - val_acc: 0.9926
    3Test loss: 0.026658646806161413
    4Test accuracy: 0.9926

    正解率などは、学習のたびに若干変わりますが、概ね 0.99xx になりますね!

    さいごに

    今回は、「事前の準備」と「MNIST」での動作確認までを解説しました。

    次回は、YOLOv3 を使った物体検出を自前画像で学習させていきます。

    お楽しみに!

    次回の記事はこちら

    featureImg2020.05.18Windows 10 で YOLOv3 を自前画像で学習させる(物体検出編)【機械学習】後編:物体検出モデル YOLOv3 を自前画像で学習させようこの記事では、物体検出する機械学習モデル「YOLOv3」を...

    こちらの記事もオススメ!

    featureImg2020.07.28機械学習 特集知識編人工知能・機械学習でよく使われるワード徹底まとめ!機械学習の元祖「パーセプトロン」とは?【人工知能】ニューラルネ...

    featureImg2020.07.17ライトコード的「やってみた!」シリーズ「やってみた!」を集めました!(株)ライトコードが今まで作ってきた「やってみた!」記事を集めてみました!※作成日が新し...

    関連記事

    featureImg2020.05.15Windows 10 で YOLOv3 を自前画像で学習させる(環境構築編)【機械学習】物体検出モデル YOLOv3 を自前画像で学習させよう「YOLOv3」とは、物体検出(画像から物体の位置と種類を検出)...

    featureImg2020.05.18Windows 10 で YOLOv3 を自前画像で学習させる(物体検出編)【機械学習】後編:物体検出モデル YOLOv3 を自前画像で学習させようこの記事では、物体検出する機械学習モデル「YOLOv3」を...

    featureImg2020.05.19Tensorflow2 で YOLOv3 を動かしてみた!【機械学習】Tensorflow2 で YOLOv3 を動かし画像から物体検出をしようこの手の新しいソフトウェアは、バージョンが変...

    featureImg2020.06.23Pytorchを使ってYOLOv3で物体検出をしてみた!【機械学習】Pytorch(パイトーチ)とは?今回は、Pytorch(パイトーチ) を使って、YOLOv3で物体検出してみたいと思...

    ライトコードでは、エンジニアを積極採用中!

    ライトコードでは、エンジニアを積極採用しています!社長と一杯しながらお話しする機会もご用意しております。そのほかカジュアル面談等もございますので、くわしくは採用情報をご確認ください。

    採用情報へ

    広告メディア事業部

    広告メディア事業部

    おすすめ記事

    エンジニア大募集中!

    ライトコードでは、エンジニアを積極採用中です。

    特に、WEBエンジニアとモバイルエンジニアは是非ご応募お待ちしております!

    また、フリーランスエンジニア様も大募集中です。

    background