机器视觉与深度学习在目标识别中的应用及优势分析

日期: 2024-12-18 04:05:46|浏览: 411|编号: 87995

友情提醒:信息内容由网友发布,本站并不对内容真实性负责,请自鉴内容真实性。

随着机器视觉技术的快速发展,许多需要人工操作的传统任务逐渐被机器取代。

传统的目标识别方法大多依赖于人工实现。他们从形状、颜色、长度、宽度、长宽比等方面判断识别出的目标是否符合标准,最终定义一系列的目标识别规则。当然,这种方法在一些简单的情况下也得到了很好的应用。唯一的缺点是,随着识别对象的变化,所有规则和算法都必须重新设计和开发,即使是同一产品、不同批次。更改将导致它们无法重用的现实。

随着机器学习和深度学习的发展,有很多特征很难用肉眼直接量化。深度学习可以自动学习这些特征。这就是深度学习给我们带来的优势和前所未有的吸引力。

有很多特征我们无法通过传统算法量化,或者很难实现,但深度学习可以。特别是在图像分类和目标识别等问题上取得了显着的改进。

视觉中常用的目标识别方法有3种:Blob分析法()、模板匹配法、深度学习法。下面对三种常用的目标识别方法进行比较。

斑点分析

计算机视觉中的斑点是指图像中由相似的颜色、纹理和其他特征组成的连通区域。 Blob分析()就是分析图像中相同像素的连通域(该连通域称为Blob)。其过程是对图像进行二值化,分割得到前景和背景,然后进行连通区域检测得到Blob块。简单来说,斑点分析就是在“平滑”的区域中寻找存在“灰度突变”的小区域。

例如,如果有一块刚生产出来的玻璃,其表面非常光滑、平坦。如果玻璃上没有瑕疵,那么我们就无法检测到“灰度突变”;相反,如果在玻璃生产线上,由于各种原因,玻璃上出现了凸起的气泡或黑点,有一点裂纹,那么我们就可以检测这块玻璃上的纹理,以及颜色经过二值化()处理后的图像中的斑点可以被视为斑点。这些部分是生产过程中造成的缺陷,这个过程就是Blob分析。

斑点分析工具可以将目标从背景中分离出来,并可以计算目标的数量、位置、形状、方向和大小,还可以提供相关斑点之间的拓扑。该处理不是逐一分析各个像素,而是对图像的行进行处理。图像的每一行都使用游程编码 (RLE) 来表示相邻的目标范围。与基于像素的算法相比,该算法大大提高了处理速度。

但另一方面,Blob 分析不适用于以下图像:

1. 低对比度图像;

2、必要的图像特征不能用2个灰度级来描述;

3、根据模板检测(图形检测要求)。

总的来说,斑点分析是检测图像中的斑点,适用于背景单一、前景缺陷不区分类别、识别精度要求不高的场景。

模板匹配法

模板匹配是最原始、最基本的模式识别方法。它研究特定对象的图案位于图像中的位置,然后识别该对象。这是一个匹配问题。它是图像处理中最基本、最常用的匹配方法。也就是说,需要匹配的是已知的小图像,在大图像中搜索目标。已知图像中存在目标,并且该目标与模板具有相同的大小、方向和图像元素。通过统计计算图像的均值、梯度、距离、方差等特征,可以找到图像中的目标并确定其坐标位置。

这意味着我们要寻找的模板存在于图像中的标准标准中。这里的标准是指一旦图像或模板发生变化,比如旋转、修改某些像素、图像翻转等操作,我们将无法匹配,这也是该算法的缺点。

所以这个匹配算法就是在待检测图像上从左到右、从上到下比较模板图像和小物体的图像。

该方法比Blob分析具有更好的检测精度,并且还可以区分不同的缺陷类别。该方法相当于一种搜索算法,根据待检测图像上的不同ROI,采用指定的匹配方法来匹配模板库中的所有缺陷。图像搜索和匹配要求缺陷的形状、大小、方法具有高度的一致性。因此,为了获得可用的检测精度,需要构建更加完整的模板库。

深度学习方法

深的

2014年R-CNN的推出使得基于CNN的目标检测算法逐渐成为主流。深度学习的应用提高了检测精度和检测速度。

卷积神经网络不仅可以提取更高层次、表达能力更好的特征,而且可以在同一模型中完成特征提取、选择和分类。

对此,主流算法主要有两类:

一类是基于分类的R-CNN系列两阶段目标检测算法()与RPN网络相结合;

另一种是一阶目标检测算法,将目标检测转化为回归问题()。

目标检测的任务是找到图像或视频中感兴趣的目标,并同时检测它们的位置和大小。它是机器视觉领域的核心问题之一。

