问题标签 [object-detection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
27701 浏览

c - OpenCV cvFindContours - 如何分离轮廓的组件

我一直在玩 OpenCV,经过大量的反复试验,我设法学会了如何检测照片中的圆圈(硬币)。一切都很好,除了我将硬币直接放在彼此旁边(如下所示,忽略第二张图片倒置的事实)。

原始照片 找到轮廓

似乎是因为硬币靠得很近,cvFindContours 认为它​​们是同一个物体。我的问题是如何将这些轮廓分成单独的对象,或者获取已经分离的轮廓列表。

我用于 cvFindContours 的参数是:

任何帮助或建议将不胜感激。

0 投票
2 回答
2738 浏览

java - OpenCV对象检测通过级联java(不是人脸检测)

亲爱的朋友们,我在 Java 中使用 openCV。一切都很好,但问题是受限于 API,我无法为我的特定任务创建 C 文件(我对 C/C++ 不太熟练,而且我很长时间没有使用它们),因此我必须解决我对 haar cascade xml 文件的问题...

我的任务是检测简单的物体而不是脸,只是简单的物体,比如桌子上的杯子,墙上的时钟......

我认为边缘检测是可能的,但我没有为这个简单的检测东西找到任何级联。我很难用谷歌搜索它,因为当我搜索对象检测时,它总是会给出人脸检测的东西......

你能建议我解决这个问题吗?您的帮助将不胜感激。问候。

0 投票
1 回答
60873 浏览

c++ - 使用 OpenCV 和机器学习的简单对象检测

我必须使用 OpenCV 编写一个对象检测器(在本例中是一个球)。问题是,在谷歌上的每一次搜索都会给我返回一些带有人脸检测的东西。所以我需要关于从哪里开始,使用什么等方面的帮助。

一些信息:

  • 球没有固定的颜色,它可能是白色的,但它可能会改变。
  • 我必须使用机器学习,不一定要复杂可靠,建议是 KNN(更简单、更容易)。
  • 经过我所有的搜索,我发现计算样本球图像的直方图并将其传授给 ML 可能很有用,但我主要担心的是球的大小可以并且将会改变(离相机越来越近)和我不知道要传递给 ML 为我分类的内容,我的意思是.. 我不能(或者我可以吗?)只测试图像的每个像素以适应每种可能的尺寸(比如说,从 5x5 到 WxH ) 并希望能找到积极的结果。
  • 可能会有不均匀的背景,比如人、球后面的布等等。
  • 正如我所说,我必须使用 ML 算法,这意味着没有 Haar 或 Viola 算法。
  • 另外,我想使用轮廓在 Canny'ed 图像上找到圆圈,只需找到一种方法将轮廓转换为一行数据来教授 KNN。

    所以...建议?

    提前致谢。;)

0 投票
1 回答
702 浏览

javascript - Javascript xmlHttpRequest 对象检测与 try..catch

在检查特定浏览器是否支持 AJAX 时,我通常会做对象检测:

但是,每当我查看更资深的开发人员编写的代码时,我更有可能看到的是 try-catch 块:

我知道有些人说 try..catch 比较慢,但是如果这几乎只是一个偏好问题,是否有一种约定/更“标准”的方式来做到这一点?很久以前,当我在innerHTML(非标准)与DOM(标准)之间做出决定时,我也处于同样的境地。感谢您的时间。任何建议将不胜感激。

0 投票
1 回答
1702 浏览

opencv - 用opencv过滤掉目标检测的误报

我使用 opencv 的 HaarDetectObjects(...) 来检测图像中的对象。该函数返回图像中可能包含对象的区域的坐标,问题是我只想检测图像中对象的单个实例,我无法知道该函数返回的哪个结果是“最好的”。有没有办法让我按照实际包含对象的概率对结果进行排序?或者可能定义结果必须通过的某种阈值?基本上,我需要一种过滤掉误报的方法。

我不限于使用 opencv 或 HaarDetectObjects,如果有人对其他库或其他对象检测方法有建议,欢迎。

谢谢你。

0 投票
3 回答
10188 浏览

opencv - 带跟踪的 Opencv 运动检测

我需要在网络摄像头的视频帧中进行强大的运动检测和跟踪。背景总是一样的。目的是识别物体的位置,如果可能的话没有阴影,但不那么迫切需要去除阴影。我已经尝试过opencv算法进行背景减法和阈值处理,但这仅取决于一张图像作为背景,如果背景在亮度(或相机自动对焦)方面发生了一点变化,我需要该算法强大亮度或一些阴影的变化很小。

