航拍图像面临的问题

  1. 正常图像受重力作用相对固定,航拍图像的物体受拍摄角度影响
  2. 航拍图像的物体比例变化很大
  3. 某些航拍图像中小物体很密集
  4. 传统的数据集面临数据偏差的问题严重

好的数据集必备的几个特征

  1. 大量图像数据
  2. 单个类别有足够多的实例
  3. 正确定向对象说明
  4. 单张图片中有足够多种类的物体,以便接近于真实世界

DOTA数据集特征

  1. 15种类别:飞机、轮船、储槽、网球场、篮球场、棒球场、田径场、港口、桥、大的交通工具、小的交通工具、直升机、环岛、足球场、游泳池。其中14个主类,(交通工具算一个主类)

    paper中的描述:plane, ship, storage tank, baseball diamond, tennis court, basketball court, ground track field, harbor, bridge, large vehicle, small vehicle, helicopter, roundabout, soccer ball field and basketball court.

  2. 传统的bbox检测方式通过四元组$ (x_c, y_c, w, h)$来表示,即一个没有角度的bounding box来识别object

两种思路:

  • \((x_c, y_c, w, h, \theta)\),只能用来标记正方形的bbox,不能将大物体紧密的包围在bbox中
  • 四个点的不规则四边形。选定初始点为第一个点,然后按照顺时针方向依次标注四个点。初始点的选择规则:物体头部或者左上角点
  1. 数据集划分:1/6的验证集、1/3的测试集和1/2的训练集,其中测试集不会公布。

  2. 图片尺寸从800X800到4000X4000不等,传统的数据集少有超过1000X1000的。

  3. 图像中的实例很多,纵横比不一。传统用于COCO检测的模型不适用(类似密集检测)。图像中相同类别的物体的大小比例不一致(基于航拍的距离变化),对模型提出了更多的挑战。细粒度的模型表现会更好,因为模型会更加关注物体的特征而不是通过大小来判别物体。

  4. 数据集中基于航拍距离的图片比例如下:

评估原型

  1. 图片太大,训练时对其进行切分。但很可能将一个完整的物体切分成几部分。对于\(U_i = \frac{a_i}{A_0} < 0.7\)的物体(可以理解为如果在切分后的图片中,这个物体只有原来的70%以下的部分了),就认为识别它是一个比较难的任务

  2. 两种任务:HBB(Horizontal bounding box) and OBB(oriented bounding box)。OBB对模型造成了很大的困难。

  3. 各种模型在DOTA数据集上的表现,左为HBB,右为OBB

结果分析

  • 交通工具类和轮船类的分析结果不好,主要原因在于这类物体太小、太密集。
  • 对比HBB和OBB的结果,HBB的定位精确度要比OBB差很多,证明了OBB是更加适合实际应用的方式。
  • 具有较大纵横比的物体对于OBB方式的模型来说更加难回归。
  • 交叉数据集验证证明了模型在DOTA数据集上的表现普遍很差,DOTA数据集的挑战性更加强。

