Profile - CN173


CN173

基于FPGA协处理器的结构光图像的轮廓提取

深圳大学
电子科学与技术学院






Advisor

Name: 龚向东、吴庆阳

Members

No. Name English Name
1 曾振兴 ZENG Zhenxing
2 谢连雄 XIE Lianxiong
3 张建生 Zhang Jiansheng

Project Paper

1. 设计概述 (Preliminary Paper)

一、设计概述:

 

随着现代工业对加工和检测的要求越来越高,迫切需要获得加工、检测对象的三维数据。在三维获取系统中,结构光系统由于其实现简单、扫描速度快、数据空间分辨率高等优点,因而具有较高的研究价值和发展前景。结构光三维测量系统涉及光学、精密机械、数字控制、计算机视觉、图像处理等多个技术领域,其基本思想是向被测物体投射线状结构光(激光),CCD相机采集被线光源照射的图像,利用投影器(激光器)、物体和观测点(CCD相机)在空间的三角关系,建立图像点的二维坐标和物体空间点的三维坐标间的对应数学模型,即可获得物体上光条轮廓三维数据。当用数控系统移动物体,使光切面对物体步进扫描,逐一摄取物体每一分层面的结构光图像,并对这些序列图像进行处理(提取光条轮廓),就可以获得物体的三维形状。

由于投射器光学系统的局限以及成像环境影响,投射到物体上的实际光平面都有一定的厚度因此如何快速准确地提取物面光带中心的位置,是采用线结构光进行测量的一个关键问题。目前对光带中心的提取方法大多是采用软件实现的,其优点是灵活性高,容易实现各种复杂轮廓提取算法,但处理速度比较慢,难于实时化。采用FPGA对光条轮廓图像进行处理,有很大的优势,它同时兼顾了处理速度和算法实现灵活性,同时拥有开发验证成本低的优点。

随着微电子工业的不断发展,用FPGA来实现SoPC系统已经成为可能。SoPC技术既具有基于模块设计的特征,又具有ASIC的系统级芯片设计的特征,涵盖了嵌入式设计的全部特征。此外,在AlteraSoPC解决方案中,自定义指令的特点非常引人注目,基于此,可以将轮廓提取的算法用DSP Builder或者HDL来实现,并用自定义指令的方式加入到Nios II指令系统,作为硬件加速的一个引擎。

Nios II 软核处理器,具有可配置性、高性能、成本低、效率高等特点,本设计采用Nios II处理器为核心,将各种外设以及轮廓提取协处理器挂于Avalon总线上,实现一个灵活、高速的结构光图像处理片上可编程系统。

 

(Revision: 3 / 2008-06-15 18:27:54)

2. 功能描述 (Final Project Paper)

 二、功能描述   

本系统在SoPC的开发环境中,实现了实时地对图像进行采集、存储、传输、处理以及显示,并控制电机带动待测物体平动,从而达到对光刀打在物体轮廓表面的线结构光进行条纹提取的目的。将处理后的数据写入SD卡,并对其进行标定,在计算机中便可以对物体进行重建。此外,本设计将图像采集和处理模块做成自定制组件,在以后的应用中,只需稍作修改便可重复使用。本设计还用DMA实现图像的传输、图像处理模块全硬件实现,大大提升了系统的速度。整个系统实物图如图2.1所示。

图2.1 系统实物图

(Revision: 4 / 2008-09-14 20:57:38)

3. 性能参数 (Final Project Paper)

 

三、性能参数
1、本系统协处理器每一个时钟可以处理一个象素,系统时钟为50MHz,则处理一幅(640X480像素)图像仅需要12.288ms,对于帧频为25/秒(帧周期40ms)的普通视频信号,本系统可以实现实时处理。
2Altera DE1板丰富的资源为本设计提供了很好的硬件条件。本系统使用了两个DMAC、两个自定制组件、多种相关外设以及大量的片上存储。另外,以Sdram作为采集图像的帧缓冲区,Sram作为图像处理缓冲区,CFI flash用于存放软件代码,其资源报表如图3.1所示。

(Revision: 3 / 2008-09-14 23:15:20)

4. 设计结构 (Preliminary Paper)

四、设计结构

   1、系统结构

 

 

 

 1  结构光三维测量系统框图

  图1所示为本设计结构光三维测量系统框图,该系统以SoPC系统为控制处理核心,控制步进电机使物体平行移动,激光器通过柱面透镜系统将线光束投射到被测物体上,物面上的光条轮廓成像到CCD摄像机上,图像采集后通过SoPC系统的轮廓提取协处理器处理,所得到的物体三维数据通过USB总线传输到上位PC主机进行物体三维轮廓重建;物体的三维数据也可存储在SD卡以供离线处理。

 

2、 硬件框图

 

(1)系统结构 

 

 

图2 SoPC系统框图 

 

