43.Isaac教程--图像变形

图像变形

在这里插入图片描述
ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html


真实世界拍摄的图像有一定的缺陷,包括:

  • 几何畸变(和其他光学像差)

  • 噪音

  • 渐晕

  • 颜色不平衡

本节介绍用于校正几何失真的可用资源。

大多数计算机视觉算法对渐晕和色彩平衡不敏感。 它们被设计为对噪声具有鲁棒性,但它们往往依赖于理想的透视图像,也称为针孔图像,不会出现失真。

以下是几何扭曲或扭曲图像的示例,后面是校正示例。

扭曲:

矫正:

几何畸变

几何失真通常分为两种形式:径向和切向。

径向畸变本质上是径向对称的,在简单镜头中很常见,目的是尽量减少其他光学像差,例如散光、色差、彗差、场曲率和球面像差。 复合透镜的畸变要小得多,因为它们可以同时最小化所有这些像差,但由于它们体积大且价格昂贵,因此很少出现在机器人等嵌入式应用中。 几何失真可以用单变量多项式建模,并且在采集后很容易在软件中校正。

切向畸变不是径向对称的,尽管它相对于从投影中心辐射的线是对称的。 切向畸变由复合透镜中未对准的元件引起,因此在嵌入式应用中的简单透镜中可以忽略不计。 它是用双变量多项式建模的,也很容易在软件中进行校正。

图像投影

使用典型的相机和镜头获取的投影有两种基本类型:透视/直线/平面和鱼眼/等距/球面。 透视镜头的实际最大视场角 (FOV) 为 120°,而鱼眼镜头可以达到 180° 以上,有些甚至超过 220°。

径向畸变可用于表示具有透视镜头的鱼眼镜头,反之亦然——达到一定的 FOV。 理想透镜与正切(或反正切)函数相关,该函数可以通过靠近投影中心的多项式很好地近似,但在远离投影中心时会迅速发散。 最好使用与镜头最匹配的投影模型。 根据经验,FOV < 90° 应使用透视图作为基础投影,FOV > 120° 应使用鱼眼。

Isaac SDK 支持透视镜头的径向和切向畸变校正,但仅支持鱼眼镜头的径向畸变校正。

透视畸变校正

几何畸变被实现为径向和切向畸变校正的总和。 Isaac SDK 使用 Brown 模型,OpenCV 也使用该模型。 但是,径向和切向系数的顺序不同。 Isaac SDK 使用 { k 0 , k 1 , k 2 , k 3 , k 4 } \{k0,k1,k2,k3,k4\} {k0,k1,k2,k3,k4}
,其中 OpenCV 使用 { k 0 , k 1 , k 3 , k 4 , k 2 } \{k0,k1,k3,k4,k2\} {k0,k1,k3,k4,k2}
. OpenCV 可用于校准相机的固有参数,包括这些系数。

径向畸变校正

径向畸变用以下公式校正:

x 0 = x i + x i ( k 0 r i 2 + k 1 r i 4 + k 2 r i 6 ) x_0 = x_i + x_i(k_0r^2_i + k_1r^4_i + k_2r^6_i) x0=xi+xi(k0ri2+k1ri4+k2ri6)

y 0 = y i + y i ( k 0 r i 2 + k 1 r i 4 + k 2 r i 6 ) y_0 = y_i + y_i(k_0r^2_i + k_1r^4_i + k_2r^6_i) y0=yi+yi(k0ri2+k1ri4+k2ri6)

其中:

r i = x i 2 + y i 2 r_i = \sqrt{x^2_i+y^2_i} ri=xi2+yi2

切向畸变校正

切向畸变用以下公式校正:

x o = x i + 2 k 3 x i y i + k 4 ( r i 2 + 2 x i 2 ) x_o=x_i+2k_3x_iy_i+k_4(r^2_i+2x^2_i) xo=xi+2k3xiyi+k4(ri2+2xi2)

y o = y i + k 3 ( r i 2 + 2 y i 2 ) + 2 k 4 x i y i y_o=y_i+k_3(r^2_i+2y^2_i)+2k_4x_iy_i yo=yi+k3(ri2+2yi2)+2k4xiyi

这也是 OpenCV 使用的模型。

其他相机固有参数

除了畸变之外,相机的另一个固有参数包括焦距和主点。

焦距

数码相机的焦距以像素为单位,但也可以认为是像素/弧度。 理想透视透镜的投影方程为:

r = f tan ⁡ ϑ r=f \tan ϑ r=ftanϑ

理想的鱼眼镜头是:

r = f ϑ r=f ϑ r=fϑ

r r r中是距投影中心的距离, θ θ θ是与光轴的倾斜角。 从这些方程式可以明显看出,焦距等于投影中心的角像素密度——因此解释为像素/弧度。

主点(投影中心)

镜头光轴与成像平面相交的点称为投影的主点或中心。 理想情况下,这将位于所采集图像的中心,但在商用相机中,这已被视为相差多达 100 像素。

未失真输出的光学特性

变形工具是通用的,包括生成的输出图像的参数,包括焦距、主点和方向,以及图像大小。

输出主点

畸变校正会改变输入矩形的形状,使其呈凸形或凹形弯曲。 这种弯曲是相对于主点发生的,因此最好将输出和输入主点保持在相对于其中心的相同位置,以产生对称剪裁或曝光透明度。

输出焦距

为了在输出上保持与输入相同的分辨率,它们的焦距应该大致相同。 Warp API 有一个单独的水平和垂直焦距,不同的焦距也可以在输出中保持。 另一种选择是对两个输出焦距使用两个输入焦距的几何平均值。 第三种选择是将输出焦距减少到 70%,以取消使用拜耳传感器获取彩色图像时发生的插值,以更少的像素产生相同的细节以提高吞吐量。

输出图像大小

校正失真和改变焦距会影响投影图像的大小。 一个合理的选择是保持输出的图像大小、焦距和主点与输入相同。

输出方向

在单眼视觉的情况下,将输出投影定向到与输入相同的方向就足够了。 然而,对于立体视觉,如果两个相机都指向相同的方向并且具有相同的焦距,则可以使用明显更快且更稳健的算法。 旋转矩阵或一组欧拉角都可以指定旋转校正。

Isaac 不失真Codelet

Isaac 无失真Codelet采用彩色相机原型并生成另一个彩色相机原型。 这些原型中的每一个都包括相机内在参数和图像。 输入和输出内在参数之间的唯一区别是输出失真为 0。此外,如果源图像是鱼眼,则会将其转换为透视图像。

更多精彩内容:

https://www.nvidia.cn/gtc-global/?ncid=ref-dev-876561

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扫地的小何尚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值