从0开始——跑起Mask-RCNN Demo
从0开始——跑起Mask-RCNN Demo
本教程适用于0基础入门机器学习的Coder,阅读完之后你将能在你的电脑上跑起来Mask-RCNN官方的Demo噢!
俗话说: 再🐮的理论也要首先通过实践,把项目跑起来才是硬道理,代码可以之后慢慢研究!
基于以上原则,本教程:
- 只专注于Demo运行的环境配置
- 不带有任何机器学习原理的代码原理讲解
本文Demo运行的外部环境: Win10(64bits) + Anaconda3(2020.11版)
MaskRCNN
简介
大名鼎鼎的 Mask RCNN 一举夺得 ICCV2017 Best Paper,名声大造。Mask RCNN 是何恺明基于以往的 Faster RCNN 架构提出的新的卷积网络,实现高效地检测图中的物体,并同时生成一张高质量的每个个体的分割掩码,即有效地目标的同时完成了高质量的语义分割。
论文地址: https://arxiv.org/abs/1703.06870
项目下载
项目开源地址: https://github.com/matterport/Mask_RCNN
在开源地址的项目release发布页内:
- Mask R-CNN 2.1中下载balloon_dataset.zip、mask_rcnn_balloon.h5、 Source code(zip/tar.gz)
- Mask R-CNN 2.0中下载mask_rcnn_coco.h5
本次教程需要用到的只有Source code和mask_rcnn_coco.h5,其他下载的文件在进一步学习中会用到。
下载完成后,解压Source code,然后将mask_rcnn_coco放在主目录下:
完成以上步骤后就做好了项目前期准备,本文的目的就是要__让Demo.ipynb成功运行__
Anaconda[Python环境配置]
Anaconda官网下载地址: https://www.anaconda.com/products/individual#Downloads
安装较为简单,这里不花笔墨叙述如何安装Anaconda,不会可以自行百度Anaconda安装教程。
Q :我已经安装了python了,安装Anaconda会有冲突么,需要卸载python再安装Anaconda么?
A :不会冲突,放心安装。Anaconda可以与现有的python版本共存,只要二者都配置了环境变量即可。
给Anaconda换国内源,可以解决下载缓慢的问题=>Conda换源
[注]:以下安装命令中所有环境和库的版本,最好与本文版本相同,以免出现不必要的麻烦。
Python虚拟环境
安装好Anaconda,并配置好环境变量后,打开cmd或Anaconda Prompt。
进行以下操作:
Step1: 创建python3.6版本的虚拟环境
conda create -n `[虚拟环境名]` python=3.6
弹出(y/n)时,输入y即可。
Step2: 虚拟环境基础操作命令
激活虚拟环境
:
activate `[虚拟环境名]`
退出虚拟环境
:
deactivate
删除虚拟环境
:
conda remove -n `[虚拟环境]`
激活了虚拟环境后,使用conda/pip的安装命令只会给虚拟环境envs安装;
如果出现错误,可以选择直接删掉虚拟环境重来。
Jupyter Notebook配置
一般使用Anaconda创建的python虚拟环境自带Jupyter Notebook,使用以下命令打开:
jupyter notebook
但自带的会有不完善的地方,这里补全。
Step1: 安装nb_conda使Jupyter Notebook能够切换虚拟环境
conda install nb_conda
安装后打开jupyter notebook 可以看到Conda插件,并显示环境,如下图:
[笔者的电脑上有root(基础python)、Anaconda2020.11(Anaconda自带)、python3.6(虚拟环境envs))三种环境]
此处可能出现的相关错误:
打开jupyter notebook后,出现Dead Kenel
The kernel has died,and the automatic restart has failed.
Jupyter NoteBook如果出现问题,一定要看看控制台cmd报了什么错误,根据该错误网上搜索解决
Python库安装
Step1: 根据github上Mask-RCNN的ReadMe,要安装requirements.txt中的python库
然而各种库版本不对很容易导致各种问题,四处碰壁。这里推荐按本文的requirements.txt配置
可以点击这里直接下载:requirements.txt
编辑好requirements.txt后,然后使用以下命令安装
pip install -r requirements.txt
如果不按本文中的requirements.txt配置,请注意Tensorflow和Keras版本对应
Step2: 安装coco库
该步骤需要区分Window系统和Linux系统安装
Windows :
pip install pycocotools-windows
Linux :
【需要Linux已安装C语言编译器如cmaker】
方法1:
pip install git+https://github.com/waleedka/cocoapi.git#egg=pycocotools&subdirectory=PythonAPI
方法2:
git clone https://github.com/waleedka/coco.git
cd coco/PythonAPI
make
sudo make install
sudo python setup.py install
Demo运行
Step1: cmd打开jupyter notebook
jupyter notebook
Step2: 打开项目目录下的demo.ipynb,并切换Kenel为你的python3.6虚拟环境
Step3: 一路Shift
+Enter
,即可
Import库时看到如下图,则说明没问题:
最后Run Object Detection时,首先会看到数据:
等待一会儿会出现训练测试图片:
如果以上步骤完美运行,那么恭喜你,成功跑起来了Mask-RCNN的Demo!
此处可能出现的相关错误:
碰壁
Conda 换源
清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
# 设置搜索时显示通道地址
conda config --set show_channel_urls yes
中科大源
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
# 设置搜索时显示通道地址
conda config --set show_channel_urls yes
Jupyter Notebook配置相关
Dead Kenel内核死亡[ImportError: cannot import name ‘generator_to_async_generator’]
该内核死亡原因,查看cmd,抛出以下错误:
ImportError: cannot import name 'generator_to_async_generator'
解决方法: 参考网页
先执行2
次,完全卸载ipython 和 prompt_toolkit
pip uninstall -y ipython prompt_toolkit
再重新安装ipython prompt_toolkit
pip install ipython prompt_toolkit
[AttributeError: module ‘dateutil.tz’ has no attribute ‘UTC’]
该错误不容易发现,在jupyer notebook中表现为运行无反应。查看cmd,抛出以下错误:
AttributeError: module 'dateutil.tz' has no attribute 'UTC'
解决方法: 参考网页
重新强制安装python-dateutil
pip install python-dateutil --upgrade --force
Demo运行相关
[ImportError: No module named ‘pycocotools’]
问题原因: coco库没有成功安装
解决方法: 安装coco库
[AttributeError: ‘str’ object has no attribute ‘decode’]
问题原因: h5py的版本过高,大于了3.0
解决方法: 参考网页
pip install h5py==2.10.0
安装时要关闭jupyter notebook以防止 h5py文件夹被占用,无法写入h5py2.10.0进行覆盖
[AttributeError:module ‘scipy.misc’ has no attribute ‘imresize’]
问题原因: scipy的版本过高
解决方法: 参考网页
pip install scipy==1.2.2
安装时要关闭jupyter notebook以防止 scipy文件夹被占用,无法写入scipy1.2.2进行覆盖
至此,本文结束,感谢阅读!
本博客所有文章均采用 CC BY-NC-SA 4.0 协议 ,禁止商用,转载请注明出处!