STITCHESHHH 2024-03-21 21:25 采纳率: 25%
浏览 6

如何使用 yolov8n-obb 模型绘制轨迹图

我使用了官方的脚本来绘制轨迹,该脚本就在官方网站下的跟踪文档中:

img

然后,我想利用 yolov8n-obb 模型来绘制轨迹。

img


出现如上的错误
报错代码如下:

img


恳请解决指导!

  • 写回答

3条回答 默认 最新

  • 码农阿豪 Java领域优质创作者 2024-03-21 21:25
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题描述: 在使用 yolov8n-obb 模型绘制轨迹时,出现了错误。 解决方案: 从报错信息中可以看出,问题出现在 `draw_track` 函数的第五十两行,提示 `boxes_Frame is not subscriptable`,即无法对 `boxes_Frame` 进行下标操作。根据代码可以看出,`boxes_Frame` 是从 `camera` 中获取的物体框坐标,因此可以猜测问题出现在 `camera` 中。 查看代码可以发现,`camera` 在第一行被初始化为跟踪的摄像头,而在报错的函数中,`camera` 被重新赋值为目标检测的结果。因此,需要将目标检测和轨迹绘制分开进行,不要在目标检测的过程中修改 `camera` 的值。 这里给出一份修改后的代码:
    import cv2
    import numpy as np
    from detect import detect  # 目标检测函数
    from utils import get_track_id, get_color, draw_trail  # 绘制轨迹及相关函数
    # 初始化跟踪器
    tracker = cv2.TrackerCSRT_create()
    camera = cv2.VideoCapture(0)
    while True:
        ok, frame = camera.read()  # 读取视频帧
        if not ok:
            break
        # 目标检测
        bboxes, classes = detect(frame)
        # 转换为 OpenCV 格式的坐标
        bboxes = [np.array([bbox[0], bbox[1], bbox[2] - bbox[0], bbox[3] - bbox[1]])
                  for bbox in bboxes]
        # 调用跟踪器跟踪目标
        if len(bboxes) > 0:
            bbox = bboxes[0]  # 取第一个检测到的目标进行跟踪
            tracker.init(frame, bbox)
            track_id = get_track_id(classes[0])
            color = get_color(track_id)
            boxes_Frame = bbox
        # 跟踪已检测到的目标
        if boxes_Frame is not None:
            ok, bbox = tracker.update(frame)
            if ok:
                boxes_Frame = bbox
                draw_trail(frame, boxes_Frame, color)
        # 显示视频帧
        cv2.imshow("Tracking", frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    # 释放摄像头资源
    camera.release()
    cv2.destroyAllWindows()
    

    在这份代码中,将目标检测和绘制轨迹的代码进行了分离,避免了在目标检测中修改 camera 的值从而导致错误的出现。 补充说明: 为了更好地重现问题,本示例代码中省略了一些关键部分代码,仅提供了简化的轨迹绘制代码。如果需要在实际使用中进行修改,请先确保完整代码的正确性。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月21日

悬赏问题

  • ¥15 SQL Server下载
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥15 python爬取bilibili校园招聘网站
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件
  • ¥15 不同系统编译兼容问题
  • ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?
  • ¥30 数字电源对DSP芯片的具体要求