Mask Rcnn成功运行(配置其运行环境的艰辛路程,做了详细的记录,也希望能让大家少走点弯路)

文章目录

  • 1、源码以及数据下载、与修改
    • 1.1、Mask Rcnn源码下载
    • 1.2、源码的部分修改
      • 1.2.1、ballon.py文件的修改:
      • 1.2.2、ballon.py-配置的添加
      • 1.2.2.1 训练配置参数
        • 1.2.2.2 训练配置参数
  • 2、Mask Rcnn虚拟环境配置
    • 2.1、尝试过跑不通的环境(避坑)
      • 2.1.1、tensorflow2.0以上的环境
      • 2.1.2、采用源码给的环境
    • 2.2、本人成功运行的配置
  • 3、程序运行时遇到的报错
    • 3.1、One
    • 3.2、Two
    • 3.3、Three
    • 3.5、Four
  • 4、最后训练展示
  • 测试检测效果

1、源码以及数据下载、与修改

1.1、Mask Rcnn源码下载

Mask Rcnn官方源码及其数据集下载
Mask Rcnn源码主页面
Mask Rcnn成功运行(配置其运行环境的艰辛路程,做了详细的记录,也希望能让大家少走点弯路)_第1张图片

Source code (zip):源码压缩包下载。
balloon_dataset.zip:气球数据集,里面的图片并不是很多,几十张。
mask_rcnn_balloon.h5:训练好的气球数据集权重。
mask_rcnn_coco.h5:基于mask rcnn训练好的coco数据集的权重,但是这个我在官网没有找到。下面给出我百度网盘的分享:

mask_rcnn_coco.h5:下载链接如下:
链接:https://pan.baidu.com/s/1k0IhAh-H8HYsKl7t9C6jAQ 
提取码:bu1r 
--来自百度网盘超级会员V4的分享

具体存放路径如下图所示:

Mask Rcnn成功运行(配置其运行环境的艰辛路程,做了详细的记录,也希望能让大家少走点弯路)_第2张图片

1.2、源码的部分修改

1.2.1、ballon.py文件的修改:

把–dataset、–weights、–logs改为自己当前数据的绝对路径、以及logs文件的绝对路径。

if __name__ == '__main__':
    import argparse

    # Parse command line arguments
    parser = argparse.ArgumentParser(
        description='Train Mask R-CNN to detect balloons.')
    parser.add_argument("command",
                        metavar="",
                        help="'train' or 'splash'")
    parser.add_argument('--dataset', required=False,
                        metavar="C:/Users/Administrator/PycharmProjects/PYTORCH/Deep_eye/Target_detection/Mask_RCNN_master/balloon",
                        help='Directory of the Balloon dataset')
    parser.add_argument('--weights', required=True,
                        metavar="C:/Users/Administrator/PycharmProjects/PYTORCH/Deep_eye/Target_detection/Mask_RCNN_master/mask_rcnn_balloon.h5",
                        help="Path to weights .h5 file or 'coco'")
    parser.add_argument('--logs', required=False,
                        default=DEFAULT_LOGS_DIR,
                        metavar="C:/Users/Administrator/PycharmProjects/PYTORCH/Deep_eye/Target_detection/Mask_RCNN_master/logs", # /path/to/logs/
                        help='Logs and checkpoints directory (default=logs/)')
    parser.add_argument('--image', required=False,
                        metavar="C:/Users/Administrator/PycharmProjects/PYTORCH/Deep_eye/Target_detection/Mask_RCNN_master/balloon/val/14898532020_ba6199dd22_k.jpg",
                        help='Image to apply the color splash effect on')
    parser.add_argument('--video', required=False,
                        metavar="path or URL to video",
                        help='Video to apply the color splash effect on')
    args = parser.parse_args()

Mask Rcnn成功运行(配置其运行环境的艰辛路程,做了详细的记录,也希望能让大家少走点弯路)_第3张图片Mask Rcnn成功运行(配置其运行环境的艰辛路程,做了详细的记录,也希望能让大家少走点弯路)_第4张图片

1.2.2、ballon.py-配置的添加

  • 首先点击:如下图所示:
    Mask Rcnn成功运行(配置其运行环境的艰辛路程,做了详细的记录,也希望能让大家少走点弯路)_第5张图片

1.2.2.1 训练配置参数

  • 进入后再Parameters中添加相应配置:我添加的配置如下:
train --dataset=C:/Users/Administrator/PycharmProjects/PYTORCH/Deep_eye/Target_detection/Mask_RCNN_master/balloon --weights=coco

–dataset:在这里我先写入的是我存放气球数据集balloon文件夹的路径。
–weights:指的是初始化权重用的是coco数据集训练好的权重参数。如果有更好的训练权重参数,可以替换。这里也可以把coco换成存放coco权重文件的绝对路径。

