HALCON + BOP:从深度图到6D Pose

发布时间:2026/11/13 6:38:17

HALCON + BOP:从深度图到6D Pose 「Halcon 项目」。/~b4fb3ZrHFz~:/链接https://pan.quark.cn/s/1ee336f5e76dHALCON BOP从深度图到6D Pose这份资料记录了从选择数据集、理解ROI和点云到用HALCON完成Surface Matching、稠密Pose精修、6D Pose显示、计时优化和100帧精度评估的全过程。建议第一次阅读时按章节顺序看以后查代码时可以直接跳到“关键代码位置”和“当前结论”。1. 当前环境与数据软件HALCON版本22.11 SteadyHALCON安装目录E:\Halcon2022\MVTec\HALCON-22.11-SteadyBOP数据目录E:\BOP-Dataset\lm当前学习资料本文件所在目录为什么改用BOP数据集最初考虑使用RealSense D435i和Replica room0D435i现场深度噪声较明显刚开始不利于判断算法错误还是传感器错误。Replica适合室内场景重建和相机轨迹实验但不方便直接学习“已知物体CAD模型的6D Pose”。BOP LM同时提供RGB、深度、相机内参、PLY模型、物体Mask和6D Pose真值更适合验证完整流程。当前对象和场景数据集BOP LM 物体obj_000008电钻 PLY模型E:\BOP-Dataset\lm\models\obj_000008.ply 测试场景E:\BOP-Dataset\lm\test\000008 单帧示例000404场景000008中已有200张RGB图200张深度图200张普通Mask200张可见Mask200帧相机参数和6D Pose真值电钻在全部200帧中出现文件编号不是连续的000000000199实际范围约为000004001185。数据集来源与最小组合BOP官网https://bop.felk.cvut.czHugging Face数据集主页https://huggingface.co/bop-benchmark/datasets为了完成当前电钻实验最少需要lm/models/obj_000008.ply lm/models/models_info.json lm/test/000008/rgb lm/test/000008/depth lm/test/000008/mask_visib lm/test/000008/scene_camera.json lm/test/000008/scene_gt.json lm/test/000008/scene_gt_info.json当前E:\BOP-Dataset\lm已经包含所需内容不需要再次下载。数据集已经给出电钻PLY模型因此这一阶段不需要自己使用CAD软件重新制作模型。BOP目录结构E:\BOP-Dataset\lm ├─ models │ ├─ obj_000008.ply 电钻三维模型 │ └─ models_info.json 模型尺寸信息 └─ test\000008 ├─ rgb RGB图 ├─ depth 深度图 ├─ mask 完整物体Mask ├─ mask_visib 当前画面可见部分Mask ├─ scene_camera.json 相机内参、深度比例 ├─ scene_gt.json 6D Pose真值 └─ scene_gt_info.json 可见比例、真值框等信息2. 最终流水线RGB与深度图 → 检测框或分割Mask得到ROI → 深度图反投影成X/Y/Z图 → xyz_to_object_model_3d生成场景点云 → 读取PLY模型 → create_surface_model生成参考Surface Model → find_surface_model进行全局粗匹配 → dense_pose_refinement进行稠密Pose精修 → 得到T_camera_object → 显示红绿蓝坐标轴 → 与BOP真值比较完整流程总图3. 十个处理阶段3.1 原始RGBRGB图方便人和二维检测器识别物体但RGB像素本身没有三维距离。3.2 深度图深度图的每个有效像素保存一个距离值Z。BOP原始深度以整数形式保存本例按depth_scale转换后再除以1000得到米。3.3 ROIROI是Region of Interest即感兴趣区域。它的作用是只保留目标附近的深度点减少桌面、玩具和背景对配准的干扰。当前单帧程序默认使用矩形框模拟二维检测器输出调试时也可以使用BOP可见Mask。3.4 深度图转换为XYZ图用相机内参将像素坐标和深度反投影到相机三维坐标系X (u - Cx) × Z / Fx Y (v - Cy) × Z / Fy Z 深度其中Fx/Fy是焦距Cx/Cy是主点u/v是图像列和行。3.5 ObjectModel3D场景点云同一个像素位置的X、Y、Z组成一个三维点所有有效点组合后就是场景点云。HALCON关键代码xyz_to_object_model_3d (ImageX, ImageY, ImageZ, SceneModel3D)3.6 PLY/CAD模型PLY是物体的标准三维几何模型。它不一定必须由自己使用CAD软件制作也可以来自数据集、三维扫描、厂家或公开模型。在配准中PLY模型是需要被移动和旋转的“参考模型”现场深度形成的点云是“场景模型”。3.7 Surface Modelcreate_surface_model会对PLY表面采样建立点对几何特征、表面法向和搜索结构。create_surface_model ( CADModel3D, 0.01, [model_invert_normals], [true], SurfaceModelID )训练Surface Model较慢但同一个物体只需离线创建一次。现在程序会将其缓存后续用read_surface_model直接读取。3.8 全局粗匹配HALCON Surface-Based Matching先对场景降采样并选择关键点再比较场景点对和CAD点对的距离及相对方向生成候选Pose。随后默认进行稀疏Point-to-Plane姿态优化。因此这里的“粗配”更准确地说是点对特征全局搜索 稀疏点到平面Pose优化3.9 稠密Pose精修设置dense_pose_refinementtrue后HALCON使用更多场景点让场景点到最近CAD切平面的距离尽量小。这可以理解为HALCON封装的稠密Point-to-Plane ICP风格优化。find_surface_model ( SurfaceModelID, SceneModel3D, RelSamplingDistance, KeyPointFraction, 0.05, false, [num_matches,scene_invert_normals,dense_pose_refinement], [1,true,true], PoseEstimated, Score, SurfaceMatchingResultID )3.10 6D Pose6D Pose包含三个平移量X、Y、Z三个旋转量Rx、Ry、Rz最终矩阵HomMat3DEstimated T_camera_object它表示“物体模型坐标系中的点如何变换到相机坐标系”。pose_to_hom_mat3d (PoseBest, HomMat3DEstimated)红轴是X绿轴是Y蓝轴是Z轴原点表示物体位置轴方向表示物体旋转。HALCON当前直接输出图中红色轮廓BOP真值Pose绿色轮廓HALCON预测Pose红/绿/蓝箭头预测物体坐标系X/Y/ZT(mm)物体原点相对于相机的位置R(deg)HALCON Pose中的三个旋转角4. 单帧结果示例帧000404使用矩形ROI时场景点数43,745 粗配平移误差8.10 mm 粗配旋转误差4.72° 精修平移误差约1.72 mm 精修旋转误差约0.71°这个结果说明全局粗配成功找到了正确物体附近。稠密精修显著降低了位置和角度误差。深度单位、相机内参、CAD比例和法向方向基本正确。单帧结果很好但不能代表全部观察角度。5. 为什么最初运行很慢初始程序内部计时阶段时间深度、ROI、XYZ点云约0.015秒每帧重新创建Surface Model约8.99秒额外粗配测试约8.78秒第二次完整匹配和精修约8.00秒总时间约29.70秒主要问题有两个Surface Model原本每帧重新训练。为比较粗配和精配程序把全局搜索完整执行了两次。优化后Surface Model离线生成并缓存。生产模式只执行一次带稠密精修的匹配。可使用ShowVisualization : 0关闭轮廓、坐标轴和PNG输出。显示和保存结果图本身约需34秒因此“算法时间”和“带显示的演示时间”要分开看。6. 100帧批量评估为了避免被单帧结果误导从200帧中均匀选择了100帧并使用BOP可见真值Mask先测试Surface Matching本身。快速参数RelSamplingDistance 0.015 KeyPointFraction 0.5结果返回Pose44/100正确且低于5 mm、5°14/100低于2 mm、1°1/100平均匹配时间约0.285秒保守参数RelSamplingDistance 0.010 KeyPointFraction 1.0结果返回Pose63/100正确且低于5 mm、5°21/100低于2 mm、1°1/100平均匹配时间约1.342秒返回结果中的平移误差中位数约5.83 mm返回结果中的旋转误差中位数约1.63°旋转误差P95接近178°存在严重错误翻转100帧测试带来的关键认识000404上的约1.72 mm / 0.71°是一个效果很好的样例但当前配置不能稳定覆盖不同观察角度。当前真正的瓶颈是“粗配候选错误”而不是最后的稠密精修错误的全局候选Pose → 稠密精修进入错误局部极值 → 产生几十毫米或接近180°的错误精修只能改善已经接近正确解的初始Pose不能稳定挽救完全错误的粗配。7. 当前主程序开关主程序code/bop_lm_obj8_6d_pose.hdevROI模式UseGroundTruthMask : 00矩形ROI模拟检测器目标框1BOP可见真值Mask仅用于调试和算法上限测试精度模式AccuracyMode : 11保守参数0.010 / 1.0召回和精度优先0快速参数0.015 / 0.5仅适合实验可视化ShowVisualization : 11显示红绿轮廓、6D坐标轴和Pose数值0关闭图形输出用于生产计时或批处理是否额外运行粗配基准RunCoarseBenchmark : 00生产模式只匹配一次1额外运行一次不带Dense Refinement的匹配用来比较粗配和精修误差8. 文件说明HALCON和Python代码code/bop_lm_obj8_6d_pose.hdev单帧完整流程、计时和6D Pose显示code/benchmark_bop_lm_obj8_halcon.hdev单帧参数扫描code/bop_lm_obj8_batch100_eval.hdev100帧HALCON批量评估code/prepare_bop_lm_obj8_batch100.py准备100帧ID、真值矩阵和可见比例code/analyze_bop_lm_obj8_batch100.py汇总100帧结果code/bop_lm_obj8_visualize.py生成十张流程图code/make_bop_pipeline_montage.py拼接流程总图结果results/bop_lm_obj8_batch100_results.csv两组参数的逐帧结果results/bop_lm_obj8_batch100_summary.json100帧汇总指标results/bop_lm_obj8_batch100_worst20.csv最差20帧results/bop_lm_obj8_parameter_benchmark.tup单帧参数扫描原始结果results/bop_lm_obj8_timing_result.tup分阶段计时Surface Model缓存约65 MB为避免在资料包中复制两份仍保存在上一级目录../obj_000008_surface_model.sfm9. 如何在HDevelop中运行打开code/bop_lm_obj8_6d_pose.hdev。确认E:\BOP-Dataset\lm存在。确认上一级outputs目录中存在obj_000008_surface_model.sfm。初次学习保持ShowVisualization : 1 AccuracyMode : 1 RunCoarseBenchmark : 0运行后观察图形窗口中的红绿轮廓、XYZ坐标轴和Pose数值。查看输出的HomMat3DEstimated它就是T_camera_object。批量测试时打开code/bop_lm_obj8_batch100_eval.hdev该程序默认关闭逐帧图形显示只输出数值结果。10. 下一步优化方向后续继续使用HALCON建议按这个顺序进行将num_matches由1改为510保留多个粗配候选。根据深度残差、轮廓重合和可见面积重新选择候选Pose。对低Score或残差异常的Pose执行拒绝不发送给机器人。加入相机视角和允许旋转范围约束排除不可能的180°翻转。尝试支持3D边缘的Surface Model。将最差20帧逐一生成轮廓和坐标轴图寻找共同失败模式。连续视频使用上一帧Pose调用refine_surface_model_pose进行跟踪丢失时才重新全局搜索。接入D435i后重新标定内参过滤飞点和深度边缘噪声并单独统计真实相机精度。机械臂场景还需要加入手眼标定误差最终系统误差不等于单独的Pose误差。11. 当前阶段结论已经完成BOP LM最小数据准备深度图到XYZ和ObjectModel3DPLY到Surface ModelHALCON全局Surface Matching稀疏和稠密Point-to-Plane Pose优化T_camera_object输出BOP真值误差计算红绿轮廓与6D坐标轴显示Surface Model缓存和分阶段计时100帧速度、召回和精度验证尚未完成生产要求跨视角粗配稳定性不足错误Pose拒绝机制不足多候选重排序尚未实现D435i真实数据尚未重新评估手眼标定和机器人坐标变换尚未接入当前最重要的工程任务不是继续盲目调整Dense Refinement而是提高全局候选的召回、筛选正确候选并可靠拒绝错误Pose。
延伸阅读

