CenterNet :《objects as points》从入门到放弃— —踩坑记

官方复现链接:pytorch实现

一、Install

0- 创建虚拟conda 环境

conda create --name CenterNet python=3.6

激活环境

conda activate CenterNet

激活成功标志
在这里插入图片描述
遇到的坑及解决方案
1- conda install pytorch=0.4.1 torchvision -c pytorch
这一步卡住了,原因是指定官方的pytorch下载通道,下到一半就会遇到http错误或read time out。
解决方案:
(1)先离线下载好对应的torch=0.4.1的包,点击进入,选择对应的版本下载;
(2)在终端运行conda install pytorch=0.4.1 torchvision,完成剩余依赖包的安装;

2- 安装cocoapi
在指定目录下运行git clone https://github.com/cocodataset/cocoapi.git
进入到目录./cocoapi/PythonAPI 运行 make
出现gcc错误:
在这里插入图片描述
解决方案:pip install cython , 再次运行 make 指令即可。

3- 把仓库整个下载下来,在你的目录下运行:

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

4- 安装需要用到的依赖库:pip install -r requirements.txt

5- 编译 Compile deformable convolutional (from DCNv2).
进入到指定路径CenterNet_ROOT/src/lib/models/networks/DCNv2下,运行make.sh文件即可。

6- 下载预训练的模型放置到models文件夹下,这里下载的是目标检测,选了一个最高分的。
Download pertained models for detection or pose estimation and move them to $CenterNet_ROOT/models/. More models can be found in Model zoo.

二、运行CenterNet

1- 先下载官方的模型文件(也是放置到models文件夹下),可以实现图片/图片目录/网络摄像头/视频 检测;
2- 找到demo.py这个文件,运行前先检查你各方面的路径是否设置正确了。
报错:
在这里插入图片描述
提示我DCNv2没有相应的依赖库,回到这个目录DCNv2下,编译./make.sh
又报错了,别问,问就是你的错。
在这里插入图片描述
解决方案:重装torch_vision

pip install torch

回到刚刚那步,重新编译./make.sh成功,运行demo代码,报错,提示没有torchvision

pip install torchvision

重新运行

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

成功
在这里插入图片描述
在这里插入图片描述
调取网络摄像头,ubuntu系统下

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

报错:

VIDEOIO ERROR: V4L: can't open camera by index 0

把设备号改为1也不行。

改为-1的时候提示找不到摄像头,差了下发现是在ubuntu系统上需要sudo指令来执行

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

报错:提示

sudo: python:找不到命令

解决方案,直接定位到所在解释器的位置:

sudo /home/username/anaconda3/envs/CenterNet/bin/python demo.py ctdet --demo webcam --load_model ../models/ctdet_coco_dla_2x.pth

又报了一个错:

efault
heads {'hm': 80, 'wh': 2, 'reg': 2}
Creating model...
loaded ../models/ctdet_coco_dla_2x.pth, epoch 230
ASSERT: "false" in file qasciikey.cpp, line 501
已放弃

解决方案:
定位到demo.py文件中,把cv2.imshow(‘input’, img) 这一行注释掉。
成功调用摄像头。
在这里插入图片描述
如果遇到ImportError: cannot import name 'dcn_v2'这种错误的话,可以从github上下载DCN_v2这个文件夹,替换掉原来的文件;
替换完成后,到DCN_v2这个目录下,运行 ./make.sh
如果还是报错,提示bash. make权限不够,运行下下面两行就可以搞定了。

chmod 777 ./make.sh
bash ./make.sh

总体流程总结下:

# 环境===》cuda=10.0, anaconda=Anaconda3-5.3.1-Linux-x86_64.sh,Ubuntu18.04
1- git clone https://github.com/xingyizhou/CenterNet.git
2- conda create --name CenterNet python=3.6
3- conda activate CenterNet
4- pip install -r requirements.txt
5- conda install pytorch=1.1 torchvision(the pip channel use https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free)
6- cd CenterNet\src\lib\external
python setup.py build_ext --inplace
7- cd /CenterNet/src/lib/models/networks
rm -r DCNv2
git clone https://github.com/CharlesShang/DCNv2.git
cd /CenterNet/src/lib/models/networks/DCNv2
python setup.py build develop
8- down ctdet_coco_dla_2x.pth from this https://drive.google.com/file/d/1pl_-ael8wERdUREEnaIfqOV_VF2bEVRT/view and put it in /Centernet/models
9- cd CenterNet/src/, and run:
python demo.py ctdet --demo ../images/24274813513_0cfd2ce6d0_k.jpg --load_model ../models/ctdet_coco_dla_2x.pth
10- done!

有其他错误欢迎在评论区积极留言。

三、训练自己的数据集

参考这篇博文,点击进入

知乎ID:https://www.zhihu.com/people/peissen,欢迎关注讨论。

  • 8
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 22
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值