CN110298262B - 物体识别方法及装置 - Google Patents
物体识别方法及装置 Download PDFInfo
- Publication number
- CN110298262B CN110298262B CN201910493331.6A CN201910493331A CN110298262B CN 110298262 B CN110298262 B CN 110298262B CN 201910493331 A CN201910493331 A CN 201910493331A CN 110298262 B CN110298262 B CN 110298262B
- Authority
- CN
- China
- Prior art keywords
- task
- frame
- network
- header
- candidate
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 122
- 238000001514 detection method Methods 0.000 claims abstract description 97
- 238000012545 processing Methods 0.000 claims abstract description 36
- 238000012549 training Methods 0.000 claims description 121
- 238000013528 artificial neural network Methods 0.000 claims description 53
- 238000010586 diagram Methods 0.000 claims description 48
- 238000013527 convolutional neural network Methods 0.000 claims description 47
- 238000000605 extraction Methods 0.000 claims description 30
- 230000008447 perception Effects 0.000 claims description 27
- 238000004364 calculation method Methods 0.000 claims description 21
- 230000036961 partial effect Effects 0.000 claims description 13
- 238000002372 labelling Methods 0.000 claims description 7
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 230000015654 memory Effects 0.000 description 78
- 230000008569 process Effects 0.000 description 40
- 230000006870 function Effects 0.000 description 38
- 238000011176 pooling Methods 0.000 description 36
- 239000011159 matrix material Substances 0.000 description 32
- 238000004891 communication Methods 0.000 description 27
- 239000013598 vector Substances 0.000 description 27
- 238000004422 calculation algorithm Methods 0.000 description 15
- 238000003860 storage Methods 0.000 description 14
- 210000002569 neuron Anatomy 0.000 description 11
- 210000003128 head Anatomy 0.000 description 10
- 230000001537 neural effect Effects 0.000 description 10
- 239000000284 extract Substances 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 8
- 230000003068 static effect Effects 0.000 description 8
- 230000016776 visual perception Effects 0.000 description 8
- 102100034112 Alkyldihydroxyacetonephosphate synthase, peroxisomal Human genes 0.000 description 7
- 101000799143 Homo sapiens Alkyldihydroxyacetonephosphate synthase, peroxisomal Proteins 0.000 description 7
- 230000004913 activation Effects 0.000 description 7
- 238000000848 angular dependent Auger electron spectroscopy Methods 0.000 description 7
- 230000004438 eyesight Effects 0.000 description 7
- 238000013500 data storage Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 241000282412 Homo Species 0.000 description 3
- 230000003796 beauty Effects 0.000 description 3
- 239000000872 buffer Substances 0.000 description 3
- 230000001149 cognitive effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005206 flow analysis Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 208000012260 Accidental injury Diseases 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 2
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 2
- 210000000988 bone and bone Anatomy 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 208000014674 injury Diseases 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000007670 refining Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- MFYSUUPKMDJYPF-UHFFFAOYSA-N 2-[(4-methyl-2-nitrophenyl)diazenyl]-3-oxo-n-phenylbutanamide Chemical compound C=1C=CC=CC=1NC(=O)C(C(=O)C)N=NC1=CC=C(C)C=C1[N+]([O-])=O MFYSUUPKMDJYPF-UHFFFAOYSA-N 0.000 description 1
- 241000282472 Canis lupus familiaris Species 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- DGOBMKYRQHEFGQ-UHFFFAOYSA-L acid green 5 Chemical compound [Na+].[Na+].C=1C=C(C(=C2C=CC(C=C2)=[N+](CC)CC=2C=C(C=CC=2)S([O-])(=O)=O)C=2C=CC(=CC=2)S([O-])(=O)=O)C=CC=1N(CC)CC1=CC=CC(S([O-])(=O)=O)=C1 DGOBMKYRQHEFGQ-UHFFFAOYSA-L 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- YOBAEOGBNPPUQV-UHFFFAOYSA-N iron;trihydrate Chemical compound O.O.O.[Fe].[Fe] YOBAEOGBNPPUQV-UHFFFAOYSA-N 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011897 real-time detection Methods 0.000 description 1
- 230000001953 sensory effect Effects 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
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
- G06V20/647—Three-dimensional objects by matching two-dimensional images to three-dimensional objects
-
- 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/22—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
- G06V10/235—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition based on user input or interaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
-
- 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/044—Recurrent networks, e.g. Hopfield networks
-
- 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/045—Combinations of networks
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/758—Involving statistics of pixels or of feature values, e.g. histogram matching
-
- 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/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- 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/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/7715—Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/24—Character recognition characterised by the processing or recognition method
- G06V30/248—Character recognition characterised by the processing or recognition method involving plural approaches, e.g. verification by template match; Resolving confusion among similar patterns, e.g. "O" versus "Q"
- G06V30/2504—Coarse or fine approaches, e.g. resolution of ambiguities or multiscale approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Abstract
本申请涉及人工智能领域。具体涉及计算机视觉领域,公开了一种基于多个Header的感知网络,所述感知网络包括主干网络和多个并行Header,所述多个并行Header和所述主干网络连接;所述主干网络,用于接收输入的图片,并对所述输入的图片进行卷积处理,输出对应所述图片的具有不同分辨率的特征图;所述多个并行Header中的每个Header,用于根据所述主干网络输出的特征图,对一个任务中的任务物体进行检测,输出所述任务物体所在区域的2D框以及每个2D框对应的置信度;其中,所述每个并行Header完成不同的任务物体的检测;其中,所述任务物体为该任务中需要检测的物体;所述置信度越高,表示所述对应该置信度的2D框内存在所述任务所对应的任务物体的概率越大。
Description
技术领域
本申请涉及人工智能领域,尤其涉及一种物体识别方法及装置。
背景技术
计算机视觉是各个应用领域,如制造业、检验、文档分析、医疗诊断,和军事等领域中各种智能/自主系统中不可分割的一部分,它是一门关于如何运用照相机/摄像机和计算机来获取我们所需的,被拍摄对象的数据与信息的学问。形象地说,就是给计算机安装上眼睛(照相机或摄像机)和大脑(算法)用来代替人眼对目标进行识别、跟踪和测量等,从而使计算机能够感知环境。因为感知可以看作是从感官信号中提取信息,所以计算机视觉也可以看作是研究如何使人工系统从图像或多维数据中“感知”的科学。总的来说,计算机视觉就是用各种成象系统代替视觉器官获取输入信息,再由计算机来代替大脑对这些输入信息完成处理和解释。计算机视觉的最终研究目标就是使计算机能像人那样通过视觉观察和理解世界,具有自主适应环境的能力。
目前视觉感知网络能完成的功能越来越多,包括图片分类、2D检测、语义分割(Mask)、关键点检测、线性物体检测(比如自动驾驶技术中的车道线或停止线检测)、可行驶区域检测等。另外,视觉感知系统具有成本低、非接触性、体积小、信息量大的特点。随着视觉感知算法的精度的不断提高,其成为当今众多人工智能系统的关键技术,得到越来越广泛的应用,如:高级驾驶辅助系统(ADAS,Advanced Driving Assistant System)和自动驾驶系统(ADS,Autonomous Driving System)中对路面上的动态障碍物(人或车)、静态物体(交通灯、交通标志或交通锥状物)的识别,在终端视觉的拍照美颜功能中通过识别人体的Mask和关键点实现瘦身效果等。
目前主流的视觉感知网络大多数集中在一种检测任务,如2D检测、3D检测、语义分割、关键点检测等。如果要实现多个功能,则往往需要不同的网络来完成。多个网络同时运行会显著提升硬件的计算量和功耗,降低模型的运行速度,难以实现实时检测。
发明内容
为了减少硬件的计算量和功耗,提升感知网络模型的运算速度,本发明实施例提供一种基于多个头端(Header)的感知网络,所述感知网络包括主干网络和多个并行Header,所述多个并行Header所述和主干网络连接;
所述主干网络,用于接收输入的图片,并对输入的图片进行卷积处理,输出对应所述图片的具有不同分辨率的特征图;
所述一个并行Header,用于根据所述主干网络输出的特征图,对一个任务中的任务物体进行检测,输出所述任务物体所在区域的2D框以及每个2D框对应的置信度;其中,所述每个并行Header完成不同的任务物体的检测;其中,所述任务物体为该任务中需要检测的物体;所述置信度越高,表示所述对应该置信度的2D框内存在所述任务所对应的物体的概率越大。所述一个并Header是上述多个并行Header中的任一个,每个并行header的功能是相似的。
可选地,每个并行头端包括候选区域生成网络(RPN)模块、感兴趣区域提取(ROI-ALIGN)模块和区域卷积神经网络(RCNN)模块,所述一个并行头端的RPN模块独立于其它并行头端的RPN模块;所述一个并行头端的ROI-ALIGN模块独立于其它并行头端的ROI-ALIGN模块;所述一个并行头端的RCNN模块独立于其它并行头端的RCNN模块,其中,对于每一个并行头端:
所述RPN模块用于:在主干网络提供的一个或者多个特征图上预测所述任务物体所在的区域,并输出匹配所述区域的候选2D框;
所述ROI-ALIGN模块用于:根据所述RPN模块预测得到的区域,从所述主干网络提供的一个特征图中扣取出所述候选2D框所在区域的特征;
所述RCNN模块用于:通过神经网络对所述候选2D框所在区域的特征进行卷积处理,得到所述候选2D框属于各个物体类别的置信度;所述各个物体类别为所述一个并行头端对应的任务中的物体类别;通过神经网络对所述候选区域2D框的坐标进行调整,使得调整后的2D候选框比所述候选2D框与实际物体的形状更加匹配,并选择置信度大于预设阈值的调整后的2D候选框作为所述区域的2D框。
可选地,所述2D框为矩形框。
可选地,在本申请实施例的另一方面,所述RPN模块用于:基于所属任务对应的物体的模板框(Anchor),在主干网络提供的一个或者多个特征图上对存在该任务物体的区域进行预测以得到候选区域,并输出匹配所述候选区域的候选2D框;其中,所述模板框是基于其所属的任务物体的统计特征得到的,所述统计特征包括所述物体的形状和大小。
可选地,在本申请实施例的另一方面,所述感知网络还包括至少一个或多个串行Header;所述串行Header与所述一个并行Header连接;
所述串行Header用于:利用其连接的并行Header提供的所属任务的任务物体的2D框,在主干网络上的一个或多个特征图上提取所述2D框所在区域的特征,根据所述2D框所在区域的特征对所述所属任务的任务物体的3D信息、Mask信息或Keypiont信息进行预测。
可选地,所述RPN模块在不同的分辨率的特征图上预测不同大小物体所在的区域。
可选地,所述RPN模块在低分辨率的特征上完成大物体所在区域的检测,所述RPN模块在高分辨率的特征图上完成小物体所在区域的检测。
另一方面,本发明实施例还提供一种物体检测方法,所述方法包括:
接收输入的图片;
对输入的图片进行卷积处理,输出对应所述图片的具有不同分辨率的特征图;
根据所述特征图,针对不同的任务独立检测每个任务中的任务物体,输出所述每个任务物体所在区域的2D框以及每个2D框对应的置信度;其中,所述任务物体为该任务中需要检测的物体;所述置信度越高,表示所述对应该置信度的2D框内存在所述任务所对应的物体的概率越大。
可选地,所述根据所述特征图,针对不同的任务独立检测每个任务中的任务物体,输出所述每个任务物体所在区域的2D框以及每个2D框对应的置信度,包括:
在一个或者多个特征图上预测所述任务物体所在的区域,并输出匹配所述区域的候选2D框;
根据所述任务物体所在的区域,从一个特征图中扣取出所述候选2D框所在区域的特征;
对所述候选2D框所在区域的特征进行卷积处理,得到所述候选2D框属于各个物体类别的置信度;所述各个物体类别为所述一个任务中的物体类别;
通过神经网络对所述候选区域2D框的坐标进行调整,使得调整后的2D候选框比所述候选2D框与实际物体的形状更加匹配,并选择置信度大于预设阈值的调整后的2D候选框作为所述区域的2D框。
可选地,所述2D框为矩形框。
可选地,在一个或者多个特征图上预测所述任务物体所在的区域,并输出匹配所述区域的候选2D框为:
基于所属任务对应的物体的模板框(Anchor),在主干网络提供的一个或者多个特征图上对存在该任务物体的区域进行预测以得到候选区域,并输出匹配所述候选区域的候选2D框;其中,所述模板框是基于其所属的任务物体的统计特征得到的,所述统计特征包括所述物体的形状和大小。
可选地,所述方法还包括:
基于所属任务的任务物体的2D框,在主干网络上的一个或多个特征图上提取所述2D框所在区域的特征,根据所述2D框所在区域的特征对所述所属任务的任务物体的3D信息、Mask信息或Keypiont信息进行预测。
可选地,在低分辨率的特征上完成大物体所在区域的检测,所述RPN模块在高分辨率的特征图上完成小物体所在区域的检测。
另一方面,本申请实施例提供一种基于部分标注数据训练多任务感知网络的方法,其特征在于,所述感知网络包括主干网络和多个并行头端(Header),所述方法包括:
根据每张图片的标注数据类型,确定每张图片所属的任务;其中,所述每张图片标注一个或者多个数据类型,所述多个数据类型是所有数据类型的子集,一个数据类型对应一个任务;
根据每张图片所属的任务,决定所述每张图片所需训练的Header;
计算每张图片所述所需训练的Header的损失值;
对于每张图片,通过所述所需训练的Header进行梯度回传,并基于所述损失值调整所述所需训练的Header以及主干网络的参数。
可选地,对所属不同任务的图片进行数据均衡。
本发明实施例还提供一种基于部分标注数据训练多任务感知网络的装置,所述感知网络包括主干网络和多个并行头端(Header),所述装置包括:
任务确定模块,用于根据每张图片的标注数据类型,确定每张图片所属的任务;其中,所述每张图片标注一个或者多个数据类型,所述多个数据类型是所有数据类型的子集,一个数据类型对应一个任务;
Header决定模块,用于根据每张图片所属的任务,决定所述每张图片所需训练的Header;
损失值计算模块,针对每张图片,用于计算Header决定模块决定出的Header的损失值;
调整模块,针对每张图片,通过计算Header决定模块决定出的Header进行梯度回传,并基于所述损失值计算模块得到的损失值调整所述所需训练的Header以及主干网络的参数。
可选地,所述装置还包括:数据均衡模块,用于对所属不同任务的图片进行数据均衡。
本发明实施例还提供一种感知网络应用系统,该感知网络应用系统包括至少一个处理器,至少一个存储器、至少一个通信接口以及至少一个显示设备。处理器、存储器、显示设备和通信接口通过通信总线连接并完成相互间的通信。
通信接口,用于与其他设备或通信网络通信;
存储器用于存储执行以上方案的应用程序代码,并由处理器来控制执行。所述处理器用于执行所述存储器中存储的应用程序代码。
存储器2002存储的代码可执行以上提供的一种基于Multi-Header的物体的感知方法也可以是上述实施例提供的训练该感知网络的方法。
显示设备用于显示待识别图像、该图像中感兴趣物体的2D、3D、Mask、关键点等信息。
本申请实施例提供的感知网络,各个感知任务共用相同的主干网络,成倍节省计算量,提升感知网络模型的运算速度;网络结构易于扩展,只需要增加一个或者若干个Header就可以扩展2D的检测类型。每个并行Header具有独立的RPN和RCNN模块,仅需要检测其所属的任务的物体,这样在训练过程中,可以避免对未标注的其他任务的物体的误伤。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的系统架构的结构示意图;
图2为本申请实施例提供的CNN特征提取模型的示意图;
图3是本申请实施例提供的一种芯片硬件结构示意图;
图4为本申请实施例提供的一种基于多个并行Header的感知网络应用系统框架示意图;
图5为本申请实施例提供的基于多个并行Header的感知网络结构示意图;
图6为本申请实施例提供的ADAS/AD的基于多个并行Header感知系统结构示意图;
图7为本申请实施例提供的一种基础特征生成的流程示意图;
图8为本申请实施例提供的另一种RPN层的结构示意图;
图9为本申请实施例提供的另一种RPN层的物体的对应的Anchor示意图;
图10为本申请实施例提供的另一种ROI-ALIGN的过程示意图;
图11为本申请实施例提供的另一种RCNN的实现及结构示意图;
图12为本申请实施例提供的另一种串行Header的实现及结构示意图;
图13为本申请实施例提供的另一种串行Header的实现及结构示意图;
图14为本申请实施例提供的一种串行Header的实现及结构示意图示意图;
图15为本申请实施例提供的一种部分标注数据的训练方法示意图;
图16为本申请实施例提供的另一种部分标注数据的训练方法示意图;
图17为本申请实施例提供的另一种部分标注数据的训练方法示意图;
图18为本申请实施例提供的另一种部分标注数据的训练方法示意图;
图19为本申请实施例提供的一种基于多个并行Header的感知网络的应用示意图;
图20为本申请实施例提供的一种基于多个并行Header的感知网络的应用示意图;
图21为本申请实施例提供的一种感知方法的流程示意图;
图22为本申请实施例提供的一种2D检测流程示意图;
图23为本申请实施例提供的一种终端设备的3D检测流程示意图;
图24为本申请实施例提供的一种Mask预测流程示意图;
图25为本申请实施例提供的一种关键点坐标预测流程示意图;
图26为本申请实施例提供的一种感知网络的训练流程示意图;
图27为本申请实施例提供的一种基于多个并行Header的感知网络实现结构示意图;
图28为本申请实施例提供的一种基于多个并行Header的感知网络实现结构示意图;
图29为本申请实施例提供的一种基于部分标注数据训练多任务感知网络的装置图;
图30为本申请实施例提供的一种物体检测方法流程示意图;
图31为本申请实施例提供的一种基于部分标注数据训练多任务感知网络的流程图。
具体实施方式
首先对本申请实施例中用到的缩略语,列表如下:
表1
需要说明的是,本发明实施例部分附图为了更符合业界的术语描述,使用了英文描述,同时实施例中也给出了相应的中文的定义。下面结合附图对本申请的实施例进行描述。
本申请实施例主要应用在驾驶辅助、自动驾驶、手机终端等需要完成多种感知任务的领域。本发明的应用系统框架如图4所示,视频经过抽帧得到单张图片,该图片送入到本发明的Mulit-Header感知网络,得到该图片中感兴趣物体的2D、3D、Mask(掩膜)、关键点等信息。这些检测结果输出到后处理模块进行处理,比如在自动驾驶系统中送入规划控制单元进行决策、在手机终端中送入美颜算法进行处理得到美颜后的图片。下面分别对ADAS/ADS视觉感知系统和手机美颜两种应用场景做简单的介绍
应用场景1:ADAS/ADS视觉感知系统
如图19所示,在ADAS和ADS中,需要实时进行多类型的2D目标检测,包括:动态障碍物(行人(Pedestrian)、骑行者(Cyclist)、三轮车(Tricycle)、轿车(Car)、卡车(Truck)、公交车(Bus)),静态障碍物(交通锥标(TrafficCone)、交通棍标(TrafficStick)、消防栓(FireHydrant)、摩托车(Motocycle)、自行车(Bicycle)),交通标志(TrafficSign、导向标志(GuideSign)、广告牌(Billboard)、红色交通灯(TrafficLight_Red)/黄色交通灯(TrafficLight_Yellow)/绿色交通灯(TrafficLight_Green)/黑色交通灯(TrafficLight_Black)、路标(RoadSign))。另外,为了准确获取动态障碍物的在3维空间所占的区域,还需要对动态障碍物进行3D估计,输出3D框。为了与激光雷达的数据进行融合,需要获取动态障碍物的Mask,从而把打到动态障碍物上的激光点云筛选出来;为了进行精确的泊车位,需要同时检测出泊车位的4个关键点;为了进行构图定位,需要检测出静态目标的关键点。使用本申请实施例提供的技术方案,可以在一个感知网络中完成上述所有的功能。
应用场景2:手机美颜功能
如图20所示,在手机中,通过本申请实施例提供的感知网络检测出人体的Mask和关键点,可以对人体相应的部位进行放大缩小,比如进行收腰和美臀操作,从而输出美颜的图片。
应用场景3:图像分类场景:
物体识别装置在获取待分类图像后,采用本申请的物体识别方法获取待分类图像中的物体的类别,然后可根据待分类图像中物体的物体的类别对待分类图像进行分类。对于摄影师来说,每天会拍很多照片,有动物的,有人物,有植物的。采用本申请的方法可以快速地将照片按照照片中的内容进行分类,可分成包含动物的照片、包含人物的照片和包含植物的照片。
对于图像数量比较庞大的情况,人工分类的方式效率比较低下,并且人在长时间处理同一件事情时很容易产生疲劳感,此时分类的结果会有很大的误差;而采用本申请的方法可以快速地将图像进行分类,并且不会有误差。
应用场景4商品分类:
物体识别装置获取商品的图像后,然后采用本申请的物体识别方法获取商品的图像中商品的类别,然后根据商品的类别对商品进行分类。对于大型商场或超市中种类繁多的商品,采用本申请的物体识别方法可以快速完成商品的分类,降低了时间开销和人工成本。
本申请实施例提供的方法和装置还可以用于扩充训练数据库,如图1所示执行设备120的I/O接口112可以将经执行设备处理过的图像(如包含物体的图像块或图像)和用户输入的物体类别一起作为训练数据对发送给数据库130,以使得数据库130维护的训练数据更加丰富,从而为训练设备130的训练工作提供更丰富的训练数据。
下面从模型训练侧和模型应用侧对本申请提供的方法进行描述:
本申请实施例提供的训练CNN特征提取模型的方法,涉及计算机视觉的处理,具体可以应用于数据训练、机器学习、深度学习等数据处理方法,对训练数据(如本申请中的物体的图像或图像块和物体的类别)进行符号化和形式化的智能信息建模、抽取、预处理、训练等,最终得到训练好的CNN特征提取模型的;并且,本申请实施例将输入数据(如本申请中的物体的图像)输入到所述训练好的CNN特征提取模型中,得到输出数据(如本申请中得到该图片中感兴趣物体的2D、3D、Mask、关键点等信息)。
由于本申请实施例涉及大量神经网络的应用,为了便于理解,下面先对本申请实施例涉及的相关术语及神经网络等相关概念进行介绍。
(1)物体识别,利用图像处理和机器学习、计算机图形学等相关方法,确定图像物体的类别。
(2)神经网络
神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是sigmoid函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(3)深度神经网络
深度神经网络(Deep Neural Network,DNN),也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从DNN按不同层的位置划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,是输入向量,/>是输出向量,/>是偏移向量,W是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量/>经过如此简单的操作得到输出向量/>由于DNN层数多,则系数W和偏移向量/>的数量也就很多了。这些参数在DNN中的定义如下所述:以系数W为例:假设在一个三层的DNN中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为/>上标3代表系数W所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结就是:第L-1层的第k个神经元到第L层的第j个神经元的系数定义为/>需要注意的是,输入层是没有W参数的。在深度
神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。
(4)卷积神经网络
卷积神经网络(CNN,Convolutional Neuron Network)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
(5)循环神经网络(RNN,Recurrent Neural Networks)是用来处理序列数据的。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍然对很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,RNN能够对任何长度的序列数据进行处理。对于RNN的训练和对传统的CNN或DNN的训练一样。同样使用误差反向传播算法,不过有一点区别:即,如果将RNN进行网络展开,那么其中的参数,如W,是共享的;而如上举例上述的传统神经网络却不是这样。并且在使用梯度下降算法中,每一步的输出不仅依赖当前步的网络,还依赖前面若干步网络的状态。该学习算法称为基于时间的反向传播算法Back propagation Through Time(BPTT)。
既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去。这里填空,人类应该都知道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?RNN就应运而生了。RNN旨在让机器像人一样拥有记忆的能力。因此,RNN的输出就需要依赖当前的输入信息和历史的记忆信息。
(6)损失函数
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
(7)反向传播算法
卷积神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正初始的超分辨率模型中参数的大小,使得超分辨率模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的超分辨率模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的超分辨率模型的参数,例如权重矩阵。
下面介绍本申请实施例提供系统架构。
参见图1,本申请实施例提供了一种系统架构110。如所述系统架构110所示,数据采集设备170用于采集训练数据,本申请实施例中训练数据包括:物体的图像或者图像块及物体的类别;并将训练数据存入数据库130,训练设备130基于数据库130中维护的训练数据训练得到CNN特征提取模型101(解释说明:这里的101就是前面介绍的经训练阶段训练得到的模型,可以是用于特征提取的感知网络等)。下面将以实施例一更详细地描述训练设备130如何基于训练数据得到CNN特征提取模型101,该CNN特征提取模型101能够用于实现本申请实施例提供的感知网络,即,将待识别图像或图像块通过相关预处理后输入该CNN特征提取模型101,即可得到待识别图像或图像块感兴趣物体的2D、3D、Mask、关键点等信息。本申请实施例中的CNN特征提取模型101具体可以为CNN卷积神经网络。需要说明的是,在实际的应用中,所述数据库130中维护的训练数据不一定都来自于数据采集设备170的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备130也不一定完全基于数据库130维护的训练数据进行CNN特征提取模型101的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。
根据训练设备130训练得到的CNN特征提取模型101可以应用于不同的系统或设备中,如应用于图1所示的执行设备120,所述执行设备120可以是终端,如手机终端,平板电脑,笔记本电脑,AR/VR,车载终端等,还可以是服务器或者云端等。在附图1中,执行设备120配置有I/O接口112,用于与外部设备进行数据交互,用户可以通过客户设备150向I/O接口112输入数据,所述输入数据在本申请实施例中可以包括:待识别图像或者图像块或者图片。
在执行设备120对输入数据进行预处理,或者在执行设备120的计算模块111执行计算等相关的处理(比如进行本申请中感知网络的功能实现)过程中,执行设备120可以调用数据存储系统160中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统160中。
最后,I/O接口112将处理结果,如上述得到的图像或图像块或者图片中感兴趣物体的2D、3D、Mask、关键点等信息返回给客户设备150,从而提供给用户。
可选地,客户设备150,可以是自动驾驶系统中的规划控制单元、手机终端中的美颜算法模块。
值得说明的是,训练设备130可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型/规则101,该相应的目标模型/规则101即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。
在附图1中所示情况下,用户可以手动给定输入数据,该手动给定可以通过I/O接口112提供的界面进行操作。另一种情况下,客户设备150可以自动地向I/O接口112发送输入数据,如果要求客户设备150自动发送输入数据需要获得用户的授权,则用户可以在客户设备150中设置相应权限。用户可以在客户设备150查看执行设备120输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备150也可以作为数据采集端,采集如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果作为新的样本数据,并存入数据库130。当然,也可以不经过客户设备150进行采集,而是由I/O接口112直接将如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果,作为新的样本数据存入数据库130。
值得注意的是,附图1仅是本发明实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在附图1中,数据存储系统160相对执行设备120是外部存储器,在其它情况下,也可以将数据存储系统160置于执行设备120中。
如图1所示,根据训练设备130训练得到CNN特征提取模型101,该CNN特征提取模型101在本申请实施例中可以是CNN卷积神经网络也可以是下面实施例即将介绍的基于多个Header的感知网络。
如前文的基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。
如图2所示,卷积神经网络(CNN)210可以包括输入层220,卷积层/池化层230(其中池化层为可选的),以及神经网络层230。
卷积层/池化层230:
卷积层:
如图2所示卷积层/池化层230可以包括如示例221-226层,举例来说:在一种实现中,221层为卷积层,222层为池化层,223层为卷积层,224层为池化层,225为卷积层,226为池化层;在另一种实现方式中,221、222为卷积层,223为池化层,224、225为卷积层,226为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
下面将以卷积层221为例,介绍一层卷积层的内部工作原理。
卷积层221可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行×列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相同,经过该多个尺寸相同的权重矩阵提取后的特征图的尺寸也相同,再将提取到的多个尺寸相同的特征图合并形成卷积运算的输出。
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络210进行正确的预测。
当卷积神经网络210有多个卷积层的时候,初始的卷积层(例如221)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络210深度的加深,越往后的卷积层(例如226)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
池化层:
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图2中230所示例的221-226各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
神经网络层230:
在经过卷积层/池化层230的处理后,卷积神经网络210还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层230只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络210需要利用神经网络层230来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层230中可以包括多层隐含层(如图2所示的231、232至23n)以及输出层240,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等……
在神经网络层230中的多层隐含层之后,也就是整个卷积神经网络210的最后层为输出层240,该输出层240具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络210的前向传播(如图2由220至240方向的传播为前向传播)完成,反向传播(如图2由240至220方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络210的损失,及卷积神经网络210通过输出层输出的结果和理想结果之间的误差。
需要说明的是,如图2所示的卷积神经网络210仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在。
下面介绍本申请实施例提供的一种芯片硬件结构。
图3为本发明实施例提供的一种芯片硬件结构,该芯片包括神经网络处理器30。该芯片可以被设置在如图1所示的执行设备120中,用以完成计算模块111的计算工作。该芯片也可以被设置在如图1所示的训练设备130中,用以完成训练设备130的训练工作并输出目标模型/规则101。如图2所示的卷积神经网络中各层的算法均可在如图3所示的芯片中得以实现。
神经网络处理器NPU 30,NPU作为协处理器挂载到主CPU(Host CPU)上,由HostCPU分配任务。NPU的核心部分为运算电路303,控制器304控制运算电路303提取存储器(权重存储器或输入存储器)中的数据并进行运算。
在一些实现中,运算电路303内部包括多个处理单元(Process Engine,PE)。在一些实现中,运算电路303是二维脉动阵列。运算电路303还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路303是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器302中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器301中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)308中。
向量计算单元307可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元307可以用于神经网络中非卷积/非FC层的网络计算,如池化(Pooling),批归一化(Batch Normalization),局部响应归一化(Local Response Normalization)等。
在一些实现中,向量计算单元能307将经处理的输出的向量存储到统一缓存器306。例如,向量计算单元307可以将非线性函数应用到运算电路303的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元307生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路303的激活输入,例如用于在神经网络中的后续层中的使用。
本申请实施例提供的感知网络的运算可以由303或307执行。
统一存储器306用于存放输入数据以及输出数据。
权重数据直接通过存储单元访问控制器305(Direct Memory AccessController,DMAC)将外部存储器中的输入数据搬运到输入存储器301和/或统一存储器306、将外部存储器中的权重数据存入权重存储器302,以及将统一存储器306中的数据存入外部存储器。
总线接口单元(Bus Interface Unit,BIU)310,用于通过总线实现主CPU、DMAC和取指存储器309之间进行交互。
与控制器304连接的取指存储器(instruction fetch buffer)309,用于存储控制器304使用的指令;
控制器304,用于调用指存储器309中缓存的指令,实现控制该运算加速器的工作过程。
可选地,本申请中此处的输入数据为图片,输出数据为图片中感兴趣物体的2D、3D、Mask、关键点等信息。
一般地,统一存储器306,输入存储器301,权重存储器302以及取指存储器309均为片上(On-Chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random AccessMemory,简称DDR SDRAM)、高带宽存储器(High Bandwidth Memory,HBM)或其他可读可写的存储器。
图1和图2中的程序算法是由主CPU和NPU共同配合完成的。
其中,图2所示的卷积神经网络中各层的运算可以由运算电路303或向量计算单元307执行。
参见图5,图5为本申请实施例提供的一种多头感知网络的结构示意图。如图5所示,该感知网络包括:
其主要由主干网络(Backbone)401、多个并行Header0~N两部分组成。
主干网络401,用于接收输入的图片,并对输入的图片进行卷积处理,输出对应所述图片的具有不同分辨率的特征图;也就是说输出对应所述图片的不同大小的特征图;
也就是说,Backbone完成基础特征的提取,为后续的检测提供相应的特征。
任一个并行头端,用于用于根据所述主干网络输出的特征图,对一个任务中的任务物体进行检测,输出所述任务物体所在区域的2D框以及每个2D框对应的置信度;其中,所述每个并行Header完成不同的任务物体的检测;其中,所述任务物体为该任务中需要检测的物体;所述置信度越高,表示所述对应该置信度的2D框内存在所述任务所对应的物体的概率越大。
也就是说并行Header完成不同的2D检测任务,比如并行Header0完成车的检测,输出Car/Truck/Bus的2D框和置信度;并行Header1完成人的检测,输出Pedestrian/Cyclist/Tricyle的2D框和置信度;并行Header2完成交通灯的检测,输出Red_Trafficligh/Green_Trafficlight/Yellow_TrafficLight/Black_TrafficLight的2D框和置信度。
可选地,如图5中的所示,所示感知网络还可以包括多个串行Header,所述感知网络还包括至少一个或多个串行头端;所述串行头端与一个并行头端连接;这里需要强调的是,虽然图5为了更好得展示画出了多个串行Header,但实际上,串行Header并不是必须的,对于只需要检测2D框的场景,就不需要包括串行Header。
所述串行Header用于:利用其连接的并行Header提供的所属任务的任务物体的2D框,在主干网络上的一个或多个特征图上提取所述2D框所在区域的特征,根据所述2D框所在区域的特征对所述所属任务的任务物体的3D信息、Mask信息或Keypiont信息进行预测。
串行Header可选地串接在并行Header的后面,在检测出该任务的2D框的基础上,完成2D框内部物体的3D/Mask/Keypoint检测。
比如,串行3D_Header0完成车辆的朝向、质心和长宽高的估计,从而输出车辆的3D框;串行Mask_Header0预测车辆的精细掩膜,从而把车辆分割开来;串行Keypont_Header0完成车辆的关键点的估计。
串行Header并不是必须的,某些任务不需要进行3D/Mask/Keypoint检测,则不需要串接串行Header,比如交通灯的检测,只需要检测2D框,就不用串接串行Header。另外,某些任务可以根据任务的具体需求,选择串接一个或者多个串行Header,比如停车场(Parkingslot)的检测,除了需要得到2D框外,还需要车位的关键点,因此在这个任务中只需要串接一个串行Keypoint_Header即可,不需要3D和Mask的Header。
下面对各个模块进行详细描述。
Backbone:主干网络对输入的图片进行一系列的卷积处理,得到在不同的尺度下的特征图(feature map)。这些特征图将为后续的检测模块提供基础特征。主干网络可以采用多种形式,比如VGG(Visual Geometry Group,视觉几何组)、Resnet(Residual NeuralNetwork,残差神经网络)、Inception-net(GoogLeNet的核心结构)等。
并行Header:并行Header主要根据Backbone提供的基础特征,完成一个任务的2D框的检测,输出这个任务的物体的2D框以及对应的置信度。
可选地,每个任务的并行Header包括RPN、ROI-ALIGN和RCNN三个模块。
RPN模块:用于在主干网络提供的一个或者多个特征图上预测所述任务物体所在的区域,并输出匹配所述区域的候选2D框;
或者可以这样理解,RPN全称为候选区域生成网络(Region Proposal Network),其在Backbone的一个或者多个feature map上预测出可能存在该任务物体的区域,并且给出这些区域的框,这些区域称为候选区域(Proposal)。
比如,当并行Header0负责检测车时,其RPN层就预测出可能存在车的候选框;当并行Header1负责检测人时,其RPN层就预测出可能存在人的候选框。当然,这些Proposal是不准确的,一方面其不一定含有该任务的物体,另一方面这些框也是不紧致的
ROI-ALIGN模块:用于根据所述RPN模块预测得到的区域,从所述主干网络提供的一个特征图中扣取出所述候选2D框所在区域的特征;
也就是说,ROI-ALIGN模块主要根据RPN模块提供的Proposal,在Backbone的某个feature map上把每个Proposal所在的区域的特征扣取出来,并且resize到固定的大小,得到每个Proposal的特征。可以理解的是,ROI-ALIGN模块可以使用但不局限于ROI-POOLING(感兴趣区域池化)/ROI-ALIGN(感兴趣区域提取)/PS-ROIPOOLING(位置敏感的感兴趣区域池化)/PS-ROIALIGN(位置敏感的感兴趣区域提取)等特征抽取方法。
RCNN模块:用于通过神经网络对所述候选2D框所在区域的特征进行卷积处理,得到所述候选2D框属于各个物体类别的置信度;所述各个物体类别为所述一个并行头端对应的任务中的物体类别;通过神经网络对所述候选区域2D框的坐标进行调整,使得调整后的2D候选框比所述候选2D框与实际物体的形状更加匹配,并选择置信度大于预设阈值的调整后的2D候选框作为所述区域的2D框。
也就是说,RCNN模块主要是对ROI-ALIGN模块提出的每个Proposal的特征进行细化处理,得到每个Proposal的属于各个类别置信度(比如对于车这个任务,会给出Backgroud/Car/Truck/Bus 4个分数),同时对Proposal的2D框的坐标进行调整,输出更加紧致的2D框。这些2D框经过NMS(Non Maximum Suppression,非极大值抑制)合并后,作为最后的2D框输出。
如上所述,在一些实际应用场景中,该感知网络还可以包括串行Header。串行Header主要是串接在并行Header后面,在检测出2D框的基础上,进一步进行3D/Mask/Keypoint检测。因此串行Header有3个类型:
串行3D Header:串行3D Header根据前端的并行Header提供的2D框(此时的2D框是准确的紧致2D框),通过ROI-ALIGN模块在Backbone的某个feature map上把这些2D框所在的区域的特征扣取出来,然后通过一个小网络(图5中的3D_Header)回归出这个2D框内部的物体的质心点坐标、朝向角度和长宽高,从而得到完整的3D信息。
串行Mask Header:串行Mask Header根据前端的并行Header提供的2D框(此时的2D框是准确的紧致2D框),通过ROI-ALIGN模块在Backbone的某个feature map上把这些2D框所在的区域的特征扣取出来,然后通过一个小网络(图5中的Mask_Header)回归出这个2D框内部的物体的掩膜,从而把这个物体分割出来。
串行Keypoint Header:串行Keypoint Header根据前端的并行Header提供的2D框(此时的2D框是准确的紧致2D框),通过ROI-ALIGN模块在Backbone的某个feature map上把这些2D框所在的区域的特征扣取出来,然后通过一个小网络(图5中的Keypoint_Header)回归出这个2D框内部的物体的关键点坐标。
可选地,如图29所示,本发明实施例还提供一种基于部分标注数据训练多任务感知网络的装置,所述感知网络包括主干网络和多个并行头端(Header),感知网络的结构在前述实施例中已经详细描述,在此不再赘述,所述装置包括:
任务确定模块2900,用于根据每张图片的标注数据类型,确定每张图片所属的任务;其中,所述每张图片标注一个或者多个数据类型,所述多个数据类型是所有数据类型的子集,一个数据类型对应一个任务;
Header决定模块2901,用于根据任务确定模块2900确定的每张图片所属的任务,决定所述每张图片所需训练的Header;
损失值计算模块2902,针对每张图片,用于计算Header决定模块2901决定出的Header的损失值;
调整模块2903,针对每张图片,通过计算Header决定模块2901决定出的Header进行梯度回传,并基于所述损失值计算模块2902得到的损失值调整所述所需训练的Header以及主干网络的参数。
可选地,在一个实施例中,如图29的虚线框所示,所述装置还可以包括:
数据均衡模块2904,用于对所属不同任务的图片进行数据均衡。
如图6所示,下面以ADAS/AD的视觉感知系统为例,对本发明实施例进行详细的介绍
在ADAS/AD的视觉感知系统中,需要实时进行多类型的2D目标检测,包括:动态障碍物(Pedestrian、Cyclist、Tricycle、Car、Truck、Bus),静态障碍物(TrafficCone、TrafficStick、FireHydrant、Motocycle、Bicycle),交通标志(TrafficSign、GuideSign、Billboard)。另外,为了准确获取车辆在3维空间所占的区域,还需要对动态障碍物进行3D估计,输出3D框。为了与激光雷达的数据进行融合,需要获取动态障碍物的Mask,从而把打到动态障碍物上的激光点云筛选出来;为了进行精确的泊车位,需要同时检测出泊车位的4个关键点。使用本实施例提供的技术方案,可以在一个网络中完成上述所有的功能,下面对本实施例进行详细描述。
1、各个Header任务的划分以及网络的总体框图
根据需要检测的物体的相似性以及训练样本的丰富和稀缺程度,本实施例中把需要检测的20类物体划分为8个大类别,如表2所示。
表2各个Header需要检测的物体类别以及扩展功能
根据业务的需求,Header0除了需要完成车的2D检测外,还需要进一步完成3D和Mask检测;Header1除了需要完成人的2D检测外,还需要进一步完成Mask的检测;Header2除了完成泊车位2D框的检测外,还需要完成车位关键点的检测。
需要说明的是,表2的任务划分只是本实施例中的一个举例,在其它实施例中可以进行不同的任务划分,并不局限于表2中的任务划分。
根据表2的任务划分,本实施例的感知网络总体结构如图6所示。
感知网络其主要包括3部分:Backbone、并行Header和串行Header。需要说明的是,如前实施例所述,串行Header并不是必须的,原因在上述实施例已经描述,在此不再赘述。其中,8个并行Header同时完成了表1中的8个大类的2D检测,在Header0~2后面串接了若干个串行Header,进一步完成3D/Mask/Keypoint的检测。从图6可以看出,本发明可以根据业务的需求,对Header进行灵活的增加和删减,从而实现不同的功能配置。
2、基础特征生成
基础特征生成流程由图6的Backbone实施,其对输入的图像进行卷积处理,生成若干不同尺度的卷积特征图,每张特征图是一个H*W*C的矩阵,其中H是特征图的高度,W是特征图的宽度、C是特征图的通道数。
Backbone可以采用目前多种现有的卷积网络框架,比如VGG16、Resnet50、Inception-Net等,下面以Resnet18为Backbone,说明基础特征的生成流程。该流程如图7所示。
假设输入的图片的分辨率为H*W*3(高度H,宽度W,通道数为3,也就是RBG三个通道)。输入图片经过Resnet18的第一个卷积模块(图中的Res18-Conv1,该卷积模块由若干卷积层组成,后面的卷积模块类似)进行卷积运算,生成Featuremap(特征图)C1,这个特征图相对于输入图像进行了2次下采样,并且通道数扩充为64,因此C1的分辨率是H/4*W/4*64;C1经过Resnet18的第2个卷积模块(Res18-Conv2)进行卷积运算,得到Featuremap C2,这个特征图的分辨率与C1一致;C2继续经过Resnet18的第3个卷积模块(Res18-Conv3)处理,生成Featuremap C3,这个特征图相对C2进一步下采样,通道数增倍,其分辨率为H/8*W/8*128;最后C3经过Res18-Conv4处理,生成Featuremap C4,其分辨率为H/16*W/16*256。
从图7可以看出,Resnet18对输入图片进行多个层次的卷积处理,得到不同尺度的特征图:C1/C2/C3/C4。底层的特征图的宽度和高度比较大,通道数较少,其主要为图像的低层特征(比如图像边缘、纹理特征),高层的特征图的宽度和高度比较小,通道数较多,其主要为图像的高层特征(比如形状、物体特征)。后续的2D检测流程将会基于这些特征图进行进一步的预测。
3、2D候选区域预测流程
2D候选区域预测流程由图6中每个并行Header的RPN模块实施,其根据Backbone提供的特征图(C1/C2/C3/C4),预测出可能存在该任务物体的区域,并且给出这些区域的候选框(也可以叫候选区域,Proposal)。在本实施例中,并行Header0负责检测车,其RPN层就预测出可能存在车的候选框;并行Header1负责检测人,其RPN层就预测出可能存在人的候选框,以此类推,不再赘述。
RPN层的基本结构如图8所示。在C4上通过一个3*3的卷积,生成特征图RPNHidden。后面每个并行Header的RPN层将会从RPN Hidden中预测Proposal。具体来说,并行Header0的RPN层分别通过两个1*1的卷积,预测出RPN Hidden每个位置处的Proposal的坐标以及置信度。这个置信度越高,表示这个Proposal存在该任务的物体的概率越大。比如,在并行Header0中某个Proposal的score越大,就表示其存在车的概率越大。每个RPN层预测出来的Proposal需要经过Proposal合并模块,根据Proposal之间的重合程度去掉多余的Proposal(这个过程可以采用但不限制于NMS算法),在剩余的K个Proposal中挑选出score最大的N(N<K)个Proposal作为候选的可能存在物体的区域。从图8可以看出,这些Proposal是不准确的,一方面其不一定含有该任务的物体,另一方面这些框也是不紧致的。因此,RPN模块只是一个粗检测的过程,需要后续的RCNN模块进行细分。
在RPN模块回归Proposal的坐标时,并不是直接回归坐标的绝对值,而是回归出相对于Anchor的坐标。当这些Anchor与实际的物体匹配越高,PRN能检测出物体的概率越大。本发明中采用多个Header的框架,可以对每个RPN层的物体的尺度和宽高比设计对应的Anchor,从而提升每个PRN层的查全率。如图9所示。
对于并行Header1,其负责人的检测,而人的主要形态是瘦长型的,因此,可以把Anchor设计为瘦长型;对于并行Header4,其负责交通标志的检测,而交通标志的主要形态是正方形的,因此,可以把Anchor设计为正方形。
4、2D候选区域特征提取流程
2D候选区域特征提取流程主要由图6中的每个并行Header中的ROI-ALIGN模块实施,其根据PRN层提供的Proposal的坐标,在Backbone提供的一个特征图上把每个Proposal所在的特征抽取出来。ROI-ALIGN的过程如图10所示。
本实施例中在Backbone的C4特征图上进行扣取特征,每个Proposal在C4上区域如图中的箭头所指的深色区域,在这个区域中采用插值和抽样的方法,扣取出固定分辨率的特征。假设Proposal的个数为N,ROI-ALIGN抽取出来的特征的宽高都为14,则ROI-ALIGN输出的特征的大小为N*14*14*256(ROI-ALIGN抽取出来的特征的通道数与C4的通道数相同,均为256个通道)。这些特征将会送到后续的RCNN模块进行细分。
5、2D候选区域细分类
2D候选区域细分类主要由图6中每个并行Header的RCNN模块实施,其根据ROI-ALIGN模块提取出来的每个Proposal的特征,进一步回归出更加紧致的2D框坐标,同时对这个Proposal进行分类,输出其属于各个类别的置信度。
RCNN的可实现形式很多,其中一种实现形式如图11所示。下面对其进行分析。
ROI-ALIGN模块输出的特征大小为N*14*14*256,其在RCNN模块中首先经过Resnet18的第5个卷积模块(Res18-Conv5)处理,输出的特征大小为N*7*7*512,然后通过一个Global Avg Pool(平均池化层)进行处理,把输入特征中每个通道内的7*7的特征进行平均,得到N*512的特征,其中每个1*512维的特征向量代表每个Proposal的特征。接下来通过2个全连接层FC分别回归框的精确坐标(输出N*4的向量,这4个数值分表表示框的中心点x/y坐标,框的宽高),框的类别的置信度(在Header0中,需要给出这个框是Backgroud/Car/Truck/Bus的分数)。最后通过框合并操作,选择分数最大的若干个框,并且通过NMS操作去除重复的框,从而得到紧致的框输出。
6、3D检测流程
3D检测流程由图6中的串行3D_Header0完成,其根据“2D检测”流程提供的2D框以及Backbone提供的特征图,预测出每个2D框内部物体的质心点坐标、朝向角、长、宽、高等3D信息。串行3D_Header一种可能的实现方式如图12所示。
ROI-ALIGN模块根据并行Header提供的准确的2D框,在C4上提取出每个2D框所在区域的特征,假设2D框的个数为M,那么ROI-ALIGN模块输出的特征大小为M*14*14*256,其首先经过Resnet18的第5个卷积模块(Res18-Conv5)处理,输出的特征大小为N*7*7*512,然后通过一个Global Avg Pool(平均池化层)进行处理,把输入特征中每个通道的7*7的特征进行平均,得到M*512的特征,其中每个1*512维的特征向量代表每个2D框的特征。接下来通过3个全连接层FC分别回归框中物体的朝向角(图中的orientation,M*1向量)、质心点坐标(图中的centroid,M*2向量,这2个数值表示质心的x/y坐标)和长宽高(图中的dimention)
7、Mask检测流程
Mask检测流程由图6中的串行Mask_Header0完成,其根据“2D检测”流程提供的2D框以及Backbone提供的特征图,预测出每个2D框内部物体的精细掩膜。串行Mask_Header一种可能的实现方式如图13所示。
ROI-ALIGN模块根据并行Header提供的准确的2D框,在C4上提取出每个2D框所在区域的特征,假设2D框的个数为M,那么ROI-ALIGN模块输出的特征大小为M*14*14*256,其首先经过Resnet18的第5个卷积模块(Res18-Conv5)处理,输出的特征大小为N*7*7*512,然后通过经过反卷积层Deconv进一步进行卷积,得到M*14*14*512的特征,最后通过一个卷积,得到M*14*14*1的Mask置信度输出。这个输出中每个14*14的矩阵代表每个2D框中物体的掩膜的置信度,每个2D框被均等的划分为14*14个区域,这个14*14的矩阵就标志每个区域存在物体的可能性。对这个置信度矩阵进行阈值化处理(比如大于阈值0.5的输出1,否则输出0)就可以得到物体的掩膜。
8、Keypoint检测流程
Keypoint检测流程由图6中的串行Keypoint_Header2完成,其根据“2D检测”流程提供的2D框以及Backbone提供的特征图,预测出每个2D框内部物体的关键点坐标。串行Keyponit_Header一种可能的实现方式如图14所示。
ROI-ALIGN模块根据并行Header提供的准确的2D框,在C4上提取出每个2D框所在区域的特征,假设2D框的个数为M,那么ROI-ALIGN模块输出的特征大小为M*14*14*256,其首先经过Resnet18的第5个卷积模块(Res18-Conv5)处理,输出的特征大小为N*7*7*512,然后通过一个Global Avg Pool进行处理,把输入特征中每个通道的7*7的特征进行平均,得到M*512的特征,其中每个1*512维的特征向量代表每个2D框的特征。接下来通过1个全连接层FC分别回归框中物体的关键点坐标(图中的Keypoint,M*8向量,这8个数值表示泊车位的4个角点的x/y坐标)。
基于表2的任务划分,本申请实施例还对该感知网络的训练过程做详细描述。
A.训练数据的准备
根据表2的任务划分,我们需要为每个任务提供标注数据。比如需要为Header0的训练提供车的标注数据,在数据集上标注出Car/Truck/Bus的2D框以及类标签;需要为Header1的训练提供人的标注数据,在数据集上标注出Pedestrian/Cyclist/Tricycle的2D框以及类标签;需要为Header3提供交通灯的标注数据,在数据集上标注出TrafficLight_Red/Yellow/Green/Black的2D框以及类标签,以此类推。
每一种数据只需要标注特定类型的物体即可,这样可以进行针对性的采集,而不用在每一张图片中把所有感兴趣的物体标注出来,从而降低数据采集和标注的成本。另外,采用这种方式准备数据具有很灵活的扩展性,在增加检测物体检测类型的情况下,只需要增加一个或者多个Header,并且提供新增物体的标注数据类型即可,不需要在原有数据上把新增的物体标注出来。
另外,为了训练Header0中的3D检测功能,需要提供独立的3D标注数据,在数据集上标注出每一辆车的3D信息(质心点坐标、朝向角、长、宽、高);为了训练Header0中的Mask检测功能,需要提供独立的Mask标注数据,在数据集上标注出每一辆车的掩膜;特别的,Header2中的Parkingslot检测需要检测关键点,这个任务要求数据集同时把泊车位的2D框和关键点标注出来(实际上,只需要把关键点标注出来即可,车位的2D框可以通过关键点的坐标自动生成)
一般情况下只需要为每个任务提供独立的训练数据即可,但是也可以提供混合标注的数据,比如可以在数据集上同时标注Car/Truck/Bus/Pedestrian/Cyclist/Tricycle的2D框以及类标签,这样就可以利用这个数据来同时训练Header0和Header1的并行Header;也可以在数据集上同时标注出Car/Truck/Bus的2D/3D/Mask数据,这样这份数据就可以同时训练并行Header0、串行3D_Header0和串行Mask_Header0。
我们可以给每张图片指定一个标签,这个标签决定这张图片可以用来训练网络中的哪些Header,这在后续的训练流程中会有详细的描述。
为了保证各个Header得到均等的训练机会,需要对数据进行均衡,具体就是把数量少的数据进行扩展,扩展的方式包括但不限于复制扩展。对均衡后的数据进行随机打乱,然后送入到网络中进行训练,如图15所示。
B.基于部分标注数据训练全功能网络
基于部分标注数据训练全功能网络的过程中根据每张输入图片所属的任务的类型,计算相应的Header的Loss,并且通过这个Loss进行梯度回传,并计算相应Header以及Backbone上的参数的梯度,然后根据梯度对相应的Header以及Backbone进行调整。不在当前输入图片的标注任务中的Header则不进行调整。
如果一张图片只是标注一个任务的2D数据,那么这张图片送入网络训练的时候,只训练对应的一个并行Header。如图16所示。
当前图片只标注了交通灯的2D框,那么在训练的时候,只通过并行Header3得到此输入图片的交通灯的预测结果,并且和真值进行比较,得到这个Header的损失代价2D_Loss3。由于只产生一个代价损失,总体的代价损失值Final Loss=2D_Loss3。也就是说,交通灯的输入图片只是流过Backbone以及并行Header3,其余的Header并不参与到训练中,如图16中的无“X”号的粗箭头所示。在得到Final Loss后,沿着图16中的无“X”号粗箭头的反方向计算并行Header3以及Backbone中的梯度,然后利用这个梯度更新Header3以及Backbone的参数,实现对网络的调整,使得网络更好得预测交通灯。
如果一张图片标注了多个任务的2D数据,那么这张图片送入网络训练的时候,则会训练对应的多个并行Header。如图17所示。
当前图片同时标注了人和车的2D框,那么在训练的时候,就会通过并行Header0和并行Header1得到此输入图片的人车的预测结果,并且和真值进行比较,得到这2个Header的损失代价2D_Loss0/2D_Loss1。由于产生多个代价损失,总体的代价损失值是各个损失的均值,即Final Loss=(2D_Loss0+2D_Loss1)/2。也就是说,标注人车的输入图片只是流过Backbone以及并行Header0/1,其余的Header并不参与到训练中,如图17中的无“X”号粗箭头所示。在得到Final Loss后,沿着图17中的无“X”号粗箭头的反方向计算并行Header0/1以及Backbone中的梯度,然后利用这个梯度更新Header0/1以及Backbone的参数,实现对网络的调整,使得网络更好得预测人车。
串行Header的训练需要独立的数据集来进行训练,需要下面以车的3D训练为例进行说明。如图18所示。
此时的输入图片标注了车的2D和3D的真值。在训练的时候,数据的流向如图中的无“X”号粗箭头所示,有“X”号粗箭头表示数据流不到的Header。当这张图片送入网络后,会同时计算出来2D和3D的损失函数,得到最终的Final Loss=(2D_Loss0+3D_Loss0)/2。然后沿着无“X”号粗箭头的反方向计算串行3D Header0、并行Header0以及Backbone中的梯度,然后利用这个梯度更新其参数,实现对网络的调整,使得网络更好得预测车的2D和3D。
每张图片送入网络中训练时只会调整对应的Header以及Backbone,使得对应的任务表现更好,在这个过程中,其他任务性能会变差,但是后续轮到该任务的图片时,变差的Header又可以调整过来。由于所有任务的训练数据预先进行均衡,各个任务都得到均等的训练机会,因此不会出现某个任务过度训练的情况。通过这种训练方法,使得Backbone学习到了各个任务的共有的特征,而每个Header学习到其任务特定的特征。
目前感知需要需要实现的功能越来越多,使用多个网络来实现单点功能会导致总体计算量过大。本发明实施例提出一种基于Multi-Header的高性能可扩展的感知网络,各个感知任务共用相同的主干网络,成倍节省计算量和网络的参数量。表3给出了Single-Header网络实现单个功能的计算量和参数量统计。
Single-Header-Model@720p | GFlops | Parameters(M) |
Vehicle(Car/Truck/Tram) | 235.5 | 17.76 |
Vehicle+Mask+3D | 235.6 | 32.49 |
Person(Pedestrian/Cyclist/Tricycle) | 235.5 | 17.76 |
Person+Mask | 235.6 | 23.0 |
Motocycle/Bicycle | 235.5 | 17.76 |
TrafficLight(Red/Green/Yellow/Black) | 235.6 | 17.76 |
TrafficSign(Trafficsign/Guideside/Billboard) | 235.5 | 17.75 |
TrafficCone/TrafficStick/FireHydrant | 235.5 | 17.75 |
Parkingslot(with keypoint) | 235.6 | 18.98 |
全功能网络(多个single-Header网络) | 1648.9 | 145.49 |
表3Single-Header网络的计算量和参数量统计
从表中可以看出,如果采用8个网络实现本实施例中的所有功能,需要的总计算量为1648.9GFlops,网络参数总量为145.49M。这个计算量和网络参数量非常巨大,将会给硬件带来很大的压力。
表4给出了采用一个Multi-Header的网络实现本实施例所有功能的计算量和参数量。
Multi-Header-Model@720p | GFlops | Parameters(M) |
全功能网络(单个Multi-Header网络) | 236.6 | 42.16 |
表4Multi-Header网络的计算量和参数量统计
从表中可以看出,Mulit-Header网络的计算量和参数量仅为Single-Header的1/7和1/3,极大降低了计算消耗。
另外,Multi-Header网络可以实现与Single-Header一样的检测性能,表5给出了Multi-Header与Single-Header在部分类别上的性能比较。
类别 | Single-Header | Multi-Header |
Car | 91.7 | 91.6 |
Tram | 81.8 | 80.1 |
Pedestrian | 73.6 | 75.2 |
Cyclist | 81.8 | 83.3 |
TrafficLight | 98.3 | 97.5 |
TrafficSign | 95.1 | 94.5 |
Parkingslot(point precision/recall) | 94.01/80.61 | 95.17/78.89 |
3D(mean_orien_err/mecentroid_dist_err) | 2.95/6.78 | 2.88/6.34 |
表5Single-Header与Multi-Header网络的检测性能对比
从表中可以看出,两者的性能相当,因此,Multi-Header网络在节省计算量和显存的情况下不会导致性能下降。
本发明实施例提出一种基于Multi-Header的高性能可扩展感知网络,在同一个网络上同时实现不同的感知任务(2D/3D/关键点/语义分割等),该网络中各个感知任务共用相同的主干网络,节省计算量,网络结构易于扩展,只需要通过增加一个Header来增加一个功能。另外,本发明实施例还提出一种基于部分标注数据训练多任务感知网络的方法,各个任务使用独立数据集,不需要在同一张图片上进行全任务标注,不同任务的训练数据方便进行均衡,不同任务的数据不会产生相互的抑制。
如图30所示,本发明实施例还提供一种物体检测方法,该方法包括:
S3001,接收输入的图片;
S3002,对输入的图片进行卷积处理,输出对应所述图片的具有不同分辨率的特征图;
S3003,根据所述特征图,针对不同的任务独立检测每个任务中的任务物体,输出所述每个任务物体所在区域的2D框以及每个2D框对应的置信度;其中,所述任务物体为该任务中需要检测的物体;所述置信度越高,表示所述对应该置信度的2D框内存在所述任务所对应的物体的概率越大。
可选地,在一个实施例中,S3002可以包括如下4个步骤:
1、在一个或者多个特征图上预测所述任务物体所在的区域,并输出匹配所述区域的候选2D框;
可选地,可以基于所属任务对应的物体的模板框(Anchor),在主干网络提供的一个或者多个特征图上对存在该任务物体的区域进行预测以得到候选区域,并输出匹配所述候选区域的候选2D框;其中,所述模板框是基于其所属的任务物体的统计特征得到的,所述统计特征包括所述物体的形状和大小。
2、根据所述任务物体所在的区域,从一个特征图中扣取出所述候选2D框所在区域的特征;
3、对所述候选2D框所在区域的特征进行卷积处理,得到所述候选2D框属于各个物体类别的置信度;所述各个物体类别为所述一个任务中的物体类别;
4、通过神经网络对所述候选区域2D框的坐标进行调整,使得调整后的2D候选框比所述候选2D框与实际物体的形状更加匹配,并选择置信度大于预设阈值的调整后的2D候选框作为所述区域的2D框。
可选地,上述2D框可以为矩形框。
可选地,所述方法还包括:
S3004,基于所属任务的任务物体的2D框,在主干网络上的一个或多个特征图上提取所述2D框所在区域的特征,根据所述2D框所在区域的特征对所述所属任务的任务物体的3D信息、Mask信息或Keypiont信息进行预测。
可选地,可以在低分辨率的特征上完成大物体所在区域的检测,所述RPN模块在高分辨率的特征图上完成小物体所在区域的检测。
如图31所示,本发明实施例还提供一种基于部分标注数据训练多任务感知网络的方法,所述方法包括:
S3101,根据每张图片的标注数据类型,确定每张图片所属的任务;其中,所述每张图片标注一个或者多个数据类型,所述多个数据类型是所有数据类型的子集,一个数据类型对应一个任务;
S3102,根据每张图片所属的任务,决定所述每张图片所需训练的Header;
S3103,计算每张图片所述所需训练的Header的损失值;
S3104,对于每张图片,通过所述所需训练的Header进行梯度回传,并基于所述损失值调整所述所需训练的Header以及主干网络的参数。
可选地,如图31的虚线框所示,在步骤S3102之前,所述方法还包括:
S31020,对所属不同任务的图片进行数据均衡。
本发明实施例还提供一种基于基于multi-Header的物体感知方法,本发明实施例提供的感知方法的流程包括“推理”流程和“训练”流程两部分。下面分别介绍。
一、感知流程:
本发明实施例提供的感知方法的流程如图21所示。
步骤S210中,图片输入网络;
步骤S220中,进入“基础特征生成”流程。
在该流程中,图片通过图5的Backbone进行基础特征提取,得到不同尺度的特征图。在基础特征生成后,将会进入图21中虚线框所在的核心流程。在核心流程中,每个任务具有独立的“2D检测”流程以及可选的“3D检测”流程、“Mask检测”流程和“Keypoint检测”流程。下面对核心流程进行描述。
1、2D检测流程
“2D检测”流程根据“基础特征生成”流程产生的特征图,预测出每个任务的2D框以及置信度。具体来说,“2D检测”流程又可以细分为“2D候选区域预测”流程、“2D候选区域特征提取”流程和“2D候选区域细分类”流程,如图22所示。
“2D候选区域预测”流程由图5中的RPN模块实施,其在“基础特征生成”流程提供的一个或者多个feature map上预测出可能存在该任务物体的区域,并且给出这些区域的框(Proposal)。
“2D候选区域特征提取”流程由图5中的ROI-ALIGN模块实施,其根据“2D候选区域预测”流程提供的Proposal,在在“基础特征生成”流程提供的一个feature map上把每个Proposal所在的区域的特征扣取出来,并且resize到固定的大小,得到每个Proposal的特征。
“2D候选区域细分类”流程由图5中的RCNN模块实施,其采用神经网络对每个Proposal的特征进行进一步预测,输出每个Proposal的属于各个类别置信度,同时对Proposal的2D框的坐标进行调整,输出更加紧致的2D框。
2、3D检测流程
“3D检测”流程根据“2D检测”流程提供的2D框以及“基础特征生成”流程产生的特征图,预测出每个2D框内部物体的质心点坐标、朝向角和长宽高等3D信息。具体来说,“3D检测”由两个子流程组成,如图23所示。
子流程分析如下:
“2D候选区域特征提取”流程由图5中的ROI-ALIGN模块实施,其根据2D框的坐标,在“基础特征生成”流程提供的一个feature map上把每个2D框所在的区域的特征扣取出来,并且resize到固定的大小,得到每个2D框的特征。
“3D质心/朝向/长宽高预测”流程由图5中的3D_Header实施,其主要根据每个2D框的特征,回归出2D框内部物体的质心点坐标、朝向角度和长宽高等3D信息。
3、Mask检测流程
“Mask检测”流程根据“2D检测”流程提供的2D框以及“基础特征生成”流程产生的特征图,预测出每个2D框内部物体的细致的掩膜。具体来说,“Mask检测”由两个子流程组成,如图24所示。
子流程分析如下:
“2D候选区域特征提取”流程由图5中的ROI-ALIGN模块实施,其根据2D框的坐标,在“基础特征生成”流程提供的一个feature map上把每个2D框所在的区域的特征扣取出来,并且resize到固定的大小,得到每个2D框的特征。
“掩膜预测”流程由图5中的Mask_Header实施,其主要根据每个2D框的特征,回归出2D框内部物体所在的掩膜。
4、Keypoint检测流程
“Keypoint预测”流程根据“2D检测”流程提供的2D框以及“基础特征生成”流程产生的特征图,预测出每个2D框内部物体的掩膜。具体来说,“Keypoint预测”由两个子流程组成,如图25所示。
子流程分析如下:
“2D候选区域特征提取”流程由图5中的ROI-ALIGN模块实施,其根据2D框的坐标,在“基础特征生成”流程提供的一个feature map上把每个2D框所在的区域的特征扣取出来,并且resize到固定的大小,得到每个2D框的特征。
“关键点坐标预测”流程由图5中的Keypoint_Header实施,其主要根据每个2D框的特征,回归出2D框内部物体的关键点的坐标。
二、训练流程
本发明实施例的训练流程如图26所示。
其中红框部分为核心的训练流程。下面对核心训练流程进行介绍。
1、任务间数据均衡流程
各个任务的数据量是极度不均衡的,比如含有人的图片数量会比交通标志的大得多,为了让各个任务的Header得到均等的训练机会,必须对任务间的数据进行均衡。具体就是把数量少的数据进行扩展,扩展的方式包括但不限于复制扩展。
2、根据图片所属任务计算Loss流程
每张图片根据其标注的数据类型可以分属于一个或者多个任务,比如一张图片中仅标注交通标志,那么这张图片就只属于交通标志这个任务;如果一张图片同时标注了人和车,那么这种图片就同时属于人和车2个任务。在计算Loss的时候,只计算当前图片所属任务所对应的Header的Loss,其余任务的Loss并不计算。比如,当前输入的训练图片属于人和车的任务,则此时仅计算人和车的的Header的Loss,其余的(比如交通灯、交通标志)的Loss不计算。
3、根据图片所属任务回传梯度流程
在计算Loss后,需要进行梯度回传。此时,仅通过当前任务的Header进行梯度回传,不在当前任务的Header不参与梯度回传。这样,就可以对当前图片调整当前的Header,使得当前的Header更好的学习当前的任务。由于各个任务的数据已经经过均衡化处理,各个Header能够得到均等的训练机会,所以在这样反复调整过程中,各个Header学习到任务相关的特征,而Backbone则学习到任务间共用的特征。
本申请实施例综合考虑了现有方法的不足,提出一种基于Multi-Header的高性能可扩展感知网络,在同一个网络上同时实现不同的感知任务(2D/3D/关键点/语义分割等),该网络中各个感知任务共用相同的主干网络,显著节省计算量。另外,其网络结构易于扩展,只需要通过增加一个或者若干个Header来进行功能扩展。
此外,本申请实施例还提出一种基于部分标注数据训练多任务感知网络的方法,各个任务使用独立数据集,不需要在同一张图片上进行全任务标注,不同任务的训练数据方便进行均衡,不同任务的数据不会产生相互的抑制。
如图5所示的感知网络可以以图27中的结构来实现,图27是感知网络的一个应用系统示意图,图中所示,该感知网络2000包括至少一个处理器2001,至少一个存储器2002、至少一个通信接口2003以及至少一个显示设备2004。处理器2001、存储器2002、显示设备2004和通信接口2003通过通信总线连接并完成相互间的通信。
通信接口2003,用于与其他设备或通信网络通信,如以太网,无线接入网(radioaccess network,RAN),无线局域网(wireless local area networks,WLAN)等。
存储器2002可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器2002用于存储执行以上方案的应用程序代码,并由处理器2001来控制执行。所述处理器2001用于执行所述存储器2002中存储的应用程序代码。
存储器2002存储的代码可执行以上提供的一种基于Multi-Header的物体的感知方法。
显示设备2004用于显示待识别图像、该图像中感兴趣物体的2D、3D、Mask、关键点等信息。
处理器2001还可以采用或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的基于Multi-Header的物体的感知方法或模型训练方法。
处理器2001还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的推荐方法的各个步骤可以通过处理器2001中的硬件的集成逻辑电路或者软件形式的指令完成。在实现过程中,本申请实施例的训练方法的各个步骤可以通过处理器2001中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2001还可以是通用处理器、数字信号处理器(digital signal processing,DSP)、ASIC、现成可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及模块框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器2002,处理器2001读取存储器2002中的信息,结合其硬件完成本申请实施例的物体感知方法或模型训练方法。
通信接口2003使用例如但不限于收发器一类的收发装置,来实现推荐装置或训练装置与其他设备或通信网络之间的通信。例如,可以通过通信接口2003获取待识别图片或者训练数据。
总线可包括在装置各个部件(例如,存储器2002、处理器2001、通信接口2003、显示设备2004)之间传送信息的通路。在一种可能的实施例中,处理器2001具体执行以下步骤:接收输入的图片;对输入的图片进行卷积处理,输出对应所述图片的具有不同分辨率的特征图;根据所述主干网络提供的特征图,针对不同的任务独立检测每个任务所对应的物体,输出所述每个任务所对应物体的候选区域的2D框以及每个2D框对应的置信度。
在一种可能的实施例中,在执行根据所述主干网络提供的特征图,针对不同的任务独立检测每个任务所对应的物体,输出所述每个任务所对应物体的候选区域的2D框以及每个2D框对应的置信度的步骤时,处理器2001具体执行如下步骤:在一个或者多个特征图上对存在该任务物体的区域进行预测以得到候选区域,并输出匹配所述候选区域的候选2D框;根据所述RPN模块得到的候选区域,从一个特征图中扣取出所述候选区域所在区域的特征;对所述候选区域的特征进行细化处理,得到所述候选区域对应各个物体类别的置信度;所述各个物体为对应的一个任务中的物体;对所述候选区域的坐标进行调整得到第二候选2D框,所述第二2D候选框比所述候选2D框与实际物体更加匹配,并选择置信度大于预设阈值的2D候选框作为候选区域的2D框。
在一种可能的实施例中,在执行在一个或者多个特征图上对存在该任务物体的区域进行预测以得到候选区域,并输出匹配所述候选区域的候选2D框时,处理器2001具体执行如下步骤:
基于所对应任务的物体的模板框(Anchor),在一个或者多个特征图上对存在该任务的物体的区域进行预测以得到候选区域,并输出匹配所述候选区域的候选2D框;其中:所述模板框是基于其所属任务物体的统计特征得到的,所述统计特征包括所述物体的形状和大小。
在一种可能的实施例中,处理器2001还执行如下步骤:
基于对应任务的物体的2D框,在主干网络上的一个或多个特征图上提取所述物体的特征,对所述物体的3D、Mask或Keypiont进行预测。
在一种可能的实施例中,在低分辨率的特征图上完成大物体的候选区域的检测,在高分辨率的特征图上完成小物体的候选区域的检测。
在一种可能的实施例中,所述2D框为矩形框。
可选地,如图28所示,感知网络的结构可以由服务器实现,服务器可以以图28中的结构来实现,该服务器2110包括至少一个处理器2101,至少一个存储器2102以及至少一个通信接口2103。处理器2101、存储器2102和通信接口2103通过通信总线连接并完成相互间的通信。
通信接口2103,用于与其他设备或通信网络通信,如以太网,RAN,WLAN等。
存储器2102可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM)CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器2102用于存储执行以上方案的应用程序代码,并由处理器2101来控制执行。所述处理器2101用于执行所述存储器2102中存储的应用程序代码。
存储器2102存储的代码可执行以上提供的一种基于Multi-Header的物体的感知方法。
处理器2101还可以采用或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的基于Multi-Header的物体的感知方法或模型训练方法。
处理器2101还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的推荐方法的各个步骤可以通过处理器2101中的硬件的集成逻辑电路或者软件形式的指令完成。在实现过程中,本申请实施例的训练方法的各个步骤可以通过处理器2101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2001还可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及模块框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器2102,处理器2101读取存储器2102中的信息,结合其硬件完成本申请实施例的物体感知方法或模型训练方法。
通信接口2103使用例如但不限于收发器一类的收发装置,来实现推荐装置或训练装置与其他设备或通信网络之间的通信。例如,可以通过通信接口2103获取待识别图片或者训练数据。
总线可包括在装置各个部件(例如,存储器2102、处理器2101、通信接口2103)之间传送信息的通路。在一种可能的实施例中,处理器2101具体执行以下步骤:在一个或者多个特征图上对存在该任务物体的区域进行预测以得到候选区域,并输出匹配所述候选区域的候选2D框;根据所述RPN模块得到的候选区域,从一个特征图中扣取出所述候选区域所在区域的特征;对所述候选区域的特征进行细化处理,得到所述候选区域对应各个物体类别的置信度;所述各个物体为对应的一个任务中的物体;对所述候选区域的坐标进行调整得到第二候选2D框,所述第二2D候选框比所述候选2D框与实际物体更加匹配,并选择置信度大于预设阈值的2D候选框作为候选区域的2D框。
本申请提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行如图21、22、23、24或25所示实施例的物体感知方法的相关内容。
本申请提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行如图26所示实施例的训练方法的相关内容。
本申请提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述如图21、22、23、24或25所示实施例的感知方法的相关内容。
本申请提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述如图26所示实施例的训练方法的相关内容。
本申请提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行如图21、22、23、24、25或26所示实施例的感知方法的相关内容。
本申请提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行如图26所示实施例的训练方法的相关内容。
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行如图21、22、23、24或25所示实施例的感知方法的相关内容,或者执行如图26所示实施例的训练方法的相关内容。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
综上所述,本申请实施例的有益效果总结如下:
(1)各个感知任务共用相同的主干网络,成倍节省计算量;网络结构易于扩展,只需要增加一个或者若干个Header就可以扩展2D的检测类型。每个并行Header具有独立的RPN和RCNN模块,仅需要检测其所属的任务的物体,这样在训练过程中,可以避免对未标注的其他任务的物体的误伤。另外,采用独立RPN层,可以针对每个任务的物体的尺度和宽高比定制专门的Anchor,从而提高Anchor与物体的重合比例,进而提高RPN层对物体的查全率。
(2)可以以灵活方便的方式,实现3D、Mask、Keypoint的检测功能。并且这些功能扩展与2D部分共用相同的主干网络,不会显著增加计算量。使用一个网络实现多项功能,易于在芯片上实现
(3)各个任务使用独立的数据集,不需要在同一张图片上把所有任务标注出来,节省标注成本。任务扩展灵活简单,在增加新的任务的时候,只需要提供新任务的数据即可,不要在原来的数据上把新的物体标注出来。不同任务的训练数据方便进行均衡,使得各个任务得到均等的训练机会,避免数量大的数据淹没数量少的数据。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、ROM、RAM、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上上述,本说明书内容不应理解为对本发明的限制。
Claims (17)
1.一种基于多个头端(Header)的感知网络,其特征在于,所述感知网络包括主干网络和多个并行Header,所述多个并行Header和所述主干网络连接;
所述主干网络,用于接收输入的图片,并对所述输入的图片进行卷积处理,输出对应所述图片的具有多个不同分辨率的特征图;
所述多个并行Header中的每个Header,用于根据所述主干网络输出的多个不同分辨率的特征图,对一个任务中的任务物体进行检测,输出所述任务物体所在区域的2D框以及每个2D框属于各个物体类别的置信度;其中,所述每个并行Header完成不同类别的任务物体的检测;其中,所述任务物体为该任务中需要检测类别的物体;所述置信度越高,表示所述对应该置信度的2D框内存在所述任务所对应的任务物体的概率越大,所述各个物体类别为所述并行头端对应的任务中的物体类别;
所述感知网络还包括一个或多个串行Header,所述串行Header与一个所述并行Header连接,所述串行Header用于根据所述2D框所在区域的特征对所属任务的任务物体的3D信息、Mask信息或Keypiont信息进行预测。
2.根据权利要求1所述的感知网络,其特征在于,所述每个并行头端包括候选区域生成网络(RPN)模块、感兴趣区域提取(ROI-ALIGN)模块和区域卷积神经网络(RCNN)模块,所述每个并行头端的RPN模块独立于其它并行头端的RPN模块;所述每个并行头端的ROI-ALIGN模块独立于其它并行头端的ROI-ALIGN模块;所述每个并行头端的RCNN模块独立于其它并行头端的RCNN模块,其中,对于所述每个并行头端:
所述RPN模块用于:在所述主干网络提供的一个或者多个特征图上预测所述任务物体所在的区域,并输出匹配所述区域的候选2D框;
所述ROI-ALIGN模块用于:根据所述RPN模块预测得到的区域,从所述主干网络提供的一个特征图中扣取出所述候选2D框所在区域的特征;
所述RCNN模块用于:通过神经网络对所述候选2D框所在区域的特征进行卷积处理,得到所述候选2D框属于各个物体类别的置信度;所述各个物体类别为所述并行头端对应的任务中的物体类别;通过神经网络对所述候选2D框的坐标进行调整,使得调整后的2D候选框比所述候选2D框与实际物体的形状更加匹配,并选择置信度大于预设阈值的调整后的2D候选框作为所述区域的2D框。
3.根据权利要求1或2所述的感知网络,其特征在于,所述2D框为矩形框。
4.根据权利要求2所述的感知网络,其特征在于,
所述RPN模块用于:基于所属任务对应的物体的模板框(Anchor),在主干网络提供的一个或者多个特征图上对存在该任务物体的区域进行预测以得到候选区域,并输出匹配所述候选区域的候选2D框;其中,所述模板框是基于其所属的任务物体的统计特征得到的,所述统计特征包括所述物体的形状和大小。
5.根据权利要求1所述的感知网络,其特征在于,
所述串行Header具体用于:利用其连接的所述并行Header提供的所属任务的任务物体的2D框,在所述主干网络上的一个或多个特征图上提取所述2D框所在区域的特征,根据所述2D框所在区域的特征对所述所属任务的任务物体的3D信息、Mask信息或Keypiont信息进行预测。
6.根据权利要求4所述的感知网络,其特征在于,所述RPN模块用于在不同的分辨率的特征图上预测不同大小物体所在的区域。
7.根据权利要求6所述的感知网络,其特征在于,所述RPN模块用于在低分辨率的特征图上完成大物体所在区域的检测,在高分辨率的特征图上完成小物体所在区域的检测。
8.一种物体检测方法,其特征在于,应用于感知网络,所述感知网络包括主干网络和多个并行Header,所述感知网络还包括一个或多个串行Header,所述串行Header与一个所述并行Header连接;所述方法包括:
所述主干网络接收输入的图片;对所述输入的图片进行卷积处理,输出对应所述图片的具有多个不同分辨率的特征图;
根据所述主干网络输出的多个不同分辨率的特征图,每个并行头端(Header)针对一个任务中的任务物体进行检测,输出所述任务物体所在区域的2D框以及每个2D框属于各个物体类别的置信度;其中,所述每个并行头端(Header)完成不同类别的任务物体的检测;所述任务物体为该任务中需要检测类别的物体;所述置信度越高,表示对应所述该置信度的2D框内存在所述任务所对应的任务物体的概率越大,所述各个物体类别为所述并行头端对应的任务中的物体类别;
所述串行Header根据所述2D框所在区域的特征对所属任务的任务物体的3D信息、Mask信息或Keypiont信息进行预测。
9.根据权利要求8所述的物体检测方法,其特征在于,所述根据所述特征图,针对不同的任务独立检测每个任务中的任务物体,输出所述每个任务物体所在区域的2D框以及每个2D框对应的置信度,包括:
在一个或者多个特征图上预测所述任务物体所在的区域,并输出匹配所述区域的候选2D框;
根据所述任务物体所在的区域,从一个特征图中扣取出所述候选2D框所在区域的特征;
对所述候选2D框所在区域的特征进行卷积处理,得到所述候选2D框属于各个物体类别的置信度;所述各个物体类别为所述一个任务中的物体类别;
通过神经网络对所述候选2D框的坐标进行调整,使得调整后的2D候选框比所述候选2D框与实际物体的形状更加匹配,并选择置信度大于预设阈值的调整后的2D候选框作为所述区域的2D框。
10.根据权利要求9所述的物体检测方法,其特征在于,所述2D框为矩形框。
11.根据权利要求9所述的物体检测方法,其特征在于,在一个或者多个特征图上预测所述任务物体所在的区域,并输出匹配所述区域的候选2D框为:
基于所属任务对应的物体的模板框(Anchor),在所述主干网络提供的一个或者多个特征图上对存在该任务物体的区域进行预测以得到候选区域,并输出匹配所述候选区域的候选2D框;其中,所述模板框是基于其所属的任务物体的统计特征得到的,所述统计特征包括所述物体的形状和大小。
12.根据权利要求8-11任一项所述的物体检测方法,其特征在于,所述方法还包括:
基于所属任务的任务物体的2D框,在主干网络上的一个或多个特征图上提取所述2D框所在区域的特征。
13.根据权利要求8所述的物体检测方法,其特征在于,在低分辨率的特征上完成大物体所在区域的检测,在高分辨率的特征图上完成小物体所在区域的检测。
14.一种基于部分标注数据训练多任务感知网络的方法,其特征在于,应用于权利要求1-7任一项所述的感知网络,所述方法包括:
根据每张样本图片的标注数据类型,确定所述每张样本图片所属的任务;其中,所述每张样本图片标注一个或者多个数据类型,所述多个数据类型是所有数据类型的子集,所述所有数据类型中的每一个数据类型对应一个任务;
根据所述每张样本图片所属的任务,决定所述每张样本图片所需训练的Header;
计算所述每张样本图片所需训练的Header的损失值;
对于所述每张样本图片,通过所述所需训练的Header进行梯度回传,并基于所述损失值调整所述所需训练的Header以及所述主干网络的参数,其余的Header并不参与到训练中。
15.如权利要求14所述的训练多任务感知网络的方法,其特征在于,计算所述每张样本图片所需训练的Header的损失值之前,所述方法还包括:
对属于不同任务的样本图片进行数据均衡。
16.一种基于部分标注数据训练多任务感知网络的装置,其特征在于,应用于权利要求1-7任一项所述的感知网络,所述装置包括:
任务确定模块,用于根据每张样本图片的标注数据类型,确定所述每张样本图片所属的任务;其中,所述每张样本图片标注一个或者多个数据类型,所述多个数据类型是所有数据类型的子集,所述所有数据类型中的每一个数据类型对应一个任务;
Header决定模块,用于根据所述每张样本图片所属的任务,决定所述每张样本图片所需训练的Header;
损失值计算模块,针对所述每张样本图片,用于计算所述Header决定模块决定出的Header的损失值;
调整模块,针对所述每张样本图片,通过计算所述Header决定模块决定出的Header进行梯度回传,并基于所述损失值计算模块得到的损失值调整所述所需训练的Header以及主干网络的参数,其余的Header并不参与到训练中。
17.如权利要求16所述的基于部分标注数据训练多任务感知网络的装置,其特征在于,所述装置还包括:
数据均衡模块,用于对属于不同任务的样本图片进行数据均衡。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910493331.6A CN110298262B (zh) | 2019-06-06 | 2019-06-06 | 物体识别方法及装置 |
EP20817904.4A EP3916628A4 (en) | 2019-06-06 | 2020-06-08 | OBJECT IDENTIFICATION METHOD AND DEVICE |
PCT/CN2020/094803 WO2020244653A1 (zh) | 2019-06-06 | 2020-06-08 | 物体识别方法及装置 |
JP2021538658A JP7289918B2 (ja) | 2019-06-06 | 2020-06-08 | 物体認識方法及び装置 |
US17/542,497 US20220165045A1 (en) | 2019-06-06 | 2021-12-06 | Object recognition method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910493331.6A CN110298262B (zh) | 2019-06-06 | 2019-06-06 | 物体识别方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110298262A CN110298262A (zh) | 2019-10-01 |
CN110298262B true CN110298262B (zh) | 2024-01-02 |
Family
ID=68027699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910493331.6A Active CN110298262B (zh) | 2019-06-06 | 2019-06-06 | 物体识别方法及装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220165045A1 (zh) |
EP (1) | EP3916628A4 (zh) |
JP (1) | JP7289918B2 (zh) |
CN (1) | CN110298262B (zh) |
WO (1) | WO2020244653A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11922314B1 (en) * | 2018-11-30 | 2024-03-05 | Ansys, Inc. | Systems and methods for building dynamic reduced order physical models |
US11462112B2 (en) * | 2019-03-07 | 2022-10-04 | Nec Corporation | Multi-task perception network with applications to scene understanding and advanced driver-assistance system |
CN110298262B (zh) * | 2019-06-06 | 2024-01-02 | 华为技术有限公司 | 物体识别方法及装置 |
CN110675635B (zh) * | 2019-10-09 | 2021-08-03 | 北京百度网讯科技有限公司 | 相机外参的获取方法、装置、电子设备及存储介质 |
WO2021114031A1 (zh) * | 2019-12-09 | 2021-06-17 | 深圳市大疆创新科技有限公司 | 一种目标检测方法和装置 |
CN112989900A (zh) * | 2019-12-13 | 2021-06-18 | 深动科技(北京)有限公司 | 一种精确检测交通标志或标线的方法 |
CN111291809B (zh) * | 2020-02-03 | 2024-04-12 | 华为技术有限公司 | 一种处理装置、方法及存储介质 |
CN111598000A (zh) * | 2020-05-18 | 2020-08-28 | 中移(杭州)信息技术有限公司 | 基于多任务的人脸识别方法、装置、服务器和可读存储介质 |
CN112434552A (zh) * | 2020-10-13 | 2021-03-02 | 广州视源电子科技股份有限公司 | 神经网络模型调整方法、装置、设备及存储介质 |
WO2022126523A1 (zh) * | 2020-12-17 | 2022-06-23 | 深圳市大疆创新科技有限公司 | 物体检测方法、设备、可移动平台及计算机可读存储介质 |
CN112614105B (zh) * | 2020-12-23 | 2022-08-23 | 东华大学 | 一种基于深度网络的3d点云焊点缺陷检测方法 |
CN112869829B (zh) * | 2021-02-25 | 2022-10-21 | 北京积水潭医院 | 一种智能镜下腕管切割器 |
CN113065637B (zh) * | 2021-02-27 | 2023-09-01 | 华为技术有限公司 | 一种感知网络及数据处理方法 |
FR3121110A1 (fr) * | 2021-03-24 | 2022-09-30 | Psa Automobiles Sa | Procédé et système de contrôle d’une pluralité de systèmes d’aide à la conduite embarqués dans un véhicule |
CN117157679A (zh) * | 2021-04-12 | 2023-12-01 | 华为技术有限公司 | 感知网络、感知网络的训练方法、物体识别方法及装置 |
CN113191401A (zh) * | 2021-04-14 | 2021-07-30 | 中国海洋大学 | 基于视觉显著性共享的用于三维模型识别的方法及装置 |
CN113255445A (zh) * | 2021-04-20 | 2021-08-13 | 杭州飞步科技有限公司 | 多任务模型训练及图像处理方法、装置、设备及存储介质 |
CN113762326A (zh) * | 2021-05-26 | 2021-12-07 | 腾讯云计算(北京)有限责任公司 | 一种数据识别方法、装置、设备及可读存储介质 |
CN113657486B (zh) * | 2021-08-16 | 2023-11-07 | 浙江新再灵科技股份有限公司 | 基于电梯图片数据的多标签多属性分类模型建立方法 |
CN114723966B (zh) * | 2022-03-30 | 2023-04-07 | 北京百度网讯科技有限公司 | 多任务识别方法、训练方法、装置、电子设备及存储介质 |
CN114596624B (zh) * | 2022-04-20 | 2022-08-05 | 深圳市海清视讯科技有限公司 | 人眼状态检测方法、装置、电子设备及存储介质 |
CN114821269A (zh) * | 2022-05-10 | 2022-07-29 | 安徽蔚来智驾科技有限公司 | 多任务目标检测方法、设备、自动驾驶系统和存储介质 |
CN115661784B (zh) * | 2022-10-12 | 2023-08-22 | 北京惠朗时代科技有限公司 | 一种面向智慧交通的交通标志图像大数据识别方法与系统 |
CN116385949B (zh) * | 2023-03-23 | 2023-09-08 | 广州里工实业有限公司 | 一种移动机器人的区域检测方法、系统、装置及介质 |
CN116543163B (zh) * | 2023-05-15 | 2024-01-26 | 哈尔滨市科佳通用机电股份有限公司 | 一种制动连接管折断故障检测方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108520229A (zh) * | 2018-04-04 | 2018-09-11 | 北京旷视科技有限公司 | 图像检测方法、装置、电子设备和计算机可读介质 |
WO2019028725A1 (en) * | 2017-08-10 | 2019-02-14 | Intel Corporation | CONVOLUTIVE NEURAL NETWORK STRUCTURE USING INVERTED CONNECTIONS AND OBJECTIVITY ANTERIORITIES TO DETECT AN OBJECT |
CN109712118A (zh) * | 2018-12-11 | 2019-05-03 | 武汉三江中电科技有限责任公司 | 一种基于Mask RCNN的变电站隔离开关检测识别方法 |
CN109784194A (zh) * | 2018-12-20 | 2019-05-21 | 上海图森未来人工智能科技有限公司 | 目标检测网络构建方法和训练方法、目标检测方法 |
CN109815922A (zh) * | 2019-01-29 | 2019-05-28 | 卡斯柯信号有限公司 | 基于人工智能神经网络的轨道交通地面目标视频识别方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170124409A1 (en) * | 2015-11-04 | 2017-05-04 | Nec Laboratories America, Inc. | Cascaded neural network with scale dependent pooling for object detection |
US10679351B2 (en) * | 2017-08-18 | 2020-06-09 | Samsung Electronics Co., Ltd. | System and method for semantic segmentation of images |
US10223610B1 (en) * | 2017-10-15 | 2019-03-05 | International Business Machines Corporation | System and method for detection and classification of findings in images |
CN109598186A (zh) * | 2018-10-12 | 2019-04-09 | 高新兴科技集团股份有限公司 | 一种基于多任务深度学习的行人属性识别方法 |
CN110298262B (zh) * | 2019-06-06 | 2024-01-02 | 华为技术有限公司 | 物体识别方法及装置 |
-
2019
- 2019-06-06 CN CN201910493331.6A patent/CN110298262B/zh active Active
-
2020
- 2020-06-08 EP EP20817904.4A patent/EP3916628A4/en active Pending
- 2020-06-08 JP JP2021538658A patent/JP7289918B2/ja active Active
- 2020-06-08 WO PCT/CN2020/094803 patent/WO2020244653A1/zh active Application Filing
-
2021
- 2021-12-06 US US17/542,497 patent/US20220165045A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019028725A1 (en) * | 2017-08-10 | 2019-02-14 | Intel Corporation | CONVOLUTIVE NEURAL NETWORK STRUCTURE USING INVERTED CONNECTIONS AND OBJECTIVITY ANTERIORITIES TO DETECT AN OBJECT |
CN108520229A (zh) * | 2018-04-04 | 2018-09-11 | 北京旷视科技有限公司 | 图像检测方法、装置、电子设备和计算机可读介质 |
CN109712118A (zh) * | 2018-12-11 | 2019-05-03 | 武汉三江中电科技有限责任公司 | 一种基于Mask RCNN的变电站隔离开关检测识别方法 |
CN109784194A (zh) * | 2018-12-20 | 2019-05-21 | 上海图森未来人工智能科技有限公司 | 目标检测网络构建方法和训练方法、目标检测方法 |
CN109815922A (zh) * | 2019-01-29 | 2019-05-28 | 卡斯柯信号有限公司 | 基于人工智能神经网络的轨道交通地面目标视频识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110298262A (zh) | 2019-10-01 |
WO2020244653A1 (zh) | 2020-12-10 |
JP7289918B2 (ja) | 2023-06-12 |
EP3916628A1 (en) | 2021-12-01 |
US20220165045A1 (en) | 2022-05-26 |
JP2022515895A (ja) | 2022-02-22 |
EP3916628A4 (en) | 2022-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110298262B (zh) | 物体识别方法及装置 | |
CN110378381B (zh) | 物体检测方法、装置和计算机存储介质 | |
CN110070107B (zh) | 物体识别方法及装置 | |
CN111401517B (zh) | 一种感知网络结构搜索方法及其装置 | |
CN111291809B (zh) | 一种处理装置、方法及存储介质 | |
US20210398252A1 (en) | Image denoising method and apparatus | |
WO2021218786A1 (zh) | 一种数据处理系统、物体检测方法及其装置 | |
CN112446270A (zh) | 行人再识别网络的训练方法、行人再识别方法和装置 | |
WO2021147325A1 (zh) | 一种物体检测方法、装置以及存储介质 | |
CN112446398A (zh) | 图像分类方法以及装置 | |
CN112446834A (zh) | 图像增强方法和装置 | |
CN112561027A (zh) | 神经网络架构搜索方法、图像处理方法、装置和存储介质 | |
CN111368972A (zh) | 一种卷积层量化方法及其装置 | |
CN112529904A (zh) | 图像语义分割方法、装置、计算机可读存储介质和芯片 | |
CN112307826A (zh) | 行人检测方法、装置、计算机可读存储介质和芯片 | |
CN112287954A (zh) | 图像分类方法、图像分类模型的训练方法及其装置 | |
CN111797881A (zh) | 图像分类方法及装置 | |
CN112464930A (zh) | 目标检测网络构建方法、目标检测方法、装置和存储介质 | |
CN114764856A (zh) | 图像语义分割方法和图像语义分割装置 | |
CN115631344A (zh) | 一种基于特征自适应聚合的目标检测方法 | |
CN115375781A (zh) | 一种数据处理方法及其装置 | |
WO2022217434A1 (zh) | 感知网络、感知网络的训练方法、物体识别方法及装置 | |
CN110705564A (zh) | 图像识别的方法和装置 | |
CN113065637B (zh) | 一种感知网络及数据处理方法 | |
CN114972182A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |