打印

求助及探讨:复合视频自动聚焦方法

[复制链接]
4089|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xxy301|  楼主 | 2008-10-22 21:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 现在很多基于安防目的的摄像机都具有了自动聚焦功能,我现在也想通过AVR单片机来测试自动聚焦,但是不知道是否可行?有什么注意事项?希望哪位有经验的大侠指导。
    我的设想:一般复合视频的带宽是6MHz,通过对复合视频进行AD取样,在特定周期内(周期是多少我还没有仔细计算),可以计算相邻视频间的电平差值(原理是同一画面,聚焦越清楚,相邻信号的电平差值越大),然后通过尝试控制聚焦来判断新的差值来实现聚焦方向。
    不知道以上观点是否可行?采用Mega128可以实现吗?或者哪位有好的方法给予指导,希望简单点的好,谢谢!

相关帖子

沙发
tyw| | 2008-10-23 08:05 | 只看该作者

有相当深度及难度的课题哦

自动聚焦主要解决的问题是提高聚焦的精度和速度,精度将影响后期图像处理的结果;因场景中被摄景物离拍摄的距离时刻发生变化,故快速的聚焦十分必要. 聚焦速度的提高,取决于聚焦评价函数的选择. 聚焦评价函数用来衡量图像聚焦与否,但由于图像噪声、冗余信息及其他干扰因素,选择的评价函数应具有较强的抗噪声性和良好的唯一性、单调性.

完全聚焦的图像比离焦的图像包含更多的细节和信息量, 是许多聚焦方法实现的前提, 评价函数返回图像是否聚焦的一个值, 对应于评价函数最大值处的位置参量被认为是最佳像面的位置参量。一幅图像是否聚焦, 反映在空域上是图像的边界及细节部分是否清晰, 在频域上则是图像的高频分量是否丰富。前者可以通过对图像进行微分来获取图像的边缘及细节信息, 后者可以对图像进行快速傅里叶变换( FFT)来获取图像的频谱信息。焦距评价函数应具有以下几个特性: ( 1) 无偏性; ( 2) 单峰性; ( 3) 灵敏度高; ( 4) 信噪比较高; ( 5) 计算量小。

国内外文献中提出各种聚焦算法,其中被广泛应用的主要有18 种,分别为Brenner 函数 、绝对梯度函数、平方梯度函数FSG (Square Gradiet function) 、Roberts 算子梯度函数、Sobel 算子梯度函数、Tenengrad 函数、有效像素灰度值和函数、有效像素灰度值方差和函数、有效像素数函数、灰度熵函数、灰度最大差值函数等.

目前国内最常采用的如:采用图象灰度差分绝对值之和自动聚焦、采用平均亮度聚焦……,当然,基于图像的边缘信息或者说是图像的梯度信息的自动聚焦方法是最被广泛采用的方法。


摄像机的自动焦点装置一般是以画面中央为调焦基准的。只有画面中央很小范围是自动焦点的检测范围,这一小范围内的物体的焦点能够自动聚实,也就是说如果被摄物体不在画面中央这一范围内,自动聚焦就会出现偏差。另外,自动聚焦系统受光线、亮度、被摄物等条件的影响很大,在一些特殊情况下会出现聚焦偏差,因此在这些场合最好还是使用手动聚焦比较保险。 
自动聚焦系统对于下述目标或在下述拍摄条件下,自动焦点装置往往会发生错误判断,如果出现自动聚焦困难,需要使用手动聚焦:
1、远离画面中心的景物无法获得正确的对焦。这是由于自动聚焦系统是以图像的中心为准进行调节的。
2、所拍摄的物体—端离摄像机很近,另一端离得很远。摄像镜头是有一定景深的,对于超出其景深范围的被拍摄物,摄像机不能聚焦于一个同时位于前景和背景的物体。
3、拍摄—个位于肮脏、布满灰尘或水滴的玻璃后面的物体。这是因为会聚焦于玻璃.而不会聚焦于玻璃后面的物体。
玻璃窗前拍摄请贴紧玻璃拍摄,
4、拍摄在栏栅、网、成排的树或柱子后的主体时,自动对焦也难以奏效。
5、拍摄—个在暗环境中的物体。由于进入镜头的光线大大下降,摄像机不能正确聚焦。
6、拍摄表面有光泽、光线反射太强或周围太亮的目标物。由于摄像机聚焦于表面光滑或高反光物体,被摄目标会模糊不清。
7、拍摄快速运动物体的对焦较难。由于聚焦镜头内部是机械式运动,不可能与快速移动物体保持同步。当系统追踪拍摄时,会使得景物波动于失焦和准焦两种状态。
8、在移动物体后面的目标物。自动聚焦系统会把移动物体误认为是被拍摄目标而进行聚焦。
9、拍摄反差太弱或无垂直轮廓的目标物。由于摄像机聚焦实现是建立在图像的垂直线方向的反差物体,如一面白墙可能会变的模糊不清。
10、在下雨、下雪或地面有水时,自动对焦系统可能不能正确聚焦。
11、如果你的摄像机是以红外线或超声波的方式自动聚焦的,当被摄体能吸收红外线或超声波时对焦困难;被摄体距离太远红外线或超声波达不到被摄体时对焦困难。
专业点的:在动态图像的拍摄过程中,摄像机与被摄体之间的距离是经常变动的,因此常常会超出景深范围而导致图像模糊。为了使图像保持清晰,就必须不断改变镜头的焦点位置,使图像始终保持清晰。这种调节焦点位置的过程称为聚焦或对焦。
摄像镜头的前端专门设有一组聚焦镜片,包括外侧与内侧两个透镜,通过改变聚焦组镜片的位置即可达到调焦的目的。目前摄像机镜头的自动聚焦方式很多,大致可分为两类:一类为主动式聚焦,包括红外线方式和超声波方式;另一类为被动式聚焦,较有代表性的有佳能自己研制开发的“固态三角测量”系统(SST,Solid State Triangulation)和新近流行的TTL方式。
通常家用摄像机采用的是主动式聚焦,其原理就是当镜头对准目标时,由装置在摄像机镜头内下方的一组发射器,发出红外线或超声波,经被摄物体反射回来后,再由摄像机的红外线传感器或超声波传感器接收下来,从而测定出距离,根据测定的距离驱动摄像机的聚焦装置聚实焦点。其优点是不受光线条件的影响,能在完全黑暗的情况下工作。但不能透过玻璃进行工作,对吸收红外线或超声波的物体、远距离的物体也不能正常工作。
而专业摄像机多采用被动式聚焦。SST方式的原理是:来自被摄体的光线分别经过固定反光镜和可动反光镜后,再反射到两个透镜及一个三角棱镜,分别照射在检测传感器上,使之变换成电信号。再由微电脑处理器对所得到的信息进行分析,计算出与被摄物体之同的距离,控制镜头的聚焦电动机进行聚焦工作。TTL方式的结构相对简单:直接从摄像镜头后面的CCD传感器取出视频信号,再经微机处理,根据这些返回的数据来调整透镜的自动对焦机构。有远距离聚焦正确,对焦没有视差等优点,不足之处是当光线太暗和被摄体反差低时不能正常工作。
通常情况下,保证拍摄画面的清晰是摄像最基本的要求之一,而聚焦调节是保证图像清晰度最重要的一环,摄像机聚焦的过程就是对图像清晰度调节的过程。
在实际操作过程中,一般都是将变焦距镜头推到广角位置(W)再进行聚焦,因这时景深范围大,可以很容易地将焦点聚实。我们通过取景器观察图像的清晰度情况,直到满意为止。聚实焦点之后,再推拉变焦拉杆将镜头调整到所希望的构图景别上,焦点在变焦过程中不会变化。而采用摄远位置(T),对焦较为困难。特别是在近距离拍摄时,一定要将镜头调节为焦距最大的位置。
目前所有的摄像机,都具有自动聚焦功能,稍高级一点的也加上了手动聚焦功能。在自动状态下基本能满足大多数环境下的拍摄,除非你是一个经验老道的摄像师,否则还是先依靠摄像机自动系统为好。
但是,我们知道自动聚焦系统并不是万能的,各种方式的自动聚焦都有各自的特点,同时也都有其一定的局限性,许多情况下还需要靠手动来聚焦。例如下图当主要的被拍摄物偏离画面中心处于画面边缘时,使用手动聚焦的方法是:先将自动聚焦切到手动,对准被拍摄物使其位于画面的中央,并调节清晰度到最佳,再利用锁定功能将焦距锁定在固定位置,再重新构图,回到原始位置。
自动聚焦系统受被摄体亮度的影响很大。光线充足时,自动光圈缩小,景深变深,对焦范围变宽,对焦容易。这种情况下,被拍摄体移动或进行移摄、摇摄时,不会出现焦点不实现象;而在拍摄照明暗的被摄体时,由于镜头光圈大开,景深变浅,聚焦会困难。最好的解决方法是增加被摄体的照度。


