深度学习与计算机视觉六

目标检测

1.目标检测算法简介
1.1滑窗法
滑窗法的思路及其简单,需要一个已经训练好的分类器,然后把图像按照一定间隔和不同大小分成一个个窗户,在这些窗户上执行分类器,如果得到较高的分类分数,就被认为是检测到了物体,把每个窗口都用分类器执行一遍之后,再对得到的分数做一些后处理,比如非极大值抑制等,最后就得到了物体类别和对应区域。
1.2PASCAL VOC,mAP和IOU简介
PASCAL VOC是一套用于评估图像分类,检测,分割和人体姿势动作等数据集,有4大类共20个细分类别。
从直观上讲,评价一个检测算法的时候,主要看是否正确预测了框内的物体类别:预测的框和人工标注框的重合程度,量化指标是MAp和IOU。
mAP中文翻译过来叫做平均精度均值,其中AP的概念在第10章,mAP是把每个类型的AP都单独“拎”出来,在计算所有类别AP的平均值,代表着对检测到的目标平均精度的一个综合评价。
1.3selective Search 和R_cnn简介
selective Search的思路就是,可能存在物体的区域都应该是某种相似性的或连续的区域,针对这两个特点,一个是使用超像素合并的思路,首先用分割算法在图像上产生很多小区域,或者看作是超像素,在根据这些区域之间的相似性进行区域合并,成为大一点的区域。
1.4SPP.ROI POOLING和 fast r_cnn
RPN首先是对基础网络的最后一层卷积响应图,执行一次卷积,输出指定通道数的响应图。这步相当于用滑窗法对响应图进行特征提取,然后对得到的响应图的每个像素分别进入到两个全连接层,一个计算该像素对应位置是否有物体的分数,输出是或者否的分数,然后另一个是计算物体框的二维坐标和大小,所以一共有四个输出。
在这里插入图片描述
1.5YOLO和SSD简介
YOLO的全称是you only look once也就是只需要一眼就能感知出认识物体,他最大的特点就是,非常高效的检测,他背后是YOLO原理和实现上的简单,他的基本思想就是把一副图像划分为一个SS的格子,以每个格子所在位置和对应内容为基础。
SSD是同时借鉴了YOLO和faster R-CNN思想的方法,可以在达到实时的检测速度水平,仍然保持很高的检测精度,和YOLO相近的地方是,SSD也会在卷积神经网络的最后阶段,最后得到S
S的响应图。

基于PASCAL VOC数据集训练SSD模型

1MXNet的SSD实现
MXNet的SSD的实现就是把作者基于Caffe的官方实现在MXNet上的重新实现,具体实现方法是再mxnet根目录中的example\ssd目录下。
2.下载PASCAL VOC数据集
有一些下载的地址
在这里插入图片描述
下载完毕之后,分别是对三个文件执行tar-xvf,就可以得到一个VOCdevkit的文件夹。VOCdevkit包含两个文件夹VOC2007和VOC2012,并且这两个文件的文件结构是基本一致的。
并且对于目标检测任务,主要关心的是前三个文件夹,Annotations下是所有标注信息,格式是XML,每个xml里的object就包含了标注物体的名称和物体框的坐标,JPEGImages文件夹是和Annotations文件夹下的XML文件同名的jpg图片文件,与同名的XML的标注信息相对应,而ImageSets/Main下包含了训练集,验证集和测试集的列表。
3.训练SSD模型
SSD中有些操作是默认不被MXNet支持的,这些操作定义在operator文件夹,所以我们需要做的是,找到根目录下的make文件夹,打开里面的config.mk,找到EXTRA_OPERATORS这一行,修改其中的路劲。
4.测试和评估模型效果
因为训练比较耗时,所以可以从网上周到训练好的模型,并且将下载好后的解压即可,并且执行

python evaluate.py

就会默认执行VGG16——reduced,epoch为0的模型在VOC2007测试集上的评估,输出每一个类别AP和最后的mAP。

INFO:root:Start evaluation with 4952 images,be patinet..
Writing  aeroplane VOC results file
..中间部分省略...
Writing tvmonitor VOC results file
VOCO7 metric? Y
reading annotations for 1/4952
...中间部分省略...
reading annotatios for 4901/4952
...
AP for aeroplane =0.7215
...中间部分省略...
AP for tvmonitor =0.6798
Mean AP=0.7158

而如果要评估别的模型的话,需要在指定输入参数中写下对应的Python代码,比如下面命令评估训练完3个epoch得到的模型,并指定batch-size指定为24

python evaluate.py --batch-size 24 --epoch 3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值