SSD(Single Shot MultiBox Detector)
(1)two-stage方法,如R-CNN系算法,其主要思路是先通过启发式方法(selective search)或者CNN网络(RPN)产生一系列稀疏的候选框,然后对这些候选框进行分类与回归,two-stage方法的优势是准确度高;
(2)one-stage方法,如Yolo和SSD,其主要思路是均匀地在图片的不同位置进行密集抽样,抽样时可以采用不同尺度和长宽比,然后利用CNN提取特征后直接进行分类与回归,整个过程只需要一步,所以其优势是速度快,但是均匀的密集采样的一个重要缺点是训练比较困难,这主要是因为正样本与负样本(背景)极其不均衡(参见Focal Loss),导致模型准确度稍低。
(1)采用多尺度特征图用于检测
所谓多尺度采用大小不同的特征图
(2)采用卷积进行检测
与Yolo最后采用全连接层不同,SSD直接采用卷积对不同的特征图来进行提取检测结果。
(3)设置先验框
在Yolo中,每个单元预测多个边界框,但是其都是相对这个单元本身(正方块),但是真实目标的形状是多变的
SSD借鉴了Faster R-CNN中anchor的理念,每个单元设置尺度或者长宽比不同的先验框,预测的边界框(bounding boxes)是以这些先验框为基准的,在一定程度上减少训练难度。
https://zhuanlan.zhihu.com/p/33544892
Mask-RCNN
通过在 Faster-RCNN 的基础上添加一个分支网络,在实现目标检测的同时,把目标像素分割出来。
其中 黑色部分为原来的 Faster-RCNN,红色部分为在 Faster网络上的修改:
1)将 Roi Pooling 层替换成了 RoiAlign;
2)添加并列的 FCN 层(mask 层);
Mask-RCNN 的几个特点:
1)在边框识别的基础上添加分支网络,用于 语义Mask 识别;
2)训练简单,相对于 Faster 仅增加一个小的 Overhead,可以跑到 5FPS;
3)可以方便的扩展到其他任务,比如人的姿态估计 等;
4)不借助 Trick,在每个任务上,效果优于目前所有的 single-model entries;
技术要点1 - 强化的基础网络
通过 ResNeXt-101+FPN 用作特征提取网络
技术要点2 - ROIAlign
解决了仅通过 Pooling 直接采样带来的 Mis-alignment 对齐问题
技术要点3 - Loss Function
平均二值交叉熵
https://blog.csdn.net/linolzhang/article/details/71774168
ROIpooling和ROI Align
https://blog.csdn.net/Julialove102123/article/details/80567827
语义分割与实例分割的区别
像素级别的语义分割,对图像中的每个像素都划分出对应的类别,即实现像素级别的分类;
实例分割不但要进行像素级别的分类,还需在具体的类别基础上区别开不同的实例。
https://blog.csdn.net/lanyuxuan100/article/details/70800246