



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第Python實現(xiàn)xml格式轉(zhuǎn)txt格式的示例代碼目錄1、前言2、分析xml、txt數(shù)據(jù)3、轉(zhuǎn)換過程4、最后結(jié)果對比
1、前言
最近學習Yolov5是遇見了個問題,找的數(shù)據(jù)集全是xml文件,VOC的標注是xml格式的,而YOLO是.txt格式,那么問題就來了,手動提取肯定是不可能的,那只能借用程序解決咯。
2、分析xml、txt數(shù)據(jù)
這是xml樹形結(jié)構(gòu)
這是txt格式
總結(jié):
1.提取object-name、bndbox-xmin,ymin,xmax,ymin
2.格式轉(zhuǎn)化需要用公式轉(zhuǎn)換
YOLO數(shù)據(jù)集txt格式:
x_center:歸一化后的中心點x坐標
y_center:歸一化后的中心點y坐標
w:歸一化后的目標框?qū)挾?/p>
h:歸一化后的目標況高度
(此處歸一化指的是除以圖片寬和高)
VOC數(shù)據(jù)集xml格式
yolo的四個數(shù)據(jù)xml-txt公式x_center((x_min+x_max)/2-1)/w_imagey_center((y_min+y_max)/2-1)/h_imagew(x_max-x_min)/w_imageh(y_max-y_min)/h_image
3、轉(zhuǎn)換過程
定義兩個文件夾,train放xml數(shù)據(jù),labels放txt數(shù)據(jù)。
代碼解析:
importos
importxml.etree.ElementTreeasET
importio
find_path='./train/'
#xml所在的文件
savepath='./labels/'
#保存文件
classVoc_Yolo(object):
def__init__(self,find_path):
self.find_path=find_path
defMake_txt(self,outfile):
out=open(outfile,'w')
print("創(chuàng)建成功:{}".format(outfile))
returnout
defWork(self,count):
#找到文件路徑
forroot,dirs,filesinos.walk(self.find_path):
#找到文件目錄中每一個xml文件
forfileinfiles:
#記錄處理過的文件
count+=1
#輸入、輸出文件定義
input_file=find_path+file
outfile=savepath+file[:-4]+'.txt'
#新建txt文件,確保文件正常保存
out=self.Make_txt(outfile)
#分析xml樹,取出w_image、h_image
tree=ET.parse(input_file)
root=tree.getroot()
size=root.find('size')
w_image=float(size.find('width').text)
h_image=float(size.find('height').text)
#繼續(xù)提取有效信息來計算txt中的四個數(shù)據(jù)
forobjinroot.iter('object'):
#將類型提取出來,不同目標類型不同,本文僅有一個類別-0
classname=obj.find('name').text
cls_id=classname
xmlbox=obj.find('bndbox')
x_min=float(xmlbox.find('xmin').text)
x_max=float(xmlbox.find('xmax').text)
y_min=float(xmlbox.find('ymin').text)
y_max=float(xmlbox.find('ymax').text)
#計算公式
x_center=((x_min+x_max)/2-1)/w_image
y_center=((y_min+y_max)/2-1)/h_image
w=(x_max-x_min)/w_image
h=(y_max-y_min)/h_image
#文件寫入
out.write(str(cls_id)+""+str(x_center)+""+str(y_center)+""+str(w)+""+str(h)+'\n')
out.close()
returncount
if__na
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB32/T 4199-2022醫(yī)療機構(gòu)中腫瘤放射治療部門設置規(guī)范
- DB32/T 4159-2021桃品種需冷量評價技術規(guī)程
- DB32/T 3957-2020化工企業(yè)安全生產(chǎn)信息化管理平臺數(shù)據(jù)規(guī)范
- DB32/T 3761.4-2020新型冠狀病毒肺炎疫情防控技術規(guī)范第4部分:工業(yè)企業(yè)
- DB32/T 3711-2020內(nèi)河低壓小容量船舶岸電連接系統(tǒng)技術規(guī)范
- DB32/T 3558-2019生活垃圾焚燒飛灰熔融處理技術規(guī)范
- DB31/T 858-2015鋼渣粉混凝土砌塊應用技術規(guī)程
- DB31/T 677-2021木制品制造業(yè)職業(yè)病危害預防控制規(guī)范
- DB31/T 668.1-2012節(jié)能技術改造及合同能源管理項目節(jié)能量審核與計算方法第1部分:總則
- DB31/T 631-2012公共汽車燃油消耗定額
- 大氣污染治理的國內(nèi)外比較研究
- 駕考三力測試題庫附答案
- 2025屆天津市蘆臺一中高三一模-化學試卷
- 蘇教版數(shù)學一年級下冊(2024)第七單元觀察物體(一)綜合素養(yǎng)測評 A 卷(含答案)
- 市政道路工程施工組織設計方案
- 活動策劃服務投標方案(技術方案)
- 2024年版豬場員工勞動合同模板3篇
- Unit 6 Section A 1a-2c 說課課件2024-2025學年人教版英語八年級下冊
- 2024年中國養(yǎng)老產(chǎn)業(yè)商學研究報告-銀發(fā)經(jīng)濟專題
- 保衛(wèi)管理員三級練習題
- DBJ51T033-2014 四川省既有建筑電梯增設及改造技術規(guī)程
評論
0/150
提交評論