1. 程式人生 > >提取物體檢測結果中的image_id,並把image_id存到csv 檔案裡面

提取物體檢測結果中的image_id,並把image_id存到csv 檔案裡面

假如你的物體檢測預測結果格式如下:

[
{"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 檔案")