这套源码是 SSD_for_Tensorflow 的改良版本。
主要改进2个方面:
1,去除box offest的回归运算,改用default box的位置匹配目标;
2,class计算损失值时,正例计数增加jaccard值,作为激励权值,提高位置预测的准确度;
为什么去除box offest?
标准版的ssd是对300 * 300的图片预设8732个default box,用于回归出预测box的偏移量。换句话说,这300 * 300的图片里面塞满了8732个框来匹配目标图像,这样的话总会有一个defualt box是几乎完全配对上的,因此我想是可以去除box offest的。虽然理论上会存在一点误差,但我想这点误差是可以接受。
另外,标准版的ssd中将box offest和class相加再一起训练回归,会相互干扰,容易出现梯度弥散现象。
为什么正例计数增加jaccard值?
在原版ssd中,box jaccard值大于0.5就认为是正例,也即是说 0.5<jaccard值<1 都被当作为正例来训练,因此最后class预测的结果只要是满足0.5<jaccard值<1 ,都认为是正确的class,这样会降低位置预测的正确率,例如标注半边人脸被预测为人脸。
因此正例计数增加jaccard值,即 positive = 1+jaccard-0.5 ,当jaccard=0.6时positive=1.1,当jaccard=0.9时positive=1.4,box匹配度越高positive激励值就越大。