Python3でOpenCV、TensorFlowを使った物体検知の体験した際の備忘録です。
#自分のPCの状態
私のmacにはpyenvでpythonは3.7.3が入っている状態です。virtualenvで仮想環境は作っていません。
Homebrewは入っています。
wgetが入っていない場合はターミナルから
brew install wget
でwgwtをインストールしておきます。
#OpenCVをインストール
OpenCVとはコンピューターで画像や動画を処理するのに必要な機能が実装されているライブラリです。(https://www.atmarkit.co.jp/ait/articles/1507/27/news154.html)
ターミナルで
brew install opencv
pip3 install opencv-python
こんな感じでカメラから映像を表示できるようです。
キーボードでqを押すと終了します。
import cv2
cap = cv2.VideoCapture(0)
while(True):
ret, frame = cap.read()
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
#TensorFlowをインストール
TensorFlow(テンソルフロー)」とは、Googleが開発した機械学習のライブラリです。
pipを更新して、tensorflowをインストールします。
pip install --upgrade pip
pip install tensorflow
よくわからなかったので、とりあえずtflite_runtimeもインストールしておきました。pytho3.7なので、下記のもの
pip3 install https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp37-cp37m-macosx_10_14_x86_64.whl
#物体検知を体験
https://qiita.com/deneimonmaru/items/159d318c29c98ff2030d
を参考にしてます。
物体検知のプログラムをダウンロードします。
git clone https://github.com/EdjeElectronics/TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi.git
「TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi」という長い名前のフォルダができます。フォルダ名が長いので、下記のコマンドで
★1:フォルダ名を「object-detection」という名前に変更します。
mv TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi object-detection
「object-detection」フォルダの中に入ります。
cd object-detection
どなたかが学習してくれたモデルをダウンロードして、解凍します。
★2:samplemodelに解凍されます(←「object-detection」フォルダの中に「samplemodel」フォルダが入っている状態:ここ大事)
wget https://storage.googleapis.com/download.tensorflow.org/models/tflite/coco_ssd_mobilenet_v1_1.0_quant_2018_06_29.zip
unzip coco_ssd_mobilenet_v1_1.0_quant_2018_06_29.zip -d samplemodel
下記のコマンドを実行するとwebカメラから物体検知するプログラムが動き始めます。(立ち上がりまで少し待ちましょう)
python3 TFLite_detection_webcam.py --modeldir=samplemodel
次回実行する時もcdコマンドで「object-detection」フォルダの中に入らないと上記のプログラムは実行できないので、気をつけましょう。
ちなみにPyCharmから実行すると動きませんでした。