基于机器学习的边缘检测器
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),如您提供的博客文章中所述。
【讨论】:
以上是关于基于机器学习的边缘检测器的主要内容,如果未能解决你的问题,请参考以下文章