目标检测过程中存在很多不确定因素。例如,图像中物体的数量是不确定的,物体具有不同的外观、形状和姿势。另外,物体成像时会存在光照、遮挡等因素的干扰,给检测算法带来困难。

进入深度学习时代以来,物体检测的发展主要集中在两个方向:R-CNN系列等算法和YOLO、SSD等算法。两者的主要区别在于算法需要首先生成(可能包含待检测对象的预选框),然后进行细粒度的对象检测。该算法直接从网络中提取特征来预测对象分类和位置。

两阶段算法中区域提取算法的核心是卷积神经网络CNN。首先使用CNN主干提取特征,然后找到候选区域,最后使用滑动窗口确定目标类别和位置。

R-CNN首先通过SS算法提取大约2k个感兴趣区域,然后从感兴趣区域中提取特征。存在缺陷:感兴趣区域的权重不能互相共享、存在重复计算、中间数据需要单独保存并占用资源、输入图像的强制缩放影响检测精度。

SPP-NET在最后一个卷积层和第一个全连接层之间做了一些处理,保证输入全连接层的尺寸一致,解决输入图像尺寸有限的问题。 SPP-NET候选区域包含整幅图像,仅通过一个卷积网络就可以获得整幅图像和所有候选区域的特征。

FastR-CNN借鉴了SPP-NET的特征金字塔,提出将各种尺寸的候选区域特征图映射成统一尺度的特征向量。首先将不同大小的候选区域划分为M×N个块,然后对每个块进行获取1值。这样,所有候选区域特征图就被统一为M×N维特征向量。然而,使用SS算法生成候选帧会消耗大量时间。

-CNN首先使用CNN主干网络提取图像特征,这些特征由RPN网络和后续检测器共享。特征图进入RPN网络后,为每个特征点预设9个不同尺度和形状的 box,通过 box与真实目标框的交集比和偏移量来判断该特征点处是否存在目标。位置,将预定义的 box分为前景或背景,然后根据bias loss训练RPN网络,进行位置回归,校正ROI的位置,最后将校正后的ROI传入后续网络。然而,在检测过程中,RPN网络需要对目标进行回归筛选,以区分前景和背景目标。后续的检测网络再次对RPN输出的ROI进行细分和位置回归。两次计算会产生大量的模型参数。

MaskR-CNN 在-CNN 的基础上添加了一个并行掩码分支,为每个 ROI 生成像素级的二进制掩码。在-CNN中,生成统一尺度的特征图,这会导致映射回原始图像时出现错位,使得像素无法精确对齐。这对目标检测影响相对较小,但对于像素级分割任务,误差不容忽视。 MaskR-CNN采用双线性插值来解决像素无法精确对齐的问题。但由于两阶段算法的继承,实时性仍然不理想。

一阶算法在整个卷积网络中进行特征提取、目标分类和位置回归,通过一次反向计算得到目标位置和类别。在识别精度略弱于两阶段目标检测算法的前提下,速度得到大幅提升。改进。

输入图像统一缩放为448×448×3,然后划分为7×7的网格。每个网格负责预测两个边界框bbox的位置和置信度。这两个b-box对应同一类别,一个预测大目标,另一个预测小目标。 b-box的位置不需要初始化,而是在初始化权重后由YOLO模型计算出来。随着网络权重在训练期间更新,模型会调整 b-box 的预测位置。然而,该算法不能很好地检测小物体,并且只能预测每个网格的一个类别。

将原始图像划分为13×13的网格。通过聚类分析,确定每个网格设置5个 box。每个锚框预测 1 个类别。通过预测 box和grid之间的偏移量进行目标位置回归。

SSD保留了网格划分方法,但从基础网络的不同卷积层中提取特征。随着卷积层数量的增加,锚框尺寸从小到大设置,以提高SSD对多尺度目标的检测精度。

通过聚类分析,每个网格预设3个 box,仅使用前52层,剩余层大量使用。使用下采样来减少池化对梯度下降的负面影响。通过上采样提取深层特征,使其与待融合的浅层特征具有相同的维度,但通道数不同。通过在通道维度上进行拼接来实现特征融合,融合了13×13×255、26×26×255和52×52×255的3个尺度特征图,对应的检测头也采用了全卷积结构。

在原有YOLO目标检测架构的基础上,采用了近年来CNN领域最好的优化策略,在数据处理、主干网络、网络训练、激活等各个方面进行了不同程度的优化函数和损失函数。如今,已经提出了许多精度相对较高的目标检测算法,包括视觉领域最近的研究一直在提高目标检测算法的精度。

结尾

欢迎加入GPU与人工智能交流群2

提醒:请联系我时一定说明是从101箱包皮具网上看到的!