对象检测 vs 对象识别 vs 图像分割
对象识别:
对象识别是识别图像和视频中存在的对象的技术。它是机器学习和深度学习最重要的应用之一。该领域的目标是教机器像人类一样理解(识别)图像的内容。
对象识别
使用机器学习进行对象识别
- HOG(定向梯度直方图)特征提取器和 SVM(支持向量机)模型:在深度学习时代之前,它是一种最先进的对象检测方法。它采用正(包含对象的图像)和负(不包含对象的图像)样本的直方图描述符,并在此基础上训练我们的 SVM 模型。
- 特征袋模型:就像 Bag of words 将文档视为无序的单词集合一样,这种方法也将图像表示为无序的图像特征集合。这方面的示例包括 SIFT、MSER 等。
- Viola-Jones 算法:该算法广泛用于图像中或实时的人脸检测。它从图像中执行类似 Haar 的特征提取。这将生成大量特征。然后,这些特征将传递到提升分类器中。这将生成提升分类器的级联来执行图像检测。需要将图像传递给每个分类器,以生成正 (找到人脸) 结果。Viola-Jones 的优点是它的检测时间为 2 fps,可用于实时人脸识别系统。
使用深度学习进行对象识别
卷积神经网络 (CNN) 是进行对象识别的最流行的方法之一。它被广泛使用,并且大多数最先进的神经网络将此方法用于各种与对象识别相关的任务,例如图像分类。此 CNN 网络将图像作为输入并输出不同类别的概率。如果图像中存在对象,则其输出概率很高,否则其余类的输出概率可以忽略不计或较低。深度学习的优势在于,与机器学习相比,我们不需要从数据中进行特征提取。
对象识别的挑战:
- 由于我们采用 CNN 模型的最后一个(完全连接)层生成的输出是一个类标签。因此,如果图像中存在多个类标签,则简单的 CNN 方法将不起作用。
- 如果我们想定位边界框中对象的存在,我们需要尝试一种不同的方法,该方法不仅输出类标签,还输出边界框位置。
与对象识别相关的任务概述
图像分类 :
在图像分类中,它以图像作为输入,并输出该图像的分类标签以及一些指标(概率、损失、准确性等)。例如:猫的图像可以归类为类标签 “cat”,或者 Dog 的图像可以被归类为类标签 “dog” ,但有一定的概率。
图像分类
对象定位: 此算法定位图像中是否存在对象,并用边界框表示该对象。它以图像作为输入,并以 (position, height, and width) 的形式输出边界框的位置。
对象检测:
对象检测算法充当图像分类和对象定位的组合。它采用图像作为输入,并生成一个或多个边界框,每个边界框都附加了类标签。这些算法能够处理多类分类和本地化,以及处理多次出现的对象。
对象检测的挑战:
- 在对象检测中,边界框始终为矩形。因此,如果对象包含曲率部分,则无助于确定对象的形状。
- 对象检测无法根据图像准确估计某些测量值,例如对象的面积、对象的周长。
分类之间的差异。定位和检测(来源: 链接)
图像分割:
图像分割是对象检测的进一步扩展,我们通过为图像中的每个对象生成的像素级掩码来标记对象的存在。这种技术比边界框生成更精细,因为它可以帮助我们确定图像中存在的每个对象的形状,因为 分割不是绘制边界框 ,而是有助于找出构成该对象的像素。这种粒度在医学图像处理、卫星成像等各个领域都为我们提供帮助。最近提出了许多图像分割方法。其中最受欢迎的是 K He 等人提出的 Mask R-CNN。2017 年。
对象检测与分割(来源:链接)
主要有两种类型的细分:
- 实例分割:同一类的多个实例是单独的段,即同一类的对象被视为不同。因此,即使它们属于同一类,所有对象也都用不同的颜色着色。
- 语义分割:同一类的所有对象都形成一个分类,因此,同一类的所有对象都由相同的颜色着色。
语义与实例分割(来源:链接)
应用:
上面讨论的对象识别技术可用于许多领域,例如:
- 无人驾驶汽车:对象识别用于检测路标、其他车辆等。
- 医学影像处理:物体识别和图像处理技术可以帮助更准确地检测疾病。图像分割有助于检测体内存在的缺陷的形状。例如,用于乳腺癌检测的 Google AI 比医生更准确地检测。
- 监控和安防:如人脸识别、物体跟踪、活动识别等。