使用python批量修改XML文件中圖像的depth值
最近剛剛接觸深度學(xué)習(xí),并嘗試學(xué)習(xí)制作數(shù)據(jù)集,制作過程中發(fā)現(xiàn)了一個(gè)問題,現(xiàn)在跟大家分享一下。問題是這樣的,在制作voc數(shù)據(jù)集時(shí),我采集的是灰度圖像,并已經(jīng)用labelimg生成了每張圖像對(duì)應(yīng)的XML文件。訓(xùn)練時(shí)發(fā)現(xiàn)好多目標(biāo)檢測模型使用的訓(xùn)練集是彩色圖像,因此特征提取網(wǎng)絡(luò)的輸入是m×m×3的維度的圖像。所以我就想著把我采集的灰度圖像的深度也改成3吧。批量修改了圖像的深度后,發(fā)現(xiàn)XML中的depth也要由1改成3才行。如果重新對(duì)圖像標(biāo)注一遍生成XML文件的話太麻煩,所以就想用python批量處理一下。果然在網(wǎng)上找到了類似的代碼,簡單修改一下就可以實(shí)現(xiàn)我們想要的功能了。
全部代碼如下
#coding:utf-8 import os import os.path import xml.dom.minidom path='E:/data/ann/'#這里修改為自己存放XML文件的路徑 files=os.listdir(path) #獲取路徑下的所有文件的名稱 s=[] for xmlFile in files: if not os.path.isdir(xmlFile): #判斷是否是文件夾,不是文件夾才打開 print(xmlFile) #將獲取到的xml文件名送入到dom解析 dom=xml.dom.minidom.parse(os.path.join(path,xmlFile)) root=dom.documentElement ###獲取標(biāo)簽對(duì)depth之間的值 depth=root.getElementsByTagName('depth') #修改相應(yīng)標(biāo)簽的值 for i in range(len(depth)): print(depth[i].firstChild.data) a = depth[i].firstChild.data print(type(a)) depth[i].firstChild.data=3 print(depth[i].firstChild.data) #保存修改到xml文件中 with open(os.path.join(path,xmlFile),'w') as fh: dom.writexml(fh) print('修改depth成功!')
上面的代碼的思路是,讀取XML文件,并修改depth節(jié)點(diǎn)的內(nèi)容修改為3,通過循環(huán)讀取XML文件,實(shí)現(xiàn)批量化修改XML文件中depth的值。
修改前后的結(jié)果
XML修改前depth的值:
XML修改后depth的值:
這樣,就可以使用自己制作的voc數(shù)據(jù)集進(jìn)行訓(xùn)練了。我選的這個(gè)方法可能比較傻
到此這篇關(guān)于使用python批量修改XML文件中圖像的depth值的文章就介紹到這了,更多相關(guān)python批量修改XML內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python tensorflow學(xué)習(xí)之識(shí)別單張圖片的實(shí)現(xiàn)的示例
本篇文章主要介紹了python tensorflow學(xué)習(xí)之識(shí)別單張圖片的實(shí)現(xiàn)的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02Python Socketserver實(shí)現(xiàn)FTP文件上傳下載代碼實(shí)例
這篇文章主要介紹了Python Socketserver實(shí)現(xiàn)FTP文件上傳下載代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03卷積神經(jīng)網(wǎng)絡(luò)(CNN)基于SqueezeNet的眼疾識(shí)別功能
SqueezeNet是一種輕量且高效的CNN模型,它參數(shù)比AlexNet少50倍,但模型性能(accuracy)與AlexNet接近,這篇文章主要介紹了卷積神經(jīng)網(wǎng)絡(luò)(CNN)基于SqueezeNet的眼疾識(shí)別,需要的朋友可以參考下2023-08-08Python-pip配置國內(nèi)鏡像源快速下載包的方法詳解
pip如果不配置國內(nèi)鏡像源的話,下載包的速度非常慢,畢竟默認(rèn)的源在國外呢,這篇文章主要介紹了Python-pip配置國內(nèi)鏡像源快速下載包的方法詳解,需要的朋友可以參考下2024-01-01jupyter notebook 添加kernel permission denied的操作
這篇文章主要介紹了jupyter notebook 添加kernel permission denied的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04Python startswith()和endswith() 方法原理解析
這篇文章主要介紹了Python startswith()和endswith() 方法原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04利用python 更新ssh 遠(yuǎn)程代碼 操作遠(yuǎn)程服務(wù)器的實(shí)現(xiàn)代碼
這篇文章主要介紹了利用python 更新ssh 遠(yuǎn)程代碼 操作遠(yuǎn)程服務(wù)器的實(shí)現(xiàn)代碼,需要的朋友可以參考下2018-02-02探究Python的Tornado框架對(duì)子域名和泛域名的支持
這篇文章主要介紹了探究Python的Tornado框架對(duì)子域名和泛域名的支持,Tornado作為一個(gè)典型的異步框架、在Python開發(fā)者中的人氣相當(dāng)高,需要的朋友可以參考下2015-05-05