图像实时检测范文

2024-06-15

图像实时检测范文(精选10篇)

图像实时检测 第1篇

在实时图像处理中,实现边缘检测算法的计算步骤复杂,对处理速度要求较高,因此,用纯软件方法很难达到要求。然而,FPGA器件对同时可完成的处理任务几乎没有限制,适合高速、并行信号处理,并且FPGA密度高、容量大,有内置存储器、容易实现,故FPGA被广泛用于实时图像处理系统,对边缘检测的工程实现以及实现效率和成本具有重要意义。文中设计了一种基于FPGA的实时图像边缘检测系统,利用FPGA对图像数据进行实时处理,从而获得较高的处理性能。

1 Sobel边缘检测基本原理

Sobel算子是图像边缘检测算法中的常用算法,其计算简便、检测效果好。采用Sobel算法对图像进行边缘检测时,首先要利用Sobel算子计算出水平梯度和垂直梯度,然后再把两个方向的梯度结合起来,最后应用门限处理模块判断图像边缘并输出边缘检测结果,其框图如图1所示。

一般情况下,在数字图像处理中,每幅图像都被量化成许多像素。常用的Sobel算子有两个,一个水平方向的,一个垂直方向的,如图2所示[1]。

(a)Cx:水平方向梯度,检测垂直边缘(b)Cy:垂直方向梯度,检测水平边缘

Sobel边缘检测算法用3×3的卷积表来存储一个像素及其相邻像素用于计算亮度导数。把这个卷积表逐个像素地移动,最后完全通过一幅图像。除边缘像素不可导之外,对于一幅640×480的图像,这个卷积表将要移动302 964(638×468)次位置。

边缘检测首先需要将原始图像转化为灰度图像,其中的每一个像素都代表了原始图像的一个亮度水平:用10位二进制数据表示,“0”代表黑色,“1023”代表白色。这就将一幅图像创建成了一张很清楚的灰度图像。边缘信息来源于两个相邻像素的亮度变化:如果所有相邻像素有同样的亮度,则说明此区域不是边缘;相反,如果一些相邻像素的亮度明显高于另一些,则说明此区域为边缘。测量相邻像素的亮度关系就是计算亮度导数[2]

|G|=Gx2+Gy2(1)

其中,G为亮度导数,GxGy是Sobel 边缘检测在X方向与Y方向的Kernel。

2 Sobel边缘检测设计与实现

通过摄像头获得的未处理图像被转化为一个RGB(Red Green Blue)格式图像,然后把这个图像进行二值化处理转为灰度图像,以获得进行边缘提取时需要的图像强度。灰度图像被镜像后正确地显示到液晶屏上,并且存储在SDRAM FIFO(First In First Out)中。以640个像素为宽度,3行数据连续存储在M4K块里,一旦数据被准备好,就开始进行边缘检测。液晶屏控制器连续刷新屏幕将边缘检测的结果显示到液晶屏上。基于FPGA的实时图像边缘检测的系统如图3所示。

(1)灰度图像。

为进行边缘检测,必须将从摄像头采集来的RGB彩色图像转换为灰度图像。在灰度图像中,绿色需要较高的强度[2]。直接将RGB图像转换为灰度图像的表达式。

Grayscale=0.299×red+0.587×green+0.114×blue (2)

理论上效果最好、用硬件实现效率最高的是

Grayscale=red≫2+green≫1+blue≫2 (3)

然而,这样的处理结果还不能为边缘检测提供足够的对比度。经过反复调试,发现在使用的设备上提高绿色强度的最好方法是

Grayscale=red+green≪1+blue (4)

(2)梯度计算。

在用Sobel进行边缘检测时,可以用Sobel算子与图像像素做卷积运算,然后用梯度公式计算图像像素点梯度。如图4所示,P1、P2、P3、P4、P5、P6、P7、P8、P9为图像像素点,若对P5点做卷积,虽然是对P5运算,但是必须同时知道P1、P2、P3、P4、P6、P7、P8、P9的信息,这在C语言中不是问题,因为它们保存在一个数组内,只要改变数组的下标即可得到,但在Verilog HDL中却做不到。

Gx做运算时,根据Sobel边缘检测算法,P5对Gx的亮度导数为[2]

XP1+XP2+…+XP8+XP9 (5)

可以用Parameter定义来取得X1~X9,但很难获得P1~P9,因为P1、P2、P3,…,P9是依序传入的,但Verilog HDL没有C语言中地址的概念,更没有二维数组的概念,为此,设计了3条Line Buffer做以上运算,如图5所示。

设计的3条Line Buffer与Gx乘加的部分由Megafunction的altmult_add与parallel_add完成,每条Line Buffer只有3个点的程序来仿真,结果如图6所示。从图6中可以看出,在最后一个pixel:9输入后,下一个clock得到的值是1、4、7,再下个clock是2、5、8,最后一个clock是9、6、3,也就是Line0依次得到9、8、7,Line1得到6、5、4,Line3得到3、2、1,所以Line0必须与X9、X8、X7做乘加,其余同理,所以:

MAC_3 x0(

.aclr0(!iRST_N),

.clock0(iCLK),

.dataa_0(Line0),

.datab_0(X9),

.datab_1(X8),

.datab_2(X7),

.result(Mac_x0));

Mac_3是Megafunction的altmult_add,其余的X1、X2与Y0、Y1、Y2同理。

(3)图像数据缓冲器。

在图像的空域滤波中,为得到3×3的方形模板窗,通常使用FIFO(First In First Out)模块作为图像数据的缓冲器。文中摄像头采集的图像被送到SDRAM FIFO中,故需将图像信息装载到3个连续的M4K块中,这些块存储了3行像素以备边缘检测计算用,边缘检测状态机启动对第一个3×3卷积表进行卷积运算,结果被送到SDRAM并用液晶屏输出。接着进行下一个3×3卷积表计算,依次类推,直到最后一个3×3卷积表的计算完成。当计算完成一行后,需要读取更多由M4K块组成的行,但是这次仅需要读取第4个M4K作为第1个M4K,余下第2个M4K的值仍作为第2个M4K,第3个M4K的值仍作为第3个M4K,如此重复,直到计算完整幅图像,然后继续计算下一帧。

3 Sobel边缘检测验证

为验证该方法的有效性,文中搭建了验证平台并对Sobel边缘检测模块进行验证。由Matlab产生原始数据和期望结果数据,并分别存放在original.txt和result.txt两个文件中。如图7所示,将原始数据读进test_up_mpdule_Sobel单元,与控制信号一起产生数据流。期望结果数据被test_result_module_Sobel读入。这个模块将来自Sobel模块的数据与期望数据相比,给出相应的测试结果。

图8所示为Sobel实时边缘检测的仿真时序图,在每一行的开始,读数据状态机从SDRAM中读取640个像素并写入3个M4K块。先用3个时钟周期来定位M4K中的3×3卷积表,当卷积表更新完成后开始边缘检测。需要花4个时钟周期计算最大的边缘值。然后,将边缘检测结果存入SRAM中。通常用一个周期决定下一个状态。如果像素点少于640个,将从M4K块中读取新值组成640个像素。

Sobel实时边缘检测效果如图9所示。(a)为原始图像,(b)为采用Sobel算法进行边缘提取后的图像,从系统的运行结果可以看出,该系统可以对实时图像进行边缘检测运算,并且检测精度较高。

使用Quartus II综合器对Sobel模块进行综合后,得到的综合报告如图10所示。由综合报告可知,Sobel边缘检测模块占用资源相对合理。因此,完全由硬件电路进行数据处理算法,并且能在数据处理中实现高并行度是FPGA的优势。

4 结束语

Sobel算法实现基于FPGA的实时图像边缘检测。传统Sobel算法实现边缘检测是基于静态图像的,文中方法是用摄像头采集连续的视频流,在FPGA上用Sobel算法实现实时图像的边缘检测,同时显示在 液晶屏上。传统的图像处理系统由于对数据进行串行操作,处理一次卷积需要几十至几百个指令周期,而利用FPGA硬件资源进行数据运算则可以在一个周期内得到运算结果,效率大大提高。

摘要:传统Sobel算法实现边缘检测是基于静态图像,而在实时图像处理中,边缘检测存在一定的复杂度和难度,文中将FPGA应用于实时图像边缘检测系统,从而实现动态实时图像的边缘检测。通过搭建实验平台仿真验证表明,检测精度和数据处理的运算效率均有所提高。

关键词:Sobel算法,边缘检测,实时图像,FPGA

参考文献

[1]吴海彬,何祖恩,李文锦.基于改进Sobel算子的图像边缘检测及其嵌入式实现[J].2009,37(10):133-136.

[2]张广军.视觉测量[M].北京:科学出版社,2008.

[3]谷陆生.基于SoPC的实时边缘检测系统研究[J].电子技术应用,2009(8):47-48,75.

