C++ 架构设计与图形学深度实践
Part 1.2: 棋盘自动标定实战 —— YOLO 星位检测从训练到修复
记录 YOLO 星位检测从 Python 训练到 C++ 推理的完整踩坑过程。修复了坐标逆变换、置信度双重激活、凸包选角脆弱性等关键 bug,最终 53/55 测试图通过。
Part 1.3: 双模型选型 —— YOLO 做星位、FCN 做棋子
从任务本质分析两个模型的选型逻辑:星位是'找'的问题(目标检测),棋子是'判'的问题(网格分类)。包含架构适配性、性能对比、反向排除理由和双模型协作流程。
Part 2.1: 功能实现 —— AI 对弈、打谱与棋谱保存
从只能检测棋子升级为可以和人下棋+看棋谱。新增 GtpEngine、SgfParser、GoGame AI、Kifu UI 四个模块,实现人机/人人对弈、打谱导航、SGF 导出等完整功能。
Part 2: AI 落子方案详解 —— GTP 协议与 KataGo 引擎集成
深入讲解围棋 AI 的标准通信协议(GTP)、KataGo 引擎的架构与配置、以及 GtpEngine C++ 类的设计实现。用通俗的类比理解 stdin/stdout 指挥 AI 落子的完整流程。
Part 3: 实体棋盘到虚拟棋盘 —— 棋子识别与状态映射
设计物理棋盘到虚拟棋盘的完整映射管线:StoneDetector 视觉识别 → 全盘 diff 确认 → GoGame 规则校验 → GoBoardWidget 展示。包含确认流程、视觉反馈时间线、AI 回合更新和异常处理。
Part 1.1: 从标注到推理 —— 棋子检测与星位定位双模型实战
衔接 Part 0 和 Part 2,介绍 FCN 棋子分类(99.84% 准确率)和 YOLO 星位检测两套模型的训练流程与 C++ 推理集成。共享标注管线,独立训练路径。
Part 0: 基础视觉系统 —— 从摄像头到棋盘矫正
本章使用 ESP32-CAM + OpenCV + Qt6,从 MJPEG 视频流解码到 HoughCircles 星位检测再到 RANSAC 单应矫正,构建完整的棋盘基础视觉管线
Part 1: 规则引擎 + 虚拟棋盘 —— 从检测到对弈
BFS 气计算 / 提子 / Zobrist 劫检测 / 终局计目 / 3D 渐变棋子 / 读秒计时 / 音效系统
第1课:QStyle 体系基础 — 继承链、绘制机制与 QStyleOption
四层继承结构、drawPrimitive/drawControl/drawComplexControl 调用链、QStyleOption 系统、State 到语义化枚举映射、最小可运行 SimpleStyle
第2课:Theme 系统设计 — 颜色体系、JSON 序列化与热切换
Theme 系统四层颜色模型、JSON 序列化与热切换