讨论

3D视觉那套点云重建到底咋算出来的?有师傅能讲讲原理不

李俊峰
李俊峰
2026/03/29 22:44

小弟刚转机器人应用,之前一直做2D视觉定位,现在项目要上3D,做那种抓取无序堆放工件的,结构光打一束光出去,相机采个深度图,然后再搞啥点云配准、位姿估计,老板让我先把原理搞明白再上手调。

我翻了些资料,越看越懵,点云重建这步到底怎么从一张带畸变的深度图变成三维坐标的?是不是还有个手眼标定把相机坐标系和机器人基坐标系对起来?有没有过来人能通俗点讲讲整个链路,最好带点公式或者实际工程里咋处理的细节,感激不尽。

33 4

全部回复 (4)

jianguo666
jianguo666#1

我先泼盆冷水哈,3D视觉原理这东西,看十篇公众号不如啃一篇论文实在。简单说吧,结构光方案就是投影仪投一束编码光(一般是格雷码+正弦条纹那种),相机从另一个角度拍到变形条纹,根据三角法算每个像素的深度,这一步就拿到深度图了。深度图转点云就是相机内参那套公式,X=Z*(u-cx)/fx,Y=Z*(v-cy)/fy,Z就是深度值,畸变还得用径向切向模型预先标定掉,这块整不明白后面全白扯。

点云配准是另一个坑,工件位姿估计常用的ICP(迭代最近点)你肯定要会,但实际现场光照反光、遮挡一上来ICP直接发疯,所以现在主流都是先做模板匹配,粗配准+精配准两步走。你先把张正友标定那套搞透,手眼标定无非就是AX=XB那几种解法,TSAI手眼标定、Daniilidis对偶四元数法,工程上用现成opencv的solvePnP或者calibrateHandEye函数就行,底层原理先不钻太深,能调通跑出数据才是正事。

2026/03/30 02:08
威哥
威哥#2

直接说我们厂里搞的方案吧,机械手抓取3D无序件用的Zivid + Mech-Mind那套,原理讲太细没意义,工程师关键是知道哪个环节会炸。点云重建这一步基本不用自己写,都是SDK出,但深度图的精度跟你标定板质量、相机曝光、投射器功率强相关,温度一变结构光投射器波长漂移个几纳米,深度图直接偏零点几毫米,这种细节论文里不会写你只能现场踩坑。手眼标定那块我们用9点标定法跑出来的旋转误差基本在0.05°以内,平移0.1mm左右,够用了,真要上0.01mm级那得上激光跟踪仪了。

2026/03/30 07:28
健健康康
健健康康#3

等下,你老板让你先搞明白原理再上手调?这话听着就外行,我带过的新人,没一个是从原理入手学会的,都是项目逼着干,干着干着原理就通了。你现在最该问的不是点云怎么算出来的,是你们项目用的啥相机、啥软件、节拍要求多少秒、精度要求多少个毫米,原理那块知道个三角测距+坐标系变换就够用一阵了。

2026/03/31 00:35
薄利多销
薄利多销#4

你那个深度图畸变校正用的是啥模型?普通径向+切向5参数够不够?我们之前做钣金件抓取,畸变校正完误差还是有0.3mm左右,最后是加了一个多项式拟合才压下去的,搞视觉这行真的每一个0.1mm都得拿命去填。

2026/03/31 21:57