一、3D视觉系统概述:从选型到计算
大家好,我是老张。做3D视觉这行快十年了,踩过的坑比吃过的盐还多。今天咱们聊聊3D视觉系统的起点——相机、光源怎么选,视野和分辨率怎么算。
很多人一上来就问我:“张工,我该买什么相机?” 说实话,这个问题没法直接回答。你得先搞清楚:你要抓什么?抓多快?精度要求多少? 这三个问题搞定了,选型才有方向。
核心原则:选型不是选最贵的,而是选最合适的。我见过太多项目,花大价钱买了高分辨率相机,结果视野不够、帧率跟不上,最后还得换。
1.1 相机选型:别只看像素
相机选型,说白了就是平衡三个参数:分辨率、帧率、感光芯片尺寸。我习惯先定分辨率,再反推其他。
举个例子:你要抓一个100mm×80mm的工件,定位精度要求0.1mm。那视野至少得留点余量,按120mm×100mm算。分辨率怎么算?
X方向像素数 = 视野宽度 / 精度 = 120mm / 0.1mm = 1200像素
Y方向像素数 = 视野高度 / 精度 = 100mm / 0.1mm = 1000像素
嗯,这里要注意:实际选型时,我一般会留20%的余量。所以至少得选150万像素的相机。但如果你要抓的是反光件、透明件,那还得考虑偏振或结构光方案,普通相机搞不定。
| 应用场景 | 推荐相机类型 | 分辨率范围 | 帧率要求 |
|---|---|---|---|
| 静态抓取(慢速) | 面阵CMOS | 500万~1200万 | ≤30fps |
| 动态抓取(传送带) | 面阵全局快门 | 200万~500万 | ≥60fps |
| 高精度测量 | 面阵/线阵 | ≥1200万 | 按需 |
| 大视野粗定位 | 面阵低分辨率 | 30万~130万 | ≥30fps |
个人经验:做3D视觉定位,我强烈推荐全局快门相机。卷帘快门在运动场景下会变形,你想想看,抓取点算出来都是歪的,机器人怎么抓?
1.2 光源选型:光打不好,算法白搞
光源这玩意儿,很多人不重视。我曾经有个项目,相机、镜头都选好了,结果现场一打光,工件表面反光得一塌糊涂,点云全是噪点。后来换了蓝色结构光+偏振片,问题才解决。
光源选型,记住三个原则:
- 颜色匹配:光源波长要和工件材质匹配。金属件用蓝光(450nm),塑料件用红光(630nm),透明件用红外(850nm)。
- 均匀性:面光源比环形光更均匀,适合大面积打光。环形光适合突出边缘特征。
- 结构光 vs 激光:3D视觉常用结构光(散斑或条纹),激光线扫适合高精度轮廓测量。
避坑指南:我曾经在汽车零部件项目上,用了普通LED环形光,结果工件表面有油污,反光导致点云缺失。后来换成同轴光源+偏振,才把油污反光压下去。记住:光源不是越亮越好,而是越均匀越好。
1.3 视野与分辨率计算:公式很简单,但别算错
视野(FOV)和分辨率的关系,说白了就是一个像素对应多少毫米。公式很简单:
像素当量 (mm/pixel) = 视野宽度 (mm) / 图像宽度 (pixel)
例如:视野宽120mm,图像宽1280像素
像素当量 = 120 / 1280 = 0.09375 mm/pixel
嗯,这里有个坑:像素当量不等于定位精度。定位精度还受算法亚像素能力、标定误差、机械重复精度影响。我一般按像素当量的1/3~1/5来估算实际定位精度。
举个例子:像素当量0.1mm/pixel,亚像素精度0.1像素,那理论定位精度是0.01mm。但实际加上标定误差、机械振动,能做到0.03mm就不错了。
| 参数 | 计算公式 | 示例 |
|---|---|---|
| 像素当量 | FOV宽 / 图像宽 | 120mm / 1280px = 0.094mm/px |
| 理论定位精度 | 像素当量 × 亚像素精度 | 0.094 × 0.1 = 0.0094mm |
| 实际定位精度 | 理论精度 × 3~5倍 | 0.0094 × 3 = 0.028mm |
核心结论:选型时,先定实际需要的定位精度,再反推像素当量和分辨率。别被高像素忽悠了,视野、精度、帧率三者必须平衡。
1.4 3D视觉系统知识体系
下面这张图,是我自己总结的3D视觉系统选型知识体系。你想想看,从需求分析到相机选型,再到光源匹配和标定验证,每一步都环环相扣。
我的习惯:每次做新项目,我都会先画一张这样的知识体系图。把需求、相机、光源、视野、标定五个环节列出来,再逐个填参数。这样不容易漏项,也方便跟团队沟通。
1.5 本章小结
好了,第一章的内容就这些。说白了,3D视觉系统选型就是一个平衡游戏:
- 相机选型:分辨率、帧率、感光芯片、快门类型,一个都不能少
- 光源选型:颜色、均匀性、结构光/激光,根据工件材质定
- 视野与分辨率:像素当量算清楚,定位精度留余量
嗯,这里要提醒一句:选型只是第一步。后面还有标定、手眼标定、抓取点计算、验证……每一步都可能翻车。我见过太多项目,选型时算得挺好,一到现场就各种问题。所以,留足余量,多做测试,才是王道。
最后说一句:别迷信参数表。参数表上的精度都是理想环境测的,现场有振动、温度变化、工件公差……实际精度能到参数表的一半就不错了。我一般按参数表精度的1/3来设计系统,这样保险。