更多相关文章

2026/11/13 6:38:16

9款AI论文写作工具提升MBA学术效率

1. 为什么需要AI论文工具? 作为一名MBA在读学员,我深刻理解论文写作的痛苦。去年写毕业论文时,光是文献检索就耗费了整整两周时间,更别提数据分析和格式调整这些繁琐工作了。直到发现了这些AI论文工具,效率直接提升了3…

2026/11/12 14:26:24

从带宽到GBW:模拟电路频率响应与稳定性设计核心解析

1. 项目概述:从“带宽”到“GBW”的电路设计核心脉络在模拟电路设计,尤其是运算放大器、滤波器、乃至整个信号链的调试中,我们总会遇到几个高频出现的术语:带宽、主极点、高频极点、GBW。新手看到这些词,往往觉得它们各…

2026/11/7 9:22:26

AutoWareAuto框架解析:自动驾驶技术的模块化实现

1. 自动驾驶技术全景与AutoWareAuto框架概览自动驾驶技术正在重塑未来交通的底层逻辑。作为开源自动驾驶框架的标杆,AutoWareAuto通过模块化设计将复杂的自动驾驶系统拆解为可管理的功能单元。这套框架最显著的特点是采用"感知-定位-决策-规划-控制"的经典…

2026/11/13 6:37:25

