【初心者, python】物体を検出するプログラムを動かす【tensorflow2】

今回はyoloという物体検出手法を使って物体を検出してみようと思います。

プログラムはすでに公開してくれているので、今回はそれに自分で用意した画像を入れていくだけですね。

OSSは素晴らしいです。ではやってみましょう。

環境

今回は以下のような環境で動かしてみます。

  • ubuntu : 20.04
  • python : 3.8.0

gitも入っていることを想定しています。

恐らくgitが入っていればwindowsも動くと思います。

必要であればvirtualenv等で環境を作ってください。

virtualenv venv
source venv/bin/activate

yoloを使った物体検出

最初にも言いましたが、すでにソースコードが公開されているので、
それを使います。

https://github.com/zzh8829/yolov3-tf2

githubからプログラムをクローン

git clone https://github.com/zzh8829/yolov3-tf2.git

cd yolov3-tf2

pipによる環境構築

pipというPythonのパッケージ管理ツールを使って必要なモジュール群をインストールします。

pip install -r requirements.txt 

※2021年7月17日現在、上のコマンドを単純に実行するとエラーがでます。requirements.txtのopencv-pythonのバージョンを4.3.0.38にしてから以下のコマンドを実行してください。ちなみに変更後のrequirements.txtは以下のようになります。

tensorflow==2.5.0
opencv-python==4.3.0.38
lxml
tqdm

-e .

学習済みのネットワークの重みをダウンロード

wget https://pjreddie.com/media/files/yolov3.weights -O data/yolov3.weights
python convert.py --weights ./data/yolov3.weights --output ./checkpoints/yolov3.tf

サンプルを動かす

公式のGithubに書いてあるようにサンプルを動かしてみます。

下のコマンドのmeme.jpgは以下の画像このことを言っています。

python detect.py --image ./data/meme.jpg

上のコマンドを実行すると、output.jpgが出力されます。

こんな感じの画像が出てくると思います。

うまく識別できていることがわかりますね。

終わりに

OSSはありがたいですね。
なるべくソースコードの改善にも今後は貢献していきたいです。

参考文献

タイトルとURLをコピーしました