Windows 10 で YOLOv3 を自前画像で学習させる(環境構築編)【機械学習】
IT技術
物体検出モデル YOLOv3 を自前画像で学習させよう
「YOLOv3」とは、物体検出(画像から物体の位置と種類を検出)する機械学習モデルです。
この「YOLOv3」を、Windows 10 上で動かしてみたいと思います!
どんなものができるの?
今回は、YOLOv3 を動作させる環境を構築します。
最終的に目指すのは、以下のようなイメージです。
2つの本が、別々のものとして検出されています。
「環境構築編」では、これを実現するための環境構築を目指します。
ディープラーニングの開発環境
ディープラーニングの開発環境として、Google が開発したフレームワーク「Tensorflow(テンソルフロー)」と、フロントエンドには「Keras(ケラス)」を使っていきます。
そして、物体検出のモデルは「YOLOv3」という環境になります。
環境構築の流れ
- Anaconda(Python 仮想環境)のインストール
- CUDA のインストール
- cuDNN のインストール
- Anadonda 仮想環境の作成
- Tensorflow や Keras などの必要パッケージのインストール
- MNIST で動作確認
こちらの記事もオススメ!
2020.07.28機械学習 特集知識編人工知能・機械学習でよく使われるワード徹底まとめ!機械学習の元祖「パーセプトロン」とは?【人工知能】ニューラルネ...
2020.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 がインストールされたフォルダにコピーしてください。
- cudnn64_7.dll
- cudnn.h
- 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 を使った物体検出を自前画像で学習させていきます。
お楽しみに!
次回の記事はこちら
こちらの記事もオススメ!
2020.07.28機械学習 特集知識編人工知能・機械学習でよく使われるワード徹底まとめ!機械学習の元祖「パーセプトロン」とは?【人工知能】ニューラルネ...
2020.07.17ライトコード的「やってみた!」シリーズ「やってみた!」を集めました!(株)ライトコードが今まで作ってきた「やってみた!」記事を集めてみました!※作成日が新し...
関連記事
ライトコードでは、エンジニアを積極採用中!
ライトコードでは、エンジニアを積極採用しています!社長と一杯しながらお話しする機会もご用意しております。そのほかカジュアル面談等もございますので、くわしくは採用情報をご確認ください。
採用情報へ
「好きを仕事にするエンジニア集団」の(株)ライトコードです! ライトコードは、福岡、東京、大阪、名古屋の4拠点で事業展開するIT企業です。 現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。 いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。 システム開発依頼・お見積もり大歓迎! また、現在「WEBエンジニア」「モバイルエンジニア」「営業」「WEBデザイナー」を積極採用中です! インターンや新卒採用も行っております。 以下よりご応募をお待ちしております! https://rightcode.co.jp/recruit