基于Open CV围栏合规性摆放检测方法研究

2022-11-04 03:43余萍宋祥宇
科学技术与工程 2022年28期
关键词:分类器围栏缺口

余萍, 宋祥宇

(1.华北电力大学电子与通信工程系, 保定 071003; 2.华北电力大学河北省电力物联网技术重点实验室, 保定 071003)

随着生产力的提高,社会的不断进步,中国电力工程建设行业蓬勃发展。然而中国的电力工程建设行业仍有很大的发展空间,但追求快速发展的同时更不能忽略安全问题[1]。统计数据显示,中国施工事故占比仅次于交通事故,事故数量占比13.46%,伤亡人数占比23.13%[2]。因此,施工场地安全监督工作为重中之重,施工场地的安全围栏摆放规范性是其中重要管控目标,但施工或改造现场复杂、施工场地种类多且变化性大,只靠人力很难对所有施工场地实现全程跟踪管控,因此借助图像处理技术实现分析监控拍摄图片,自动判断工地围栏摆放是否符合规范,对进一步保证施工安全减少安全隐患具有较高现实意义。

近年来,电力系统发展迅速,电力施工现场数量大幅度增加,电力施工现场综合管控水平也正在提升,可视化应用逐渐普及,施工现场监控数量增加,然而花费大量人力物力财力实现的施工现场监控普及,对于其得到的海量施工现场图像以及视频信息的利用率却十分低。大多数情况下,各个施工现场的施工细节还需要工程监理现场发现,并且在监控画面中,由于实时性以及清晰度的限制,单单靠人为观看监控对于施工现场中某些潜在的隐患不能做到立即发现并提醒,过多的细节难免造成错看与漏看的情况,存在造成严重工程施工事故的隐患,而此时可视化设备的作用只剩下调用事发时期录像,而监控录像也存在覆盖周期,不能永久保存,因此目前已普及的电力施工现场的可视化管控信息存在资源闲置与浪费的现象,由监控收集的海量图像资源无法得到充分的利用。

为提高电力系统信息可视化管控的效率与可靠性,郭玮等[3]根据电力信息系统的场景空间分布进行三维建模,提出了包围盒概念,通过计算相关事件与左右包围盒之间的相关概率并结合采集数据与测量值之间的关系对于电力信息系统运行状态进行估计,提高了电力信息系统的计算速度与管控精度;戴永东等[4]提出了一种基于双视卷积神经网络的输电线路自动巡检算法,利用两个视角可见光图象对输电线路上常见缺陷进行识别,并通过无人机巡检进行检测,进一步实现了电力系统与可视化设备的融合与应用;付奎等[5]提出了一种基于可升级矢量图形(scalable vector graphics,SVG)的可视化技术在电力系统中的应用,在地理接线图与单线图方面运用,将数据信息转化为二维或三维的图像信息,实现了相关设备运行状态数据信息的直观展示,并能够准确提供图元定位,大大提高了电力系统中可视化管控水平。

在一个围栏群中,如果两片单独的围栏如果没有连接上,就会有一个“缺口”, 在对于施工现场围栏摆放的合规性研究中,围栏摆放是否合规的重要判断依据就是“缺口”的数量,若一个围栏群内,当“缺口”数量小于等于1时,规定该围栏群为合规摆放;若“缺口”数量大于1个时,则说明该围栏群不只存在一个进入施工现场的入口,这就大大增加了无关人员或者动物靠近、进入具有一定风险的施工现场的可能性,也就存在了造成可避免工程事故的可能[6]。

现采取Open CV 和C++结合的研究方法对施工现场围栏图片进行处理,使用一系列图像处理算法进行排列组合判断围栏群是否存在缺口,通过对比度增强与色彩提取操作将电力施工现场图片中围栏部分进行粗略提取,修改目标部分像素值,然后经过阈值分析实现图象的二值化,使之将目标围栏部分与背景进行完全区分,进一步采用膨胀腐蚀算法[7-8]在不影响检测结果的前提下将背景中无关小型区域进行忽略。再通过连通区域算法[9-11]将不同连通区域分配不同标签(label)作为区分。为了增加边界区分效果,采用边缘提取算法[12-13]进行处理。接着使用区域生长算法[14-16],通过从种子点进行生长实现背景与围栏部分的分割,实现缺口存在性的判断,区分为存在缺口图象以及无缺口(即为合规摆放围栏)图象,然后针对存在缺口的围栏图像进一步进行缺口识别,关于围栏缺口针对性训练Haar特征分类器,通过对于图片中围栏缺口的检测以及数量的统计,进一步对于该围栏群是否合规进行判断。

