1. 程式人生 > >Mask-RCNN校驗結果計算mAP值

Mask-RCNN校驗結果計算mAP值

       Mask-RCNN校驗結果可以通過計算mAP值得到一個數值的衡量,在10張圖片上計算平均值,增加更高的準確性。

一、 mAP值的計算

P:precision,即準確率;

R:recall,即 召回率。

PR曲線:即以precision和recall作為縱、橫軸座標的二維曲線。

AP值:Average Precision,即平均精確度。

mAP值:Mean Average Precision,即平均AP值;是對多個驗證集個體求平均AP值。

二、Mask-RCNN計算mAP程式碼

Mask-RCNN計算mAP值時,會從logs檔案中找到h5權重檔案,然後用於測試。在train_shapes.ipynb檔案後面加上以下程式碼:

(該程式碼是在Mask-RCNN原始train_shapes.ipynb程式碼基礎上更改的,可以訓練自己的資料集)

用Mask-RCNN訓練自己的資料集遇到的問題可以檢視之前的部落格

#mAP
# Compute VOC-Style mAP @ IoU=0.5
# Running on 10 images. Increase for better accuracy.
class InferenceConfig(ShapesConfig):
    GPU_COUNT = 1
    IMAGES_PER_GPU = 1

inference_config = InferenceConfig()

# Recreate the model in inference mode
model = modellib.MaskRCNN(mode="inference", 
                          config=inference_config,
                          model_dir=MODEL_DIR)

# Get path to saved weights
# Either set a specific path or find last trained weights
# model_path = os.path.join(ROOT_DIR, ".h5 file name here")
model_path = model.find_last()

# Load trained weights
print("Loading weights from ", model_path)
model.load_weights(model_path, by_name=True)

# Test on a random image
image_id = random.choice(dataset_val.image_ids)
original_image, image_meta, gt_class_id, gt_bbox, gt_mask =\
    modellib.load_image_gt(dataset_val, inference_config, 
                           image_id, use_mini_mask=False)

log("original_image", original_image)
log("image_meta", image_meta)
log("gt_class_id", gt_class_id)
log("gt_bbox", gt_bbox)
log("gt_mask", gt_mask)

visualize.display_instances1(original_image, gt_bbox, gt_mask, gt_class_id, 
                            dataset_train.class_names, figsize=(8, 8))

results = model.detect([original_image], verbose=1)

r = results[0]
visualize.display_instances1(original_image, r['rois'], r['masks'], r['class_ids'], 
                            dataset_val.class_names, r['scores'], ax=get_ax())

image_ids = np.random.choice(dataset_val.image_ids, 10)
APs = []
for image_id in image_ids:
    # Load image and ground truth data
    image, image_meta, gt_class_id, gt_bbox, gt_mask =\
        modellib.load_image_gt(dataset_val, inference_config,
                               image_id, use_mini_mask=False)
    molded_images = np.expand_dims(modellib.mold_image(image, inference_config), 0)
    # Run object detection
    results = model.detect([image], verbose=0)
    r = results[0]
    # Compute AP
    AP, precisions, recalls, overlaps =\
        utils.compute_ap(gt_bbox, gt_class_id, gt_mask,
                         r["rois"], r["class_ids"], r["scores"], r['masks'])
    APs.append(AP)
    
print("mAP: ", np.mean(APs))

三、結果顯示

相關推薦

Mask-RCNN結果計算mAP

       Mask-RCNN校驗結果可以通過計算mAP值得到一個數值的衡量,在10張圖片上計算平均值,增加更高的準確性。 一、 mAP值的計算 P:precision,即準確率; R:recall,即 召回率。 PR曲線:即以precision和recall作為縱

計算方法

return 增加 ron cksum 代碼 sizeof 內容 設置 strong 1.說明:   [1]校驗和覆蓋的內容:     IP校驗和:IP首部。     ICMP校驗和:ICMP首部+ICMP數據;     UDP、TCP校驗和:首部+數據+12個字節偽首部(

stm32計算的問題

常用的通訊中,經常會有一些校驗方法,比如DHT22的單匯流排協議。 根據參考手冊,只需要計算 if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4]) 就可以了,但是!!! 對於stm32來說,其計算結果可能不是想象中的那樣,舉個例子,buf0-4

身份證的計算

PS:倒數第二位奇數為男,偶數為女 (1)十七位數字本體碼加權求和公式  S = Sum(Ai * Wi), i = 0, … , 16 ,先對前17位數字的權求和  Ai:表示第i位置上的身份證號碼數字值  Wi:表示第i位置上的加權因子&n

android中 IMEI和ICCID的計算

        我們都知道在android 中有IMEI和ICCID 這兩項資料. 至於這兩項資料的獲取方式以及所表示的意思在此我就不寫了.主要講講這兩項資料最後一位的校驗位如何計算的.         IMEI共1

