网易首页 > 网易号 > 正文 申请入驻

【壹零学院】MediaPipe之姿势侦测

0
分享至

除了手势识别追踪和人脸的“面部网格”识别之外,MediaPipe还能实现“姿势侦测”(Pose,又称“姿态识别”),它将人体模型标注出0-32共33个关键点,比如6对应的是右眼外眼角(right_eye_outer)、13对应的是左肘尖(left_elbow)、30对应的是右脚跟(right_heel)等等。头部的关键点是从0到10,身体的左侧关键点是奇数从11、13直至31,右侧是偶数从12、14直至32,二者所对应的身体部位是对称标注的(如图1)。

1.对静态图像文件中的人体进行姿势侦测

首先,导入OpenCV和MediaPipe库模块:“import cv2”“import mediapipe as mp”;然后进行人体姿势侦测模型的导入——建立变量mp_pose并赋值为“mp.solutions.pose”;再建立变量mp_drawing,赋值为“mp.solutions.drawing_utils”,作用是导入绘图模块;建立姿势侦测变量pose,赋值为“mp_pose.Pose(static_image_mode=True, model_complexity=2, smooth_landmarks=True,enable_segmentation=True,min_detection_confidence=0.5,min_tracking_confidence=0.5)”,其中的参数“static_image_mode=True”作用是设置为静态图像文件的检测,参数“model_complexity=2”作用是设置为最佳的姿势侦测(值为0时速度最快但 性能较弱,值为1时速度与性能比较均衡),参数“smooth_landmarks=True”作用是将平滑关键点的检测设置为有效,参数“enable_segmentation=True”作用是将人体抠图设置为有效,参数“min_detection_confidence=0.5”和“min_tracking_confidence=0.5)”作用是分别设置侦测的置信度与追踪阈值。

接下来从图片文件中读入图像,建立变量img并赋值为“cv2.imread('test.jpg')”,其中的test.jpg即为待测试的图片文件;建立变量img_RGB,赋值为“cv2.cvtColor(img,cv2.COLOR_BGR2RGB)”,作用是将读入的图像进行色彩模式的转换,从BGR转为RGB;建立变量results,赋值为“pose.process(img_RGB)”,作用是将转换模式后的图像输入至训练模型并获取对应的姿势侦测结果;再进行可视化检测结果的描绘,通过语句“mp_drawing.draw_landmarks(img,results.pose_landmarks,mp_pose.POSE_CONNECTIONS)”来实现,其默认效果是用红色小圆点标注33个关键点,并且用白色细线进行连接;最后,通过语句“cv2.imwrite('result.jpg',img)”将添加标注效果的图像存储为result.jpg文件(如图2)。

将程序保存为“[01]Test_Single_Picture.py”,按F5运行测试,很快就生成了result.jpg文件,与之前的test.jpg同时打开进行对比查看,人物身体上的33个关键点被正确标注,同时也有若干条白色细线连接对应的关键点(如图3)。

2.关键点的分组标注及二维坐标值的解析

将“[01]Test_Single_Picture.py”复制粘贴为“[02]Three_Groups.py”,进行代码的修改,在最后一行“cv2.imwrite('result.jpg',img)”代码之前插入以下代码:

建立变量h和w,分别赋值为“img.shape[0]”和“img.shape[1]”,表示图像的高度和宽度;建立变量radius并赋值为8,用来控制关键点描绘时圆点的半径大小;同时建立head_points和left_points两个变量,均赋值为空列表“[]”,分别通过“for i in range(11):”和“for i in range(11,33):”两个循环,将头部和左侧所对应的关键点序号追加(append)至各自列表中(剩余的即为右侧关键点);在“for i in range(33):”循环中,变量cx和cy的值分别为“int(results.pose_landmarks.landmark[i].x * w)”和“int(results.pose_landmarks.landmark[i].y * h)”,即该关键点的横坐标和纵坐标值。以鼻尖为例,由于该关键点所对应的序号是0,因此通过条件“if i==0:”判定为真时将其输出:“print("鼻尖位置的二维坐标值为:(",cx,",",cy,")")”;接下来,如果满足“if i in head_points:”,说明该关键点位于头部,则通过语句“img = cv2.circle(img,(cx,cy),radius-5,(0,0,255),-1)”绘制为红色圆点;如果满足“elif i in left_points:”,说明关键点位于人体左侧,则通过语句“img = cv2.circle(img,(cx,cy),radius,(255,0,0),-1)”绘制为蓝色圆点;剩余的右侧各个关键点,通过语句“img = cv2.circle(img,(cx,cy),radius,(0,255,0),-1)”绘制为绿色圆点(如图4)。

