_机器视觉中常用的三种目标识别方法分析

0 Comments

随着机器视觉技术的飞速发展,许多需要传统手动操作的工作逐渐被机器取代。传统的目标识别大多数是手动完成的,从形状、颜色、长度、宽度、长宽比确定确定的目标是否符合标准,最终定义一系列规则来识别目标。这种方法当然在一些简单的例子中已经很好地应用了。唯一的缺点是,必须根据认识到的物体的变化重新设计和开发所有规则和算法。即使是同一个产品,其他布局的变化也会导致不可重复使用的现实。

随着机器学习、深度学习的发展,肉眼难以直接量化的很多特征,深度学习可以自动学习这些特征。这就是深度学习给我们带来的优势和前所未有的魅力。大卫亚设,Northern Exposure,机器名言)很多特征不能通过传统算法量化,或者很难做到,也可以进行深度学习。(约翰f肯尼迪,学)特别是在图像分类、大象认识等方面有了明显的提高。

水滴分析(水滴分析)

计算机视觉中的blob是具有相似颜色、纹理等特征的图像的连接区域。水滴分析(blob分析)是对图像中同一像素的连接域(称为blob)进行分析。其过程是将图像二值化,划分前景和背景,检测连接的区域,得到水滴块的过程。简而言之,blob分析是在“平滑”区域内找到出现“灰度突变”的小区域。

例如,如果现在有刚生产的玻璃,表面很光滑,很平整。如果这块玻璃上没有瑕疵,我们就检测不到“灰度突变”。相反,在玻璃生产线上,由于各种原因,玻璃上有凸起的气泡、黑斑和轻微的裂纹,我们就可以在这块玻璃上检测纹理,二值化(BinaryThresholding)处理后图像上的色斑可以被视为水滴,这部分是生产过程中出现的缺陷,这个过程是水滴分析。

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

对于2D大象图像和高对比度图像,适用于大象识别应用程序,如检测和缺陷检测。通常用于二维大象图像、高对比度图像、存在/缺勤检测、数字范围和旋转不变性要求。很明显,很多情况下使用水滴分析,包括织物的缺陷检查、玻璃的缺陷检查、机械零部件表面缺陷检查、可乐瓶缺陷检查、药品胶囊缺陷检查等。

另一方面,水滴分析不适用于下图。

1.低对比度图像;

所需的图像特征无法用两个灰度来描述。

根据模板测试(图形测试要求)。

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

模板匹配方法

模板匹配是最原始最基本的模式识别方法之一,通过研究特定对象的模式在图像中的位置来识别对象是匹配问题。是图像处理中最基本、最常用的匹配方法。也就是说,必须匹配的已知小图像。在大图像中搜索目标,知道有要查找的目标,并且具有与模板相同的大小、方向和图像元素。通过统计计算的图像的平均值、渐变、距离、漫反射等功能,可以在图形中找到目标,从而确定坐标位置。

也就是说,我们要找的模板在图像中存在标准。换句话说,如果图像或模板发生变化(例如旋转、修改像素、翻转图像等),我们将无法匹配。这也是该算法的缺点。方法。src是要检测的图像。templ是模板库,match_method是匹配的方法。

该方法的检测精度优于Blob分析,可以区分不同的缺陷类别。这相当于在要搜索的图像上使用根据不同ROI指定的匹配方法与模板库中的所有图像相匹配的搜索算法。由于缺陷的形状、大小、方法的一致性较高,为了获得可用的检测精度,需要建立更完善的模板库。

深度学习法

2014年,在R-CNN的提议下,基于CNN的目标检测算法逐渐成为主流。深度学习的应用,既提高了检查准确度,也提高了检查速度。

由于AlexNet在比赛中使用卷积神经网络,大大提高了图像分类的准确度,一些学者试图将深度学习应用于目标类别检查。卷积神经网络不仅可以提取具有更高表达能力的特征,还可以在同一模型中完成特征提取、选择和分类。

在这方面有两种主要算法。

一种是结合RPN网络的基于分类的R-CNN系列二级目标检测算法(TWOStage)。

另一类是将大象检测转换为回归问题的一阶大象检测算法(singlestage)。

物体检测的任务是在图像或视频中找到感兴趣的物体,同时检测其位置和大小,这是机器视觉领域的核心问题之一。(阿尔伯特爱因斯坦,美国作家)。

1652250045422126.png

物体检测过程中有很多不确定性。例如,图像中物体的数量不确定,物体在形状、形状、姿势上不同,光照、遮挡等因素会干扰物体的成像,从而使检测算法在一定程度上变得困难。进入深度学习时代后,物体检测发展主要集中在两个方向:R-CNN系列和ONE twostage算法(如YLO、SSD等)。这两者的主要区别是,twostage算法必须创建Mr. proposal(一个可以包含要检查的对象的预选框),然后执行精细的对象检测。Onestage算法直接从网络中提取特征,预测对象分类和位置。

