faster-rcnn 问题记载

win10 tensorflow faster-rcnn 训练自己的数据集的问题记载

  1. 报错:ValueError: attempt to get argmax of an empty sequence
    v图片描述
    batch_size改成1,每次打印训练的图片。发现有的图片可以通过,有的报错。
    接着查看出错图片的信息,不同程序的位置可能不一样,我的在self.roidb.在这里插入图片描述
    比如我的是47号图片有问题,展开之后发现boxes为空,实际该图片是有标记框的。
    再追溯到该图片的xml文件。
<object>
		<name>wrong</name>
		<pose>Unspecified</pose>
		<truncated>0</truncated>
		<difficult>1</difficult>
		<bndbox>
			<xmin>307</xmin>
			<ymin>64</ymin>
			<xmax>319</xmax>
			<ymax>76</ymax>
		</bndbox>
	</object>
	<object>
		<name>wrong</name>
		<pose>Unspecified</pose>
		<truncated>0</truncated>
		<difficult>1</difficult>
		<bndbox>
			<xmin>351</xmin>
			<ymin>71</ymin>
			<xmax>377</xmax>
			<ymax>85</ymax>
		</bndbox>
	</object>

该图片的两个目标都有difficult标签,所以有可能是屏蔽了difficult目标框。
找到lib/datasets/pascal_voc.py
在这里插入图片描述
在148行有config中的use_diff项,意思是如果‘use_diff’为True才加载图片标记中的difficult目标,否则不加载difficult目标。我这里设置成了False,所以导致有些目标框并没有加载成功。所以修改’use_diff’即可。位置应该在pascal_voc类的初始化当中。
在这里插入图片描述
另:注意修改之后删除data/cache下的文件,否则又会加载之前的数据。
总结:该报错可能是训练图片的某些信息没有正确导入,最好想办法定位到具体出错的图片,观察信息是否正确。我这里是屏蔽了difficult标签,导致部分目标信息没有加载成功。

如果随随便便就能成功,那胜利还有喜悦吗?加油!少年!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Faster-RCNN是一种用于目标检测的深度学习网络模型。它是在R-CNN和Fast RCNN的基础上发展而来的,通过将特征抽取、proposal提取、bounding box regression和classification整合在一个网络中,提高了综合性能和检测速度。[2] Faster-RCNN的训练过程可以分为以下几个步骤: 1. 使用一个预训练的卷积神经网络(如VGG16)来提取图像的特征。 2. 在特征图上使用Region Proposal Network (RPN) 来生成候选目标框(proposals)。 3. 使用这些候选目标框和真实标签来计算损失函数,并通过反向传播来更新网络参数,以使网络能够更好地预测目标框的位置和类别。 4. 使用训练好的RPN来生成候选目标框,并将这些候选目标框输入到网络中进行分类和边界框回归。 5. 通过计算损失函数并反向传播来更新网络参数,以进一步提高检测性能。 6. 可以进行多次迭代的训练,每次迭代都使用之前训练好的网络来初始化网络参数,并继续训练网络。[3] Faster-RCNN的网络结构包括一个共享的卷积层(用于特征提取)和两个分支:一个用于生成候选目标框的RPN,另一个用于对这些候选目标框进行分类和边界框回归。通过共享卷积层,Faster-RCNN能够在不同尺度的特征图上进行目标检测,从而提高检测的准确性和效率。[2] 总结来说,Faster-RCNN是一种用于目标检测的深度学习网络模型,通过整合特征抽取、proposal提取、bounding box regression和classification,提高了综合性能和检测速度。它的训练过程包括特征提取、候选目标框生成、分类和边界框回归等步骤。[2][3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值