论文部分内容阅读
近年来智能技术发展十分迅猛。产品功能越来越强大,出现功能捆绑及集成化的趋势。手写体识别作为一种最简单直接的人机交互手段,在智能设备中有重要作用。新兴的精简指令集ARM系列处理器,相比于传统的复杂指令集处理器,功耗更低计算能力更强大,近年来在嵌入式领域得到广泛的应用。本文围绕ARM9核心的硬件平台,研究在Linux上实现手写体数字的自动识别的方法。(1)通过分析手写体识别技术的发展状况,ARM核心系列芯片的应用情况,说明了在ARM平台上实现手写体数字识别功能的可行性。(2)以2410芯片为核心,阐述了系统的硬件组成及其特点,各个硬件模块的原理及功能。对ARM-Linux内核进行配置及编译,挂载了适用于NANDFLASH的YAFFS文件系统,对液晶及触摸屏进行了配置及调试,最后将Linux系统移植到ARM平台上。(3)结合当今图像识别技术的发展,阐述了模式识别问题中图像预处理的主要方法,分析了图像预处理过程中各个模块的数学原理,利用跨平台编程环境Qt编程实现了图像预处理功能。(4)通过分析经典BP网络的学习算法及其优缺点,针对传统BP算法的缺点进行了参数优化,减少了网络训练失败的几率及训练所使用的时间。利用Matlab强大的数据处理与快速编程能力,使用神经网络工具箱,编程实现BP网络,并使用处理好的图片数据对网络进行了训练。训练完成后,使用字符图片样本对神经网络进行了测试,并给出了测试结果,证明了训练结果的正确性。(5)利用Matlab的联合编程能力,配置好模块参数后,将训练好的神经网络模块导出生成C语言代码,并结合Qt及Linux的特点进行适应性修改。根据课题要求,在Qt环境中配置好触摸屏,使用程序抓取触摸屏动作生成图像文件,最后将神经网络模块嵌入到程序主体当中,下载到ARM平台上运行。本文的设计原理适合于更复杂的文字识别场合,具有借鉴意义。根据需求对网络进行优化,并加入更多分类器减少单个网络的规模,就能实现更为复杂的手写体识别功能。