可见光遥感图像目标检测(三)文字场景检测之Arbitrary

news2024/11/26 17:50:26
前言 前面介绍了关于可见光遥感图像目标检测任务主要面临的问题,现在对旋转目标的问题进行优化,为了便于大家理解与之前通用目标检测区别,采用Faster-Rcnn网络模型的架构对旋转目标的检测进行改进。

本教程禁止转载。同时,本教程来自知识星球【CV技术指南】更多技术教程,可加入星球学习。

Transformer、目标检测、语义分割交流群

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

CV各大方向专栏与各个部署框架最全教程整理

 本篇文章以场景文字识别为背景,但是主要解决的问题是场景文中旋转目标检测的问题,我们主要做的是对方法的提炼,当然本文提供的方法同样适用于遥感图像的旋转目标检测任务。通过这篇文章我们要有意识去多读文章,积累自己的思路,这个领域的难题可能迁移了其他领域的知识就会相对容易的得到解决。

背景

近年来,遥感图像检测任务受到了很多关注,尽管这些方法显示出了有竞争力的结果,但大多数方法依赖于水平或接近水平的注释,并返回水平区域的检测。然而,在实际应用中,大量的遥感图像区域不是水平的,甚至将非水平对齐的遥感图像作为轴对齐的处理方法也可能不准确。因此,水平框的方法不能在实践中广泛应用。在本文中,作者提出了一种基于旋转的方法和端到端遥感图像检测系统,用于任意定向遥感图像检测。特别之处在于结合了旋转角度的信息,使得检测系统可以生成任意方向的proposals。

作者提出了旋转区域建议网络(RRPN),该网络旨在利用遥感图像方向角度信息生成倾斜proposals。然后,角度信息适合于边界框回归,以使proposals更准确的适合遥感图像区域。旋转感兴趣区域(RRoI)池化层用于将任意定向的proposals投影到Feature map。最后,部署了一个两层网络来将区域分类为前景或背景。

方法

1、模型整体架构图

图1 基于Faster-Rcnn旋转目标检测框架图

相信大家有看过Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks这篇论文的对这张图片肯定是不陌生的。下图是Faster-Rcnn原图。

图2 Faster-Rcnn目标检测框架图

经过上图的对比,我们不难发现,旋转目标检测与通用目标检测的主要区别就是两个部分,区域推荐部分感兴趣区域池化部分。  RPN是Faster-Rcnn最具有创新性的模块,其对于目标检测任务的重要程度不言而喻,下面简要说明作用原理。RPN网络组成是CNN,一般由3  3以及1  1的卷积构成,3  3卷积之后会有激活函数,RPN网络可以输入任意大小的图片尺寸,防止了因为crop、wrap等操作影响特征的丢失。影响图片输入尺寸的是全连接层,SPP-Net(Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition)已经解决了这个问题。在Feature map之后进行卷积处理,每个卷积的中心点都可以对应到原图一个区域里面,这就是感受野的概念,假设我们做了4次2倍的下采样,那么Feature map上一个点对应原来大小的区域,要在这个尺寸的区域生成9个锚框,根据3个尺寸和3个长宽比生成,假定Feature map大小为40  60,那么总共的锚框就有40  60 9 =20个锚框,由于锚框的数目众多而且质量不够好,所以对这些锚框进行筛选,用IOU这个指标进行处理,假定IOU>0.7为正样本,IOU<0.3为负样本,IOU在0.3到0.7之间的直接舍弃,若有的IOU达不到0.7,则取IOU最大的作为正样本。接下来经过全卷积网络(1  1卷积网络)来进行分类与回归任务,其中分类任务是二分类,要区分锚框里面的是不是存在物体,回归任务是根据锚框的坐标与真值的坐标进行编码与解码来生成预测框的位置。在分类任务结束之后还要进行预测框的筛选,这里采用NMS处理,对于预测框重叠面积较大的删除掉置信度较低的预测框,保留置信度较高的预测框。RoI Pooling的作用是把原图生成的框投射到Feature map上,进行Max Pooling操作。这里的RoI Pooling存在一些问题。第一、如果原图的框是不正好对齐在网格上面要进行框的改变,把他它齐在网格上。第二、在Pooling的时候分的网格尺寸并不是均分的,例如57的网格在分四个33的时候,会遇到5不能被3整除的情况,这时候会把5简单处理为3和2,7也不能被3整除,会把7分成3和4,如图3所示。这时候的网格就变为了23、24、33、34。为了解决上述问题,提出了RoI Align,用来替换RoI Pooling,这里不再赘述。

