目标检测学习笔记(一、入门篇)
本次学习中的相关代码基于Pytorch库实现。
1 目标检测基本概念
目标检测是计算机视觉领域中应用非常广泛的一个重要方向,根据个人兴趣开始相关知识学习,并撰写学习笔记,主要为巩固学习效果、督促自我进步,有不正确的地方请读者不吝指教。
1.1 概念区分
目标检测与图像分类的区别:
- 内容:目标检测首先需要识别出图片中target类别,在此基础上,需要精确定位目标的具体位置,并用矩形框标出;图像分类只需要判断输入图像中是否包含特定的target。
- 返回:目标检测的标签信息包括目标类别、目标位置、目标外框;图像分类的标签信息指目标类别。
1.2 边界框(bbox, bounding box)
目标检测返回的目标位置用矩形边界框的坐标表示,一般有两种表示方式(可相互转化):
- ( x m i n , y m i n , x m a x , y m a x ) (x_{min}, y_{min}, x_{max}, y_{max}) (xmin,ymin,xmax,ymax): ( x m i n , y m i n ) (x_{min},y_{min}) (xmin,ymin)为矩形框的左上角坐标, ( x m a x , y m a x ) (x_{max},y_{max}) (xmax,ymax)为矩形框的右下角坐标。
- ( c x , c y , w , h ) (c_x,c_y,w,h) (cx,cy,w,h): ( c x , c y ) (c_x,c_y) (cx,cy)为矩形框的中心坐标, ( w , h ) (w, h) (w,h)为矩形框的宽和高。
可通过如下公式进行相互转化:
{ c x = x m a x + x m i n 2 c y = y m a x + y m i n 2 w = x m a x − x m i n h = y m a x − y m i n \left\{ \begin{aligned} c_x = \frac{x_{max}+x_{min}}2\\ c_y = \frac{y_{max}+y_{min}}2\\ w=x_{max}-x_{min}\\ h=y_{max}-y_{min} \end{aligned} \right. ⎩⎪