张崇丙 李晓伟 魏柠阳 成月 李锦
摘要:针对水下机器人近距离作业过程的水下目标探测需求,设计了一种基于 ZYNQ 的双目实时图像采集与处理系统,研制了水下双目相机工程样机。该系统由 FPGA 采集 OV5640图像传感器的视频数据,经 IP 核转换为 VDMA 支持的接口类型,通过 AXI4总线将数据传输到 PS 端的 DDR 中缓存,然后通过 PS 端的以太网将数据发送至上位机软件,数据经上位机软件解析后即可实现双目图像的实时显示与处理。实验结果表明:系统实现了在25 frame/s 帧率下1600 pixel×600 pixel 图像的实时采集和存储,双目图像标定后的重投影误差平均值为0.0542 pixel,通过立体校正实现了双目图像行对齐。这为进一步测试和实现水下目标测量定位及三维重建提供了可靠平台。
关键词:双目相机;ZYNQ ;图像处理;相机标定
中图分类号: TP 391.41 文献标志码: A
Design of a real-time underwater binocular image acquisition and processing system based on ZYNQ
ZHANG Chongbing,LI Xiaowei,WEINingyang,CHENG Yue,LI Jin
(China Ship Scientific Research Center, Wuxi 214082, China)
Abstract: To meet the requirements of underwater target detection during close range operation of underwater robots, a real-time binocular image acquisition and processing system based on ZYNQ-7000(ZYNQ) was designed and an underwater binocular camera prototype was developed. The system collects video data from OV5640 CMOS based on FPGA, converts it to an interface type supported by VDMA through IP core, and transmits the data to the DDR cache on the PS through AXI4 bus. The data are then sent to the PC software via Ethernet on the PS. After the analysis using the PC software, the binocular images can be real-time displayed and processed. The results show that the system has achieved real-time acquisition and storage of 1600 pixel ×600 pixel images at 25 frame/s, with an average reprojection error of 0.0542 pixel after binocular image calibration. Binocular image row alignment was achieved through stereo rectification. This provides a reliableplatform for further testing and achieving underwater target measurement, positioning, and 3D reconstruction.
Keywords: binocular camera; ZYNQ; image processing; camera calibration
引言
随着科学技术的发展,水下机器人在海洋科学研究、深海科考、海底勘探、水下作业等领域应用越来越广泛[1-3]。水下机器人典型的应用场景为海底样本采集、海底打捞、水下目标抓取等,这些水下作业过程都离不开对水下目标的定位和尺寸测量。当前水下目标测量与定位主要有两种方式[4-5]:水下声学探测技术和水下光学探测技术。水下声学探测技术以声呐为代表,其探测距离较远,但是受到空间分辨率的限制,只能获取目标物体的大致轮廓,适用于远距离大目标探测,在近距离探测时,精度较低。水下光学探测技术以主动式的结构光视觉探测系统和被动式的双目视觉系统为代表。结构光视觉探测系统由一组投影仪和水下相机组成。依靠投影仪投射特定编码的光线或光斑到物体表面及背景,并用水下相机进行画面采集,具有分辨率高、重建精度高等优点。但是其对投射光源的要求非常高,一般采用衰减较小的蓝绿激光,存在设备昂贵、解调算法复杂等问题。双目视觉系统模拟人眼,通过三角测量原理来获取图像的视差,进而得到目标的三维信息,具有结构简单,成本低,分辨率高,精度高等优点。将双目视觉技术应用于水下机器人作业过程中,不但可提供实时目标视频图像,还能够实现对近距离目标的精确定位与测量。
为了满足水下机器人近距离作业时水下目标测量与定位并提供实时目标图像的需求,本文采用 Xilinx 的高性能 ZYNQ?7000可扩展处理平台,利用 FPGA 和 ARM 集成的优势,完成了基于 ZYNQ 的水下双目实时图像采集与处理系统设计,研制了工程样机。采用双目图像传感器进行实时图像采集,处理系统端的 DDR 进行视频数据缓存,以太网接口实现上位机与 ZYNQ 设备之间的数据交互,通过上位机软件实现双目视频图像的实时显示与处理,结合双目相机标定,获得立体校正后的双目图像。
1 系统设计方案
ZYNQ?7000芯片由两部分组成:可编程逻辑(programmable logic,PL)和处理系统(processingsystem,PS)。两部分数据传输采用 AXI4接口协议[6]。基于 ZYNQ 的双目实时图像采集与处理系统主要由图像采集、数据缓存、图像传输和视频显示等模块组成,实现图像数据的实时采集、显示与处理,系统总体框图如图1所示。
ZYNQ?7000的 PL 部分主要实现图像采集模块和 VDMA 传输模块。图像采集模块包括初始化子模块和图像采集子模块,初始化子模块用于配置图像传感器的工作模式,图像采集子模块用于图像数据的读取以及与 VDMA 协同工作。VDMA 传输模块主要将采集的图像数据传输到内存中。PS 部分主要实现数据缓存模块和图像传输模块,视频显示模块则主要通过上位机软件实现。系统整体结构 RTL 电路如图2所示。
系统上电后,首先由初始化子模块通过SCCB(serial camera control bus)接口初始化两个CMOS 图像传感器,当需要采集图像数据时,通过 AXI4?Lite 接口向初始化模块发送采集信号,初始化模块接收到采集信号后,通过AXI4?Lite 总线配置 VDMA 中的控制寄存器来启动 VDMA模块,并使能图像采集子模块;两个图像采集子模块根据对应的 CMOS 图像传感器产生的场同步信号 VSYNC、水平参考信号 HREF、像素同步信号 PCLK 来读取图像数据,每读取一行有效图像数据后,通过 VDMA 将数据传送到指定的内存空间中保存,直到一对图像数据传输完成。通过 PS 端控制以太网接口传输图像数据至上位机软件,软件经协议解析、数据处理后,在上位机软件实时显示两个 CMOS 图像传感器采集的视频图像,并完成对视频图像的存储等处理。
2 图像采集输出设计
2.1 图像采集
双目图像采集采用的是OmniVision公司生产的 CMOS OV5640图像传感器,其支持RawRGB、 RGB(RGB565、RGB555、RGB444)、CCIR656、 YUV(422/420)、YCbCr(422)和压缩图像(JPEG)输出格式配置,标准的 SCCB 接口,兼容 IIC 接口,有自动曝光(AEC)、自动白平衡(AWB)、自动消除灯光条纹控制功能。图像传感器通过 DVP 接口与 PL 端相连实现图像数据的传输,FPGA 芯片通过 I2C 总线对 OV5640进行参数配置,配置图像传感器的分辨率为800 pixel ×600pixel,帧率为25 frame/s,输出数据格式为RGB565。
图像传感器进行数据采集时,当检测到场同步信号 VSYNC 为上升沿时,表示一帧图像数据传输的开始;之后行同步信号 HREF 为上升沿时,表示一行图像数据传输的开始,在 HREF为高电平期间,一个像素同步信号 PCLK 输出8位数据。两路 OV5640图像传感器采集图像数据时,利用 ILA(integrated logic analyzer)采集的 PCLK 、HREF 等信号工作时序如图3所示。
2.2 图像数据缓存
图像数据缓存由 ZYNQ 的 PL 和片外 DDR3组成, PL 中使用 Video-Into-AIX4S, VDMA 共4个 IP 核, DDR3由2片 MT41K256M16芯片组成,该芯片内存大小为512 MB,数据接口位宽为16 bit 。DDR3最大特点是双沿触发,即在参考时钟信号的上升沿和下降沿都能进行数据接收和发送[7],可有效提升数据传输速率。
PS 控制着内部的寄存器,而将 PS 端 DDR3的存储数据发送至外设,必须利用 AIX 总线进行转换。 PS 部分支持 AXI4及 AXI?Lite 总线, PL 部分同时具有相应的接口,完成 FPGA 与处理器之间的高效通信[8]。本文采用 AXI4协议支持的 AXI4?Stream接口进行高速数据流的传输,该接口在数据传输时不需要地址,主从设备之间可直接连续地读写数据,但 PS 端的 ARM 不能直接对其进行控制,需通过 VDMA 模块实现内存映射到流式接口的转换。因此,PS 与 PL 之间需通过 VDMA 通道进行数据的高速存取与读写。
AXI4采用握手通信机制,其握手协议时序如图4所示。数据传输采用双向握手形式,全局时钟 ACLK 配置为100 MHz,以保证 VDMA 的数据传输速率。在每个 ACLK 时钟的上升沿对信号进行采样, T1时刻之后 Master端向 Slave端发送 READY 信号,将 READY 信号拉高并保持,此时 INFORMATION 信号线上传输的地址、数据及控制信息有效。 Slave 端在 T2之后将 VALID 信号拉高,表明已准备好接收数据。直到 T3时刻,在 ACLK 时钟上升沿检测到VALID 和 READY 同时为高,握手成功并进行数据传输。采用 AXI4-Stream接口进行高速数据流实时传输时,利用 ILA 采集的 VALID、READY等信号工作时序如图5所示。
采用 ZYNQ7 Processing System IP 核对 DDR3进行数据读写操作控制, IP 核通过内部倍频和分频向 DDR3提供533.33 MHz 的运行时钟。因为 DDR3是双沿触发,所以其可支持带宽为
533:33 MHz根2根16 bit/s根2=33:33 Gbit/s (1)
一帧双目图像的数据量为
800根600根16 bit 根2=14:648 Mbit
双目视频流所需带宽为
14:648 Mbit根25 Hz =416:2 Mbit/s (3)
因此,数据缓存传输带宽满足本系统的设计需求。
2.3 数据传输
ZYNQ 平台 PS 端的板级支持包中带有LwIP协议栈,可以很方便地实现数据的网络传输[9]。在本设计中, PS 端未使用任何操作系统, API 采用 RAW API,传输协议采用 UDP,这样做的优点是可以高效率利用 PS 端处理器的资源快速地将视频数据包发送至上位机。
UDP 协议是面向无连接的协议,控制选项较少,在数据传输过程中延迟小,数据传输效率高。在应用时,本设计参考了 ALINX 公司提供的自定义网络传输协议解决方案,在此基础上进行了适当修改以适用于本系统。LwIP的工作流程如图6所示。
3 标定与立体校正
3.1 相机标定
相机标定即通过图像坐标和世界坐标求解内外参数的过程[10]。相机标定的精度会直接影响测量定位的精度及三维重建的效果,因此,双目相机的标定是实现高精度双目视觉测量定位、三维重建等功能的重要前提。目前相机标定主要有3种方法[11-14]:传统方法、自标定方法和基于主动视觉的标定方法。相较于自标定方法和基于主动视觉的标定方法,传统方法中张正友标定法具有操作简单,标定精度高,鲁棒性好等优点,且被广泛使用。故本文采用基于 MATLAB 软件的张正友标定法对双目相机进行标定。
标定所使用的标靶为黑白正方形棋盘格,角点数量为6×9,棋盘格尺寸为50 mm×50 mm。为保证双目标定的精度,共采集34对图像。标定求解的参数主要包括双目相机的3个径向畸变系数、4个内参数及旋转矩阵和平移矩阵2个外参数。标定完成后,34对图像的重投影误差平均值为0.0542 pixel,得到的标定参数如表1所示。
3.2 立体校正
由于安装误差等原因,理想的平行双目相机模型并不存在,故需将双目相机的像平面重新映射,使两个成像平面共面且行对准[15-18]。本文采用Bouguet算法进行立体校正,需要使用双目相机标定的外参数旋转矩阵 R 和平移矩阵 T。Bouguet算法主要分为两个步骤:(1)将旋转矩阵 R 分解得到左旋转矩阵和右旋转矩阵,让左相机坐标系和右相机坐标系向对方各自旋转一半,此时两个成像平面共面但行不对准;(2)利用平移矩阵T 构造变换矩阵,将左右相机坐标系分别绕主光轴旋转,此时两个成像平面处于行对准状态。经立体校正后,可获得成像平面共面且行对齐的双目图像。
4 结果与分析
研制完成的水下双目相机工程样机如图7所示,样机主要由核心板、接口扩展板、摄像头模组及耐压外壳等构成。核心板采用的主芯片为 ZYNQ?7000系列的 XC7Z035FFG676?2,核心板尺寸为60 mm×70 mm。接口扩展板具有串口、以太网等接口,尺寸为65 mm×125 mm。双目相机的基线长度为55.2 mm。耐压外壳经压力筒加压测试,其耐压深度为1000 m。样机采用外部供电,通过水密缆与上位机进行通信。
在Vivado中完成硬件工程搭建后,将由 SDK 生成的BOOT.bin文件存储到 SD 卡中,系统上电后,XC7035芯片加载 SD 卡的镜像文件启动工作。双目相机与上位机软件建立网络连接后,图像传感器采集图像信息,XC7035芯片及 DDR3缓存并传输图像,利用 Qt 编写的上位机软件实时显示图像并进行存储等处理。双目相机实时图像采集与显示实验如图8所示。
在实验过程中,通过功率计测得双目相机在运行状态时的功耗为2.1 W 。PC 机网络带宽为367 Mbit/s ,一帧分辨率为1600 pixel×600 pixel 的双目图像大小约为14.65 Mbit,通过计算可知,当前帧率约为25 frame/s。实验结果表明,该双目图像采集与处理系统能实时采集视频图像并显示。
利用标定结果数据,对采集的双目图像进行立体校正,输出左右双目图像,校正前后双目图像如图9所示。实验结果表明,2对左右双目图像的校正图结果显示正常,消除了镜头畸变,对应点均在同一水平线上,实现了行对齐。
5 结论
本文以 ZYNQ 基础平台设计并实现了一套双目实时图像采集与处理系统,研制了1000 m耐压深度的水下双目相机工程样机,利用硬件电路对双目图像进行采集、缓存和传输,通过上位机对双目图像进行显示、存储及处理。结果表明,该双目实时图像采集与处理系统工作稳定,上位机接收两相机图像正确并实时显示,双目图像的立体校正结果较好。工程样机具有功耗低、体积小、大耐压的特点,满足水下机器人近距离作业的要求,可为后续开展双目视觉算法在水下作业场景的研究与验证提供参考。
参考文献:
[1]李佳宽, 于洪志.双目立体视觉的水下应用[J].科技创新与应用, 2018(32):31–32.
[2] SAHOO A, DWIVEDY S K, ROBI P S. Advancementsinthefieldofautonomousunderwatervehicle[J]. Ocean Engineering, 2019, 181:145–160.
[3] MANSOR H, NORHISAM M H, ABIDIN Z Z, et al. Autonomoussurfacevesselforsearchandrescue operation[J]. BulletinofElectricalEngineeringand Informatics, 2021, 10(3):1701–1708.
[4]刘豪.基于双目视觉的水下立体匹配方法研究[D].武汉:华中科技大学, 2022.
[5]谢亮亮, 屠大维, 张旭, 等.深海原位激光扫描双目立体视觉成像系统[J].仪器仪表学报 , 2020, 41(6):106–114.
[6] SILVA J, SKLYAROV V, SKLIAROVA I. Comparisonofon-chipcommunicationsinZYNQ-7000 allprogrammablesystems-on-chip[J]. IEEE Embedded Systems Letters, 2015, 7(1):31–34.
[7]张宏宇, 焦新泉, 贾兴中.双目视觉采集处理系统设计[J].火力与指挥控制, 2023, 48(7):163–169.
[8]钱成铎, 方振国, 汪珺, 等.基于 ZYNQ 的高速图像采集处理系统设计[J].长春师范大学学报 , 2021, 40(12):29–36.
[9]赵文雅.基于 ZYNQ 的红外图像处理及传输系统的设计与实现[D].郑州:郑州大学, 2021.
[10]杨明, 王海晖, 陈君, 等.双目标定系统精度提高的方法[J].武汉工程大学学报, 2012, 34(1):69–73.
[11]刘晓利, 田媛, 童飞, 等.双目立体视觉的光学标定技术[J].光学仪器, 2013, 35(3):11–15.
[12]殷文茜.双目视觉系统标定方法的研究[D].西安:西安理工大学, 2021.
[13] WANG Z W,SHIHS,LINDL. Effectivefactorsanalysis on camera calibration[C]//Proceedings of 2020International Conference onCommunications,Information System and Computer Engineering. KualaLumpur: IEEE, 2020:331?334.
[14] ZHANGJK,WANGX,MAMM,etal. Cameracalibrationforanamorphiclenseswith three-dimensionaltargets[J]. AppliedOptics, 2020, 59(2):324–332.
[15]孙思瑞, 陶月松, 陈彬, 等.基于Opencv的双目视觉智能防撞系统[J].自动化技术与应用 , 2020, 39(5):11–14.
[16]张朝财, 张薇, 周德峰, 等.基于短基线双目内窥镜成像系统的3D 视频标定与校正[J].光学仪器 , 2023,45(3):30–36.
[17]王梦姣.基于双目立体视觉的测距系统研究[D].南京:南京信息工程大学, 2023.
[18]张锋.基于双目视觉的立体匹配及点云重构研究[D].合肥:安徽农业大学, 2022.
(编辑:张磊)