欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python:目標(biāo)檢測(cè)模型預(yù)測(cè)準(zhǔn)確度計(jì)算方式(基于IoU)

 更新時(shí)間:2020年01月18日 11:00:45   作者:sestien  
今天小編就為大家分享一篇python:目標(biāo)檢測(cè)模型預(yù)測(cè)準(zhǔn)確度計(jì)算方式(基于IoU),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

訓(xùn)練完目標(biāo)檢測(cè)模型之后,需要評(píng)價(jià)其性能,在不同的閾值下的準(zhǔn)確度是多少,有沒(méi)有漏檢,在這里基于IoU(Intersection over Union)來(lái)計(jì)算。

希望能提供一些思路,如果覺(jué)得有用歡迎贊我表?yè)P(yáng)我~

IoU的值可以理解為系統(tǒng)預(yù)測(cè)出來(lái)的框與原來(lái)圖片中標(biāo)記的框的重合程度。系統(tǒng)預(yù)測(cè)出來(lái)的框是利用目標(biāo)檢測(cè)模型對(duì)測(cè)試數(shù)據(jù)集進(jìn)行識(shí)別得到的。

計(jì)算方法即檢測(cè)結(jié)果DetectionResult與GroundTruth的交集比上它們的并集,如下圖:

藍(lán)色的框是:GroundTruth

黃色的框是:DetectionResult

綠色的框是:DetectionResult ⋂GroundTruth

紅色的框是:DetectionResult ⋃GroundTruth

基本思路是先讀取原來(lái)圖中標(biāo)記的框信息,對(duì)每一張圖,把所需要的那一個(gè)類(lèi)別的框拿出來(lái),與測(cè)試集上識(shí)別出來(lái)的框進(jìn)行比較,計(jì)算IoU,選擇最大的值作為當(dāng)前框的IoU值,然后通過(guò)設(shè)定的閾值(漏檢0, 0.3, 0.5, 0.7)來(lái)進(jìn)行比較統(tǒng)計(jì),最后得到每個(gè)閾值下的所有的判定為正確檢測(cè)(IoU值大于閾值)的框的數(shù)量,然后與原本的標(biāo)記框的數(shù)量一起計(jì)算準(zhǔn)確度。

其中計(jì)算IoU的時(shí)候是重新構(gòu)建一個(gè)背景為0的圖,設(shè)定框所在的位置為1,分別利用原本標(biāo)注的框和測(cè)試識(shí)別的框來(lái)構(gòu)建兩個(gè)這樣的圖,兩者相加就能夠讓重疊的部分變成2,于是就可以知道重疊部分的大?。ń患?,從而計(jì)算IoU。

構(gòu)建代碼如下:

#讀取txt-標(biāo)準(zhǔn)txt為基準(zhǔn)-分類(lèi)別求閾值-閾值為0. 0.3 0.5 0.7的統(tǒng)計(jì)
import glob
import os
import numpy as np
 
#設(shè)定的閾值
threshold1=0.3
threshold2=0.5
threshold3=0.7
 
#閾值計(jì)數(shù)器
counter0=0
counter1=0
counter2=0
counter3=0
 
stdtxt=''#標(biāo)注txt路徑
testtxt=''#測(cè)試txt路徑
 
txtlist=glob.glob(r'%s\*.txt' %stdtxt)#獲取所有txt文件
for path in txtlist:#對(duì)每個(gè)txt操作
  
  txtname=os.path.basename(path)[:-4]#獲取txt文件名
  label=1
  eachtxt=np.loadtxt(path) #讀取文件
  for line in eachtxt:
    if line[0]==label:
      #構(gòu)建背景為0框?yàn)?的圖
      map1=np.zeros((960,1280))
      map1[line[2]:(line[2]+line[4]),line[1]:(line[1]+line[3])]=1
      
      testfile=np.loadtxt(testtxt + txtname + '.txt')
      c=0
      iou_list=[]#用來(lái)存儲(chǔ)所有iou的集合
      for tline in testfile:#對(duì)測(cè)試txt的每行進(jìn)行操作
        if tline[0]==label:
          c=c+1
          map2=np.zeros((960,1280))
          map2[tline[2]:(tline[2]+tline[4]),tline[1]:(tline[1]+tline[3])]=1
          map3=map1+map2
          a=0
          for i in map3:
            if i==2:
              a=a+1
          iou=a/(line[3]*line[4]+tline[3]*tline[4]-a)#計(jì)算iou
          iou_list.append(iou)#添加到集合尾部
          
      threshold=max(iou_list)#閾值取最大的
      #閾值統(tǒng)計(jì)
      if threshold>=threshold3:
        counter3=counter3+1
      elif threshold>=threshold2:
        counter2=counter2+1
      elif threshold>=threshold1:
        counter1=counter1+1
      elif threshold<threshold1:#漏檢
        counter0=counter0+1

