最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mAP計算目標檢測精確度實現(xiàn)源碼

 更新時間:2022年05月09日 10:09:01   作者:Bubbliiiing  
這篇文章主要為大家介紹了mAP計算目標檢測精確度的實現(xiàn)源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

好多人都想算一下目標檢測的精確度,mAP的概念雖然不好理解,但是理解了就很懂。

GITHUB代碼下載

這個是用來繪制mAP曲線的

這個是用來獲取繪制mAP曲線所需的txt的

1、IOU的概念

IOU的概念應該比較簡單,就是衡量預測框和真實框的重合程度。下圖是一個示例:圖中綠色框為實際框(好像不是很綠……),紅色框為預測框,當我們需要判斷兩個框之間的關系時,主要就是判斷兩個框的重合程度。

計算IOU的公式為:

可以看到IOU是一個比值,即交并比。

在分子部分,值為預測框和實際框之間的重疊區(qū)域;

在分母部分,值為預測框和實際框所占有的總區(qū)域。

交區(qū)域和并區(qū)域的比值,就是IOU。

2、TP TN FP FN的概念

TP TN FP FN里面一共出現(xiàn)了4個字母,分別是T F P N。

T是True;

F是False;

P是Positive;

N是Negative。

T或者F代表的是該樣本 是否被正確分類。

P或者N代表的是該樣本 被預測成了正樣本還是負樣本。

TP(True Positives)意思就是被分為了正樣本,而且分對了。

TN(True Negatives)意思就是被分為了負樣本,而且分對了,

FP(False Positives)意思就是被分為了正樣本,但是分錯了(事實上這個樣本是負樣本)。

FN(False Negatives)意思就是被分為了負樣本,但是分錯了(事實上這個樣本是這樣本)。

在mAP計算的過程中主要用到了,TP、FP、FN這三個概念。

3、precision(精確度)和recall(召回率)

TP是分類器認為是正樣本而且確實是正樣本的例子,F(xiàn)P是分類器認為是正樣本但實際上不是正樣本的例子,Precision翻譯成中文就是“分類器認為是正類并且確實是正類的部分占所有分類器認為是正類的比例”。

TP是分類器認為是正樣本而且確實是正樣本的例子,F(xiàn)N是分類器認為是負樣本但實際上不是負樣本的例子,Recall翻譯成中文就是“分類器認為是正類并且確實是正類的部分占所有確實是正類的比例”。

4、概念舉例

如圖所示,藍色的框是 真實框。綠色和紅色的框是 預測框,綠色的框是正樣本,紅色的框是負樣本。一般來講,當預測框和真實框IOU>=0.5時,被認為是正樣本。

因此對于這幅圖來講。

真實框一共有3個,正樣本一共有2個,負樣本一共有2個。

此時

5、單個指標的局限性

在目標檢測算法里面有一個非常重要的概念是置信度,如果置信度設置的高的話,預測的結果和實際情況就很符合,如果置信度低的話,就會有很多誤檢測。

假設一幅圖里面總共有3個正樣本,目標檢測對這幅圖的預測結果有10個,其中3個實際上是正樣本,7個實際上是負樣本。對應置信度如下。

如果我們將可以接受的置信度設置為0.95的話,那么目標檢測算法就會將序號為1的樣本作為正樣本,其它的都是負樣本。此時TP = 1,F(xiàn)P = 0,F(xiàn)N = 2。

此時Precision非常高,但是事實上我們只檢測出一個正樣本,還有兩個沒有檢測出來,因此只用Precision就不合適。

這個時候如果我們將可以接受的置信度設置為0.35的話,那么目標檢測算法就會將序號為1的樣本作為正樣本,其它的都是負樣本。此時TP = 3,F(xiàn)P = 3,F(xiàn)N = 0。

此時Recall非常高,但是事實上目標檢測算法認為是正樣本的樣本里面,有3個樣本確實是正樣本,但有三個是負樣本,存在非常嚴重的誤檢測,因此只用Recall就不合適。

二者進行結合才是評價的正確方法。

什么是AP

AP事實上指的是,利用不同的Precision和Recall的點的組合,畫出來的曲線下面的面積。如下面這幅圖所示。

當我們?nèi)〔煌闹眯哦?,可以獲得不同的Precision和不同的Recall,當我們?nèi)〉弥眯哦葔蛎芗臅r候,就可以獲得非常多的Precision和Recall。

此時Precision和Recall可以在圖片上畫出一條線,這條線下部分的面積就是某個類的AP值。

mAP就是所有的類的AP值求平均。

繪制mAP

我們首先在下載繪制mAP所需的代碼。

在這個代碼中,如果想要繪制mAP則需要三個內(nèi)容。分別是:

detection-results:指的是預測結果的txt。

ground-truth:指的是真實框的txt。

image-optional:指的是圖片,有這個可以可視化,但是這個可以沒有。

我們需要生成這三個內(nèi)容,此時下載第二個庫,這個是我拿我制作的ssd代碼寫的一個可以生成對應txt的例子。

點擊下載

我們首先將整個VOC的數(shù)據(jù)集放到VOCdevikit中

然后修改voc2ssd.py里面的trainval_percent,一般用數(shù)據(jù)集的10%或者更少用于測試。如果大家放進VOCdevikit的數(shù)據(jù)集不是全部數(shù)據(jù),而是已經(jīng)篩選好的測試數(shù)據(jù)集的話,那么就把trainval_percent設置成0,表示全部的數(shù)據(jù)都用于測試。

