YOLO(自建数据集)

标题:运用YOLO对图像进行处理

1.对bus.jpg的预测实例

# 训练模型
from ultralytics import YOLO
import cv2

model = YOLO("yolov8n.pt")
#model.train(data="coco128.yaml", epochs=51)  # 详细参数见2.2

# 验证模型
#model.val()
# 预测模型
result=model.predict(source=r"C:\PyCharm\ultralytics-main\bus.jpg")  # 0是摄像头,详细参数见3.2
annotated_frame = result[0].plot()
cv2.imshow("girl",annotated_frame);
cv2.waitKey(0)
cv2.destroyAllWindows()

 以下是运行结果:

2.对视频流进行预测

import cv2
from ultralytics import YOLO
# 加载模型
model = YOLO("yolov8n.pt")
# 打开视频文件
video_path = "C:\python study file\\59514dff3af037900c2ca5700aa9c173_raw.mp4"
cap = cv2.VideoCapture(video_path)
# 获取视频帧的维度
frame_width = int(cap.get(3))
frame_height = int(cap.get(4))
#创建VideoWriter对象
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter("C:\python study file\\csgo.mp4", fourcc, 20.0, (frame_width, frame_height))
#循环视频帧
while cap.isOpened():
    # 读取某一帧
    success, frame = cap.read()
    if success:
        # 使用yolov8进行预测
        results = model(frame)
        #可视化结果
        annotated_frame = results[0].plot()
        #将带注释的帧写入视频文件
        out.write(annotated_frame)
    else:
        # 最后结尾中断视频帧循环
        break
#释放读取和写入对象
cap.release()
out.release()

视频这里就不展示了;

自建数据集进行训练和预测

1.首先选择好图像集

我这里选择了19张小麦的图片,然后把图像集全部转为同意格式,如全为JPG或全为png;

 参考csdn的文章运行.bat文件把图片格式转为jpg格式;

2.下载labelimg为图像集打标签(注意将标签文件保存为yolo格式)

即框选出识别的目标并标上名称;注意标签文件顺序需与图像集顺序相匹配;

这里是处理好的wheat文件夹

images中的train2017存放图像集;labels的train2017存放标签集;

重要:新建一个.yaml文件,并更改路径和classname;

3.训练

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.yaml')  # build a new model from YAML
model = YOLO('yolov8n.pt')  # load a pretrained model (recommended for training)
model = YOLO('yolov8n.yaml').load('yolov8n.pt')  # build from YAML and transfer weights

# Train the model
results = model.train(data=r'C:\PyCharm\ultralytics-main\dataset\wheat\my_wheat.yaml', epochs=100, resume=True,batch=4,lr0=0.01)

以下是训练过程;可以下载GPU版本的pytorch使用cuda和cudnn进行加速,但我用GPU版本的预测不会报错,拿来训练就会报错,所以这里还是用CPU版本的。

 4.训练完成后(查看runs文件夹下文件)

以下是训练生成的其中两个文件;通过图表我们能看到训练效果的趋势;

在weight文件夹下我们能看到两个训练生成的权重文件,选择best.pt,我们就可以开始预测;

5.预测

# 训练模型
from ultralytics import YOLO
import cv2

model = YOLO(r"C:\PyCharm\ultralytics-main\codeBank\runs\detect\train11\weights\best.pt")
#model.train(data="coco128.yaml", epochs=51)  # 详细参数见2.2

# 验证模型
#model.val()
# 预测模型
result=model.predict(source=r"C:\Users\13560\Desktop\0811230c2e75851827e1661d658730f.png")  # 0是摄像头,详细参数见3.2
annotated_frame = result[0].plot()
cv2.imshow("girl",annotated_frame);
cv2.waitKey(0)
cv2.destroyAllWindows()

以下是运行结果:

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值