运行测试,程序生成的图片文件result.jpg与之前相比,人体的头部11个关键点仍被标注为红色圆点,但左侧和右侧各11个关键点则分别被标注为蓝色和绿色圆点;而且在命令行处输出有提示信息:“鼻尖位置的二维坐标值为:(665, 249)”(如图5)。

3.对摄像头监控画面中的人体进行姿势侦测

仍然是在“[01]Test_Single_Picture.py”基础之上进行“[03]Test_Camera.py”代码的修改,目的是完成摄像头监控画面中的人体姿势侦测。注意在为变量pose赋值时,其中的“static_image_mode”参数必须设为“False”,表示“非静态图像模式”(即视频的动态帧画面);从变量camera的赋值到“while True:”循环体中的代码,像图像颜色模式的转换、默认姿势侦测绘制效果的实现等等,均与之前相同(如图6)。

运行测试,分别尝试在摄像头前面进行远景和各种近景的拍摄测试,全身的33个关键点能够快速实时检测到,并且以红色圆点加白色细线连接标注;侧身和正身的近景上半身若干个关键点同样也能够被检测和标注,都是实时的测试效果(如图7)。

关注“壹零社”公众号下载源代码。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
1-0!43岁皇马弃帅保住帅位 登陆英超7轮后终获首胜 率队摆脱垫底

1-0!43岁皇马弃帅保住帅位 登陆英超7轮后终获首胜 率队摆脱垫底

我爱英超
2026-10-18 01:03:22
怪不得沙特打不过!因为胡塞不是一个武装团伙,实际上是一个国家

怪不得沙特打不过!因为胡塞不是一个武装团伙,实际上是一个国家

军情观察家
2026-10-17 14:29:24
镜报:前乌克兰国脚失联20个月后,确认在与俄军的战争中阵亡

镜报:前乌克兰国脚失联20个月后,确认在与俄军的战争中阵亡

懂球帝
2026-10-17 11:29:04
原来这才是真相!张本智和父亲含泪公开大胆表态:入日籍是对的,否则留在国内,儿女很难出头!网友却不买账

原来这才是真相!张本智和父亲含泪公开大胆表态:入日籍是对的,否则留在国内,儿女很难出头!网友却不买账

锐评利物浦
2026-10-17 10:14:48
裴淳华接受中国日报专访坦言:我想在中国安度晚年!理由不是钱也不是事业,而是这么简单的小事情

裴淳华接受中国日报专访坦言:我想在中国安度晚年!理由不是钱也不是事业,而是这么简单的小事情

一盅情怀
2026-10-16 18:49:16
中国乒乓大捷!4-3夺冠,绝杀日本松岛美空,3小将强势登顶

中国乒乓大捷!4-3夺冠,绝杀日本松岛美空,3小将强势登顶

艳儿说电影
2026-10-17 16:29:58
8年前她携带403亿逃往英国,2025年被捕时账上竟有480亿,啥原因

8年前她携带403亿逃往英国,2025年被捕时账上竟有480亿,啥原因

梦史
2026-10-16 13:24:29
长鑫科技的股东们心情有点复杂了

长鑫科技的股东们心情有点复杂了

财报时间
2026-10-18 08:34:04
A股:不必再等明天开盘了,趋势已经明朗,明后两天行情没有任何意外了

A股:不必再等明天开盘了,趋势已经明朗,明后两天行情没有任何意外了

