detr输出预测信息

修改coco_eval.py文件

    def prepare_for_coco_detection(self, predictions, output_dir='/home/rendoudou/detr-annotations-master/output'):
        results_by_image_id = {}
        for original_id, prediction in predictions.items():
            if len(prediction) == 0:
                continue

            boxes = prediction["boxes"]
            boxes = convert_to_xywh(boxes).tolist()
            scores = prediction["scores"].tolist()
            labels = prediction["labels"].tolist()

            for k, box in enumerate(boxes):
                category_id = labels[k]
                bbox = [int(x) for x in box]
                score = scores[k]

                result_str = f"{category_id} {' '.join(str(x) for x in bbox)} {score}"

                if original_id not in results_by_image_id:
                    results_by_image_id[original_id] = []

                results_by_image_id[original_id].append(result_str)

        # 转换为对象数组
        coco_results = []
        for image_id, results in results_by_image_id.items():
            for result in results:
                fields = result.split(" ")
                category_id = int(fields[0])
                bbox = [float(x) for x in fields[1:5]]
                score = float(fields[-1])

                coco_result = {
                    "image_id": int(image_id),
                    "category_id": int(category_id),
                    "bbox": bbox,
                    "score": float(score),
                }
                coco_results.append(coco_result)

        # 写入txt文件
        for image_id, results in results_by_image_id.items():
            filename = os.path.join(output_dir, f"{image_id}.txt")
            with open(filename, "w", encoding="utf-8") as f:
                f.writelines("\n".join(results))

        return coco_results

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕竟是shy哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值