基于机器学习的边缘检测器

Posted

技术标签:

【中文标题】基于机器学习的边缘检测器【英文标题】:Machine learning-based edge detector 【发布时间】:2017-09-04 01:48:51 【问题描述】:

我已阅读以下blog 关于使用机器学习进行边缘检测的内容。他们

使用了基于现代机器学习的算法。该算法在人类注释最重要边缘和对象边界的图像上进行训练。给定这个标记的数据集,训练机器学习模型来预测图像中每个像素属于对象边界的概率。

我想用 opencv 来实现这个技术。

有人知道或知道如何使用 Opencv 实现/开发此方法吗?

我们如何注释最重要的边缘和对象边界以用于机器学习算法?

【问题讨论】:

我不认为投递箱的人会从关于 *** 的问题开始。你的问题太宽泛了。你可以在opencv中实现任何东西,这取决于你愿意添加多少代码...... 伙计们提供了有关他的解决方案的技术细节,我正在尝试用 opencv 实现它。这个问题在我看来非常清楚和准确。 【参考方案1】:

opncv 上有强大的边缘检测算法。著名的是霍夫变换(博客上描述的线的结合)。大多数强边缘检测器都是基于梯度的; x 或 y 或两个方向的梯度。我想向您介绍Sobel edge detector 和Laplacian。两者都在 opencv 中提供。 对于您想要问题的情况,这很棘手,并且取决于您设置的日期。我为您提供了以下链接:

    Dollar slides at U. Toronto

    Review Paper from U. twente

    Github repository s9xie

我希望这对你有帮助。

【讨论】:

第三个现已集成到 OpenCV 的 dnn 模块中。因此,您可以通过几行代码直接从 opencv 运行基于深度学习的边缘检测。【参考方案2】:

现在您必须获取一个带有注释的数据集,就像 Dropbox 所做的那样。这将是你的起点。然后您可以在#deep-learning 的文档部分了解神经网络。所谓的 U 形网络是当前最先进的分割技术,如 (https://github.com/EdwardTyantov/ultrasound-nerve-segmentation) 所示。这可以很容易地用于您的任务。

我仍然认为注释数千张图像并不是您真正想要的。如果您不想学习边缘检测器,可以使用更经典的东西,如 canny 或 sobel (https://en.wikipedia.org/wiki/Edge_detection),如您提供的博客文章中所述。

【讨论】:

以上是关于基于机器学习的边缘检测器的主要内容,如果未能解决你的问题,请参考以下文章

火炉炼AI机器学习050-提取图像的Star特征

算法实现,用机器学习模拟一个opencv的边缘识别算法

毕设题目:Matlab图像边缘检测

基于机器学习的web异常检测

详解基于机器学习的恶意代码检测技术

基于机器学习算法的钢材缺陷检测分类