带标签的矩形到xml python

带标签的矩形到xml python,python,tensorflow,object-detection,Python,Tensorflow,Object Detection,我的问题与目标检测有关,我在图像中有一个矩形坐标列表,在另一个列表和原始图像中有标签,如下所示: print(original_image.shape) (720, 1280,3) rectangles = [[100,200,40,100],[200,400,80,170]] labels = [0,1] 要使用tensorflow人员培训模型,通常需要使用某种软件来标记生成可在tensorflow中使用的xml文件的图像。是否可以使用我所拥有的来替代?您可以使用pythonsxml.e

我的问题与目标检测有关,我在图像中有一个矩形坐标列表,在另一个列表和原始图像中有标签,如下所示:

print(original_image.shape)
(720, 1280,3)

rectangles = [[100,200,40,100],[200,400,80,170]] 
labels = [0,1]

要使用tensorflow人员培训模型,通常需要使用某种软件来标记生成可在tensorflow中使用的xml文件的图像。是否可以使用我所拥有的来替代?

您可以使用pythons
xml.etree.celementree
轻松地将列表写入Pascal VOC xml格式。这样做:

import xml.etree.cElementTree as ET

root = ET.Element('annotation')

ET.SubElement(root, 'folder').text = 'images' # set correct folder name
ET.SubElement(root, 'filename').text = img_filename

size = ET.SubElement(root, 'size')
ET.SubElement(size, 'width').text = str(img_width)
ET.SubElement(size, 'height').text = str(img_height)
ET.SubElement(size, 'depth').text = str(img_depth)

ET.SubElement(root, 'segmented').text = '0'

for box in rectangles:
    name = # class name
    xmin = box[] #set correct index
    ymin = box[] #set correct index
    xmax = box[] #set correct index
    ymax = box[] #set correct index

    obj = ET.SubElement(root, 'object')
    ET.SubElement(obj, 'name').text = name
    ET.SubElement(obj, 'pose').text = 'Unspecified'
    ET.SubElement(obj, 'truncated').text = '0'
    ET.SubElement(obj, 'occluded').text = '0'
    ET.SubElement(obj, 'difficult').text = '0'

    bx = ET.SubElement(obj, 'bndbox')
    ET.SubElement(bx, 'xmin').text = str(xmin)
    ET.SubElement(bx, 'ymin').text = str(ymin)
    ET.SubElement(bx, 'xmax').text = str(xmax)
    ET.SubElement(bx, 'ymax').text = str(ymax)


tree = ET.ElementTree(root)
tree.write(file_write_path)

你应该看看这个教程。这将启发你这与我想要的非常不同,我不想对图像进行分类,我想检测图像内部的对象。恐怕这与你的问题完全相同。不,因为在你提出的练习中,模型从矩形向量中的值中学习,在我的例子中,这些值并不重要。重要的是图像中的切割输出,即矩形坐标的来源。