日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python模型预测_python:目标检测模型预测准确度计算方式(基于IoU)

發(fā)布時(shí)間:2023/12/19 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python模型预测_python:目标检测模型预测准确度计算方式(基于IoU) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

訓(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)建代碼如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

#讀取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 pathin txtlist:#對(duì)每個(gè)txt操作

txtname=os.path.basename(path)[:-4]#獲取txt文件名

label=1

eachtxt=np.loadtxt(path)#讀取文件

for linein 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 tlinein 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 iin 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

counter0=counter0+1

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

原文鏈接:https://blog.csdn.net/malvas/article/details/84957820

總結(jié)

以上是生活随笔為你收集整理的python模型预测_python:目标检测模型预测准确度计算方式(基于IoU)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。