教学案例10:目标检测
一、实验目的与任务
通过本实验,要求学生掌握传统目标检测方法,熟悉单阶段目标检测以及多阶段目标
检测方法。
二、实验内容、要求及安排
实验内容:利用传统的滑动窗口、特征提取等方法,以及单阶段、多阶段神经网络模
型,实现图像的目标检测。实验中应注意传统模型与神经网络模型对实验结果、实验参数、
算法时间和空间复杂度的区别。实验报告中要包含问题的数学原理描述、算法描述、实现,
实验结果展示及分析。
实验要求:本课程实验要求学生使用Python软件编程。要求学生依据课堂讲授的相关
知识,以图像目标检测为任务,经过分析、设计、编码与调试,独立完成题目的算法设计
与程序的实现,并最终提交调试成功的源程序代码和实验报告。
实验安排:本实验属于开放性实验,要求每个学生独立地完成本实验项目。
三、任务实现及相关素材
(一)任务简介:目标检测是计算机视觉中的一项任务,它包括识别给定照片中一个
或多个目标的存在、位置和类型。由于各类物体有不同的外观、形状和姿态,加上成像时
光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。应用领
域包括人脸检测、行人检测、车辆检测、卫星图像中道路的检测、车载摄像机图像中的障
碍物检测、医学影像在的病灶检测等。应用场景包括长/视频领域、医学场景、安防领域、
自动驾驶等。
(二)数据集简介:
1.PASCALVOC2012(ThePASCALVisualObjectClassesChallenge2012)是一个用于
目标检测、语义分割等任务的经典数据集。该数据集包含了20种类别的物体以及背景类
别,其中包括人、动物、车辆和家用物品等。其中,用于图像分割任务的训练集与验证集
总计为2913张图片,用于图像分割任务的测试集总计为1456张图片。该数据库可从网上
搜索下载。
(三)模型简介:
1.FastR-CNN是一篇由RossGirshick在2015年发表的论文,提出了一种基于快速
区域的卷积网络方法来处理目标检测。Fast-RCNN建立在以前的工作,有效地分类目标建
议使用深卷积网络。与以往的工作相比,Fast-RCNN采用了一些创新,以提高训练和测试
速度,同时也提高了检测的准确性。Fast-RCNN训练非常深的VGG16网络比R-CNN快
9倍,测试速度快213倍,并在PASCALVOC2012上获得更高的mAP。
2.YOLO(YouOnlyLookOnce)是继RCNN,fast-RCNN和faster-RCNN之后,作者
针对DL目标检测速度问题提出的另一种框架,其核心思想是生成RoI+目标检测两阶段算
法用一套网络的一阶段算法替代,直接在输出层回归包围框的位置和所属类别。YOLO创
造性地将物体检测任务直接当作回归问题来处理,将候选区和检测两个阶段合二为一。
(四)环境说明:
算法开发环境推荐使用anoconda+pytorch,编程语言为Python。
Anaconda是一个用于科学计算的Python发行版,Anaconda支持Linux,Mac,Windows
系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及
各种第三方包安装问题。PyTorch是一种用于构建深度学习模型的功能完备框架,是一种
通常用于图像识别和语言处理等应用程序的机器学习。
(五)参考代码:
FastR-CNN代码参见:/rbgirshick/fast-rcnn
Yolo代码参见:
/ultralytics/ultralytics;/luanshiyinyang/YOLO
或见案例代码数据。