一 前言
HDMNet这篇论文,网上已经有讲解的了,大家可以搜寻一下,欢迎私信我们一起讨论。接下来主要讲一下我怎样复现这篇论文的(一个小白的苦苦挣扎)。
二 服务器环境配置
服务器具体环境配置可以参考这篇博客,比较详细,最好创建一下虚拟环境。由于HDMNet对有些包版本有要求,故对cuda和torch的版本有要求,在配置环境的时候不要盲目下载最新的可能会导致版本不匹配出现一堆问题。(具体版本在下面展示)
三 问题解决
2.1 mmcv与mmseg
注意一下readme里mmcv,mmsegmentation的版本。
笔者使用的cuda版本是11.6,其余与下图一致。
尤其注意一下mmcv,因为mmcv的1.x与2.x有较大变化,可以参考一下博客。
而且torch 2.x的版本大概率和mmcv 1.x是不兼容的(问就是血泪教训),所以torch版本不要下太高。
MMCV 全新升级,新增超全数据变换功能,还有两大变化 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/572550592
2.2 配置问题调试
在安装过程中可能会出现许多需要安装的包,其中mmcv,mmseg需要去网站查找一下下载命令。
cv2 module安装
pip install opencv-python
mmcv安装
pip install -U openmim
mim install mmcv-full
如需安装指定版本
mim install mmcv-full==1.6.1
skimage安装
pip install scikit-image
sklearn安装
pip install scikit-learn
mmsegmentation安装
pip install mmsegmentation==0.27.0
其余笔者是直接使用pip install下载的
四 代码调试
3.1下载预训练模型
这个代码利用了BAM的预训练的模型,需要放在initmodel里,所以可以在github上下载一下。
GitHub - Pbihao/HDMNethttps://github.com/Pbihao/HDMNet
点击蓝体models可以获取所有的文件,就是有可能会下载较慢。
3.2 config配置文件修改
按照readme的指示把各目录安好。
这里讲一下,作者提供了在COCO数据集上训练好的模型文件(在model里)。
这里以 HDMNet/model/coco/split0/resnet50/best_model.pth 为例,这个文件可以让你直接导入训练好的模型参数,但是需要修改一下几个地方。
1.config/coco/coco_spilt0_resnet50_manet.yaml配置文件
另外,配置文件里的data_root和base_data_root也要记得补充哦(视自己data目录放在哪哈)。
2.文件路径
将best_model.pth这个文件放在
HDMNet-main/exp/coco/HDMNet/split0/resnet50/snapshot这个路径下
之后使用test script里的命令就可以直接运行作者上传的模型,而不用自己花大时间训练。(但是如果要用PASCAL数据集就得自己训练了)
五 结果展示
用训练好的参数,也还是跑了一个下午差不多5个小时,可以试试调一下gpu数看看能不能快一点。
最后跑完以后会出一个总体的运行结果,我运行的是fold0的,看最后best_mIoU是0.4354,和论文里提的43.8%相差不多。
祝大家科研顺利,有问题请在评论区或私信call我。