准备数据
生成数据:打开labelImg(对连续图片可自动标注)或labelImg_no(手动标注)
open:打开单张图片
open dir:打开文件夹 (图片路径)
Change Save Dir:同时打开xml文件 (xml路径)
use default label(使用默认创建)
W — 画框
Next Image — (自动保存,生成.xml文件)
A — 删除当前标注
D — 下一张
F — 上一张
整理数据:pic和xml文件数目不对应时,对数据进行整理
使用dataClass里的Arrangement_pic_xml.py脚本
修改picDir = r ".../pic/" 和 xmlDir = r".../xml/"
python Arrangement_pic_xml.py
转换数据(两个框架都有):
darknet中
1.初始状态:picClear、xmlClear、.names文件(记录类别)
2.修改trainingDataConvert.sh:
bathDir = "/.../.../laminate"
yolov3 = 1 重量级
yolov3_tiny =1 轻量级
效果:自动生成.data 、.cfg文件以及module dir
3.修改生成的.cfg文件:
batch = 16
subdivision = 8 (切割数,越大占显存越小)
classes = 类别数 ,fliter = (类别数+5)x 3 (CTRL+F to search yolo)
mxnet中
Home – VOCdevkit --VOC2018
pic文件放在JPEGImages
中即可
xml文件放在Annotations
中即可
训练模型(不同框架不同)
darknet中:
./darknet detector train **.data **.cfg darknet53.covn.74(模型可选,以**.weights为后缀的文件)
mxnet中:
路径:Home – project – mxnet – gluon-cv-master – scripts – detection –
-
修改
train_faster_rcnn.py
AllLabelList=['','',''] (类别) parser.add_argument中的default参数:resnet101_vld || resnet50_vlb
-
执行
train_faster_rcnn.py
sourece activate gluon python train_faster_rcnn.py
测试模型(只有darknet)
注:mxnet中不用测试模型,在生成的.params前都有MAP数值,同文件名一起输出,其中best为最好的模型
转换数据
-
同上,初始状态
(picClear , xmlClear , *.names)
./trainingDataConvert.sh (生成.data和.cfg)
-
修改.cfg
生成测试结果(results)
-
修改
val_models.sh
文件modelJiaDir="产生模型的文件夹地址" bathDir="*.names文件的目录地址"
-
修改*.data文件
valtestvalid=/.../.../.../2018_val.txt (将val改为test,即2018_test.txt)
-
使用命令进行评测
./val_model.sh
结果可视化
-
修改val_model.py文件
classes=[' ' , ' ' , ' '] (类别) resultDir=r"/../../results/" (存放评测结果的地址)
-
执行脚本
python val_model.py
挑出MAP最高的模型
调用模型(测试图片,不同框架不同)
检测GPU是否可用:
nvidia-msi (静态)
watch nvidia-msi (动态显示显卡状态)
darknet中
- 检测图片:(图片中生成框,识别图片中的类)
./darknet detector test *.data *.cfg *.weights *.jpg
- 检测视频:(视频中动态生成框,识别视频中的类)
./darknet detector demo *.data *.cfg *.weights *.mp4
mxnet中
-
修改脚本
demo_faster_rcnn.py
- picDir=图片路径
- saveDir=存储路径 (初始为空)
- classes=’ ’ (注:可以执行
AllLabel.py
脚本从终端获取,即遍历xml文件) - default = * (faster_rcnn_resnet101_vid_vod || faster_rcnn_resnet50_vib_vod)
-
执行脚本
source activate gluon python demo_faster_rcnn.py --pretrained *.parameters (模型名的路径,101或者50的模型)
.weights是darknet框架里的模型
.parameters是mxnet框架里的模型
预标注(只有darknet才有预标注)
-
初始状态(必备条件,6个缺一不可):
pic(dir),xml(dir) , *.names , *.data , *.cfg , *.weights
注意! *.data里面的name属性的值必须为 *.names的路径
-
修改
darknet_writeXml.py
testPerson8=0 //表示使用标注功能 bathDir_biaozhu=r"项目文件夹/"
-
执行
darknet_writeXml.py
脚本source activate gluon python darknet_writeXml.py
效果:生成对应pic的xml文件