假如你的物体检测预测结果格式如下:
[
{"score": 0.9953131675720215, "category_id": 1, "image_id": 139, "bbox": [415.0774841308594, 158.3828125, 50.91650390625, 141.0391845703125]},
{"score": 0.34860146045684814, "category_id": 1, "image_id": 139, "bbox": [383.9513854980469, 171.81935119628906, 17.80291748046875, 35.44476318359375]},
{"score": 0.05445067211985588, "category_id": 1, "image_id": 724, "bbox": [65.32318878173828, 266.7541809082031, 17.288970947265625, 49.436767578125]},
{"score": 0.9993270635604858, "category_id": 1, "image_id": 785, "bbox": [281.54364013671875, 42.66644287109375, 208.07647705078125, 344.91375732421875]}
]
上面只是其中的一部分,此时你需要提取其中的image_id (不要重复的id)数据,并把image_id存储到csv文件里
可以使用下面的程序,提取 其中的image_id
# -*- coding: utf-8 -*-
import json
import pandas as pd
file_path = '预测结果存储路径'
filename = '存放预测结果的文件名'
# file_path 为预测结果的存储路径,filename为存放预测结果的文件名,
# 返回的是集合形式的数据
def get_image_id(file_path, filename):
a = json.load(open(file_path + filename))
image_id_chongfu = []
for i in range(len(a)):
image_id_chongfu.append(a[i]['image_id'])
image_id = set(image_id_chongfu)
return image_id
将集合(set)中的数据写入到csv文件 的 函数
def write_set_to_csv(data_set):
data_list=list(data_set)
test = pd.DataFrame(columns=['image_id'], data=data_list)
test.to_csv('image_id_file.csv', index=False)
print("数据已经写入到image_id_file.csv 文件")