對於FCN-SceneParse網絡,最後卷積生成N個類別的maps,每一個Map都獲得圖像全部點的單類機率。MaskRCNN的結構與FCN不相同。python
參考三個文章:網絡
Detectron總結1:Blob的生成 和 generate proposal
函數
Detectron總結2:前向生成數據標籤的過程
測試
Detectron總結3:參數設置,直接打開cfg文件,找到train進行設置spa
Detectron總結4:Detectron測試流程(含Mask和KeyPoint)
.net
獲取多個Mask:blog
對於預測的二值掩膜輸出,咱們對每一個像素點應用sigmoid函數,總體損失定義爲平均二值交叉損失熵。 引入預測K個輸出的機制,容許每一個類都生成獨立的掩膜,避免類間競爭。這樣作解耦了掩膜和種類預測。不像是FCN的方法,在每一個像素點上應用softmax函數,總體採用的多任務交叉熵,這樣會致使類間競爭,最終致使分割效果差。get
代碼段:it
獲取每個圖像Mask
class
def getMaskImg( mask,box,image ): imageMask = image.copy(); for i in range(mask.shape[0]): for j in range(mask.shape[1]): if( mask[i,j]==0 ): #imageMask[i,j] = image[i,j] #mask[i,j] =254; imageMask[i,j,0]=0; imageMask[i,j,1]=0; imageMask[i,j,2]=0; x1 = int(box[0]); x2 = int(box[2]); y1 = int(box[1]); y2 = int(box[3]); imageMask = imageMask[y1:y2,x1:x2]; return imageMask;