zoukankan      html  css  js  c++  java
  • 【目标检测】关于如何在 PyTorch1.x + Cuda10 + Ubuntu18.0 运行 CenterNet 源码

    这几天一直在尝试运行CenterNet的源码,但是出现各种问题,本已经打算放弃,中午吃完饭又不甘心,打算重新安装环境再来一遍,没想到竟然成功了。所以,坚持下去,黑夜过后便是黎明。

    注意:gcc/g++ 版本尽量为 5.x

    CornerNet 源码仓库:CenterNet

    CornerNet 安装:

    1. 创建 Anaconda 环境,并激活环境

    conda create --name CenterNet python=3.6
    conda activate CenterNet

    2. 安装 PyTorch:进入PyTorch官网,根据自己的系统情况生成安装PyTorch的命令

    3. 手动修改 torch/nn/functional.py 文件内容(文件地址:~/anaconda3/envs/CenterNet/lib/python3.6/site-packages/torch/nn/functional.py)

    # 找到下面一行
    torch.batch_norm
    # 并将其中的 torch.backends.cudnn.enabled 替换为 False

    4. 安装 COCOAPI

    git clone https://github.com/cocodataset/cocoapi.git

    5. 之后进入该文件夹(cocoapi),再进入PythonAPI,分别执行以下两条命令

    make
    python setup.py install --user

    6. 克隆 CornerNet 源代码

    git clone https://github.com/xingyizhou/CenterNet

    7. 安装 requirements.txt 文件中的module

    pip install -r requirements.txt

    8. 这里是重点:由于我们使用的版本是 PyTorch1.x ,所以在编译DCNv2时会发生错误(关于 torch.utils.ffi)。可通过以下方式解决:

    cd CenterNet/src/lib/models/networks
    rm -rf DCNv2
    git clone https://github.com/CharlesShang/DCNv2
    cd DCNv2/src/cuda
    vim dcn_v2_cuda.cu

    将该文件中(第11行)的 extern THCState *state; 改为 THCState *state = at::globalContext().lazyInitCUDA();

    然后再执行以下命令(在DCNv2文件夹下):

    python setup.py build develop

    9. 测试

    cd CenterNet/src
    python demo.py ctdet --demo ../images/17790319373_bd19b24cfc_k.jpg --load_model ../models/ctdet_coco_dla_2x.pth --debug 2

    References:

      【github】

     
  • 相关阅读:
    flutter 反序列化
    系统架构师-系统开发基础
    java Lambda表达式
    java异常
    HTTP缓存了解(一)
    设计模式(一):策略模式
    配置自己的ubuntu
    正则表达式:贪婪与非贪婪
    .htaccess文件
    mysql协议简析
  • 原文地址:https://www.cnblogs.com/xxxxxxxxx/p/11630310.html
Copyright © 2011-2022 走看看