CN110738124A - 基于关节点坐标的人体姿势识别方法及系统 - Google Patents
基于关节点坐标的人体姿势识别方法及系统 Download PDFInfo
- Publication number
- CN110738124A CN110738124A CN201910885673.2A CN201910885673A CN110738124A CN 110738124 A CN110738124 A CN 110738124A CN 201910885673 A CN201910885673 A CN 201910885673A CN 110738124 A CN110738124 A CN 110738124A
- Authority
- CN
- China
- Prior art keywords
- human body
- frame
- posture
- module
- video stream
- 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.)
- Granted
Links
Images
Classifications
-
- 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
- G06V40/103—Static body considered as a whole, e.g. static pedestrian or occupant recognition
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及活体检测技术领域,提出一种基于关节点坐标的人体姿势识别方法及系统,其中的方法包括:启动外部应用模块;所述外部应用模块读取人体姿势识别模块所需的配置参数信息,调用所述人体姿势识别模块的初始化接口并向所述人体姿势识别模块中传入所读取的配置参数信息;所述人体姿势识别模块根据所述配置参数信息对待识别图像中的人体姿势进行识别;所述外部应用模块间隔预设时间循环调用所述人体姿势识别模块的获取姿势识别结果接口,获取对应的人体姿势识别结果。本发明能够针对不同模型的人体关节点坐标集合,选用不同的姿势识别算法,并通过统一的接口提供姿势识别的结果,效率高、灵活性强。
Description
技术领域
本发明涉及活体检测技术领域,尤其涉及一种基于关节点坐标的人体姿势识别方法和系统。
背景技术
目前,人体姿态识别或人体姿势识别通常被定义为人体关节点的定位问题,一直以来是计算机视觉领域的重要关注点,已在各领域得到广泛应用,现有的人体姿势识别方法,主要是通过姿势模型检测出图像中的人体的关节点坐标,然后通过分析这些关节点坐标,对人体姿势进行识别。但是,现有对人体姿势的分析方法种类较多且一般比较复杂,增加了其应用的难度;另外,由于项目的限制,当前的应用程序往往很难复用现有的姿势识别模块,以及切换不同类型的姿势识别模块,从而导致对各种不同的姿势识别模块的兼容性较差。
发明内容
本发明提供一种基于关节点坐标的人体姿势识别方法及系统,其主要目的在于。
为实现上述目的,本发明提供一种基于关节点坐标的人体姿势识别方法,所述方法包括:
启动外部应用模块;
所述外部应用模块读取人体姿势识别模块所需的配置参数信息,调用所述人体姿势识别模块的初始化接口并向所述人体姿势识别模块中传入所读取的配置参数信息;
所述人体姿势识别模块根据所述配置参数信息对待识别图像中的人体姿势进行识别;
所述外部应用模块间隔预设时间循环调用所述人体姿势识别模块的获取姿势识别结果接口,获取对应的人体姿势识别结果。
在一个实施例中,所述人体姿势识别模块所需的配置参数包括:Yolo模型类型、Yolo模型文件路径、姿势模型类型、姿势模型文件路径、视频流url、视频流帧缩放后的高、视频流帧缩放后的宽、所使用GPU/CPU的设备号、可视区域比例、丢帧开关、丢帧比例、人体位置校准开关、人体位置校准区域坐标、人体位置校准区域展示开关、录制开关、录制路径、帧保存路径、姿势识别算法模型、姿势识别算法模型文件路径。
在一个实施例中,所述人体姿势识别模块包括人体关节点坐标检测模块和调试子模块;
所述人体关节点坐标检测模块的配置参数包括:Yolo模型类型、Yolo模型文件路径、姿势模型类型、姿势模型文件路径、视频流url、视频流帧缩放后的高、视频流帧缩放后的宽、所使用GPU/CPU的设备号、丢帧开关、丢帧比例、人体位置校准开关、人体位置校准区域坐标、人体位置校准区域展示开关。
在一个实施例中,所述调用所述人体姿势识别模块的初始化接口并向所述人体姿势识别模块中传入所读取的配置参数信息的步骤包括:
校验所述配置参数;
当所述配置参数校验完成时,初始化所述人体姿势识别模块的配置参数;
根据所述人体姿势识别模块的配置参数的初始化结果,初始化所述人体姿势识别模块中的姿势识别算法模型;
当所述姿势识别算法模型初始化完成时,初始化所述人体姿势识别模块的调试子模块;
当所述调试子模块初始化完成时,调用所述人体关节点坐标检测模块的初始化接口并传入所述配置参数信息;
当所述配置参数信息传入至所述人体关节点坐标检测模块的初始化接口时,调用所述人体关节点坐标检测模块的启动接口。
在一个实施例中,所述调用所述人体关节点坐标检测模块的初始化接口并传入所述配置参数信息的步骤包括:
初始化所述人体关节点坐标检测模块的配置参数;
当所述人体关节点坐标检测模块的配置参数初始化完成时,根据丢帧开关初始化预设的丢帧子模块;
根据人体位置校准开关和人体位置校准区域展示开关初始化预设的校准子模块。
在一个实施例中,所述人体关节点坐标检测模块用于执行循环工作的三个线程,所述三个线程分别为:视频流获取和解析服务线程、yolo服务线程、姿势服务线程;
所述人体关节点坐标检测模块的工作流程包括:
通过所述视频流获取和解析服务线程判断当前缓存及所述姿势服务线程状态,若缓存未满且所述姿势服务线程为已完成工作状态,则读取待识别的视频流的当前帧;
当所述当前帧读取完成时,判断丢帧开关状态,若丢帧开关状态为开启,则按丢帧比例进行丢帧处理;
当所述丢帧处理完成时,根据所述视频流帧缩放后的高和视频流帧缩放后的宽对当前帧进行缩放处理,生成处理结果;
将所述处理结果保存并通知所述yolo服务线程;
所述yolo服务线程调用yolo底层算法接口计算出所述当前帧的人像框;
根据校准框使用算法从所述人像框中筛选出最优人像框并获取处理结果;
将当前人像框的处理结果保存并通知所述姿势服务线程;
所述姿势服务线程调用姿势底层算法接口计算出人体姿势节点坐标;
若所述姿势节点坐标符合预设条件,则通过回调函数将所述姿势节点坐标结果传给所述人体姿势识别模块;
将上述处理结果保存并通知视频流获取和解析服务线程,并循环执行上述步骤。
此外,为实现上述目的,本发明还提供一种基于关节点坐标的人体姿势识别系统,所述系统包括:
启动模块,用于启动外部应用模块;
外部应用模块,用于读取人体姿势识别模块所需的配置参数信息,调用所述人体姿势识别模块的初始化接口并向所述人体姿势识别模块中传入所读取的配置参数信息;间隔预设时间循环调用所述人体姿势识别模块的获取姿势识别结果接口,获取对应的人体姿势识别结果;
人体姿势识别模块,用于根据所述配置参数信息对待识别图像中的人体姿势进行识别。
在一个实施例中,所述人体姿势识别模块所需的配置参数包括:Yolo模型类型、Yolo模型文件路径、姿势模型类型、姿势模型文件路径、视频流url、视频流帧缩放后的高、视频流帧缩放后的宽、所使用GPU/CPU的设备号、可视区域比例、丢帧开关、丢帧比例、人体位置校准开关、人体位置校准区域坐标、人体位置校准区域展示开关、录制开关、录制路径、帧保存路径、姿势识别算法模型、姿势识别算法模型文件路径。
在一个实施例中,所述人体姿势识别模块包括人体关节点坐标检测模块和调试子模块;
所述人体关节点坐标检测模块的配置参数包括:Yolo模型类型、Yolo模型文件路径、姿势模型类型、姿势模型文件路径、视频流url、视频流帧缩放后的高、视频流帧缩放后的宽、所使用GPU/CPU的设备号、丢帧开关、丢帧比例、人体位置校准开关、人体位置校准区域坐标、人体位置校准区域展示开关。
在一个实施例中,所述人体关节点坐标检测模块包括:
当前帧读取单元,用于通过所述视频流获取和解析服务线程判断当前缓存及所述姿势服务线程状态,若缓存未满且所述姿势服务线程为已完成工作状态,则读取待识别的视频流的当前帧;
丢帧处理单元,用于当所述当前帧读取完成时,判断丢帧开关状态,若丢帧开关状态为开启,则按丢帧比例进行丢帧处理;
处理结果生成单元,用于当所述丢帧处理完成时,根据所述视频流帧缩放后的高和视频流帧缩放后的宽对当前帧进行缩放处理,生成处理结果;
保存及通知单元,用于将所述处理结果保存并通知所述yolo服务线程;
人像框获取单元,用于所述yolo服务线程调用yolo底层算法接口计算出所述当前帧的人像框;
最优人像框获取单元,用于根据校准框使用算法从所述人像框中筛选出最优人像框并获取处理结果;
最优人像框处理单元,用于将当前人像框的处理结果保存并通知所述姿势服务线程;
人体姿势节点坐标获取单元,用于所述姿势服务线程调用姿势底层算法接口计算出人体姿势节点坐标;
节点坐标反馈单元,用于若所述姿势节点坐标符合预设条件,则通过回调函数将所述姿势节点坐标结果传给所述人体姿势识别模块;
通知单元,用于将上述处理结果保存并通知视频流获取和解析服务线程,并循环执行上述单元。
本发明提出的基于关节点坐标的人体姿势识别方法及系统,通过姿势识别结果接口为应用程序提供统一的识别接口,能够提高开发效率,且通过配置参数的方式可满足应用程序对姿势识别的多种需求,能够随时切换工作模式,人体姿势识别效率高、速度快、灵活性强。
附图说明
图1为本发明基于关节点坐标的人体姿势识别方法具体实施例的应用环境示意图;
图2为图1中本发明基于关节点坐标的人体姿势识别程序具体实施例的模块示意图;
图3为本发明基于关节点坐标的人体姿势识别方法具体实施例的流程图;
图4为本发明基于关节点坐标的人体姿势识别方法的详细流程图;
图5为本发明人体关节点坐标检测模块的工作流程图一;
图6为本发明人体关节点坐标检测模块的工作流程图二。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种基于关节点坐标的人体姿势识别方法,可应用于一种电子装置1。参照图1所示,为本发明基于关节点坐标的人体姿势识别方法较佳实施例的应用环境示意图。
在本实施例中,电子装置1可以是服务器、智能手机、平板电脑、便携计算机、桌上型计算机等具有运算功能的终端设备。
该电子装置1包括:处理器12、存储器11、网络接口14及通信总线15。
存储器11包括至少一种类型的可读存储介质。所述至少一种类型的可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器11等的非易失性存储介质。在一些实施例中,所述可读存储介质可以是所述电子装置1的内部存储单元,例如该电子装置1的硬盘。在另一些实施例中,所述可读存储介质也可以是所述电子装置1的外部存储器11,例如所述电子装置1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
在本实施例中,所述存储器11的可读存储介质通常用于存储安装于所述电子装置1的基于关节点坐标的人体姿势识别程序10等。所述存储器11还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行基于关节点坐标的人体姿势识别程序10等。
网络接口14可选地可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该电子装置1与其他电子设备之间建立通信连接。
通信总线15用于实现这些组件之间的连接通信。
图1仅示出了具有组件11-15的电子装置1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
可选地,该电子装置1还可以包括用户接口,用户接口可以包括输入单元比如键盘(Keyboard)、语音输入装置比如麦克风(microphone)等具有语音识别功能的设备、语音输出装置比如音响、耳机等,可选地用户接口还可以包括标准的有线接口、无线接口。
可选地,该电子装置1还可以包括显示器,显示器也可以称为显示屏或显示单元。在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light-Emitting Diode,OLED)触摸器等。显示器用于显示在电子装置1中处理的信息以及用于显示可视化的用户界面。
可选地,该电子装置1还包括触摸传感器。所述触摸传感器所提供的供用户进行触摸操作的区域称为触控区域。此外,这里所述的触摸传感器可以为电阻式触摸传感器、电容式触摸传感器等。而且,所述触摸传感器不仅包括接触式的触摸传感器,也可包括接近式的触摸传感器等。此外,所述触摸传感器可以为单个传感器,也可以为例如阵列布置的多个传感器。
此外,该电子装置1的显示器的面积可以与所述触摸传感器的面积相同,也可以不同。可选地,将显示器与所述触摸传感器层叠设置,以形成触摸显示屏。该装置基于触摸显示屏侦测用户触发的触控操作。
可选地,该电子装置1还可以包括射频(Radio Frequency,RF)电路,传感器、音频电路等等,在此不再赘述。
在图1所示的装置实施例中,作为一种计算机存储介质的存储器11中可以包括操作系统以及基于关节点坐标的人体姿势识别程序10;处理器12执行存储器11中存储的基于关节点坐标的人体姿势识别程序10时实现如下步骤:
启动外部应用模块;
通过所述外部应用模块读取人体姿势识别模块所需的配置参数信息,调用所述人体姿势识别模块的初始化接口并向所述人体姿势识别模块中传入所读取的配置参数信息;
所述人体姿势识别模块根据所述配置参数信息对待识别图像中的人体姿势进行识别;
所述外部应用模块间隔预设时间循环调用所述人体姿势识别模块的获取姿势识别结果接口,获取对应的人体姿势识别结果。
在一个实施例中,所述人体姿势识别模块所需的配置参数包括:Yolo模型类型、Yolo模型文件路径、姿势模型类型、姿势模型文件路径、视频流url、视频流帧缩放后的高、视频流帧缩放后的宽、所使用GPU/CPU的设备号、可视区域比例、丢帧开关、丢帧比例、人体位置校准开关、人体位置校准区域坐标、人体位置校准区域展示开关、录制开关、录制路径、帧保存路径、姿势识别算法模型、姿势识别算法模型文件路径。
在一个实施例中,所述人体姿势识别模块包括人体关节点坐标检测模块和调试子模块;
所述人体关节点坐标检测模块的配置参数包括:Yolo模型类型、Yolo模型文件路径、姿势模型类型、姿势模型文件路径、视频流url、视频流帧缩放后的高、视频流帧缩放后的宽、所使用GPU/CPU的设备号、丢帧开关、丢帧比例、人体位置校准开关、人体位置校准区域坐标、人体位置校准区域展示开关。
在一个实施例中,所述调用所述人体姿势识别模块的初始化接口并向所述人体姿势识别模块中传入所读取的配置参数信息的步骤包括:
校验所述配置参数;
当所述配置参数校验完成时,初始化所述人体姿势识别模块的配置参数;
根据所述人体姿势识别模块的配置参数的初始化结果,初始化所述人体姿势识别模块中的姿势识别算法模型;
当所述姿势识别算法模型初始化完成时,初始化所述人体姿势识别模块的调试子模块;
当所述调试子模块初始化完成时,调用所述人体关节点坐标检测模块的初始化接口并传入所述配置参数信息;
当所述配置参数信息传入至所述人体关节点坐标检测模块的初始化接口时,调用所述人体关节点坐标检测模块的启动接口。
在一个实施例中,所述调用所述人体关节点坐标检测模块的初始化接口并传入所述配置参数信息的步骤包括:
初始化所述人体关节点坐标检测模块的配置参数;
当所述人体关节点坐标检测模块的配置参数初始化完成时,根据丢帧开关初始化预设的丢帧子模块;
根据人体位置校准开关和人体位置校准区域展示开关初始化预设的校准子模块。
在一个实施例中,所述人体关节点坐标检测模块用于执行循环工作的三个线程,所述三个线程分别为:视频流获取和解析服务线程、yolo服务线程、姿势服务线程;
所述人体关节点坐标检测模块的工作流程包括:
通过所述视频流获取和解析服务线程判断当前缓存及所述姿势服务线程状态,若缓存未满且所述姿势服务线程为已完成工作状态,则读取待识别的视频流的当前帧;
当所述当前帧读取完成时,判断丢帧开关状态,若丢帧开关状态为开启,则按丢帧比例进行丢帧处理;
当所述丢帧处理完成时,根据所述视频流帧缩放后的高和视频流帧缩放后的宽对当前帧进行缩放处理,生成处理结果;
将所述处理结果保存并通知所述yolo服务线程;
所述yolo服务线程调用yolo底层算法接口计算出所述当前帧的人像框;
根据校准框使用算法从所述人像框中筛选出最优人像框并获取处理结果;
将当前人像框的处理结果保存并通知所述姿势服务线程;
所述姿势服务线程调用姿势底层算法接口计算出人体姿势节点坐标;
若所述姿势节点坐标符合预设条件,则通过回调函数将所述姿势节点坐标结果传给所述人体姿势识别模块;
将上述处理结果保存并通知视频流获取和解析服务线程,并循环执行上述步骤。
上述实施例提出的电子装置1,能够快速的应用人体姿势识别算法,提高了应用的开发和使用效率2、能够迅速切换不同的人体识别算法和工作模式,以满足应用的不同需求;3、能够较好的支持模型参数分析和调试。
此外,本发明还提供一种基于关节点坐标的人体姿势识别方法。参照图3本发明基于关节点坐标的人体姿势识别方法较佳实施例的流程图,以及图4本发明基于关节点坐标的人体姿势识别方法的详细流程图共同所示,该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
在本实施例中,基于关节点坐标的人体姿势识别方法包括以下步骤:
S110:启动外部应用模块。
S120:通过所述外部应用模块读取人体姿势识别模块所需的配置参数信息,调用所述人体姿势识别模块的初始化接口并向所述人体姿势识别模块中传入所读取的配置参数信息。
其中,可通过应用程序创建线程并启动外部应用模块,待获取到人体姿势识别结果后,外部应用模块可根据人体姿势识别结果执行相应的功能。例如,应用程序为安装在电子装置上且用于安全驾驶的相关软件,为使该应用程序具备驾驶人员是否安全驾驶的监督功能,可通过该应用程序创建线程并启动外部应用模块,待获取到人体姿势识别结果后,外部应用模块可根据人体姿势识别结果判断当前驾驶人员是否为安全驾驶姿势,并在其姿势错误的情况下,进行提醒警示等。
进一步地,所述人体姿势识别模块所需的配置参数包括:Yolo模型类型、Yolo模型文件路径、姿势模型类型、姿势模型文件路径、视频流url、视频流帧缩放后的高、视频流帧缩放后的宽、所使用GPU/CPU的设备号、可视区域比例、丢帧开关、丢帧比例、人体位置校准开关、人体位置校准区域坐标、人体位置校准区域展示开关、录制开关、录制路径、帧保存路径、姿势识别算法模型、姿势识别算法模型文件路径。
其中,人体姿势识别模块包括人体关节点坐标检测模块和调试子模块;人体关节点坐标检测模块的配置参数包括:Yolo模型类型、Yolo模型文件路径、姿势模型类型、姿势模型文件路径、视频流url、视频流帧缩放后的高、视频流帧缩放后的宽、所使用GPU/CPU的设备号、丢帧开关、丢帧比例、人体位置校准开关、人体位置校准区域坐标、人体位置校准区域展示开关。
具体地,所述通过所述外部应用模块调用所述人体姿势识别模块的初始化接口并向所述人体姿势识别模块中传入所读取的配置参数信息的步骤包括:
1、校验所述配置参数;
2、当配置参数校验完成时,初始化所述人体姿势识别模块的配置参数;
3、根据所述人体姿势识别模块的配置参数的初始化结果,初始化所述人体姿势识别模块中的姿势识别算法模型;
4、当所述姿势识别算法模型初始化完成时,初始化所述人体姿势识别模块的调试子模块;
5、当所述调试子模块初始化完成时,调用所述人体关节点坐标检测模块的初始化接口并传入所述配置参信息数;
6、当所述配置参数信息传入至所述人体关节点坐标检测模块的初始化接口时,调用所述人体关节点坐标检测模块的启动接口。
另外,在上述步骤5中,调用所述人体关节点坐标检测模块的初始化接口并传入所述配置参数信息的步骤包括:
(1)、初始化所述人体关节点坐标检测模块的配置参数;
(2)、当所述人体关节点坐标检测模块的配置参数初始化完成时,根据丢帧开关初始化预设的丢帧子模块;
(3)、根据人体位置校准开关和人体位置校准区域展示开关初始化预设的校准子模块。
其中,校准子模块主要作用是进行人体位置校准以及人体位置校准区域展示,具体地,可设置在视频流中展示人体位置的校准框,基于校准框提示姿势识别人员调整其位置,直至其位于校准框内,而对于严重偏离校准框的姿势识别人员,其动作姿势可视为无效。
在上述步骤6中,所述调用所述人体关节点坐标检测模块的初始化接口的步骤包括依次启动以下各设备或线程:
1、启用cuda库所使用的GPU/CPU设备;
2、根据yolo模型类型、yolo模型文件路径、GPU/CPU设备号启动yolo服务线程;
3、根据姿势模型类型、姿势模型文件路径、GPU/CPU设备号启动姿势服务线程;
4、启动视频流获取和解析服务线程。
其中,CUDA(Compute Unified Device Architecture,统一计算设备架构)属于一种编程模型,能够在应用程序中充分利用CPU和GPU各自的优点。
YOLO作为一种目标检测方法,其能够在快速检测的同时达到较高的准确率。将目标检测任务看作目标区域预测和类别预测的回归问题,该方法采用单个神经网络直接预测物品边界和类别概率,实现端到端的物品检测,基于深度学习方法的一个特点就是实现端到端的检测。相对于其它目标检测与识别方法(例如Fast R-CNN)将目标识别任务分类目标区域预测和类别预测等多个流程,YOLO将目标区域预测和目标类别预测整合于单个神经网络模型中,能够实现在准确率较高的情况下进行快速目标检测与识别,更加适合现场应用环境。
S130:所述人体姿势识别模块根据所述配置参数信息对待识别图像中的人体姿势进行识别。
其中,基于人像和可视区域的关系,通常人像状态存在七种情况,正常状态:0-未出可视区域,即姿势识别人员处于可视区域内(可视区域就是实际用于UI展示的视频区域);异常状态:1-身体左侧出可视区域;2-身体右侧出可视区域;3-身体顶部出可视区域;4-身体底部出可视区域;5-身体离得太近;6-没有检测到人。在本发明的人体姿势识别结果的获取过程中:当应用程序启动后,人体关节点坐标检测模块的三个线程:视频流获取和解析服务线程、yolo服务线程、姿势服务线程将会全力的进行循环工作。视频流获取和解析服务线程处理完一帧图像之后,会将当次结果传给yolo服务线程;yolo服务线程则会解析出所有符合条件的人像框并将其处理结果传送给姿势服务线程;姿势服务线程分析出人像框对应的人体姿势节点坐标后,通过回调函数将符合要求的人体姿势节点坐标传送给人体姿势识别模块处理。这里的回调函数属于人体姿势识别模块,其在进行人体关节点坐标检测模块的初始化的时候,作为一个初始化参数被注册进了关节点坐标检测模块中。
具体地,如图5人体关节点坐标检测模块的工作流程图一所示,人体关节点坐标检测模块用于执行循环工作的三个线程,三个线程分别为:视频流获取和解析服务线程、yolo服务线程、姿势服务线程,所述人体关节点坐标检测模块的工作流程包括:
1、通过所述视频流获取和解析服务线程判断当前缓存及所述姿势服务线程状态,若缓存未满且所述姿势服务线程为已完成工作状态,则读取待识别的视频流的当前帧;
2、当所述当前帧读取完成时,判断丢帧开关状态,若丢帧开关状态为开启,则按丢帧比例进行丢帧处理;
3、当所述丢帧处理完成时,根据所述视频流帧缩放后的高和视频流帧缩放后的宽对当前帧进行缩放处理,生成处理结果;
4、将所述处理结果保存并通知所述yolo服务线程;
5、所述yolo服务线程调用yolo底层算法接口计算出所述当前帧的人像框;
6、根据校准框使用算法从所述人像框中筛选出最优人像框并获取处理结果;
7、将当前人像框的处理结果保存并通知所述姿势服务线程;
8、所述姿势服务线程调用姿势底层算法接口计算出人体姿势节点坐标;
9、若所述姿势节点坐标符合预设条件,则通过回调函数将所述姿势节点坐标结果传给所述人体姿势识别模块;
10、将上述处理结果保存并通知视频流获取和解析服务线程,并循环执行上述步骤。
S140:所述外部应用模块间隔预设时间循环调用所述人体姿势识别模块的获取姿势识别结果接口,获取对应的人体姿势识别结果。
其中,人体姿势识别模块的回调函数主要负责分析人体关节点坐标以得出人体姿势结果,并将所有需要的姿势识别结果保存到缓存。所述人体姿势识别模块的获取姿势识别结果接口则会将缓存的当前结果返回给调用者(本发明的调用者为外部应用模块)。
进一步地,如图6人体关节点坐标检测模块的工作流程图二所示,通过回调函数将所有需要的姿势节点坐标结果传给所述人体姿势识别模块后,人体姿势识别模块将关节点坐标转化为姿势识别算法模型可识别的输入参数;然后,调用姿势识别算法模型的分析接口得出人体姿势的识别结果,例如姿势类型等;进而根据可视区域比例参数和关节点坐标分析人体的可视区域状态,并将当前分析的结果保存至缓存。
其中,姿势识别算法模型的分析接口依赖由关节点坐标转化的输入参数和姿势识别算法模型文件里的模型参数。模型参数需要先通过姿势算法模型参数分析模块即姿势算法模型参数分析工具分析得出初始参数,然后通过应用程序测试进行微调从而形成最终稳定的姿势识别算法模型版本,换言之,通过应用程序测试的方式,将微调的模型参数保存下来从而形成最终稳定的姿势识别算法模型参数版本。
获取姿势识别结果接口返回的结果参数主要包括:姿势状态数据:姿势类型状态码gestureStateCode、姿势类型名称gestureStateName、姿势类型说明gestureStateDescribe、人像在可视区域状态码outOfViewStateCode、人像在可视区域状态码描述outOfViewStateDecCribe;姿势非状态数据:帧号frameNo、帧的场景图imageData、人体关节点坐标point。
由关节点得出的姿势识别算法模型参数,其定义由具体的姿势识别算法模型决定。
姿势识别算法模型参数需要通过应用框架的调试模式和姿势算法模型参数分析模块来分析得出。其中,应用框架主要是指人体姿势识别应用框架或基于关节点坐标的人体姿势识别系统,包括外部应用模块、人体姿势识别模块、人体关节点坐标检测模块、姿势算法模型参数分析模块。
其中,任何通过关节点分析姿势的姿势识别算法模型都可以应用其中,核心模块为人体姿势识别模块,它为外部应用模块提供初始化接口、获取姿势识别结果接口和调试接口等统一的接口。外部应用模块为应用程序负责和人体姿势识别模块交互的部分,具体结构和功能由应用程序本身根据需要决定。人体关节点坐标检测模块,负责对视频流进行逐帧检测,先根据选定的人体检测yolo模型,检测出人体区域,再根据姿势节点计算姿势模型,计算出人体关节点坐标。姿势算法模型参数分析模块为一个独立的模块,可以编译出姿势算法模型参数分析工具。
姿势识别算法模型参数的获取步骤主要包括:
1、拍摄各个姿势的视频。
2、将姿势算法模型参数分析模块编译成姿势算法模型参数分析工具。
3、根据需求通过应用框架的调试模式(打开应用框架的各个调试开关),编译出一个debug版本的应用模拟工具。
4、使用测试脚本调用应用模拟工具分析各个视频并得出日志、输出视频、输出帧图等数据。
5、观看各个输出视频(输出视频带有调试信息)的姿势情况和帧号,得出符合姿势要求的起始帧号和结束帧号,并将其保存到文件姿势frameNum.txt中去。
6、运行姿势算法模型参数分析工具,分析工具会读取姿势frameNum.txt中对应姿势的帧号并读取姿势日志中对应帧号的数据,进行分析得出姿势识别算法模型参数。
7、将得出的姿势识别算法模型参数更新到姿势识别算法模型文件中去。
8、使用调试模式的人体姿势识别应用框架编译出需要调试的应用程序。
9、基于更新过的姿势识别算法模型文件运行应用程序,进行人体姿势的测试,并通过人工观察和修改的方法对模型参数进行微调,从而形成一个稳定的姿势识别算法模型版本。(调试模式会将模型参数值打印到界面,当某个姿势不容易过的时候,可以通过界面的模型参数调整模型文件里的参数。)
利用上述基于人体关节点二维坐标的人体姿势识别方法,1、能够为应用程序提供统一的姿势识别接口,提高开发效率2、通过配置参数的方式可以满足应用程序对姿势识别的各种不同需求,并可以随时切换工作模式。3、提供一套模型参数调试方法,提高程序的测试效率。
此外,本发明实施例还提供一种基于关节点坐标的人体姿势识别系统,所述系统包括:
启动模块,用于启动外部应用模块;
外部应用模块,用于读取人体姿势识别模块所需的配置参数信息,调用所述人体姿势识别模块的初始化接口并向所述人体姿势识别模块中传入所读取的配置参数信息;间隔预设时间循环调用所述人体姿势识别模块的获取姿势识别结果接口,获取对应的人体姿势识别结果;
人体姿势识别模块,用于根据所述配置参数信息对待识别图像中的人体姿势进行识别。
在一个实施例中,所述人体姿势识别模块所需的配置参数包括:Yolo模型类型、Yolo模型文件路径、姿势模型类型、姿势模型文件路径、视频流url、视频流帧缩放后的高、视频流帧缩放后的宽、所使用GPU/CPU的设备号、可视区域比例、丢帧开关、丢帧比例、人体位置校准开关、人体位置校准区域坐标、人体位置校准区域展示开关、录制开关、录制路径、帧保存路径、姿势识别算法模型、姿势识别算法模型文件路径。
在一个实施例中,所述人体姿势识别模块包括人体关节点坐标检测模块和调试子模块;
所述人体关节点坐标检测模块的配置参数包括:Yolo模型类型、Yolo模型文件路径、姿势模型类型、姿势模型文件路径、视频流url、视频流帧缩放后的高、视频流帧缩放后的宽、所使用GPU/CPU的设备号、丢帧开关、丢帧比例、人体位置校准开关、人体位置校准区域坐标、人体位置校准区域展示开关。
在一个实施例中,所述人体关节点坐标检测模块包括:
当前帧读取单元,用于通过所述视频流获取和解析服务线程判断当前缓存及所述姿势服务线程状态,若缓存未满且所述姿势服务线程为已完成工作状态,则读取待识别的视频流的当前帧;
丢帧处理单元,用于当所述当前帧读取完成时,判断丢帧开关状态,若丢帧开关状态为开启,则按丢帧比例进行丢帧处理;
处理结果生成单元,用于当所述丢帧处理完成时,根据所述视频流帧缩放后的高和视频流帧缩放后的宽对当前帧进行缩放处理,生成处理结果;
保存及通知单元,用于将所述处理结果保存并通知所述yolo服务线程;
人像框获取单元,用于所述yolo服务线程调用yolo底层算法接口计算出所述当前帧的人像框;
最优人像框获取单元,用于根据校准框使用算法从所述人像框中筛选出最优人像框并获取处理结果;
最优人像框处理单元,用于将当前人像框的处理结果保存并通知所述姿势服务线程;
人体姿势节点坐标获取单元,用于所述姿势服务线程调用姿势底层算法接口计算出人体姿势节点坐标;
节点坐标反馈单元,用于若所述姿势节点坐标符合预设条件,则通过回调函数将所述姿势节点坐标结果传给所述人体姿势识别模块;
通知单元,用于将上述处理结果保存并通知视频流获取和解析服务线程,并循环执行上述单元。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质中包括基于关节点坐标的人体姿势识别程序,所述基于关节点坐标的人体姿势识别程序被处理器执行时实现如上所述基于关节点坐标的人体姿势识别方法的步骤。
本发明之计算机可读存储介质的具体实施方式与上述基于关节点坐标的人体姿势识别方法、系统的具体实施方式大致相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于关节点坐标的人体姿势识别方法,其特征在于,所述方法包括:
启动外部应用模块;
所述外部应用模块读取人体姿势识别模块所需的配置参数信息,调用所述人体姿势识别模块的初始化接口并向所述人体姿势识别模块中传入所读取的配置参数信息;
所述人体姿势识别模块根据所述配置参数信息对待识别图像中的人体姿势进行识别;
所述外部应用模块间隔预设时间循环调用所述人体姿势识别模块的获取姿势识别结果接口,获取对应的人体姿势识别结果。
2.根据权利要求1所述的基于关节点坐标的人体姿势识别方法,其特征在于,
所述人体姿势识别模块所需的配置参数包括:Yolo模型类型、Yolo模型文件路径、姿势模型类型、姿势模型文件路径、视频流url、视频流帧缩放后的高、视频流帧缩放后的宽、所使用GPU/CPU的设备号、可视区域比例、丢帧开关、丢帧比例、人体位置校准开关、人体位置校准区域坐标、人体位置校准区域展示开关、录制开关、录制路径、帧保存路径、姿势识别算法模型、姿势识别算法模型文件路径。
3.根据权利要求2所述的基于关节点坐标的人体姿势识别方法,其特征在于,
所述人体姿势识别模块包括人体关节点坐标检测模块和调试子模块;
所述人体关节点坐标检测模块的配置参数包括:Yolo模型类型、Yolo模型文件路径、姿势模型类型、姿势模型文件路径、视频流url、视频流帧缩放后的高、视频流帧缩放后的宽、所使用GPU/CPU的设备号、丢帧开关、丢帧比例、人体位置校准开关、人体位置校准区域坐标、人体位置校准区域展示开关。
4.根据权利要求3所述的基于关节点坐标的人体姿势识别方法,其特征在于,所述调用所述人体姿势识别模块的初始化接口并向所述人体姿势识别模块中传入所读取的配置参数信息的步骤包括:
校验所述配置参数;
当所述配置参数校验完成时,初始化所述人体姿势识别模块的配置参数;
根据所述人体姿势识别模块的配置参数的初始化结果,初始化所述人体姿势识别模块中的姿势识别算法模型;
当所述姿势识别算法模型初始化完成时,初始化所述人体姿势识别模块的调试子模块;
当所述调试子模块初始化完成时,调用所述人体关节点坐标检测模块的初始化接口并传入所述配置参数信息;
当所述配置参数信息传入至所述人体关节点坐标检测模块的初始化接口时,调用所述人体关节点坐标检测模块的启动接口。
5.根据权利要求4所述的基于关节点坐标的人体姿势识别方法,其特征在于,所述调用所述人体关节点坐标检测模块的初始化接口并传入所述配置参数信息的步骤包括:
初始化所述人体关节点坐标检测模块的配置参数;
当所述人体关节点坐标检测模块的配置参数初始化完成时,根据丢帧开关初始化预设的丢帧子模块;
根据人体位置校准开关和人体位置校准区域展示开关初始化预设的校准子模块。
6.根据权利要求3所述的基于关节点坐标的人体姿势识别方法,其特征在于,所述人体关节点坐标检测模块用于执行循环工作的三个线程,所述三个线程分别为:视频流获取和解析服务线程、yolo服务线程、姿势服务线程;
所述人体关节点坐标检测模块的工作流程包括:
通过所述视频流获取和解析服务线程判断当前缓存及所述姿势服务线程状态,若缓存未满且所述姿势服务线程为已完成工作状态,则读取待识别的视频流的当前帧;
当所述当前帧读取完成时,判断丢帧开关状态,若丢帧开关状态为开启,则按丢帧比例进行丢帧处理;
当所述丢帧处理完成时,根据所述视频流帧缩放后的高和视频流帧缩放后的宽对当前帧进行缩放处理,生成处理结果;
将所述处理结果保存并通知所述yolo服务线程;
所述yolo服务线程调用yolo底层算法接口计算出所述当前帧的人像框;
根据校准框使用算法从所述人像框中筛选出最优人像框并获取处理结果;
将当前人像框的处理结果保存并通知所述姿势服务线程;
所述姿势服务线程调用姿势底层算法接口计算出人体姿势节点坐标;
若所述姿势节点坐标符合预设条件,则通过回调函数将所述姿势节点坐标结果传给所述人体姿势识别模块;
将上述处理结果保存并通知视频流获取和解析服务线程,并循环执行上述步骤。
7.一种基于关节点坐标的人体姿势识别系统,其特征在于,所述系统包括:
启动模块,用于启动外部应用模块;
外部应用模块,用于读取人体姿势识别模块所需的配置参数信息,调用所述人体姿势识别模块的初始化接口并向所述人体姿势识别模块中传入所读取的配置参数信息;间隔预设时间循环调用所述人体姿势识别模块的获取姿势识别结果接口,获取对应的人体姿势识别结果;
人体姿势识别模块,用于根据所述配置参数信息对待识别图像中的人体姿势进行识别。
8.根据权利要求7所述的基于关节点坐标的人体姿势识别系统,其特征在于,
所述人体姿势识别模块所需的配置参数包括:Yolo模型类型、Yolo模型文件路径、姿势模型类型、姿势模型文件路径、视频流url、视频流帧缩放后的高、视频流帧缩放后的宽、所使用GPU/CPU的设备号、可视区域比例、丢帧开关、丢帧比例、人体位置校准开关、人体位置校准区域坐标、人体位置校准区域展示开关、录制开关、录制路径、帧保存路径、姿势识别算法模型、姿势识别算法模型文件路径。
9.根据权利要求8所述的基于关节点坐标的人体姿势识别系统,其特征在于,
所述人体姿势识别模块包括人体关节点坐标检测模块和调试子模块;
所述人体关节点坐标检测模块的配置参数包括:Yolo模型类型、Yolo模型文件路径、姿势模型类型、姿势模型文件路径、视频流url、视频流帧缩放后的高、视频流帧缩放后的宽、所使用GPU/CPU的设备号、丢帧开关、丢帧比例、人体位置校准开关、人体位置校准区域坐标、人体位置校准区域展示开关。
10.根据权利要求9所述的基于关节点坐标的人体姿势识别系统,其特征在于,
所述人体关节点坐标检测模块包括:
当前帧读取单元,用于通过所述视频流获取和解析服务线程判断当前缓存及所述姿势服务线程状态,若缓存未满且所述姿势服务线程为已完成工作状态,则读取待识别的视频流的当前帧;
丢帧处理单元,用于当所述当前帧读取完成时,判断丢帧开关状态,若丢帧开关状态为开启,则按丢帧比例进行丢帧处理;
处理结果生成单元,用于当所述丢帧处理完成时,根据所述视频流帧缩放后的高和视频流帧缩放后的宽对当前帧进行缩放处理,生成处理结果;
保存及通知单元,用于将所述处理结果保存并通知所述yolo服务线程;
人像框获取单元,用于所述yolo服务线程调用yolo底层算法接口计算出所述当前帧的人像框;
最优人像框获取单元,用于根据校准框使用算法从所述人像框中筛选出最优人像框并获取处理结果;
最优人像框处理单元,用于将当前人像框的处理结果保存并通知所述姿势服务线程;
人体姿势节点坐标获取单元,用于所述姿势服务线程调用姿势底层算法接口计算出人体姿势节点坐标;
节点坐标反馈单元,用于若所述姿势节点坐标符合预设条件,则通过回调函数将所述姿势节点坐标结果传给所述人体姿势识别模块;
通知单元,用于将上述处理结果保存并通知视频流获取和解析服务线程,并循环执行上述单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910885673.2A CN110738124B (zh) | 2019-09-19 | 2019-09-19 | 基于关节点坐标的人体姿势识别方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910885673.2A CN110738124B (zh) | 2019-09-19 | 2019-09-19 | 基于关节点坐标的人体姿势识别方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110738124A true CN110738124A (zh) | 2020-01-31 |
CN110738124B CN110738124B (zh) | 2023-08-22 |
Family
ID=69268321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910885673.2A Active CN110738124B (zh) | 2019-09-19 | 2019-09-19 | 基于关节点坐标的人体姿势识别方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110738124B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611912A (zh) * | 2020-05-19 | 2020-09-01 | 北京交通大学 | 一种基于人体关节点的行人低头异常行为的检测方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2009281762A1 (en) * | 2008-08-15 | 2010-02-18 | Brown University | Method and apparatus for estimating body shape |
CN109508688A (zh) * | 2018-11-26 | 2019-03-22 | 平安科技(深圳)有限公司 | 基于骨架的行为检测方法、终端设备及计算机存储介质 |
US20190171871A1 (en) * | 2017-12-03 | 2019-06-06 | Facebook, Inc. | Systems and Methods for Optimizing Pose Estimation |
-
2019
- 2019-09-19 CN CN201910885673.2A patent/CN110738124B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2009281762A1 (en) * | 2008-08-15 | 2010-02-18 | Brown University | Method and apparatus for estimating body shape |
US20190171871A1 (en) * | 2017-12-03 | 2019-06-06 | Facebook, Inc. | Systems and Methods for Optimizing Pose Estimation |
CN109508688A (zh) * | 2018-11-26 | 2019-03-22 | 平安科技(深圳)有限公司 | 基于骨架的行为检测方法、终端设备及计算机存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611912A (zh) * | 2020-05-19 | 2020-09-01 | 北京交通大学 | 一种基于人体关节点的行人低头异常行为的检测方法 |
CN111611912B (zh) * | 2020-05-19 | 2024-03-19 | 北京交通大学 | 一种基于人体关节点的行人低头异常行为的检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110738124B (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109961009B (zh) | 基于深度学习的行人检测方法、系统、装置及存储介质 | |
CN110751043B (zh) | 基于人脸可见性的人脸识别方法、装置及存储介质 | |
KR101593315B1 (ko) | 행동 인식을 위한 방법, 장치 및 컴퓨터 프로그램 제품 | |
KR102056806B1 (ko) | 영상 통화 서비스를 제공하는 단말과 서버 | |
CN110210219B (zh) | 病毒文件的识别方法、装置、设备及存储介质 | |
KR101939683B1 (ko) | 사용자 행동 실시간 인식장치 및 방법 | |
US20170185871A1 (en) | Method and apparatus of neural network based image signal processor | |
JP6815707B2 (ja) | 顔姿勢検出方法、装置及び記憶媒体 | |
CN107679475B (zh) | 门店监控评价方法、装置及存储介质 | |
KR101631011B1 (ko) | 제스처 인식 장치 및 제스처 인식 장치의 제어 방법 | |
JP2008113442A (ja) | マルチチャネルセンサ信号ストリームにおけるイベント検出 | |
TWI448987B (zh) | 使用者動態器官姿勢之識別介面及方法與使用該介面之用電設備 | |
US20130188836A1 (en) | Method and apparatus for providing hand detection | |
WO2017088434A1 (zh) | 人脸模型矩阵训练方法、装置及存储介质 | |
WO2019033567A1 (zh) | 眼球动作捕捉方法、装置及存储介质 | |
CN107749046A (zh) | 一种图像处理方法及移动终端 | |
CN113723185A (zh) | 动作行为识别方法、装置、存储介质及终端设备 | |
CN111179222A (zh) | 脑出血点智能检测方法、装置及计算机可读存储介质 | |
CN114170688B (zh) | 人物交互关系识别方法、装置、电子设备 | |
CN110738124A (zh) | 基于关节点坐标的人体姿势识别方法及系统 | |
CN106897665B (zh) | 应用于智能机器人的物体识别方法及系统 | |
CN102890822B (zh) | 具有物体位置侦测功能的装置及其侦测方法 | |
CN110222576B (zh) | 拳击动作识别方法、装置和电子设备 | |
CN110222571A (zh) | 黑眼圈智能判断方法、装置及计算机可读存储介质 | |
CN114863478A (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 |