yolov8实例分割,一步一步带你操作,手把手教学

由于研究项目要求,本人在自学完成图像识别和实例分割时,遇到了很多问题,找了很多资料,也没有找到详细说明的教程,于是我想把自己的一些经验分享给大家,希望有所帮助。由于是初学者,很多地方可能不如人意,欢迎大家交流指正。

本篇将以穿山甲实例分割,手把手教你完成基于yolov8的图像分割项目。(需要注意的是,本文中的教程并没有使用conda创建虚拟环境,而是直接在原有的python解释器上进行创建,如果需要创建的话,可以自己创建一个,然后将下列步骤正常操作一遍即可,如果使用的是新版pycharm,创建环境遇到问题,可以参考)https://blog.csdn.net/2302_77816072/article/details/138497929?spm=1001.2014.3001.5502

文章将分为以下几个部分:

1.必要库的安装以及环境配置

2.数据集的标注

3.模型的训练

4.输入自己的图片进行预测

1.必要库的安装以及环境配置

GitHub - ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLiteicon-default.png?t=N7T8https://github.com/ultralytics/ultralytics直接点击此链接,跳转至github下载对应的yolov8项目代码,点击code后,直接download zip,下载项目所需要的包。

 之后,我们可以 新建一个文件夹,将所下载的项目代码解压到对应的文件夹,然后把这个文件夹命名为我们的项目名称。

同时,这里推荐我们安装一个pycharm,(可以直接百度搜索pycharm,然后根据自己的电脑类型和配置安装相应的版本,大部分情况下来说,社区版就足够了)安装完成以后,我们右击我们新建的文件夹,选择open folder as pycharm,(如果右击没有找到,可以点击显示更多选项,然后就可以看到了)。

打开后,你会看到这样的一个界面,左边显示的就是我们所下载的yolov8项目代码了,我这里将穿山甲图片也一并导入了进去。

之后,我们点击左下角的第四个图标,也就是终端,输入以下命令:
           pip install -r requirements.txt
 (注意,如果此时报错,可以尝试将main目录下的requirements.txt文件复制一份到主文件夹里面,就像这样),之后就不会再报错了)

 

之后,我们进行安装 ,然后安装成功就会显示如下:

 至此,我们所有的准备工作就已经完成了。 

 2.数据集标注

由于实例分割的数据集训练比较复杂,并不是像图像识别那样直接标注框框就可以了,于是labelimg我们无法使用,在这里我推荐的是roboflow这个标注工具,它是在线网站(可能需要使用VPN进行访问),并且标注好后可以方便地划分训练集,测试集和验证集。

Roboflow: Give your software the power to see objects in images and video

 直接点击sign in,之后creat new project ,然后按照网站上的指引,(注意:在选择类型时,要选择第三个,即实例分割)之后打开自己数据集的数据,然后完成相应的标注,下面将展示一下对应的操作步骤:

当你新建项目完成后,上传好需要标注的数据集后,就可以选择保存和上传了:

我这里以我自己的穿山甲图片数据集为例,大致选择了100多张进行简单标注。

在标注的时候,我们可以选择它提供的快捷工具,(就是图中的第四个箭头)可以直接帮助我们省去很多步骤:

在标注完成后,我们可以使用roboflow快速的进行训练集,测试集以及验证集的划分,如下所示:

之后,我们点击generate,就可以自动生成我们所需要的数据集了,还免去了划分测试集,训练集以及验证集的过程,之后我们点击export dataset就可以导出我们需要的数据集了。

 

记得选择yolov8格式,然后下载压缩包到你的电脑。至此,我们就完成的数据集的标注。

3.模型的训练

我们导出的数据集在roboflow的帮助下直接就划分成了训练集,测试集以及验证集,然后,我们将导出的数据集放在这个位置:(如图中的pangolin所示,就是我的数据集,我们可以在ultralytics中新建一个名为pang的目录,然后将数据集放入,这个可以根据你的数据集名称进行命名)                 

接下来,按照如下的两幅图进行操作:

打开ultralytics目录下的datasets文件,找到coco128-seg.yaml,把图中的path换成你的数据集所在的路径 ,然后train,val以及test分别换成你数据集里面的图片所在位置,(注意不需要标签,图片所在位置即可)

然后,把classes下面的目录删掉,只留一行(需要说明的是,因为我们这个是单个实例分割,即只需要分割出图片中的穿山甲即可,所以只需要一个分类,如果你想要做多个目标实例分割,可以根据自己需要留下相应的行数,有几个目标留几行,然后把目标的名称改成我们需要的,例如我就将其改成了穿山甲pangolin)

之后,在ultralytics目录下的models目录下找到v8目录,找到其中的 yolov8-seg.yaml,将文件里面的nc改成1,还是同上,因为在我们这个实例中,我们只需要分割一种类型。

至此,我们已经快要成功了,然后就开始进行训练了,在我们的主文件夹中新建一个python文件,命名为my_train,然后输入以下代码:

from ultralytics import YOLO

#load a model
model = YOLO("D:/csdn_pang/ultralytics-main/ultralytics-main/ultralytics/cfg/models/v8/yolov8-seg.yaml")
model = YOLO("D:/csdn_pang/yolov8n-seg.pt")

#Train the model
model.train(data='D:/csdn_pang/ultralytics-main/ultralytics-main/ultralytics/cfg/datasets/coco128-seg.yaml',epochs=30,imgsz=640)

 需要注意的是,第一个model里面的内容就是我们上一步修改类别的yaml文件,然后第二个model里面的内容则是yolov8分割的权重文件,如果在开始下载的代码中没找到,可以通过下面链接https://github.com/ultralytics/assets/releases

跳转到github进行下载,具体位置则在:

最后,你的model.train中需要填入的则是 你开始coco128-seg.yaml所在的路径,(epochs则代表的是你需要训练的次数,我选择的是30次)。至此,所有需要的路径名称已经填写完毕,接下来,我们开始训练即可。

运行该代码,则开始我们的训练,当训练完成时,会出现以下提示:

它会告诉我们保存的路径。至此,我们模型训练完成。

4.输入自己的图片进行预测 

我们还是在主目录下新建一个python文件,命名为my_predict,然后输入以下代码:

from ultralytics import YOLO
from PIL import Image
from ultralytics import YOLO

# Load a model
model = YOLO("D:/csdn_pang/runs/segment/train2/weights/best.pt")  # load an official model
#model = YOLO('path/to/best.pt')  # load a custom model

# Predict with the model
results = model("D:\csdn_pang\pangolin_images\GettyImages-512293046-670ef1cd177744bba811ab24bbd54c83.jpg")  # predict on an image

# Show the results
for r in results:
    im_array = r.plot()  # plot a BGR numpy array of predictions
    im = Image.fromarray(im_array[..., ::-1])  # RGB PIL image
    im.show()  # show image

第一个model里面输入的路径为,我们在训练结束时得到结果的best.pt文件,然后,在results里面输入你想要预测的图片或者视频,运行该代码就可以得到结果啦。

这是我输入后得到的结果,可以看出还不错。

到这一步,我们就已经完成了实例分割,并且可以用模型来进行预测了! 

评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值