APP下载

嵌入式实现AI检测运动姿态的开发

2021-05-16柯宇

现代信息科技 2021年22期
关键词:目标检测摄像头模型

摘  要:文章主要阐述了在嵌入式设备上运行AI算法检测人体运动姿态并给出相应运动建议的实现方法,其中嵌入式设备包含摄像头模块、显示屏模块、控制主板、模型算法、语音模块、通信模块等。通过摄像头采集运动姿态的图像,并由目标检测算法、人体骨骼算法、姿态动作算法得到运动姿态参数进行统计与姿态修正,反馈给运动人员,实现运动姿态的计数与姿态修正,进而提高动作完成的质量,达到有效运动的目的。

关键词:摄像头;目标检测;人体骨骼点;模型;人工智能

中图分类号:TP18        文献标识码:A文章编号:2096-4706(2021)22-0092-04

Abstract: This paper mainly expounds the implementation method of running AI algorithm on embedded equipment to detect human motion attitude and give corresponding motion suggestions. The embedded equipment includes camera module, display module, control motherboard, model algorithm, voice module, communication module and so on. The image of motion attitude is collected through the camera, and the motion attitude parameters are obtained through the target detection algorithm, human bone algorithm and attitude action algorithm for statistics and attitude correction, which are fed back to the athletes to realize the counting of motion attitude and attitude correction, so as to improve the quality of action completion and achieve the purpose of effective motion.

Keywords: camera; object detection; human bone point; model; artificial intelligence

0  引  言

國家连续多次发文引导青少年学生体质健康的发展改革,屡次强调体育学科的重要性,并且明确要求体育中考要逐年增加分值,达到跟语数外同分值的水平。在“以考促动、健康中国、体育强国”的指引下体育学科的重要性更加凸显,学科要求也更加严格,对学生起着决定性影响,如何有效地进行体育锻炼也引起学生、家长和社会的高度关注。

随着新一代信息技术的发展日新月异,特别是AI人工智能技术的广泛应用,在体育领域正在开辟出全新的道路,如:微软开发出的一套解析运动员训练、比赛表现的数据化管理系统,可以为运动员提供运动数据分析。

目前AI人工智能技术依赖于不同的模型,但人体运动模型鲁棒性仍较弱,需要庞大得数据量作为支撑,计算量大,对硬件要求高,如何在嵌入式低配置高实时的设备上实现AI人工智能检测运动姿态?针对以上问题可采用以下方法进行解决:

(1)建立不同运动姿态下的人体姿态点模型,运用局部图像分割与目标追踪检测快速推理算法。

(2)采集不同人群在不同运动下的人体数据并进行分类、打样、训练。

(3)简化模型与推理算法,牺牲部分精度换取推理速度的提升,进而降低对硬件的高要求。

通过上述方法可实现在嵌入式设备上进行运动姿态的检测,在满足AI人工智能技术的应用,加上嵌入式设备的低成本,有利于设备的普及与市场的推广。

1  开发内容简介

从硬件与软件两方面简述AI检测运动姿态在嵌入式设备上实现的开发内容。由于AI人工智能技术的模型与算法比较依赖于硬件,因此在硬件的选型上,主要取决于软件上对模型与算法的优化,降低对硬件配置的高要求。此外,针对业务上的要求需要有摄像头进行图像采集、显示与语音交互、业务数据的管理,由控制主板进行管理摄像头模块、显示屏模块、语音模块、通信模块以及最为关键的AI模型算法。软件上选用目前主流的Android操作系统,Android操作系统具有丰富的UI界面、动画效果好,应用接口丰富,第三方插件也有大量的开发人员进行开发维护;AI人工智能软件框架采用Tensorflow软件框架,Tensorflow与Android操作系统同属Google旗下的开源软件库,里面含有深度学习的各类标准算法API和数据集等,模型上选用比较主流的YOLO3与MoveNet,推理算法采用卷积神经网络CNN。

如图1所示,嵌入式设备搭载AI人工智能算法的系统包含摄像头模块、显示屏模块、控制主板、模型算法、语音模块、通信模块等以及各个模块之间的关系。

其中,各个模块可独立进行开发调试,控制主板作为整个系统核心,统筹各个模块协同工作,从图像输入、图像分析、结果输出、数据反馈完成运动姿态的检测。

2  模块实现方法

2.1  摄像头模块

