detr输出预测信息

news/2024/7/11 1:35:51 标签: YOLO, coco

修改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

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


http://www.niftyadmin.cn/n/5033994.html

相关文章

git在pull时报错You have not concluded your merge (MERGE_HEAD exists).

问题描述 git拉取远程代码时,报错:You have not concluded your merge (MERGE_HEAD exists)。 发生原因 发生这种情况,是由于没有完成上次的merge操作,就进行了pull操作。在pull之前一定要将先前的冲突解决掉。 解决办法 办法一…

Python 枚举类

视频版教程 Python3零基础7天入门实战视频教程 在某些情况下,一个类的对象是有限且固定的,比如季节类,它只有4个对象;再比如星期,只有星期一到星期日。这种实例有限且固定的类,在Python中被称为枚举类。枚举类不能被修改,自然也不能被继承。…

软考和PMP哪个含金量更高?

软考中,能和pmp一起来比较的是软考高项,软考高级信息系统项目管理师,和PMP的共同点,基本来说都是项目管理类的证书。本质也都是适用于项目经理岗位的证书,软考高项中大部分考试内容是PMPIT技术两部分,其中项…

短视频矩阵系统源码开发分享

①账号的建立与发布频率 要根据品牌的定位和特点,结合平台的特点和用户需求,制作符合品牌及个人形象的账号名称和内容发布主旨,以在短视频平台建立起自身标签,从而提升品牌知名度和美誉度。 发文频率也很关键,发文频…

Layui快速入门之第十一节 弹出层

目录 一:基本用法 API 打开弹层 基础属性 弹出信息框 弹出询问框 弹出提示框 弹出加载层 弹出贴士层 弹出输入框 弹出图片层 弹出标签层 关闭弹层 关闭所有层 关闭最近一次打开的层 2.8 全局配置默认属性 样式初始化就绪 重新设置弹层样式 设置弹…

【CSP认证考试】202303-1:田地丈量解题思路+代码

问题描述 西西艾弗岛上散落着 n 块田地。每块田地可视为平面直角坐标系下的一块矩形区域&#xff0c;由左下角坐标 (x1,y1) 和右上角坐标 (x2,y2) 唯一确定&#xff0c;且满足 x1<x2、y1<y2。这 n 块田地中&#xff0c;任意两块的交集面积均为 0&#xff0c;仅边界处可能…

uniapp滑动事件

在Uniapp中&#xff0c;可以通过touchstart、touchmove和touchend等事件来监听滑动操作。以下是对这些事件的简要说明&#xff1a; touchstart&#xff1a;当手指触摸屏幕时触发该事件。可以通过event.touches属性获取到触摸点的信息。 touchmove&#xff1a;当手指在屏幕上滑…

外卖配送系统开发指南:打造高效、智能的外卖服务

随着外卖市场的蓬勃发展&#xff0c;餐厅和外卖平台需要不断提高外卖服务的效率和智能性&#xff0c;以满足不断增长的需求。在本文中&#xff0c;我们将探讨如何开发一个高效、智能的外卖配送系统&#xff0c;同时提供一些关键代码示例来帮助您入门。 环境准备 在开始外卖配…