def find_xmls_with_minimal_size_of_this_cate(xmlDir, cate): allXmls = FILES.get_sorted_files(xmlDir) MinW = 9999 MinH = 9999 MinA = MinW * MinH for xml in allXmls: xmlPath = os.path.join(xmlDir, xml) wMinPath = os.path.join(tarDir, '{}_wMin.xml'.format(cate)) hMinPath = os.path.join(tarDir, '{}_hMin.xml'.format(cate)) aMinPath = os.path.join(tarDir, '{}_aMin.xml'.format(cate)) txts = TXT.read_txt(xmlPath) soup = BeautifulSoup(txts, "xml") objs = soup.find_all('object') for obj in objs: name = obj.find('name').get_text() if name == cate: xmin = int(obj.find('xmin').get_text()) xmax = int(obj.find('xmax').get_text()) ymin = int(obj.find('ymin').get_text()) ymax = int(obj.find('ymax').get_text()) width = xmax - xmin height = ymax - ymin area = width * height if width < MinW: MinW = width shutil.copy(xmlPath, wMinPath) if height < MinH: MinH = height shutil.copy(xmlPath, hMinPath) if area < MinA: MinA = area shutil.copy(xmlPath, aMinPath) print("cate: {} MinW={}, MinH={}, MinA={}".format(cate, MinW, MinH, MinA))
def find_most_cates_with_cate(xmlDir, cate, savedCates): maxCates = 0 allXmls = FILES.get_sorted_files(xmlDir) for xml in allXmls: labelDict = {} xmlPath = os.path.join(xmlDir, xml) tarPath = os.path.join(tarDir, xml) txts = TXT.read_txt(xmlPath) soup = BeautifulSoup(txts, "xml") objs = soup.find_all('object') for obj in objs: name = obj.find('name').get_text() # find函数只找到第一个相关的内容 if name not in labelDict.keys(): labelDict[name] = 1 else: labelDict[name] += 1 if cate in labelDict.keys(): if len(labelDict) > maxCates: maxCates = len(labelDict) maxXml = xmlPath maxTar = tarPath maxAddCates = labelDict.keys() print("maxXml={}, maxTar={}".format(maxXml, maxTar)) shutil.copy(maxXml, maxTar) for maxAddCate in maxAddCates: savedCates.append(maxAddCate)
def copy_files_refer_dir(FileDir, FileForm, ReferDir, xmlTar): allRefers = FILES.get_sorted_files(ReferDir) for refer in allRefers: file = refer.split('.')[0] + FileForm sourPath = os.path.join(FileDir, file) tarPath = os.path.join(xmlTar, file) try: shutil.copy(sourPath, tarPath) except: pass
def remove_xml(): imgs = [x for x in FILES.get_sorted_files(imgDir)] xmls = [x for x in FILES.get_sorted_files(xmlDir)] # print(imgs) # remove xml count = 0 for xml in tqdm(xmls): find_img_name = xml.replace(xmlType, imgType) # print(find_img_name) if find_img_name in imgs: pass # print('save %s'%xml) else: print('del %s' % xml) os.remove(os.path.join(xmlDir, xml)) count += 1 print("remove {} xmls.\n".format(count))
def remove_img(): imgs = [x for x in FILES.get_sorted_files(imgDir)] xmls = [x for x in FILES.get_sorted_files(xmlDir)] # print(imgs) # remove img count = 0 for img in tqdm(imgs): find_xml_name = img.replace(imgType, xmlType) # print(find_img_name) if find_xml_name in xmls: pass # print('save %s'%img) else: print('del %s' % img) os.remove(os.path.join(imgDir, img)) count += 1 print("remove {} imgs.\n".format(count))
def sample_random(sampleDir,tarDir,remainNum): allFiles=FILES.get_sorted_files(sampleDir) random.shuffle(allFiles) count=0 for file in allFiles: if count<remainNum: filePath=os.path.join(sampleDir,file) tarPath=os.path.join(tarDir,file) shutil.move(filePath,tarPath) count+=1
def sample_files(sampleDir, tarDir, remainNum): allFiles = FILES.get_sorted_files(sampleDir) filesCount = len(allFiles) REMRATE = filesCount / remainNum remRate = REMRATE count = int(REMRATE) + 1 fileNum = 0 for file in allFiles: if count - remRate > 0: filePath = os.path.join(sampleDir, file) tarPath = os.path.join(tarDir, file) shutil.copy(filePath, tarPath) fileNum += 1 remRate += REMRATE count += 1
def move_xmls_with_cates(xmlDir, cates): allXmls = FILES.get_sorted_files(xmlDir) ii = 0 for xml in allXmls: xmlPath = os.path.join(xmlDir, xml) tarPath = os.path.join(tarDir, xml) txts = TXT.read_txt(xmlPath) soup = BeautifulSoup(txts, "xml") objs = soup.find_all('object') for obj in objs: name = obj.find('name').get_text() if name in cates: shutil.move(xmlPath, tarPath) ii += 1 break
def find_all_cates(xmlDir): labelDict = {} allXmls = FILES.get_sorted_files(xmlDir) for xml in allXmls: xmlPath = os.path.join(xmlDir, xml) txts = TXT.read_txt(xmlPath) soup = BeautifulSoup(txts, "xml") objs = soup.find_all('object') for obj in objs: name = obj.find('name').get_text() # find函数只找到第一个相关的内容 if name not in labelDict.keys(): labelDict[name] = 1 else: labelDict[name] += 1 return labelDict.keys()
def filter_xmls_without_cates(xmlDir, cates): allXmls = FILES.get_sorted_files(xmlDir) for xml in allXmls: xmlPath = os.path.join(xmlDir, xml) tarPath = os.path.join(tarDir, xml) txts = TXT.read_txt(xmlPath) soup = BeautifulSoup(txts, "xml") objs = soup.find_all('object') noTruck = 1 for obj in objs: name = obj.find('name').get_text() if name in cates: noTruck = 0 break if noTruck == 1: shutil.copy(xmlPath, tarPath)
def filter_short_cates(xmlDir, cates): allXmls = FILES.get_sorted_files(xmlDir) for xml in allXmls: xmlPath = os.path.join(xmlDir, xml) tarPath = os.path.join(tarDir, xml) txts = TXT.read_txt(xmlPath) soup = BeautifulSoup(txts, "xml") objs = soup.find_all('object') for obj in objs: name = obj.find('name').get_text() if name in cates: bndb = obj.find("bndbox") xsize = int(bndb.find('xmax').text) - int( bndb.find('xmin').text) ysize = int(bndb.find('ymax').text) - int( bndb.find('ymin').text) if xsize > ysize * 0.9: shutil.copy(xmlPath, tarPath) break
def filter_lack_helmet(xmlDir): personCates = ['person'] helmetCates = ['red', 'yellow', 'blue', 'white', 'orange'] allXmls = FILES.get_sorted_files(xmlDir) for xml in allXmls: numPer = 0 numHel = 0 xmlPath = os.path.join(xmlDir, xml) lackPath = os.path.join(tarDir, xml) txts = TXT.read_txt(xmlPath) soup = BeautifulSoup(txts, "xml") objs = soup.find_all('object') for obj in objs: name = obj.find('name').get_text() if name in personCates: numPer += 1 elif name in helmetCates: numHel += 1 else: print("Lack of category {} set in function filter_lack_helmet". format(name)) if numPer > numHel: shutil.copy(xmlPath, lackPath)
# encoding=utf8 import os import shutil from basicFun import FILES from tqdm import tqdm if __name__ == "__main__": count=0 srcDir=r"/DATACENTER4/hao.yang/project/Qin/data/imgs/safe/safe_CFMXX_img_divided/" tarDir=r"/DATACENTER4/hao.yang/project/Qin/data/imgs/safe/safe_FMXX_img/" allJpgs=[x for x in FILES.list_all_filePaths(srcDir) if '.jpg' in x] FILES.mkdir(tarDir) for jpgPath in tqdm(allJpgs): shutil.copy(jpgPath,os.path.join(tarDir,jpgPath.split('/')[-1])) count+=1 print("copy jpgs:",count)
REMRATE = filesCount / remainNum remRate = REMRATE count = int(REMRATE) + 1 fileNum = 0 for file in allFiles: if count - remRate > 0: filePath = os.path.join(sampleDir, file) tarPath = os.path.join(tarDir, file) shutil.copy(filePath, tarPath) fileNum += 1 remRate += REMRATE count += 1 memberRoot = '/disk2/hao.yang/project/Qin/data/xmls/guide' members = FILES.get_sub_dirs(memberRoot) for member in members: sampleRoot = os.path.join(memberRoot, member) tarRoot = os.path.join(memberRoot, member + '_sample') FILES.mkdir(tarRoot) dirNames = FILES.get_sub_dirs(sampleRoot) for dirName in dirNames: sampleDir = os.path.join(sampleRoot, dirName) tarDir = os.path.join(tarRoot, dirName) FILES.mkdir(tarDir) sample_files(sampleDir, tarDir, 2000) # xmlDir=r"E:\factory\voc\add_data\summary\rawImg\Tank_jl" # jpgDir=r"E:\research\lackLabel\voc\img4206" # xmlTar=r"E:\factory\voc\add_data\summary\rawImg\Tank_jl_lite" # jpgTar=r"E:\research\lackLabel\voc\img2103_1" # remainNum=70
import os import shutil from basicFun import FILES import random def copy_files_refer_dir(FileDir,FileForm,ReferDir,xmlTar): allRefers=FILES.get_sorted_files(ReferDir) for refer in allRefers: file=refer.split('.')[0]+FileForm sourPath=os.path.join(FileDir,file) tarPath=os.path.join(xmlTar,file) try: shutil.copy(sourPath,tarPath) except: pass def sample_random(sampleDir,tarDir,remainNum): allFiles=FILES.get_sorted_files(sampleDir) random.shuffle(allFiles) count=0 for file in allFiles: if count<remainNum: filePath=os.path.join(sampleDir,file) tarPath=os.path.join(tarDir,file) shutil.move(filePath,tarPath) count+=1 srcDir='/DATACENTER4/hao.yang/project/Qin/data/xmls/safe/safe_FMXX_23743_total/' tarDir='/DATACENTER4/hao.yang/project/Qin/data/xmls/safe/safe_FMXX_23743_test/' FILES.mkdir(tarDir) sample_random(srcDir,tarDir,5000)
tree = ET.ElementTree(file=path) root = tree.getroot() # XML.chag_label(root,labelDict) # 修改label名称 # root=XML.del_tag(root,names) # 删除指定label root = XML.save_tag(root, names) # 只保留指定label # root=XML.thresh_size(path,root,sizeThresh,sizeThreshNames) XML.write_xml(tree, path) if __name__ == "__main__": count = 0 xmlDir = '/DATACENTER4/hao.yang/project/Qin/data/xmls/checkout/pos_use_pos/' print(xmlDir) names = ['pos_free', 'pos_use'] # names=['yellow','blue','other','security','red','gray'] # names=['truck','oilgun','motorcycle','bus','tanker','vehicle'] # names=['yellow','blue','other','security','red','gray','truck','oilgun','motorcycle','bus'] # labelDict={'oilgun':'vehicle','motorcycle':'vehicle','bus':'vehicle','truck':'vehicle'} labelDict = {'tanker': 'vehicle', 'bus': 'oilgun', 'truck': 'oilgun'} sizeThresh = (60, 60) sizeThreshNames = ['clamp_on'] allXmls = [x for x in FILES.get_sorted_files(xmlDir) if ".xml" in x] for xml in tqdm(allXmls): xmlPath = os.path.join(xmlDir, xml) try: regular_xml(xmlPath, xml.split('.')[0]) except: print('{} regular_wh failed'.format(xmlPath)) continue print('Totally regular wh {} xmls'.format(count))
bbox.append(bndbox['xmin']) #y bbox.append(bndbox['ymin']) #w bbox.append(bndbox['xmax'] - bndbox['xmin']) #h bbox.append(bndbox['ymax'] - bndbox['ymin']) addAnnoItem(object_name, current_image_id, current_category_id, bbox) if __name__ == '__main__': xml_path = '/media/kevin/办公/xizang/testdataset/1028/val_/' jsonDir = './{}/'.format('val') print(xml_path) FILES.mkdir(jsonDir) if jsonDir: if xml_path[-1] == '/': xmlName = xml_path.split('/')[-2] else: xmlName = xml_path.split('/')[-1] json_file = os.path.join(jsonDir, xmlName + '.json') else: if xml_path[-1] == '/': json_file = xml_path[:-1] + '.json' else: json_file = xml_path + '.json' setCatItem(labelmap) parseXmlFiles(xml_path) json.dump(coco, open(json_file, 'w'))
else: return 0 if box_share: overlapArea=float(get_area(box_share)) aArea=float(get_area(int_box_a)) return (overlapArea/aArea) def get_area(areaBox): ha=areaBox[3]-areaBox[1] wa=areaBox[2]-areaBox[0] return(ha*wa) if __name__=="__main__": time_sta=time.time() augNameList=['close','cover','open'] xmlDir=r"/DATACENTER2/yh/detectron/caffe2/train/safebox/faster_voc/11469/xml_1713" tarDir=r"/DATACENTER2/yh/detectron/caffe2/train/safebox/faster_voc/11469/xml_1713_aug" FILES.mkdir(tarDir) allXmls=[x for x in FILES.get_sorted_files(xmlDir) if ".xml" in x] cur=0 bgn=800 #包含 end=1900 #包含 for xml in allXmls: cur+=1 # print(cur) #第cur个文件 if cur>=bgn and cur<=end: xmlPath=xmlDir+'/'+xml tarXmlPath=tarDir+'/'+xml shutil.copy(xmlPath,tarXmlPath) BBOXES=XML.read_object(xmlPath) for augRate_xmin in range(0,5): augValue_xmin=augRate_xmin*0.02 for augRate_xmax in range(0,5):
# encoding=utf8 import os from basicFun import FILES if __name__ == "__main__": count = 0 rmvDir = r"/DATACENTER3/yh/detectron/caffe2/detect/factory/people_longVideoAll/" referDirRoot = r"/DATACENTER3/yh/detectron/caffe2/detect/factory" # referDirNames=["tankClose","tankNoPipe","tankPipe","terribleCover"] referDirNames = ["outXml"] referType = ".xml" rmvType = ".jpg" # referDirNames=["1","2","3"] allRmvs = [x for x in FILES.get_sorted_files(rmvDir)] for referDirName in referDirNames: referDir = referDirRoot + '/' + referDirName allRefers = [ x for x in FILES.get_sorted_files(referDir) if referType in x ] # 审核为.jpg形成列表 for rmv in allRmvs: if (rmv.split('.')[0] + referType) not in allRefers: removePath = rmvDir + '/' + rmv.split('.')[0] + rmvType # removePath=rmvDir+'/'+rmv os.remove(removePath) count += 1 print("cancel {} files={}\n".format(rmvType, count))
# trade_zhangbabeilu_total # featureArea=(639,421,681,490) # safe_XiWan # featureArea=(843,253,1049,481) # 适用于卸油口全局去重的阈值 SIMIBOUND = 0.99 # 适用于保险柜小区域去重的阈值 # SIMIBOUND=0.8 jpgRoot = r"/disk2/hao.yang/project/Qin/data/preProcess/extractFrame/0522_XiWan_b/" # if jpgRoot[-1]=='/': # dstRoot=jpgRoot[:-1]+"Unique"+str(int(SIMIBOUND*1000)) # else: # dstRoot=jpgRoot+"Unique"+str(int(SIMIBOUND*1000)) # dstRoot=jpgRoot.replace('0505','0505removedSimilarityFrame') dstRoot = jpgRoot.replace('extractFrame', 'removedSimilarityFrame') rootsName = FILES.get_sub_dirs(jpgRoot) # rootsName=[1] startdir = 1 #从第startdir开始,处理完第enddir结束(包含enddir) enddir = 43 #注意作为开始的startdir第一帧无事件 # 需定义的参数: if __name__ == "__main__": # IMG.info() start = time.time() count = 1 resume = 1 dirCount = 1 FILES.mkdir(dstRoot) for rootName in rootsName: dirpath = os.path.join(jpgRoot, rootName) # dirpath="/DATACENTER5/hao.yang/dataRoom/Qin/park/caotan/longVideoFrames/8/" if os.path.exists(dirpath):
import os, shutil from basicFun import FILES dir1 = r"/disk2/hao.yang/project/Qin/data/preProcess/tolabelImg/0501/safe_cashbox_FengShi_simulate/" des1 = r"/disk2/hao.yang/project/Qin/data/preProcess/tolabelImg/0501/safe_cashbox_FengShi_simulate_img/" dir2 = '/disk2/hao.yang/project/Qin/data/preProcess/tolabelImg/0501/xml/' des2 = '/disk2/hao.yang/project/Qin/data/preProcess/tolabelImg/0501/labeled_tube_px/' FILES.mkdir(des1) FILES.mkdir(des2) preTitle = 'safe_cashbox_FengShi_simulate_' endTitle = '' i = 0 filelist = FILES.get_sorted_files(dir1) for file in filelist: if ".jpg" in file: newfileName = '%06d' % i # newfileName=file # shutil.copy(os.path.join(dir1,file),os.path.join(des1,preTitle+newfileName+endTitle+".jpg")) shutil.copy(os.path.join(dir1, file), os.path.join(des1, preTitle + file)) if os.path.exists( os.path.join( dir2, 'unload_FengShi_tube_simulate_' + newfileName + endTitle + ".xml")): shutil.copy( os.path.join( dir2, 'unload_FengShi_tube_simulate_' + newfileName + endTitle + ".xml"), os.path.join(des2, preTitle + file.replace('.jpg', ".xml"))) else: print(file, "no xml") i += 1
sourPath = os.path.join(FileDir, file) tarPath = os.path.join(xmlTar, file) try: shutil.copy(sourPath, tarPath) except: pass sites = ['FengShi', 'MingDeMen', 'XiWan'] for site in sites: for isle in range(1, 6): outXmlDir = "/disk2/hao.yang/project/Qin/data/imgs/isle/{}/isle{}_{}_img/".format( site, isle, site) volume = 1000 partition = 1 allFiles = FILES.get_sorted_files(outXmlDir) random.shuffle(allFiles) count = 0 for file in allFiles: if count < volume + volume * (partition - 1) * 0.2: count += 1 else: # exit() # break partition += 1 count = 0 # tar_outXmlDir='{}_partition{}'.format(outXmlDir,partition) pDir = '/disk2/hao.yang/project/Qin/data/labelTask/isles/p{}'.format( partition) FILES.mkdir(pDir) tar_outXmlDir = '/disk2/hao.yang/project/Qin/data/labelTask/isles/p{}/{}_isle{}'.format(
XML.write_xml(tree,xmlPath) def add_new_cates(xmlPath,referPath,addCates): addBoxes=XML.read_objects(referPath) tree = ET.ElementTree(file=xmlPath) root = tree.getroot() root=XML.del_tag(root,addCates) # print(addBoxes) for box in addBoxes: if box['name'] in addCates: root=XML.add_tag(root,box) XML.write_xml(tree,xmlPath) if __name__=="__main__": # imgDir=r"F:\gasStation\tank\regular_dataset\SanJiang_tankbox\checked\no_pipe" xmlDir=r'/disk2/hao.yang/project/Qin/data/xmls/guide/complete/guide_FMXX_8000_complete/' referRoot='/disk2/hao.yang/project/Qin/data/xmls/guide/complete/oilstation/' referDirs=FILES.get_sub_dirs(referRoot) for dirName in referDirs: referDir=os.path.join(referRoot,dirName) # referPath=r'F:\gasStation\tank\regular_dataset\SanJiang_tankbox\tank\SanJiang_refer_9.xml' # addCates=['car','motorcycle','truck','bus'] # addCates=['blue','yellow','other','security','red'] # addCates=['tank_close','tank_open'] # addCates=['cashbox_close','cashbox_open'] addCates=['gun_in','gun_out'] allXmls=[x for x in FILES.get_sorted_files(xmlDir) if ".xml" in x] for xml in allXmls: xmlPath=os.path.join(xmlDir,xml) referPath=os.path.join(referDir,xml) if os.path.exists(referPath): add_cates(xmlPath,referPath,addCates)
#encoding=utf-8 import os import shutil from basicFun import FILES if __name__ == "__main__": kind = 'door_close' referXml = "/DATACENTER5/hao.yang/dataRoom/Qin/safe/caotan/referXml/{}.xml".format( kind) xmlDir = "/DATACENTER5/hao.yang/dataRoom/Qin/safe/caotan/labels_door/" imgDir = "/DATACENTER5/hao.yang/dataRoom/Qin/safe/caotan/safe_door_classified_all/{}".format( kind) allfiles = [x for x in FILES.get_sorted_files(imgDir)] for file in allfiles: newPath = os.path.join(xmlDir, file.split('.')[0] + '.xml') shutil.copy(referXml, newPath)
#encoding=utf-8 import os import shutil import time from basicFun import FILES jpgRoot=r"/DATACENTER2/yh/dataRoom/gasStation/tank/train/sj18JunFrames" if __name__=="__main__": remainNum=500 start = time.time() jpgDirs=FILES.get_sub_dirs(jpgRoot) for dirName in jpgDirs: jpgDir=jpgRoot+'/'+dirName allJpgs=FILES.get_sorted_files(jpgDir) jpgCount=len(allJpgs) if jpgCount>3000: for jpg in allJpgs[remainNum:]: jpgPath=os.path.join(jpgDir,jpg) os.remove(jpgPath) # def removeRemain(rmdir,remainNum): # allFiles=FILES.get_sorted_files(rmdir) # filesCount=len(rmdir) # for # remRate=REMRATE # # print(rmRate) # count=int(REMRATE)+1 # fileNum=0 # for file in allFiles: # if count-remRate>0: # filePath=dirDir+'/'+file # tarPath=tarDir+'/'+file
ymins.append(ymin) xmaxs.append(xmax) ymaxs.append(ymax) return img, labels, xmins, ymins, xmaxs, ymaxs if __name__ == "__main__": task = 'safe' showType = 'all' WTS_PATH = getattr(COCO, 'model_{}'.format(task)) CFG_PATH = WTS_PATH.replace('.pkl', '.yaml') modelName = WTS_PATH.split('/')[-1].split('.')[0] labelmap = getattr(COCO, 'labelmap_{}'.format(task)) inImg = '/DATACENTER4/hao.yang/project/Qin/data/imgs/safe/safe_FMXX_img/' tarXmlDir = '/DATACENTER4/hao.yang/project/Qin/data/xmls/safe/modelXml_safe_FMXX' FILES.rm_mkdir(tarXmlDir) referXml = "/DATACENTER4/hao.yang/common/refer.xml" if hasattr(COCO, 'showNames_{}'.format(task)): showNames = getattr(COCO, 'showNames_{}'.format(task))[showType] else: showNames = [] countNothing = 0 font = cv2.FONT_HERSHEY_SIMPLEX testModel = modelTool.modelTool() testModel.initModel(CFG_PATH, WTS_PATH, labelmap) paletteSet = [(247, 79, 223), (0, 255, 255), (255, 247, 0), (200, 130, 2), (255, 255, 255), (30, 170, 180), (102, 0, 204), (44, 125, 222), (0, 255, 0), (1, 208, 169), (130, 232, 255), (204, 153, 255), (0, 0, 192), (134, 225, 1), (142, 208, 169), (115, 160, 110)] palette = {}
from basicFun import FILES imgRoot='/DATACENTER4/hao.yang/project/Qin/data/imgs/isle/imgs_isle_17312_divide/' allImg=FILES.list_all_files(imgRoot) print(len(allImg))
#encoding=utf8 #由于文件夹中只标注了部分refer,因此按照xx.refer复制已标注的xx.jpg和xx.refer到新的文件夹 #单文件夹 import os import shutil import time from basicFun import FILES if __name__=="__main__": count=0 start=time.time() operators=['gs','hs','px','tsy','zxy','yy','wzx','lf','dxj'] referDir1="/DATACENTER6/hao.yang/dataRoom/Qin/trade/labelTask_phone/labels_phone/" referForm=".xml" allRefers=[x for x in FILES.get_files(referDir1) if referForm in x]#审核为.refer形成列表 # dirName='safe_close' for operator in operators: count=0 # referDir2=referDir1.replace('door_close','door_open') sourDir="/DATACENTER6/hao.yang/dataRoom/Qin/trade/labelTask_phone/{}".format(operator) sourForm=".jpg" tarDir='/DATACENTER6/hao.yang/dataRoom/Qin/trade/labelTask_phone/abandon/' # tarDir=os.path.join(tarDir,operator) tarForm=".jpg" FILES.mkdir(tarDir) allImgs=[x for x in FILES.get_files(sourDir) if sourForm in x] for img in allImgs: if img.replace(sourForm,referForm) not in allRefers: sour=img.split('.')[0]+sourForm tar=img.split('.')[0]+tarForm sourPath=os.path.join(sourDir,sour) tarPath=os.path.join(tarDir,tar)
#二级目录下的jpg文件复制到一个文件夹 import os import shutil import time from basicFun import FILES if __name__=="__main__": timeStart=time.clock() roots="/DATACENTER4/hao.yang/project/Qin/data/preProcess/extractFrame/" rootsName=['0706_checkout'] for rootName in rootsName: rootdir=os.path.join(roots,rootName) tardir=os.path.join(roots,rootName+"All") #不用创建 print(rootdir,tardir) i=1 if os.path.exists(rootdir): FILES.mkdir(tardir) alldirs=FILES.get_sub_dirs(rootdir) for dirName in alldirs: if 'test' in dirName: continue dirpath=os.path.join(rootdir,dirName) # print(dirpath) alljpg=sorted([x for x in FILES.get_files(dirpath) if ".jpg" in x])#审核为.jpg形成列表 for jpg in alljpg: # rename # newJpg=dirpath.split("/")[-1]+str("%06d"%i)+".jpg" newJpg='{}_{}'.format(dirName,jpg) # newJpg=jpg i+=1 oldpath=os.path.join(dirpath,jpg) newpath=os.path.join(tardir,newJpg)
'hole': 0.3, 'tube': 0.3, 'gray': -10, 'vehicle': 1 } forceFetch = [] print(weight) imgDir = '/disk2/hao.yang/project/Qin/data/preProcess/extractFrame/0525/0525_unload_total/0525_unloadAll_total_spec/' xmlDir = '/disk2/hao.yang/project/Qin/data/preProcess/extractFrame/0525/0525_unload_total/0525_unloadAll_total_spec/' if imgDir[-1] == '/': abandonDir = imgDir[:-1] + "_abandon" difDir = imgDir[:-1] + "_dif" else: abandonDir = imgDir + "_abandon" difDir = imgDir + "_dif" FILES.rm_mkdir(abandonDir) FILES.rm_mkdir(difDir) allXmls = [x for x in FILES.get_sorted_files(xmlDir) if '.xml' in x] begin = 0 labelNumber = 0 difNumber = 0 resume = 0 for xmlName in tqdm(allXmls): checkName = xmlName if resume < 0: resume += 1 continue if begin == 0: baseName = checkName begin = 1 continue