在二次算法中,区域提取算法的核心是卷积神经网络CNN。首先利用CNN骨干网提取功能找到候选区域,然后通过滑动窗口确定大象类别和位置。

R-CNN首先通过SS算法提取约2k个感兴趣区域,然后对感兴趣区域进行特征提取。有缺陷:关注区域不能相互共享权重,存在重复计算,中间数据需要单独存储占用资源,影响输入图片强制缩放的检测准确度。

SPP-NET可以在最后一个卷积层和第一个完整连接层之间处理,以确保输入完整连接层的大小一致,从而解决输入图像大小有限的问题。SPP-NET候选区域包含整个图像,通过一次卷积网络,可以获得整个图像和所有候选区域的特征。

FastR-CNN提出了ROIPooling,以SPP-NET的特征金字塔为参考,将不同大小的候选区域特征图映射到统一大小的特征向量上。首先将大小不同的候选区域划分为MN块,然后对每个块进行最大Pooling以获得值。这样,所有候选区域特征图将合并10 N维的特征向量。但是,使用SS算法生成候选框的时间消耗很大。

FasterR-CNN首先使用CNN骨干提取图像特征,由RPN网络和后续探测器共享,特征图进入RPN网络后,为每个特征点预设9个不同大小和形状的锚箱,计算锚箱和实际大象箱的交叉比例和偏移,确定其位置是否存在目标,将预定义锚箱划分为前景或背景,并基于偏差。但是,在测试过程中,RPN网络需要对目标进行一次回归过滤,以区分前景和背景目标,随后的检测网络需要再次细分RPN输出的ROI,并进行位置回归。由于两次计算,模型参数量变大。

MaskR-CNN通过向FasterR-CNN添加并行mask分支,为每个ROI生成像素级别的二进制掩码。FasterR-CNN使用ROIPooling生成统一大小的特征图,因此在映射回原始图时会出现误差,因此像素之间无法精确对齐。对大象检测的影响相对较小,但对于像素级拆分操作,不能忽略错误。MaskR-CNN中使用双线性插值解决了像素点不能精确对齐的问题。但是,由于继承了两步算法,实时性仍然不理想。

一阶算法在整个卷积网络中进行特征提取、大象分类和位置回归,通过逆计算得到大象位置和类别。在识别精度略低于两阶段大象检测算法的情况下,速度得到了显着提高。

YOLOv1将输入图像均匀缩放为4484483,然后分成77个网格,每个网格预测两个边界框bbox的位置和可靠性。这两个b-box属于同一个范畴,一个是预测大目标,一个是预测小目标。Bbox的位置不需要初始化,但YOLO模型在权重初始化后计算,并在训练期间网络权重更新时调整b-box的预测位置。但是,该算法不利于小大象检测,每个网格只能预测一个类别。

YOLOv2将原始图像分为1313个网格。通过聚类分析,每网格设置5个锚箱,每锚箱预测1个类别,预测锚箱与网格之间的偏移量,实现大象位置回归。

SSD保留网格分割方法,但从底层网络的不同卷积层提取特征。随着卷积层数量的增加,锚箱尺寸设置由小到大,提高了SSD的多尺度大象检测精度。

通过聚类分析,YOLOv3为每个网格预设了3个锚箱,仅使用darknet前52层,大量使用残差层。使用缩减取样减少糊化对渐变减少的负面影响。YOLOv3通过上行采样提取深度特征,与要融合的浅层特征维相同,但通道数不同,因此在通道维上进行接合,实现特征融合。融合1313255、2626255和5252255的共3个规模的特征图。

YOLOv4基于现有的YOLO目标检测体系结构,近年来采用了CNN领域最好的优化策略,在数据处理、骨干网络、网络培训、激活函数、损失函数等各个方面进行了不同程度的优化。最近,包括视觉领域的transformer研究在内,提出了很多精度比较高的目标检测算法。最近视觉领域的转换器研究也在提高目标检测算法的准确度。

综上所述,表达的选择会对机器学习算法的性能产生重大影响,监督学习训练的前馈网络可以看作是表示学习的一种形式。因此,Blob分析和模板匹配等传统算法是手动设计特征表达的,而神经网络是比手动特征设计更快、不需要太多专业特征设计知识的算法,是自动学习目标的理想特征表达。因此,可以在不同场景中识别形状、大小、纹理等多种目标,随着数据集的增加,检测的准确度将进一步提高。

_机器视觉中常用的三种目标识别方法分析

Leave a Reply

您的电子邮箱地址不会被公开。