mask_rcnn关键点检测原理与基于detectron2实现代码梳理

mask-rcnn原理


主干网络

作用:用来提取图片特征
主干网络
就是一般的VGG/RESNET等特征提取网络,在mask_rcnn中使用了FPN,使用了不同下采样的feature maps去预测。

PPN

作用: 两阶段网络用来区分前景与背景(并无分类能力)。
借用一张faster rcnn的图:
faster rcnn rpn
在PRN中会首先再经过一个3x3卷积,然后分两支使用1x1卷积进行confidence预测与box的偏置量预测,在faster rcnn中使用的是softmax,且base_anchor是9个,每个点用九个anchor去匹配,每个点的预测信息就是confidence(9x2)+box(9x4),所以在box回归分支输出是(36x32x32),confidence分支输出是(18x32x32)。
可能没接触过caffe的炼丹师看着中间的两个reshape不知所以然,实际是框架实现的差异(在caffe中需要利用reshape将信息转换成需要的维度),caffe中caffe softmax_loss_layer.cpp原文注释:

"Number of labels must match number of predictions; "
"e.g., if softmax axis == 1 and prediction shape is (N, C, H, W), "
"label count (number of labels) must be NHW, "
“with integer values in {0, 1, …, C-1}.”;

在pytorch中是不需要中间两个reshape层的,最后在confidence分支加上softmax层进行分数的归一化。此时可以得到在feature maps上每个点所有匹配anchor的对应类型信息(背景与前景):18x32x32,与每个点每个anchor的框回归值:36x32x32。
在训练中:会根据anchor经过回归后的box与GT的iou以及confidence来选出前面topk个框进行训练,
此处会有9216(32x32x9)个anchor, 区分正负样本、忽略样本后,会先取PRE_NMS_TOPK_TRAIN个正样本,然后nms后取POST_NMS_TOPK_TRAIN个作为预选的正样本(仍然不是最终用来训练的正样本),然后在预选的正样本中随机选择128个,另外随机选择128个负样本,组成256样本进行训练
在测试中:根据confidence选出topk个预测框,最终的预测就是POST_NMS_TOPK_TEST个。
在得到最后的box信息后,可以在主干网络提取的特征上根据坐标找到对应的特征,但是由于对应后每个框都是不一样大小,后续还需要将这些box特征送入第二阶段来得到我们最终所需的检测框种类、更精确的定位、keypoints信息,所以需要ROIAlign。

ROIAlign

作用:将RPN 选择的box在主干网络提取feature maps所对应的不规则box features统一化。
详解可以参考:ROIAlign
ROIAlign

box分支

在经过ROIAlgin后,所得信息是256x7x7,

KeyPoints

此分支的输入不再是256x14x14,box feature的个数是box最后得到的检测框的个数,且是其检测框所所对应的proposal box feature,每个类型点用过一个heatmap 找到响应最大的点然后映射回原坐标就可以得到关键点的预测。

基于detectron2实现及注意事项

有时间再慢慢将各个阶段的细节以及detectron2的实现填写完整。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mask R-CNN是一种基于Faster R-CNN的网络结构,用于物体分割和关键点检测。在Mask R-CNN中,关键点的位置被建模为一个单独的one-hot mask,并通过Mask R-CNN预测K个mask,每个mask对应一个关键点类型。训练过程中,对于每个关键点,使用一个热点m×m二进制掩码进行训练,其中只有一个像素标记为前景。关键点head由多个卷积层和上采样层组成,以产生高分辨率的输出。\[1\] Mask R-CNN在人体姿态估计中具有很好的应用效果。它可以通过训练目标的掩码来定位关键点,并使用交叉熵损失函数进行训练。此外,Mask R-CNN还可以用于其他任务,如物体分割。在阿里举办的一个比赛中,有人使用Mask R-CNN进行了关键点检测,并取得了不错的效果。你可以在这个链接中找到相关的工程代码和更多信息:https://github.com/huaifeng1993/FashionAI_Key_Points_Detection。\[2\] 总之,Mask R-CNN是一种灵活的网络结构,可以用于物体分割和关键点检测。它在人体姿态估计等任务中具有广泛的应用前景。\[3\] #### 引用[.reference_title] - *1* *2* *3* [Mask R-CNN 关键点检测](https://blog.csdn.net/shenhuaifeng/article/details/80286068)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值