ACM模块的结构图大致如上图。
就是将模板、搜索区域、第一帧的BBOX 分成三个分支来进行处理,然后将这三部分相加传入head(与SiamBAN结构相同)得到分类与回归结果。
代码中,在初始化即生成模板时,就将kernel_part和 bbox_part生成完毕(他们会和每一帧的search_part相加)
track方法就是,每一帧都生成search_part和kernel_part和 bbox_part相加得到最终特征传入head。
他比DW卷积的好处是可以进行训练,更好的得到融合特征。而且速度也不慢,比用transformer代替DW卷积快很多。
=====================================
代码遇到的问题:
1: cannot import name region from partially initialized module toolkit.utils
因为要把region文件编译,如果不是对应你环境的编译后文件是不能用的(环境指系统和python版本),解决办法就是
项目的根目录里有setup.py,到项目根目录控制台输入python setup.py build_ext --inplace即可。
2.我下的源码里并没有配置文件 config.yml ,而siamban/core/config.py 这个配置类不能用,有很多信息并没有给出,只有在readme.md里下这两个参数,
里面就有配置文件config.yml,在test.py里写好或者控制台里写,就可以正常的测试了。