[4]李明,赵勋杰,毛伟民.Sobel边缘检测的FPGA实现[J].现代电子技术,2009,33(16):44-46.

图像实时检测 第2篇

为了更加逼真地模拟红外目标及战场背景,基于图像生成及显示计算机、硅桥MOS电阻面阵控制计算机系统、128×128 MOS电阻阵列及电源、实时通讯反射内存网络(反射内存卡及光纤)、目标及背景红外图像实时生成软件和MOS电阻面阵控制软件等6部分组成了某红外图像实时生成系统;该系统采用的高速光纤反射内存实时通讯网络、超大规模D/A控制板等使得帧刷新频率达到了200 Hz以上、长线传输不受环境电磁干扰、更易于向256×256MOS电阻阵列扩展等,同时保证了在五轴转台的恶劣环境下可靠工作.

作 者:张安京 王仕成 张金生 刘志国 高智杰 韩连洋 ZHANG An-jing WANG Shi-cheng ZHANG Jin-sheng LIU Zhi-guo GAO Zhi-jie HAN Lian-yang 作者单位:张安京,王仕成,张金生,刘志国,ZHANG An-jing,WANG Shi-cheng,ZHANG Jin-sheng,LIU Zhi-guo(第二炮兵工程学院301教研室,西安,710025)

高智杰,GAO Zhi-jie(北京市清河大楼,北京,100085)

韩连洋,HAN Lian-yang(第二炮兵驻十院军事代表室,北京,100854)

图像实时检测 第3篇

摘要:采用FPGA和DSP的结构实现实时图像采集处理系统,利用FPGA运行速度快、并行处理能力强的优势,采用“对数拉伸”算法对摄像头采集的数据进行前期预处理,达到图像增强,使得停车场类昏暗光线图像亮度分布不均匀的图像变得清晰;利用DsP具有较强处理复杂算法的优势,对FPGA传送过来的分块图像数据采用JPEG并行压缩算法进行图像的压缩,实验结果表明,图像增强模块能够明显改善图片质量,FPGA和DSP的结构能够很好的满足系统实时性的要求,

关键词:FPGA;DSP;图像采集;图像增强;图像压缩

DOI:10.15938/j.jhust.2016.04.008

中图分类号:TP391.41

文献标志码:A

文章编号:1007-2683(2016)04-0040-05

0引言

随着现代技术的发展和人们对图像采集处理质量需求的不断提升,对图像采集系统的性能和实时性提出了更高的要求,而对于数据量大、噪声干扰严重的图像数据,采用单个DsP芯片难以满足系统的性能和实时性的要求,用FPGA对图像进行预处理并实现对DSP的控制与管理,就可以很好的解决了这类问题,本系统针对停车场类昏暗光线图像,利用FPGA采用零有效视频信号提取算法提取出输入的有效的YUV视频数据,采用对数拉伸增强算法对图像进行预处理,预处理后的图像送入到DSP内采用并行JPEG压缩算法对数据进行压缩,仿真结果表明,图像增强模块使昏暗光线图像明显增强,数据压缩后使信息传输量减少20%,能很好地满足系统实时陛要求,

1.实时图像采集处理系统总体结构

系统总体框图如图1所示,系统分为9个模块,FPGA内包含的模块有视频解码模块,12C配置模块,视频帧存模块,去除隔行模块,视频增强模块,DSP接口模块,

DSP芯片内包含的模块有图像数据接口模块,图像数据缓存模块,图像压缩模块,通过CCD摄像头对视频进行采集,图像数据送入视频A/D转换芯

2.1视频解码模块设计

视频解码模块接受模数转换器ADV71781 B的YUV数字信号,这些数字信号中包含有场参考信号VS、行参考信号HS和奇偶场信号,要对YUV信号分别进行处理必须从图像数据中提取出有效的Y、u、V数据,摄像头采集的数据经过ADV7181B转片中,经12C总线对视频A/D转换芯片初始化,完成控制寄存器的配置,使其上电后进人工作模式;A/D转换芯片输出图像送人视频解码模块,视频解码模块接收A/D转换的视频流后对视频流进行解码,产生YUV数据;视频帧存储模块采用乒乓存储算法结构对YUV数据进行存储,使YUV图像数据转化成并行数据;为了增强视频效果,消除抖动闪烁去除隔行模块完成采集图像的奇场帧和偶场帧的合并,由于系统应用于地下车库监控系统,采集的图像数据光线以及灯光等原因图像画面不清晰,通过图像增强模块增强其对比度使图像清晰;增强后的图像数据通过DSP接口模块送入DSP芯片内进行压缩;DSP芯片压缩处理数据量很大,为避免数据丢失,图像数据通过DSP内部的接口模块和图像缓存模块缓存到SDRAM中;缓存一帧图像数据后,在DSP内也采用乒乓读写操作将数据送入压缩模块进行压缩,压缩后数据送回FPGA存储待发送。

2.FPGA内部模块设计

FPGA内部共有5个模块组成,顶层仿真设计电路如图2所示,输人为摄像头采集的复合信号DATA,时钟信号elk,输出为经过处理的视频有效信号和压缩后传回FPGA的YUV_DATA、YUV_DA-TA0信号,换后输出符合ITU—R656的信号DATA,行同步信号HS,帧同步信号VS,DATA的数据格式如图3所示,视频解码模块主要是提取出YUV数据,即将串行的数据转换为并行的YCrCb数据,

从上图可以看出AV信号都是以“FF0000”作为开始信号,但SAV的XY[4]=0,EAV的XY[4]

1.利用这点我们构造一个检测电路来实现YUV数据的并行输出,视频数据提取算法如图4所示,算法在实现上利用状态机完成对“FF0000'数据流以及SAV、EAV的识别,识别出有效数据后操作设置好的计数器cnt,算法中YUV数据为422格式,当cnt=0时输出Cb,cnt=1时输出Y,cnt=2时输出Cr,cnt=3输出Y,最终得到YUV有效的视频数据,

2.2视频帧存模块设计

视频解码模块输出的YUV信号需要三个缓存器进行缓存,通过软件自带的端口RAM的宏模块把每个缓存定义成双端口的深度均为1024,每个数据端口宽度为8位RAM缓存器,

2.3去除隔行模块设计

去除隔行模块采用帧内复制的方法,具体实现方法就是改变视频帧存模块中双端口RAM的读写时钟,使读时钟是写时钟频率的两倍,这样每行的数据读两遍,隔行数据就变成了逐行数据,

2.4图像增强模块设计

2.4.1图像增强算法

地下车库的灯光相对较暗,往来进出的车辆很多而且都开着大灯,在图像中显示结果为车灯的部分特别亮,使得周围的图像模糊不清,从灰度值方面来说,灰度值为O~125之间和200~255之间的像素特别集中,这时如果直接使用原图,则图中的一部分低灰度细节可能会丢失,由于原图的灰度动态灰度值分布范围不均匀,可能大于显示设备允许的范围,使得原图的一些灰度级显示不出来,为此将地下车库的采集图像做灰度映射,使原图的动态灰度值分布变得均匀,对数形式的压缩算法可以很好地解决此类问题,其原理为:

利用上式可将原来动态范围很大的s转换为动态范围较小的t,从图5中可以看出,大部分低灰度值的像素经过映射后其灰度值会集中到高亮度区段,总体来说就是同时增大图像的亮度,对于原来灰度值小的增亮的幅度大些,原灰度值大的增亮的幅度小些,从而达到图像亮度均匀,细节不模糊的效果,

2.4.2图像增强模块硬件结构设计

图像增强主要针对于亮度信号,也就是YUV信号中的Y路信号,去除隔行模块输出的是YUV三路并行的8位信号,因此在增强模块中还要保证u、V两路信号的同步,为此采用与之前模块同样的方式设置三个宽度为8位,深度为1024的FIFO,增加一个检测电路使三路信号完成并行转换到串行,使输出给接口控制模块的数据为单路8位宽的有效图像数据,从后面仿真对比图可以看出经过图像增强模块后图像对比度明显增强,从图6的a)图可以得出整个处理过程共需O,17 ms,而从b)图可以看出在MATLAB软件上完成的时间为1,7s,

2.5接口控制模块设计

FPGA内部的接口控制模块通过一个时钟锁相环来控制,FPGA和DSP的数据通信接口如图7所示,为了将处理后的视频数据并行处理,采用8个FIFO寄存器将视频数据进行分块,第9个FIFO用来接收DSP送回的压缩数据,视频数据采集、处理完成之后,FPGA通过FIF08的空信号(empty flag)查看8个FIFO中是否数据已满,如果未满,则将数据在写时钟的逻辑控制下,顺序写入到FIFO中;同时将FIF08中满信号连接到DSP的中断引脚,满信号置高,会触发DSP的DMA进程,将寄存器中数据读走,DSP压缩一帧数据完成后通过EMIF接口将数据送回FPGA。

