目标检测小知识

目录

目标检测概念

目标检测算法两类

Two stage 目标检测算法

One stage 目标检测算法

模型评价指标

目标检测常用数据集

目标检测常用标注工具

目标检测工具和框架

目标检测概念

目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。

除了图像分类之外,目标检测要解决的核心问题是:

1.目标可能出现在图像的任何位置。

2.目标有各种不同的大小。 

3.目标可能有各种不同的形状。

目标检测算法两类

Two stage 目标检测算法

先进行区域生成(region proposal,RP),再通过卷积神经网络进行样本分类;

任务:特征提取——>生成RP——>分类/定位回归

常见算法:R-CNN、SPP-Net、Fast R-CNN、R-FCN等

One stage 目标检测算法

不用RP,直接在网络中提取特征来预测物体分类和位置。

任务:特征提取——>分类/定位回归

常见的算法:OverFeat、YOLOV1、YOLOV2、YOLOV3、SSD和RetinalNet等

模型评价指标

1、TP:标注框重叠率很高

2、FP:重叠率低(无重叠)和重复检测框

3、precision和recall

4、mAP、IoU和NMS

mAP(mean Average Precision)是目标检测中常用的评价指标,是对Precision-Recall曲线(精确率-召回率曲线)下面积(Area under the curve, auc)的平均值。它可以评价一个目标检测算法在多个类别上的检测效果,并且可以综合考虑Precision和Recall两个指标,一般来说,mAP越高,模型检测效果越好。

IoU(Intersection over Union,交并比)是目标检测中常用的一个重要度量,用于衡量模型检测框预测与真实框之间的重叠程度。简单地说,IoU就是两个框的交集面积除以它们的并集面积,如果IoU值越大表示两个框的重叠面积越大,也就意味着模型的检测效果越好。

NMS(Non-Maximum Suppression,非极大值抑制)是目标检测中的一种去重技术,对于同一个物体可能会被多个框框住的情况,可以使用NMS实现去重。简单来说,就是对于多个框,选出最大的那个(即包含了该物体的最小框),并将其它与其IoU值高于一定阈值的框去除,以减少重复检测造成的误差。

目标检测常用数据集

COCO数据集([1][2)是由微软公司提供的一个大规模图像识别、目标检测、分割数据集,包含80个对象类别和超过33万张图像。其中,包括常见的动物、交通工具、日常用品等多种物体,并且对每个物体在图像中的位置和大小都进行了标注。其特点是不仅有单个物体的标注,还有物体之间遮挡的情况和物体的实例分割标注,且需要同时输出物体类别、边界框和掩模等信息,因此非常适合训练一些高级的深度学习模型,如Mask R-CNN。

COCO的检测任务共含有80个类,在2014年发布的数据规模分train/val/test分别为80k/40k/40k, 学术界较为通用的划分是使用train和35k的val子集作为训练集(trainval35k),使用剩余的val作 为测试集(minival),同时向官方的evaluation server提交结果(test-dev)。除此之外,COCO 官方也保留⼀部分test数据作为比赛的评测集。

VOC数据集([3][4)则是由牛津大学的计算机视觉小组所提供的数据集,包括20个不同的物体类别和超过1万张图像。与COCO数据集不同的是,VOC数据集是一个相对较小的数据集,但其特点是标注信息简单明了,适合用于训练一些传统的机器学习算法和一些较为简单的深度学习模型,如Faster R-CNN。

VOC数据集是⽬标检测经常用的⼀个数据集,自2005年起每年举办⼀次比赛,最开始只有4类, 到2007年扩充为20个类,共有两个常用的版本:2007和2012。学术界常用5k的train/val 2007和16k的train/val 2012作为训练集,test 2007作为测试集,⽤10k的train/val 2007+test 2007和16k的 train/val 2012作为训练集,test2012作为测试集,分别汇报结果。

目标检测常用标注工具

labelme:

labelme 是⼀款开源的图像/视频标注工具,标签可用于目标标检测、分割和分类。灵感是来⾃于 MIT 开源的⼀款标注工具 LabelMe。

labelme 具有的特点是:

  • 支持图像的标注的组件有:矩形框,多边形,圆,线,点(rectangle, polygons, circle, lines, points)
  • 支持视频标注 GUI 自定义
  • 支持导出 VOC 格式用于 semantic/instance segmentation
  • 支出导出 COCO 格式用于 instance segmentation

目标检测工具和框架

mmdetection是一个基于PyTorch实现的开源目标检测框架,由香港中文大学的OpenMMLab团队开发。该框架支持多种目标检测算法,包括Faster R-CNN、Mask R-CNN、Cascade R-CNN、RetinaNet、SSD、FCOS等,并提供了各种常用的骨干网络(backbone)、头部(head)和各种损失函数(loss)以及预处理方法等模块可供使用。

mmdetection的设计非常灵活,可以通过简单的配置文件即可进行训练、测试和部署不同类型的目标检测模型。同时,该框架提供了各种辅助工具和API,可用于数据集的准备、模型优化、模型剪枝以及模型压缩等方面的工作。

mmdetection的代码在GitHub上开源,社区贡献者数量众多,其性能在多个公共数据集上均取得了当时最先进的结果。因此,mmdetection是学术界和工业界广泛使用的目标检测框架之一。

参考链接:

[1]COCO官网

[2]COCO数据集与COCO-WholeBody详解

3]VOC数据集下载与使用详解

[4]The PASCAL VOC project

[5]目标检测指标—mAP

[6]目标检测指标: IoU和mAP

[7]目标检测中IoU和NMS的理解与应用

[8] mmdetection官网:GitHub - open-mmlab/mmdetection: OpenMMLab Detection Toolbox and Benchmark


 

[9] 一文概述mmdetection框架:你似乎来到了没有知识存在的荒原 - 知乎

猜你喜欢

转载自blog.csdn.net/qq_31807039/article/details/130553810