当前位置:网站首页>Interpretation of orientedrcnn papers
Interpretation of orientedrcnn papers
2022-06-30 08:41:00 【Wu lele~】

1、 starting point

First Rotate RPN Scale the dimensions by scattering at various angles anchor Generate OP(Oriented Proposal Abbreviation ), The disadvantages are obvious : Large amount of computation and memory .
therefore RoI Transformer Put forward the help level anchor To generate OP, Due to the abandonment of rotation anchor So the calculation goes on . The general process is :Horizental_Anchor --> RPN --> Horizental Proposal -->Roi Align–> FC --> OP. shortcoming : Introduced FC and RoIAlign, Leading to the Internet heavy And complicated .
Therefore, this paper considers direct Horizental_Anchor --> OP, Thus, the model is simplified to reduce the risk of over fitting .
2、 Model structure

The overall structure is relatively simple , Second order network structure . Let me first introduce Oriented RPN.
2.1. Oriented RPN

Here, we will focus on the dimension changes of the lower channel : First 256 Is the feature graph dimension , After that, we sprinkled... At each position of the feature map A(A=3) individual Horizental anchor, after 1*1 The convolution operation of turns the channel dimension into 6*A = 18. each anchor The predicted output value of is 6 Parameters :(x,y,w,h, delta_alpha, delta_belta), Each represents the center , The width and height of the circumscribed rectangle of the slanted box and the two quantities offset from the center position . The following is an example :
In essence OP The expression becomes 6 Parameter representation . It is easy to get by the following formula OP Of v1-v4 The horizontal and vertical coordinates of the four corners .

As predicted (delta_alpha, delta_belta) It can't be exactly the same , Therefore, the OP It's a parallelogram : Here's the picture :
and RRoI Align Only the features of the slanted rectangle can be extracted , It can not extract inclined parallelogram feature , So this article is in RPN Output OP Another step of decoding process has been added , Change a parallelogram into (x,y,w,h,theta) Format , Convenient for follow-up RRoI Align The extracted features .
The idea is to calculate the diagonal length of parallelogram first , Short edge resize Just as long as the long side . Post the code here :
polys = torch.stack([ga, y1, x2, gb, _ga, y2, x1, _gb], dim=-1) # Parallelogram four coordinates
center = torch.stack([gx, gy, gx, gy, gx, gy, gx, gy], dim=-1) # Stack quartic center coordinates
center_polys = polys - center # Calculate the relative distance between each coordinate and the center
diag_len = torch.sqrt( # Calculate the diagonal length , Namely Pythagorean theorem
torch.square(center_polys[..., 0::2]) + torch.square(center_polys[..., 1::2]))
max_diag_len, _ = torch.max(diag_len, dim=-1, keepdim=True) # Get the length of the long side
diag_scale_factor = max_diag_len / diag_len # get resize The proportion
# Compare the relative distance resize
center_polys = center_polys * diag_scale_factor.repeat_interleave(2, dim=-1)
rectpolys = center_polys + center # The relative distance is + The upper center gets four coordinates of the inclined rectangle
obboxes = rectpoly2obb(rectpolys).flatten(-2) # Turn to five point notation
2.2. RRoI Align
This section does not cover , It's extraction Oriented RPN Generated OP Eigenvector of .
summary
Experimental results SOTA, There's no more post here .
边栏推荐
- Comparaison de deux façons d'accéder à la base de données SQL Server (sqldatareader vs sqldataadapter)
- Viteproject require Syntax Compatibility Problem Solving require is not defined
- Qt连接神通数据库
- 1. Problems related to OpenGL window and environment configuration
- Rendering engine development
- End-to-end 3D Point Cloud Instance Segmentation without Detection
- Gilbert Strang's course notes on linear algebra - Lesson 2
- Gilbert Strang's course notes on linear algebra - Lesson 1
- 云服务器上部署仿牛客网项目
- Redis design and Implementation (VIII) | transaction
猜你喜欢

Interference source current spectrum test of current probe

Redis设计与实现(二)| 数据库(删除策略&过期淘汰策略)

【NVMe2.0b 14-2】Create/Delete Queue

涂鸦Wi-Fi&BLE SoC开发幻彩灯带
![[untitled]](/img/b8/e3f54fe5d1079663799887e62cb07c.jpg)
[untitled]

swagger使用

Gilbert Strang's course notes on linear algebra - Lesson 1

How can we get a satisfactory salary? These routines still need to be mastered

自制GIF动态图-gifcam

C accesses mongodb and performs CRUD operations
随机推荐
酒精测试仪方案:酒精测试仪是根据什么原理测酒精溶度?
Be careful of this hole in transmittable thread local
Qqquickpainteditem implements graffiti program drawing board
Detectron2 source code reading 3-- encapsulating dataset with mapper
Rendering engine development
Gilbert Strang's course notes on linear algebra - Lesson 3
Alcohol tester scheme: what principle does the alcohol tester measure alcohol solubility based on?
在浏览器输入url到页面展示出来
Flink Sql -- toAppendStream doesn‘t support consuming update and delete changes which
Unity basic lighting model
【kotlin 协程】万字协程 一篇完成kotlin 协程进阶
codeforces每日5题(均1700)-第三天
Flink 数据偶尔数据积压导致checkpoint失败
Tidb v6.0.0 (DMR): initial test of cache table - tidb Book rush
【NVMe2.0b 14】NVMe Admin Command Set
A troubleshooting of CPU bottom falling
layer.open 当传值为数组或值太长时处理方法
微信公众号第三方平台开发,零基础入门。想学我教你啊
Interference source current spectrum test of current probe
【NVMe2.0b 14-5】Firmware Download/Commit command