定义: 双线性CNN 包括两个特征提取器,其输出 经过外积 相乘,池化后获得图像描述子
优点:
- 以平移不变的方式,对局部的对级(pairwise) 特征交互建模;
- 能够泛化多种顺序无关的特征 描述子,如Fisher 向量,VLAD(局部聚合向量,把图像表示为向量),O2P(使用二阶池化方法描述特) 。在实验中CNN 作为特征提取器的双线模型。
- 双线性形式简化了梯度计算,能够对两个网络在只有图像标签的情况下进行端到端的训练
实验结果:
- 该架构在大多数细粒度数据集上都可以与预算算法相媲美,并且更加简洁,易于训练。
论文介绍:
细粒度识别: 对同属一个子类的物体进行分类,通常需要对高度局部化,且与图像中姿态及 位置无关的特征进行识别,例如,"加利福尼亚海鸥" 与" 环状海鸥" 的区分就要求对其身体纹理,或羽毛颜色的细微差异进行识别。
通常的技术分为两种:
- 局部模型: 先对布局定位,然后提取其特征,获得图像特征描述。缺陷外观通常会随着位置,姿态,以及视角的改变而改变。
- 整体模型: 直接构造整幅图的特征表示,包括经典的图像表示方法,如Bag-of-Visual-Words,以及其适用纹理分析的多种变种
- 基于CNN 的局部模型要求对训练图像局部标注,代价昂贵,并且某些类没有明确定义的局部特征,如纹理以及场景。
作者思路:
- 局部模型高效的原因:本文中,作者声称局部推理的高效性在于其与物体的位置及姿态无关,纹理表示通过图像特征进行无序组合的设计,而获得平移无关性。
- 纹理表征性能不佳的思考:基于SIFT 及CNN 的纹理表征已经在细粒度物体识别上显示出高效性,但其性能还亚于基于局部模型的方法,其可能原因就是纹理表示的重要特征并没有通过端训练获得,因此识别任务中没有达到最佳效果。
- 洞察点:某些广泛使用的纹理表征模型都可以写作将两个合适的特征提取器输出,外积之后,经池化得到。
- 首先,图像先经过CNNs 单元提取特征,之后经过双线性层及池化层,其输出是固定长度的高位特征表示,其可以结合全连接层预测类标签,最简单的双线性层就是将两个独立的用外积结合,这与图像语义分割中的二阶池化类似。
实验结果 : 论文在鸟类,飞机,汽车等细粒度识别数据集上对模型性能进行测试,表明B-CNN 性能在大多细粒度识别的数据集上,有优于当前模型,甚至是居于局部监督学习的模型,并且很高效。