让我们以杯碟勺为例。杯子躺在盘子的顶部。但是汤匙在杯子里。我们如何区分这两种情况?判断A是包含在B内还是位于B之上的标准是什么?
我正在尝试使用kinect来解决它。
#1 楼
其实我们没有。这是无数视觉错觉的来源。通过一生的经历,我们学习上下文,该上下文告诉我们什么时候一件事情可以放在另一件事情上。但是即使那样,雕塑也可以用来欺骗我们。例如,它看起来像是以某种方式组织的盘子,杯子和勺子,但实际上并非以上所述。 3D打印的Escher件就是一个很好的例子。Kinect具有增强的深度感测能力。有了这样的信息,您也许可以做出更好的决定,但是我们仍然可以构想会欺骗系统的结构。我无法说说存在哪些CV方法来协助您的工作,但是我知道ML世界的深度学习已经在这里取得了进展。
#2 楼
当您想针对特定对象类别(例如杯碟勺子)而不是任何通用对象对解决此问题时,问题就容易得多。我也认为在这种情况下不会发生DaemonMaker提到的退化,因为我们有深度图像而不是2D图像。当您知道场景中的物体并且您有深度时图像,可以估计每个对象的完整3D方向(姿势)。如果所讨论的对象是刚性的,则使用某种ICP可能足以达到这种姿势。对于对象不是刚性的(人)或您不知道对象的确切特定模型(例如茶杯还是咖啡杯)的更困难的情况,您应该参考一些计算机视觉/ Kinect文献。
一旦有了对象的3D姿势,回答对象-对象3D位置查询就会更容易。
评论
$ \ begingroup $
好,很抱歉,我的回复很晚...我尝试使用凸包方法,发现3D中两个区域的凸包。然后,找到他们的交点数量。如果它很高,则一个对象位于另一对象内部。如果不是,则它可能在它上面,也可能不在上面。因此,我通过找到两个对象区域的2D凸包来测试交点。如果一个对象位于另一个对象之上,这给了我。有没有比这更好的方法了?
$ \ endgroup $
– swagatika
13年7月27日在11:53
评论
$ \ begingroup $
有趣。是否没有考虑深度的图像识别算法?如果可以看到有汤匙和杯子,我认为足够精确的距离传感器数据和对杯子的3D形状的充分理解将可以确定这些数据。
$ \ endgroup $
–乔·贝克(Joe Baker)
2012-12-22 22:53
$ \ begingroup $
就像我说的那样,我无法谈论可用的CV方法。我倾向于同意,如果我们有足够准确的深度数据,并且知道我们在看着杯子和勺子,那么我们可以做出确定。症结在于我们正在看杯子和勺子。我们怎么知道的?如果我们仅分析单张照片,则不能确切地说是这种情况。即使是人类,如果我们没有先验知识,我们也只能说出我们认为的看法。
$ \ endgroup $
– DaemonMaker
2012-12-22 23:03: