一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种用于CMV4000相机的图像采集与处理系统的制作方法

2022-07-16 17:19:03 来源:中国专利 TAG:

一种用于cmv4000相机的图像采集与处理系统
技术领域
1.本发明属于图像处理领域,尤其涉及一种用于cmv4000相机的图像采集与处理系统。


背景技术:

2.在航空航天、工业控制、智慧城市、抢险救灾等领域,图像采集与图像处理技术都有广泛的应用,在这些领域中,对图像的清晰度和图像处理的速度要求较高。图像采集系统往往需要在狭小空间和恶劣环境中工作,装置的体积受到限制,因此通常采用嵌入式方案,受限于嵌入式系统的性能,如何在采集高分辨率图像与实时性图像处理之间取得平衡是目前实际应用中面临的难题。
3.cmv4000是cmosis公司的一款高速cmos图像传感器,输出图像为rgb bayer格式,图像最高分辨率可达2048
×
2048,最高帧率可达180fps,用户可以通过标准spi接口对传感器寄存器进行配置,控制相机的分辨率、输出方式、曝光模式和时间等参数。
4.zynq ultrascale mpsoc系列芯片是xilinx公司推出的第二代zynq平台,与上一代相比,芯片的ps(processing system)端集成了64位四核arm cortex-a53处理器,可以运行arm linux系统,芯片的pl(programmable logic)端拥有丰富的兼具高灵活度与高性能的fpga逻辑资源,还包含h.264视频编解码模块vcu(video codec unit)硬核与100gb以太网控制器,ps端与pl端通过内部高速总线(axi)连接,这种zynq架构既保留了传统cpu的通用性,又具有fpga的灵活性和高性能的优点。在实际应用中,仅需要单个zynq芯片结合少量外部器件,即可完成cmv4000相机图像数据的图像采集、软硬件协同图像处理、视频压缩和转发等工作。


技术实现要素:

