面向 PCB 缺陷检测场景的 C# / WPF 桌面上位机(.NET 8):左侧工具栏、中央检测画布、右侧参数面板、底部运行条。 本文所有截图摄于 2026 年 9 月 10 日真机运行,检测对象为 DeepPCB 公开数据集测试图;所用检测模型来自我自行训练的 PCB 缺陷检测成果,训练过程与评估结果见质检报告。
暗色界面服务于车间与实验室的长时间注视场景:画布区域占比最大,检测状态(NG 徽标、帧率、计数)集中在底部运行条,参数面板常驻右侧,不打断检测主流程。
从加载图像到导出报告共四步,均可在主窗口内完成。
| 检出类别 | 数量 | 置信度区间 |
|---|---|---|
| 针孔 pin-hole | 3 | 0.827 – 0.927 |
| 铜面缺陷 copper | 2 | 0.855 – 0.894 |
| 断路 open / 短路 short / 鼠咬 mousebite / 毛刺 spur | 各 1 | 0.815 – 0.923 |
检出阈值 conf 0.30 / IoU 0.45;全部框高于界面 NG 判定线 0.5,与判定结果一致。数据来自隐藏 CLI --detect 直出坐标,与 Python onnxruntime 基准逐框一致。
调试期间出现过两类症状:背景图轮播切换、检测框聚在原点乱跳。修复后取相隔约 14 秒的两帧对照——检测框坐标逐像素一致,帧率稳定在 21–24 FPS。
两帧之间 9 个检测框坐标零漂移,背景图保持静止,NG 计数无跳变。运行日志中每帧坐标记录完全一致(针孔@425,19 · 断路@539,193 · 鼠咬@465,331 …),耗时区间 41–48 ms。
工具栏 ⇩ 一键导出:CSV 坐标表与 640×480 标注合成图。合成图由离线渲染管线生成,不依赖界面可视化树,因此也是验证检测框对位的最可靠依据。
上述画面能够稳定呈现,前置条件是三个缺陷的定位与修复(2026-09-09 闭环)。
FormatConvertedBitmap 强制转为 Bgra32 再 CopyPixels。修复后与 Python 基准 9 框逐一对齐。ItemContainerStyle 对 ContentPresenter 设置附加属性。