matterport_MaskRCNN(3)——训练模型

在目录Mask_RCNN-master\samples\shapes中,根据train_shapes.ipynb创建自己的训练文件
训练代码如下,模型文件会保存在该文件的上级目录的logs文件夹中,每个epoch结束保存一次

# -*- coding: utf-8 -*-
"""
Created on Wed Nov  6 19:06:46 2019
@author: Lenovo
"""
import os
import sys
import random
import math
import re
import time
import numpy as np
import cv2
import matplotlib
import matplotlib.pyplot as plt
from PIL import Image
import yaml
import skimage.io

# 添加文件跟目录到搜索路径
ROOT_DIR = os.path.abspath("../../")
# 引入MaskRCNN
sys.path.append(ROOT_DIR)  
from mrcnn.config import Config
from mrcnn import utils
import mrcnn.model as modellib
from mrcnn import visualize
from mrcnn.model import log

################################保存模型以及下载预训权重###############################################
# 保存日志和训练模型的文件夹
MODEL_DIR = os.path.join(ROOT_DIR, "logs")
# 预训练权重文件的路径,没有则自动下载
COCO_MODEL_PATH = os.path.join(ROOT_DIR, "mask_rcnn_coco.h5")
if not os.path.exists(COCO_MODEL_PATH):
    utils.download_trained_weights(COCO_MODEL_PATH)
################################自定义配置文件################################################

class HooksConfig(Config):
    """
    在shapes数据集上进行配置修改,即创建继承于基类Config的子类并且修改对应的属性值即可
    """
    NAME = "hooks"
    GPU_COUNT = 1
    IMAGES_PER_GPU = 2   #每个GPU处理的图片数量
    NUM_CLASSES = 1 + 1  # background + hooks

	# 设置图片resize时的最大最小尺寸
    IMAGE_MIN_DIM = 128*8
    IMAGE_MAX_DIM = 128*8

    # 使用的anchor尺寸,根据resize信息进行设置,8*8指的是正方形anchor的边长,也就是此时anchor的面积为(8*8)^2
    RPN_ANCHOR_SCALES = (8*8, 16*6, 32*8, 64*8, 128*8)  
    
    # 每张图片中ROIs的数量,适当减少可以加速训练,目的在于允许ROI采样1/3的正类ROIs
    TRAIN_ROIS_PER_IMAGE = 32

    # 当数据比较简单时,可以使用较小的epoch
    STEPS_PER_EPOCH = 100

    # epoch较小时,也使用较小的验证步长
    VALIDATION_STEPS = 50
    
# 生成config对象并打印
config = HooksConfig()
config.display()

##########################用于可视化######################################################
def get_ax(rows=1, cols=1
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mask RCNN 是基于Kaiming 之前的工作 FPN (Feature Pyramid Network) 很形象地说就是用FPN产生的检测结果, 后面加了一个分割的网络. 文章中用到了 Top-Down + Bottom-Up 最近很流行的多层网络, 因为最开始Faster-RCNN只是在最后一层上面检测, 很容易丢掉小目标物体, 并且对细节遮挡也很不敏感. 最近的趋势就是结合多层 特征, 答主孔涛就很早发现了这个insight, 做出了HyperNet 并中了CVPR roal!!!作者:Oh233 链接:https://www.zhihu.com/question/57403701/answer/153060743 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 Mask R-CNN 这个结果确实很强,但要同时注意它主要是加上了许多(都是很有用的)engineering techniques 。 比如说 anchor 从 12 增加到了15个,图像 size 从600变成了800,还有ROI batch size变到了512,从FPN那篇paper来看,这些 better practice 会有对性能十分明显的提升 (table 3 baseline: AP=26.3 -> 31.6)。而我们组16年的coco分割竞赛冠军 ,Fully Convolutional Instance-aware Semantic Segmentation (FCIS)的代码昨晚终于开源了。限于计算资源,我们并没有加上这些改进。这些改进应该是比较 general 的,也会适用于 FCIS。欢迎大家试用一波。FCIS 提供了一种简单高效的框架去解决 instance segmentation 的问题。跟之前 COCO 2015 的冠军 MNC 相比,它的主要不同在于 mask estimation 和 detection 是共同做的,而不是先估计 mask 再做 detection。在 FCIS 中 detection/mask estimation 之间通过 inside/outside score map 互相影响,利用了这两个紧密相连 task 之间的共性。现在 release 版本基于支持多卡训练的MXNet,msracver/FCIS。实际上大概今年一月份我们就已经写出了外面可以使用的Caffe版本,但是当时官方 Caffe 只支持单卡做复杂任务的训练,对于COCO这种大规模数据集来说用单卡训练的话一下子几周的时间就过去了。考虑到大家用起来会非常蛋疼,最后还是决定没有release这个版本。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值