首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检测对象是否为3D对象?

如何检测对象是否为3D对象?
EN

Stack Overflow用户
提问于 2016-12-28 13:09:46
回答 3查看 866关注 0票数 5

我正在尝试构建一种解决方案,可以区分高度约为200微米的3D纹理表面和常规的文本打印。

下图是带纹理的曲面。这里的黑色是基面。

常规文本打印将是相同3D纹理表面的2D打印。

编辑

解决这个问题的最初想法可能是这样的:

这里的一般想法是,在3D对象的不同角度拍摄的图像与在类似条件下拍摄的2D对象的图像相比,彼此之间的相关性较小。

一种可能的验证方法是: 1.拍摄2张照片,周围有足够的光线(相机的闪光灯)。这些图像的拍摄角度应该尽可能远离物体平面。比方说,一张在相机前拍摄,左侧45度,另一张在右侧,角度相同。

提取ROI,透视校正它们。找到这两个图像合成的GLCM。如果GLCM的对比度低,那么它将是3D图像,否则是2D图像。请原谅语言,开放供编辑建议。

EN

回答 3

Stack Overflow用户

发布于 2017-01-15 06:28:55

这里的一般想法是,在3D对象的不同角度拍摄的图像与在类似条件下拍摄的2D对象的图像相比,彼此之间的相关性较小。

一种可能的验证方法是: 1.拍摄2张照片,周围有足够的光线(相机的闪光灯)。这些图像的拍摄角度应该尽可能远离物体平面。比方说,一张在相机前拍摄,左侧45度,另一张在右侧,角度相同。

  1. 提取感兴趣区域,透视校正。
  2. 找到这两幅图像合成的全局最大似然比。如果GLCM的对比度低,那么它就是3D图像,否则就是2D图像。

请原谅语言,开放供编辑建议。

票数 0
EN

Stack Overflow用户

发布于 2017-01-17 08:59:41

如果你能得到不同角度或更锐利的角度或不同的光照条件的另一幅图像,你可能会得到结果。然而,使用两个不同角度的图像与校准相机可以得到立体视觉图像,这很容易解决您的问题。

票数 0
EN

Stack Overflow用户

发布于 2017-01-17 23:48:46

这是一个非常复杂的问题,没有一个即插即用的解决方案。使用光线(结构或激光)或阴影来探测0.2毫米的高度几乎肯定不会以可接受的置信度工作,无论你拍摄了多少“照片”。(这只是我个人的直觉,在计算机视觉中,我们通过实际测试来验证某些东西是否工作)。

GLCM是一个很好的描述纹理的功能,但据我所知,它是用来验证纹理中是否有模式的,所以,如果有某种重复的模式,我相信它会为2D打印文本输出一个正值。

我会让计算机学习什么是文本,什么是纹理。只需提取大量的3D和2D数据,并使用机器学习引擎来了解哪些是什么。如果特征空间足够丰富,它可能能够找到一种方法来区分一个和另一个,而我们的大脑无法做到这一点。特征空间应该由边缘和颜色特征组成。

如果系统环境是稳定和可控的,这种方法将特别有效,因为训练数据将与测试数据非常相似。

对于这个问题,我会从计算颜色和边缘特征(不同边缘和颜色通道上的局部图像像素和)开始,然后尝试增强分类器。当涉及到机器学习时,Boosted分类器并不是最先进的,但它们擅长不过拟合(这意味着您可以随心所欲地插入尽可能多的数据),并且很可能在稳定的环境中工作。

希望这能帮上忙

祝好运。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41355687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档