当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]边缘图像连通区域标记的算法研究和SoPC实现

连通区域标记算法用于从图像中提取目标区域,并计算目标区域的特征参数,是目标检测和目标识别的关键步骤[1],其在工业检测、光学字符识别、机器人目标跟踪等领域有广泛的应用。
    目前的连通区域标记算法中,基于等价标号的标记算法需要至少扫描图像两次,并且要处理标记冲突问题,其执行时间过于依赖连通区域的复杂程度[2]。而基于区域生长的标记算法只需扫描图像一次,没有标记冲突问题,对复杂图像适应性好,但目标点数多时搜索效率低,堆栈空间消耗大。
    本文所标记的图像是经过边缘检测得的二值边缘图像。相对于原始图像(或其二值图像),边缘图像保留了轮廓信息,目标点数大大减小,适合使用区域生长标记算法。但是,现有的区域生长标记算法一方面需要对每一个目标点进行N×N窗口搜索,搜索效率低并会出现同一像素重复扫描现象;另一方面,如果搜索窗口较小(如最常用的3×3,也称8邻域),虽然干扰少,但是同一个连通区很容易被标记成若干个不同的连通区;而如果增大搜索窗口(如7×7),虽然得到的标记图像连通性好,但是会引入较多干扰点。
1 基于生长算法的区域标记
    像素P的上、下、左、右、左上、左下、右上、右下的像素集合为像素P的8邻域,邻域内所有目标点同属于一个连通区。通常采用8邻域生长法则进行连通区域标记。
1.1 8邻域区域生长算法
    设边缘图像的背景像素为255,目标像素为0,对其进行8邻域区域生长标记的步骤如下:
    (1)按从上到下、从左到右的顺序扫描图像,遇到目标像素P时,标记为新的标记值L;
    (2)以P为种子点,将其8邻域内的目标像素标记为L;
    (3)将所有与L像素8邻域内相邻的目标像素标记为L,直到该连通区域标记完毕;
    (4)继续按顺序扫描图像,重复前三步,直到图像中所有目标像素都标记完毕。
    每个连通区域的起始点是按顺序扫描整个图像得到的,而各个连通区域的标记过程是递归调用生长函数的过程。生长函数依次扫描目标点的8邻域,若遇到新的目标点,则将当前目标点的处理过程压栈,转而扫描新目标点的8邻域,如此不断地将目标点压栈。当某一目标点的8邻域内没有新的目标点,则将其弹栈,当所有目标点都弹栈完毕,则该连通区域标记完毕。
1.2 邻域重复扫描问题
    在图1中,P0的8邻域和P1、P2、P3、P4的8邻域有4个像素的重叠,与P5、P6、P7、P8的8邻域有2个像素的重叠。按上述的8邻域区域生长算法,当P0与P4均为目标点时(设递归过程由P0 向P4传递),P0、P1、P8、P3、P7这5个像素点被扫描了2次;当P0与P5均为目标点时(设递归过程由P0 向P5传递),P0、P1、P2这3个像素点被扫描了2次。
1.3 8方向邻域生长算法
    8方向邻域生长算法的思路是:目标点A和目标点B相邻,从A到B有8个方向,当按某个方向从A传递到B的8邻域搜索时,只搜索B的8邻域中未被A的8邻域覆盖的部分。例如,图1中从P0传递到P4的8邻域搜索时,只搜索P18、P04、P37;从P0传递到P5的8邻域搜索时,只搜索P05、P25、P01、P15、P02。即:

    8方向邻域生长算法由9个生长函数组成。对于连通区域的起点,必须搜索8个方向,此时调用主生长函数。在目标点传递的过程中,按其传递方向,按式(1)调用相应的生长函数搜索邻域点。区域标记从起点调用主生长函数开始,过程是8个生长函数互相调用,最后这些函数都返回时,区域标记完毕。
    该方法充分利用了从目标点A到目标点B的方向信息,从而在搜索B的邻域时,搜索个数降低为原来的3/8或5/8,平均效率提高了50%。
1.4 边缘端点与区域合并
    仅用8邻域搜索连通区,往往得到的连通区域并不完整,连通性不好。图2(a)中,右半部分是圆形左下局部放大图。当按逆时针搜索到图中圆圈标识的“11”时,在其8邻域内没有新的目标点,因此也就和区域“15”断开了。当搜索到某个目标点时,其8邻域内没有新的目标点,则该点就是边缘的“末端”。一个区域可能有多个末端。
    在图2(b)中,右半部分是“米”字中心局部放大图。图中圆圈标识的“4”点,其8邻域内有新的目标点(左下点),但最近的“3”点并不在其邻域内,因此两个连通区断开。对于单个像素宽的边缘图像,其走向基本一致;而走向改变较大的点,就是图形的“拐点”,此时容易出现区域断开的现象。