图3 RoI Pooling

2、RRPN模块

旋转边框表示用 (x, y, h, w, θ) 五元素表示;旋转锚点框使用角度、比例尺和长宽比参数。角度为-π/6, 0, π/6, π/3, π/2, 2π/3,比例尺为8,16,32,长宽比为1:2、1:5和1:8。feature map上的每个点,生成54个 r-anchor;如图4所示。水平框这里只有9个anchor,在开始训练之前,先定义好正负锚点的标定规则:1) 如果锚点对应的reference box与ground truth的IoU>0.7,标记为正样本;2) 如果锚点对应的reference box与ground truth的夹角小于π/12,标记为正样本;3) IoU小于0.3,标记为负样本;4) IoU大于0.7,但是夹角大于π/12,标记为负样本;5) 剩下的既不是正也不是负,不用于训练。损失函数的计算,比传统的多任务损失函数增加了一个角度的Loss计算;

图4 R-anchor生成机制

Skew IoU Computation(倾斜IoU计算),其实就是IoU的计算,由于包围框的倾斜会造成重叠部分的为多边形,这部分的面积与水平框重叠的面积比较起来不好计算,作者用了很巧妙的方法,将不同的多边形都分解成为三角形,计算每个三角形的面积,在套用IoU计算公式,就能得到IoU的值。如图5所示。

图5 IoU的计算

Skew Non-Maximum Suppression(倾斜NMS计算),偏斜NMS由两个阶段组成:(1)对于IoU大于0.7的proposals,保持最大IoU;(2)如果所有proposals的IoU都在[0.3,0.7]范围内,则保持提案与地面真相的角度差最小(角度差应小于π12)。与普通的NMS相比引入了角度的信息。

3、RRoI Pooling 层

对于任意方向的文本检测任务,传统的层只能处理水平的proposals。因此,作者提出了旋转层来调整生成的任意方向的建议。我们首先将层超参数设为和。对于高、宽的proposals,旋转后的proposlas区域可以划分为大小的子区域(如图6所示)。之后进行仿射变换,把旋转的包围框转变为水平框,然后在每个子区域执行, 的值保存在每个的矩阵中;与相比,可以将任何具有不同角度、长宽比或尺度的区域汇集到一个固定大小的feature map中。最后,将proposals转化为,发送给分类器给出结果,即是前景还是背景。

图6 RRoI Pooling Layer

实验

实验的部分都在场景文本检测的数据集进行实验的,都取得了很好的SOTA效果。

总结

第一,理解旋转目标检测的标注方法,各个参数的意义。

第二,深刻理解Faster-Rcnn中RPN用用原理。

第三,RRPN与RPN的不同,RoI Pooling的作用原理、RRoI Pooling原理。

 欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

【技术文档】《从零搭建pytorch模型教程》122页PDF下载

QQ交流群:470899183。群内有大佬负责解答大家的日常学习、科研、代码问题。

模型部署交流群:732145323。用于计算机视觉方面的模型部署、高性能计算、优化加速、技术学习等方面的交流。

其它文章

上线一天,4k star | Facebook:Segment Anything

3090单卡5小时,每个人都能训练专属ChatGPT,港科大开源LMFlow

Efficient-HRNet | EfficientNet思想+HRNet技术会不会更强更快呢?

实践教程|GPU 利用率低常见原因分析及优化

ICLR 2023 | SoftMatch: 实现半监督学习中伪标签的质量和数量的trade-off

目标检测创新:一种基于区域的半监督方法,部分标签即可(附原论文下载)

CNN的反击!InceptionNeXt: 当 Inception 遇上 ConvNeXt

神经网络的可解释性分析:14种归因算法

无痛涨点:目标检测优化的实用Trick

