吴恩达深度学习--目标定位

目标定位

这一周我们学习的主要内容是对象检测,它是计算机视觉领域中一个新兴的应用方向,相比前两年,它的性能越来越好。在构建对象检测之前,我们先了解一下对象定位,首先我们看看它的定义。

定义

图片分类任务我们已经熟悉了,就是算法遍历图片,判断其中的对象是不是汽车,这就是图片分类。这节课我们要学习构建神经网络的另一个问题,即定位分类问题。**这意味着,我们不仅要用算法判断图片中是不是一辆汽车,还要在图片中标记出它的位置,用边框或红色方框把汽车圈起来,这就是定位分类问题。**其中“定位”的意思是判断汽车在图片中的具体位置。
在这里插入图片描述

简单的定位分类

本周我们要研究的分类定位问题,通常只有一个较大的对象位于图片中间位置,我们要对它进行识别和定位。而在对象检测问题中,图片可以含有多个对象,甚至单张图片中会有多个不同分类的对象。因此,图片分类的思路可以帮助学习分类定位,而对象定位的思路又有助于学习对象检测,我们先从分类和定位开始讲起。
在这里插入图片描述
如果你正在构建汽车自动驾驶系统,那么对象可能包括以下几类:行人、汽车、摩托车和背景,这意味着图片中不含有前三种对象,也就是说图片中没有行人、汽车和摩托车,输出结果会是背景对象,这四个分类就是softmax函数可能输出的结果。

这就是标准的分类过程,如果你还想定位图片中汽车的位置,该怎么做呢?我们可以让神经网络多输出几个单元,输出一个边界框。具体说就是让神经网络再多输出4个数字,标记为bx,by,bh和bw,这四个数字是被检测对象的边界框的参数化表示。
在这里插入图片描述
我们先来约定本周课程将使用的符号表示,图片左上角的坐标为(0,0),右下角标记为(1,1)。要确定边界框的具体位置,需要指定红色方框的中心点,这个点表示为(bx,by),边界框的高度为bh,宽度为bw。**因此训练集不仅包含神经网络要预测的对象分类标签,还要包含表示边界框的这四个数字,接着采用监督学习算法,输出一个分类标签,还有四个参数值,从而给出检测对象的边框位置。**此例中,bx的理想值是0.5,因为它表示汽车位于图片水平方向的中间位置;by大约是0.7,表示汽车位于距离图片底部的位置;bh约为0.3,因为红色方框的高度是图片高度的0.3倍;bw约为0.4,红色方框的宽度是图片宽度的0.4倍。

目标标签y

下面我再具体讲讲如何为监督学习任务定义目标标签y。
在这里插入图片描述
请注意,这有四个分类,神经网络输出的是这四个数字和一个分类标签,或分类标签出现的概率。
它是一个向量,第一个组件pc表示是否含有对象,如果对象属于前三类(行人、汽车、摩托车),则pc=1,如果是背景,则图片中没有要检测的对象,则pc=0。我们可以这样理解pc,它表示被检测对象属于某一分类的概率,背景分类除外。

如果检测到对象,就输出被检测对象的边界框参数bx、by、bh和bw。最后,如果存在某个对象,那么pc=1,同时输出c1、c2和c3,表示该对象属于1-3类中的哪一类,是行人,汽车还是摩托车。鉴于我们所要处理的问题,我们假设图片中只含有一个对象,所以针对这个分类定位问题,图片最多只会出现其中一个对象。
在这里插入图片描述
这是图片中只有一个检测对象的情况,如果图片中没有检测对象呢?如果训练样本是这样一张图片呢?
种情况下pc=0,y的其它参数将变得毫无意义,这里我全部写成问号,表示“毫无意义”的参数,因为图片中不存在检测对象,所以不用考虑网络输出中边界框的大小,也不用考虑图片中的对象是属于c1、c2和c3中的哪一类。针对给定的被标记的训练样本,不论图片中是否含有定位对象,构建输入图片x和分类标签y的具体过程都是如此。这些数据最终定义了训练集。

损失函数

最后,我们介绍一下神经网络的损失函数,其参数为类别y和也y^网络输出,如果采用平方误差策略,则在这里插入图片描述,损失值等于每个元素相应差值的平方和。
在这里插入图片描述
如果图片中存在定位对象,那么y1=1,所以pc=y1,同样地,如果图片中存在定位对象pc=1,损失值就是不同元素的平方和。

另一种情况是y1=0,也就是pc=0,损失值是在这里插入图片描述,因为对于这种情况,我们不用考虑其它元素,只需要关注神经网络输出pc的准确度。

回顾一下,当时y1=1时,也就是这种情况(编号1),平方误差策略可以减去这8个元素预测值和实际输出结果之间差值的平方。如果y1=0, 矩阵中的后7个元素都不用考虑(编号2),只需要考虑神经网络评估y1(即pc)的准确度。

为了让大家了解对象定位的细节,这里我用平方误差简化了描述过程。实际应用中,你可以不对c1、c2、c3和softmax激活函数应用对数损失函数,并输出其中一个元素值,通常做法是对边界框坐标应用平方差或类似方法,对pc应用逻辑回归函数,甚至采用平方预测误差也是可以的

以上就是利用神经网络解决对象分类和定位问题的详细过程,结果证明,利用神经网络输出批量实数来识别图片中的对象是个非常有用的算法。下节课,我想和大家分享另一种思路,就是把神经网络输出的实数集作为一个回归任务,这个思想也被应用于计算机视觉的其它领域,也是非常有效的,所以下节课见。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值