根据不同运动姿态的要求,对摄像头参数要求也不一样,摄像头主要会影响运动检测的参数有帧率、分辨率、数据格式、白平衡、宽动态范围、动态速度。其中,帧率、分辨率、数据格式影响图像采集到CPU的频率,帧率越高、分辨率越低、数据格式MJPG较稳定能有效提高图像采集到CPU的速度。对焦方式、宽动态范围、动态速度影响图像的真实还原,对焦方式可以采用手动对焦防止自动对焦时导致图像某几帧的变模糊,宽动态范围在强光下也能有较好的清晰度,动态速度可以减少抓取的运动姿态拖影的效果。

考虑在嵌入式设备上使用,采用一般的高清摄像头,帧率在30帧,分辨率最大支持1 920×1 080、支持手动调焦、支持宽动态范围、动态速度满足大部分运动姿态较少拖影。从稳定性与扩展性上,选用免驱的USB连接方式的摄像头,方便软件开发、维护、更换。

2.2   控制主板

控制主板采用主流的芯片方案,主要的考虑参数有CPU、GPU、NPU、内存、存储、功耗等,结合应用场景与成本考虑,选取对应的参数。AI人工智能算法的算力可以配置CPU、GPU、NPU,一般嵌入式芯片方案的GPU的配置比不上PC机、具有NPU的不多,因此更多依赖于CPU,主板芯片方案选取CPU配置高的,处理会较快;GPU、内存的参数选择上也要往较高的靠,提升显示屏的速度与流畅性;为了方便后续功能扩展,外围接口也是多多益善,如:USB接口、串口接口、HDMI接口、音频口等。如表1所示的参数可供参考。

2.3  显示屏模块

显示屏目前有液晶屏、LED屏等,按照实际应用场景可选用红外触摸屏或者电容触摸屏,一般电容触摸屏用得比较多。显示屏的分辨率可采用1 920×1 080,响应时间低于6毫秒,亮度不低于300 cd/m2,可视角度178度,尺寸不小于32英寸,横竖屏都可以。

软件上采用OpenGL双缓冲技术,包括前台缓冲即当前屏幕显示、后台缓冲即内存显存,绘图操作先在内存中绘好,然后再将结果复制到屏幕上。这样就不会造成画面的闪烁。一是解决屏幕的频繁刷新造成的画面闪烁问题,二是方便AI人工智能算法的图像处理即在图像处理的同时又不影响画面的显示。

2.4  语音模块

语音模块一般采用语音芯片与外置扬声器结合的方式。外置扬声器可根据需要配置不同功放参数如:双8R/5W功放可满足大部分使用场景。

软件上采用TTS语音技术即文本转语音,将不同运动状态的提示语、成绩通过文本转化成语音播放。android操作系统自带TextToSpeech接口可直接调用,如果需要不同语调与语速的可采用第三方插件。

2.5  通信模块

通信模块包含移动通信、Wi-Fi通信、以太网通信、Lora通信等。其中,Wi-Fi通信与以太网通信作为标准接口,集成在控制主板上,移动通信、Lora通信等以模块的方式通过USB或者串口连接到主板上实现数据通信。移动通信模块目前主流有5G通信模块、4G全网通通信模块,4G-CAT1通信模块、NB通信模块等。

软件上如果是外接的通信模块,需要固件进行适配,按照通信模块的数据手册集成到Android的固件中,应用则直接调用Android系统的接口,管理不同通信模块的数据收发、通信关闭与开启、链路检测等,与后台的协议一般采用HTTP通信,字段以Json格式封装,报文以安全算法进行加密传输。

2.6  模型算法

模型算法是自然环境下对人体进行分类、检测、分割得到人体关键关节点位置的目标检测算法。由于人体大小分布不一致,且各个关节活动范围很大,相对位置不固定,还存在各种位置遮挡和服装遮挡的情况。由于关键点的分布范围太广,用全连接层去回归导致泛化能力很差。因此采用CNN神经网络会有较好的效果。目标学习形式采用回归heatmap的方式来训练,即把原图缩小几倍得到特征图,特征图有关键点的位置值就是1、背景就是0,因为只设1太稀疏了,所以把1改为一个高斯核。检测流程分为Top-Bottom与Bottom-Up两种,两者的差别在于Top-Bottom方式精度高,但是速度慢一点,而Bottom-Up速度快,但是精度差一点。因此在保证精度优先的前提下采用Top-Bottom,即是先检测人,再裁剪出来对每个人去检测关键点。

