我正在使用fast-rcnn,并尝试训练系统以适应新的类(标签)。我遵循了以下内容:https://github.com/EdisonResearch/fast-rcnn/tree/master/help/train
运行train_net.py时I失败,出现以下错误:
./tools/train_net.py --gpu 0 --solver models/VGG_1024_pascal2007/solver.prototxt --imdb voc_2007_train_top_5000
Called with args: Namespace(cfg_file=None, gpu_id=0, imdb_name='voc_2007_train_top_5000', max_iters=40000, pretrained_model=None, randomize=False, solver='models/VGG_1024_pascal2007/solver.prototxt') Using config: {'DEDUP_BOXES': 0.0625, 'EPS': 1e-14, 'EXP_DIR': 'default', 'PIXEL_MEANS': array([[[ 102.9801, 115.9465, 122.7717]]]), 'RNG_SEED': 3, 'ROOT_DIR': '/home/hagay/fast-rcnn', 'TEST': {'BBOX_REG': True,
'MAX_SIZE': 1000,
'NMS': 0.3,
'SCALES': [600],
'SVM': False}, 'TRAIN': {'BATCH_SIZE': 128,
'BBOX_REG': True,
'BBOX_THRESH': 0.5,
'BG_THRESH_HI': 0.5,
'BG_THRESH_LO': 0.1,
'FG_FRACTION': 0.25,
'FG_THRESH': 0.5,
'IMS_PER_BATCH': 2,
'MAX_SIZE': 1000,
'SCALES': [600],
'SNAPSHOT_INFIX': '',
'SNAPSHOT_ITERS': 10000,
'USE_FLIPPED': True,
'USE_PREFETCH': False}} Loaded dataset `voc_2007_train` for training Appending horizontally-flipped training examples... voc_2007_train gt roidb loaded from /home/hagay/fast-rcnn/data/cache/voc_2007_train_gt_roidb.pkl /usr/local/lib/python2.7/dist-packages/numpy/core/fromnumeric.py:2507: VisibleDeprecationWarning: `rank` is deprecated; use the `ndim` attribute or function instead. To find the rank of a matrix see `numpy.linalg.matrix_rank`. VisibleDeprecationWarning) wrote ss roidb to /home/hagay/fast-rcnn/data/cache/voc_2007_train_selective_search_IJCV_top_5000_roidb.pkl Traceback (most recent call last): File "./tools/train_net.py", line 80, in <module>
roidb = get_training_roidb(imdb) File "/home/hagay/fast-rcnn/tools/../lib/fast_rcnn/train.py", line 107, in get_training_roidb
imdb.append_flipped_images() File "/home/hagay/fast-rcnn/tools/../lib/datasets/imdb.py", line 104, in append_flipped_images
assert (boxes[:, 2] >= boxes[:, 0]).all() AssertionError
我的问题是:
__background__
类,我是否需要准备一些东西?发布于 2015-07-24 14:47:30
boxes[:,2] < boxes[:, 0]
,boxes[:, 2]
是包围盒的x-max,而boxes[:, 0]
是x-min。因此,这个问题与区域提议有关。我也遇到了这个问题。我发现它是由溢出引起的。我记得盒子的数据类型是np.uint8(需要检查),如果图像太大,你会得到这个错误。发布于 2015-07-28 21:43:08
我来晚了,但当我在编辑代码的时候,这是我的解决方案
for b in range(len(boxes)):
if boxes[b][2] < boxes[b][0]:
boxes[b][0] = 0
assert (boxes[:, 2] >= boxes[:, 0]).all()
正如每个研究生似乎都指出的那样,有更聪明的方法来做到这一点,但这种方法效果很好。
发布于 2017-09-15 20:34:32
查看下面的博客文章,第4部分,第4期中描述的解决方案。解决方案是反转x1和x2坐标值。
https://huangying-zhan.github.io/2016/09/22/detection-faster-rcnn.html
下面是从link复制的:
box:,0> box :,2
解决方案:在imdb.py中添加以下代码块
def append_flipped_images(self):
num_images = self.num_images
widths = self._get_widths()
for i in xrange(num_images):
boxes = self.roidb[i]['boxes'].copy()
oldx1 = boxes[:, 0].copy()
oldx2 = boxes[:, 2].copy()
boxes[:, 0] = widths[i] - oldx2
boxes[:, 2] = widths[i] - oldx1
for b in range(len(boxes)):
if boxes[b][2] < boxes[b][0]:
boxes[b][0]=0
assert (boxes[:, 2] >= boxes[:, 0]).all()
https://stackoverflow.com/questions/31005463
复制相似问题