一、YOLOv3图像目标检测原理
二、YOLOv3代码及预训练权重下载
2.1 下载yolov3代码
这里使用的是B站大佬Bubbliiiing复现的yolov3
代码
仓库地址: https://github.com/bubbliiiing/yolo3-pytorch
2.2 下载模型预训练权重unet_resnet_medical.pth
链接:https://pan.baidu.com/s/1IhWYvEvIwGL6MrcIvYJroA
提取码:d3ob
将下载的权重文件放到model_data
文件夹下。
三、labelimg图像标注及格式转换
3.1 安装labelimg标注软件
pip install labelimg
使用Anaconda Prompt
启动labeimg
标注工具
3.2 图像标注
3.3 数据集划分
将xml
格式标签文件放在VOCdevkit
文件夹下的VOC2007
文件夹下的Annotation
中。
将图片文件放在VOCdevkit
文件夹下的VOC2007
文件夹下的JPEGImages
中。
修改model_data/voc_classes.txt
文件,改为自己使用的类别
修改voc_annotation.py
,117行
,图片格式改为自己实际用到的图片格式。
运行voc_annotation.py
在VOCdevkit\VOC2007\ImageSets\Main
路径下会生成划分数据集的txt文件
,在项目根目录下会生成2007_train.txt
,2007_val.txt
文件。
注意这里只支持xml格式的标签,不支持json格式的标签。
四、YOLOv3网络训练和测试
4.1 训练
运行train.py
,根据自己的实际情况,修改一下参数。
4.2 测试
修改yolo.py
中代码,“model_path” : ‘logs/best_epoch_weights.pth’,
和“classes_path” : ‘model_data/voc_classes.txt’,
。
运行predict.py
文件。
读者需要根据自己的情况修改模型权重和测试图片的地址。
读者可以通过修改mode
参数,实现下面5种模式:
# 'predict' 表示单张图片预测,如果想对预测过程进行修改,如保存图片,截取对象等,可以先看下方详细的注释
# 'video' 表示视频检测,可调用摄像头或者视频进行检测,详情查看下方注释。
# 'fps' 表示测试fps,使用的图片是img里面的street.jpg,详情查看下方注释。
# 'dir_predict' 表示遍历文件夹进行检测并保存。默认遍历img文件夹,保存img_out文件夹,详情查看下方注释。
# 'export_onnx' 表示将模型导出为onnx,需要pytorch1.7.1以上。
设置mode = “predict”
模式,测试一张自己手动输入路径的图像,结果如下