如何识别与新图像中的汽车相对应的汽车(存储在数据库中)?

人工智能 张量流 图像识别 算法请求
2021-11-15 18:45:24

我正在寻找一种可用于识别汽车的解决方案。

我有一个包含汽车图像的数据库。每辆车大约3-4个。我想要做的是将图片上传到汽车的网络(用相机/手机拍摄的照片),然后让我的电脑识别汽车。

例子。假设我的数据库中有这 2 张图片(马自达 cx5)(我最多只能上传 2 个链接。atm。但你明白了)。

第一辆车

现在,我要将这张马自达 cs5 的图片上传到我的网络应用程序:

马自达cs5图片

现在,我想让 AI 识别出这张照片是灰色的马自达 CX5。

我在网上查看并找到了 2 个可以使用的有趣库,TensorFlow 和 Clarifai,但我不知道它们是否会起作用。

所以,我要问你的问题是:我在这里最好的选择是什么?

2个回答

汽车的型号

您想要做的是接近一次性图像识别。每辆车不是 1 个,而是 3-4 个示例,但这仍然是一个很小的数量,特别是考虑到汽车从不同的角度看起来不同(您是否应该从任何角度识别它们,包括侧面、后部、前部, 和 45 度等?也许你也想认出它们是从顶部拍摄的?)。

我发现的一篇有趣的文章是:Koch、Zemel 和 Salakhutdinov的 Siamese Neural Networks for One-shot Image Recognition 。

我还发现Caffee支持连体网络。

您可能想阅读有关One-shot learning的其他文献。

您可以做的一个技巧是利用汽车是对称的这一事实,因此您可以通过反映每张图像来使学习示例的数量增加一倍。

颜色

确定颜色并不像看起来那么简单。您的算法需要确定照片中的汽车在哪里,然后确定颜色,同时考虑照明条件以及灯光效果,尤其是反射。例如,考虑下图:.

我们看到草莓是红色的,但这张照片上没有红色像素。草莓的图像由灰色像素组成。

也许您还需要一个卷积神经网络,或者只是一个神经网络来完成这项任务。

有几种方法可以做到这一点。一种方法将涉及几个步骤,并且可能效果最好:

  1. 使用经过训练的高斯检测器从图像的其余部分中过滤掉汽车
  2. 使用卷积神经网络对汽车进行分类
  3. 使用神经网络或简单的最常见的颜色算法来查找汽车的颜色

您将能够在 MATLAB 中最轻松地实现此方法,但您也可以在 python 中使用 tensorflow 或 Torch 来实现。您可能能够在 tensorflow 中实现训练有素的高斯检测器。

方法二:

  1. 使用空间变换网络对汽车图像进行“变换”,便于分类
  2. 通过卷积神经网络使用空间变换器网络的输出进行分类。
  3. 使用另一个神经网络或最常见的颜色算法来查找汽车的颜色。

这种方法也可以很好地工作,但是使用带有卷积神经网络的空间变换器网络可能很难编码,因为它是一个正在发展的研究领域,其中存在许多问题,因为空间变换器网络和卷积神经网络必须运行良好在一起,这通常很难做到。

方法三:

  1. 直接在输入图像上使用卷积神经网络,可能使用下采样对汽车进行分类
  2. 使用另一个神经网络找到汽车的颜色

我个人会使用方法 #1,因为使用 tensorflow 等现有库实现它会相当简单,而且它很可能会提供高精度。

与往常一样,我还建议您在开发过程中使用 LIME 来调试模型并确定可以添加或删除哪些功能以帮助您的模型更好地执行。

**编辑* 由于您需要检测汽车上的某些模式以进行颜色分类,我建议您使用卷积神经网络对这些模式进行分类。所以你的方法现在看起来像这样:
1. 使用空间变换网络或过滤高斯检测器来过滤汽车 2. 使用卷积神经网络对汽车的品牌和型号进行分类。3. 使用另一个具有卷积或深度架构的神经网络对图案和纯色进行分类。因此,输出将包含您想要的所有颜色以及您想要检测的所有模式。