其实是转载加翻译-主要是iccv2015中的文章

 这些文章是一段时间整理的,有的是拷贝别人翻译过的,有的是自己翻译的。放在这里,主要是再想看的时候较方便。另外,如果对其它人有帮助的话,也很好。

很多拷贝过来的片断都没有标注来源,因为时间长了,懒得再去找源头了。如果冒犯了谁,我一定是无心的。请联系我,我会把相关的内容删除。

图要一个一个传,,,难过

这时候正在想着纹理所以有关段落会摘下来。后来明白我自己心里想的是局部特征,但是也不要删除了。

Q:提出一种改进的GSRLBP纹理特征提取算法,提取行人图像的局部纹理特征,通过获取像素点的梯度信息结合GSRLBP算法消除微小扰动对行人特征提取的影响,进一步增强特征提取的鲁棒性.搭建基于深信度网络的深度学习行人样本分类器,利用多层受限波兹曼机搭建分类器输入端和中间层,将行人纹理特征信息逐层转化和传递,实现特征数据的自学习,利用BP神经网络搭建分类器的输出端,实现分类器结构的自优化.研究结果表明,该算法可行、有效,且性能优于经典浅层机器学习行人检测算法.

Q:通过将LBP纹理特征作为深度网络的输入,通过逐层贪婪训练网络,获得良好的网络参数,并用训练好的网络对测试样本进行预测。

Q:新近研究ICCV2013的一篇文章,《Joint DeepLearning for Pedestrian Detection》

主旨是利用CNN+Part Detection+Deformation Model+Visibilityreasoning构建一个神经网络,以Caltech行人数据库的29x84的行人样本训练,从而得到一个神经网络的行人检测器。它的作用是在行人检测的后端,即最终的输出之前做最后一关的筛选,因为这个过程的效率不足以支撑sliding这样的大量检测。文中作者是以HOG+CSS+SVM为前端检测,获取的结果再以这里的方法来做检测。图1. 网络结构图

Neural Network的方法最核心的就是网络结构。这一点确定以后,其余的就是大部分的trick了。

输入层的预处理

输入层虽然是3channel,但却不是直接的RGB或者YUV等等三通道图,而是经过预处理阶段之后的。第一个map是原图的Y通道,第二个map被均分为四个block,行优先时分别是U通道,V通道,Y通道和全0,见下图2a;第三个mapsobel算子计算的第二个map的边缘,不同的是第四个block是前面三个block的边缘的最大值,见图2b注意,最终每个map都要归一到零均值-单位方差的分布)。

Part Detection与DeformationModel

再之后的一层是part detection,每一个map对应人体的一个部分,由于各个部分的大小不同,所以这一层的20个map并不是像图中那样统一大小,而是使用不同大小的卷积核,得到不同size的map。而之后的DeformationModel(这没有在图中体现出来,可以认为是在图中从PartDetection MapPart score的那个过程)是要考虑每一个部分的形变。训练获得每个part detectionmap的四个Deformation maps的权重,然后取这五个的加权和为summed map,该map中的最大值即为该part的score。如下图所示:

 

Visibility Reasoning

这里是针对已经获得的20个part score进行逐层推理计算。依据就是20个part之间的关系,为了解释这个逻辑先要看一下这20个part分别对应的是人体的那些部位,见下图。

图4. Part Map对应人体部分说明

把20个part分为3个level,从1到3,part描述的区域越来越大,可以想到,level高的part是和level低的part有关系的,而level低的part不依赖level高的part,这就是visibility reasoning的出发点。这里的具体过程不详细展开,感兴趣的朋友可以从文章最后的链接查看原文,或者代码(其实这个过程在代码上的体现更为简洁,并不复杂)。

经过该部分之后最终得到的就是样本的置信度,或者理解为当前sample与该网络学习到的“行人”的相似度。

实验

作者的文中提到这个检测过程的时间少于前面HOG+CSS+SVM检测过程的10%,从提供的源码来看,单个sample的检测时间大概150ms(Intel i5-3230M @2.60GHz,Laptop),我将源码改写成C++之后,同样的计算环境下时间降低到大概90ms。两种情况下都已使用OpenMP。

