![9bde20430c92bcaf2c5858ecd1957144.png](https://img-blog.csdnimg.cn/img_convert/9bde20430c92bcaf2c5858ecd1957144.png)
一、安装
地址:MaskRCNN-Benchmark(Pytorch版本)
首先要阅读官网说明的环境要求,千万不要一股脑直接安装,不然后面程序很有可能会报错!!!
- PyTorch 1.0 from a nightly release. It will not work with 1.0 nor 1.0.1. Installation instructions can be found in https://pytorch.org/get-started/locally/
- torchvision from master
- cocoapi
- yacs
- matplotlib
- GCC >= 4.9
- OpenCV
# first, make sure that your conda is setup properly with the right environment
# for that, check that `which conda`, `which pip` and `which python` points to the
# right path. From a clean conda env, this is what you need to do
conda create --name maskrcnn_benchmark
conda activate maskrcnn_benchmark
# this installs the right pip and dependencies for the fresh python
conda install ipython
# maskrcnn_benchmark and coco api dependencies
pip install ninja yacs cython matplotlib tqdm opencv-python
# follow PyTorch installation in https://pytorch.org/get-started/locally/
# we give the instructions for CUDA 9.0
conda install -c pytorch pytorch-nightly torchvision cudatoolkit=9.0
export INSTALL_DIR=$PWD
# install pycocotools
cd $INSTALL_DIR
git clone https://github.com/cocodataset/cocoapi.git
cd cocoapi/PythonAPI
python setup.py build_ext install
# install apex
cd $INSTALL_DIR
git clone https://github.com/NVIDIA/apex.git
cd apex
python setup.py install --cuda_ext --cpp_ext
# install PyTorch Detection
cd $INSTALL_DIR
git clone https://github.com/facebookresearch/maskrcnn-benchmark.git
cd maskrcnn-benchmark
# the following will install the lib with
# symbolic links, so that you can modify
# the files if you want and won't need to
# re-build it
python setup.py build develop
unset INSTALL_DIR
# or if you are on macOS
# MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ python setup.py build develop
一定要按上面的说明一步一步来,千万别省略,不然后面程序很有可能会报错!!!
二、数据准备
我要制作的原始数据格式是训练文件在一个文件(train),标注文件是csv格式,内容如下:
![b084ccc77218ef5d79afabcc0dbe3d1c.png](https://img-blog.csdnimg.cn/img_convert/b084ccc77218ef5d79afabcc0dbe3d1c.png)
第一步,先把全部有标记的图片且分为训练集,验证集,分别存储在两个文件夹中,代码如下:
#!/usr/bin/env python
# coding=UTF-8
'''
@Description:
@Author: HuangQinJian
@LastEditors: HuangQinJian
@Date: 2019-05-01 12:56:08
@LastEditTime: 2019-05-01 13:11:38
'''
import pandas as pd
import random
import os
import shutil
if not os.path.exists('trained/'):
os.mkdir('trained/')
if not os.path.exists('val/'):
os.mkdir('val/')
val_rate = 0.15
img_path = 'train/'
img_list = os.listdir(img_path)
train = pd.read_csv('train_label_fix.csv')
# print(img_list)
random.shuffle(img_list)
total_num = len(img_list)
val_num = int(total_num*val_rate)
train_num = total_num-val_num
for i in range(train_num):
img_name = img_list[i]
shutil.copy('train/' + img_name, 'trained/' + img_name)
for j in range(val_num):
img_name = img_list[j+train_num]
shutil.copy('train/' + img_name, 'val/' + img_name)
第二步,把csv格式的标注文件转换成coco的格式,代码如下:
#!/usr/bin/env python
# coding=UTF-8
'''
@Description:
@Author: HuangQinJian
@LastEditors: HuangQinJian
@Date: 2019-04-23 11:28:23
@LastEditTime: 2019-05-01 13:15:57
'''
import sys
import os
import json
import cv2
import pand