(34560, 7)
[[[ 534 756 119]
[ 468 412 128]
[ 208 640 128]
[1140 620 128]
[ 800 524 119]
[ 270 998 132]
[ 716 184 122]
[ 622 1106 123]
[1046 284 125]
[ 888 866 134]]]
['象', '象', '象', '象', '象', '象', '象', '象', '象', '象']
['卒', '卒', '卒', '卒', '卒', '卒', '卒', '卒', '卒', '卒']
['车', '车', '车', '车', '车', '车', '车', '士', '车', '车']
['马', '马', '马', '马', '炮', '马', '马', '马', '马', '马']
['相', '相', '相', '相', '相', '相', '相', '相', '相', '相']
['士', '士', '士', '士', '士', '士', '士', '士', '士', '士']
['将', '将', '将', '将', '将', '将', '将', '将', '将', '将']
['帅', '帅', '帅', '帅', '帅', '帅', '帅', '帅', '帅', '帅']
['兵', '兵', '兵', '兵', '兵', '兵', '兵', '兵', '兵', '兵']
['炮', '炮', '炮', '炮', '炮', '炮', '炮', '炮', '炮', '炮']
文本识别早已经不是问题了,不过却不能直接应用于象棋棋子的识别,因为棋盘上的棋子是随机摆放上去的,不能保证棋子上的文字总是保持一个固定的角度。识别棋子的关键是找到具有“旋转不变性”的特征——无论棋子旋转多少度,其特征总是稳定的。
数据集介绍
本篇博客采用的数据集是中国象棋棋子数据集,包含十种棋子分别是帅、仕、象、马、炮、车、兵、卒、将、相。
每个分好类的文件夹里有719张128x128像素的图片,形状一样,但是旋转角度不同数据来源,和鲸社区开放数据集,可以点击下面链接获取中国象棋棋子数据集
数据集截图如下:
数据预处理
卷积神经网络
什么是卷积神经网络
本篇博客用到的
Speeded Up Robust Features(SURF,加速稳健特征),是一种稳健的局部特征点检测和描述算法。Surf是对David Lowe在1999年提出的Sift算法的改进,提升了算法的执行效率,为算法在实时计算机视觉系统中应用提供了可能。Sift算法一样,Surf算法的基本路程可以分为三大部分:局部特征点的提取、特征点的描述、特征点的匹配。详细介绍可参考以下网页:
Surf算法特征点检测与匹配
本项目的要求如下:
通过摄像头捕捉获取到的每帧图像进行处理。将多个象棋棋子摆在桌 子...
本人机对弈程序采用了多种搜索算法.以下是本程序主要的类说明:
1.CEveluation类:估值类,对给定的棋盘进行估值.
2.CMoveGenerator类:走法产生器,对给定的棋盘局面搜索出所有可能的走法.
3.CSearchEngine类:搜索引擎基类.
4.CNegaMaxEngine类:负极大值法搜索引擎.
5.CAlphaBetaEngine类:采用了Alpha-Beta剪枝技术的搜索引擎.
6.CFAlphaBetaEngine类:fail-softalpha-beta搜索引擎.
7.CHistoryHeuristic类:历史启发类.
8.CAlphabeta_HHEngine类:带历史启发的Alpha-Beta搜索引擎.
9.CAspirationSearch类:渴望搜索引擎.
10.CIDAlphabetaEngine类:迭代深化搜索引擎.
11.CMTD_fEngine类:MTD(f)搜索引擎.
12.CTranspositionTable类:置换表.
13.CAlphaBeta_TTEngine类:加置换表的Alpha-Beta搜索引擎.
14.CPVS_Engine类:极小窗口搜索引擎.
15.CNegaScout_TT_HH类:使用了置换表和历史启发的NegaScout搜索引擎.
本程序还具有悔棋,还原功能,还可以记录走法.
注:本程序编写时参考了王小春的<>,他的书真是好.
基于opencv实现象棋识别及棋谱定位python源码+数据集(含代码注释)人工智能课程设计.zip
基于opencv实现象棋识别及棋谱定位python源码+数据集(含代码注释)人工智能课程设计.zip基于opencv实现象棋识别及棋谱定位python源码+数据集(含代码注释)人工智能课程设计.zip
【备注】主要针对正在做毕设的同学和需要项目实战的深度学习cv图像识别模式识别方向学习者。
也可作为课程设计、期末大作业。包含:项目源码,该项目可直接作为毕设使用。
也可以用来学习、参考、借鉴。如果基础不错,在此代码上做修改。
本文来自于网络,文章详细介绍了使用Python实现机器学习算法的损失函数、反向传播过程等相关知识。在这一章节里,我们将实现一个简单的神经网络架构,将2维的输入向量映射成二进制输出值。我们的神经网络有2个输入神经元,含6个隐藏神经元隐藏层及1个输出神经元。我们将通过层之间的权重矩阵来表示神经网络结构。在下面的例子中,输入层和隐藏层之间的权重矩阵将被表示为W,隐藏层和输出层之间的权重矩阵为W。除了连接神经元的权重向量外,每个隐藏和输出的神经元都会有一个大小为1的偏置量。我们的训练集由m=750个样本组成。因此,我们的矩阵维度如下:训练集维度:X=(750,2)目标维度:Y=(750,1)W维度:(
前言:自AlphaGo战胜世界著名九段围棋手李世石之后,我就对棋类人工智能产生了极大的兴趣,并想要自己实现象棋的人工智能。然而那个时候我还在读高二,没有这么深厚的代码基础,所以那个时候也就只能想想了。但是现在不一样了,通过学习编程,已经可以让我在棋类人工智能这个领域向前探索了。
首先说明一下本系列博客描述的人工智能算法不是基于机器学习、深度学习这么高深的知识,而是一种穷举找最优走法的算法。之所以...
6.参考文献
Note: The above outline is a general structure for a paper on machine learning classification and should be adjusted to suit the specific details of your research. Also, in writing a research paper, It is also important to follow academic writing conventions and guidelines, such as formatting, referencing, citation.
[code=plain]
files_created: []
files_deleted: ['D:\\CodeDemo\\PythonProject\\SyncServer\\folder\\Session Storage\\CURRENT', 'D:\\CodeDemo\\PythonProject\\SyncServer\\folder\\Session Storage\\LOG.old', 'D:\\CodeDemo\\PythonProject\\SyncServer\\folder\\Session Storage\\MANIFEST-000001', 'D:\\CodeDemo\\PythonProject\\SyncServer\\folder\\Session Storage\\LOCK', 'D:\\CodeDemo\\PythonProject\\SyncServer\\folder\\Session Storage\\LOG', 'D:\\CodeDemo\\PythonProject\\SyncServer\\folder\\Session Storage\\000003.log']
files_modified: []
files_moved: []
dirs_modified: ['D:\\CodeDemo\\PythonProject\\SyncServer\\folder']
dirs_moved: []
dirs_deleted: ['D:\\CodeDemo\\PythonProject\\SyncServer\\folder\\Session Storage']
dirs_created: []
[/code]