什么是3D相机?

点击上方“计算机视觉工坊”,选择“星标”

干货第一时间送达

1.前言

无论2D相机还是3D相机,提到相机不可避免地涉及到机器视觉。

机器视觉与计算机视觉并没有一个明显的定义去划分。但在实际应用中,应用于工业检测的时候更多地被称为机器视觉而非计算机视觉。这时候,机器视觉更多地偏向或者专指以图像传感器为采集软件,辅助以光源,PLC甚至机器人等外部设备,以实现特定的检测或定位等特定目的。如果你从事的是机器视觉行业则避免不了PCL,机器人,编码器,光栅尺,光源,镜头等这些图像之外的硬件设备打交道。

另外还有一些领域,图像识别,物体检测和跟踪,自动文档分析,面部检测和识别,计算摄影,增强现实,3D重建以及医学图像处理等也会被称为机器视觉。

这篇文章所讲述的内容更多地以工业检测领域的机器视觉的角度出发。

2.2D视觉回顾

在以往的机器视觉领域通常是指2D的视觉系统即通过摄像头拍到一个平面的照片然后通过图像分析或比对来识别物体,从而应用缺陷、瑕疵,位置、OCR,条形码等。

以2D视觉检测为例,一个典型的基于2D相机的机器视觉检测系统通常如下组成:

机器视觉系统组成

其中,属于视觉部分的部件主要有:相机,镜头,光源,采集卡。

在机器视觉领域,每一个部件都是一门学问,例如对光源的选择上,常见的光源形状有环光,条光、面光等;从颜色上划分,则可以分为单色光源和RGB光源。从打光方式上刻有正面打光、侧面打光、背面打光等方式。

不同的样件和不同的目的决定了哪一种光源和打光方式合适,如何选择合适的打光方案既依赖于经验,例如对于金属件,可能蓝光最好,如果要检测边缘,则红色背光效果最佳,也依赖于实际效果的对比,对于一个具体的视觉检测项目,最佳的打光效果要靠实际进行打光的效果来进行判断和确定。

但即便2D视觉是一门如此高深的学问,它在应用上也有很大的局限。这种局限很大一部分来源于,真实世界的物体在经过镜头的透视投影后,相机能够捕捉到的只有2D的平面信息。对于一些涉及到3D信息的处理,它是无能为力的,因此3D相机和3D视觉的出现和发展便是大势所趋。

3.3D相机与2D相机的区别

3D相机与2D相机的最大区别在于,3D相机可以获取真实世界尺度下的3D信息,而2D相机只能获取像素尺度下的2D平面图像信息,以下面的两幅图为例:

上面的左图是图像处理人员都知道的Lena,这种图片是2D相机获取的一张RGB图像。而右图是一张由深度相机获取的深度图。尽管看起来黑乎乎的一片,但我们依然可以看出图像的形状。

可能有的小伙伴看到这里,心中的疑惑更大了。这不还是一张2D图吗。的确,这还是一张2D图像,但这种图像上存储的不是由光照决定的灰度信息,而是由距离决定的深度信息。

众所周知,世界坐标系下可以由(X,Y,Z)三个轴来表示,空间中的任何一个点都可以由(x,y,x)来表示。实际上作为一个合格的3D相机,它传输给你的必然是X,Y,Z方向的真实信息,例如,有的3D相机会得到X,Y,Z图。其中,Z图便是我们所谓的深度图,而其它两张图分别存储着X,Y方向的真实信息。

如果只有一张深度图,那么其它两个轴方向的信息也必然可以由某个公式给出。这便是被称为3D相机的原因。我们以一款工业3D相机Gocator为例:

Gocatro生成的深度图

3D相机Gocator的X,Y,Z数据的获取

Gocator的深度图可以直接获取,而X,Y方向的信息与行和列按一定的公式进行生成。值得注意的是,这个公式一般由生产该3D相机的厂商决定,并不通用。我们再以民用级别的深度相机kinect为例,它的X,Y方向的信息可以按以下公式来获取

其中,d为深度图存储的信息,(u,v)为像素坐标,()为相机内参,相机内存均可标定得知。在实际使用中,厂商会提供标定好的参数或者现成的API。

Kinect的API参数,用于生成X,Y,Z图

通过3D相机得到的数据,我们可以还原出被测量物体的三维信息,进而用于后一步的处理。

4.3D相机的应用

随着科技的发展和检测需求的提高,3D视觉越来越在机器视觉行业占有重要的地位,与传统的2D相机相比,3D相机能获取三维信息,可以实现2D视觉无法实现或者不好实现的功能,例如检测产品的高度、平面度、体积等和三维建模等。

轮胎划痕很纹理检测

体积检测

路面系统检测

缺陷检测

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「计算机视觉工坊」公众号后台回复:深度学习,即可下载深度学习算法、3D深度学习、深度学习框架、目标检测、GAN等相关内容近30本pdf书籍。

下载2

在「计算机视觉工坊」公众号后台回复:计算机视觉,即可下载计算机视觉相关17本pdf书籍,包含计算机视觉算法、Python视觉实战、Opencv3.0学习等。

下载3

在「计算机视觉工坊」公众号后台回复:SLAM,即可下载独家SLAM相关视频课程,包含视觉SLAM、激光SLAM精品课程。

重磅!计算机视觉工坊-学习交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hi~ 可私信我了解后再进行下载~ 本资源上传时,遗漏了两个文件,分别是:data_filter_keep_order_output_index.hdvp 以及 IntensityImageToPiontsCloudImage.hdvp,购买了该资源的同学,给我留言,我会私信发给你们。 1.基于halcon算法平台; 2.提供深度图源文件以及解压密码; 3.代码预览: */****************************** * @文档名称: 基于云的平面度测量。 * @作者: hugo * @版本: 1.1 * @日期: 2021-6-20 * @描述: 该方法支持云的平面的平面度测量。 ********************************/ dev_update_window ('on') dev_get_window (WindowHandle) read_image (imageReal, './replay_38893_2021-6-7.tif') xResolution:=0.06 yResolution:=0.06 zResolution:=0.001 ScaleFactor:=[xResolution,yResolution,zResolution] *采样区域1 create_drawing_object_rectangle2 (300, 120, rad(90), 30, 20, DrawID) set_drawing_object_params (DrawID, 'color', 'forest green') set_drawing_object_params (DrawID, 'line_width', 1) attach_drawing_object_to_window (WindowHandle, DrawID) .......... *平面度 height:=theta/zScale*0.001 *可视化高度差效果 visParamName := ['lut','alpha_0','intensity','color_1'] visParamValue := ['hsi',0.7,'coord_z','yellow'] Labels := ['','平面度:'+height+'mm',''] objs:=[ObjectModel3Ds[2],final_ObjectModel3Ds] visualize_object_model_3d (WindowHandle, objs, [], [], visParamName, visParamValue, 'Edited by AmazingRobot+', [Labels], '', PoseOut) *stop () clear_object_model_3d (plane_balls) for Index := 0 to |final_ObjectModel3Ds|-1 by 1 clear_object_model_3d (final_ObjectModel3Ds[Index]) endfor return () 谢谢您的信任~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值