TL;DR
練習がてらv2でもv3でもない無印yoloをWSL2上で動かしてみました。
以下の記事とサイトを参考にさせていただきました。
モチベーション
なんか画像系AIさわってみたい。でもGPUは極力使いたくない。
とりあえず流行りのyoloにさわってみよう。
コンテナ用意
docker-composeで用意しました。
Dockerfile
FROM python:3.7-buster
WORKDIR /opt/work
docker-compose.yml
version: '3'
services:
yolo:
build:
context: .
dockerfile: Dockerfile
container_name: 'python371'
tty: true
volumes:
- ./work:/opt/work
コンテナ環境の整備
コンテナに入ったらひたすらコマンドを叩きます。
apt update && apt -y upgrade
apt install -y libgl1-mesa-dev git
git clone https://github.com/thtrieu/darkflow.git
pip install --upgrade pip
pip install numpy -U
pip install opencv-python==3.4.5.20
pip install tensorflow==1.15
pip install Cython
cd darkflow
python setup.py build_ext --inplace
pip install -e .
pip install .
mkdir bin
weightsを用意
上の作業で作成したbin/に以下のyolo.weightsを設置します。
GoogleDriveからweightsをDLLします。
動作確認
とりあえず動くかだけ確認します。
from darkflow.net.build import TFNet
import os
import cv2
os.chdir('darkflow')
option = {"model": "cfg/yolo.cfg", "load": "bin/yolo.weights", "threshold": 0.1}
tf = TFNet(option)
imgcv = cv2.imread("/opt/work/src/hogehoge.jpg")
print(tf.return_predict(imgcv))
結果
無事動作を確認できました。
別のプログラムで人を検出するところまでは確認できました。
今回はここまでとして、具体的に動かす部分は別途試していきたいです。
最後に
学習済みモデルでも結構色々遊べるみたいです。
学習者側からすると嬉しい限りです。
注意および免責事項
本記事の内容はあくまで私個人の見解であり、所属する組織の公式見解ではありません。
本記事の内容を実施し、利用者および第三者にトラブルが発生しても、筆者および所属組織は一切の責任を負いかねます。