目标定位(Object localization)

来源:Coursera吴恩达深度学习课程

在构建目标检测之前,建议先了解一下目标定位(object localization)

在上图的这个例子中,图片分类(image classification)不仅要判断图片中是不是一辆汽车,还要在图片中标记出它的位置,用边框把汽车圈起来,这就是定位分类问题(classification with localization problem)。其中“定位”(localization)的意思是判断汽车在图片中的具体位置。比如,在自动驾驶程序(autonomous driving application)中,程序不但要检测其它车辆,还要检测其它对象,如行人(pedestrians)、摩托车(motorcycles)等。

这里研究的分类定位问题,通常只有一个较大的对象位于图片中间位置,对它进行识别和定位。在实际的目标检测问题中,图片可以含有多个对象(multiple objects),甚至单张图片中会有多个不同分类的对象。因此,图片分类(image classification)的思路可以帮助学习分类定位(classification with localization),而目标定位的思路又有助于学习目标检测(detection),现在先看分类和定位(classification with localization)。

如上图是一个图片分类问题,输入一张图片经过多层卷积神经网络,它会输出一个特征向量,并反馈给softmax单元来预测图片类型。在构建汽车自动驾驶系统时,识别的对象可能包括以下几类:行人(pedestrian)、汽车(car)、摩托车(motorcycle)和背景(background,这意味着图片中没有行人、汽车和摩托车),这四个分类就是softmax函数可能输出的结果。

这就是标准的分类过程(classification pipeline),如果你还想定位图片中汽车的位置,可以让让神经网络再多输出4个数字,标记为b_x,b_y,b_h和b_w,这四个数字是被检测对象的边界框的参数化表示(parameterize),输出一个边界框。

约定一下本周课程将使用的符号表示,输入的原始图片左上角的坐标为(0,0),右下角标记为(1,1)。指定红色方框的中心点(midpoint),坐标为(b_x,b_y)边界框的高度为b_h宽度为b_h。因此训练集(train set)不仅包含神经网络要预测的对象分类标签,还要包含表示边界框的这四个数字,接着采用监督学习算法,输出一个分类标签(class label),还有四个参数(four parameters),从而给出检测对象的边框位置。在这个例子中,b_x的理想值是0.5,因为它表示汽车位于图片水平方向的中间位置;b_y大约是0.7,表示汽车位于距离图片底部十分之三的位置;b_h约为0.3,因为红色方框的高度是图片高度的0.3倍;b_w约为0.4,红色方框的宽度是图片宽度的0.4倍。

下面具体看如何为监督学习任务定义目标标签y,如下图:

这有四个分类,神经网络输出的是这四个数字和一个分类标签,或分类标签出现的概率。目标标签y的定义如下

这是一个向量,第一个p_c表示是否含有对象,在这里如果对象属于前三类(行人(pedestrian)、汽车(car)、摩托车(motorcycle)),则p_c=1,如果是背景(background),则图片中没有要检测的对象,则p_c=0。我们可以认为它表示被检测对象属于某一类的概率,背景分类除外。如果检测到对象,输出被检测对象的边界框参数b_x,b_y,b_h和b_w,同时输出c_1、c_2和c_3,表示该对象属于1-3类中的哪一类(行人、汽车或者摩托车)

为简化分析,在这里假设图片中只有一个对象,在这个分类定位问题中,图片最多只会出现其中一个对象。

上图中给出了两个例子的标签y的表示:只有一辆车(紫色框)和背景图像(绿色框,当p_c=0时,y的其它参数变得毫无意义,这里都写成问号,表示“毫无意义”的参数(so this is a don’t care))。针对给定的被标记的训练样本,不论图片中是否含有定位对象,构建输入图片x和分类标签y的具体过程都是如此。这些数据最终定义了训练集(define your training set)。

最后看一下神经网络的损失函数(loss function),参数为网络输出y帽和类别y,采用平方误差策略(squared error),则损失值等于每个元素相应差值的平方和,公式如下:

分析一下,当y_1=1时,平方误差策略为这8个元素预测值和实际输出结果之间差值的平方。当y_1=0时,y中的后7个元素都不用考虑,只需要考虑神经网络评估yy_1(即p_c)的准确度。

注意,这里用平方误差简化了描述过程,实际应用中,通常做法是对边界框坐标应用平方差或类似方法,对p_c应用逻辑回归函数,甚至采用平方预测误差也是可以的。

以上就是利用神经网络解决对象分类和定位问题的详细过程。

说明:记录学习笔记,如果错误欢迎指正!转载请联系我。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值