提取物體檢測結果中的image_id,並把image_id存到csv 檔案裡面
阿新 • • 發佈:2018-11-27
假如你的物體檢測預測結果格式如下:
[ {"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 檔案")