1 提取围栏并判断缺口存在性

施工现场围栏图片冗余信息较多,围栏部分占比较小,相对应说明背景部分占比更大,这对于围栏部分的提取造成极大的难度,因此需要对施工现场图片进行一系列的图像处理操作,尽量消除无关信息,加强有效信息,简化后续摆放合规性步调,进一步减少判断难度并提高判断准确度。算法设计流程图如图1所示。

图1 算法设计流程图Fig.1 Algorithm design flow chart

图2 对比度增强处理前后的颜色提取结果Fig.2 Color extraction results before and after contrast enhancement

1.1 围栏提取

在图像处理中,由于获取的图像质量不好,需要通过对比度增强来提升图片质量,主要解决的是由于图像灰度级范围较小造成的对比度较低的问题,作用是使图像的灰度级范围放大,从而让图像更加清晰。在实验中,由于背景中会有大面积的部分与所需要的围栏部分像素值相似,这就会导致在后续对于围栏提取的过程中,无关背景像素点与目标像素点无法区分甚至一起被提取出来,对识别提取效果造成极大的误差。因此,在这里对图像首先采取对比度增强处理,使得色彩区分较为明显,减免背景无效像素点对围栏色彩提取的影响。然后通过围栏的颜色特征对于围栏部分进行提取,将围栏部分替换为像素值为255的白色,以便后续处理使用。图2为对比度增强前后的结果以及围栏色彩提取的结果差异,可以看出,图像增强后再进行色彩提取,背景中消除了许多细微的以及提取过程中产生影响的像素点或者像素区域,达到了优化提取效果的目的。

对进行过色彩提取的图像进行阈值分析操作,对于图像中的像素,已经被提取出来像素点的灰度级设定为255(白色),因此可以将阈值设置为254,直接剔除一些低于该阈值的像素,分割出所需要的目标,最终结果如图3所示,灰度值为255的像素点全部保留,其余部分全用灰度值为0(黑色)代替,便实现了围栏部分的初步提取。

图3 阈值分析结果Fig.3 Threshold analysis result

1.2 判断缺口存在性

在本实验中,虽然对于背景无关像素数量已经进行过削减,但是小部分无关像素的影响还是难以排除。通过膨胀腐蚀操作,将背景中被误提取出来的干扰像素区域进行腐蚀,背景部分相应进行膨胀,相对应的代价就是会使得目标围栏部分也会得到一定程度的腐蚀,但是该程度的腐蚀并不会影响围栏部分的连通性,反而对于背景无关像素的消除效果显著。图4为膨胀腐蚀操作结果图:通过膨胀腐蚀操作以后的图像,目标围栏部分将更加突出,有效区域与无关区域之间的区分也更加明显,同样也在一定程度上解决了了图像处理过程中,各个体围栏区域区分不够明显,单个区域不够突出的情况。

图4 膨胀腐蚀操作结果Fig.4 Dilatation corrosion operation results

连通区域一般是指图像中具有相同像素值并且位置相邻的前景像素点组成的图像区域。而连通区域分析是指将图像中的各个连通区域找出并标记。通俗的理解就是:一个连通区域是由具有相同的像素值的相邻像素组成的像素集合,因此可以通过“相同像素值”以及“相邻像素”这两个条件在图像中寻找连通区域,对于找到的每一个连通区域,赋予其一个唯一的标识作为与其他连通区域的区分。袁小翠等[17]提出了一种基于空间邻域连通区域标记法的点云离群点检测,以连通区域标记算法作为基础,构建某点云的连通域,完成所有点遍历后标记停止,小于阈值的点被看作是离群点,该方法对于不同情况下的离群点检测准确率有较大提升。

为了增强连通区域分析后的处理效果,在连通区域分析前增加一步轮廓提取操作,通过对于目标围栏部分使用线条将轮廓框选出来,便能使得各连通区域之间区分更加明显,非连通区域间存在明显边界进行区分,同时使用连通区域算法对于不同连通区域赋予不同标签。轮廓提取与连通区域分析结果如图5所示:由上至下分别为轮廓提取结果、连通区域分析ColorImg和连通区域分析LabelImg。

图5 轮廓提取、连通区域分析算法结果Fig.5 Contour extraction, connected area analysis algorithm results

