主页(http://www.pttcn.net):一种摄像头自动聚焦方法及硬件实现 传统的自动聚焦可分为主动式自动聚焦和被动式自动聚焦两类。主动式自动聚焦是利用发射红外线或超声波来度量被摄物的距离,自动聚焦系统根据所获得的距离资料驱动镜头调节像距,从而完成自动聚焦;被动式自动聚焦是通过接受来自被摄物的光线,以电子视测或相位差检测的方式完成自动聚焦。 随着计算机技术的发展和数字图像处理理论的日益成熟,自动聚焦技术进入一个新的数字时代,越来越多的自动聚焦算法基于图像处理理论,改变以往用测量相机与被摄物体之间的距离来进行聚焦的方法。传统的方法不仅使系统庞大笨重,而且有时还不准确。数字图像处理理论认为,图像聚焦程度(即图像是否清晰)主要由光强分布中高频分量的多少决定。高频分量少则图像模糊,高频分量丰富则图像清晰,在空域表现为图像的对比度变化明显[1]。本文就是利用这一特点,提出了一种改进的灰度差分法作为图像清晰度评价函数实现自动聚焦系统的方法。实验表明,该系统成本低、聚焦速度快,且效果良好、应用范围广泛。 1 图像清晰度评价函数 1.1 传统的图像清晰度评价函数 (2)梯度函数。在图像处理中,图像梯度可以用来进行边缘提取。离焦量越小,图像边缘越锋利,应该具有很大的图像梯度值。因此,图像的梯度变化也可以作为评价函数。 (3)图像灰度熵函数。聚焦图像的信息熵要大于离焦图像的信息熵。因此,图像的灰度熵也可以作为评价函数。 (4)频域类函数。这类函数主要基于傅里叶变换,傅里叶变换的高频分量对应着图像边缘,而聚焦图像总是具有锋利的边缘,即包含着更多的高频分量,这样可以根据图像傅里叶变换后高频分量含量的多少作为评价函数。 1.2 改进的图像清晰度评价函数
2 自动聚焦系统的组成和原理 系统上电复位后,DSP接收CCD图像传感器输出的模拟视频信号,并对该信号进行A/D转换、白平衡和亮度/色度等处理后,转换成YUV数字信号输出。在行、场及像素时钟信号的控制下,把亮度信号(Y)输入到FPGA中,FPGA统计相邻两场图像的亮度信号,并按照本系统提出的图像清晰度评价函数对图像进行分析、比较,并把比较结果输入到单片机中。单片机根据比较结果,通过步进电机的转动方向和步数来控制光学镜头,从而实现自动聚焦。 在自动聚焦系统中,搜索策略通常采用盲人爬山比较法[4]。首先取得起始位置的图像,并计算出此时的评价函数值;然后,让步进电机驱动镜头从起始位置向上移动一步,将此时的图像与前者比较。若比前者的聚集评价函数值大,就继续向上移动调焦镜头;如此循环,直至图像的聚焦评价函数值小于前一位置,则前一位置就是图像最清晰的位置,聚焦结束。该算法简单,但在实际应用中,由于图像采样、量化及传输过程中各种干扰引起的图像噪音影响,经常会出现误判。因此,本文采用了一种改进的盲人爬山比较法,称为“三点”比较法。该方法在确定镜头位置时,不是仅根据前后2 次聚焦评价值的大小来确定,而是用3 个点大小的变化确定曲线的方向,最终确定镜头位置。为了叙述清楚,用f1、f2、f3分别表示镜头在不同位置时的聚焦评价函数的值,这里只分析f1>f2时可能出现的情况(当f1f2时,先不进行判断,而是把结果保存起来,让步进电机继续驱动镜头向原方向移动到位置f3;如果f2>f3,则可以确定聚焦曲线是下降方向,此时,让步进电机驱动镜头到f1位置;如果f2f3,则认为出现“错误”点,不做判断,让镜头再向前运动到f4,再对f2、f3、f4进行三点判别,得到正确的聚焦位置。
|