http://www.laogu.com/wz_7156.htm

基于PXA255的自动聚焦及图像采集模块设计

发布时间:2005年11月27日 点击次数:1225 
来源:电子设计应用   作者:西安电子科技大学 刘旭辉 白玉霞 孙肖子
  

摘    要:本文介绍了一种基于Intel公司 PXA255嵌入式处理器的自动聚焦图像采集系统。其中详细介绍了自动聚焦在FPGA中的实现以及图像采集在嵌入式linux系统中的实现,并给出了该系统的硬件结构图。
关键词:自动聚焦;图像采集;V4L视频接口;嵌入式QT;离散余弦变换
引言
目前市场上流行的摄像手机一般都不具备自动聚焦功能,这对于传感器分辨率在30万像素以下的摄像手机来说影响不大,但随着百万像素手机的面世,以及手机录像功能的采用,人们对摄像头的自动聚焦功能越来越关注。本文在Xhyper255开发板的基础上,结合项目开发的需要,在开发板上移植QT/embedded作为嵌入式GUI,并设计了自动聚焦和图像采集子模块,其中自动聚焦部分通过verilog HDL在开发板上的FPGA上实现,图像采集部分利用linux内核提供的video 4 linux接口实现。最后的采集程序界面采用嵌入式QT设计工具designer进行设计。

图1  硬件平台结构图

图2  DCT变换模块

图3 DCT变换流程图

