15分で試せる物体検出 Tensorflow Lite

### 概要
Tensorflow_Lite（tensorflowの モバイル or IoT デバイス向け）
を手取り早く試したい、かつその辺の物を物体検出させて見たい人向け。
自分のPCのウェブカメラで試せます。
コマンドはmac向けです。
### 実行した環境：
MacBook Air (13-inch, Early 2015)
os_version 10.14.6
Python 3.7.4
### できること：
物体検出
80種類を学習したモデルで最大１０個まで同時に検出できる
[coco_datasetを学習](https://www.tensorflow.org/datasets/catalog/coco)


実行中のシーン

<blockquote class="twitter-tweet"><p lang="und" dir="ltr"><a href="https://t.co/hOliCcAcjt">pic.twitter.com/hOliCcAcjt</a></p>&mdash; EEEE (@mdra_1192) <a href="https://twitter.com/mdra_1192/status/1262224812157497345?ref_src=twsrc%5Etfw">May 18, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

### 手順：
#####大まかな流れ
1:参考githubのclone
2:仮想環境の設定
3:必要なソフトのinstall
4:学習済みモデルのinstall
5:実行

  



（参考サイト：[TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi](https://github.com/EdjeElectronics/TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi))
  
####具体的な流れ
まずはじめに、ターミナルを起動し、任意のディレクトリに移動したあと。
#####<1> 　参考サイトのgithub 取り込み

```terminal
git clone https://github.com/EdjeElectronics/TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi.git
```
#####<2> 　名前長いので変更　

```terminal
mv TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi tflite1
```
#####<3> 　tflite1に移動

```terminal
cd tflite1
```

#####<4> 　virtualenv持ってない人は install

```terminal
sudo pip3 install virtualenv
```
#####<5>　 仮想環境を作る（名前：tflite1-env）

```terminal
python3 -m venv tflite1-env
```

#####<6> 　仮想環境（tflite1-env）に入る

```terminal
source tflite1-env/bin/activate
```


#####<7>　 OpenCV (version 3.4.6.27) を install
※version 4　とかだとエラーでるらしい。

```terminal
pip3 install opencv-python==3.4.6.27
```
#####<8> 　pythonのversionを確認

```terminal
python --version
```

#####<9>　 pythonのversionに対応したTensorFlow_Lite_interpreter を install 
(TensorFlow_Lite_interpreterは実行のための必要最低限のソフト）

```terminal
#python_version　が　3.5 の場合
pip3 install https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp35-cp35m-macosx_10_14_x86_64.whl

#python_version　が　3.6 の場合
pip3 install https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp36-cp36m-macosx_10_14_x86_64.whl

#python_version　が　3.7 の場合
pip3 install https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp37-cp37m-macosx_10_14_x86_64.whl

```

(最悪```pip3 install tensorflow
```でも代替え可能　※ただし少しinstallに時間かかる)
詳しくは下記サイト
https://www.tensorflow.org/lite/guide/python
  
  


#####<10> 　Tensorflowのサイトから学習すみモデル（coco_ssd_mobilenet_v1）をダウンロード

```terminal
wget https://storage.googleapis.com/download.tensorflow.org/models/tflite/coco_ssd_mobilenet_v1_1.0_quant_2018_06_29.zip
```
wgetがうまく動かない場合は直接サイトからダウンロードしてtflite1内にファイルを移動でも可能 
 その場合は、ファイル名の変更お忘れなく
coco_ssd_mobilenet_v1_1.0_quant_2018_06_29
 を
 Sample_TFLite_model
に変更
  

#####<11>　 解凍して名前変更
直接サイトからダウンロードした人は省略してOK

```terminal
unzip coco_ssd_mobilenet_v1_1.0_quant_2018_06_29.zip -d Sample_TFLite_model
```

#####<12>　 実行

```terminal
python3 TFLite_detection_webcam.py --modeldir=Sample_TFLite_model
```
しばらくしたらカメラが立ち上がり、物体検出をしているウィンドウ出現します。
カメラの許可を求められたら許可してあげてください。

####その他
以下も興味あれば。

#####|1|　 画像ファイルの物体検出
--image='画像ファイル名を指定（同じディレクトリ内）'

```terminal
python TFLite_detection_image.py --modeldir=Sample_TFLite_model --image='test1.jpg'
```


#####|2|　 動画ファイルの物体検出
--video='ビデオファイル名を指定（同じディレクトリ内）'

```terminal
python TFLite_detection_video.py --modeldir=Sample_TFLite_model --video='test.mp4'
```
ぜひLGTMお願いします!