SSD的损失函数改进
实现在github中: https://github.com/BOBrown/SSD-Centerloss
(1)centerl loss改进
centerloss的理解请参考博文 https://blog.csdn.net/zbzb1000/article/details/81001546
传统SSD目标检测算法是对每一个default生成一个4维的localization向量和一个output_number维度的分类向量。
例如,在21个类别的pascal voc数据集上,每一个default box需要生成4维的localization向量和21维的分类向量。
我们这里除了以上两种向量,我们还生成一种叫做center features的向量,加入到损失函数中。
center features:可以帮助每一个default box进行中心点回归。每一个default box都有一个中心点,不同类别的中心点相隔的远,相同类别的中心点相隔的近。具体技术细节参考 :https://blog.csdn.net/zbzb1000/article/details/81001546
(2)focal loss改进
focal loss文章 Title:Focal Loss for Dense Object Detection
采用focal loss训练SSD不需要使用OHEM。
以下是focalloss的layer config
- layer {
- name: "mbox_loss"
- type: "MultiBoxFocalLoss"
- bottom: "mbox_loc"
- bottom: "mbox_conf"
- bottom: "mbox_priorbox"
- bottom: "label"
- top: "mbox_loss"
- include {
- phase: TRAIN
- }
- propagate_down: true
- propagate_down: true
- propagate_down: false
- propagate_down: false
- loss_param {
- normalization: VALID
- }
- focal_loss_param {
- alpha: 0.5
- gamma: 2
- }
- multibox_loss_param {
- loc_loss_type: SMOOTH_L1
- conf_loss_type: SOFTMAX
- loc_weight: 1
- num_classes: 21
- share_location: true
- match_type: PER_PREDICTION
- overlap_threshold: 0.5
- use_prior_for_matching: true
- background_label_id: 0
- use_difficult_gt: true
- neg_pos_ratio: 3
- neg_overlap: 0.4
- code_type: CENTER_SIZE
- ignore_cross_boundary_bbox: false
- mining_type: NONE #注意这里不适用负样本挖掘方法
- }
- }
原文:https://blog.csdn.net/zbzb1000/article/details/81154311