图4  自动聚焦流程图
基于图像处理的
自动聚焦系统算法
与传统的自动聚焦算法相比,基于图像处理的自动聚焦算法的实现不需要额外的信号源和相应的接收传感器,这有利于缩小器件的体积以降低成本,并降低器件的功耗。
在这类算法中,分析处理模块直接对获得的视频图像进行处理,以得到相应的判决函数,驱动控制模块则根据得到的聚焦判决函数信息来驱动步进电机,带动镜头前后移动,直到获得聚焦清楚的图像。因此,构造合理的判决函数就成了基于图像处理的自动聚焦算法的关键所在。理想的聚焦判决函数应该具有单峰性、无偏性并能反映离焦的极性,同时应具有较强的抗干扰能力。
在对目前的自动聚焦判决函数做相应的对比后,结合本系统的特点选择2D-DCT变换去除其中的低频成分,其余部分相加作为判决函数。2D-DCT变换的公式如式1所示。
(1)
这里C(0)=1/,C(u)=C(v)   (u,v≠0)
自动聚焦系统的实现
开发平台的搭建如图1所示。
采用Xhyper255嵌入式开发板,图像采集子系统采用如下硬件搭建:30万像素CMOS图像传感器OV7620、 MCS51单片机、USB控制器OV511+、 步进电机和变焦镜头。
OV7620的主要特性为:单片数字式彩色图像传感器;1/3光学格式;数字视频输出格式: 1~500倍的自动曝光范围;自动增益和自动白平衡;能进行亮度、对比度、饱和度、伽马校正等多种调节功能。664×492的图像阵列扫描出原始的R、G、B彩色图像信号,经模拟处理电路进行曝光、校正、白平衡调整等处理后根据输出要求可以转换成YUV等多种信号输出形式。OV511+是为CMOS图像传感器设计的专用USB接口控制芯片。
DCT变换的FPGA实现
2D-DCT变换是视频压缩中的常用变换。在压缩过程中,将一幅图像分成许多8×8的小块进行变换。8×8的2D-DCT变换如式(2)所示:
(2)
这里C(0)=1/,C(u)=C(v)=1 (u,v≠0时)。
变换后去除其中的直流成份,其余的部分相加作为聚焦判决函数。函数最大值处即为焦点所处位置。
1. 块准备:给定的大小为640×480的彩色图像矩阵,将其分为三个矩阵,分别为亮度矩阵(Y),每个的大小为8×8,共4800个;剩下的同相矩阵(I)和正交矩阵(Q)分化为两组1200个矩阵,每个大小为8×8,使用下列矩阵将RGB分量映射到Y,I,Q分量上:
Y=0.30R+0.59G+0.11B
I=0.60R-0.28G-0.32B
Q=0.21R-0.52G+0.31B
对每个8×8矩阵Y,I,Q分量计算DCT,要计算2D-DCT,先对矩阵每行进行1D-DCT,然后对结果矩阵按列进行1D-DCT计算。
2. DCT模块设计:DCT系数采用case语句用查找表结构实现,程序源代码不在此详述。
DCT变换的实现过程为:串行数据首先放到输入缓冲(采用环形寄存器来构造),然后进行求积、求和运算,最终以并行数据的形式输出。这些操作要在控制模块下完成,以保证时序的正确。
DCT变换模块的框图如图2所示。8×8DCT变换实际上就是64个像素点的并行运算。对每个象素点所作的运算为:输入数据和DCT系数相乘,而后相加得到最后结果。流程如图3所示。
由公式可知,需要计算8×8=64次,每计算一次后,将i,j,u,v做相应变化,并重新在系数表中找到相应的系数,和新的数据相乘,作下一次运算。
自动聚焦的实现
去除每个8×8矩阵中的低频成分。然后把相应的高频成分相加,所得的和做为自动聚焦的判决函数,传输到CPU。编程实现一路PWM信号输出,控制步进电机的步长和方向。实现自动聚焦。自动聚焦的流程如图4所示。
图像采集的实现
图像采集程序的编写基于linux内核中提供的Video4Linux 接口。Video4Linux是2.2.0版本之后linux内核提供给网络摄像头、视频采集卡、电视卡等设备软件开发的接口标准。这个标准为内核、驱动、应用程序提供一个API进行交流。目前的最新Video4Linux版本为V4L2。
使用双URB轮流通信
对于对时间敏感而对数据的正确性要求不高的图像采集应用,USB总线定义了ISOC传输模式,USB摄像头应当使用这种传输方式。为了尽可能快地得到图像数据,应当在URB中指定USB_ISO_ASAP标志。
urb->transfer_flags=USB_ISO_ASAP;
//尽可能快地发出本URB
Linux系统中任何USB传输都通过URB实现。为提高速度,可以考虑扩大URB的缓冲,也可以建立两个URB,在等待一个URB被回收时,也就是图像正在被传感器采集时,处理、初始化另一个URB,并在回收后立刻将其发出。两个URB交替使用,大大减少了额外时间。
使用内存映射并用
双帧缓冲提高效率
Linux系统通过read,write等来实现对硬件的操作,它们通过copy_to_user()、copy_from_user()等函数在内核和用户内存空间中互相拷贝。但是对于视频采集这类需要大量高速传输数据的应用来说,这种方法耗费的硬件资源过大,通过内存映射的方法可以使这一问题得到有效解决。首先使用vmalloc()申请足够大的核态内存,将其作为图像数据缓冲空间,两个URB带回的图像数据在这里暂存;然后使用remap_page_range()函数将其逐页映射到用户空间中。户态的图像采集处理程序使用mmap()函数,直接读写内核图像缓冲内存,大大减少额外开销。另外,为了进一步提高帧速率,本文采用双帧缓冲方式进行图像采集。
结语
本系统只需在DCT算法的实现和图像采集接口实现上根据具体的硬件条件作些修改,就可应用于大多数智能产品的开发(如基于嵌入式linux的智能手机的开发),因此具有较好的市场应用前景。




