一、源码下载

官方源码:xingyizhou/CenterNet: Object detection, 3D detection, and pose estimation using center point detection:

注意:所有的模型等相关代码都在src的文件夹下的models中,根目录下的models文件夹是空的。


二、前言

下载好了代码以后,建议先看readme 

环境等配置看INSTALL.md(不看就只能直接运行demo.py,然后报错什么解决什么。😅我就是直接跑出了很多bug才有了这篇博客)

以下内容是从直接运行,到出现的bug一个一个的解决过程。

如果想更快复现,建议参看:

CenterNet复现全过程(包含自定义数据集的训练)-CSDN博客

解决PyTorch环境下No module named ‘_ext‘报错办法_no module named 'ext-CSDN博客


三、对图片/视频目标检测

3.1 下载权重文件到根目录下的models文件夹下


3.2 运行demo.py

 demo.py文件路径:src/demo.py

注意路径,最好全部用绝对路径:


3.3 下载最新DCNv2

 直接运行会报错:ModuleNotFoundError: No module named 'models.networks.DCNv2._ext'

 需要删除掉DCNv2这个文件夹

然后去以下地址下载最新的DCNv2,将下载好的文件重命名为DCVv2然后放到原来的路径:src/lib/models/networks/DCNv2

lucasjinreal/DCNv2_latest: DCNv2 supports decent pytorch such as torch 1.5+ (now 1.8+)


再次运行,报错:ModuleNotFoundError: No module named '_ext'

3.4 pytorch1.0以上版本要禁用cudnn的批量正则化

手动修改手动修改 torch/nn/functional.py 文件内容,如果你是anaconda环境(文件地址:~/anaconda3/envs/PyTorch/lib/site-packages/torch/nn/functional.py
找到torch.batch_norm中的torch.backends.cudnn.enabled替换为False(大概在1697行)

 3.5 编译nms

报错:

解决:

然后重新编译:

3.6 编译 DCNv2

进入新下载的DCNV2目录下,编译


3.7 手动下载权重文件并更改加载权重文件路径

修改完上述bug后,再次运行demo.py文件,它通过在指定的网址下载权重文件,可能会下载不成功,所以需要我们手动下载。

首先进入这个网址下载: "http://dl.yf.io/dla/models\imagenet\dla34-ba72cf86.pth"

下载到 models/dla34-ba72cf86.pth

然后修改这段函数,添加指定的加载路径:

改为:

 四、成功运行

再次运行demo.py文件

五、不使用命令行运行

如果不想每次运行都使用命令行重新输入,可以在demo.py中修改:

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