邯郸都在哪考电工证怎么转过来 郑州报考避坑指南全解析

邯郸都在哪考电工证怎么转过来 郑州报考避坑指南全解析 之前考的证在外省能不能转过来?这是很多在河南从事电工工作的朋友问得最多的问题。尤其像在郑州、邯郸等地工作的电工,很多证书是外地考的,现在想在当地继续用,却不知道怎么操作。别急,下面我会详…

2026/11/13 6:37:25

电工证包含什么证书,上岗必备的你真的了解吗

电工证包含什么证书,上岗必备的你真的了解吗 证书过期了不知道怎么复审延期,这是很多电工从业者遇到的头疼问题。尤其是在河南平顶山这样的工业城市,电工证是很多岗位的 上岗必备…

2026/11/13 6:37:24

南京特种工报考官方回应:怕被中介坑?这些细节必须知道

南京特种工报考官方回应:怕被中介坑?这些细节必须知道 你是不是也和我一样,看到“南京特种工报考”几个字就头疼?明明是为了考证,结果一不留神就掉进中介陷阱里。现在官方回应来了,南京特种工报考渠道已经明确,但很多人还是不知道怎么走流程、怕被坑。…

2026/11/13 6:37:24

饶平电工证报考外省证能转吗?考前押题怎么准备

