MXNet中MultiBoxDetection、MultiBoxPrior、MultiBoxTarget的使用

文章轉載自:https://blog.csdn.net/XiangJiaoJun_/article/details/84679596

    MXNet在目標檢測提供了許多API供用戶調用,靈活使用這些函數能大大降低編程難度,其中跟錨框有關的三個函數MultiBoxDetection、MultiBoxPrior、MultiBoxTarget,下面總結一下這三個函數的用法。

常用函數

一、MultiBoxPrior

    該函數是用來在一張給定的特徵圖中,對於給定的大小比例和寬高比例,生成不同錨框,函數原型爲 

    mxnet.ndarray.contrib.MultiBoxPrior(data=None, sizes=_Null, ratios=_Null, clip=_Null, steps=_Null, offsets=_Null, out=None, name=None, **kwargs)

    下面總結一下一些常用參數的作用。

參數 作用說明
data 輸入的特徵圖,一般形狀爲(批量大小,通道數、寬、高)
sizes 要生成的錨框的大小比例列表,比如 sizes=[0.2,0.5,0.75]
ratios 要生成的錨框的寬高比例列表,比如 ratios=[0.5,1,2]
clip boolean 類型變量,設置是否要剪切超出邊界的錨框,默認爲0

   輸出:生成的錨框,形狀爲 (1,錨框總數,4) ,其中最後一維爲生成的錨框的四個座標,均除以了寬和高進行了歸一化,錨框總數 = 寬*高*每個像素錨框個數,各個批量之間共享這些錨框。

二、MultiBoxTarget

     該函數是用來對生成錨框進行標記,函數原型爲

    MultiBoxTarget(anchor=None, label=None, cls_pred=None, overlap_threshold=_Null, ignore_label=_Null, negative_mining_ratio=_Null, negative_mining_thresh=_Null, minimum_negative_samples=_Null, variances=_Null, out=None, name=None, **kwargs)

    下面總結一下一些常用參數的作用。

參數 作用說明  
anchor 輸入的錨框,一般是通過MultiBoxPrior生成,形狀爲(1,錨框總數,4)  
label 訓練集的真實標籤,一般形狀爲(批量大小,每張圖片最多的真實錨框數,5),第二維中,如果給定圖片沒有這麼多錨框,將會用-1填充空白,最後一維中的元素爲 類別標籤+四個座標值(歸一化)  
cls_pred 對於第一個輸入參數,即輸入的錨框,預測的類別分數,形狀一般爲(批量大小,預測的總類別數+1,錨框總數),這個輸入的作用是爲了負採樣(negative_mining),如果不設置負採樣,那麼這個輸入並不影響輸出  
negative_mining_ratio 設置負採樣的比例大小  
negative_mining_thresh 設置負採樣的閾值  
minimum_negative_samples 最少的負採樣樣本  

 其中輸出爲一個列表,有三個元素,分別爲bbox_offset、bbox_mask、cls_labels,注意以上三個輸出均爲二維矩陣

輸出 說明
bbox_offset 每個錨框的標註偏移量,形狀爲(批量大小,錨框總數*4)
bbox_mask 每個錨框的掩碼,這些掩碼一一對應上面的偏移量,由於我們不關心背景的偏移量,所以負類錨框座標對應的掩碼均爲0,正類錨框座標對應的掩碼均爲1,形狀爲(批量大小,錨框總數*4)
cls_labels 每個錨框的標註類別,其中0表示爲背景,當設置了負採樣後,標籤爲-1表示負採樣中被丟棄,計算損失函數時應丟棄該樣本,輸出形狀爲 (批量大小,錨框總數)

三、MultiBoxDetection

    該函數是用來對預測完畢的錨框進行例如加上偏移量,非極大值抑制等處理,函數原型爲

    MultiBoxDetection(cls_prob=None, loc_pred=None, anchor=None, clip=_Null, threshold=_Null, background_id=_Null, nms_threshold=_Null, force_suppress=_Null, variances=_Null, nms_topk=_Null, out=None, name=None, **kwargs)

    下面總結一下一些常用參數的作用。

參數 說明
cls_prob 預測的各個錨框的概率,一般要經過softmax運算,形狀爲(批量大小,預測總類別數+1,錨框總數)
loc_pred 預測的各個錨框的偏移量,一般形狀爲 (批量大小,錨框總數*4)
anchor 生成的默認錨框,一般形狀爲(1,錨框總數,4)
clip 是否要剪切超出邊界的錨框,默認爲1
threshold 正類預測的閾值,當對某一個錨框預測的類別置信度大於設置的閾值時,會被當做正類錨框處理,否則視爲負類
background_id 背景的類別id,默認爲0
nms_threshold 非極大值抑制的閾值

    輸出爲經過處理之後的錨框,形狀爲(批量大小,錨框總數,6)其中最後一維組成爲,類別標籤+置信度+邊界框四個座標(歸一化處理),其中類別標籤爲-1表示爲背景或者在NMS中被移除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章