论文部分内容阅读
围棋运动中采用人工记谱耗费精力且容易出错,针对这一问题,本文设计了一套基于视频图像分析处理和ARM+Linux的嵌入式机器视觉系统,实现了围棋自动实时记谱。首先,本文提出了一种新的解决方案,通过分析与对比研究了各种围棋实时记谱的算法,得到一整套实现围棋实时记谱功能的算法。通过棋盘轮廓的矩特征找到棋盘,通过棋盘轮廓的霍夫直线检测与求解直线极坐标参数方程组找到棋盘角点,通过透视变换校正棋盘图像,以便求出每个落子点位置,再根据每个落子点位置确定检测落子的感兴趣区域。根据直方图阈值分割检测落子,黑色棋子使用RGB图像转换的灰度图像进行分割,白色棋子则根据白色与黄色中蓝色分量不同,在蓝色分量棋盘图像中准确分割出白色棋子,由此得到黑棋与白棋的落子位置,提高了落子检测的鲁棒性。针对棋子检测必然遇到的手干扰问题,即根据棋盘本身轮廓与对弈时手与棋盘形成的轮廓的不同通过分析轮廓的凸包判断是否有手干扰。其次,本文研究了上述围棋实时记谱算法在ARM-Linux嵌入式移动平台上的实现方案。在硬件上,根据实时记谱的需要,研究确定USB数字摄像头为视频采集设备,ARM Cortex A53微处理器为分析处理单元,并介绍了硬件电路的高速PCB设计方法。在软件上,针对嵌入式硬件处理能力不如通用PC的情况,使用OpenCV源代码库与C++编程提高了软件的开发和运行效率。又在应用中对相关算法的复杂度、效果和参数设置方面进行了分析与优化,使围棋实时记谱能够在嵌入式Linux硬件平台上实现。最后,本文分别通过OpenCV for Android以及源代码编译安装的方法实现了在智能手机+Android和嵌入式开发板+Linux平台上的围棋实时自动记谱,实验结果表明,在正常的围棋对弈条件下,系统能够实现正确的实时自动记谱。