mask-rcnn代码解读:mask_iou的计算

Posted tangjunjun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mask-rcnn代码解读:mask_iou的计算相关的知识,希望对你有一定的参考价值。

我以为只有box能计算iou值,但我看了maskrcnn后,发现该模型对mask进行了iou的计算,该方法巧妙之处在于

mask1与mask2必须有相同的height and width,而后在同一个位置的值累加,即交叉面积,而后将mask1与mask2

所有值累加为并集,而后计算类似于box的iou计算了。

然而,我为了简化,将变量a看作mask,并将mask1与mask2均等于a,以下是详细代码:

import numpy as np
a=np.array([[1,0,1,0,1,1],[1,0,1,0,1,0]])
print(a > .5)
masks = np.reshape(a > .5, (-1, 1)).astype(np.float32) # flatten two dimension,but line only one
print(‘masks=‘,masks)
area1 = np.sum(masks, axis=0) # 计算mask_面积
print(‘mask_area1=‘,area1)

mask_intersections = np.dot(masks.T, masks)
print(‘mask_intersections=‘,mask_intersections)
union = area1[:, None]+area1[None,:]-mask_intersections
print(union)
iou_mask=union/mask_intersections
print(‘iou_mask=‘,iou_mask)

结果如下:

技术图片

 

 

 

以上是关于mask-rcnn代码解读:mask_iou的计算的主要内容,如果未能解决你的问题,请参考以下文章

mask-rcnn代码解读:display(self)函数的解析

mask-rcnn的解读:batch_slice()

mask-rcnn代码解读:rpn_feature_maps数据的处理

mask-rcnn解读:clip_boxes_graph()

『计算机视觉』RCNN学习_其二:Mask-RCNN

『计算机视觉』Mask-RCNN_关键点检测分支(待续)