はじめに
先行研究(DeepStyle: Multimodal Search Engine for Fashion and Interior Design)の環境を再現するために物体検出モデルであるYOLOv2を動かしてみました.
darkflowではYOLOv3を対応していないみたいなので,darkflowユーザーの方に見ていただけると幸いです.
実行環境
- Ubuntu:16.04
- GPU:Quadro P5000
- CUDA:8.0
- cuDNN:6.0
- Tensorflow-gpu:1.4.0
- Python:3.6
tensorflow-gpuはCUDA, cuDNNと互換性があるので,以下のサイトで自分の環境にあったバージョンをインストールしてください.
https://www.tensorflow.org/install/source#common_installation_problems
darkflowインストール手順
-
githubからdarkflowをクローンする.
-
binディレクトリを作成し,binディレクトリにyoloのweightをダウンロードする.
wget https://pjreddie.com/media/files/yolov2.weights
-
darkflowをインストールする.
darkflowディレクトリで実行↓
python3 setup.py build_ext --inplace
pip3 install -e .
pip3 install .
サンプルプログラム実行
READMEの”Using darkflow from another python application”に書かれているプログラムを動かしてみます.
thresholdは
コード
[test.py]
from darkflow.net.build import TFNet
import cv2
options = {"model": "cfg/yolo.cfg", "load": "bin/yolov2.weights", "threshold": 0.4, "gpu": 0.3}
tfnet = TFNet(options)
imgcv = cv2.imread("./sample_img/sample_dog.jpg")
result = tfnet.return_predict(imgcv)
print(result)
実行
python3 test.py
結果
パラメータ
test.pyのパラメータ(options部分)について説明します.
- load:ダウンロードしていたweightsファイルを指定
- threshold:検出結果の閾値.高くすると評価の高い物体のみが出力される.
- gpu:gpuの使用率
まとめ
darkflowを用いてYOLOv2を動かしてみました!
KerasでYOLOv3を動かすのが主流となっているので,需要があるのかわかりませんが,
先行研究の環境再現などの際に参考にしていただけると嬉しいです!
次は矩形内の物体画像切り抜きについて記事を書きたいと思います!