经过上述处理的图像,原本相互连通部分融合成为一个部分,未连通部分存在明显区分。因此,可以通过判断图像是否被分为多个部分对于缺口的存在性进行判断。王筱涵等[18]针对血管界面存在凹陷导致传统分割算法种子点选取时会产生位置偏移的情况,提出了一种基于最小生成树的种子点选取算法,利用前一帧图像产生随机点构建最小生成树,计算该树重心作为当前帧的种子点,最后利用区域生长算法进行血管截面视频分割。夏永泉等[19]针对腹部电子计算机断层扫描(computed tomography,CT)中对比度低,肝脏形状不规则等因素而产生的图像分割困难的问题,提出以质心作为区域生长种子点的分割方法,既解决了区域生长算法需要手动选取种子点的问题,又保证了种子点选取位置的准确性。说明区域生长算法在医学方面应用较为成熟,对于目标物体的分割效果较好。利用区域生长算法,对于连通区域分析结果中的LabelImg进行处理,种子点通过算法自动选取在提取出来的围栏群的任意一个部分中,将结果与LabelImg进行对比,如果结果与LabelImg中拥有同样完整的围栏部分,那么说明围栏部分完全连通,该围栏群无缺口,若结果只能得到部分的围栏,则说明围栏部分并未全部连通,该围栏群有缺口存在,需要进入下一步分析。区域生长算法判断围栏群是否完全连通结果如图6所示。可以看出,以围栏中任意一点作为种子点进行生长,只生长出部分围栏就结束操作,说明围栏部分并未连通如图6(b)与图6(c)所示,至少存在1个缺口。图7中,生长结果与原图围栏部分完全相同,说明围栏部分完全连通,不存在缺口。到此,就可以进入下一步关于缺口数量的判断,进而得到围栏摆放是否合规的结论。

图6 区域生长前后结果图对比1Fig.6 Comparison of results before and after regional growth 1

图7 区域生长前后结果图对比2Fig.7 Comparison of results before and after regional growth 2

2 识别围栏缺口并统计数量

在Open CV的代码库中,保存了很多已经训练好的Haar分类器,如图8所示,各文件分别为人眼、戴眼镜的人眼、猫脸、人体、微笑等事物识别分类器文件列举。

图8 Open CV已训练好的分类器文件Fig.8 Open CV trained classifier file

因此,根据实际情况以及现有资源的情况,训练围栏缺口识别分类器用于对施工现场图像围栏部分的缺口进行检测。

2.1 围栏缺口检测

该分类器原理如图9所示,即Haar-like特征+AdaBoost+Cascade级联=目标围栏缺口Haar分类器。

Junaidy等[20]使用类Haar 特征方法和局部二值模式方法进行实时人脸检测。Haar-like特征作为图像特征具有便捷性、高效性等特点,它是基于矩形区域相似计算强度差异性,换句话说:这个区域的一个特征值等于白色区域像素和与黑色区域像素和之差,依据此特征值可以用来区分目标区域与非目标区域。图10为特征矩形示意图。

图9 分类器原理示意图Fig.9 Schematic diagram of the classifier principle

由于只具备单个特征的分类器过于简陋,其检测结果甚至不如随机判断的效果好。所以采用CART的决策树形式用来构成分类器十分必要,单节点的最基本分类器可以通过训练进行优化,变为具有更高的分辨力的分类器,也就是弱分类器。从图11中可以看出,在分类的应用中,CART决策树中的每一个非叶子节点都代表着一种特征判断,每一个路径表示一种判断结果的输出,每一个叶子节点则表示一种类别,即是否属于围栏缺口。

每一个Haar-like特征的选择与排列过程,都可以看成是一个新的弱分类器提升的阶段,称为Boosting算法。通过改进而来的自适应推进算法Adaboost是一种迭代方法,提供了一种有效的学习算法和强大的边界泛化性能。Freund等[21]通过Haar特征与Adaboost算法进行结合,提出了一种用于组合偏好的高效提升算法。同时为了提高识别速度,需要将一个图像子窗口中包含的大量的Haar-like特征通过Adaboost进行特征选择,利用Adaboost选择少量重要特征构建一个强分类器,即在训练过程中重点保留少数关键特征而排除掉大量的可用特征。强分类器组成示意图如图12所示。单个强分类器能达到的识别效果有限,为了能够提高正确率,训练多个强分类器进行组合使用,刘禹欣等[22]通过Haar-like特征双阈值Adaboost实现人脸检测,其中同样采用了多个强分类器进行级联的方式。

A~H为特征矩形编号图10 Haar-like的特征矩形Fig.10 Haar-like characteristic rectangle

图11 深度为3的弱分类器CART决策树形式Fig.11 CART decision tree form of weak classifier with depth of 3

