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是正样本![% MathType!MTEF!2!1!+- % feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn % hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr % 4rNCHbWexLMBbXgBd9gzLbvyNv2CaeHbl7mZLdGeaGqipu0Je9sqqr % pepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9vqaqpepm0xbba9pwe9Q8fs % 0-yqaqpepae9pg0FirpepeKkFr0xfr-xfr-xb9adbaqaaeGaciGaai % aabeqaamaabaabauaakeaacaWG5bWaaSbaaSqaaiaad6gaaeqaaaaa % !411E! \[{y_n}\]](https://i-blog.csdnimg.cn/blog_migrate/f57267b45941f15b9b7bbb1a9dc9a5db.gif)
=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
789

被折叠的 条评论
为什么被折叠?



