有没有办法在YOLOv8中编辑结果对象? (火炬)

问题描述 投票:0回答:1

我尝试编辑从 YOLO 的“model.track”函数获得的结果类型的属性

代码:

    for result in model.track(source=source, show=False, stream=True, verbose=False):
    frame = result.orig_img
    
    # result.boxes.id[0] = 0 # Code Crash
    print('After', result.boxes.id)

我收到了这个错误:

  • 运行时错误:不允许在 InferenceMode 之外对推理张量进行就地更新。您可以在进行就地更新之前进行克隆以获取正常张量。有关更多详细信息,请参阅 https://github.com/pytorch/rfcs/pull/17 .

我阅读了论坛,该错误链接了我,但没有帮助。

我尝试制作另一个结果对象并复制其中除了 id(我正在尝试编辑的属性)之外的每个值,但这也是不行的

使用 del 关键字也是不行的。

我在火炬文档中阅读了有关推理模式选项的信息(在查找如何更改张量之后),在该选项中我可以编辑对象,但我仍然没有设法利用此信息来发挥我的优势

有问题的张量:

After tensor([1., 2., 3., 4., 5., 6.])
python pytorch yolo yolov8
1个回答
0
投票

我设法通过使用结果类中的更新函数解决了这个问题。 更新结果 obj

https://github.com/ultralytics/ultralytics/blob/main/ultralytics/engine/results.py

© www.soinside.com 2019 - 2024. All rights reserved.