CN114926876A - 图像关键点检测方法、装置、计算机设备和存储介质 - Google Patents

图像关键点检测方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN114926876A
CN114926876A CN202210448849.XA CN202210448849A CN114926876A CN 114926876 A CN114926876 A CN 114926876A CN 202210448849 A CN202210448849 A CN 202210448849A CN 114926876 A CN114926876 A CN 114926876A
Authority
CN
China
Prior art keywords
image
detected
branch
regression
frame
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.)
Pending
Application number
CN202210448849.XA
Other languages
English (en)
Inventor
孙浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Black Sesame Intelligent Technology Co ltd
Original Assignee
Black Sesame Intelligent Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Black Sesame Intelligent Technology Co ltd filed Critical Black Sesame Intelligent Technology Co ltd
Priority to CN202210448849.XA priority Critical patent/CN114926876A/zh
Publication of CN114926876A publication Critical patent/CN114926876A/zh
Priority to US18/214,168 priority patent/US20230343137A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/168Feature extraction; Face representation
    • G06V40/171Local features and components; Facial parts ; Occluding parts, e.g. glasses; Geometrical relationships
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • G06V40/165Detection; Localisation; Normalisation using facial parts and geometric relationships
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation 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/757Matching configurations of points or features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/73Deblurring; Sharpening
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/766Arrangements for image or video recognition or understanding using pattern recognition or machine learning using regression, e.g. by projecting features on hyperplanes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing 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/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing 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/776Validation; Performance evaluation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/172Classification, e.g. identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • G06T2207/30201Face

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Geometry (AREA)
  • Image Analysis (AREA)

Abstract

本申请涉及一种图像关键点检测方法、装置、计算机设备和存储介质。方法包括:获取待检测图像;根据待检测图像的离散帧类型或连续帧类型,对待检测图像进行对应的预处理,以生成对应类型的多通道图像;将多通道图像输入预先训练的包括并行设置的回归分支和帧间残差分支的关键点检测模型中;当待检测图像属于离散帧类型时,基于回归分支输出的回归预测值,确定待检测图像中的多个关键点的坐标;当待检测图像属于连续帧类型时,基于回归分支输出的回归预测值以及帧间残差分支输出的残差预测值,确定待检测图像中的多个关键点的坐标。本方法能够适用于离散帧和连续帧类型图像的关键点检测,并提升连续帧类型图像的关键点检测的稳定性。

Description