饶平电工证报考外省证能转吗?考前押题怎么准备 之前考的证在外省能不能转过来?这个问题困扰了不少已经在外地工作的饶平电工,尤其是那些在广东打工多年、打算把证书转回老家继续使用的考生。别急,今天就来聊聊饶平电工证报考的具体流程、证书互认问题,还…

2026/11/13 6:32:24

船厂电工要什么电工证 内部消息告诉你怎么考更靠谱

船厂电工要什么电工证 内部消息告诉你怎么考更靠谱 你现在是不是正坐在电脑前,手里拿着船厂电工岗位的招聘信息,上面写着“必须持有低压电工证”?别急,这不是难搞的事儿,也不是“内部消息”藏着掖着的“秘籍”,今天就给你说清楚船厂电工要什么电工证,…

2026/11/12 20:35:13

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/13 0:01:06

办上海高压电工证良心建议:别被中介坑了,自己看这篇就够了

办上海高压电工证良心建议:别被中介坑了,自己看这篇就够了 你是不是也像我一样,第一次听说“高压电工证”这个名词,就感觉一头雾水?其实很多人都跟我一样,不知道去哪报名、怕被中介坑,结果花了冤枉钱还考不上。今天我就从一个在商丘培训过的学员角度,…

2026/11/13 0:01:06

黎里考电工证在哪里值不值得考

黎里考电工证在哪里值不值得考 之前考的证在外省能不能转过来?这是很多在外地工作、准备回老家发展的朋友最关心的问题。特别是在黎里地区,很多从事电力相关工作的朋友,都面临这样一个难题: 外省的电工证能否在本地使用?值不值得考?…

2026/11/13 0:01:06

毕节哪里考电工证 怎么报名学历不高也能上手

毕节哪里考电工证 怎么报名学历不高也能上手 你是不是也和我一样,学历不高,想着考个电工证,但又担心自己条件不够,怕报不上名?其实不然,只要符合条件,学历不高也能考电工证。今天就来聊聊【毕节哪里考电工证】这个问题,还有怎么报名,让你一步到位不…

2026/11/12 22:10:13

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/12 9:51:42

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