[AMRNet] Adaptive Mixture Regression Network 复现过程记录

目录

  • 一、开发环境
  • 二、论文代码
  • 三、导入项目
  • 四、数据准备
  • 五、训练模型
  • 六、tensorboard可视化训练结果
  • 七、测试模型
  • tips

一、开发环境

windows10+Anaconda3+Python3.6+CUDA10.0+Pytorch1.0+Pycharm

二、论文代码

AMRNet代码链接

三、导入项目

1、通过git下载或者zip网页下载,二选一
在这里插入图片描述
2、导入项目至pycharm
在这里插入图片描述

四、数据准备

1、数据集
从官网上下载数据集,并解压至目录 ./ProcessedData
ShanghaiTech下载链接
UCF-QNRF下载链接
UCF_CC_50下载链接
2、导入数据集到项目
在这里插入图片描述
3、resize图片并且产生training labels.

  • 进入到./datasets/XXX/ 运行prepare_XXX_mod64.py
  • 以SHHB为例,其他数据集相信大家能举一反三,打开prepare_SHHB_mod64.py
  • 先处理一些肉眼可见的问题,第9行
    在这里插入图片描述
  • 第81行,改成和20行同样的代码风格
    在这里插入图片描述
  • 第15行的路径做适当修改
    在这里插入图片描述
  • 还有一个特别荫蔽的错误,get_density_map_gaussian.py需要修改一行代码,第10行改成 h w c,通道位置有错需要改正,否则,运行网络会出现通道不匹配的问题。
    在这里插入图片描述
  • 第11行里面只填train或者test,分别对应处理train数据集,test数据集
    在这里插入图片描述
  • 修改上面一行代码,右键run,preapre_SHHB_mod64.py,分别处理好train数据集,和test数据集。
  • 处理好SHHB数据集之后的目录
    在这里插入图片描述

4、预训练的模型下载
一些计数网络(例如VGG,CSRNet等)在ImageNet上采用了预先训练的模型。
所以我们需要从torchvision.models下载vgg16-397923af.pth

  • 下载链接
  • 把下载好的vgg16-397923af.pth,放在目录./models/Pretrain_Model/
  • 目录
    在这里插入图片描述

五、训练模型

1,训练代码呢?

  • 很遗憾,在前文提到的AMRNet代码链接中,原作者并没有公布训练代码和训练代码相关的说明材料。
  • 因为这个原因,这个项目我迟迟没有成功复现,不过我在同门的提醒下,在ECCV2020官网检索这篇文章。
  • 找到了这篇文章,肯定的,因为这篇文章是发在ECCV2020年的。但是让我兴奋的是下面有个附加材料按钮!!
    在这里插入图片描述
  • 下载下来一看,不就是我一直苦苦寻找的训练模型的代码和文字说明材料吗?恭喜我发现了原作者留的彩蛋,感谢我同门的提醒。哈哈。
    在这里插入图片描述
  • 把框中的三个文件复制到我们的项目中,README文件直接替换掉。最后三块拼图终于归位了!
  • 看完整的目录结构
    在这里插入图片描述
  • 为了大家方便,补充材料,我给一个云盘链接。
  • 链接:https://pan.baidu.com/s/1x01abMKFrW6L1THPb89hqQ 提取码:tlyf

2,训练模型

  • 根据最新的README文件,进行操作。
  • 在train_config.py里和./datasets/XXX/setting.py设置相应参数。这里我们依然以SHHB作为例子,即打开./datasets/SHHB/setting.py。
  • train_config.py第14行,改成VGG16_LCM_REG
    在这里插入图片描述
  • train_config.py第18行
    在这里插入图片描述
  • train_config.py第46行,epoch默认设置为500,我为了减少训练时间,epoch改成了100
    在这里插入图片描述
  • setting.py设置训练batchsize,这里我们根据自己显卡的情况,默认值是1
  • 在命令行输入命令:python train.py
    在这里插入图片描述
  • 出现一个问题,排查解决之后,就再次运行命令python train.py
  • 问题1:ModuleNotFoundError: No module named ‘config’
    在这里插入图片描述
  • 解决1:SHHB.py第13行,直接注释,没有起作用的一行导包
    在这里插入图片描述
  • 成功进入了训练的流程,漫长的等待过程之后,会得到一个性能最好的模型
    在这里插入图片描述
  • 经过漫长的训练,终于训练完了100epoch。上图
    在这里插入图片描述

六、tensorboard可视化训练结果

  • 开始训练模型的时候,会在根目录生成exp文件,里面保存着每次迭代性能更好的权重文件和tensorboard的events文件,我们就需要用到这个events文件。
    在这里插入图片描述
  • 通过命令行来启动tensorboard
    在这里插入图片描述
  • 成功启动tensorboard后,命令行窗口会出现一个网址,复制到浏览器地址栏访问,上图看结果。
    在这里插入图片描述
    在这里插入图片描述

七、测试模型

1,修改test_config.py

  • 第16行,修改数据集为SHHB
    在这里插入图片描述
  • 第23行,添加上我们刚训练好的模型路径
    在这里插入图片描述
  • 输入命令行:python test.py,可以看到成功在用模型来测试了
    在这里插入图片描述
  • 测试完毕,通过命令行窗口查看结果,看起来和我们训练100epoch的结果差不多。
    在这里插入图片描述

tips

  • ok各位,以上就是这篇文章的全部内容了,非常感谢你能看到这里。如果你觉得这篇文章对你有所帮助求赞求收藏求评论求转发,别忘了点一个大大的关注,各位的支持就是我最大的动力,再见!邮箱:734140820@qq.com
  • 26
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 25
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wpw5499

若有帮助,不妨请博主一杯奶茶吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值