能实现demo链接:https://pan.baidu.com/s/1HBPtIPz0xpZsCprl7rc6hw,密码:bvm5
官方训练好的模型mask_rcnn_coco.h5
链接:https://pan.baidu.com/s/1drKvfg 密码:yer9
对于pycocotools库安装方法如下
git clone https://github.com/pdollar/coco
cd coco/PythonAPI
将makefiles打开,将Python都改为python3.
然后终端输入:make
paul@bj:~/桌面/1/GITHUB/coco-master/PythonAPI$ make
python3 setup.py build_ext --inplace
running build_ext
rm -rf build
然后将pycocotools文件夹复制到mask-rcnn下.
最 后再将下好的mask_rcnn_coco.h5文件复制到根目录下。
好,大功告成,如下
paul@bj:~/桌面/Mask_RCNN-2.0$ python3 mask_rcnn_demo.py
Using TensorFlow backend.
Configurations:
BACKBONE_SHAPES [[256 256]
[128 128]
[ 64 64]
[ 32 32]
[ 16 16]]
BACKBONE_STRIDES [4, 8, 16, 32, 64]
BATCH_SIZE 1
BBOX_STD_DEV [0.1 0.1 0.2 0.2]
DETECTION_MAX_INSTANCES 100
DETECTION_MIN_CONFIDENCE 0.7
DETECTION_NMS_THRESHOLD 0.3
GPU_COUNT 1
IMAGES_PER_GPU 1
IMAGE_MAX_DIM 1024
IMAGE_MIN_DIM 800
IMAGE_PADDING True
IMAGE_SHAPE [1024 1024 3]
LEARNING_MOMENTUM 0.9
LEARNING_RATE 0.001
MASK_POOL_SIZE 14
MASK_SHAPE [28, 28]
MAX_GT_INSTANCES 100
MEAN_PIXEL [123.7 116.8 103.9]
MINI_MASK_SHAPE (56, 56)
NAME coco
NUM_CLASSES 81
POOL_SIZE 7
POST_NMS_ROIS_INFERENCE 1000
POST_NMS_ROIS_TRAINING 2000
ROI_POSITIVE_RATIO 0.33
RPN_ANCHOR_RATIOS [0.5, 1, 2]
RPN_ANCHOR_SCALES (32, 64, 128, 256, 512)
RPN_ANCHOR_STRIDE 1
RPN_BBOX_STD_DEV [0.1 0.1 0.2 0.2]
RPN_NMS_THRESHOLD 0.7
RPN_TRAIN_ANCHORS_PER_IMAGE 256
STEPS_PER_EPOCH 1000
TRAIN_ROIS_PER_IMAGE 200
USE_MINI_MASK True
USE_RPN_ROIS True
VALIDATION_STEPS 50
WEIGHT_DECAY 0.0001
Traceback (most recent call last):
File "mask_rcnn_demo.py", line 52, in <module>
model.load_weights(COCO_MODEL_PATH, by_name=True)
File "/home/paul/桌面/Mask_RCNN-2.0/model.py", line 2004, in load_weights
topology.load_weights_from_hdf5_group_by_name(f, layers)
AttributeError: module 'keras.engine.topology' has no attribute 'load_weights_from_hdf5_group_by_name'
出了一个error,百度一下,原来是keras的版本过高,
现这个错误的原因是:keras的版本不对。当我们在配置mask-rcnn的时候,根目录下的requirements.txt里面要求的python的包注明的是“keras>=2.0.8”,但是load_weights_from_hdf5_group_by_name只在keras2.0.8的版本中出现,不会出现在最新的keras版本中,(大家可以看下自己的keras版本,命令如下:(1)python 回车(2)import keras h 回车(3)keras.__version__ 回车),我这里默认安装的是keras2.2.0,版本太高。
解决方法:1)卸载keras:pip uninstall keras 2)安装2.0.8版本的keras:pip install keras==2.0.8
再运行,OK,没问题,可以继续踩坑了(偷笑偷笑偷笑)
paul@bj:~/桌面/Mask_RCNN-2.0$ ipython3
Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.0.1 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import kerash
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-1-7e5e9140ebc5> in <module>
----> 1 import kerash
ModuleNotFoundError: No module named 'kerash'
In [2]: import keras
Using TensorFlow backend.
In [3]: keras.__version__
Out[3]: '2.2.4
卸载过高版本的keras,具体操作如下:
pip uninstall keras
Uninstalling Keras-2.2.4:
Would remove:
/home/paul/.local/lib/python3.6/site-packages/Keras-2.2.4.dist-info/*
/home/paul/.local/lib/python3.6/site-packages/docs/*
/home/paul/.local/lib/python3.6/site-packages/keras/*
Proceed (y/n)? y
Successfully uninstalled Keras-2.2.4
----------------------------------------------
安装较低版本keras
pip3 install --user keras==2.0.8
Collecting keras==2.0.8
Using cached https://files.pythonhosted.org/packages/67/3f/d117d6e48b19fb9589369f4bdbe883aa88943f8bb4a850559ea5c546fefb/Keras-2.0.8-py2.py3-none-any.whl
Requirement already satisfied: scipy>=0.14 in ./.local/lib/python3.6/site-packages (from keras==2.0.8) (1.1.0)
Requirement already satisfied: pyyaml in /usr/lib/python3/dist-packages (from keras==2.0.8) (3.12)
Requirement already satisfied: six>=1.9.0 in ./.local/lib/python3.6/site-packages (from keras==2.0.8) (1.11.0)
Requirement already satisfied: numpy>=1.9.1 in ./.local/lib/python3.6/site-packages (from keras==2.0.8) (1.15.2)
Installing collected packages: keras
Successfully installed keras-2.0.8
好了,这就成功了。
祝大家在挖坑的路上越走越远。