深度学习中目标检测

该部分内容出自书《21个项目玩转深度学习:基于TensorFlow的实践详解》,有需要的同志可以关注我的公众号,加入下发的群,在群公告中有附网盘,可以自取(仅供学习使用)。如果失效可以联系或者在公众号留言!!!


深度学习中目标检测的原理

R-CNN 的全称是 Region-CNN它可以说是第一个成功地将深度学习应用到目标检测上的算法 后面将要学习的 Fast R-CNN Faster R-CNN 全部都是建立在 R-CNN 基础上的

传统的目标检测方法大多以图像识别为基础 一般可以在图片上使用穷

举法选出所高物体可能出现的区域框,对这些区域框提取特征并使用圄像识

别万法分类, 得到所高分类成功的区域后 通过非极大值抑制( Non-maximum suppression )输出结果

R-CNN遵循传统目标检测的思路 同样采用提取框 对每个框提取特 图像分类、 非极大值抑制四个步骤进行目标检测 只不过在提取特征这一步,将传统的特征(如 SIFT HOG 特征等)换成了深度卷积网络提取特征 R-CNN 的整体框架如图 5-2 所示

深度学习中目标检测_第1张图片

对比:

对于原始图像 首先使用 SelectiveSearch 搜寻可能存在物体的区域 可以从图像中启发式地搜索出可能包含物体的区域 相比穷举而言, Selective Search 可以减少一部分计算量 下一步,将取出的可能含高物体的区域送入 CNN 中提取特征 CNN 通常是接受一个固定大小的图像,而取出的区域大小却各高不同 对此, R-CNN的做法是将区域缩放到统一大小 再使用 CNN提取特征 提取出特征后使用 SVM 进行分类,最后通过非极大值抑制输出结果

R-CNN的训练、可以分成下面四步:

1)在数据集上训练 CNN R-CNN 论文中使用的 CNN 网络是 AlexNet,数据集为 ImageNet

2)在目标检测的数据集上,对训练好的 CNN司做微调

3)用 Selective Search 搜索候选区域,统一使用微调后的 CNN对这些区域提取特征,并将提取到的特征存储起来

4)使用存储起来的特征 ,训练 SVM 分类器

尽管 R-CNN 的识别框架与传统方法区别不是很大,但是得益于 CNN 异的特征提取能力, R-CNN 的效果还是比传统方法好很多 如在 VOC 2007数据集上,传统方法最高的平均精确度 mAP ( mean Average Precision )为40%左右,而 R-CNN mAP 达到了 58.5%

R-CNN 的缺点是计算量太大 在一张图片中,通过 Selective Search

到的有效区域往往在 1000 个以上,这意昧着要重复计算 1000 多次神经网络 非常耗时 。另外,在训练、阶段,还需要把所有特征保存起来 ,再通过 SVM进行训练,这也是非常耗时且麻烦的Fast R-CNN FasterR-CNN 在一定程度上改进了 R-CNN 计算量大的缺点,不仅速度变快不少,识别准确率也得到了提高

深度学习中目标检测_第2张图片

深度学习中目标检测_第3张图片

具体的实现书中有详细说明

下面放上一些检测的代码

深度学习中目标检测_第4张图片

深度学习中目标检测_第5张图片

Faster –RCNN的检测效果

深度学习中目标检测_第6张图片

深度学习中目标检测_第7张图片

欢迎关注和订阅AI算法与图像处理公众号(AI_study)

不定期更新和分享高质量的文章和学习资料,让我一起进步吧,fighting

深度学习中目标检测_第8张图片

深度学习中目标检测_第9张图片

你可能感兴趣的:(深度学习中目标检测)