草庐IT

小昂说“视”| 3D相机你了解多少

PIQS2021 2024-05-18 原文

说起3D,大多数人第一时间想到的应该就是电影院经常会用到的3D眼镜,戴上后电影画面更加立体逼真,那么它和我们今天要说的3D相机有什么相似之处呢?

实际上,两者虽然都有个3D的名头,但是基本上毫无关联。观影时用到的3D眼镜利用的是偏振光原理,左右眼的镜片分别采用了不同偏振方向的偏振光镜片,在观看经过特殊手法拍摄的3D电影时,左右眼会接收到两组不同的画面,大脑会将各个画面叠加起来,从而产生立体的观影效果。

所谓3D相机,就是能够三维立体成像的相机。我们知道2D是一个平面概念,肉眼看到一本书或一张纸在桌子上放着,那就只能看到表面的东西,书本或者纸张的厚度我们无法通过肉眼判断,2D相机只能获取像素尺度下的2D平面图像信息;3D则是空间概念,三个维度,x,y,z三个空间坐标,它可以检测出拍摄空间的实际距离,通过得到的数据我们可以还原出被测量物体的三维信息

在视觉检测中,除了采集二维图像的相机外,也经常使用到3D相机。近几十年来,2D相机被广泛地应用于读取条码、目标跟踪等领域,可以做印刷、位置等方面的检测,也可以做污点、计数等方面的检测,配套的检测技术也已经相当成熟,但是涉及到高度或深度检测时就无能为力了,这也就有了3D相机的用武之地。

3D相机成像原理多种多样,主流的3D成像方案采用的有双目立体原理、相移法、编码结构光、光谱共焦法、三角反射法等等,在对光源的要求上各有所异,成像的质量与精度也千差万别。

昂视LP系列3D激光轮廓仪便是利用了三角测量原理,利用半导体激光器向待测量目标物体表面发射光束,镜头聚集目标物体反射的光线并在感光元件上形成图像,光点在感光元件上的位置会根据目标物体的距离变化而变化,系统对该变化进行估算,估算结果就是目标物体的位置结果。

经过综合调试后的这款3D激光轮廓仪精度高速度快且稳定性强,不受目标物体形状、结构的限制,可对物体的外观、3D形貌进行扫描,高效、快速获取各个点的数据,同时测量宽度、位置、高度、高度差、倾斜度及检测面积、体积等,在速度、精度和成像效果等关键性能方面均达到了行业领先水平,可广泛应用于3C电子、锂电、汽车、医疗、食品等行业。

在实际应用中,3D相机的身影越来越常见。日常生活中我们经常见到的人脸识别门禁、商超中自助结算的刷脸支付、自动贩卖机的刷脸支付等等都离不开3D相机的应用,这也是为什么当我们仅仅拿着一张二维的照片去识别时毫无反应。在工业流水线上,3D相机不仅可以检测2D相机能检测的东西,还能进行如点胶检测、焊接质量检测、连接器针脚位置检测等三维检测,完美弥补2D相机在高度、深度等方面的短板

随着3D相机应用范围越来越广泛,在工业自动化生产过程中发挥着越来越亮眼的作用,企业在转型智能化生产的过程中也愈发重视。那应该如何挑选一款合格且能够最大限度发挥自己核心竞争力的相机呢?我们都知道“没有最好的,只有最合适的”,一款3D相机的挑选要综合考虑视野、工作距离、成像质量、应用环境、预算成本等等方面,前期的现场实测以及相关的软件操作都是需要提前做好功课的,适合别人但不一定适配您,因此切忌盲目跟风。

当然,对于这些专业领域了解不深又有迫切需求的您,也可以把项目交给专业的团队为您提供科学的智能检测解决方案,昂视作为深耕机器视觉多年的自动化领域领先提供商,能根据客户现场情况为您提供整体智能检测解决方案,挑选最适合的3D相机

