first commit
This commit is contained in:
1 parent
ae53e9eac5
commit
91cbd01126
514 files changed
+55625
-2203
No files matched your search
Executable
+74
@@ -0,0 +1,74 @@
|
||||
"""
|
||||
author:Hatcher
|
||||
e-mail:hcwang@semi.ac.cn
|
||||
功能:扫描文件夹下面的所有图像,并以文件夹为单位统计鸟类数量
|
||||
文件夹格式:
|
||||
images
|
||||
data
|
||||
images.jpg
|
||||
输出:每个文件夹中保存一个txt文件,每个种类鸟类的数量,所有鸟类种类的数量
|
||||
|
||||
"""
|
||||
import os
|
||||
import torch
|
||||
import cv2
|
||||
from System_I import Detection_Y5,Fine_grained_T
|
||||
from common import global_para as gp
|
||||
import json
|
||||
from tqdm import tqdm
|
||||
from creat_xml_fordetection import make_xml_scan
|
||||
root_path = "/data5/Project/scanData/YNDC/scanData/"
|
||||
save_root = "/data5/Project/scanData/YNDC/result/"
|
||||
save_json = "/data5/Project/scanData/YNDC/JSON/"
|
||||
os.environ['CUDA_VISIBLE_DEVICES'] = '7'
|
||||
devices = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
|
||||
Detection = Detection_Y5(devices,root_path)
|
||||
Fine = Fine_grained_T(devices)
|
||||
if not os.path.exists(os.path.join(save_json, "ForDataBase")):
|
||||
os.makedirs(os.path.join(save_json, "ForDataBase"))
|
||||
if not os.path.exists(os.path.join(save_json, "ForTest")):
|
||||
os.makedirs(os.path.join(save_json, "ForTest"))
|
||||
for file_paths in tqdm(os.listdir(root_path)):
|
||||
box_all = []
|
||||
label_all = []
|
||||
record_time = file_paths.replace("_","-",2)
|
||||
record_time = record_time.replace("_"," ",1)
|
||||
record_time = record_time.replace("_",":")
|
||||
file_path = os.path.join(root_path,file_paths)
|
||||
labels_fineall = []
|
||||
resultDict = {}
|
||||
allimageresult =[0 for i in range(len(gp.BHG_chineseName))]
|
||||
if not os.path.exists(os.path.join(save_root,file_paths)):
|
||||
os.makedirs(os.path.join(save_root,file_paths))
|
||||
for imagepath in os.listdir(file_path):
|
||||
image = cv2.imread(os.path.join(file_path,imagepath))
|
||||
img_show,boxes_fine, labels_fine = Detection.inference_scan(image=image,fine_grained=Fine)
|
||||
for m in range(len(labels_fine)):
|
||||
box_all.append(boxes_fine[m])
|
||||
label_all.append(gp.BHG_chineseName[int(labels_fine[m])])
|
||||
cv2.imwrite(os.path.join(save_root,file_paths,imagepath),img_show)
|
||||
oneimageresultcdict = {}
|
||||
oneimageresult =[0 for i in range(len(gp.BHG_chineseName))]
|
||||
for i in labels_fine:
|
||||
oneimageresult[int(i)]+=1
|
||||
allimageresult[int(i)]+=1
|
||||
for i in range(len(oneimageresult)):
|
||||
if not (int(oneimageresult[i]) == 0):
|
||||
oneimageresultcdict[gp.BHG_chineseName[i]]=int(oneimageresult[i])
|
||||
resultDict[imagepath] = oneimageresultcdict
|
||||
allimageresultcdict = {}
|
||||
for i in range(len(allimageresult)):
|
||||
if not (int(allimageresult[i]) == 0):
|
||||
allimageresultcdict[gp.BHG_chineseName[i]]=int(allimageresult[i])
|
||||
resultDict[file_paths] = allimageresultcdict
|
||||
json_str = json.dumps(resultDict, indent=4)
|
||||
with open(os.path.join(save_json,"ForTest",file_paths + "_Test.json"), 'w',encoding='utf-8') as json_file:
|
||||
#json_file.write(json_str)
|
||||
json.dump(resultDict,json_file,indent=4,ensure_ascii=False)
|
||||
json_conversion = make_xml_scan(record_time=record_time, serial_number="iDS-2DF8C840IXS-AFW/SP20220507CCCHJ90488961",boxes=box_all,labels=label_all, savename=os.path.join(save_json,"ForDataBase" ,file_paths + "_DataBase.json"))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user