损失分为三个部分: box损失(IoU损失(回归损失))、cls损失(BCE损失(分类损失))、DFL损失(BCE损失(分类损失))
以下解读均为模型输入分辨率为640*640
模型输出为一个列表, 含有三层输出的特征图, [[bs, nc+4x16, 80, 80], [bs, nc+4x16, 40, 40], [bs, nc+4x16, 20, 20]];
其中nc+4 = number of classes + 4x16(4个边, 每个边预测16个位置的概率值(DFL, 请见DFL损失函数解读)), 80x80+40x40+20x20也就是640分辨下采样8、16、32倍。
真实值是一个字典, 包含'im_file', 'ori_shape', 'resized_shape', 'img', 'cls', 'bboxes', 'batch_idx'。
第一步, 对模型输出的操作:
view+concat+split:
[[bs, nc+4x16, 80, 80], [bs, nc