Mais conteúdo relacionado
Semelhante a YOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own dataset (20)
YOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own dataset
- 3. 実行したときの環境
Windows 10 Home
Webカメラ (Logicool C270m)
Python 3.7.0
Tensorflow 1.14.0
keras
Open CV 3.4.5.20 ※Ver.3系を指定
matplotlib
pillow
VOTT 2.1.0
- 4. Python 環境構築
Pythonの仮想環境に必要なライブラリをインストール
ex) c:¥projects¥yolo_v3をプロジェクトフォルダとします。
python -m venv 仮想環境名
仮想環境名¥scripts¥activate
pip install tensorflow
pip install keras
pip install opencv-python==3.4.5.20
pip install matplotlib
pip install pillow
- 5. YOLO 環境構築
Yolo V3の一式をダウンロード(111KB)し、任意のフォルダに配置
https://github.com/qqwweee/keras-yolo3
ex) c:¥projects¥yolo_v3¥ にソース、フォルダ類を配置
学習済みモデルをダウンロード(237MB)し、任意のフォルダに配置
https://pjreddie.com/media/files/yolov3.weights
ex) c:¥projects¥yolo_v3¥yolov3.weights として配置
モデルをkeras用にコンバート
python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
- 6. YOLO 動作確認
静止画
python yolo_video.py --image
"Input image filename:"と聞かれたらファイル名を入力する
動画
python yolo_video.py --input hoge.mp4
- 14. アノテーションの変換
VoTTからエクスポートした構成
出力先フォルダ
VOTTプロジェクト名-PascalVOC-export
Annotations
ImageSets
Main
JPEGImages
xxx.jpg
ex) c:¥projects¥yolo_v3
VOCDevkit
VOC2007
Annotations
ImageSets
Main
train.txt
test.txt
val.txt
JPEGImages
xxx.jpg
②train.txt、test.txt、val.txtを作成し、
JPEGImages内のjpgファイルを列挙する。
※拡張子"jpg"は記載しない
①VOCDevkitフォルダを作成し、
VoTTから出力したファイルを配置する
- 15. YOLO V3のソースに付属している"voc_annotation.py"で、PascalVOC形式を
YOLO V3形式に変換するが、事前にソース修正が必要。
修正したら変換実行
python voc_annotation.py
・classesのリストを自分で学習させる内容に合わせる。
・VoTTでアノテーション位置がfloatで書かれているものを読み込めるようにする。
アノテーションの変換
voc_annotation.py:6行目あたり
classes = ["gu"]
voc_annotation.py:21行目あたり
b = (int(float(xmlbox.find('xmin').text)),
int(float(xmlbox.find('ymin').text)),
int(float(xmlbox.find('xmax').text)),
int(float(xmlbox.find('ymax').text)))
- 16. 独自データ学習の準備
ex) c:¥projects¥yolo_v3¥model_data¥my_classes.txt に独自クラスを列挙する。
改行コードはLFにしておく。
学習用プログラムが独自クラスを使うように修正する。
必要に応じてバッチサイズを変更(train.py:57行目、76行目あたり)
学習用にweightsをコンバート
python convert.py -w yolov3.cfg yolov3.weights model_data/yolo_weights.h5
train.py:17行目、19行目あたり
"annotation_path"に"2007_train.txt"を指定する
"classes_path"に"model_data/my_classes.txt"を指定する
- 19. 独自で学習したモデルでYOLOを実行
静止画
python yolo_video.py --model logs/000/trained_weights_final.h5 --classes
model_data/my_classes.txt --image
動画
python yolo_video.py --model logs/000/trained_weights_final.h5 --classes
model_data/my_classes.txt --input hoge.mp4