Mask RCNN在图像分割的应用

近几年的演化过程:
FastRCNN->MaskRCNN->PANet

对比MaskRCNN 和FastRCNN,其中之一就是把ROI pool layer换成了ROIAlign layer ,下面解释一下ROIAlign,
2. ROIAlign
说到这里,自然要与roi pooling对比。
我们先看看roi pooling的原理,这里我们可以看https://github.com/deepsense-ai/roi-pooling 的动图,一目了然。

对于roi pooling,经历了两个量化的过程:
第一个:从roi proposal到feature map的映射过程。方法是[x/16],这里x是原始roi的坐标值,而方框代表四舍五入。
第二个:从feature map划分成7*7的bin,每个bin使用max pooling。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是用Python和Keras实现的Mask RCNN图像分割代码示例: ```python import mrcnn.model as modellib from mrcnn import visualize from mrcnn.config import Config from skimage import io class MyConfig(Config): NAME = "my_config" IMAGES_PER_GPU = 1 NUM_CLASSES = 1 + 1 STEPS_PER_EPOCH = 100 DETECTION_MIN_CONFIDENCE = 0.9 class MyDataset(utils.Dataset): def load_dataset(self, dataset_dir): self.add_class("dataset", 1, "object") self.add_class("dataset", 2, "background") self.add_image("dataset", image_id=1, path=dataset_dir+"/image.jpg", class_id=1) self.add_image("dataset", image_id=2, path=dataset_dir+"/bg.jpg", class_id=2) def load_mask(self, image_id): info = self.image_info[image_id] mask = [io.imread("path/to/mask")] class_ids = [1] return mask, class_ids config = MyConfig() model = modellib.MaskRCNN(mode="inference", config=config, model_dir='./') model.load_weights("path/to/weights.h5", by_name=True) image = io.imread("path/to/image") results = model.detect([image], verbose=0) r = results[0] visualize.display_instances(image, r['rois'], r['masks'], r['class_ids'], ['BG', 'object'], r['scores']) ``` 这里假设您已经有了一个包含图像和相应标记的数据集。通过创建自己的配置类和数据集类,您可以将Mask RCNN应用于自己的数据集,并使用训练好的权重来进行图像分割。在上面的代码中,我们加载了一个图像,并将其传递给模型进行预测。最后,我们使用可视化工具显示了分割结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值