A388-基于HRNet实现L-Bracket的关键点检测

A388-基于HRNet实现L-Bracket的关键点检测

导出时间:2025/12/24 19:44:49

项目目标

基于合成数据集 l_bracket_dataset_final,训练一个 HRNet(轻量版)关键点检测模型,在单张 RGB 图像中对每个 L 型支架实例预测 3 个关键点的 2D 像素坐标。训练采用 Top-down 流程:
  1. 从标注关键点生成实例 bbox(训练时作为 ROI 来源)
  2. ROI 裁剪并缩放到固定输入(默认 256×256)
  3. HRNet 输出热力图(默认 64×64),由热力图 argmax 得到关键点
  4. 可选:推理时使用自动提框(阈值+轮廓)生成 ROI,或外部 bbox(检测器/规则)提供 ROI

2. 目录结构

结构如下:
project_root/
  train_hrnet_lbracket.py
  predict_hrnet_lbracket.py                 # 推理脚本(仅预测)
  predict_compare_hrnet_lbracket.py         # 推理+对比标注差异(推荐)
  l_bracket_dataset_final/
    images/
      image_000000.png
      ...
    annotations/
      annotation_000000.json
      ...
    config.json
  runs/
    hrnet_lbracket/
      best.pth

3. 数据格式要求

