1.下载代码:GitHub - bubbliiiing/mobilenet-yolov4-lite-pytorch: 这是一个mobilenet-yolov4-lite的库,把yolov4主干网络修改成了mobilenet,修改了Panet的卷积组成,使参数量大幅度缩小。参考博客:睿智的目标检测49——Pytorch 利用mobilenet系列(v1,v2,v3)搭建yolov4-lite目标检测平台_Bubbliiiing的学习小课堂-CSDN博客
这个不是官方yolov4代码,是修改主干网络后的代码。
官方pytorch代码:GitHub - Tianxiaomo/pytorch-YOLOv4: PyTorch ,onNX and TensorRT implementation of YOLOv4
2.准备数据集
自己写的一个批量重命名
import os
from shutil import copy
path="D:/Research direction/data set/DL data/VOCdevkit DL/VOC2007/JPEGImages"
out="D:/code/mobilenet-yolov4-lite-pytorch-main/VOCdevkit/VOC2007/JPEGImages"
#获取文件列表
allfilelist=os.listdir(path) #获取子文件夹名
allfilelist.sort(key=lambda x: int(x[4:])) #第四个字符以后的字符串转化为数字并进行排序
# print(allfilelist)
# print(len(allfilelist))
index = 1
for file in allfilelist:
filepath = os.path.join(path, file)
img_names = os.listdir(filepath) #获取子文件夹中的文件名
img_names.sort(key=lambda x: int(x[:-4])) #倒数第五个字符以前的字符串转化为数字并进行排序
# print(img_names)
# 打印文件夹下的数量
# print(len(img_names))
# 循环读取文件,批操作文件名重命名
for item in img_names:
if item.endswith('.bmp'): # 文件格式
src_path = os.path.join(os.path.abspath(filepath), item)
dst_path = os.path.join(os.path.abspath(out), '' + str(index) + '.bmp')
copy(src_path, dst_path)
index = index + 1
3.修改相关文件
修改voc_class.txt为自己数据集类别
修改voc_annotation.py中annotation_mode=0,并运行
4.训练
下载预训练权重模型
训练时报错如下
原因是数据集中图片为bpm格式,而不是jpg
把jpg改成bmp即可