以上這篇python:目標(biāo)檢測(cè)模型預(yù)測(cè)準(zhǔn)確度計(jì)算方式(基于IoU)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python爬蟲(chóng)基礎(chǔ)之urllib的使用

    python爬蟲(chóng)基礎(chǔ)之urllib的使用

    這篇文章主要介紹了python爬蟲(chóng)基礎(chǔ)之urllib的使用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • python利用Appium實(shí)現(xiàn)自動(dòng)控制移動(dòng)設(shè)備并提取數(shù)據(jù)功能

    python利用Appium實(shí)現(xiàn)自動(dòng)控制移動(dòng)設(shè)備并提取數(shù)據(jù)功能

    這篇文章主要介紹了python利用Appium自動(dòng)控制移動(dòng)設(shè)備并提取數(shù)據(jù),本文以控制抖音app滑動(dòng)并獲取抖音短視頻發(fā)布者為例,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • Python生成一個(gè)迭代器的實(shí)操方法

    Python生成一個(gè)迭代器的實(shí)操方法

    在本文里小編給大家分享了關(guān)于Python怎么生成一個(gè)迭代器的相關(guān)操作方法,有需要的朋友們可以學(xué)習(xí)參考下。
    2019-06-06
  • 詳解Python?AdaBoost算法的實(shí)現(xiàn)

    詳解Python?AdaBoost算法的實(shí)現(xiàn)

    Boosting是機(jī)器學(xué)習(xí)的三大框架之一。Boost也被稱(chēng)為增強(qiáng)學(xué)習(xí)或提升法,其中典型的代表算法是AdaBoost算法。本文介紹了AdaBoost算法及python實(shí)現(xiàn),感興趣的可以學(xué)習(xí)一下
    2022-10-10
  • python 圖像處理畫(huà)一個(gè)正弦函數(shù)代碼實(shí)例

    python 圖像處理畫(huà)一個(gè)正弦函數(shù)代碼實(shí)例

    這篇文章主要介紹了python 圖像處理畫(huà)一個(gè)正弦函數(shù)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • python3利用ctypes傳入一個(gè)字符串類(lèi)型的列表方法

    python3利用ctypes傳入一個(gè)字符串類(lèi)型的列表方法

    今天小編就為大家分享一篇python3利用ctypes傳入一個(gè)字符串類(lèi)型的列表方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • 利用Python生成Excel炫酷圖表

    利用Python生成Excel炫酷圖表

    XlsxWriter是一個(gè)用來(lái)寫(xiě)Excel2007和xlsx文件格式的python模塊。它可以用來(lái)寫(xiě)文本、數(shù)字、公式并支持單元格格式化、圖片、圖表、文檔配置、自動(dòng)過(guò)濾等特性。本文將用這個(gè)模塊生成酷炫的Excel圖表,需要的可以參考一下
    2022-02-02
  • 利用Python實(shí)現(xiàn)從PDF到CSV的轉(zhuǎn)換

    利用Python實(shí)現(xiàn)從PDF到CSV的轉(zhuǎn)換

    將PDF轉(zhuǎn)換為CSV極大地提升了數(shù)據(jù)的實(shí)用價(jià)值,Python作為一種強(qiáng)大的編程語(yǔ)言,能夠高效完成這一轉(zhuǎn)換任務(wù),本文將介紹如何利用Python實(shí)現(xiàn)從PDF到CSV的轉(zhuǎn)換,需要的朋友可以參考下
    2024-07-07
  • Python?Pygame實(shí)戰(zhàn)之打磚塊小游戲

    Python?Pygame實(shí)戰(zhàn)之打磚塊小游戲

    打磚塊最早是由雅達(dá)利公司開(kāi)發(fā)的一款獨(dú)立游戲,也是無(wú)數(shù)人的童年記憶。本文將利用Python中的Pygame模塊制作經(jīng)典的打磚塊游戲,需要的可以參考一下
    2022-02-02
  • python爬蟲(chóng)模塊URL管理器模塊用法解析

    python爬蟲(chóng)模塊URL管理器模塊用法解析

    這篇文章主要介紹了python爬蟲(chóng)模塊URL管理器模塊用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02

最新評(píng)論