CN116758380B - 用于姿态估计的网络训练方法及装置 - Google Patents
用于姿态估计的网络训练方法及装置 Download PDFInfo
- Publication number
- CN116758380B CN116758380B CN202311028342.XA CN202311028342A CN116758380B CN 116758380 B CN116758380 B CN 116758380B CN 202311028342 A CN202311028342 A CN 202311028342A CN 116758380 B CN116758380 B CN 116758380B
- Authority
- CN
- China
- Prior art keywords
- network
- gesture
- target object
- training
- preset
- 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
- 238000012549 training Methods 0.000 title claims abstract description 197
- 238000000034 method Methods 0.000 title claims abstract description 98
- 238000000605 extraction Methods 0.000 claims abstract description 91
- 230000006870 function Effects 0.000 claims description 109
- 239000011159 matrix material Substances 0.000 claims description 101
- 238000012545 processing Methods 0.000 claims description 46
- 238000010606 normalization Methods 0.000 claims description 45
- 230000004913 activation Effects 0.000 claims description 43
- 238000001514 detection method Methods 0.000 claims description 39
- 238000002372 labelling Methods 0.000 claims description 39
- 238000003860 storage Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 19
- 238000012544 monitoring process Methods 0.000 description 14
- 238000013528 artificial neural network Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000011478 gradient descent method Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000010365 information processing Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241001282135 Poromitra oscitans Species 0.000 description 1
- 206010039203 Road traffic accident Diseases 0.000 description 1
- 206010048232 Yawning Diseases 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 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
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- 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/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
- G06V10/462—Salient features, e.g. scale invariant feature transforms [SIFT]
-
- 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
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/59—Context or environment of the image inside of a vehicle, e.g. relating to seat occupancy, driver state or inner lighting conditions
- G06V20/597—Recognising the driver's state or behaviour, e.g. attention or drowsiness
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Human Computer Interaction (AREA)
- Image Analysis (AREA)
Abstract
本公开涉及一种用于姿态估计的网络训练方法及装置,涉及计算机技术领域,所述方法包括:将获取的训练数据集中的样本图像输入预设的特征提取网络,以根据特征提取网络输出的样本图像中目标对象的特征张量,对初始姿态网络进行训练,得到目标姿态网络。本公开实施例可提高训练效率,进一步减少对处理器算力资源和内存资源的消耗。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种用于姿态估计的网络训练方法及装置。
背景技术
在机器人视觉、动作跟踪和单照相机定标等很多应用领域,都需要对图像中的目标对象进行姿态估计,并基于姿态估计结果进行后续的业务处理。比如,在人脸识别的场景中,可以先通过头部姿态估计筛选出符合条件的人脸图像,再对筛选出的人脸图像进行识别;在增强现实(Augmented Reality,AR)交互场景中,可以对拍摄的人脸图像进行头部位姿估计,以便为用户提供更真实的虚拟特效(例如发卡等装饰品特效);在安全驾驶的检测场景中,可以对驾驶员的人脸图像进行头部位姿估计,判断驾驶员是否左顾右盼等。
其中,以安全驾驶的检测场景为例,随机智能座舱技术的发展,驾驶员监控系统(Driver Monitor System, DMS)由于其实用性和安全性成为了智能座舱必备技术之一。DMS在行车过程中实时地对驾驶员进行疲劳监测、注意力监测、危险驾驶行为监测,可以有效避免由驾驶员主观因素引起的交通事故。
在DMS中进行疲劳检测时,不仅要基于人脸特征判断眼睛睁闭状态和嘴部哈欠动作,还依赖头部姿态的角度范围综合判定驾驶员的专心程度以及是否在打瞌睡。另外,在DMS中进行分心检测中也会基于头部姿态初步判断驾驶员的低头扭头行为。因此,头部姿态估计成为DMS技术中不可或缺的部分。
发明内容
本公开提出了一种用于姿态估计的网络训练方法及装置。
根据本公开的一方面,提供了一种用于姿态估计的网络训练方法,包括:获取训练数据集;将所述训练数据集中的样本图像输入预设的特征提取网络,确定所述样本图像中目标对象的特征张量;根据所述目标对象的特征张量,对初始姿态网络进行训练,得到目标姿态网络,其中,所述目标姿态网络用于结合所述特征提取网络,确定待处理图像中目标对象的姿态信息。
在一种可能的实现方式中,根据所述目标对象的特征张量,对初始姿态网络进行训练,得到目标姿态网络,包括:根据目标对象的特征张量,对初始姿态网络进行多轮的迭代训练,得到多个备选姿态网络;在满足训练结束条件的情况下,从多个备选姿态网络中选择目标姿态网络,所述训练结束条件包括对所述初始姿态网络的迭代训练轮数大于或等于第一预设阈值,和/或,当前轮迭代训练的学习率小于第二预设阈值。
在一种可能的实现方式中,根据目标对象的特征张量,对初始姿态网络进行多轮的迭代训练,得到多个备选姿态网络,包括:对于所述初始姿态网络的任一轮的迭代训练,将所述目标对象的特征张量输入初始姿态网络,得到姿态预测结果;根据预设的姿态损失函数、所述姿态预测结果、所述训练数据集的标注信息,确定姿态损失,其中,所述姿态损失用于指示所述初始姿态网络对目标对象的姿态信息的检测误差;根据所述姿态损失,对初始姿态网络进行迭代训练,得到当前轮迭代训练对应的备选姿态网络。
在一种可能的实现方式中,所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,将所述目标对象的特征张量输入初始姿态网络,得到姿态预测结果,包括:将所述目标对象的特征张量输入第一网络,得到姿态预测结果,所述姿态预测结果包括所述第一网络预测的目标对象的旋转矩阵;所述预设的姿态损失函数包括第一损失函数,所述第一损失函数用于指示所述第一网络预测目标对象的旋转矩阵的检测误差,根据预设的姿态损失函数、所述姿态预测结果、所述训练数据集的标注信息,确定姿态损失,包括:将所述述第一网络预测的目标对象的旋转矩阵、所述目标对象对应的所述训练数据集的标注信息输入第一损失函数,确定姿态损失。
在一种可能的实现方式中,所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,以及预测目标对象的姿态角度的第二网络,将所述目标对象的特征张量输入初始姿态网络,得到姿态预测结果,包括:将所述目标对象的特征张量分别输入第一网络和第二网络,得到姿态预测结果,所述姿态预测结果包括所述第一网络预测的目标对象的旋转矩阵,以及所述第二网络预测的目标对象的姿态角度;所述预设的姿态损失函数包括第一损失函数与第二损失函数的乘积,所述第一损失函数用于指示所述第一网络预测目标对象的旋转矩阵的检测误差,所述第二损失函数用于指示所述第二网络预测的目标对象的姿态角度的检测误差,根据预设的姿态损失函数、所述姿态预测结果、所述训练数据集的标注信息,确定姿态损失,包括:将所述第一网络预测的目标对象的旋转矩阵、所述第二网络预测的目标对象的姿态角度、所述目标对象对应的所述训练数据集的标注信息输入所述预设的姿态损失函数,确定姿态损失。
在一种可能的实现方式中,所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,所述第一网络包括第一网络层、第二网络层、第三网络层;其中,所述第一网络层包括卷积核尺寸为第一预设尺寸的卷积单元、归一化单元、非线性激活单元;所述第二网络层包括卷积核尺寸为第二预设尺寸的深度可分离卷积单元、归一化单元、非线性激活单元,所述第二预设尺寸大于所述第一预设尺寸;所述第三网络层包括单位卷积单元。
在一种可能的实现方式中,所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,以及用于预测目标对象的姿态角度的第二网络;所述第一网络包括第一网络层、第二网络层、第三网络层,所述第二网络包括第四网络层、第五网络层、第六网络层、第七网络层;其中,所述第一网络层包括卷积核尺寸为第一预设尺寸的卷积单元、归一化单元、非线性激活单元;所述第二网络层包括卷积核尺寸为第二预设尺寸的深度可分离卷积单元、归一化单元、非线性激活单元,所述第二预设尺寸大于所述第一预设尺寸;所述第三网络层包括单位卷积单元;所述第四网络层包括卷积核尺寸为所述第一预设尺寸的卷积单元、归一化单元、非线性激活单元;所述第五网络层包括卷积核尺寸为所述第二预设尺寸的深度可分离卷积单元、归一化单元、非线性激活单元;所述第六网络层包括单位卷积单元、归一化单元、非线性激活单元;所述第七网络层包括单位卷积单元。
在一种可能的实现方式中,获取训练数据集,包括:获取第一样本集,所述第一样本集包括目标对象的姿态角度大于预设角度阈值的样本图像;获取第二样本集,所述第二样本集包括多种传感器在不同场景下采集的样本图像;对所述第一样本集和/或所述第二样本集进行数据集增强处理,得到第三样本集;根据所述第一样本集、所述第二样本集、所述第三样本,确定训练数据集。
根据本公开的一方面,提供了一种姿态估计方法,所述方法包括:获取待处理图像;将所述待处理图像输入预设的特征提取网络,得到所述待处理图像中目标对象的特征张量;将所述待处理图像中目标对象的特征张量输入目标姿态网络中处理,确定所述待处理图像的检测结果,所述检测结果包括所述目标对象的姿态信息;其中,所述目标姿态网络是根据上述的用于姿态估计的网络训练方法训练得到的。
根据本公开的一方面,提供了一种用于姿态估计的网络训练装置,包括:获取模块,用于获取训练数据集;确定模块,用于将所述训练数据集中的样本图像输入预设的特征提取网络,确定所述样本图像中目标对象的特征张量;训练模块,用于根据所述目标对象的特征张量,对初始姿态网络进行训练,得到目标姿态网络,其中,所述目标姿态网络用于结合所述特征提取网络,确定待处理图像中目标对象的姿态信息。
在一种可能的实现方式中,所述训练模块用于:根据目标对象的特征张量,对初始姿态网络进行多轮的迭代训练,得到多个备选姿态网络;在满足训练结束条件的情况下,从多个备选姿态网络中选择目标姿态网络,所述训练结束条件包括对所述初始姿态网络的迭代训练轮数大于或等于第一预设阈值,和/或,当前轮迭代训练的学习率小于第二预设阈值。
在一种可能的实现方式中,根据目标对象的特征张量,对初始姿态网络进行多轮的迭代训练,得到多个备选姿态网络,包括:对于所述初始姿态网络的任一轮的迭代训练,将所述目标对象的特征张量输入初始姿态网络,得到姿态预测结果;根据预设的姿态损失函数、所述姿态预测结果、所述训练数据集的标注信息,确定姿态损失,其中,所述姿态损失用于指示所述初始姿态网络对目标对象的姿态信息的检测误差;根据所述姿态损失,对初始姿态网络进行迭代训练,得到当前轮迭代训练对应的备选姿态网络。
在一种可能的实现方式中,所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,将所述目标对象的特征张量输入初始姿态网络,得到姿态预测结果,包括:将所述目标对象的特征张量输入第一网络,得到姿态预测结果,所述姿态预测结果包括所述第一网络预测的目标对象的旋转矩阵;所述预设的姿态损失函数包括第一损失函数,所述第一损失函数用于指示所述第一网络预测目标对象的旋转矩阵的检测误差,根据预设的姿态损失函数、所述姿态预测结果、所述训练数据集的标注信息,确定姿态损失,包括:将所述述第一网络预测的目标对象的旋转矩阵、所述目标对象对应的所述训练数据集的标注信息输入第一损失函数,确定姿态损失。
在一种可能的实现方式中,所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,以及预测目标对象的姿态角度的第二网络,将所述目标对象的特征张量输入初始姿态网络,得到姿态预测结果,包括:将所述目标对象的特征张量分别输入第一网络和第二网络,得到姿态预测结果,所述姿态预测结果包括所述第一网络预测的目标对象的旋转矩阵,以及所述第二网络预测的目标对象的姿态角度;所述预设的姿态损失函数包括第一损失函数与第二损失函数的乘积,所述第一损失函数用于指示所述第一网络预测目标对象的旋转矩阵的检测误差,所述第二损失函数用于指示所述第二网络预测的目标对象的姿态角度的检测误差,根据预设的姿态损失函数、所述姿态预测结果、所述训练数据集的标注信息,确定姿态损失,包括:将所述第一网络预测的目标对象的旋转矩阵、所述第二网络预测的目标对象的姿态角度、所述目标对象对应的所述训练数据集的标注信息输入所述预设的姿态损失函数,确定姿态损失。
在一种可能的实现方式中,所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,所述第一网络包括第一网络层、第二网络层、第三网络层;其中,所述第一网络层包括卷积核尺寸为第一预设尺寸的卷积单元、归一化单元、非线性激活单元;所述第二网络层包括卷积核尺寸为第二预设尺寸的深度可分离卷积单元、归一化单元、非线性激活单元,所述第二预设尺寸大于所述第一预设尺寸;所述第三网络层包括单位卷积单元。
在一种可能的实现方式中,所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,以及用于预测目标对象的姿态角度的第二网络;所述第一网络包括第一网络层、第二网络层、第三网络层,所述第二网络包括第四网络层、第五网络层、第六网络层、第七网络层;其中,所述第一网络层包括卷积核尺寸为第一预设尺寸的卷积单元、归一化单元、非线性激活单元;所述第二网络层包括卷积核尺寸为第二预设尺寸的深度可分离卷积单元、归一化单元、非线性激活单元,所述第二预设尺寸大于所述第一预设尺寸;所述第三网络层包括单位卷积单元;所述第四网络层包括卷积核尺寸为所述第一预设尺寸的卷积单元、归一化单元、非线性激活单元;所述第五网络层包括卷积核尺寸为所述第二预设尺寸的深度可分离卷积单元、归一化单元、非线性激活单元;所述第六网络层包括单位卷积单元、归一化单元、非线性激活单元;所述第七网络层包括单位卷积单元。
在一种可能的实现方式中,所述获取模块用于:获取第一样本集,所述第一样本集包括目标对象的姿态角度大于预设角度阈值的样本图像;获取第二样本集,所述第二样本集包括多种传感器在不同场景下采集的样本图像;对所述第一样本集和/或所述第二样本集进行数据集增强处理,得到第三样本集;根据所述第一样本集、所述第二样本集、所述第三样本,确定训练数据集。
根据本公开的一方面,提供了一种姿态估计装置,包括:待处理图像获取模块,用于获取待处理图像;特征提取模块,用于将所述待处理图像输入预设的特征提取网络,得到所述待处理图像中目标对象的特征张量;姿态估计模块,用于将所述待处理图像中目标对象的特征张量输入目标姿态网络中处理,确定所述待处理图像的检测结果,所述检测结果包括所述目标对象的姿态信息;其中,所述目标姿态网络是根据上述的用于姿态估计的网络训练方法训练得到的。
根据本公开的一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
在本公开实施例中,可将获取的训练数据集中的样本图像输入预设的特征提取网络(例如驾驶员监控系统DMS内置的关键点特征提取网络),以根据特征提取网络输出的样本图像中目标对象的特征张量,对初始姿态网络进行训练,得到目标姿态网络。通过这种方式训练所得的目标姿态网络,在推理阶段进行网络部署的过程中,可以在已经训练好的特征提取网络(例如驾驶员监控系统DMS内置的关键点特征提取网络)上增加目标姿态网络,不进行额外的数据预处理,直接复用已有的特征提取网络输出的特征张量,有利于降低部署中对计算资源的占用和相关算法库的依赖;而且,在网络训练过程中,不用再进行特征提取网络相关的训练,可提高训练效率,进一步减少对处理器算力资源和内存资源的消耗。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1示出根据本公开实施例的用于姿态估计的网络训练方法的流程图。
图2示出根据本公开实施例的姿态角度的示意图。
图3示出根据本公开实施例的一种初始姿态网络的示意图。
图4示出根据本公开实施例的另一种初始姿态网络的示意图。
图5示出根据本公开实施例的姿态估计方法确定的检测结果的示意图。
图6示出根据本公开实施例的用于姿态估计的网络训练装置的框图。
图7示出根据本公开实施例的一种电子设备的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
相关技术中,对于基于关键点技术进行目标对象(例如人脸)的姿态估计方案,例如包括SolvePnP算法(通过物理世界中的N个特征点与图像成像中的N个像点,计算出其投影关系,从而获得相机或物体姿态的方法)、三维形变模型算法(3D Morphable Models,3DMM)等,这些方法比较依赖于目标对象的关键点精度,并且,基于关键点的姿态估计算法会涉及到大量的矩阵计算、迭代计算,需要占用大量计算资源,功耗较大,可能会降低姿态估计的实时性。对于基于深度学习建立目标对象的姿态估计模型方案,除了部署关键点模型外,还要多部署一个用于姿态估计的模型,会增加对算力资源和内存的占用,影响姿态估计的推理速度。而对于仅基于轻量级目标对象的姿态估计方案,其精度不高,泛化能力较差。
有鉴于此,本公开的实施例可将获取的训练数据集中的样本图像,输入预设的特征提取网络,例如驾驶员监控系统DMS内置的关键点特征提取网络(也称为关键点提取网络的主干网络),可用于提取与目标对象关键点相关的特征,以根据特征提取网络输出的样本图像中目标对象的特征张量,对初始姿态网络进行训练,得到目标姿态网络。通过这种方式训练所得的目标姿态网络,在推理阶段进行网络部署的过程中,可以在已经训练好的特征提取网络(例如驾驶员监控系统DMS内置的关键点特征提取网络)上增加目标姿态网络,不进行额外的数据预处理,直接复用已有的特征提取网络输出的特征张量,有利于降低部署中对计算资源的占用和相关算法库的依赖;而且,在网络训练过程中,不用再进行特征提取网络相关的训练,可提高训练效率,进一步减少对处理器算力资源和内存资源的消耗。
图1示出根据本公开实施例的用于姿态估计的网络训练方法的流程图,如图1所示,所述用于姿态估计的网络训练方法包括:在步骤S11中,获取训练数据集。
在步骤S12中,将所述训练数据集中的样本图像输入预设的特征提取网络,确定所述样本图像中目标对象的特征张量,所述特征提取网络的网络参数保持固定。
在步骤S13中,根据所述目标对象的特征张量,对初始姿态网络进行训练,得到目标姿态网络,其中,所述目标姿态网络用于结合所述特征提取网络,确定待处理图像中目标对象的姿态信息。
在一种可能的实现方式中,所述用于姿态估计的网络训练方法可以由终端设备或服务器等电子设备执行,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等,所述方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。或者,可通过服务器执行所述用于姿态估计的网络训练方法。在一个示例中,该用于姿态估计的网络训练方法可以应用于云端服务器或本地服务器,云端服务器可以为公有云服务器,也可以为私有云服务器,根据实际情况灵活选择即可。
在一种可能的实现方式中,本公开实施例中的目标对象可以是各种需要确定其姿态的对象,比如,可以是人脸、肢体或者人体的其他部位,也可以是其他与物体相关的标识物、标志物等各种对象。为了便于说明,后续各公开实施例均以目标对象为人头为例进行说明,目标对象为其他对象的情况可以根据后续各公开实施例进行灵活扩展,本公开对此不作限制。
在一种可能的实现方式中,可在步骤S11中,获取训练数据集。所述训练数据集可包括大量(例如几百万)的用于训练姿态网络的样本图像,每个样本图像可对应一个标注信息,用于指示样本图像中目标对象的姿态信息,例如可包括目标对象的旋转矩阵和/或姿态角度。其中,标注信息可包括文本标注、符号标注、数字标注、图形标注等各种形式,本公开对此不作具体限制。
在步骤S11中获取到训练数据集,在步骤S12中,可获取预设的训练好的特征提取网络,并冻结该特征提取网络的网络参数,将训练数据集中的样本图像输入该特征提取网络,对样本图像中目标对象进行特征提取,确定样本图像中目标对象的特征张量。目标对象的特征张量可用于指示目标对象的特征,例如特征张量可以是携带有目标对象关键点信息的多维张量,本公开对特征张量的尺寸和形式不作具体限制。
其中,冻结特征提取网络的网络参数,也即使特征提取网络的网络参数保持固定。这样,对于包括了预设的特征提取网络的姿态估计网络,由于特征提取网络的网络参数保持固定(特征提取网络的网络参数不用再训练),将训练数据集输入至姿态估计网络,对姿态估计网络进行训练,实质上是利用固定了网络参数的特征提取网络所输出的特征张量,对初始姿态网络进行训练,可更高效的复用已有的训练好的特征提取网络,有效减少姿态估计网络中待调整的参数量,有利于提高训练效率,进一步减少对处理器算力资源和内存资源的消耗。
示例性地,在驾驶员监控系统DMS场景下,目标对象为人头,由于头部姿态可由人脸关键点进行估计计算,可以复用驾驶员监控系统DMS的关键点特征提取网络,将训练数据集中的样本图像输入DMS系统的关键点特征提取网络,对样本图像中人脸进行特征提取,确定样本图像中人脸的特征张量。其中,用于对人脸的关键点进行特征提取的特征提取网络可以根据实际情况灵活选择,任何训练好的可以对人脸图像进行特征提取的神经网络,均可以作为步骤S12的实现方式,本公开对此不作限制。
示例性地,预设的特征提取网络可以是任意具有目标对象的关键点的特征提取功能的神经网络,其实现形式在本公开实施例中不作限制。预设的特征提取网络可以是常见的各类训练好的神经网络模型,在一种可能的实现方式中,预设的特征提取网络可以包括下述至少一种:卷积神经网络(Convolutional Neural Networks,CNN)、循环神经网络(Recurrent Neural Network,RNN)、反向传播神经网络(Back Propagation,BP)、骨干神经网络(Backbone Neural Network)等。
示例性地,预设的特征提取网络可以通过不同的卷积层、池化层、分类层或是其他各类网络层,以任意形式构成的具有对图像中目标对象的关键点进行特征提取功能的神经网络。
应当理解,上述特征提取网络的网络结构仅为一种示例,其具体的网络结构可以按照实际情况确定,在此不再赘述,上述示例也不构成对本公开实施例的限定。
在步骤S12可以利用预设的特征提取网络,确定了样本图像中目标对象的特征张量,可在步骤S13中,可以将数据集中的每一个样本图像对应的特征张量,单独输入初始姿态网络,对初始姿态网络进行训练,得到训练好的目标姿态网络;也可以分批的将多个样本图像对应的多个特征张量,以批(batch)数据方式输入初始姿态网络,对初始姿态特征检测网络进行训练,得到训练好的目标姿态网络,本公开对此不作限制。其中,可以根据初始姿态网络的预测结果,以及训练集中样本图像的标注信息,确定初始姿态网络的误差损失,从而根据初始姿态网络的误差损失对初始姿态网络进行训练,以得到目标姿态网络。
示例性地,在对初始姿态网络训练之前,可以先构建姿态网络。姿态网络可以通过不同的卷积层、池化层、分类层或是其他各类网络层,以任意形式构成的具有姿态估计功能的神经网络。在一种可能的实现方式中,姿态网络可以是轻量级网络,其网络规模小于预设规模;姿态网络的网络规模可以包括姿态网络的网络参数数量、姿态网络的层数以及姿态网络的网络层的通道数量中的至少一种。例如,可以是姿态网络的网络参数数量、网络层数和通道数量均小于预设的规模阈值。具体情况可以根据实际情况灵活确定,本公开对此不作具体限制。
构建好姿态网络,可以对姿态网络的网络参数进行初始化处理(例如将网络参数设置为预设阈值范围内的随机数值),得到初始姿态网络。然后,可以根据目标对象的特征张量,对初始姿态网络进行训练,不断调整初始姿态网络的网络参数,直至训练结束,得到目标姿态网络。
示例性地,训练好的目标姿态网络可用于结合预设的特征提取网络,确定待处理图像中目标对象的姿态信息。例如,在驾驶员监控系统DMS场景下,驾驶员监控系统DMS可以利用自身的关键点特征提取网络,提取驾驶位人脸的特征张量,并将驾驶位人脸的特征张量输入训练好的目标姿态网络中处理,确定驾驶员头部的姿态信息。
示例性地,姿态信息可以包括姿态角度,图2示出根据本公开实施例的姿态角度的示意图,如图2所示,假设目标对象为人体的头部,头部的姿态角度可包含三个角度,为绕空间x轴旋转的俯仰角(pitch)、绕空间y轴旋转的偏航角(yaw)和绕空间z轴旋转的翻滚角(roll),在空间立体几何中,x轴、y轴和z轴相互垂直。
示例性地,姿态信息也可以包括旋转矩阵(例如,3×3的矩阵),姿态角度和旋转矩阵可以进行相互转换。例如,假设目标对象的姿态角度θ=[θx, θy, θz],其中,θx表示目标对象的俯仰角,θy表示目标对象的偏航角,θz表示目标对象的翻滚角。旋转矩阵R(θx, θy, θz)可以通过姿态角度θ=[θx, θy, θz]表示,即:
类似的,在已知目标对象的旋转矩阵的情况下,可以通过反解公式(1),得到目标对象的姿态角度,此处不再赘叙。
通过步骤S11~S13,可将获取的训练数据集中的样本图像输入预设的特征提取网络(例如驾驶员监控系统DMS内置的关键点特征提取网络),以根据特征提取网络输出的样本图像中目标对象的特征张量,对初始姿态网络进行训练,得到目标姿态网络。通过这种方式训练所得的目标姿态网络,在推理阶段进行网络部署的过程中,可以在已经训练好的特征提取网络(例如驾驶员监控系统DMS内置的关键点特征提取网络)上增加目标姿态网络,不进行额外的数据预处理,直接复用已有的特征提取网络输出的特征张量,有利于降低部署中对计算资源的占用和相关算法库的依赖;而且,在网络训练过程中,不用再进行特征提取网络相关的训练,可提高训练效率,进一步减少对处理器算力资源和内存资源的消耗。
下面对本公开的实施例的用于姿态估计的网络训练方法进行展开说明。
在一种可能的实现方式中,步骤S11获取训练数据集,可包括:获取第一样本集,所述第一样本集包括目标对象的姿态角度大于预设角度阈值的样本图像;获取第二样本集,所述第二样本集包括多种传感器在不同场景下采集的样本图像;对所述第一样本集和/或所述第二样本集进行数据集增强处理,得到第三样本集;根据所述第一样本集、所述第二样本集、所述第三样本,确定训练数据集。
示例性地,可以将已公开的一个或多个数据集(含有丰富的大角度头部姿态数据集300W-LP)作为第一样本集,在第一样本集中,可包含各种角度的样本图像,不仅包括姿态角度小于或等于预设角度阈值(例如15°)的图像,还包括了姿态角度大于预设角度阈值(例如15°)的图像。
其中,如果样本图像缺少与姿态信息相关的标注信息,例如包括目标对象的旋转矩阵和/或姿态角度,可以对样本图像的目标对象进行相应的标注;也可以在标注信息为姿态角度的情况下,根据姿态角度生成对应的旋转矩阵,将旋转矩阵也作为标注信息进行保存;或者,还可以在标注信息为旋转矩阵的情况下,根据旋转矩阵生成对应的姿态角度,将姿态角度也作为标注信息进行保存。
示例性地,为了提高训练数据集中样本图像多样性,以利于提升后续训练模型的泛化性和准确性,第二样本集可包括多种传感器在不同场景下采集的样本图像,作为样本图像采集设备的传感器可包括深度摄像头、摄像头阵列、单目摄像头、摄像头、红外摄像头、CCD(电荷藕合)图像传感器、CMOS(互补金属氧化物导体)图像传感器等等,拍摄场景可以包括现实世界中的任意自然场景、人为布置的实验场景、不同时间段不同光线下场景等等,其中,自然场景即在现实世界(例如工作、学习、生活)中的任意场景,例如包括在公园、办公室、学校、商场等环境下拍摄的图像,自然场景下拍摄的图像的背景可以是多种多样的。本公开对样本图像的采集设备、拍摄角度、以及拍摄场景不作限制。在示例中,第二样本集还可以包括已公开的一个或多个包含数据具有多样性的已有数据集(例如人脸识别数据MS1M),本公开对此不作具体限制。
其中,由于多种传感器在不同场景下采集的样本图像没有目标对象(例如头部)姿态的标注信息,可以使用由第一样本集训练所得的大模型姿态角度标注模型(例如6DRepNet模型),对样本图像进行姿态角度(俯仰角、偏航角、翻滚角)的标注。标注过程中,可对待标注的样本图像进行随机偏移、随机缩放N次(例如N=12,本公开对N的取值不作限制),生成N组姿态角度。可去除N组姿态角度中的最大值和最小值,并将剩余的姿态角度求平均,得到样本图像的姿态角度。然后,可以从中抽取P张(例如P=100万)姿态角度大于预设角度阈值(例如15°)的样本图像和P张姿态小于预设角度阈值的样本图像,再根据姿态角度生成相应的旋转矩阵,将旋转矩阵也作为标注信息进行保存,得到第二样本集。通过设置预设角度阈值,可以平衡第二样本集选取的数据分布范围。
示例性地,还对第一样本集和/或第二样本集进行数据集增强处理,如 :图像随机平移、随机缩放、随机色彩变化、随机通道转换、灰度变化、水平翻转等,以进一步增加训练数据集的多样性,提升模型的泛化性。
例如,可以加载第一样本集和/或第二样本集中样本图像的图像路径、以及样本图像对应的标注信息,该标注信息可包括标注的目标对象的姿态角度θgt和/或旋转矩阵Rgt。可以对第一样本集和/或第二样本集中样本图像进行在线的数据集增强处理,如:0.5的概率随机色彩变化、0.3的概率随机通道转换或灰度变化、0.5的概率水平翻转、0.4的概率进行图像随机平移或随机缩放等,得到第三样本集。应当理解,本公开对数据集增强处理的具体方法不作限制。
通过这种方式,可以构建出含有丰富的大角度目标对象的大规模训练数据集,有利于后续可以使用多种大规模数据训练,使训练好的目标姿态网络具有更好的准确性和泛化性。
在步骤S11构建好训练数据集,可以将步骤S12中预设的冻结了网络参数的特征提取网络,和网络参数需要优化的初始姿态网络进行串联处理,即将特征提取网络的输出与初始姿态网络的输入相连接,构成姿态估计网络。由于姿态估计网络中特征提取网络部分冻结了网络参数,将训练数据集输入至姿态估计网络,对姿态估计网络进行训练,实质上是利用冻结了网络参数的特征提取网络所输出的特征张量,对初始姿态网络进行训练。
所以,在步骤S12将训练数据集中的样本图像输入预设的特征提取网络,确定了样本图像中目标对象的特征张量,可在步骤S13中,根据目标对象的特征张量,对初始姿态网络进行训练,得到目标姿态网络。
在一种可能的实现方式中,为了提高训练的精准度,得到精度更高的目标姿态网络,步骤S13可包括:根据目标对象的特征张量,对初始姿态网络进行多轮的迭代训练,得到多个备选姿态网络。在满足训练结束条件的情况下,从多个备选姿态网络中选择目标姿态网络。其中,每轮的迭代训练可对应一个备选姿态网络,每轮训练出的备选姿态网络的网络参数可能相同也可能不同。所述训练结束条件可包括对初始姿态网络的迭代训练轮数大于或等于第一预设阈值,和/或,当前轮迭代训练的学习率小于第二预设阈值,本公开对第一预设阈值和第二预设阈值的具体取值不作限制。
示例性地,假设训练数据集中包括了X张样本图像,在每轮的迭代训练过程中,可以将训练数据集中的全部的X张样本图像分别输入特征提取网络,利用训练数据集中的全部的X张样本图像对应的特征张量,对初始姿态网络进行训练,得到每轮对应的备选姿态网络。或者,在每轮的迭代训练过程中,还可以从训练数据集的X张样本图像中随机选择Y张(Y<X)样本图像,利用训练数据集中部分的样本图像(例如Y张样本图像)对应的特征张量,对初始姿态网络进行训练,得到每轮对应的备选姿态网络。
其中,在对初始姿态网络进行多轮的迭代训练过程中,可以并行地对初始姿态网络进行多轮的迭代训练,也可以串行地(一轮接一轮)对初始姿态网络进行多轮的迭代训练,本公开对此不作限制。
在实际的应用中,可以将初始姿态网络的网络参数作为优化参数,将初始姿态网络的学习率设为10-3,当初始姿态网络的输出的姿态损失(可以由预设的姿态损失函数、初始姿态网络预测的姿态预测结果,以及训练数据集的标注信息所确定)连续30轮不再下降时进行学习率的衰减,学习率衰减率为0.1。应当理解,上述设置的各项数值作为示例,可根据实际的应用场景进行调整,本公开对次不作限制。
在满足训练结束条件的情况下,例如初始姿态网络的迭代训练轮数大于或等于第一预设阈值(例如200),和/或,当前轮迭代训练的学习率小于第二预设阈值(例如10-6),可以结束训练,从多个备选姿态网络中选择目标姿态网络。其中,可以从多个备选姿态网络中选择姿态损失最小的备选姿态网络作为目标姿态网络,也可以将相同的测试图像输入多个备选姿态网络,将处理速度最快和/或姿态估计最准确的备选姿态网络作为目标姿态网络,本公开对从多个备选姿态网络中选择目标姿态网络的方法不作具体限制。
通过这种方式,可以提高对训练数据集的利用率,可以将训练数据集中同一样本对象对应的特征张量,在初始姿态网络中传递多次(每轮可能会传递一次),得到多个备选姿态网络,并将最优的备选姿态网络作为目标姿态网络,进一步提高了目标姿态网络的准信性。
在一种可能的实现方式中,对于所述初始姿态网络的任一轮的迭代训练,将所述目标对象的特征张量输入初始姿态网络,得到姿态预测结果;根据预设的姿态损失函数、所述姿态预测结果、所述训练数据集的标注信息,确定姿态损失,其中,所述姿态损失用于指示所述初始姿态网络对目标对象的姿态信息的检测误差;根据所述姿态损失,对初始姿态网络进行迭代训练,得到当前轮迭代训练对应的备选姿态网络。
示例性地,对于初始姿态网络的任一轮(例如当前轮)的迭代训练,可以从训练数据集(共X张样本图像)中随机选取M张(M≤X)样本图像,以及每张样本图像对应的标注信息,可包括:姿态角度θgt和/或旋转矩阵Rgt。
可以将M张样本图像送入冻结了网络参数的特征提取网络中,得到M张样本图像对应的特征张量,并将M张样本图像对应的特征张量输入初始姿态网络,得到姿态预测结果,可包括预测的旋转矩阵Rp和/或姿态角度θp。
可以将姿态预测结果中包括的旋转矩阵Rp、样本图像的标注信息包括的旋转矩阵Rgt,输入预设的姿态损失函数,并将姿态损失函数的函数值确定为姿态损失。该姿态损失用于衡量姿态预测结果中包括的旋转矩阵Rp与样本图像的标注信息包括的旋转矩阵Rgt的偏差,姿态预测结果中包括的旋转矩阵Rp越接近样本图像的标注信息包括的旋转矩阵Rgt,姿态损失越小。
类似地,也可以将姿态预测结果中包括的姿态角度θp、样本图像的标注信息包括的姿态角度θgt,输入预设的姿态损失函数,并将姿态损失函数的函数值确定为姿态损失。该姿态损失用于衡量姿态预测结果中包括的姿态角度θp与样本图像的标注信息包括的姿态角度θgt的偏差,姿态预测结果中包括的姿态角度θp越接近样本图像的标注信息包括的姿态角度θgt,姿态损失越小。
应当理解,考虑到姿态角度与旋转矩阵之间可以相互转换,也可以将姿态预测结果中包括的旋转矩阵Rp、样本图像的标注信息包括的姿态角度θp;或者,姿态预测结果中包括的姿态角度θp、样本图像的标注信息包括的旋转矩阵Rgt,输入预设的姿态损失函数以确定为姿态损失,本公开对确定姿态损失的具体方式不作限制。
根据姿态损失,对初始姿态网络进行迭代训练,直至初始姿态网络收敛,得到该轮(例如当前轮)迭代训练对应的备选姿态网络。
其中,可以通过梯度下降法来调节初始姿态网络的网络参数,使得网络参数优化,提升分类准确率;其中,梯度下降法可以采用随机梯度下降法(Stochastic GradientDescent,SGD)、批量梯度下降法(Batch Gradient Descent,BGD)或者小批量梯度下降法(Mini Batch Gradient Descent,MBGD),本公开对梯度下降法的选取类型不做限定。
其中,在初始姿态网络输出的姿态预测结果和样本图像的标注信息相差比较大的情况下,可以利用反向传播,逐层求出姿态损失函数对初始姿态网络中各层的网络参数的偏导数,构成姿态损失函数对各层网络参数的梯度,直到初始姿态网络输出的姿态预测结果和样本图像的标注信息的偏差达到预定的目标范围为止。
通过这种方式,可以更准确更高效地得到每轮迭代训练对应的备选姿态网络。
下面以两种不同结构的姿态网络为例,对本公开实施例的姿态网络的训练过程进行说明。
在一种可能的实现方式中,所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,将所述目标对象的特征张量输入初始姿态网络,得到姿态预测结果,包括:将所述目标对象的特征张量输入第一网络,得到姿态预测结果,所述姿态预测结果包括所述第一网络预测的目标对象的旋转矩阵。所述预设的姿态损失函数包括第一损失函数,所述第一损失函数用于指示第一网络预测目标对象的旋转矩阵的检测误差,根据预设的姿态损失函数、所述姿态预测结果、所述训练数据集的标注信息,确定姿态损失,包括:将所述述第一网络预测的目标对象的旋转矩阵、所述目标对象对应的所述训练数据集的标注信息输入第一损失函数,确定姿态损失。
在一种可能的实现方式中,所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,所述第一网络包括第一网络层、第二网络层、第三网络层;其中,所述第一网络层包括卷积核尺寸为第一预设尺寸的卷积单元、归一化单元、非线性激活单元;所述第二网络层包括卷积核尺寸为第二预设尺寸的深度可分离卷积单元、归一化单元、非线性激活单元,所述第二预设尺寸大于所述第一预设尺寸;所述第三网络层包括单位卷积单元。
在示例中,可以将目标对象的特征张量输入第一网络层,对特征提取网络输出的特征张量进行融合计算,得到第一网络层的处理结果。可以将第一网络层输出的处理结果,输入第二网络层,通过第二网络层融合第一网络层输出的处理结果的各通道的空间位置信息,得到第二网络层的处理结果。可以将第二网络层输出的处理结果,输入第三网络层,通过第三网络层调整通道数,得到预测的目标对象的旋转矩阵。
其中,卷积单元用于为输入数据提供卷积核尺寸为第一预设尺寸的卷积运算,可根据实际的应用场景设置第一预设尺寸的取值,本公开对此不作限制。在目标对象的特征张量是多通道的情况下,可通过卷积单元的卷积核与特征张量的每个通道分别进行卷积,并将各个通道的卷积结果相加,得到卷积结果。
深度可分离卷积单元用于为输入数据提供卷积核尺寸为第二预设尺寸的深度可分离卷积运算,在第二预设尺寸大于第一预设尺寸的情况下,可根据实际的应用场景设置第二预设尺寸的取值,本公开对此不作限制。该深度可分离卷积可分为逐通道卷积和逐点卷积两个过程,可通过计算不同通道同一位置的元素的加权和,融合不同通道的信息。深度可分离卷积通过分解卷积操作,有效地减少了参数数量和计算成本。
归一化单元用于约束数据的分布,从而增强网络的泛化能力,归一化单元可以是批归一化单元(Batch Norm,BN)、层归一化(Layer Norm,LN)、实例归一化(Instance Norm,IN)、群组归一化(Group Norm,GN)等,本公开对此不作限制。
非线性激活单元用于给初始姿态网络中加入一些非线性特征,抑制噪声,使初始姿态网络更容易拟合数据,该非线性激活单元可以是线性整流函数(Rectified LinearUnit,ReLu)、s型激活函数(Sigmoid)、双曲正切函数(Tanh)等,本公开对此不作限制。
本公开实施例的初始姿态网络的网络结构简单,易于实现,可大幅降低对硬件资源的消耗。
示例性地,图3示出根据本公开实施例的一种初始姿态网络的示意图,如图3所示,可以将用于预测目标对象的旋转矩阵Rp的第一网络作为初始姿态网络。
第一网络可以由三个网络层组成,第一网络层31可包括卷积核为3×3的卷积单元(Convolution)、批归一化单元(Batch Norm,BN)、非线性激活单元(例如ReLU),第一网络层31可用于对特征提取网络输出的特征张量f(例如在长度维度和宽度维度分别具有7个元素的特征张量)进行融合计算,从中提取对目标对象姿态有用的信息。应当理解,卷积核尺寸为3×3仅作为第一预设尺寸的一个示例,本公开对第一预设尺寸的取值不作具体限制。
第二网络层32,可包括卷积核为7×7的深度可分离卷积单元(GDConv)、批归一化单元(Batch Norm,BN)、非线性激活单元(例如ReLU),可用于融合特征各层的位置信息,相比卷积单元参数少推理速度快。应当理解,卷积核尺寸为7×7仅作为第二预设尺寸的一个示例,本公开对第二预设尺寸的取值不作具体限制。
第三网络层33,可包括卷积核为1×1的卷积单元,也即单位卷积单元,用于调整通道数,输出6个数值用于姿态估计,由于旋转矩阵的正交特性,可以通过格拉姆—施密特(Gram-Schmidt)正交化方法进行奇异值分解,使用6个参数就可以表示旋转矩阵Rp。
通过统计,第一网络的网络参数量为0.302M,比相关技术中的轻量级网络模型MobileNetv1-0.5的网络参数量0.476M还少,乘加计算量为28.94M,因此,第一网络对硬件资源消耗非常小。在后续实际部署中,第一网络的中间层变量可以为两个特征张量数据,对于硬件资源内存的占用也非常微小。
如图3所示,可以获取特征提取网络输出的样本图像中目标对象的特征张量f,并将目标对象的特征张量f输入第一网络,得到姿态预测结果,该姿态预测结果可包括第一网络预测的目标对象的旋转矩阵Rp。
可以将第一损失函数Lossgeodesic作为姿态损失函数Losspose,可以表示为:
在公式(2)中,Rp为第一网络预测的目标对象的旋转矩阵,Rgt为目标对象对应的样本图像的标注信息所包含的旋转矩阵,M表示数据的批量数(例如每批次可向第一网络输入M个特征张量f),m代表批量数据中的第m个数据,tr表示矩阵的迹运算。其中,由于姿态角度和旋转矩阵可以进行相互转换,如果样本图像中的标注信息只含有姿态角度θgt,可以根据上文介绍的公式(1),由姿态角度θgt生成旋转矩阵Rgt。
由于旋转矩阵的正交特性可以通过格拉姆—施密特(Gram-Schmidt)正交化方法进行奇异值分解,即使用6个参数表示旋转矩阵Rp。在这种情况下,第一网络可通过预测6个参数就可以表示预测的旋转矩阵Rp,可以表示为:
其中,a1、a2、b1、b2、b3∈R1×3也即,a1、a2、b1、b2、b3均为三行一列的向量,[a1 a2]为三行两列的向量,具有6个参数,也即第一网络预测的6个参数,[b1 b2 b3]为三行三列的旋转矩阵Rp,这样通过转换关系FGS,可以将第一网络预测的6个参数[a1 a2]转换为3×3的旋转矩阵Rp。a1、a2与b1、b2、b3向量间的转换关系FGS见公式(4),即:
其中,表示范数运算,点乘·为内积运算,叉乘×为外积运算。这样,在第一网络输出的包含6个参数的[a1 a2],再通过少量的转换关系FGS计算,可生成包含9个参数的旋转矩阵Rp。
通过这种方式,由于目标对象的姿态角度的变化与目标对象姿态的旋转矩阵是直接相关的,相比直接回归目标对象的包含3个参数的姿态角度,将第一损失函数Lossgeodesic作为第一损失函数,通过预测包含9个参数的旋转矩阵,准确性更高且网络更易收敛。
在一种可能的实现方式中,所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,以及预测目标对象的姿态角度的第二网络,将所述目标对象的特征张量输入初始姿态网络,得到姿态预测结果,包括:将所述目标对象的特征张量分别输入第一网络和第二网络,得到姿态预测结果,所述姿态预测结果包括所述第一网络预测的目标对象的旋转矩阵,以及所述第二网络预测的目标对象的姿态角度。
所述预设的姿态损失函数包括第一损失函数与第二损失函数的乘积,所述第一损失函数用于指示所述第一网络预测目标对象的旋转矩阵的检测误差,所述第二损失函数用于指示第二网络预测的目标对象的姿态角度的检测误差,将所述第一网络预测的目标对象的旋转矩阵、所述第二网络预测的目标对象的姿态角度、所述目标对象对应的所述训练数据集的标注信息输入所述预设的姿态损失函数,确定姿态损失。
在一种可能的实现方式中,所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,以及用于预测目标对象的姿态角度的第二网络;所述第一网络包括第一网络层、第二网络层、第三网络层,所述第二网络包括第四网络层、第五网络层、第六网络层、第七网络层。
其中,所述第一网络层包括卷积核尺寸为第一预设尺寸的卷积单元、归一化单元、非线性激活单元;所述第二网络层包括卷积核尺寸为第二预设尺寸的深度可分离卷积单元、归一化单元、非线性激活单元,所述第二预设尺寸大于所述第一预设尺寸;所述第三网络层包括单位卷积单元;所述第四网络层包括卷积核尺寸为第一预设尺寸的卷积单元、归一化单元、非线性激活单元;所述第五网络层包括卷积核尺寸为第二预设尺寸的深度可分离卷积单元、归一化单元、非线性激活单元,所述第二预设尺寸大于所述第一预设尺寸;所述第六网络层包括单位卷积单元、归一化单元、非线性激活单元;所述第七网络层包括单位卷积单元。
可知,第一网络中的第一网络层和第二网络中的第四网络层的网络结构相同,第一网络中的第二网络层和第二网络中的第五网络层的网络结构相同,第一网络中的第三网络层和第二网络中的第七网络层的网络结构相同。
所以,对比第一网络,本公开实施例的第二网络增加了一个第六网络层,通过这种方式,可以更高效更便捷的构建出第二网络,第二网络的结构简单,易于实现,大幅降低对硬件资源的消耗。其中,由第一网络和第二网络构成的初始姿态网络的卷积单元、深度可分离卷积单元、归一化单元、非线性激活单元的介绍可以参考上文,此处不再赘述。
在示例中,可以将目标对象的特征张量输入第一网络层,对特征提取网络输出的特征张量进行融合计算,得到第一网络层的处理结果。可以将第一网络层输出的处理结果,输入第二网络层,通过第二网络层融合第一网络层输出的处理结果的各通道的空间位置信息,得到第二网络层的处理结果。可以将第二网络层输出的处理结果,输入第三网络层,通过第三网络层调整通道数,得到预测的目标对象的旋转矩阵。
同步地,可以将目标对象的特征张量输入第四网络层,对特征提取网络输出的特征张量进行融合计算,得到第四网络层的处理结果。可以将第四网络层输出的处理结果,输入第五网络层,通过第五网络层融合第四网络层输出的处理结果的各通道的空间位置信息,得到第五网络层的处理结果。可以将第五网络层输出的处理结果,输入第六网络层,通过第六网络层进一步增加第二网络的非线性拟合能力,得到第六网络层的处理结果。可以将第六网络层输出的处理结果,输入第七网络层,通过第七网络层调整通道数,得到预测的目标对象的姿态角度。
本公开实施例的初始姿态网络的网络结构简单,易于实现,可大幅降低对硬件资源的消耗。
示例性地,图4示出根据本公开实施例的另一种初始姿态网络的示意图,如图4所示,初始姿态网络可包括用于预测目标对象的旋转矩阵Rp的第一网络,以及用于预测目标对象的姿态角度θp的第二网络。其中,第一网络的介绍见上文图3部分的相关描述,此处不再赘叙。
示例性地,第二网络可以由第四网络层41、第五网络层42、第六网络层43、第七网络层44这四个网络层组成,第四网络层41可包括卷积核为3×3的卷积单元(Convolution)、批归一化单元(Batch Norm,BN)、非线性激活单元(例如ReLU),可用于对特征提取网络输出的特征张量f(例如在长度维度和宽度维度分别具有7个元素的特征张量)进行融合计算,从中提取对目标对象姿态有用的信息。应当理解,卷积核尺寸为3×3仅作为第一预设尺寸的一个示例,本公开对第一预设尺寸的取值不作具体限制。
第五网络层42,可包括卷积核(kernel)为7×7的深度可分离卷积单元(GDConv)、批归一化单元(Batch Norm,BN)、非线性激活单元(例如ReLU),可用于融合特征各层的位置信息,相比卷积单元参数少推理速度快。应当理解,卷积核尺寸为7×7仅作为第二预设尺寸的一个示例,本公开对第二预设尺寸的取值不作具体限制。
第六网络层43,可包括卷积核为1×1的卷积单元(Convolution)、批归一化单元(Batch Norm,BN)、非线性激活单元(例如ReLU),可用于增加第二网络的非线性拟合能力。
第七网络层44,可包括卷积核为1×1的卷积单元,用于调整通道数,输出姿态角度。
如图4所示,可以获取特征提取网络输出的样本图像中目标对象的特征张量f,并将目标对象的特征张量f输入第一网络和第二网络,得到姿态预测结果,该姿态预测结果包括第一网络预测的目标对象的旋转矩阵Rp,以及第二网络预测的目标对象的姿态角度θp。
对于如图4所示的初始姿态网络,姿态损失函数Losspose可以表示为:
在公式(5)中,M表示数据的批量数(例如每批次可分别向第一网络和第二网络输入M个特征张量f),m代表批量数据中的第m个数据,Lossgeodesic代表第一损失函数,可以参见公式(2),Lossaux代表第二损失函数,可以表示为:
在公式(6)中,K=3为姿态角的数量,为第二网络预测的目标对象的第k个姿态角度,例如,第一个(k=1)的/>为预测的俯仰角,第二个(k=2)的/>为预测的偏航角,第三个(k=3)的/>为预测的翻滚角;/>为目标对象对应的标注信息包含的第k个姿态角度,例如,第一个(k=1)的/>为样本图像中标注的俯仰角,第二个(k=2)的/>为样本图像中标注的偏航角,第三个(k=3)的/>为样本图像中标注的翻滚角。
考虑到在训练数据集中,目标对象的姿态角度服从正态分布,即姿态角度越大数据量越少。有鉴于此,可以引入起辅助作用的第二网络和其对应的第二损失函数Lossaux,这样,在训练期间,可以给予第二网络较小的学习率,第二网络便更容易收敛小角度的样本图像,对于大角度的样本图像的预测偏差较大,对应的第二损失函数Lossaux的损失值也越大。因此,将第二损失函数Lossaux与第一损失函数Lossgeodesic相乘,所得的姿态损失函数Losspose,用作初始姿态网络的训练,能够自适应地增大优化过程中的难例样本(例如目标对象存在大角度的样本图像)在损失中的权重比例,提升训练好的目标姿态网络对大角度图像的姿态估计精度,进一步提升目标姿态网络对目标对象姿态预测的准确性。
在得到训练好的目标姿态网络,可以将该目标姿态网络与预设的特征提取网络配合使用,确定待处理图像中目标对象的姿态信息。
在一种可能的实现方式中,本公开的实施例还提供了一种姿态估计方法,可包括:获取待处理图像;将所述待处理图像输入预设的特征提取网络,得到所述待处理图像中目标对象的特征张量;将所述待处理图像中目标对象的特征张量输入目标姿态网络中处理,确定所述待处理图像的检测结果,所述检测结果包括所述目标对象的姿态信息;其中,所述目标姿态网络是根据上文步骤S11~步骤S13介绍的用于姿态估计的网络训练方法训练得到的。
其中,待处理图像的获取方式在本公开实施例中不作限定,比如可以对存储有待处理图像的数据库进行读取来得到待处理图像,或是在某些场景下对目标对象进行采集来得到待处理图像,亦或是从包含有目标对象的视频中进行片段截取或采样等方式来得到待处理图像等,具体如何获取可以根据实际情况灵活决定。
可以将获取到的待处理图像输入预设的特征提取网络(例如DMS系统内置的关键点特征提取网络,可用于提取与目标对象关键点相关的特征),得到待处理图像中目标对象的特征张量,并将该特征张量输入利用上文步骤S11~步骤S13介绍方法训练的目标姿态网络中处理,确定待处理图像的检测结果,该检测结果包括所述目标对象的姿态信息。
图5示出根据本公开实施例的姿态估计方法确定的检测结果的示意图,如图5所示,目标对象为人脸,待处理图像为人脸图像,人脸图像中的坐标轴对人脸的姿态角度进行了可视化显示。其中,前两张人脸图像为RGB图像,中间两张为近红外人脸图像,最后一张为卡通图像,可以看出本本公开实施例的姿态估计方法不仅具有较高的精度,而且在不同场景下具有较好的泛化性。
综上所述,本公开的实施例可将获取的训练数据集中的样本图像,输入预设的特征提取网络(例如驾驶员监控系统DMS内置的关键点特征提取网络,可用于提取与目标对象关键点相关的特征),以根据特征提取网络输出的样本图像中目标对象的特征张量,对初始姿态网络进行训练,得到目标姿态网络。通过这种方式训练所得的目标姿态网络,在推理阶段进行网络部署的过程中,可以在已经训练好的特征提取网络(例如驾驶员监控系统DMS内置的关键点特征提取网络)上增加目标姿态网络,不进行额外的数据预处理,直接复用已有的特征提取网络输出的特征张量,有利于降低部署中对计算资源的占用和相关算法库的依赖;而且,在网络训练过程中,不用再进行特征提取网络相关的训练,可提高训练效率,进一步减少对处理器算力资源和内存资源的消耗。
进一步,本公开的实施例的初始姿态网络可以采用轻量级网络模型,其中间层变量很少,极大地缩减了硬件算力资源和内存资源的消耗。而且,本公开的实施例还融合了第一损失函数Lossgeodesic和第二损失函数Lossaux,提出新的聚焦性优化的姿态损失Losspose,见公式(5),使得优化过程中更注重数据量少且角度大的样本,增大了难例样本的优化权重,提升了训练好的目标姿态网络对目标对象的姿态预测的精度。另外,本公开的实施例的训练过程使用大规模训练数据集(包括丰富的大角度),使得优化的目标姿态网络更具准确性和泛化性。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了用于姿态估计的网络训练装置、电子设备、计算机可读存储介质、程序,上述均可用来实现本公开提供的任一种用于姿态估计的网络训练方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
图6示出根据本公开实施例的用于姿态估计的网络训练装置的框图,如图6所示,所述装置包括:获取模块61,用于获取训练数据集;确定模块62,用于将所述训练数据集中的样本图像输入预设的特征提取网络,确定所述样本图像中目标对象的特征张量;训练模块63,用于根据所述目标对象的特征张量,对初始姿态网络进行训练,得到目标姿态网络,其中,所述目标姿态网络用于结合所述特征提取网络,确定待处理图像中目标对象的姿态信息。
在一种可能的实现方式中,所述训练模块63用于:根据目标对象的特征张量,对初始姿态网络进行多轮的迭代训练,得到多个备选姿态网络;在满足训练结束条件的情况下,从多个备选姿态网络中选择目标姿态网络,所述训练结束条件包括对所述初始姿态网络的迭代训练轮数大于或等于第一预设阈值,和/或,当前轮迭代训练的学习率小于第二预设阈值。
在一种可能的实现方式中,根据目标对象的特征张量,对初始姿态网络进行多轮的迭代训练,得到多个备选姿态网络,包括:对于所述初始姿态网络的任一轮的迭代训练,将所述目标对象的特征张量输入初始姿态网络,得到姿态预测结果;根据预设的姿态损失函数、所述姿态预测结果、所述训练数据集的标注信息,确定姿态损失,其中,所述姿态损失用于指示所述初始姿态网络对目标对象的姿态信息的检测误差;根据所述姿态损失,对初始姿态网络进行迭代训练,得到当前轮迭代训练对应的备选姿态网络。
在一种可能的实现方式中,所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,将所述目标对象的特征张量输入初始姿态网络,得到姿态预测结果,包括:将所述目标对象的特征张量输入第一网络,得到姿态预测结果,所述姿态预测结果包括所述第一网络预测的目标对象的旋转矩阵;所述预设的姿态损失函数包括第一损失函数,所述第一损失函数用于指示所述第一网络预测目标对象的旋转矩阵的检测误差,根据预设的姿态损失函数、所述姿态预测结果、所述训练数据集的标注信息,确定姿态损失,包括:将所述述第一网络预测的目标对象的旋转矩阵、所述目标对象对应的所述训练数据集的标注信息输入第一损失函数,确定姿态损失。
在一种可能的实现方式中,所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,以及预测目标对象的姿态角度的第二网络,将所述目标对象的特征张量输入初始姿态网络,得到姿态预测结果,包括:将所述目标对象的特征张量分别输入第一网络和第二网络,得到姿态预测结果,所述姿态预测结果包括所述第一网络预测的目标对象的旋转矩阵,以及所述第二网络预测的目标对象的姿态角度;所述预设的姿态损失函数包括第一损失函数与第二损失函数的乘积,所述第一损失函数用于指示所述第一网络预测目标对象的旋转矩阵的检测误差,所述第二损失函数用于指示所述第二网络预测的目标对象的姿态角度的检测误差,根据预设的姿态损失函数、所述姿态预测结果、所述训练数据集的标注信息,确定姿态损失,包括:将所述第一网络预测的目标对象的旋转矩阵、所述第二网络预测的目标对象的姿态角度、所述目标对象对应的所述训练数据集的标注信息输入所述预设的姿态损失函数,确定姿态损失。
在一种可能的实现方式中,所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,所述第一网络包括第一网络层、第二网络层、第三网络层;其中,所述第一网络层包括卷积核尺寸为第一预设尺寸的卷积单元、归一化单元、非线性激活单元;所述第二网络层包括卷积核尺寸为第二预设尺寸的深度可分离卷积单元、归一化单元、非线性激活单元,所述第二预设尺寸大于所述第一预设尺寸;所述第三网络层包括单位卷积单元。
在一种可能的实现方式中,所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,以及用于预测目标对象的姿态角度的第二网络;所述第一网络包括第一网络层、第二网络层、第三网络层,所述第二网络包括第四网络层、第五网络层、第六网络层、第七网络层;其中,所述第一网络层包括卷积核尺寸为第一预设尺寸的卷积单元、归一化单元、非线性激活单元;所述第二网络层包括卷积核尺寸为第二预设尺寸的深度可分离卷积单元、归一化单元、非线性激活单元,所述第二预设尺寸大于所述第一预设尺寸;所述第三网络层包括单位卷积单元;所述第四网络层包括卷积核尺寸为所述第一预设尺寸的卷积单元、归一化单元、非线性激活单元;所述第五网络层包括卷积核尺寸为所述第二预设尺寸的深度可分离卷积单元、归一化单元、非线性激活单元;所述第六网络层包括单位卷积单元、归一化单元、非线性激活单元;所述第七网络层包括单位卷积单元。
在一种可能的实现方式中,所述获取模块61用于:获取第一样本集,所述第一样本集包括目标对象的姿态角度大于预设角度阈值的样本图像;获取第二样本集,所述第二样本集包括多种传感器在不同场景下采集的样本图像;对所述第一样本集和/或所述第二样本集进行数据集增强处理,得到第三样本集;根据所述第一样本集、所述第二样本集、所述第三样本,确定训练数据集。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
电子设备可以被提供为终端、服务器或其它形态的设备。
图7示出根据本公开实施例的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器或终端设备。参照图7,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如微软服务器操作系统(Windows ServerTM),苹果公司推出的基于图形用户界面操作系统(Mac OS XTM),多用户多进程的计算机操作系统(UnixTM), 自由和开放原代码的类Unix操作系统(LinuxTM),开放原代码的类Unix操作系统(FreeBSDTM)或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是(但不限于)电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
若本申请技术方案涉及个人信息,应用本申请技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本申请技术方案涉及敏感个人信息,应用本申请技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方式以及处理的个人信息种类等信息。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种用于姿态估计的网络训练方法,其特征在于,包括:
获取训练数据集;
将所述训练数据集中的样本图像输入预设的特征提取网络,确定所述样本图像中目标对象的特征张量;
根据所述目标对象的特征张量,对初始姿态网络进行训练,得到目标姿态网络,其中,所述目标姿态网络用于结合所述特征提取网络,确定待处理图像中目标对象的姿态信息;
其中,根据所述目标对象的特征张量,对初始姿态网络进行训练,得到目标姿态网络,包括:
所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,对于所述初始姿态网络的任一轮的迭代训练,将所述目标对象的特征张量输入初始姿态网络,得到姿态预测结果,包括:将所述目标对象的特征张量输入第一网络,得到姿态预测结果,所述姿态预测结果包括所述第一网络预测的目标对象的旋转矩阵;
预设的姿态损失函数包括第一损失函数,所述第一损失函数用于指示所述第一网络预测目标对象的旋转矩阵的检测误差,根据预设的姿态损失函数、所述姿态预测结果、所述训练数据集的标注信息,确定姿态损失,包括:将所述述第一网络预测的目标对象的旋转矩阵、所述目标对象对应的所述训练数据集的标注信息输入第一损失函数,确定姿态损失,其中,所述姿态损失用于指示所述初始姿态网络对目标对象的姿态信息的检测误差;
根据所述姿态损失,对初始姿态网络进行迭代训练,得到当前轮迭代训练对应的备选姿态网络;
从多个备选姿态网络中选择目标姿态网络。
2.根据权利要求1所述的方法,其特征在于,从多个备选姿态网络中选择目标姿态网络,包括:
在满足训练结束条件的情况下,从多个备选姿态网络中选择目标姿态网络,所述训练结束条件包括对所述初始姿态网络的迭代训练轮数大于或等于第一预设阈值,和/或,当前轮迭代训练的学习率小于第二预设阈值。
3.根据权利要求1所述的方法,其特征在于,所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,以及预测目标对象的姿态角度的第二网络,将所述目标对象的特征张量输入初始姿态网络,得到姿态预测结果,包括:
将所述目标对象的特征张量分别输入第一网络和第二网络,得到姿态预测结果,所述姿态预测结果包括所述第一网络预测的目标对象的旋转矩阵,以及所述第二网络预测的目标对象的姿态角度;
所述预设的姿态损失函数包括第一损失函数与第二损失函数的乘积,所述第一损失函数用于指示所述第一网络预测目标对象的旋转矩阵的检测误差,所述第二损失函数用于指示所述第二网络预测的目标对象的姿态角度的检测误差,根据预设的姿态损失函数、所述姿态预测结果、所述训练数据集的标注信息,确定姿态损失,包括:
将所述第一网络预测的目标对象的旋转矩阵、所述第二网络预测的目标对象的姿态角度、所述目标对象对应的所述训练数据集的标注信息输入所述预设的姿态损失函数,确定姿态损失。
4.根据权利要求1所述的方法,其特征在于,所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,所述第一网络包括第一网络层、第二网络层、第三网络层;
其中,所述第一网络层包括卷积核尺寸为第一预设尺寸的卷积单元、归一化单元、非线性激活单元;所述第二网络层包括卷积核尺寸为第二预设尺寸的深度可分离卷积单元、归一化单元、非线性激活单元,所述第二预设尺寸大于所述第一预设尺寸;所述第三网络层包括单位卷积单元。
5.根据权利要求1所述的方法,其特征在于,所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,以及用于预测目标对象的姿态角度的第二网络;所述第一网络包括第一网络层、第二网络层、第三网络层,所述第二网络包括第四网络层、第五网络层、第六网络层、第七网络层;
其中,所述第一网络层包括卷积核尺寸为第一预设尺寸的卷积单元、归一化单元、非线性激活单元;所述第二网络层包括卷积核尺寸为第二预设尺寸的深度可分离卷积单元、归一化单元、非线性激活单元,所述第二预设尺寸大于所述第一预设尺寸;所述第三网络层包括单位卷积单元;
所述第四网络层包括卷积核尺寸为所述第一预设尺寸的卷积单元、归一化单元、非线性激活单元;所述第五网络层包括卷积核尺寸为所述第二预设尺寸的深度可分离卷积单元、归一化单元、非线性激活单元;所述第六网络层包括单位卷积单元、归一化单元、非线性激活单元;所述第七网络层包括单位卷积单元。
6.根据权利要求1-5中任一项所述的方法,其特征在于,获取训练数据集,包括:
获取第一样本集,所述第一样本集包括目标对象的姿态角度大于预设角度阈值的样本图像;
获取第二样本集,所述第二样本集包括多种传感器在不同场景下采集的样本图像;
对所述第一样本集和/或所述第二样本集进行数据集增强处理,得到第三样本集;
根据所述第一样本集、所述第二样本集、所述第三样本,确定训练数据集。
7.一种姿态估计方法,其特征在于,所述方法包括:
获取待处理图像;
将所述待处理图像输入预设的特征提取网络,得到所述待处理图像中目标对象的特征张量;
将所述待处理图像中目标对象的特征张量输入目标姿态网络中处理,确定所述待处理图像的检测结果,所述检测结果包括所述目标对象的姿态信息;
其中,所述目标姿态网络是根据权利要求1-6中任意一项所述的用于姿态估计的网络训练方法训练得到的。
8.一种用于姿态估计的网络训练装置,其特征在于,包括:
获取模块,用于获取训练数据集;
确定模块,用于将所述训练数据集中的样本图像输入预设的特征提取网络,确定所述样本图像中目标对象的特征张量;
训练模块,用于根据所述目标对象的特征张量,对初始姿态网络进行训练,得到目标姿态网络,其中,所述目标姿态网络用于结合所述特征提取网络,确定待处理图像中目标对象的姿态信息;
所述训练模块用于:
所述初始姿态网络包括用于预测目标对象的旋转矩阵的第一网络,对于所述初始姿态网络的任一轮的迭代训练,将所述目标对象的特征张量输入初始姿态网络,得到姿态预测结果,包括:将所述目标对象的特征张量输入第一网络,得到姿态预测结果,所述姿态预测结果包括所述第一网络预测的目标对象的旋转矩阵;
预设的姿态损失函数包括第一损失函数,所述第一损失函数用于指示所述第一网络预测目标对象的旋转矩阵的检测误差,根据预设的姿态损失函数、所述姿态预测结果、所述训练数据集的标注信息,确定姿态损失,包括:将所述述第一网络预测的目标对象的旋转矩阵、所述目标对象对应的所述训练数据集的标注信息输入第一损失函数,确定姿态损失,其中,所述姿态损失用于指示所述初始姿态网络对目标对象的姿态信息的检测误差;
根据所述姿态损失,对初始姿态网络进行迭代训练,得到当前轮迭代训练对应的备选姿态网络;
从多个备选姿态网络中选择目标姿态网络。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为调用所述存储器存储的指令,以执行权利要求1至7中任意一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至7中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311028342.XA CN116758380B (zh) | 2023-08-15 | 2023-08-15 | 用于姿态估计的网络训练方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311028342.XA CN116758380B (zh) | 2023-08-15 | 2023-08-15 | 用于姿态估计的网络训练方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116758380A CN116758380A (zh) | 2023-09-15 |
CN116758380B true CN116758380B (zh) | 2023-11-10 |
Family
ID=87959462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311028342.XA Active CN116758380B (zh) | 2023-08-15 | 2023-08-15 | 用于姿态估计的网络训练方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116758380B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107480720A (zh) * | 2017-08-18 | 2017-12-15 | 成都通甲优博科技有限责任公司 | 人体姿态模型训练方法及装置 |
CN111428555A (zh) * | 2020-01-17 | 2020-07-17 | 大连理工大学 | 一种分关节的手部姿态估计方法 |
CN115100492A (zh) * | 2022-08-26 | 2022-09-23 | 摩尔线程智能科技(北京)有限责任公司 | Yolov3网络训练、pcb表面缺陷检测方法及装置 |
CN115249321A (zh) * | 2021-04-12 | 2022-10-28 | 丰田自动车株式会社 | 训练神经网络的方法、训练神经网络的系统以及神经网络 |
CN115761734A (zh) * | 2022-10-29 | 2023-03-07 | 福州大学 | 基于模板匹配和概率分布的物体位姿估计方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10839226B2 (en) * | 2016-11-10 | 2020-11-17 | International Business Machines Corporation | Neural network training |
-
2023
- 2023-08-15 CN CN202311028342.XA patent/CN116758380B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107480720A (zh) * | 2017-08-18 | 2017-12-15 | 成都通甲优博科技有限责任公司 | 人体姿态模型训练方法及装置 |
CN111428555A (zh) * | 2020-01-17 | 2020-07-17 | 大连理工大学 | 一种分关节的手部姿态估计方法 |
CN115249321A (zh) * | 2021-04-12 | 2022-10-28 | 丰田自动车株式会社 | 训练神经网络的方法、训练神经网络的系统以及神经网络 |
CN115100492A (zh) * | 2022-08-26 | 2022-09-23 | 摩尔线程智能科技(北京)有限责任公司 | Yolov3网络训练、pcb表面缺陷检测方法及装置 |
CN115761734A (zh) * | 2022-10-29 | 2023-03-07 | 福州大学 | 基于模板匹配和概率分布的物体位姿估计方法 |
Non-Patent Citations (1)
Title |
---|
基于深度学习的点云分类算法研究;魏梦如;《中国优秀硕士论文电子期刊网》;I138-2649 * |
Also Published As
Publication number | Publication date |
---|---|
CN116758380A (zh) | 2023-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108205655B (zh) | 一种关键点预测方法、装置、电子设备及存储介质 | |
CN110889325B (zh) | 多任务面部动作识别模型训练和多任务面部动作识别方法 | |
EP3971772B1 (en) | Model training method and apparatus, and terminal and storage medium | |
CN110532996B (zh) | 视频分类的方法、信息处理的方法以及服务器 | |
CN108764107B (zh) | 基于人体骨架序列的行为与身份联合识别方法及装置 | |
JP7286013B2 (ja) | ビデオコンテンツ認識方法、装置、プログラム及びコンピュータデバイス | |
CN106462724B (zh) | 基于规范化图像校验面部图像的方法和系统 | |
CN112200057B (zh) | 人脸活体检测方法、装置、电子设备及存储介质 | |
CN113449700B (zh) | 视频分类模型的训练、视频分类方法、装置、设备及介质 | |
KR20160053749A (ko) | 얼굴 영상의 다양성에 강인한 얼굴 표정 특징 분류 방법 및 시스템 | |
CN111062263A (zh) | 手部姿态估计的方法、设备、计算机设备和存储介质 | |
CN110968734A (zh) | 一种基于深度度量学习的行人重识别方法及装置 | |
EP4318313A1 (en) | Data processing method, training method for neural network model, and apparatus | |
CN111241924A (zh) | 基于尺度估计的人脸检测及对齐方法、装置、存储介质 | |
CN111709268A (zh) | 一种深度图像中的基于人手结构指导的人手姿态估计方法和装置 | |
CN111444957B (zh) | 图像数据处理方法、装置、计算机设备和存储介质 | |
CN111310720A (zh) | 基于图度量学习的行人重识别方法及系统 | |
CN112001285B (zh) | 一种美颜图像的处理方法、装置、终端和介质 | |
CN116758380B (zh) | 用于姿态估计的网络训练方法及装置 | |
CN115496911B (zh) | 一种目标点检测方法、装置、设备及存储介质 | |
CN116079727A (zh) | 基于3d人体姿态估计的人形机器人动作模仿方法及装置 | |
CN111582208B (zh) | 用于生成生物体姿态关键点信息的方法和装置 | |
CN114373215A (zh) | 图像处理方法及装置、电子设备和存储介质 | |
CN115661942B (zh) | 基于虚拟现实的动作数据处理方法、系统及云平台 | |
US20230282031A1 (en) | Pose prediction for articulated object |
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 |