CoreML 图像检测

Posted

技术标签:

【中文标题】CoreML 图像检测【英文标题】:CoreML Image Detection 【发布时间】:2020-05-01 06:04:31 【问题描述】:

我想实现一个应用程序,它能够识别来自相机输入的图片。我不是指classification 的对象,而是从给定的图像集中检测精确的单个图像。因此,例如,如果我有一个包含 500 张图片的相册,那么如果我将相机对准其中一张,那么应用程序将能够告诉它的文件名。我发现的大多数关于CoreML 的教程都严格用于图像分类(识别对象类别),而不是关于识别相机中的确切图像名称。这也需要从不同的角度工作,我可以用来训练网络的是这张包含许多不同图片的相册(单个对象的单个图片)。这能以某种方式实现吗?我不能使用ARKit Image Tracking,因为大约有500张这样的图像,我需要先找到至少一个类似的列表,CoreML/Vision

【问题讨论】:

【参考方案1】:

我不确定,但我想perceptual hashing 可能会帮助你。 它的工作方式是从参考图像中生成一些指纹,对于给定的图像,它也会提取指纹,然后您可以找到最相似的指纹。

这样,即使新图像不是 100% 作为数据集中的图像,您仍然可以检测到它。

实际上实现起来并不难。但如果你愿意,我认为phash 库是一个很好的使用。

【讨论】:

以上是关于CoreML 图像检测的主要内容,如果未能解决你的问题,请参考以下文章

CoreML Vision 人脸检测的输入图像尺寸要求是啥

如何使用对象检测模型改进 CoreML 图像分类器模型?

错误! coreML 模型对图像的预测是错误的,对视频是正确的

如何使用 CoreML 处理来自相机的非方形帧?

继续训练 CoreML 模型

在 Swift 中设置 CoreML 模型 - 图像分类器