HALCON点云深度图测量与相机标定脚本实战 - 第1节

1.1 从2D到3D:为什么我们需要第三维?

做机器视觉这些年,我经常被问到同一个问题:2D视觉都这么成熟了,为什么还要折腾3D?

说实话,十年前我也这么想。那时候做手机屏幕检测,一个2000万像素的相机加几个条形光源,就能把划痕、脏污看得清清楚楚。直到我遇到一个项目——检测汽车刹车片表面的平面度。

2D图像里,刹车片看起来平整光滑。但用千分尺一量,中间凸起了0.3毫米。客户说:这不行,装上去刹车会抖。那一刻我才意识到,2D视觉只能看到「有没有」,看不到「有多高」。

核心差异一句话:2D测量的是XY平面上的投影信息,3D测量的是物体表面的真实三维坐标(X,Y,Z)。

你想想看,一个苹果在2D图像里是个红色圆形,但3D点云里它是个球体。圆形和球体,信息量差了多少?

具体来说,3D视觉带来了三个关键能力:

  • 高度/深度测量——平面度、段差、共面性,这些2D搞不定
  • 体积/轮廓计算——料斗里还剩多少物料?焊缝余高多少?
  • 位姿估计——工件在空间里怎么摆的?抓取点在哪?

我个人的习惯是,接到一个新项目先问自己:这个检测任务,2D能解决吗?如果答案是否定的,那就果断上3D。

1.2 三大主流3D视觉技术

目前工业界主流的3D视觉方案,说白了就三种:结构光、双目立体视觉、ToF(飞行时间)。

它们各有各的脾气,选错了方案,项目还没开始就输了一半。

1.2.1 结构光

原理很简单:投影仪打出特定图案(条纹、编码点阵),相机拍下图案在物体表面的变形,通过三角法算出深度。

我在项目中遇到过最典型的案例——手机中框的平面度检测。结构光方案,0.02mm的重复精度,一条中框检测只要1.5秒。

我的经验:结构光适合高精度、小视野的场景。但要注意,反光表面(镜面、透明件)会要命。我曾经被一个镀铬件坑了三天,最后换了蓝色激光才搞定。

1.2.2 双目立体视觉

模仿人眼,两个相机从不同角度拍同一物体,通过视差计算深度。

优势是硬件成本低,两个工业相机加个支架就能干活。但缺点也很明显——对纹理敏感。纯色表面、重复纹理,双目基本歇菜。

我记得有个项目要做纸箱堆垛的3D定位,纸箱表面就是牛皮纸色,啥纹理都没有。双目死活匹配不上,最后换了结构光才解决。

1.2.3 ToF(飞行时间)

发射光脉冲,测量反射回来的时间差,直接算出距离。

ToF最大的优点是快——一秒钟能拍几十帧。适合做动态场景,比如AGV避障、人机协作。

但精度嘛……目前工业级ToF也就做到毫米级,跟结构光的微米级没法比。

技术类型 精度范围 测量距离 速度 典型场景
结构光 0.01~0.1 mm 0.1~5 m 中 精密测量、3C检测
双目立体 0.1~1 mm 0.5~10 m 中 物流分拣、大尺寸定位
ToF 1~10 mm 0.3~20 m 快 避障、人机交互
避坑指南:我曾经见过有人用ToF做精密装配,结果0.5mm的装配公差,ToF的噪声就有1mm。选型时一定要搞清楚:你要的是「能看到」还是「能量准」。

1.3 Halcon在3D领域的定位与优势

说到3D视觉软件,市面上选择不少。OpenCV免费但门槛高,PCL开源但工程化差,各家相机厂商的SDK又太封闭。

Halcon在这中间,找到了一个很舒服的位置。

1.3.1 完整的3D算子库

从点云读取、滤波、分割,到拟合、测量、匹配,Halcon提供了超过200个3D专用算子。你不需要自己造轮子。

我印象最深的是 xyz_to_world_plane 这个算子。做深度图测量时,把点云投影到参考平面,一步到位。换做OpenCV,你得自己写旋转矩阵、投影变换,至少50行代码。

1.3.2 2D+3D融合能力

这是Halcon最让我服气的地方。很多场景下,你需要同时用2D图像找特征,用3D点云量高度。

举个例子:检测芯片引脚共面性。先用2D图像定位引脚位置,再用3D点云测量每个引脚的高度。Halcon里,2D和3D数据共享同一个坐标系,无缝切换。

1.3.3 标定体系成熟

3D视觉的精度,一半靠硬件,一半靠标定。Halcon提供了从相机标定、手眼标定到多传感器标定的完整工具链。

我个人习惯用 calibrate_cameras 做多相机标定,配合 hand_eye_calibration 做机器人手眼标定。一套流程走下来,重投影误差能控制在0.1像素以内。

1.3.4 性能优化

3D点云动辄几百万个点,处理速度是个大问题。Halcon用了多核并行和GPU加速,同样的算法,比OpenCV快3~5倍。

我之前做过一个项目,100万个点的点云做平面拟合,Halcon跑了0.8秒,PCL跑了3.2秒。产线节拍要求1秒以内,只有Halcon能过。

一句话总结:Halcon在3D领域的优势,不是某个算子多厉害,而是「开箱即用」的工程化能力。从标定到测量到输出结果,一条龙搞定。

1.4 本章知识体系

下面这张图,是我自己梳理的3D视觉知识框架。每次带新人,我都会先让他们看这张图。

3D视觉知识体系框架 3D视觉技术 结构光 双目立体视觉 ToF飞行时间 高精度测量 位姿估计 体积/轮廓 Halcon 3D核心优势 200+3D算子 2D+3D融合 标定体系 性能优化 从技术选型到工程落地,3D视觉的核心是「选对方案、标定准确、测量可靠」 Halcon让这三步变得简单、高效、可重复

这张图把本章的核心逻辑串起来了。从上往下看:先了解三大技术,再理解它们能解决什么问题,最后看Halcon如何帮我们落地。

嗯,这就是第一章的全部内容。记住一句话:3D视觉不是2D的替代品,而是2D的补充。什么时候用2D,什么时候上3D,心里有数就行。