3.DSP内部设计

3.1图像压缩并行算法

为了达到实时性的目的对预处理后的图像进行并行JPEG压缩处理,JPEG压缩编码主要由预处理、DCT变换、量化、Huffman编码等流程构成,如图8所示,

JPEG压缩编码时,需先将原始的二维图像分成8×8的数据块并行处理,然后将各数据块按从左到右,从上到下的顺序分别进行DCT变换、量化、“之”字型(Zig-Zag)扫描和Huffman编码,分别需要量化表和Huffman编码表的支持,将8×8数据块的DCT转换为16次一维8点DCT变换,只要提高一维DCT的速度就可以提高二维DCT的速度,利用DSP的专用指令乘累加运算来优化DCT算法,DCT变换和Huffman编码采用和传统算法一样的实现方法,用C语言和汇编语言在DSP内部实现,

与传统JPEG算法在DSP芯片上实现有所不同的是,在图像压缩模块中并没有进行对二维图像的分块处理,DSP压缩模块接受的是经过FPGA分块处理后的图像数据,DSP在经过缓存后可以直接对其进行后续的压缩处理,这样既提升了整个系统的处理速度,更好的满足实时性,又减少了DSP对存储器的调用,

3.2图像压缩结果

经过DSP芯片压缩后的数据通过与FPGA接口模块传送回FPGA,最终存储或显示出来,由图9(a)(b),可以明显看出比原图像更加清晰,由图9(c)可以看出压缩后尽管有一些失真,但还是保留了原图像的细节,达到了要求,

5.结论

SIUI实时三维(4D)图像大赛 第4篇

“技术领先, 产品卓越”是SIUI孜孜不倦的追求, 三十多年来, SIUI一直践行着这一点, SIUI所迈出的每一个步伐坚实而且可持续发展的, 并且取得了一系列骄人的业绩:1978年, 正式成立;1983年, 研制成功中国第一台B型超声诊断仪;1986年, 成功引进、消化日本日立先进技术, 创新设计出中国第一台具有世界先进水平的黑白超声;1997年, 和当时世界上最强大的彩超厂家美国ATL公司合作, 推出中国第一台具有国际先进水平的彩超;2005年, 推出全数字彩超系列产品;2009年, 国内首创实时三维 (4D) 成像技术和弹性成像技术;2011年, 世界首创超声影像无线传输技术。

SIUI从2009年开始推动和普及实时三维 (4D) 超声技术, 使众多用户拥有实时三维 (4D) 超声诊断设备, 提升了诊断水平, 更好地服务患者。SIUI举办本次活动旨在促进实时三维 (4D) 超声诊断技术的交流和发展。诚挚地邀请您加入SIUI主办的4D好图像大赛。

1 大赛主题

4D好图像

2 参赛条件

(1) 所有SIUI实时三维 (4D) 超声用户;

(2) 参赛影像:使用SIUI超声产品采集的实时三维 (4D) 诊断图像 (静态或者电影回放) 均可参赛;

(3) 参赛者可同时提交多个图像, 无病例数量限制。

3 参赛作品要求

(1) 参赛作品格式可以是BMP、JPG、TIF、AVI、VOL、VOLS;

(2) 参赛作品须附上简单的病史描述及诊断;

(3) 参赛作品文件命名规则:用于采集图像的SIUI仪器编号+图像序号 (1、2、3……)

4 评奖及奖项设置

SIUI将邀请资深的超声影像学专家组成评审团, 对符合参赛要求的作品进行综合评比, 评比标准综合参考图像诊断质量及图像品质, 评选出各个获胜作品, 获胜名单将于2012年12月在SIUI和权威网站上进行公布。

一等奖:i Phone 4S, 1名

二等奖:i Pad3, 2名

三等奖:MP4, 5名

5 投稿方式

(1) 投稿截止时间2012年11月30日

(2) 参赛作品投稿方式:

请发送至大赛组委会邮箱:4D@siui.com, 邮件主题为“4D好图像参赛作品”, 或将参赛作品制成光盘邮寄至大赛组委会, 请在信封正面写明“4D好图像参赛作品”。两种方式均需提供单位全称、通讯地址、联系人姓名、电话号码、手机号码、传真号码, 以便大赛组委会与您联系。

6 联系方式

地址:广东省汕头市金砂路77号汕头市超声仪器研究所有限公司

邮编:515041

联系人:赖丽丽

电话:0754-88250150

7 其他

图像实时检测 第5篇

摘要:主要论述利用USB2.0单片机接口技术实现高分辨率(640×480点阵以上)、快速(24帧/s以上)全数字图像的实时采集、传输的原理、方法和系统实现,以及相应的固件程序设计。

关键词:USB2.0接口技术数字图像单片机

引言

传统的方法是用视频采集卡(如1394)对视频信号进行采集,利用相应的软件传给PC机,既不方便,也不经济。本文介绍一种利用Cypress公司发布的世界上第一块带有USB2.0接口的芯片CY7C68013与PC机(主板为支持USB2.0的华硕主板PB533)实现了高分辨率(640×480点阵以上)、快速(24帧/s以上)、全数字图像的实时采集系统。

1数字图像的实时采集原理

数字图像的实时采集原理如图1所示。在图1中,以Omnivisiontechnologies公司的OV7620/7120芯片作为图像采集芯片,其主要特点是该芯片可提供0.5――30帧/s,640×480像素点阵CMOS的彩色或黑白数字图像,工作频率为27MHz,像素时钟为27MHz;以Cypress公司的CY7C68013作为CPU控制和USB2.0接口芯片,该芯片的主要特点是在一块芯片上集成了USB2.0内核和引擎、一个增强型51系列的微处理器,及可编程外围接口的芯片,提供了高效率的时序解决方案,在这种有独创性的结构下,仍然使用低价位的51系列的微处理器,其数据传输速度可以达到56MB/s,可以提供USB2.0的最大带宽。因此在图1中,CPU控制和USB2.0接口芯片选择了上述芯片。图像芯片(OV7620/7120)所采集的图像数据按设定的频率(0.5――30帧/s),在CY7C68013内部51CPU的控制下,直接将其送到CY7C68013的FIFO缓冲区,再由其内部的USB2.0接口通过USB电缆将其图像数据传输到计算机。

2数字图像的实时传输

为了实现数字图像的实时传输,必须解决影响实时传输的几大因素:一是图像芯片采集速度;二是图像芯片与CY7C68013的FIFO缓冲区之间的传输速度;三是CY7C68013内部的USB2.0与带有USB2.0接口计算机之间的传输速度;四是计算机中应用软件的接收图像、处理图像速度。以下将分别加以具体说明。

(1)图像芯片采集速度

图像芯片采集速度是选择图像芯片的关键指标,在该指标满足的前提下,选取图像分辨率相对较高的图像芯片。如可以选取Photobit公司的PB-0300或Omnivision公司的.OV7620以及Philips公司的SAA7111等高分辨率图像采集及处理芯片。

(2)图像芯片与CY7C68013的传输速度

一般的,对于大多数CMOS数字图像采集和处理芯片,其数据传输速度为其像素时钟,与其工作频率基本一致,其周期小于40ns;而当CY7C68013工作在主频48MHz时,其内部的通用编程接口可以将外部5――48MHz的数据传输到内部FIFO缓冲区。可见,应选取像素数据传输速度合适的图像采集及处理芯片。

(3)CY7C68013与计算机之间的传输速度

在USB1.0和USB1.1接口中,只支持低速和全速两种传输方式。在低速方式下其最大传输速度为1.5Mbps;在全速方式下其最大传输速度为12Mbps.显然,在这两种方式下要完成高分辨率(640×480像素点阵以上)的数字图像实时传输(24帧/s以上)是不可能的。而USB2.0接口,除支持低速和全速两种传输方式外,还支持高速传输方式。在高速传输方式下,其最大传输速度为480Mbps.因此选取带有USB2.0内核的CY7C68013芯片作为USB2.0接口芯片及带有USB2.0接口的计算机,满足数字图像的实时传输速度要求。

(4)计算机中应用软件的处理速度

计算机中,应用软件的接收图像、处理图像速度,也是完成高分辨率数字图像实时传输所面临的一个很大挑战。特别是在Windows多任务作业下的延迟,更是如此。

此外,USB总线的带宽、操作系统等也会影响数字图像的实时传输。

3系统实现及固件程序设计

(1)系统实现

本系统的具体和详细设计如图2所示的数据采集逻辑原理图。在图2中,图像采集处理芯片用OV7620/7120,时钟频率为27MHz,像素时钟为27MHz;CPU控制和USB2.0接口芯片用CY7C68013,时钟频率为24MHz,通过对CY7C68013内部的CPUCS寄存器进行修改,使其工作在48MHz方式下。根据芯片OV7620/7120及CY7C68013内部的FIFO、通用编程接口等特点,其具体接法是:将OV7620/7120的像素时钟PCLK接到CY7C68013的IFCLK上;

