最近在做目标检测的项目,使用YOLOv3,Mask R-CNN,Faster R-CNN训练了自己的数据,效果还可以,在保证精度的情况下,速度有点慢。于是就开始找别的方法,发现了2019年的文章CenterNet :Objects as Points,想尝试看看效果。于是就开始了艰难的配置,在这里记录一下。
我是在服务器上训练的,环境是cuda10 ,使用的代码是https://github.com/xingyizhou/CenterNet
1.按照https://github.com/xingyizhou/CenterNet/blob/master/readme/INSTALL.md步骤一步步安装。
在进行第一步时,出现了问题,Pytorch应该安装适合自己cuda版本的,因为没有在网上找到适合cuda10版本的0.4.1版本的Pytorch,于是就去官网按照以下命令下载了
conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
在进行第五步时,首先:
问题:ImportError: torch.utils.ffi is deprecated. Please use cpp extensions instead.
原因:在PyTorch 1.1.0中,torch.utils.ffi被弃用了,需要用其他包来替代
解决方法:
把build.py和build_double.py中的
from torch.utils.ffi import create_extension 替换为 from torch.utils.cpp_extension import BuildExtension
ffi = create_extension(…) 替换为 ffi = BuildExtension(…)
参考:https://blog.csdn.net/c20081052/article/details/89407771
又遇到了新的问题:TypeError: dist must be a Distribution instance
参考https://www.gitmemory.com/issue/xingyizhou/CenterNet/7/486653333这篇文章问题得以解决。
按照上面,配置的工作完成了。
2.数据集
把数据集转换为COCO之后,按照以下路径存放
3.为了训练自己的数据集,需要修改代码。
src/lib/opts.py:
第338行的num_classes修改为自己的种类数
src/lib/datasets/dataset/coco.py:
第14行num_classes修改为自己的种类数
第40行self.class_name修改为自己的种类名
第26行的文件名根据自己的命名进行修改(测试时)
src/lib/utils/debugger.py:
第46行num_classes改为自己的种类数
第454行coco_class_name改为自己的种类名
3.开始训练
在experiments作者已经写好了几个sh,可以直接使用,我使用的是ctdet_coco_resdcn18.sh
4.测试
CUDA_VISIBLE_DEVICES=1 python test.py ctdet –load_model /home/XX/code/CenterNet-zhouxy/exp/ctdet/coco_resdcn18/model_best.pth –test
可计算出AP等
5.测试视频:
CUDA_VISIBLE_DEVICES=1 python demo.py ctdet –demo /home/XX/code/CenterNet-zhouxy/video/test.avi –load_model /home/XX/code/CenterNet-zhouxy/exp/ctdet/coco_resdcn18/model_120.pth
需要修改的地方:
增加.global_variable.py:
debugger.py中修改:
修改demo.py:
6.测试单张图片
CUDA_VISIBLE_DEVICES=2 python demo.py ctdet –demo /home/XX/code/CenterNet-zhouxy/data/in/004641.jpg
–load_model /home/XX/code/CenterNet-zhouxy/exp/ctdet/coco_resdcn18/model_120.pth
今天的文章使用CenterNet训练自己的数据集分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/59802.html