Mask Rcnn成功运行(配置其运行环境的艰辛路程,做了详细的记录,也希望能让大家少走点弯路)_第6张图片

1.2.2.2 训练配置参数

配置方法与上面测试过程一样。

splash --weights=C:/Users/Administrator/PycharmProjects/PYTORCH/Deep_eye/Target_detection/Mask_RCNN_master/mask_rcnn_balloon.h5 --image=C:/Users/Administrator/PycharmProjects/PYTORCH/Deep_eye/Target_detection/Mask_RCNN_master/balloon/val/14898532020_ba6199dd22_k.jpg

image:后面可以换成自己想检测图片的路径。

2、Mask Rcnn虚拟环境配置

2.1、尝试过跑不通的环境(避坑)

2.1.1、tensorflow2.0以上的环境

本人首先尝试的是python3.7版本:具体配置如下:
tensorflow:pip install tensorflow2.5
keras:pip install keras
2.4.3
以及最新版本的tensorflow。。。。,但是都没泡跑通。

2.1.2、采用源码给的环境

这种方法大家也可以试试,下面是版本对应 和我为啥放弃这种方案。

conda create -n name python3.4
tensorflow:pip install tensorflow
1.3
keras:pip install keras2.0.8
这种环境我在安装python
3.4虚拟环境后,再安装tensorflow时,显示pip要更新,更新是小事,但是我尝了网上的多种办法都没有解决所以我放弃了这种方案,也建议大家去尝试一下,毕竟是官方的运行环境,是最匹配的。
官方给的配置如下图:
Mask Rcnn成功运行(配置其运行环境的艰辛路程,做了详细的记录,也希望能让大家少走点弯路)_第7张图片

2.2、本人成功运行的配置

1.虚拟环境安装:

conda create -n name python==3.6

2.tensorflow安装:

pip install tensorflow==1.5
在这里插入图片描述

3.keras安装 :

pip install keras==2.1.6
在这里插入图片描述
Mask Rcnn成功运行(配置其运行环境的艰辛路程,做了详细的记录,也希望能让大家少走点弯路)_第8张图片

4.安装scikit-image

pip install scikit-image==0.17.2
在这里插入图片描述
5.安装pycocotools
这个安装网上大多数安装教程都需要安装VS_Code,所以我感觉着这种方法很麻烦,所以找到了一篇 安装pycocotools很好的博客。

直接下载清华源的pycocotools到,你当前anaonda的虚拟环境的lib下(比如我的是D:\ProgramData\Anaconda3\envs\mask\Lib),然后pip install 就ok了。下载链接:Links for pycocotools-windows
Mask Rcnn成功运行(配置其运行环境的艰辛路程,做了详细的记录,也希望能让大家少走点弯路)_第9张图片
python是3.6版本,所以选用cp36
pycocotools_windows-2.0.0.2-cp36-cp36m-win_amd64.whl

安装命令如下:
pip install D:\ProgramData\Anaconda3\envs\mask\Lib、pycocotools_windows-2.0.0.2-cp36-cp36m-win_amd64.whl

也有一种可能安装成功了,但不能使用,那就必须再安装一个VScode,但本人安装后程序运行是没问题的。

3、程序运行时遇到的报错

3.1、One

报错AttributeError: ‘str’ object has no attribute 'decode’

解决方法:
pip install h5py==2.8.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
h5py的版本可以更换。

3.2、Two

报错AttributeError:module ‘keras.engine.topology’ has no attribute 'load_weights_from_hdf5_group_by_name

这个错误是在本人安装tensorflow==2.0以上版本运行后报错的,出现这一类的类似 问题一般都是tensorflow和keras版本不对应导致的,版本对应后,不会报这种错误。

3.3、Three

报错:tensorflow.python.framework.errors_impl.OperatorNotAllowedInGraph:using a tf.Tensor as a Python bool is not allowed in Graph execution. Use Eager execution or decorate this function with @tf.function.

这种问题出也是出现在我安装tensorflow-gpu2.0以上版本出现的,如果这个问题解决了,那么也是可以把mask-Rcnn跑通的,但是我搜寻了很久,也没有解决相关问题的方法。我之后尝试过安装过5种不同的2.0以上版本的tensorflow-cpu或-gpu都会出现这种错误。

所以我认为这种错误是tensorflow版本相对较高导致的

3.5、Four

在过程中还有出现过其他形式的报错,但是这些报错无需担心,通过百度或CSDN就能快速解决,是比较常见的错误。

4、最后训练展示


每个epoch保存一次权重参数(如下图:)
Mask Rcnn成功运行(配置其运行环境的艰辛路程,做了详细的记录,也希望能让大家少走点弯路)_第10张图片

测试检测效果

原图:
Mask Rcnn成功运行(配置其运行环境的艰辛路程,做了详细的记录,也希望能让大家少走点弯路)_第11张图片
测试后:

你可能感兴趣的