1.使用了yolov7,检测更好,但是训练上有问题,运行不起来,转了一圈发现yolov5是应用更广泛使用简单
2.怎么使用
//下载代码
https://github.com/ultralytics/yolov5
//安装依赖
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
//按照他的示例就可以运行起来
//直接打开电脑的摄像头进行识别
//我尝试了yolov8和yolov7.pt权重文件不能向上兼容,运行不起来
3.怎么训练图像
1.先下载一个labelImg用于标注我们要识别的物体的位置
引用博客,教你使用这个工具制作
https://blog.csdn.net/weixin_43402278/article/details/131474784?ops_request_misc=&request_id=&biz_id=102&utm_term=lableimg%E6%80%8E%E4%B9%88%E6%89%93%E6%A0%87%E7%AD%BEyolov5&utm_medium=distribute.pc_search_result.none-task-blog-2blogsobaiduweb~default-1-131474784.nonecase&spm=1018.2226.3001.4450
2.运行一次train得到官方的案例下载的数据集是和我们的项目同级的
//源文件注释掉download那句
#我已经删除掉了
3.在labelImage生成的文件复制到我们的文件夹 //image放图片 //labels放我们labelimage生成的文件
#第一个参数15是对应着类别我们需要修改,其他的是代表识别物体的位置(如,中心x/宽, 中心坐标y/高 为了降低数据大小优化速度)
#就是yml文件names的下标
#开始训练
#训练的结果输出到 runs/train/expxx 每次训练xx会加一
#best是最优的训练结果
#对训练的权重文件进行识别图片,由于训练数据太少,读者可以自行测试
4.训练效果
#由于label是经常需要修改的,所以写了个工具类把第一个值改为我们配置文件写的names的下标
#下面是把文件夹下所有txt根据空格分割,替换第一个值
import osdef modify_txt_content(file_path, new_value):with open(file_path, 'r') as file:lines = file.readlines()with open(file_path, 'w') as file:for line in lines:values = line.strip().split(' ', 1)modified_line = new_value + ' ' + values[1]file.write(modified_line + '\n')# 指定文件夹路径
folder_path = r"D:\py\datasets\coco128\labels\train2017"
# 指定要修改的第一个值为80
new_value = "80"# 遍历文件夹下所有txt文件并进行修改
for filename in os.listdir(folder_path):if filename.endswith(".txt"):file_path = os.path.join(folder_path, filename)modify_txt_content(file_path, new_value)
#其他图片进行识别,训练的效果非常完美,草莓工厂项目的视觉模块已经完成