maskrcnn理解记录
业精于勤荒于嬉-行成于思而毁于随
希望自己能走的更远更远,踏踏实实,勿忘初心。
展开
-
maskrcnn_benchmark理解记录——modeling\rpn\anchor_generator.py
For a set of image sizes and feature maps, computes a set of anchors对于一组图像大小和feature maps,计算一组锚点 传入的是 anchor_sizes = config.MODEL.RPN.ANCHOR_SIZES #(32, 64, 128, 256, 512)...原创 2019-03-20 20:12:30 · 1049 阅读 · 0 评论 -
maskrcnn_benchmark理解记录——modeling\roi_heads\keypoint_head\inference.py
import torchfrom torch import nnclass KeypointPostProcessor(nn.Module): def __init__(self, keypointer=None): super(KeypointPostProcessor, self).__init__() self.keypointer = ke...原创 2019-03-21 21:45:11 · 655 阅读 · 0 评论 -
maskrcnn_benchmark理解记录——modeling\roi_heads\keypoint_head\loss.py
这里是keypoint的label的处理和损失计算1.Matcher 返回matches (Tensor[int64]):其中N[i]在gt中[0,M-1]中有匹配返回N张量,,或者预测i不能匹配,返回负值。可以根据是张量还是负值简单判断是否匹配 该类为每个预测的“element”(例如,框)分配ground-truth元素。 每个预测元素将具有正好零或一个匹配; 每个...原创 2019-03-21 21:50:27 · 1528 阅读 · 0 评论 -
maskrcnn_benchmark理解记录——modeling\roi_heads\keypoint_head\keypoint_head.py
这里 in_channels=256(P层是256的)。步骤如下1) x = make_roi_keypoint_feature_extractor(cfg, in_channels)(features, proposals)2) kp_logits= make_roi_keypoint_predictor(cfg, self.feature_extractor.out_channel...原创 2019-03-20 21:17:24 · 618 阅读 · 0 评论 -
优化算法记录
参考:https://blog.csdn.net/wishchin/article/details/80567558https://zhuanlan.zhihu.com/p/322625401.改进Adam的方法:前期用Adam,享受Adam快速收敛的优势;后期切换到SGD,慢慢寻找最优解。这一方法以前也被研究者们用到,不过主要是根据经验来选择切换的时机和切换后的学习率。Adam+SGD...转载 2019-03-22 13:58:42 · 240 阅读 · 2 评论 -
Mask RCNN 学习笔记+网络+ROI Align+ResNet
https://blog.csdn.net/jningwei/article/details/80429768Mask RCNN 学习笔记,网络之类https://www.cnblogs.com/wangyong/p/9305347.html令人拍案称奇的Mask RCNN+ROI Align(ROI Align难懂)https://zhuanlan.zhihu.com/p/3799871...原创 2019-03-28 14:43:42 · 537 阅读 · 0 评论 -
maskrcnn_benchmark理解记录——关于batch norm、relu、dropout 的相对顺序以及dropout可不可用
ps:1.如何在卷积神经网络中实现全局平均池化。在此之前,建议阅读ResNet这篇论文,以了解全局平均池化操作的好处。代替全连接层。2.dropout只可能在box分支的两个全连接层那里,这个可以后期finetuning下。全连接网络可以使feature map的维度减少,进而输入到softmax,但是又会造成过拟合,可以用pooling来代替全连接。那就解决了之前的问题:要不要在f...原创 2019-04-11 12:39:55 · 3647 阅读 · 1 评论 -
这个要看呀!!!!:中间层提取特征的可视化,以及热图的可视化
https://www.jianshu.com/p/4cca168cff62原创 2019-04-11 11:52:02 · 3274 阅读 · 9 评论 -
R_50_FPN的module和各层维度
(backbone): Sequential( (body): ResNet( (stem): StemWithFixedBatchNorm( (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False) (bn1): FrozenBat...原创 2019-03-29 09:54:33 · 740 阅读 · 2 评论 -
maskrcnn_benchmark理解记录——modeling\roi_heads\keypoint_head\roi_keypoint_feature_extractors.py
这里是keypoints Head特征提取部分。p2~p5 做keypoint head的特征提取部分,并构建了后面的层。也就是ROIAlign→14*14*256→14*14*512→*8→14*14*512这部分先对不同P2~P5特征图(list[Tensor])的proposals(list[BoxList])进行ROIAlign。生成5个 14*14*256的ROI特征图。接着对...原创 2019-03-21 21:34:37 · 551 阅读 · 0 评论 -
maskrcnn_benchmark理解记录——layers\roi_align.py @staticmethod 及@once_differentiable用于不可导function的反向传播
参考:【1】、【2】、【3】调用某个类的方法,需要先生成一个实例,再通过实例调用方法。Python提供了两个修饰符@staticmethod @classmethod可以使用类直接进行调用。@staticmethod 声明方法为静态方法,直接通过 类||实例.静态方法()调用。经过@staticmethod修饰的方法,不需要self参数,其使用方法和直接调用函数一样。一:关于torch...原创 2019-03-18 13:44:14 · 2849 阅读 · 6 评论 -
maskrcnn_benchmark理解记录——由demo\predictor.py引入推断过程
主要看下run_on_opencv_image(self, image)。大概是这样几步。逐步记录 predictions = self.compute_prediction(image) #np.ndarray): an image as returned by OpenCV to tensor top_predictions = self.select_to...原创 2019-03-20 15:29:27 · 2151 阅读 · 2 评论 -
maskrcnn_benchmark理解记录——modeling\detector\generalized_rcnn.py
Generalized R-CNN的主类。就是说这个是mask rcnn的正常架构(boxes and masks. )。至于关节点和其他改变不在此部分。1)self.backbone = build_backbone(cfg)2)self.rpn = build_rpn(cfg, self.backbone.out_channels)3)self.roi_heads = build...原创 2019-03-20 15:16:52 · 953 阅读 · 0 评论 -
maskrcnn_benchmark理解记录——modeling\backbone\resnet.py
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved."""将cfg作为参数的resnet模块的变体。Variant of the resnet module that takes cfg as an argument.Example usage. Strings may be specifie...原创 2019-03-20 14:17:17 · 894 阅读 · 0 评论 -
maskrcnn_benchmark理解记录——modeling\backbone\fpn.py
之前我一直不懂这个FPN怎么配合的,今天看到了,其实是在basebone.py里根据config,创建resnet后,选取指定层(Conv2~Conv5),到此文件下,进行构建FPN部分,也是在这里添加了P6层,构建成(P2~P6)完了再返给backbone.py,从而构建resnet+fpn的backbone。即build_resnet_fpn_backbone。这个roi 是指在原图上的...原创 2019-03-20 14:15:30 · 735 阅读 · 1 评论 -
maskrcnn_benchmark理解记录——modeling\backbone\backbone.py
因为是resnet50+FPN。这里的backbone.py 主要是先通过resnet.py配合config,我的是生成resnet50的网络,并且由于"R-50-FPN": ResNet50FPNStagesTo5,又要配合FPN,所以可以看到配置是在index是1~4层,也就是conv2~conv5都作为特征提取层的。如果不配合FPN,只是标准的残差,只要conv5是特征提取层。...原创 2019-03-20 14:12:18 · 1047 阅读 · 3 评论 -
maskrcnn_benchmark理解记录——modeling\roi_heads\roi_heads.py
占坑由两分支组成:检测分支和分割分支组成;1) roi_heads.append(("keypoint", build_roi_keypoint_head(cfg, in_channels)))2) roi_heads = CombinedROIHeads(cfg, roi_heads)1)build_roi_keypoint_head可查看modeling\roi_h...原创 2019-03-20 21:07:51 · 1540 阅读 · 2 评论 -
maskrcnn_benchmark理解记录——modeling\rpn\rpn.py
经过rpn网络得到候选框。是对每一层特征图都用FPN的:proposals, proposal_losses = self.rpn(images, features, targets)看下 RPNModule(torch.nn.Module):会返回num_anchors。处理步骤有1)anchor_generator = make_anchor_generator(cfg)...原创 2019-03-20 21:02:02 · 983 阅读 · 0 评论 -
maskrcnn_benchmark理解记录——modeling\roi_heads\box_head\roi_box_feature_extractors.py
摘取config记录如下MODEL: META_ARCHITECTURE: "GeneralizedRCNN" WEIGHT: "catalog://ImageNetPretrained/MSRA/R-50" BACKBONE: CONV_BODY: "R-50-FPN" RESNETS: BACKBONE_OUT_CHANNELS: 256 ROI_H...原创 2019-03-18 15:07:47 · 2455 阅读 · 2 评论 -
maskrcnn_benchmark理解记录——transforms.py。__init__和__call__和类、继承、对象、实例、方法和数据增强
文件地址:maskrcnn-keypoint/maskrcnn_benchmark/data/transforms/transforms.py这个文件我看了好久。此函数主要是用于数据预处理、增强的,如resize,水平翻转RandomHorizontalFlip,数据转换ToTensor,归一化Normalize。是调用了torchvision.transforms.[地址]这个放在最后,主...原创 2019-03-07 13:29:42 · 658 阅读 · 0 评论 -
maskrcnn_benchmark-----Step-by-step tutorial 如何训练自己的数据集以及网络的finetune
https://github.com/facebookresearch/maskrcnn-benchmark/issues/521ps:如果只需要fintune的话,直接看第二部分,是可以查看model的各个键值的,然后根据需要进行删减。ps:后面有个乱七八糟的,是我记录的,后期删改ps:还有个是可以冻结残差网络的训练层的,eg:resnet50,我冻结了最大层,也就是:FREEZE_...翻译 2019-04-25 20:13:30 · 2450 阅读 · 6 评论