Windows搭建MaskRCNN环境

环境:python3.6

1. 在miniconda上创建虚拟环境

miniconda下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda

# 创建环境
conda create -n maskrcnn python=3.6
# 激活 maskrcnn 环境,后续操作都在这个环境下进行
conda activate maskrcnn 

2. 升级pip

python -m ensurepip
python -m pip install --upgrade pip

3. 下载Mask_RCNN代码

对于MaskRCNN2.1版本直接下载并将权重文件mask_rcnn_coco.h5放在代码的根目录下即可,对于2.0版本需要在powershell中找到文件根目录输入下面命令进行安装,区别在于有没有setup.py文件

源码地址:https://github.com/matterport/Mask_RCNN/releases
进入项目根目录:

python setup.py install

在这里插入图片描述
mask_rcnn_coco.h5模型放在项目根目录下
在这里插入图片描述

4. 安装插件库

在maskRCNN2.0里面有一个requirements.txt文件,可以直接按照这个安装

pip install -r requirements.txt # 大概率会失败

若安装报错,按照如下版本手动安装

pip install numpy==1.17.0
pip install scipy==1.2.1
pip install Pillow==8.4.0
pip install cython==0.29.28
pip install matplotlib==3.3.4
pip install scikit-image==0.17.2
pip install keras==2.1.6
pip install opencv-python==4.3.0.38
pip install h5py==2.10.0
pip install imgaug==0.4.0
pip install ipython==7.16.3

5. 安装pycocotools

# windows环境
pip install pycocotools-windows

6. 测试COCO数据集

在根目录下创建mode_coco.py

'''
Author: qingqingdan 1306047688@qq.com
Date: 2024-11-22 17:48:33
LastEditTime: 2024-11-29 15:32:37
Description: 用coco模型去预测图片
'''
import os
import sys
import cv2
import numpy as np
import matplotlib.pyplot as plt
import colorsys
from skimage.measure import find_contours

from PIL import Image

# 将 Mask R-CNN 模块路径添加到系统路径
ROOT_DIR = os.path.abspath("./")  # 替换为 Mask R-CNN 文件夹路径
sys.path.append(ROOT_DIR)

from mrcnn.config import Config
from mrcnn import model as modellib
from mrcnn import visualize
from mrcnn.model import log

# 加载 COCO 类别信息
from mrcnn.config import Config
from mrcnn.utils import Dataset

# COCO 类别
COCO_CLASS_NAMES = [
    'BG', 'pe
### 实现Mask R-CNN模型 为了从零开始构建Mask R-CNN模型,理解其核心组件至关重要。Mask R-CNN扩展了Faster R-CNN框架来执行实例分割任务[^3]。 #### 1. 准备环境与依赖项安装 首先,创建一个新的虚拟环境并激活它: ```bash python -m venv mask_rcnn_env source mask_rcnn_env/bin/activate # Linux or macOS mask_rcnn_env\Scripts\activate # Windows ``` 接着安装必要的库: ```bash pip install tensorflow numpy opencv-python matplotlib imgaug h5py keras-resnet ``` #### 2. 数据准备 按照指导下载并解压`deep-learning-explorer`资源包中的`mask-rcnn`文件夹和数据集[^4]。确保将测试集中提供的标注信息和其他子目录正确放置于指定位置以便后续处理。 #### 3. 定义网络架构 基于Keras定义Mask R-CNN的主要组成部分——骨干网(Backbone),区域提议网络(RPN),分类器(Classifier)以及掩码预测分支(Mask Prediction Branch): ```python from keras.models import Model import keras.layers as KL def build_backbone(input_image, architecture="resnet50"): """Constructs the backbone network.""" if "resnet" not in architecture.lower(): raise ValueError("Architecture must be resnet.") from keras_resnet import models base_model = getattr(models, f"{architecture}_create")( include_top=False, input_tensor=input_image, weights='imagenet' ) C2, C3, C4, C5 = [base_model.get_layer(f'block_{i}').output for i in range(2, 6)] return (C2, C3, C4, C5) input_image = KL.Input(shape=[None, None, 3], name="input_image") backbones = build_backbone(input_image) ``` 此部分仅展示了骨架搭建;完整的实现还需要加入其他模块如FPN(Feature Pyramid Network),RPN等,并连接这些层形成最终的端到端可训练模型。 #### 4. ROI Align操作 对于每一个候选框(region proposal), 使用ROI Align技术代替传统的ROIPooling来进行空间量化,从而更好地保留边界处的信息[^2]: ```python class ROIAAlign(KL.Layer): def __init__(self, pool_shape=(7, 7)): super().__init__() self.pool_shape = pool_shape def call(self, inputs): rois, feature_maps = inputs pooled_regions = [] for roi_idx in range(rois.shape[0]): y1, x1, y2, x2 = tf.split(rois[roi_idx], num_or_size_splits=4, axis=-1) region_height = y2 - y1 region_width = x2 - x1 grid_y, grid_x = tf.meshgrid(tf.linspace(y1, y2, self.pool_shape[0]), tf.linspace(x1, x2, self.pool_shape[1])) sampled_features = bilinear_interpolate(feature_maps, grid_y, grid_x) pooled_region = tf.reduce_mean(sampled_features, axis=[1, 2]) pooled_regions.append(pooled_region) return tf.stack(pooled_regions) ``` 上述代码片段实现了基本版本的ROI Align功能,实际应用中可能需要进一步优化性能。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值