Linux BCC(異或計算命令列工具

BCC(Block Check Character/資訊組校驗碼),因校驗碼是將所有資料異或得出,故俗稱異或校驗。具體演算法是:將每一個位元組的資料(一般是兩個16進位制的字元)進行異或後即得到校驗碼。  例如16進位制資料:01 A0 7C FF 02  用計算器計算:01 x

Element 表單驗證,取消部分表單欄位結果

<template> <div> <el-form ref="formRules" :model="form" :rules="rules" :inline="true"> <el-form-item prop="name">

迴圈冗餘計算CRC

CRC迴圈冗餘檢驗碼的計算題 1、若資訊碼字為11100011,生成多項式 G(X)=X5+X4+X+1,則計算出的 CRC 校驗碼為? x的最高次冪5則 資訊碼(被除數)補五個0為:111000

關於計算方面的C++程式碼,哪位大俠幫忙解讀一下,小弟初學,不太懂!謝謝!

關於校驗和計算方面的C++程式碼,哪位大俠幫忙解讀一下,小弟初學,不太懂!謝謝!  分享| 2010-09-03 16:51 李志鵬6076  |  瀏覽 755 次 #include "

掃盲檔案完整性——關於雜湊和數字簽名

★什麼是”完整性校驗”?   所謂的”完整性校驗”,顧名思義,就是檢查檔案是否完整。那麼,什麼情況下會導致檔案不完整捏?大概有如下幾種情況。   1. 感染病毒   比方說你的系統中了病毒,病毒感染了某個軟體安裝包或者某個可執行程式。那麼該檔案的完整性

計算原理

校驗和思路 首先,IP、ICMP、UDP和TCP報文頭都有檢驗和欄位,大小都是16bit,演算法基本上也是一樣的。 在傳送資料時,為了計算資料包的檢驗和。應該按如下步驟: 1、把校驗和欄位設定為0; 2、把需要校驗的資料看成以16位為單位的數字組成,依次

JAVA CRC16計算

package com.hcs.lqjc.controller.dongDaHengFeng.ModBus.utils; /** * @author lwt * @date 2018-06-26 * * CRC16校驗碼計算 * <p> * (1).

開發實戰--CRC,計算工具軟體的開發過程(開源)

1、專案的需求來源       做為程式設計師碼程式碼,開發軟體,開發通訊協議,相信避免不了與各種校驗碼打交道。校驗碼是通訊協議中資料接收方用來校驗資料合法性的一個編碼。那麼舉個栗子,請看今早我和隔壁老王的對話,         隔壁老王:今天你吃了麼?“嘎哈”    

IMEI/MEID計算

IMEI是國際移動通訊裝置識別號(International Mobile Equipment Identity)的縮寫,用於GSM系統。 由15位數字組成,前6位(TAC)是型號核准號碼,代表手機型別。接著2位(FAC)是最後裝配號,代表產地。後6位(SNR)是串號,

如何在Service方法中丟擲異常並返回狀態或結果?

在Service方法中,如果我們通過丟擲異常來進行事務處理(其實有更好的辦法:Spring事務配置),那麼我們的Service方法需要丟擲異常,但這裡有一個問題,之前都沒有考慮到,今天測試介面的時候發現的,問題:當發現檢驗失敗的時候,我們給Map設定了一個key為messa

使用@Valid和BindingResult驗證請求參數的合法性並處理結果

result urn request 請求參數 合法性 out pan default ESS 1 /** 2 * 添加用戶,使用@RequestBody將請求體映射到Action方法參數中 3 * 使用@Valid註解驗證請求參數

Vee-validate 父元件獲取子元件表單結果

vee-validate 是為 Vue.js 量身打造的表單校驗框架,允許您校驗輸入的內容並顯示對應的錯誤提示資訊。它內建了很多常見的校驗規則,可以組合使用多種校驗規則,大部分場景只需要配置就能實現開箱即用,還支援自定義正則表示式。而且支援 40 多種語言,對本地化、多語言支援非常友好。 國內餓了麼團隊開源專

SpringBoot 回顯資訊--Ajax請求Controller後返回Map--提示賦

直接上程式碼: 第一: Controller類的方法:     @ResponseBody     @RequestMapping("/USER/Check")     public Map<String,String>

Qt:計算CRC(CRC16和CRC32)

CRC有非常多的模式,我沒有全部都做,目前支援 CRC16-Modbus CRC16-X25 CRC32 使用方法 auto data = QByteArray::fromHex( "01

表單$valid、$invalid、$pristine和$dirty

狀態 ng- 愛好 定義 ida from 用戶操作 num $set angular內置了一套表單校驗,其中包含幾個狀態 ① valid、invalid、pristine和dirty   valid標記表單元素有效;   invalid標記表單元素無效;   pristi