打印

基于DSP的快速Hough变换圆检测算法的实现

[复制链接]
740|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Flower1|  楼主 | 2018-8-28 11:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于DSP的快速Hough变换圆检测算法的实现

1 引言

            数字图像处理技术广泛应用于机器视觉自动化检测和视频监控等领域。通用的图像处理系统采用图像采集卡将图像传送至PC,从而实现图像处理的各种算法。近年来,随着集成电路嵌入式技术的发展,特别是DSP集成度、稳定性、运算速度、数据吞吐量等性能的不断提高,以DSP为核心的实时图像处理系统得到开发。采用DSP实现快速数字图像处理可将算法嵌入到DSP中,充分利用DSP的高速性和并行性,提高系统的运行速度,达到数字图像处理的实时性。相对于基于PC机的通用图像处理系统,基于DSP的图像处理系统具有体积小,功耗低等优点,适用于嵌入式系统领域。

在图像处理中检测圆通常需要计算圆形度,半径,圆心位置等圆参数。Hough变换是目前应用最广泛的圆检测方法,该方法可靠性高,在噪声、变形、甚至部分区域丢失的状态下仍然能取得理想效果。但其缺点是计算复杂,内存需求大。算法的实时性很差,不能满足实时性的要求。

根据某项工程的实际要求,对标准Hough变换检测圆算法进行改进,并在TMS320DM642平台上实现,取得较好的检测效果,并达到实时性要求。



2 算法运行平台

算法运行平台采用SEED-DTK-VPM642多媒体实验平台,该平台采用TI公司的TMS320DM642作为核心处理器。TMS320DM642是专用于数字媒体应用的高性能32位定点DSP,工作主频最高达720 MHz,处理性能可达5 760 MI/s,强大的图像处理能力为实现算法实时性和可靠性提供保证。该实验平台的整体功能框图如图1所示。前端通过CCD摄像机获得视频图像,经视频解码器TVP5150的数字化处理后,形成并行数字码流以EDMA传输方式将数据传送到TMS320DM642的数据输入缓冲区,对图像进行实时处理后的数据自动通过EDMA传输至数据输出缓冲区,再通过视频编码器SAA7121形成码流,传送到显示器显示检测结果。在整个算法的实现过程中,为了满足实时性的要求,都是以EDMA的传输方式传输数据。






3 Hongh变换圆检测算法的实现

3.1 Hough变换圆检测算法的改进

Hough变换的基本思想是将图像从空间域变换到参数空间,用大多数边界点满足的某种参数形式来描述图像中的曲线。假设在x-y平面检测并确定一个圆的参数,图像中待检测圆周点的集合为{(xi,yi),i=1,2,3,…,n},(x,y)为该集合中的一点,其在参数坐标系(a,b,r)中解析式为:





该解析式对应的曲面为三维锥面。图像中任意确定的一点均有参数空间的一个三维锥面与之对应。对于圆周上的任一点{(xi,yi),i=1,2,3,…,n},这些三维锥面构成圆锥面簇,如图2所示。






若集合中的点均在同一个圆周上,则这些圆锥面簇相交于参数空间上某一点,该点恰好对应于图像平面的圆心坐标及圆的半径。Hough变换在计算上将参数空间进一步分割为累加器单元A(i,j,k),并先使累加器单元置零。根据式(1)对参数作相应循环,如果一个a(i)值得到相应的b(j),r(k),就令A(i,j,k)=A(i,j,k)+1。最后对每个累加器进行比较,找到最大值累加器,该累加器所对应的参数值(a,b,r),就是在平面上所要检测圆的圆心及半径。

标准Hough变换的计算非常复杂,在圆形检测应用中随着取值范围的不断扩大,在参数域的三维数组尺寸成正比例增加,需要占用大量计算机内存,计算效率低下。因此,尽可能缩小参与Hough变换的参数域范围是提高其效率的关键。对其改进的步骤如下:

第一步:对图像作canny边缘检测处理,得出图像中待检测圆的单像素宽的边缘;

第二步:求出图像中待检测圆边缘在上,下,左,右4个方向上的极点,然后根据圆的几何对称性,采用“最小外接矩形法”估算待检测圆的圆心及半径,生成相应的子图,并滤除图像中的噪声。“最小外接矩形法”估算圆参数方法如图3所示,其中圆心O为









第三步:考虑到图像可能存在缺陷和噪声,对估算所得到的圆心及半径进行适量缩放,从而缩小参与Hough变换的参数域范围。

第四步:在确定的圆心及半径范围内,根据圆的参数方程进行。Hough变换,从而检测圆的参数。



3.2 基于DSP/BIOS和RF5架构的算法实现

算法的实现是基于CCS和DSP/BIOS及TI倡导的DSP软件架构RF5。该算法分为输入任务、处理任务、输出任务3个任务,软件框架如图4所示。





在初始化完成后,系统进入DSP/BIOS任务调度管理,3个任务通过RF5的SCOM模块互相发送消息。



这3个任务完成的工作是:

(1)输入任务 从输入设备驱动程序获得视频图像。它使用驱动程序提供的FVID_exchange调用从输入设备获得一帧新视频图像。输入任务接着发送消息到处理任务,消息中包含图像数据指针,接着等待输出任务发送来的消息以继续运行。



(2)处理任务 一直等到接收输入任务,包含图像数据指针消息,才开始激活运行。对接收到图像数据进行预处理,得出图像中待检测圆的细边缘,然后调用改进的Hough变换检测圆的参数,接着发送消息到输出任务,消息中包含经Hough变换检测后生成的图像数据指针,然后等待输入任务发送来的消息以继续运行。

(3)输出任务 将图像显示在显示设备上,使用驱动程序提供的FVID_exchange调用实现图像的显示,接着发送消息到输入任务,然后等待处理任务发送来的消息以继续运行。

4 实验结果

采用某光纤插针内孔参数检测项目中所获取的内孔圆(如图5a所示,实际图像大小1 392×1 040像素,限于篇幅,缩小为原图的10%)来检验算法效果。原图的实际圆心坐标为(678,503),半径为462。图5b为使用Canny算子检测得到的边缘图像;图5c为采用本文算法得到的检测结果。表1、表2分别列出了基于PC平台和TMS320DM642平台采用本文算法与采用标准Hough算法分别对图5a进行圆参数检测所得结果、占有内存大小及耗时的对比。





从实验结果看出,经改进后的Hough变换圆检测算法,无论是基于PC平台还是TMS320DM642平台,与传统的Hough变换算法相比,算法的运算量、内存需求、耗时都有了大幅度的削减,因而有效地提高了圆的检测效率,满足实时性要求。

5 结论

在以TMS320TMS320DM642为核心的实时图像处理平台上,通过对传统的Hough变换检测圆算法进行改进并运行验证,证明了对于时间复杂度较大的图像处理算法,在基于高端DSP的实时图像处理系统上运行,图像处理效果良好,能够满足实时性要求。


相关帖子

沙发
Flower1|  楼主 | 2018-8-28 11:57 | 只看该作者
基于DSP的快速Hough变换圆检测算法的实现

文档1.pdf

170.35 KB

使用特权

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

本版积分规则

623

主题

887

帖子

6

粉丝