OV7620/7120的HREF、VSYNC分别接到CY7C68013的RDY0、RDY1上;同时将OV7620/7120的VSYNC、CHSYNC分别接到CY7C68013的INT0、INT1上。将CY7C68013的PE0、PE1接在OV7620/7120的I2CBUS上。

图2

(2)固件程序设计

按照图2数据采集逻辑原理图,其固件程序设计主要由以下几部分组成。

①USB2.0接口的初始化程序设计。本段程序主要通过对CY7C68013的CPUCS寄存器进行设定,使CY7C68013重枚举后工作在频率48MHz下;通过对CY7C68013的USBCS寄存器设定,使其USB内核工作在USB2.0方式下,由固件程序应答USB的传输,而不是由USB内核应答;同时通过对CY7C68013的IFCONFIG寄存器设定,使其CY7C68013工作在通用编程接口方式下。

②图像芯片的初始化程序设计。本段程序主要通过CY7C68013的PE0、PE1模拟I2CBUS的时序,完成对图像芯片的初始化、显示窗口大小、数据格式、显示帧数等工作。

③通用编程接口(GPIF)程序设计。本接口程序设计主要完成对CY7C68013通用编程接口的初始化以及控制信号RDYx和CTLx(本设计中未用)、数据宽度(8位)、FIFO缓冲区、计数器等的编程设计,并对OV7620/7120的输入信号HREF、VSYNC等进行逻辑控制,即当HREF为高电平、VSYNC为底时,数据开始传输。

④USB2.0等时传输程序设计。本段程序主要完成USB2.0的等时传输功能。要实时采样数据,必须使用USB2.0的等时传输技术及中断技术。

⑤主程序设计。在主程序中,除要完成①――④中断论述的功能外,还要给出USB控制传输的固件应答程序及相应的中断初始化和中断服务程序,其完整程序见本刊网站。

4结论

图像实时检测 第6篇

关键词:OpenGL,SAR,双缓存,VxWorks操作系统

0引言

Vx Works操作系统是一种嵌入式操作系统,因其在实际操作中,具有良好的性价比,操作程序简洁实用,运行扎实可靠被广泛应用在通信、军事、航空、航天等高精尖技术以及实时性要求极高的领域中[1]。Vx Works操作系统在图形界面的通用开发方式是采用风河公司的图形开发软件Wind ML,但该软件在具体实操时,不能有效利用图形界面实现操作效率的提升,同时利用该软件处理的图像界面显示,效果单一模糊,最大的短板是该软件在面临诸如图像的动画、反走样等问题时无法提供解决渠道[2]。因此,考虑选择系统显卡自带的Open GL三维图形软件包,该软件最大的特点是通过建立函数关系进行操作,函数的设立、建构都依照实用简单的模型, 利用Open GL提供的函数功能,只需建构、设置一整套自己需要、简洁清晰的渲染函数就能完成图形选取、设计、规划,这样直接通过操作简单函数来进行图形制作, 针对性 、时效性强 ,所设计的 图形更具 直观性 ,同时Open GL可以很好地解决诸如图形的动画、反走样等显示效果方面出现的难题[3,4]。

Open GL是SGI公司开发的具有广泛运用性的一种软件接口,它的最大特点是可以移植,并且具备独立性, 不受窗口操作系统和硬件环境的制约,是一种用于实时3D图形的标准范例。Open GL的图像显示是基于硬件 (通常是显卡)实现的,在Open GL硬件运转情况下,调动Open GL API传送给硬件驱动程序,然后与图形显示硬件直接交互,如图1所示。由于软件技术的深度开发,Open GL在3D图形加速卡方面的发展日益加快,使得图形处理更为简洁、实用、高效[5]。

1软件设计

Open GL提供gl Draw Pixels函数绘制像素贴图。在操作环节它利用gl Raster Pos定义当前光栅位置的左下角,然后以gl Pixel Store操控像素贴图的格式。在雷达图像中,像素格式通常为灰度图,含256级亮度,每个字节对应一个像素的信息。在gl Raster Pos函数设置好当前光栅位置后,随即可利用gl Draw Pixels函数将图像从内存复制到帧缓冲区内。

Open GL支持双缓存技术,在显示前台缓存图像的同时,后台缓存绘制第二幅图像。当后台绘制完成后, 后台缓存中的图像就显示出来,此时原来的前台缓存开始绘制第3幅图像,如此循环往复,使屏幕上的画面看起来是连续的。

另外,还要考虑融合技术。这是一种最为基本的图像处理技术,应用面广泛,利用这种技术可以显示飞参等信息。在图像处理过程中,融合的方式多种多样,最主要的方式是使用Alpha通道。在程序中,使用Alpha值可以直接完成字体位图与图像信息的融合透明处理[6]。

1.1图像绘制

绘制像素贴图Open GL函数及其参数如下: (1)描述位图数据的存储格式。

这里要解决好如下两个问题:如何使用gl Read Pixels函数保存像素;如何为gl Draw Pixels函数读取像素。在程序中主要是利用该函数设置从内存中读取像素的格式来解决上述问题。

Void gl Pixel Storei ( Glenum pname , Glint param ) pname param

其中pname为要设置的参数; param是参数值。

控制从内存中读取像素的pname参数取值为:

GL_UNPACK_SWAP_BYTES

GL_UNPACK_LSB_FIRST

GL_UNPACK_ROW_LENGTH

GL_UNPACK_SKIP_ROWS

GL_UNPACK_SKIP_PIXEL

GL_UNPACK_ALIGMENT

程序参数取GL_UNPACK_ALIGMENT值为1,表示图像上每一行扫描的对齐方式是按照1个字节进行扫描对齐的。

(2)设置当前光栅位置,确定图像的起始位置

Void gl Raster Pos2i(GLint x,GLint y)

其中,x表示图像起始左下角的水平坐标;y表示图像起始左下角的垂直坐标。x,y的数据类型也可以是浮点数 ,相应的函 数名称是gl Raster Pos2f(GLfloat x, GLfloat y)。

(3)从内存将像素数据复制到帧缓冲区光栅位置

Void gl Draw Pixels(GLsizei width,GLsizei height, GLenum format,GLenum type,const GLvoid* pixels)

其中:width表示像素计的图像宽度;height表示像素计的图像高度;format表示绘制的像素的颜色空间; type是指绘制的像素类型;pixels是图像的像素数据的指针。雷达图像是灰度级数据,因此设置type参数为GL_UNSIGNED_BYTE,format参数设为GL_LUMI-NANCE。

1.2图像平滑滚动的实现

Open GL支持双缓冲系统,但在实际中Open GL函数不会用来交换前台缓冲区和后台缓冲区。但是令人欣慰的是,每个Open GL支持的窗口系统都可以通过设置一个函数调用来完成前后缓冲区之间的交换。在Win-dows中,函数是Swap Buffer。在程序中,函数是glx Swap-Buffer。

Open GL用双缓存技术来完成动画制作。程序默认帧存为两个视频缓存,在任意时刻,两者中只有一个内容能被显示出来。运行原理是,当前可见视频缓存称为前台视频缓存,不可见的(正在画)的视频缓存称为后台视频缓存。当后台视频缓存中的内容被要求显示时, Open GL就将它拷贝至前台视频缓存。在操作中显示硬件通过读取可见视频缓存中的内容,把相关结果显示在屏幕上。Open GL在双缓存模式下,位平面被默认切分为前台和后台位平面。通过绘制函数操作的图像首先被写向后台位平面,这就要求,在描画物体之前,首先必须把帧存设置成正确的组态,当后台出现完整的画之后,就调用glx Swap Buffer函数 ,使其称为 可见视频 缓存[7]。 glx Swap Buffer函数的工作过程如图2所示。

1.3生成位图字符

Open GL直接用于处理单色位图。这种储存形式单一、简洁,如果存储位为1则用指定的颜色填充该位,如果存储位为0,则用底色填充该位。如果按每行8位扫描,则按以下数组表示的位所生成的位图是字母B,如图3所示。

以同样的 方法 ,可以表示A~Z的字母 ,0~9的数字。要输出位图,需要调用gl Bitmap函数把位图按指定的位置显示在屏幕上。gl Bitmap原型为:

Void gl Bitmap(GLsizei width,GLsizei height,GL-float xorig,GLfloat yorig,GLfloat xmove,GLfloat ymove, const GLubyte* bitmap)

其中,width指定位图的宽,height指定位图的高,两者均以像素为单位;(xorig,yorig)为位图原点的坐标; (xmove,ymove)为位图基于当前光栅位置的偏移量;bit-map为存储位图的地址。

1.4融合处理

