SiamMask的完整跟踪过程

SiamMask

在这里插入图片描述

代码中的demo
  1. 配置环境,加载预训练模型后形成siammask模型,加载图片序列。
  2. 选择跟踪的对象
    1. cv2.selectROI(窗口名字,要截取的图片,是否十字画矩形,是否以中心画矩形)。返回(左上角坐标,宽,高)
  3. 执行跟踪:for f,im in enumerate(ims)
    1. 初始化
      1. 目标中心位置获取
      2. 目标尺寸获取
      3. 跟踪器初始化
    2. 跟踪
      1. 获得跟踪结果
      2. 定位目标位置(中心加尺寸)
      3. 掩码输出:大于阈值的输出1,否则输出0
      4. 画框
        1. cv2.polylines(图片,多边形的顶点坐标,是否闭合,颜色,线条粗细)
跟踪器初始化
  1. 计算模板图像的边长

    1. 划定比目标( w o l d , h o l d w_{old},h_{old} wold,hold)大一点的尺寸( w n e w , h n e w w_{new},h_{new} wnew,hnew)。

    w n e w = w o l d + w o l d + h o l d 2 w_{new}=w_{old}+\frac{w_{old}+h_{old}}{2} wnew=wold+2wold+hold

    h n e w = h o l d + w o l d + h o l d 2 h_{new}=h_{old}+\frac{w_{old}+h_{old}}{2} hnew=hold+2wold+hold

    1. 判断划定的新尺寸是否超出图片
    2. 在图片中截取新尺寸的图片补丁
    3. 将图片补丁resize127x127
  2. 提取模板图像的特征

  3. 设置汉宁窗矩阵(尺寸为得分图大小)。然后将汉宁窗按行降到一维,一共5行。(5x( w × h w\times h w×h))

跟踪器进行跟踪
  1. 计算检测图像的边长
    1. 以前一帧的中心为中心,以前一帧模板边长的2倍为边长,截取图像补丁。
      1. 先按照比例扩大边长,然后截取,最后resize
  2. 将模板图像和检测图像互相关,然后生成2k个cls结果和4k个loc结果和17x17x(63x63)的mask输出。(与RPN网络还是有区别的,RPN是先将通道扩充到2k(4k或(63x63))再求互相关
  3. 利用Siam RPN的知识,计算出不同回归框的坐标。利用尺度惩罚和位移惩罚,计算出每个回归框的得分。找到最大得分的回归框索引(第几个回归框)
  4. 对mask分支的处理
    1. 利用最大得分的回归框索引,找到该回归框的中心点位置。np.unravel_index
    2. 然后以该中心点为中心,以该回归框的尺寸为尺寸截取特征图补丁。
    3. 利用sharp mask网络,对该补丁进行处理,得到新的特征图补丁。
    4. 将该补丁输入sigmoid函数,大于0.5阈值的输出255,小于输出0,生成二进制掩码。
  5. 利用二进制掩码生成回归框。比如min-max。实现回归。
流程图
模板图像
ResNet
特征图1
交叉卷积
2k个分类结果
添加惩罚获得最佳回归框
截取最佳回归框补丁
检测图像
特征图2
4k个回归结果
mask分支特征图
输入sharpmask
得到新的特征图
sigmoid
利用阈值输出二进制掩码
生成跟踪框
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值