image.pngimage.png
每张图片对应一个 JSON(示例字段):
  • 顶层:
    • file_name: 图片文件名(如 image_000000.png
    • width, height: 图像尺寸(例如 512×512)
    • annotations: 多实例列表
  • annotations[i]
    • keypoints_2d: [x, y, v] 重复 K 次(本项目 K=3)
      • v=1 表示可见;v=0 表示不可见/出视野
    • 其他字段(如 keypoints_3d, pose)可用于后续扩展,但本项目训练 2D 关键点时不强制依赖
重要约束:
  • 三个关键点的顺序必须在整个数据集中语义一致(否则模型无法收敛)。

4. 环境依赖

Python 3.8+,推荐使用虚拟环境:
pip install torch torchvision opencv-python numpy
如使用 GPU,请保证 CUDA 与 PyTorch 版本匹配。

5. 训练(train_hrnet_lbracket.py)

image.png

5.1 基本训练命令

python train_hrnet_lbracket.py \
  --data_root ./l_bracket_dataset_final \
  --work_dir ./runs/hrnet_lbracket \
  --epochs 80 \
  --batch_size 32 \
  --lr 1e-3 \
  --device cuda \
  --remove_red_dots

5.2 训练输出

  • 最优模型保存为:
    • ./runs/hrnet_lbracket/best.pth
  • 训练日志中会显示:
    • train_loss
    • val_loss
    • val_l2(px):验证集关键点平均像素误差(在 ROI 输入坐标系)

5.3 训练实现要点(方案 A)

  • 将每张图的多实例 annotations 展开为“每个实例一个样本”
  • bbox 由该实例可见关键点外接矩形生成,并加 padding
  • ROI 经过仿射裁剪到固定输入尺寸(默认 256×256)
  • 输出热力图尺寸默认 64×64(=输入/4),使用 MSE loss(按可见性加权)

6. 推理预测(predict_hrnet_lbracket.py)

6.1 自动提框预测(适合白底+深色物体)

python predict_hrnet_lbracket.py \
  --ckpt ./runs/hrnet_lbracket/best.pth \
  --image ./l_bracket_dataset_final/images/image_000001.png \
  --out_json ./pred_000001.json \
  --out_vis  ./pred_000001_vis.png \
  --device cuda \
  --remove_red_dots
输出说明:
  • out_json:每个实例的 bbox 和 3 个关键点 (x,y,score)
  • out_vis:可视化 bbox 与预测关键点
注意:自动提框基于阈值/轮廓,属于强假设方法。真实环境建议改用检测器或稳定规则生成 bbox。

6.2 外部 bbox 预测(更稳定)

python predict_hrnet_lbracket.py \
  --ckpt ./runs/hrnet_lbracket/best.pth \
  --image ./l_bracket_dataset_final/images/image_000001.png \
  --bboxes "[[10,20,120,160],[300,200,420,350]]" \
  --out_json ./pred_000001.json \
  --out_vis  ./pred_000001_vis.png

7. 对比标注差异与误差统计(推荐)(predict_compare_hrnet_lbracket.py)

pred_000123_vis.png
用于输出“预测 vs GT”的像素误差,并在图上画连线标注误差。
python predict_compare_hrnet_lbracket.py \
  --ckpt ./runs/hrnet_lbracket/best.pth \
  --image ./l_bracket_dataset_final/images/image_000001.png \
  --ann_json ./l_bracket_dataset_final/annotations/annotation_000001.json \
  --out_vis ./compare_000001.png \
  --out_report ./compare_000001.json \
  --device cuda \
  --remove_red_dots
终端输出典型指标:
  • pred_instances / gt_instances / matched
  • overall_mean_error(px):所有“GT可见且预测置信度>=阈值”的关键点平均像素误差
  • 每个关键点 joint0/1/2 的平均误差
image.png

完整开题报告

  1. 选题背景及意义
1.1选题背景
随着工业4.0和智能制造的发展,机器人在仓储分拣、电子装配、快递分拣、食品加工等领域的应用越来越广泛。传统的机器人抓取多依赖于结构化环境、已知物体模型或借助固定的定位标志,这在面对物品种类繁多、姿态不确定、堆叠混乱的真实场景时显得力不从心。研究能够在复杂、无标注环境下实现高效、稳定抓取的机器人系统,具有重要的理论价值与广泛的工程应用前景。深度学习在视觉感知领域取得了突破性进展,尤其是关键点检测技术因其对局部显著结构的敏感性和对姿态信息的直接表达,在物体抓取区域预测等任务中表现出优越性。将关键点检测引入机器人无序抓取研究,能以稀疏而语义明确的形式表达物体的可抓取区域、边缘特征或局部几何,从而降低对全模型重建或复杂语义分割的依赖;另外结合深度学习的端到端训练能力,可以在大规模异构数据上学习到鲁棒的特征表示,提高对遮挡、光照变化和背景干扰的耐受性。
1.2选题意义
基于关键点的抓取策略可显著简化抓取规划与力控策略的耦合。通过检测物体在图像平面或三维空间中的关键点,机器人可以更直接地生成可执行的抓取位姿,减少对昂贵传感器和复杂建模流程的依赖,降低系统部署成本并提升部署速度。关键点检测方法易于与深度生成模型、强化学习或传统几何推理结合,实现从感知到决策的闭环优化,这对于提升抓取成功率和减少重复无效尝试具有重要意义。
  1. 课题的主要内容
2.1抓取系统仿真平台构建
1. 场景与模型搭建:在CoppeliaSim仿真环境中,搭建一个包含工业机器人(如UR5)、视觉传感器、料箱及目标工件(L型块)的完整抓取工作站。
2. 物理与逻辑设置:正确配置场景的物理属性,并编写脚本实现工件的随机化生成与位姿初始化,以模拟真实生产中的无序来料场景。
3. 通信接口建立:实现仿真环境(CoppeliaSim)与外部算法程序(Python)的实时数据通信,确保图像、位姿与控制指令的稳定传输。
2.2关键点检测深度学习模型研究
1. 视觉数据集制作:利用仿真平台,自动化采集并构建工件图像数据集,每张图像需包含对应工件多个关键点的精确2D像素坐标与3D世界坐标真值。
2. 模型设计与训练:设计一个轻量化的关键点检测神经网络,利用制作的数据集进行训练与优化,实现从单张RGB图像中实时、准确地预测工件关键点的2D位置。
2.3机器人抓取位姿解算与规划
1. 手眼系统标定:完成相机与机器人底座之间的手眼标定,获取精确的坐标变换关系。
2. 抓取位姿解算:基于模型预测的2D关键点,结合相机模型与PnP等算法,解算出工件相对于机器人末端的6自由度抓取位姿(位置X,Y,Z与姿态Rx,Ry,Rz)。
3. 抓取轨迹生成:为机器人规划一条从当前位置到抓取点的平滑、无碰撞的运动轨迹。
2.4系统集成与综合实验验证
1. 软件系统集成:将训练好的深度学习模型、位姿解算模块与机器人控制模块集成到一个统一的软件框架中,实现从“图像输入”到“机器人动作执行”的全流程自动化。
2. 抓取任务实验:在仿真环境中进行系统性抓取实验。要求机器人对散乱堆叠的多个工件执行连续抓取,并将其放置到指定位置。
3. 性能评估与分析:定量评估整个系统的性能,核心考核指标包括:
· 抓取成功率
· 单次抓取节拍时间
· 系统定位精度
课题的研究方案
3.1技术路线
1..文献调研与方案论证
  • 系统梳理机器人无序抓取、深度学习关键点检测的国内外研究现状,重点分析现有方案在复杂场景适应性、实时性等方面的不足。
  • 确定“图像处理-模型检测-仿真集成-实验验证”的整体方案,明确工具选型:Python(开发语言)+ PyTorch(深度学习框架)+ OpenCV(图像处理)+ CoppeliaSim(仿真平台),敲定UR5机械臂为核心执行机构。
2. 数据准备与图像处理模块开发
  • 构建无序目标数据集:采集L形块的图像,涵盖不同姿态、堆叠状态,完成关键特征点(角点、边缘中点)标注。
  • 基于OpenCV实现图像处理流程:对采集图像进行高斯滤波去噪→灰度化→自适应阈值分割→Canny边缘检测→形态学处理,实现目标与背景分离,完成初步定位,输出高质量图像用于模型输入。
3. 深度学习关键点检测模型训练
  • 基于PyTorch搭建模型:选用HRNet作为基础网络,优化网络结构与损失函数,适配无序目标关键点检测需求。
  • 数据集预处理:采用旋转、翻转、缩放等技术扩充数据集,按一定比例划分训练集、验证集与测试集。
  • 模型训练与优化:设定学习率、batch size等超参数,迭代训练模型,通过验证集监控检测精度,调整参数优化模型泛化能力,完成模型测试与最优权重保存。
4. CoppeliaSim仿真场景搭建
  • 在CoppeliaSim中构建仿真环境:导入UR5机械臂模型,搭建工作台、无序目标堆叠场景,配置视觉传感器,设置重力、摩擦力等物理参数。
5. 系统模块集成
  • 开发Python与CoppeliaSim通信接口:通过CoppeliaSim的Remote API实现数据交互,包括视觉传感器图像采集与传输、关键点检测结果回传、机械臂运动控制指令下发。
  • 构建闭环系统:串联图像处理模块→关键点检测模型→抓取姿态规划模块→机器人运动控制模块,实现“图像输入→特征提取→关键点检测→姿态解算→运动执行”的全流程自动化。
6. 仿真实验测试与优化
  • 设计实验:机械臂对无序工件进行多次抓取,每次实验重复30次以上,记录抓取成功率、响应时间、姿态估计误差等指标。
  • 系统优化:针对实验中出现的检测精度不足、通信延迟、抓取失败等问题,分别优化图像处理算法、模型结构、通信接口。
论文的框架结构
第一章 绪论
1.1 研究背景与意义
1.1.1工业自动化中无序抓取的实际需求,传统抓取技术的不足。
1.1.2深度学习关键点检测的应用价值。
1.2 国内外研究现状
1.2.1机器人无序抓取的研究进展。
1.2.2深度学习关键点检测模型研究现状
第二章 相关技术基础
2.1 机器人与仿真技术基础
2.1.1 UR5机械臂运动学基本原理,CoppeliaSim仿真平台核心功能。
2.1.2 CoppeliaSim与Python的通信接口基础。
2.2 图像处理技术
2.2.1 OpenCV核心功能(去噪、分割、边缘检测)。
2.2.2 目标定位与特征提取基本方法。
2.3 深度学习关键点检测基础
2.3.1 卷积神经网络基本概念。
2.3.2 HRNet模型核心原理与优势。
第三章 系统设计与实现
3.1 系统总体方案
3.1.1 功能需求与性能指标,软件工具选型(Python+PyTorch+OpenCV+CoppeliaSim)。
3.1.2 系统模块划分(感知、决策、执行)。
3.2 数据集构建与图像处理
3.2.1 类目标图像的采集、标注与数据增强。
3.2.2 基于OpenCV的图像预处理实现。
3.3 关键点检测模型训练
3.3.1 HRNet模型搭建与参数设置。
3.3.2 模型训练流程与优化过程。
3.4 仿真场景搭建与系统集成
3.4.1 CoppeliaSim中UR5机械臂、无序目标场景与视觉传感器的搭建。
3.4.2 各模块通信接口开发与全流程集成。
第四章 仿真实验与结果分析
4.1 实验设计
4.2 实验结果与分析
4.3 系统优化
第五章 总结
参考文献
致谢
  1. 写作安排

主要参考文献
  • 王敏慧,李宪华,徐玉杰. 融合小尺寸线性注意力机制的二维人体姿态检测[J/OL].重庆工商大学学报(自然科学版),1-10[2025-12-05].https://link.cnki.net/urlid/50.1155.n.20251106.1720.002.
  • 温雪冰. 基于深度学习的目标关键点检测与位姿测量方法研究[J].航空电子技术,2025,56(02):57-64.
  • 王端茂.基于深度学习和探地雷达技术的地下管线智能检测与定位方法研究[D].吉林大学,2025.DOI:10.27162/d.cnki.gjlin.2025.004237.
  • 宋佳秋,朱浩然,刘福才. 基于深度学习的非合作目标关键点检测及匹配方法[J].高技术通讯,2024,34(08):832-841.
  • 曾文献,李岳松. 面向人体姿态图像关键点检测的深度学习算法[J].计算机仿真,2024,41(05):209-213+219.
  • 付苗苗,邓淼磊,张德贤. 基于深度学习和Transformer的目标检测算法[J].计算机工程与应用,2023,59(01):37-48.
  • 曹家乐,李亚利,孙汉卿,等. 基于深度学习的视觉目标检测技术综述[J].中国图象图形学报,2022,27(06):1697-1722.
  • 刘瑞昊.基于深度学习的机器人目标检测与抓取系统研究[D].江南大学,2022.
  • 尹卫民.基于深度学习的机器人抓取系统的研究[D].北京邮电大学,2021.
  • 袁明锐.基于深度学习的机器人抓取位姿检测研究[D].沈阳工业大学,2022.
  • Li G ,Lian A ,Yao Z , et al. Fish keypoint detection for offshore aquaculture: a robust deep learning approach with PCA-based shape constraint [J]. Frontiers in Marine Science, 2025, 12 1619457-1619457. DOI:10.3389/FMARS.2025.1619457
  • Leqing Z ,Xingyang W ,Lingqiang M , et al. Robust location-secured high-definition image watermarking based on key-point detection and deep learning [J]. Optik, 2021, 248 DOI:10.1016/J.IJLEO.2021.168194.
  • Yu S ,Yaozhong X ,Zian Z , et al. Comparison of manual versus automated measurement of Cobb angle in idiopathic scoliosis based on a deep learning keypoint detection technology. [J]. European spine journal : official publication of the European Spine Society, the European Spinal Deformity Society, and the European Section of the Cervical Spine Research Society, 2021, 31 (8): 1-10. DOI:10.1007/S00586-021-07025-6.
  • Gonçalves T ,Silva W ,Cardoso J M , et al. Deep Image Segmentation for Breast Keypoint Detection † [J]. Proceedings, 2020, 54 (1): 35-. DOI:10.3390/PROCEEDINGS2020054035.
  • Wu S ,Xu J ,Zhu S , et al. A Deep Residual convolutional neural network for facial keypoint detection with missing labels [J]. Signal Processing, 2018, 144 384-391. DOI:10.1016/j.sigpro.2017.11.003.
七、指导教师意见