yolo视频检测时,检测框上显示中文名字

python 复制代码
from ultralytics import YOLO
import numpy as np
import cv2
from ultralytics import YOLO

# Load a pretrained YOLOv8n model
model = YOLO("yolov8n.pt")#我加载的是官方权重

# Define path to video file
video_path = r"D:\daye_input.mp4"
cap = cv2.VideoCapture(video_path)
if not cap.isOpened():
    print("Cannot open camera")
    exit()

fps = cap.get(cv2.CAP_PROP_FPS)#输入视频帧率
print(f"输入视频帧率为:Frames per second: {fps}")

# 保存视频的一些设置
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
# width = int(1920)
# height = int(1080)
# fourcc = cv2.VideoWriter_fourcc(*'mp4v')  # 保存视频的编码格式
# output_video_path = 'daye.mp4'
# fourcc = cv2.VideoWriter_fourcc(*'mp4v')  # 保存视频的编码格式
# output_video_path = 'daye.mp4'

fourcc = cv2.VideoWriter_fourcc(*'XVID')  # 保存视频的编码格式
output_video_path = 'daye.avi'


out = cv2.VideoWriter(output_video_path, fourcc, fps, (width, height))

from PIL import Image, ImageDraw, ImageFont

# 设置字体
font = ImageFont.truetype(r'C:\Windows\Fonts\SimHei.ttf', 60)  # 替换为你的字体路径
# 循环遍历视频帧
while cap.isOpened():

    # start_time = time.time() #记录开始时间

    # 从视频读取一帧
    success, frame = cap.read()

    if success:
        # 在帧上运行YOLOv8追踪,持续追踪帧间的物体
        #     results = model(frame,  conf=0.3,iou=0.5,imgsz=(640,640))
            results = model.track(frame, persist=True, conf=0.3, iou=0.5, tracker="ultralytics/cfg/trackers/bytetrack.yaml",
                              imgsz=(1920,1080))
            img_pil = Image.fromarray(frame)
            draw = ImageDraw.Draw(img_pil)  # 创建Draw对象

            if results[0].boxes and results[0].boxes.id is not None:
               boxes = results[0].boxes.xyxy.cpu()
               clss = results[0].boxes.cls
               track_ids = results[0].boxes.id.int().cpu().tolist()
               for id, cls, boxxyxy in zip( track_ids, clss, boxes ):
                   class_id = cls.item()
                   x1, y1, x2, y2 = boxxyxy
                   tracker_id = id
                   if class_id == 0.0:
                       # class_id = 'DaYe'

                       draw.text((int(x1), int(y1) - 50), str(tracker_id)+"号大爷", font=font, fill=(0, 0,255))# 在图片上绘制中文
                       # cv2.rectangle(img_pil, (int(x1), int(y1)), (int(x2), int(y2)), (0, 69, 255), 2)  # 橙红

                       draw.rectangle([(int(x1), int(y1)), (int(x2), int(y2))], outline="blue", width=4)  # 红色边框,宽度5

                   # else:
                   #     draw.text((int(x1), int(y1) - 50),  "不像大爷", font=font,
                   #               fill=(255, 0, 0))  # 在图片上绘制中文
                   #     # cv2.rectangle(img_pil, (int(x1), int(y1)), (int(x2), int(y2)), (0, 69, 255), 2)  # 橙红
                   #
                   #     draw.rectangle([(int(x1), int(y1)), (int(x2), int(y2))], outline="red", width=4)  # 红色边框,宽度5

            # img = cv2.cvtColor(np.array(img_pil), cv2.COLOR_BGR2RGB)
            img = np.array(img_pil)
            # cv2.imshow('frame_pil', img)
            # img = cv2.resize( img, (1920, 1080))
            out.write(img)

            cv2.imshow('frame_pil', img)
            if cv2.waitKey(1) & 0xFF == ord('q'):
                break
            # cv2.waitKey(0)
            # cv2.destroyAllWindows()
    else:
        break
cap.release()
out.release()
cv2.destroyAllWindows()

检测效果见我b站视频【yolo检测框显示中文】 https://www.bilibili.com/video/BV1ih2wYWEcM/?share_source=copy_web\&vd_source=84543f4291e70cc3c31e5db4f6cabde8

相关推荐
向哆哆9 天前
高精度织物缺陷检测数据集(适用YOLO系列/1000+标注)(已标注+划分/可直接训练)
yolo·目标检测
前网易架构师-高司机10 天前
带标注的驾驶员安全带识别数据集,识别率99.5%,可识别有无系安全带,支持yolo,coco json,pascal voc xml格式
xml·yolo·数据集·交通·安全带
向哆哆10 天前
粉尘环境分类检测千张图数据集(适用YOLO系列)(已标注+划分/可直接训练)
yolo·分类·数据挖掘
琅琊榜首202010 天前
移动端AI挂机新范式:YOLOv8+NCNN实现无Root视觉自动化
人工智能·yolo·自动化
智驱力人工智能11 天前
地铁隧道轨道障碍物实时检测方案 守护城市地下动脉的工程实践 轨道障碍物检测 高铁站区轨道障碍物AI预警 铁路轨道异物识别系统价格
人工智能·算法·yolo·目标检测·计算机视觉·边缘计算
智驱力人工智能11 天前
机场鸟类活动智能监测 守护航空安全的精准工程实践 飞鸟检测 机场鸟击预防AI预警系统方案 机场停机坪鸟类干扰实时监测机场航站楼鸟击预警
人工智能·opencv·算法·安全·yolo·目标检测·边缘计算
前端摸鱼匠11 天前
YOLOv8使用 Ultralytics 内置功能简化格式转换:介绍如何使用 yolo mode=data 等相关功能或辅助工具来加速和简化数据格式的准备工作
人工智能·yolo·目标检测·机器学习·目标跟踪·视觉检测
hans汉斯11 天前
《数据挖掘》期刊推介&征稿指南
图像处理·人工智能·算法·yolo·数据挖掘·超分辨率重建·汉斯出版社
卓越软件开发11 天前
毕设全栈开发一条龙:Java/SpringBoot/Vue/ 小程序 / Python / 安卓 / AI 图像识别 人脸检测 车牌识别 YOLO
开发语言·spring boot·python·yolo·小程序·毕业设计·课程设计
向哆哆11 天前
单车/共享单车目标检测数据集(适用YOLO系列)(已标注+划分/可直接训练)
人工智能·yolo·目标检测