【问题标题】:Recognize specific images, not the objects in the images识别特定图像,而不是图像中的对象
【发布时间】:2018-06-09 04:21:00
【问题描述】:

我需要使用 iPhone 相机识别特定图像。我的目标是拥有一组 20 张图像,当其中一张的打印件或其他显示出现在相机前时,应用程序会识别出该图像。

我考虑过使用分类器 (CoreML),但我认为它不会给出预期的结果。例如,如果我有一个可以识别水果的模型,然后我向它展示了两张不同的香蕉图片,它会将它们都识别为香蕉,这不是我想要的。我希望我的应用能够识别特定图像,而不管其内容如何。

我想要的行为正是 ARToolKit 所做的 (https://www.artoolkit.org/documentation/doku.php?id=3_Marker_Training:marker_nft_training),但我不想使用这个库。

所以我的问题是:是否有任何其他库或其他方式可以让我在 iOS 上识别来自相机的特定图像(最好在 Swift 中)。

【问题讨论】:

    标签: ios computer-vision


    【解决方案1】:

    由于您使用的是特定于您的用例的图像,因此不会有您可以使用的现有模型。您必须创建一个模型,对其进行训练,然后将其导入 CoreML。很难提供具体建议,因为我对您的图像一无所知。

    就图书馆而言,checkout this listSwift-AI

    Swift-AI 有一个 neural network,如果你有足够的图像,你也许可以训练它。

    您很可能必须用另一种语言(例如 Python)创建模型,然后将其导入您的 Xcode 项目。

    看看this question

    This blog post 详细介绍了如何为 CoreML 训练您自己的模型。

    Keras 可能是构建模型的最佳选择。看看this tutorial

    虽然您只有 20 张图片,但还有其他问题。这当然不足以训练一个准确的模型。用户也可以呈现这些图像的修改版本。您必须为每个可能的图像生成真实样本,然后使用整个集合来训练模型。我会说每张图片至少需要 20 张图片(总共 400 张)。

    您需要对图像进行预处理并提取可以与图像的已知特征进行比较的特征。这就是面部识别的工作原理。 Here 是人脸识别指南,或许可以帮助您进行特征提取。

    简单地说,如果没有基于图像的模型,您将无能为力。

    【讨论】:

    • 我理解你的意思,但我认为创建模型不会达到我想要的效果。我需要的是识别特定的图像,而不是其中的对象/面孔。
    • 要识别这些图像,您需要训练算法。图像总是完全相同吗?
    • 是的,图像不会改变。它们是需要识别的一组特定的 20 张图像。图像的内容无关紧要。
    • 如果图像完全相同,这不是机器学习问题。您可以只比较图像内的数据。
    • 是的,我意识到了这一点,但我的问题仍然存在:是否有库或方法可以让我在 iOS 上识别来自相机的特定图像(最好在 Swift 中)?
    【解决方案2】:

    回答我自己的问题。

    我最终关注了这个awesome tutorial,它使用 OpenCV 识别特定图像,并教授如何制作包装器,以便 Swift 可以访问此代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多