分享
基于ARM的广角相机畸变校正系统设计_赵子国.pdf
下载文档

ID:498154

大小:1.70MB

页数:5页

格式:PDF

时间:2023-04-07

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于 ARM 广角 相机 畸变 校正 系统 设计 赵子国
电 子 元 器 件 与 信 息 技 术|5科技前瞻基于ARM的广角相机畸变校正系统设计赵子国,闵祥涛中国电波传播研究所,山东青岛266107摘要:广角相机以其能提供更大的视场而得到了广泛的应用,但因较大的视场角使相机的畸变加重,为了更加真实反映客观世界,需对广角相机进行畸变校正。传统畸变校正一般采用图像处理方法,且基于PC端,本文实现了一种基于ARM平台的广角相机畸变校正系统,通过搭建嵌入式Linux平台,采用图像处理方法,建立标定数学模型,计算出相机内外参初始值,加入畸变模型并运用非线性方法进行优化,得到内参、畸变系数的最优值,代入畸变校正模型完成了对广角相机图像的畸变校正,取得了较好效果,提升了系统实时性,具有一定工程应用价值。关键词:广角相机;畸变校正;ARM;图像处理中图分类号:TP391文献标志码:ADOI:10.19772/ki.2096-4455.2022.12.002 0引言相机光学系统在设计、加工及装配过程中,由于加工误差及工艺水平的影响,使得成像系统不能在整视场满足针孔成像模型,进而导致原始图像发生扭曲、变形,不能真实客观地反映3D物理世界的空间位置信息1。特别对于90至120左右的广角相机,畸变更加严重。目前,国内外学者已经对广角相机的图像畸变校正做了大量的研究工作,探索出了如张正友标定法等效果较好的校正方法,但国内的相关研究主要是对预采集完成的图像在PC端软件进行畸变校正,缺少对广角相机进行实时校正的研究。在一些需现场更换镜头的场景,传统基于PC端软件的校正难以满足实时性需求。本文设计了一种基于ARM的广角相机畸变校正系统,将相机畸变校正算法在ARM中实现,无需借助PC机即可完成,提升了校正系统的实时性。1系统原理1.1畸变校正原理本文使用棋盘格标定板,采用数字图像处理方法进行相机畸变校正。首先通过角点匹配建立畸变图像与标定板的映射变换矩阵。然后根据映射变换矩阵计算出相机内外参,将其作为后续优化的初始值。其次,加入相机畸变模型,完善变换矩阵,通过非线性优化方法得出相机内参及畸变系数的最优值。最后,利用相机内参及畸变系数的最优值对畸变图像进行畸变校正。1.1.1映射变换矩阵(1)坐标系建立。像素坐标系:以数字图像左上角为坐标原点,以像素为单位建立的直角坐标系,如图1(a)中O0-UV坐标系。图像物理坐标系:原点定义在相机光轴与图像平面的交点,采用实际物理长度单位,如图1(a)中O1-XY坐标系。相机坐标系:以相机光心O为原点,Xc、Yc分别平行于x轴和y轴,Zc与光轴重合,建立O-XcYcZc坐标系。光心到图像平面的距离为相机焦距f。世界坐标系:在物理三维环境中,建立世界坐标系Ow-XwYwZw。(2)变换关系。假设空间中一点P在世界坐标系的坐标为Pw=(xw,yw,zw),在图像物理坐标系的坐标为P1=(x,y),在像素坐标系下坐标为P0=(u,v)。(u0,v0)为图像物理坐标系原点O1在像素坐标系下的坐标,dx、dy分别为x轴和y轴作者简介:赵子国,男,山东青岛,工程师,研究方向:数字图像处理及嵌入式系统设计。dianzi yuanqijian yu xinxijishu 电 子 元 器 件 与 信 息 技 术6|的像元尺寸大小。假设相机为针孔相机模型2,且选择定义物理平面,使得Zw=0,则有:其中M为相机内参矩阵,、,为相机外参矩阵。物理平面(Zw=0)上的点映射到成像装置的单应性矩阵。1.1.2H矩阵求内外参由于和相互正交,且二者的模相等,可得3:定义,由于B是对称的,将B写为:。则有:则两个约束可以写成:(1)如果对棋盘格平面采集n个图像,通过角点匹配并计算得到n个单应性矩阵H,代入上述方程组,则可以得到2n个方程。求解这个方程组,即可得到矩阵B。相机内参可由矩阵B得到,如:,等。相机外参可由内参矩阵和矩阵H得到,如等。1.1.3相机畸变模型相机畸变主要可分为径向畸变和切向畸变两类4。径向畸变是沿着相机镜头透镜半径方向分布的畸变,产生原因是光线在远离透镜中心的地方比靠近中心的地方更加弯曲,径向畸变主要包括桶形畸变和枕形畸变两种。相机光轴中心的畸变为0,沿着镜头半径方向向边缘移动,畸变越来越严重。畸变的数学模型可以用主点周围的泰勒级数展开式的前几项进行描述,通常使用前两项,即k1和k2,对于畸变很大的镜头,如广角镜头,可以增加使用第三项k3来进行描述。切向畸变是由于透镜本身与相机传感器平面(成像平面)或图像平面不平行而产生的,这种情况多是由于透镜被粘贴到镜头模组上的安装偏差导致。综合考虑相机的径向畸变和切向畸变,可得到相机畸变校正模型为:式中是校正后的新位置,是畸变点在相机成像平面上的原始位置。式中前半部图 1坐标系示意图 电 子 元 器 件 与 信 息 技 术|7科技前瞻分为径向畸变模型,后半部分为切向畸变模型。1.2畸变校正算法流程根据1.1中所述畸变校正原理,可按照以下步骤进行校正。(1)准备棋盘格标定板,打开广角相机并从多角度拍摄标定板,获取1020张含完整标定板的图像。(2)检测图像中的特征角点,建立每张图像与实际物理棋盘格标定板的映射关系,求解单应性矩阵H。(3)利用公式(1)构建方程组,估算相机内参和外参,并作为后续优化的初始值。(4)加入相机畸变模型,建立优化模型进行优化:式中mij表示世界坐标系下的点Pj在第i张图像上的投影点,表示通过内外参及畸变系数计算出的投影点坐标。上述方程为非线性方程组,通过LM方法进行迭代求解,进而得到相机内参、外参及畸变系数的最优解。(5)根据计算得到的相机内参、畸变系数的最优解,代入变换模型得到校正后的图像。2系统实现本部分将从平台构建、软件设计两个方面进行叙述。2.1平台构建2.1.1硬件平台硬件平台选择以ARM-Cortex-A7为内核的I.MX6ULL芯片作为核心处理芯片,外围搭配接口处理电路、存储电路等构成数据处理板,数据处理板连接摄像头模组、LCD显示器等,完成相机图像数据采集及处理。数据处理板硬件资源:CPU主频800MHz;内存256MB;FLASH容量256MB;拥有LCD、USB、摄像头及TF卡等接口。广角相机参数:图像传感器的像元尺寸为1.4m,300万像素;镜头的焦距为1.5mm,DFOV为102。2.1.2Linux软件平台本文相机畸变校正算法基于Linux-Opencv实现,首先需在ARM平台上移植嵌入式Linux系统,再将Opencv库移植到嵌入式Linux系统中,最后根据1.2中所述算法流程编写代码实现对广角相机的畸变校正。(1)嵌入式Linux移植。一个完整的嵌入式Linux系统包含bootloader、Linux内核以及根文件系统组成。嵌入式Linux系统移植过程如下。bootloader移植:本文使用的bootloader为uboot,以NXP官方发布的uboot为基础,通过添加处理板默认配置文件、头文件、板级文件夹,修改硬件驱动等步骤使uboot适配数据处理板,再编译下载uboot至ARM中。Linux内核移植:本文选择Linux-4.1.15版本,以Linux源码为基础,使用imx_v7_mfg_defconfig配置文件配置Linux内核,修改设备驱动,再对Linux内核进行编译生成zImage镜像文件以及设备树文件,最后下载至ARM中。根文件系统移植:本文使用BusyBox构建根文件系统,通过修改Makefile文件、配置BusyBox等步骤生成rootfs目录文件,再添加lib库,创建dev、proc等文件夹,修改rcS、fstab、inittab等文件,最后下载至ARM中。(2)OpenCV库移植。OpenCV是一个跨平台的计算机视觉处理开源软件库,可在包括Windows、Linux等不同系统平台上使用。本文选择opencv-3.4.1版本,移植过程如下:将获取到的opencv-3.4.1源码在Linux环境下解压;通过cmake-gui图形化工具根据需求选择需要的库进行配置,并生成Makefile等文件;使用make指令进行编译,安装至创建的install目录下后,再拷贝至根文件系统/usr/lib下。至此,基于ARM平台的Linux系统及其图像处理库构建完毕。dianzi yuanqijian yu xinxijishu 电 子 元 器 件 与 信 息 技 术8|2.2软件设计软件实现主要包括相机图像采集、校正算法实现两部分。2.2.1相机图像采集本文采用Linux内核中视频类设备驱动框架V4L2编写相机驱动实现图像采集,该驱动框架提供了一套统一的接口规范,每一个videoX设备文件代表一个视频类设备。应用程序通过对videoX设备文件进行I/O操作来使用该类设备5。编写应用程序实现相机图像采集时,应遵循V4L2设备驱动框架规范,其编程流程如下。(1)使用open函数打开相机设备文件。(2)查询相机的属性、功能。(3)设置相机参数,如使用ioctl(fd,VIDIOC_ S_FMT,&fmt)设置帧格式。(4)申请帧缓冲,再进行内存映射。(5)开启帧缓冲入队,而后通过调用ioctl(fd,VIDIOC_STREAMON,&type)进行图像采集。(6)帧缓冲出队,并从帧缓冲中获取数据、进行处理。(7)处理完后,再次将帧缓冲入队,往复。(8)停止相机采集,取消内存映射,关闭设备。通过上述相机图像采集应用程序从多角度采集15张含完整标定板的图像,并存入FLASH中供后续校正算法使用。2.2.2畸变校正系统相机畸变校正软件基于OpenCV库实现,其编程流程如下。(1)读取FLASH中保存的15张图片,对每张图片提取特征角点,如果检测到的所有角点排布方式与棋盘格标定板角点的排布方式相同,则认定该幅照片有效并生成图像特征点位置数组,否则直接丢弃并继续处理下一张图片。可使用cornerSubPix函数作进一步优化计算,使角点的位置精度达到亚像素级别。(2)根据棋盘格标定板特征角点的排列位置关系建立物理特征点位置数组,利用FindHomography函数求解图像特征点位置数组与物理特征点位置数组的映射关系,得到单应性矩阵H。(3)由H矩阵,利用Solve函数、FindExtrinsic CameraParams2函数分别得到相机内参、外参,并作为优化初始值。(4)在相机映射变换矩阵基础上加入相机畸变模型,构建优化模型,运用LM方法使所有视图的重投影误差之和最小,取最小点处相机内参、外参及畸变系数的值作为最优值。(5)根据计算得到的相机内参、畸变系数的最优值,可通过getOptimalNewCameraMatrix函数获得新内参值以去除畸变校正后图像四周黑色区域,再利用undistort函数得到校正后的图像。3效果系统上电并等待Linux系统启动后,运行相机驱动程序完成对棋盘格标定板多视角采集,图像采集数量为15张。采集的图像如图2(a)所示。图 2相机采集图像(下转第20页)dianzi yuanqijian yu xinxijishu 电 子 元 器 件 与 信 息 技 术20|温度过高惊恐、窒息、死亡等,有效防止悲剧的发生。参考文献1 张丽.若干相关性分析方法的比较及应用研究D.杭州:浙江工商大学,2020.2 华玲.线性模型中强相关变量的效应估计D.哈尔滨:哈尔滨工业大学,2019.3 李小梅,喻宣瑞.绿色税收体系对经济和环境的协同效应研究J.工业技术经济,2022,41(5):44-52.4 吴春琼,黄榕宁.基于动态线性相关的访问控制模型研究J.计算机科学,2015,42(9):94-96,106.5 严静文.基于双稀疏优化的空域错误隐藏算法研究D.武汉:武汉大学,2018.6 陈希孺,王松桂著.线性模型中的最小二乘法M.上海:上海科学技术出版社,2003.7 许君一,卿熙宏,刘国林著.方向控制最小二乘法理论.北京:测绘出版社,2010.运行系统相机畸变校正软件,读取采集到的15张图片,经过计算得到相机内参及畸变系数。再选取待校正图片,如图2(b),点击校正,即可得到校正完成后的图片

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开