图像识别和唯一性检测

Image recognition and Uniqueness detection

我是 AI/ML 的新手,我正在尝试使用它来解决以下问题。 我有一组(自定义)图像,它们虽然具有共同特征,但也具有独特的 pattern/signature 和颜色值。我应该使用哪组算法来通过以下方式通过: 1. 识别共同特征(如 10x10mm 图像中任意位置存在三角形)。如果存在,则继续,否则退出。 2. Identify the unique pattern/signature 来单独识别每个图像。 pattern/signature 可以是形状(人眼可见或隐藏,例如使用无边界背景图像的叠加形状)。 3.存储颜色tone/hue/saturation确定任意loss/difference(可能是因为采集源与原来的不一样)

虽然这在某种程度上类似于人脸识别算法,但对我来说 saturation/shadow 在方向独立的情况下很重要。

我认为使用 CNN 可能是第 2 步的方法,第 1 步使用 SVN,任何关于训练的输入,细节将不胜感激。第 3 步如何,使用 BGR2HSV? objective是用ML/AI,不是机器视觉

  1. Recognize the common characteristic (like presence of a triangle at any position in a 10x10mm image). If present, proceed, else exit.

从某种意义上说,您想要的是一个 class 可以检测图像中的模式的生成器。但是,我们可以训练 class 检测器来检测图像中的 某些类型的模式

例如,我可以训练一个 class 识别器来识别正方形和圆形,但是如果我向它展示一个带有三角形的图像,我不能指望它告诉我这是一个三角形,因为它以前从未见过。不利的一面是,您的 classifier 最终会将其误class化为它 知道 存在的形状之一:正方形或圆形。好处是,您可以避免这种情况。

  1. Identify the unique pattern/signature to identify each image individually.

您想要做的是在 大量 标记数据上训练 classifier。如果你想让 classifier 检测图像中的正方形、圆形或三角形,你必须使用大量带标签的正方形、圆形和三角形图像来训练它。

  1. Store color tone/hue/saturation to determine any loss/difference (maybe because the capture source is different from the original one).

现在,您正在离开简单的图像标记领域,进入计算机视觉的世界。这不像普通图像 classifier 那样简单,但它是可能的,并且有很多在线工具可以帮助您做到这一点。例如,您可以查看 OpenCV。他们在 python 和 C++ 中有一个实现。

I figure that using CNN may be the way to go for step#2 and SVN for step#1

您可以将第 1 步和第 2 步与卷积神经网络 (CNN) 相结合。您不需要使用两步预测过程。但是,请注意,如果您向 CNN 传递汽车图像,它仍会将其标记为形状。您可以通过使用 class "Other" 在一百万个形状正样本和一百万个随机其他图像的负样本上训练它来再次规避此问题。这样,任何不是形状的东西都会 class 化为 "Other"。这是一种可能。

What about step#3, use BGR2HSV? The objective is to use ML/AI and not get into machine-vision.

有了这一步,就只能进入计算机视觉了。我不确定该怎么做,但我可以保证 OpenCV 会为您提供一种方法来做到这一点。事实上,使用 OpenCV,您将不再需要实现自己的 CNN,因为 OpenCV 有自己的图像标签库。