论文阅读:RCNN[Rich feature hierarchies for accurate object detection and semantic segmentation]
来源:互联网 发布:社会化新媒体矩阵 编辑:程序博客网 时间:2024/06/05 15:00
- 文章的突出点
- 可以利用大容量(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个矩阵
- 效果如下图所示,左边的是未进行非最大抑制的结果,右边是进行非最大抑制的结果。
- 具体算法流程如下:
- selective search:这是一种Region proposals的方法
本次实验代码:Upcoder/FaceDetection
- 欢迎大家mark,有问题一起探讨。
阅读全文
0 0
- 论文阅读:RCNN[Rich feature hierarchies for accurate object detection and semantic segmentation]
- RCNN学习笔记(1)-RCNN-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
- Rich feature hierarchies for accurate object detection and semantic segmentation
- rcnn学习笔记:Rich feature hierarchies for accurate object detection and semantic segmentation
- RCNN学习笔记(1):Rich feature hierarchies for accurate object detection and semantic segmentation
- RCNN学习笔记(2):Rich feature hierarchies for accurate object detection and semantic segmentation
- RCNN学习笔记(1):Rich feature hierarchies for accurate object detection and semantic segmentation
- RCNN学习笔记(2):Rich feature hierarchies for accurate object detection and semantic segmentation
- RCNN(一):Rich feature hierarchies for accurate object detection and semantic segmentation
- RCNN学习笔记(1):Rich feature hierarchies for accurate object detection and semantic segmentation
- RCNN学习笔记(2):Rich feature hierarchies for accurate object detection and semantic segmentation
- RCNN学习笔记(1):Rich feature hierarchies for accurate object detection and semantic segmentation
- RCNN学习笔记(1):Rich feature hierarchies for accurate object detection and semantic segmentation
- 2014-RCNN-Rich feature hierarchies for accurate object detection and semantic segmentation 翻译
- RCNN系列学习笔记(1):Rich feature hierarchies for accurate object detection and semantic segmentation
- windows下mongodb安装与使用整理
- c语言实现冒泡排序
- 写一个函数,给定N,返回斐波拉契数列第N项.
- 用client-go调用Kubernetes API
- mfs分布式存储搭建(一)
- 论文阅读:RCNN[Rich feature hierarchies for accurate object detection and semantic segmentation]
- popuwindow的使用方法
- 运营喵必知的内容社区搭建步骤详解
- 2017年学习记录
- Navi title偏移问题 一般发生在模拟器
- Android那些事
- 我们终究是一群平凡的人
- [BZOJ3262]陌上花开(cdq分治+bit)
- GHGL用到的sql,Oracle数据库