目录
前言
课题背景和意义
实现技术思路
一、两阶段深度学习算法
二、单阶段深度学习方法
实现效果图样例
最后
前言
📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
🚀对毕设有任何疑问都可以问学长哦!
选题指导:
大家好,这里是海浪学长毕设专题,本次分享的课题是
🎯基于深度学习的目标检测算法
课题背景和意义
目标检测(Object Detection) 是高级视觉研究领域的重要前提,是计算机视觉研究的核心问题。 深度学习拥有强大的自学习能力,将其运用至目标检测领域能够在一定程度上弥补了传统检测方法的不足。目标检测( object detection) 将待测目标的分割、识别、语义等高级视觉问题合为一体,对图像中的物体进行识别和定位,其准确性和实时性是衡量整个计算机视觉系统的一项重要标准。目标检测的目的在于解决图像的实例分割和定位框表示,所以,对图像进行目标检测不仅要确定目标的类别,还要判断出其像素范围。当前,目标检测被广泛应用于不同的领域,例如农业生产生活中的害虫检测,医学领域中对病变区域的检测,常见的视频监控等等。在计算机视觉众多的技术领域中,目标检测也是一项非常基础的任务,图像分割、物体追踪、关键点检测等通常都要依赖于目标检测。在目标检测时,由于每张图像中物体的数量、大小及姿态各有不同,也就是非结构化的输出,这是与图像分类非常不同的一点,并且物体时常会有遮挡截断,所以物体检测技术也极富挑战性,从诞生以来始终是研究学者最为关注的焦点领域之一 。
实现技术思路
一、两阶段深度学习算法
传统的目标检测方法存在着鲁棒性差 、 计算成本高等缺点。两阶段深度学习算法 过选择性搜索、 边界箱等常见区域选择方法生成候选区域, 接着在候选区域与卷积神经网络相结合提取特征并进行回归分类。这一类检测算法需要分两步完成,即先产生候选区域再进行特征提取,被称为两阶段深度学习算法,其具有准确度高但速度相对慢的特点,典型的基于候选区域的检测算法有区域卷积神经网络( region-CNN,R-CNN) 、空间金字塔池化网络( spatial pyramid pooling-Net,SPP-Net) 快速区域卷及神经网络( fast R-CNN) 、快速区域卷及神经网络( faster R-CNN) 和掩模卷积神经网络( mask R-CNN) 。
R-CNN
R-CNN 算法的具体流程为: 1) 通过选择搜索( selective search) 网络对图像的纹理、颜色等特征进行分析;2) 对特征向量进行归一化处理; 3) 通过深度网络对输入的候选区域进行前向计算获得特征; 4) 训练支持向量机( support vector machine,SVM) 分类器进行分类; 5) 使用回归器精细修正每个候选框的位置。
SSP-Net
SSP-Net 模型,其在全连接层前接入了金字塔池化( spatial pyramid pooling ,SPP) 层来适应任何尺寸的图像输入,解决了 R-CNN 模型由于归一化导致的信息缺失问题。
SPP-Net 对 R-CNN 的特征提取步骤进行了修改,这样特征提取不再需要每个候选区域都经过 CNN,只需要将整张图片输入。感兴趣区域( region of interest,ROI) 特征可以直接从特征图获取,使得运行速度得到了极大的提高。该在运行时占用巨大的磁盘资源。
Fast R-CNN
为了解决之前存在的问题,提出Fast R-CNN 算法,Fast R-CNN 结合了 SPP-Net 网络的优点,将 R-CNN 网络进行改进: 1) 对整张待测图像进行卷积操作,减少重复计算; 2) 整张待测图像归一化后送入深度网络,通过最后少数几层处理每个候选框,提升了运行速度; 3) 引入多任务损失( multi-task loss) 函数,用深度网络统一实现类别判断和位置调整,减少内存占用。
Faster R-CNN
在同样使用最大规模的网络的情况下,Fast R-CNN 相较于 R-CNN 的准确率相似,但在训练和测试时间上有了明显的缩短。该算法将目标检测的 4 个基本步骤都整合在了一个深度网络中,提高了算法的综合性能,尤其在检测速度方面。Faster R-CNN 算法的具体流程: 1) 将待测图像输入卷积网络中,生成特征映射; 2) 使用区域投标网络region pro-posal network,RPN)在生成候选区域的同时产生锚点( an-chors) ,通过判别函数判断并使用边框回归调整 Anchors 以 获取准确的候选区域,; 3) 通过 RoI 池化层,解决最后输入全连接层的特征图的尺寸大小不同的问题; 4) 通过完全连接层来分别判断物体的类别和精 准位置。
由于采用 RPN 代替 Fast R-CNN 算法的选择性搜索方法,在检测率相同的情况下,Faster R-CNN 算法的检测速度是之前的 10 倍。
Mask R-CNN
在基于 Faster R-CNN 的基础上 进行改进提出了 Mask R-CNN,该算法可以精确到像素级输 出,高质量完成分割任务。
Mask R-CNN 具有以下特点: 1 ) 通过引入感兴趣区域聚集( RoI Align ) 层来替代 Faster R-CNN 采用的高校池以解决仅通过池化直接采样导致特征图谱在原图的对应位置与真实位置有所偏差的问题; 2 ) 多任务损失函数包括分类误差 、回归误差、 分割误差,即将识别预测和分割预测分割,掩膜
分支针对每个 RoI 产生一个 K × M × M 二值的掩膜输出,其中K 为分类物体的类别数目 。
该算法在 COCO 数据集上测试 效果略优于 Faster R-CNN 。
二、单阶段深度学习方法
YOLO算法
与之前两阶段目标检测算法最明显的区别在于 YOLO 舍弃候选框提取,直接采用回归的方法进行物体分类和候选框预测 。 这样的改进简化了网络结构,将检测速度提升至 了 Faster R-CNN 的 10 倍左右 。
SSD
SSD 算法,解决了同时期 YOLO 算法存在的定位精度低 、 难以检测小目标等问题。 SSD 算法有以下改进: 1 ) 采用 CNN 来直接进行检测,避免了 YOLO 方法在全连接之后再进行检测的操作; 2 ) 提出尺度不同的特征图来对物体进行检测,通过快速检测不同尺度特征图的准确度,明确区分预测; 3) 结合 Faster R-CNN 算法中的 Anchor 机制,通过大小不同的先验框在特征图中获取候选区域,提高了召回率。 SSD 算法示意图:
2017 年, 对 SSD 算法进一步优化提出 了 DSSD ( deconvolutional single shot detector ) 算法,将 SSD 中的融合模块采用反卷积代替传统的双线性插值上采样,将高层语义与低层特征信息进行充分融合,进一步提升了对小目标的检测精度。 与此同时,随着网络的复杂度增加,算法的检测速度有所下降。 DSSD 算法示意图:
同年,提出了 FSSD( feature fusion single shot multibox detector) 算法,通过借鉴 FPN 算法思想,将多尺度特征与信息融合,虽然对小目标的检测精度有所下降,检测速度得到了明显的提升。 FSSD 算法示意图:
实现效果图样例
深度学习的目标检测技术从R-CNN 到 Fast R-CNN的算法