Open GL融合技术可以把源颜色与目的颜色进行某种方式的融合,通过融合组合成为目标颜色,从而生产出透明或半透明的特殊效果。颜色的比例融合通过Alpha进行操作,即RGBA颜色模型中的A。融合操作涉及两个因子,一个是源因子,另一个是目的因子。在进行融合计算之前,要完成两个因子的融合,完成此功能的函数是gl Blend Func,原型为:

void gl Blend Func(GLenum sfactor,GLenum dfactor)

参数sfactor说明怎样计算源因子,参数dfactor说明怎样计算目标因子。

设源融合 因子为 (Sr,Sg,Sb,Sa),目的因子 为 (Dr,Dg, Db,Da),则融合后的颜色为:(RsSr+ RdDr,GsSg+ GdDg,BsSb+ BdDb,AsSa+ AdDa),颜色的各个分量最后自动进行归一化处理。

融合作为一种特殊的功能,必须进行启动和关闭声明:

gl Enable ( GL_BLEND );

gl Disable ( GL_BLEND );

2测试结果

显卡输出的雷达图像视频经视频采集卡接收处理后,实现图像的正常显示,如图4所示。

在显卡显示噪声的同时,会叠加载机信息。

3结语

图像实时检测 第7篇

1 系统组成及工作流程

如图1 所示, 为分选系统的结构框图。其由送料机构、等分盘及电机传送机构、光照装置、工业CCD摄像机、工控计算机、集料机构及相关软件构成。

工作原理为:送料机构、等分盘和电机传送机构将被分选轴承滚子送入测试平台, 照明系统会发出平行光线, 轴承滚子在平行光线作用下, 产生阴影轮廓。透镜系统将其进行聚焦处理, 在CCD面阵上成像。电荷信号的形成过程正是将图像信号经过CCD处理并完成图像空间离散化的过程。将完整的数字视频信号完成合成, 然后输入到计算机中, 将采集到的图像输入至相应软件中, 对其进行相应处理, 经去噪、平滑、边缘增强、像素细分、二值化后, 通过霍夫变换计算出轴承滚子的直径, 然后由软件与已存有的分类指标进行比对完成软件分类任务。最后工控机发出分类信号, 由驱动电路控制等分盘电机将不同等级的轴承滚子转入相应的等级集料口, 从而完成硬件分选工作。相关数据可存储、显示和打印输出。

2 轴承滚子直径测量原理

轴承滚子分选的关键是对轴承滚子直径的测量, 本文通过对采集到的轴承滚子的图像进行处理, 来获取滚子的直径。图像处理软件由Visual C++6.0 开发。主要流程为对图像进行采集、预处理、边缘检测、像素细分、二值化、直径尺寸获取等。

2.1 图像的预处理

由于受到外界环境的影响, 加之摄像机本身背景不均匀, 使得通过摄像机采集存储的轴承滚子图像中包含了无用的测试机械夹具结构和各种外界杂散光噪声, 为了获得更好的图像质量, 便于图像分析, 提高滚子分选测量的精确度, 需要对轴承滚子图像进行预处理。

这里首先采用背景相减法去噪, 将每次轴承滚子上测试机械平台前后两帧图像进行采集, 由于两帧图像均包含相同的测试机械夹具结构背景和各种相似的外界杂散光噪声, 因此, 每次进行图像分析时, 将两图的灰度矩阵相减, 既能消除杂散光噪声, 又能消减测试机械平台结构的背景图像。然后利用Lee滤波平滑方法[1]使图像平滑, 其相应数学表达式为:

其中, 为未受干扰图像的估计;为有噪声图像的局部均值;表示f (x, y) 的局部方差。由上面两个式子可得, 在灰度均匀的地方, 增益k (x, y) →0, 这时, 也就是变换为较为简单的领域平均值, 经过这样的处理之后, 能有效滤除噪声;而边缘区域, 增益k (x, y) →1, 有, 保持了原图像的边缘。

2.2 图像边缘检测

对图像进行平滑后, 还是会显得较为模糊, 故须对图像做增强处理, 目前用得较多的是利用边缘检测技术。本文将采用Roberts边缘检测算子, Roberts算子是一种梯度算子, 即一阶导数算子。对于一个连续函数f (x, y) , 它在某一位置 (x, y) 的梯度将用一个矢量表示, 如下所示:

该矢量的幅度和方向角分别为

在以上三个式子的偏导数中, 要对所有像素的位置做准确运算, 在目前的处理过程中, 用得最多的是小区域模板卷积运算。Roberts算子为2×2 模板, 可用以下数学公式表示实际处理的情况:

上述式子中, f (x, y) 表示输入图像, g (x, y) 表示输出图像[3]。

利用Roberts算子, 可以达到检测所需精度, 并且用2×2 的模板, 所耗时间较少, 完全能够满足实时处理的要求。

2.3 像素细分

由于在检测轴承滚子时, 所需要检测的最大直径为30mm×30mm, 将CCD的视场定为40mm×40mm, CCD为1 280 (H) ×1 024 (V) 像素, 检测精度要求为0.01mm, 故此处整像素所对应的尺寸约为0.04mm不能达到所需要求。针对此问题, 运用了像素细分技术, 本文将选用基于亚像素的空间矩算法对像素进行细分处理。它以每个像素中心为原点的5×5 细分窗口的各阶矩, 以这些矩为基础, 通过运算, 即可得到所需参数, 再根据实测情况, 对参数做相应修正[2]。经过细分处理后, 理论测量精度可达到0.002mm, 即整像素的1/20, 虽然实际运用中会存在一定误差, 但也足以满足让系统精度达到0.006mm的要求。

2.4 图像的二值化处理

为了更方便地对图像进行处理, 须对灰度图像进行二值化处理。经过上述步骤的图像处理, 图像中只剩下背景和目标物, 而且不仅滚子与背景的对比度比较大, 灰度的分布情况也比较均匀, 可以看出, 直方图分布特性为双峰型, 所以需要对图像进行分割, 此处采用的方法是基于图像灰度特性的方法[3]。具体算法如下:

式中T表示阈值, 阈值取双峰之间的极小值。

2.5轴承滚子直径的提取

若需检测图像中已知形状, 常用的方法是对图像进行Hough变换, 它的最大优点之一就是具有较强的抗干扰能力, 而在传统的Hough变换过程中, 也存在许多诸如累积矩阵过大、映射时存在许多无效累积等缺点。这些缺点使得许多计算机资源被无偿消耗, 造成极大的资源浪费。基于此, 本系统将获取轴承滚子直径的方法选定为使用随机Hough变换[4,5], 其原理为:在图像空间内选取不共线的三点, 选取时注意要随机选, 将这3个点在参数空间中映射成一个点, 具体思想即为, 不共线的3个点可确定一个圆。在图像目标区域中, 初始边缘内, 选取3个不同的点, 并计算它们所确定圆的参数, 确定参数单元, 对应的圆即为候选圆, 有一部分点数会落在候选圆内, 对点数进行统计, 如果点数少于所允许的最小点数, 则判断此圆为非真实圆, 反之, 则认为该圆为真实圆, 轴承滚子的半径或直径即为所需的圆参数[6]。

3 试验结果与误差分析

我们以一组已知参数的轴承滚子做测试实验, 结果见表1:

对部分滚子直径进行测量, 得到表1的数据, 可以看出, 轴承滚子的测定值与实际值的误差非常小, 基本误差在0.003 2~0.008 8mm之间, 足以满足分选精度水平要求。测量误差的出现存在于多个环节中, 例如:光学系统的误差、CCD的精确度误差等, 应用概率统计方法对数据进行多次测量分析可知, 前者是造成测量误差的主要原因, 而后者可以作为系统误差予以消除。

4 结论

通过对基于图像模式识别的精确测量方法进行研究, 构建出一套针对轴承滚子的分选测量系统。本系统应用的光电转换传感器是面阵CCD, 再利用计算机强大的数据处理能力, 在非接触前提下, 实现对轴承滚子直径的准确测量, 本测量系统的优点在于, 不仅速度快, 而且精度高。实验得到的数据证明了本系统所提出的测量分选原理及软件算法是正确的。

摘要:本文提出了一种基于实时图像的轴承滚子直径分选测量方法。阐明了采用数字图像处理技术非接触测量轴承滚子几何参数过程中图像预处理、边缘检测、像素细分、二值化以及轴承滚子直径获取原理和相关算法, 分析了误差产生原因。实际测试证明了该方法在实际应用中的可行性和正确性。

关键词:轴承滚子,图像处理,测量,分类

参考文献

[1]屈玉福.视觉检测系统中亚像素检测技术的对比研究[J].仪器仪表学报, 2003, 24 (4) :460-462.

[2]王建民, 普昭邦, 尹继学.空间矩亚像素细分算法的研究[J].光学技术, 1997 (7) :3-6.

[3]余英林.数字图像处理与模式识别[D].广州:华南理工大学, 1999.

[4]Xu L.A new curve detection method:Randomized HoughTransform[J].Pattern Recognition Letters, 1990, 11 (5) :331-338.

