尝试复现SSD,遇到的一系列问题

本文记录了作者在尝试复现SSD(Single Shot MultiBox Detector)目标检测算法过程中遇到的问题,包括list、array、tensor转换,VGG层输出shape不符,anchor尺寸计算,tfrecord操作,以及训练过程中的各种错误和优化措施。最终成功实现了单种类目标检测。
摘要由CSDN通过智能技术生成

参考文章:SSD关键源码解析-知乎      目标检测|SSD原理与实现

参考代码:balancap/SSD-Tensorflow

 

真是佩服那些能从头到尾把算法实现好的人。。该有多难啊。

 

现阶段成果:成功运行单种类目标检测

 

1.遇到最多的问题就是 list, array, tensor互相转换了。大部分时间消耗在这个上面。

解决:tensor --> array:

a: tensor; b: array
with tf.Session() as sess:
    b = sess.run(a)

list --> array:

a: list; b: array
b = np.array(a, dtype = 'float32')

 

2.实际VGG输出layer的shape与论文里的不相同。

论文里的layer的shape为(38, 38),(19, 19),(10, 10),(5, 5),(3, 3),(1, 1)。但是按照VGG论文的VGG-16来,输入300*300*3的时候,输出的shape有时候与要求的不一样。后来看了别人的文章,发现是padding的问题。

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值