YOLO 太典型的 one-stage method,可谓简单粗暴
放弃了 Region Proposal,直接划分为 S * S 个grid
最后从 S * S * 1024 的 Feature Map 是由两个全连接层来实现的,如果要问凭什么最后 S * S * (B * 5 + 2) 的 不同的位置的映射结果不一样,那只能说是因为 label 里面给的不一样,会去学类似 label 的分布,所以在 YOLO v1 中是没有像后面两个版本因为采用 conv 来做 predition 有最终的 feature map 上的位置 和 最后的 predition 位置相对应的问题。
- Batch Normalization.
- Convolutional With Anchor Boxes. 之前是 bbox,这回事 anchor 感觉没啥差别啊,YOLOv2 移除了 YOLOv1 中的全连接层而采用了卷积和 anchor boxes 来预测边界框,YOLO v1 是用全连接来预测
- Dimension Clusters 决定 anchor box 尺寸
- Direct location prediction,之前的方法都是预测 offset,但是 YOLO 还是 predict location coordinates relative to the location of the grid cell
- Fine-Grained Features,引入 passthrough layer,类似于 resnet,
- Multi-Scale Training.
- 用 Darknet-19 作为 backbone,更快的特征提取
不用担心 YOLO v3 只标记了一个 anchor 作为 Positive,作者在论文里说了 If a bounding box prior is not assigned to a ground truth object it incurs no loss for coordinate or class predictions, only objectness. 因为计算 loss 的时候,只计算 label 是 Positive 的 location loss 和 Classification loss
- YOLOv3 predicts an objectness score for each bounding box using logistic regression
- Class Prediction 用的是 independent logistic classifiers
- Predictions Across Scales: YOLOv3 predicts boxes at 3 different scales, as SSD does; 而且用的是 FPN 的方式,We also take a feature map from earlier in the network and merge it with our upsampled features using element-wise addition.
- Change Feature Extractor from Darknet-19 to Darknet-53
- 唯一的 Positive Anchor 不影响 bbox 的 loss,但为什么 会不影响 Classification loss 呢?
- Anchor box 的中心该是 Iceberg 还是 cell,应该是 cell
- 考虑一个 cell 里面有多个 iceberg 的问题,这个时候 anchor box 怎么 assign,这个是 iceberg 和 VOC 很大的一个差别