im2rec的使用及那些坑


#21

:joy:


#22

你好啊,有两个问题想请教你一下
第一个是lst文件是不是为rec文件提供图像的path和对应的label的,如果是的话,除了这个之外还有其他作用吗?
第二个问题是关于lst文件的格式的,lst的每一行对应一个图像文件,每一行第一项是一个数字,代表这个图像的index,中间的都是会加到rec里面的label,最后一项是这个图像的path,是这样吗?


#23
  1. lst文件为rec的生成提供了文件的路径和label的坐标位置.

  2. lst的具体内容你再看一下帖子吧.


MXNet 目标检测数据集的制作
#24

参考文档:https://mxnet.incubator.apache.org/api/python/image/image.html#module-mxnet.image,把lst文件准备好再使用im2rec.py:


#25

请问你这个是ImageIter的制作吧

那ImageDeIter是怎么制作呢??


#26

请问能分享一下你的脚本么?我遇到了坑,多类别在读取rec文件的时候提示Encounter sample with no valid label纠结了好几天都没找到结果。


#27

lst里面的label有没有可能搞错了呢?


#28

请问制作物体识别的rec文件中, label是怎样标记的? 如果1000类, 每个类别的label就是0, 1, 2…999吗, 那怎样根据输出找到属于哪个类别呢? 谢谢


#29

是这样的,最初输出的结果softmax之后概率最大的那个结果就是对应的class


#30

好的, 谢谢


#31

请问,我得到了lst和rec文件,但是在定义image.ImageDetIter()的时候爆出了这样的错误是为什么呢?AFJE6ED%40U%24P3BXXVXSA%7B%7D1C


#32

是不是要修改label的长度?


#33

你好,我遇到了和你一样的问题,请问你解决了吗?


#34

你好,我也遇到了 Encounter sample with no valid label 这个问题,下面是我的程序,可以帮我看下吗?
with open(‘dataset/dataset.lst’, ‘w+’) as f:
----f.truncate()
----for i in range(len(labels)):
--------lst = str(i) + ‘\t’ + str(4) + ‘\t’ + str(5) + ‘\t’ + str(1360) + ‘\t’ + str(800) + ‘\t’
--------for label in labels[i]:
------------lst += str(label[4]) + ‘\t’ + str(round(label[0]/1360, 4)) + ‘\t’ + str(round(label[1]/800,4)) + ‘\t’
------------lst += str(round(label[2]/1360,4)) + ‘\t’ +str(round(label[3]/800,4)) + ‘\t’
--------lst += str(i).zfill(5) + ‘.jpg\n’
--------f.write(lst)


#35

我也碰到这个问题了,请问怎么解决的?


#36

你具体遇到的是什么问题呢?


#37

在用 im2rec.py生成(.rec)文件时报错,请问你是怎么做的呢?

Creating .rec file from /path_to_gluon/chapter_computer-vision/data/train.lst in /path_to_gluon/chapter_computer-vision/data
multiprocessing not available, fall back to single threaded encoding
imread read blank (None) image for file: /path_to_gluon/chapter_computer-vision/data/image/tortoise/720
Traceback (most recent call last):
File “im2rec.py 1”, line 316, in
record.write_idx(item[0], s)
File “path_to_anaconda2/lib/python2.7/site-packages/mxnet-1.0.0-py2.7.egg/mxnet/recordio.py”, line 285, in write_idx
self.write(buf)
File “path_to_anaconda2/lib/python2.7/site-packages/mxnet-1.0.0-py2.7.egg/mxnet/recordio.py”, line 135, in write
ctypes.c_size_t(len(buf))))
TypeError: object of type ‘NoneType’ has no len()


#38

你的问题跟我之前的很像,在lst文件中,每张图片的信息应该在一行中,每个数据之间以 “\t”隔开。
比方说:0(序号) 4(2+extra header) 5(label+四个坐标值) 640 480(宽&高) 0(目标label)
0.1 0.2 0.8 0.9(目标的四个坐标) data/*.jpg (图片名)


#39

OK 谢谢:smile:


#40

您好,请问一下如果是只有背景无对应目标的负样本应该怎样标记呢?用ImageDetIter读取就会报错
RuntimeError: Label shape is invalid: (4,)