论文部分内容阅读
近年来,机器视觉中的生物识别这一研究方向越来越受到人们的关注,其中的人脸识别更是当前的研究热点。二维人脸识别受人脸表情、环境背景和人脸姿态等诸多因素的影响,很难保证人脸识别的准确性,如何快速准确地重建出三维人脸模型就显得尤为重要。光度立体视觉技术是机器视觉领域一种经典的三维重建技术,具有非接触性和精度高等优点,但是也存在设备复杂、重建实时性差等缺点。为此,本文基于FPGA硬件平台,对光度立体视觉算法的基础理论进行深入研究,分析出算法中可用硬件加速的部分,并结合三维人脸重建系统的设计要求,利用软、硬件协同开发的优势,提出一套适合于FPGA平台的系统设计的总体方案。研究内容如下:
1. 搭建一套人脸图像采集系统,系统包括OV7670图像传感器和四个不同位置的点光源,用来获取四张在四种不同光源条件下的人脸灰度图像,用于后续算法计算。同时,建立光源和相机三维坐标系,实现光源方向的标定和二维图像坐标系到三维坐标系的映射。通过 Matlab 离线标定相机和光源位置等参数,并将光源信息生成查找表固化在ROM中,以此来简化灰度方程的求解。
2. 基于 FPGA 光度立体视觉算法的优化与改进。针对 FPGA 的硬件特性,优化了最耗时也最耗资源的梯度场积分模块。基于二维 FFT 对梯度场积分模块梯度值进行积分,主要通过乘法和累加计算实现,其算法复杂度低,计算量大,非常适合利用FPGA逻辑电路进行硬件加速。改进后的光度立体视觉算法均通过Matlab的仿真验证,验证结果表明算法功能可正常实现。
3. 光度立体视觉硬件平台设计与实现。平台以Xilinx Artix-7系列FPGA为核心计算平台,利用SRAM、RAM、ROM以及FIFO等存储控制器来实现原始图像的存储和中间数据的缓存,UART输出三维重建结果。为了提高实时性,采用了乒乓操作、数据缓存等硬件加速方法来优化设计,并充分利用FPGA并行结构,优化了资源利用率并提高了运算速度。采用Verilog HDL语言进行硬件编程,并在vivado平台上对算法中的各个模块进行功能仿真验证。最后系统测试表明,在系统工作时钟为100MHz的FPGA平台上,实现了分辨率为 128×128人脸重建系统,重建速度可达60fps的三维人脸重建系统。
该三维人脸重建系统,针对算法的复杂度进行优化,结合FPGA逻辑并行的特点提高了算法的运行速度,可以满足实时重建的要求,在智能家居人脸识别以及芯片原型设计分析等应用领域有很好的应用价值与前景。
1. 搭建一套人脸图像采集系统,系统包括OV7670图像传感器和四个不同位置的点光源,用来获取四张在四种不同光源条件下的人脸灰度图像,用于后续算法计算。同时,建立光源和相机三维坐标系,实现光源方向的标定和二维图像坐标系到三维坐标系的映射。通过 Matlab 离线标定相机和光源位置等参数,并将光源信息生成查找表固化在ROM中,以此来简化灰度方程的求解。
2. 基于 FPGA 光度立体视觉算法的优化与改进。针对 FPGA 的硬件特性,优化了最耗时也最耗资源的梯度场积分模块。基于二维 FFT 对梯度场积分模块梯度值进行积分,主要通过乘法和累加计算实现,其算法复杂度低,计算量大,非常适合利用FPGA逻辑电路进行硬件加速。改进后的光度立体视觉算法均通过Matlab的仿真验证,验证结果表明算法功能可正常实现。
3. 光度立体视觉硬件平台设计与实现。平台以Xilinx Artix-7系列FPGA为核心计算平台,利用SRAM、RAM、ROM以及FIFO等存储控制器来实现原始图像的存储和中间数据的缓存,UART输出三维重建结果。为了提高实时性,采用了乒乓操作、数据缓存等硬件加速方法来优化设计,并充分利用FPGA并行结构,优化了资源利用率并提高了运算速度。采用Verilog HDL语言进行硬件编程,并在vivado平台上对算法中的各个模块进行功能仿真验证。最后系统测试表明,在系统工作时钟为100MHz的FPGA平台上,实现了分辨率为 128×128人脸重建系统,重建速度可达60fps的三维人脸重建系统。
该三维人脸重建系统,针对算法的复杂度进行优化,结合FPGA逻辑并行的特点提高了算法的运行速度,可以满足实时重建的要求,在智能家居人脸识别以及芯片原型设计分析等应用领域有很好的应用价值与前景。