5.本发明的技术目的是提供一种用于cmv4000相机的图像采集与处理系统,以解决如何高分辨率采集,以及如何实时完成图像处理和视频压缩转发问题。
6.为解决上述问题,本发明的技术方案为:
7.一种用于cmv4000相机的图像采集与处理系统,包括:相机配置模块、pl端图像处理模块、ps端图像处理模块和存储模块;
8.相机配置模块分别与ps端图像处理模块和cmv4000相机信号连接,受控于ps端图像处理模块接收配置信号对cmv4000相机的寄存器进行配置,使得cmv4000相机进行拍摄工作;
9.pl端图像处理模块分别与cmv4000相机、存储模块和ps端图像处理模块信号连接,受控于ps端图像处理模块从cmv4000相机接收图像数据进行图像处理,进而送入存储模块;
10.ps端图像处理模块用于运行linux系统,以控制相机配置模块和pl端图像处理模块。
11.具体地,相机配置模块设有spi接口、控制接口;
12.相机配置模块spi接口与ps端图像处理模块信号连接,用于接收相机配置信号,相机配置模块spi接口与cmv4000相机的spi接口信号连接,用于对相机的寄存器进行配置;
13.相机配置模块控制接口与ps端图像处理模块信号连接,用于接收ps端控制命令,对spi接口进行配置。
14.具体地,pl端图像处理模块包括lvds图像信号转接模块、rgb图像插值模块、tpg桥梁模块、gamma校正模块、颜色空间转换模块和图像写入模块;
15.lvds图像信号转接模块与cmv4000相机信号连接,用于并行接收cmv4000相机输出的8通道lvds信号并在ram中存储为rgb bayer格式数据图像;
16.rgb图像插值模块与lvds图像信号转接模块信号连接,用于读取rgb bayer格式图像数据,通过插值转化为rgb格式数据图像,将rgb格式数据发送至下一模块;
17.tpg桥梁模块与rgb图像插值模块信号连接,用于接收rgb格式数据图像,为ps端图像处理模块提供图像数据源;
18.gamma校正模块与tpg桥梁模块信号连接,用于接收rgb格式数据图像进行gamma校正;
19.颜色空间转换模块与gamma校正模块信号连接,用于接收gamma校正后的rgb格式数据图像并转化为ycrbr颜色空间的nv12格式数据图像,或接收后不进行任何操作;
20.图像写入模块用于接收rgb格式数据图像或nv12格式数据图像写入存储模块存储。
21.进一步优选地,ps端图像处理模块还与存储模块信号连接,用于获取保存于存储模块的图像数据基于opencv视觉库进行图像处理,得到结果图像并写回存储模块中。
22.进一步优选地,还包括视频压缩模块,
23.视频压缩模块与存储模块信号连接,用于接收nv12格式数据图像,进行h.264压缩,得到压缩码流并写回至存储模块。
24.进一步优选地,还包括网口转发模块,网口转发模块与ps端图像处理模块信号连接,用于经ps端图像处理模块从存储模块获取压缩码流并转发至外部上位机。
25.本发明由于采用以上技术方案,使其与现有技术相比具有以下的优点和积极效果:
26.1)zynq芯片集成了fpga逻辑资源,定制图像处理ip核hdcamtop完成cmv4000相机lvds图像数据转接和rgb图像插值的功能,其他ip核完成了tpg桥梁、gamma校正、颜色空间转换、图像写入ddr的功能,fpga可以并行执行算法,提高了图像处理的速度。
27.2)zynq芯片集成了arm cortex-a53处理器,可运行arm linux系统,相比于裸机,linux可以更加便利地驱动zynq pl端硬件,系统的opencv视觉库降低了实现更复杂的图像处理算法的技术门槛。
28.3)本发明zynq ps端不介入图像处理时,能实现2048
×
1080分辨率图像地采集和传输速度可达30fps,满足高分辨率和实时性要求,当ps端linux系统运行图像锐化程序时,速度可以维持15fps,保持一定的实时性。
附图说明
29.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通
技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
30.图1为本发明的一种用于cmv4000相机的图像采集与处理系统的功能模块与图像数据传输示意图;
31.图2为本发明的一种用于cmv4000相机的图像采集与处理系统的总体框架示意图;
32.图3为本发明的linux配置cmv4000相机寄存器程序流程图。
具体实施方式
33.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
34.为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
35.以下结合附图和具体实施例对本发明提出的一种用于cmv4000相机的图像采集与处理系统作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。
36.实施例
37.参看图1和图2,本实施例提供一种用于cmv4000相机的图像采集与处理系统,包括:相机配置模块、pl端图像处理模块、ps端图像处理模块和存储模块(即图中的ddr)。
38.参看图2,相机配置模块即为图2中的axi quad spi ip核,其开设有spi接口和控制接口。相机的spi接口与axi quad spi连接,通过axi总线与ps端图像处理模块通信,在linux系统中注册为spi从设备/dev/spidev1.0。即zynq的ps端图像处理模块通过spi接口读写cmv4000相机(即图中的cmv4000图像传感器)的配置寄存器,使得cmv4000相机进行正常地拍摄工作。其控制接口则通过axi总线与ps端图像处理模块信号连接,用于配置axi quad spi ip核的spi接口,可配置项包括spi模式、spi读写最大频率、高位或低位优先传输顺序、片选使能等。
39.在本发明的一个实施例中,配置相机配置模块的spi接口为标准模式,spi读写最大频率为36mhz,低位优先传输。
40.在本发明的一个实施例中,系统的spi从设备使能接口分配至zynq的第32号emio口,zynq的pl端图像处理模块使能接口分配至zynq的第77号emio口,linux系统向emio口写入字节,则emio口对应引脚输出使能电信号。
41.参看图3,本实施例相机配置流程如图3所进行
42.步骤1,linux系统向第32号emio口写入0x01,使能spi从设备;
43.步骤2,向/dev/spidev1.0发送写寄存器指令,配置cmv4000相机的分辨率、曝光时间等参数,cmv4000相机部分重要寄存器的配置如下表1所示;
44.步骤3,配置完成后,向/dev/spidev1.0发送读寄存器指令,读取寄存器值并与预设值比对,确认参数配置的正确性;
45.步骤4,验证无误后,系统向第32号emio口写入0x00关闭spi从设备,向第77号emio口写入0x01,即向zynq的pl端图像处理模块发送spi_done使能信号,通知pl端可以开始接收图像数据。
46.表1cmv4000相机部分寄存器配置
47.寄存器序号寄存器功能描述设置寄存器值reg[3]&reg[4]图像起始位置y坐标0x01e4(十进制为484)reg[19]&reg[20]图像行数量0x0438(十进制为1080)reg[41]曝光模式与曝光时间0x05,表示使用外部曝光时间reg[72]数据输出模式0x01,表示8通道lvds输出
[0048]
参看图2,pl端图像处理模块分别与cmv4000相机、存储模块和ps端图像处理模块信号连接,受控于ps端图像处理模块从cmv4000相机接收图像数据进行lvds图像信号转接、rgb图像插值、tpg桥梁、gamma校正、颜色空间转换、图像写入等功能,进而将图像数据送入存储模块。
[0049]
具体地,pl端图像处理模块包括lvds图像信号转接模块、rgb图像插值模块、tpg桥梁模块、gamma校正模块、颜色空间转换模块和图像写入模块。
[0050]
参看图2,lvds图像信号转接和rgb图像插值功能由hdcamtop ip核实现,该ip核为定制ip核,使用verilog语言编写。cmv4000相机发送8通道lvds串行图像数据和1通道控制数据,hdcamtop接收linux系统发送的spi_done信号后开始工作,即lvds图像信号转接模块根据控制数据标记lvds图像数据有效性,并行同步接收8通道lvds有效数据,存储于ram中。完整接收一帧图像后,hdcamtop继续对ram中的图像数据进行处理,由于cmv4000采集图像格式为rgb bayer格式,每个像素点仅包含rgb中的一种分量,需要由hdcamtop中的rgb图像插值模块完成图像插值,将ram中的图像转化为标准rgb格式数据图像。插值完成后,hdcamtop输出行同步信号、帧同步信号和像素值至下一个ip核。
[0051]
进一步地,tpg桥梁模块由video in to axi4-stream ip核与tpg ip核实现。video in to axi4-stream与hdcamtop连接,将hdcamtop的输出图像数据转化为适于高速传输的axi4 stream数据流,tpg对接收到的axi4 stream数据流不叠加任何测试图像,直接转发至接续的gamma lut ip核即gamma校正模块。由于linux内核没有对应的cmv4000相机驱动程序,系统无法直接将相机注册为子设备作为图像数据源,也无法修改相机参数,tpg由linux系统通过axi总线控制,ip核在linux中注册为/dev/v4l-subdev0子设备,是linux系统层面的图像数据源,为系统提供图像分辨率、图像格式等必要信息,明确的数据源是linux建立可控的media视频处理管道的前提。
[0052]
gamma校正模块的校正功能由gamma lut ip核实现,该ip核由linux系统通过axi总线进行控制,在linux中注册为/dev/v4l-subdev1子设备。cmv4000相机的感光模块对光的反应是线性的,而人眼对光的感知是非线性的,进行gamma校正后图像显示更精确,更加贴近人眼感受。
[0053]
接着进入颜色空间转换模块,颜色空间转换模块的颜色空间转换功能由vpss ip核实现,该ip核由linux系统通过axi总线进行控制,在linux中注册为/dev/v4l-subdev2子设备。如果ps端图像处理模块不进行软件图像处理,则vpss进行颜色空间转换,将rgb格式的图像数据转换为ycrbr颜色空间的nv12格式,当然也可以接收后不进行任何操作。
[0054]
与gamma校正模块信号连接的图像写入模块用于将接收的rgb格式数据图像或nv12格式数据图像写入存储模块存储。其写入ddr功能由video frame buffer write ip核实现,该ip核由linux系统通过axi总线进行控制,在linux中注册为/dev/video0子设备。在zynq pl端图像处理模块中,图像数据通过axi4 stream协议在ip核之间流动,输入video frame buffer write ip核后,数据被搬移至存储映射axi接口,按nv12或rgb图像像素排列格式写入ddr存储中。rgb格式图像单个像素占用24bit,按照{b[23:16],g[15:8],r[7:0]}排列写入存储模块存储,nv12格式图像y分量单独存储,按{y3[31:24],y2[23:16],y1[15:8],y0[7:0]}排列,每4个y分量共用一组u、v分量,u、v分量交叉存储,按{v4[31:24],u4[23:16],v0[15:8],u0[7:0]}排列,单个像素占用12bit。该ip核兼有检测图像格式正确的功能,ip核向存储模块写数据时会关注图像格式,如果与linux系统指定格式不相符,注册的/dev/video0子设备会向系统报错。
[0055]
参看图2,ps端图像处理模块用于运行linux系统,以控制相机配置模块和pl端图像处理模块。较优地,ps端图像处理模块还与存储模块信号连接,用于获取保存于存储模块的图像数据基于opencv视觉库进行图像处理以实现复杂的图像处理算法,得到结果图像并写回存储模块中。
[0056]
opencv视觉库源码经过交叉编译后可适用于arm linux系统,opencv视觉库实现了常用图像格式的数据结构,封装了中值滤波、直方图均衡、canny边缘检测等图像处理函数。在本实施例中,在linux系统中基于opencv实现了彩色图像锐化算法,图像锐化基于二维laplace滤波,突出图像中灰度产生突变的部分,使图像中物体的边缘轮廓变得明显,其方法为:
[0057]
步骤1,打开系统子设备/dev/video0并获取rgb帧图像,图像在opencv中表示为cv_8uc3格式的三通道整型矩阵;
[0058]
步骤2,以r分量单通道矩阵为例,二维图像矩阵的laplace算子公式为:
[0059][0060]
在二维图像中,使用离散形式描述微分,则laplace算子中的二阶导数可表示为:
[0061][0062][0063]
则laplace算子的离散形式可表示为:
[0064][0065]
步骤3,根据上述公式,设计三阶laplace滤波器:
[0066][0067]
在空间域上使用laplace滤波器分别遍历rgb图像的三通道,得到laplace滤波图
像,物体边缘在图像中呈现亮色,背景呈现暗色;
[0068]
步骤4,laplace滤波图像可能会包含负值,像素在opencv中表示为cv_32fc3格式的浮点数,利用convertscaleabs()函数将滤波图像转化为cv_8uc3格式的整型,将经过处理的laplace滤波图像与原图像叠加,得到锐化图像。ps端图像处理模块,在linux系统完成软件端图像处理后,将结果图像转换为nv12格式,写入存储模块存储。
[0069]
较优地,还包括视频压缩模块和网口转发模块,该视频压缩模块为vcu视频编码硬核模块,该网口转发模块为100gb以太网控制器,因此,支持h.264视频编码和网络传输功能。vcu仅接受nv12、nv16和灰度格式的图像,在本实施例中,vcu从存储模块中读取nv12格式帧图像并进行h.264压缩:目标码率设置为20000kbps,在h.264帧间压缩过程中,关键帧i帧的距离设置为60,i帧之间仅生成前向参考帧p帧,不生成双向参考帧b帧,在h.264帧内压缩过程中,采取cabac无损编码方式;压缩完成后vcu将h.264码流写回存储模块,linux系统从存储模块中读取码流数据,进行rtp打包后,利用udp协议从网口转发至外部上位机,经过压缩后一帧图像的平均大小约为33kb,网口带宽可以负载。
[0070]
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式。即使对本发明作出各种变化,倘若这些变化属于本发明权利要求及其等同技术的范围之内,则仍落入在本发明的保护范围之中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献