有方向的CNN--Oriented Response Networks

本文半原创,半引用链接http://blog.csdn.net/zhangjunhit/article/details/76637772

Oriented Response Networks 
CVPR2017 
http://yzhou.work/ORN/ 
Code: https://github.com/ZhouYanzhao/ORN

以前的CNN主要通过 pool 来得到小的角度变化不变性,本文设计了一个CNN 可以得到目标的角度信息,也可以做到完全的旋转不变性。 
简单的来说,对以前学习到的滤波器 f 旋转 N个角度(例如,每隔90度旋转一次)得到 f_0 , f_90, f_180, f_270。 没有旋转的目标 对 f_0 滤波器响应是最大的。 旋*转90度的目标 对 f_90 滤波器响应是最大的。 这样不仅有了目标的位置信息,还有了目标的角度信息。

有方向的CNN--Oriented Response Networks_第1张图片

输入图像的左上角图像块 Receptive field 在 canonical filter 的响应是最大的,所以其目标的角度是 0度。

  1. Oriented Response Networks 
    首先介绍一下 Active Rotating Filters (ARFs),然后介绍将 ARFs 应用到 CNN 中面临的三个问题怎么解决:1)旋转 ARF 得到其他角度的 ARF,2)使用 ARFs 做卷积得到特征图,3)反向传播怎么更新 学习

First, we construct a two-step technique to efficiently rotate an ARF based on the circular shift property of Fourier Transform. Second, we describe convolutions that use ARFs to produce feature maps with location and orientation explicitly encoded. Third, we show how all rotated versions of an ARF contribute to its learning during the back-propagation update stage

3.1. Active Rotating Filters 
有方向的CNN--Oriented Response Networks_第2张图片 
ARFs 就是通过对 canonical filter 进行旋转 得到一组 滤波器,canonical filter 和 旋转得到的滤波器组成了 Active Rotating Filters (ARFs)

有方向的CNN--Oriented Response Networks_第3张图片 
31x31x16 ARF 31x31 位置信息,每个位置有 16个角度信息, 16个 31x31 的滤波器

这里的旋转是怎么做的了? 
有方向的CNN--Oriented Response Networks_第4张图片
分两步: 
1) Coordinate Rotation, 坐标旋转– 双线性插值 
( p ′ q ′ ) =这里写图片描述

2)Orientation Spin – using the circular shift property of Discrete Fourier Transforms (DFT) 
有方向的CNN--Oriented Response Networks_第5张图片

3.2. Oriented Response Convolution 
有方向的CNN--Oriented Response Networks_第6张图片 
新的角度特征图=对应角度的滤波器 (卷积) 对应角度旧特征图 
将所有角度的特征图组合起来,得到最终的输出特征图

有方向的CNN--Oriented Response Networks_第7张图片 
有方向的CNN--Oriented Response Networks_第8张图片

3.3. Updating Filters 
有方向的CNN--Oriented Response Networks_第9张图片

3.4. Rotation Invariant Feature Encoding 
When within-class rotation-invariance is required, we introduce two strategies, ORAlign and ORPooling 
ORAlign 主方向计算,得到目标方向 
ORPooling 通过池化 丢弃方向信息 得到旋转不变性

  1. Experiments

有方向的CNN--Oriented Response Networks_第10张图片

有方向的CNN--Oriented Response Networks_第11张图片

有方向的CNN--Oriented Response Networks_第12张图片

有方向的CNN--Oriented Response Networks_第13张图片

有方向的CNN--Oriented Response Networks_第14张图片

github: https://github.com/ZhouYanzhao/ORN/blob/master/README.md

https://github.com/ZhouYanzhao/ORN/blob/caffe/examples/mnist/orn_solver.prototxt

caffe编译:


研究ORN目的本身是为了解决项目角度的问题,后期发现,ORN是具有方向不变性的分类器,而不能输出物体的角度。但是在分类器方面仍然应用很广泛,解决分类角度问题。

你可能感兴趣的:(图像处理,caffe)