目标检测损失函数的选择在目标检测问题建模中至关重要。通常,目标检测需要两个损失函数,一个用于对象分类,另一个用于边界框回归(BBR)。本文将重点介绍 IoU 损失函数(GIoU 损失、DIoU 损失和 CIoU 损失、ProbIoU)。首先来了解一下什么是最原始的IoU定义
就是指非物体标签的部分(可以直接理解为背景),positive$就是指有标签的部分。下图显示了四个部分的区别:
上期我们一起学习了全卷积神经网络FCN,今天我们看下目标检测中的评价指标都有哪些?
所以本文针对目标检测中的NMS作进一步研究,基本的NMS方法,利用得分高的边框抑制得分低且重叠程度高的边框。NMS方法虽然简单有效,但在更高的目标检测需求下,也存在如下缺点:
在整理评价指标之前,先补充一下预备知识。 我们在进行语义分割结果评价的时候,常常将预测出来的结果分为四个部分:true positive,false positive,true negative,false negative,其中negative就是指非物体标签的部分(可以直接理解为背景),那么显而易见的,positive就是指有标签的部分。下图显示了四个部分的区别:
Ci = min(1, a * (Age / t) * (Ai / Aavg))
2103.16562:Boundary IoU: Improving Object-Centric Image Segmentation Evaluation
intersect over union,中文:交并比。指目标预测框和真实框的交集和并集的比例。
【导读】前面我们详细介绍了目标检测领域常用的一些评价指标。本文我们来讨论一下在目标检测算法中必须掌握的两个基本概念:边框回归和NMS(非极大值抑制)。
好在,文章质量都还不错,虽然硬核了点,但从各方面的反馈来看,还是有不少朋友喜欢看的。
在上一篇博文:【计算机视觉——RCNN目标检测系列】一、选择性搜索详解中我们重点介绍了RCNN和Fast RCNN中一个重要的模块——选择性搜索算法,该算法主要用于获取图像中大量的候选目标框。为了之后更加顺利理解RCNN模型,在这篇博文中我们将主要介绍RCNN及其改进版本——Fast RCNN和Faster RCNN中一个重要模块——边界框回归(Bounding-Box Regression)。
Github地址: https://github.com/ultralytics/yolov3
平均精度(Average Precision,mAP)是一种常用的用于评估目标检测模型性能的指标。在目标检测任务中,模型需要识别图像中的不同目标,并返回它们的边界框(bounding box)和类别。mAP用于综合考虑模型在不同类别上的准确度和召回率。
语义分割是像素级别的分类,其常用评价指标: 像素准确率(Pixel Accuracy,PA)、 类别像素准确率(Class Pixel Accuray,CPA)、 类别平均像素准确率(Mean Pixel Accuracy,MPA)、 交并比(Intersection over Union,IoU)、 平均交并比(Mean Intersection over Union,MIoU), 其计算都是建立在混淆矩阵(Confusion Matrix)的基础上。因此,了解基本的混淆矩阵知识对理解上述5个常用评价指标是很有益处的!
CornerNet作为anchor-free对象检测网络,克服了one-stage对象检测依赖anchor boxes的缺点,但是CornerNet本身在对象检测方面的精度仍然有限,本文作者认真分析了CornerNet网络的缺陷,提出了新的改进方法。CornerNet网络依赖关键点对来定位对象的bounding box然而这种方法常常会导致错误定位,CenterNet提出了基于三联关键点定位改进,通过自定义两个关键模块-级联Corner Pooling 与 Center Pooling从而提升位置信息识别能力,在MS-COCO数据集上AP达到了47%超过所有其它的one-stage对象检测模型,同时拥有更快的推理速度。
对于一般的目标检测 loss 计算,通常分为几部分。比如 yolo 系列分为 objectness(是否包含目标)、classification(目标分类)、boundingbox-regression(目标位置)。其中,每个样本都需要计算 objectness 得分的损失,正样本需要计算 classification 和 bbox-regression 损失,其中每种损失又有不同的计算方式和组合方法,比如 bbox-regression 有 D_IoU、G_IoU、C_IoU 等等,组合方法有 Focal Loss 等等。但是这些不是我们这篇文章关注的重点。
看过前几天【CNN调参】目标检测算法优化技巧的同学应该知道,ASFF的作者在构建Stronger YOLOV3 BaseLine的时候就用到了Guided Anchoring这种Trick。这篇论文题目为《Region Proposal by Guided Anchoring》,中了CVPR 2019。这篇论文提出了一种新的Anchor生成方法Guided Anchoring,不同于以前的固定Anchor或者根据数据进行聚类Anchor的做法,通过Guided Anchoring可以预测Anchor的形状和位置得到稀疏的Anchor,另外作者提出了Feature Adaption模块使得Anchor和特征更加匹配。论文作者也在知乎上清晰的介绍了这项工作,感兴趣可以去看看作者是如何思考的。地址为:https://zhuanlan.zhihu.com/p/55854246。
在前面的秘籍一中,我们主要关注了模型加速之轻量化网络,对目标检测模型的实时性难点进行了攻克。但是要想获得较好的检测性能,检测算法的细节处理也极为重要。
在上一篇文章:【计算机视觉——RCNN目标检测系列】二、边界框回归(Bounding-Box Regression)中我们主要讲解了R-CNN中边界框回归,接下来我们在这篇文章我们讲解R-CNN中另外一个比较种重要的模块——IoU与非极大抑制。
传统的NMS (Non-Maximum Supression)去重过程如下:
论文:A Dual Weighting Label Assignment Scheme for Object Detection
不同的问题和不同的数据集都会有不同的模型评价指标,比如分类问题,数据集类别平衡的情况下可以使用准确率作为评价指标,但是现实中的数据集几乎都是类别不平衡的,所以一般都是采用 AP 作为评价指标,分别计算每个类别的 AP,再计算mAP。
本文首发于 【集智书童】,白名单账号转载请自觉植入本公众号名片并注明来源,非白名单账号请先申请权限,违者必究。
YOLO系列应该是目标领域知名度最高的算法,其凭借出色的实时检测性能在不同的领域均有广泛应用。 目前,YOLO共有6个版本,YOLOv1-v5和YOLOX,除了YOLOv5外,其它都有相应的论文,5篇论文我已上传到资源中,可自行下载:https://www.aliyundrive.com/s/ofcnrxjzsFE 工程上使用最多的版本是YOLOv3和YOLOv5,Pytorch版本均由ultralytics公司开发,YOLOv5仍在进行维护,截至目前,已经更新到YOLOv5-6.1版本。 项目地址:https://github.com/ultralytics/yolov5 在上篇博文中,详细记录了如何用YOLOv5来跑通VOC2007数据集,本篇博文旨在对YOLO系列算法的演化进行简单梳理,更多详细的内容可以看文末的参考资料。
SSD网络是继YOLO之后的one-stage目标检测网络,是为了改善YOLO网络设置的anchor设计的太过于粗糙而提出的,其设计思想主要是多尺度多长宽比的密集锚点设计和特征金字塔,下面我将详细的解析SSD网络结构
模型采用动态K-max pooling取出得分top-k的特征值,能处理不同长度的句子,并在句子中归纳出一个特征图,可以捕捉短和长期的关系。并且该模型不依赖解析树,适用于任何语言基。
这篇文章鸽了这么久还是动笔开始写了,YOLO 的论文在这之前一共读了两遍,实际中也有要用到的地方,感觉有些东西还是记一下比较好,免得下次再读的时候给忘了,我写这篇的时候又将这篇论文看了一遍,特此记下一些需要注意的东西
YOLOv5-6.0版本的Backbone主要分为Conv模块、CSPDarkNet53和SPPF模块。
交并比(Intersection-over-Union,IoU),目标检测中使用的一个概念,是产生的候选框(candidate bound)与原标记框(ground truth bound)的交叠率,即它们的交集与并集的比值。最理想情况是完全重叠,即比值为1。
01 localization accuracy 更准确的bounding box,提高IOU 02 目标检测的发展 1、传统的目标检测(滑动窗口的框架) (1).滑动窗口 (2).提取特征(SIF
由于目标检测(Object Detection)主要需要解决“是什么?和 在哪里?”这两大问题,即对给定图像中的所有存在的目标,每个目标都要给出类别信息(是什么?)和位置信息(在哪里?)。这个位置信息通常用一个外接矩形框(俗称bounding box)来表示。因此,目标检测的性能度量方法要比图像分类任务复杂得多。本文我们来为大家介绍一下目标检测算法里常用的一些评价指标。
《YOLO9000:Better,Faster,Stronger》 论文:https://arxiv.org/abs/1612.08242
coco2017是当前最主流的多人姿态估计benchmark,官网的Evaluate已对coco的评价标准做了详细的解释,本文只对其二次整理。
本篇博文将简单总结YOLOv6的原理,并使用YOLOv6对VisDrone数据集进行训练。
FCOS是一种基于全卷积的单阶段目标检测算法,并且是一种Anchor box free的算法。其实现了无Anchor,无Proposal,并且提出了Center-ness的思想,极大的提升了Anchor-Free目标检测算法的性能。
当然,避免超时报错,亦可提前下载:https://github.com/ultralytics/yolov5/releases/tag/v5.0,之后将模型文件放置到最外层文件夹即可。
这是YOLO系列的第一篇,文章发表在CVPR2016上,论文链接:YOLOV1. 摘要指出了文章的主要创新之处:把分类问题转换为回归问题,使用一个卷积神经网络就可以直接预测物体的bounding box和类别概率。 算法的优点有很多:
前两天介绍了一下Contrastive Loss,Triplet Loss以及Center Loss。今天正好是周六,时间充分一点我就来大概盘点一下语义分割的常见Loss,希望能为大家训练语义分割网络的时候提供一些关于Loss方面的知识。此文只为抛转引玉,一些Loss笔者暂时也没有进行试验,之后做了实验有了实验结果会继续更新。
又有一周没更新了,不知道进入研究生阶段写博客时间为什么这么上。上周四接到自己第一本书的三审意见需要进行修改。本想着慢慢修改的,结果上周五晚上接到通知北京印刷厂为迎国庆9月开始停业直至10月下旬。没办法必须为新书修改让路,像赶在8月末上式,虽然不知道能不能在8月末把书印出来。这也导致本应该周末整理完Fast R-CNN的笔记有拖了一周。
鸽了将近有一个月的时间没有更新东西,真的不是因为我懒,主要在忙一些工作上的事情,然后就是被安装caffe环境折磨的死去活来。我本来用的上mba来搭caffe环境的,一直在报一个框架问题,索性一怒之下换了mbp,下面就将我在SSD学习过程中遇到的问题和大家一起分享一下。
之前简单介绍过目标检测算法的一些评价标准,地址为目标检测算法之评价标准和常见数据集盘点。然而这篇文章仅仅只是从概念性的角度来阐述了常见的评价标准如Acc,Precision,Recall,AP等。并没有从源码的角度来分析具体的计算过程,这一篇推文的目的就是结合代码再次详细的解释目标检测算法中的常见评价标准如Precision,Recall,AP,mAP的具体计算过程。
RCNN(Region with CNN features)[1]算法发表在2014年CVPR的经典paper:《Rich feature hierarchies for Accurate Object Detection and Segmentation》中,这篇文章是目标检测领域的里程碑式的论文,首次提出使用卷积神经网络(Convolutional Neural Networks, CNNs)处理目标检测(Object Detetion)的问题。
关于YOLOv3可以看一下我前面的推文讲解:YOLOV3点这里 。前面提到过,YOLOv3在实时性和精确性都是做的比较好的,并在工业界被广泛应用。当前的目标检测算法,大都在网络结构,Anchor,IOU上做了大量的文章,而在检测框的可靠性上做文章的却非常少。所以,Gaussian YOLOv3它来了。论文地址为:点这里 。并且作者也开放了源码,地址为:点这里。所以本文就带大家来学习一下这个算法。
yolov1 直接采用 regression(回归)的方法进行坐标框的检测以及分类,使用一个end-to-end的简单网络,直接实现坐标回归与分类。Yolo的CNN网络将输入的\(448*448\)图片分割成 S∗S 网格,然后每个单元格负责去检测那些中心点落在该格子内的目标,如图下图所示,可以看到狗这个目标的中心落在左下角一个单元格内,那么该单元格负责预测这个狗。每个单元格会预测 B 个边界框(bounding box)以及边界框的置信度(confidence score)。
以监控摄像头数据集的人体检测模型为例,说明了如何通过对数据的理解来逐步提升模型的效果,不对模型做任何改动,将mAP从0.46提升到了0.79。
论文: PIoU Loss: Towards Accurate Oriented Object Detection in Complex Environments
论文:Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression
近年来,自动驾驶汽车不断走进我们的视野中,面向自动驾驶的目标检测算法也成为了国内外的研究热点之一。安全可靠的自动驾驶汽车依赖于对周围环境的准确感知,以便及时做出正确的决策。目标检测是自动驾驶系统的关键任务之一,其主要的功能是检测前方道路上出现的目标的空间位置和目标类别。
本文对发表于 AAAI 2020 的论文《Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression》进行解读。
领取专属 10元无门槛券
手把手带您无忧上云