DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 920|回复: 0
打印 上一主题 下一主题

[待整理] 基于DSP的快速Hough变换圆检测算法的实现

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-10 08:40:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
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的实时图像处理系统上运行,图像处理效果良好,能够满足实时性要求。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-1 09:07 , 耗时 0.093522 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表