pysot之测试代码分析,一看就会,对比代码阅读更佳哦

1.官方给出的测试方法

在这里插入图片描述

2.代码阅读

  1. 需要加载的内容(以测试Siam RPN为例):

    1. 网络结构:将Siam RPN的网络结构加载进去 --config
    2. 网络权重:将Siam RPN的网络权重加载进去 --snapshot
    3. 测试数据集:将想要测试的数据集加载进去 --dataset
  2. torch.set_num_threads(int):设定用于并行化CPU操作的Open MP线程数

  3. 加载网络配置和数据集路径

    1. 加载数据集路径

      1. import os
        print(os.path.realpath(__file__))  #显示绝对路径
        print(os.path.dirname(os.path.realpath(__file__))) #只显示文件夹名称
        
        /home/hello/pysot/shiyan.py
        /home/hello/pysot
        
      2. os.path.join:将几个路径拼接在一起

  4. 创建模型;加载权重;创建跟踪器;(默认前人已经做好的工作)

  5. 创建项目所需的数据集

    1. VOTDataset(**kwargs):创建VOT数据集
      1. 读取VOT2018.json文件数据
      2. 生成VOT Video:将json文件的内容复制到该函数下,即将VOT2018.json转换为VOT Video
  6. 读取数据集

    1. 读取第一个序列信息
    2. 利用迭代规则,对第一序列信息进行迭代:获得第一帧图片和其真实轨迹(8个数据:左上、左下,右下、右上)
        def __iter__(self):
            for i in range(len(self.img_names)):
                if self.imgs is not None:
                    yield self.imgs[i], self.gt_traj[i]
                else:
                    yield cv2.imread(self.img_names[i]), self.gt_traj[i]
    
    1. 获得的真实轨迹并不是矩形,而一般是平行四边形,所以需要转换为矩形的形式(重点!!!!)

      1. 中心点获取:所有的x坐标相加取平均获得中心点cx,所有的y坐标相加取平均获得中心点cy

      2. wh获取:

      在这里插入图片描述

      1. 计算出平行四边形的面积 S 四 边 形 S_{四边形} S两个相邻边的乘积)和矩形的面积 S 矩 形 S_{矩形} S

      2. 计算出前后的面积变化,对矩形的长宽进行限制

        1. s = s 四 边 形 s 矩 形 s=\sqrt\frac{{s_{四边形}}}{{s_{矩形}}} s=ss

        2. w = s ∗ ( x 2 − x 1 ) + 1 h = s ∗ ( y 2 − y 1 ) + 1 w=s*(x_2-x_1)+1 \\ h=s*(y_2-y_1)+1 w=s(x2x1)+1h=s(y2y1)+1

      3. 左上角坐标获取:
        x 1 = c x − ( w − 1 ) / 2 y 1 = c y − ( h − 1 ) / 2 x_1=cx-(w-1)/2\\ y_1=cy-(h-1)/2 x1=cx(w1)/2y1=cy(h1)/2

    2. 跟踪器初始化:tracker.init(img,gt_bbox)

    3. 执行跟踪,记录跟踪结果

      1. 将图片输入跟踪器得到预测框pred_bbox

      2. 计算预测框与真实框的重叠分数overlap

        1. 如果重叠分数overlap>0,则认为跟踪没有丢失;并将预测框pred_bbox记录在列表pred_bboxes

        2. 如果重叠分数overlap=0,则跟踪丢失;这时跳过5帧图片,再重新跟踪器初始化(真实框已知),再跟踪;列表pred_bboxes的形式为:2,0,0,0,0,1

        3. 可以发现列表pred_bboxes中存储的内容的形式为:

          [1,pred_bbox1,pred_bbox2,2,0,0,0,0,1,pred_bbox3]   #第四帧丢失目标,第九帧重新初始																	  化跟踪器
          

      6.保存跟踪结果(以ants1为例)

      1. 保存路径为:results/VOT2018/model/baseline/ants1/ants1_001.txt;并将预测结果写入。
      2. 输出:(1) video:ants1 Time:? s speed:? fps Lost:?
  7. 输出该数据集总共跟丢的帧数:model total lost: ?

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值