论文链接

1、出发点


 首先Rotate RPN通过撒各个角度比例尺寸的anchor生成OP(Oriented Proposal的缩写),缺点很明显:计算量和内存占用大。
 于是RoI Transformer提出借助水平anchor来生成OP,由于舍弃了旋转anchor故计算量下去了。大致流程就是:Horizental_Anchor --> RPN --> Horizental Proposal -->Roi Align–> FC --> OP。缺点:引入了FC和RoIAlign,导致网络heavy且复杂。
 故本文考虑直接Horizental_Anchor --> OP,从而简化模型降低过拟合风险。

2、模型结构


 总体结构比较简单,就是二阶网络结构。我首先介绍Oriented RPN。

2.1. Oriented RPN

 这里关注下通道维度变化:首先256是特征图维度,之后在特征图每个位置撒了A(A=3)个Horizental anchor,经过 1*1 的卷积操作将通道维度变成了6*A = 18。即每个anchor的输出预测值为6个参数:(x,y,w,h, delta_alpha, delta_belta),分别表示中心,倾斜框的外接矩形的宽和高以及偏移中心位置的两个量。以下图为例:

 本质上将OP表示方式变成了6个参数表示方式。通过下面公式很容易得到OP的v1-v4四个角点的横纵坐标。


  由于预测出来的(delta_alpha, delta_belta)不可能完全一样,故导致输出的OP是个平行四边形:如下图:

 而RRoI Align只能提取倾斜矩形框的特征,并不能提取倾斜平行四边形特征,故本文在RPN输出OP前又多了一步解码过程,将平行四边形变成(x,y,w,h,theta)格式,便于后续RRoI Align提取特征。

 思路就是先计算平行四边形的对角线长度,将短边resize和长边一样长就行了。这里贴下代码:

    polys = torch.stack([ga, y1, x2, gb, _ga, y2, x1, _gb], dim=-1) # 平行四边形四个坐标center = torch.stack([gx, gy, gx, gy, gx, gy, gx, gy], dim=-1)  # 堆叠四次中心坐标center_polys = polys - center     # 计算每个坐标和中心的相对距离diag_len = torch.sqrt(            # 计算对角线长度,就是 勾股定理torch.square(center_polys[..., 0::2]) + torch.square(center_polys[..., 1::2]))max_diag_len, _ = torch.max(diag_len, dim=-1, keepdim=True)      # 获得长边长度diag_scale_factor = max_diag_len / diag_len                      # 获得resize比例# 将相对距离进行resizecenter_polys = center_polys * diag_scale_factor.repeat_interleave(2, dim=-1) rectpolys = center_polys + center  # 相对距离在+上中心得到倾斜矩形四个坐标obboxes = rectpoly2obb(rectpolys).flatten(-2) # 转成五点表示法

2.2. RRoI Align

 这部分不介绍了,就是提取Oriented RPN生成的OP的特征向量。

总结

 实验效果SOTA,这里不贴了。若有问题欢迎+vx:wulele2541612007,拉你进群探讨交流。

OrientedRCNN论文解读相关推荐

  1. 自监督学习(Self-Supervised Learning)多篇论文解读(下)

    自监督学习(Self-Supervised Learning)多篇论文解读(下) 之前的研究思路主要是设计各种各样的pretext任务,比如patch相对位置预测.旋转预测.灰度图片上色.视频帧排序等 ...

  2. 自监督学习(Self-Supervised Learning)多篇论文解读(上)

    自监督学习(Self-Supervised Learning)多篇论文解读(上) 前言 Supervised deep learning由于需要大量标注信息,同时之前大量的研究已经解决了许多问题.所以 ...

  3. 可视化反投射:坍塌尺寸的概率恢复:ICCV9论文解读

    可视化反投射:坍塌尺寸的概率恢复:ICCV9论文解读 Visual Deprojection: Probabilistic Recovery of Collapsed Dimensions 论文链接: ...

  4. 从单一图像中提取文档图像:ICCV2019论文解读

    从单一图像中提取文档图像:ICCV2019论文解读 DewarpNet: Single-Image Document Unwarping With Stacked 3D and 2D Regressi ...

  5. 点云配准的端到端深度神经网络:ICCV2019论文解读

    点云配准的端到端深度神经网络:ICCV2019论文解读 DeepVCP: An End-to-End Deep Neural Network for Point Cloud Registration ...

  6. 图像分类:CVPR2020论文解读

    图像分类:CVPR2020论文解读 Towards Robust Image Classification Using Sequential Attention Models 论文链接:https:// ...

  7. CVPR2020论文解读:手绘草图卷积网络语义分割

    CVPR2020论文解读:手绘草图卷积网络语义分割 Sketch GCN: Semantic Sketch Segmentation with Graph Convolutional Networks ...

  8. CVPR2020论文解读:3D Object Detection三维目标检测

    CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...

  9. CVPR2020论文解读:三维语义分割3D Semantic Segmentation

    CVPR2020论文解读:三维语义分割3D Semantic Segmentation xMUDA: Cross-Modal Unsupervised Domain Adaptation for 3D ...

最新文章

  1. 中科大团队打造“象鼻”机器人,开门、擦玻璃、会给女朋友拧瓶盖的那种
  2. promethues集成nomad
  3. Java实现将list数据取出并加入分隔符拼接,转换成String
  4. jquery parsley ajax,用户体验超棒且功能强大使用简单的javascript表单验证 - Parsley.js...
  5. maven+jetty项目在tomcat部署
  6. 【SpringBoot 2】(四)详析SpringBoot的常用注解
  7. 中国中医科学院中药资源中心2021年公开招聘应届毕业生预公告
  8. 190906二级刷题水果与小女孩
  9. VMware vCenter Server 的内部版本号和版本 (2143838)
  10. Oracle EBS中的“客户”、客户地点、‘订单’之间的关系
  11. JZOJ 3455. 【NOIP2013模拟联考3】库特的向量(code)
  12. linux中nfs存储权限,NFS权限管理 - 麦苗的个人空间 - OSCHINA - 中文开源技术交流社区...
  13. cvLaplace() 拉普拉斯变换
  14. [IDE]vs code更新后变成英文版
  15. [GKCTF 2021]excel 骚操作
  16. html隐藏域保存数组,关于给JS组合数组赋值给隐藏域问题
  17. python123不能登录_python入门:最基本的用户登录用户登录,三次错误机会
  18. 成人世界的人际交往中有哪些潜规则?
  19. [问题已处理]-k8s出现Evicted状态
  20. 事件冒泡是个啥子东西

热门文章

  1. AWS白皮书 中文版(中英对照版) - 001 概述
  2. ironpython调用c dll_IronPython.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家...
  3. java求水电费_水电煤缴费示例代码
  4. 【leetcode-DFS】求根节点到叶节点数字之和/二叉树的最大路径和/路径总和/左叶子之和/树的直径
  5. 2017暑假第二阶段第四场 总结
  6. 信道估计算法误码率仿真,对比不同导频长度,对比不同信道估计算法包括CS-OMP,LS,MMSE
  7. Foobar 是什么意思?
  8. 智能座舱数据存储技术浅析
  9. 波长波数转换matlab,【求助】请教红外常用波数与波长之间的转换关系...
  10. Netty固定长度解码器