总而言之,我们怎么在这么少的数据量之下识别这么多的种类?可能很多人一开始就会说,我把所有的检测框架跑一遍,去比对哪个效果最好。可是我想给到大家的一个小小的建议是,在跑框架之前,其实我们是可以对最需要的数据预测一个最直观的分析。我们可以看到,这两张图片上面最大的特征其实是一个集群的物体,就是说某一个泡面旁边种类的泡面和他是一个类型的,我们就通过去找相应的资料处理这个问题。在我们阅读查找文献的时候,SSD 也就是一个检测框架,论文作者提出这个框架的时候,他是基于另一个检测框架选取特征,对小物体和集群物体无法很好识别的问题做了改进。 第二个是我们查到陈新鹏同学在自己的博文上展示了 SSD 模型在面对小规模数据集上的良好效果,他把这个 SSD 模型应用在了自然场景的文本检测上。实际上我们一个单词,或者一个成语也是相当于有点集群的概念在里面。这样的话,就相当于我们可以省掉很多的时间去试一些我们不需要试的框架。但是还有一点是说,数据量实在真的非常少,我们可能还是会想到要做数据增广,依然还是那个建议,你是根据你的数据性质进行适当有效的数据增广。 我们这边看超市物品的时候,我们可以想像,超市的物品出现在不同货架的不同位置上,所以我们从位置的角度去实现增广是一个合理的方式。同时超市倾向于将同一类别的物体摆放在一起供顾客选择。也就是我们左边的图片,后面的会集中摆在一起,泡面会不太常见的出现在一个超市上下货架的两层。所以我们最后依据这样两个假设,我们看到这个其实也验证了我们中国的一个习惯,就是同一类别的物体基本上都放在同一货架上。我们最后采用的增广的方式,就是把一张训练图片进行上下左右三分之一切割,取其中三分之二上的图片,这样一张训练集被变成五张。唯一需要注意的是,分割之后检测目标要进行相应的量化。 ⅣDeeeeeeeeeepNet 团队陈朝才:深度学习在目标检测领域的应用 1. 检测的应用 第一个是做人脸检测,这个做完检测之后还会有很多应用,比如人脸识别会先去检测这个人脸,还有人脸的特征点定位。就是检测到人脸之后,再去点击鼻子,做一些美化或者是其他的特效,还有旁边行人的检测。下面是车行的检测,这个在交通当中应用是很多的。比如说首先需要检测到这些车,再去对这些车进行分类,看看这些车是什么车。 2. 常用检测框架 这些检测的方法我大体上分为三类:一是 Cascade CNN,这是一个 CNN 的结构;二是 RCNN 相关的,这里面我列了几种,当然还有特别多的优化这里没有放出来。包括 RCNN,然后 FastRCNN、FasterRCNN 和 R-FCN、PVANet。三是 YOLO、SSD。 Cascade CNN 首先说一下 Cascade CNN,我们做目标检测的时候有一种非常暴力的方法就是用一个框去辨别这个图像,做一些分类。比如第一个框我框出来了,用一个分类器去分类,比如我这里检测是人脸,我就去做分类,看看这个框里面是不是人脸,我去扫一遍的话,扫到一个区域是人脸。如果我分类的概率大于某一个阈值的话,输出这个地方是人脸,这是一种非常暴力的方法。针对这个方法我们有很多的改进,比如说这里会有很多框,几万个框计算代价太高了,我会先初步的做一个筛选,比如先用一些大的框去扫,扫到某一个区域可能有人脸,我再对这个区域进行检测。这样的话,我通过一个极连的步骤,可以大大的减少计算的时间。更详细的方法在下面,大家有兴趣可以去看一下,它主要是针对暴力扫的话,这种极连不断的去减少这种计算复杂度的方法。(附该结构的 Github 代码地址 https://github.com/anson0910/CNN_face_detection) RCNN RCNN 是目标检测里面的一个开放性的模块,其他的主要思想也和刚才的类似。刚才在扫这个区域的过程当中有三步:第一步去决定一些框,第二步要对这个框进行分类,第三步要根据我刚才得到的这些框好输出最后的结果。这三步 CRNN 里面做了相应的改进。第一步刚才我们的框是暴力的,RCNN 里面会有一个 Region Proposal 的方法,先看哪些地方有物体,先把这些框作为候选的区域,大概只有 2000 个,比刚才要小特别多。得到这些候选框之后,第二步我们要对这个框进行分类,都有一个卷积神经网络,这个卷积神经网络针对这个框,比如我们常用的是 24×24 的,通过卷积神经网络最后的全链接,一般是 4.96,得到一个 4096 位的特征。得到这个特征之后,我们有些常见的特征,对每一类进行训练一个分类器,我们就可以判断出来,比如提取这一项之后进行分类是机器还是人。这个改进了刚才的三步:第一步就是我们用 Region Proposal 的方法替代暴力扫的方法;第二步就是用 CNN 的特征做分类,不是用传统的一些特征;第三步是用一个 SVM 的分类对候选区域进行分类。这里面还有一个改进,就是我这个候选区域框的位置可能不对,这个人就提出来一个框的回归方法,就去纠正这个 Proposal 的位置,这样的话也带来一个检测效果的提升。(附该结构的 Github 代码地址:https://github.com/rbgirshick/rcnn) (责任编辑:本港台直播) |