权利要求
技术领域
本发明属于图像识别技术领域,具体涉及一种露天矿运行设备的感知方法。
背景技术
当前露天矿山的调度系统中,电铲铲装和汽车运输环节的周期记录由于司机记录不及时,无法将电铲和汽车运输数据准确对应,极不利于矿山管理。利用露天矿山中设置的摄像头拍摄视频,并感知出视频中的电铲和汽车形貌,实现铲运过程中卡车及电铲的自动识别和记录,能够使工人绩效计算更加精准,调度更加顺畅,大大减小矿山管理难度。
Faster R-CNN是一种经典的基于深度卷积神经网络的目标检测算法,它能利用自定义图像数据集训练特定的图像目标检测模型,实现对数据集中囊括的所有物体类别的图像定位和种类识别。Faster R-CNN的检测精度在众多目标检测算法当中名列前茅,但是它具有算法运算时间长,检测速度慢的缺点,因此很难实现对视频流的实时检测,这也是它以往没有被应用于露天矿设备感知上的主要原因。
上述提到的FasterR-CNN算法虽精度高,但是检测速度较慢,因此难以对视频流进行实时检测。如果采用关键帧提取算法,将视频关键帧提取出来,只对关键帧进行目标检测这样能大大增加Faster R-CNN对视频流的检测速度,在不增加硬件成本的前提下,实现对视频流的实时检测。常见的关键帧提取算法有基于镜头边界的方法、基于聚类的提取方法、基于运动分析的方法、基于压缩视频流的方法。但是,以上这些方法只适用于影视作品和日常生活等场景丰富、色彩较多视频的关键帧提取,而且关键帧提取速度较慢,具有一定的局限性。
因此,有必要针对于露天矿运行设备的感知方法做进一步改进。
发明内容
本发明目的是针对于露天矿山设备调度存在的问题,提供一种露天矿运行设备的感知方法。该方法将相邻帧颜色直方图差值法与Faster R-CNN深度学习目标检测网络结合在一起,实现了对矿山设备及人员快速且高精度的视觉感知,并且将其应用于露天矿铲运周期之中,实现铲运过程中卡车及电铲的自动识别和记录。
本发明的技术方案为,一种露天矿运行设备的感知方法,包括以下步骤:
步骤1、Faster R-CNN模型训练
步骤1.1、利用摄像头对目标对象所在环境进行视频采集,将视频按帧截取图像数据,并剔除不包含目标对象的图像数据;
步骤1.2、将截取的图像数据扩增,获取更多图像数据;
步骤1.2.1、采用生成对抗网络进行数据扩增
①将采集到的图像数据按图像类别分类,组成只含有单个类别的小数据集;
②利用各个小数据集分别对生成对抗网络进行数据生成模型训练,得到能够生成各个类别物体的生成模型。
③调用生成模型定向生成各个种类物体的数字图像;
步骤1.2.2、对1.2.1中生成的数字图像进行随机裁剪、随机角度旋转、噪声抖动、RGB强度随机调节,获取更多图像数据;
步骤1.3、数据集制作;
步骤1.3.1、利用labelimg工具对步骤1.2中获得的图像数据进行数据标注,获得标注数据集;
步骤1.3.2、在标注数据集中随机选取一部分图像数据作为Faster R-CNN目标检测训练集,另一部分作为测试集,最后一部分作为验证集;
步骤1.4、深度学习目标检测模型建立及模型训练;
步骤1.4.1、在深度学习框架下建立Faster R-CNN算法模型;
步骤1.4.2、采用大数据集预训练模型对Faster R-CNN进行初始化,将数据集输入至Faster R-CNN网络中进行模型训练、测试和验证,得到矿用设备的视觉感知模型;
步骤2、视频关键帧提取
步骤2.1、提取待处理视频中所有帧(TF);
步骤2.2、初始化从第一帧到最后一帧的循环(i=1~TF);
步骤2.3、选择当前帧CFi和下一帧CF(i+1);
步骤2.4、计算当前帧和下一帧的直方图差值;
步骤2.5、计算直方图差值的均值(μ)和标准差(δ);
步骤2.6、设定阈值T,通过计算公式:T=μ+αδ设定,α值取3~5;
步骤2.7、重复步骤2.2~2.4,直到当前帧为最后一帧;
步骤2.8、比较每一个直方图差值是否大于阈值;
步骤2.9、选择满足步骤2.8条件的当前帧为关键帧,并记录当前帧的帧序号。
其中,步骤2.4、计算当前帧和下一帧的直方图差值的步骤如下:
步骤2.4.1、将相邻两帧(当前帧和下一帧)转换为灰度图;
步骤2.4.2、均衡化此相邻两帧,以此提升图像对比度;
步骤2.4.3、分别计算两帧直方图;
步骤2.4.4、计算相邻帧之间的直方图差值的绝对值Hist_Diff。
步骤3、模型调用与视觉感知
步骤3.1、利用步骤1中训练得到的视觉感知模型对步骤2提取出的关键帧进行目标对象检测,得到带有检测包围框的单张图像;
步骤3.2、将检测后带有包围框的单张图像按照步骤2记录的帧序号还原回原视频当中,形成带有检测效果的视频。
进一步的,上述露天矿设备运行快速感知方法,还包括步骤4:
步骤4、铲运周期自动记录
步骤4.1、将安装在电铲处的摄像头获取的视频流执行步骤1至步骤3,识别出当前设备类型,若为卡车,则进行车辆编号识别,然后读取当前装载时间和识别出的车辆编号并保存;
步骤4.2、将安装在车辆卸载点处的摄像头获取的视频流执行步骤1至步骤3,识别出当前卸载车辆(主要为车辆编号),然后读取当前卸载时间和识别出的车辆编号并保存;
步骤4.3、将电铲装载点和卸载点识别的车辆编号和对应时间进行对比,找出相同编号车辆在同一铲运环节的装载时间tn 1,卸载时间tn 2;
步骤4.4、定义铲运环节中第N辆卡车总运行时间为T n,第C号电铲装载的次数为S c,计算该辆卡车第i次运行时间为T i=tn 2-tn 1,记录卡车的总运行时间 T n=T 1···+···T m(m=该辆卡车最后一次运行);将第N辆电铲装载点处识别出的卡车编号和对应的装载时间保存起来,每保存一次,在对应电铲总装载次数S c也累加一次,进而得到最终的Sc。
进一步的,上述露天矿设备运行快速感知方法,所述步骤4.4,最后将第N号卡车编号、每次运行时间、卡车总运行时间、对应电铲总装载次数均保存在服务器中并上传至调度系统供生产调度和绩效管理使用。
与现有技术相比,本发明的优势在于:
1、矿山场景比较单一,图像背景色度相对固定,一旦场景中出现人员和设备时,前景与背景对比十分明显,相邻两帧的颜色直方图差值就会发生明显波动,因此本发明通过计算相邻帧颜色直方图、设定关键帧提取阈值的方式来实现矿山场景视频包含设备关键帧的提取。
2、利用本发明的关键帧提取算法处理矿山视频,结合复杂的深度学习算法,能够在不增加硬件成本投入的前提下提高对视频流中目标物体的感知速度,实现露天矿设备快速精准感知。
3、本发明的感知方法应用于露天矿铲运周期之中,可以实现铲运过程中卡车及电铲的自动识别和记录,能够使工人绩效计算更加精准,调度更加顺畅,大大减小矿山管理难度。
附图说明
图1为实施例中关键帧提取方法的主流程图;
图2为实施例中直方图差值计算方法的流程图
图3为实施例中感知效果图;
图4为实施例中铲运周期自动记录方法的流程图。
具体实施方式
实施例1
如图1和图2所示,为了使本发明的目的、技术方案和优点能够展示的更加清楚明白,下面结合附图和具体实例,进一步详细描述本发明,显然,所描述的实例是本发明的实例中的一部分,并不是全部实例。基于本发明中的实例,本领域技术人员在没有通过做出创造性劳动的前提下所获得的所有其他实例,都属于本发明保护的范围。
为了实现露天矿山设备及人员精准快速视觉感知,本发明提供的一种露天矿运行设备的感知方法,具体步骤为:
步骤一:Faster R-CNN模型训练
1.1数据采集
1.1.1利用可移动无线网络摄像头分11次(上午5次、下午6次)间歇性采集齐大山铁矿现场设备作业视频。每次视频采集持续时间为30分钟,共得到11个 30分钟的现场作业视频,选取其中10个作为训练数据来源,另外一个作为最终模型的测试数据来源。
1.1.2利用OpenCV读取视频数据,并通过H.264视频压缩算法对这10个视频进行数据压缩;并将10个视频按帧分解成图片,共得55211张图像。
1.1.3在得到的55211张图像中,人工剔除未包含齐大山露天矿山设备的图像,剩余35467张包含露天矿设备的图像数据,另外,为防止相邻帧图像过于相似,图像丰富度较小,在人工剔除后剩余的35467张图像中每隔5帧选取一张图像,中间图像一律剔除,因此剩余有效图像数据为7093张。
1.2数据扩增
1.2.1采用生成对抗网络进行数据扩增
①将采集到的图像按电铲、钻机、挖掘机、炸药车、推土机、矿用卡车、检修维修车辆、员工进厂汽车分类,组成只含有单个类别的小数据集共8个;
②利用各个小数据集分别对生成对抗网络进行数据生成模型训练,得到能够生成各个类别物体的生成模型共8个。
③分别调用这8个生成模型,定向生成上述8类物体的数字图像,每一类新生成2000张数字图像。
通过此步骤,共得23093张图像数据。
1.2.2物理方式数据扩增
①对上述23093张数字图像进行随机裁剪,数据扩增至50186张;
②对随机裁剪后的图像数据进行噪声抖动处理,得到100327张数字图像,因此,此数据集中包含100327张数字图像。
1.3数据集制作
1.3.1利用labelimg工具对上述图像数据进行数据标注,获得标注数据集。
1.3.2在标注数据集中随机选取80%的图像数据作为Faster R-CNN目标检测训练集,剩下的20%一半作为测试集,另一半作为验证集。
1.4深度学习目标检测模型建立及模型训练
使用python语言,在TensorFlow深度学习框架下建立FasterR-CNN算法模型;采用ImageNet预训练模型对Faster R-CNN进行初始化,将数据集输入至Faster R-CNN网络中,设定迭代步数为120000,利用end-to-end方式对其进行模型训练、测试和验证,得到矿用设备及人员的视觉感知模型。
步骤二:视频关键帧提取
2.1按如下步骤进行关键帧提取(算法流程见图1):
2.1.1将步骤一中剩余的一个视频数据输入至关键帧提取算法当中;
2.1.2提取该视频中所有帧,得到TF=5521帧;
2.1.3初始化从第一帧到最后一帧的循环1~TF;
2.1.4运算最开始时选择第1帧为当前帧CFi;
2.1.5选择第2帧为下一帧CFi+1;
2.1.6计算当前帧和下一帧的直方图差值(计算方法见2.2),紧接着选择第2 帧为当前帧,第3帧为下一帧,再一次计算当前帧和下一帧的直方图差值,以此类推,直至将第5521帧作为当前帧时计算结束,因此得到5520个直方图差值;
2.1.7计算2.1.6中得到直方图差值的均值μ=15406和标准差δ=3082;
2.1.8设定一个阈值T,通过计算公式:T=μ+αδ=24652,α值取3;
2.1.9比较每一组直方图差值是否大于阈值;
2.1.10选择直方图差值大于阈值的当前帧为关键帧,并记录当前帧的帧序号,共得到1521个关键帧,帧序号与每一帧一一对应,由于组数过多不一一列举。
2.2步骤2.1.6中计算直方图差值步骤如下(步骤流程见图2):
2.2.1将相邻两帧(当前帧和下一帧)转换为灰度图;
2.2.2均衡化此相邻两帧,以此提升图像对比度;
2.2.3分别计算两帧直方图;
2.2.4计算相邻帧之间的直方图差值的绝对值Hist_Diff。
步骤三:模型调用与视觉感知
3.1通过步骤二算法,已经将视频当中含有矿山设备及作业人员的关键帧提取出来,利用步骤一中训练得到的视觉感知模型对提取出的关键帧进行矿山设备及作业人员的感知,得到带有检测包围框的单张图像,部分效果见图3,为电铲感知效果图,检测结果均正确,得分概率均超过95%,且定位准确,感知效果良好。
3.2将检测后带有包围框的单张图像按照步骤二记录的帧序号还原回原视频当中,形成带有检测效果的流畅视频,实现矿山设备及人员实时视觉感知。
步骤四:铲运周期自动记录,如图4所示
4.1在电铲上和卡车卸载点均安装高清网络摄像头,电铲摄像头安装位置为驾驶室外侧,卡车卸载点需要面向卡车车头位置处架设摄像头支架,获取实时视频流,并上传云端,其中每一个电铲和每一个卸载点的摄像头均编号,以卸载点X=1,电铲装载点编号C=1为例。
4.2将电铲摄像头获取的视频流执行步骤一至步骤三,若识别出的设备类型不是卡车,则忽略此帧,若为卡车,则利用ocr数字识别算法继续识别卡车编号,通过识别,当前装载时间为13:05,识别出的车辆编号为5,并保存时间tn 1。
4.3将卸载点处摄像头获取的视频流执行步骤一至步骤三,若识别出的设备类型不是卡车,则忽略此帧,若为卡车,则利用ocr数字识别算法继续识别卡车编号,通过识别,当前卸载时间为13:38,识别出的车辆编号为5,并保存时间tn 2。
4.4将电铲装载点和卸载点识别的车辆编号和对应时间进行对比,找出5号车辆的装载时间为tn 1=13:05,卸载时间tn 2=13:38;
4.5计算卡车第1次运行时间为T 1=tn 2-tn 1=13:38-13:05=33分钟,以此类推,直到计算出最后一次卡车运行时间,将时间累加起来即为5号车的总运行时间T 5;并且,将车辆编号为5的卡车在电铲装载点处识别出的装载时间保存时(步骤4.2),每保存一次,装载次数S 5也随之累加一次,最后将5号卡车编号、每次运行时间、卡车总运行时间、对应电铲总装载次数均保存在服务器中并上传至调度系统供生产调度和绩效管理使用。