0
点赞
收藏
分享

微信扫一扫

单目标跟踪通过CAM绘制heatmap图像(以SiamCAR为例)

论文链接:

SiamCAR: Siamese Fully Convolutional Classification and Regression for Visual Tracking

Group-CAM: Group Score-Weighted Visual Explanations for Deep Convolutional Networks

代码链接:

SiamCAR:code

Group-CAM:code

SiamCAR+Group-CAM:code

环境配置:

pip install -r requirements.txt
cd toolkit/utils/
python setup.py build_ext --inplace

注:与SiamCAR环境配置相同,不同的是这里增加了一个python包:kornia

运行:

对于SiamCAR-CAM代码的运行,在终端上,参见下面的代码。

cd /path/to/SiamCAR-CAM
conda activate SiamCAR
export PYTHONPATH=./:$PYTHONPATH
python tools/CAM-demo.py                                \
	--dataset_dir  /path/to/dataset/root            \ # dataset path
	--dataset UAV123                                \ # dataset name(OTB100, GOT-10k, LaSOT, UAV123)
	--snapshot snapshot/general_model.pth           \ # tracker_name
	--format bmp                                    \ # save fomat (pdf,png,jpg,bmp)   
	--save_dir /path/to/save                        \ # save dir
	--config ./experiments/siamcar_r50/config.yaml  \ # config file
	--register_layer softmax                        \ # module register name

值得注意的是,通过CAM进行可视化,只有最后一层分类分支或者SiamCAR中,经过归一化的Centerness分支的输出进行可视化才是有意义的。其余分支经过CAM可视化会出现杂乱无章的状态,这对于我们的数据分析来说是无用的。

以上面代码为例,在配置好环境后,我们在终端下进行如下的指令运行:

cd /home/db306/桌面/SiamCAR-CAM
conda activate SiamCAR
export PYTHONPATH=./:$PYTHONPATH
python tools/CAM-demo.py                                \
	--dataset_dir    /media/db306/HUSHUO/Benchmark/     \
	--dataset OTB100                                    \ 
	--snapshot snapshot/general_model.pth               \ 
	--format bmp                                        \ 
	--save_dir ./test                                   \ 
	--config ./experiments/siamcar_r50/config.yaml      \
	--register_layer softmax                             

最后绘制出SiamCAR的分类分支可视化的结果:

OTB100基准下不同视频不同帧的分类分支heatmap可视化

 CAM部分代码:

参见:

/path/to/SiamCAR-CAM/CAM/GroupCAM.py

/path/to/SiamCAR-CAM/pysot/tracker/siamcar_tracker_cam.py

/path/to/SiamCAR-CAM/tools/CAM-demo.py

注:由于未知原因,实际上经运行发现,不是所有的视频帧都会出现heatmap图像,这与Group-CAM有关,以及单目标跟踪中(pysot系列),通常不会将输入图像进行归一化有关,这篇代码中,对于CAM部分,我们进行了归一化操作,对于涉及到跟踪器的部分,我们进行了反归一化操作。故猜测可能是这一个问题造成的。

举报

相关推荐

0 条评论