[P] 构建了一个100%客户端视觉流水线,用于实时棋盘与多棋盘检测(Chrome/Firefox扩展) [P]

Reddit r/MachineLearning 产品

摘要

已开发名为ChessInsights AI的浏览器扩展,使用100%客户端计算机视觉进行实时棋盘检测与分析,通过在本地处理所有数据确保隐私,无需服务器上传。

大家好,受Chessvision.ai等工具启发,我采取了不同的架构方法,构建了一个浏览器扩展(ChessInsights AI),使用本地推理进行100%客户端的棋盘检测和棋子识别——图像数据从不离开用户设备,支持在单帧中检测多个棋盘,且所有功能完全免费。主要目标是将被动棋类内容(YouTube、Twitch、PDF、文章)与主动引擎分析无缝结合,无需切换上下文:只需点击几下即可捕获屏幕内容并获取FEN字符串和引擎评估。 **系统架构与技术方法** **按需捕获(多棋盘支持):** 扩展不是持续采样视频帧,而是通过浏览器的tab-capture API捕获当前可见标签页的截图,由用户触发(例如一键点击当前视图的“分析”,或使用“照片模式”绘制选择矩形裁剪特定区域)。该截图被送入本地运行的对象检测神经网络(基于YOLO架构,使用TensorFlow.js,WebGL/CPU后端),输出棋盘形状区域的边界框和置信度分数,并经过非极大抑制过滤。由于检测在整个帧上进行而非假设单个棋盘,它可以在一次截图中找到并返回多个不同的棋盘(例如,多图表PDF、新闻文章或广播分屏)。目前,棋盘预期为大致轴对齐的矩形(计划实现严重倾斜棋盘的透视/单应性校正)。 **棋子分类与伪影鲁棒性:** 每个检测到的棋盘被裁剪,分成8x8网格,64个单元格中的每个都被送入单独的本地CNN分类器(同样使用TensorFlow.js)以预测棋子类型或空格。为了处理视频压缩噪声、流媒体叠加层、箭头以及不同的2D/3D棋盘主题,分类器在训练时使用了针对UI伪影和低分辨率捕获的增强数据。 **一切在浏览器内运行:** 检测和分类模型完全在扩展内运行(在Chrome MV3的离屏文档中),通过TensorFlow.js——没有任何图像或帧数据发送到服务器。位置分析使用编译为WebAssembly的Stockfish,在本地Web Worker中运行,因此引擎评估也完全离线进行。结果被转换为FEN字符串,并在扩展的仪表板/棋盘编辑器中显示,您可以在此与本地引擎对弈。 **与现有工具的关键差异** - **设计即隐私:** 没有任何棋盘图像或视频帧上传——检测、分类和引擎分析均在您的设备上本地运行。 - **多棋盘处理:** 原生支持同时捕获多个图表。 - **零成本/无付费墙:** 开箱即用提供完整功能集。 我很想从社区收集关于客户端视觉优化的技术反馈!对于那些构建浏览器CV工具的人:在处理实时帧解析中的压缩伪影和叠加遮挡时,什么边缘情况增强策略或轻量级架构对您最有效?
查看原文

相似文章