Windows10安装CenterNet以及训练

配置环境:
Windows10+VS2017+CUDA10.1+Python3.6+pytorch1.1
一、记录一下安装过程

  1. anaconda中创建虚拟环境
conda create --name CenterNet python=3.6 #创建虚拟环境
source activate CenterNet #激活环境

2.安装pytorch1.1

conda install pytorch==1.1

也可以官网指令安装,或者先下载到本地离线安装
3.下载源代码,https://github.com/xingyizhou/CenterNet
4.安装依赖项

5.安装COCO API,之前安过了

6.编译DCNv2
这里的DCN需要下载另一版本的DCNv2,源代码中的DCNv2不支持pytorch1.0以上
https://github.com/CharlesShang/DCNv2
下载后,将源文件中的DCNv2删除,将下载的文件放到源文件夹,这里之前我是直接替换,一直编译报错,可以注意一下!
修改src/cuda/下的dcn_v2_cuda.cu文件:

//extern THCState *state;
THCState *state = at::globalContext().lazyInitCUDA();

返回setup.py进行编译

python setup.py build develop

7.编译NMS

cd CenterNet/src/lib/external
make

编译成功,安装结束
二、运行demo测试

python demo.py ctdet --demo ../images/16004479832_a748d55f21_k.jpg --load_model ../models/ctdet_coco_dla_2x.pth

不过直接输入命令需要在线下载预训练模型,比较慢,可以先用迅雷将模型下载
1.去GitHub下载预训练模型ctdet_coco_dla_2x.pth或其它放到CenterNet文件中的models中
2.但是运行时会发现它还会继续下载模型并没有用本地的,需要改代码,在pose_dla_dcn.py文件里面,第309行开始的一个函数

def dla34(pretrained=True, **kwargs):  # DLA-34
    model = DLA([1, 1, 1, 2, 2, 1],
                [16, 32, 64, 128, 256, 512],
                block=BasicBlock, **kwargs)
    pretrained = False
    if pretrained:
        model.load_pretrained_model(data='imagenet', name='dla34', hash='ba72cf86')
    return model

令pretrained = False,有的说这样就可以下载本地的模型,不过我的并没有不知道为啥,于是注释了两行代码,在…\CenterNet\src\lib\models\networks\pose_dla_dcn.py中

def dla34(pretrained=False, **kwargs):  # DLA-34
    model = DLA([1, 1, 1, 2, 2, 1],
                [16, 32, 64, 128, 256, 512],
                block=BasicBlock, **kwargs)
#    if pretrained:
#        model.load_pretrained_model(data='imagenet', name='dla34', hash='ba72cf86')
    return model

在终端输入指令即可成功运行demo,输出图片,例
在这里插入图片描述
运行网络摄像头

python demo.py ctdet --demo webcam --load_model ../models/ctdet_coco_dla_2x.pth

三、训练
我电脑里有COCO2017,因此我就直接训练了COCO,自定义数据集需要时在调,main.py我在pycharm中调的,补充参数修改数据集路径即运行进入训练
1.其中问题:

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3:

路径转义问题,在路径前面加r

2.我是在笔记本调的,把修改参数numworks=0,batchsize=2,大了显存不足
3.

AttributeError: 'NoneType' object has no attribute 'shape'

解决方法:
训练图像不完整,修改训练的json文件或重新下载数据集。
有问题一起讨论~~~

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值