2SoPC系统结构框图,此SoPC系统以Nios II处理器为核心,将各种外设挂于Avalon总线。Nios II处理器主要负责接口的配置与控制,DMA控制器主要负责帧缓存器中待处理图像的传输,轮廓提取协处理器则负责图像的处理,主要实现轮廓坐标的提取。其中还有USB接口、I2C总线控制器、图像采集接口、片外存储器接口、电机控制接口等。整个系统的功能包括位移平台的驱动控制、图像采集、缓存、图像处理、三维轮廓数据的传输与转存等。

(2)轮廓提取协处理器结构

3  轮廓提取协处理器结构框图

   图3 为轮廓提取协处理器的结构框图,该模块对图像帧缓冲区的灰度图像进行滤波去噪、二值化、细化处理,最后提取轮廓坐标。此外,还需要一个控制单元,主要用于控制缓存区内数据的读写。

   (3)滤波单元

 

 4  滤波单元结构

4为滤波单元结构,通过控制单元来控制缓存区的读写,用低通滤波模板(3×3)遍历图像数据进行卷积运算,然后将结果送入下一个数据缓冲器。

(4)二值化单元

 

5  二值化单元结构

 

5为图像二值化单元结构,先计算二值化的阈值,通过比较并处理将图像变成只有黑(0)和白(255)的数据。

 

(5)细化单元

 

6 细化单元结构

 

细化过程就是重复地剥离二值图像的边界像素,直到获得一条单像素宽的连通线(骨架)的过程。图6为细化单元结构,其中剥离像素判断处理公式采用了文献中现有的细化算法。从二值化的结构光图像中遍历地提取3×3的数据,然后根据上述逻辑关系判断各个像素中的东、西、南、北四个方向像素是否剥离,最后将处理后的数据进行判断,提取轮廓坐标。

 3、软件流程

 

 

 

图7 软件流程
 

 

   图7为软件流程,系统初始化后,首先对的摄像机和电机工作模式进行配置,然后驱动位移平台并启动摄像机工作。SoPC系统对图像进行采集、缓存、处理,最后将处理的结果上传、存储,如此循环,直至提取完物体的轮廓为止,其中虚线框部分为协处理器工作的内容。

 

(Revision: 39 / 2008-06-15 23:03:25)

5. 设计方法 (Final Project Paper)

 

五、 设计方法

    本设计以硬件设计为主,以满足速度的要求,加以软件控制,主要是对数据流的控制。本设计的内容主要包括各种硬件接口的设计、数据流的软件控制、以及图像处理算法的硬件实现。本次大赛提供的设计环境是DE1开发板,我们在此平台上实现了物体位移平台的电机驱动控制、图像的采集、存储、传输、处理以及图像处理结果的实时监控。

1、图像采集模块

本系统采用友晶科技公司提供的摄像头DC2对图像进行采集。在I2C接口的配置下,通过QuartusII自带的Signal_Tap II逻辑分析仪对通过CMOS摄像头出来的行场同步信号、以及数据信号进行观察(如图5.1所示)

 

 

5.1 CCD输出信号时序图

 

根据行场同步信号对图像数据进行采集,将其与行和列的坐标一一对应起来。

2RGB提取模块

 由于DC2摄像头的图像传感器MT9M011是采用Bayer模式(如图5.2所示)输出像素数据的,因此需要将这些数据转成RGB格式,具体的转换如图5.3所示。为了实现这一转换,同时取得RG0G1B的数据,采用移位寄存器来获取,具体对移位寄存器的使用,将会在后面图像处理模块中介绍。

 

 

      

                    图5.2 Bayer模式                                                  图5.3 Bayer格式转RGB

 

 3、I2C模块

       I2C是很常用的二线串行通信接口。在这里,主要起到配置并控制图像传感器MT9M011的作用。I2C需要发送控制命令字、寄存器地址以及对应的数据。图5.4就是利用I2C与图像传感器进行通信的时序图。本设计中,通过I2C接口对图像传感器的窗口大小、曝光时间、增益参数、消隐参数等进行了配置,如图5.5和图5.6。

 

5.4  I2C与图像传感器通信时序图

5.5 I2C时序的仿真

5.6  I2C对图像传感器的配置
 
4、图像帧缓存接口
考虑DE1平台上存储资源,以Sdram作为图像缓冲区。我们对一个工业级的Sdram_4port进行改造(如图5.7所示),并挂到avalon总线上,便可通过DMA,采用流模式来进行传输,具体的流模式接口,将会在后面介绍。连续地访问Sdram,需要借助FIFO来配合,通过检测FIFO的水位信号来判断是否要访问Sdram,由于供给Sdram的时钟100Mhz,读写速度超过其他外设以及总线的访问速度,所以通过FIFO的配合,可以同时地操作这四个口,如图5.8所示,为了简化说明,这里只画出了一个读端口、一个写端口。

 

5.7 改造后的Sdram控制器

5.8 SdramFIFO配合

 

