1.本发明涉及一种目标检测方法,属于图像处理技术与目标识别技术领域。
背景技术:2.在强噪声、光照突变和背景扰动等复杂环境下,环境因素对目标的检测存在较大的干扰。并且由于取样环境的多样性和海量性,单机目标识别方式在识别效率和识别准确率方面存在很大的局限性。并且取样结果通常保存在一台或若干台服务器上,这就导致整个系统的存储能力较弱,因此需要一种分布式文件系统能够在廉价的服务器上构建一套高可用、易拓展并且能够满足海量数据存储要求的分布式存储服务。现有的hdfs文件系统能够很好地满足现有的需求,并且符合复杂环境下目标检测环境时文件一次上传、多次读取的需要。
3.智能设备的快速发展使得人们对复杂环境下目标检测的需要进一步增加,从而间接增加了对目标检测样本存储的需求。这些通过目标监控设备获取的海量的视频或图片数据被保存在分布式文件系统中,以便用户可以使用任何可访问网络的设备访问这些文件。云存储系统减少了目标识别设备对本地存储容量的要求,并且能够保证数据的可靠性。
4.现有的目标检测技术在复杂环境下存在识别不准确的问题,尤其是强噪声、光照突变和背景扰动等复杂环境下检测成功率更低。因此需要一种能够应对复杂环境的目标检测方法。
技术实现要素:5.本发明是为了解决现有的目标检测在复杂环境下存在识别不准确的问题。
6.一种复杂环境下目标检测方法,包括以下步骤:
7.1、通过图像采集设备拍摄复杂环境下的待检测图片或视频流,并将上传的图片和视频以文件形式存储到代理节点的hdfs文件系统中;
8.2、利用背景弱化算法对静态背景区域进行弱化处理,包括以下步骤:
9.基于视频帧或连续的图片流在时间δt内的稳定性假设,在二维平面图像的基础上,以图像的左下角为平面直角坐标系的零点,结合连续视频帧或图片顺序提供的时间维度,构造一个三维的空间直角坐标系;
10.假定p(x,y,t)是时间为t时的像素点坐标,x,y分别表示图像或视频帧在上述坐标系中的坐标位置;所以维持约束的目标函数是p(x,y,t)=p(a+uδt,b+vδt,c+δt),(a,b)表示坐标(x,y)处像素点在时间t时的初始坐标,(u,v)是该像素点在极短时间δt的水平和竖直方向的速度;当δt小于时间阈值t时,经过δt时间后的像素点坐标接近于δt时间之前的初始坐标,即坐标差小于等于波动阈值d,认为是静态的背景区域;当δt大于时间阈值t时,经过δt时间后的像素点坐标与δt时间之前的初始坐标差大于波动阈值d,认为是动态目标区域;
11.消除静态的背景区域内部的像素点;
12.3、使用滑动窗口检测的方式在步骤2处理结果的图像或视频中选择一块矩形区域,将滑动窗口选择的矩形区域中的图像片段与模板片段进行余弦相似度比对,利用相似度参数阈值对滑动窗口进行过滤,过滤掉部分静态背景区域;通过不断调整滑动窗口矩形框的左下角和右上角坐标标记出部分矩形区域所对应的静态背景区域;
13.4、利用训练好的yolo v3模型对步骤3处理之后的图片或视频资源进行目标检测。
14.进一步地,在步骤4所述的进行目标检测之后,将检测结果写回hdfs文件系统中;并将当前的数据作为新的训练数据进一步优化yolo v3模型。
15.进一步地,利用yolo v3模型进行目标检测的过程包括以下步骤:
16.a、生成所有图像的序号id;
17.b、用每个图像或视频文件在hdfs文件系统中的路径作为该图像的路径;
18.c、利用脚本读取voc的xml文件,并将其转为转化为yolo v3的txt文件格式;
19.d、确定识别对象的种类;然后确定训练数据的路径和权重文件的存放路径;采用coco128训练集训练基础权重文件,或者使用现有的公开权重文件进行初步的识别测试,后期逐渐将识别样本加入到测试数据集以扩展识别种类;
20.e、修改分类的名称,即将分类种类中的名称与离散的数字类别进行一一对应,二者形成双射关系;首先需要将每一个类别与离散的整数一一对应,然后将类别修改的该整数值;
21.f、修改训练参数的batch和subdivisions大小,batch、subdivisions为yolo v3模型框架darknet的配置文件的两个参数;
22.g、修改完所有数据后在darknet目录下执行make clean&make命令,清理掉之前的数据;
23.h、将步骤e修改之后的文件和源图像数据文件放到同一个文件夹下,利用图像和对应的txt描述文件作为输入训练识别模型,生成权重文件;
24.i、输入单张图片,利用前一步生成的权重文件进行识别测试。
25.进一步地,所述生成所有图像的序号id的过程中采用uuid方法,用16个八位字节表示图像的唯一id,生成所有图像的序号id。
26.进一步地,在利用背景弱化算法消除静态的背景区域内部的像素点的过程中,利用鲁棒性估计方法来加快背景弱化算法中的时间阈值t和波动阈值d的调整速度。
27.进一步地,在构造一个三维的空间直角坐标系阶段使用z
‑
score标准化方法对约束的目标函数中的x,y,t进行标准化处理。
28.进一步地,将上传的图片和视频以文件形式存储到代理节点的hdfs文件系统中过程中,所有数据将被按块分布到不同的节点上,块大小根据硬盘存储速率的大小进行设置,设置块传输时间为寻址时间的1%,然后用传输时间和传输速率的乘积作为最终块的大小。
29.进一步地,所述块大小设置为128m。
30.进一步地,所述利用相似度参数阈值对滑动窗口进行过滤,过滤掉部分静态背景区域的过程包括以下步骤:
31.根据矩形区域中的图像片段与模板片段中相对位置相同的两个点的相似度,确定出矩形区域内全部像素点的余弦相似度值,然后计算矩形区域内所有点的余弦相似度的方差作为最后的该矩形框区域与模板对应区域相似性的评估指标;将满足相似度阈值的滑动
窗口保留,不满足的滑动窗口丢弃。
32.进一步地,根据矩形区域中的图像片段与模板片段中相对位置相同的两个点的相似度的过程包括以下步骤:
33.余弦相似度如下:
[0034][0035][0036][0037]
其中a
i
和b
i
分别表示矩形框区域中的片段和待识别对象的模板片段中相对位置相同的两个点的rgb颜色向量序列,cos
i
就是对应的余弦相似度。
[0038]
有益效果:
[0039]
本发明从目标识别的数据源的特点入手,根据其海量性和大文件特点,使用分布式文件系统hdfs存储系统从监控设备获取的视频,然后对分布式文件系统的视频数据进行预处理,使用提出的背景弱化算法对图片或视频中对目标检测有较大影响的背景区域进行弱化处理以达到加速目标检测和提高检测准确率的目的。然后利用yolov3模型对处理过的视频和图片数据进行识别检测,可以能够保证在复杂环境下对目标识别的准确率,同时利用新的检测结果不断修正现有检测模型,最后将结果写回到hdfs文件系统中,还能够进一步优化yolov3模型权重文件,从而进一步提高后续识别过程的准确性。
附图说明
[0040]
图1为具体实施方式一的流程图;
[0041]
图2为背景弱化算法流程图。
具体实施方式
[0042]
具体实施方式一:参照图1具体说明本实施方式,
[0043]
本实施方式所述的一种复杂环境下目标检测方法,包括以下步骤:
[0044]
1、通过图像采集设备拍摄复杂环境下的待检测图片或视频流,本实施方式选用智能眼镜进行拍摄,将其上传到预先设置的数据处理服务器上,基于网络和时间方面的考虑(采样时间长度、采样频率和分辨率都会影响上传时间和分析时间,采样长度过大,频率过高会导致上传和分析时间过长,客户端响应延迟等),为了保证较高的识别精度,上传的图像分辨率设置为1980*768。上传策略可分为三种:即手动批量上传策略(由客户端手动上传)、每次操作后自动上传策略(每次采样后自动上传)和周期性上传策略(例如设置采样时间为2秒,采样频率为每3秒一次)。智能眼镜上传的图片和视频以文件形式存储到代理节点的hdfs文件系统中。考虑到总体数据的海量性,所有数据将被按块分布到不同的节点上,块大小设置为128m,实际上这里的块大小应该根据硬盘存储速率的大小进行设置,一般设置块传输时间为寻址时间的1%,然后用该传输时间和传输速率的乘积作为最终块的大小。
[0045]
2、对分布式文件系统的图片或视频数据进行预处理:
[0046]
首先利用本发明提出的静态背景弱化算法对静态背景区域进行弱化处理,从而降低目标检测时背景区域对检测主体识别的影响,进而提高目标主体识别的准确率;
[0047]
利用静态背景弱化算法对静态背景区域进行弱化处理的过程包括以下步骤:基于视频帧或连续的图片流在极短时间δt(可以先为该参数设定一个较短的时间阈值t初始值,比如1/60s,后面可以根据模型的运行情况进行自动调整)内的稳定性假设,在原本二维平面图像的基础上,以图像的左下角为平面直角坐标系的零点,结合连续视频帧或图片顺序提供的时间维度,构造一个三维的空间直角坐标系。静态区域在该坐标系中的像素坐标维持不变,而运动的物体的像素点坐标则会发生变化。
[0048]
假定p(x,y,t)是时间为t时的像素点坐标(三元组形式),x,y分别表示图像或视频帧在上述坐标系中的坐标位置。所以维持约束的目标函数是p(x,y,t)=p(a+uδt,b+vδt,c+δt),(a,b)表示坐标(x,y)处像素点在时间t时的初始坐标,(u,v)是该像素点在极短时间δt的水平和竖直方向的速度。当δt小于阈值t时,经过δt时间后的像素点坐标接近于δt时间之前的初始坐标;当δt大于阈值t时,经过δt时间后的像素点坐标与δt时间之前的初始坐标相差较大,即像素点位置产生了较大波动(波动范围设置有初始的波动阈值d,计算方式是各像素点变化前后坐标距离的均值,该参数同样可以在运行过程中进行调整,调整原则以能够更好地区分出动态目标区域和静态背景区域为准)。对于静态的背景区域而言,该区域内部的像素点坐标是不变的,而动态目标区域的像素点则会有变化并且这部分区域的变化趋势是相同的,因此可以通过划定变化趋势相同的点为一类,而变化趋势不变的点就划定为背景区域,可以对背景区域进行弱化处理。显然如果阈值设置的合理那么就能有效地区分出动态区域和静态区域,反之就无法有效区分出动态区域和静态背景区域并对静态背景区域进行有效地弱化。这一原则将被作为时间阈值t的调整原则。本发明提出的背景弱化算法流程图如图2所示。
[0049]
本发明提出的背景弱化算法中用到了现有的鲁棒性估计方法来加快背景弱化算法中各参数(阈值t和阈值d)的调整速度,解决了在一组测试数据中快速找到最适合模型的参数值问题,本发明的目标是找到使背景误差达到最小时的参数值,然后在实际处理过程,为了使参数的计算尽快收敛在背景弱化算法中设定一个背景误差阈值(该阈值也需要根据背景弱化算法实际运行进行不断调整,调整原则同时间阈值类似),只要当前的背景误差在背景误差阈值范围内,即可认为当前参数设置合理。背景弱化算法运行过程中随着输入数据的不断增加,对参数的估计能够越来越准确,从而逐渐优化背景弱化算法的各项参数,以提高背景弱化算法对背景区域标记的准确性。
[0050]
3、步骤2实际上是一种粗粒度的背景弱化,还需要在背景弱化算法基础上进一步结合使用z
‑
score标准化方法、滑动窗口检测方法以及基于机器学习的余弦相似度计算方法进行处理:
[0051]
优选地,步骤2对图像像素进行三维坐标系建模时,由于坐标值和时间长度的取值范围存在差异,为了消除取值范围差异对数据的影响,背景弱化算法在建立坐标系阶段使用z
‑
score标准化方法对上述目标约束目标函数中的x,y,t进行标准化处理。
[0052]
然后使用滑动窗口检测的方式在步骤2处理结果的图像或视频中选择一块矩形区域,将滑动窗口选择的矩形区域中的图像片段与模板(现有的识别对象的图像,初始的模板是预先建立好的,在后续的过程中不断填充)片段进行余弦相似度比对,利用设置的相似度
参数阈值对滑动窗口进行过滤(满足相似度阈值的滑动窗口保留,不满足的滑动窗口丢弃),从而过滤掉部分静态背景区域。通过不断调整滑动窗口矩形框的左下角和右上角坐标可以标记出大部分矩形区域所对应的静态背景区域。
[0053]
滑动窗口与待识别目标对象片段模板的余弦相似度计算公式为
[0054][0055][0056][0057]
其中a
i
和b
i
分别表示矩形框区域中的片段和待识别对象的模板片段中相对位置相同的两个点的rgb颜色向量序列,cos
i
就是对应的余弦相似度。
[0058]
计算出整个区域内点的余弦相似度值之后,计算矩形区域内所有点的余弦相似度的方差作为最后的该矩形框区域与模板对应区域相似性的评估指标。余弦值越接近于1,二者越越相似;越接近于0,二者差异越大。
[0059][0060][0061]
其中,s表示方差,n表示矩形区域内全部像素数。
[0062]
4、上述步骤中利用背景弱化算法和滑动窗口检测方法已经消除了大部分与待识别对象无关的复杂背景区域,然后利用训练好的yolo v3模型对经过背景弱化和滑动窗口检测之后的图片或视频资源进行目标检测能够很大程度上提高识别的准确率,为了利用识别结果扩大背景弱化算法的训练集以修正背景弱化算法的参数(阈值t和阈值d),本发明将检测结果写回hdfs文件系统中。与此同时,现有的数据将被作为新的训练数据进一步优化yolo v3模型以提高其识别的准确率。利用yolo v3模型进行检测的主要过程为:
[0063]
a、采用uuid方法,用16个八位字节表示图像的唯一id,生成所有图像的序号id,例如:4ea664c4
‑
87e2
‑
42b8
‑
aa0a
‑
1c7daa6459ab,这种方式虽然长度较长,但是能够保证唯一性。
[0064]
b、yolov3算法中需要明确指定每个文件的路径,因此需要用每个图像或视频文件在hdfs文件系统中的路径作为该图像的路径。
[0065]
c、利用脚本读取voc的xml文件,并将其转为转化为yolo v3的txt文件格式。
[0066]
d、确定识别对象的种类。yolo v3算法对目标的识别能力是有限的,需要预先确定可能存在的对象种类,yolo v3算法开始时可以从现有的种类库中取样,随着yolo v3算法的运行新的种类也会加入到种类库中以增强yolo v3算法的识别能力。然后确定训练数据的路径和权重文件的存放路径,这里的路径可以采用默认的方式,只需要保证读取的时候从同一路径读取即可。采用现有的coco128训练集训练基础权重文件,或者使用现有的公开
权重文件进行初步的识别测试,后期逐渐将识别样本加入到测试数据集以扩展识别种类。
[0067]
e、修改分类的名称,这一步就是将分类种类中的名称与离散的数字类别进行一一对应,二者形成双射关系。首先需要将每一个类别与离散的整数一一对应,然后将类别修改的该整数值。
[0068]
f、修改训练参数的batch和subdivisions大小,batch、subdivisions为yolo v3模型框架darknet的配置文件的两个参数,这里的参数修改可以从后台设置的配置中读取,具体参数的设置需要由管理员完成。
[0069]
g、修改完所有数据后在darknet目录下执行make clean&make命令,清理掉之前的数据。
[0070]
h、将步骤e修改之后的文件和源图像数据文件放到同一个文件夹下,利用图像和对应的txt描述文件作为输入训练识别模型,生成权重文件。
[0071]
i、输入单张图片,利用前一步生成的权重文件进行识别测试。
[0072]
5、客户端输入待识别图片后期望输出识别结果,后端服务器获取到yolo v3的识别结果后根据预先设置的识别对象及其对应的阈值进行反馈。
[0073]
本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。