[!--empirenews.page--]
    图1中,假设三个目标点的传递顺序是P0到P5,P5再到P02,则P5就是走向拐点。
    要改善连通性,可以增大搜索范围,如增大到7×7范围。这样虽然在一定程度上改善了连通性,但是会引入更多的干扰点。而本文的思路是:首先按照上述8方向邻域生长算法搜索连通区域,同时记录边缘“端点”,然后通过比较各个区域的端点,将端点较近的两个区域合并。结合前文的分析,本文认为边缘端点包括3类:区域起点;边缘末端;边缘拐点。这样得到的端点个数少,包含了绝大部分的“断点”。通过不断比较各个区域的端点,相近则将区域合并,最终得到合并后的标记图像。
    该方法实质上是在小尺度内搜索连通区,并利用得到的边缘端点在大尺度内进行区域合并,既不引入更多的杂点,又改善了标记图像的连通性,并在保证区域合并正确率的同时,提高了合并效率。
2 区域标记及合并的SoPC实现
    本文以FPGA为核心,利用SoPC技术,实现了对320×240图像的8方向生长连通区域标记。系统使用FPGA逻辑硬件进行边缘检测[3],使用NiosII软核处理器进行连通区域标记,用Avalon总线将两者结合起来,实现了硬件加速,软硬件协同工作,既提高了实时性又保证了灵活性。
2.1 SoPC系统的结构设计
    系统结构图如图3所示,主要模块的功能简述如下:
    (1)NiosII CPU模块。该模块是整个系统运算和调度的中心,完成系统工作流程的控制;图像处理中区域标记和区域合并算法的实现;图形用户接口(GUI)的实现。
    (2)Image模块。图像采集部分负责按照320×240大小采集摄像头的数据,由DMA控制器通过Avalon总线将原始图像数据存储到DDR SDRAM中。边缘检测部分同步地将原始图像数据边缘化,生成边缘图像数据,并通过DMA控制器和Avalon总线存储到DDR SDRAM中。
    (3)Display模块。负责驱动LCD液晶显示屏显示原始图像、标记图像以及处理信息。

2.2 区域标记及合并的算法实现
      图像处理过程分为连通区域标记、区域合并和区域排序三步。
      (1)连通区域标记:按照改进后的8方向邻域生长算法进行连通区域标记,为每个连通区分配一个链表数组元素,用链表记录该连通区的目标点和端点。
      (2)区域合并:逐个比较任意两个连通区域的端点链表,在大尺度范围内(本文采用9×9范围),若其中有相邻的端点,则合并这两个连通区。
      (3)区域排序:按照目标点的个数,从大到小对合并后的连通区域排序,取前N个目标点数大于X的连通区域作为后续特征提取的对象(本文N的最大取值为10,X取值20),其余的视为干扰去掉。取形状较大的N个连通区进行下一步的特征提取,可以节省处理时间。
3 实验结果及分析
    本文使用Altera公司的高性价比CycloneIII系列的FPGA EP3C25F324C8。SoPC系统共用逻辑单元8916/24624(36%),寄存器5 415个,引脚101个,片内SRAM位数421 248/608 256(69%),内置乘法器4个,PLL锁相环1个。系统时钟为100 MHz,NiosII软核处理器的性能为113 DMIPS。
    实验结果如图4所示。图4(a)为实验用开发板和摄像头,图4(b)、(c)、(d)是不同图像在LCD液晶屏上显示的实验结果。显示分为三部分:左侧上部为原始灰度图像,大小为320×240;左侧下部为标记图像(不同区域由不同颜色显示),大小为320×240;右侧为处理信息,大小为480×480。处理信息包括:Connection Num为连通区域个数;Merge Num为合并后的区域数;Region Num为排序后的区域数;Process Time为图像处理时间,单位为ms。

    实验结果表明,本文算法得出的标记图像结果正确、边缘清晰、去掉了杂点、提高了区域的连通性。在SoPC系统上实现时,对复杂图像的处理速度约30帧/s,满足了实时性要求。
    本文在SoPC系统中,将提出的基于目标像素邻域的8方向生长区域标记算法和基于边缘端点的区域合并算法成功地予以实现。实验结果表明了算法的有效性和实时性。基于SoPC技术的图像处理系统,软硬件协同工作,提高了系统的并行性和灵活性,便携性好,成本低。
参考文献
[1] HE Lifeng,CHAO Yuyan,SUZUKI K.Fast connected-component labeling[J].Pattern Recognition,2009,42(9):1977-1987.
[2] HU Qingmao,QIAN Guoyu.Fast connected-component  labelling in three-dimensional binary images based on iterative recursion[J].Computer Vision and Image Understanding,2005,99(3):414-434.
[3] 谢昭莉,白颖杰.Prewitt图像边缘检测及边缘细化的FPGA实现[J].电子技术应用,2010,36(6):39-42.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