【发布时间】:2018-06-25 05:36:30
【问题描述】:
我正在尝试为特定用例构建 ML 模型。我已经阅读了各种不同的库,并尝试训练我自己的分类器,但我觉得我所做的不太正确 - 对象检测的设置似乎都是基于你的对象的想法检测可以有多种形式,因此在设计训练方法时要考虑到这一点。我的用例与此不同。
我有想要识别的静态平面图像,例如书籍封面。因此,我不需要提供它的许多图像,而只需要提供它的正面外观的单个图像是有道理的。我想训练一个机器学习模型,这样我就可以在训练后向它展示那本书封面的图像,它会识别它。
训练后的书皮图像可能包括环境因素,例如不同的照明,或另一个角度,但想法是,如果书皮本身在全视图中,它应该能够被识别。
事实证明,在这里弄清楚要做什么是相当困难的。我遇到的每个指南都是为培训可能采取多种形式的对象而设计的。为我的目的改编这些指南没有成功。
我尝试使用 Turi Create 的非常简单的设置,在我为每本书拥有的每个数据点上对其进行训练,然后使用相同的数据进行验证,因为我显然没有训练和验证集。 Turi Create 负责所有培训细节,显然是为每个班级的许多示例而设计的。我觉得我在这里为了我的目的而对其进行了严重的修改。经测试,它也不适用于物体检测。
我使用 OpenCV 的关键点检测和最近邻匹配功能取得了一些有限的成功,但我的想法是会有更广泛的项目列表,可能有 10k 本书,因此在对每一个都有这样的方式。
在过去的一个月里,我一直在学习更多关于 ML 和计算机视觉的知识,但这肯定不是我的专业领域 - 我主要是一名软件开发人员。如果我能在这里得到任何建议,我将不胜感激。
【问题讨论】:
-
我认为 CBIR 是为了您的目的。基本上,找到关键点,kmeans 得到 BOW,然后投影得到图像特征数据库。对于单个图像,通过 BOW 查找特征和项目,然后在数据库中进行匹配。详情参见论文。这并不容易。
标签: opencv machine-learning computer-vision turi-create