对象检测网络中的mAP到底怎么计算出来的

简介:

一:相关名词解释

mAP是英文mean Average Precision的全称,同时也是衡量深度学习中对象检测算法准确率的一个重要指标,mAP的计算涉及到很多专业的术语与解释,首先就来认识一下这些术语名词与解释:

IOU 英文全称是(Intersection-over-Union)并交比,
在对象检测中只有那些并交比大于0.5的才被认为是TP(True Position)即正确匹配与预测。关于IOU的形象解释如下图:

7e84cfc44e67d025806f935fe81df0bc7455db2b

对于正确标注数据框与预测数据框,交并比的图示如下:

cec07efa3c699d823031a225d6e50cfbca10e2e7

TP(Ture Position)
表示预测与真实标注框保持了一致,但是还没有被正确的检测出来的,简单直白的点说就是将要成功预测。

FP(False Position)
表示预测与真实不符合,假设真实标注框是CAR、FP表示你有多少预测是CAR但是实际对象不是CAR,所谓的假阳性。

FN(False Negatives)
表示有多少个真实标注框没有被检测到,以VOC数据集中CAR为例,表示有多少CAR对象没有被检测出来。

二:计算均值平均精度(mAP)与召回率(recall)

搞清楚上面的几个专业名词解释真实含义之后,计算mAP与recall就会相对比较容易理解。下面是给出来计算TP、FP、FN的伪代码如下:

iterate through entire list of predictions for all images
if IOU > threshold
    if object not detected yet
        TP++
    else
        FP++    // nms should reduce # of overlapping predictions
else 
    FP++

if no prediction made for an image
FN++

最终计算mAP与召回率公式如下:

mAP = TP/(TP+FP)
Recall = TP/(TP+FN)

mAP与recall的曲线随着训练时间的推移,都会不断的上升,预示着对象检测率不断提升、模型正在正常训练过程中,如果发现训练时候mAP曲线没有上升或者有值一直很小,就说明模型训练出现了问题,需要仔细检查模型构造与数据。同时mAP指标也是衡量一个对象检测模型好坏的重要指标数据,在tensorflow常用的对象检测模型基于COCO数据集训练得到mAP指标对比列表如下:

3e06cd73f1b1d2c49399d92041fe1a9b8b7d8646




原文发布时间为:2018-10-12
本文作者:gloomyfish
本文来自云栖社区合作伙伴“OpenCV学堂”,了解相关信息可以关注“OpenCV学堂”。
相关文章
|
24天前
|
机器学习/深度学习 计算机视觉 网络架构
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目DWRSeg是一种高效的实时语义分割网络,通过将多尺度特征提取分为区域残差化和语义残差化两步,提高了特征提取效率。它引入了Dilation-wise Residual (DWR) 和 Simple Inverted Residual (SIR) 模块,优化了不同网络阶段的感受野。在Cityscapes和CamVid数据集上的实验表明,DWRSeg在准确性和推理速度之间取得了最佳平衡,达到了72.7%的mIoU,每秒319.5帧。代码和模型已公开。
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
|
12天前
|
安全 Linux 网络安全
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息。本文分三部分介绍 nmap:基本原理、使用方法及技巧、实际应用及案例分析。通过学习 nmap,您可以更好地了解网络拓扑和安全状况,提升网络安全管理和渗透测试能力。
56 5
|
28天前
|
机器学习/深度学习 搜索推荐 安全
深度学习之社交网络中的社区检测
在社交网络分析中,社区检测是一项核心任务,旨在将网络中的节点(用户)划分为具有高内部连接密度且相对独立的子群。基于深度学习的社区检测方法,通过捕获复杂的网络结构信息和节点特征,在传统方法基础上实现了更准确、更具鲁棒性的社区划分。
48 7
|
1月前
|
存储 缓存 算法
|
2月前
ES6中map对象的使用,确实比Object好使哈
ES6中Map对象的使用优势,包括任意类型作为键、直接获取大小、增删查改操作等。Map的键可以是函数、对象、NaN等,支持forEach循环和for...of循环。
32 1
ES6中map对象的使用,确实比Object好使哈
|
1月前
|
存储
|
24天前
|
机器学习/深度学习 计算机视觉 网络架构
【YOLO11改进 - C3k2融合】C3k2融合DWRSeg二次创新C3k2_DWRSeg:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
【YOLO11改进 - C3k2融合】C3k2融合DWRSDWRSeg是一种高效的实时语义分割网络,通过将多尺度特征提取方法分解为区域残差化和语义残差化两步,提高了多尺度信息获取的效率。网络设计了Dilation-wise Residual (DWR) 和 Simple Inverted Residual (SIR) 模块,分别用于高阶段和低阶段,以充分利用不同感受野的特征图。实验结果表明,DWRSeg在Cityscapes和CamVid数据集上表现出色,以每秒319.5帧的速度在NVIDIA GeForce GTX 1080 Ti上达到72.7%的mIoU,超越了现有方法。代码和模型已公开。
|
2月前
|
机器学习/深度学习 安全 网络安全
利用机器学习优化网络安全威胁检测
【9月更文挑战第20天】在数字时代,网络安全成为企业和个人面临的重大挑战。传统的安全措施往往无法有效应对日益复杂的网络攻击手段。本文将探讨如何通过机器学习技术来提升威胁检测的效率和准确性,旨在为读者提供一种创新的视角,以理解和实施机器学习在网络安全中的应用,从而更好地保护数据和系统免受侵害。
|
2月前
|
机器学习/深度学习 数据采集 网络安全
使用Python实现深度学习模型:智能网络安全威胁检测
使用Python实现深度学习模型:智能网络安全威胁检测
232 5
|
1月前
|
运维 安全 网络协议
Python 网络编程:端口检测与IP解析
本文介绍了使用Python进行网络编程的两个重要技能:检查端口状态和根据IP地址解析主机名。通过`socket`库实现端口扫描和主机名解析的功能,并提供了详细的示例代码。文章最后还展示了如何整合这两部分代码,实现一个简单的命令行端口扫描器,适用于网络故障排查和安全审计。
下一篇
无影云桌面