yolov8实现数竹签模型,实现自动数竹签(超详细)

随着计算机视觉技术的发展,YOLO(You Only Look Once)系列算法因其高效的实时检测能力而广泛应用。YOLOv8作为最新版本,通过优化策略实现了更高效的目标检测性能。本研究基于YOLOv8,利用PyCharm训练了一个用于竹签计数的模型。该模型旨在提高计数的准确性和效率,克服传统人工计数的不足。

与传统人工计数的区别:

1、提高了生产效率和工作速度,节约了时间和成本

2、模型可以持续运行,不会因为疲劳或其他因素影响计数结果的一致性

3、避免了人工计数中可能出现的误差和漏计的问题

详细过程:

1、在github下载yolov8模型并解压后使用pycharm打开

2、下载权重文件pt后放入该项目(也是在github官网下载,往下拉找到“Models"并点击"YOLOv8n"进行下载,也可根据自己需要下载别的Model)

3、将自己相应的数据集放入项目(数据集格式有严格要求,不清楚的自行百度,我的数据集会放在文末)

如图,我的数据集为dataset,里面包括images和相应的labels(已经分为训练集和验证集)

4,修改两个yaml文件

(1)第一个时coco.yaml文件,一般位于cfg\datasets下,这里需要将数据集的路径修改为为自己的(为了不影响原来的,我这里是将该文件复制粘贴后再修改)

如下图就是修改后的yaml文件,首先path要修改为自己上一步放进来的数据集dataset的路径,train 和val 也是dataset下的,然后"names"这里表示的是类别,从0开始,我这里只是统计竹签的数目,所以只有一个类别

(2)第二个yaml文件,是yolov8.yaml,我同样是复制粘贴了一份叫"myyolov8.yaml”然后这里仅需要把“nc", 也就是类别数改为1就好,其余保持不变

5、开始训练自己的模型

当以上步骤都完成时,就可以开始训练自己的模型了。

先在项目里创建一个py文件,然后把下面代码放进去(注意要修改三个路径,一个是第二步下载 的pt文件,另外两个是上一步修改 的yaml文件,

from ultralytics import YOLO

# Create a new YOLO model from scratch
model = YOLO(r"D:\Downloads\ultralytics-main (1)\ultralytics-main\ultralytics\cfg\models\v8\myyolov8.yaml")

# Load a pretrained YOLO model (recommended for training)
model = YOLO(r"D:\Downloads\ultralytics-main (1)\ultralytics-main\yolov8n.pt")

# Train the model using the 'coco8.yaml' dataset for 3 epochs
results = model.train(data=r"D:\Downloads\ultralytics-main (1)\ultralytics-main\ultralytics\cfg\datasets\mycoco128.yaml", epochs=30)

# Evaluate the model's performance on the validation set
results = model.val()

 

标红的三个路径需要替换为自己的,我这里epochs设置的是30.当以上都完成后,就可以开始模型的训练了。

6、运行时会提示结果保存的位置,到时候在这里便可以查看训练结果,比如f1,recall,pre等等

如下图所示,其中weights下还有一个best.pt文件,这就是我们模型在此训练集训练出来的最好权重模型,待会我们需要用这个模型来进行竹签检测

7、用训练好的模型进行预测,新建py文件,把代码放进去,这里同样需要修改三个路径

import os
import glob
from ultralytics import YOLO

# 加载模型
model = YOLO(r"D:\Downloads\ultralytics-main (1)\ultralytics-main\runs\detect\train\weights\best.pt")

# 设置预测参数
image_path = r"C:\Users\Desktop\mytest1.png"
image_name = os.path.splitext(os.path.basename(image_path))[0]  # 获取不带扩展名的文件名

# 执行预测
results = model.predict(
    source=image_path,
    show=True,  # 显示预测结果
    save=True,  # 保存预测结果
    save_txt=True,  # 保存预测结果为TXT文件
    project=r"D:\Downloads\ultralytics-main (1)\ultralytics-main\results",  # 指定保存结果的根目录
    name="predictions"  # 指定保存结果的子目录名称
)

# 查找最新生成的目录
results_dir = r"D:\Downloads\ultralytics-main (1)\ultralytics-main\results"
subdirs = [d for d in glob.glob(os.path.join(results_dir, '*')) if os.path.isdir(d)]
latest_subdir = max(subdirs, key=os.path.getmtime)  # 根据修改时间获取最新的目录

# 定义标注文件路径
txt_file_path = os.path.join(latest_subdir, "labels", f"{image_name}.txt")

# 统计TXT文件中的行数
bamboo_count = 0
if os.path.exists(txt_file_path):
    with open(txt_file_path, 'r') as file:
        bamboo_count = len(file.readlines())

print(f'竹签的数目: {bamboo_count}')

首先是"model"这里的路径时上一步训练出来的”best.pt"

然后时image_path,这里修改为自己需要预测图片的路径

最后时project,这里放的是自己放结果的文件夹路径,我这里是新建了一个result目录用于放结果(下面"results_dir"的路径需要和此处一致)

设置好后便可运行测试了

8、结果如图,会显示保存的路径以及竹签的数目

数据集链接:https://pan.baidu.com/s/14FPmqM-pPLRdJcfWrDoVhQ 
提取码:7856

智慧交通基于YOLOv8的行人车辆检测计数系统源码(部署教程+训练好的模型+各项评估指标曲线).zip 平均准确率:0.91 类别:person、truck、car、bus、traffic light 【资源介绍】 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文件夹下生成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值