一种基于视频信号处理的显微镜自动聚焦方法.pdf  →  http://3xb.nbu.edu.cn/lg/lg200801011.pdf

使用特权

评论回复
板凳
xwj| | 2008-10-23 08:31 | 只看该作者

讲的很好很明白的论文啊,怎么就不能被吸收了呢?

使用特权

评论回复
地板
tyw| | 2008-10-23 09:04 | 只看该作者

练功心法:聚气于丹田


看似简单明了,不就是吸口气运到肚脐眼嘛,哈哈,但你恐怕运一杯子,甚至一铅桶也运不到那里.晕吧
 

使用特权

评论回复
5
xxy301|  楼主 | 2008-10-23 21:51 | 只看该作者

感谢TYW的详细解答

关于自动对焦的文献我看了很多,但是一直没有找到更加简单方法,经过经过tyw一说,我的感觉就是把“自动聚焦的问题”跟用户强调清楚,以后让他们别用自动聚焦,争取人工聚焦并配套上合适的预置位应该就可以实现绝大多处的用途啦。

使用特权

评论回复
6
tyw| | 2008-10-23 22:51 | 只看该作者

其实现在自动聚焦摄象头并不贵

带夜视的才300元一只.自已开发远远不够呢.

使用特权

评论回复
7
xxy301|  楼主 | 2008-10-24 12:34 | 只看该作者

用途不一样

你说的300块的东西对我来说视频指标是肯定无法满足的,我们一般要求的都是3CCD并且是800线以上的效果才可以的,自动聚焦在我们的系统中仅仅是个辅助系统,有的时候用户就希望听那些并不实用的功能。
或者哪位推荐一下有没有现成的自动聚焦电路板?有我就买现成的,按照自动聚焦电路板要求我设计对应接口,我主要怕那些复杂的计算和分析。

使用特权

评论回复
8
PowerAnts| | 2008-10-24 19:16 | 只看该作者

俺想起几十块的傻瓜相机

光圈小些,尽量搞成超焦距

使用特权

评论回复
9
patrick007| | 2008-10-25 03:14 | 只看该作者

re

我毕设差点做这个东西,后来选择别的公司了。。。。

找找论文,数学模型做好了,算法做好了,然后就实施

avr行不行,得看前面的步骤。

在这问不如去ieee看看,那里才是起点:)

使用特权

评论回复
10
xwj| | 2008-10-25 11:47 | 只看该作者

AVR 那点速度怎么够运算???

就算只做一次减法一次比较,也是完全不够的,而且AVR很多指令也不是单周期的
并且! 并不是比较一组就行的,还的考虑权值的范围,可不是8位哦~~~
再就是Mega128才多少内存?只能外扩,而外扩RAM的速度....

所以Mega128当然不行啦

PS:
之前没注意看,没看到“Mega128”
LZ的方法是可行的,但选型是错的哦

使用特权

评论回复
11
zhang123| | 2010-2-5 08:36 | 只看该作者
基于fpga聚焦

基于FPGA的步进电机驱动及自动聚焦的实现.pdf

276.67 KB

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

33

帖子

0

粉丝