Yolo3的backbone是基于DarkNet-53网络结构,Yolo2的backbone是基于DarkNet-19网络结构。 Yolo3的网络结构如下图: 由上图可知,Yolo3输出3种不同尺度的feature map,边长分别为:13,26,52。采用不同尺度的feature map可以检测出更精细的目标对象。通过上采样输出不同尺寸的feature map。 yolo3算法的损失函数: 每个grid cell的Bounding Box包含了矩形框的中心坐标(x,y)、宽(w)、高(h)、置信度(c)和类(class)信息。 yolo3计算损失函数处理利用均方差外,还使用了二值交叉熵。 损失函数代码: xy_loss = object_mask * box_loss_scale * K.binary_crossentropy(raw_true_xy, raw_pred[..., 0:2], from_logits=True) wh_loss = object_mask * box_loss_scale * 0.5 * K.square(raw_true_wh - raw_pred[..., 2:4]) confidence_loss = object_mask * K.binary_crossentropy(object_mask, raw_pred[..., 4:5], from_logits=True) + \ (1 - object_mask) * K.binary_crossentropy(object_mask, raw_pred[..., 4:5], from_logits=True) * ignore_mask class_loss = object_mask * K.binary_crossentropy(true_class_probs, raw_pred[..., 5:], from_logits=True) xy_loss = K.sum(xy_loss) / mf wh_loss = K.sum(wh_loss) / mf confidence_loss = K.sum(confidence_loss) / mf class_loss = K.sum(class_loss) / mf loss += xy_loss + wh_loss + confidence_loss + class_loss 如上代码,Bounding Box的宽高信息利用均方差表示,其他预测信息如x,y,置信度和类概率都使用了二值交叉熵。 |
|
来自: taotao_2016 > 《AI》