我现在一直在考虑使用3D摄影机或立体声摄影机来尝试解决此问题。
我看到了类似的示例,其中使用Kinect(来自Xbox 360)生成深度图,然后将其处理并用于跟踪,但这是从更高的角度进行的,我发现Kinect的最小工作范围为0.5m。
根据我的发现,Kinect使用了红外投影仪和接收器生成深度图,并一直在研究使用类似系统且工作距离最小的Orbbec Astra S现在是0.3m。
我现在的问题:
使用IR投影仪和接收器的3D相机产生的深度图与立体摄影机,例如DUO / ZED类型的选件?
我只是在寻找可能以前使用过这类摄影机的人的一些见识
在侧面,我要这样做正确吗?还是我应该研究飞行时间相机?
----编辑----:
我的目标是计算进出火车门口的人数。我使用OpenCV进行此操作,最初使用背景减法和斑点检测方法。这一次只能对一个人起作用,并且在较高的视角拍摄了一个测试视频,因为遇到了“斑点合并”问题,如下左图所示。
所以下一种方法测试涉及使用从OpenCV的密集光流算法获得的运动向量的光流方法。
从中我可以从较高的测试视频中获取运动矢量并对其进行跟踪,如下图中间的图像所示,由于运动矢量密集且易于检测,因此将它们聚类很容易。
但是,当尝试使用同一系统从较低高度的火车内部拍摄镜头时,它无法提供一致的输出。我之所以这样想,是因为摄像头的高度低,当摄像头和人的顶部之间有足够的空间时,单摄像头跟踪就可以起作用。但是随着距离的最小化,移动的人所占据的框架区域变得越来越大,可以与之进行比较的空间也减少了(或者至少我不了解)。在右下方,您可以看到图像中人衣服的颜色几乎是均匀的,因此在两种情况下光流都无法将其检测为运动。
我是几个月前才开始使用计算机视觉,所以如果我错过了一些关键方面,请原谅我。 ,立体声相机或飞行时间相机,但我不确定每种相机的细节如何最适合我的应用。
#1 楼
“ 3D摄像机”是一种概括,涵盖了可以观察点云或深度图的传感器。某些3D相机(通过各种方式)使用投影仪来提高分辨率和/或减少这些传感器的噪声。
投影仪是否为IR并不重要,这可能是由于取而代之的是红色的激光投影仪,但是使用了红外线,因此人类看不到投影仪。显然,如果您使用红外投影仪,则需要一台红外摄像机来观察投影。
投影仪将投影以下图案:
纹理(投影到场景上以通过在平滑区域上施加纹理(这对于计算立体视差是有问题的)来提供更好的立体视觉功能。
编码后的图案经过解码以产生深度地图。
可以使用各种模式类型(时间复用,空间编码,直接编码或混合)
这两者的一个很好的例子是英特尔Realsense F200(编码光)和R200(立体视觉)。
此外:您应该针对您的应用程序提出一个单独的问题,并缩小范围您的问题范围。
#2 楼
这不是一个答案,而是一系列问题,可让您考虑适当的解决方案。我将像往常一样:-),回显@ BendingUnit22和@Gouda-您似乎被一种特定的解决方法所吸引。就像是,“购买杂货,飞机或直升机的燃油效率更高的方法是什么?”好吧,你能走路吗?如果您要购买新的传感器,则需要学习使用它,这可能会非常耗时。这是一台彩色相机-您可以将图像分为R / G / B分量然后进行斑点检测吗?
更重要的是,现在考虑一下您的问题:两个物体(人)靠近在一起,而您斑点合并,您无法分辨它们。当您获得深度组件时,您期望什么会改变?人们仍然靠近,如果他们碰触穿过门,那么您现在拥有的是两人范围的体积。这与图像斑点合并完全相同,只不过现在您可以使用其他整个维度。
如果您的主要问题是认为相机安装得太低,为什么不将相机安装得更高呢?与购买和学习新的深度视频系统相比,这似乎要简单得多。
要具体回答您的问题,任何提供深度的视频系统都应提供视频和深度。成本,分辨率,准确性等方面会有差异,但是最终您仍然应该获得RGB + D。 Kinect使用结构化的光获取深度图,立体相机使用视差等,但是无论采用哪种方法获取深度,输出(通常)都是相同的。
但是,重申一下-考虑一下该系统实际上可以吸引您的情况,并再次评估您当前的选择。几乎肯定有一种更简单的方法可以做到这一点。
评论
$ \ begingroup $
我认为安装摄像头的门口限制了高度。可以将其安装在更高的位置,但这意味着将其安装在门框外部,这可能会降低解决方案的适用性:对于建筑物,可以将摄像头安装在门上方的墙上更高的位置,但不能将其安装在门上方的墙上。面朝下,否则其视线将部分被墙遮挡。在运输中(例如公共汽车或有轨电车),门上方通常没有太多东西可用来安装相机。门框中的摄像头似乎是一个限制,但必不可少的要求。
$ \ endgroup $
–弯曲单元22
16年7月21日在15:25
$ \ begingroup $
@ BendingUnit22是的,在我的原始帖子中,火车门口的图像是在摄像机安装得尽可能高的情况下安装的。我确实看到了Chuck提出的观点,并且肯定会花一些时间来尝试解决我目前所拥有的问题。
$ \ endgroup $
–詹姆斯·马利特(James Mallett)
16年7月21日在18:39
评论
您的目标到底是什么?您想识别人吗?如果是这样,凭什么财产?还是算一下?考虑到后者,您发布的图像有什么问题?我在静态场景前看到一个白色的像素斑点和一个深蓝色的像素斑点。检测这些有什么问题?我想说OpenCV应该可以。见上面的编辑。添加了使用单镜头相机在OpenCV中使用的历史记录,但在所需的系统位置上却未成功。
哇,很棒的+1。我在计算机视觉方面的经验非常有限,因此我只想发表另一条评论:我的钱仍将用于检测斑点。我猜应该有可能通过考虑衣服的不同颜色来使斑点分开。根据您拥有的图像数量,计算斑点的中间位置并对其运动进行过滤(认为是卡尔曼滤波器),即使它们合并到一张图像中,也可以提供足够的信息来分离斑点。