论文部分内容阅读
引言:当相机与被拍摄场景在曝光时间内存在相对运动时,获取的图像就会出现运动模糊。图像运动模糊包括相机抖动模糊和物体运动模糊。近来,由于图像盲复原方法的突破。编码曝光技术作为计算摄影[3]的具体应用,其核心思想是在相机曝光期间根据预先设计的二进制编码序列(称为码字)快速地开关相机快门以保留高频信息。由此,编码曝光技术将病态的模糊图像复原问题转化为良态问题。
1 系统总体结构
整个系统分为三个子系统,分别是图像显示系统,图像传输和处理系统以及图像采集
系统,其中图像显示系统采用PC电脑作为显示器,在电脑上用MFC编程写出图像显示软件,上位机显示软件控制图像采集的开始,停止以及回放,通过光纤将控制命令发送到下位机,在电脑主板的PCIE总线插槽处接入PCIE转光纤转接卡,采用光纤作为传输通路,可以保证图像数据快速远距离传输;图像传输和处理系统采用FPGA作为主控芯片,FPGA一方面控制串并转换芯片TLK2501以接收来自上位机的命令,同时将采集到的数据通过串并转换芯片经由光纤发送到上位机,FPGA与AD9923A通过总线方式连接以采集图像数据,另外,SDRAM用于存储图像数据;图像采集系统选用索尼公司的ICX445CCD传感器,外围搭配AD9923A作为时序驱动电路,而AD9923A的配制则选用单片机C8051F340。
2 硬件设计
2.1 图象显示系统
图象显示系统采用PC电脑作为上位机,使用windows XP操作系统,在此基础上使用MFC编写了上位机显示界面,界面如图2所示,命令及图像数据通过电脑的PCIE总线进行相互传输,在电脑的PCIE插槽上接入一个PCIE光纤转接卡,系统框图如图3所示,通过光纤发送来的相机数据由SFP光模块接收,经过串并转换以后由FPGA接收,FPGA内部有一个PCIE硬核,当接收到的数据达到一定数值时(在这我们设定是到达12帧数据),FPGA便开启与电脑内存之间的DMA传输,而MFC显示程序则直接从电脑内存中读取图像数据并显示图像。
图像显示软件采用VC++6.0开发的基于MFC的应用程序,功能包括開始、停止采集,设置曝光时间以及曝光次数等参数,实现了曝光的可控性。现实程序采用多线程编程,不仅能够实时显示图像,还可以存储图像,提高了程序的运行效率。在编程中使用了DirectDraw函数组,直接将图像数据送人显存,充分发挥显卡性能,消除了图像闪烁现象。
2.2 图像传输和处理系统
图像传输和处理系统采用FPGA作为主控制芯片,一方面从光纤端接收来自上位机的参数设置,进而配制AD9923A的相关寄存器,控制CCD的曝光时间及次数,另一方面FPGA接收到采集图像的命令后,开始CCD的图像采集及数据读取的操作,CCD数据先进入AD9923A,然后AD9923A通过数据总线发送到FPGA;数据数据进入FPGA以后,先经过delay_FV模块过滤掉不用的行像素,然后再经过delay_LV模块过滤掉无用的列像素,然后将有效的图像数据存储在SDRAM中。系统结构如图4所示。
CCD产生的图像数据中包含很多无效的信号(简称OB信号),所以要在FPGA中判断并去掉这些无用的行信号及水平信号。水平方向的OB信号用AD9923A中的CLPOB信号进行消除,而垂直方向的OB信号用HBLK信号消除,PBLK是可选参数,经常用于在无效CCD像素期间消隐数字输出。
2.3 图像采集系统
本系统采用的CCD传感器为sony公司的ICX445,而驱动CCD的芯片采用Analog
Devices公司的AD9923A。在上电初始,单片机C8051F340通过SPI总线配置AD9923A,当配制完成以后,会将对AD9923A的控制权交给FPGA,AD9923A在配置好以后,内部的驱动时序发生器向传感器ICX445提供水平时序、垂直时序以及各种控制信号,使ICX445能够正常工作;当FPGA发出开始采集的命令以后,图像的模拟信号先传输到AD9923A,经过模拟前端的放大增益,相关双采样以后,得到图像数据,然后经过12位的模数转换得到数字量化的图像数据,最后将并行图像数据,时钟,以及控制时序发送到FPGA。ICX445是1/3寸CCD传感器,全像素为1348(H)× 976(V),有效像素1296(H)×966(V),VΦ1 A ,VΦ1 B ,VΦ2 A ,VΦ2B ,VΦ3 A ,VΦ3B ,VΦ4 A ,VΦ4 B 是垂直移位寄存器的控制时序脉冲,他们的组合控制电荷在垂直移位寄存器的移动;HΦ1 A ,HΦ1 B ,HΦ2 A ,HΦ2B 是水平移位寄存器的控制时序脉冲,他们的组合控制电荷在水平移位寄存器的移动;SUB是衬底选通信号,接通垂直移位寄存器和水平移位寄存器之间的通道,使得垂直移位寄存器中的电荷信号能够顺利转移到水平移位寄存器中;RG是重置门信号,在输出一个电荷信号之前,清除水平移位寄存器中的残余电荷,将输出放大器的电荷探测端复位到参考电平,其频率直接决定CCD电荷信号输出的频率。对AD9923A进行配置时,以垂直序列为例,首先确定垂直时序的起始极性以及跳变位置,然后确定此脉冲的重复次数,当所需要的8个垂直时序全部设置完毕时,便组成了一个垂直图样组,而相对于ICX445传感器的一帧数据,需要三组不同的垂直图样组:高速清除阶段,正常传输阶段,读出阶段。每个阶段都有自己的垂直图样组,因此在一帧中确定三个垂直图样组每个的起始位置,持续时间,以及重复次数便形成了不同的垂直序列。而不同的垂直序列再组成一个场,因为ICX445并没有奇偶场之分,所以本系统只需要单场循环即可。
曝光时间的控制:CCD电子快门原理是由光照产生的电荷在光敏二极管下的势阱积分,
而周期性的SUBCK 信号则用于清除势阱中的电荷,VSG信号用于将电荷从势阱中转移到垂 直移位寄存器。AD9923A有三種电子快门模式:普通快门模式、精确快门模式、慢速快门模式。在普通快门模式下,当场同步信号VD有效后,就产生一个VSG有效信号。SUBCK有效信号在行同步信号有效产生,一场内SUBCK信号产生个数由寄存器SUBCKNUM决定。普通曝光模式时序控制如图6。设场频为f v ,行频为f h ,快门时间为t,则快门时间由式(1)确定:
根据式(1),可以推导出根据 t 计算 SUBCKNUM 的方法,推导结果如式(2):SUBCKNUM=f h×(1/ f v?t )(2) 因此FPGA在接收到上位机的曝光时间参数以后,通过配制AD9923A的SUBCKNUM寄存器,可以更改SUBCK脉冲数,从而更改CCD的曝光时间。
3 算法设计
图像融合的算法对系统的资源要求很高,因为采用的FPGA作为处理芯片,算法的处理时间不宜过长,复杂度不能太高,所以要采用高效简单的处理算法。本文中使用实际工程中广泛应用的加权融合算法[10],假设曝光次数设置为N,则有M1 ,M2 ,…,Ms(S≤N)幅图像,而每幅图像中对应像素点的数值为XL/Fi,i∈{1,2,…,S},L∈{1,2,…,1280}, F∈{1,2,…,960},其中i表示第几幅图像,L表示行像素位置,F表示列像素位置。加权融合算法的核心思想是:兼顾每幅图像的相同像素位置的数值,按照一定的原则给每幅图像定制加权因子,最后加权综合所有的图像数据得到一副新的图像。设各幅图像M1 ,M2 ,…,Ms 的加权因子分别为W1 ,W2 ,…,Ws ,则融合后的值和加权因子满足式(3)。而在实际应用中,加权因子不容易确定,通常选用数字平均的方式,即每幅图像的加权因子近似相等,此时融合后的^x值为式(4)所示。整个加权融合算法流程图如图7所示,作为图像传输和处理系统的FPGA接收到曝光次数的参数设置以及开始采集的命令以后,先采集一帧的图像数据,然后将数据存储在外围的SDRAM中,并判断是否按要求采集完所有的图像,当采集完以后,从每一帧的第1行第1个像素开始读出数据,然后利用公式(4)计算出融合后的像素的数值,并存储在FPGA中,同时行像素计数加1,当行像素计满1280时,表示一行数据已经读取完毕,此时列像素计数加1,当列像素计满960时,表明所有图像的数据都已经融合完毕,FPGA将处理完的图像数据发送到上位机予以显示。
4 结论
系统测试使用手在镜头前快速划过,设置曝光次数为2次,曝光时间为30毫秒,经过编码相机的多次曝光处理以后的图像如图8所示。由图8可以看出,图像传输帧率为13Frame/S,图像信号的输出的速率为116Mbps,图像模糊尺度为54个像素,属于典型的物体运动模糊,本系统所做相机可以作为编码曝光技术所用相机。
1 系统总体结构
整个系统分为三个子系统,分别是图像显示系统,图像传输和处理系统以及图像采集
系统,其中图像显示系统采用PC电脑作为显示器,在电脑上用MFC编程写出图像显示软件,上位机显示软件控制图像采集的开始,停止以及回放,通过光纤将控制命令发送到下位机,在电脑主板的PCIE总线插槽处接入PCIE转光纤转接卡,采用光纤作为传输通路,可以保证图像数据快速远距离传输;图像传输和处理系统采用FPGA作为主控芯片,FPGA一方面控制串并转换芯片TLK2501以接收来自上位机的命令,同时将采集到的数据通过串并转换芯片经由光纤发送到上位机,FPGA与AD9923A通过总线方式连接以采集图像数据,另外,SDRAM用于存储图像数据;图像采集系统选用索尼公司的ICX445CCD传感器,外围搭配AD9923A作为时序驱动电路,而AD9923A的配制则选用单片机C8051F340。
2 硬件设计
2.1 图象显示系统
图象显示系统采用PC电脑作为上位机,使用windows XP操作系统,在此基础上使用MFC编写了上位机显示界面,界面如图2所示,命令及图像数据通过电脑的PCIE总线进行相互传输,在电脑的PCIE插槽上接入一个PCIE光纤转接卡,系统框图如图3所示,通过光纤发送来的相机数据由SFP光模块接收,经过串并转换以后由FPGA接收,FPGA内部有一个PCIE硬核,当接收到的数据达到一定数值时(在这我们设定是到达12帧数据),FPGA便开启与电脑内存之间的DMA传输,而MFC显示程序则直接从电脑内存中读取图像数据并显示图像。
图像显示软件采用VC++6.0开发的基于MFC的应用程序,功能包括開始、停止采集,设置曝光时间以及曝光次数等参数,实现了曝光的可控性。现实程序采用多线程编程,不仅能够实时显示图像,还可以存储图像,提高了程序的运行效率。在编程中使用了DirectDraw函数组,直接将图像数据送人显存,充分发挥显卡性能,消除了图像闪烁现象。
2.2 图像传输和处理系统
图像传输和处理系统采用FPGA作为主控制芯片,一方面从光纤端接收来自上位机的参数设置,进而配制AD9923A的相关寄存器,控制CCD的曝光时间及次数,另一方面FPGA接收到采集图像的命令后,开始CCD的图像采集及数据读取的操作,CCD数据先进入AD9923A,然后AD9923A通过数据总线发送到FPGA;数据数据进入FPGA以后,先经过delay_FV模块过滤掉不用的行像素,然后再经过delay_LV模块过滤掉无用的列像素,然后将有效的图像数据存储在SDRAM中。系统结构如图4所示。
CCD产生的图像数据中包含很多无效的信号(简称OB信号),所以要在FPGA中判断并去掉这些无用的行信号及水平信号。水平方向的OB信号用AD9923A中的CLPOB信号进行消除,而垂直方向的OB信号用HBLK信号消除,PBLK是可选参数,经常用于在无效CCD像素期间消隐数字输出。
2.3 图像采集系统
本系统采用的CCD传感器为sony公司的ICX445,而驱动CCD的芯片采用Analog
Devices公司的AD9923A。在上电初始,单片机C8051F340通过SPI总线配置AD9923A,当配制完成以后,会将对AD9923A的控制权交给FPGA,AD9923A在配置好以后,内部的驱动时序发生器向传感器ICX445提供水平时序、垂直时序以及各种控制信号,使ICX445能够正常工作;当FPGA发出开始采集的命令以后,图像的模拟信号先传输到AD9923A,经过模拟前端的放大增益,相关双采样以后,得到图像数据,然后经过12位的模数转换得到数字量化的图像数据,最后将并行图像数据,时钟,以及控制时序发送到FPGA。ICX445是1/3寸CCD传感器,全像素为1348(H)× 976(V),有效像素1296(H)×966(V),VΦ1 A ,VΦ1 B ,VΦ2 A ,VΦ2B ,VΦ3 A ,VΦ3B ,VΦ4 A ,VΦ4 B 是垂直移位寄存器的控制时序脉冲,他们的组合控制电荷在垂直移位寄存器的移动;HΦ1 A ,HΦ1 B ,HΦ2 A ,HΦ2B 是水平移位寄存器的控制时序脉冲,他们的组合控制电荷在水平移位寄存器的移动;SUB是衬底选通信号,接通垂直移位寄存器和水平移位寄存器之间的通道,使得垂直移位寄存器中的电荷信号能够顺利转移到水平移位寄存器中;RG是重置门信号,在输出一个电荷信号之前,清除水平移位寄存器中的残余电荷,将输出放大器的电荷探测端复位到参考电平,其频率直接决定CCD电荷信号输出的频率。对AD9923A进行配置时,以垂直序列为例,首先确定垂直时序的起始极性以及跳变位置,然后确定此脉冲的重复次数,当所需要的8个垂直时序全部设置完毕时,便组成了一个垂直图样组,而相对于ICX445传感器的一帧数据,需要三组不同的垂直图样组:高速清除阶段,正常传输阶段,读出阶段。每个阶段都有自己的垂直图样组,因此在一帧中确定三个垂直图样组每个的起始位置,持续时间,以及重复次数便形成了不同的垂直序列。而不同的垂直序列再组成一个场,因为ICX445并没有奇偶场之分,所以本系统只需要单场循环即可。
曝光时间的控制:CCD电子快门原理是由光照产生的电荷在光敏二极管下的势阱积分,
而周期性的SUBCK 信号则用于清除势阱中的电荷,VSG信号用于将电荷从势阱中转移到垂 直移位寄存器。AD9923A有三種电子快门模式:普通快门模式、精确快门模式、慢速快门模式。在普通快门模式下,当场同步信号VD有效后,就产生一个VSG有效信号。SUBCK有效信号在行同步信号有效产生,一场内SUBCK信号产生个数由寄存器SUBCKNUM决定。普通曝光模式时序控制如图6。设场频为f v ,行频为f h ,快门时间为t,则快门时间由式(1)确定:
根据式(1),可以推导出根据 t 计算 SUBCKNUM 的方法,推导结果如式(2):SUBCKNUM=f h×(1/ f v?t )(2) 因此FPGA在接收到上位机的曝光时间参数以后,通过配制AD9923A的SUBCKNUM寄存器,可以更改SUBCK脉冲数,从而更改CCD的曝光时间。
3 算法设计
图像融合的算法对系统的资源要求很高,因为采用的FPGA作为处理芯片,算法的处理时间不宜过长,复杂度不能太高,所以要采用高效简单的处理算法。本文中使用实际工程中广泛应用的加权融合算法[10],假设曝光次数设置为N,则有M1 ,M2 ,…,Ms(S≤N)幅图像,而每幅图像中对应像素点的数值为XL/Fi,i∈{1,2,…,S},L∈{1,2,…,1280}, F∈{1,2,…,960},其中i表示第几幅图像,L表示行像素位置,F表示列像素位置。加权融合算法的核心思想是:兼顾每幅图像的相同像素位置的数值,按照一定的原则给每幅图像定制加权因子,最后加权综合所有的图像数据得到一副新的图像。设各幅图像M1 ,M2 ,…,Ms 的加权因子分别为W1 ,W2 ,…,Ws ,则融合后的值和加权因子满足式(3)。而在实际应用中,加权因子不容易确定,通常选用数字平均的方式,即每幅图像的加权因子近似相等,此时融合后的^x值为式(4)所示。整个加权融合算法流程图如图7所示,作为图像传输和处理系统的FPGA接收到曝光次数的参数设置以及开始采集的命令以后,先采集一帧的图像数据,然后将数据存储在外围的SDRAM中,并判断是否按要求采集完所有的图像,当采集完以后,从每一帧的第1行第1个像素开始读出数据,然后利用公式(4)计算出融合后的像素的数值,并存储在FPGA中,同时行像素计数加1,当行像素计满1280时,表示一行数据已经读取完毕,此时列像素计数加1,当列像素计满960时,表明所有图像的数据都已经融合完毕,FPGA将处理完的图像数据发送到上位机予以显示。
4 结论
系统测试使用手在镜头前快速划过,设置曝光次数为2次,曝光时间为30毫秒,经过编码相机的多次曝光处理以后的图像如图8所示。由图8可以看出,图像传输帧率为13Frame/S,图像信号的输出的速率为116Mbps,图像模糊尺度为54个像素,属于典型的物体运动模糊,本系统所做相机可以作为编码曝光技术所用相机。