象棋AI助手 VinXiangQi:免费开源的YOLOv5棋盘识别与引擎连线工具
象棋AI助手 VinXiangQi免费开源的YOLOv5棋盘识别与引擎连线工具【免费下载链接】VinXiangQiXiangqi syncing tool based on Yolov5 / 基于Yolov5的中国象棋连线工具项目地址: https://gitcode.com/gh_mirrors/vi/VinXiangQiVinXiangQi 是一款基于 YOLOv5 深度学习模型的开源免费象棋 AI 助手它能自动识别屏幕上任意象棋对局的棋盘局面把位置交给 UCI 象棋引擎分析甚至把推荐走法自动点回游戏里实现你下棋、AI 陪跑的实时辅助。下面按真实使用顺序从装环境到调参数完整走一遍。它解决什么问题把引擎接进在线象棋传统象棋引擎如 Fairy-Stockfish都是命令行程序你很难把它们接进天天象棋、JJ 象棋这类在线对弈软件。手动录局面、手动翻译走法繁琐且容易出错。VinXiangQi 的思路是三步闭环截图捕获目标象棋软件窗口的画面识别用 YOLOv5 模型目标检测的一种输入图片、输出每个棋子的类别与坐标判断棋盘 9×10 个交叉点上各是哪方哪种棋子模型一共区分 14 种棋子红黑两色的车马炮士相兵加帅/将加 1 个棋盘底图共 15 个类别对应 VinXiangQi/YoloXiangQiModel.cs 中的类别定义连线把局面转成 FEN 局面描述发给引擎引擎给出最佳着法后再把点击转发回游戏窗口完成走棋。识别与游戏交互的核心逻辑分别在 VinXiangQi/DetectionLogic.cs 和 VinXiangQi/XiangQiGame.cs 中引擎的启动、协议收发由 VinXiangQi/EngineHelper.cs 负责它同时兼容 UCI国际象棋通用协议和 UCCI中国象棋协议两种引擎。跑起来之前环境、引擎与识别模型依赖与编译系统需装有 .NET Framework 4.8项目目标框架即 v4.8用 Visual Studio 打开VinXiangQi.sln编译运行即可无需额外安装数据库或运行时。获取源码git clone https://gitcode.com/gh_mirrors/vi/VinXiangQi准备引擎引擎放在程序根目录的Engines文件夹里支持 UCI/UCCI 协议的象棋引擎都能用Fairy-Stockfish 是常见选择。界面里可以添加/删除多个引擎并针对每个引擎设置思考时间、思考深度、线程数还能通过引擎设置打开引擎自身暴露的全部选项由 UCI/UCCI 协议动态读取。引擎交互封装在 VinXiangQi/EngineManageForm.cs 与 VinXiangQi/EngineSettingsForm.cs 中。准备识别模型程序启动时会自动扫描根目录下Models文件夹中的所有.onnx文件ONNX 是跨框架的模型交换格式这里由 ONNX Runtime 加载推理把文件名去掉后缀作为模型名填入下拉框默认使用nano.onnx。想换精度更高的模型放一个对应的.onnx进去即可。第一次连线从创建方案到开始走棋整个主界面分为识别画面 → 识别结果 → 引擎输出三个区域下方状态栏显示识别状态如棋盘未改变检测图像。创建窗口方案软件不直接盯着桌面而是围绕方案工作——方案就是一个记录目标窗口信息的 TXT 文件存放在Solutions文件夹里每个方案一个子目录核心是window.txt四行配置截图标题中国象棋棋力评测 截图类 点击标题TKMCGame 点击类截图与点击可以指向不同窗口比如引擎输出在一个窗口、棋局在另一个窗口。仓库自带了JJ象棋_棋力评测天天象棋等内置方案也可用寻找窗口句柄F2功能点按钮后 2 秒内把鼠标移到目标窗口上即可自动获取其句柄。确认方案好用后点保存当前方案固化下来下次直接选用。一个小技巧如果窗口标题里含有对局编号或网址删掉这些动态部分、只保留稳定的窗口类名方案会更通用。校准缩放比不同显示器分辨率下截图可能截不全或带黑边。勾选调试状态后调整缩放比数值截不全就调大出现黑边就调小直到截图刚好铺满棋盘窗口然后关闭调试状态。选对截图模式与鼠标模式这两个选项决定连线的兼容性是新手最容易踩坑的地方选项行为限制后台截图只截目标窗口窗口被遮挡也能截部分游戏/浏览器因渲染方式截出来是黑屏前台截图直接截屏幕通用窗口不能被任何东西遮挡后台鼠标向窗口发消息模拟点击不抢鼠标不是所有软件都响应前台鼠标直接驱动鼠标点击通用占用鼠标点击过程中移开会失败默认策略优先后台截图 后台鼠标遇到黑屏或点不动再切到对应的前台模式。截图与鼠标操作的实现分别在 VinXiangQi/ScreenshotHelper.cs 和 VinXiangQi/MouseHelper.cs。校准完成后打开一局棋选择我方开始或对方开始连线就自动运行了如果状态栏没有变化点一下重新检测棋盘即可。识别结果区的棋子还可以直接点击点击会转发到游戏窗口对应位置方便调试坐标。引擎输出怎么读深度、得分与走法界面下方的滚动输出区会持续打印引擎每一轮思考的结果格式为深度引擎搜索的层数越深思考越远得分局面评估分正数表示先手一方当前视角红方占优时间 / nps本轮耗时与每秒搜索节点数是衡量硬件性能最直观的指标后面的中文着法是引擎的候选变着。绝杀立即出招勾选后引擎判断成杀时会直接出招而不等待。低配电脑参数怎么调分档配置建议识别、截图、引擎思考三件事抢的是同一台机器的 CPU参数不是越大越好要按硬件分档硬件档位引擎思考时间检测间隔推荐模型适合场景低配老笔记本/四核1.5 秒800mssmall 级别 .onnx休闲复盘中配近五年主流台式机2.5 秒500msmedium 级别 .onnx日常对弈辅助高配八核以上独立显卡4.0 秒300mslarge 级别 .onnx认真训练研究另外两个直接影响流畅度的旋钮线程数设为 CPU 核心数的 3/4 左右比较稳全核跑容易把识别线程挤到没资源用库最短步时开局阶段查开局库最少花多少时间步数越大开局走得越库。常见问题与排障方法截图是黑的目标软件常见于浏览器、部分游戏不支持后台窗口截图。勾选前台截图代价是窗口不能被遮挡。点击不生效 / 走法点不进去换前台鼠标模式。它直接占用鼠标做点击兼容性最好只是点击瞬间别动鼠标。引擎加不上来先确认Engines里的路径是否正确、文件是可执行文件.exe以及该引擎是否支持 UCI 或 UCCI——界面加载时会先探测协议类型。识别的棋子整体偏移多为缩放比没调准或方案里记录的是旧窗口。重新走一遍调试状态 缩放比校准或重新寻找窗口句柄。分析中途停了持续识别模式下偶发停止点重新检测棋盘即可恢复。进阶玩法开局库、自动续盘与多引擎开局库把开局库文件放进根目录OpenBooks文件夹VinXiangQi/OpenBookHelper.cs 负责加载在开局库设置中勾选使用开局库并选择查询模式勾选使用云库则启用在线库。开局阶段引擎会优先走库着稳定性和速度都更好。自动点击与自动续盘想连再来一局复盘这类按钮用自动点击管理在管理窗口右侧的截图中先点区域左上角、再点右下角框出按钮保存模板后在连线设置里勾选自动点击即可。两点注意框选范围越小检测越快别框整个按钮失效的模板要及时清理模板图堆积会拖慢每轮检测。多引擎协同引擎下拉框支持添加多个引擎。你可以给不同引擎设置不同的思考深度与线程数对比它们对同一局面的评估差异——同一着法在不同引擎下得分差异很大时往往就是局面转折点。关键文件速查VinXiangQi/Mainform.cs主界面模型/方案/开局库初始化与连线流程调度VinXiangQi/DetectionLogic.csYOLO 识别结果到棋盘格子的映射逻辑VinXiangQi/EngineHelper.cs引擎进程与 UCI/UCCI 协议通信VinXiangQi/XiangQiGame.cs局面、着法与 FEN 转换VinXiangQi/OpenCVHelper.cs、VinXiangQi/ImageHelper.cs截图与图像处理辅助VinXiangQi/YoloXiangQiModel.csYOLOv5 模型类别定义15 类VinXiangQi/ProgramSettings.cs默认参数如默认模型nano.onnx。目录约定Models识别模型、Engines引擎可执行文件、Solutions窗口方案与自动点击模板、OpenBooks开局库。获取帮助软件当前功能仍在持续补全欢迎参与完善。遇到 Bug 或有改进建议可以加软件/技术交流群755655813反馈。最后把仓库克隆下来、放好引擎和模型、校准一次缩放比通常半小时内就能看到第一着自动走法。建议先拿调试状态练手理解截图画面和识别结果的对应关系后再按自己的硬件档位把思考时间和检测间隔调到舒服的位置。工具只是陪练真正的棋力提升还是落在你自己的复盘和思考里。【免费下载链接】VinXiangQiXiangqi syncing tool based on Yolov5 / 基于Yolov5的中国象棋连线工具项目地址: https://gitcode.com/gh_mirrors/vi/VinXiangQi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考