项目简介
本项目实现了经优化的Efficient_YOLOv4目标检测网络。借助一系列优化手段,在保障检测精度的同时,降低了模型计算量与体积,提升了检测速度,可实现实时检测。
项目的主要特性和功能
- 构建Efficient_YOLOv4目标检测网络结构。
- 支持对自定义数据集开展锚框聚类。
- 能够进行网络模型的训练和预训练。
- 把PANet替换成BiFPN,用Swish激活函数替代Mish激活函数。
- 去除部分优化技巧以减少计算量。
- 调整学习率衰减方式为0.97的指数衰减。
- 用深度卷积替换卷积块和密集卷积层,并加入CSP化。
- 显著减少模型体积,从245MB降至86MB。
- 提升检测速度,从45ms降至35ms。
- 提高检测精度,MAP0.5从41%提升到59.57%。
安装使用步骤
环境要求
- Windows10
- Python3.7
- Pytorch1.3
- CUDA10.0
训练步骤
- 使用labelimg将自己的数据集标注为VOC格式,也可使用现有的VOC2007+VOC2012格式的数据集。
- 运行kmeans_for_anchors.py进行聚类获取数据的锚框。
- 运行voc2yolo3.py将数据集分为训练集和测试集。
- 运行voc_annotation.py得到数据的位置和信息。
- 运行trains.py进行训练,将代码中的路径改为自己的路径,把得到的锚框和标签信息加入进去:
Python trains.py '-anchors', default="./model_data/anchors.txt" '-classes', default="./model_data/class_name.txt" '-annotation', default="./my_train.txt"
检测步骤
运行detect.py进行目标检测,配置如下参数:
Python
detect.py '-model_path', default="./models/Epoch22-Total_Loss18.8616-Val_Loss18.8762.pth"
'-classes_path', default='./model_data/voc_classes.txt', type=str, help='classes path'
'-anchors_path', default='./model_data/voc07_12anchors.txt'
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】