几天前,我刚刚在同一论坛上分享了对计算机视觉硬件价格的担忧(请参阅哪些主要因素/功能可以解释大多数工业计算机视觉硬件的高价格?),我认为但需要相关职位。因此,我们开始吧。
这里有一些我要构建的整体扫描仪需要考虑的细节:
空间有限:我的整体扫描仪无法大于3英尺的立方体。
小物体:我要扫描的物体不应大于1英尺的立方体。
近距离范围:摄像头应距离该物体大约1英尺。 />室内:我可以在摄像机上安装专用光源(可能固定在暗盒中)
这是我正在查看的立体摄像机/传感器(按价格排序):
两个Logitech网络摄像头(没有特殊型号)
便宜
设置和校准的困难
需要创建自己的API
用于:您要实现的目标
英特尔实感:http://click.intel.com/intel- realsense-developer-kit.html
$ 100
高分辨率:1080p(可能不适用于深度感应)
最小有效范围:0.2 m
未指定视场
适用于:手和手指跟踪
Kinect 2.0:https://www.microsoft.com/zh-cn/kinectforwindows/
$ 150
低分辨率(用于深度感应):512 x 424
最小工作范围:0.5 m
出色的视野:水平70°,垂直60°
///////////////////////////////////////////////////////////////////////////// $ 380 >具有高FPS功能的普通分辨率:640 x 480 @ 60 FPS
未指定最小范围
良好的视野:水平58°,垂直45°
用于:3D扫描(平板电脑和移动设备)
ZED摄像头:https://www.stereolabs.com/zed/specs/
$ 450
具有高FPS功能的超高分辨率:2.2K @ 15 FPS(即使用于深度感应)和720p @ 60 fps
最小范围不可行:1.5 m
杰出的视野:110°
适用于:人类视觉模拟
DUO Mini LX:https://duo3d.com/product/duo-minilx-lv1
$ 595
具有高FPS功能的正常分辨率:640 x 480 @ 60 FPS
最小可行范围:0.25 m(参见https://stackoverflow.com/questions/27581142/duo-3d-微型传感器实验室)
现象视野:170°(低失真)
适用于:通用工程
Bumblebee2 :http://www.ptgrey.com/bumblebee2-firewire-stereo-vision-camera-systems
太贵了(甚至不值得一提)
>
注意:所有价格均为2015年4月18日的价格,并可能会随着时间的推移而变化。
如您所见,有些价格确实不错,但似乎没有一个是完美的为任务。实际上,ZED似乎总体上具有最佳规格,但缺乏最小范围(因为它是为远程应用而设计的大型基线相机)。另外,DUO Mini LX似乎是最适合我的情况,但是与ZED生成真正准确的深度图不同,ZED似乎缺乏精度(较低的分辨率)。它可能对接近检测很有用,但对3D扫描却不利(我认为)。我也可以尝试使用两个简单的网络摄像头来构建自己的实验性立体摄像机,但是我不知道从哪里开始,我认为我没有足够的时间来解决我将要面对的所有问题。我现在陷入了一个巨大的困境。理论上和程序上)?我将使用C ++和OpenCV(我已经使用过很多)和/或所选相机随附的API(如果适用)。
您应该使用静态相机捕获运动物体还是使用移动相机捕获静态物体?
我应该将某些东西与立体相机(例如激光器)结合使用吗?
使用两个以上的相机是否有利可图? /传感器?
分辨率,FPS和全局快门在3D扫描中真的很重要吗?
我应该买什么相机(也可以是我没提到的东西,如果可能的话,最大价格在500美元以内) ?我的主要标准是可以从近距离点生成准确的深度图的相机。
感谢您的帮助!
#1 楼
我最喜欢的是《学习OpenCV》一书。它具有梦幻般的立体声/ 3D部分,从头开始介绍概念。如果您在大学里,也许可以从图书馆网站上找到可用的数字版本。
具体取决于您如何将扫描图像组合成完整的3D点聚焦(如果需要360度视角) 。)总的来说,移动相机通常比移动物体困难。
激光可以帮助很多。看看几年前的MakerScanner(免责声明,我设计了它)。在如此受控的环境中,我怀疑是否值得。
解决方案,是的,具体取决于您的扫描技术。使用MakerScanner之类的工具,您可以在激光线上使用亚像素插值,以达到令人惊讶的良好准确性,从而减少了对高分辨率图像的需求。如果您处于受控环境中,可能不需要担心FPS(即扫描速度较慢)。
您可以考虑将gPhoto2与定点摄影机配对,就像本页上的一门大炮一样,只需很少的钱就可以为您提供令人难以置信的精美图像。实时性不高,但是我不清楚您是否需要它。
#2 楼
PCL库具有3D扫描所需的所有功能,并具有完整的GPU管线,请看一下kinfu。这是一些有关3D扫描的教程。也可以看看MeshLab,看看如何手动执行。
任何方法都可以。在平台上旋转对象时,您可能会获得有关对象位置的更多信息,从而使配准步骤更加可靠(请参阅教程)。但是无论如何,所有的扫描算法步骤都是相同的。
我不建议您使用立体摄像机或单个移动摄像机(运动方式的结构)进行3D扫描。结构化的光传感器和飞行时间传感器将为您带来更好的结果。
有可能。结果可能会稍微好一些。更多数据=>更好的结果。
分辨率和FPS-是的。但是您需要功能更强大的计算机来处理所有数据。如果要达到亚毫米精度或重建纹理,则根据所使用的扫描算法,全局快门以及受控的照明和曝光非常重要。但是我一开始就不会为之烦恼。根据您的最小/最大范围要求,预算,处理能力,SDK可用性选择一个。目前最容易使用的是Primesense / ASUS相机。 ROS / OpenCV / PCL-全部支持这两个相机和Kinect,但有一点点黑客攻击:
Kinect 1、2
胭脂红1.082、1.09或Asus Xtion
Creative Senz3D(基于SoftKinectic模块)
Structure.io
英特尔实感
PMD Pico
ESPROS
评论
$ \ begingroup $
感谢您的详尽回答。关于PCL库,测试可能会很有趣,但是我想到了要使用OpenCV和自定义DirectX引擎设计自己的点云生成器/对象查看器(我有这样做的知识)。另外,您能否详细说明为什么立体声传感器不如SL或ToF设备适合3D扫描?顺便说一下,PMD Pico相机真的很有趣。
$ \ endgroup $
–Golitan11
15年4月29日在19:53
$ \ begingroup $
到目前为止,即使是最好的视差算法也会犯很多错误。我们已经尝试了ZED相机和我们自己的立体声模块,它会产生很多假阳性(即填充孔)和假阴性(看不到深度不足的纹理特征)区域。而且您无法可靠地摆脱它们。立体声相机更适合于室外远距离应用,ToF和SL不能在阳光直射下工作,但立体声通常会在室内失效,因为有时纹理不足,有时规则的模式会使算法退化。
$ \ endgroup $
– DikobrAz
2015年4月29日在20:15
评论
$ \ begingroup $
对于您的应用程序,我还认为激光线投影仪和单个摄像机是最佳选择。您不需要高FPS或全局快门,因为如果需要,您可以扫描得更慢。
$ \ endgroup $
– DrRoboto
15年4月22日在22:12
$ \ begingroup $
使用激光线投影仪和立体声相机而不是单个相机会更好吗?会是两全其美吗?
$ \ endgroup $
–Golitan11
2015年4月25日在16:21
$ \ begingroup $
您可以做得更好,是的,但是与安装+编码的成本相比,这样做的好处很小。我会完善相机+激光,然后看看您是否仍然需要更好的结果。
$ \ endgroup $
– Abarry
15年4月26日在15:29