SiamMask阅读翻译笔记整理
我从作者的知乎文章中看到这篇文章的: [CVPR2019]我对Siamese网络的一点思考(SiamMask)
论文链接: Fast Online Object Tracking and Segmentation: A Unifying Approach
开源代码: https://github.com/foolwood/SiamMask
之后阅读了该论文笔记SiamMask论文阅读: Fast Online Object Tracking and Segmentation: A Unifying Approach
现在补充一些我自己的理解:
上图中的每个63×63都会对应一个[127, 127]的mask,从channel对应到二维平面上。
依据score来选择哪个mask, 或者是用score来给对应的mask赋予权重。
当anchor与GT的IoU大于0.6的时候,第n个RoW是正样本=1,否则是负样本=-1,是损失函数中的标记值,为-1的时候不计算当前RoW的损失。
接下来主要讲一下我对mask的lossfunction的理解,损失函数如下公式
w和h就是对应的mask的宽和高, 文中是127和127,(i, j)就表示mask上的某个位置。用1+来控制第n个是否被考虑(当=-1的时候,1+=0;当当=1的时候,1+=2 [所以还有一个/2]),
可以看出这样转化一下就是一个值恒大于0的增函数,,表示正负样本点。
当=1的时候越大,loss就越小;越小,loss就越大。
当=-1的时候越小,loss就越小;越大,loss就越大。
追加参考: SiamMask阅读翻译笔记
跑作者给出的代码的时候遇到的问题:
1. reference: python-opencv2利用cv2.findContours()函数来查找检测物体的轮廓
将_, contour, _中的第一个_删了即可。错误源自opencv2和opencv3中findContours返回值的区别,opencv2有2两返回值,opencv3有三个。
# 删了原来的opencv-python, 和opencv-contrib-python
$ pip uninstall opencv-python
$ pip uninstall opencv-contrib-python
# 重新安装版本对应的opencv-python和opencv-contrib-python
$ pip install opencv-python==4.2.0.34 -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
$ pip install opencv-contrib-python==4.2.0.34 -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
3. reference: 错误: /sbin/ldconfig.real: /usr/local/cuda-10.1/targets/x86_64-linux/lib/libcudnn.so.7 不是符号连接
$ sudo ln -sf /usr/local/cuda-10.1/targets/x86_64-linux/lib/libcudnn.so.7.6.0 /usr/local/cuda-10.1/targets/x86_64-linux/lib/libcudnn.so.7