假设有一个强分类器,99%的目标窗口可以通过即正确识别,同时50%的非目标窗口也能通过即错误识别,假设有20个同样准确率的强分类器级联,那么最终的正确检测率为98%,而错误识别率为0.000 1%,最终实现了在不会大幅度影响检测正确率的前提下,大幅度降低误识率,这就是Cascade级联的作用。要求训练的单个强分类器的准确率需要足够高。通过Cascade级联多个强分类器最终形成本研究所需围栏缺口分类器。级联分类器工作原理如图13所示所有待检测子窗口作为第一个分类器的输入参与判决,若某子窗口通过第一个分类器的判决,将继续进入下一级强分类器进行判决,反之没有通过第一个分类器的判决,则该子窗口直接被拒绝,退出检测过程,该子窗口将不会再作为输入进入到后续强分类器的检测中。通过Cascade级联可以进一步筛选被错误识别的子窗口从而降低误识率。实现目标围栏缺口分类器的构建。

1、2、3所在框图分别为该级联分类器种第一、第二、第三个分类器图12 强分类器组成示意图Fig.12 Schematic diagram of strong classifier composition

图13 级联分类器工作原理Fig.13 Working principle of cascade classifier

2.2 实验过程及结果分析

2.2.1 实验过程

本实验流程图如图14所示。实验所需样本集为两部分:正样本集和负样本集,正样本为被检测物体,即“缺口”部分,通过对电力施工现场围栏图片人为判断“缺口”部分进行截图得到。为了使得正样本中关于“缺口”识别的特征更加明确,截图范围为“缺口”部分与形成该“缺口”的少量围栏部分,如图15所示,并且正样本尺寸必须一致,根据训练样本官方推荐最佳尺寸,图15尺寸设置为24×24像素,建议训练样本为灰度图,此处对于该建议持保留意见,在后续研究中进行进一步实验以确定。

实验正负样本来源为电力施工现场图片截图,由于类似带有围栏的电力施工现场图片极其有限,

图14 实验过程流程图Fig.14 Experimental process flow chart

24×24像素图15 施工图片截图选取正样本范围Fig.15 Select the scope of the positive sample of the screenshot of the construction picture

而满足研究拍摄角度的围栏照片更是少之又少,所以在有限的资源中,努力将可用正样本进行提取,对于负样本,包含了施工人员、施工地面、施工大楼、草地、土地、台阶等一系列与识别目标无关的物体,增加了负样本涵盖范围的广泛性以及丰富性。但是因为正样本数量的限制,最终制作正样本数目为35,负样本数目为103,并准备76张完整的施工现场围栏图片作为测试样本集进行该方法的研究。

样本创建完毕,下面便按照实验流程图进行后续分类器训练操作。最终输出围栏缺口分类器xml文件。

2.2.2 实验结果及分析

使用Visual Studio 2017调用上述围栏缺口分类器xml文件,实现施工现场图片中围栏缺口的检测与识别,同时在程序中增加对于识别框数量的统计,使用循环判断语句对于围栏缺口数量进行判断,当识别框数量大于1时,输出“该围栏群摆放不合规”反之输出“该围栏群摆放合规”字样,作为对于该围栏群摆放合规性检测结果输出,识别结果如图16所示。

从图16中可以看出,在“缺口”数量本该为2的施工围栏图片中,检测出7个缺口,并且在许多非围栏部分也给画出了识别框,识别结果较差,误差较大。而且对更多训练样本进行测试结果均与上图类似,问题集中在两个方面:①识别框数目太多;②识别框不能完全集中于围栏部分,在边界背景等无关像素处也有识别框的出现。而好的方面在于,在显示出来的所有识别框中,围栏真正的“缺口”部分是存在识别框的,表明“缺口”可以识别。

识别混乱的原因在于围栏“缺口”特征不明显,识别范围不能集中在围栏部分的原因也在于:①同时负样本无关物体种类不够丰富;②正样本集对于围栏本身的特征提供得不够明显。

3 结果优化

3.1 负样本集筛选与重建

解决上述问题需要从正负样本两方面进行,为了解决识别范围不能集中于围栏部分的问题,需要增加负样本集中物体的种类,同时需要保证正负样本集数目的比例。所以将负样本集重新进行筛选与重建,将相似类型以及区分较小的图片删除,并增加之前未包含的无关物体种类,重新进行围栏缺口Haar分类器训练,并对新训练出的分类器文件进行调用,重建负样本集后识别结果如图17所示。

蓝色框为围栏缺口检测框图17 重建负样本集后识别结果Fig.17 Recognition result after reconstruction of negative sample set

