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,置信度和类概率都使用了二值交叉熵。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。