老是忘记,又老是去查了资料后每次都要调试,干脆写到自己的博客,下次使用就不用去查,复制即可了。

YOLOv11 视频推理

import cv2
import os
from ultralytics import YOLO

# 加载模型
model = YOLO(r"C:\Users\xx\xx\xx\xx\runs\detect\xx\weights\best.pt")

# 打开视频文件
cap = cv2.VideoCapture(r"C:\Users\86182\xx\xx\xx\xx.mp4")
if not cap.isOpened():
    print("无法打开视频文件")
    exit()

# 获取视频属性
frame_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
frame_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fps = cap.get(cv2.CAP_PROP_FPS)

# 修正保存路径:在当前目录下创建new_videos文件夹
save_dir = "new_videos"
os.makedirs(save_dir, exist_ok=True)

# 创建VideoWriter对象
output_path = os.path.join(save_dir, "output_inference.mp4")
fourcc = cv2.VideoWriter_fourcc(*"mp4v")
video_writer = cv2.VideoWriter(output_path, fourcc, fps, (frame_width, frame_height))

while True:
    ret, frame = cap.read()
    if not ret:
        print("视频处理完成")
        break
    results = model.predict(frame, conf=0.25, iou=0.45)

    annotated_frame = results[0].plot()

    # 写入帧到输出视频
    video_writer.write(annotated_frame)
    # 按照比例缩放。
    annotated_frame = cv2.resize(annotated_frame, (int(frame_width * 0.5), int(frame_height * 0.5)))
    # 显示实时画面
    cv2.imshow("YOLO Real-time Detection", annotated_frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 释放资源
cap.release()
video_writer.release()
cv2.destroyAllWindows()
print(f"推理结果视频已保存至: {output_path}")

YOLOv11 图片推理

from ultralytics import YOLO
import cv2

# 加载模型
model = YOLO(r"C:\Users\xxx\xxx\xxx\xx\runs\detect\fire3\weights\best.pt")

# 加载图片
# source = r"E:\xxx\xxx\images\test\e1d056da-b73f-4443-ab26-153bdb9a1b8e.jpg"
source = r"C:\Users\xx\xx\pexels-tdcat-195029.jpg"
image = cv2.imread(source)

# 执行推理
results = model.predict(image, imgsz=640, conf=0.5)

# 解析并绘制结果
for result in results:
    annotated_image = result.plot()  # 绘制检测框和标签
    annotated_image = cv2.resize(annotated_image, (640, 640))
# 显示图片
cv2.imshow("YOLOv11 Detection", annotated_image)

# 等待按键后退出
print("Press any key to exit...")
cv2.waitKey(0)  # 等待任意按键
cv2.destroyAllWindows()  # 关闭所有窗口
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