Compositional Convolutional Neural Networks 论文复现

Title:Compositional Convolutional Neural Networks:A Deep Architecture with Innate Robustness to Partial Occlusion
Writers:Adam Kortylewski Ju He Qing Liu Alan Y uille
Conference:CVPR 2020
作者单位:Johns Hopkins University
论文地址:https://ieeexplore.ieee.org/document/9157227

代码地址:https://github.com/AdamKortylewski/CompositionalNets

关于此篇论文内容详细见:https://blog.csdn.net/hb_learing/article/details/113728664

1.装好对应的环境

pip install -r requirements.txt

在这里插入图片描述
注意:下面所有的终端命令都是在requirements.txt所在目录下运行的

2.python Code/demo.py

python Code/demo.py

这句代码就是对demo文件夹中的图像(三个图像)进行分类,提取封堵器的预测位置,然后将结果写回到demo文件夹中

第一次运行时出现错误
在这里插入图片描述
解决:把预训练模型下载后、放到module文件夹中

在这里插入图片描述
结果:
在这里插入图片描述

3.python Code/test.py

python Code/test.py

在完整测试数据集上评估模型
注意到随着遮挡程度的加深,准确率在下降(正常)
在这里插入图片描述

4.python Code/eval_occlusion_localization.py

python Code/eval_occlusion_localization.py

这句代码对每个图像输出定性遮挡定位结果,并对所有图像进行定量分析,并将其作为ROC曲线。分析代码可知,只对pascal3d+数据集做ROC曲线,COCO数据集不做ROC曲线。作者恰恰是以COCO为例!
执行此处代码时有些疑问(只输出一张图片):
分析代码得到:作者指定了只输出第25张图片!!!
在这里插入图片描述
把 if id==25 删去后,可以对所有的图片进行处理并输出所有的图片。
结果如下:
在这里插入图片描述对照代码和数据集的存放结构可得出:
以摩托车为例、分为遮挡和不遮挡两种、而遮挡再根据遮挡程度不同分为ONE、FIVE、NINE两种、总数为146=107+33+6。
没有遮挡的分为训练集、测试集。总数为386、1:1划分训练集和测试集。
在这里插入图片描述

5.python Initialization_Code/vMF_clustering.py

python Initialization_Code/vMF_clustering.py

对训练数据进行聚类来初始化CompositionalNets(即vMF内核和混合模型)。特别是,通过聚类特征向量来初始化vMF内核:
在这里插入图片描述

6.Python Initialization_Code/comptSimMat.py

通过EM型学习来初始化混合模型。基于训练图像的vMF编码的相似性,计算出用于EM类型学习的初始聚类分配。
遇到问题!!!
在这里插入图片描述
问题:创建Imgset类实例时,传递的参数与Imgset类构造方法中的参数个数不对应。说明源码是有一点问题的!
在这里插入图片描述

在这里插入图片描述
即使是顶会cvpr代码也不能完全保证正确!
修改后运行结果:
在这里插入图片描述
奇怪!!!代码还在运行,但是GPU没有在运行,这么长的时间里这段代码在干什么???
笔者猜测作者用cpu计算出用于EM类型学习的初始聚类分配(初始化混合模型)。
在这里插入图片描述

7.python Initialization_Code/Learn_mix_model_vMF_view.py

python Initialization_Code/Learn_mix_model_vMF_view.py

计算混合模型的初始化
笔者执行此处代码时,出现了指定的库版本之间不兼容的问题,当换用作者指定的库时,错误就避免了!
结果如下:
在这里插入图片描述
这篇论文代码确实很丰富!!!从中可以学到很多知识,简练,鲁棒性特别强!这就是多跑顶会论文代码的好处!从中可以学习到很多!加油!!!

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 23
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值