6

我正在使用 android camera 开发一个机器人项目。如果在路径中发现任何物体,机器人可以移动并清洁表面。我被困在路径中的物体检测中,我没有使用任何传感器来查找相机和物体之间的距离。我只使用相机来查找路径中的对象。我不想找出路径中对象的形状、类型、颜色。路径中的小物体可以忽略,例如沙子,草等。路径中不应有任何大物体(在下图中的标记部分)

在此处输入图像描述

在使用相机绘画检测对象时,阴影被检测为对象。从上图中,音乐符号被检测为对象。是否有任何付费或开源库可以使用相机查找真实对象检测(如果它可以在 Java 或 c++ 中使用会更有帮助)。我已经尝试过 opencv、javacv、jhlabs、jjil、aviary sdk、jiu、imagemagic 等。但我找不到适合我需要的确切解决方案。如果有人使用此图像处理,请建议我使用 android 相机在真实物体检测中可以做些什么。如果不可能,请给我解释为什么不可能。

我尝试过的可能性:

  1. 人脸识别算法(特征检测):- 基于匹配模式的人脸检测算法。在这种情况下不适用。即,这里的对象可以是任何东西或任何形状。没有匹配的模式。

  2. 物体识别:物体识别也是和patten做同样的这种匹配。我不想识别对象,只是想找出它们是图像中标记部分的对象并且是真实对象(即,不是任何地板画、阴影等)。

  3. 边缘检测:我尝试了不同的边缘检测算法,但这对我来说也不是准确的解决方案。即,绘画和阴影有边缘,所以我们不能假设我们找到的边缘是真实的物体。

4

6 回答 6

4

如果有人使用此图像处理,请建议我使用 android 相机在真实物体检测中可以做些什么。如果不可能,请给我解释为什么不可能。

实时动态目标检测是一个深入研究的领域。

目前,我们现有的算法只能进行模式匹配,并在相机框架内寻找预定义的图像。

现实世界检测的问题在于现实世界太……真实了。任何类型的对象或项目都有很多变体,单个库不可能为它们提供检测。真实世界的检测只有通过机器学习的大量数据生成和训练才能实现,这需要比大多数移动设备提供的更多处理和电池电量。

于 2013-05-20T06:23:48.190 回答
2

您可能想熟悉称为运动结构的技术。如果你有来自同一台相机的一系列照片,间隔时间很短,你可以在照片上获取一些关于场景的 3D 信息。不幸的是,我不知道有哪个库可以为你开箱即用,但这是一个非常流行的问题,所以一些搜索可能会给你一个现成的解决方案。

于 2013-05-20T12:46:25.923 回答
1

在视频监控中做了很多图像分析。首先,您需要定义您需要的成功率。如果您在一张图片上尝试所有这些,那么您可能会意识到这不起作用:)。在视频分析中,您可以搜索一些很好的运动检测算法,这些算法将为您提供某些背景上的所有移动对象。你有一个更困难的情况,你正在移动。您需要以某种方式模拟该背景。如果你想让你的机器人在一些色彩丰富的背景上移动,比如油漆,你怎么知道什么是没有深度感知的物体。也许尝试一些有阴影的东西,但没有。毕竟,这些算法都非常密集,结果越好,你需要的 CPU 能力就越多。Android 并非为此而生。

底线是您需要更多地调整您的需求/资源。

PS。如果你最终像你第一次说的那样做到了,我们会在一艘游艇上见到你,那里有一些漂亮的模特

希望这对您有所帮助并享受您的工作。

于 2013-05-20T06:29:33.163 回答
1

如果相机与地面平行并且地面通常是平坦的,您可以考虑物体在视频帧上的位置来估计物体的距离。物体的距离越远,它就会越靠近图像的顶部。实际上,您可以像我们人类一样估计带有一些噪声的以米为单位的值。

我认为您识别“真实物体”的问题可以翻译为:“找到不平坦(到地面)的视觉元素,换句话说,找到具有一定高度的物体”。

您是否考虑过立体视觉方法?使用两个摄像头,您可以更妥善地处理三维问题。

于 2013-05-27T13:33:45.347 回答
0

我认为你应该使用不止一台相机.....给图像提供二维视图......希望它会有所帮助......

于 2013-05-20T10:07:21.273 回答
0

您可以使用 Tensorflow 和 Keras 训练或使用预训练模型深度学习模型,首先您必须尽可能多地收集对象数据,确保它是从现场收集的,然后尝试根据需要使用不同架构训练模型。您可以调整超参数并将模型转换为 Tensorflow lite 以在 android 应用程序中打包模式。

如需更多参考,您可以访问tenserflow

这是我发现解决计算机视觉问题的最简单方法。

于 2019-06-30T07:36:20.517 回答