1.本发明属于
目标检测系统技术领域,具体的说是一种基于深度学习的目标检测系统。
背景技术:
2.在人工智能领域,汽车自动驾驶一直是一个重要的研究方向,通过智能辅助驾驶系统对有些人为疏忽造成的危险进行规避,能够最大程度上避免悲剧的发生;目前的自动驾驶目标检测系统主要依靠摄像头和激光雷达检测车辆前方场景中的各种物体类别和位置,进而将相关的信息传递到目标检测系统中进行分析,当在危险出现之前,采取紧急制动。
3.目前的目标检测系统检测流程,主要为目标类别检测和目标实例检测,第一步先到物体的位置,第二步对该位置物体进行分类;目标实例检测具有更细的粒度,例如在检测到车辆或人的时候会给出,这辆车是具体的某个牌子和型号,在人这个类别中会具体某一个人,而目标类别的检测则关注当前检测到的物体是哪一类,比如:在自动驾驶场景中,只会给出检测到的摄像头收集到的当前场景中包含的物体类别,如:人、车、建筑物或红绿灯等。
4.现有的目标检测系统基于深度学习技术中非常经典的目标检测框架faster r-cnn,尝试不同的特征提取层,训练出一个速度和精度表现都非常不错的模型,并应用到系统中,主要是在faster r-cnn原版的vgg16和zf模型的基础上,用来作为特征的提取,以此实现目标检测系统的深度学习。
5.虽然上述学习框架能够有效保证目标检测系统进行自主学习优化,并应用在自动驾驶系统中,但是上述目标检测方法在检测过程中会产生大量的冗余
数据,若不及时将这些冗余数据从中筛分出来,随着目标检测系统运行时间的延长,会增加系统的存储压力,并且数据越来越多还会影响目标检测系统的反应效率,使得系统长期运行后,检测效率下降。
6.鉴于此,本发明为了解决上述问题,提出了一种基于深度学习的目标检测系统。
技术实现要素:
7.为了弥补现有技术的不足,根据现有技术中目标检测系统在长期运行后,内部会充斥大量的冗余数据,影响目标检测系统运行效率等问题,本发明提出一种基于深度学习的目标检测系统。
8.本发明解决其技术问题所采用的技术方案是:
9.本发明
所述的1.一种基于深度学习的目标检测系统,其特征在于,包括:
10.数据标记
模块,所述数据标记模块用以对道路上的物体进行标记,并对每一个物体赋予独立的编号;
11.数据存储模块,所述数据存储模块用以将数据标记模块中标记的数据进行保存,并根据标记的类别编号进行分类;
12.数据处理模块,所述数据处理模块用以分析处理数据存储模块中的存储数据;
13.数据验证模块,所述数据验证模块用以将处理后的数据进行归类整理,并验证每一项数据是否存在错误;
14.仿真模拟模块,所述数据验证模块采用验证完整且正确的数据,然后将数据导入到程序进行仿真模拟,确认目标检测系统能否检测到模拟目标信息,并进行识别;
15.结果记录模块,所述结果记录模块用以保存记录模拟通过的数据,以备后续导入到自动驾驶系统中,用以提供自动驾驶的目标检测。
16.目标检测系统主要基于卷积神经网络实现自主深度学习,卷积神经网络主要包括了卷积层、池化、激活层,最后利用全连接进行分类,以此实现目标检测系统的自主深度学习,其中卷积层是卷积神经网络的核心层,卷积层的参数可以看做是一系列的可学习的滤波器;在前向的计算过程中,我们输入一定区域大小的数据,并和卷积核点乘后会得到一个新的二维数据,我们称之为feature map,在一幅图片上滑动滤波器,就会得到很多张feature map,我们可以理解成每一个卷积核只关心图像上卷积核大小的区域内的部分特征,当出现学习到的特征的时候,就会呈现出被激活的状态。
17.优选的,所述数据标记模块基于摄像头和激光雷达进行目标检测,所述摄像头和激光雷达采集到数据后,所述从数据标记模块自动对常规物体进行标记。
18.所述数据标记模块针对无法识别的物体,会将其单独收储在一个文件夹中,然后技术员手动对这些物体添加标记。
19.所述数据标记模块包括数据收集和数据标注,所述数据标记模块通过摄像头和激光雷达对采集到物体进行标注,包括标注出物体的类别和位置信息等,用来作为仿真模拟用的标签。
20.优选的,所述数据存储模块基于云盘存储和本地硬盘存储两种方式,防止数据丢失损坏无法到原始数据源进行替换。
21.优选的,所述数据存储模块中设有两个独立的存储层,两个独立所述存储层用以分别存储目标类别检测数据和目标实例检测数据。
22.优选的,所述数据处理模块用以将数据存储模块中的标记数据制作成所述数据验证模块能够识别的数据。
23.所述数据处理模块的主要功能除将标记数据制作成数据验证模块能够识别的数据,还会对标记的图像数据进行预处理,包括图像缩放、裁剪、白化等,能够有效提高数据验证模块验证数据的速率。
24.优选的,所述数据验证模块用以验证数据完整性,防止进入到所述仿真模拟模块中的数据不完整,而导致仿真模拟失败,需要花费较多的时间进行故障排查。
25.优选的,所述仿真模拟模块利用收集的数据进行三维仿真模拟,验证目标检测系统的识别准确率,在模拟中及时发现问题,并优化目标识别的效率,降低目标检测系统的内存占用比例。
26.所述仿真模拟模块的核心功能是利用检测框架faster r-cnn来训练出适合当前场景的目标检测模型,验证目标检测系统基于上述采集的数据,在识别物体过程中精度和速度上是否有良好的表现,然后根据出现的问题进行相应的优化,保证目标检测系统在实际使用过程中的稳定性。
27.优选的,所述结果记录模块定期对保存的数据进行筛选,自动去除冗余无用的数据,以此提高目标检测系统的运行速度。
28.所述结果记录模块中包括数据对比库,所述数据对比库中存储有当前的最新数据,用以和过往冗余无用数据进行对比,实现对数据的筛选。
29.结果记录模块定期对数据中的进行比对,然后用不同颜对不同的文件类别进行标识,例如两张图片在拟合时,两张图片完全重合,且彩参数相一致,则可判定为相同数据,因此结果记录模块会自动将该数据进行删除,从而降低冗余无用数据占用内存的比例,使得目标检测系统运行速度加快。
30.本发明的有益效果如下:
31.1.本发明所述一种基于深度学习的目标检测系统,通过仿真模拟在仿真验证时,若数据验证通过,且在仿真模拟过程中能够进行准确识别,则说明该项标记数据没有问题,因此仿真模拟将相关数据导入到结果记录模块中进行存储,并自动更新之前的数据,以此保证结果记录模块一直存储着最新的稳定数据,保证了数据调用时不会出现紊乱的情况,同时降低了过往数据对系统内存的占用,降低了过往数据的内存占用,引发目标检测系统运行效率下降的影响。
附图说明
32.下面结合附图对本发明作进一步说明。
33.图1是本发明的系统总框图;
34.图2是本发明仿真模拟模块流程框图;
35.图3是本发明结果记录模块流程框图。
具体实施方式
36.为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
37.如图1-3所示,本发明所述的一种基于深度学习的目标检测系统,包括:
38.数据标记模块,所述数据标记模块用以对道路上的物体进行标记,并对每一个物体赋予独立的编号;
39.数据存储模块,所述数据存储模块用以将数据标记模块中标记的数据进行保存,并根据标记的类别编号进行分类;
40.数据处理模块,所述数据处理模块用以分析处理数据存储模块中的存储数据;
41.数据验证模块,所述数据验证模块用以将处理后的数据进行归类整理,并验证每一项数据是否存在错误;
42.仿真模拟模块,所述数据验证模块采用验证完整且正确的数据,然后将数据导入到程序进行仿真模拟,确认目标检测系统能否检测到模拟目标信息,并进行识别;
43.结果记录模块,所述结果记录模块用以保存记录模拟通过的数据,以备后续导入到自动驾驶系统中,用以提供自动驾驶的目标检测。
44.实施例一:
45.首先本目标检测系统基于深度学习的经典检测框架——faster r-cnn,通过在此
框架上设计一个检测精度和运行速度都较高的目标检测模型;
46.为了保证目标检测系统能够准确识别出目标物体,并且能够自主学习优化,目标检测系统在建立初期需要积累大量的原始数据源,即通过目标检测系统中数据标记模块对外界物体进行识别与标记,以此获取原始数据源,数据标记模块基于开源工具labelimg,编译源码安装在linux环境下,通过打开每张图片或者三维模型,技术员先对第一批原始数据源进行标记,使得系统能够认识这些数据源具体指代什么意思,然后这些图片数据会被存储在数据存储模块中,其中labelimg是基于python和qt开发的全图形界面的图像标注工具,可以将检测所需要的标注信息直接转化成xml文件并保存起来;
47.同时数据标记模块会将采集到的数据进行分类,以目标类别检测和目标实例检测,使得两种不同类型的数据分别存储在独立的存储层,避免两种数据在调取过程中出现干扰,同时将存储的数据发送至云盘中进行云端存储,防止本地硬盘损坏,而造成数据丢失,影响目标检测系统的正常运行。
48.仿真模拟模块主要采用目标检测框架faster r_cnn进行模型训练,faster r-cnn是基于目前比较流行的深度学习框架caffe而开发的,caffe是利用c++语言开发的,caffe是一个清晰而高效的深度学习框架,caffe是纯粹的c++/cuda架构,支持命令行并提供了matlab和python的接口,可以在cpu和gpu之间进行无缝切换;其中caffe框架主要有四个大的组件:blob、layer、net、solver,blob使用syncedmemory类完成数据的存储,数据成员shape_存储blob当前的维度信息,data_指向存储数据的内存或者显存,diff_存储了网络在进行反向传播时的梯度信息,虽然在卷积神经网络中,基本用到的blob都是4维的,但是blob并不是一个固定维度的数据结构,不局限于4维。通过blob类中的diff__at函数可以用来得到反传回来的loss,通过data_at函数可以得到存储在内存中的数据,reshape函数用来改变blob的维度的大小,blobproto类负责将blob中的数据序列化到caffe的模型中。
49.caffe中所采用的设计模式是工厂模式,solver和layer对象的创建均使用了该模式,solver类时用来实现caffe中的优化功能的,也就是训练模型时,首先由这个类作为入口,进行一-些调用,solver类提供了六种优化方式:sgd、adadelta、adagrad、adam、nesterov、rmsprop;
50.接下来分析net类操作,这个类主要是实现了卷积神经网络在训练时的前向和反向传递,利用forwardbackward函数调用了forward和backward函数来进行网络的前向和反向的传递,forwardfromto函数执行了从起始层到结束层的前向传递,backwardfromto函数实现了从开始层到结束层的方向传播;toproto函数主要实现了神经网络的序列化到磁盘文件,layer是net的基本组成单位,比如relu层、convolution层、pooling层等都对应着每一个layer类的具体实现;从而基于上述框架实现目标检测系统的自主深度学习。
51.当目标检测系统进行仿真验证时,如图2所示,数据存储模块中的数据会首先被导入到数据验证模块中,然后数据验证模块对所导入的数据进行分类,分类方式例如车、树、人等标注符号进行分类,然后数据验证模块依次对这些分类的数据进行校验,以确保这些数据在存储模块中没有遭受损坏,或者病毒入侵等其他情况,同时保证仿真模拟时,数据具有较高的稳定性,不易造成仿真模拟过程中出现bug,保证仿真模拟模块能够顺利对存储数据进行仿真模拟,从而验证目标检测系统的检测的准确率以及稳定性;
52.校验通过的数据被导入到仿真模拟模块中进行验证,仿真模拟模块基于fasterr_
cnn目标检测框架对数据进行模拟仿真,最大程度的模拟出真实环境,以此保证标记数据在实际应用时,能够稳定输出,保证目标检测系统的正常运行;仿真模拟在仿真验证时,若数据验证通过,且在仿真模拟过程中能够进行准确识别,则说明该项标记数据没有问题,因此仿真模拟将相关数据导入到结果记录模块中进行存储,并自动更新之前的数据,以此保证结果记录模块一直存储着最新的稳定数据,保证了数据调用时不会出现紊乱的情况,同时降低了过往数据对系统内存的占用,降低了过往数据的内存占用,引发目标检测系统运行效率下降的影响。
53.实施例二:
54.结果记录模块中存储着仿真模拟模块中通过的数据,从而在目标检测系统进行实际应用,同时目标检测系统基于深度学习框架caffe,自动进行深度学习,以此优化结果记录模块中数据,从而保证目标检测系统的运行高效性;
55.例如,结果记录模块中存储一个月以上的数据,如图3所示,结果记录模块会自动提取当前时间的所有数据,然后将数据导入到数据验证模块进行初步验证,以确保数据完好无损,若出现数据损坏,则第一时间进行预警提醒,从而让技术员能够第一时间对标记数据进行更新,从而防止标记数据在实际应用时,导致目标检测系统无法正常识别,而造成自动自动驾驶失常的情况。
56.若数据完好且验证通过,则分类数据开始依次进行比对,从而出完全重复的数据,因为目标检测系统在实际运行过程中,因为检测算法复杂,为了防止在计算过程中出现数据丢失,因此计算过程中会产生大量的重复备份数据,而这些数据均为无用冗余数据,以此保证目标检测系统具有稳定的数据源,当分类数据在数据对比库中进行依次比对时,其中数据对比库中均为最新的标记数据,因此可以和过往冗余无用数据进行对比,该项比对技术基于c++语言进行开发,若发现数据中存在重复的数据时,如图3所示,数据筛选单元会自动将这部分往期重复数据筛选出来,然后进行重新导入,以等待二轮筛选,若仍出现重复,则将这个数据彻底删除删除,从而降低这些数据对目标检测系统的内存占用,提升系统的运行效率,也避免一次筛选就将数据进行删除,若出现误删,则这部分则无法回,易增加运营成本。
57.当重复数据筛选完成后,剩下的数据被重现进行保存,同时每一项保存的数据均会被添加筛选标记,从而在下一次筛选时,不会再次选择该项数据,以此防止数据被重复筛选,降低了对目标检测系统的资源占用,保证了目标检测系统能够稳定且快速运行,提高了目标检测系统的运行稳定性;同时被添加筛选标记的数据会降低筛选频率,从而最大程度的降低了对系统资源的占用及消耗,保证了系统的流畅性。
技术特征:
1.一种基于深度学习的目标检测系统,其特征在于,包括:数据标记模块,所述数据标记模块用以对道路上的物体进行标记,并对每一个物体赋予独立的编号;数据存储模块,所述数据存储模块用以将数据标记模块中标记的数据进行保存,并根据标记的类别编号进行分类;数据处理模块,所述数据处理模块用以分析处理数据存储模块中的存储数据;数据验证模块,所述数据验证模块用以将处理后的数据进行归类整理,并验证每一项数据是否存在错误;仿真模拟模块,所述数据验证模块采用验证完整且正确的数据,然后将数据导入到程序进行仿真模拟,确认目标检测系统能否检测到模拟目标信息,并进行识别;结果记录模块,所述结果记录模块用以保存记录模拟通过的数据,以备后续导入到自动驾驶系统中,用以提供自动驾驶的目标检测。2.根据权利要求1所述一种基于深度学习的目标检测系统,其特征在于:所述数据标记模块基于摄像头和激光雷达进行目标检测,所述摄像头和激光雷达采集到数据后,所述从数据标记模块自动对常规物体进行标记。3.根据权利要求2所述一种基于深度学习的目标检测系统,其特征在于:所述数据标记模块针对无法识别的物体,会将其单独收储在一个文件夹中,然后技术员手动对这些物体添加标记。4.根据权利要求1所述一种基于深度学习的目标检测系统,其特征在于:所述数据存储模块基于云盘存储和本地硬盘存储两种方式,防止数据丢失损坏无法到原始数据源进行替换。5.根据权利要求4所述一种基于深度学习的目标检测系统,其特征在于:所述数据存储模块中设有两个独立的存储层,两个独立所述存储层用以分别存储目标类别检测数据和目标实例检测数据。6.根据权利要求1所述一种基于深度学习的目标检测系统,其特征在于:所述数据处理模块用以将数据存储模块中的标记数据制作成所述数据验证模块能够识别的数据。7.根据权利要求1所述一种基于深度学习的目标检测系统,其特征在于:所述数据验证模块用以验证数据完整性,防止进入到所述仿真模拟模块中的数据不完整,而导致仿真模拟失败,需要花费较多的时间进行故障排查。8.根据权利要求1所述一种基于深度学习的目标检测系统,其特征在于:所述仿真模拟模块利用收集的数据进行三维仿真模拟,验证目标检测系统的识别准确率,在模拟中及时发现问题,并优化目标识别的效率,降低目标检测系统的内存占用比例。9.根据权利要求1所述一种基于深度学习的目标检测系统,其特征在于:所述结果记录模块定期对保存的数据进行筛选,自动去除冗余无用的数据,以此提高目标检测系统的运行速度。10.根据权利要求9所述一种基于深度学习的目标检测系统,其特征在于:所述结果记录模块中包括数据对比库,所述数据对比库中存储有当前的最新数据,用以和过往冗余无用数据进行对比,实现对数据的筛选。
技术总结
本发明属于目标检测系统技术领域,具体的说是一种基于深度学习的目标检测系统,主要应用于汽车自动驾驶方面,包括数据标记模块、数据存储模块、数据处理模块、数据验证模块、仿真模拟模块和结果记录模块,所述结果记录模块用以保存记录模拟通过的数据,以备后续导入到自动驾驶系统中,用以提供自动驾驶的目标检测;本发明通过仿真模拟将相关数据导入到结果记录模块中进行存储,并自动更新之前的数据,以此保证结果记录模块一直存储着最新的稳定数据,保证了数据调用时不会出现紊乱的情况,同时降低了过往数据对系统内存的占用,降低了过往数据的内存占用,引发目标检测系统运行效率下降的影响。下降的影响。下降的影响。
技术研发人员:
孙业国 刘义红 刘磊 张龙 张科
受保护的技术使用者:
淮南师范学院
技术研发日:
2022.10.12
技术公布日:
2022/12/30