毕业论文VisualStudio2005arm棋谱图像识别算法设计及软件实现

上传人:沈*** 文档编号:144874877 上传时间:2022-08-28 格式:DOC 页数:38 大小:2.09MB
返回 下载 相关 举报
毕业论文VisualStudio2005arm棋谱图像识别算法设计及软件实现_第1页
第1页 / 共38页
毕业论文VisualStudio2005arm棋谱图像识别算法设计及软件实现_第2页
第2页 / 共38页
毕业论文VisualStudio2005arm棋谱图像识别算法设计及软件实现_第3页
第3页 / 共38页
点击查看更多>>
资源描述
下载需知SelectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointselectionParagraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesTSelectionParbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbagraphFoLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointse11111111111111111111111111111111lectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPoctionParagraphFormatLineSpaci2222222222222222222222ngLinesToPoints2SelectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointselectionParagraphFccccccccccccccccccccccccccccccccccccccccccccccccccccccccormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLine本站上传的文档资源均来自互联网,以分享为目的,为有需要者提供学习与参考,版权为原作者所有,若侵犯到原作者的权益, 请提出指正, 及时与网站客服联系,并提供必要的证据,如属实,网站会在第一时间进行处理,立即删除相应下载链接页面并将文档删除。SelectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointselectionParagraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesTSelectionParbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbagraphFoLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointse11111111111111111111111111111111lectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPoctionParagraphFormatLineSpaci2222222222222222222222ngLinesToPoints2SelectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointselectionParagraphFccccccccccccccccccccccccccccccccccccccccccccccccccccccccormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLines 本站上传的文档,在文档排版上进行过整理,并未对内容进行增加或删除,因此,本站并不保证文档质量,因此下载之前,务必先预览一番,因为预览与下载的内容完全一样,所以如果发现内容有问题,请不要下载。electionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointselectionParagraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesTSelectionParbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbagraphFoLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointse11111111111111111111111111111111lectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPoctionParagraphFormatLineSpaci2222222222222222222222ngLinesToPoints2SelectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointselectionParagraphFccccccccccccccccccccccccccccccccccccccccccccccccccccccccormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLin下载后的word文档均可进行复制、编辑,没有密码保护,PDF格式均可转换成word,PPT文档可直接进行修改。因上传需要对文档进行转换,转换过程中有可能不能正常阅读或是下载后不能编辑,遇到这种问题,可以留言,留下邮箱地址,我们会把原始文档发送到你的邮箱。electionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointselectionParagraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesTSelectionParbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbagraphFoLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointse11111111111111111111111111111111lectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPoctionParagraphFormatLineSpaci2222222222222222222222ngLinesToPoints2SelectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointselectionParagraphFccccccccccccccccccccccccccccccccccccccccccccccccccccccccormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinelec一、 课题任务与目的此课题的任务是基于arm的全自动围棋计时记谱棋具设计的一个子课题。主要内容是对摄像头采集的棋谱图像进行识别。首先提进行图像的采集,接着对采集的图像进行畸形校正,最后进行识别工作,包括对棋盘的形状、大小、格子以及对棋子颜色、大小和位置的识别。此课题的目的是了解和掌握ARM9嵌入式系统(mini2440开发板)硬件结构。了解和掌握WINCE5.0嵌入式操作系统的使用。掌握WINCE5.0下的C+编程方法。掌握BMP图像的格式和嵌入式系统上摄像头传输的图片格式。设计识别棋谱图像的流程和所需的各种算法。利用C+语言实现适合嵌入式系统的所需算法。二、 调研资料情况目前的围棋比赛中,计时和记谱主要靠人工完成,存在工作量大,误差大,易出错等问题。针对这些问题市场上也出现了一些全自动围棋计时记谱的工具。大多数是利用摄像机的畸形校正和模板匹配技术。摄像机的畸形校正是确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,畸形校正的参数一般须通过较复杂的实验和计算才能得到,不适合于嵌入式系统等计算能力有限环境下的实时图像处理。模板匹配技术中计算相关性的算法更是需要大量的计算,也不能满足嵌入式系统环境下的实时处理要求。因此本设计的目的即为提供一种简洁准确高效的算法,能够对围棋比赛中摄像头采集的棋谱图像进行实时处理。下面介绍一下此设计中要用到的一些硬件、软件的发展及应用情况。1 ARM微处理器的特点(1) 体积小、低功耗、低成本、高性能; (2) 支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;(3) 大量使用寄存器,指令执行速度更快;(4) 大多数数据操作都在寄存器中完成;(5) 寻址方式灵活简单,执行效率高;(6) 指令长度固定;2 ARM应用领域:(1) 工业控制领域:作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展。 (2) 无线通讯领域:目前已有超过85%的无线通讯设备采用了ARM技术, ARM以其高性能和低成本,在该领域的地位日益巩固。(3) 网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。(4) 消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。(5) 成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。三、 初步设计方法与实施方案1. ARM9嵌入式系统(mini2440开发板)的硬件结构l CPU 处理器:Samsung S3C2440A,主频400MHz,最高533Mhzl SDRAM 内存:在板64M SDRAM,32bit 数据总线,SDRAM 时钟频率高达100MHzl LCD 显示:支持黑白、4 级灰度、16 级灰度、256 色、4096 色STN 液晶屏,尺寸从3.5 寸到12.1寸,屏幕分辨率可以达到1024x768 象素;l 接口和资源:1 个USB Host,1 个USB Slave B 型接口,1 个2.0 mm 间距20pin 摄像头接口l 操作系统支持:Linux2.6.13,WindowsCE.NET 5.02. WINCE5.0嵌入式系统的使用(1) WINCE5.0中的裁减 例:加入USB鼠标和键盘的支持 在Catalog 一栏依次点击展开Core OS Windows CE device Core OS Services USB Host Support USB Human Input Device(HID) ClassDriver,点右键选择“Add to OS Design”,并展开其子项添加“USB HID Keyboard and Mouse”,如图:图 1 WINCE5.0模块裁减示意图要想使嵌入式系统保持实时性,就必须减小系统中的负担,删除用不到的东西,添加必要的东西。就是因为这些良好的可裁减性,使得开发者能够做出有自己特点的东西。(2) WINCE5.0中的烧录(烧写WINCE内核)在BIOS 模式下,输入:load flash wince u 此时eboot 将会运行,并提示用户通过USB 下载,点击USB Port-Transmit 选择相应的内核文件开始下载。下载完毕,eboot 程序将会自动将Nand Flash 进行低级格式化,并进一步格式化为BinFS,格式化完毕,再自动把WindowsCE 内核文件烧写到Nand Flash,烧写完毕会自动启动WinCE系统。3. BMP图像格式与YUVBMP(Bitmap-File)图形文件是Windows采用的图形文件格式。BMP的文件结构:BMP文件由四部分组成. 位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、颜色表(color table)(在真彩色模式无颜色表)和定义位图的字节阵列.YUV是被欧洲电视系统所采用的一种颜色编码方法(属于PAL)。其中的Y,U,V几个字母不是英文单词的组合词,Y代表亮度,uv代表色差,u和v是构成彩色的两个分量。使用YUV色彩空间,它的亮度信号Y和色度信号U、V是分离的。如果只有 Y信号分量而没有U、V信号分量,那么这样表示的图像就是黑白灰度图像。而此设计只需对二值图像作处理,所以仅取Y分量即可。4. 识别棋谱图像的算法(1) 滤波 a. 中值滤波中值滤波法是一种非线性平滑技术,它将每一象素点的灰度值设置为该点某邻域窗口内的所有象素点灰度值的中值。实现方法:l 通过从图像中的某个采样窗口取出奇数个数据进行排序l 用排序后的中值取代要处理的数据即可 中值滤波法对消除椒盐噪音非常有效,常用于用来保护边缘信息,是经典的平滑噪声的方法。 b. 均值滤波均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标象素为中心的周围8个象素,构成一个滤波模板,即去掉目标象素本身)。再用模板中的全体像素的平均值来代替原来像素值。 均值滤波也称为线性滤波,其采用的主要方法为领域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度g(x,y),即g(x,y)=1/m f(x,y) m为该模板中包含当前像素在内的像素总个数。(2) 图像畸变校正一般来说,镜头畸变实际上是光学透镜固有的透视失真的总称,也就是因为透视原因造成的失真。a.枕形畸变(Pincushion Distortion),又称枕形失真,它是由镜头引起的画面向中间“收缩”的现象。b.桶形畸变(Barrel Distortion),又称桶形失真,是由镜头中透镜物理性能以及镜片组结构引起的成像画面呈桶形膨胀状的失真现象。 c.线性畸变(linear distortion),又叫线性失真。当试图近距离拍摄高大的直线结构,比如建筑物或树木的时候,就会导致另外一种失真。在不知道两个坐标关系的情况,对于大面积的图像来讲不一定是线性畸变,但是取一小块却可以近似认为是线性畸变。那么就可以将畸变系统和校正系统坐标用下列线性方程来联系:; ;将畸变图像按具体的情况和经验分成若干小区,每个小区找三个点,利用已知图像和经验数据找到对应的点,根据这种关系确定两个坐标系之间的坐标关系,既上述式中的各个系数,然后在按已知坐标关系的情况校正图像。(3) 图像二值化 二值图像是一种简单的图像格式,它只有两个灰度级,即0表示黑色的像素点,255表示白色的像素点。二值图像处理在图像处理领域占据很重要的位置,在具体的图像处理应用系统中,往往需要对于获得的二值图像再进一步进行处理,以有利于后期的识别工作。常用的二值图像处理操作有许多方法,如腐蚀、膨胀、细化、开运算和闭运算等等。(4) 形态学滤波 形态学在图像处理中的应用主要是:a.利用形态学的基本运算,对图像进行观察和处理,从而达到改善图像质量的目的;b.描述和定义图像的各种几何参数和特征,如面积,周长,连通度,颗粒度,骨架 和方向性。二值图像基本的形态学运算是腐蚀和膨胀,简单的腐蚀是消除物体的所有边界点的一种过程,其结果是使剩下的物体沿其周边比原物体小一个像素的面积。如果物体是圆的,它的直径在每次腐蚀后将减少两个像素。简单的膨胀运算是将与某物体接触的所有背景点合并到该物体中的过程。过程的结果是使物体的面积增大了相应数量的点,如果物体是圆的,它的直径在每次膨胀后将增大两个像素。(5) 模板匹配法模板匹配是数字图像处理的重要组成部分之一。把不同传感器或同一传感器在不同时间、不同成像条件下对同一景物获取的两幅或多幅图像在空间上对准,或根据已知模式到另一幅图中寻找相应模式的处理方法就叫做模板匹配。 简单而言,模板就是一幅已知的小图像。模板匹配就是在一幅大图像中搜寻目标,已知该图中有要找的目标,且该目标同模板有相同的尺寸、方向和图像,通过一定的算法可以在图中找到目标,确定其坐标位置。 以8 位图像(其1 个像素由1 个字节描述)为例,模板T( m n 个像素)叠放在被搜索图S( W H 个像素)上平移,模板覆盖被搜索图的那块区域叫子图Sij。i,j为子图左上角在被搜索图S 上的坐标。搜索范围是: 1 i W M 1 j H N通过比较T 和Sij 的相似性,完成模板匹配过程。(6) 图像差值差值就是相减所得到的值。在做图软件中,差值就是混合色与底色相减,结果取决于亮度,用亮底值大的减去亮底值小的。5. 棋谱图像畸形校正和识别流程棋谱图像识别之前需要先进行棋谱图像的畸形校正,获取361个可落子点在棋谱图像上的坐标值。这一步只需一次即可。如图1所示,流程如下:1.摄像头采集一帧棋盘图像;2.对棋盘图像进行平滑滤波;平滑滤波采用效率较高的二维伪中值滤波算法,对脉冲噪声有很好的抑制效果。3.模板匹配法检测图像识别标识;模板匹配采用最小平均绝对差值函数(MAD)或最大匹配像素统计(MPC)计算相关性。为了减少计算量,事先确定图像识别标识可能出现的范围,在这个范围内最小的MAD(或最大MPC)即为图像识别标识在棋谱图像中的位置。4.计算图像识别标识坐标的斜率K;5.检测围棋棋盘图像上的可落子点,建立361个围棋点的坐标。坐标对应关系如图2所示,(xi,yi)即为第i个棋子在棋盘图像上的坐标值。也可以采用人工检测围棋棋盘图像的方式定位361个围棋点的坐标。目的就是以空间换时间,减少计算量。结合图3棋谱图像识别流程图,流程描述如下:(1) 摄像头采集一帧棋盘图像作为前景图像;(2) 对前景图像进行平滑滤波(同本发明第一步);(3) 模板匹配法检测图像识别标识(同本发明第一步);(4) 计算图像识别标识坐标的斜率k,若与斜率K误差较大,则对前景图像进行倾斜校正;(5) 前景图像和背景图像差分,得到差值图像;(6) 差值图像二值化,形态学滤波,以及计算前景所在的矩形;(7) 经过形态学膨胀和腐蚀运算之后,一些小的空洞和毛刺能够被去除。(8) 模板圆匹配法检测棋子;首先依次确定矩形内围棋点的坐标,再利用模板圆匹配法在前景图像上检测棋子,为了检测出黑子、白子或无子,需计算2个模板的MAD(或MPC),然后分别和2个模板的阈值进行比较即可判断出黑子、白子还是无子。(9) 最后更新背景图像。图2为图像处理流程图:图1图像畸形校正流程图列标行号BUV1(x1,y1)(x2,y2)(x18,y18)(x19,y19)2(x20,y20)(x1,y1)(x37,y37)(x38,y38)18(x324,y324)(x325,y325)(x341,y341)(x342,y342)19(x343,y343)(x344,y344)(x360,y360)(x361,y361) 图2棋谱图像上361个可落子点的坐标表格示意图 图3图像识别流程图四、 预期结果1 能快速清晰正确的显示棋谱:通过模板圆匹配法先进行图像的识别,然后进行滤波等操作,滤除其它噪声信号的干扰,。2 应用嵌入式系统应能做到对图像进行实时处理。3 程序完整,具有可读性。4 完成论文,论文内容清晰,语言易懂。 五、 进度计划2010.1.03-1.15:师生交流,熟悉课题,布置学习任务,翻译内容;2010.1.16-3.09:理论学习、文献查询、翻译、准备开题报告;2010.3.10-3.30:谱图像畸变校正和识别算法 C+ 程序设计方案;2010.4.01-5.10:编写程序,调试;2010.5.11-5.22:写论文,修改,准备答辩。 摘要围棋作为一项益智娱乐的活动已经受到越来越多的人的喜爱。众所周知,学围棋需要记许多棋谱,所以围棋高手比赛时的棋谱保存对围棋的传承至关重要。本毕业设计为全自动围棋计时记谱工具设计的子课题,主要进行围棋棋子的识别工作。硬件环境为基于ARM9的mini2440开发板,嵌入式操作系统为wince5.0,软件开发环境为VS2005,开发语言为C+。主要的算法思路是采集棋手落子前后的两幅图像,转换为灰度图,进行必要的滤波处理后,再进行差值运算,找到变化的区域,最后针对变化区域在落子后的图像中采用模板匹配算法,判断落子的颜色或其他动作。实验证明此方法行之有效,基本可以完成棋子的识别工作,但还有需要完善的地方,有待改进。关键字:数字图像处理;围棋记谱;ARM9AbstractThe game of Go as a puzzle entertainment activities have been more and more peoples favorite. As we all know, learning chess need to remember many of the moves, so players on game of the moves to save heritage essential to Go. Go for the automatic design of the graduation time notation tool designed to sub-topics, primarily for the identification of chess pieces. ARM9-based hardware environment mini2440 Development Board, the embedded operating system wince5.0, software development environment is VS2005, develop language for the VC + +. The algorithm main idea is to capture two images before and after the players expanded store-opening, converted to grayscale, after the necessary filtering, further margin calculation, to find changes in the region, the last region in the expanded store-opening for changes in the use of the image after template matching algorithm to determine the color of expanded store-opening or other movements. This method proved effective, the basic pieces of identification to complete the work, but there need to be perfected, could be improved.Keywords: Digital Image Processing;Chess Notation;ARM9目录摘要IAbstractII引言- 1 -1概述- 2 -1.1围棋计时记谱工具发展现状- 2 -1.2棋谱图像识别算法设计及软件实现的意义- 3 -2开发环境的安装、配置和使用- 4 -2.1mini2440开发板介绍- 4 -2.2WINCE5.0嵌入式系统介绍- 5 -2.2.1定制与裁剪- 5 -2.2.2操作系统镜像文件的烧录- 6 -2.3Visual Studio 2005嵌入式开发环境- 7 -2.3.1Visual Studio 2005安装注意事项- 8 -3算法设计方案- 10 -3.1算法设计总体思路- 10 -3.2程序模块设计- 11 -4算法的实现- 13 -4.1彩色图转灰度图的实现- 14 -4.1.1 BMP图像格式与YUV和接口设计- 14 -4.1.2图像的显示和彩色图转换为灰度图- 14 -4.2灰度图像二值化和灰度图像差值算法的实现- 16 -4.2.1灰度图像二值化- 16 -4.2.2灰度图像差值- 17 -4.3模板匹配法算法的实现- 18 -结 论- 22 -参考文献- 25 -致 谢- 26 -引言目前的围棋比赛中,计时和记谱主要靠人工完成,存在工作量大,误差大,易出错等问题。针对这些问题市场上也出现了一些全自动围棋计时记谱的工具。大多数是利用摄像机的畸形校正1和模板匹配技术1。摄像机的畸形校正是确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,畸形校正的参数一般须通过较复杂的实验和计算才能得到,不适合于嵌入式系统等计算能力有限环境下的实时图像处理。模板匹配技术中计算相关性的算法更是需要大量的计算,也不能满足嵌入式系统环境下的实时处理要求。因此本设计的目的即为提供一种简洁准确高效的算法,能够对围棋比赛中摄像头采集的棋谱图像进行实时处理。通过这一课题我不仅将所学C+的相关知识系统的运用到具体项目中,还了解了许多关于arm、wince以及图像识别和处理方面的相关算法。把以前所学的图像处理的知识真的用C+语言在wince系统上实现不是一件容易的事情,当我完成此设计时,深刻的意识到理论知识似乎好懂,但是真正用到实际中这之间似乎是个鸿沟,只有踏踏实实地调试与研究,有不怕失败的勇气才能跨越这个鸿沟,真正的理解知识,运用知识。1 概述1.1围棋计时记谱工具发展现状目前围棋比赛进行记谱的方法不是很多,基本上分为传统纸笔记录法(如图1-1所示)和计算机自动计时记谱法。前者相对来说发展的较为成熟,因为围棋经过这么长时间的发展已经形成了人们约定俗成的记谱规则,再加上人们为了记得简单,方便,易于阅读且具有很好的国际性,所以也出现了不少新的方法。最新的一个方法是以棋盘四个边分别记为东西南北四个方向,每个子落下的位置按照“方向+路数”进行记录。图 11 日本棋院的记谱纸虽然这个方法解决了不少传统的只记录落子顺序的方法的弊端,但是仍然没有摆脱纸和笔,不易保存而且人工记录会造成许多主观误差。因此,越来越多的人想能不能用计算机自动计时记谱。想法虽然很好,但是似乎实现的人不多,我只找到了一个这样的专利,该专利的基本思想是利用计算机经过复杂的安装步骤和识别步骤完成棋谱的识别。为了更加方便围棋的使用,越来越多的围棋游戏软件应运而生,它们不再需要普通的棋盘和棋子,只需要在相应位置的屏幕上点击即可。这种方法看上去很方便,但是只能作为围棋爱好者的日常娱乐工具。然而大型比赛中涉及到各个方面的问题,因此纯电子化的围棋软件是不能作为大型比赛的比赛软件。还有一种围棋记谱的方法是计算机辅助记谱但是需要人工录入,虽然从形式上摆脱了纸和笔,但是记谱员的工作量较大,既浪费时间又耗费精力,而且错误率也高,完全没有从根本上解决记谱难的问题。棋谱的匮乏阻碍了围棋更进一步的研究发展、普及和传承。因此一种省时、省力、准确的自动记谱装置显得尤为必要。本毕业设计旨在解决上述弊端,提供一种全自动围棋记谱棋具,快速准确的自动记谱,减轻人工操作的负担,提高工作质量,并为比赛和研究提供各种实时数据。 也为围棋棋谱的保存与流传提出了一个行之有效的方法。相信随着数字化逐步深入人心,这样全自动的围棋计时记谱工具会越来越多,也会越来越简便,成为围棋的传承与发展的助推剂。1.2棋谱图像识别算法设计及软件实现的意义传统的围棋记谱方法是单纯的依靠纸、笔进行人工记录。虽然这种方法已经经过很长时间的应用,而且许多人都发明出不同的便于记录的新方法,但是毕竟是人工完成的记录,势必存在笔误、漏记等不可避免的误差。这样必然会对初学者学习棋谱造成干扰,非常不利于围棋的传承。另外,纸张的保存也很不方便。若遇到火灾或水灾等自然灾害必然会损坏这些记录。还有就是用纸记录的东西不利于查询与共享,这就会导致围棋的新方法,新思路不会向更远处传播也不利于棋友的讨论。正是基于考虑到以上种种阻碍围棋的传承和发展的因素,设计一个基于arm的全自动围棋计时记谱棋具的想法由此诞生。如果计算机可以自动进行记谱会解决许多问题。首先,它不会存在人工记录产生的误差,更加的客观、准确。同时也可以减轻工作人员的记录负担,使他们有更多的精力去做其他更重要的事情。其次,把它保存在计算机中既不占地,也便于查询。这样就可以长时间的保存棋谱,不易丢失重要数据,也使后人可以方便的查询和研究围棋的发展与技术的更新等。最后,可以把这些围棋的资源保存到网络上,让更多的围棋爱好者可以共享这些资源,形成全球化的资源,让全世界的人都可以了解围棋,喜欢围棋游戏,这对围棋的传承和发展都会起到积极地推进作用。本设计方法的特点是安装与操作简单,只需把摄像头对准棋盘固定在一个杆上,这样采集到的图像不论是从形状的畸变还是亮度的显示都只有一种情况,因此为后面的校正与处理提供了方便。另外,此设计采用的图像处理和识别算法简单有效,用时较短,可以摆脱计算机的使用,应用到嵌入式系统中。这样可以在每个参赛选手面前放一个小的屏幕,方便参赛人员和工作人员的工作。是一种实用,便携的记谱棋具。然而,要想达到以上的效果最难的就是第一点,如何准确的记录棋谱。因此,棋谱的识别工作是尤为重要的,也是实现我们美好愿望的关键。2 开发环境的安装、配置和使用本毕业设计硬件采用广州友善之臂mini2440开发板2,嵌入式操作系统采用微软wince5.0,开发工具采用微软Visual Studio2005,运用C+语言编写实现棋子识别的算法。主要涉及开发板的使用、wince5.0系统的定制方法,包括烧录和裁剪2,以及vs2005的安装和C+语言的运用。2.1 mini2440开发板介绍本设计主要用到开发板的以下几个部分:CPU 处理器、SDRAM 内存、LCD 显示、接口资源以及所支持的操作系统。硬件结构图参见图2-1:图 21硬件结构图(1) CPU 处理器mini2440 是一款低价实用的 ARM9 开发板,它采用 Samsung S3C2440为微处理器, 并采用专业稳定的CPU内核电源芯片和复位芯片来保证系统运行时的稳定性。另外,它的CPU主频高达400MHz,能很好的满足对处理速度的要求。(2) 内存mini2440开发板中ROM为64M,RAM为64M,有32位总线。内存相对来说很大,足够满足此毕业设计的需要。 (3) LCD显示屏 mini2440开发板支持黑白、4 级灰度、16 级灰度、256 色、4096 色STN(Super Twisted Nematic)液晶屏,尺寸从3.5 寸到12.1寸,屏幕分辨率可以达到1024x768 象素。此毕业设计选用的是7寸屏,这个尺寸在嵌入式系统中属于相对偏大的屏,其目的是考虑到棋盘和棋子的清晰显示。(4) 接口资源mini2440开发板有1 个USB Host,1 个USB Slave B 型接口,1 个 2.0 mm 间距20pin CMOS摄像头接口。此毕业设计需要接摄像头,所以既可以选择USB接口的摄像头,也可以选用此CMOS摄像头。经过试验和比较,确定用OV9650 CMOS摄像头。它的最大分辨率为1280x1024,而此毕业设计只需480x480800x800的分辨率就足矣,因此这个摄像头可以满足此毕业设计的需要。(5) 支持的操作系统mini2440开发板支持 Linux 2.6.x,Windows CE.NET 5.0等嵌入式操作系统,而此毕业设计正是在wince5.0这个操作系统下完成的。综上所述,这块开发板的软硬件能很好的满足此毕业设计的需求。2.2 WINCE5.0嵌入式系统介绍 Wince5.0是一种定制式的操作系统3,即一个项目可以根据自身要实现的功能添加需要的模块,移除不需要的模块。利用wince5.0的这个特点可以节省许多FLASH存储器空间,并使系统运行速度更快。2.2.1 定制与裁剪此毕业设计需要定制的模块为ActiveSync、USB host、液晶驱动、CMOS摄像头驱动和中文字体模块等多种模块,模块之多,不能一一列举。其中ActiveSync的作用是pc机与开发板进行联机调试。USB host是接USB摄像头进行试验和支持USB鼠标。液晶和CMOS摄像头驱动可以采集图像并显示。中文字体选择的是simsun,即宋体。以下是一个定制的具体方法的例子加入USB鼠标和键盘的支持:在Catalog 一栏依次点击展开Core OS Windows CE device Core OS Services USB Host Support USB Human Input Device(HID) ClassDriver,点右键选择“Add to OS Design”,并展开其子项添加“USB HID Keyboard and Mouse”,如图2-2所示:图 22 WINCE5.0模块定制示意图2.2.2 操作系统镜像文件的烧录操作系统定制好以后,经过编译,nk.bin这个操作系统镜像文件就生成好了。下一步就可以把nk.bin烧写到开发板上板上。开发板上有两种FLASH ROM,一个是nor flash,大小为2M,一个是nand flash,大小为64M。nor flash里面一般是出厂就烧写好的bootloader,用来引导开发板和烧写程序到nand flash。因此在烧录前要先把开关拨到nor flash启动,通过nor flash上的bootloader启动开发板,把bootloader和操作系统镜像烧写到nand flash上,再把开关拨回到nand flash启动,以后就可以直接从nand flash上启动操作系统了。Bootloader使用串口和PC机通信。串口线接好后,在PC机上使用专门的下载工具(DNW)通过USB下载,把Bootloader镜像文件和操作系统镜像文件nk.bin下载到开发板就完成了烧录。如图2-3所示:图 23 通过bootloader烧写WINCE操作系统镜像示意图2.3 Visual Studio 2005嵌入式开发环境VS2005是微软出品的先进的软件开发工具,是目前最流行的 Windows 平台应用程序开发环境4,在嵌入式编程上功能强大。Visual Studio 2005 包含了一系列高效的、智能的开发工具,不论是为开发初学者,还是为经验丰富的企业开发团队都提供了很多全新的、强大的功能:(1) 全方位的工具平台 不论编程初学者还是富有经验的企业开发团队,为您提供高效的开发工具。(2) 减少开发的复杂度 确保您能更加轻松发布基于 Framework 的解决方案,包括 Windows、Web、移动和基 于 Office 的应用。(3) 第三方的生态系统 允许利用来自 Visual Studio 行业合作伙伴的参与研发的产品,并体验用来补充 Visual Studio 2005 第三方解决方案的全面部署。(4) 改善团队的沟通 提供高效智能的生命周期工具,通过使用 Visual Studio 2005 Team System,来增强 IT 周期参与者之间的交流与协作。2.3.1 Visual Studio 2005安装注意事项安装VS2005时经历了这样的过程:安装安装失败解决问题再安装,往复了3次。在安装完成后,运行程序时总是弹出许多类似于如图2-4的错误窗口,VS2005根本无法使用。图 24安装后运行错误窗口经过查找相关资料终于解决了此问题。具体方法如下:1. 运行ttool.exe.这个程序打开后会出现license界面,点击Yes即可。2. 在第二步中只选中Uninstall Visual Studio components,点击Scan进行扫描,扫描完成后进入第三步。3. 打开添加和删除程序.删除VS2005以及周边程序.卸载顺序也有讲究 .先卸载Visual Studio 2005的主程序.再卸载有关SQL 2005的程序,下来卸载.Net Framework一类的程序,最后卸载其他程序.不要按照其他顺序卸载,打乱顺序对系统不好。4. 再次打开ttool.exe,在刚才的第二步中只选中Find and fix problems,点击Scan,扫描是否还有其他错误,如果没有进入下一步。5. 重启,重新安装VS2005就安装成功了。当然,就算安装中没有出现以上问题,也要注意以下事项:(1) 磁盘空间一定要足。因为VS2005需要占用很大的空间,若开始没有选好位置在安的过程中就会提示空间不足,导致重新安装,前功尽弃。(2) 程序文件夹及临时文件的写权限.这个问题也容易发现,解决办法是:取消勾选后,点击应用,而不是确定,这样,属性面板不会关闭.设置完后千万不要关闭文件夹的属性面板。(3) 一定具有管理员权限。这个管理员权限是在安装系统时就创建的账户。(4) 一定要关闭所有能关闭的程序,安装完后要重启。用VS2005开发嵌入式wince应用程序需要安装以下软件和工具:l 安装ActiveSync5同步工具,最新的版本是ActiveSync 4.5,通过USB连接线支持VS2005在线调试程序。l 安装和硬件开发平台匹配的SDK6。SDK可以在裁剪完Wince5.0的操作系统镜像后,导出和平台匹配的SDK,在PC上安装以后,就可以在VS2005中选择了。以上安装好后即可成功搭建基于WINCE5.0的软硬件开发调试环境。3 算法设计方案3.1 算法设计总体思路比赛的场景设计如下:围棋比赛时,裁判宣布比赛开始时按一下开始按钮,此时系统采集一幅空的棋盘图像作为第一幅图像(背景图像)。选手落下棋子后按一下落子按钮,系统采集第二幅图像(前景图像)。得到两幅图像后进行相应的运算处理,计算出落子的种类和位置,运算完毕后删除第一幅图像并把第二幅图像作为背景图像,最后显示结果给选手或裁判等相关人员。总体思路如流程图3-1所示,流程描述如下:采集和显示图像转换为灰度图像背景图像和前景图像进行差值运算 模板匹配输出结果差值图像二值化图3-1 算法流程图(1) 图像的采集。本毕业设计是围棋计时记谱棋具设计的子课题,主要负责棋子的识别工作。图像数据本应由负责图像采集工作者提供,但在设计中为了方便实验,采取用USB摄像头拍摄需要的图像,必要的地方用Photoshop等工具处理一下以得到相同的环境背景。(2) 将得到的彩色BMP图像转换为灰度图像。采用的方法是把RGB三个分量的值相加后求平均值,然后再赋回给RGB这三个分量。(3) 前景图像和背景图像做差值运算,得到差值图像。进行差值的图像是灰度图,差值后的目的是找到变化的区域,为了方便算法处理,需要对图像做进一步的处理,即图像二值化。(4) 差值图像二值化。二值化的实现主要是通过设定阈值并判断差值图像中灰度值与阈值的大小关系,人为的把图像设置为只有黑白两种颜色的图像,这样差值后变化的区域就会看得很明显,处理二值图像的算法也可以相应简单一些。(5) 模板匹配法检测棋子。如果整幅图像做模板匹配算法,必然浪费大量的CPU时间,而嵌入式系统没有像PC机那样强大的CPU计算能力,因此必须找出一种简化的办法。围棋棋盘的规格为1919,即有361个可落子点。这样每个点就有一个坐标,而摄像头的位置是固定不变的,因此这361个可落子点的坐标也可以看作是固定不变的,只要按照361个点坐标来进行模板匹配算法就可以达到检测棋子的目的了。按照这个分析,我们可以实现确定这361个点的坐标,当做完差值并得到二值化的图像后就可以按照这361个点坐标来做模板匹配运算,找到有变化的区域的坐标。接着就直接在前景图像上在这个坐标处(可能是多个)进行模板匹配即可。考虑到棋子位置有可能不正,因此要通过实验设定一个合理的阈值。(6) 最后要把匹配结果显示出来。包括在什么位置上下了黑子或白子,或者在什么位置上棋子被拿走了。3.2 程序模块设计使用VS2005创建工程,整个程序设计为三个功能模块,如图3-2所示:图像的采集和灰度数据的获取;图像和处理结果的显示;图像处理算法。核心是图像处理算法部分。模块说明如下:图 32 程序模块图l 棋谱图像采集和灰度数据获取模块主要实现的功能是通过USB摄像头得到所需的待处理图像,并进行简单的灰度处理,得到灰度图像,为进一步的处理做好准备。l 图像和处理结果显示模块使界面更具人性化,可以通过特定的测试按钮进行测试,图像的处理结果通过图像控件显示出来也更直观,更清晰,使设计过程中的调试更加方便。l 核心算法模块主要是通过图像的差值运算、二值化运算和模板匹配法运算进行棋子图像的识别。4 算法的实现使用VS2005创建一个解决方法,程序文件按照第3章所述的三个功能模块来组织如图4-1所示。其中棋谱图像采集和灰度数据获取模块的主要程序文件有camera.h,camera.cpp, camif.h,CameraAccess.h, cameraAccess.cpp;图像和处理结果显示模块包括:ImageViewDialog.h, ImageViewDialog.cpp, OV9650CameraTestDlg.h, OV9650CameraTestDlg.cpp。核心算法模块包括ImagePorcessAlgorithm.h, ImagePorcessAlgorithm.cpp。下面分析一下主要算法的实现。图 41 VS2005工程文件示意图4.1彩色图转灰度图的实现4.1.1 BMP图像格式与YUV和接口设计BMP(Bitmap-File)图形文件是Windows采用的图形文件格式。BMP的文件结构9:BMP文件由四部分组成. 位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、颜色表(color table)(在真彩色模式无颜色表)和定义位图的字节阵列。YUV8是被欧洲电视系统所采用的一种颜色编码方法。其中的Y,U,V几个字母不是英文单词的组合词,Y代表亮度,u v代表色差,u和v是构成彩色的两个分量。使用YUV色彩空间,它的亮度信号Y和色度信号U、V是分离的。如果只有 Y信号分量而没有U、V信号分量,那么这样表示的图像就是灰度图像。而此设计只需对灰度图像作处理,所以仅取Y分量即可。为了得到实验用的灰度图像数据,编写了一个接口程序,读取BMP文件,提取图像像素颜色信息,转换为算法需要的灰度数组。4.1.2图像的显示和彩色图转换为灰度图下面根据程序讨论一下图像的显示10和将图像转换为灰度数组11。(1)图像的显示hResult = image1.GetExporterFilterString(strFilter,aguidFileTypes); /得到导出文件。if (FAILED(hResult) return; m_nFilterLoad = dlg.m_ofn.nFilterIndex; mage1.Destroy(); hResult = image1.Load(dlg.GetFileName();/成功了,把文件加载CRect rctWindowSize; cimage1.GetClientRect(rctWindowSize);image1.StretchBlt(cimage1.GetDC()-m_hDC,0,0,rctWindowSize.Width(),rctWindowSize.Height(),SRCCOPY); /根据窗口尺寸,显示图片以上程序首先通过GetExporterFilterString来导出文件,若导出失败则弹出对话框显示出错信息,若成功则用Load(dlg.GetFileName()来加载这个文件,image1.StretchBlt的作用是根据窗口尺寸来扩
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!