YOLO系列是最经典也是目前被大家认可使用的检测框架,因此算法模型采用YOLO3在满足一定精度的条件下推理速度可以在20毫秒以内,在满足实时的条件下还能满足较低的CPU占用,比较适合在嵌入式上进行部署。

软件上android操作系统有现成的OpenCV库,但是要注意OpenCV库的版本,从3.4.2开始支持YOLO3,因此导入的OpenCV库要在3.4.2版本之后。此外要加载完OpenCV以后才能调用yolo3初始化加载模型,接下来就是传入摄像头拍摄的图片数据格式转成Mat数据,输出目标的分类标签,识别出人体框,再加载人体检测MoveNet模型识别出人体关键点位置。在识别人体关键点位置后,按照具体的运动姿态要求判定动作有没有做到位,并给出提示与计数。

3  具体案例——开合跳姿态检测

开合跳的动作要求:身体保持直立,双手自然垂放于身体两侧;用力向上跳起,同时双脚向兩侧张开;跳到最高处时双手前后交叉,此时双手和双腿都应该是笔直的;回到地面,此时注意应脚尖先落地同时膝盖微屈,如此反复。按照开合跳动作要求,可以将整套动作拆解为二种状态,第一种状态为起始状态,即身体保持直立,双手垂于两侧;第二种状态为起跳状态,即身体向上跳起,双脚张开,双手前后交叉。如图2所示,两种状态反复转换即可。

起始状态根据检测当前人体的关键点位置,判定身体躯干是否直立,可根据脖子、中骻、脚踝的关键点连线是否在一条直线上,双手是否垂于身体两侧检测肩、肘、手腕的关键点是否在一条直线上且与身体的线平行。

起跳状态根据骻的纵向变化值最高时为跳到最高点,在此过程检测左脚踝、中骻、右脚踝关键点的夹角是否超过30°,双手手腕的点超过头部鼻子的点,双手手腕关键点的横向差值变成负值。

根据上述状态判定,只要经过两种状态的变化可记录动作完成一次,反之给出未做到位的提示。

4  结  论

在嵌入式设备实现运动姿态的检测,涉及摄像头采集、目标检测算法、人体骨骼点算法、某一运动姿态的计数违规算法、人机交互等方面,保证在嵌入式设备上流畅实时的进行识别,除了牺牲一定的算法精度外,还要协调好图像采集的速率与检测算法运行时间的平衡,在满足采集速率的情况下,尽可能地压缩检测算法的推理时间,保障整个运动姿态的流畅性与准确性。虽然在嵌入式设备上的运动姿态识别精度无法与服务器端相提并论,但嵌入式设备的低功耗、低成本且能满足一般的运动姿态的识别,还是比较有竞争力。此外,保证精度与推理速度都能达到高要求,还需要更多的素材数据进行采样训练工作以及姿态判定算法的优化。

参考文献:

[1] 彭正方.5G移动通信关键技术分析 [J].通信电源技术,2021,38(4):138-139+142.

[2] 徐海宁.基于深度图像和骨骼数据的人体动作识别 [D].郑州:郑州大学,2016.

[3] 王田苗.嵌入式系统设计与实例开发 [M].北京:清华大学出版社,2003.

[4] 岳传真.Android系统移植和应用程序开发 [D].上海:复旦大学,2010.

[5] 胡银星.嵌入式多媒体终端设备关键技术研究 [D].武汉:华中科技大学,2008.

[6] 朱继洪,裴继红,赵阳.卷积神经网络(CNN)训练中卷积核初始化方法研究 [J].信号处理,2019,35(4):641-648.

[7] 龚维亮,李伟雪.深度学习在竞技体育训练中的应用研究 [C]//第十一届全国体育科学大会. 第十一届全国体育科学大会论文摘要汇编. 南京:出版社不详,2019:5736-5738.

作者简介:柯宇(1985.02—),男,汉族,福建仙游人,研发经理,中级工程师,本科,研究方向:金融类电子产品设计、教育类电子产品设计、物联网人工智能应用、嵌入式软硬件设计、手机APP客户端设计、管理平台软件架构搭建、移动端检测算法。

猜你喜欢

目标检测摄像头模型
自制空间站模型
模型小览(二)
圆周运动与解题模型
视频中目标检测算法研究
行为识别中的人体运动目标检测方法
移动机器人图像目标识别
离散型随机变量分布列的两法则和三模型
一种电脑专用摄像头
基于P3电位的目标检测研究
无法开启摄像头的解决方案