然后運行voc2ssd.py。此時會生成test.txt,存放用于測試的圖片的名字。

然后依次運行主目錄下的get_dr_txt.py和get_gt_txt.py獲得預測框?qū)膖xt和真實框?qū)膖xt。get_dr_txt.py是用來檢測測試集里面的圖片的,然后會生成每一個圖片的檢測結果,我重寫了detect_image代碼,用于生成預測框的txt。利用for循環(huán)檢測所有的圖片。

get_dr_txt.py是用來獲取測試集中的xml,然后根據(jù)每個xml的結果生成真實框的txt。利用for循環(huán)檢測所有的xml。

完成后我們會在input獲得三個文件夾。

此時把input內(nèi)部的文件夾復制到mAP的代碼中的input文件夾內(nèi)部就可以了,然后我們運行mAP的代碼中的main.py,運行結束后,會生成mAP相關的文件。

結果生成在Result里面。

以上就是mAP計算目標檢測精確度實現(xiàn)源碼的詳細內(nèi)容,更多關于mAP目標檢測的資料請關注腳本之家其它相關文章!

相關文章

  • 使用OpenCV實現(xiàn)圖像的透視變換功能

    使用OpenCV實現(xiàn)圖像的透視變換功能

    在計算機視覺領域,經(jīng)常需要對圖像進行各種幾何變換,如旋轉(zhuǎn)、縮放和平移等,本文主要介紹了如何使用OpenCV實現(xiàn)圖像的透視變換,需要的可以參考下
    2024-11-11
  • 基于Tensorflow搭建一個神經(jīng)網(wǎng)絡的實現(xiàn)

    基于Tensorflow搭建一個神經(jīng)網(wǎng)絡的實現(xiàn)

    神經(jīng)網(wǎng)絡可能會讓人感到恐懼,特別是對于新手機器學習的人來說。這篇文章主要介紹了基于Tensorflow搭建一個神經(jīng)網(wǎng)絡的實現(xiàn),從入門開始,感興趣的可以了解一下
    2021-05-05
  • 使用Python實現(xiàn)在Word文檔中進行郵件合并

    使用Python實現(xiàn)在Word文檔中進行郵件合并

    郵件合并是現(xiàn)代辦公中一項顯著提升效率的技術,它巧妙地將大量個體數(shù)據(jù)與預設的文檔模板相結合,實現(xiàn)了一次性批量生成定制化文檔,下面我們就來看看如何使用Python實現(xiàn)在Word文檔中進行郵件合并吧
    2024-04-04
  • Python標準庫中隱藏的利器(示例詳解)

    Python標準庫中隱藏的利器(示例詳解)

    在命令行中直接使用Python標準庫的模塊,最大的好處就是就是不用寫代碼,就能使用其中的功能,當臨時需要一些某些功能的時候,用這種方式會快捷,方便很多,這篇文章主要介紹了Python標準庫中隱藏的利器,需要的朋友可以參考下
    2023-11-11
  • Python繪圖實現(xiàn)顯示中文

    Python繪圖實現(xiàn)顯示中文

    今天小編就為大家分享一篇Python繪圖實現(xiàn)顯示中文,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python中ROC曲線繪制

    Python中ROC曲線繪制

    大家好,本篇文章主要講的是Python中ROC曲線繪制,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Python?Tkinter庫從入門到進階使用教程

    Python?Tkinter庫從入門到進階使用教程

    Tkinter是Python標準庫中內(nèi)置的圖形用戶界面(GUI)工具包,提供了創(chuàng)建窗口、按鈕、文本框等GUI元素的功能,本文將介紹Tkinter的基礎知識,幫助大家快速入門
    2023-12-12
  • Python中property函數(shù)用法實例分析

    Python中property函數(shù)用法實例分析

    這篇文章主要介紹了Python中property函數(shù)用法,結合實例形式分析了property函數(shù)的功能、參數(shù)、使用方法及相關操作注意事項,需要的朋友可以參考下
    2018-06-06
  • 為何人工智能(AI)首選Python?讀完這篇文章你就知道了(推薦)

    為何人工智能(AI)首選Python?讀完這篇文章你就知道了(推薦)

    這篇文章主要介紹了為何人工智能(AI)首選Python,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • python+Django+pycharm+mysql 搭建首個web項目詳解

    python+Django+pycharm+mysql 搭建首個web項目詳解

    這篇文章主要介紹了python+Django+pycharm+mysql 搭建首個web項目,結合實例形式詳細分析了python+Django+pycharm+mysql搭建web項目的具體步驟與相關操作技巧,需要的朋友可以參考下
    2019-11-11

最新評論

轮台县| 仲巴县| 浑源县| 南投县| 清河县| 石台县| 沂水县| 灌云县| 龙南县| 宽甸| 隆安县| 万荣县| 永宁县| 塔城市| 巴林右旗| 古浪县| 赤峰市| 西峡县| 博乐市| 巨鹿县| 永宁县| 龙南县| 教育| 肃北| 新巴尔虎右旗| 新乡市| 鸡泽县| 石楼县| 聂拉木县| 台东县| 内江市| 察雅县| 会同县| 鹰潭市| 康保县| 南陵县| 盐山县| 满洲里市| 健康| 犍为县| 泽州县|