1、特征融合的定义
特征融合方法是模式识别领域的一种重要的方法,计算机视觉领域的图像识别问题作为一种特殊的模式分类问题,仍然存在很多的挑战,特征融合方法能够综合利用多种图像特征,实现多特征的优势互补,获得更加鲁棒和准确性的识别结果。
2、特征融合的分类
按照融合和预测的先后顺序,分类为早融合和晚融合(Early fusion and Late fusion)
早融合(Early fusion):就是在特征上进行融合,进行不同特征的连接,输入到一个模型中进行训练。(先融合多层的特征,然后在融合后的特征上训练预测器,只有在完全融合之后,才进行检测。)这类方法也被称为skip connection,即采用concat、add操作。这一思路的代表是Inside-Outside Net (ION)和HyperNet.
两个经典的特征融合的方法:
(1)concat:系列特征融合,直接将连个特征进行连接。两个输入特征x和y的维数若为p和q,输出特征z的维数为p+q。
(2)add:并行策略,将这两个特征向量组合成复合向量,对于输入特征x和y,z=x+iy,其中i是虚数单位。
晚融合(Late fusion):指的是在预测分数上进行融合,做法就是训练多个模型,每个模型都会有一个预测分数,我们对所有模型的结果进行融合,得到最后的预测结果。(通过结合不同层的检测结果改进检测性能,尚未完成最终融合之前,在部分融合的层上就开始检测,会有多层的检测,最终将多个检测结果进行融合)。
这一类研究思路的代表有两种:
(1)feature不融合:多尺度的feture分别进行预测,然后对预测结果进行综合,如Single Shot MultiBox Detector(SSD),Multi-scale CNN(MS-CNN).
注意:SSD,全称Single Shot MultiBox Detector,是Wei Liu在ECCV 2016上提出的一种目标检测算法,截至目前是主要的检测框架之一,相比Faster RCNN有明显的速度优势,相比YOLO又有明显的mAP优势(不过已经被CVPR 2017的YOLO9000超越)。
MS-CNN:cNN多尺度
(2)feature进行金字塔融合,融合后进行预测,如Feature Pyramid Network(FPN)等
注意:FPN全称是Feature Pyramid Network, 也就是特征金字塔网络,主要是针对图像中目标的多尺度的这个特点提出的,多尺度在目标检测中非常常见,而且对应不同的问题应该设计不同的FPN。
3、深度特征融合和高低层特征融合的方法
(1)早融合,用经典的特征融合的方法 ,在现有的网络(如VGG19)中,用concat或add融合其中的某几层。
变种:用DCA特征融合方法替代concat和add操作。
(2)晚融合,采用类似特征金字塔网络(FPN)的思想,对特征融合进行预测。(FPN一般用于目标检测,提高小目标检测能力)。
三个变种:
- YOLO2的方法,只在金字塔的top-down路径的最后一层进行预测,此外还有 U-Net [31] and SharpMask for segmentation, Recombinator networks for face detection, and Stacked Hourglass networks for keypoint estimation;
- YOLO3的方法,在金字塔的每一层都进行预测;
- FSSD的方法,对 FPN进行细微改造;
feature不融合,多尺度的feature分别进行预测,然后对预测结果进行综合。
(3)用一个具有高低特征融合能力的网络代替普通的网络,如Densenet。
(4)不进行高低层特征融合,而是在高层特征预测的基础上,再用底层特征进行预测结果的调整。
4、DCA特征融合的方法
特征融合的目的,是把从图像中提取的特征,合并成一个比输入特征更具有判别能力的特征。
基于CCA(典型关联分析)的融合方法,就是使用两个输入特征间的相关关系,计算两种变换后的特征比输入的两个特征集具有更高的相关性。CCA的主要不足,在于忽略了数据集中类结构间的关系,所以将每组特征中类分开,为了解决CCA的弱点,引入了DCA。DCA最大化两个特征及中对应特征的相关关系,同时最大化不同类之间的差异。
5、改进的SSD目标检测算法(DeseNet)
改进在于使用Dense net代替原始SSD结构中的VGG,以提高目标检测准确性,改进后的SSD网络对小物体产生很好的拟合。
DeseNet(密集卷积网络)
6、FPN(特征金字塔)
特征金字塔是识别不同尺度的目标时常用的结构,但是特征金字塔需要较大的计算量和显存,所以为了解决这一问题,开发了一种构建特征金字塔的新方法,可以减少额外的对计算量和显存的消耗。
7、YOLO
YOLOv2网络结构中有一个特殊的转换层(Passthrough Layer),假设最后提取的特征图的大小是1313,转换层的作用就是将前面的2626的特征图和本层的1313的特征图进行堆积(扩充特征维数据量),而后进行融合,再用融合后的特征图进行检测。这么做是为了加强算法对小目标检测的精确度。为达更好效果,YOLOv3将这一思想进行了加强和改进。
YOLO v3采用(类似FPN)上采样和融合做法,融合了3个尺度(13x13、26X26和52x52),在多个尺度的融合特征图上分别独立做检测,最终对于小目标的检测效果提升明显。(有些算法采用多尺度特征融合的方式,但是一般是采用融合后的单一特征图做预测,比如YOLOv2,FPN不一样的地方在于其预测是在不同特征层进行的。)