基于Pycharm的YOLOv8教程——运行环境配置+杂草识别示例

目录

1. YOLOv8环境安装     

2. 数据集构建     

2.1 数据准备

 2.2 数据集标注程序、网页及软件

2.3 公开的CV数据集网站

3. 模型训练

3.1 训练前准备

3.2 Pycharm杂草识别教程

4. 结语


1. YOLOv8环境安装     

YOLOv8的运行环境主要包括四部分:

1)PyCharm

PyCharm 是一款由 JetBrains 开发的 Python 集成开发环境(IDE),提供了智能代码补全、实时错误检查、快速修复等功能,帮助开发者提高 Python 编程的效率和质量。

软件链接:Download PyCharm: Python IDE for Professional Developers by JetBrainsicon-default.png?t=N7T8https://www.jetbrains.com/pycharm/download/?section=windows#section=windows

 2)Miniconda 

Miniconda 是一个小巧的 Python 环境管理工具,它包含了 conda 软件包管理器和 Python,一旦安装了 Miniconda,就可以使用 conda 命令安装任何其他软件工具包并创建环境。

软件链接:Index of /anaconda/miniconda/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirroricon-default.png?t=N7T8https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/

3)Pytorch

PyTorch 是一个由 Facebook 开发的开源深度学习框架,它提供了灵活、直观的接口和强大的 GPU 加速,支持动态神经网络和丰富的 API 和工具,使得构建和训练复杂的机器学习模型变得更加容易。

软件链接:​​​​​​PyTorchicon-default.png?t=N7T8https://pytorch.org/

4)ultralytics(YOLOv8)

YOLOv8 是一款最新的、先进的实时物体检测模型,它在前几代 YOLO 的成功基础上引入了新的功能和改进,以提高性能和灵活性,可以在从 CPU 到 GPU 的各种硬件平台上运行。

 源码链接:GitHub - ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLiteicon-default.png?t=N7T8https://github.com/ultralytics/ultralytics

该部分的安装可以参考

【手把手带你实战YOLOv8-入门篇】YOLOv8 环境安装_哔哩哔哩_bilibili【手把手带你实战YOLOv8-入门篇】YOLOv8 环境安装, 视频播放量 27489、弹幕量 19、点赞数 514、投硬币枚数 438、收藏人数 1106、转发人数 247, 视频作者 你可是处女座啊, 作者简介 github地址:https://github.com/zyds,相关视频:【手把手带你实战YOLOv8-入门篇】YOLOv8 模型预测,【手把手带你实战YOLOv8-入门篇】YOLOv8 模型训练,【yolov8】从0开始搭建部署YOLOv8,环境安装+推理+自定义数据集搭建与训练,一小时掌握,花3个小时,适合所有新手人群的【YOLOv8训练自己的数据集】教程,环境安装+源码解读+代码实战,分分钟学透!翻遍全网找不到比这更详细的了!(人工智能课程),五分钟学会 - YOLOv8从训练到部署与推理,从入门到精通,YOLOv8正式发布!零基础教程YOLOv8推理及训练(代码实战),【手把手带你实战YOLOv8-入门篇】YOLOv8 数据集构建,比外挂还离谱的【YOLO目标检测】自从用了YOLO玩枪战游戏,再也不用担心看不到人了!超详细YOLO目标物体检测实战教程(实战教程,快速入门!),零基础:编译器安装+深度学习环境配置+YOLOv8运行:第三部分YOLOv8运行,【手把手带你实战YOLOv5-入门篇】YOLOv5 环境安装(重置版)icon-default.png?t=N7T8https://www.bilibili.com/video/BV13V4y1S7MK/?spm_id_from=333.788

***恭喜恭喜,您已经成功完成以上4个内容,接下来可以进行下一步操作了!!!

2. 数据集构建 

       在计算机视觉中,数据集是一组用于训练、验证和测试计算机视觉模型的图像或视频。数据集通常包含大量的标注信息,如图像中物体的位置、类别等。

        数据集在计算机视觉中的重要性主要体现在以下几个方面:

     (1)训练模型:通过大规模的图像数据集,计算机视觉算法可以学习到图像的特征和语义信息,从而实现图像分类、目标检测、人脸识别等任务。

     (2)评估模型:数据集也用于评估模型的性能。通过在相同的数据集上评估不同的模型,可以比较它们的性能。

     (3)推动研究:公开的数据集可以推动计算机视觉的研究。例如,飞飞姐的ImageNet数据集的发布极大地推动了深度学习在计算机视觉中的应用。

2.1 数据准备

(1)图片类型数据:无需额外处理,直接进行标注

               

(2)视频类型数据:进行抽帧处理,导出为图片