[5]郑南宁.计算机视觉与模式识别[M].北京:国防工业出版社, 1998.

图像实时检测 第8篇

系统总体设计

本系统在以EP2C70 FPGA芯片为核心的DE2-70开发板上实现, 系统主要模块如图1所示。

(1) 视频采集模块:将ADV7180芯片输出的数字视频信号采集到SDRAM中缓存, 并获取相应的控制信号。

(2) VGA控制模块:将已经处理好的数字视频信号输出到ADV7123, 之后进入VGA显示器进行显示, 并生成VGA控制信号和坐标信号。

(3) 展开算法模块:利用VGA控制模块产生的坐标信号对极坐标数字视频信号进行展开操作, 生成矩形视频信号。

系统模块设计

根据系统框图, 本系统可分为以下几个主要模块:视频采集模块、展开算法模块和VGA控制模块。系统时钟为ADV7180产生的27MHz像素时钟, 保证了采集与处理的同步进行。

视频采集模块

视频采集模块接收由ADV7180芯片串行输出的格式为ITU-R BT.656、分辨率为720×525的数字视频信号, 并提取信号中有效像素信息, 同时将其转换为分辨率为640×480的数字视频信号, 存入SDRAM中, 之后, 再提取缓存中数据转换为适合VGA显示的RGB信号传输到后续模块。

ITU-R BT.656解码器

ITU-R BT.656协议以27MHz速率复用传送数字视频数据, 其顺序是:Cb, Y, Cr, Y, Cb, Y, Cr, ……其中, Cb, Y, Cr这三个字指的是同一个像素的亮度和色差信号, 之后的Y对应于下一个像素的亮度。Y、Cb、Cr在传输中数据量的比为Y:Cb:Cr=4:2:2。另外, 信号同时包括相应的场、行信号。ITU-R BT.656解码器的目的是将ADV7180芯片产生的ITU-R BT.656协议数据流中的8位像素信息提取出来, 并根据协议中的控制信号生成相应的行列扫描信号与像素有效信号。在提取像素信息的同时, 将数据存储顺序变换为:Y, Cb, Y, Cr, Y, Cb, Y, Cr……。在存入SDRAM时, 偶数地址存储{Y, Cb}, 奇数地址存储{Y, Cr}。

SDRAM控制器

SDRAM控制器采集ITU-R BT.656解码器输出的像素信号, 将其存入DE2-70开发板上的IS42S16160BSDRAM中。系统将其设计为一个四端口控制器, 包括两个读口和两个写口, 并且使用108MHz时钟驱动SDRAM控制器和SDRAM芯片, 保证在分频之后, 每一个读写端口的频率为27MHz, 与像素时钟同步。

由于ADV7180产生的视频数据流是隔行扫描数据, 分为奇数场和偶数场, 所以SDRAM控制器除了对数据流进行存储, 还要在读取数据时进行去交织操作。SDRAM控制器的双读口设计可以出色地完成去交织任务。在读取数据时, 利用VGA的行扫描信号控制这两个读口分别读取:当VGA控制器扫描到奇数行时, 由第一个读口读取相应奇数行数据;否则, 由第二个读口读取相应偶数行数据。之后, 再合并这两个读口读取的数据得到逐行扫描的、分辨率为640×480的视频数据流。

YCbCr到RGB转换模块

本系统的最终目的是将视频流输出到VGA显示器进行显示, 而从SDRAM读取得到的数据是YCbCr422格式, 不符合VGA显示要求, 所以需要将其转换为RGB数据格式。

首先将YCb Cr422格式转换为YCbCr444格式。在每一个时钟上跳沿, 判断当前VGA列扫描信号, 若当前列为奇数, 则将SDRAM读口得到的16位YCbCr信号的前8位赋值给Y作为当前像素的Y值, 后8位赋值给Cr作为当前像素的Cr值, Cb保持不变;若当前列为偶数, 则YCbCr的前8位仍为当前像素的Y值, 后8位为当前像素的Cb值, Cr保持不变。这样就保证了输出的Y、Cb、Cr三个信号是当前像素的对应描述信号。

在确定了每个像素对应的YCbCr值之后, 就可以通过如下公式计算得到对应的RGB值。

DE2-70上的EP2C70 FPGA芯片内嵌了150个乘法器块, 每一个乘法器块可以配置为两个9×9位的乘法器或者一个18×18位的乘法器。所以本系统使用QuartusⅡ中集成的MegaWizard Plug-In Manager配置乘加器模块用于实现YCbCr颜色空间到RGB颜色空间的转换。另外, 上述转换公式涉及浮点运算, 在Verilog中不易实现, 所以将公式中各浮点值左移9位变为整数, 从而公式调整为:

展开算法模块

展开算法模块为本系统的核心模块, 利用EP2C70内嵌的M4K存储器和正余弦生成器实现了极坐标视图到直接坐标视图的实时展开。

人眼视角约为120°。考虑到人眼观察的习惯, 系统将圆形的极坐标视图分割成为第一、二、三、四象限四个部分, 每部分90°, 由使用者选取感兴趣的部分进行展开, 这样既符合人眼观察的习惯, 又节省了空间。

视频分块

全景极坐标视图在显示器上显示时类似于图5, 其中矩形代表整个显示器显示的内容, 分辨率为640×480, 圆形代表全景图像出现的位置, 半径大约为240个像素, 所以可以按图5中虚线部分将视频每一帧分为4块, 每一块分辨率为240×240。系统使用VGA控制器生成的行列扫描信号标定当前像素的位置, 当像素位置位于全景图像区域内时, 则将像素值存入M4K存储器, 否则继续搜索下一个满足条件的像素。

M4K存储器设计

M4K存储器是内嵌在EP2C70中的存储器块, 其中每一块容量达到4096bit, 可配置为真双口存储器, 在EP2C70芯片上共有250块M4K存储器块。本系统使用了209块M4K存储器块, 借助其高寻址精度, 实现图像的实时展开。

M4K存储器写地址

将数据写入M4K存储器时, 可以将数据流按照图像显示顺序全部存入, 这样就需要生成0~360°的所有正余弦查找表;同时, 由于存入了全部图像信息, 将会有1/4左右的无效像素点, 浪费了宝贵的存储器资源。系统利用M4K存储器精确的寻址操作将第二、三、四象限的信息在存入时进行翻转, 使得存入M4K存储器的图像仅显示为第一象限的特性, 则只需要生成0~90°的正余弦表就可以完成对整幅图像的展开计算。其次, 固定摄像头之后, 圆形全景图像在显示器中的位置是固定的, 所以可以确定每一行有效像素的坐标范围。当行列扫描信号在此范围之内, 则将该像素值存入M4K存储器中, 否则, 继续寻找下一个符合条件的像素点。所以, 对第i象限的第M行第N个像素, 如果为有效像素, 则存入M4K存储器的地址按如下规则计算:

这里的M和N取值范围均为[0, 239], Invalid_pixel (K) 表示在第K行第一个有效像素之前所有无效像素点总数。

M4K存储器读地址

M4K存储器的读操作完成了全景图像的展开。本系统采用极坐标与直角坐标的对应关系实现全景图像展开。如图6所示, 全景图像中的点P (x, y) 在矩形图像中对应的点为P’ (x’, y’) , 则x’, y’与x, y的对应关系应为:

其中∆x为横坐标方向角度步长, ∆y为纵坐标方向上的半径步长, 分别由以下参数确定:

之前对不同象限图像的翻转存储操作已经简化了M4K中数据的读取, 所以只需要0~90°的正余弦查找表, 查找表长度为640。在VGA显示器上的第M行第N个像素, 其对应像素值在M4K存储器中的地址按如下规则进行计算:

其中sin_table (N) 和cos_table (N) 为正余弦查找表中第N列对应的正余弦值。

VGA控制模块

VG A控制模块根据系统时钟生成行同步信号和场同步信号, 同时接收前端模块生成的RGB像素信号, 并参照VGA显示标准对VGA显示进行控制。本系统采用640×480的显示分辨率, 帧速为64.4fps。

系统性能

本系统每一帧画面分辨率为640×480, 像素时钟为27MHz, 在不考虑实时显示而只考虑存储的条件下, 一秒钟内可存储87.89帧图像。另外, 如果忽视人眼观察习惯, 一次性展开整幅图像, 帧速将降低为原来的四分之一, 即21.97fps, 展开图像分辨率提高到2560×480。

总结

本文以Terasic公司的DE2-70开发板为平台, 实现了对反射式全景摄像机采集的全景视频流的实时展开, 系统结构清晰, 具有较高的稳定性和可操作性。系统时钟为27MHz, 显示分辨率为640×480, 帧速达到64.4fps, 达到了实时性的要求。

