大白话分析——SSD目标检测网络从训练到预测(中)
一. 背景
本文档以ssd300作为背景网络进行解读,以Tensorflow,Keras为框架
原始代码:https://github.com/pierluigiferrari/ssd_keras
分析后的代码:https://github.com/Freshield/LEARN_detection/tree/master/a4_github_better_ssd/a2_analyze_model
目前网上基本都网络部分讲的比较多,但是真正训练和预测部分都相对粗略,所以自己网上找了一个相对比较好的ssd检测作为蓝本来分析,然后把相应的过程用大白话给表达出来,方便大家可以更好的理解网络。
二 到 三 请查找上一篇
https://blog.csdn.net/freshield/article/details/105235281
四. 数据部分
https://blog.csdn.net/freshield/article/details/105493183
五. Loss部分
在训练前最后需要的就是Loss部分的编写了,回顾一下,我们目前得到了预测的值,shape为(batch, 8732, 33)其中33为21(分类预测)+4(坐标预测)+8(先验框位置以及variance)。同时我们也得到并转换了label为同样的尺寸,也就是(batch, 8732, 33)这里的顺序和预测都是相对应的,那么我们就是要分别来计算分类的Loss和坐标的Loss。在这里分类使用的交叉熵Loss而坐标使用的是L1 Smooth Loss。