first commit
This commit is contained in:
commit
54ccfb11fe
218 files changed
+19525
No files matched your search
@@ -0,0 +1,119 @@
|
||||
'''
|
||||
author : Hatcher W
|
||||
Email: hcwang@semi.ac.cn
|
||||
use: 用于创建存储目标检测结果的xml文件
|
||||
input:网络运算输出结果
|
||||
output:xml文件
|
||||
'''
|
||||
import numpy as np
|
||||
from lxml import etree
|
||||
|
||||
|
||||
class GEN_Annotations:
|
||||
def __init__(self, filename):
|
||||
self.root = etree.Element("annotation")
|
||||
|
||||
child1 = etree.SubElement(self.root, "folder")
|
||||
child1.text = "Hatcher"
|
||||
|
||||
child2 = etree.SubElement(self.root, "filename")
|
||||
child2.text = filename
|
||||
|
||||
child3 = etree.SubElement(self.root, "source")
|
||||
|
||||
child4 = etree.SubElement(child3, "annotation")
|
||||
child4.text = "Bird_detection"
|
||||
child5 = etree.SubElement(child3, "database")
|
||||
child5.text = "Unknown"
|
||||
|
||||
child6 = etree.SubElement(child3, "image")
|
||||
child6.text = "flickr"
|
||||
child7 = etree.SubElement(child3, "flickrid")
|
||||
child7.text = "35435"
|
||||
|
||||
def set_size(self, witdh, height, channel):
|
||||
size = etree.SubElement(self.root, "size")
|
||||
widthn = etree.SubElement(size, "width")
|
||||
widthn.text = str(witdh)
|
||||
heightn = etree.SubElement(size, "height")
|
||||
heightn.text = str(height)
|
||||
channeln = etree.SubElement(size, "depth")
|
||||
channeln.text = str(channel)
|
||||
|
||||
def savefile(self, filename):
|
||||
tree = etree.ElementTree(self.root)
|
||||
tree.write(filename, pretty_print=True, xml_declaration=False, encoding='utf-8')
|
||||
|
||||
def add_pic_attr(self, label, xmin, ymin, xmax, ymax,score):
|
||||
object = etree.SubElement(self.root, "object")
|
||||
namen = etree.SubElement(object, "name")
|
||||
namen.text = str(label).replace("tensor(","").replace("., device='cuda:0')","")
|
||||
bndbox = etree.SubElement(object, "bndbox")
|
||||
xminn = etree.SubElement(bndbox, "xmin")
|
||||
xminn.text = str(xmin)
|
||||
yminn = etree.SubElement(bndbox, "ymin")
|
||||
yminn.text = str(ymin)
|
||||
xmaxn = etree.SubElement(bndbox, "xmax")
|
||||
xmaxn.text = str(xmax)
|
||||
ymaxn = etree.SubElement(bndbox, "ymax")
|
||||
ymaxn.text = str(ymax)
|
||||
scoren = etree.SubElement(bndbox, "score")
|
||||
scoren.text = str(score)
|
||||
def add_pic_attr_bird(self, label, xmin, ymin, xmax, ymax):
|
||||
object = etree.SubElement(self.root, "object")
|
||||
namen = etree.SubElement(object, "name")
|
||||
namen.text = label
|
||||
bndbox = etree.SubElement(object, "bndbox")
|
||||
xminn = etree.SubElement(bndbox, "xmin")
|
||||
xminn.text = str(xmin)
|
||||
yminn = etree.SubElement(bndbox, "ymin")
|
||||
yminn.text = str(ymin)
|
||||
xmaxn = etree.SubElement(bndbox, "xmax")
|
||||
xmaxn.text = str(xmax)
|
||||
ymaxn = etree.SubElement(bndbox, "ymax")
|
||||
ymaxn.text = str(ymax)
|
||||
def add_pic_density(self, label, density_h):
|
||||
object = etree.SubElement(self.root, "object")
|
||||
count = etree.SubElement(object, "count")
|
||||
for i in density_h:
|
||||
density = etree.SubElement(object, "density_h")
|
||||
num=0
|
||||
for j in i:
|
||||
density.attrib["att{}".format(num)] = j
|
||||
num+=1
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def make_xml(filename,size_x,size_y,boxes,labels,scores,savename):
|
||||
anno = GEN_Annotations(filename)
|
||||
anno.set_size(size_y, size_x, 3)
|
||||
for i in range(len(boxes)):
|
||||
xmin = int(boxes[i][0])
|
||||
ymin = int(boxes[i][1])
|
||||
xmax = int(boxes[i][2])
|
||||
ymax = int(boxes[i][3])
|
||||
score = int(scores[i]*1000)
|
||||
anno.add_pic_attr(str(labels[i]), xmin, ymin, xmax, ymax,score)
|
||||
anno.savefile(savename)
|
||||
def make_xml_iccv(filename,size_x,size_y,boxes,savename):
|
||||
anno = GEN_Annotations(filename)
|
||||
anno.set_size(size_y, size_x, 3)
|
||||
for i in range(len(boxes)):
|
||||
xmin = int(boxes[i][0])
|
||||
ymin = int(boxes[i][1])
|
||||
xmax = int(boxes[i][2])
|
||||
ymax = int(boxes[i][3])
|
||||
anno.add_pic_attr_bird("bird", xmin, ymin, xmax, ymax)
|
||||
anno.savefile(savename)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
filename = "000001.jpg"
|
||||
anno = GEN_Annotations(filename)
|
||||
anno.set_size(1280, 720, 3)
|
||||
density = np.array([4,4],dtype=np.float64)
|
||||
density = [[0.123,93.132213,0.2132131,0.32132131],[0.123,93.132213,0.2132131,0.32132131],[0.123,93.132213,0.2132131,0.32132131],[0.123,93.132213,0.2132131,0.32132131]]
|
||||
anno.add_pic_density("mouse", density)
|
||||
anno.savefile("00001.xml")
|
||||
Reference in new issue
Block a user