【YOLO使用】YOLOv5训练目标检测任务入门用法(一)

YOLOv5

Github

从0到1基于yolov5训练图片缺口识别模型,内含使用接口和权重文件!!~若有人需要,可开源1000张的数据集
觉得有用的朋友,麻烦留下小星星~~
https://github.com/Yakuho/Yolov5GapDetect

What is YOLO

“You Only Look Once”或“YOLO”是一个对象检测算法的名字,这是Redmon等人在2016年的一篇研究论文中命名的。是当前出色的目标检测算法之一。(Github官方地址: YOLOv5-Github)

Why choice YOLO

YOLO系列的算法是目标识别任务中比较前沿的算法之一。由于其出色的推理速度、较小的模型大小和妈妈般的呵护 (提供大量的方便的接口) ,广受开发者的喜爱。下图是YOLOv3与其他目标检测算法性能的比较,其图来自YOLOv3论文原图。(作者为了突出其性能将YOLOv3性能曲线标在了坐标系外)
在这里插入图片描述
经过几代的YOLO系列算法的发展,在YOLOv5中,为了让开发者根据目标检测的复杂度,给出了4种不同的模型用于匹配不同复杂度的检测任务,来提升mAP。下图一是显示4个不同的网络中,分别所占的模型参数数量、推理速度和平均准确率;图二4个模型的性能曲线。
在这里插入图片描述

在这里插入图片描述

How to use YOLO

这里使用检测图片中的缺口为例子,使用YOLOv5实现目标识别。

# 使用git将YOLOv5拉回来
>> git clone https://github.com/ultralytics/yolov5.git

在这里插入图片描述

  1. 准备数据集,带有缺口的图片1k张。
    在这里插入图片描述

  2. 使用labelimg标注1k张的图片缺口位置并选择生成的格式为YOLO数据集格式。(格式文件和图片放在同一个目录下)
    在这里插入图片描述
    YOLO格式如下图所示;格式: (量化后的类别, Xmid, Ymid, Width, Height), 其中四个坐标是经过归一化处理的。
    归一化处理:(box的x除以整张图片的w,box的y除以整张图片的h,box的w除以整张图片的w,box的h除以整张图片的h)
    在这里插入图片描述

    # 安装
    >> pip install labelimg
    # 使用
    >> labelimg
    
  3. 将图片分割成训练集和验证集并生成两个TXT文件。在此例子中,1k张图片我按照9:1比例进行分割。训练集9,验证集1.
    在这里插入图片描述 在这里插入图片描述
    文件内容是图片绝对路径。如下图是训练集中的图片的绝对路径。

  4. 编辑数据集配置文件
    在YOLO根目录下,从./data创建一个新的YAML文件如GapTrain.yaml,写入数据。也可借鉴当前目录下的yaml,编写数据集配置。补充:names的顺序和第2步YOLO格式的类别是对应的,例如0是缺口的,那么List中第0位的标签就是"Gap"。标签是英文标签~~~
    在这里插入图片描述
    ps:jpg/png等图片放置的文件夹为images,yolo.txt标签文件放置的文件夹为labels,如下所示
    在这里插入图片描述
    在这里插入图片描述

  5. 编辑模型配置文件,根据你选择的模型编辑。例如选择YOLOv5m.pt模型进行训练。
    在这里插入图片描述在这里插入图片描述

  6. 下载预训练权重并放到根目录下的models文件夹中,官方权重下载链接
    在这里插入图片描述

  7. 开始训练
    Trips:可以使用谷歌的CoLab免费使用Tesla显卡进行训练,速度更快更省电哦~~~
    训练设置输入图片尺寸为160*160,batch-size为100,epochs为80

    python train.py --img 160 --batch 100 --epoch 80 --data data/GapTrain.yaml --cfg models/yolov5m.yaml --weights weights/yolov5m.pt --single-cls
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    训练结束后,可以看到验证集各项指数基本收敛,召回率达到1,map也能到95以上。且yolov5m模型大小只有42.4M,yolov5s模型大小还能只有十几M。
    在训练的过程中,可以在根目录下的runs找到训练时候生成的指标曲线以及对应的参数可视化图 (如果没有使用–name的话,默认是在runs/train/exp) 。配套服务十分齐全~~如Precision,Recall等曲线;tensorbroad的可视化events.out…文件;标签占训练集的分布labels;训练时候,验证集预测的结果test_batch0_pred等等等等…
    在这里插入图片描述

  8. 使用验证集测试并可视化结果
    由于在训练我将图片尺寸设置在160160,故在测试也将尺寸设置为160160,选择训练后最好的权重文件。置信度阈值设置为大于0.7。其余的设置请到源码中查看,这里不做额外的解释

    python test.py  --imgsz 160 --data data/GapTrain.yaml --weights ./runs/train/exp/weights/best.pt --conf-thres 0.7 --single-cls --augment
    

    在这里插入图片描述
    可以看到在验证集图片200张,推理速度非常快。并且也能从根目录下的runs找到测试后的指标数据。

  9. 测试实际图片。
    与训练集与验证集具有相同特征分布的50张新图片,并放置根目录下的data/images文件夹中 (因为默认路径是这个而且我没有另外指定路径) ,并运行代码。

    python detect.py --weights ./runs/train/exp/weights/best.pt --conf-thres 0.7 --imgsz 160
    

    在这里插入图片描述
    推理速度在Tesla显卡的加持下,推理每张图片平均只需要10ms。另外在GTX1050显卡下,yolov5s的推理是18ms左右,yolov5m的推理时间是28ms左右。从老地方runs查看推理的结果。
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

advanced

这是一个简单的例子来使用YOLOv5,因为开发者做了大量的工作去完成很多接口,我们才能如此方便的使用YOLO,即使在训练、查看参数、修改模型、调整超参数等都可以十分便利。如果想要更深层次使用YOLO,YOLO的官方Github上也有很多的文档供给使用。感谢开源~~

[YOLO] https://github.com/ultralytics/yolov5

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
YOLOv8是一种快速、准确的实时目标检测算法,相较于前代YOLO版本,YOLOv8在检测速度和准确率上取得了显著的提升。它具有高性能和泛化能力强的优点,可以在保持较高准确率的同时实现实时目标检测,并在多种场景和目标类型上表现出色。此外,YOLOv8还易于集成到各种应用中,如无人驾驶、无人机监控等。 要实现YOLOv8的实时目标检测,可以按照以下步骤进行操作: 1. 首先,导入所需的依赖库,包括OpenCV和NumPy等。这些库将提供所需的功能和方法。 2. 使用OpenCV库的VideoCapture类打开摄像头,以获取实时画面。 3. 对每一帧图像进行预处理,将其转换为YOLOv8所需的输入格式。这可能包括调整图像大小、转换为特定的数据类型等。 4. 通过YOLOv8网络进行目标检测,将预处理后的图像作为输入。YOLOv8将通过检测算法分析图像,并识别出其中的目标物体。 5. 将检测结果绘制在原始图像上,可以使用OpenCV提供的绘制函数,例如cv2.rectangle等。这将在图像上标出检测到的目标位置和边界框。 6. 实时显示带有检测结果的图像,以便观察目标检测的效果。 7. 当需要结束程序时,可以按下键盘上的"q"键来退出程序。 通过按照以上步骤操作,您可以实现YOLOv8的实时目标检测,并获得准确的目标检测结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [YOLOv8入门教程:实现实时目标检测](https://blog.csdn.net/m0_68036862/article/details/130064559)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值