财经大拿
2026-10-18 06:05:12
APEC之后,对深圳有什么影响?深圳会不会因此一飞冲天?

APEC之后,对深圳有什么影响?深圳会不会因此一飞冲天?

小蜜情感说
2026-10-18 06:43:31
高市早苗称日方将探讨引进核潜艇,中方:在遵守战后国际秩序、恪守国际义务问题上,日方没有所谓“探讨”的余地

高市早苗称日方将探讨引进核潜艇,中方:在遵守战后国际秩序、恪守国际义务问题上,日方没有所谓“探讨”的余地

政知新媒体
2026-10-16 15:47:39
60岁刘嘉玲晒秋日恩爱照:带着梁朝伟一起晨跑,全身大汗

60岁刘嘉玲晒秋日恩爱照:带着梁朝伟一起晨跑,全身大汗

小方说跑步
2026-10-18 10:00:03
经济下行,2027、2028、2029,未来三年的忠告

经济下行,2027、2028、2029,未来三年的忠告

生活新鲜市
2026-10-16 03:36:43
被严重低估的长寿运动!每周2次,比跑步更养身体

被严重低估的长寿运动!每周2次,比跑步更养身体

解说阿洎
2026-10-12 15:46:55
央视除名、被大佬睡出位、靠肉体换资源?方琼秘闻多炸裂

央视除名、被大佬睡出位、靠肉体换资源?方琼秘闻多炸裂

角落的隐藏美景
2026-10-14 15:12:56
1 分钟售罄、发货排到明年,iPhone Duo 卖爆背后的真相

1 分钟售罄、发货排到明年,iPhone Duo 卖爆背后的真相

极客公园
2026-10-17 10:39:35
梅西4分钟双响,苏亚雷斯百球里程碑队史第二人,迈阿密3-1亚特兰大

梅西4分钟双响,苏亚雷斯百球里程碑队史第二人,迈阿密3-1亚特兰大

钉钉陌上花开
2026-10-18 09:42:35
辽宁省沈阳市委原常委、政法委原书记,沈阳市铁西区委原书记郭忠孝被开除党籍和公职

辽宁省沈阳市委原常委、政法委原书记,沈阳市铁西区委原书记郭忠孝被开除党籍和公职

界面新闻
2026-10-17 18:33:01
社保严查倒查最新消息!

社保严查倒查最新消息!

逍遥论经
2026-10-17 17:33:19
乒乓球比赛:男单大爆冷!卫冕冠军1:4被淘汰,直板名将晋级4强

乒乓球比赛:男单大爆冷!卫冕冠军1:4被淘汰,直板名将晋级4强

国乒二三事
2026-10-18 06:38:17
2026-10-18 11:08:49
电脑报少年派 incentive-icons
电脑报少年派
最新鲜的互联网产业资讯
3977文章数 1610关注度
往期回顾 全部

科技要闻

王江舟院士:6G到底是不是骗局 是不是收割

头条要闻

牛弹琴:法国又"燃烧"了 整个国家地图上到处都在冒烟

头条要闻

牛弹琴:法国又"燃烧"了 整个国家地图上到处都在冒烟

体育要闻

升级版杨瀚森再闯难关:当上开拓者第三中锋还得拼

娱乐要闻

曝郭麒麟与25岁知名女星已经结婚,女方回应关系

财经要闻

马斯克:美债问题只能靠AI和机器人解决

汽车要闻

星瑞L PLUS限时售价10.97万元起 开启智混3L时代

态度原创

教育
家居
旅游
时尚
军事航空

教育要闻

样本|区域弘扬教育家精神的广州探索

家居要闻

2026建博会(广州) 公装联探展交流活动

旅游要闻

94岁独闯西藏的谭爷爷火了,他的下一个目的地是哪里?

伊姐周六热推:电视剧《喜剧之王》;电视剧《把黑夜点燃》......

军事要闻

“星盾”限速事件加剧美乌裂痕

无障碍浏览 进入关怀版