5、图像的传输
按照上面的方法,就已经把图像采集并存储到Sdram帧缓冲区里面,如图5.7所示,Sdram_4port的其中两个端口用于存储和监控(既可以监控采集的图像又可以监控处理后的图像),而另两个端口则是用于图像的传输,从图5.6中可以看到,用于传输的这两个端口是采用从端口流模式的接口,如图5.9、图5.10所示。
 
5.9 从端口流模式读传输

 

5.10 从端口流模式写传输
 
通过DMA,把Sdram_4port帧缓冲区里的数据,按照上面的协议,从其中读端口搬运到用于做图像处理缓冲区SRAM里面,送去图像处理,处理完的数据也同样通过流模式由Sdram_4port的流模式写端口缓存起来。DMA可以实现从外设到存储器、从存储器到外设、存储器到存储器的数据搬运工作(如图5.11所示),这里把Sdram_4port看成一个带流模式接口外设,而图像处理缓冲区则是存储器。通过Nios II软件配置并控制DMA传输这就使得整个系统的数据流传输非常的灵活、高效,图像数据流传输路径如图5.12所示。
 
5.11  DMA工作方式
 
 
5.12 图像数据流的传输
6、图像处理模块
图像处理模块将图像处理缓冲区里的数据进行连续地分区提取,在这里主要是通过移位寄存器和六个数据锁存器把图像中3×3的数据在一个时钟周期提取出来并进行计算。当其遍历整幅图像时,一幅图像就处理完了,这里采用边传输边处理的办法,大大地节省了时间。我们利用QuartusII自带的IP移位寄存器来连续地提取3×3的数据,如图5.13便是其仿真波形,图5.14是图像处理的整个结构。
图5.13 提取三行数据
 

  

图5.14 图像处理结构
 
 本设计实现了图像的滤波、二值化、条纹提取、图像格式转换等的算法,图像采集结果以及相关处理结果如图5.15、图5.16、图5.17所示。

图5.15 图像采集结果

图5.16 协处理器进行边缘提取处理
 
图5.17 光刀条纹的提取
 
7、电机驱动控制接口
电机驱动控制寄存器的设置采用串口通信。这里直接使用了SoPC的免费IP,对电机的初速度、加速度、以及位移距离进行设置。每处理一幅图像电机移动一小格,单位时间内移动的格数越多,测量就越精确。
(Revision: 12 / 2008-09-14 22:26:53)

6. 设计特点 (Preliminary Paper)

 六、设计特点

  •  本设计涉及光学、电机控制、计算机视觉、图象处理等多学科知识,综合性强,该实现方案尚无文献报道。
  •   相对于轮廓提取软件方案,本设计方案便于实现结构光三维测量系统的实时化。从现有文献报道来看,采用软件实现方案的结构光三维测量系统产生一幅整体轮廓需要数十秒甚至数分钟时间(与轮廓提取算法复杂性及图像尺寸大小等因素有关),而本设计方案的处理速度至少可以提高1~2个数量级。
  •  基于Avalon总线的SoPC系统,资源丰富。本系统除使用了若干主设备(Nios IIDMAC等)外,也利用了现有的若干IP(如SDRAM控制器、USB控制器等)这将大大加速系统的开发进度。此外,系统还包括若干自定义外设,如I2C、图像采集接口、轮廓提取协处理器以及电机控制等,将其挂于Avalon总线上,可方便重复使用。
  • Nios II处理器支持自定义指令。将轮廓提取的算法用DSP Builder或者HDL来实现,并将其以自定义指令的方式加入Nios II指令系统,从而大大地提高了整个系统的速度。
  •  本系统的算法升级方便,这正是利用了SoPC可编程的特点,当需要更高要求的算法的时候,只需要修改协处理器的电路,再利用软件生成SoPC系统。

 

(Revision: 5 / 2008-06-15 18:30:11)

7. 总结 (Final Project Paper)

 

七、总结
经过此次大赛,我们学习到了很多东西,总结为以下几点:
1、使用SoPC系统,可以利用丰富的IP资源,大大地缩短了开发的周期。而作为开发者,则必须学会如何对IP进行改造,就好像本设计中提到的Sdram_4port接口,我们将其改造成适合流模式的avalon接口,再用DMA来传输数据,大大地提高了系统的性能。
2、除了使用IP以外,我们还需要自己利用工具来设计合适的IP,本设计中的大部分接口都有IP可以利用或者进行改造就可以使用。而一些特殊的像本设计中的图像采集、传输、处理模块,就需要自己来设计了,而正是这些特殊的模块,让设计本身别俱风格、各显神通。
3、模拟、仿真工具的掌握也很重要。Quartus II的SignalTap是一个好东西,它可以硬件实时地进行仿真,为我们这次大赛排除了很多困难。另外modelsim也是一个用得比较舒服的工具。
4、软硬件协同设计已经逐渐成为主流,SoPC的设计前景远大。
(Draft / 2008-09-14 20:43:09)