nanodet简单笔记
这里简单记录下nanodet的结构.
网络stride8,16,32的feature 经过共享卷积处理后cat在一起再transpose,直接产生shape为(B, n_grid, n_class+8*4),其中B为batchsize, n_grid为feature map上点的个数, 4:表示top,bottom, left, right 4个值,每个值使用8个bin的概率表示.
loss有3部分构成
- loss qfl
所有正负样本都参与qfl的计算,注意qfl的权重是 pred box与gt box 的iou.即,box分支结果间接参与分类loss. - loss dfl
预测出来的left,right, bottom…无需解码成bbox, 直接参与dfl的计算, 计算dfl时引用了分类的置信度. 即,框的loss也受分类影响. - loss giou
预测的left,right…等和center_priors一起可以解码成bbox, 再和gtbox做giou计算.
注意,早期的label assignment使用了atss, 最新的代码使用了一个辅助网络来做标签分配. 早期辅助网络loss会影响backbone,neck参数更新, 等训练后期网络稳定了, 辅助网络的loss不会再改变backbone,neck.基本结构: