YOLOv5 全面解析教程⑤:计算 mAP 用到的 Numpy 函数详解
作者 | Fengwen、BBuf
本文主要介绍在 One-YOLOv5 项目中计算 mAP 用到的一些 numpy 操作,这些 numpy 操作使用在 utils/metrics.py 中。本文是《YOLOv5全面解析教程④:目标检测模型精确度评估》的补充,希望能帮助到小伙伴们。
欢迎 Star、试用 One-YOLOv5:
https://github.com/Oneflow-Inc/one-yolov5
用到的 numpy 操作比如:np.cumsum()、np.interp()、np.maximum.accumulate()、np.trapz()等。接下来将在下面逐一介绍。
np.cumsum()
返回元素沿给定轴的累积和。
numpy.cumsum(a, axis=None, dtype=None, out=None)源码(https://github.com/numpy/numpy/blob/v1.23.0/numpy/core/fromnumeric.py#L2497-L2571)
参数
a:数组
axis: 轴索引,整型,若 a 为 n 维数组,则 axis 的取值范围为[0,n-1]
dtype: 返回结果的数据类型,若不指定,则默认与 a 一致 n
out: 数据类型为数组。用来放置结果的替代输出数组,它必须具有与输出结果具有相同的形状和数据缓冲区长度
返回
沿着指定轴的元素累加和所组成的数组,其形状应与输入数组 a 一致
更多信息请参阅读:
1.API_CN(https://www.osgeo.cn/numpy/reference/generated/numpy.cumsum.html?highlight=cumsum#numpy.cumsum)
2.API_EN(https://numpy.org/doc/stable/reference/generated/numpy.cumsum.html?highlight=cumsum#numpy.cumsum)
array([ 1, 3, 6, 10, 15, 21])
array([ 1., 3., 6., 10., 15., 21.])
array([[1, 2, 3], [5, 7, 9]])
array([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]])
array([[ 1, 3, 6], [ 4, 9, 15]])
np.interp()
参数
x: 数组待插入数据的横坐标
xp: 一维浮点数序列原始数据点的横坐标,如果 period 参数没有指定那么就必须是递增的 否则,在使用 xp = xp % period 正则化之后,xp 在内部进行排序
fp: 一维浮点数或复数序列 原始数据点的纵坐标,和 xp 序列等长.
left: 可选参数,类型为浮点数或复数(对应于 fp 值) 当 x < xp[0]时的插值返回值,默认为 fp[0].
right: 可选参数,类型为浮点数或复数(对应于 fp 值),当 x > xp[-1]时的插值返回值,默认为 fp[-1].
period: None 或者浮点数,可选参数横坐标的周期 此参数使得可以正确插入 angular x-coordinates. 如果该参数被设定,那么忽略 left 参数和 right 参数
返回
浮点数或复数(对应于 fp 值)或 ndarray. 插入数据的纵坐标,和 x 形状相同
注意!
在没有设置 period 参数时,默认要求 xp 参数是递增序列
np.maximum.accumulate
计算数组(或数组的特定轴)的累积最大值
d:
[[1 9 5]
[2 6 1]]
c:
[[1 9 9]
[2 6 6]]
np.trapz()
numpy.trapz(y, x=None, dx=1.0, axis=- 1) 使用复合梯形规则沿给定轴积分。
参考资料:
1. numpy API 文档 CN:https://www.osgeo.cn/numpy/dev/index.html
2. numpy API 文档 EN:https://numpy.org/doc/stable/reference/index.html
3. axis 的基本使用:https://www.jb51.net/article/242067.htm
其他人都在看
欢迎 Star、试用 OneFlow 最新版本:https://github.com/Oneflow-Inc/oneflow/
版权声明: 本文为 InfoQ 作者【OneFlow】的原创文章。
原文链接:【http://xie.infoq.cn/article/35bcc6c9074456065171add2c】。文章转载请联系作者。
评论