使用Azure机器学习来检测图像中的符号

乔希

4年前,我发布了这个问题,但不幸地得到了一些答案,这些答案超出了我的技术水平。我刚刚参加了一次构建巡回会议,他们在会议上谈到了机器学习,这使我想到了将ML用作解决我的问题的可能性。在azure网站上找到了,但是我认为这不会帮助我,因为它的范围非常狭窄。

这是我想要实现的目标:

我有一个源图像:

源图像

我想在上图中包含以下哪个符号之一(如果有):

符号

比较需要支持较小的失真,缩放,色差,旋转和亮度差。

匹配的符号数最终将至少大于100。

机器学习是解决此问题的好工具吗?如果是这样,有什么启动提示吗?

佩德罗姆

据我所知,Project Oxford(MS Azure CV API)不适合您的任务。他们的API非常专注于人脸相关任务(检测,验证等),OCR和图像描述。而且显然您不能扩展他们的模型或从现有模型中训练新模型。

但是,即使我不知道针对您的对象检测问题的开箱即用的解决方案;您可以尝试使用足够简单的方法,这将为您提供一些起点结果。

例如,这是您可以使用的幼稚方法:

1)创建数据集:这可能是更繁琐的步骤,而且矛盾的是至关重要的一步。我将假定您有大量的图像可以使用。您需要做的是选择一个固定的窗口大小并提取正例和负例。在此处输入图片说明

如果数据集中的某些图像大小不同,则需要将其重新缩放为通用大小。您不需要太担心尺寸,也许30x30的图像就足够了。为了使事情变得容易,我也将图像转换为灰度。

2)选择一个分类算法并对其进行训练:那里有很多分类算法。但是,如果您是机器学习的新手,我会选择我最了解的一种。记住这一点,我将检查logistic回归,它给出了不错的结果,对于初学者来说很容易,并且有很多库和教程。例如,这个这个首先,我想说的是关注二进制分类问题(例如图片中是否有UD徽标),当您掌握了该分类时,可以跳到多类情况。有资源为,或者你总是可以有几种模式每一个标识,并分别运行这几招每一个。

要训​​练模型,您只需要阅读在步骤1中生成的图像,然后将它们转换为矢量并相应地标记它们即可。那将是将提供模型的数据集。如果使用的是灰度图像,则矢量中的每个位置将对应于0-255范围内的像素值。根据算法的不同,您可能需要将这些值重新缩放到[0-1]范围(这是因为某些算法在该范围内的值表现更好)。请注意,在这种情况下重新缩放范围非常容易(new_value = value / 255)。

您还需要拆分数据集,保留一些用于训练的示例,一个用于验证的子集,另一个用于测试的子集。同样,有不同的方法可以做到这一点,但我将这个答案保持得尽可能幼稚。

3)执行检测:现在开始有趣的部分。给定任何要运行模型并在带有徽标的图片中生成坐标的图像。有多种方法可以做到这一点,我将描述一种可能既不是最佳方法也不是效率更高的方法,但我认为它更容易开发。

您将扫描图片,在“窗口”中提取像素,将这些像素重新缩放为在步骤1中选择的大小,然后将其输入模型。

提取窗口以输入模型

如果模型给出了肯定的答案,则您会在原始图像中标记该窗口。由于徽标可能会以不同的比例出现,因此您需要使用不同的窗口大小重复此过程。您还需要调整窗口之间的空间量。

4)漂洗并重复:在第一次迭代中,您很可能会收到很多误报。然后,您需要将其作为负面示例,然后重新训练模型。这将是一个反复的过程,希望在每次迭代中您将有越来越少的误报和更少的误报。

对解决方案感到满意后,您可能需要对其进行改进。您可能想尝试其他分类算法(例如SVM深度学习人工神经网络),或尝试更好的对象检测框架(例如Viola-Jones)另外,您可能需要使用交叉验证来比较所有解决方案(实际上可以从一开始就使用交叉验证)。至此,我敢打赌,您将有足够的信心要使用OpenCV或其他准备使用的框架,在这种情况下,您将对幕后的情况有一个清晰的了解。

你也可能只是不顾一切的这个答案,去一个OpenCV的物体检测教程这样的一个或采取另一种答案,从这样一个问题一个祝你好运!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用带有CouchDB和Python的机器学习来检测“异常行为”?

来自分类Dev

您建议使用哪种类型的机器学习来检测具有很多大小的对象

来自分类Dev

使用机器学习检测页面布局

来自分类Dev

机器学习中的图像预处理

来自分类Dev

OpenCV - 使用图像颜色进行机器学习

来自分类Dev

成功使用Azure机器学习API吗?

来自分类Dev

使用opencv中的轮廓检测来检测视网膜图像中的视盘?

来自分类Dev

Azure机器学习-CORS

来自分类Dev

Python OpenCV行检测以检测图像中的“ X”符号

来自分类Dev

使用哪种深度学习模型来捕获图像中的次要特征?

来自分类Dev

Azure机器学习服务中的数据源

来自分类Dev

使用Javascript Ajax调用进行Azure机器学习

来自分类Dev

限制Azure机器学习管道使用的节点数

来自分类Dev

使用Javascript Ajax调用进行Azure机器学习

来自分类Dev

使用机器学习的 QuickSight

来自分类Dev

如何从图像中检测机器人方向?

来自分类Dev

使用图像检测机器人-asp.net

来自分类Dev

Azure机器学习计算配额?

来自分类Dev

Azure机器学习甚至采样

来自分类Dev

无标签机器学习异常检测

来自分类Dev

如何将我的自定义Python代码放入Azure机器学习中以使用ZIP资源?

来自分类Dev

不使用任何机器学习的Python中的分层采样

来自分类Dev

在Torch机器学习框架中设置GPU使用率

来自分类Dev

如何通过单击javascript中的项目符号来显示图像?

来自分类Dev

R中的AODE机器学习

来自分类Dev

机器学习中的参数提取

来自分类Dev

了解机器学习中的pca

来自分类Dev

机器学习中的 Java 库

来自分类Dev

如何以可以将它们用作机器学习功能的方式来分割或划分我的图像和标签?

Related 相关文章

热门标签

归档