之前玩微信由于图像噪音干扰太高一直导致没法在工业是过渡,我是从从事交通大类的神经计算开发,这个转年几年过去我对算法其实很多还是不同,太零碎了。并且实际开发过程涉及对硬件的流处理器和存储单位的思考和分配。后来朋友圈一个南开的教授说他朋友是何凯明可能对这块比较熟悉,我并没有去联系作者而是读了他的相关研究,何凯明主要是数学背景读起来那么他在解决反馈权重的方面和全链接方面对阈值和网络结构的研究非常透明,
CNN的多个变异体中残差神经网络就有何凯明的研究成功,解决的问题是全局情况下舍弃对网络进化的非必要参数在最小残差平方稳定的情况下,主要的技术手段就是Batch
Normalization、Recap,该项研究成功对RestNet有了极大的推进,完成了当时比赛的冠军。拿下了ILSVRC2016(Large
Scale Visual Recognition Challenge
2016),主要比较的参数是mAP参数百分比,相关细节的方法在2017CVPR上演讲稿中全部有了,
如果我们真心的研究深度学习这一个简单的方向和工业级别应用我建议看看卫然的论文《卷积神经网络背后的数学原理》最好能手算一下,深度学习很多东西都是从物理、信号、通信、量子力学和其他学科搬来的,那么就需要涉及相关问题的积攒,https://randomweiblog.wordpress.com
详细解释了卷积神经网络,这个算法我也曾经手算过一点并不是很难算,就是在优化时候没用一个可靠依据理论来做,只是根据问题出现和经验,测度空间问题,核选取、核的秩、利用置信传播(belief
propagation)进行立体重建、贝叶斯置信传播、Deep Residual for Learning Image
Recognition)。修正神经元都基本上是凭着沈向阳的研究方向做出来的。
图像的去雾技术,它可以还原图像的颜色和能见度,同时也能利用雾的浓度来估计物体的距离,这些在计算机视觉上都有重要应用(例如三维重建,物体识别)。但是之前人们还没找到简单有效的方法来达到这个目的。在这篇论文里,我们找到了一个非常简单的,甚至说令人惊讶统计规律,并提出了有效的去雾方法。与之前的方法不同,我们把注意力放到了无雾图像的统计特征上。我们发现,在无雾图像中,每一个局部区域都很有可能会有阴影,或者是纯颜色的东西,又或者是黑色的东西。因此,每一个局部区域都很有可能有至少一个颜色通道会有很低的值。我们把这个统计规律叫做Dark
Channel Prior。直观来说,Dark Channel
Prior认为每一个局部区域都总有一些很暗的东西。这个规律很简单,但在我们研究的去雾问题上却是本质的基本规律。由于雾总是灰白色的,因此一旦图像受到雾的影响,那么这些本来应该很暗的东西就会变得灰白。不仅如此,根据物理上雾的形成公式,我们还能根据这些东西的灰白程度来判断雾的浓度。因此,我们提出的Dark
Channel Prior能很有效地去除雾的影响,同时利用物的浓度来估算物体的距离。
之前最有效的去雾方法是Fattal在2008年的Siggraph文章《Single Image
Dehazing》中提出来的,这篇文章是我们首要超越的目标。这篇文章里给出的比较结果中,我发现一种叫做Dark Object
Subtraction的方法有时候会有更好的效果。这种方法利用了全图最暗的点来去除全局均匀的雾。如果雾的确是均匀的,这种方法就会更有效。其缺点在于它无法处理不均匀的雾,而这却正是去雾问题中的难点。因此自然的想法就是局部利用Dark
Object
Subtraction处理图像。而恰巧这样做并不需要利用对比度,说明它与之前的方法有了本质的区别。让人吃惊的是,在大量的实验中,我发现这么简单的想法,其效果却非常好。
大量实验结果证实局部做Dark Object
Subtraction的做法是成功的,那么就说明去雾之后的图像的每个局部的确是有暗的物体存在的。也就是说,在这个方法成功的背后,其实有一个关于无雾图像的统计规律。我的mentor孙剑让我去先去研究一个无雾图像的数据库。通过大量的实验,我们发现这个统计规律是客观存在的。这就是我们所提出的Dark
Channel Prior。间研究的image matting问题
(半透明物体边界提取),就对这次的文章有很大帮助。在刚开始研究去雾的时候,我就发现雾的方程和matting的方程非常相似,而我之前所研究的matting框架可以给去雾带来帮助。利用这个框架,我只需要寻找一个能局部估算雾的浓度的方法就行了。这个框架使得我能专心的寻找这样的方法并且最后提出了Dark
Channel Prior。这篇文章的三个审稿人都给出了最高的评分。他们认为我们的方法简单而有效。其中一位评委说,Dark Channel
Prior的想法听起来很不可思议,但我们却证明了其真实性。另一位评委认为很少有文章能够用如此简单的方法使实验结果获得如此大的提升。还有一位评委甚至亲自实现了我们的方法并确认其可行。孙剑说阅读这样的评审结果是一件让人快乐的事情。而汤老师认为,这篇文章的成功在于三个方面。第一,方法非常简单;第二,对于一个很困难的问题,给出了很好的结果;第三,发现了一个基本的自然规律并且应用在实际的问题中。在迈阿密的演讲结束后,观众也给予了很高的评价。他们跟我说,这是这次CVPR上最有趣的一个演讲。一位与会的研究员说,最好的idea,往往就是那些看起来很简单,但说出来大家都会觉得怎么没有人想到过的idea。而我们的idea正好就符合了这一点。我们论文摘要的第一句话是这么说的,“我们提出了一个简单而有效的方法”。或许,这就是对我们这次工作最好的概括——简单的,就是美的。
高级图像的去噪实现http://blog.csdn.net/huixingshao/article/details/42834939
http://blog.csdn.net/abcjennifer/article/details/6662706
https://www.microsoft.com/en-us/research/people/?from=http%3A%2F%2Fresearch.microsoft.com%2Fen-us%2Fum%2Fpeople%2Fkahe%2Fcvpr09%2Findex.html
初步研究成功完成以后思考如何部署的无人机上对训练模型组合优化,梯度下降是局部最优、全局最优需要从加瓦罗群开始,主要从MSCOCO集做,同时也得到南航师姐的指导。在此之际看到了https://arxiv.org/abs/1711.07971Both
convolutional and recurrent operations are building blocks that
process one local neighborhood at a time. In this paper, we present
non-local operations as a generic family of building blocks for
capturing long-range dependencies. Inspired by the classical non-local
means method in computer vision, our non-local operation computes the
response at a position as a weighted sum of the features at all
positions. This building block can be plugged into many computer
vision architectures. On the task of video classification, even
without any bells and whistles, our non-local models can compete or
outperform current competition winners on both Kinetics and Charades
datasets. In static image recognition, our non-local models improve
object detection/segmentation and pose estimation on the COCO suite of
tasks. Code will be made available.
非局部操作non-local operations为解决视频处理中时空域的长距离依赖打开了新的方向。文章采用图像去噪中常用的非局部平均的思想处理局部特征与全图特征点的关系。这种非局部操作可以很方便的嵌入已有模型,在视频分类任务中取得的很好的结果,并在在静态图像识别的任务中超过了何恺明本人ICCV最佳论文的Mask R-CN,受到NL-Means在图像去噪应用中的启发,在处理序列化的任务是考虑所有的特征点来进行加权计算,克服了CNN网络过于关注局部特征的缺点。
图像去噪是非常基础也是非常必要的研究,去噪常常在更高级的图像处理之前进行,是图像处理的基础。图像中的噪声常常用高斯噪声N(μ,σ^2)来近似表示。 一个有效的去除高斯噪声的方式是图像求平均,对N幅相同的图像求平均的结果将使得高斯噪声的方差降低到原来的N分之一,现在效果比较好的去噪算法都是基于这一思想来进行算法设计。
NL-Means的全称是:Non-Local Means,直译过来是非局部平均,在2005年由Baudes提出,该算法使用自然图像中普遍存在的冗余信息来去噪声。与常用的双线性滤波、中值滤波等利用图像局部信息来滤波不同的是,它利用了整幅图像来进行去噪,以图像块为单位在图像中寻找相似区域,再对这些区域求平均,能够比较好地去掉图像中存在的高斯噪声。
通常的CNN网络模拟人的认知过程,在网络的相邻两层之间使用局部连接来获取图像的局部特性,一般认为人对外界的认知是从局部到全局的,而图像的空间联系也是局部的像素联系较为紧密,而距离较远的像素相关性则较弱。因而,每个神经元其实没有必要对全局图像进行感知,只需要对局部进行感知,然后在更高层将局部的信息综合起来就得到了全局的信息。网络部分连通的思想,也是受启发于生物学里面的视觉系统结构,底层的去捕捉轮廓信息,中层的组合轮廓信息,高层的组合全局信息,最终不同的全局信息最终被综合,但由于采样以及信息逐层传递损失了大量信息,所以传统cnn在全局信息捕捉上存在局限性。
处理视频等序列化数据时,传统cnn的这种局限性就显得尤为严重了。比如在记录一场网球比赛的视频中,每一帧都能很容易的检测到他的手握拍在哪,一个卷积核就能覆盖位置也就是手腕周围的区域。
但是为了识别挥拍这个动作,仅仅关注手腕周围的信息是不够的,我们需要了解到人的手腕跟他的胳膊、肩膀、膝盖以及脚发生了哪些一系列的相对位移才能判断出挥拍动作。这些信息是将网球区别于其他运动的重要信息,因为静止来看运动员都拿着拍子站在那而已。而这些重要的全局位移信息很难被关注局部的卷积核收集到非局部操作(Non-local operation)
为了处理这些全局动作信息,文章借鉴NL-Means中利用整幅图去噪的思想。前面讲到 NL-Means利用了整幅图像来进行去噪,以图像块为单位在图像中寻找相似区域,再对这些区域求平均,它的滤波过程可以用下面公式来表示:
在这个公式中,w(x,y)是一个权重,表示在原始图像中,像素 x和像素 y 的相似度。这个权重要大于0,同时,权重的和为1。
类似的,该文章定义了一个用于处理当前动作点与全局所有信息关系的函数
这里x是输入信号,也是和x尺寸一样的输出信号,i代表时间空间上的输出位置索引,j代表全图中所有可能位置的枚举索引。函数f(x_i, x_j)计算位置i和j的权重。函数g用来计算j位置输入信号的一个表示。文章中的Non-Local操作就是考虑了图像中的所有可能位置j。
文中还给出了具体的几种f(x_i,x_j)函数的实现形式
1. Gaussian
Embedded Gaussian
Dot product
Concatenation
非局部模块(Non-local Block)
文章中还定义了Non-local Block,也就是把前面的这种Non-local操作封装起来作为一个模块可以很方便的用在现有的框架中。
这里y_i就是公式(1)中的输出结果。“+x_i”表示残差连接。残差连接是何恺明在他的2016年CVPR最佳论文中提出的。这个残差连接使得我们可以将这个Non-local Block很方便的插入已有的预训练模型中,而不会破坏模型原有的操作。
是一个Non-local Block的例子。特征图尺寸为T×H×W×1024 也就是有 1024 个通道。 f函数采用的是公式3中的Embedded Gaussian。蓝色框表示1×1×1 的卷积操作,这种结构为512通道的“瓶颈”(bottleneck)结构。卷积和循环网络操作都是常用的处理局部领域的基础模块。在本文中,我们提出将非局部操作(non-local operations)作为捕获长距离依赖的通用模块。受计算机视觉中的经典非局部均值方法的启发,我们的非局部运算将位置处的响应计算为所有位置处的特征的加权和。这个构建模块可以应用到许多计算机视觉体系结构中。
在视频分类的任务上,即使没有用任何花里胡哨的技巧,我们的非局部模型也可以在Kinetics和Charades数据集上超过对手的效果。在静态图像识别中,我们的非局部模型在COCO比赛中的三个任务,对象检测/分割和姿态估计中都效果都有提升,目前该网络定性为非局部通用网络结构。