摘要:全景摄像机可以使用一个摄像头获取周围360°的环境信息, 与以往的多摄像机获取方法相比大大节省了硬件资源, 并且在还原全景图时避免了多画面拼接产生的“鬼影”问题。但由于反射式全景摄像机获取的画面为极坐标视图, 为适应人眼观察习惯需要对其进行展开。本文在FPGA上实现了对反射式全景图像的实时展开, 在27MHz系统时钟的驱动, 生成122万像素的展开图像达到了21.97fps的帧速。

关键词:全景摄像机,FPGA,嵌入式系统

参考文献

[1]王宇, 王涌天, 刘越, 等。基于全景成像的增强现实系统[J].计算机工程, 2010 (3) :36

[2]王秀芳, 侯振龙, 梁洪卫。基于FPGA全景视频监控的设计[J].微计算机信息, 2010 (7) :26

[3]陈旺, 徐玮, 张茂军, 等.柱面全景图像视图合成中的关键问题研究[J].信号处理, 2010 (2) :26

[4]吴自新.全景视觉系统设计与图像处理技术研究[D].哈尔滨工程大学, 2006

[5]马建国, 孟宪元.电子设计自动化技术基础[M].清华大学出版社, 2004:486-487

[6]王斌, 熊志辉, 程钢, 等.基于FPGA的折反射全景图像查表实时展开[J].计算机应用

[7]陈立栋, 徐玮, 张茂军, 等.基于四拼图的嵌入式全景视频实时生成系统[J].信号处理, 2009 (12)

实时视频图像拼接在工程中的应用 第9篇

序列图像的全景图拼接是近年来的研究热点,但其中大多数的研究集中于静态的序列图像。相对于静态序列图像来说,视频序列中图像帧的数目通常要比静态序列图像多,且相邻帧之间有很大的重复区域,利用这些重复信息可以生成所需的全景图。由于视频处理的普遍性和重要性,对视频序列做全景图拼接具有重要的实用价值。

在工程应用中将实时接收的视频图像拼接为一幅完成的图像,以扩大视场范围,实现视频图像实时拼接的功能。视频图像拼接就是将视频流中重叠图像的集合通过平面投影变换相互关联起来,通过对图像进行预处理、配准和拼接等,实时生成一幅无缝、清晰的大视场图像。

1 视频图像拼接

视频图像拼接处理流程为:通过视频采集设备实时获取视频图像,将视频图像以最大25帧/s的速率进行解帧,对单帧视频图像进行直方图均衡和边缘提取等预处理后,利用图像间的相关性,对图像进行配准,对配准后的图像进行拼接,形成一个大视场范围的全景图。视频图像拼接流程如图1所示。

1.1 视频预处理

通过MATROX实时视频处理卡对接收的视频流进行实时处理,包括对比度的调整、亮度的调整和增益的调整等。

1.2 单帧采集

通过MATROX实时视频处理卡对视频流进行单帧采集,获取图像序列,相邻的2幅图像边界必须存在重叠区域(视觉重叠区域),图像拼接的工作就是搜索相邻2幅图像中相同的内容,从而确定它们的相对位置。为了保证单帧之间的重叠区域能够满足拼接需求,通常设置采集速度为6~10 帧/s。

1.3 图像预处理

由于视频图像的采集和传输过程会不可避免地出现噪声、畸变、失真和对比度低等状况,使图像中所包含的有效信息减少,从而影响图像配准和拼接的质量。在进行拼接工作之前,要针对不同图像的特点对图像进行预处理,包括对图像进行直方图均衡和分段线性直方图拉伸等处理。

在图像匹配过程中,希望匹配点要准确,定位精度高,如果直接用所采集的图像进行匹配,往往不能得到理想的结果。这是因为所采集的各幅图像由于照度的不均和曝光强度的不同,同一观测对象在不同图像中的灰度均值会有不同程度的偏移,而且各种拍摄时的噪声也会对图像的匹配造成坏的影响。用边缘检测的方法提取图像的边缘可以使图像的轮廓更为清晰,为下一步的图像匹配进行了很好的预处理。使用这种锐化后的图像有利于提高匹配的精度和降低伪配的可能性。

边缘检测是进行模式识别和图像信息提取的基本手段。可以采用Sober算子、Canny边缘检测和高斯的拉普拉斯算法等边缘检测方法。

2 图像配准

基于特征区域的特征提取匹配法,首先从2幅图像中选择一系列特征,然后根据相似性原则进行图像间的特征匹配,最后采用优化过程计算从一幅图像到另一幅的变换;特征点可以是图像的角点、封闭轮廓线的中心、纹理特征点或其他突出点。

图像特征包括像素亮度、景物边缘轮廓和组织(纹理)结构等。图像中景物的形状和轮廓是适合完成图像拼接中图像配准任务的特征量。对图像进行一系列预处理后进行二值化分割,分割后的图像可以很清晰地得到图像的主要轮廓,这些工作都是为图像的特征提取做准备。图像特征的提取方法很多,主要的设计思想都是为了减少在特征提取时的盲目性,在选择特征区域时提出某种算法让选择的特征区域能够尽量包含独特的信息,容易识别。

在图像进行特征区域的选择时,首先要参照进行过分割的二值化图像,特征点的位置一般就在图像的轮廓边沿的位置,通过前面的预处理,可以令图像的拼接工作减少盲目性,减少误匹配的概率,同时还减少了工作量,加快了拼接速度,这一点对于对实时性要求很高的系统来说至关重要。

在选取图像特征提取的方法时兼顾考虑以下几个方面:

① 在实施过程中是否可以明显地减少误识别率,提取的特征区域是否真的具有独特的特征;

② 是否可以有效地减少计算量,要达到速度上的要求,在拼接中不能影响到实时性;

③ 该算法要相对简单、容易实现、可移植性高。

2.1 特征区域的选取

采用Moravac算子进行特征区域的提取,提取的依据是基于一个理想的特征点在其四周所有方向上灰度具有很大的方差,对于彩色图像可以采用将图像转化为灰度图来处理。对于窗口大小可以采用5*5~21*21。窗口越大,抗噪声能力越强同时运算量也越大。这里选用7*7窗口。

Μ=min{(gi,j-gi,j+1)2(gi,j-gi+1,j)2(gi,j-gi+1,j+1)2(gi,j-gi+1,j-1)2}

。 (1)

式中,i=n-3,…,n+3;j=m-3,…,m+3。m,n为窗口中心像元的行、列序号,取M大于经验阈值的点为备选特征点,一般情况下,M值最大的点就是特征最明显的点。取这一点为特征区域的中心点,取Moravac算子的窗口大小为特征区域窗口的大小。

待拼接的图像经过预处理和轮廓提取,在使用Morovac算子进行拼接的过程中,只需将该算子的中心沿着重叠部分图像的轮廓部分取即可。

2.2 特征区域的匹配

在选好特征区域之后,下面的工作就是在2幅待拼接的图像的重叠部分选取对应的特征点,从而为2幅图像的融合进行定位。由于2幅图像在拍摄器材的状况、角度、目标的亮度和背景等各方面不可能做到百分之百的相同,所以也不可能找到与第1幅图像上选取的特征区域完全相同的区域,所以这里的匹配工作实际上也就是在第2幅待拼接图像的重叠区域寻找与第1幅图像上的特征区域相似度最高的区域。

选用基于灰度匹配的相似性度量作匹配度量,设相邻2图像的灰度函数为f1(i,j),f2(i,j),匹配窗口大小为以特征点为中心的m*n

相似性度量,均方差为:

σ=1mni=1mj=1nf1(i,j)f2(i,j)-f1(i,j)¯×f2(i,j)¯。 (2)

式中,

f1(i,j)¯=1mni=1mj=1nf1(i,j);

f2(i,j)¯=1mni=1mj=1nf2(i,j)

灰度差的绝对值之和为:

Κ=i=1mj=1nf1(i,j)-f2(i,j)。 (3)

匹配运算必须同时满足σ=max≥σth,K=min时,才能确定两匹配窗口为对应窗口,σth为均方差的阈值。

对于图像拼接从工程应用中得出如下结论:

① 采用Moravac算子提取特征时,窗口的大小选择至关重要。一般来说窗口的大小和匹配的正确率是成正比的,和匹配速度成反比,特别是窗口内像素的数量是以平方的速度增加的,而在工程应用中是高速大容量的图像拼接,所以一般选取7*7的窗口就可以取得很高的匹配正确率了;

② 本算法在匹配时同时计算扫描区域和特征矩阵的均方差和灰度差的绝对值之和,虽然在计算量上有所增加,但是大大增加了匹配的可靠性;

③ 预处理和图像分割对于图像的配准十分重要,它可以大大降低配准所用的时间,增加准确性。

3 图像拼接

经过图像配准过程,得到2幅相邻图像的相对位置,如果只是根据所求得的平移参数将2幅图像简单地叠加起来,会发现拼接而成的图像中含有清晰的边界,图像拼接的痕迹非常明显,为了实现图像的无缝拼接,必须对图像的重叠部分进行平滑处理。

