各位C友看到了知道的话解答一下吧

img


这里xyxy时图片左上角右下角的信息,conf是置信值,cls是目标的种类。我希望只保留conf是浮点数,其他则是整数型。该怎么做。在运行detect.pyd的过程中不着调怎么改代码。

【以下回答由 GPT 生成】

# Writeresults保存预测结果
for xyxy, conf, cls in reversed(det):
    # 将每个图片的预测信息分别存入savedir/labels下的xxx.txt中每行:classid xywh score(conf就是置信分值在这里就定score)
    if save_txt:
        c1, c2 = (int(xyxy[0]), int(xyxy[1])), (int(xyxy[2]), int(xyxy[3]))
        xywh = (xyxy2xywh(torch.tensor(xyxy)).view(1,4))/gn).view(-1).tolist() # 归一化(x, y)的位置,将左上角右下角数值变为x, y中心
        save_conf = float(conf) if opt.save_conf else ()
        line = (int(c1[0]), int(c1[1]), int(c2[0]), int(c1[1]), int(c2[0]), int(c2[1]), int(c1[0]), int(c2[1]), int(cls), save_conf) if opt.sa
        with open(txt_path, 'a') as f:
            f.write(' '.join([str(item) for item in line]) + '\n') # 将line中的元素转换为字符串并连接为一行,然后写入文件

修改代码的步骤: 1. 将c1c2的坐标值转换为整数型,使用int()函数实现。 2. 将conf的值转换为浮点数型,使用float()函数实现。 3. 将cls的值转换为整数型,使用int()函数实现。 4. 将line中的元素转换为字符串并连接为一行,然后写入文件。使用' '.join([str(item) for item in line]) + '\n'实现。

注意:代码中可能有一些变量和函数没有完整提供,你需要根据实际情况进行适当的调整。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^