基于Zynq-7000平台的字符识别系统研究与实现
【摘要】:随着机器视觉相关技术不断发展,嵌入式机器视觉相关应用已经渗透到我们日常生活的方方面面,例如自动驾驶汽车、智能化游戏机以及工业流水线中的智能机械臂都是嵌入式机器视觉的具体应用。但是,受传统嵌入式处理器计算能力不足的限制,很多现实场景应用(实时高清图像处理、高帧率实时视频处理)难以达到实时处理的要求,且传统设计方法已经满足不了产品对于小型化、低功耗以及处理庞大图像数据集的要求。本文基于Xilinx Zynq-7000平台,通过软硬件协同设计的方法,将字符识别系统进行软硬件划分,其中图像预处理模块在Zynq平台的可编程逻辑部分实现,字符提取和字符识别模块则在Zynq平台的处理器系统实现,满足了系统对高清字符图像实时处理的要求。本文主要完成了以下几个方面的工作:首先介绍了字符识别系统的基本模块构成,以及整个字符识别系统的处理架构和处理流程,对每个处理模块涉及的算法,进行了详细分析、验证,提出了每个模块具体的实现方案。其次分析了Zynq SoC的硬件架构,详细描述ZC702开发板各个功能模块单元。针对Zynq平台,实现了嵌入式Linux操作系统U-boot的构建,完成了Linux内核编译以及ramdisk根文件系统移植。针对特定的图像处理开发,进行了开源机器视觉库OpenCV移植以及交叉编译工具链构建。然后基于Xilinx软硬件协同开发工具Vivado HLS,介绍了Vivado HLS视频处理架构以及视频开发流程。完成了预处理硬件加速模块的功能设计,在PC机上进行了相关测试。针对Vivado HLS视频开发流程,完成了预处理HLS代码设计,对HLS综合生成的IP进行相应系统集成,给出了预处理硬件加速模块的性能分析。最后介绍了整个软硬件系统的基本架构,详细描述了硬件系统具体开发流程,完成了字符识别系统软件部分关键代码的实现,对整个字符识别系统进行了测试。