CN110853091A - 一种发动机保险丝绕向缺陷图像识别方法与系统 - Google Patents

一种发动机保险丝绕向缺陷图像识别方法与系统 Download PDF

Info

Publication number
CN110853091A
CN110853091A CN201911021099.2A CN201911021099A CN110853091A CN 110853091 A CN110853091 A CN 110853091A CN 201911021099 A CN201911021099 A CN 201911021099A CN 110853091 A CN110853091 A CN 110853091A
Authority
CN
China
Prior art keywords
fuse
image
hexagon bolt
bolt
skeleton
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911021099.2A
Other languages
English (en)
Inventor
孙军华
黄乐薇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201911021099.2A priority Critical patent/CN110853091A/zh
Publication of CN110853091A publication Critical patent/CN110853091A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/136Segmentation; Edge detection involving thresholding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/187Segmentation; Edge detection involving region growing; involving region merging; involving connected component labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/40Analysis of texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/50Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis
    • G06V10/507Summing image-intensity values; Histogram projection analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Quality & Reliability (AREA)
  • Geometry (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种发动机保险丝绕向缺陷图像识别方法与系统,包括:采集发动机不同部位的保险丝图像,构建六角螺栓检测模型,实现粗定位;利用螺栓粗定位结果的极坐标图像,实现螺栓边缘的精确检测,并计算螺栓近似圆的中心点和半径;获取分割结果中各区域的单像素骨架,构建骨架树去除骨架上的毛刺;结合保险丝和六角螺栓的空间位置约束以及保险丝的纹理特征,实现保险丝骨架的提取;快速计算保险丝骨架延伸方向的向量;计算螺栓位置向量和保险丝延伸方向向量的叉乘,识别保险丝绕向,错误的保险丝绕向被视为保险丝的绕向缺陷。本发明对于三种不同形式以及不同角度下的保险丝缺陷都能够准确识别,具有高可靠性和高效率。

Description

一种发动机保险丝绕向缺陷图像识别方法与系统
技术领域
本发明涉及缺陷识别领域,特别涉及一种发动机保险丝绕向缺陷图像识别方法与系统。
背景技术
保险丝是一种采用金属丝将两个或两个以上的紧固件连接在一起的防松零件,在航空航天及赛车行业中经常使用保险丝对螺栓进行防松,相比于其他类型的防松零件,保险丝常常被应用在不适合装配螺母等其他防松零件的地方,大多被用来防止由于高速振动而可能导致的螺栓松动。当螺栓出现松动的趋势时,它会受到保险丝的牵制而停止这种趋势的发展。
保险丝应该沿着螺栓被拉紧的方向装配,通常是顺时针方向,如图2所示。在螺栓出现松动趋势的时候,正确装配的保险丝能起到将松动螺栓拉紧的作用。在装配过程中,应当根据螺栓的数量确定保险丝的类型。当只有一个螺栓时,对该螺栓装配单联保险;当有两个及两个以上的螺栓时,一般来说,每两个螺栓间需要装配一个双联保险;特别地,对于螺栓密集的区域,需要装配多联保险。由于不同部位使用的螺栓类型和数量都存在差异,在进行保险丝的装配时,由于安装工人的失误,可能会出现保险丝漏装、保险丝错装及保险丝绕向装配错误等情况。在这三种缺陷中,相比于保险丝漏装和错装,保险丝的绕向缺陷更难以被准确地检查出来。并且,在螺栓出现松动趋势的时候,若保险丝的绕向存在缺陷,即保险丝的绕向错误,保险丝不仅不能够制止这种松动,反而有可能加剧这种松动趋势的发展。因此,对保险丝的绕向缺陷进行识别是非常重要的。
在保险丝绕向缺陷识别方面,国内主流的检测方式仍然是人工目检法。这种检查方式要求检查人员具有丰富的经验,并且受检查人员主观性的影响较大。另外,人工目检法效率低下,不能够适应现代化建设的大需求。近年来,随着图像识别技术的发展,出现了越来越多基于图像识别的故障检测技术,发明一种基于图像的保险丝绕向缺陷自动识别技术变得越来越迫切。
发明内容
本发明技术解决问题:克服现有技术的不足,提供一种发动机保险丝绕向缺陷图像识别方法与系统,能够实现保险丝的检测和绕向缺陷自动识别,提高保险丝检查效率。
为达到上述目的,本发明的技术方案是这样实现的:
一种发动机保险丝绕向缺陷图像识别系统,包括由粗到细的六角螺栓定位模块、保险丝粗分割模块、保险丝骨架提取模块和保险丝绕向识别模块;其中:
由粗到细的六角螺栓定位模块:采集保险丝图像,基于Adaboost方法构建六角螺栓检测模型,实现六角螺栓的粗定位;将六角螺栓的粗定位结果转换为六角螺栓的极坐标图像,进行精确的边缘检测;基于边缘检测结果,计算六角螺栓近似圆的圆心坐标和半径;
保险丝粗分割模块:通过最大极值区域算法(MSER)分割出保险丝表面的亮斑区域,对分割结果去噪后,利用保险丝的结构特点将分散的亮斑区域连通,恢复保险丝原有的细长的形态特征;
保险丝骨架提取模块:快速获取去噪结果中各区域的骨架,构建骨架树去除每个骨架上的毛刺,保留单像素骨架,结合保险丝和六角螺栓的空间位置特征以及保险丝的纹理特征,获取保险丝的骨架;
保险丝绕向识别模块:基于曲率判断当前保险丝骨架上是否存在结点;基于随机抽样一致性(RANSAC)算法筛选出在当前保险丝骨架方向上的点,计算当前保险丝的单位方向向量;将六角螺栓的位置抽象为单位向量,通过叉积判断两者的相对位置关系,进而识别保险丝的绕向是否正确;若保险丝和六角螺栓的相对位置是顺时针,则保险丝的绕向正确;否则,若保险丝和六角螺栓的相对位置是逆时针,则保险丝的绕向是错误的。
所述由粗到细的六角螺栓定位模块的具体实现过程如下:
(1)获取发动机保险丝在多个角度下的图像,标注训练集图像中所有的六角螺栓区域,无论该六角螺栓是否装配有保险丝,提取六角螺栓图像的HOG特征作为六角螺栓模型的输入,其中,当前像素(x,y)的梯度幅值G(x,y)和角度α(x,y)为:
Figure BDA0002247247410000022
其中,Gx(x,y)和Gy(x,y)分别表示x方向和y方向上的梯度。根据六角螺栓的形状特征,将180度的方向均分为3个区间,则每个区间的大小为60度,每个像素需要将梯度角度量化,并且按照梯度幅值进行加权。
(2)采用决策树作为Adaboost算法的基分类器,每棵树的最大深度为2层,构建四级级联分类器,每个阶段决策树的数量为hi(i=1,2,3,4),最终的强分类器为:
Figure BDA0002247247410000023
其中,αi表示每棵决策树对应的权重。用训练好的六角螺栓检测模型对图像中所有的六角螺栓进行检测,从而实现六角螺栓区域的粗定位。
(3)将六角螺栓的粗定位结果从图像坐标系转换到世界坐标系,设置图像左上角点为图像坐标系的原点,设置图像中心为世界坐标系的原点,假设六角螺栓图像的高度为H,宽度为W,则图像坐标系中任意像素点(u,v)到世界坐标系(x,y)的转换公式为:
x=u-W/2,y=-v+H/2
易知,世界坐标系下的任意点(x,y)和原点O形成的向量的大小ρ和角度θ为:
令坐标系转换前后的六角螺栓图像具有相同的尺寸,则世界坐标系到极坐标系的图像缩放因子Δρ=1,角度缩放因子
Figure BDA0002247247410000032
世界坐标系下的点(x,y)的极坐标为:
Figure BDA0002247247410000033
基于sobel算子对六角螺栓极坐标图像中的边缘进行精确检测,使用的纵向模板为:
Figure BDA0002247247410000034
获取六角螺栓各边缘点在图像坐标系下的坐标,从而得到六角螺栓近似圆的中心点坐标和半径大小。
所述保险丝粗分割模块的具体实现过程如下:
(1)基于六角螺栓的粗定位结果,利用最大极值区域(MSER)算法对该结果进行图像分割,获取保险丝表面的亮斑区域。其中,最大极值区域指的是随分割阈值的变化,分割面积变化率较小的区域,任意区域分割面积变化率V(i)的计算公式为:
Figure BDA0002247247410000035
其中,Qi表示该区域在当前分割阈值下被分割出的面积,Δ表示分割阈值的微小变化。
(2)对分割结果去噪,给定面积阈值和孔洞阈值,认为面积过小的区域和内部含有较多孔洞的区域都不是保险丝的亮斑区域,将其视为噪声并移除。
(3)基于去噪结果,利用三个参数将分割后保险丝离散的亮斑区域连通,以恢复保险丝原有的细长形态。对于第i个区域和其他任意一个区域,首先,使用两类距离,分别是两个区域间中心点的距离di,两个区域间最近的距离d′i;其次,根据当前区域的最小外接矩形,令Ri表示该矩形的长宽比,及矩形长边和短边的比值,令θi表示该最小外接矩形长边和x方向的角度,对三个参数的具体使用方法如下:
Fdistance=[1-sgn(di-T1)]+[1-sgn(d′i-T2)]
Fratio=[sgn(Ri-Tr1)+1]*[sgn(Ri-Tr2)-1](Tr1<Tr2)
Ftheta=[sgn(θi-Tθ1)+1]*[sgn(θi-Tθ2)-1](Tθ1<Tθ2)
其中,T*表示给定的阈值,Fdistance为距离参数,Fratio为当前区域最小外接矩形的长宽比参数,Ftheta为当前区域最小外接矩形的角度参数,sgn为符号函数。对于任意两个区域,只有当这两个区域都被判定为属于同一个保险丝的亮斑区域时,才将这两个区域之间连通。
(4)使用三次样条插值函数连通两个分散的亮斑区域,待连接部分的三次样条插值函数为:
其中,
Figure BDA0002247247410000042
表示两个待连通区域端点的梯度,Ai,Bi,Ci和D表示多项式的系数。
所述保险丝骨架提取模块的具体实现过程如下:
(1)快速细化连通结果,得到多个带有毛刺的骨架,假设每个骨架存在多个端点,其中,最远的两个端点为E1和E2,以这样的方式遍历每个骨架:从E1或E2开始,沿骨架的主要部分前进,直到遍历骨架上的所有点。骨架上的点与骨架树的节点之间的对应关系如下:起点E1或E2作为骨架树的根节点;除E1和E2之外的端点作为骨架树的叶节点;具有多个前进方向的分支点作为骨架树的子节点,另外,定义只有一个方向前进作为中间点。骨架树的每个子节点记录当前节点在图像中的坐标,以及从根节点到当前节点的中间点的数量,骨架树最长路径上的点就是骨架主方向线段上的点。
(2)基于保险丝和六角螺栓的空间位置约束,即保险丝骨架和六角螺栓在图像中是相交的,将当前骨架集合中和六角螺栓不相交的骨架视为噪声并将其移除。
(3)若当前骨架集合中还存在多个保险丝候选骨架,则计算每个骨架所在区域图像的纹理特征,相比于不含保险丝的图像,含有保险丝的图像更加复杂,具有更大的熵值和对比度。
所述保险丝绕向识别模块的具体实现过程如下:
(1)基于曲率判断当前保险丝骨架上是否存在结点,若存在结点,则当前保险丝骨架只有一个可能的延伸方向;若不存在结点,则当前保险丝骨架有两个可能的延伸方向。
(2)基于RANSAC算法筛选出在保险丝骨架延伸方向上的点,基于这些点计算当前保险丝延伸方向向量的单位向量。
(3)基于保险丝骨架和六角螺栓近似圆的交点,以及六角螺栓近似圆的中心点构成单位向量,该单位向量表示六角螺栓在图像中的位置,计算该单位向量和保险丝延伸方向单位向量的叉积,若叉积结果为正数,则保险丝和六角螺栓的相对位置是顺时针,判定保险丝的绕向正确;否则,若叉积结果为负数,则保险丝和六角螺栓的相对位置是逆时针,判定为保险丝绕向缺陷;
本发明还提出一种发动机保险丝绕向缺陷图像识别方法,包括如下步骤:
步骤一、用于采集保险丝图像,基于Adaboost方法构建六角螺栓检测模型,实现六角螺栓的粗定位;将六角螺栓的粗定位结果转换为六角螺栓的极坐标图像,进行精确的边缘检测;基于边缘检测结果,计算六角螺栓近似圆的中心点和半径;
步骤二、通过最大极值区域算法分割出保险丝表面的离散亮斑,对分割结果去噪后,利用保险丝的结构特点将这些分散的亮斑区域连通,恢复保险丝原有的细长形态;
步骤三、对去噪结果进行快速细化得到各个区域的单像素骨架,构建骨架树去除骨架上的毛刺,结合保险丝和六角螺栓的空间位置约束和保险丝的纹理特征,查找属于保险丝的骨架;
步骤四、基于曲率判断当前保险丝骨架上是否存在结点;基于随机抽样一致性算法RANSAC筛选出在当前保险丝骨架方向向量上的点,并计算当前保险丝方向向量的单位向量;利用螺栓近似圆,将螺栓的位置抽象为单位向量,通过两个单位向量的叉积判断保险丝和六角螺栓的相对位置关系,进而识别保险丝的绕向是否正确;若保险丝和六角螺栓的相对位置是逆时针,则保险丝的绕向错误,判定保险丝绕向存在缺陷。
本发明与现有技术相比的优点在于:本发明提供的由粗到细的六角螺栓检测模块,能够实现图像中的多个六角螺栓的粗定位和精确定位,基于六角螺栓的粗定位结果,能够实现保险丝的检测,最后,通过判断保险丝和六角螺栓的相对位置关系,实现保险丝绕向缺陷自动识别。相比于人工目检法,本发明提供的保险丝绕向缺陷图像识别方法具有更高的可靠性,能够保证一定的重复性和精度,提高检查效率。
附图说明
图1为本发明一种发动机保险丝绕向缺陷图像识别方法的总体实现流程图;
图2为正确装配的保险丝示例;
图3为六角螺栓图像坐标系转换前后的结果;其中,3(a)为图像坐标系下的螺栓图像,3(b)为图像3(a)转换结果,3(c)为图像3(b)的局部放大,3(d)为含标准六边形及其内切圆、外接圆的图像,3(e)为图像3(d)转换结果;
图4为保险丝粗分割模块的参数示意图;4(a)为距离参数示意图,4(b)为最小外接矩形参数示意图;
图5为保险丝骨架去除毛刺的示意图;5(a)为包含毛刺的单像素骨架,5(b)是5(a)局部放大图像,5(c)为骨架树,5(d)为去除毛刺后的骨架;
图6为随机抽样一致性(RANSAC)算法筛选保险丝骨架方向向量点的结果;其中,6(a)为左上部分骨架的识别结果,6(b)为右上部分骨架的识别结果,6(c)为中间部分骨架的识别结果;
图7为保险丝绕向识别示意图。其中,7(a)为正确绕向示意图,7(b)为错误绕向示意图。
具体实施方式
以下结合附图及具体实施例对本发明再作进一步详细的说明。
图1为本发明一种发动机保险丝绕向缺陷图像识别方法与系统的总体实现流程图,具体包括以下步骤:
步骤1:采集发动机不同部位的保险丝图像,建立训练样本集和测试样本集,并制作训练样本集标签文件;裁剪训练样本集图像中的六角螺栓区域,提取其HOG特征,基于Adaboost算法构建六角螺栓检测模型;基于已训练的六角螺栓检测,实现图像中多个六角螺栓的粗定位。
采集发动机不同部位的保险丝图像共391张,涉及到不同角度下的保险丝,由于保险丝和六角螺栓是配套使用的,因此该图像中也包含不同角度下的六角螺栓。从采集的图像中随机抽取单联保险丝、双联保险丝以及多联保险丝的图像,构成训练样本集(290张,包含772个螺栓)和测试样本集(101张,包含216个螺栓和230个保险丝)。
利用LabelImg工具箱,制作与训练样本一一对应的训练样本标签文件,每一个标签文件包括:图像名称、图像包含六角螺栓的类别,以及每个六角螺栓在图像中的位置信息。其中,位置信息包括四个元素:目标框的左上角像素坐标和右下角点像素坐标,以及目标框的宽度和长度。训练样本集、测试样本集和标签文件用于六角螺栓检测模型。
裁剪训练样本集图像中的六角螺栓区域,对于每个六角螺栓图像,提取该图像的HOG特征作为六角螺栓检测模型的输入。其中,设置HOG特征的cell大小为4个像素,block大小为2,并将180度的方向均分为3个区间,每个区间的大小为60度。基于Adaboost算法训练六角螺栓检测模型,四个阶段的级联分类器的决策树数量分别设置为[32 128 512 2048],即最终的六角螺栓检测模型由2048棵2层的决策树构成。在训练过程中,对于给定的训练样本集,AdaBoost在每一轮计算中提高那些被前一轮决策树错误分类的样本的权重,而降低那些被正确分类样本的权重,从而改变训练数据的权值或概率分布,在后一轮弱决策树中加大对错误分类样本的权值。类似的,AdaBoost采取加权多数表决的方法将多个决策树组合成一个强分类器,加大分类误差率小的决策树的权值,使其在表决中起较大作用,减小分类误差率大的决策树的权值,使其在表决中起较小的作用,从而将目标特征从背景中检测出来。
基于上一步骤训练好的六角螺栓检测模型,对测试集图像中的六角螺栓实现粗定位,无论该六角螺栓是否装配有保险丝,六角螺栓的粗定位结果包含完整的六角螺栓及少部分的保险丝。若检测效果不理想,可以调整模型的训练参数,然后重新对六角螺栓检测模型进行训练。
步骤2:获取六角螺栓粗定位结果的极坐标图像,利用sobel算子对六角螺栓的边缘进行精确检测,计算六角螺栓近似圆的中心点和半径。
如图3所示,实际拍摄图像中的六角螺栓通常表现为一个椭圆(图3(a)),把该图像转换到极坐标系之后,六角螺栓的边缘转换为竖直方向上的曲线(图3(b))。图像拍摄时的倾斜角度越大,则该边缘与竖直方向上的直线的偏移量越大。为了视觉对比,图3(d)和图3(e),分别显示了图像坐标系中和极坐标系中的标准椭圆和圆。利用sobel算子对六角螺栓的边缘曲线进行精确检测。sobel算子是典型的基于一阶导数的边缘检测算子,sobel算子将模板与图像作平面卷积,即可得出纵向的亮度差分近似值,纵向模板为:
Figure BDA0002247247410000071
图像中的六角螺栓被近似为一个椭圆,将极坐标系下检测到的六角螺栓边缘点转换回图像坐标系下,基于边缘检测结果可以计算出六角螺栓近似圆的中心点Cb和半径Rb
步骤3:基于六角螺栓的粗定位结果,通过最大极值区域(MSER)算法分割出保险丝表面的亮斑区域,利用面积和孔洞参数去除分割结果中的噪声,得到多个保险丝亮斑的候选区域。
基于步骤1得到的六角螺栓检测模型对六角螺栓的粗定位结果中,包含完整的六角螺栓区域和少部分的保险丝区域,将该粗定位结果扩大2倍,并截取原图中的该部分区域作为保险丝的感兴趣区域。使用MSER算法(Maximally Stable Extremal Regions,极大极值区域)对保险丝的感兴趣区域进行图像分割,得到保险丝表面的亮斑区域。MSER算法通过使用不同的阈值对图像二值化,阈值区间取[0,255],二值化图像经历一个从全黑到全白的过程(就像水位不断上升的俯瞰图),在这个过程中,连通区域面积随阈值上升的变化很小的区域被称为MSER。取稳定区域的最小变化量为0.3,MSER算法能够分割出保险丝表面所有的亮斑区域,这些亮斑之间可能是分散的。
对分割结果去噪,主要通过面积和孔洞两个参数。首先,给定面积阈值Ts,将面积小于Ts的区域视为噪声,并从分割结果中剔除。接下来,给定孔洞阈值Th,若某区域内部的孔洞面积总和超过了给定的阈值Th,则该区域被视为噪声,从分割结果中剔除该区域。经过去噪依然被保留下来的区域都是保险丝亮斑的候选区域。
步骤4:对于图像中所有的保险丝亮斑候选区域,利用三个参数判断这些候选区域之间是否需要被连通,连通后的图像中包含已恢复原有细长形态的保险丝区域,连通两个候选区域使用三次样条插值函数。
基于步骤3的去噪结果,使用三个参数判断任意两个候选区域间是否需要被连通,以恢复保险丝原有的细长形态。首先,如图4(a)所示,定义任意两个区域间的中心点为Ci,端点为Pi。其中,第一个端点和最后一个端点分别为P(i)(1)和P(i)(ni)。令
Figure BDA0002247247410000081
表示两个区域中心点构成的向量,令
Figure BDA0002247247410000082
表示两个区域最近的端点构成的向量。采用两种类型的距离参数,分别是任意两个区域端点之间的距离
Figure BDA0002247247410000083
以及中心点之间的距离
Figure BDA0002247247410000084
判断两个候选区域是否属于同一个保险丝上的亮斑,距离参数的使用方法如下:
Fdistance=[1-sgn(di-T1)]+[1-sgn(d′i-T2)]
其中,sgn为符号函数,T1和T2是给定的距离阈值,若给定阈值在一个较小的区间内,上式表明只有距离满足要求的区间,即距离较小的两个候选区域才有可能是同一个保险丝上的亮斑。
接下来,判断这两个相邻区域是否具有相同的特征,即属于同一个保险丝上的亮斑区域具有相似的形状和较强的方向相关性,采用的参数为当前区域最小外接矩形的长宽比ratio和角度angle。第i个区域的最小外接矩形如图4(b)所示,定义该最小外接矩形长边的长度为wi,短边的长度为hi,长边与水平轴的夹角为θi,则:
Fratio=[sgn(Ri-Tr1)+1]*[sgn(Ri-Tr2)-1](Tr1<Tr2)
Fangle=[sgn(θi-Tθ1)+1]*[sgn(θi-Tθ2)-1](Tθ1<Tθ2)
Tr1和Tr2、Tθ1和Tθ1都是给定的阈值,类似于距离参数Fdistance的用法,只有当前区域最小外接矩形的长宽比和角度在给定的区间内时,才将当前区域判定为保险丝的候选区域。
使用三次样条插值函数将属于同一个保险丝的候选区域连通,根据待连通的两个相邻区域,令端点P(i)(ni)的梯度为
Figure BDA0002247247410000085
令端点P(i)(1)的梯度为
Figure BDA0002247247410000086
将待连通部分的两个端点的梯度值作为函数初始值,则待连通部分的函数Si(x)为:
Figure BDA0002247247410000091
其中,S′(i)(0)(x0)表示待连通部分的第一个点的梯度,S′(i)(m-1)(xm)表示待连通部分的最后一个点的梯度,Ai,Bi,Ci和D表示多项式的系数。
步骤5:提取图像中所有连通区域的单像素骨架,并构建骨架树以去除骨架上的毛刺,只保留骨架的主线段。
基于步骤4的连通结果,快速提取所有区域的骨架,并将每个骨架细化为单像素骨架。
对于每一个单像素骨架,构建骨架树去除骨架上的毛刺,保留当前骨架的主线段。如图5所示,骨架(a)含有多个端点,其中,最远的两个端点为E1和E2,从左下角的E1开始,沿右上方向遍历骨架(a),直到到达右上角的E2点。骨架(a)含有8个分支点,分别为C1-C8,骨架(a)对应的骨架树如图5(c)所示,其中,树的根节点为E1,除E1和E2之外的端点为树的叶节点L,黑色的实心节点以及实心点之间的粗线段组成的是骨架树的最长路径,沿最长路径保留下来的主线段如图5(d)所示,可以看到,保留下来的主线段没有任何毛刺。
步骤6:基于保险丝和六角螺栓的空间位置约束,即保险丝骨架和六角螺栓近似圆在图像中总是相交的,不和六角螺栓近似圆相交的骨架失效,和六角螺栓近似圆相交的骨架为保险丝候选骨架。若当前六角螺栓没有相交的骨架,则认为当前六角螺栓没有装配保险丝。
步骤7:每个保险丝候选骨架都和六角螺栓近似圆相交,记录其交点,并将多余的交点进行合并,使得每个保险丝候选骨架最多只有两个交点,以交点为中心取窗口大小为100像素的图像,计算该图像的能量、熵、对比度和倒差逆矩,若当前窗口的纹理特征满足给定的纹理特征阈值,则认为当前窗口确实存在保险丝,否则当前交点失效。
步骤8:对于步骤7保留下来的保险丝骨架,经过傅里叶平滑后,计算每个点的曲率,并将最大曲率作为当前保险丝骨架的曲率,若保险丝骨架的曲率超过给定阈值,则认为当前保险丝骨架存在结点,只有一个可能的延伸方向,否则当前保险丝骨架有两个可能的延伸方向。
步骤9:将步骤7中保险丝骨架和六角螺栓近似圆的交点视为保险孔,若当前保险丝骨架和六角螺栓有两个交点,则取保险孔附近的保险丝骨架为输入;否则,若当前保险丝骨架和六角螺栓只有一个交点,则以当前保险丝骨架为输入,通过RANSAC算法筛选在输入线段方向向量上的点,如图6所示,十字箭头所在的位置表示筛选出的在方向向量上的点,,基于筛选结果计算保险丝骨架延伸方向向量,单位化得到单位向量。
步骤10:以六角螺栓近似圆的中心点为起点,保险孔为终点构成的单位向量表示六角螺栓在图像中的位置。
步骤11:计算六角螺栓位置向量和当前保险丝延伸方向单位向量的叉积;
步骤12:若叉积结果为正数,则当前保险丝绕向是顺时针,保险丝的绕向正确,如图7(a)所示;相反地,若叉积结果为负数,则当前保险丝绕向存在缺陷,如图7(b)所示。
步骤13:对图像中的每个六角螺栓重复步骤1~步骤6,判断当前六角螺栓是否装配有保险丝;若装配有保险丝,每个六角螺栓最多存在两个保险丝,对每个六角螺栓的每个保险丝重复步骤3~步骤12。

Claims (7)

1.一种发动机保险丝绕向缺陷图像识别系统,其特征在于:包括由粗到细的六角螺栓定位模块、保险丝粗分割模块、保险丝骨架提取模块和保险丝绕向识别模块;其中:
由粗到细的六角螺栓定位模块:采集保险丝图像,基于Adaboost方法构建六角螺栓检测模型,实现六角螺栓的粗定位;将六角螺栓的粗定位结果转换为六角螺栓的极坐标图像,进行精确的边缘检测;基于边缘检测结果,计算六角螺栓近似圆的中心点和半径;
保险丝粗分割模块:通过最大极值区域算法分割出保险丝表面的离散亮斑,对分割结果去噪后,利用保险丝的结构特点将这些分散的亮斑区域连通,恢复保险丝原有的细长形态;
保险丝骨架提取模块:对去噪结果进行快速细化得到各个区域的单像素骨架,构建骨架树去除骨架上的毛刺,结合保险丝和六角螺栓的空间位置约束和保险丝的纹理特征,查找属于保险丝的骨架;
保险丝绕向识别模块:基于曲率判断当前保险丝骨架上是否存在结点;基于随机抽样一致性算法RANSAC筛选出在当前保险丝骨架方向向量上的点,并计算当前保险丝方向向量的单位向量;利用螺栓近似圆,将螺栓的位置抽象为单位向量,通过两个单位向量的叉积结果,判断保险丝和六角螺栓的相对位置关系,进而识别保险丝的绕向是否正确;若保险丝和六角螺栓的相对位置是逆时针,则保险丝的绕向错误,判定保险丝绕向存在缺陷。
2.根据权利要求1所述的一种发动机保险丝绕向缺陷图像识别系统,其特征在于:所述由粗到细的六角螺栓定位模块的具体实现过程如下:
(1)获取发动机保险丝在多个角度下的图像,标注训练集图像中所有的六角螺栓区域,无论该六角螺栓是否装配有保险丝,提取六角螺栓图像的HOG特征作为六角螺栓模型的输入,其中,当前像素(x,y)的梯度幅值和角度为:
Figure FDA0002247247400000011
Figure FDA0002247247400000012
其中,Gx(x,y)和Gy(x,y)分别表示当前像素在x方向和y方向上的梯度。根据六角螺栓的形状特征,将180度的方向均分为3个区间,每个区间的大小为60度,每个像素需要将其梯度角度量化,并且按照梯度幅值进行加权;
(2)采用决策树作为Adaboost算法的基分类器,构建四级级联分类器,每级分类器含有决策树的数量为hi,其中,i=1,2,3,4,最终的分类器为:
Figure FDA0002247247400000021
其中,αi表示每棵决策树对应的权重;用训练好的六角螺栓检测模型对图像中所有的六角螺栓进行检测,从而实现六角螺栓区域的粗定位;
(3)将六角螺栓的粗定位结果从图像坐标系转换到世界坐标系,设置图像左上角点为图像坐标系的原点,设置图像中心为世界坐标系的原点,假设六角螺栓图像的高度为H,宽度为W,则图像坐标系中任意像素点(u,v)到世界坐标系(x,y)的转换公式为:
x=u-W/2,y=-v+H/2
世界坐标系下的任意点(x,y)和原点O形成的向量的模ρ和角度θ为:
Figure FDA0002247247400000022
令坐标系转换前后的六角螺栓图像具有相同的尺寸,则世界坐标系到极坐标系的图像缩放因子Δρ=1,角度缩放因子
Figure FDA0002247247400000023
世界坐标系下的点(x,y)的极坐标为:
Figure FDA0002247247400000024
基于sobel算子对六角螺栓极坐标图像中的边缘进行精确检测,使用的纵向模板为:
Figure FDA0002247247400000025
获取六角螺栓各边缘点在图像坐标系下的坐标,从而得到六角螺栓近似圆的中心点坐标和半径大小。
3.根据权利要求1所述的一种发动机保险丝绕向缺陷图像识别系统,其特征在于:所述保险丝粗分割模块的具体实现过程如下:
(1)基于六角螺栓的粗定位结果,利用最大极值区域(MSER)算法对该结果进行图像分割,获取保险丝表面的亮斑区域;其中,最大极值区域指的是随分割阈值的变化,分割面积变化率较小的区域,第i个区域分割面积变化率V(i)的计算公式为:
Figure FDA0002247247400000026
其中,Qi表示该区域在当前分割阈值下被分割出的面积,Δ表示分割阈值的变化;
(2)对分割结果去噪,给定面积阈值和孔洞阈值,认为面积过小的区域和内部含有较多孔洞的区域都不是保险丝的亮斑区域,将其视为噪声并移除;
(3)基于去噪结果,利用三个参数将分割后保险丝离散的亮斑区域连通,以恢复保险丝原有的细长形态;对于第i个区域和其他任意一个区域,首先,使用两类距离,分别是两个区域间中心点的距离di,两个区域间最近的距离d′i;其次,根据当前区域的最小外接矩形,令Ri表示该矩形的长宽比,及矩形长边和短边的比值,令θi表示该最小外接矩形长边和x方向的角度,对三个参数的具体使用方法如下:
Fdistance=[1-sgn(di-T1)]+[1-sgn(d′i-T2)]
Fratio=[sgn(Ri-Tr1)+1]*[sgn(Ri-Tr2)-1](Tr1<Tr2)
Ftheta=[sgn(θi-Tθ1)+1]*[sgn(θi-Tθ2)-1](Tθ1<Tθ2)
其中,T*表示给定的阈值,Fdistance为距离参数,Fratio为当前区域最小外接矩形的长宽比参数,Ftheta为当前区域最小外接矩形的角度参数,sgn为符号函数;对于任意两个区域,只有当这两个区域都被判定为属于同一个保险丝的亮斑区域时,才将这两个区域之间连通;
(4)使用三次样条插值函数将属于同一个保险丝的候选区域连通,根据待连通的两个相邻区域,令端点P(i)(ni)的梯度为
Figure FDA0002247247400000031
令端点P(i)(1)的梯度为
Figure FDA0002247247400000032
将待连通部分的两个端点的梯度值作为函数初始值,则待连通部分的函数Si(x)为:
Figure FDA0002247247400000033
其中,S′(i)(0)(x0)表示待连通部分的第一个点的梯度,S′(i)(m-1)(xm)表示待连通部分的最后一个点的梯度,Ai,Bi,Ci和D表示多项式的系数。
4.根据权利要求1所述的一种发动机保险丝绕向缺陷图像识别系统,其特征在于:所述保险丝骨架提取模块的具体实现过程如下:
(1)快速细化连通结果,得到多个带有毛刺的骨架,假设每个骨架存在多个端点,其中,最远的两个端点为E1和E2,以这样的方式遍历每个骨架:从E1或E2开始,沿骨架的主要部分前进,直到遍历骨架上的所有点。骨架上的点与骨架树的节点之间的对应关系如下:起点E1或E2作为骨架树的根节点;除E1和E2之外的端点作为骨架树的叶节点;具有多个前进方向的分支点作为骨架树的子节点,另外,定义只有一个方向前进作为中间点;骨架树的每个子节点记录当前节点在图像中的坐标,以及从根节点到当前节点的中间点的数量,骨架树最长路径上的点就是骨架主方向线段上的点;
(2)基于保险丝和六角螺栓的空间位置约束,即保险丝骨架和六角螺栓在图像中是相交的,将当前骨架集合中和六角螺栓不相交的骨架视为噪声并移除;
(3)若当前骨架集合中还存在多个保险丝候选骨架,则计算每个骨架所在区域图像的纹理特征,相比于不含保险丝的图像,含有保险丝的图像更加复杂,具有更大的熵值和对比度。
5.根据权利要求1所述的一种发动机保险丝绕向缺陷图像识别系统,其特征在于:所述保险丝绕向识别模块的具体实现过程如下:
(1)基于曲率判断当前保险丝骨架上是否存在结点,若存在结点,则当前保险丝骨架只有一个可能的延伸方向;若不存在结点,则当前保险丝骨架有两个可能的延伸方向;
(2)基于随机抽样一致性RANSAC算法筛选出在保险丝骨架延伸方向上的点,基于这些点计算当前保险丝延伸方向向量的单位向量;
(3)基于保险丝骨架和六角螺栓近似圆的交点,以及六角螺栓近似圆的中心点构成单位向量,该单位向量表示六角螺栓在图像中的位置,计算该单位向量和保险丝延伸方向单位向量的叉积,若叉积结果为正数,则保险丝和六角螺栓的相对位置是顺时针,判定保险丝的绕向正确;否则,若叉积结果为负数,则保险丝和六角螺栓的相对位置是逆时针,判定为保险丝绕向缺陷。
6.一种发动机保险丝绕向缺陷图像识别方法,其特征在于:包括如下步骤:
步骤一、用于采集保险丝图像,基于Adaboost方法构建六角螺栓检测模型,实现六角螺栓的粗定位;将六角螺栓的粗定位结果转换为六角螺栓的极坐标图像,进行精确的边缘检测;基于边缘检测结果,计算六角螺栓近似圆的中心点和半径;
步骤二、通过最大极值区域算法分割出保险丝表面的离散亮斑,对分割结果去噪后,利用保险丝的结构特点将这些分散的亮斑区域连通,恢复保险丝原有的细长形态;
步骤三、对去噪结果进行快速细化得到各个区域的单像素骨架,构建骨架树去除骨架上的毛刺,结合保险丝和六角螺栓的空间位置约束和保险丝的纹理特征,查找属于保险丝的骨架;
步骤四、基于曲率判断当前保险丝骨架上是否存在结点;基于随机抽样一致性算法RANSAC筛选出在当前保险丝骨架方向向量上的点,并计算当前保险丝方向向量的单位向量;利用螺栓近似圆,将螺栓的位置抽象为单位向量,通过两个单位向量的叉积判断保险丝和六角螺栓的相对位置关系,进而识别保险丝的绕向是否正确;若保险丝和六角螺栓的相对位置是逆时针,则保险丝的绕向错误,判定保险丝绕向存在缺陷。
7.根据权利要求6所述的一种发动机保险丝绕向缺陷图像识别方法,其特征在于:所述步骤一具体包括:
(1)获取发动机保险丝在多个角度下的图像,标注训练集图像中所有的六角螺栓区域,无论该六角螺栓是否装配有保险丝,提取六角螺栓图像的HOG特征作为六角螺栓模型的输入,其中,当前像素(x,y)的梯度幅值和角度为:
Figure FDA0002247247400000051
根据六角螺栓的形状特征,将180度的方向均分为3个区间,则每个区间的大小为60度,每个像素需要将其梯度角度量化,并且按照梯度幅值进行加权;
(2)采用决策树作为Adaboost算法的基分类器,构建四级级联分类器,每级分类器含有决策树的数量为hi,其中,i=1,2,3,4,最终的分类器为:
Figure FDA0002247247400000053
其中,αi表示每棵决策树对应的权重;用训练好的六角螺栓检测模型对图像中所有的六角螺栓进行检测,从而实现六角螺栓区域的粗定位;
(3)将六角螺栓的粗定位结果从图像坐标系转换到世界坐标系,设置图像左上角点为图像坐标系的原点,设置图像中心为世界坐标系的原点,假设六角螺栓图像的高度为H,宽度为W,则图像坐标系中任意像素点(u,v)到世界坐标系(x,y)的转换公式为:
x=u-W/2,y=-v+H/2
世界坐标系下的任意点(x,y)和原点O形成的向量的模ρ和角度θ为:
令坐标系转换前后的六角螺栓图像具有相同的尺寸,则世界坐标系到极坐标系的图像缩放因子Δρ=1,角度缩放因子
Figure FDA0002247247400000055
世界坐标系下的点(x,y)的极坐标为:
基于sobel算子对六角螺栓极坐标图像中的边缘进行精确检测,使用的纵向模板为:
Figure FDA0002247247400000057
获取六角螺栓各边缘点在图像坐标系下的坐标,从而得到六角螺栓近似圆的中心点坐标和半径大小。
CN201911021099.2A 2019-10-25 2019-10-25 一种发动机保险丝绕向缺陷图像识别方法与系统 Pending CN110853091A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911021099.2A CN110853091A (zh) 2019-10-25 2019-10-25 一种发动机保险丝绕向缺陷图像识别方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911021099.2A CN110853091A (zh) 2019-10-25 2019-10-25 一种发动机保险丝绕向缺陷图像识别方法与系统

Publications (1)

Publication Number Publication Date
CN110853091A true CN110853091A (zh) 2020-02-28

Family

ID=69597018

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911021099.2A Pending CN110853091A (zh) 2019-10-25 2019-10-25 一种发动机保险丝绕向缺陷图像识别方法与系统

Country Status (1)

Country Link
CN (1) CN110853091A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113838045A (zh) * 2021-09-30 2021-12-24 佛山市南海区广工大数控装备协同创新研究院 一种改进骨刺去除算法的pcb覆铜线路骨架轮廓提取方法
CN114419026A (zh) * 2022-02-10 2022-04-29 北京航空航天大学 基于视觉注意力的航空发动机保险丝绕向识别系统及方法
CN114723714A (zh) * 2022-04-12 2022-07-08 西南交通大学 一种列车车底螺栓的图像识别检测方法
CN114820620A (zh) * 2022-06-29 2022-07-29 中冶建筑研究总院(深圳)有限公司 一种螺栓松动缺陷检测方法、系统及装置
CN116817772A (zh) * 2023-08-31 2023-09-29 北京航为高科连接技术有限公司 航空沉头紧固件头部高度检测方法、装置及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106855520A (zh) * 2017-02-10 2017-06-16 南京航空航天大学 一种基于机器视觉的工件缺陷检测方法
US20180268257A1 (en) * 2017-03-20 2018-09-20 Rolls-Royce Plc Surface defect detection
CN108956616A (zh) * 2018-05-31 2018-12-07 南京航空航天大学 一种基于图像的工件缺陷检测方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106855520A (zh) * 2017-02-10 2017-06-16 南京航空航天大学 一种基于机器视觉的工件缺陷检测方法
US20180268257A1 (en) * 2017-03-20 2018-09-20 Rolls-Royce Plc Surface defect detection
CN108956616A (zh) * 2018-05-31 2018-12-07 南京航空航天大学 一种基于图像的工件缺陷检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JUNHUA SUN 等: "Automatic Twining Direction Recognition of Lockwire on Engine", 《IEEE ACCESS》 *
赵守伟等: "增强现实辅助维修系统的评价方法研究", 《火炮发射与控制学报》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113838045A (zh) * 2021-09-30 2021-12-24 佛山市南海区广工大数控装备协同创新研究院 一种改进骨刺去除算法的pcb覆铜线路骨架轮廓提取方法
CN113838045B (zh) * 2021-09-30 2024-02-02 佛山市南海区广工大数控装备协同创新研究院 一种改进骨刺去除算法的pcb覆铜线路骨架轮廓提取方法
CN114419026A (zh) * 2022-02-10 2022-04-29 北京航空航天大学 基于视觉注意力的航空发动机保险丝绕向识别系统及方法
CN114419026B (zh) * 2022-02-10 2024-07-19 北京航空航天大学 基于视觉注意力的航空发动机保险丝绕向识别系统及方法
CN114723714A (zh) * 2022-04-12 2022-07-08 西南交通大学 一种列车车底螺栓的图像识别检测方法
CN114723714B (zh) * 2022-04-12 2023-04-07 西南交通大学 一种列车车底螺栓的图像识别检测方法
CN114820620A (zh) * 2022-06-29 2022-07-29 中冶建筑研究总院(深圳)有限公司 一种螺栓松动缺陷检测方法、系统及装置
CN114820620B (zh) * 2022-06-29 2022-09-13 中冶建筑研究总院(深圳)有限公司 一种螺栓松动缺陷检测方法、系统及装置
CN116817772A (zh) * 2023-08-31 2023-09-29 北京航为高科连接技术有限公司 航空沉头紧固件头部高度检测方法、装置及系统
CN116817772B (zh) * 2023-08-31 2023-12-15 北京航为高科连接技术有限公司 航空沉头紧固件头部高度检测方法、装置及系统

Similar Documents

Publication Publication Date Title
CN110853091A (zh) 一种发动机保险丝绕向缺陷图像识别方法与系统
Akagic et al. Pavement crack detection using Otsu thresholding for image segmentation
CN110992317B (zh) 一种基于语义分割的pcb板缺陷检测方法
CN109255776B (zh) 一种输电线路开口销缺损自动识别方法
CN107316031A (zh) 用于行人重识别的图像特征提取方法
CN111652295B (zh) 一种铁路货车钩尾销托梁脱落故障识别方法
CN115496746A (zh) 基于图像和点云数据融合的板材表面缺陷检测方法和系统
CN109635733B (zh) 基于视觉显著性和队列修正的停车场和车辆目标检测方法
CN115690108A (zh) 一种基于图像处理的铝合金杆生产质量评估方法
CN111862025A (zh) 基于深度学习的pcb缺陷自动检测方法
CN111382785A (zh) 一种gan网络模型及实现样本自动清洗、辅助标记的方法
CN117788467B (zh) 一种钛金属板材缺陷图像分类方法
CN113962994B (zh) 基于图像处理的三连杆上锁销清洁度检测方法
CN113963051A (zh) 基于视觉信息和特征提取的目标直径自动测量方法和系统
CN113436157A (zh) 一种用于受电弓故障的车载图像识别方法
Daniel et al. Automatic road distress detection and analysis
CN114820625A (zh) 一种汽车顶块缺陷检测方法
CN115597494B (zh) 一种基于点云的预制构件预留孔的精度检测方法、系统
CN112669313A (zh) 一种金属表面缺陷定位及分类方法
US20230065041A1 (en) Geometric pattern matching method and device for performing the method
CN112257711A (zh) 一种铁路货车地板破损故障检测方法
CN107886502A (zh) 一种复杂环境下颜色与梯度综合的阴影检测与去除算法
Fang et al. Towards real-time crack detection using a deep neural network with a Bayesian fusion algorithm
Shaw et al. Automation of digital historical map analyses
CN115375952B (zh) 一种芯片胶层缺陷分类方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200228