Yolov8--python运行

目录

一,基本核心代码

二,代码扩展案例


前置文章:超详细yolov8训练数据集流程

 一,基本核心代码

from ultralytics import YOLO

model = YOLO("xxxx.pt")# 或者(用于训练): model = YOLO("yolov8x.yaml")

image = "xxx.jpg"# 或者图片文件夹

model.predict(image, save=True)# 返回image的预测结果

# 训练:model.train(data="数据集路径.yaml", epochs=200, batch=16)
# 训练数据集类型看yolov8训练流程

二,代码扩展案例

1,训练

from ultralytics import YOLO

model = YOLO("./weights/yolov8n.pt")

data = "./dataset/car/mydata.yaml"

model.train(data=data, epochs=100, batch=1)

2,预测

2.1单图

from ultralytics import YOLO

save_path = './'
image_path = './dataset/fire_smoke/000010.jpg'
model = YOLO('./weights/v8_fire_smoke.pt')

# 单图预测
results = model.predict(image_path)
for r in result[0]:
    if r.boxes.cls.item()==0.0:
        print('有火')
    elif r.boxes.cls.item()==1.0:
        print('有烟')

2.2多图文件夹

from ultralytics import YOLO
from pathlib import Path

save_path = './'
images_path = './dataset/fire_smoke/images'
model = YOLO('./weights/v8_fire_smoke.pt')

for path in Path(images_path).glob('*.*'):
    results = model.predict(str(path))
    for result results:	
        for r in result:
            if r.boxes.cls.item()==0.0:
                print('有火')
            elif r.boxes.cls.item()==1.0:
                print('有烟')

2.3 图片路径文件

from ultralytics import YOLO
from pathlib import Path

save_path = './'
txt_path = './xxx.txt'# txt内容是图片路径
model = YOLO('./weights/v8_fire_smoke.pt')

# 图集推理
with open(txt_path, 'r', encoding='utf-8') as f:
    lines = f.readlines()
    for path in lines:
        results = model.predict(path[:-1])
        for r in result[0]:
            if r.boxes.cls.item()==0.0:
                print('有火')
            elif r.boxes.cls.item()==1.0:
                print('有烟')

2.4网络摄像头

from ultralytics import YOLO
import cv2

save_path = './'
video_url = 0# 网络摄像头路径,0表示本机摄像头
model = YOLO('./weights/v8_fire_smoke.pt')

cap = cv2.VideoCapture(video_url)
while True:
    ret, frame = cap.read()
    results = model.predict(frame, save=True)
    img = cv2.imread('./predict/image0.jpg')
    cv2.imshow('img', img)
    if cv2.waitKey(1) == ord('q'):
        break
    for r in results[0]:
        # if r.boxes.conf.item()>5.0:# 置信度阈值
        if r.boxes.cls.item()==0.0:
            print('有火')
        elif r.boxes.cls.item()==1.0:
            print('有烟')

  • 5
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值