零基础教程:使用yolov8训练自己的目标检测数据集

1.前言

Ultralytics YOLOv8 是一款前沿、最先进(SOTA)的模型,基于先前 YOLO 版本的成功,引入了新功能和改进,进一步提升性能和灵活性。YOLOv8 设计快速、准确且易于使用,使其成为各种物体检测与跟踪、实例分割、图像分类和姿态估计任务的绝佳选择。

2.源码下载以及部署

1.下载YOLOV8源码地址:

https://github.com/ultralytics/ultralytics

解压之后使用pycharm打开

下载预训练权重,下载yolov8n版本

将下载好的预训练权重放在根目录下面

2.部署深度学习环境

激活虚拟环境之后

pip install ultralytics

在pycharm里面选择自己的深度学习环境

3.测试是否部署成功

1.打开Terminal输入以下代码来测试预训练模型的效果

yolo predict model=yolov8n.pt source=ultralytics/assets/bus.jpg

2.预测结果

4.训练COCO128数据集

1.打开Terminal输入以下代码训练COCO128数据集

yolo train data=coco128.yaml model=yolov8n.pt epochs=3 lr0=0.01 batch=4

 也可以使用yolov8m权重文件进行训练,效果比n好很多

yolo train data=coco128.yaml model=yolov8m.pt epochs=3 lr0=0.01 batch=4

2.训练结果

找到存储训练结果的文件夹

weights文件夹里面装的是效果最好的一次权重文件以及最后一轮训练的权重文件

以及P-R曲线图

会在根目录下面生成一个datasets文件夹,里面装着coco128的数据集

5.训练自己的数据集

1.准备数据集

在目标检测的训练过程中,训练集、验证集和测试集扮演着不同的角色:

  1. 训练集(Training Set):
    训练集是用于模型训练的数据集。目标检测模型通过对训练集中的图像进行学习和参数优化来掌握目标的特征和上下文信息。训练集通常包含大量的标注数据,其中目标物体被标记为其位置和类别。模型通过观察训练集中的样本来学习目标的外观和形状,以便能够在后续的预测中对新的图像进行目标检测。

  2. 验证集(Validation Set):
    验证集用于在训练过程中评估模型的性能和调整超参数。它是从与训练集不同的图像中随机选择的一部分数据。通过在验证集上进行评估,可以监控模型的训练过程并调整模型的超参数,例如学习率、正则化参数等。验证集上的性能指标可以帮助选择最佳的模型,并防止过拟合。验证集的数据标注也需要包含目标物体的位置和类别信息。

  3. 测试集(Test Set):
    测试集是用于最终评估训练好的目标检测模型性能的数据集。它是与训练集和验证集完全独立的数据集。测试集中的图像对于模型来说是全新的,模型在这些图像上进行预测并生成目标检测结果。测试集的数据标注同样包含目标物体的位置和类别信息。通过与测试集的性能比较,可以得出模型在真实场景中的准确率、召回率、精确率等性能指标,评估模型的泛化能力和实际应用效果。

这三个数据集在目标检测的训练过程中扮演着重要的角色,训练集用于模型的学习和参数优化,验证集用于超参数调优和模型选择,而测试集用于最终评估模型的性能和泛化能力。它们的目的是确保训练出的模型能够准确地检测出新的图像中的目标物体。

1.数据集处理

1.数据集按照指定比例划分(训练集:验证集:测试集=7:2:1)

将YOLO数据集按照指定比例划分(训练集、验证集、测试集)的详细教程_Dragon_0010的博客-优快云博客

2.数据集格式处理,将xml格式的数据集转化为txt格式

VOC数据集转换为yolo格式:xml转txt(亲测有用)_Dragon_0010的博客-优快云博客

2.数据集文件结构

将自己的数据集放在datasets文件夹下面,按照训练集,测试集,验证集的结构存储

2.准备配置(yaml)文件

1.找到coco128.yaml文件

文件位置

2.复制该文件到同级目录,并取名叫myhat.yaml

3.进行训练

打开终端(Terminal),复制以下代码进行训练

yolo train data=ultralytics/cfg/datasets/myhat.yaml model=yolov8n.pt epochs=10 lr0=0.01 batch=4

或者用这行代码也行,后面如果想改进模型的话,就将model=yolov8.yaml替换成其他的yaml文件

yolo train data=ultralytics/cfg/datasets/myhat.yaml model=yolov8.yaml pretrained=yolov8n.pt epochs=10 lr0=0.01 batch=4

4.训练结果

5.测试结果

在网上找一张施工现场的图片测试一下效果,图片就放在ultralytics/assets文件夹下面

输入以下代码进行测试,使用效果最好的权重文件

 yolo predict model=runs/detect/train12/weights/best.pt source=ultralytics/assets/guowang1.jpg

到此为止,使用yolov8训练自己的数据集完毕。

### 构建任务失败解决方案 当遇到 `Execution failed for task ':app:shrinkReleaseRes'` 错误时,这通常意味着资源压缩过程中出现了问题。此错误可能由多种原因引起,包括但不限于配置不正确、依赖冲突或特定于项目的其他因素。 #### 可能的原因分析 1. **ProGuard 或 R8 配置不当** ProGuard 和 R8 是用于优化和混淆代码以及减少 APK 大小的工具。如果这些工具的配置存在问题,可能会导致资源无法正常处理[^1]。 2. **重复资源** 如果项目中有多个模块定义了相同的资源名称,可能导致冲突并引发该错误。检查是否存在重名的 drawable、string 等资源文件[^2]。 3. **第三方库兼容性** 某些第三方库可能与当前使用的 Gradle 插件版本或其他库存在兼容性问题,从而影响到资源打包过程中的行为[^3]。 4. **Gradle 缓存问题** 有时旧缓存数据会干扰新编译的结果,尝试清理本地仓库和重新同步项目可以帮助排除此类潜在障碍[^4]。 #### 推荐的操作方法 为了有效解决问题,建议按照以下步骤逐一排查: ```bash # 清理项目构建目录 ./gradlew clean # 删除 .gradle 文件夹下的所有内容以清除缓存 rm -rf ~/.gradle/caches/ ``` 调整 `build.gradle` 中的相关设置也是一个重要环节: ```groovy android { ... buildTypes { release { minifyEnabled true // 是否启用代码缩减 shrinkResources true // 是否开启资源压缩 proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' // 尝试禁用 shrinkResources 来测试是否为资源压缩引起的错误 // shrinkResources false } } } ``` 此外,在 `proguard-rules.pro` 文件内添加必要的保留规则,防止关键类被意外移除: ```text -keep class com.example.yourpackage.** { *; } # 替换为你自己的包路径 -dontwarn androidx.**,com.google.** # 忽略警告信息 ``` 最后,确保所使用的 Android Studio 版本是最新的稳定版,并且已经应用了所有的补丁更新。
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值