前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >十六、AI运动识别中,如何判断人体站位?

十六、AI运动识别中,如何判断人体站位?

原创
作者头像
alphaair
发布2024-06-06 08:47:05
750
发布2024-06-06 08:47:05
举报

随着深度学习推理技术的不断发展,让小型设备运行深度学习成为可能,阿里体育等IT大厂,推出的“乐动力”、“天天跳绳”AI运动APP,让云上运动会、线上运动会、健身打卡、AI体育指导等概念空前火热。那么,能否将这些在APP成功应用的场景搬上微信小程序,分享这些概念的红利呢?本系列文章就带您一步一步从零开始开发一个AI运动小程序,本系列文章将使用“AI运动识别”小程序插件,插件详情可以前往微信服务市场搜索相应插件。

一、为什么要判断人体站位视角?

上一篇我们介绍了运动识别中,如何实现对人与摄像头的远近预检,以提供识别率和体验。在我们实际的运动应用场景中,为了准确识别到相关运动的关键姿态点,一般会指定视角,如跳绳开合跳需要面或背朝相机,而且像俯卧撑仰卧起坐则需要左右侧对像相机,以获得最佳的识别率和体验。

二、camera-view检测规则

camera-view是插件姿态计算引擎body-calc提供检测当前人体站位(即人体那一侧对准摄像头)的规则。 在正式开始运动前,便可以使用此检测规则,对当前人体姿态进行预检,再通过语音等方式提醒用户调整站位至合适视角,以便获得最佳体验和识别效果。

三、代码实现

在进行远近判断前,请查阅本系列博文了解抽帧、人体识别、body-calc应用等内容。

代码语言:javascript
复制
const AiSport = requirePlugin("aiSport");
const humanDetection = AiSport.humanDetection;
const Calculator = AiSport.calc.Calculator;

//也可参考此实现左右视角检查
const rule = {
	name: '正或背对摄像头检查',
	calc: '$or',
	ruels: [{
		name: '正对摄像头检查',
		calc: 'camera-view',
		position: 'front'
	},{
		name: '背对摄像头检查',
		calc: 'camera-view',
		position: 'back'
	}]
};
const calculator = new Calculator();

//抽帧
const context = wx.createCameraContext();
const listener = context.onCameraFrame((frame) => {
	const iamge = {
		width: Number(frame.width),
		height: Number(frame.height),
		rawData: frame.data
	};
	
	//人体识别
	humanDetection.detectionAsync(image).then(human=>{
		
		//执行检测
		if(!calculator.calculating(human, rule)){
		    console.log('请面或背朝摄像头');
			//播放语音、UI提示...
			return;
		}
		
		//通过,则进入运动检测等应用环节..
	});
});
listener.start();

好了,运动开始前的常规距离、视角预检查就为您分享到这,请关注我们各平台的博客账号,我们将为您分享更多的人体、姿态、运动检测应用技巧。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、为什么要判断人体站位视角?
  • 二、camera-view检测规则
  • 三、代码实现
相关产品与服务
图像识别
腾讯云图像识别基于深度学习等人工智能技术,提供车辆,物体及场景等检测和识别服务, 已上线产品子功能包含车辆识别,商品识别,宠物识别,文件封识别等,更多功能接口敬请期待。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档