CN116824345A - 基于计算机视觉的弹孔检测方法及装置 - Google Patents
基于计算机视觉的弹孔检测方法及装置 Download PDFInfo
- Publication number
- CN116824345A CN116824345A CN202310513119.8A CN202310513119A CN116824345A CN 116824345 A CN116824345 A CN 116824345A CN 202310513119 A CN202310513119 A CN 202310513119A CN 116824345 A CN116824345 A CN 116824345A
- Authority
- CN
- China
- Prior art keywords
- image
- target
- bullet hole
- target image
- result
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 145
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 110
- 238000012545 processing Methods 0.000 claims abstract description 45
- 238000013135 deep learning Methods 0.000 claims abstract description 28
- 238000005516 engineering process Methods 0.000 claims abstract description 25
- 230000008859 change Effects 0.000 claims abstract description 22
- 238000012549 training Methods 0.000 claims description 115
- 230000011218 segmentation Effects 0.000 claims description 85
- 238000000034 method Methods 0.000 claims description 83
- 230000006870 function Effects 0.000 claims description 46
- 238000000605 extraction Methods 0.000 claims description 40
- 238000009826 distribution Methods 0.000 claims description 34
- 238000001914 filtration Methods 0.000 claims description 34
- 238000012360 testing method Methods 0.000 claims description 24
- 238000013145 classification model Methods 0.000 claims description 23
- 238000013528 artificial neural network Methods 0.000 claims description 22
- 238000013507 mapping Methods 0.000 claims description 20
- 230000009466 transformation Effects 0.000 claims description 15
- 238000002372 labelling Methods 0.000 claims description 14
- 230000002146 bilateral effect Effects 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 12
- 239000003550 marker Substances 0.000 claims description 12
- 238000012795 verification Methods 0.000 claims description 11
- 238000009499 grossing Methods 0.000 claims description 10
- 230000036961 partial effect Effects 0.000 claims description 8
- 230000001965 increasing effect Effects 0.000 claims description 7
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 claims description 6
- 238000003860 storage Methods 0.000 claims description 6
- 230000001131 transforming effect Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008685 targeting Effects 0.000 claims description 4
- 238000012546 transfer Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 16
- 230000000694 effects Effects 0.000 description 15
- 230000007246 mechanism Effects 0.000 description 11
- 238000011176 pooling Methods 0.000 description 11
- 230000004913 activation Effects 0.000 description 10
- 238000002474 experimental method Methods 0.000 description 10
- 230000014509 gene expression Effects 0.000 description 8
- 230000002829 reductive effect Effects 0.000 description 8
- 238000003384 imaging method Methods 0.000 description 7
- 230000006872 improvement Effects 0.000 description 7
- 230000007547 defect Effects 0.000 description 6
- 238000010304 firing Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 238000005286 illumination Methods 0.000 description 5
- 238000003709 image segmentation Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 238000011160 research Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 239000000284 extract Substances 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 238000003062 neural network model Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000003708 edge detection Methods 0.000 description 2
- 238000011068 loading method Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 229910002651 NO3 Inorganic materials 0.000 description 1
- NHNBFGGVMKEFGY-UHFFFAOYSA-N Nitrate Chemical compound [O-][N+]([O-])=O NHNBFGGVMKEFGY-UHFFFAOYSA-N 0.000 description 1
- 238000003853 Pinholing Methods 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/26—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
本说明书实施例提供了一种基于计算机视觉的弹孔检测方法及装置,包括:在开始打靶后,获取前端输入的目标靶图像,通过靶面定位对目标靶图像的有效区域进行识别和分割,剔除掉前端传入的目标靶图像中的无用背景部分,输出处理后的目标靶图像;根据处理后的目标靶图像通过ROI检测算法对同一靶位射击前后采集到的目标靶图像的变化部分进行检测,消除旧弹孔确定新增弹孔;根据确定的所述新增弹孔,将图像处理技术与深度学习技术相结合,进行弹孔检测。
Description
技术领域
本文件涉及弹孔检测技术领域,尤其涉及一种基于计算机视觉的弹孔检测方法及装置。
背景技术
装甲装备的射击训练是坦克和装甲步兵分队的重要训练内容,从基础训练到应用训练,射击训练分成多个层级的训练科目,训练炮手逐步掌握射击动作、要领和技能,达到提升射击水平的目的。这些训练科目中的一环就是“枪代炮”的教练射击训练,它以并列机枪和高射机枪的实弹射击为基础,但射击动作和要领吻合战斗射击训练中的火炮射击要求。因为枪弹相对炮弹便宜,射击训练易组织实施,比较适合新射手的反复训练需要,因此在装甲装备射击训练中占有特殊而重要地位。
完成教练射击过程中,射手需要搜索、瞄准、射击不同类型的目标,近乎实战要求的场景设置和训练方法,以提升自身实战射击水平,达到提高战斗力的目的。教练射击与其它的射击训练相比,主要区别有两点:一是需要同时设置多种不同类型的目标靶;二是根据规定时间内的上靶数量来判定成绩,不存在环数判定的问题。可见,成绩的最终判定需要遍历检出多个目标靶的上靶量。当前,基层部队乃至院校,在教练射击训练中多数采用传统的人工方式报靶,根据需要将检靶人员预先安排在靶区附近就位,当某个射手完成射击后,到靶前标注或利用望远镜等设备来观察上靶情况,作为成绩评定依据。这种传统的报靶方式存在诸多不足:一是训练效率低。人工检靶需要暂停射击训练,以确保检靶环节的人员安全。因为每一个射手完成射击训练后都有一个检靶的环节,检靶时间占比较多,总体上严重影响训练效率。二是准确率比较低。由于教练射击靶场中的各个靶子距离较远,无法做到像普通的单兵战斗射击训练那样频繁地标记或更换靶纸,因此,在报靶时,检靶员需要记住旧弹孔的位置以对比寻找新增弹孔,当靶面上的弹着点较多时,很容易出差错,从而导致报靶结果不准确。为避免这一问题,有些部队在训练时选择不去检查靶面上的弹着点,而是让检靶员根据射击时曳光弹的弹道和目标靶上的硝烟来判断是否命中,如此一来,虽然不再依靠记忆了,但是这种主观判断极度依赖个人经验,难以保证报靶结果的准确性和客观性。还有一种解决方法是每个目标靶都安排多名人员同时进行观察,这样做虽然在一定程度上提高了准确率,但却会占用大量人力,影响训练热情,往往得不偿失;三是训练效果差。受训人员在射击间隙只知道有几发命中了,而弹着点的具体位置则无从知晓,无法重温、体会和领悟射击时的动作和要领,查找不足,并寻找改进方法,以图在下一轮的射击中进行验证。鉴于上述原因,有必要改进检靶报靶方式以替代人工报靶,以满足部队实际射击训练的需求,解决其效率低、训练效果差等问题。
在现有技术中,不同类型的自动报靶系统目前在成本、使用成本、环境适应性等方面往往无法同时满足基层部队教练射击训练的需求。其中,基于视觉成像的自动报靶系统因其成本低、维护容易、携行方便等特点,是最适合在部队推广并取代人工报靶的方式,其性能主要取决于算法,但是由于现有算法的准确性和可靠性还有待加强,目前尚未在实际应用中得到广泛普及。因此,有必要对其算法进行改进和优化,提高视觉成像自动报靶系统的性能,令其能够胜任教练射击训练的报靶工作。
现有的靶面定位算法或多或少存在缺陷,且主要是针对胸环靶的。本文研究主要是针对装甲装备射击训练,需要对多种不同类型的靶子进行识别和定位,情况要更为复杂,难度也更大,理论上使用基于深度学习技术的算法可行性较高,效果也更好。为解决当前算法存在的问题,本文研究主要使用深度学习的方法,搭建语义分割模型,并且对网络架构和损失函数等多个方面进行改进,完成多种类型目标靶有效区域的语义分割任务,实现了靶面定位的目标。
对于现有的弹孔检测方法,几乎每一类算法都有其各自的短板,而现有技术中大都倾向于使用传统方法来解决这些问题,难以突破传统图像处理技术的瓶颈,因此这些算法在精度、抗干扰能力以及普适性等方面往往难以适应教练射击的训练环境,即光照变化、靶面抖动、多人重复使用等实际情况。针对这一现状,本文研究充分考虑教练射击训练的实际需求,另辟蹊径,将传统图像处理技术与深度学习技术相结合,设计了一种针对新增弹孔的弹孔检测算法,并且针对其不足之处进行改进,解决了粘连弹孔的识别与弹孔的增量检测问题。
发明内容
本发明的目的在于提供一种基于计算机视觉的弹孔检测方法及装置,旨在解决现有技术中的上述问题。
本发明提供一种基于计算机视觉的弹孔检测方法,包括:
在开始打靶后,获取前端输入的目标靶图像,通过靶面定位对目标靶图像的有效区域进行识别和分割,剔除掉前端传入的目标靶图像中的无用背景部分,输出处理后的目标靶图像;
根据处理后的目标靶图像通过ROI检测算法对同一靶位射击前后采集到的目标靶图像的变化部分进行检测,消除旧弹孔确定新增弹孔;
根据确定的所述新增弹孔,将图像处理技术与深度学习技术相结合,进行弹孔检测。
本发明提供一种基于计算机视觉的弹孔检测装置,包括:
剔除模块,用于在开始打靶后,获取前端输入的目标靶图像,通过靶面定位对目标靶图像的有效区域进行识别和分割,剔除掉前端传入的目标靶图像中的无用背景部分,输出处理后的目标靶图像;
ROI检测算法模块,用于根据处理后的目标靶图像通过ROI检测算法对同一靶位射击前后采集到的目标靶图像的变化部分进行检测,消除旧弹孔确定新增弹孔;
弹孔检测模块,用于根据确定的所述新增弹孔,将图像处理技术与深度学习技术相结合,进行弹孔检测。
本发明实施例还提供一种基于计算机视觉的弹孔检测装置,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述基于计算机视觉的弹孔检测方法的步骤。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有信息传递的实现程序,所述程序被处理器执行时实现上述基于计算机视觉的弹孔检测方法的步骤。
采用本发明实施例,通过基于语义分割的靶面定位及目标靶类型识别算法,使其能够适应高分辨率的输入。靶面定位算法实现了多种类型目标靶有效区域的像素级高精度语义分割,有效解决了教练射击中多类型目标的识别问题以及室外复杂靶场环境对靶面定位的干扰问题,同时也为后续处理打下了基础。通过基于配准差分的ROI检测算法实现了连续靶面图像的变化区域检测,提取出了图像中的所有新增弹孔区域,通过本发明实施例的弹孔检测算法,实现了复杂情景下图像中弹孔的高精度检测,并且能够识别孤立弹孔与粘连弹孔,结合靶面定位算法与ROI检测算法,最终实现了连续图像中弹孔的增量检测。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的基于计算机视觉的弹孔检测方法的流程图;
图2是本发明实施例的报靶算法的流程简图;
图3是本发明实施例的目标靶的定位算法的具体流程图;
图4是本发明实施例的分别使用高斯滤波、中值滤波和双边滤波对靶图进行处理的处理结果的示意图;
图5是本发明实施例的搜集到的样本图像的示意图;
图6是本发明实施例的标注前后的部分样本的示意图;
图7是本发明实施例的RefineNet网络结构示意图;
图8是本发明实施例的RefineNet模块结构示意图;
图9是本发明实施例的三套方案的网络结构示意图;
图10是本发明实施例的方案B的部分分割结果的示意图;
图11是本发明实施例的ROI检测的具体流程图;
图12是本发明实施例的最终的配准结果的示意图;
图13是本发明实施例的最终的三通道直方图;
图14是本发明实施例的改进后的特征匹配结果示意图;
图15是本发明实施例的改进后的特征匹配最终的配准结果示意图;
图16是本发明实施例的ROI检测结果的示意图;
图17是本发明实施例的最终完成弹孔检测算法的具体流程图;
图18是本发明实施例的二值图像进行轮廓提取的路程图;
图19是本发明实施例的粗提取结果的示意图;
图20是本发明实施例的深度神经网络模型样本数据的示意图;
图21是本发明实施例的ResNet50的网络结构示意图;
图22是本发明实施例的ECA Block的结构示意图;
图23是本发明实施例的改进后的ECA模型结构的示意图;
图24是本发明实施例的弹孔检测结果的示意图;
图25是本发明装置实施例一的基于计算机视觉的弹孔检测装置的示意图;
图26是本发明装置实施例二的基于计算机视觉的弹孔检测装置的示意图。
具体实施方式
在装甲装备的射击训练中,“枪代炮”的教练射击训练占有特殊而重要地位。与普通的射击训练相比,教练射击训练需要同时设置多种不同类型的目标靶,且其成绩是根据规定时间内的上靶数量来判定的,不存在环数判定的问题。当前,基层部队乃至院校,在教练射击训练中多数采用传统的人工方式报靶,这种报靶方式存在训练效率低、准确率低的问题。随着军队现代化建设的不断推进,使用自动报靶系统来取代落后的人工报靶方式已经成为了一种发展趋势,基于视觉成像的自动报靶系统以其成本低、便于维护等特点成为了教练射击训练的首选。
本发明实施例针对装甲装备射击训练自动报靶问题,在综述分析了当前检靶、报靶现状的基础上,选择了基于视觉成像的报靶方案作为课题的研究方向。论文综合考虑了光照变化、靶面抖动、成像变化等多种因素对成像及检测的影响,将传统的图像处理技术与深度学习技术相结合,研究设计了一套自动报靶算法,从理论算法及软件层面论述并实现了“枪代炮”教练射击训练中目标靶的检测识别、粘连弹孔的识别以及弹孔增量检测这三个主要问题。即:靶面分割及其类型识别算法,对RefineNet模型进行改进,实现了基于语义分割的室外复杂靶场环境的靶面定位难题;新增弹孔区域检测算法,通过射击前后图像的特征匹配,实现了基于配准差分的ROI检测;新增弹孔检测算法,在ResNet模型中引入注意力机制和修正激活函数,实现了小尺寸孤立弹孔与粘连弹孔的检测,提升了检测精度和成功率。使用从多种复杂场景中采集到的大量靶面图像对本文设计的算法进行测试,实验结果表明,算法具有很高的精度和抗干扰能力,能够满足教练射击训练自动报靶的需求,有效推进了自动报靶系统的应用进程。
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
方法实施例
根据本发明实施例,提供了一种基于计算机视觉的弹孔检测方法,图1是本发明实施例的基于计算机视觉的弹孔检测方法的流程图,如图1所示,根据本发明实施例的基于计算机视觉的弹孔检测方法具体包括:
步骤101,在开始打靶后,获取前端输入的目标靶图像,通过靶面定位对目标靶图像的有效区域进行识别和分割,剔除掉前端传入的目标靶图像中的无用背景部分,输出处理后的目标靶图像;
步骤102,根据处理后的目标靶图像通过ROI检测算法对同一靶位射击前后采集到的目标靶图像的变化部分进行检测,消除旧弹孔确定新增弹孔;
步骤103,根据确定的所述新增弹孔,将图像处理技术与深度学习技术相结合,进行弹孔检测。
其中,步骤101具体包括:
步骤1011,通过平滑滤波器,使用双边滤波对前端输入的目标靶图像进行平滑滤波;
步骤1012,使用深度学习的方法,搭建并训练语义分割模型,进行靶面分割;具体包括如下处理:建立语义分割模型的数据集,并对所述数据集中的数据进行像素级标注,其中,所述数据集具体包括:使用相机在不同时刻、不同环境下采集到的真实目标靶图像、以及使用相机采集的按比例缩小的自制目标靶图像,所述标注类型包括:火箭筒、机枪、正面步兵战车、正面坦克、坦克发射点、标志物和背景;
基于RefineNet模型,增加网络深度和宽度,搭建语义分割模型;
将标注后的数据集划分为训练集、验证集和测试集,3120×3120的分辨率采集目标靶图像,并对所述目标靶图像进行增强处理,引入加权交叉熵损失函数为目标靶图像加权,并采用Adam优化器进行语义分割模型的训练;
通过训练好的语义分割模型进行靶面分割。
步骤1013,从靶面分割后的目标靶图像中剔除无用背景,实现靶面定位,输出处理后的目标靶图像。
步骤102具体包括:
步骤1021,读取射击前后两帧目标靶图像,对所述两帧目标靶图像进行直方图匹配:根据现有的灰度分布与期望的目标分布计算出映射函数,其中,pr(r)表示现有分布,用pz(z)表示目标分布,将待处理图像的分布pr(r)按照公式1进行变换,并对计算结果sk的值进行四舍五入,得到直方图均衡化的离散形式:
其中,M×N为图像的尺寸,nj是灰度值为rj的像素数,L表示图像中的灰度级数;
步骤1022,根据目标直方图分布pr(r)的值,对q=0,1,2,…,L-1按照是2进行计算,并对计算结果G的值进行四舍五入,得到变换函数G(Zq):
步骤1023,当k=0,1,2,…,L-1时,对于每一个sk,均根据变换函数G的值匹配相应的zq,从而令G(Zq)与sk的值最接近,并记录所有从s到z的映射,对于任意的sk,若其相对应zq的值多于一个,则从中选取最小的值;
步骤1024,对待处理的图像进行直方图均衡化之后,根据上一步计算中得到的映射,将该图像中各个均衡后的像素值sk映射为相应的zq,从而得到直方图匹配后的结果图;
步骤1025,确定特征检测器,并通过特征检测器获取特征点以及特征描述符,随后建立特征匹配器,将射击后的目标靶图像作为模板,与射击前的目标靶图像进行特征点之间的匹配,最后根据匹配结果对前一幅目标靶图像进行校正,从而完成配准图像配准,其中,在进行特征匹配时,先根据分割结果对目标靶图像进行掩膜处理,只保留标志物像素,然后再使用SIFT+BF的算法进行特征匹配;
步骤1026,对配准后的目标靶图像进行差分运算,将两幅图像的像素值直接相减,得到差分结果,对直接差分后的差分结果进行阈值化处理,基于根据OTSU大津法根据公式4-9确定阈值T,根据阈值T以及公式3将图像中各像素的灰度值直接设置为0或1,即黑色或者白色,使其呈黑白效果;
其中,D(x,y)为阈值化结果,ft(x,y)和ft+1(x,y)表示前后两幅图像;
步骤1027,设前景像素占比为ω0,其平均灰度值为μ0;背景像素占比为ω1,其平均灰度值为μ1,则有:
ω0+ω1=1 公式4;
步骤1028,图像的整体平均灰度值为:
μ=ω0μ0+ω1μ1 公式5;
类间方差为:
g=ω0(μ0-μ)2+ω1(μ1-μ)2 公式6;
将公式6简化为:
g=ω0ω1(μ0-μ1)2 公式7;
设pi为i灰度级出现的概率,则有:
步骤1029,遍历L个灰度级,使得g取最大值的灰度级k值即为所求阈值T;
步骤10210,对差分结果中的连通域进行检索,并且剔除掉所有像素数量小于5的连通域,消除部分点状和带状噪声;
步骤10211,根据连通域的检索结果添加最小边界框,然后将包围框映射到射击后的原始图像上,直接对图像中ROI以外的部分进行掩膜处理,确定新增弹孔。
步骤103具体包括:
步骤1031,使用通过图像二值化与轮廓提取对感兴趣区域中的弹孔进行粗提取;
步骤1032,搭建并训练深度神经网络分类模型:利用Labelme工具将定位后目标靶图像中的弹孔区域标注为孤立弹孔类和粘连弹孔类两类,根据json文件生成弹孔区域的真值图,通过图像二值化与轮廓提取图像中的疑似弹孔区域,截取检测结果,保存为样本图像数据,并定位其在真值图中的对应区域,之后计算二者之间的交并比,若弹孔真值图与粗提取结果的交并比超过0.5,则将截取的样本归为相应的弹孔类,反之归为非弹孔类,从而建立深度神经网络分类模型的数据集,搭建基于ResNet分类模型的引入注意力机制和Mish激励函数的深度神经网络分类模型,将标注后的数据集划分为训练集、验证集和测试集,对所述数据集进行数据增强处理,引入焦点损失函数为该数据集进行加权,并采用Adamax优化器进行深度神经网络分类模型的训练;通过训练好的深度神经网络分类模型对粗提取的结果进行识别;
步骤1033,对识别后的粗提取的结果进行判断,剔除非弹孔部分,识别孤立弹孔与粘连弹孔,最终完成弹孔的检测。
以下结合附图对本发明实施例的上述技术方案进行详细说明。
本发明实施例对基层部队教练射击训练的实际情况,重点进行视觉成像自动报靶系统的算法研究,主要设计了靶面定位、ROI检测与弹孔检测这三个算法,报靶算法的流程简图如图2所示。当一轮打靶结束后,将前端采集到的靶图传入后端,依次进行靶面定位、ROI检测与弹孔检测,即完成了一套自动报靶算法的完整流程。
1、靶面定位算法。靶面定位是对目标靶的有效区域进行识别和分割,剔除掉前端传入图像中的无用背景部分,为后续的处理做铺垫。本发明实施例根据教练射击需要同时使用多种不同类型靶子的特点,主要提出一种基于深度学习技术的靶面语义分割方法,针对遇到的具体问题对搭建的经典语义分割模型做了改进,并进行了实验与分析。
2、ROI检测算法。ROI检测是从同一靶位射击前后采集到的图像中检测其变化部分,以消除射击训练中旧弹孔带来的影响,使得后续算法能够专注于新增弹孔的检测。本发明实施例提出一套基于图像配准差分的ROI检测算法,结合教练射击训练的实际情况对其进行了改进,并进行了实验验证与分析。
3、弹孔检测算法。经过预处理之后,接下来需着手进行弹孔检测。本发明实施例将传统的图像处理技术与深度学习技术相结合,提出了一种弹孔检测的方法,使用一种新的方法来建立数据集,并且对现有的分类模型进行改进以适应本文算法。最后对本文算法进行了整体的测试,并对结果进行了分析。
下面分别对上述三个算法进行详细说明。
由于前端传入的图像往往存在大量无用背景区域以及噪声,需尽量消除噪声干扰,并从中准确地识别、提取靶面有效区域,才能够顺利进行弹孔检测工作。本章先通过平滑滤波器对靶面图像进行处理,再使用深度学习的方法,搭建并训练语义分割模型,从而实现目标靶的定位,算法的具体流程如图3所示。
对基于计算机视觉技术的自动报靶系统算法而言,首先要消除系统在采集和读入目标靶图像时所产生的噪声,通常会使用平滑滤波的方式对靶面图像进行滤波降噪处理。值得注意的是,降噪时应尽可能地保护图像的原有特征,若消除不干净会对后续步骤造成负面影响,但如果平滑太过,反而会令弹孔的特征缺失,增加检测的难度,适得其反。平滑滤波在空间域可分成线性滤波和非线性滤波两种。与线性滤波不同的是,非线性滤波更接近于一种逻辑运算,包括中值滤波、双边滤波(Bilateral filter)等。中值滤波即将核内各点像素值进行排序,使其中心点像素取中值的滤波方法,它对脉冲噪声和椒盐噪声等非线性噪声的抑制效果很好。双边滤波的核函数由空间域核和值域核两部分构成,可以在抑制噪声的同时保留图像边缘信息,其表达式如下所示:
w(i,j,k,l)=d(i,j,k,l)×r(i,j,k,l)
其中,核d(i,j,k,l)体现邻域中的点与当前点的距离,而核r(i,j,k,l)则体现了它们灰度值的距离。
分别使用高斯滤波、中值滤波和双边滤波对靶图进行处理,处理结果如图4所示。由图4(a)-(d)可以看出,高斯滤波和双边滤波的整体去噪效果差不多,但中值滤波对于高斯噪声的去噪效果不甚理想。另外,对于本发明实施例算法而言,图像中弹孔的特征越明显,后续进行弹孔检测时的精度也就越高,由图4(e)-(h)可以看出,相比于高斯滤波,经双边滤波和中值滤波处理后的弹孔细节要更加清晰,因此高斯滤波器对弹孔特征的保护存在一定不足。综上,双边滤波能够在不破坏弹孔特征的同时尽可能地消除噪声的影响,故本发明实施例使用双边滤波的方法来处理靶面图像。
靶面分割:在消除了噪声干扰之后,为了将图像中的无用背景剔除,需要对目标靶进行分割。传统的分割方法主要是围绕图像的底层特征进行的,局限性较强,不适用于教练射击这种多目标的复杂情形。因此,这里引入深度神经网络,采用全监督学习的方式来实现目标靶的语义分割。
建立数据集是进行深度学习实验的首要步骤,同时也是至关重要的一环,高质量的数据集甚至能够提升模型训练的效果。由于目前还没有目标靶图像相关的开源数据集,因此本发明实施例所用数据均为自行搜集,主要包含以下两部分:
(1)使用相机在不同时刻、不同环境下采集到的真实目标靶图像,共4802张。
(2)使用相机采集的按比例缩小的自制目标靶图像(含标志物),共588张。
如图5所示,由于搜集到的样本图像尺寸并不一致,为方便后续使用,将采集到的所有样本裁剪为正方形以统一纵横比,建立了共包含5390张各种类型目标靶图像的数据集,每张样本图像中包含1个目标靶以及最多4个标志物。
接下来要对数据集中的样本进行标注,由于教练射击训练会用到多种不同类型的靶子,因此本发明实施例的分割任务属于多类语义分割问题。这里使用图像标注软件Labelme对几种常用的目标靶图像进行像素级标注,将其标注为火箭筒(target A)、机枪(target B)、正面步兵战车(target C)、正面坦克(target D)、坦克发射点(target E)、标志物(marker)和背景(background)7类。标注前后的部分样本如图6所示,其中,图6(a)-(c)为采集到的真实目标靶图像标注前后对比,图6(d)为带有标志物的自制目标靶图像标注前后对比。
图像分割(image segmentation)是指将属于不同物体的像素区域分开,如将街景中的行人、车辆等与背景分开,语义分割(Semantic Segmentation)则是在普通分割的基础上指出每一块区域的类别,即给出它们的语义。
改进的RefineNet语义分割模型:在训练深度卷积神经网络模型时,通常会引入大量的卷积和池化操作,这将会不可避免地导致输入模型初始图像的分辨率被大幅压缩,并造成部分数据信息的丢失。针对该问题,提出了RefineNet网络架构。它在结构上形似U-Net,二者可以简单地理解为均由上采样和下采样两大通路构成,也可以认为RefineNet是U-Net的一个变种。该模型主要用于解决像素级的高精度语义分割问题,在PASCAL VOC、NYUDv2、Person-Parts等公共数据集上进行语义分割测试,均取得了优秀的结果。RefineNet网络结构如图7所示。
图7中左侧向下传播的通路以ResNet网络为基础,通过下采样提取图像语义特征,并将输出的四组特征传入相应的RefineNet模块;右侧向上传播的通路以多路径优化(Multi-Path Refinement)结构为基础,利用RefineNet模块对各层级的特征进行融合,从而最大限度地利用下采样过程中的可用信息,RefineNet模块结构如图8所示。
RefineNet模块由残差卷积(Residual convolution unit,RCU)、多分辨率融合(Multi-resolution fusion)和链式残差池化(Chained residual pooling)三种模块构成。残差卷积模块是从ResNet中提取出来的模型,每个输入首先通过两个残差卷积模块,对预训练ResNet的权重进行微调。多分辨率融合模块用于将多个输入融合到高分辨率特征图上,在上采样之前先进行卷积处理主要是为了调整不同特征的数值尺度。链式残差池化模块则用于获取较大图像区域的上下文背景信息,并对得到的分割结果进行优化,其支路上的多个池化模块有助于获取相对大尺寸的图像信息。
总的来说,RefineNet是一个非常优秀的模型,相较于其他模型,它主要优势在于多尺度的特征学习能力。值得注意的是,虽然RefineNet在多个公共集上训练的分数很高,但其样本输入的分辨率却并不算高,如PASCAL VOC数据集图像的尺寸只有500×486。就本发明实施例的算法而言,进行目标靶分割时需要尽可能保持高分辨率的输入以防止弹孔信息丢失,原始的RefineNet网络结构可能并不适应这么大尺寸的图像,因此有必要对它的结构进行一定改进,以使其适用于本文应用场景。针对这一问题,本发明实施例提出了三种效果较好的方案,它们的网络结构如图9所示。为了有效拓展网络结构,三套方案均采用两个不同尺度的输入,其中方案A的结构比较简单,令每个RefineNet模块同时接收4个尺度的特征,主要对网络宽度进行拓展,B方案将5个RefineNet模块进行级联,更加注重模型深度的扩充,C方案可以看作是前两种改进的折中版。虽然三种改进的差异很大,但其网络结构仍旧保留了多路径优化的核心结构,同时,适度增加网络深度和宽度也不必担心严重的过拟合或梯度消失、爆炸等退化问题。
模型训练:语义分割模型训练时的主要参数如表1所示:
表1模型训练主要参数
进行训练时,数据集中的样本图像是按批次进行输入的,为防止模型学习到错误的数据分布特征,降低泛化误差,将所有图像的顺序打乱。随后将5390个样本按照7:1:2的比例分别放入训练集(Training set)、验证集(Validation set)和测试集中(Test set),其划分的具体细节如表2所示。为了确保分析的客观性,三者之间是相互独立的,样本中不存在交集。
表2数据集划分细节
由于分割后的图像还要用于弹孔检测,所以应使其保持高分辨率(resolution),减少压缩过程中图像信息的损失,但样本尺寸过大同样也会带来标记困难、模型收敛速度慢等问题,经过权衡,本发明实施例按照3120×3120的分辨率采集目标靶图像并输入模型。
为了提升模型的泛化性,使其能够适应各种不同的场景,并且预防由于训练集数据量偏少而引发的过拟合问题,应在训练前对样本图像进行数据增强处理。这里引入torchvision工具集中的transforms模块,按一定概率对输入的原始图像进行旋转、水平翻转、调整亮度和饱和度的操作,以实现样本数据增强的效果。需要特别注意的是,在处理过程中一定要对原始图像所对应的掩码(mask)图进行同样的处理,否则将会导致数据集损坏。
Batch size表示一次训练所选取的样本数,尽管引入它可能会降低模型的整体训练速度,但一个合适的Batch size值可以使梯度下降的方向更准确。根据过往的经验,综合考虑GPU性能、训练集大小以及网络模型结构等影响,将Batch size设置为4。
Epoch表示该模型进行训练的轮次,深度神经网络每经过一轮训练,训练集中的样本图像会被完整学习一次。Epoch值的设置比较依赖个人经验,经过几轮预训练的测试,为保证模型能够收敛,最终决定将Epoch的值设为100。
Learning rate是深度学习实验中一个重要的超参数,它决定了模型参数在训练过程中更新的幅度。学习率越大,梯度下降就越快,但可能会在最小值附近产生震荡,导致模型无法有效收敛。引入较小的学习率必然会造成收敛过程缓慢,但却更有可能使loss值降至最低。本实验兼顾模型训练速度与精度,经过多次预训练的尝试后决定将初始学习率设置为0.0025,并引入学习率控制器,使其随训练轮次增长而呈指数衰减。
多类图像分割问题往往采用分类交叉熵损失函数(Categorical cross entropyloss)作为代价函数(Loss function)。本实验的目的是识别并提取目标靶靶面区域,是为了接下来的弹孔检测流程而进行的铺垫。从这一角度出发,为了最大幅度地减少语义分割误差对弹孔检测的影响,应尽可能地避免目标靶上弹孔像素被误判为无用背景像素的情况,即对假阳性有一定的容忍度,而对假阴性的容忍度则很低。为此这里引入加权交叉熵损失函数(Weighted cross entropy loss,WCE)为正样本(目标靶像素)加权,其表达式如下所示:
其中,yi为像素的真实类别,pi为将其预测为i类的概率,ω为权重。WCE本质上是通过ω来描述样本在损失函数中的重要性,设置ω>1即可减少假阴性。
优化器(optimizer)的选择对模型训练有着很大的影响,即使是相同的模型和数据集,使用不同的优化器也很可能会得到不同的训练效果。本章所使用的Adam是一种根据动量和目标函数的梯度自适应调整学习率优化算法,其表达式如下所示:
mt=β1mt-1+(1-β1)gt
不难发现,mt和vt分别为梯度gt的一阶和二阶矩估计,其初值均为0。在参数迭代的初始阶段,它们均存在向初值的偏移,故对其进行偏置校正:
之后再进行参数的更新:
此处的η为全局学习率,取初始的β1=0.9,β2=0.999,同时在分母处加上一个微小值ε=1×10-8以防止
为了对模型的语义分割效果进行评估,本发明实施例从主观和客观两个方面对实验结果进行分析与比较。在客观评价中,选取平均像素精度(Mean Pixel Accuracy,MPA)和平均交并比(Mean Intersection over Union,MIoU)两种常用的图像分割评估标准,将训练后模型的分割结果与人工标注结果进行对比,其表达式如下所示:
平均像素精度指计算分割任务的每个类别中正确分类的像素数比例,并求出所有类别比值的平均值。平均交并比即为在图像语义分割任务中,计算每个类别的交并比(对预测结果及其真实值的交集与并集的比值),之后再求和并取平均值,当其值为1时,即表示各类别的真实值和预测值的交集与并集完全相同。式中,pii表示被正确分类的i类像素数量,pij表示本应属于i类但被错误分为j类的像素数量。k表示图像分割任务中类(不包含背景)的数量,原则上此处应取k=6,但考虑到研究的重点是各模型对于目标靶的分割效果,在计算均值时若引入分割难度很低的marker类会对后续分析产生较大干扰,因此本发明实施例在计算MPA和MIoU时将标志物类剔除,并取k=5。
对于本本发明实施例提出的3种改进方法,显然方案A的性能不如原始模型,属于反向优化,而方案B则取得了很好的效果,在数值上甚至超过了DeepLabv3+,是几个模型中最高的,方案C相较于原始的RefineNet-res152只有非常微小的提升,几乎可以忽略不计。由此可见,对于本文应用场景,如果过于注重宽度的拓展,训练过程中所叠加生成的高通道数特征图可能很难被模型所接收,设法直接增加RefineNet网络的深度反而是最有效的,因此本发明实施例选择方案B作为最终的分割模型,其部分分割结果如图10所示。
综上所述,根据本发明实施例的靶面定位算法,首先使用双边滤波的方法对图像进行去噪预处理,随后基于深度学习技术,搭建并训练基于RefineNet的语义分割模型,完成了靶面定位。在此过程中,通过采集、标注大量的样本图像建立了数据集,并且对常用的深度学习语义分割模型进行了总结与分析,针对原始RefineNet模型的不足,对其模型结构进行了改进,使其能够适应高分辨率的输入,针对分割过程中的弹孔信息丢失问题,改进了损失函数,减少了假阴性的情况。最后对算法进行了测试与分析。测试结果表明,靶面定位算法实现了多种类型目标靶有效区域的像素级高精度语义分割,有效解决了教练射击中多类型目标的识别问题以及室外复杂靶场环境对靶面定位的干扰问题,同时也为后续处理打下了基础。
ROI检测:在完成靶面定位,并且剔除了无用背景后,接下来要着眼于弹孔检测工作。新增弹孔检测的重要性已经在前文进行过阐述了,为实现目标靶上新增弹孔的检测,本章基于图像配准的方法对射击前后目标靶图像的变化部分进行检测,该部分即为感兴趣区域(region of interest,ROI),算法的具体流程如图11所示。
直方图匹配可以改变图像的灰度分布,将其与指定图像或函数形式的直方图相匹配。由于教练射击训练是在室外进行的,射击前后两幅图像可能会因为云层遮挡、光照变化等原因产生较大的明暗差距。因此,这里通过直方图匹配的方式来调整图像的灰度分布,消除其明暗差距,从而使特征匹配和差分运算的结果更加准确。
这种方法的核心在于根据现有的灰度分布与期望的目标分布计算出映射函数,这里用pr(r)表示现有分布,用pz(z)表示目标分布,则其匹配步骤如下:
(1)将待处理图像的分布pr(r)按照下式进行变换,并对计算结果sk的值进行四舍五入,得到直方图均衡化的离散形式。
其中,M×N为图像的尺寸,nj是灰度值为rj的像素数,L表示图像中的灰度级数。
(2)根据目标直方图分布pr(r)的值,对q=0,1,2,…,L-1按照下式进行计算,并对计算结果G的值进行四舍五入,得到变换函数G(Zq)。
(3)当k=0,1,2,…,L-1时,对于每一个sk,均根据变换函数G的值匹配相应的zq,从而令G(Zq)与sk的值最接近,并记录所有从s到z的映射。需要注意的是,对于任意的sk,若其相对应zq的值多于一个,则从中选取最小的值。
(4)对待处理的图像进行直方图均衡化之后,根据上一步计算中得到的映射,将该图像中各个均衡后的像素值sk映射为相应的zq,从而得到直方图匹配后的结果图。
对于本发明实施例算法而言,是在RGB颜色空间对输入的两幅图像进行直方图匹配。将采集到的后一幅图像作为目标图像,前一幅图像作为源图像进行匹配,与上述算法的不同之处仅在于匹配前需要将图像根据RGB通道拆分为三幅图像,将相应通道分别进行配准后,再合成一幅彩色图像,最终的配准结果如图12所示,其相应的直方图如图13所示。
图像配准可以看作是将不同条件下所采集到的图像相匹配的过程,包括基于灰度配准、基于特征配准以及基于变换域的配准方法。在经过了直方图匹配之后,射击前后两幅图像的配准难度已经降低了许多,这里选择基于图像特征的方法来进行配准。配准时首先要确定特征检测器,并通过特征检测器来获取特征点以及特征描述符,随后建立特征匹配器,将射击后的图像作为模板,与射击前的图像进行特征点之间的匹配,最后根据匹配结果对前一幅图像进行校正,从而完成配准。
所谓特征就是图像中一些独特的部分,若想配准两幅图像,首先应设法提取它们的特征。特征检测包括点检测、线检测与边缘检测,当应用于特征匹配的情形时,往往会选择点检测的方法。现有的特征点检测算法有许多,如Harris、SIFT、SURF、FAST、BRIEF、ORB等,本发明实施例重点讨论SIFT、SURF和ORB这三种公认性能比较优秀的算法。
在特征检测中,为了解决视觉不变性的问题,提出了尺度不变特征这一概念,即对某一物体在各种尺度下采集到的图像都能检测到一致的特征点,并且各检测结果均有其对应的尺度因子,理论上两幅不同尺度图像中同一个特征点的尺度因子之比与图像尺度之比是相等的。而SIFT即尺度不变特征转换(ScaleInvariant Feature Transform),顾名思义,它是一种著名的尺度不变特征检测算法,常用于斑点检测,是目前公认性能最好的算法之一。它的大致步骤是先构造尺度空间,随后搜索极值点并筛选出关键点,之后对筛选结果周围区域进行计算以得到特征描述子。SURF是加速稳健特征(Speeded Up Robust Feature)的简称,它同样是一种尺度不变特征检测算法,一般用于检测角点。SURF算法可以看作是SIFT的变种,主要通过对Harr求导来提升检测速度,理论上基本可以满足实时处理。ORB(Oriented Fast and Rotated Brief)采用FAST(features from accelerated segmenttest)算法来检测特征点,并通过BRIEF(Binary Robust Independent ElementaryFeatures)算法来计算特征点的描述子,其计算速度非常快,并且能够适应一定的缩放与旋转等图像变换。
特征匹配是配准过程中非常重要的一步,一般思路是从模板图像中逐个取特征点,然后根据算法从目标图像中寻找匹配度最高的特征点,并记录匹配对。OpenCV库中提供了两种常用的匹配算法,一种是暴力匹配法(Brute Force Matcher),另一种则是基于FLANN的匹配法(Flann Based Matcher)。暴力匹配的基本思路是选取模板图像中的每一个特征点,遍历目标图像中所有可能的匹配,最后返回匹配度最高的那个关键点。而FLANN(Fast Library for Approximate Nearest Neighbors)是一种快速近似最近邻搜索算法,理论上来说速度更快,但精度不如暴力算法。另外,本文实验引入K近邻(K-NearestNeighbor)优化算法:对于模板图像中的一个关键点,选取它在另一幅图像中欧式距离最近的前K个关键点,在这K个关键点中,计算最近距离除以次近距离的比率(ratio),若比率低于设定的阈值T,则保留这对匹配点。在实际应用中,设置参数时常取K=2,但阈值T的选取却比较麻烦。由于特征空间的高维性,在错误匹配的相似距离内通常会存在许多其他的错误匹配,故算得ratio值会比较大,适度地降低T的值能够筛选掉更多的错误匹配,但T的值设置过低也会导致匹配点数量太少,本次实验中预设T=0.5。
对于本发明实施例的应用场景,选取40组目标靶图像,利用上述算法进行对比测试。由于ORB算子特征描述符信息的格式与FLANN算法很难匹配,剔除ORB+FLANN的组合,使用SIFT+FLANN、SIFT+BF、SURF+FLANN、SURF+BF、ORB+BF这5组算法进行实验。为了计算匹配的准确率,在实验前预先对测试图像的部分特征点对进行人工标注,并根据标注结果计算其标准变换矩阵,如此一来,对于前一幅图像中的每个关键点(x0,y0),都可以通过标准变换阵求得其在后一幅图像中的匹配点(x1,y1)。正式测试时,若算法输出的匹配点(x2,y2)与(x1,y1)之间的距离小于2像素,则认为特征点匹配正确。对于特征匹配器,使用相同的特征检测算法时,暴力匹配的准确率相对较高,且处理速度与FLANN相比并没有过分降低,仍处于毫秒级,在可接受范围之内。在同种匹配器下,SIFT与SURF的准确率差距并不大,SIFT的精度相对较高,但牺牲了部分处理速度。ORB算法的速度虽然非常快,但其在尺度不变性与旋转不变性方面的缺陷使得它的准确率非常低。
特征匹配测试结果:这里提出该问题的解决方案,即在靶面上粘贴标志物以辅助进行配准。在实际应用中,相比于目标靶,标志物的尺寸是非常小的,组织教练射击时,射手在数百米远的距离不可能看得到靶子上的标志物,故其不会对训练产生影响。实际上,在上一章中已经实现了靶面图像中标志物类的分割,并获取了它的标签信息和位置信息,这里先根据分割结果对图像进行掩膜处理,只保留标志物像素,然后再使用SIFT+BF的算法进行特征匹配。这样做等同于排除了其他部分的干扰,而仅针对特征非常明显的标志物部分进行特征检测及匹配,但输出的转换矩阵仍适用于整幅图像。改进后的特征匹配结果以及最终的配准结果如图14和图15所示,经测试,使用该方法进行配准的平均准确率达到了95.93%,平均处理时间325.27ms,能够满足本文算法的需求。
为了提取目标靶变化区域,对配准后的图像进行差分运算。关于差分运算,通常是指将两幅图像的像素值直接相减,虽然之前已经做过直方图匹配了,但直接差分所得到的结果必然还会存在许多低灰度值的噪声。为解决此问题,本文算法对其进行一些改进,对直接差分后的结果进行阈值化处理,根据阈值将图像中各像素的灰度值直接设置为0或1,即黑色或者白色,使其呈黑白效果,其表达式为:
显然,上式中的D(x,y)为阈值化结果,ft(x,y)和ft+1(x,y)表示前后两幅图像,问题的关键在于如何确定阈值T。阈值的选取方法包括全局固定阈值、局部自适应阈值和OTSU等,这里根据OTSU大津法来计算阈值,将图像中想要保留的部分称为前景,需要消除的部分称为背景,设前景像素占比为ω0,其平均灰度值为μ0;背景像素占比为ω1,其平均灰度值为μ1,则有:ω0+ω1=1
图像的整体平均灰度值为:μ=ω0μ0+ω1μ1
类间方差为:g=ω0(μ0-μ)2+ω1(μ1-μ)2
上式可简化为:g=ω0ω1(μ0-μ1)2
设pi为i灰度级出现的概率,则有:
/>
遍历L个灰度级,使得g取最大值的灰度级k值即为所求阈值T。
经过上述操作,虽然已经消除了绝大多数的低灰度值噪声,但仍有许多高灰度值的噪声经过阈值化被保留了下来,这部分噪声主要是进行图像配准时,计算透视矩阵变换时引入的舍入误差所产生的。接下来对差分结果中的连通域进行检索,并且剔除掉所有像素数量小于5的连通域,这样做的目的是为了消除部分小型的点状和带状噪声。最后根据检索结果添加最小边界框,然后将包围框映射到射击后的原始图像上,如图16所示。后续若想检测新增弹孔,直接对图像中ROI以外的部分进行掩膜处理即可。至此,完成了ROI检测算法的全部流程。值得注意的是,虽然已经消除了大量的噪声干扰,但图像变化区域的检测结果仍然是比较粗糙的,靶子外侧依旧存在部分噪声,在精度上完全无法满足弹孔检测的最终要求,因此,下一步还需对ROI中的弹孔部分进行精准检测。
综上所述,根据本发明实施例的基于配准差分的ROI检测算法,首先通过直方图匹配消除了光照变化带来的干扰,然后根据特征匹配结果实现了图像配准,最后对配准结果进行差分处理,完成了ROI检测。在此过程中,针对现有特征匹配算法性能难以适应靶面抖动幅度较大时的情况,提出了一种解决方案,根据分割结果仅对靶子上的标志物进行特征匹配,大幅提高了配准精度,之后针对差分时会产生大量的低灰度值噪声这一问题,对差分运算进行了改进,通过阈值化处理消除了大部分噪声。最后,对算法进行了测试与分析,测试结果表明,ROI检测算法实现了连续靶面图像的变化区域检测,提取出了图像中的所有新增弹孔区域。
在完成感兴趣区域的检测后,实现了所有变化区域的提取,其中包含当前图像中的新增弹孔像素以及部分无用的靶面区域,大幅缩小了弹孔检测的范围,同时也筛掉了目标靶上的旧弹孔,接下来需要在此基础上着手对弹孔进行检测。本章首先使用图像处理的方法对感兴趣区域中的弹孔进行粗提取,随后搭建并训练深度神经网络分类模型,对粗提取的结果进行判断,剔除非弹孔部分,识别孤立弹孔与粘连弹孔,最终完成弹孔的检测,算法的具体流程如图17所示。
弹孔粗提取主要通过图像二值化与轮廓提取两步来实现。二值化操作是为了能够顺利进行轮廓提取而做的准备,它的任务是在保留全部弹孔像素的前提下尽可能地消除噪声干扰。轮廓提取可以看作是对二值化的结果进行定位,是为后续的弹孔识别而做的工作。
由于图像中弹孔像素的灰度值比周围部分要低得多,因此这里采用局部自适应阈值的方式对ROI进行二值化处理,根据各像素邻域内像素值的分布来确定该点阈值,这样做既可以确保提取出所有的弹孔像素,又能够消除掉一部分噪声。运算时首先需确定邻域窗口的尺寸N×N,对于图像中的点f(x,y),计算其N×N范围内各点像素值的均值T。将T作为阈值,对点(x,y)进行二值化处理,即
接下来对二值图像进行轮廓提取,常用的轮廓提取方法包括边缘检测、阈值分割以及提取傅里叶变换的高频信息等。本文使用OpenCV库中的findContours函数来实现轮廓提取,首先读取二值化之后的图像,以从左往右,由上往下的顺序进行光栅扫描,随后基于边界种类决定父边界,并对其进行跟踪,当扫描至图像最右下角的像素点时结束运算,其流程如图18所示。
经过轮廓提取后,根据提取结果创建其最小包围盒(Minimum Bounding Box),完成了弹孔的粗提取。粗提取的结果为图像中的疑似弹孔区域,包括所有弹孔区域以及部分非弹孔区域,其结果如图19所示。
接下来的工作就是要针对粗提取的结果进行识别,将非弹孔区域全部剔除,最终实现弹孔的精准检测。这里使用深度学习的方法进行弹孔识别,通过搭建并训练基于图像分类模型,根据模型的输出结果,保留弹孔像素并判断其类型,从而完成弹孔检测任务。
数据集的建立:深度神经网络模型的训练目标是对输入的图像进行孤立弹孔、粘连弹孔和非弹孔(噪声)的判断,相当于一个多分类监督学习问题,需要大量的弹孔以及非弹孔样本图像来建立数据集。最直接的数据采集方法是从目标靶图像中手动截取样本数据并对其进行分类,但是这样做不仅费时费力、效率低下,且噪声样本的采集标准难以衡量,根本无法依靠人工进行标注,这将会导致数据集的整体质量难以保证,很容易对模型的弹孔识别效果造成负面影响。
为避免上述问题,使用一种更加便捷、高效的方法来建立数据集。首先利用Labelme工具将定位后目标靶图像中的弹孔区域标注为两类,分别是孤立弹孔类和粘连弹孔类,根据json文件生成弹孔区域的真值图。然后使用前文提出的弹孔粗提取方法提取图像中的疑似弹孔区域,截取检测结果,保存为样本图像数据,并定位其在真值图中的对应区域。之后计算二者之间的交并比(Intersection over Union,IoU),其具体计算方法前文已经有所涉及,这里不再赘述。若弹孔真值图与粗提取结果的交并比超过0.5,则将截取的样本归为相应的弹孔类,反之归为非弹孔类。如此一来,便获得了适用于本发明实施例算法的样本数据,如图20所示。按照上述思路编写程序,批量处理715张目标靶图像,建立了包含5308个孤立弹孔样本,603个粘连弹孔样本和5549个非弹孔样本的数据集。
图像分类(image classification)指对于一幅给定的图像,通过某种算法从预定义的类别集中给该图像分配标签的任务,是计算机视觉领域研究的热点之一,同时也是人脸识别、文字识别、工业视觉检测等诸多应用场景的关键技术。现有技术中的VGG、ResNet、GoogleNet等一系列经典模型纷纷涌现。ResNet50是ResNet系列中的经典模型,它包含50个二维卷积层,首先对输入进行卷积操作,随后通过4组残差块(Residual Block),最后通过全连接层以便于完成分类任务,其结构如图21所示。搭建基于ResNet50的深度神经网络模型,并在原有网络结构的基础上进行一些改进。
引入注意力机制:由于弹孔图像的尺寸很小,使用原始的ResNet50模型进行训练时,经过几轮下采样之后特征图中的弹孔信息就已经基本被破坏了,特征信息很难传入到网络深处,分类效果也必然会受到影响,因此考虑引入注意力机制(attention)来捕获高级语义信息,加强模型对于弹孔特征的学习,以提高其分类精度。
在计算机视觉领域,注意力机制可以被看作是某种资源调配的机制,针对不同重要程度的对象,将原本是平均分配的资源重新分配。对于深度神经网络而言,注意力机制所关注的资源就是各隐藏层内部的权重了。注意力机制大致可分为硬注意力(hardattention)和软注意力(soft-attention)。在硬注意力中,往往只关注感兴趣的区域,而其他区域则直接被忽略,经常用到的图像裁剪操作实际上就是一种硬注意力机制的应用。在深度学习中,人们通常更倾向于引入软注意力机制,软注意力包括空间域注意力、通道注意力等等。其中,空间域注意力的原理是将特征图中的空间信息映射到另一个空间中,并且保留关键信息,可以理解为是让模型关注哪里;通道注意力主要是通过调节卷积层中各通道之间的权重来实现的,其典型代表是SENet,可以理解为是让模型关注什么。由于软注意力对于区域的关注度是连续分布的,同时也是可微的,因此能够通过神经网络计算其梯度,并且经前向传播和后向反馈来学习得到注意力的具体权重。目前,大多数学者都致力于开发更加复杂的注意力模块以追求更高的性能,这将会导致网络模型的复杂度增加,有时反而会影响训练效果。为解决该问题,Qilong Wang等人于2020年提出了ECA(EfficientChannel Attention)[65]结构。ECANet是一种轻量化的通道注意力模块,它是SENet的改进版,能够平衡模型的性能和复杂性,虽然仅涉及少数几个参数,但使用公共集进行训练时却能够带来明显的性能提升,ECABlock的结构如图22所示。
GAP(Global Average Pooling)为全局平均池化,将输入张量的每个二维特征通道平均化并压缩为一个实数,令其获得H×W的全局感受野。σ为激活函数。ECA能够通过核为k的快速一维卷积实现,k表示局部交叉跨通道交互的范围,k的取值为5。它使用一种自适应确定k的方法,避免通过交叉通道手动对其进行调整,其公式如下所示:
其中|t|odd表示与t最近的一个奇数。
然而,对于本发明实施例所要训练的弹孔分类模型而言,数据集中大量小尺寸的样本经大感受野的全局平均池化压缩后,图像表达的信息已经非常模糊了,此时再通过一维卷积调节权重理论上不会得到太好的结果。因此,本发明实施例在现有基础上继续对ECA进行改进。首先将GAP替换为SP(Soft Pooling),相比于常用的最大池化与平均池化系列,它能够在减少特征冗余的同时缓解信息丢失问题。在SoftPool中,传入的特征图通过2×2尺寸的卷积核来下采样,它的输出是卷积核范围内各个像素的指数权重之和,其权重为激活区域内的自然指数与邻域R内所有激活自然指数和的比值,即:
故其输出可表示为:
此时,由于输出的张量大小改变了,无法再通过一维卷积进行连接,因此考虑使用深度可分离卷积(depthwise separable convolution)来取代原有的一维卷积层。深度可分离卷积由一个逐通道卷积(depthwise convolution,DW)和一个逐点卷积(pointwiseconvolution,PW)串联组成,主要通过DW来减少参数数量,并通过PW调节模型通道,它的参数数量比普通的二维卷积要少很多,是一种轻量化的卷积层。这里使用DW卷积核大小为3×3的深度可分离卷积,并且不改变输入时的通道数量。综上,改进后的ECA模型结构如图23所示,为方便叙述,本发明实施例后续称之为ECA改。最后,针对ResNet50模型的IdentityBlock与Conv Block进行修改,将ECA改插入其基础卷积块中。
改进激活函数:激活函数又名激励函数,主要作用是使神经网络具备表达非线性信息的能力。ResNet50默认使用的是原始的ReLU激活函数,本发声明实施例使用更加平滑的Mish激活函数代替传统的ReLU连接各层,其表达式如下所示:mish(x)=xtanh(ln(1+ex))。
图像分类模型训练过程中的主要参数如表3所示:
表3模型训练主要参数
将弹孔数据集中的样本打乱顺序后以7:1:2的比例分配训练集、验证集和测试集,其具体划分细节如表4所示,三者不存在交集。
表4数据集划分细节
为防止过拟合现象,增强模型的泛化性,引入数据增强操作,按一定的概率对样本图像进行旋转、水平翻转处理。另外,由于数据集中负样本的数量较多,正负样本比例有些失衡,引入焦点损失函数(Focal loss)以降低大量的简单负样本在训练中所占的权重,其表达式如下所示:
Adamax优化器是Adam的变种,主要是将学习率上限的边界条件简化了,它们表达式的区别在于二阶矩估计的计算方式以及参数更新规则不同,使用式vt=max(β2vt-1,|gt|)和式进行计算
基于本发明实施例建立的弹孔分类数据集,对改进的模型以及其他几种常用网络进行训练,并且和靶面分割实验一样,各模型在训练过程中尽量使用相同的超参数,但会对部分数值进行微调,经过100轮的训练之后,各模型均达到收敛。利用本发明实施例改进模型识别弹孔并剔除噪声,所得到的弹孔检测结果如图24所示。
本本发明实施例的算法能够较快地完成高精度检测,漏检和误检率均在可接受的范围内。能够比较准确地完成弹孔检测。并且在复杂环境下具有良好的抗干扰能力。
综上所述,本发明实施例的弹孔检测算法。首先使用二值化和轮廓提取的方法进行靶图中弹孔粗提取,随后基于深度学习技术,搭建并训练基于ResNet的分类模型,对粗提取结果进行识别,完成了弹孔检测。在此过程中,提出了一种更加便捷、高效的方法来建立数据集,并且对常用的深度学习图像分类模型进行了总结与分析,针对原始ResNet50模型的不足,引入了改进的注意力机制和激活函数来提高分类精度,并且通过修改损失函数解决了数据集中样本不均衡的问题。最后,对算法进行了整体测试与分析,测试结果表明,弹孔检测算法实现了复杂情景下图像中弹孔的高精度检测,并且能够识别孤立弹孔与粘连弹孔,结合靶面定位算法与ROI检测算法,最终实现了连续图像中弹孔的增量检测。
本发明实施例的技术方案具有以下有益效果:
(1)提出了基于语义分割的靶面定位及目标靶类型识别算法。根据本文使用数据集的特点,对RefineNet语义分割模型的结构进行改进,使其能够适应高分辨率的输入。另外,针对分割过程中的弹孔信息丢失问题,改进了损失函数,减少了假阴性的情况。靶面定位算法实现了多种类型目标靶有效区域的像素级高精度语义分割,有效解决了教练射击中多类型目标的识别问题以及室外复杂靶场环境对靶面定位的干扰问题,同时也为后续处理打下了基础。
(2)提出了基于配准差分的ROI检测算法。算法首先通过直方图匹配消除了光照变化带来的干扰。然后针对现有特征匹配算法性能难以适应靶面抖动幅度较大时的情况,提出了一种解决方案,根据分割结果仅对靶子上的标志物进行特征匹配,大幅提高了配准精度。最后针对差分时会产生大量的低灰度值噪声这一问题,对差分运算进行了改进,通过阈值化处理消除了大部分噪声。ROI检测算法实现了连续靶面图像的变化区域检测,提取出了图像中的所有新增弹孔区域。
(3)提出了一套弹孔检测算法。为解决小尺寸的弹孔样本的特征很难提取问题,在原始ResNet模型的基础上,引入了改进的注意力机制和激活函数来提高分类精度,并且通过修改损失函数解决了数据集中样本不均衡的问题。弹孔检测算法实现了复杂情景下图像中弹孔的高精度检测,并且能够识别孤立弹孔与粘连弹孔,结合靶面定位算法与ROI检测算法,最终实现了连续图像中弹孔的增量检测。
装置实施例一
根据本发明实施例,提供了一种基于计算机视觉的弹孔检测装置,图25是本发明实施例的基于计算机视觉的弹孔检测装置的示意图,如图25所示,根据本发明实施例的基于计算机视觉的弹孔检测装置具体包括:
剔除模块250,用于在开始打靶后,获取前端输入的目标靶图像,通过靶面定位对目标靶图像的有效区域进行识别和分割,剔除掉前端传入的目标靶图像中的无用背景部分,输出处理后的目标靶图像;具体用于:
通过平滑滤波器,使用双边滤波对前端输入的目标靶图像进行平滑滤波;
使用深度学习的方法,搭建并训练语义分割模型,进行靶面分割;具体地,建立语义分割模型的数据集,并对所述数据集中的数据进行像素级标注,其中,所述数据集具体包括:使用相机在不同时刻、不同环境下采集到的真实目标靶图像、以及使用相机采集的按比例缩小的自制目标靶图像,所述标注类型包括:火箭筒、机枪、正面步兵战车、正面坦克、坦克发射点、标志物和背景;基于RefineNet模型,增加网络深度和宽度,搭建语义分割模型;将标注后的数据集划分为训练集、验证集和测试集,3120×3120的分辨率采集目标靶图像,并对所述目标靶图像进行增强处理,引入加权交叉熵损失函数为目标靶图像加权,并采用Adam优化器进行语义分割模型的训练;
通过训练好的语义分割模型进行靶面分割。
从靶面分割后的目标靶图像中剔除无用背景,实现靶面定位,输出处理后的目标靶图像;
ROI检测算法模块252,用于根据处理后的目标靶图像通过ROI检测算法对同一靶位射击前后采集到的目标靶图像的变化部分进行检测,消除旧弹孔确定新增弹孔;具体用于:
读取射击前后两帧目标靶图像,对所述两帧目标靶图像进行直方图匹配:根据现有的灰度分布与期望的目标分布计算出映射函数,其中,pr(r)表示现有分布,用pz(z)表示目标分布,将待处理图像的分布pr(r)按照公式1进行变换,并对计算结果sk的值进行四舍五入,得到直方图均衡化的离散形式:
其中,M×N为图像的尺寸,nj是灰度值为rj的像素数,L表示图像中的灰度级数;
根据目标直方图分布pr(r)的值,对q=0,1,2,…,L-1按照是2进行计算,并对计算结果G的值进行四舍五入,得到变换函数G(Zq):
当k=0,1,2,…,L-1时,对于每一个sk,均根据变换函数G的值匹配相应的zq,从而令G(Zq)与sk的值最接近,并记录所有从s到z的映射,对于任意的sk,若其相对应zq的值多于一个,则从中选取最小的值;
对待处理的图像进行直方图均衡化之后,根据上一步计算中得到的映射,将该图像中各个均衡后的像素值sk映射为相应的zq,从而得到直方图匹配后的结果图;
确定特征检测器,并通过特征检测器获取特征点以及特征描述符,随后建立特征匹配器,将射击后的目标靶图像作为模板,与射击前的目标靶图像进行特征点之间的匹配,最后根据匹配结果对前一幅目标靶图像进行校正,从而完成配准图像配准,其中,在进行特征匹配时,先根据分割结果对目标靶图像进行掩膜处理,只保留标志物像素,然后再使用SIFT+BF的算法进行特征匹配;
对配准后的目标靶图像进行差分运算,将两幅图像的像素值直接相减,得到差分结果,对直接差分后的差分结果进行阈值化处理,基于根据OTSU大津法根据公式4-9确定阈值T,根据阈值T以及公式3将图像中各像素的灰度值直接设置为0或1,即黑色或者白色,使其呈黑白效果;
其中,D(x,y)为阈值化结果,ft(x,y)和ft+1(x,y)表示前后两幅图像;
设前景像素占比为ω0,其平均灰度值为μ0;背景像素占比为ω1,其平均灰度值为μ1,则有:
ω0+ω1=1 公式4;
图像的整体平均灰度值为:
μ=ω0μ0+ω1μ1 公式5;
类间方差为:
g=ω0(μ0-μ)2+ω1(μ1-μ)2 公式6;
将公式6简化为:
g=ω0ω1(μ0-μ1)2 公式7;
设pi为i灰度级出现的概率,则有:
遍历L个灰度级,使得g取最大值的灰度级k值即为所求阈值T;
对差分结果中的连通域进行检索,并且剔除掉所有像素数量小于5的连通域,消除部分点状和带状噪声;
根据连通域的检索结果添加最小边界框,然后将包围框映射到射击后的原始图像上,直接对图像中ROI以外的部分进行掩膜处理,确定新增弹孔;
弹孔检测模块254,用于根据确定的所述新增弹孔,将图像处理技术与深度学习技术相结合,进行弹孔检测。具体用于:
使用通过图像二值化与轮廓提取对感兴趣区域中的弹孔进行粗提取;
搭建并训练深度神经网络分类模型:利用Labelme工具将定位后目标靶图像中的弹孔区域标注为孤立弹孔类和粘连弹孔类两类,根据json文件生成弹孔区域的真值图,通过图像二值化与轮廓提取图像中的疑似弹孔区域,截取检测结果,保存为样本图像数据,并定位其在真值图中的对应区域,之后计算二者之间的交并比,若弹孔真值图与粗提取结果的交并比超过0.5,则将截取的样本归为相应的弹孔类,反之归为非弹孔类,从而建立深度神经网络分类模型的数据集,搭建基于ResNet分类模型的引入注意力机制和Mish激励函数的深度神经网络分类模型,将标注后的数据集划分为训练集、验证集和测试集,对所述数据集进行数据增强处理,引入焦点损失函数为该数据集进行加权,并采用Adamax优化器进行深度神经网络分类模型的训练;通过训练好的深度神经网络分类模型对粗提取的结果进行识别;
对识别后的粗提取的结果进行判断,剔除非弹孔部分,识别孤立弹孔与粘连弹孔,最终完成弹孔的检测。
本发明实施例是与上述方法实施例对应的系统实施例,各个模块的具体操作可以参照方法实施例的描述进行理解,在此不再赘述。
装置实施例二
本发明实施例提供一种基于计算机视觉的弹孔检测装置,如图26所示,包括:存储器260、处理器262及存储在所述存储器260上并可在所述处理262上运行的计算机程序,所述计算机程序被所述处理器262执行时实现如方法实施例中所述的步骤。
装置实施例三
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有信息传输的实现程序,所述程序被处理器262执行时实现如方法实施例中所述的步骤。
本实施例所述计算机可读存储介质包括但不限于为:ROM、RAM、磁盘或光盘等。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种基于计算机视觉的弹孔检测方法,其特征在于,包括:
在开始打靶后,获取前端输入的目标靶图像,通过靶面定位对目标靶图像的有效区域进行识别和分割,剔除掉前端传入的目标靶图像中的无用背景部分,输出处理后的目标靶图像;
根据处理后的目标靶图像通过ROI检测算法对同一靶位射击前后采集到的目标靶图像的变化部分进行检测,消除旧弹孔确定新增弹孔;
根据确定的所述新增弹孔,将图像处理技术与深度学习技术相结合,进行弹孔检测。
2.根据权利要求1所述的方法,其特征在于,在开始打靶后,获取前端输入的目标靶图像,通过靶面定位对目标靶图像的有效区域进行识别和分割,剔除掉前端传入的目标靶图像中的无用背景部分,输出处理后的目标靶图像具体包括:
通过平滑滤波器,使用双边滤波对前端输入的目标靶图像进行平滑滤波;
使用深度学习的方法,搭建并训练语义分割模型,进行靶面分割;
从靶面分割后的目标靶图像中剔除无用背景,实现靶面定位,输出处理后的目标靶图像。
3.根据权利要求2所述的方法,其特征在于,使用深度学习的方法,搭建并训练语义分割模型,进行靶面分割具体包括:
建立语义分割模型的数据集,并对所述数据集中的数据进行像素级标注,其中,所述数据集具体包括:使用相机在不同时刻、不同环境下采集到的真实目标靶图像、以及使用相机采集的按比例缩小的自制目标靶图像,所述标注类型包括:火箭筒、机枪、正面步兵战车、正面坦克、坦克发射点、标志物和背景;
基于RefineNet模型,增加网络深度和宽度,搭建语义分割模型;
将标注后的数据集划分为训练集、验证集和测试集,3120×3120的分辨率采集目标靶图像,并对所述目标靶图像进行增强处理,引入加权交叉熵损失函数为目标靶图像加权,并采用Adam优化器进行语义分割模型的训练;
通过训练好的语义分割模型进行靶面分割。
4.根据权利要求1所述的方法,其特征在于,根据处理后的目标靶图像通过ROI检测算法对同一靶位射击前后采集到的目标靶图像的变化部分进行检测,消除旧弹孔确定新增弹孔具体包括:
读取射击前后两帧目标靶图像,对所述两帧目标靶图像进行直方图匹配:根据现有的灰度分布与期望的目标分布计算出映射函数,其中,pr(r)表示现有分布,用pz(z)表示目标分布,将待处理图像的分布pr(r)按照公式1进行变换,并对计算结果sk的值进行四舍五入,得到直方图均衡化的离散形式:
其中,M×N为图像的尺寸,nj是灰度值为rj的像素数,L表示图像中的灰度级数;
根据目标直方图分布pr(r)的值,对q=0,1,2,…,L-1按照是2进行计算,并对计算结果G的值进行四舍五入,得到变换函数G(Zq):
当k=0,1,2,…,L-1时,对于每一个sk,均根据变换函数G的值匹配相应的zq,从而令G(Zq)与sk的值最接近,并记录所有从s到z的映射,对于任意的sk,若其相对应zq的值多于一个,则从中选取最小的值;
对待处理的图像进行直方图均衡化之后,根据上一步计算中得到的映射,将该图像中各个均衡后的像素值sk映射为相应的zq,从而得到直方图匹配后的结果图;
确定特征检测器,并通过特征检测器获取特征点以及特征描述符,随后建立特征匹配器,将射击后的目标靶图像作为模板,与射击前的目标靶图像进行特征点之间的匹配,最后根据匹配结果对前一幅目标靶图像进行校正,从而完成配准图像配准,其中,在进行特征匹配时,先根据分割结果对目标靶图像进行掩膜处理,只保留标志物像素,然后再使用SIFT+BF的算法进行特征匹配;
对配准后的目标靶图像进行差分运算,将两幅图像的像素值直接相减,得到差分结果,对直接差分后的差分结果进行阈值化处理,基于根据OTSU大津法根据公式4-9确定阈值T,根据阈值T以及公式3将图像中各像素的灰度值直接设置为0或1,即黑色或者白色,使其呈黑白效果;
其中,D(x,y)为阈值化结果,ft(x,y)和ft+1(x,y)表示前后两幅图像;
设前景像素占比为ω0,其平均灰度值为μ0;背景像素占比为ω1,其平均灰度值为μ1,则有:
ω0+ω1=1 公式4;
图像的整体平均灰度值为:
μ=ω0μ0+ω1μ1 公式5;
类间方差为:
g=ω0(μ0-μ)2+ω1(μ1-μ)2 公式6;
将公式6简化为:
g=ω0ω1(μ0-μ1)2 公式7;
设pi为i灰度级出现的概率,则有:
遍历L个灰度级,使得g取最大值的灰度级k值即为所求阈值T;
对差分结果中的连通域进行检索,并且剔除掉所有像素数量小于5的连通域,消除部分点状和带状噪声;
根据连通域的检索结果添加最小边界框,然后将包围框映射到射击后的原始图像上,直接对图像中ROI以外的部分进行掩膜处理,确定新增弹孔。
5.根据权利要求1所述的方法,其特征在于,根据确定的所述新增弹孔,将图像处理技术与深度学习技术相结合,进行弹孔检测具体包括:
使用通过图像二值化与轮廓提取对感兴趣区域中的弹孔进行粗提取;
搭建并训练深度神经网络分类模型:利用Labelme工具将定位后目标靶图像中的弹孔区域标注为孤立弹孔类和粘连弹孔类两类,根据json文件生成弹孔区域的真值图,通过图像二值化与轮廓提取图像中的疑似弹孔区域,截取检测结果,保存为样本图像数据,并定位其在真值图中的对应区域,之后计算二者之间的交并比,若弹孔真值图与粗提取结果的交并比超过0.5,则将截取的样本归为相应的弹孔类,反之归为非弹孔类,从而建立深度神经网络分类模型的数据集,搭建基于ResNet分类模型的引入注意力机制和Mish激励函数的深度神经网络分类模型,将标注后的数据集划分为训练集、验证集和测试集,对所述数据集进行数据增强处理,引入焦点损失函数为该数据集进行加权,并采用Adamax优化器进行深度神经网络分类模型的训练;通过训练好的深度神经网络分类模型对粗提取的结果进行识别;
对识别后的粗提取的结果进行判断,剔除非弹孔部分,识别孤立弹孔与粘连弹孔,最终完成弹孔的检测。
6.一种基于计算机视觉的弹孔检测装置,其特征在于,包括:
剔除模块,用于在开始打靶后,获取前端输入的目标靶图像,通过靶面定位对目标靶图像的有效区域进行识别和分割,剔除掉前端传入的目标靶图像中的无用背景部分,输出处理后的目标靶图像;
ROI检测算法模块,用于根据处理后的目标靶图像通过ROI检测算法对同一靶位射击前后采集到的目标靶图像的变化部分进行检测,消除旧弹孔确定新增弹孔;
弹孔检测模块,用于根据确定的所述新增弹孔,将图像处理技术与深度学习技术相结合,进行弹孔检测。
7.根据权利要求6所述的装置,其特征在于,
所述剔除模块具体用于:
通过平滑滤波器,使用双边滤波对前端输入的目标靶图像进行平滑滤波;
使用深度学习的方法,搭建并训练语义分割模型,进行靶面分割;
从靶面分割后的目标靶图像中剔除无用背景,实现靶面定位,输出处理后的目标靶图像;
ROI检测算法模块具体用于:
读取射击前后两帧目标靶图像,对所述两帧目标靶图像进行直方图匹配:根据现有的灰度分布与期望的目标分布计算出映射函数,其中,pr(r)表示现有分布,用pz(z)表示目标分布,将待处理图像的分布pr(r)按照公式1进行变换,并对计算结果sk的值进行四舍五入,得到直方图均衡化的离散形式:
其中,M×N为图像的尺寸,nj是灰度值为rj的像素数,L表示图像中的灰度级数;
根据目标直方图分布pr(r)的值,对q=0,1,2,…,L-1按照是2进行计算,并对计算结果G的值进行四舍五入,得到变换函数G(Zq):
当k=0,1,2,…,L-1时,对于每一个sk,均根据变换函数G的值匹配相应的zq,从而令G(Zq)与sk的值最接近,并记录所有从s到z的映射,对于任意的sk,若其相对应zq的值多于一个,则从中选取最小的值;
对待处理的图像进行直方图均衡化之后,根据上一步计算中得到的映射,将该图像中各个均衡后的像素值sk映射为相应的zq,从而得到直方图匹配后的结果图;
确定特征检测器,并通过特征检测器获取特征点以及特征描述符,随后建立特征匹配器,将射击后的目标靶图像作为模板,与射击前的目标靶图像进行特征点之间的匹配,最后根据匹配结果对前一幅目标靶图像进行校正,从而完成配准图像配准,其中,在进行特征匹配时,先根据分割结果对目标靶图像进行掩膜处理,只保留标志物像素,然后再使用SIFT+BF的算法进行特征匹配;
对配准后的目标靶图像进行差分运算,将两幅图像的像素值直接相减,得到差分结果,对直接差分后的差分结果进行阈值化处理,基于根据OTSU大津法根据公式4-9确定阈值T,根据阈值T以及公式3将图像中各像素的灰度值直接设置为0或1,即黑色或者白色,使其呈黑白效果;
其中,D(x,y)为阈值化结果,ft(x,y)和ft+1(x,y)表示前后两幅图像;
设前景像素占比为ω0,其平均灰度值为μ0;背景像素占比为ω1,其平均灰度值为μ1,则有:
ω0+ω1=1 公式4;
图像的整体平均灰度值为:
μ=ω0μ0+ω1μ1 公式5;
类间方差为:
g=ω0(μ0-μ)2+ω1(μ1-μ)2 公式6;
将公式6简化为:
g=ω0ω1(μ0-μ1)2 公式7;
设pi为i灰度级出现的概率,则有:
遍历L个灰度级,使得g取最大值的灰度级k值即为所求阈值T;
对差分结果中的连通域进行检索,并且剔除掉所有像素数量小于5的连通域,消除部分点状和带状噪声;
根据连通域的检索结果添加最小边界框,然后将包围框映射到射击后的原始图像上,直接对图像中ROI以外的部分进行掩膜处理,确定新增弹孔;
弹孔检测模块具体用于:
使用通过图像二值化与轮廓提取对感兴趣区域中的弹孔进行粗提取;
搭建并训练深度神经网络分类模型:利用Labelme工具将定位后目标靶图像中的弹孔区域标注为孤立弹孔类和粘连弹孔类两类,根据json文件生成弹孔区域的真值图,通过图像二值化与轮廓提取图像中的疑似弹孔区域,截取检测结果,保存为样本图像数据,并定位其在真值图中的对应区域,之后计算二者之间的交并比,若弹孔真值图与粗提取结果的交并比超过0.5,则将截取的样本归为相应的弹孔类,反之归为非弹孔类,从而建立深度神经网络分类模型的数据集,搭建基于ResNet分类模型的引入注意力机制和Mish激励函数的深度神经网络分类模型,将标注后的数据集划分为训练集、验证集和测试集,对所述数据集进行数据增强处理,引入焦点损失函数为该数据集进行加权,并采用Adamax优化器进行深度神经网络分类模型的训练;通过训练好的深度神经网络分类模型对粗提取的结果进行识别;
对识别后的粗提取的结果进行判断,剔除非弹孔部分,识别孤立弹孔与粘连弹孔,最终完成弹孔的检测。
8.根据权利要求7所述的装置,其特征在于,所述剔除模块具体用于:
建立语义分割模型的数据集,并对所述数据集中的数据进行像素级标注,其中,所述数据集具体包括:使用相机在不同时刻、不同环境下采集到的真实目标靶图像、以及使用相机采集的按比例缩小的自制目标靶图像,所述标注类型包括:火箭筒、机枪、正面步兵战车、正面坦克、坦克发射点、标志物和背景;
基于RefineNet模型,增加网络深度和宽度,搭建语义分割模型;
将标注后的数据集划分为训练集、验证集和测试集,3120×3120的分辨率采集目标靶图像,并对所述目标靶图像进行增强处理,引入加权交叉熵损失函数为目标靶图像加权,并采用Adam优化器进行语义分割模型的训练;
通过训练好的语义分割模型进行靶面分割。
9.一种基于计算机视觉的弹孔检测装置,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的基于计算机视觉的弹孔检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有信息传递的实现程序,所述程序被处理器执行时实现如权利要求1至5中任一项所述的基于计算机视觉的弹孔检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310513119.8A CN116824345A (zh) | 2023-05-08 | 2023-05-08 | 基于计算机视觉的弹孔检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310513119.8A CN116824345A (zh) | 2023-05-08 | 2023-05-08 | 基于计算机视觉的弹孔检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116824345A true CN116824345A (zh) | 2023-09-29 |
Family
ID=88119280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310513119.8A Pending CN116824345A (zh) | 2023-05-08 | 2023-05-08 | 基于计算机视觉的弹孔检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116824345A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117079104A (zh) * | 2023-10-16 | 2023-11-17 | 北京理工大学 | 一种基于小样本深度学习的快速毁伤识别和定位方法 |
-
2023
- 2023-05-08 CN CN202310513119.8A patent/CN116824345A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117079104A (zh) * | 2023-10-16 | 2023-11-17 | 北京理工大学 | 一种基于小样本深度学习的快速毁伤识别和定位方法 |
CN117079104B (zh) * | 2023-10-16 | 2024-01-12 | 北京理工大学 | 一种基于小样本深度学习的快速毁伤识别和定位方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110516561B (zh) | 基于dcgan和cnn的sar图像目标识别方法 | |
CN112686812B (zh) | 银行卡倾斜矫正检测方法、装置、可读存储介质和终端 | |
CN109684922B (zh) | 一种基于卷积神经网络的多模型对成品菜的识别方法 | |
CN108198207A (zh) | 基于改进的Vibe模型和BP神经网络的多运动目标跟踪方法 | |
CN109902715B (zh) | 一种基于上下文聚合网络的红外弱小目标检测方法 | |
CN110148162A (zh) | 一种基于复合算子的异源图像匹配方法 | |
CN105224947B (zh) | 分类器训练方法和系统 | |
CN111833322B (zh) | 一种基于改进YOLOv3的垃圾多目标检测方法 | |
CN112528862B (zh) | 基于改进的交叉熵损失函数的遥感图像目标检测方法 | |
CN110008899B (zh) | 一种可见光遥感图像候选目标提取与分类方法 | |
Yoon et al. | Best combination of binarization methods for license plate character segmentation | |
CN116824345A (zh) | 基于计算机视觉的弹孔检测方法及装置 | |
CN110633727A (zh) | 基于选择性搜索的深度神经网络舰船目标细粒度识别方法 | |
CN114821032A (zh) | 基于改进YOLOv5网络的特殊目标异常状态检测与跟踪方法 | |
CN109726660A (zh) | 一种遥感图像船舶识别方法 | |
CN114863198A (zh) | 一种基于神经网络的小龙虾质量分级方法 | |
Junior et al. | Fcn+ rl: A fully convolutional network followed by refinement layers to offline handwritten signature segmentation | |
CN113191359A (zh) | 基于支持与查询样本的小样本目标检测方法与系统 | |
CN114037650A (zh) | 变化检测及目标检测的地面目标可见光毁伤图像处理方法 | |
CN111798404B (zh) | 基于深度神经网络的虹膜图像质量评估方法及评估系统 | |
CN110766001B (zh) | 基于cnn和rnn的银行卡卡号定位与端到端识别方法 | |
CN110334703B (zh) | 一种昼夜图像中的船舶检测和识别方法 | |
CN111986155A (zh) | 一种通用场景文字识别方法及装置 | |
CN115620121A (zh) | 一种基于数字孪生的光电目标高精度检测方法 | |
CN113963178A (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 |