我需要使用iPhone相机识别特定图像。我的目标是拥有一组20个图像,当其中一个图像的打印或其他显示出现在相机前时,应用程序会识别该图像。
我考虑过使用分类器(CoreML),但我认为它不会给出预期的结果。例如,如果我有一个识别水果的模型,然后我展示了两张不同的香蕉图片,它会将它们都识别为香蕉,这不是我想要的。我希望我的应用能够识别特定的图像,无论其内容如何。
我想要的行为正是ARToolKit所做的(https://www.artoolkit.org/documentation/doku.php?id=3_Marker_Training:marker_nft_training),但我不想使用这个库。
所以我的问题是:是否有任何其他库或其他方式让我在iOS上识别来自相机的特定图像(最好是在Swift中)。
答案 0 :(得分:1)
由于您使用的是特定于您的用例的图像,因此您无法使用现有模型。您必须创建模型,对其进行训练,然后将其导入CoreML。由于我对你的图像一无所知,因此很难提供具体的建议。
就图书馆而言checkout this list和Swift-AI。
如果你有足够的图像,Swift-AI有一个neural network你可以训练。
您很可能必须使用其他语言(例如Python)创建模型,然后将其导入Xcode项目。
This blog post详细介绍了如何为CoreML训练自己的模型。
Keras可能是您构建模型的最佳选择。看看this tutorial。
虽然你只有20张图片,但也有其他问题。这肯定不足以训练准确的模型。用户还可以呈现这些图像的修改版本。您必须生成每个可能图像的真实样本,然后使用整个集合来训练模型。我说你需要每张图片至少20张图像(总共400张)。
您希望预处理图像并提取可与图像的已知功能进行比较的功能。这就是面部识别的工作原理。 Here是面部识别指南,可以帮助您进行特征提取。
如果没有基于您的图像的模型,您就可以做很多事情。
答案 1 :(得分:0)
回答我自己的问题。
我最后关注使用OpenCV识别特定图像的awesome tutorial,并教导如何制作包装器,以便Swift可以访问此代码。