可以在Recordio中使用图像包装边界框和标签



我正在尝试使用mxnet/gluon训练对象检测模型(特别是图像中一种对象的多个实例),而IM2REC工具似乎没有添加边界框信息到.REC文件。

mxnet.recordio.pack_img()似乎可以将图像和标签包装在一起的工作,但是我找不到在像素空间中包含边界框信息的位置/如何包含框架。从文档中:

label = 4 # label can also be a 1-D array, for example: label = [1,2,3]
id = 2574
header = mx.recordio.IRHeader(0, label, id, 0)
img = cv2.imread('test.jpg')
packed_s = mx.recordio.pack_img(header, img)

标题没有限制框信息的位置。任何想法如何做?

我相信我找到了答案。.lst文件中标签的包装可以采用一组扩展的信息集。这里的文档描述了该信息的预期。

那么,剩下的就是编辑im2rec.py,以用扩展的信息替换单纯的标签索引(截至撰写本文时,第50和60行)。类似:

def parse_label_file(fp):
    with open(fp, 'r') as f:
        data = f.readlines() # or json.load() if appropriate
        ### Some code here to parse and return the image dimensions
        ### width, height, id, xmin, ymin, xmax, ymax
    return (4, 5, width, id, height, xmin, ymin, xmax, ymax)
...
label_file_path = path[:-4] + ".txt" # or .json as appropriate
if path not in cat:
    cat[path] = parse_label_file(label_file_path)
...

相关内容

  • 没有找到相关文章