DOTA数据集的更多相关文章

  1. 论文翻译 DOTA:A Large-scale Dataset for Object Detection in Aerial Images

      简介:武大遥感国重实验室-夏桂松和华科电信学院-白翔等合作做的一个航拍图像数据集 摘要: 目标检测是计算机视觉领域一个重要且有挑战性的问题.虽然过去的十几年中目标检测在自然场景已经有了较重要的成就 ...

  2. Arbitrary-Oriented Object Detection with Circular Smooth Label(ECCV2020,旋转目标检测)

    论文链接:https://arxiv.org/abs/2003.05597 code:https://github.com/Thinklab-SJTU/CSL_RetinaNet_Tensorflow ...

  3. Dynamic Anchor Learning for Arbitrary-Oriented Object Detection(DAL)

    面向任意目标检测的动态锚点学习 摘要:面向任意的目标广泛地出现在自然场景.航空照片.遥感图像等中,因此面向任意的目标检测得到了广泛的关注.目前许多旋转探测器使用大量不同方向的锚点来实现与地面真实框的空 ...

  4. SCRDet——对小物体和旋转物体更具鲁棒性的模型

    引言 明确提出了三个航拍图像领域内面对的挑战: 小物体:航拍图像经常包含很多复杂场景下的小物体. 密集:如交通工具和轮船类,在航拍图像中会很密集.这个DOTA数据集的发明者也提到在交通工具和轮船类的检 ...

  5. R2CNN模型——用于文本目标检测的模型

    引言 R2CNN全称Rotational Region CNN,是一个针对斜框文本检测的CNN模型,原型是Faster R-CNN,paper中的模型主要针对文本检测,调整后也可用于航拍图像的检测中去 ...

  6. PIoU Loss:倾斜目标检测专用损失函数,公开超难倾斜目标数据集Retail50K | ECCV 2020 Spotlight

    论文提出从IoU指标延伸来的PIoU损失函数,能够有效地提高倾斜目标检测场景下的旋转角度预测和IoU效果,对anchor-based方法和anchor-free方法均适用.另外论文提供了Retail5 ...

  7. SSD框架训练自己的数据集

    SSD demo中详细介绍了如何在VOC数据集上使用SSD进行物体检测的训练和验证.本文介绍如何使用SSD实现对自己数据集的训练和验证过程,内容包括: 1 数据集的标注2 数据集的转换3 使用SSD如 ...

  8. HTML5 数据集属性dataset

    有时候在HTML元素上绑定一些额外信息,特别是JS选取操作这些元素时特别有帮助.通常我们会使用getAttribute()和setAttribute()来读和写非标题属性的值.但为此付出的代价是文档将 ...

  9. 数据集偏斜 - class skew problem - 以SVM松弛变量为例

    原文 接下来要说的东西其实不是松弛变量本身,但由于是为了使用松弛变量才引入的,因此放在这里也算合适,那就是惩罚因子C.回头看一眼引入了松弛变量以后的优化问题: 注意其中C的位置,也可以回想一下C所起的 ...

随机推荐

  1. SCons - 简单而强大的项目编译脚本(原文https://www.cnblogs.com/binchen-china/p/5646791.html)

    N年前学的makefile,当时还勉强能写一些简单的工程编译,现在已经基本忘了.makefile确实编写复杂,而且平时也不是经常使用,容易忘记.偶识了scons,一切都变的简单了.最近研究了下scon ...

  2. 绘制PCB电路原理图的8种方法

    1.选择集成电路,变压器,晶体管等组件,这些组件体积庞大,有许多引脚并在电路中起主要作用,然后从选定的参考引脚中抽取,以减少错误. 2.如果PCB上标有元件编号(如VD870,R330,C466等), ...

  3. linux ar

    转载:Linux ar命令 | 菜鸟教程 (runoob.com) Linux ar命令用于建立或修改备存文件,或是从备存文件中抽取文件. ar可让您集合许多文件,成为单一的备存文件.在备存文件中,所 ...

  4. 奇偶位交换 牛客网 程序员面试金典 C++ Python

    奇偶位交换 牛客网 程序员面试金典 C++ Python 题目描述 请编写程序交换一个数的二进制的奇数位和偶数位.(使用越少的指令越好) 给定一个int x,请返回交换后的数int. 测试样例: 10 ...

  5. 我的笔记本电脑瞬间扩大一个T的容量!

    前言 不知道有多少人在家里搭建中央存储设备的,也就是NAS.这个东西在我日常生活中,存储了大量的个人资料,家人们的照片,技术的资料,还有各种高清影视剧.搭配公网的IP,可以真正做到,任何时候任何地点的 ...

  6. html5的Message信息提示框

    1.定义dialog <dialog id="showDialog"> <div>您没有权限访问本页面!</div> </dialog&g ...

  7. 小白都能看懂的Spring源码揭秘之IOC容器源码分析

    目录 前言 IOC 只是一个 Map 集合 IOC 三大核心接口 IOC 初始化三大步骤 定位 加载 注册 总结 前言 在 Spring 框架中,大家耳熟能详的无非就是 IOC,DI,Spring M ...

  8. C 数组类型语法总结

    数组类型语法总结 数组指针 和 指针数组 区分 数组指针是一个指针,只对应类型的数组.指针数组是一个数组,其中每个元素都是指针 数组指针遵循指针运算法则.指针数组拥有c语言数组的各种特性 数组类型重命 ...

  9. 【Docker】Asp.net core在docker容器中的端口问题

    还记得[One by one系列]一步步学习docker(三)--实战部署dotnetcore中遇到的问题么?容器内部启动始终是80端口,并不由命令左右. docker run --name cont ...

  10. celery kill task

    from celery.task.control import revokerevoke(task_id, terminate=True) https://stackoverflow.com/ques ...