YOLO模型实时视频目标检测可视化并保存本地代码

import os

import cv2
from ultralytics import YOLO


def detect_objects_in_video(best_pt_path, video_path, output_video_name):
    output_video_path = video_path.rsplit('.', 1)[0] + '_' + output_video_name + '.mp4'

    model = YOLO(best_pt_path)

    cap = cv2.VideoCapture(video_path)

    fps = cap.get(cv2.CAP_PROP_FPS)
    width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
    height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))

    fourcc = cv2.VideoWriter_fourcc(*'mp4v')
    out = cv2.VideoWriter(output_video_path, fourcc, fps, (width, height))

    while cap.isOpened():
        success, frame = cap.read()

        if success:
            results = model(frame)

            annotated_frame = results[0].plot()

            out.write(annotated_frame)

            cv2.imshow('YOLO Detection', annotated_frame)

            if cv2.waitKey(1) & 0xFF == ord('q'):    #退出循环的话按“q”
                break
        else:
            break

    cap.release()
    out.release()

    cv2.destroyAllWindows()


if __name__ == "__main__":
    best_pt_path = r"C:\Users\DELL\Desktop\best.pt"    #best.pt替换成自己的
    video_path = r"C:\Users\DELL\Desktop\a.mp4"		#原视频路径
    output_video_name = "out"

    detect_objects_in_video(best_pt_path, video_path, output_video_name)



    output_video_path = video_path.rsplit('.', 1)[0] + '_' + output_video_name + '.mp4'
    os.startfile(output_video_path)

使用方法:将YOLO训练好的best.pt文件路径和你的视频路径放入代码中,会在可视化结束后输出视频到原视频的同级文件夹

YOLO使用教程:YOLOv8改进专栏|专栏介绍&目录-优快云博客

具体效果请看:

YOLO本地检测并保存

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值