Tensorflow環境構築手順

やっとUbuntuにTensorflowがインストールできたので防備録的に手順を。

概ね手順はここ(https://qiita.com/konzo_/items/3e2d1d7480f7ef632603)通りである。

まずPCの環境。
CPU:Core i5 9400F
GPU:GeForce RTX 2060
OS:Ubuntu 18.04
python:3.6.7

インストールしたもの。
Nvidiaビデオドライバ:410.104
CUDA:10.0
CuDNN:7.4.1
tensorflow:tensorflow-gpu 1.13.1

1.環境の更新

2.gitのインストール

3.ビデオドライバのインストール

CUDAやTensorflowと合わせる必要があるため、今回は410を入れる。

3.1.nouveauグラフィックドライバの無効化

コマンドを打って何も表示されなければ何もせず。リストが表示されればnouveauドライバを無効にする。

3.2.ビルドツールのインストール

参考元にはなぜやるのかわからないとあるが、いずれ入れることになるのでこのタイミングで入れておく。

3.3.NVIDIAグラフィックドライバのインストール

再起動したらインストール確認

表が表示され、ドライバのバージョンが表示されるので確認する。

4.CUDAのインストール

NVIDIAの公式サイト(https://developer.nvidia.com/cuda-toolkit-archive)からダウンロードしてくる。
NVIDIAのトップページからCUDAを辿っていくと10.1のダウンロードに行き着くので、ここでLegacy Releasesを選択してArchiveからダウンロード。

そしてdebファイルをダウンロードしてコマンド実行。

末尾に2行追加。

再起動して、CUDAのインストール確認

5.cuDNNのインストール

CUDA同様、NVIDIAの公式サイト(https://developer.nvidia.com/cudnn)からダウンロードする。
ログインして、質問に答えて、使用許諾の同意にチェックをつけるとダウンロードができるが、今回は7.4をインストールしたいので、Archived cuDNN Releasesを選択してアーカイブからダウンロードを行う。
7.4は7.4.1と7.4.2があるが、今回は7.4.2を選択。7.4.2のCUDAバージョンが10.0のリンクを選択。

Ubuntu18.4の次の2つをダウンロードする。
・Runtime
・Developer Library
必要であればコードサンプルとドキュメントもダウンロードすればよい。
・Code Samples and User Guide

ダウンロード後、ダウンロードフォルダに移動してインストール。

6.tensorflow-gpu 1.13.1のインストール

anacondaやvirtualenvは使わないのでそのままインストールする。

pip3が使えない場合は先にこのコマンド。

7.確認

エラーがでなければ成功!

ここまでの手順がはっきりするまで、結構大変でした。

Tensorflowの導入

UbuntuにDeepLearningの環境を構築する。

CPU:Core i5 9400F
GPU:GeForce RTX 2060

NVIDIA Driver:418
CUDA:10.1
cuDNN:7.4
Tensorflow:tensorflow-gpu1.13.0

しかし、何度インストールを試みてもうまくインストールできない。
原因がわからないが調べていくうちに原因がわかってきた。

ここに(https://qiita.com/konzo_/items/a6f2e8818e5e8fcdb896)原因が整理されていた。
GPUのドライバは最新の418が入れられるのだが、tensorflow-gpu1.13.0が対応しているのはCUDA10.0。CUDA10.1には対応していないということだ。

本当にこういう記事は助かります。

明日再びTensowFlow環境の構築を最初からしてみよう。

Ubuntu 19.04へのアップグレード

Ubuntu18.04LTSを使用していたが、19.04が出たと言うことで早速アップグレードを試してみた。
ソフトウェアとアップデート画面から、Ubuntuの新バージョンの通知をすべての新バージョンに変更してソフトウェアの更新を行った見たところ、18.10へのアップグレードができるようだ。
なのでアップグレードができる18.10へそのままアップグレードを試してみたところ、、、一通りインストールが終わり再起動したらプロンプトが表示されたまま起動が進まなくなってしまった。

この手順はtensorflowなどを一通り入れてからも、18.04をクリーンインストールした直後でも同じだったので、自分の環境では合わないらしい。
コマンドでアップグレードを行ったところこれはうまく行った。ソフトウェアとアップデート画面からのアップグレードがうまく行かなかったのは単純に途中の質問の答え方がまずかっただけかもしれない。
調子に乗って19.04へのアップグレードも行ったのだが、これもまたうまく行かなかった。

しかしUbunutは安定した環境での利用が前提でインストールしているので、結局は18.04LTSでの使用に戻すことになる。

Ubuntu 18.4 LTS の導入

PCのCPUからビデオカードまでを一新したので、Windows10だけでなくUbuntuのインストールもしてデュアルブートにした。

PCの環境
・CPU:Core i5 9400F
・メモリ:16G
・ビデオ:RTX2060
・マザー:MSIのマザー

WindowsとUbuntuのインストールまでは問題なく行えたが、PCをブートしても何故かGRUBが起動せず毎回Windowsが起動してしまう。

とりあえず大事なのは、
・BIOSをUEFIにする
・セキュアブートは切る
・ブートローダーにインストール先はWindows Boot Managerとは別にする

これは環境によっても違うので参考程度に。

何度かパーティションを切り直したりブートローダーのインストール先を切り替えたりBIOSの設定画面でUEFIのブート順を見直して、無事デュアルブートが成功。

OpenCV 物体検出、分類器作成と検出テスト その3

OpenCVの家紋の物体検出をするための分類器をその2で作成しました。
ここではその分類器を使って検出をしてみます。

まずは、学習に使用した正解画像の中から何枚か選んで。

いい感じで検出できていますね。4枚目はひし形の枠は外れてしまいましたが、十分許容範囲かと思います。
そもそも学習に使用した画像なので、これで検出されないと困ってしまいますが。

 

続いて、学習には使用していないテスト画像で検出確認。


素晴らしい検出結果ですね


これも良いです。左右の家紋は切れていたりかぶっていたりで検出できなかったようです


提灯の家紋が検出できず、傘の中央部分が家紋と判断されています。
傘についている小さい家紋はバッチリです。
提灯のは角度がつきすぎているのが検出できない原因でしょうね。


全てではありませんが、かなり検出できていますね。


左二つは検出できました。その隣も検出して欲しかったのですが。


中央の金ピカのは検出されませんでした。右側のは確かに家紋っぽい。

 

今回60種類の家紋を学習させましたが、テスト画像内の家紋は学習に使用していない家紋ばかりです。にも関わらず家紋というものの特徴をよく捉えて判断しているのがわかります。
私の環境で、1920×1500サイズの画像検出の処理時間は900msから1300ms、小さい640×480程度の画像は300ms程度でした。パラメータによって制限をつけることで処理時間を短くすることも可能です。

 

次は検出してほしかったのに検出できなかったテスト画像。


角度が大事ですね。
ですが、これは角度をつけた画像を学習をさせることで十分検出できるようになると思います。

 

最後に家紋が含まれない画像。


1枚目の画像は女性の服の模様が家紋ですね、検出されてしまいました。
それ以外は標識だったりマークだったりを誤検出していません。
なかなかの結果だと思います。

 

次回交通標識で分類器作成の機会学習をやってみたいと思います。
最近ホンダで代車を借りたところ、走行中にインパネ部分に標識が表示されました。速度標識や追い越し禁止などが表示されます。

面白かったのでこれを作ってみたいと思います。