详解PyTorch编译并调用自定义CUDA算子的三种方式

深度学习训练模型时,GPU显存不够怎么办?

CV各大方向专栏与各个部署框架最全教程整理

计算机视觉入门1v3辅导班

计算机视觉各个方向交流群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/525232.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5G-NR非连续接收DRX参数配置详解

5G-NR系统配置中的非连续接收系统 DRX&#xff1a;Discontinuous Reception 5G终端商用在即&#xff0c;根据前期测试及部分5G友好用户反馈&#xff0c;“5G终端功耗大&#xff0c;待机差”问题特别突出。根据5G技术特性&#xff0c;导致5G终端相比4G功耗大很多的原因有如下4…

干货 | Amos实操教程之中介效应检验

Hello&#xff0c;大家好&#xff01; 这里是壹脑云科研圈&#xff0c;我是喵君姐姐~ 本次推文&#xff0c;我们就来给大家介绍一种处理结构方程模型软件——Amos 。 01 摘要 Amos是什么&#xff1f; Amos由James L. Arbuckle所发展&#xff0c;全名是Analysis of Moment S…

泛化深度学习综述

机器学习系统通常假设训练和测试分布是相同的。为此&#xff0c;一个关键的需求是开发可以推广到unseen分布的模型。领域泛化&#xff08;DG&#xff0c;Domain generalization&#xff09;&#xff0c;即分布外泛化&#xff08;out-of-distribution generalization&#xff09…

vim强大的快捷键

文章目录 vim强大的快捷键&#xff08;必须在可视模式下完成&#xff09;光标移动&#xff08;上下左右移动&#xff09;行选中列选中复制粘贴剪切删除取消后悔取消跳到文件的末尾跳转到我呢见的开头保存并且退出vim编辑器自动补全自动格式化回到行首&#xff08;这一行的第一个…

ESP32设备驱动-MMA8452加速度计驱动

MMA8452加速度计驱动 文章目录 MMA8452加速度计驱动2、硬件准备3、软件准备4、驱动实现MMA8452Q 是一款智能、低功耗、三轴、电容式微加工加速度计,具有 12 位分辨率。 该加速度计具有嵌入式功能,具有灵活的用户可编程选项,可配置为两个中断引脚。 嵌入式中断功能可实现整体…

DJ5-2 差错检测和纠错

目录 一、差错检测和纠错技术 1、发送节点 2、接收节点 3、说明 二、差错检测技术 1、一比特奇偶校验 2、二维奇偶校验 3、Internet 校验和方法&#xff08;复习&#xff09; 4、循环冗余检测 CRC 5、差错检测方法比较 一、差错检测和纠错技术 链路层提供比特级差错检…

我为什么要使用vuetify3做为基础组件去开发公司组件库

设计风格 Vuetify是基于Material Design规范&#xff0c;依靠Material Design的设计优势&#xff0c;在无需编写一行css代码就可以得到非常美观的界面功能&#xff0c;同时Vuetify还具备自适应的能力&#xff0c;可以使用一套代码写出同时兼容手机、平板、web的功能&#xff1…

如何在Simulink中使用可变电阻-可变电容-可变电感

1. 原由 前期文章提出了Simulink如何在线修改&#xff08;动态修改&#xff09;模块参数的方法&#xff0c;并提供原创的Dynamic Change Parameter模块&#xff08;简称DCP模块&#xff09;&#xff0c;模块得到了许多朋友的使用。最近收到几位朋友反馈&#xff0c;他们使用DCP…

VGG网络原理与搭建

VGG网络原理与搭建 VGG在2014年由牛津大学著名研究组VGG&#xff08;Visual Geometry Group&#xff09;提出&#xff0c;斩获该年ImageNet竞赛中Localization Task&#xff08;定位任务&#xff09;第一名和Classification Task&#xff08;分类任务&#xff09;第二名。 论文…

HTTP第10讲——响应状态码

背景 HTTP 报文里请求行的组成部分&#xff0c;包括请求方法和 URI。有了请求行&#xff0c;加上后面的头字段就形成了请求头&#xff0c;可以通过 TCP/IP 协议发送给服务器。 服务器收到请求报文&#xff0c;解析后需要进行处理&#xff0c;具体的业务逻辑多种多样&#xff0…

