1、概述:
博主是基于2021年全球小麦目标检测计数比赛的数据集进行分析,发现CSV标签文件中是存在no_box也就是没有标注框的情况。
为了方便菜鸡的我直接去用目标检测算法,博主将无目标的图像抽取处理,方便后续批量转换CSV文件为XML文件:
import cv2
import csv
import argparse
import numpy as np
import pandas as pd
from tqdm import tqdm
parser = argparse.ArgumentParser()
parser.add_argument('--big_csv', type=str, default='D:/Download/2021wheat_object_dectection/train.csv', help='')
parser.add_argument('--dataset_way', type=str, default='D:/Download/2021wheat_object_dectection/train', help='')
parser.add_argument('--wish_way', type=str, default='D:/Download/2021wheat_object_dectection/no_box_dataset', help='')
opt=parser.parse_args()
way_1=opt.big_csv
way_2=opt.dataset_way
way_3=opt.wish_way
print(opt)
def main():
#读取csv文件,不读取表头
df=pd.read_csv(way_1,header=None)
#读取csv中数据的行数
index_num=len(df.index)
for i in tqdm(range(index_num)):
#提取csv文件中指定行
row_data_1=df.iloc[i] #1到3657
#截取行中对应列的值
image_name=row_data_1[0]
bbox=row_data_1[1]
# print(bbox)
if bbox=='no_box':
#删除没有目标的行
df_wish=df.drop(i)
#把no_box的图片抽取到单独的文件夹中
img=cv2.imread('%s/%s.png'%(way_2,image_name))
cv2.imwrite('%s/%s.png'%(way_3,image_name),img)
#将no_box数据抽取出来的csv文件保存
df_wish.to_csv('D:/Download/2021wheat_object_dectection/train_wish.csv',index=False)
if __name__ == '__main__':
main()