# 视频抽帧处理程序
import cv2

video = cv2.VideoCapture('./DINO.mp4')
num = 0           # 计数器
save_step = 60    # 间隔帧
while True:
    ret, frame = video.read()
    if not ret:
        break
    num += 1
    if num % save_step == 0:
        cv2.imwrite('./train/demo_images/' + str(num) + '.jpg', frame)

 2.2 数据集标注程序、网页及软件

(1)Labelimg

LabelImg是图形图像标注工,用Python编写的,并将Qt用于其图形界面,可以用于进行目标检测项目的标注工作。

 labelimg教程可以参考:

使用labelImg做图像标注_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1Jp4y1k7QG/?spm_id_from=333.337.search-card.all.click&vd_source=5f4b20d0e5c3da5309d6a393f8eb94a1

(2)LabelMe

Labelme 是一个图形界面的图像标注软件。它是用 Python 语言编写的,图形界面使用的是 Qt(PyQt)。

【labelme】13分钟教会你使用labelme的超详细教程_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1xT4y1j7A9/?spm_id_from=333.337.search-card.all.click&vd_source=5f4b20d0e5c3da5309d6a393f8eb94a1

(3)MakeSense

基于JavaScript开发用于图像目标检测的标注工具,使用React+Redux进行开发,支持Windows和Linux平台运行。

3.3 MakeSense定义标签_哔哩哔哩_bilibili原书信息:清华大学出版社-图书详情-《TensorFlow+Android经典模型从理论到实战(微课视频版)》 http://www.tup.tsinghua.edu.cn/booksCenter/book_09703501.html第3章 EfficientDet与美食场景检测当你读完第3章时,你应该能够:l 熟悉和理解美食数据集的结构特点。l 了解解决目标检测问题的技术路线。l 掌握一种为数, 视频播放量 224、弹幕量 0、点赞数 3、投硬币枚数 0、收藏人数 4、转发人数 5, 视频作者 水木智联, 作者简介 万物智联,智联万物,相关视频:【附源码】用Python轻松破解WiFi 密码伸手就来!!再也不用担心流量不够用啦!!,【比刷剧还爽!】从入门到精通CNN、RNN、GAN、GNN、DQN、Transformer、LSTM等八大深度学习神经网络一口气学完!这不比刷剧爽多了!,2023年12月最新ChatGPT4.0国内保姆级使用教程,12月份最新ChatGPT来了,国内无限制免费使用教程!,全新YOLOV5实战课程!整整18集,大佬带你玩转YOLOV5实战项目!(含源码)—YOLOV5实战、YOLOV5、计算机视觉、目标检测,(免费) 让任何软件AI实时渲染!打通AI最后500米(一键包2.0版),普通人千万不要学Python!!!,吹爆!想学好线代一定不能错过的《线性代数可视化手册》,搞定它,你的线代就搞定了90%!,【无人驾驶项目】使用机器学习的真实世界自动驾驶车辆安全规划,入门到提高全套教程!,太稳啦!全新方法的T-Rex标注神器!通过视觉提示进行交互式目标计数!!-深度学习/机器学习/计算机视觉icon-default.png?t=N7T8https://www.bilibili.com/video/BV1ss4y1u731/?spm_id_from=333.337.search-card.all.click

(4)精灵标注助手(Colabeler)

相比于Labelme,LabelImg这些标注工具,精灵标注助手强大的地方在于支持实例分割、目标检测、文本标注、音频标注和视频标注等 ,并且完全免费。

数据标注软件精灵标注助手比labelme好用_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1PW4y167Ez/?spm_id_from=333.337.search-card.all.click&vd_source=5f4b20d0e5c3da5309d6a393f8eb94a1

(5)CVAT

CVAT是一个免费的、在线的、交互式的视频注释工具,支持本地部署,无需担心数据外泄。它支持多人协作,能用于几乎所有CV相关标注任务,如点,多边形,语义分割等。