为了使得相邻2幅图像在灰度及颜色上都平滑拼接,采用渐人渐出的加权办法。对2幅图像重叠区域的每一个像素值依照它们距离重叠区域边缘的远近分别进行加权,计算每个拼接图像重叠区域每个位置的像素值加权和。

在图像拼接加权函数T(x)当中引入了微调系数a。渐入渐出公式如下:

P(x)=(1-T(x))·P1(x)+T(xP2(x)+a。 (4)

式中,0≤a≤1;0≤T(x)≤1。

T(x)的取值要根据图像重叠区域的大小进行选取,即重叠部分越大,T(x)值的增加也越平缓,从而使图像的过度更为平滑。设重叠区域的最左侧为坐标0点,重叠区域宽度为m,

T(x)=x/m, x=1,2,3,…,m。 (5)

对图像的重叠部分按上述公式进行拼接,就可以得到2幅相邻重叠图像拼接之后的图像。

4 结束语

介绍了实时视频图像拼接的处理流程,视频预处理和单帧采集通过硬件卡实现。对于关键的图像配准和图像拼接技术,则介绍了相应的算法。在工程应用中,实验所用的数据为录像机实时拍摄的视频流,视频序列采集频率为10帧/s,拼接后单幅图像大小为8 192*8 192,使用特征提取匹配法取得了较好的拼接效果,达到了拼接速度10帧/s,实时拼接延迟小于3 s的性能指标,实现了对视频图像的实时接收和实时拼接。

参考文献

[1]王伟,陆佩忠.数字图像拼接技术[J].小型微型计算机系统,2006,27(7):1347-1351.

[2]吴飞.大视场视频全景图生成研究[J].浙江大学学报,2006,40(3):395-398.

[3]向世明.Visual C++数字图像处理与图形处理[M].北京:电子工业出版社,2002.

图像实时检测 第10篇

关键词:实时图像处理,FPGA,DSP

概述

在视频信号处理过程中为保证实时性, 首先要求实时图像处理系统具有处理大数据量的能力。其次对系统的对外接口、功能、稳定性等也有严格的要求。实时图像处理算法中经常要用到对图像的求和、求差运算、二维梯度运算、图像分割、边缘探测等不同层次、不同种类的运算。有的运算结构比较简单, 但是数据量大, 计算速度要求高;有些运算对速度要求并不高, 但计算方式和结构比较复杂, 难以用纯硬件的方式实现。因此, 实时图像处理系统是要求运算速度高、运算种类多的综合性信息处理系统。

图像处理系统中, 底层的图像预处理的数据量很大, 要求处理速度快, 但运算结构相对比较简单, 适用于FPGA通过硬件实现, 这样能同时兼顾速度及灵活性。高层运算的特点是所处理的数据量较底层少, 但算法结构复杂, 适宜采用运算速度高、寻址方式灵活、通信能力强的DSP芯片来实现。

DSP+FPGA结构最大的特点是结构灵活, 有较强的通用性, 适用于模块化设计, 从而能够提高运算、处理的效率;同时开发周期短, 易于维护和扩展, 适于实时图像处理, 对不同算法有较强的适应能力。

硬件结构设计

如图1所示, 实时图像处理系统硬件设计可分为视频信号处理部分和视频信号输入输出部分。首先通过视频A/D接收前端PAL制式模拟视频信号, 经过处理转换后输出数字视频信号。通过FPGA的时序控制将数字视频信号存储到SRAM中。然后利用DSP对SR AM中图像数据的采集、运算和处理, 提取出有用的信息, 最后将处理完成后的图像数据通过FPGA的时序控制, 整合成数字视频信号输出给视频D/A, 转换成PAL制式模拟视频信号输出。

视频信号输入输出部分主要由视频A/D和视频D/A组成。

视频A/D采用ADI公司的10位高性能ADV7180, 它具有三路模拟视频通道, 支持多种制式视频信号输入, 输出标准ITU656 4:2:2格式数字视频信号。ADV7180还提供行、场同步信号和27MHz像素时钟信号, 省掉了时钟同步电路的设计, 为系统设计带来了方便。内置的I2C接口提供了对芯片内部电路的控制功能。可实现对输入视频信号的预处理, 比如对比度和亮度的控制、输出数据格式的选择控制等。FPGA控制数据传输的时序, 同时根据行、场同步信号, 为SRAM提供地址信号和片选、读写等控制信号, 将图像数据存入SM中。

视频D/A采用N X P公司的S A A 7 1 2 8, 它将数字视频信号转换成标准PAL制式模拟视频信号输出。FPGA将标准ITU656 4:2:2格式数字视频信号输出给SAA7128, 同时还将从ADV7180中获取的像素时钟信号输出给SAA7128。SAA7128则将数字视频信号转换成标准的模拟视频信号输出。

视频信号处理部分主要由FPGA、DSP和三片SM组成。

FPGA提供整个实时图像处理系统数字视频信号的时序逻辑控制和输入输出管理。因此FPGA应该拥有丰富的I/O口资源和必要的内部资源。ALTERA公司的Cyclone III系列的EP3C120F780, 它拥有120K逻辑单元和4Mbit内部存储器, 并且提供530个用户I/O引脚, 足够满足设计要求。

D S P芯片采用T I公司的T M S 3 2 0 C 6 4 1 4。它完成图像数据的运算、处理工作。最高工作主频800MHz, 数据处理速度可以达到每秒6400兆条指令。并且拥有64-bit的外部存储器接口, 拥有更快的读写速度, 可以缩短访问SRAM所消耗的时间, 使得DSP可以将更多处理时间集中在图像处理软件算法的工作上。

FPGA功能结构设计

FPGA芯片是整个硬件平台中的核心器件。如图2所示, 它首先通过视频A/D提供的行、场同步信号以及27MHz的像素时钟信号将视频A/D输出的图像数据顺序存储到SRAM中。然后通过时序控制和数据接口切换把SRAM的访问权交给DSP。最后将SR AM中DSP处理完成的图像数据整合后按照标准的时序要求输出给视频D/A。

FPGA的硬件设计可以分为3个部分, 轮换控制模块、视频输入控制模块、视频输出控制模块。

视频输入控制模块根据行、场同步和像素时钟信号产生地址信号, 有序地将每场的图像数据顺序存储到SM中。其中, 每片SM只存储一场图像数据。视频输出控制模块则从SRAM中读取图像数据, 根据行、场同步和像素时钟的时序, 输出标准格式的数字视频信号。

轮转控制模块完成数据接口切换轮转的功能, 使得在同一时刻, DSP、视频输入模块和视频输出模块都单独拥有一片SRAM的访问权。由于输入为标准的PAL制式视频信号, 因此视频信号输入为每20ms一场图像。也就是说在20ms的时间内, 三片SRAM的访问权分别完全由DSP、视频输入模块和视频输出模块所独占。如图3所示, 将三片SRAM分别称作SRAM1、SRAM2、SRAM3。假设在第N场时刻, 视频输入模块访问SRAM1, DSP访问SR A M2, 视频输出模块访问SRAM3。则在第N+1场时刻, 轮换控制模块将数据接口切换到视频输入模块访问SRAM3, DSP访问SR A M1, 视频输

出模块访问SRAM2, 以此类推。因此, 每一场图像数据就都经过了存入SR AM, DSP访问读写, 图像数据输出三个过程。从视频信号输入到视频信号输出的数据处理流程来看就达到了实时图像处理的要求。

这种设计结构使得DSP的软件设计空间自由度很大。因为SRAM的存储空间大, DSP不需要考虑图像数据的存储容量问题, 内存资源可以投入到图像处理软件算法的工作中去。其次, DSP不用去考虑图像数据访问时间片的问题。对于每一场图像数据, DSP都拥有完整的20ms时间访问权, 使DSP软件的编写可以非常灵活。

结束语

采用DSP+FPGA结构的实时图像处理系统, 既可以支持大数据量的实时性传输, 又可以满足视频信号高速处理的需要。系统的扩展性和冗余性好, 通过提高DSP的性能和SRAM的存储容量, 可以满足对更高性能图像处理的要求。

参考文献

[1]段洪君, 李清伟.DSP实时图像处理系统[J].电子科技, 2004, (1) :36-38

[2]罗戈亮, 鲁新平, 李吉成.基于FPGA+DSP的实时图像处理系统设计与实现[J].微处理机, 2010, (2) :108-110

[3]柯丽, 黄廉卿.DSP芯片在实时图像处理系统中的应用[J].光机电信息, 2005, (1) :17-23

[4]赵广州, 张天序.基于DSP和FPGA的模块化实时图像处理系统设计[J].华中科技大学学报, 2004, (10) :4-6

上一篇:反射面天线下一篇:自主阅读的习惯