0 投票
2 回答
3161 浏览

opencv - opencv cvblob -- 渲染除白色以外的 blob

我正在尝试使用 cvblob 检测对象。不知何故,我的代码只标记了白色物体。如何标记其他颜色的物体,例如一罐啤酒或一瓶水。

这是我的代码:

任何提示表示赞赏。

米洛

0 投票
2 回答
2794 浏览

image - 物体检测+分割

我试图找到一种可接受复杂性的有效方法

  • 检测图像中的对象,以便将其与周围环境隔离
  • 将该对象分段为其子部分并标记它们,以便我可以随意获取它们

我进入图像处理领域已经 3 周了,我读过很多算法(筛选、蛇、更多蛇、傅立叶相关等)和启发式算法,我不知道从哪里开始,哪一个对于我想要实现的目标来说是“最好的”。考虑到感兴趣的图像数据集是一个相当大的数据集,我什至不知道是否应该使用在 OpenCV 中实现的某种算法,或者是否应该自己实现一个。

总结:

  • 我应该关注哪种方法?为什么?
  • 我应该将 OpenCV 用于那种东西还是有其他“更好”的选择?

先感谢您。

编辑——有关数据集的更多信息

每个数据集由 80K 的产品图像共享相同

  • 概念,例如 T 恤、手表、鞋子
  • 尺寸
  • 方向(90%)
  • 背景(其中 95%)

显然,除了产品本身之外,每个数据集中的所有图片看起来几乎相同。为了让事情更清楚一点,让我们只考虑“观察数据集”:

集合中的所有图片看起来几乎完全一样:

在此处输入图像描述

(同样,除了手表本身)。我想取出表带和表盘。问题是有很多不同的手表款式和形状。从我目前所读到的,我认为我需要一个允许弯曲和拉伸的模板算法,以便能够匹配不同风格的表带和表盘。

与其创建三个不同的模板(表带上部、表带下部、表盘),不如只创建一个并将其分成 3 个部分。这样,我就会有足够的信心,每个部分都被检测到彼此之间的关系,例如表盘不会在表带的下部下方被检测到。

在我遇到的所有算法/方法中,主动形状|外观模型似乎是最有前途的。不幸的是,我还没有设法找到一个下降的实现,而且我没有足够的信心这是最好的方法,以便自己继续编写一个。

如果有人能指出我应该真正寻找什么(算法/启发式/库/等),我将不胜感激。如果您再次认为我的描述有点模糊,请随时要求更详细的描述。

0 投票
3 回答
38455 浏览

c++ - OpenCV - 使用 SURF 描述符和 BruteForceMatcher 进行对象匹配

我对与 OpenCV 匹配的对象有疑问。我正在使用 opencv 2.3 中实现的 SURF 算法首先检测每个图像上的特征,然后提取这些特征的描述符。使用蛮力匹配器匹配的问题,我不知道如何判断这两个图像是否匹配,就像当我使用两个不同的图像时,两个图像中的描述符之间有线条!

我的代码的这些输出,无论是两个图像 - 我与它们进行比较 - 是相似的还是不同的,结果图像表明这两个图像是匹配的。

问题是:如何区分这两个图像?

真实匹配:

http://store1.up-00.com/Jun11/hxM00286.jpg

错误匹配!!:

http://store1.up-00.com/Jun11/D5H00286.jpg

我的代码:

0 投票
3 回答
1942 浏览

algorithm - 2d/3d中两条线段的平均距离

简介:我正在处理一个图像处理任务,试图找到一个对象的两个边界,可以用两条直线段来描述。我正在使用霍夫线变换的一些变体来查找目标图像中的线段。霍夫变换发现对象的每个边界有多条线(共享一个非常小的角度),并且可能发现一些线与图像中某处的对象边界不对应(误报)。由于对象的两个边界之间的空间关系(角度)是近似已知的,我想我会采用某种聚类方法来排除误报并计算每个找到的多个线段中的平均线段边界。

方法:为了对线段进行聚类,需要为每个线段的位置定义一个相似性度量。我想我会使用两个线段之间的角度元组和两个线段之间的某种平均距离。这也是我想知道计算这个平均距离度量的最佳方法是什么。一种比较简单的方法是在离散位置对每个线段进行采样,并测量每个采样点到另一个线段的最近距离 (L2),将距离相加并将总和除以样本数。我敢肯定有更聪明的方法可以做到这一点,有什么建议吗?

提示:我正在使用 C++ 和几个 LGPL/BSD 许可的工具包(OpenCV、Boost),所以一些特殊的数学运算,比如在数学中的集成可能很难实现。