UAV123数据集简介、下载与配置
UAV123主要由91个无人机视频组成,其中有数个视频序列较长,拆分成三四个较短的片段,使用多次,所以有123个groundtruth,其中包含20个长视频即UAV20L,虽然不如OTB100出名,但不少文章都将UAV123的测试结果进行比较,可见其权威性。
由于在之前的博客详细写了OTB的数据集配置方法,所以,这里主要是介绍UAV123不同于OTB100的地方。如果是第一次配置,可以参阅我的上一篇博客。目标跟踪之OTB数据集下载及Visual Tracker Benchmark v1.0配置
一、数据集下载
UAV123下载地址:https://cemse.kaust.edu.sa/ivul/uav123
百度网盘:下载地址,提取码:7lwk
感谢博客【技术向】目标跟踪UAV123数据集下载及使用指南的分享
二、Visual Tracker Benchmark v1.1下载
下载地址链接:https://pan.baidu.com/s/1Xh3XwhvlyEOQFSkxhyZRtg
提取码:0m5l
三、main_running.m运行
3.1修改第八行,填上工具包的路径
下载地址:http://cvlab.hanyang.ac.kr/tracker_benchmark/benchmark_v10.html
3.2修改/util/文件夹底下的configseq.m文件,修改数据集的路径
3.3修改util/configTrackers.m,选择或添加自己想测试的跟踪器
3.4运行main_running.m,正常情况下打印信息如下,如果出现error,则有可能是接口函数没写好,解决思路在我的上一篇博客讲过,此处不再介绍了
四、UAV123和OTB100的差别
UAV的数据集没有img这一层目录,而OTB100得写到img这一层,其余没有明显的差别。
初次接触UAV数据集,在这里记录我对UAV和OTB两数据集差异的认识,能力有限,仅供参考!
UAV数据集难点:
- out of view:目标在画面完全消失,相比于OTB,UAV123存在不少目标从画面完全消失的情况,典型的比如bird1
- 小目标:从整个画面看,目标特别小,但由于UAV图片比较大,所以小目标的尺寸实际也不算小,但与后续画面相比,尺寸变化大。如下图,左边是原图,右边是我截取的目标位置,可以发现第一帧中,自行车相比于整个画面,特别小,小的肉眼都看不见
- 长视频:UAV的视频一般都是1000帧以上,模型容易退化
- 拍摄角度变化大:如下面三张图都截取于person20,前后角度变化大,这就需要跟踪器有较快的学习能力—提高学习率
整体来讲,UAV要难于OTB,一方面要使模型鲁棒,在完全遮挡后能再次跟住目标,另一方面又需要模型更新速度快,以适应拍摄角度的快速变化,不过从我目前看的几个算法,基本都是加快模型的学习,对于完全遮挡或者是目标从画面丢失,没有什么好方法来解决。
五、success、precision曲线简介
这两种曲线可以说是所有论文都在用的,在这里简要分享一下自己的理解,但因为那篇论文我也没阅读过,所以理解仅供参考
5.1success plot of OPE
这主要考察的是重叠率,跟踪器预测的目标包围框与人工标注的基准包围框的重叠面积占总面积的比例,横坐标主要是阈值。比如0.2意味着重叠面积超过总面积20%即认为跟踪成功,统计跟踪成功的帧数占总帧数的比例,并以该比例为纵坐标进行绘制曲线
如下图,红色为人工标注的基准包围框,绿色为跟踪器预测的包围框,黄色虚线的面积即重叠面积,与红色、绿色面积之和的比值大于某一阈值(0.2、0.4、0.6、0.8)即认为跟踪成功
5.2 precision of OPE
这主要是衡量预测目标包围框位置与人工标注的基准包围框的中心位置之间的距离,因此,该曲线的横坐标主要是像素,比如20意味着预测的位置和人工标注的位置之间距离小于20像素,认为是跟踪成功
如下图,预测的目标位置A和人工标注的位置B之间的距离(黄色线)小于一定阈值(20像素、40、50),则认为跟踪成功
推荐阅读
-
深度学习常用数据集介绍与下载(附在线磁盘链接)
-
Java 类加载器的作用 - 简介:类加载器是 Java™ 中一个非常重要的概念。类加载器负责将 Java 类的字节码加载到 Java 虚拟机中。本文首先详细介绍了 Java 类加载器的基本概念,包括代理模型、加载类的具体过程和线程上下文类加载器等。然后介绍了如何开发自己的类加载器,最后介绍了类加载器在 Web 容器和 OSGi™ 中的应用。 类加载器是 Java 语言的一项创新,也是 Java 语言广受欢迎的重要原因之一。它允许将 Java 类动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 开始出现,最初是为了满足 Java Applets 的需求而开发的,Java Applets 需要从远程位置下载 Java 类文件并在浏览器中执行。现在,类加载器已广泛应用于网络容器和 OSGi。一般来说,Java 应用程序的开发人员不需要直接与类加载器交互;Java 虚拟机的默认行为足以应对大多数情况。但是,如果遇到需要与类加载器交互的情况,而您又不太了解类加载器的机制,就很容易花费大量时间调试异常,如 ClassNotFoundException 和 NoClassDefFoundError。本文将详细介绍 Java 的类加载器,帮助读者深入理解 Java 语言中的这一重要概念。下面先介绍一些基本概念。 类加载器的基本概念 顾名思义,类加载器用于将 Java 类加载到 Java 虚拟机中。一般来说,Java 虚拟机以如下方式使用 Java 类:Java 源程序(.java 文件)经 Java 编译器编译后转换为 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码并将其转换为 java.lang 实例。每个实例都用来表示一个 Java 类。通过该实例的 newInstance 方法创建该类的对象。实际情况可能更加复杂,例如,Java 字节代码可能是由工具动态生成或通过网络下载的。 基本上,所有类加载器都是 java.lang.ClassLoader 类的实例。下面将详细介绍这个 Java 类。 java.lang.ClassLoader 类简介 java.lang.ClassLoader 类的基本职责是根据给定类的名称为其查找或生成相应的字节码,然后根据这些字节码定义一个 Java 类,即 java.lang.Class 类的实例。除此之外,ClassLoader 还负责加载 Java 应用程序所需的资源,如图像文件和配置文件。不过,本文只讨论它加载类的功能。为了履行加载类的职责,ClassLoader 提供了许多方法,其中比较重要的方法如表 1 所示。下文将详细介绍这些方法。 表 1.与加载类相关的 ClassLoader 方法
-
入门 rcnn大家族系列教学(一):深入理解与预处理BCCD数据集 - 首节:详述BCCD数据集及其简介
-
(提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
-
2020-12-18 Dataset之COCO数据集:COCO数据集的简介、下载Dataset之COCO数据集:COCO数据集的简介、下载
-
UAV123数据集简介、下载与配置