我没有使用caltech的行人数据库,使用的是NICTA数据库,正样本12521个,负样本22000个,针对在预处理阶段的几个尚未确定的细节做了实验,得到下面的图5(截至2014/04/30,仍在对部分细节进行实验),可以看到最高就是图中的绿色曲线(具体的设置就不详细展开了)了,其中纵轴是hit rate(pos判定为pos),横轴是false rate(neg判定为pos)。

图5. 不同预处理下的检测性能

总结:该方法时间上并不是很如意,不过我的代码上还留有部分可提升的空间,比如其中有不少连续内存计算的环节可以使用SSE加速,但这个环节所占比重不是很高,估计会下降10%左右,也就是10ms。检测性能上看,或许还是有些细节实现不够完善,尤其是前面的预处理阶段,还要细细斟酌,比如归一化的时候,这个步骤很关键,我仅仅按照自己的理解来做的,应当与训练数据的准备阶段保持一致,能够和作者沟通这个问题最佳。检测的性能可以参考图5.

另外这个网络结构只针对行人检测,不具有很强的普适性。

Project Page: http://www.ee.cuhk.edu.hk/~wlouyang/projects/ouyangWiccv13Joint/index.html

You Only Look Once

这篇文章着重在检测的速度提升,区别于之前的方法是用分类器来做检测,文章对bbox和对应的类概率进行回归,检测速度可以达到45f/smAP与原始的R-CNN差不多。

出现原因:
CNN在分类上已经可以达到实时,而在检测上R-CNN需要几秒的时间处理一张图片,主要是由于proposal的提取时间需要约1~2s的时间,然后还有很多后续步骤:proposal的特征学习,矫正bbox,消除虚警等,最好的方法需要2~40s时间处理完毕。并且R-CNN的每个检测步骤是分离的不便整体优化。

一体化的检测:
输入图像划分为7*7的网格,如果一个物体的中心落在某个格子内,则对应的格子负责检测该物体。每个网格预测一个bbox和对应的类概率,系统流程如下:

系统使用cnn实现并在VOC上测试,初始卷积层从图像中提取特征,全连接层预测概率和坐标。网络框架与GoogleNet类似,拥有24个卷积层和2个全连接层,网络如下图所示,最终的输出是对7*7网格的预测,每个网格预测20类的概率和坐标。

网络训练:
使用ImageNet进行初始训练,使用图3中的前20层加一个maxpooling层及两个全连接层进行训练,1星期训练得到top-5error为86%。由于检测需要更为精细的信息,作者将网络输入由224*224调整至448*448.

网络的最后一层预测类概率和bbox,在最后一层使用逻辑激活函数,其他层使用leaky ReLU:

网络输出使用平方和误差,并引入尺度因子λ  对类概率和bbox的误差进行加权,同时为了反映出偏离在大的bbox中的影响比较小,文章使用bbox宽高的平方根,最终的损失函数是:

为了避免过拟合,作者使用了dropout和数据增加

参数化类概率:
49个网格给出20类的概率,一幅图像产生980个预测的概率,大部分概率为0。这会导致训练离散,作者引入了一个变量解决这个问题:即某位置是否有物体存在的概率。因此除了20个类概率还有一个“objectness”概率Pr(Object),则某位置每一类的非条件概率为Pr(Object)与条件概率的乘积;

Pr(Dog) = Pr(Object)*Pr(Dog|Object)
在每个位置都对Pr(Object)进行更新,而只在有物体存在时才对Pr(Dog|Object)更新。

YOLO的限制:
由于YOLO具有极强的空间限制,它限制了模型在邻近物体上的预测,如果两个物体出现在同一个cell中,模型只能预测一个物体,所以在小物体检测上会出问题。另外模型对训练数据中不包含的物体或具有异常长宽比的物体扩展不是太好。loss函数对大小bbox采取相同的error也是个问题。

WeblySupervised Learning of Convolutional Networks

Outline of our approach.We first train a CNN using easy images from Google Search (above). This CNN isthen used to find relationships and initialize another network (below) whichwill train on harder scene images on the web. Finally, we use this network tolocalize objects in the images and train R-CNN detectors by using CNN featuresfrom our network.

