Ocean、TracKit源码地址:GitHub - researchmm/TracKit: [ECCV'20] Ocean: Object-aware Anchor-Free Tracking

TracKit-Ocean:目标跟踪网络(二) -- 运行问题及解决逻辑设计__天涯__的博客-CSDN博客

目录

环境部署

相关论文

测试


环境部署

安装教程:TracKit/ocean.md at master · researchmm/TracKit · GitHub

cd $TracKit/lib/tutorial
bash install.sh $conda_path TracKit
cd $TracKit
conda activate TracKit
python setup.py developpip install xxxx # 单独安装不成功的包,注意解决版本冲突问题# install_trt.md # 安装tensorRT

下载公共测试数据集和预训练的模型

测试效果,默认VOT2019数据集

python tracking/test_ocean.py --arch Ocean --resume snapshot/OceanV.pth --dataset VOT2019

想测试别的数据集需要注意模型和数据集的对应关系

OceanO.pth: offline model for OTB
OceanV.pth: offline model for VOT
OceanG.pth: offline model for GOT10K
OceanL.pth: offline model for LASOT
OceanNoOA.pth: offline model without object-aware branch
OceanOon.pth: online model for OTB
OceanVxxon.pth: online model for VOT

相关论文

Ocean : Object-aware Anchor-free Tracking

测试

想法:在视频中标出第一帧的物体框,自动获取坐标输入程序中,然后追踪物体。

使用cv2.selectROI()函数。

# -*- coding: utf-8 -*-
import cv2
import sysvideo = cv2.VideoCapture('30.mp4') # 读取视频if not video.isOpened(): # 打开错误时退出print("Could not open video")sys.exit()print("start tracking......")
ok, frame = video.read() # 读取视频的第一帧
if not ok:print('Cannot read video file')sys.exit()print("initialize bbox......")
bbox = (0,0,1792,1231) # 左上角 # 定义初始边界框
print('bbox init :', bbox)bbox = cv2.selectROI(frame, False) # 手动选择不同的边界框 按空格或回车确认
print('bbox resize :', bbox) # (142, 51, 934, 490)

返回的是一个元组(min_x,min_y,w,h),第一个值为矩形框中最小的x值,第二个值为矩形框中最小的y值,第三个值为这个矩形框的宽,第四个值为这个矩形框的高。

修改test_ocean.py文件

# 不再从文件读,改为每次手动取框# 改过的 videolines = open(args.video_list, 'r').readlines() # 读取出文件的每一行save_root = os.path.dirname(args.video_list) # 路径result_path = os.path.join(save_root, 'result.json') # 结果result_dict = dict()for index, line in enumerate(lines):print('video: {}/{}'.format(index, len(lines))) # 从文件中读取本地视频文件路径video_path = lineprint('video_path :', video_path)video = cv2.VideoCapture(video_path) # 读取视频if not video.isOpened():print("Could not open video")sys.exit() # 打开错误时退出print("start tracking......")ok, frame = video.read() # 读取视频的一帧 使用其他帧可以加个 for循环读取帧 和 判断某帧是否选了框if not ok:print('Cannot read video file')sys.exit() # 不能读取就退出bbox = cv2.selectROI(frame, False) # 鼠标选择 空格确认print('bbox :', bbox) # (min_x, min_y, w, h)x1 = bbox[0]y1 = bbox[1]x2 = x1 + bbox[2]y2 = y1 + bbox[3]print('坐标 :', x1, y1, x2, y2, type(x1), type(x2))# array = line.strip().split('|') # 从文件中读取本地视频文件路径# video_path = array[0] # 从文件中读取本地视频文件路径# x1, y1, x2, y2 = [int(float(_)) for _ in array[2:6]] # 从文件中解析参数,解析出开始帧的物体框# args.start_index = int(array[6])single_track(siam_tracker, online_tracker, siam_net, video_path, [x1, y1, x2, y2], result_dict, save_root, args) # 调用追踪# video_path 本地视频文件路径   [x1, y1, x2, y2] 开始帧的物体框坐标with open(result_path, 'w') as f:json.dump(result_dict, f)print('all finished')# 改过的 video

针对keyerror报错,修改:

if 'cls_score' in state: # 避免keyerrorprint('ok')regions.append(location + [float(state['cls_score'])])
else:print('cls_score not exist')regions.append(location + [0.5])

安装ffmpeg。

sudo apt-get install ffmpeg

运行过后,生成一个手动标注的图片,和追踪标注后的视频。

TracKit-Ocean:目标跟踪网络(一) -- 环境部署及测试相关推荐

  1. Linux下smokeping网络监控环境部署记录

    smokeping是一款监控网络状态和稳定性的开源软件(它是rrdtool的作者开发的),通过它可以监控到公司IDC的网络状况,如延时,丢包率,是否BGP多线等: smokeping会向目标设备和系统 ...

  2. OpenCV 4.5发布!更强的SIFT,OCR,RANSAC算法,新增目标跟踪网络SiamRPN++

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 OpenCV 4.5版本发布了! 详情:https://github.com/opencv/openc ...

  3. 超实时性单目标跟踪网络——Siamese RPN(CVPR2018 spotlight论文)

    今年sensetime在CVPR上的表现力压国内其他科研机构,直逼谷歌.以44篇论文(3oral,11spotlight,28poster)在国内一骑绝尘.其中有一篇北航大四学生李博为一作的论文Sia ...

  4. WHQL认证环境部署以及测试攻略二之HLK或者HCK软件的安装

    WHQL认证目前所使用的测试软件有WLK1.6,HCK2.1,HLK. WLK1.6主要是针对Windows Server 2003,已经不是主流测试了,基本属于弃用状态. HCK2.1主要是针对Wi ...

  5. 【CV】SiamFC:用于目标跟踪的全卷积孪生网络

    论文名称:Fully-Convolutional Siamese Networks for Object Tracking 论文下载:https://arxiv.org/abs/1605.07648 ...

  6. 视频目标跟踪从0到1,概念与方法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 导读 从目标跟踪的应用场景,底层模型,组件,类型和具体算法几个方面 ...

  7. windows驱动数字签名之WHQL完整流程 | WHQL认证环境部署以及HLK测试

    文章目录 第一部分:windows驱动数字签名之WHQL完整流程 一.驱动数字签名背景 二.驱动程序数字签名解决方案-WHQL认证 1. 对开发者的影响 2. WHQL认证主要作用 三.申请WHQL认 ...

  8. 目标跟踪 ATOM(ATOM: Accurate Tracking by Overlap Maximization)

    文章标题:<ATOM: Accurate Tracking by Overlap Maximization> 文章地址:https://arxiv.org/pdf/1811.07628.p ...

  9. Ceph Jewel 10.2.3 环境部署

    本文转自:https://www.cnblogs.com/icloud/p/6115447.html Ceph Jewel 10.2.3 环境部署 Ceph 测试环境部署 本文档内容概要 测试环境ce ...

  10. 目标跟踪的训练流程记录

    大部门目标跟踪领域的文章的训练测试流程都是一样的.在此简要记录一下. ByteTrackor 对于消融实验,使用MOT17中每个视频的前半部分用于训练,后半部分用于验证. 训练在CrowdHuman和 ...

最新文章

  1. 从瀑布模型、极限编程到敏捷开发
  2. POJ3666:Making the Grade——题解
  3. java mongo 获取所有数据库_Spring Batch —从XML读取并写入Mongo
  4. linux telnet 权限,允许telnet 通过root用户进行访问
  5. 【转载】python两个列表获取交集,并集,差集
  6. codeforces 85D. Sum of Medians
  7. 关于larbin的编译
  8. windows32位安装MongoDB
  9. eclipse部署Javaweb项目
  10. AIR应用:二维码批量生成
  11. mayapython常用模块_Maya入门之在Maya 中使用 Python 的基础知识有那些
  12. 【NOIP2015 DAY1 T3 】斗地主(landlords)
  13. Android Wi-Fi Display(Miracast)介绍
  14. 默的各种写法图片_默字的意思、默的繁体字、默的笔顺笔画、默字部首和繁体字默的意思...
  15. 1万字精讲,这你还学不废?Python爬取腾讯视频《斛珠夫人》弹幕,并转换成词云(单线程)——爬虫实例2
  16. 海藻酸钠-PEG-马来酰亚胺 MAL-PEG-alginate 马来酰亚胺 修饰海藻酸钠
  17. 用Sublime Text3编写java程序
  18. 三门问题的计算机模拟,三门问题(Monty Hall problem)的代码模拟
  19. C#调用映美云打印机CFP535
  20. C语言进阶之自定义类型:结构体,枚举,联合

热门文章

  1. Nashorn Multithreading and MT-safety
  2. SQL Server 中字符串中包含字符串变量的表示方法
  3. 【OpenCV学习笔记】【函数学习】十八(保存图片)
  4. 从零基础入门Tensorflow2.0 ----一、3.3 实战深度神经网络(激活函数)
  5. arcgis 画图问题
  6. 【劲峰论道时空分析技术-学习笔记】5 时空格局和异常探测
  7. Oracle使用mybatis批量添加
  8. 2 java内存模型是什么_java中内存模型是什么?有什么用?
  9. go语言学习之切片、字典、defer语句
  10. Android View layout方法的简单使用案例