由图17可以看出,检测缺口数量依然为7,但是所有围栏“缺口”的识别框都集中在围栏部分,背景非围栏部分不存在识别框,说明对于上面提出的识别框不能完全集中于围栏部分以及对于背景的误识别问题的解决方法有成效。已经可以完成“缺口”的扫描与识别范围都固定在围栏部分,如何进一步将围栏“缺口”准确的识别出来,就是下面要解决的另一大问题。

3.2 正样本集筛选与重建

对比所有误识别框可以得到:首先,肯定正样本集的有效性,所有识别框圈选范围内都存在相似的特征:即所有识别框内都包含围栏边界或者围栏主框架部分,所有识别部分都可以分为左右两边框以及边框中间部分,并且在测试样本的实验中,同样能够发现非围栏部分的误识别框中也存在相似上述特征。该识别结果说明,当前版本分类器可以总结出部分“缺口”特征。由于“缺口”本身是一个十分抽象的概念,“缺口”种类丰富,背景多样性丰富,导致难以使用通用的标准或者语言对“缺口”进行描述,而对围栏摆放合规性的研究重点在于围栏“缺口”的识别,需要通过围栏对于“缺口”进行特征赋予,因此“缺口”识别过程不能抛弃掉电力施工围栏特征而单独完成,二者应相辅相成,共同完成相应特征的总结以及分类器的训练。

要将电力施工围栏与“缺口”特征相结合,电力施工围栏最明显的特征是标准的黄色背板以及黄黑色条纹,该特征也是电力施工围栏设计的一大标准,因此,为了突出表现出电力施工围栏色彩这一特征,对正训练样本的处理只执行缩放而不执行灰度图转换过程,即使用彩色符合条件的正样本进行训练,用以增强围栏“缺口”特征,同时在正样本集的创建过程中,统一对于两侧围栏保留部分的形态以及面积占比,重建正样本集后重新训练围栏缺口Haar分类器,然后调用分类器对施工现场围栏图片进行识别,识别结果如图18、图19所示。

由图18、图19可知,所训练的围栏缺口分类器能够准确检测出存在缺口的围栏群中缺口的位置并框选,统计缺口数量,进行该围栏群摆放是否合规的判断,图19、图18分别呈现了围栏群摆放合规、不合规的两种检测结果。另外,将本文算法第一部分判断缺口存在性这一步骤中判断为无缺口的图片,使用该分类器进行检测,同样可以得到该围栏群无缺口、摆放合规的判断,如图20所示。因此,本研究中训练的围栏缺口分类器能够成功实现电力施工现场图片中围栏群中缺口的检测以及合规性的判断。

蓝色框为围栏缺口检测框图18 重建正样本后围栏不合规摆放识别结果Fig.18 Recognition results of non-compliant fence placement after reconstruction of the positive sample

蓝色框为围栏缺口检测框图19 围栏合规摆放识别结果一Fig.19 Recognition result 1 of fence compliant placement

图20 围栏合规摆放结果2Fig.20 Recognition result 2 of fence compliant placement

4 结论

基于Open CV首次进行围栏摆放合规性检测方法研究,采用C++与Open CV相结合的方式,首先通过一系列图像处理算法对于图象进行预处理后结合连通区域分析算法以及区域生长算法实现围栏部分的提取与围栏群缺口存在性初步判断。

接着通过将Haar-like特征与AdaBoost算法和Cascade级联相结合,训练一个用于检测围栏缺口的分类器用于进一步缺口数量检测。对实验结果进行分析总结,根据出现不同的问题对于训练过程进行不同程度的优化,得到最终版本的围栏缺口分类器文件,并使用C++语言通过Visual Studio 2017编译器对于该分类器文件进行调用,用于围栏缺口的检测,并且根据检测结果,自动统计围栏缺口数量并对于该围栏群摆放是否合规进行判断。最终得到较好的识别结果。研究结果为基于可视化的工程管控应用方面提供了新思路,同样在对于围栏缺口这种特征模糊物体的识别也提供了新的研究方向,同时填补了围栏摆放合规性识别领域的空白。但是本研究依然还有可以完善的地方,如在此基础上增加样本数据量进一步提高泛化能力,同时还可以补充不同样式的围栏缺口的识别研究。

猜你喜欢
分类器围栏缺口
少样本条件下基于K-最近邻及多分类器协同的样本扩增分类
学贯中西(6):阐述ML分类器的工作流程
基于朴素Bayes组合的简易集成分类器①
堵缺口
围栏
动物园
洗澡围栏
基于AdaBoost算法的在线连续极限学习机集成算法
澳大利亚新围栏法促邻里和谐
缺口