论文阅读:RCNN[Rich feature hierarchies for accurate object detection and semantic segmentation]
2017-08-17 20:52
627 查看
文章的突出点
可以利用大容量(high capacity)的卷积神经网络去定位分割物体
当我们训练数据很少的时候,我们可以使用迁移学习的方法来fine-tuning现成的网络
文章的重点当然是我们怎么去定位一个物体,在这里,我们以人脸识别为例,在一张图片中检测出人脸。
数据集:FDDB人脸检测库FDDB
流程:
从一张图像中选取许多个bounding box,文中说明了使用selective search 的方法去选择bounding box。
针对训练数据的bounding box,我们可以利用该图像的annotation data去给每一个图像计算一个IoU值,这个值就是我们该bounding box的得分。
我们可以设置一个阈值,如果bounding box的得分大于该阈值,则为face,否者该bounding box为background。这样我们就有了label,就可以利用VGG16去对他进行分类。
将上述得到训练集的bounding box作为训练集,去微调我们的VGG16网络,在这里我是固定的卷积层的参数,只是训练了全连接层的参数。
训练好分类模型以后,我们怎么去检测呢?
首先我们需要提取出所有的训练集,怎么提取呢?我们计算训练集的所有bounding box的全连接层输出,即就是一个bounding box对应一个4096维度的特征,由于我计算GPU显存不够,我就以一个batch的数组作为我的训练集。batch的组成:128个,64个正样本,64个人负样本组成。
我们同样将测试图像的bounding box提取出来
然后计算出每一个bouning box的全连接层输出,作为该bounding box的特征,即就是4096维度的一个特征。
然后我们针对每一个bounding box用SVM去做回归运算,算出每一个bounding box的得分。
然后我们再指定一个阈值,得分大于该阈值的则会face,否则会background
针对所有预测为face的bounding box,我们再利用非最大抑制(non-maximum suppression)的方法去合并、删除冗余的bounding box。
最后得到的便是我们检测的结果。
下图为例:左边的是输入,中间的未进行非最大抑制的结果,右边是进行非最大抑制的结果。
下面是我们训练的一个结果,我们将FDDB中的两折作为我们微调的数据集,一折作为验证集。Batch组成:[100:60negative, 40positive]
其中涉及的知识:
selective search:这是一种Region proposals的方法
具体的方法没有研究,有兴趣的话,可以阅读一下这篇论文。我感觉大意就是,随机出来一些框,然后按照纹理特征,将一些框框合并。
实现:我直接调用Github上一位大神写的库,地址如下:selective search
IoU:根据字面意思理解,I代表的是交集,U代表的是并集,o在这里代表的是除法。
两个矩阵的IoU值代表的就是两个矩阵的交集面积处于两个矩阵并集之后的面积。下图进行了形象的描述:
之前还看到过另一种定义的方式:size(A交B)/min(size(A), size(B)),我们可以通过实验来选择一种合适的,在这里我选择的是第一种。
非最大抑制(non-maximum suppression):总体来说就是将不同的框框合并。
具体算法流程如下:
输入:N个矩阵R1..RN,N个得分S1..Sn
算法流程:
按照得分从高到低将N个矩阵排序,假设排序好的最高得分的是R1,并且得分依次递减,Rn的得分最低。
从前往后找到第一个未被确定的矩阵x
从该位置往后遍历,计算每一个矩阵y与矩阵x的IoU值,如果该值大于阈值,则删除矩阵y,否则继续该步骤。直到遍历完成整个矩阵集合。
重复步骤2,直到集合中的所有元素都已经确定。
输出:确定的m个矩阵
效果如下图所示,左边的是未进行非最大抑制的结果,右边是进行非最大抑制的结果。
本次实验代码:Upcoder/FaceDetection
欢迎大家mark,有问题一起探讨。
可以利用大容量(high capacity)的卷积神经网络去定位分割物体
当我们训练数据很少的时候,我们可以使用迁移学习的方法来fine-tuning现成的网络
文章的重点当然是我们怎么去定位一个物体,在这里,我们以人脸识别为例,在一张图片中检测出人脸。
数据集:FDDB人脸检测库FDDB
流程:
从一张图像中选取许多个bounding box,文中说明了使用selective search 的方法去选择bounding box。
针对训练数据的bounding box,我们可以利用该图像的annotation data去给每一个图像计算一个IoU值,这个值就是我们该bounding box的得分。
我们可以设置一个阈值,如果bounding box的得分大于该阈值,则为face,否者该bounding box为background。这样我们就有了label,就可以利用VGG16去对他进行分类。
将上述得到训练集的bounding box作为训练集,去微调我们的VGG16网络,在这里我是固定的卷积层的参数,只是训练了全连接层的参数。
训练好分类模型以后,我们怎么去检测呢?
首先我们需要提取出所有的训练集,怎么提取呢?我们计算训练集的所有bounding box的全连接层输出,即就是一个bounding box对应一个4096维度的特征,由于我计算GPU显存不够,我就以一个batch的数组作为我的训练集。batch的组成:128个,64个正样本,64个人负样本组成。
我们同样将测试图像的bounding box提取出来
然后计算出每一个bouning box的全连接层输出,作为该bounding box的特征,即就是4096维度的一个特征。
然后我们针对每一个bounding box用SVM去做回归运算,算出每一个bounding box的得分。
然后我们再指定一个阈值,得分大于该阈值的则会face,否则会background
针对所有预测为face的bounding box,我们再利用非最大抑制(non-maximum suppression)的方法去合并、删除冗余的bounding box。
最后得到的便是我们检测的结果。
下图为例:左边的是输入,中间的未进行非最大抑制的结果,右边是进行非最大抑制的结果。
下面是我们训练的一个结果,我们将FDDB中的两折作为我们微调的数据集,一折作为验证集。Batch组成:[100:60negative, 40positive]
其中涉及的知识:
selective search:这是一种Region proposals的方法
具体的方法没有研究,有兴趣的话,可以阅读一下这篇论文。我感觉大意就是,随机出来一些框,然后按照纹理特征,将一些框框合并。
实现:我直接调用Github上一位大神写的库,地址如下:selective search
IoU:根据字面意思理解,I代表的是交集,U代表的是并集,o在这里代表的是除法。
两个矩阵的IoU值代表的就是两个矩阵的交集面积处于两个矩阵并集之后的面积。下图进行了形象的描述:
之前还看到过另一种定义的方式:size(A交B)/min(size(A), size(B)),我们可以通过实验来选择一种合适的,在这里我选择的是第一种。
非最大抑制(non-maximum suppression):总体来说就是将不同的框框合并。
具体算法流程如下:
输入:N个矩阵R1..RN,N个得分S1..Sn
算法流程:
按照得分从高到低将N个矩阵排序,假设排序好的最高得分的是R1,并且得分依次递减,Rn的得分最低。
从前往后找到第一个未被确定的矩阵x
从该位置往后遍历,计算每一个矩阵y与矩阵x的IoU值,如果该值大于阈值,则删除矩阵y,否则继续该步骤。直到遍历完成整个矩阵集合。
重复步骤2,直到集合中的所有元素都已经确定。
输出:确定的m个矩阵
效果如下图所示,左边的是未进行非最大抑制的结果,右边是进行非最大抑制的结果。
本次实验代码:Upcoder/FaceDetection
欢迎大家mark,有问题一起探讨。
相关文章推荐
- 论文阅读笔记:R-CNN:Rich feature hierarchies for accurate object detection and semantic segmentation
- R-CNN:Rich feature hierarchies for accurate object detection and semantic segmentation(阅读)
- 【CV论文阅读】:Rich feature hierarchies for accurate object detection and semantic segmentation
- 论文笔记——Rich feature hierarchies for accurate object detection and semantic segmentation
- 论文笔记|Rich feature hierarchies for accurate object detection and semantic segmentation
- Rich feature hierarchies for accurate object detection and semantic segmentation论文笔记
- 【转】R-CNN学习笔记2:Rich feature hierarchies for accurate object detection and semantic segmentation
- Rich featureHierarchies for accurate object detection and semantic segmentation 阅读笔记
- 论文 Rich feature hierachies for accurate object detection and semantic segmentation(R-CNN)
- 【论文笔记】Rich feature hierarchies for accurate object detection and semantic segmentation
- (R-CNN)Rich feature hierarchies for accurate object detection and semantic segmentation
- R-CNN:Rich feature hierarchies for accurate object detection and semantic segmentation
- (R-CNN)Rich feature hierarchies for accurate object detection and semantic segmentation
- R-CNN: Rich feature hierarchies for accurate object detection and semantic segmentation
- 论文笔记 《Rich feature hierarchies for accurate object detection and semantic segmentation》
- R-CNN学习笔记2:Rich feature hierarchies for accurate object detection and semantic segmentation
- R-CNN(Rich feature hierarchies for accurate object detection and semantic segmentation)
- CNN初探(五)------Rich feature hierarchies for accurate object detection and semantic segmentation
- 论文笔记 《Rich feature hierarchies for accurate object detection and semantic segmentation》
- 图像检测1-R-CNN-Rich featurehierarchies for accurate object detection and semantic segmentation