• 全卷积实例分割实战


    全卷积实例分割实战

    Fully Convolutional Instance-aware Semantic Segmentation

    介绍             

    FCIS是一个完全卷积的端到端解决方案,例如分割,它赢得了2016年COCO分割挑战赛的第一名。FCIS最初在CVPR 2017聚光灯文件中进行了描述。值得注意的是:             

    FCIS提供了一个简单、快速、准确的实例分割框架。与MNC不同,FCIS同时联合进行实例掩码估计和分类,并估计类特定的掩码。没有利用掩模RCNN系统中的各种技术和技巧,例如增加RPN锚定数(从12到15)、在图像边界外训练锚定、放大图像(较短的一面从600到800像素)、利用FPN特征和对齐的ROI池。这些技术和技巧应该与的简单基线正交。             

    资源             

    COCO 2016挑战赛参赛作品:OneDrive中COCO测试集的前5k图像的视觉效果。             

    ImageNet ILSVRC和COCO 2016研讨会幻灯片:OneDrive。

    免责声明             

    这是基于MXNet的完全卷积实例感知语义分割(FCIS)的官方实现。

    值得注意的是:             

    最初的实现基于在Windows上的内部Caffe版本。由于站台道岔细节丰富,最终精度和运行时间略有不同。             

    该代码在官方MXNet@(commit 62ecb60)上进行测试,并带有FCIS的额外运算符。使用模型转换器基于ImageNet预先训练的ResNet-v1-101训练模型。转换后的模型产生的精度稍低(ImageNet val的最大误差:24.0%v.s.23.6%)。此存储库使用来自MXNet rcnn示例和mx rfcn的代码。             

    许可证             

    版权所有Microsoft,2017年。有麻省理工学院的执照。

    引用FCIS             

    如果发现FCIS对的研究有用,可考虑引用:

    @inproceedings{li2016fully,

      Author = {Yi Li, Haozhi Qi, Jifeng Dai, Xiangyang Ji and Yichen Wei}

      Title = {Fully Convolutional Instance-aware Semantic Segmentation},

      Conference = {CVPR},

      year = {2017}

    }

    Main Results

     

     运行时间计算在单个Maxwell Titan X GPU上(推断最小批量大小为1)。             

    要求:软件             

    来自官方存储库的MXNet。在MXNet@(commit62ecb60)上测试了代码。由于MXNet的快速发展,如果遇到任何问题,建议签出此版本。如果MXNet在将来的版本中添加了重要功能,可以定期维护这个存储库。             

    Python包可能丢失:cython,opencv Python>=3.2.0,easydict。如果在系统上设置了pip,那么应该可以通过运行。

    pip install Cython
    pip install opencv-python==3.2.0.6
    pip install easydict==1.6
    pip install hickle

    对于Windows用户,需要Visual Studio 2015来编译cython模块。

    Requirements: Hardware

    任何具有至少5GB内存的NVIDIA GPU都应该可以              

    安装             

    克隆FCIS存储库,将克隆的FCIS的目录称为${FCIS_ROOT}。

    git clone https://github.com/msracver/FCIS.git

    对于Windows用户,运行cmdinit.bat. 对于Linux用户,运行sh ./init.sh。脚本将自动生成cython模块并创建一些文件夹。             

    安装MXNet:             

    注意:在此PR之后,MXNet的自定义操作无法使用多个gpu并行执行。强烈建议用户回滚到MXNet@(提交998378a)版本进行训练(请参阅第3.2-3.6节)。快速启动             

    3.1安装MXNet和所有依赖项

    pip install -r requirements.txt

    如果没有错误消息,则应成功安装MXNet。             

    从源代码生成(可选方式)             

    3.2克隆MXNet并通过以下方式签出到MXNet@(提交998378a)

    git clone --recursive https://github.com/dmlc/mxnet.git
    git checkout 998378a
    git submodule init
    git submodule update

    3.3将$(FCIS_ROOT)/FCIS/operator_cxx中的通道运算符复制到$(YOUR_MXNET_ _FOLDER)/src/operator/contrib

    cp -r $(FCIS_ROOT)/fcis/operator_cxx/channel_operator* $(MXNET_ROOT)/src/operator/contrib/

    3.4 Compile MXNet

    cd ${MXNET_ROOT}
    make -j $(nproc) USE_OPENCV=1 USE_BLAS=openblas USE_CUDA=1 USE_CUDA_PATH=/usr/local/cuda USE_CUDNN=1

    3.5安装MXNet Python绑定             

    注意:如果您将在不同版本的MXNet之间主动切换,请遵循3.5而不是3.4

    cd python
    sudo python setup.py install

    3.6 For advanced users, you may put your Python packge into ./external/mxnet/$(YOUR_MXNET_PACKAGE), and modify MXNET_VERSION in ./experiments/fcis/cfgs/*.yaml to $(YOUR_MXNET_PACKAGE). Thus you can switch among different versions of MXNet quickly.

    Demo

    使用训练模型(在COCO trainval35k上)运行演示,从OneDrive手动下载该模型(中国用户也可以从白都云获得,代码为tmd4),并将其放在文件夹model/下。

    1.        Make sure it looks like this:

    2.    ./model/fcis_coco-0000.params

    3.        Run

    python ./fcis/demo.py

    训练和测试准备             

    从SBD下载带有附加注释的VOC 2012数据集。将inst、cls、img文件夹移动到VOCdevit,并确保它看起来像这样:             

    请在本回购协议中使用train&val拆分,遵循SDS协议。

    .data/VOCdevkit/VOCSDS/img/
    .data/VOCdevkit/VOCSDS/inst/
    .data/VOCdevkit/VOCSDS/cls/

    请下载5k图像minival子集和val2014减去minival(val35k)的COCO数据集和注释。确保它看起来像这样:

    .data/coco/
    .data/coco/annotations/instances_valminusminival2014.json
    .data/coco/annotations/instances_minival2014.json

    请从OneDrive手动下载ImageNet pretrained ResNet-v1-101模型,并将其置于folder ./model. 。确保它看起来像这样:

    ./model/pretrained_model/resnet_v1_101-0000.params

    用法             

    所有实验设置(GPU#,数据集等)都保存在文件夹./experiments/fcis/cfgs中的yaml配置文件中。             

    到目前为止提供了两个配置文件:FCIS@COCO公司与OHEM和FCIS@VOC没有OHEM。

    分别使用8和4个gpu来训练COCO和VOC模型。             

    要执行实验,请运行python脚本,并将相应的配置文件作为输入。例如,要使用ResNet-v1-101在COCO上训练和测试FCIS,请使用以下命令

    python experiments/fcis/fcis_end2end_train_test.py --cfg experiments/fcis/cfgs/resnet_v1_101_coco_fcis_end2end_ohem.yaml

    将自动创建一个缓存文件夹,将模型和日志保存在output/fcis/coco/或output/fcis/voc/下。             

    在配置文件和代码中找到更多详细信息。

    Misc.

    Code has been tested under:

    • Ubuntu 14.04 with a Maxwell Titan X GPU and Intel Xeon CPU E5-2620 v2 @ 2.10GHz
    • Windows Server 2012 R2 with 8 K40 GPUs and Intel Xeon CPU E5-2650 v2 @ 2.60GHz
    • Windows Server 2012 R2 with 4 Pascal Titan X GPUs and Intel Xeon CPU E5-2650 v4 @ 2.30GHz
  • 相关阅读:
    C#中remoting和webservice的区别
    Nhibernate了解(转载)
    深入浅出JSON
    Asp.net页面传值总结(转载)
    .Net ViewState的实现(转载)
    asp.net数据绑定之Eval和Bind区别
    PetShop数据库解读
    .Net 2.0 缓存使用(转载)
    ASP.NET中EVAL用法大全
    a:hover和a:visited书写顺序的重要性
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/12997120.html
Copyright © 2020-2023  润新知