首先给大家推荐一下Datawhale的开源学习项目:动手学CV-PyTorch版,这真的是一个绝佳的学习CV的好资料,目前为止已经上线了图像分类和目标检测两个单元的知识,私以为编程学习最重要的还是能动手实现才是最高效的,再次感谢作者,让我能以很快的速度入门目标检测。
什么是目标检测
什么是目标检测?就是给一幅图像,让算法把图像中包含的目标所在位置及其标签检测出来。因此,重点就是:输入一张图像—目标检测算法—→目标位置+目标标签。和分类任务最大的不同就是目标检测能识别一张图像上的多个目标,还能输出其位置信息。
目标位置如何表示
一图胜千言,这里直接给出DataWhale教程中给的图
目标检测中一般会用到两种目标位置的表示方式,第一种就是用边界框的左上角和右下角的两个点的坐标来表示,第二种是用边界框中心点坐标以及边界框的长宽来表示。第一种很好理解,至于为啥还需要第二种,这是因为目标检测网络中的目标位置计算是从预先定义的位置到groundtruth的回归,这样定义会更有利于回归计算。
基本概念之IoU
IoU,即“交并比”,即预测框和实际groundtruth框的交集与并集面积之比。
IoU用来计算预测的边界框和实际的边界框之间的重合度,越大的话重合度越高,比如会设定一个阈值为0.5,大于这个阈值则认为当前预测边界框里包含的内容就和实际边界框中的内容是同一个,小于这个阈值则不是
数据集
目标检测有很多开源的数据集,最著名的应该就是PASCAL VOC和MS COCO了,是它们俩掀起了目标检测领域的血雨腥风,也是它们大大推动了技术的进步,在这里致敬一下辛苦标注图像的前辈们,具体的介绍没有什么技术含量,大家详见官网就好~
参考
- https://github.com/datawhalechina/dive-into-cv-pytorch