python目標(biāo)檢測IOU的概念與示例
學(xué)習(xí)前言
神經(jīng)網(wǎng)絡(luò)的應(yīng)用還有許多,目標(biāo)檢測就是其中之一,目標(biāo)檢測中有一個(gè)很重要的概念便是IOU
什么是IOU
IOU是一種評價(jià)目標(biāo)檢測器的一種指標(biāo)。
下圖是一個(gè)示例:圖中綠色框?yàn)閷?shí)際框(好像不是很綠……),紅色框?yàn)轭A(yù)測框,當(dāng)我們需要判斷兩個(gè)框之間的關(guān)系時(shí),需要用什么指標(biāo)呢?
此時(shí)便需要用到IOU。

計(jì)算IOU的公式為:

可以看到IOU是一個(gè)比值,即交并比。
在分子部分,值為預(yù)測框和實(shí)際框之間的重疊區(qū)域;
在分母部分,值為預(yù)測框和實(shí)際框所占有的總區(qū)域。


交區(qū)域和并區(qū)域的比值,就是IOU。
IOU的特點(diǎn)
與分類任務(wù)不同,我們的預(yù)測框的坐標(biāo)需要去匹配實(shí)際框的坐標(biāo),而坐標(biāo)的完全匹配是不現(xiàn)實(shí)的。因此,我們需要定義一個(gè)評估指標(biāo),獎(jiǎng)勵(lì)那些與匹配框匹配較好的預(yù)測框。

全部代碼
本文將畫出兩個(gè)矩形框,并計(jì)算他們的IOU。
效果如下:

import cv2
import numpy as np
def CountIOU(RecA, RecB):
xA = max(RecA[0], RecB[0])
yA = max(RecA[1], RecB[1])
xB = min(RecA[2], RecB[2])
yB = min(RecA[3], RecB[3])
# 計(jì)算交集部分面積
interArea = max(0, xB - xA + 1) * max(0, yB - yA + 1)
# 計(jì)算預(yù)測值和真實(shí)值的面積
RecA_Area = (RecA[2] - RecA[0] + 1) * (RecA[3] - RecA[1] + 1)
RecB_Area = (RecB[2] - RecB[0] + 1) * (RecB[3] - RecB[1] + 1)
# 計(jì)算IOU
iou = interArea / float(RecA_Area + RecB_Area - interArea)
return iou
img = np.zeros((512,512,3), np.uint8)
img.fill(255)
RecA = [50,50,300,300]
RecB = [60,60,320,320]
cv2.rectangle(img, (RecA[0],RecA[1]), (RecA[2],RecA[3]), (0, 255, 0), 5)
cv2.rectangle(img, (RecB[0],RecB[1]), (RecB[2],RecB[3]), (255, 0, 0), 5)
IOU = CountIOU(RecA,RecB)
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,"IOU = %.2f"%IOU,(130, 190),font,0.8,(0,0,0),2)
cv2.imshow("image",img)
cv2.waitKey()
cv2.destroyAllWindows()
以上就是python目標(biāo)檢測IOU的概念與示例的詳細(xì)內(nèi)容,更多關(guān)于python目標(biāo)檢測IOU的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解決Scrapy安裝錯(cuò)誤:Microsoft Visual C++ 14.0 is required...
下面小編就為大家?guī)硪黄鉀QScrapy安裝錯(cuò)誤:Microsoft Visual C++ 14.0 is required...的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10
Python破解極驗(yàn)滑動(dòng)驗(yàn)證碼詳細(xì)步驟
學(xué)習(xí)python知識越來越多,大家都知道極驗(yàn)驗(yàn)證碼應(yīng)用非常廣泛,今天小編就給大家分享Python破解極驗(yàn)滑動(dòng)驗(yàn)證碼的詳細(xì)步驟,對Python極驗(yàn)滑動(dòng)驗(yàn)證碼相關(guān)知識感興趣的朋友一起看看吧2021-05-05
vscode配置與python虛擬環(huán)境切換的幾種方式總結(jié)
Python之所以強(qiáng)大,除了語言本身的特性外,更重要的是擁有無所不及的第三方庫,下面這篇文章主要給大家介紹了關(guān)于vscode配置與python虛擬環(huán)境切換的幾種方式,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12
python通過wxPython打開一個(gè)音頻文件并播放的方法
這篇文章主要介紹了python通過wxPython打開一個(gè)音頻文件并播放的方法,實(shí)例分析了wxPython操作音頻文件的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
python中的class_static的@classmethod的巧妙用法
python中的class_static的@classmethod的使用 classmethod的使用,主要針對的是類而不是對象,在定義類的時(shí)候往往會定義一些靜態(tài)的私有屬性,今天通過示例代碼看下classmethod的妙用2021-06-06
解決PyCharm的Python.exe已經(jīng)停止工作的問題
今天小編就為大家分享一篇解決PyCharm的Python.exe已經(jīng)停止工作的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11
教女朋友學(xué)Python3(二)簡單的輸入輸出及內(nèi)置函數(shù)查看
這篇文章主要介紹了教女朋友學(xué)Python3(二)簡單的輸入輸出及內(nèi)置函數(shù)查看,涉及Python3簡單的輸入輸出功能實(shí)現(xiàn),以及參看內(nèi)置函數(shù)的功能和用法描述的語句,具有一定參考價(jià)值,需要的朋友可了解下。2017-11-11