先用容易识别的图片来训练一个CNN。之后用这个CNN来找关系??和初始化另一个网络,这个网络在不易识别的图片上来训练。最后,用这个网络来定位图片中的目标,训练R-CNN检测器用我们从前面CNN中找出的特征。

Fast R-cnn

Fast R-CNN architecture.An input image and multiple regions of interest (RoIs) are input into afully-convolutional

network. Each RoI is pooledinto a fixed-size feature map and then mapped to a feature vector byfully-connected layers (FCs). The network has two output vectors per RoI:softmax probabilities and per-class bounding-box regression offsets. Thearchitecture is trained end-to-end with a multi-task loss.

 

     文章:《Rich feature hierarchies for accurate object detectionand semantic segmentation》
CVPR2014?
     是否开放代码:是 ,地址:http://www.cs.berkeley.edu/˜rbg/rcnn
     主要方法
 1. 采用CNN对图像中可能的目标进行提取特征,2,由于用于检测的训练数据不够,所以采用NIPS2012识别   那篇文章的训练好的参数作为初始参数(预训练),然后再利用训练数据进行微调(Fine-Turing)。因为是采用对region proposal 进行提取特征放入CNN,所以把这个方法叫做R-CNN。
主要内容
:cnn,主要的改进是:1. 训练数据增多,计算能力增强(120万张训练数据),2. ReLU非线性函数的 使用,3. Dropout的采用。

目标检测的两个主要方法:1. 采用回归目标窗口的方法,2. 滑动窗口地方法;

主要测试过程:1. 给定一张图片,利用selective search 方法来产生2000个候选窗口(大致类似于目标显著性)2. 然后利用CNN进行对每一个候选窗口提取特征,特征长度为4096维度。 3.最后用SVM分类器对这些特征进行分类(每一个目标类别一个SVM分类器)

具体实现:作者利用了Caffe开源库,利用NIPS2012那篇的识别上面的网络结构参数作为用于检测的网络的初始参数(Pre-training),然后利用检测的训练数据进行微调(Fine-tuning)。而因为Caffe的网络输入图像的大小必须是要求一致的,所以先要对候选窗口进行简单的归一化(这里可能是最大的问题吧,不同的分辨率和不同的长宽比都归一化到一个大小,效果肯定会降低不少)。 

其它细节:训练数据中正样本和负样本的选择,这里采用的是直接的与真实目标的重复部分的比重来确定是否为正样本,文章说正负样本的选择的阈值通过交叉验证来确定。
实验结果
:1. 因为CNN的网络只需要一个,用来提取获选窗口的4096d的特征,SVM的分类器的参数个数为:4096*N,其中N为目标的类别个数,所以比较容易扩展目标类别数。2. 文章说明在Poscal VOC上的检测率比最好的高了30%。

 

Multi-viewConvolutional Neural Networks for 3D Shape Recognition

Figure 1. Multi-view CNNfor 3D shape recognition (illustrated using the 1st camera setup). At test timea 3D shape is rendered from 12 different views and are passed thorough CNN1 toextract view based features. These are then pooled across views and passedthrough CNN2 toobtain a compact shape descriptor.

多角度信息是可以分别使用的,获得好的分辨率。本文采用的是将CNN1出来的信息,用element-wise maximum 操作来池化。当然,也可以用平均值,只是测试效果不好。

Bilinear CNN Models forFine-grained Visual Recognition

Figure 1. BilinearCNN model for image classification. At test time an input image is passedthrough two CNNs, A and B, and their outputs are combined bilinearly at eachlocation. The result is pooled across all locations to obtain the bilinearvector which is

then passed through aclassification layer to obtain predictions.

将输入图像经过两个CNN取特征,之后,把两个CNN的特征用bilinear隔合,最后用CVM分类。

问题是这两个CNN有什么不同吗?

一个用的是M-Net,一个用的是D-Net。似乎层数什么的都不同,最后对每个位置产生了1*512维的特征。

用1-多的线性SVM分类。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值