<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

YOLOv5全面解析教程:計算mAP用到的numpy函數詳解

jf_pmFSk4VX ? 來源:GiantPandaCV ? 作者:GiantPandaCV ? 2022-11-21 15:27 ? 次閱讀

代碼倉庫地址:https://github.com/Oneflow-Inc/one-yolov5歡迎star one-yolov5項目 獲取最新的動態。如果您有問題,歡迎在倉庫給我們提出寶貴的意見。如果對您有幫助,歡迎來給我Star呀~

引言

本文主要介紹在 one-yolov5 項目中 計算mAP用到的一些numpy操作,這些numpy操作使用在 utils/metrics.py (https://github.com/Oneflow-Inc/one-yolov5/blob/734609fca9d844ac48749b132fb0a5777df34167/utils/metrics.py)中。這篇文章是《YOLOv5全面解析教程》四,目標檢測模型精確度評估 的補充,希望能幫助到小伙伴們。

用到的 numpy 操作比如:np.cumsum()、np.interp()、np.maximum.accumulate()、np.trapz()等。接下來將在下面逐一介紹。

importnumpyasnp

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一致

np.cumsum(a)#計算累積和的軸。默認(無)是在展平的數組上計算cumsum。
array([ 1,  3,  6, 10, 15, 21])
a=np.array([[1,2,3],[4,5,6]])
np.cumsum(a,dtype=float)#指定輸出的特定的類型
array([ 1.,  3.,  6., 10., 15., 21.])
np.cumsum(a,axis=0)#3列中每一列的行總和
array([[1, 2, 3],
       [5, 7, 9]])
x=np.ones((3,4),dtype=int)
np.cumsum(x,axis=0)
array([[1, 1, 1, 1],
       [2, 2, 2, 2],
       [3, 3, 3, 3]])
np.cumsum(a,axis=1)#2行中每行的列總和
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參數是遞增序列

#插入一個值
importnumpyasnp
importmatplotlib.pyplotasplt
x=2.5
xp=[1,2,3]
fp=[3,2,0]
y=np.interp(x,xp,fp)#1.0
plt.plot(xp,fp,'-o')
plt.plot(x,y,'x')#畫插值
plt.show()
70f3fac8-6759-11ed-8abf-dac502259ad0.png圖片
#插入一個序列
importnumpyasnp
importmatplotlib.pyplotasplt

x=[0,1,1.5,2.72,3.14]
xp=[1,2,3]
fp=[3,2,0]
y=np.interp(x,xp,fp)#array([3.,3.,2.5,0.56,0.])
plt.plot(xp,fp,'-o')
plt.plot(x,y,'x')
plt.show()

71154110-6759-11ed-8abf-dac502259ad0.png圖片

np.maximum.accumulate

計算數組(或數組的特定軸)的累積最大值

importnumpyasnp
d=np.random.randint(low=1,high=10,size=(2,3))
print("d:
",d)
c=np.maximum.accumulate(d,axis=1)
print("c:
",c)
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)使用復合梯形規則沿給定軸積分。

importmatplotlib.pyplotasplt
importnumpyasnp
y=[1,2,3];x=[i+1foriinrange(len(y))]
print(np.trapz(x))
plt.fill_between(x,y)
plt.show()#(1+3)*(3-1)/2=4
4.0
713d4fa2-6759-11ed-8abf-dac502259ad0.png圖片
importmatplotlib.pyplotasplt
importnumpyasnp
y=[1,2,3]
x=[4,6,8]
print(np.trapz(y,x))
plt.fill_between(x,y)
plt.show()#(3+1)*(8-4)/2=8
8.0
7155da4a-6759-11ed-8abf-dac502259ad0.png圖片

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4117

    瀏覽量

    61507
  • MAP
    MAP
    +關注

    關注

    0

    文章

    47

    瀏覽量

    15072

原文標題:《YOLOv5全面解析教程》五,計算mAP用到的numpy函數詳解

文章出處:【微信號:GiantPandaCV,微信公眾號:GiantPandaCV】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Yolov5算法解讀

    yolov5于2020年由glenn-jocher首次提出,直至今日yolov5仍然在不斷進行升級迭代。 Yolov5YOLOv5s、YOLOv
    的頭像 發表于 05-17 16:38 ?5695次閱讀
    <b class='flag-5'>Yolov5</b>算法解讀

    YOLOv5】LabVIEW+TensorRT的yolov5部署實戰(含源碼)

    今天主要和大家分享在LabVIEW中使用純TensoRT工具包快速部署并實現yolov5的物體識別
    的頭像 發表于 08-21 22:20 ?938次閱讀
    【<b class='flag-5'>YOLOv5</b>】LabVIEW+TensorRT的<b class='flag-5'>yolov5</b>部署實戰(含源碼)

    龍哥手把手教你學視覺-深度學習YOLOV5

    可以實現理想的檢測效果。在本套視頻,有別于常見的深度學習教程以理論為主進行全面講解,以沒有任何深度學習理論基礎的學員學習角度,以實際應用為目標,講解如何設計一個完整的yolov5工業外觀檢測,手把手教學
    發表于 09-03 09:39

    怎樣使用PyTorch Hub去加載YOLOv5模型

    在Python>=3.7.0環境中安裝requirements.txt,包括PyTorch>=1.7。模型和數據集從最新的 YOLOv5版本自動下載。簡單示例此示例從
    發表于 07-22 16:02

    YOLOv5網絡結構解析

    1、YOLOv5 網絡結構解析  YOLOv5針對不同大?。╪, s, m, l, x)的網絡整體架構都是一樣的,只不過會在每個子模塊中采用不同的深度和寬度,  分別應對yaml文件中
    發表于 10-31 16:30

    YOLOv5全面解析教程之目標檢測模型精確度評估

    ):分類器把負例正確的分類-預測為負例(yolov5中沒有應用到)  yolov5中沒有應用TN的原因: TN代表的是所有可能的未正確檢測到的邊界框。然而在yolo在目標檢測任務中,每個網格會生成很多的預測
    發表于 11-21 16:40

    淺析在one-yolov5項目中計算mAP用到的一些numpy操作

    引言本文主要介紹在 one-yolov5 項目中 計算mAP用到的一些numpy操作,這些numpy
    發表于 11-24 15:04

    使用Yolov5 - i.MX8MP進行NPU錯誤檢測是什么原因?

    的時機(yolov5s 模型,輸入為 448x448 ~ 70ms)。 現在我正在嘗試使用 Yolov5(uint8 量化),但我嘗試使用不同的預訓練模型獲得相同的行為,在 CPU 上進行良好檢測,在
    發表于 03-31 07:38

    如何YOLOv5測試代碼?

    使用文檔“使用 YOLOv5 進行對象檢測”我試圖從文檔第 10 頁訪問以下鏈接(在 i.MX8MP 上部署 yolov5s 的步驟 - NXP 社區) ...但是這樣做時會被拒絕訪問。該文檔沒有說明需要特殊許可才能下載 test.zip 文件。NXP 的人可以提供有關如
    發表于 05-18 06:08

    yolov5模型onnx轉bmodel無法識別出結果如何解決?

    問題描述: 1. yolov5模型pt轉bmodel可以識別出結果。(轉化成功,結果正確) 2. yolov5模型pt轉onnx轉bmodel可以無法識別出結果。(轉化成功,結果沒有) 配置: 1.
    發表于 09-15 07:30

    基于YOLOv5的目標檢測文檔進行的時候出錯如何解決?

    你好: 按Milk-V Duo開發板實戰——基于YOLOv5的目標檢測 安裝好yolov5環境,在執行main.py的時候會出錯,能否幫忙看下 main.py: import torch
    發表于 09-18 07:47

    yolov5訓練部署全鏈路教程

    本教程針對目標檢測算法yolov5的訓練和部署到EASY-EAI-Nano(RV1126)進行說明。
    的頭像 發表于 01-05 18:00 ?2508次閱讀
    <b class='flag-5'>yolov5</b>訓練部署全鏈路教程

    使用旭日X3派的BPU部署Yolov5

    本次主要介紹在旭日x3的BPU中部署yolov5。首先在ubuntu20.04安裝yolov5,并運行yolov5并使用pytoch的pt模型文件轉ONNX。
    的頭像 發表于 04-26 14:20 ?617次閱讀
    使用旭日X3派的BPU部署<b class='flag-5'>Yolov5</b>

    yolov5和YOLOX正負樣本分配策略

    整體上在正負樣本分配中,yolov7的策略算是yolov5和YOLOX的結合。因此本文先從yolov5和YOLOX正負樣本分配策略分析入手,后引入到YOLOv7的
    發表于 08-14 11:45 ?1833次閱讀
    <b class='flag-5'>yolov5</b>和YOLOX正負樣本分配策略

    YOLOv5網絡結構訓練策略詳解

    前面已經講過了Yolov5模型目標檢測和分類模型訓練流程,這一篇講解一下yolov5模型結構,數據增強,以及訓練策略。
    的頭像 發表于 09-11 11:15 ?1523次閱讀
    <b class='flag-5'>YOLOv5</b>網絡結構訓練策略<b class='flag-5'>詳解</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>