[Paddle2.0学习之第三步]目标检测(上)
目标检测的主要目的是让计算机可以自动识别图片或者视频帧中所有目标的类别,并在该目标周围绘制边界框,标示出每个目标的位置
相比上一章节的图像分类,目标检测针对的是图中物体。
白话:图像分类是看图片属于什么类别,目标检测是看图片有什么东西,那个东西在哪里
边界框(bounding box)
检测任务需要同时预测物体的类别和位置,因此需要引入一些跟位置相关的概念。
通常使用边界框(bounding box,bbox)来表示物体的位置,边界框是正好能包含物体的矩形框,如上面的右图所示,图中3只斑马分别对应3个边界框。
通常有两种格式来表示边界框的位置:
- x1y1x2y2 即
每个框的左上角和右下角坐标。 - xywh 即
每个框的中心点和框的长和宽。
ps:图片坐标的原点在左上角,x轴向右为正方向,y轴向下为正方向。
锚框(Anchor box)
锚框与物体边界框不同,是由人们假想出来的一种框。
先设定好锚框的大小和形状,再以图像上某一个点为中心画出矩形框。
在下图中,以像素点[300, 500]为中心可以使用下面的程序生成3个框,如图中蓝色框所示,其中锚框A1跟人像区域非常接近。
在目标检测任务中,通常会以某种规则在图片上生成一系列锚框,将这些锚框当成可能的候选区域。模型对这些候选区域是否包含物体进行预测,如果包含目标物体,则还需要进一步预测出物体所属的类别。还有更为重要的一点是,由于锚框位置是固定的,它不大可能刚好跟物体边界框重合,所以需要在锚框的基础上进行微调以形成能准确描述物体位置的预测框,模型需要预测出微调的幅度。在训练过程中,模型通过学习不断的调整参数,最终能学会如何判别出锚框所代表的候选区域是否包含物体,如果包含物体的话,物体属于哪个类别,以及物体边界框相对于锚框位置需要调整的幅度。
不同的模型往往有着不同的生成锚框的方式。
交并比 Iou
这个比值越大越好
为了直观的展示交并比的大小跟重合程度之间的关系,下图示意了不同交并比下两个框之间的相对位置关系,从 IoU = 0.95 到 IoU = 0.