有关小昂说“视”| 3D相机你了解多少的更多相关文章

  1. ruby - 可以通过多少种方法将方法添加到 ruby​​ 对象? - 2

    当谈到运行时自省(introspection)和动态代码生成时,我认为ruby​​没有任何竞争对手,可能除了一些lisp方言。前几天,我正在做一些代码练习来探索ruby​​的动态功能,我开始想知道如何向现有对象添加方法。以下是我能想到的3种方法:obj=Object.new#addamethoddirectlydefobj.new_method...end#addamethodindirectlywiththesingletonclassclass这只是冰山一角,因为我还没有探索instance_eval、module_eval和define_method的各种组合。是否有在线/离线资

  2. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  3. FOHEART H1数据手套驱动Optitrack光学动捕双手运动(Unity3D) - 2

    本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01  客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02  数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit

  4. Unity 3D 制作开关门动画,旋转门制作,推拉门制作,门把手动画制作 - 2

    Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u

  5. [Vuforia]二.3D物体识别 - 2

    之前说过10之后的版本没有3dScan了,所以还是9.8的版本或者之前更早的版本。 3d物体扫描需要先下载扫描的APK进行扫面。首先要在手机上装一个扫描程序,扫描现实中的三维物体,然后上传高通官网,在下载成UnityPackage类型让Unity能够使用这个扫描程序可以从高通官网上进行下载,是一个安卓程序。点到Tools往下滑,找到VuforiaObjectScanner下载后解压数据线连接手机,将apk文件拷入手机安装然后刚才解压文件中的Media文件夹打开,两个PDF图打印第一张A4-ObjectScanningTarget.pdf,主要是用来辅助扫描的。好了,接下来就是扫描三维物体。将瓶

  6. [工业相机] 分辨率、精度和公差之间的关系 - 2

    📢博客主页:https://blog.csdn.net/weixin_43197380📢欢迎点赞👍收藏⭐留言📝如有错误敬请指正!📢本文由Loewen丶原创,首发于CSDN,转载注明出处🙉📢现在的付出,都会是一种沉淀,只为让你成为更好的人✨文章预览:一.分辨率(Resolution)1、工业相机的分辨率是如何定义的?2、工业相机的分辨率是如何选择的?二.精度(Accuracy)1、像素精度(PixelAccuracy)2、定位精度和重复定位精度(RepeatPrecision)三.公差(Tolerance)四.课后作业(Post-ClassExercises)视觉行业的初学者,甚至是做了1~2年

  7. ruby - 使用 Ruby,计算 n x m 数组的每一列中有多少个 true 的简单方法是什么? - 2

    给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in

  8. ruby - 了解在 Ruby 中与 lambda 一起使用的 inject 行为 - 2

    我经常将预配置的lambda插入可枚举的方法中,例如“map”、“select”等。但是“注入(inject)”的行为似乎有所不同。例如与mult4=lambda{|item|item*4}然后(5..10).map&mult4给我[20,24,28,32,36,40]但是,如果我制作一个2参数lambda用于像这样的注入(inject),multL=lambda{|product,n|product*n}我想说(5..10).inject(2)&multL因为“inject”有一个可选的单个初始值参数,但这给了我......irb(main):027:0>(5..10).inject

  9. ruby-on-rails - 如何测试自己对 Ruby/ROR 的了解? - 2

    是否有self验证的问题列表。看着那个,我可以确定我知道。我应该复习一下。在学习的过程中,我列了一个这样的list,但它只包含我在某处听说过的项目。我需要一段时间才能找到新的东西。 最佳答案 以下是针对ruby​​和Rails的一些测试列表。证书名称:RubyonRails谁提供:oDeskIncorporation认证费用:免费网站:https://www.odesk.com/tests/985?pos=0证书名称:RubyonRails提供者:Techgig.com(TimesBusinessSolutionsLimited(T

  10. ruby-on-rails - 了解 "attribute_will_change!"方法 - 2

    我想覆盖store_accessor的getter。可以查到here.代码在这里:#Fileactiverecord/lib/active_record/store.rb,line74defstore_accessor(store_attribute,*keys)keys=keys.flatten_store_accessors_module.module_evaldokeys.eachdo|key|define_method("#{key}=")do|value|write_store_attribute(store_attribute,key,value)enddefine_met

随机推荐