图像标注平台CVAT的安装和使用_哔哩哔哩_bilibili这个视频介绍了图像标注平台CVAT (computer vision annotation tool) 的安装和使用方法。CVAT可以使用docker工具来安装,安装基础功能很方便;如果希望安装半自动标注功能是通过配置nuclio中的serverless功能来实现的;最后简单介绍一下如何CVAT的界面标注数据。官方文档:https://opencv.github.io/cvat/docs/admi, 视频播放量 2866、弹幕量 5、点赞数 49、投硬币枚数 23、收藏人数 121、转发人数 35, 视频作者 太阳照常升起233, 作者简介 ,相关视频:医学图像分割实战:基于U-Net模型的医学细胞图像分割+基于Deeplab的医学心脏图像分割实战精讲,原理详解+项目实战,看完就能跑通!,肝脏肿瘤图像分割、心脏图像分割、细胞图像分割全详解!B站最全面的医学图像分割实战教程分享,原理详解+项目实战,看完就能跑通!,数据标注任务员,在家搬砖就能日赚100~200,平台分享,2023年人工智能医学领域两大热门项目:基于Transformer的图像分割+基于Resnet的医学数据集分类【从原理到实战】,太稳啦!全新方法的T-Rex标注神器!通过视觉提示进行交互式目标计数!!-深度学习/机器学习/计算机视觉,这也太全了!Pandas、Seaborn、Numpy、Matplotlib四大Python数据科学必备工具包实战全教程学到爽!Python数据分析,WACV2024:可变性大核注意力医学图像分割,“ChatGPT超详细免费教程”无需魔法 国内直接使用,【无人驾驶项目】使用机器学习的真实世界自动驾驶车辆安全规划,入门到提高全套教程!,完全自学!跟着老师三周拿下【机器学习Halcon】从入门到实战!整整63集学到爽!含配套课程资源~—机器视觉、计算机视觉、CV、人工智能、图像处理、图像匹配icon-default.png?t=N7T8https://www.bilibili.com/video/BV1Yh4y1R7ZD/?spm_id_from=333.337.search-card.all.click

(6)VIA(VGG Image Annotator)

一款开源的图像标注工具,由Visual Geometry Group开发。可以在线和离线使用,可标注矩形、圆、椭圆、多边形、点和线。

神经网络训练样本制作工具 VGG Image Annotator (via) 小教程_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1SZ4y1p7xd/?spm_id_from=333.337.search-card.all.click&vd_source=5f4b20d0e5c3da5309d6a393f8eb94a1

2.3 公开的CV数据集网站

(1)谷歌数据库:Dataset Search (google.com)

谷歌数据集搜索是一个在线工具,允许用户搜索、发现和访问各种来源的数据集,包括政府机构、学术机构、企业和个人贡献者。这些数据集涵盖广泛的主题,包括医疗保健、金融、气候、交通、社会科学和艺术。

(2)RobolFlow:All Projects | Roboflow Universe Search

Roboflow 是一个提供一站式解决方案的平台,用户可以在该平台上上传、组织、标注、增强和处理数据集,然后简化训练过程,并通过多种部署选项加速模型的部署。该平台提供了许多已经标注好的yolo格式的数据集,可直接下载使用。

(3)VisualData:VisualData Discovery - Search Engine for Computer Vision Datasets

VisualData是一个专用于搜索计算机视觉数据集和代码/模型的搜索引擎。该网站现已收集281个计算机视觉数据集,用户可以在该网站上通过简单的搜索找到适合自己项目的数据集。

(4)ImageNet:ImageNet (image-net.org)

ImageNet是市场上最大、最受欢迎的开源数据集之一。ImageNet拥有超过1400万张已手动标注的图像。数据库按WordNet层次结构予以组织,对象级标注通过边界框完成。

(5)LSUN:https://www.yf.io/p/lsun

LSUN数据集为场景理解(房间布局估计,显着性预测等)提供了许多辅助任务。

(6)COCO:COCO - Common Objects in Context (cocodataset.org)

COCO是大规模的对象检测,分割和字幕数据集,包含超过200,000张带标签的图像。

3. 模型训练

3.1 训练前准备

在机器学习中,我们通常会将数据集划分为训练集、验证集和测试集:

  1. 训练集:训练集用于模型的训练,即用于调整模型的参数。这就像是学生的课本,用于日常的知识巩固。

  2. 验证集:验证集用于模型的调整和评估。它可以用来选择和调整模型的超参数,以及对模型的能力进行初步评估。这就像是学生的周考,用来纠正和强化学到的知识。

  3. 测试集:测试集用于评估模型的最终性能,即模型的泛化能力。但它不能用于调整模型的参数或选择特征等算法相关的选择。这就像是学生的期末考试,用来最终评估学习效果。

在实际应用中,训练集、验证集和测试集的划分比例一般遵循6:2:2的原则。这三个数据集的数据分布应该是近似的,但它们所用的数据是不同的。这样做的目的是为了使模型的训练效果能合理地泛化至测试效果,从而推广应用至现实世界中。同时,模型在训练集、验证集和测试集上所反映的预测效果可能存在差异。

示例:杂草检测

目前已经获取到了60张杂草图片,并利用labelimg进行了杂草数据的标注。由于图片数量较少,这里将编号1~19+31~60共计49张图片作为训练集,将编号20~30共计11张图片作为验证集。

    

首先需要对源图片以及处理好的进行文件整理,文件的结构可以如下图所示:

bvn               # 数据集名称
	images		  # 存放图片
		train	  # 训练集图片
		val	  # 验证集图片
	labels		  # 存放标签(图片中不同类别的定位数据)
		train	  # 训练集标签文件,要与训练集图片名称一一对应
		val      # 验证集标签文件,要与验证集图片名称一一对应

3.2 Pycharm杂草识别教程

Step1: 首先,先从Ultralytics官方网站上下载源码(这一步是方便后续操作)并解压。

Step2: 新建Pycharm项目,命名为ultralytics-main。在资源管理器中打开ultralytics-main目录,将Step1中的文件复制粘贴到该目录下。完成后的Pycharm页面如下图所示:

Step3: Pycharm环境中,在项目ultralytics-main下新建目录datasets(不可改变名称,否则后续操作会报错),在资源管理器中打开datasets目录,将含有训练集和验证集的文件夹bvn复制粘贴到该目录下。完成后的页面如下图所示:

Step4: 创建配置文件。在项目ultralytics-main下新建文件yolo-bvn.yaml,键入以下内容。

path: bvn    # 数据集目录
train: images/train      # 训练集图片目录
val: images/val          # 验证集图片目录
test:                    # 没有设置测试集图片,此处为空即可

# Classes
names:
  0: bodyak
  1: osot
  2: shchavel

Step5: 通过代码运行。在项目ultralytics-main下新建文件yolov8-train.py文件,键入以下内容。

from ultralytics import YOLO

# load a model
model = YOLO('yolov8n.pt')

# Train the model
model.train(data='yolo-bvn.yaml', workers=0, epochs=50, batch=16)

# windows平台,此处的workers必须设置为0,否则报错。

Step6: 选择在当前文件运行。运行完成后项目里会出现“runs”文件夹。在runs_ detect_ train_ weights中包含了计算得到的最优模型和最后的模型。

Step7: 验证模型的准确性。选择验证集中的一张照片,验证所得到的最优模型的准确性。在pycharm终端中输入:

yolo detect predect model=runs/detect/train11/weights/best.pt source=./25.jpg show=True

    

4. 结语

       目标检测只是计算视觉中很小的一部分,还有分类、动态跟踪、定位等一系列的工作。我这是个新手,上面的内容虽然看似简单,但却花费了我一个月时间去购置主机、配置yolov8环境、搜寻数据集、标注、跑程序等。接下来我会继续更新关于杂草识别与定位的个人研究内容,欢迎大家持续关注。

  • 42
    点赞
  • 127
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
基于YOLOv8的各种瓶子识别检测系统源码(部署教程+训练好的模型+各项评估指标曲线).zip 平均准确率:0.95 类别:bottle 【资源介绍】 1、ultralytics-main ultralytics-main为YOLOv8源代码,里面涵盖基于yolov8分类、目标检测额、姿态估计、图像分割四部分代码,我们使用的是detect部分,也就是目标检测代码 2、搭建环境 安装anaconda 和 pycharm windows系统、mac系统、Linux系统都适配 在anaconda中新建一个新的envs虚拟空间(可以参考博客来),命令窗口执行:conda create -n YOLOv8 python==3.8 创建完YOLOv8-GUI虚拟空间后,命令窗口执行:source activate YOLOv8 激活虚拟空间 然后就在YOLOv8虚拟空间内安装requirements.txt中的所有安装包,命令窗口执行:pip install -r requirements.txt 使用清华源安装更快 3、训练模型过程 进入到\ultralytics-main\ultralytics\yolo\v8\detect\文件夹下,datasets即为我们需要准备好的数据集,训练其他模型同理。 data文件夹下的bicycle.yaml文件为数据集配置文件,该文件为本人训练自行车检测模型时创建,训练其他模型,可自行创建。博文有介绍https://blog.csdn.net/DeepLearning_?spm=1011.2415.3001.5343 train.py中238行,修改为data = cfg.data or './bicycle.yaml' # or yolo.ClassificationDataset("mnist") 237行修改自己使用的预训练模型 若自己有显卡,修改239行,如我有四张显卡,即改成args = dict(model=model, data=data, device=”0,1,2,3“) 以上配置完成后运行train.py开始训练模型,训练完毕后会在runs/detect/文件夹下生成train*文件夹,里面包含模型和评估指标等 4、推理测试 训练好模型,打开predict.py,修改87行,model = cfg.model or 'yolov8n.pt',把yolov8n.pt换成我们刚才训练完生成的模型路径(在\ultralytics-main\ultralytics\yolo\v8\detect\runs\detect文件夹下),待测试的图片或者视频存放于ultralytics\ultralytics\assets文件夹, 运行predict.py即可,检测结果会在runs/detect/train文件夹下生成。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值