【论文地址】
https://arxiv.org/abs/2301.01661
【训练源码】
https://github.com/KangLiao929/RecRecNet
【参考源码】
https://github.com/hpc203/recrecnet-opencv-dnn
【算法介绍】
广角镜头在VR技术中显示出诱人的应用,但它会在捕获的图像中引入严重的径向失真。为了恢复逼真的场景,之前的工作致力于校正广角图像的内容。然而,这种校正解决方案不可避免地会扭曲图像边界,从而改变相关的几何分布并误导当前的视觉感知模型。在这项工作中,我们通过贡献一种新的学习模型,即矩形校正网络(RecRecNet),探索在内容和边界上构建双赢的表示。特别地,我们提出了一种薄板样条(TPS)模块来描述图像的矩形化非线性非刚性变换。通过学习校正图像上的控制点,我们的模型可以灵活地将源结构扭曲到目标域,实现端到端的无监督变形。为了减轻结构近似问题的复杂性,我们激励我们的RecRecNet通过基于自由度(DoF)的课程学习来学习渐进变形规则。通过增加每个课程阶段的自由度,即从相似性变换(4-DoF)到单应性变换(8-DoF),网络能够研究更详细的变形,从而在最终的矩形化任务上实现快速收敛。实验表明,我们的解决方案在定量和定性评估方面都优于比较方法。
问题
给定一个校正的广角图像,RecRecNet旨在从校正技术的角度在图像内容和边界上构建双赢表示。
特点
首次实现大视野(FoV)视觉的双赢表示
提出了一个薄板样条(TPS)运动模块,以灵活地形成非线性非刚性校正变换
设计了一种基于DoF的课程学习,以掌握渐进变形规则并减轻复杂结构近似的负担
深入分析了为什么变形的图像边界会显著影响视觉感知模型
【界面展示】
【效果展示】
【部分实现代码】
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Diagnostics;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using OpenCvSharp;
-
- namespace FIRC
- {
- public partial class Form1 : Form
- {
- Mat src = new Mat();
- RecRecNet net=new RecRecNet();
- public Form1()
- {
- InitializeComponent();
- }
-
- private void button1_Click(object sender, EventArgs e)
- {
- OpenFileDialog openFileDialog = new OpenFileDialog();
- openFileDialog.Filter = "图文件(*.*)|*.jpg;*.png;*.jpeg;*.bmp";
- openFileDialog.RestoreDirectory = true;
- openFileDialog.Multiselect = false;
- if (openFileDialog.ShowDialog() == DialogResult.OK)
- {
-
- src = Cv2.ImRead(openFileDialog.FileName);
- pictureBox1.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(src);
-
-
- }
-
-
- }
-
- private void button2_Click(object sender, EventArgs e)
- {
- if(pictureBox1.Image==null)
- {
- return;
- }
-
- var resultMat = net.Inference(src);
- pictureBox2.Image= OpenCvSharp.Extensions.BitmapConverter.ToBitmap(resultMat); //Mat转Bitmap
- }
-
- private void Form1_Load(object sender, EventArgs e)
- {
- net.LoadWeights(Application.StartupPath+ "\\weights\\model_deploy.onnx");
- }
-
- private void button3_Click(object sender, EventArgs e)
- {
-
- }
- }
- }
【测试环境】
vs2019
netframeowrk==4.7.2
opencvsharp==4.8.0
【视频演示】
【源码下载】