自分で画像を学習して、物体認識を行う　Part 2

**まだPart1をみていない人はこちらをチェックしてください！**
⬇︎
https://qiita.com/kojimakentaro/items/f4e52650ef886d511d49

#サンプルを実際に検証(detect)してみる

今回はgoogle driveを使用して行きます。

まずは自分のgoogleアカウントでdriveにログインor新規作成してください。
⬇︎
https://drive.google.com/drive/u/2/my-drive


ログインができたら、Part1で作成したyolov5-masterファイルをgoogle driveのマイドライブにドラック＆ドロップします。

![スクリーンショット 2020-12-10 15.22.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931014/14758d60-1a35-5f1a-e211-4225fc5b4a1c.png)


これでgoogledriveへのアップは完了です。

そしたら、現在あるデータのサンプルで実行してみましょう。

drive上の　**「新規」**　ボタンから、　**「その他」**⇨**「google colaboratory」**に移動します。

![スクリーンショット 2020-12-10 15.41.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931014/08b65f2e-ac43-2714-0da7-e3553cce7717.png)
![スクリーンショット 2020-12-10 15.41.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931014/ec6e551a-2154-940b-be3d-1be7734205a1.png)

開けたら、このような画面が出ると思います。


![スクリーンショット 2020-12-10 15.49.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931014/dcf439f7-22de-1430-588b-585cbf05a624.png)

これができたら、右上にあるファイルなどの欄から**「ランタイム」**を選択します。
⬇︎
**「ランタイムのタイプを変更」**を選び、**「GPU」**を選択します。

![スクリーンショット 2020-12-10 15.51.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931014/5ba9ee0c-aea2-6edd-8ad3-d79c30b7c006.png)

これで保存します。


```ruby:googlecolaboratory
!nvidia-smi
```

まず初めに実行環境を整えます。
GPUのスピードを上げるために、上記のコードを実行します。

![スクリーンショット 2020-12-10 15.56.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931014/8ca90456-3b8a-f5ef-46ff-a54a70e24e23.png)

真ん中あたりに**「Tesla P100」**という表示になるまで、やり直しを行います。(学習スピードを上げるため)

もし、最初にこの値が出なかった場合は、ファイルなどの並びの
**「ランタイム」**から
**「ランタイムを出荷時設定にリセット」**を行い、
**「Tesla P100」**が出るまで繰り返してください。

```ruby:googlecolaboratory
from google.colab import drive
drive.mount('/content/drive')
```

これを実行するとgoogleacountの使用許可が求められるので、許可したアカウントのURLをコピーして、google colaboratoryの空白に入力します。

マウントが成功すると、
`Mounted at /content/drive`
と表示されます。

yolov5-masterまで移動します。

```ruby:googlecolaboratory
cd /content/drive/My Drive/yolov5-master
```

`/content/drive/My Drive/yolov5-master`
現在いるパスが表示されます。このように表示できていれば成功です。

```ruby:googlecolaboratory
import os
os.chdir("/content/drive/My Drive")
```

次にセットアップを行います。

```ruby:googlecolaboratory
!git clone https://github.com/ultralytics/yolov5  # clone repo
!pip install -qr yolov5/requirements.txt  # install dependencies (ignore errors)
%cd yolov5

import torch
from IPython.display import Image, clear_output  # to display images
from utils.google_utils import gdrive_download  # to download models/datasets

clear_output()
print('Setup complete. Using torch %s %s' % (torch.__version__, torch.cuda.get_device_properties(0) if torch.cuda.is_available() else 'CPU'))
```

`Setup complete. Using torch 1.7.0+cu101 _CudaDeviceProperties(name='Tesla P100-PCIE-16GB', major=6, minor=0, total_memory=16280MB, multi_processor_count=56)`
上記が表示されれば成功です。


```ruby:googlecolaboratory
pip install -U PyYAML
```
PyYAMLをインストールします。(のちに必要になるかも）


セットアップ完了したら、実際にサンプルを今あるデータのみで検証してみます。

```ruby:googlecolaboratory
!python detect.py --weights yolov5s.pt --img 640 --conf 0.25 --source data/images/
```

学習が成功すると、
![スクリーンショット 2020-12-10 17.00.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931014/16816e0d-fcc4-4967-9f40-a8dfcc42760d.png)

検証(detect)された画像が下から2行目のバスの場所に保存されます。

私の場合は、runsの中のdetectの中のexp5というファイルに保存されました。

実際に見てみましょう。
![スクリーンショット 2020-12-10 17.03.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931014/4f7cc936-58e5-cbf8-95cf-2adb4faf1cd1.png)
runsに移動します。

![スクリーンショット 2020-12-10 17.03.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931014/2bb22bef-a273-3eb4-35cb-dc7971e18006.png)

detectを開きます。


![スクリーンショット 2020-12-10 17.03.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931014/8117b462-bc6b-360d-07cd-af66c9933d75.png)

exp5を開きます。

![スクリーンショット 2020-12-10 17.03.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931014/89f230a8-517f-591a-649c-44fca887e0d9.png)

各画像このように元の学習データでしっかりと学習できていますね。

今回は、サンプルデータでの実際の検証を行ってみました。

次回は自分で学習データを作るところに移りたいと思います。