不确定如何训练ML模型识别静态图像

时间:2018-01-16 13:32:52

标签: opencv machine-learning computer-vision turi-create

我正在尝试为特定用例构建ML模型。我已经阅读了各种不同的库,并试图训练我自己的分类器,但我觉得我所做的并不是很正确 - 对象检测的设置似乎都基于这个想法您检测到的对象可以包含大量表单,因此培训方法旨在将其考虑在内。我的用例与此不同。

我想要识别静态的平面图像,例如书籍封面。因此,我不需要提供它的许多图像,而只是从前面看它的样子的单个图像是有道理的。我想训练一个ML模型,这样我就可以在训练后向它展示那本书的封面图像,并且它会认出它。

训练后书籍封面的图像可能包括环境因素,例如不同的光照或交替的角度,但想法是如果书籍封面本身在全视图中,它应该能够被识别。 / p>

事实证明,要弄清楚这里要做什么是非常困难的。我所遇到的每一本指南都是为了对可能采取多种形式的物体进行培训而设计的。为我的目的调整这些指南并没有成功。

我尝试过使用Turi创建的非常简单的设置,对每本书的每个数据点进行培训,然后使用相同的数据进行验证,因为我显然不会这样做有一个培训和验证集。 Turi Create负责所有培训细节,显然是针对每个班级的许多示例而设计的。我觉得我在这里为了我的目的而严重修改它。经过测试,它也不适用于物体检测。

我使用OpenCV的关键点检测和最近邻匹配功能取得了一些有限的成功,但我们的想法是,它可以是更广泛的项目列表,可能是10k册,所以以这种方式对每一个进行图像比较是不切实际的。

过去一个月我一直在学习有关ML和计算机视觉的更多信息,但它肯定不是我的专业领域 - 我主要是软件开发人员。非常感谢我能得到的任何建议。

2 个答案:

答案 0 :(得分:2)

你的问题没有开箱即用的答案(很遗憾地说),但是有一些关键领域的计算机视觉/机器学习,你会想知道如何解决这个问题。

首先:如果你真的想留在opencv和现有的库中(例如,你不希望这变成算法研究项目),我建议如下:

  1. 制作一个小型训练集。请注意,这里通过训练集我的意思是书籍封面在其“测试”环境中的图像:不同的角度,不同的光线,不同的背景杂乱等。真的,这可能是50张图像,这不应该花费太多时间只需手动操作。
  2. 取决于您希望将其作为物体检测的数量(例如,这只是书籍封面的图片,还是桌子上的图片,上面有书,但也可能是订书机或()),你应该包括边界框。
  3. 然后使用在OpenCV中实现的经典CV算法,如SIFT或SURF或Hough变换。我没有详细介绍这些细节,而是向您推荐related post about extracting Coke cans。那里有一个很好的讨论,它可能会引导你正确的实现。从您的问题描述中我怀疑这些问题非常相似(例如您对有多种形式的对象的评论;这也不是可口可乐罐的问题)。
  4. 第二:如果上述情况不充分,您将参与更高级的研究项目。我仍然会推荐类似Hough变换或SIFT的东西,因为关键的洞察力是你应该能够找到一个非常擅长识别这个书籍封面的过滤器(或类似过滤器的对象)特别。这意味着像典型的深度学习方法这样的东西开箱即用。如果您真的想沿着这条路走下去,首先阅读数据扩充,然后阅读一次性少数镜头学习,然后阅读转移学习。这是一条漫长的道路,所以我非常赞成我建议的第一种方法。

答案 1 :(得分:1)

以下答案可能会帮助您使用卷积神经网络(CNN)来解决/解决问题。请仔细阅读这些videos以了解有关该主题的更多信息。

目标:识别平面图像(例如:书籍封面)

  1. 训练集创建:您的训练集必须有正面和负面图像,其中正面图像是包含书籍封面的图像,而负面图像是不包含书籍封面的图像。

    • 正面样本应包含,书籍封面图像模糊,相对于相机的不同位置,以不同角度倾斜,具有不同背景,不同光照等(无论哪个图像要返回为正)< / p>

    • 负片样本应包含,图片没有书籍封面,只有背景等。

  2. 您也可以尝试手动创建这些数据集。

    1. 标签:

      • 目前尚不清楚是否要找到书籍封面的确切坐标。 所以在这种情况下,输出应该是X_start,Y_start,Width和覆盖所有图像中书籍封面的边界框的高度。 对于没有书籍封面的图像(负样本),值为(0,0,0,0)。

      • 另外,将图像分别标记为1s和0s分别为正负样本。

    2. 模型微调:
      • 有几种预先训练过的模型可供使用。您可以简单地为图像微调它。
    3. 请查看这些页面以获取更多信息:

      1. Object localization and detection
      2. Binary Image Classification