yoshimi.'s Diary

よしみ.が過去にやってきたことに掃き溜めです

YOLO V3(darknet)で学習する際にOIDv4を使って時短してみた

前回、YOLOv3(darknet)をROS(kinetic)で用いたのですが、衣服を認識してくれなかったので今回は衣服を認識するように学習させたいと思います。

demura.netこちらではlabellmgというツールを使って学習用の写真のなかで認識したいものを四角で囲ったりしてデータセットを作成するなど、面倒な作業をしなければならないので面倒くさいよなーと思っていたらOIDv4-Toolkitと呼ばれるツールを使うとデータセットを簡単に手に入れられるとのことだったので今回試してみた

また、手に入るデータセットは下記のリンクから検索できる

Open Images Dataset V6

 

環境

ubuntu16.04 ROS kinetic

CUDA10.2 & cuDNN7.6.5

 

OIDv4-Toolkitのインストールは下記のリンクを参照

【YOLOv3 データセット作成の旅①】Open Images Dataset の特定クラスの画像のみダウンロード | naruhodo desu ne !

 

データセットのダウンロード

cd OIDv4-Toolkit/

python3 main.py downloader --classes Shirt --type_csv validation (自分は衣服のデータが欲しかったのでShirtにした)
 
実行したときにROSのopencv呼びだされてる関係でerrorが出たら
cd modules/
code downloader.py(ここは好きなエディタをお使い下さい)
7行目、8行目に
import sys
sys.path.remove('/opt/ros/kinetic/lib/python2.7/dist-packages') (ROSのバージョンに合わせてkineticの部分はmelodic,noeticに変更してください)
 
また、__init__() got an unexpected keyword argument 'ssl_context'
みたいなエラーが表示が出て写真とかがダウンロードできていなかったら
pip3 install -U requests
を実行するとうまく行きました。
データセットのダウンロードがうまく行ったらここを参照

【YOLOv3 データセット作成の旅②】OIDv4_Toolkitで取得したアノテーションデータを変換する | naruhodo desu ne !

パスとかを適宜変更して、プログラムを実行するとアノテーションデータセットが得られます(warningが出たが無視した)その後、


mkdir -p ~/data/wrs/backup

と、ディレクトリを生成し、得られたアノテーションデータとダウンロードした写真をwrsディレクトリに入れます.その後、

cd

mkdir src

cd

cd ~/src

git clone https://github.com/pjreddie/darknet.git

cd ~/src/darknet

Makefileの中身は下記のリンクを参考に修正し、makeを実行

https://demura.net/robot/athome/14694.html

makeの実行に成功したら

cd ~/src

git clone https://github.com/demulab/divide_files.git

その後、下記のリンクの・ビルド・実行の項目から先を手順通りに進める(私の場合、学習の終了条件を3000回としたので、wrs.cfgにおいてmax_batches = 3000とした)

YOLO V3:オリジナルデータの学習 | demura.net

 

学習させて得られたデータをdarknet_rosのパッケージにコピペして実行したときの認識結果がこれ

f:id:yoshistl:20210621095239p:plain

認識してくれています。これで研究が進みそうです