四、c++学习(类的简介)

上一篇我们做了一个简单的界面优化&#xff0c;并且我们可以选择进入游戏界面&#xff0c;所以这一篇我们来实现贪吃蛇和食物。 C学习&#xff0c;b站直播视频 文章目录 4.0 课程目标4.1 结构体4.1.1 c语言面向对象4.1.2 c的结构体4.1.3 内存对齐 4.2 union4.2.1 union应用&am…

Chapter8:线性系统的状态空间分析与综合(上)

第八章:线性系统的状态空间分析与综合 Exercise8.1 已知控制系统结构图如下所示: 其中: u u u为输入, y y y

Gradle版本、Gradle插件版本和AndroidStudio版本之间的对应关系

问题描述 有时候碰到gradle版本死活下载不下来&#xff0c;还会报Gralde Sync Issues,有可能是你的Gradle Wrapper版本和Gradle插件版本、AndroidStudio版本不匹配。 解决方案 Gradle版本和Gradle插件版本之间存在一定的对应关系。Gradle Wrapper是用来指定项目使用的Gradl…

javaweb系列-js引入、输出、变量、数据类型、运算符

1.1 js介绍 js可以让我们的页面更加的智能&#xff0c;让页面和用户进行交互。 1.2 引入方式 同样&#xff0c;js代码也是书写在html中的&#xff0c;那么html中如何引入js代码呢&#xff1f;主要通过下面的2种引入方式&#xff1a; 第一种方式&#xff1a;内部脚本&#x…

深度学习第J9周:Inception v3算法实战与解析

目录 一、理论基础 二、pytorch代码复现1.前期准备 2.代码复现 3.训练运行 3.2指定图片进行预测 三、总结 &#x1f368; 本文为[&#x1f517;365天深度学习训练营]内部限免文章&#xff08;版权归 *K同学啊* 所有&#xff09; &#x1f356; 作者&#xff1a;[K同学啊] &…

K_A39_001 基于STM32驱动TF卡模块读写数据 串口打印

K_A39_001 基于STM32驱动TF卡模块读写数据 串口打印 所有资源导航一、资源说明二、基本参数参数引脚说明 三、驱动说明时序对应程序: 四、部分代码说明1、接线引脚定义1.2、STM32F103C8T6TF卡模块 五、基础知识学习与相关资料下载六、视频效果展示与程序资料获取七、注意事项八…

【英语】大学英语CET考试,口语部分2(课程笔记)

文章目录 1、口语考试介绍与备考攻略1.1 口语考试介绍1.2 考试备考攻略 上课老师&#xff1a;金格妃 上课时间&#xff1a;4h 1、口语考试介绍与备考攻略 方法是通用的&#xff1a;CET4/6&#xff0c;雅思托福&#xff0c;BEC等 近年四六级考试的长度是接近雅思托福的&#x…

【大数据】Presto(Trino)配置参数以及 SQL语法

文章目录 一、概述二、Trino coordinator 和 worker 节点作用1&#xff09;Trino coordinator 节点作用2&#xff09;Trino worker 节点作用 三、Trino 参数详细讲解1&#xff09;coordinator 节点配置1、config.properties 配置文件2、jvm.config 配置文件3、log.properties 配…

libevent高并发网络编程 - 04_libevent实现http服务器

文章目录 1 evhttp简介2 相关的APIevhttp_new()evhttp_free()evhttp_bind_socket()evhttp_set_gencb()evhttp_set_cb()evhttp_request_get_uri()evhttp_request_get_command()evhttp_request_get_input_headers()evhttp_request_get_input_buffer()evhttp_request_get_output_h…

MagicalCoder系列教程(二):如何下载本地安装启动项目?

目录 下载启动 1 windows下载 2 linux下载 3 安装启动方式&#xff1a; 3.1 Windows免安装 3.2 其他操作系统&#xff08;Mac等其他操作系统&#xff09; 3.3 启动安装失败 MagicalCoder可视化开发平台&#xff1a;轻松搭建业务系统&#xff0c;为企业创造更多价值&…