darknet转keras时,预测出来的概率偏差较大,主要原因是:
1、darknet的resize图片时用到了0.5的填充,具体可以看darknet的resize代码。
2、darknet的BN层中epsilon=0.000001,而YAD2K的BN层epsilon默认0.001。只要修改
conv_layer = (BatchNormalization(epsilon=0.000001,
weights=bn_weight_list))(conv_layer)
conv_layer = (BatchNormalization(epsilon=0.000001,
weights=bn_weight_list))(conv_layer)
darknet转pytorch时,原因是:
1、输入数据问题,darknet 转 keras的原因(1)
2、代码上的,将utils.py中get_region_boxes函数的only_objectness设置为0,;将plot_boxes中的
print('%s: %f' % (class_names[cls_id], cls_conf)改成
print('%s: %f' % (class_names[cls_id], cls_conf*box[4]))