图像关键点检测方法、装置、计算机设备和存储介质
技术领域
本申请涉及图像处理技术领域,特别是涉及一种图像关键点检测方法、装置、计算机设备和存储介质。
背景技术
在图像处理技术领域中,存在关键点检测技术,其用于对图像中目标对象上感兴趣的关键点进行检测和追踪。根据应用领域的不同,目标对象例如可以是人体、人脸或其他对象。
以目标对象为人脸为例,对应的人脸关键点检测技术被广泛应用于人脸相关应用中,例如人脸美颜、人脸美妆、人脸识别等。如图1所示,人脸关键点是位于人脸上预先定义的多个位置处的多个关键点。这些预定义的关键点,由具有明确语义定义的点和其他点组成。在人脸关键点检测中,需要对人脸上预定义的每个关键点的位置进行检测。
现有的人脸关键点检测技术,一般针对单帧图像进行关键点检测,其侧重点主要在于提升关键点检测的精度。然而,对于例如视频等中的连续帧类型的图像的关键点检测而言,现有的关键点检测技术测得的前后帧的关键点检测结果容易出现较大差别,从而导致测得的关键点位置在前后帧之间产生抖动等不稳定的情况,继而影响人脸相关应用的显示效果。
发明内容
基于此,有必要针对上述技术问题,提供一种能够兼顾适用于离散帧和连续帧两种类型的图像的关键点检测,同时提升连续帧类型图像的相邻帧检测结果的稳定性的图像关键点检测方法、装置、计算机设备和存储介质。
一种图像关键点检测方法,所述方法包括:
获取待检测图像;
根据所述待检测图像的类型,对所述待检测图像进行对应的预处理,以生成对应类型的多通道图像;其中,所述类型包括离散帧类型或连续帧类型;
将所述多通道图像输入预先训练的关键点检测模型中;其中,所述预先训练的关键点检测模型包括并行设置的回归分支和帧间残差分支;
当所述待检测图像属于所述离散帧类型时,获取所述回归分支输出的回归预测值,基于所述回归预测值,确定所述待检测图像中的多个关键点的坐标;
当所述待检测图像属于所述连续帧类型时,获取所述回归分支输出的回归预测值以及所述帧间残差分支输出的残差预测值,基于所述回归预测值和所述残差预测值,确定所述待检测图像中的多个关键点的坐标。
一种图像关键点检测装置,所述装置包括:
图像获取模块,用于获取待检测图像;
预处理模块,用于根据所述待检测图像的类型,对所述待检测图像进行对应的预处理,以生成对应类型的多通道图像;其中,所述类型包括离散帧类型或连续帧类型;
模型预测模块,用于将所述多通道图像输入预先训练的关键点检测模型中;其中,所述预先训练的关键点检测模型包括并行设置的回归分支和帧间残差分支;以及
关键点确定模块,用于当所述待检测图像属于所述离散帧类型时,获取所述回归分支输出的回归预测值,基于所述回归预测值,确定所述待检测图像中的多个关键点的坐标;并且当所述待检测图像属于所述连续帧类型时,获取所述回归分支输出的回归预测值以及所述帧间残差分支输出的残差预测值,基于所述回归预测值和所述残差预测值,确定所述待检测图像中的多个关键点的坐标。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待检测图像;
根据所述待检测图像的类型,对所述待检测图像进行对应的预处理,以生成对应类型的多通道图像;其中,所述类型包括离散帧类型或连续帧类型;
将所述多通道图像输入预先训练的关键点检测模型中;其中,所述预先训练的关键点检测模型包括并行设置的回归分支和帧间残差分支;
当所述待检测图像属于所述离散帧类型时,获取所述回归分支输出的回归预测值,基于所述回归预测值,确定所述待检测图像中的多个关键点的坐标;
当所述待检测图像属于所述连续帧类型时,获取所述回归分支输出的回归预测值以及所述帧间残差分支输出的残差预测值,基于所述回归预测值和所述残差预测值,确定所述待检测图像中的多个关键点的坐标。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待检测图像;
根据所述待检测图像的类型,对所述待检测图像进行对应的预处理,以生成对应类型的多通道图像;其中,所述类型包括离散帧类型或连续帧类型;
将所述多通道图像输入预先训练的关键点检测模型中;其中,所述预先训练的关键点检测模型包括并行设置的回归分支和帧间残差分支;
当所述待检测图像属于所述离散帧类型时,获取所述回归分支输出的回归预测值,基于所述回归预测值,确定所述待检测图像中的多个关键点的坐标;
当所述待检测图像属于所述连续帧类型时,获取所述回归分支输出的回归预测值以及所述帧间残差分支输出的残差预测值,基于所述回归预测值和所述残差预测值,确定所述待检测图像中的多个关键点的坐标。
上述图像关键点检测方法、装置、计算机设备和存储介质,根据待检测图像的不同类型,生成对应的多通道图像,使得包括离散帧类型或连续帧类型的不同类型的待检测图像可以具有统一格式的多通道图像,以使用同一个关键点检测模型兼容对不同类型的待检测图像的检测。在检测时,当待检测图像属于离散帧类型时,根据回归分支输出的回归预测值确定待检测图像中的多个关键点的坐标,以实现对离散帧图像中关键点的准确高效地检测;而当待检测图像属于连续帧类型时,基于回归分支输出的回归预测值以及帧间残差分支输出的残差预测值两者,综合确定待检测图像中的多个关键点的坐标,以在检测待检测图像的关键点位置的同时,兼具相邻帧之间的关键点位置的稳定性,避免相邻帧之间关键点位置的过度跳变。从而本申请的方案能够兼顾适用于离散帧和连续帧两种类型的图像的关键点检测,同时提升连续帧类型图像的相邻帧的关键点检测结果的稳定性。
附图说明
图1为一个实施例中人脸关键点的示意图;
图2为一个实施例中终端的示意图;
图3为一个实施例中图像关键点检测方法的流程示意图;
图4为一个实施例中图像关键点检测方法的示意图;
图5为一个实施例中生成离散帧类型的多通道图像的示意图;
图6为一个实施例中生成连续帧类型的多通道图像的示意图;
图7为一个实施例中关键点检测模型的示意图;
图8为另一个实施例中关键点检测模型的示意图;
图9为另一个实施例中关键点检测模型的示意图;
图10为一个实施例中关键点检测模型的训练过程的流程示意图;
图11为一个实施例中关键点检测模型的训练过程的示意图;
图12为一个实施例中图像关键点检测装置的结构框图;
图13为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
随着深度学习的流行,越来越多的关键点检测算法开始使用卷积神经网络来实现,对于离散帧图片而言,可以通过回归、热力图等方法来检测关键点。而对于视频等连续帧而言,则可以通过光流跟踪、光流叠加当前帧进行训练等方法来消除抖动。然而,目前很少有算法能够自适应的兼顾对离散帧图像和连续帧图像两种图像的关键点检测。
人眼在观察物体时,由于视觉暂现象的存在,通常会忽略微小的抖动。但是对于针对单帧图像的常规算法而言,每次检测时仅能看到的当前帧的信息却忽略了相邻帧之间的差异,从而导致相邻帧之间的关键点检测结果产生抖动。
本申请针对现有技术中存在的缺陷,提供了一种图像关键点检测方法,其能够同时兼顾离散帧和连续帧两种类型的图像的关键点检测,同时提升连续帧类型图像的相邻帧检测结果的稳定性。
本申请提供的图像关键点检测方法,可以应用于如图2所示的终端100中,该终端100 可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。其中,图像关键点检测方法可以包括训练阶段和检测阶段。在训练阶段,可以利用训练集对关键点检测模型进行训练,以得到训练好的关键点检测模型。该训练过程可以在终端100中执行,并将训练好的关键点检测模型存储于终端100中以备使用;或者,该训练过程也可以在例如其他终端或服务器等外部设备上执行,并在得到训练好的关键点检测模型后,将训练好的关键点检测模型从其他外部设备中加载到终端100上以备使用。在训练好的关键点检测模型已经装载到终端100中的情况下,在检测阶段,终端100可以对待检测的图像执行本申请实施例中的图像关键点检测方法,以确定待检测图像中的多个关键点的坐标。
在本申请的各个示例中,为了便于理解,以目标对象为人脸作为示例进行说明,示例地,本申请的关键点包括预定义的分布于人脸的眉毛、眼睛、鼻子、嘴巴和脸部外轮廓区域的106 个关键点,并在检测阶段中,对待检测图像中的该106个关键点的位置进行检测。但是,本申请也可以应用于目标对象为其他对象的情况下,并且本申请也可以设置有更多或更少的关键点,或者处于不同位置处的关键点。
在一个实施例中,如图3和图4所示,提供了一种图像关键点检测方法,以该方法应用于图2中的终端100为例进行说明,包括以下步骤S310-S350:
步骤S310,获取待检测图像。
在一个实施例中,步骤S310包括:获取原始图像;对原始图像执行目标对象检测,以确定目标对象所在的区域;从该区域中截取包含目标对象的子图像;将子图像的尺寸重置为目标尺寸,以确定待检测图像。
示例地,原始图像例如是终端100或外部设备拍摄的图像,原始图像中存在待检测的目标对象。该目标对象例如可以是人脸等。相应的,可以通过人脸识别算法从原始图像中检测出人脸所在的边界框(bounding box)。截取边界框中的子图像,并将该子图像的尺寸重置 (resize)为目标尺寸,目标尺寸例如可以是112×112的分辨率,从而得到112×112的分辨率的待检测图像。
步骤S320,根据待检测图像的类型,对待检测图像进行对应的预处理,以生成对应类型的多通道图像;其中,类型包括离散帧类型或连续帧类型。
在一个实施例中,待检测图像为多色彩通道图像,步骤S320包括:当待检测图像属于离散帧类型时,生成与所述待检测图像相同分辨率的像素值均为零的第一灰度图像作为灰度残差图像,将多色彩通道图像组合灰度残差图像以生成离散帧类型的多通道图像;当待检测图像属于连续帧类型时,确定待检测图像的第二灰度图像,获取与待检测图像相邻的前一帧图像,确定前一帧图像的第三灰度图像,确定第二灰度图像与第三灰度图像之差作为灰度残差图像,将多色彩通道图像组合灰度残差图像以生成连续帧类型的多通道图像。
在一个实施例中,多色彩通道图像可以为红色、绿色、蓝色(Red,Green,Blue,RGB)三通道图像,相应地,生成的多通道图像为红色、绿色、蓝色、灰度残差四通道图像。在其他实施例中,多色彩通道图像也可以是例如色相、饱和度、亮度(Hues,Saturation,Brightness, HSB)三通道图像等其他图像模式的图像,从而相应地,生成的多通道图像可以包括其他图像模式的图像基础上组合灰度残差图像所形成的多通道图像。
示例地,在得到112×112分辨率的待检测图像后,可以先判断待检测图像的类别是离散帧类型还是连续帧类型。离散帧类型的图片是指与其他图片不具有显著关联的图片,例如图片格式的图片,连续帧类型的图片是指与时域上相邻的图片存在关联性的图片,例如是视频格式文件或视频流中的图片。
示例地,以待检测图像为RGB三通道图像为例,根据待检测图像的不同类别,可以采用如下两种方式对该待检测图像进行预处理:
(1)参见图5所示,当112×112分辨率的待检测图像属于离散帧类型时,生成一张像素值全为0的112×112分辨率的零值图像,并确定该零值图像的第一灰度图像作为灰度残差图像,可以理解,该第一灰度图像中各个像素的值也为零。将当前帧的待检测图像的RGB三个通道的图像组合灰度残差图像,从而生成一张112×112分辨率的四通道图像。
(2)参见图6所示,当该112×112分辨率的待检测图像属于连续帧类型时,确定待检测图像的第二灰度图像,获取当前帧的待检测图像所在的连续帧序列中与其相邻的前一帧图像,确定该前一帧图像的第三灰度图像,确定第二灰度图像与第三灰度图像之差作为灰度残差图像。将当前帧的待检测图像的RGB三个通道的图像组合该灰度残差图像,从而生成一张 112×112分辨率的四通道图像。
步骤S330,将多通道图像输入预先训练的关键点检测模型中;其中,该预先训练的关键点检测模型包括并行设置的回归分支和帧间残差分支。
在检测阶段开始之前,可以在终端100或外部设备上预先训练得到关键点检测模型,并存储在终端100中,从而在此步骤中,终端100可以将预处理后的多通道图像输入训练好的关键点检测模型中。
如稍后将论述的,在训练阶段中,关键点检测模型包括并行设置的回归分支、帧间残差分支和类型分类分支,从而可以对关键点检测模型中的回归分支、帧间残差分支和类型分类分支共同进行训练,以综合确定回归分支、帧间残差分支和类型分类分支中的层权重。而在训练完成后,在检测阶段中,参见下述步骤S340和S350,确定关键点的坐标仅可能使用到回归分支和帧间残差分支的输出值,而无需使用类型分类分支的输出值。因此,训练完成后生成的用于检测阶段的关键点检测模型中可以删去类型分类分支而仅保留回归分支和帧间残差分支,即,本步骤S330中所述的预先训练的关键点检测模型可以仅包括回归分支和帧间残差分支两者,以节约存储和运算资源;替代地,训练完成后生成的用于检测阶段的关键点检测模型中也可以保留回归分支、帧间残差分支和类型分类分支,即,本步骤S330中所述的预先训练的关键点检测模型也可以包括回归分支、帧间残差分支和类型分类分支三者,在确定关键点的坐标时根据待检测图像的类型选用回归分支和帧间残差分支的输出值,而忽略类型分类分支的输出值。
示例地,以生成的用于检测阶段的关键点检测模型中保留回归分支、帧间残差分支和类型分类分支,关键点包括人脸上定义的106个关键点为例,112×112分辨率的待检测图像输入到训练好的关键点检测模型中,并经过关键点检测模型中的回归分支、帧间残差分支和类型分类分支的前向传输后,回归分支输出一个为1×212的一维向量的回归预测值Hloc,该回归预测值Hloc表征回归的关键点位置。帧间残差分支输出一个为1×212的一维向量的残差预测值,该残差预测值表征相邻帧之间关键点位置的差值,而类型分类分支输出一个1×1的分类预测值Hcls,该分类预测值Hcls表征待检测图像的类型。
步骤S340,当待检测图像属于离散帧类型时,获取回归分支输出的回归预测值,基于回归预测值,确定待检测图像中的多个关键点的坐标。
示例地,参见图4,若待检测图像属于离散帧类型,则在此步骤中,可以仅使用回归分支输出的回归预测值Hloc来确定关键点的坐标。该回归预测值Hloc示例地为一个1×212的一维向量,该一维向量具有212个分量,将其中每相邻两个分量组成一个(x,y)格式的二维坐标,从而得到106个第一二维坐标,该106个第一二维坐标即顺次对应人脸中预定义的106个关键点的坐标。
步骤S350,当待检测图像属于连续帧类型时,获取回归分支输出的回归预测值以及帧间残差分支输出的残差预测值,基于回归预测值和残差预测值,确定待检测图像中的多个关键点的坐标。
示例地,参见图4,若待检测图像属于连续帧类型,则在此步骤中,可以使用回归分支输出的回归预测值Hloc和帧间残差分支输出的残差预测值Hdiff来综合确定关键点的坐标。该回归预测值Hloc示例地为一个1×212的一维向量,该一维向量具有212个分量,将其中每相邻两个分量组成一个(x,y)格式的二维坐标,从而得到106个第一二维坐标。类似地,残差预测值Hdiff也为一个1×212的一维向量,该一维向量具有212个分量,将其中每相邻两个分量组成一个(x,y)格式的二维坐标,从而得到106个第二二维坐标。106个第一二维坐标和106个第二二维坐标可顺次对应人脸中预定义的106个关键点,如此,人脸中预定义的106个关键点中的每个关键点可对应一个第一二维坐标和一个第二二维坐标,从而每个关键点的坐标可以是根据对应的一个第一二维坐标和一个第二二维坐标综合确定的第三二维坐标。
在一个实施例中,步骤S350中当待检测图像属于连续帧类型时,基于回归预测值和残差预测值,确定待检测图像中的多个关键点的坐标,包括:将待检测图像的回归预测值,作为待检测图像的直接回归值;获取与待检测图像相邻的前一帧图像在输入关键点检测模型后回归分支所对应输出的回归预测值,将前一帧图像的回归预测值与待检测图像的残差预测值之和,作为待检测图像的推测回归值;计算直接回归值与推测回归值的加权和,作为待检测图像的关键点推测值;基于关键点推测值,确定待检测图像中的多个关键点的坐标。
示例地,在当前帧的待检测图像属于连续帧类型时,待检测图像的关键点推测值将等于当前帧的直接回归值和当前帧的推测回归值的加权和。当前帧的直接回归值即为当前帧的回归分支输出的回归预测值Hloc,而当前帧的推测回归值则可通过前一帧的回归分支输出的回归预测值Hloc加上当前帧的帧间残差分支输出的残差预测值Hdiff得到。具体计算可参见下式所示:
Figure RE-GDA0003696233540000081
上式中,k代表当前帧(即,第k帧),Hf,k代表当前帧的关键点推测值,Hloc,k-1代表前一帧(即,第(k-1)帧)的回归预测值,Hdiff,k代表当前帧的残差预测值,Hloc,k代表当前帧的回归预测值。α、β分别代表加权的权重,并且α+β=1。α、β的取值可以根据情况调整,示例地,可以取α=0.5,β=0.5。
在通过上式计算确定了当前帧的待检测图像的关键点推测值后,该关键点推测值示例地也为一个1×212的一维向量,该一维向量具有212个分量,将其中每相邻两个分量组成一个 (x,y)格式的二维坐标,从而得到106个第三二维坐标,该106个第三二维坐标即顺次对应人脸中预定义的106个关键点的坐标。
上述图像关键点检测方法,根据待检测图像的不同类型,生成对应的多通道图像,使得包括离散帧类型或连续帧类型的不同类型的待检测图像可以具有统一格式的多通道图像,以使用同一个关键点检测模型兼容对不同类型的待检测图像的检测。在检测时,当待检测图像属于离散帧类型时,根据回归分支输出的回归预测值确定待检测图像中的多个关键点的坐标,以实现对离散帧图像中关键点的准确高效地检测;而当待检测图像属于连续帧类型时,基于回归分支输出的回归预测值以及帧间残差分支输出的残差预测值两者,综合确定待检测图像中的多个关键点的坐标,以在检测待检测图像的关键点位置的同时,兼具相邻帧之间的关键点位置的稳定性,避免相邻帧之间关键点位置的过度跳变。从而本申请的方案能够兼顾适用于离散帧和连续帧两种类型的图像的关键点检测,同时提升连续帧类型图像的相邻帧的关键点检测结果的稳定性。
在一个实施例中,在上述步骤S310之后,步骤S320之前,图像关键点检测方法还包括:对待检测图像执行轮廓增强处理,以生成轮廓增强后的待检测图像。
进一步地,对待检测图像执行轮廓增强处理,以生成轮廓增强后的待检测图像,包括:利用高反差保留算法,对待检测图像执行轮廓纹理提取处理,得到轮廓纹理图;利用强光叠加算法,将轮廓纹理图叠加到待检测图像,得到轮廓纹理加深图;再次利用强光叠加算法,将轮廓纹理图叠加到轮廓纹理加深图,从而生成轮廓增强后的待检测图像。
示例地,上述第一次强光叠加算法的运算如下式所示:
Figure RE-GDA0003696233540000091
上式中,src3代表轮廓纹理加深图中的各个像素点的像素值,src1代表待检测图像中对应像素点的像素值,src2代表轮廓纹理图中对应像素点的像素值。
示例地,上述第二次强光叠加算法的运算如下式所示:
Figure RE-GDA0003696233540000092
上式中,Dst代表轮廓增强后的待检测图像中的各个像素点的像素值,src3代表轮廓纹理加深图中对应像素点的像素值,src2代表轮廓纹理图中对应像素点的像素值。
在执行例如人脸等对象的关键点检测时,如果对象的关键点所在的轮廓不明显,也会影响对关键点的检测准确度,可能导致轮廓附近检测到的关键点出现较大偏差。本申请上述实施例中,通过反差增强回加的方法来提升对象轮廓的分界。首先通过高反差保留算法提取例如人脸五官的轮廓纹理,然后通过两次强光叠加算法进一步加深轮廓纹理并线性叠加回待检测图像,从而得到轮廓增强后的待检测图像。使用轮廓增强后的待检测图像执行关键点检测,能够使得在轮廓区域中检测的关键点结果更加准确和稳定。
以上描述了在检测阶段中,终端100可能执行的方法步骤,其中在检测阶段的步骤S306 中,使用了预先训练好的关键点检测模型,这要求在检测阶段之前的训练阶段中,预先构造关键点检测模型的架构,并对该构造好的关键点检测模型进行训练,优化确定关键点检测模型的层权重,以得到训练好的关键点检测模型。
在一个实施例中,如图7所示,在训练阶段中,关键点检测模型包括并行设置的回归分支、帧间残差分支和类型分类分支。回归分支、帧间残差分支和类型分类分支分别接收预处理得到的多通道图像,并分别输出回归预测值、残差预测值和分类预测值。通过在训练阶段中关键点检测模型中并行设置的回归分支、帧间残差分支和类型分类分支,使得训练得到的关键点检测模型能够兼顾对图像关键点位置的回归、连续帧中相邻帧间的帧间残差以及图像的不同类型的特性。如上所描述地,在训练阶段之后的检测阶段中,关键点检测模型可以仅包括并行设置的回归分支和帧间残差分支,或者也可以包括回归分支、帧间残差分支和类型分类分支但是仅需使用回归分支和帧间残差分支的输出值。
在一个实施例中,如图8所示,在训练阶段中,关键点检测模型还包括骨干网络,骨干网络接收预处理得到的多通道图像,骨干网络输出中间特征图,并将中间特征图分别馈入回归分支、帧间残差分支和类型分类分支。本实施例中,通过设置于回归分支、帧间残差分支和类型分类分支之前共享的骨干网络,可以预先通过骨干网络集中对多通道图像进行特征提取得到中间特征图,然后将该中间特征图分别输入不同分支执行不同的预测运算,能够有效提升对多通道图像的特征提取效率,提升模型的总体运算效率。可以理解,如果在训练阶段中关键点检测模型还包括骨干网络,则相应地在训练阶段之后的检测阶段中,关键点检测模型也同样包括该骨干网络。
在一个实施例中,上述回归分支包括顺次串行的多个第一卷积神经网络层(Conv)、展平层(Flatten)以及第一全连接层(FC);帧间残差分支包括顺次串行的多个第二卷积神经网络层、展平层以及第二全连接层;类型分类分支包括顺次串行的多个第三卷积神经网络层、展平层以及第三全连接层。
示例地,如图9所示,回归分支、帧间残差分支和类型分类分支中的每个分支可以具有两个串行的卷积神经网络层,然而在其他实施例中,每个分支也可以具有不同数量的卷积神经网络层。
在一个实施例中,第一全连接层和第二全连接层均具有第一数量的输出神经元,第一数量根据多个关键点的总数确定。
具体地,第一数量可以等于关键点的总数乘以每个关键点的坐标的参数量。
示例地,如图9中所示,在定义的关键点包括106个关键点的情况下,每个关键点的坐标(x,y)具有x、y两个参数,从而106个关键点的坐标需要由106×2=212个参数确定。因此,可以设计第一全连接层具有212个输出神经元,第二全连接层也具有212个输出神经元。
在一个实施例中,第三全连接层具有第二数量的输出神经元,第二数量取决于类型分类分支的损失函数类别。
示例地,如图9中所示,在类型分类分支的激活函数为Sigmoid激活函数,损失函数为二元交叉熵损失函数(Binary Cross Entropy Loss)时,第三全连接层具有单个输出神经元。从而第三全连接层输出的分类预测值Hcls包括该单个输出神经元的输出值,该单个输出神经元的输出值表征待检测图像属于离散帧类型的概率y1,0≤y1≤1。通过将该概率y1与给定的阈值T进行比较,即可确定待检测图像的类型。当y1≥T时,则可以确定待检测图像属于离散帧类型,反之,当y1﹤T时,则可以确定待检测图像属于连续帧类型。替代地,该单个输出神经元的输出值也可表征待检测图像属于连续帧类型的概率y1,则当y1≥T时,可以确定待检测图像属于连续帧类型,反之,当y1﹤T时,则可以确定待检测图像属于离散帧类型。T示例地可以取0.5。
在另一示例中,在类型分类分支的激活函数为Softmax激活函数,损失函数为分类交叉熵损失函数(Categorical Cross Entropy Loss)时,第三全连接层也可以具有两个输出神经元。从而第三全连接层输出的分类预测值Hcls包括两个输出神经元的两个输出值,其中一个输出神经元的输出值表征待检测图像属于离散帧类型的概率y2,0≤y2≤1。同时另一个输出神经元的输出值表征待检测图像属于连续帧类型的概率y3,0≤y3≤1。这两个概率的总和(y2+y3) 的值为1,当y2≥y3时,可以确定待检测图像属于离散帧类型,反之,当y2﹤y3时,则可以确定待检测图像属于连续帧类型。
在一个具体示例中,参见图9所示,关键点检测模型包括骨干网络,以及串行于骨干网络之后的,彼此并行的回归分支、帧间残差分支和类型分类分支。骨干网络接收待检测图像,并输出中间特征图,中间特征图分别馈入回归分支、帧间残差分支和类型分类分支,回归分支、帧间残差分支和类型分类分支分别输出回归预测值、残差预测值和分类预测值。
其中,参见图9所示,骨干网络用于对输入的待检测图像进行初步特征提取,骨干网络可以包括若干串行和/或并行的卷积神经网络层,骨干网络还可包括若干池化层、批量归一化层等等其他层。示例地,骨干网络可以包括轻量级网络V2(MobileNetV2,参见MobileNetV2: Inverted Residuals and Linear Bottlenecks,Mark Sandler,et.al.,The IEEE Conference on Computer Vision and Pattern Recognition(CVPR),2018,pp.4510-4520)。可以理解,骨干网络的具体结构可以具有多种不同的构造,只要能够实现对待检测图像进行初步特征提取,并使得输出的特征图的尺寸和通道数与后续的回归分支、帧间残差分支和类型分类分支的输入端匹配即可,本申请不以此为限。示例地,待检测图像是一张112×112分辨率的四通道图像(可以表示为“1×112×112×4”),该一张112×112分辨率的四通道图像输入骨干网络后,可以输出一张7×7分辨率的256通道图像(可以表示为“1×7×7×256”),该一张7×7分辨率的256 通道图像即为中间特征图。
示例地,参见图9所示,回归分支包括顺次串行的两个第一卷积网络层、展平层以及第一全连接层,每个第一卷积网络层的维度为“256×3×3×256”,其表示每个第一卷积网络层的过滤器深度为256(过滤器深度由该层的输入图的通道数确定),卷积核尺寸为3×3,过滤器个数为256(过滤器个数将决定该层的输出图的通道数),步长(stride)为2。一张7×7分辨率的256通道图像输入第一个第一卷积网络层,经过第一个第一卷积网络层的卷积运算后,得到一张4×4分辨率的256通道图像,该一张4×4分辨率的256通道图像输入第二个第一卷积网络层,经过第二个第一卷积网络层的卷积运算后,得到一张1×1分辨率的256通道图像。然后该一张1×1分辨率的256通道图像经过展平层展平后得到一个1×256的一维向量。第一全连接层的维度为“256×212”,这表示该第一全连接层的输入参数量为256,并且具有212 个神经元(神经元的个数决定该层的输出参数量),从而该一个1×256的一维向量输入第一全连接层后输出一个1×212的一维向量,该一个1×212的一维向量即为回归预测值Hloc
帧间残差分支具有与回归分支类似的结构,帧间残差分支包括顺次串行的两个第二卷积网络层、展平层以及第二全连接层,类似地,每个第二卷积网络层的维度也为“256×3×3×256”,步长也为2,并且第二全连接层的维度也为“256×212”,从而与上述回归分支中同理地,一张7×7分辨率的256通道图像输入帧间残差分支后,经过两个第二卷积网络层、展平层以及第二全连接层的运算后,输出一个1×212的一维向量,该一个1×212的一维向量即为残差预测值Hdiff
同理地,类型分类分支包括顺次串行的两个第三卷积网络层、展平层以及第三全连接层,每个第三卷积网络层的维度也为“256×3×3×256”,步长也为2,并且第三全连接层的维度为“256×1”,这表示该第三全连接层的输入参数量为256,并且具有1个神经元(神经元的个数决定该层的输出参数量),第三全连接层的激活函数为Sigmoid激活函数,从而一张7×7分辨率的256通道图像输入帧间残差分支后,经过两个第二卷积网络层、展平层后得到一个 1×256的一维向量,该一个1×256的一维向量输入第三全连接层后,输出一个1×1的一维向量(单个参数,即概率y1),该一个1×1的一维向量即为分类预测值Hcls
前向传播(Forward Propogation)和反向传播(Backward Propogation)是神经网络在测试过程和训练过程中可能执行的基本过程。在模型训练阶段,利用训练集数据对模型反复执行前向传播和反向传播的过程以优化层权重值和确定训练好的模型;在模型检测阶段,模型对输入数据执行前向传播过程以输出预测结果。其中,前向传播描述了该神经网络的输入如何沿着神经网络的各层正向传输和处理以得到输出的过程;而反向传播则描述了在通过前向传播确定了损失函数后,如何沿着神经网络的各层反向传输并推导每层的误差用以相应的调整各层的层权重值的过程。
例如,以上所述的将多通道图像输入关键点检测模型,经过骨干网络得到中间特征图,中间特征图分别输入回归分支、帧间残差分支和类型分类分支,并分别输出回归预测值、残差预测值和分类预测值的过程,即为关键点检测模型的前向传播过程。本申请关键点检测模型的反向传播过程的基本原理与现有卷积神经网络的反向传播过程类似,本领域技术人员结合现有卷积神经网络的反向传播原理以及本申请关键点检测模型的上述构造,能够理解本申请关键点检测模型的反向传播过程,因此不再赘述。
在训练阶段中,通过对上述构造的关键点检测模型进行训练,能够确定训练好的关键点检测模型。
在一个实施例中,如图10和图11所示,在获取待检测图像之前,在训练阶段中,关键点检测模型的训练过程包括如下步骤S1010-S1040:
步骤S1010,获取训练集;训练集包括多个离散帧类型的多通道图像和每个离散帧类型的多通道图像对应的真实值(即,地面真值,Ground Truth,GT),以及多个连续帧类型的多通道图像和每个连续帧类型的多通道图像对应的真实值。
在一个实施例中,步骤1010包括:步骤S1011,获取离散帧集合,离散帧集合包括多个离散帧图像;生成多个离散帧图像对应的多个离散帧类型的多通道图像,并确定每个离散帧类型的多通道图像对应的真实值;以及步骤S1012,获取连续帧集合,连续帧集合包括多个连续帧图像;生成多个连续帧图像对应的多个连续帧类型的多通道图像,并确定每个连续帧类型的多通道图像对应的真实值。
可以理解,本步骤中训练集中的离散帧类型的多通道图像、连续帧类型的多通道图像可以与上述检测阶段的离散帧类型的多通道图像、连续帧类型的多通道图像具有相同的分辨率、图像模式和通道数,并且可以通过对离散帧图像、连续帧图像执行与上述检测阶段中的相同的预处理而得到。
在一个实施例中,训练集中每个离散帧类型的多通道图像对应的真实值包括回归分支的回归真实值以及类型分类分支的分类真实值,并且训练集中每个连续帧类型的多通道图像对应的真实值包括回归分支的回归真实值、帧间残差分支的残差真实值以及类型分类分支的分类真实值。
在一个实施例中,步骤S1011可以包括:获取离散帧集合,离散帧集合中包括彼此没有前后关联的多个离散帧图像,多个离散帧图像中的每个离散帧图像中均包括感兴趣对象,并且具有与上述待检测图像相同的分辨率和图像模式;例如,每个离散帧图像也可以同样地通过对获取的原始图像执行对象检测、截取子图像、重置子图像尺寸至目标尺寸而确定。然后,从离散帧集合中抽取一个离散帧图像,并生成一张像素值全为0的零值图像,将该零值图像与抽取的一个离散帧图像组合成离散帧对,重复操作,直到抽取完离散帧集合中的所有离散帧图像,从而得到N1个离散帧对,其中,每一离散帧对中实际拍摄的离散帧图像定义为Fcur,生成的零值图像定义为Fhis。对于每个离散帧对,生成一张像素值全为0的单通道的第一灰度图像作为灰度残差图像,将Fcur的多色彩通道图像组合灰度残差图像生成一张多通道图像,参见图5所示,从而生成N1张多通道图像。对于每张多通道图像,通过人工标定或利用已知工具识别的方式,标定该张多通道图像的真实值GT,包括回归分支的回归真实值GTloc以及类型分类分支的分类真实值GTcls
示例地,离散帧集合中的每一个离散帧图像为一张112×112分辨率的红色、绿色、蓝色三通道图像,每张离散帧类型的多通道图像为一张112×112分辨率的红色、绿色、蓝色、灰度残差四通道图像,定义的关键点包括106个关键点,则可以人工或通过工具标定该一帧图像Fcur中的106个关键点的106个坐标(x,y),并将该106个坐标(x,y)顺次排列形成一个1×212的一维向量,作为该离散帧类型的多通道图像的回归真实值GTloc;在图9中的第三全连接层输出的分类预测值Hcls包括单个输出神经元的输出值、且该单个输出神经元的输出值表征输入图像属于离散帧类型的概率y1的情况下,该离散帧类型的多通道图像的分类真实值GTcls为y1=1。
在一个实施例中,步骤S1012可以包括:获取连续帧集合,连续帧集合中包括具有前后关联的多个连续帧图像,多个连续帧图像中的每个连续帧图像中均包括感兴趣对象,并且具有与上述待检测图像相同的分辨率和图像模式;例如,每个连续帧图像也可以同样地通过对获取的原始图像执行对象检测、截取子图像、重置子图像尺寸至目标尺寸而确定。然后,从连续帧集合中抽取相邻两个连续帧图像组合成连续帧对,重复操作,直到抽取完连续帧集合中的所有连续帧图像,从而得到N2个连续帧对,其中,每一连续帧对中后一个连续帧图像定义为Fcur,前一个连续帧图像定义为Fhis。对于每个连续帧对,将Fcur取灰度生成第二灰度图像,将Fhis取灰度生成第三灰度图像,确定第二灰度图像与第三灰度图像之差作为灰度残差图像,将Fcur的多色彩通道图像组合灰度残差图像生成一张多通道图像,参见图6所示,从而生成N2张多通道图像。对于每张多通道图像,通过人工标定或利用已知工具识别的方式,标定该张多通道图像的真实值GT,包括回归分支的回归真实值GTloc、灰度残差图像的残差真实值GTdiff以及类型分类分支的分类真实值GTcls
示例地,连续帧集合中的每一个连续帧图像为一张112×112分辨率的红色、绿色、蓝色三通道图像,每张连续帧类型的多通道图像为一张112×112分辨率的红色、绿色、蓝色、灰度残差四通道图像,定义的关键点包括106个关键点,则可以人工或通过工具标定该连续帧类型的多通道图像对应的一个连续帧对中,后一个连续帧图像Fcur中的106个关键点的106 个坐标(x,y),并将该106个坐标(x,y)顺次排列形成一个1×212的一维向量,作为该连续帧类型的多通道图像的回归真实值GTloc;标定该同一个连续帧对中,前一个连续帧图像 Fhis中的106个关键点的106个坐标(x,y),并将该106个坐标(x,y)顺次排列形成一个 1×212的一维向量,作为该连续帧类型的多通道图像的历史回归真实值GThis,从而确定该连续帧类型的多通道图像对应的灰度残差图像的残差真实值GTdiff=GTloc-GThis;在图9中的第三全连接层输出的分类预测值Hcls包括单个输出神经元的输出值、且该单个输出神经元的输出值表征输入图像属于离散帧类型的概率y1的情况下,该连续帧类型的多通道图像的分类真实值GTcls为y1=0。
进一步地,在一个实施例中,可以通过对单帧图像执行变化以模拟生成连续帧来提升效率,相应地,步骤S1012可以包括:获取单帧图像,并确定该单帧图像生成的多通道图像对应的真实值;对单帧图像执行连续的光照、颜色和/或形变处理,以模拟生成连续的多个连续帧图像;对连续的多个连续帧图像中的每一个连续帧图像进行预处理,以生成多个连续帧类型的多通道图像;根据多个连续帧图像与单帧图像之间的形变量,并基于单帧图像生成的多通道图像对应的真实值,对应确定多个连续帧图像中每个连续帧图像生成的连续帧类型的多通道图像对应的真实值。
对于本实施例中真实值的确定,具体地,可以标定原始单帧图像中各个关键点的位置,而根据其余模拟生成的连续帧图像与原始单帧图像之间的形变量,基于原始单帧图像中各个关键点的位置,即可以确定每个模拟生成的连续帧图像中各个关键点的位置,继而可以根据上述实施例中所述的方法,从原始单帧图像与其余模拟生成的连续帧图像组成的连续帧图像集合中,确定多个连续帧类型的多通道图像和每个连续帧类型的多通道图像对应的真实值。
相较于利用传统的视频获取连续帧图像并逐一确定每帧图像的真实值,本实施例中通过对单帧图像执行变化以模拟生成连续帧集合,其他连续帧图像的多通道图像对应的真实值可以根据其与原始单帧图像之间的形变量而快速确定,从而能够更快速高效地生成多个连续帧类型的多通道图像和每个连续帧类型的多通道图像对应的真实值。
步骤S1020,初始化关键点检测模型中的层权重。
在此步骤中,初始化关键点检测模型中每一层的层权重。
步骤S1030,利用训练集,对关键点检测模型重复执行前向传播计算总损失函数以及反向传播更新层权重的迭代,直至总损失函数的值收敛,以确定训练后的层权重;其中,离散帧类型的多通道图像作用于对回归分支和类型分类分支的层权重训练,并且连续帧类型的多通道图像作用于对回归分支、帧间残差分支和类型分类分支的层权重训练。
其中,总损失函数的值收敛可以指,通过总损失函数计算的损失值落入预期损失值范围内或迭代次数达到预定次数。
在一个实施例中,回归分支具有第一损失函数,第一损失函数用于表征回归分支输出的回归预测值与回归真实值之间的差异;帧间残差分支具有第二损失函数,第二损失函数用于表征帧间残差分支输出的残差预测值与残差真实值之间的差异;并且类型分类分支具有第三损失函数,第三损失函数用于表征类型分类分支输出的分类预测值与分类真实值之间的差异。
示例地,可以将训练集中的训练数据分为多个批次(Batch),分别利用每个批次的训练数据对关键点检测模型执行前向传播计算总损失函数以及反向传播更新层权重的迭代直至总损失函数的值收敛的训练。
示例地,对于单个批次而言,回归分支的第一损失函数Lloc可以为平滑L1损失函数(Smooth L1 Loss),第一损失函数Lloc定义如下:
x=GTloc-Hloc
Figure RE-GDA0003696233540000161
上式中,n为该批次中的多通道图像的总量,GTloc为该批次中每一张多通道图像的回归真实值,Hloc为该批次中每一张多通道图像的回归预测值。
对于单个批次而言,帧间残差分支的第二损失函数Ldiff也可以为平滑L1损失函数(Smooth L1 Loss),第二损失函数Ldiff定义如下:
x=GTdiff-Hdiff
Figure RE-GDA0003696233540000162
上式中,n为该批次中的多通道图像的总量,GTdiff为该批次中每一张多通道图像的残差真实值,Hdiff为该批次中每一张多通道图像的残差预测值。
对于单个批次而言,类型分类分支的第三损失函数Lcls可以为二元交叉熵损失函数 (Binary Cross Entropy Loss),第三损失函数Lcls定义如下:
Figure RE-GDA0003696233540000163
上式中,n为该批次中的多通道图像的总量,GTcls为该批次中每一张多通道图像的分类真实值,Hcls为该批次中每一张多通道图像的分类预测值。
在一个实施例中,当使用离散帧类型的多通道图像训练关键点检测模型时,关键点检测模型的总损失函数基于第一损失函数和第三损失函数确定;当使用连续帧类型的多通道图像训练关键点检测模型时,关键点检测模型的总损失函数基于第一损失函数、第二损失函数和第三损失函数确定。
关键点检测模型的总损失函数Ltotal定义如下:
Figure RE-GDA0003696233540000164
其中Lloc用于保证关键点检测模型预测的精度,Ldiff用于保证关键点检测模型在对连续帧类型的待检测图像进行预测时的稳定性,Lcls用于使关键点检测模型可以自动判别当前输入图像的类型。
在上述实施例中,例如步骤S1030中,关键点检测模型根据训练数据的不同类型,采用不同的总损失函数执行训练,这可能需要关键点检测模型在例如步骤S1030之前获知输入的训练数据的类型。在一个实施例中,关键点检测模型可以根据类型分类分支输出的分类预测值来确定训练所用的多通道图像所属的类型。示例地,在类型分类分支的激活函数为Sigmoid 激活函数,损失函数为二元交叉熵损失函数(Binary Cross Entropy Loss)时,类型分类分支输出的分类预测值Hcls可为待检测图像属于离散帧类型的概率y1,0≤y1≤1。当y1≥T时,则可以确定训练所用的多通道图像属于离散帧类型,当y1<T时,则可以确定训练所用的多通道图像属于连续帧类型。T示例地可以取0.5。在上述其他实施例中的任意步骤中,关键点检测模型或终端100也可以在需要时,根据类型分类分支输出的分类预测值来确定输入模型的多通道图像所属的类型。
步骤S1040,基于训练后的层权重,确定预先训练的关键点检测模型。
通过前述步骤的训练,即可确定优化的层权重,该优化的层权重所定义的关键点检测模型即为训练好的关键点检测模型。可以将该训练好的关键点检测模型存储于终端100中,以备在后续检测阶段中调用其以检测待检测图像中的关键点位置。
在检测阶段的上述步骤S310之后且步骤S320之前,图像关键点检测方法还包括对待检测图像执行轮廓增强处理,以生成轮廓增强后的待检测图像的情况下,相应地,在训练阶段的步骤S1010中,也可以对训练集中的每个图像执行轮廓增强处理,以进一步提升模型的关键点检测精度。
在一个实施例中,在上述步骤S1011中的获取离散帧集合之后且生成多通道图像之前,训练过程还包括对每个离散帧图像执行轮廓增强处理,以生成轮廓增强后的离散帧图像的步骤;在上述步骤S1012中的获取连续帧集合之后且生成多通道图像之前,训练过程还包括对每个连续帧图像执行轮廓增强处理,以生成轮廓增强后的连续帧图像的步骤。
本实施例中的在训练过程中的对每个离散帧图像执行轮廓增强处理,以生成轮廓增强后的离散帧图像的步骤,以及对每个连续帧图像执行轮廓增强处理,以生成轮廓增强后的连续帧图像的步骤,与上述检测阶段中的对待检测图像执行轮廓增强处理,以生成轮廓增强后的待检测图像的步骤同理,因此在此不再赘述。
应该理解的是,虽然图3和图10的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3和图10中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图12所示,提供了一种图像关键点检测装置1200,包括:图像获取模块1210、预处理模块1220、模型预测模块1230和关键点确定模块1240,其中:
图像获取模块1210,用于获取待检测图像;
预处理模块1220,用于根据待检测图像的类型,对待检测图像进行对应的预处理,以生成对应类型的多通道图像;其中,类型包括离散帧类型或连续帧类型;
模型预测模块1230,用于将多通道图像输入预先训练的关键点检测模型中;其中,预先训练的关键点检测模型包括并行设置的回归分支和帧间残差分支;以及
关键点确定模块1240,用于当待检测图像属于离散帧类型时,获取回归分支输出的回归预测值,基于回归预测值,确定待检测图像中的多个关键点的坐标;并且当待检测图像属于连续帧类型时,获取回归分支输出的回归预测值以及帧间残差分支输出的残差预测值,基于回归预测值和残差预测值,确定待检测图像中的多个关键点的坐标。
关于图像关键点检测装置1200的具体限定可以参见上文中对于图像关键点检测方法的限定,在此不再赘述。上述图像关键点检测装置1200中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端100,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种图像关键点检测方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取待检测图像;
根据待检测图像的类型,对待检测图像进行对应的预处理,以生成对应类型的多通道图像;其中,类型包括离散帧类型或连续帧类型;
将多通道图像输入预先训练的关键点检测模型中;其中,预先训练的关键点检测模型包括并行设置的回归分支和帧间残差分支;
当待检测图像属于离散帧类型时,获取回归分支输出的回归预测值,基于回归预测值,确定待检测图像中的多个关键点的坐标;
当待检测图像属于连续帧类型时,获取回归分支输出的回归预测值以及帧间残差分支输出的残差预测值,基于回归预测值和残差预测值,确定待检测图像中的多个关键点的坐标。
在其他实施例中,处理器执行计算机程序时还实现如上任意实施例的图像关键点检测方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取待检测图像;
根据待检测图像的类型,对待检测图像进行对应的预处理,以生成对应类型的多通道图像;其中,类型包括离散帧类型或连续帧类型;
将多通道图像输入预先训练的关键点检测模型中;其中,预先训练的关键点检测模型包括并行设置的回归分支和帧间残差分支;
当待检测图像属于离散帧类型时,获取回归分支输出的回归预测值,基于回归预测值,确定待检测图像中的多个关键点的坐标;
当待检测图像属于连续帧类型时,获取回归分支输出的回归预测值以及帧间残差分支输出的残差预测值,基于回归预测值和残差预测值,确定待检测图像中的多个关键点的坐标。
在其他实施例中,计算机程序被处理器执行时还实现如上任意实施例的图像关键点检测方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM (SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM (DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (17)

1.一种图像关键点检测方法,所述方法包括:
获取待检测图像;
根据所述待检测图像的类型,对所述待检测图像进行对应的预处理,以生成对应类型的多通道图像;其中,所述类型包括离散帧类型或连续帧类型;
将所述多通道图像输入预先训练的关键点检测模型中;其中,所述预先训练的关键点检测模型包括并行设置的回归分支和帧间残差分支;
当所述待检测图像属于所述离散帧类型时,获取所述回归分支输出的回归预测值,基于所述回归预测值,确定所述待检测图像中的多个关键点的坐标;
当所述待检测图像属于所述连续帧类型时,获取所述回归分支输出的回归预测值以及所述帧间残差分支输出的残差预测值,基于所述回归预测值和所述残差预测值,确定所述待检测图像中的多个关键点的坐标。
2.根据权利要求1所述的方法,其特征在于,所述待检测图像为多色彩通道图像,所述根据所述待检测图像的类型,对所述待检测图像进行对应的预处理,以生成对应类型的多通道图像,包括:
当所述待检测图像属于所述离散帧类型时,生成与所述待检测图像相同分辨率的像素值均为零的第一灰度图像作为灰度残差图像,将所述多色彩通道图像组合所述灰度残差图像以生成离散帧类型的多通道图像;
当所述待检测图像属于所述连续帧类型时,确定所述待检测图像的第二灰度图像,获取与所述待检测图像相邻的前一帧图像,确定所述前一帧图像的第三灰度图像,确定所述第二灰度图像与所述第三灰度图像之差作为灰度残差图像,将所述多色彩通道图像组合所述灰度残差图像以生成连续帧类型的多通道图像。
3.根据权利要求2所述的方法,其特征在于,所述多色彩通道图像为红色、绿色、蓝色三通道图像,生成的所述多通道图像为红色、绿色、蓝色、灰度残差四通道图像。
4.根据权利要求1所述的方法,其特征在于,当所述待检测图像属于所述连续帧类型时,所述基于所述回归预测值和所述残差预测值,确定所述待检测图像中的多个关键点的坐标,包括:
将所述待检测图像的所述回归预测值,作为所述待检测图像的直接回归值;
获取与所述待检测图像相邻的前一帧图像在输入所述关键点检测模型后回归分支所对应输出的回归预测值,将所述前一帧图像的所述回归预测值与所述待检测图像的所述残差预测值之和,作为所述待检测图像的推测回归值;
计算所述直接回归值与所述推测回归值的加权和,作为所述待检测图像的关键点推测值;
基于所述关键点推测值,确定所述待检测图像中的多个关键点的坐标。
5.根据权利要求1所述的方法,其特征在于,根据所述待检测图像的所述类型,对所述待检测图像进行对应的预处理,以生成对应类型的多通道图像之前,还包括:
对所述待检测图像执行轮廓增强处理,以生成轮廓增强后的待检测图像。
6.根据权利要求1至5中任一项所述的方法,其特征在于,在所述关键点检测模型的训练阶段中,所述关键点检测模型包括并行设置的回归分支、帧间残差分支和类型分类分支。
7.根据权利要求6所述的方法,其特征在于,在所述训练阶段中,所述关键点检测模型还包括骨干网络,所述骨干网络接收所述多通道图像,所述骨干网络输出中间特征图,并将所述中间特征图分别馈入所述回归分支、所述帧间残差分支和所述类型分类分支。
8.根据权利要求6所述的方法,其特征在于,
所述回归分支包括顺次串行的多个第一卷积神经网络层、展平层以及第一全连接层;
所述帧间残差分支包括顺次串行的多个第二卷积神经网络层、展平层以及第二全连接层;
所述类型分类分支包括顺次串行的多个第三卷积神经网络层、展平层以及第三全连接层。
9.根据权利要求8所述的方法,其特征在于,所述第一全连接层和所述第二全连接层均具有第一数量的输出神经元,所述第一数量根据所述多个关键点的总数确定;和/或
所述第三全连接层具有第二数量的输出神经元,所述第二数量取决于所述类型分类分支的损失函数类别。
10.根据权利要求7至9中任意一项所述的方法,其特征在于,在所述获取待检测图像之前,所述关键点检测模型的训练过程包括:
获取训练集;所述训练集包括多个离散帧类型的多通道图像和每个离散帧类型的多通道图像对应的真实值,以及多个连续帧类型的多通道图像和每个连续帧类型的多通道图像对应的真实值;
初始化所述关键点检测模型中的层权重;
利用所述训练集,对所述关键点检测模型重复执行前向传播计算总损失函数以及反向传播更新层权重的迭代,直至所述总损失函数的值收敛,以确定训练后的层权重;其中,所述离散帧类型的多通道图像作用于对所述回归分支和所述类型分类分支的层权重训练,并且所述连续帧类型的多通道图像作用于对所述回归分支、所述帧间残差分支和所述类型分类分支的层权重训练;
基于所述训练后的层权重,确定所述预先训练的关键点检测模型。
11.根据权利要求10所述的方法,其特征在于,获取多个连续帧类型的多通道图像和每个连续帧类型的多通道图像对应的真实值包括:
获取单帧图像,并确定所述单帧图像生成的多通道图像对应的真实值;
对所述单帧图像执行连续的光照、颜色和/或形变处理,以模拟生成连续的多个连续帧图像;
对连续的所述多个连续帧图像中的每一个连续帧图像进行预处理,以生成多个连续帧类型的多通道图像;
根据所述多个连续帧图像与所述单帧图像之间的形变量,并基于所述单帧图像生成的多通道图像对应的真实值,对应确定所述多个连续帧图像中每个连续帧图像生成的连续帧类型的多通道图像对应的真实值。
12.根据权利要求10所述的方法,其特征在于,
所述训练集中每个离散帧类型的多通道图像对应的所述真实值包括所述回归分支的回归真实值以及所述类型分类分支的分类真实值,并且
所述训练集中每个连续帧类型的多通道图像对应的所述真实值包括所述回归分支的回归真实值、所述帧间残差分支的残差真实值以及所述类型分类分支的分类真实值。
13.根据权利要求12所述的方法,其特征在于,
所述回归分支具有第一损失函数,所述第一损失函数用于表征所述回归分支输出的回归预测值与所述回归真实值之间的差异;
所述帧间残差分支具有第二损失函数,所述第二损失函数用于表征所述帧间残差分支输出的残差预测值与所述残差真实值之间的差异;并且
所述类型分类分支具有第三损失函数,所述第三损失函数用于表征所述类型分类分支输出的分类预测值与所述分类真实值之间的差异。
14.根据权利要求12所述的方法,当使用所述离散帧类型的多通道图像训练所述关键点检测模型时,所述关键点检测模型的所述总损失函数基于所述第一损失函数和所述第三损失函数确定;
当使用所述连续帧类型的多通道图像训练所述关键点检测模型时,所述关键点检测模型的所述总损失函数基于所述第一损失函数、所述第二损失函数和所述第三损失函数确定。
15.一种图像关键点检测装置,其特征在于,所述装置包括:
图像获取模块,用于获取待检测图像;
预处理模块,用于根据所述待检测图像的类型,对所述待检测图像进行对应的预处理,以生成对应类型的多通道图像;其中,所述类型包括离散帧类型或连续帧类型;
模型预测模块,用于将所述多通道图像输入预先训练的关键点检测模型中;其中,所述预先训练的关键点检测模型包括并行设置的回归分支和帧间残差分支;以及
关键点确定模块,用于当所述待检测图像属于所述离散帧类型时,获取所述回归分支输出的回归预测值,基于所述回归预测值,确定所述待检测图像中的多个关键点的坐标;并且当所述待检测图像属于所述连续帧类型时,获取所述回归分支输出的回归预测值以及所述帧间残差分支输出的残差预测值,基于所述回归预测值和所述残差预测值,确定所述待检测图像中的多个关键点的坐标。
16.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至14中任一项所述方法的步骤。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至14中任一项所述的方法的步骤。
CN202210448849.XA 2022-04-26 2022-04-26 图像关键点检测方法、装置、计算机设备和存储介质 Pending CN114926876A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210448849.XA CN114926876A (zh) 2022-04-26 2022-04-26 图像关键点检测方法、装置、计算机设备和存储介质
US18/214,168 US20230343137A1 (en) 2022-04-26 2023-06-26 Method and apparatus for detecting key point of image, computer device and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210448849.XA CN114926876A (zh) 2022-04-26 2022-04-26 图像关键点检测方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN114926876A true CN114926876A (zh) 2022-08-19

Family

ID=82806117

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210448849.XA Pending CN114926876A (zh) 2022-04-26 2022-04-26 图像关键点检测方法、装置、计算机设备和存储介质

Country Status (2)

Country Link
US (1) US20230343137A1 (zh)
CN (1) CN114926876A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117788720B (zh) * 2024-02-26 2024-05-17 山东齐鲁壹点传媒有限公司 一种生成用户人脸模型的方法、存储介质及终端

Also Published As

Publication number Publication date
US20230343137A1 (en) 2023-10-26

Similar Documents

Publication Publication Date Title
US11870947B2 (en) Generating images using neural networks
US11551333B2 (en) Image reconstruction method and device
US11556797B2 (en) Systems and methods for polygon object annotation and a method of training an object annotation system
CN107945204B (zh) 一种基于生成对抗网络的像素级人像抠图方法
CN106022221B (zh) 一种图像处理方法及处理系统
WO2019100724A1 (zh) 训练多标签分类模型的方法和装置
CN107529650B (zh) 闭环检测方法、装置及计算机设备
CN110334587B (zh) 人脸关键点定位模型的训练方法、装置及关键点定位方法
CN111368672A (zh) 一种用于遗传病面部识别模型的构建方法及装置
CN114332578A (zh) 图像异常检测模型训练方法、图像异常检测方法和装置
US20220156943A1 (en) Consistency measure for image segmentation processes
CN113269149B (zh) 活体人脸图像的检测方法、装置、计算机设备及存储介质
CN110874575A (zh) 一种脸部图像处理方法及相关设备
CN113421276A (zh) 一种图像处理方法、装置及存储介质
CN113674190A (zh) 基于密集连接生成对抗网络的图像融合方法和装置
Saleh et al. Adaptive uncertainty distribution in deep learning for unsupervised underwater image enhancement
CN111127309A (zh) 肖像风格迁移模型训练方法、肖像风格迁移方法以及装置
CN113378812A (zh) 一种基于Mask R-CNN和CRNN的数字表盘识别方法
US20230343137A1 (en) Method and apparatus for detecting key point of image, computer device and storage medium
CN117542122B (zh) 人体位姿估计与三维重建方法、网络训练方法及装置
CN116740261A (zh) 图像重建方法和装置、图像重建模型的训练方法和装置
CN114241587A (zh) 人脸活体检测对抗鲁棒性的评估方法及装置
CN112699809B (zh) 痘痘类别识别方法、装置、计算机设备及存储介质
CN115170834A (zh) 色差度量方法、装置、电子设备
CN115115552A (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