TracKit-Ocean:目标跟踪网络(一) -- 环境部署及测试
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:目标跟踪网络(一) -- 环境部署及测试相关推荐
- Linux下smokeping网络监控环境部署记录
smokeping是一款监控网络状态和稳定性的开源软件(它是rrdtool的作者开发的),通过它可以监控到公司IDC的网络状况,如延时,丢包率,是否BGP多线等: smokeping会向目标设备和系统 ...
- OpenCV 4.5发布!更强的SIFT,OCR,RANSAC算法,新增目标跟踪网络SiamRPN++
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 OpenCV 4.5版本发布了! 详情:https://github.com/opencv/openc ...
- 超实时性单目标跟踪网络——Siamese RPN(CVPR2018 spotlight论文)
今年sensetime在CVPR上的表现力压国内其他科研机构,直逼谷歌.以44篇论文(3oral,11spotlight,28poster)在国内一骑绝尘.其中有一篇北航大四学生李博为一作的论文Sia ...
- WHQL认证环境部署以及测试攻略二之HLK或者HCK软件的安装
WHQL认证目前所使用的测试软件有WLK1.6,HCK2.1,HLK. WLK1.6主要是针对Windows Server 2003,已经不是主流测试了,基本属于弃用状态. HCK2.1主要是针对Wi ...
- 【CV】SiamFC:用于目标跟踪的全卷积孪生网络
论文名称:Fully-Convolutional Siamese Networks for Object Tracking 论文下载:https://arxiv.org/abs/1605.07648 ...
- 视频目标跟踪从0到1,概念与方法
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 导读 从目标跟踪的应用场景,底层模型,组件,类型和具体算法几个方面 ...
- windows驱动数字签名之WHQL完整流程 | WHQL认证环境部署以及HLK测试
文章目录 第一部分:windows驱动数字签名之WHQL完整流程 一.驱动数字签名背景 二.驱动程序数字签名解决方案-WHQL认证 1. 对开发者的影响 2. WHQL认证主要作用 三.申请WHQL认 ...
- 目标跟踪 ATOM(ATOM: Accurate Tracking by Overlap Maximization)
文章标题:<ATOM: Accurate Tracking by Overlap Maximization> 文章地址:https://arxiv.org/pdf/1811.07628.p ...
- Ceph Jewel 10.2.3 环境部署
本文转自:https://www.cnblogs.com/icloud/p/6115447.html Ceph Jewel 10.2.3 环境部署 Ceph 测试环境部署 本文档内容概要 测试环境ce ...
- 目标跟踪的训练流程记录
大部门目标跟踪领域的文章的训练测试流程都是一样的.在此简要记录一下. ByteTrackor 对于消融实验,使用MOT17中每个视频的前半部分用于训练,后半部分用于验证. 训练在CrowdHuman和 ...
最新文章
- 从瀑布模型、极限编程到敏捷开发
- POJ3666:Making the Grade——题解
- java mongo 获取所有数据库_Spring Batch —从XML读取并写入Mongo
- linux telnet 权限,允许telnet 通过root用户进行访问
- 【转载】python两个列表获取交集,并集,差集
- codeforces 85D. Sum of Medians
- 关于larbin的编译
- windows32位安装MongoDB
- eclipse部署Javaweb项目
- AIR应用:二维码批量生成
- mayapython常用模块_Maya入门之在Maya 中使用 Python 的基础知识有那些
- 【NOIP2015 DAY1 T3 】斗地主(landlords)
- Android Wi-Fi Display(Miracast)介绍
- 默的各种写法图片_默字的意思、默的繁体字、默的笔顺笔画、默字部首和繁体字默的意思...
- 1万字精讲,这你还学不废?Python爬取腾讯视频《斛珠夫人》弹幕,并转换成词云(单线程)——爬虫实例2
- 海藻酸钠-PEG-马来酰亚胺 MAL-PEG-alginate 马来酰亚胺 修饰海藻酸钠
- 用Sublime Text3编写java程序
- 三门问题的计算机模拟,三门问题(Monty Hall problem)的代码模拟
- C#调用映美云打印机CFP535
- C语言进阶之自定义类型:结构体,枚举,联合
热门文章
- Nashorn Multithreading and MT-safety
- SQL Server 中字符串中包含字符串变量的表示方法
- 【OpenCV学习笔记】【函数学习】十八(保存图片)
- 从零基础入门Tensorflow2.0 ----一、3.3 实战深度神经网络(激活函数)
- arcgis 画图问题
- 【劲峰论道时空分析技术-学习笔记】5 时空格局和异常探测
- Oracle使用mybatis批量添加
- 2 java内存模型是什么_java中内存模型是什么?有什么用?
- go语言学习之切片、字典、defer语句
- Android View layout方法的简单使用案例