COMPUTER VISION / 2026
HRNet
Infer
面向机器人视觉标靶的四关键点精定位系统,从 LabelMe 标注、热图训练到 OpenVINO 视频部署。
OVERVIEW
为什么在 YOLO Pose 之后,
还需要一张高分辨率热图?
目标在完整视频帧里占比很小,直接回归关键点容易受尺度、模糊与高亮边缘干扰。系统先由 YOLO Pose 找到目标框,再将局部区域裁剪并缩放到 160×160,让后续网络专注于结构细节。
轻量 HRNet 保留并融合多分辨率特征,输出 80×80 单通道热图。四个局部峰值映射回原图后,再与 YOLO 初始关键点匹配,形成兼顾检测范围和局部精度的两阶段方案。
PIPELINE
从一帧图像到四个坐标
训练与部署共享同一套裁剪、归一化和关键点映射约定。
- 01
Detect
YOLO Pose 检测目标框并给出初始四点。
640 × 640 - 02
Crop
目标框增加边界 padding,裁剪并归一化。
160 × 160 - 03
Heatmap
HRNet 融合多尺度特征,预测关键点响应。
1 × 80 × 80 - 04
Peaks
高斯平滑、局部极大值与最小间距约束。
top-k = 4 - 05
Match
匹配两组关键点并投影回原始视频坐标。
x, y, conf
RESULTS
把误差直接画出来
每组结果从左到右依次展示输入、真实热图、预测热图、预测叠加,以及真实点(绿色)与预测点(蓝色)的对比。红色十字用于突出位置差异。
规则轮廓:四个响应峰清晰分离,预测位置贴合标注。
复杂纹理:局部高亮和遮挡下仍能恢复四角结构。
新增分布:微调样本上的预测与四个 GT 点保持一致。
TRAINING
训练过程不只看一个 loss
数据加载器把四个 LabelMe 点转换为高斯响应,并在训练中同时保存输入、GT 热图、预测热图和叠加图,便于发现“损失下降但峰值位置错误”的情况。
- OptimizerAdamW
- ScheduleCosine Annealing
- PrecisionAMP
- Stop rulePatience 15
FINE-TUNE RUN
第 5 轮取得最佳验证损失
在新增数据微调中,训练损失保持稳定,验证集最低达到 0.040278;连续 15 轮未刷新后触发早停。
DEPLOYMENT
同一模型,
两条推理路径
Python 版本用于快速验证热图、阈值和匹配策略;C++ 版本使用 OpenCV 与 OpenVINO 接入视频流,保留逐帧耗时统计。
PUBLIC SNAPSHOT
源码与实验结果已整理为轻量项目
公开快照保留训练、导出和部署代码;为控制仓库体积并保护实验数据,不包含原始数据集、视频、训练检查点及模型权重。
查看 GitHub 仓库 ↗