Pytorch+Python实现人体关键点检测
创始人
2024-01-16 19:58:19
0

用Python+Pytorch工程代码对人体进行关键点检测和骨架提取,并实现可视化。

使用背景:

物体检测为许多视觉任务提供动力,如实例分割、姿态估计、跟踪和动作识别。它在监控、自动驾驶和视觉答疑中有下游应用。当前的对象检测器通过紧密包围对象的轴向包围框来表示每个对象。然后,他们将目标检测减少到大量潜在目标边界框的图像分类。对于每个边界框,分类器确定图像内容是特定的对象还是背景。

人体关键点检测属于目标检测的一个小分支,在很多虚拟应用场景中需要使用,比如说姿态识别、虚拟穿衣等应用领域。今天给大家推荐一个好用的人体关键点检测项目代码,并基于该代码进行一定的升级,使得提取的人体关键点可以独立显示在可视化界面当中。


使用环境:

本项目通过Python实现,运行环境为:
Python 3.7
Pytorch 1.8.1
Opencv 4.5.4.60


使用代码:

本项目实现基于rwightman的代码进行改进实现,
参考代码地址:https://github.com/rwightman/posenet-python

源代码效果(左图为原图,右图为检测结果图):
在这里插入图片描述

修改后的效果:
在这里插入图片描述


代码使用步骤:

如下的代码都基于参考github链接源码进行直接修改,找到上下行代码参考修改的具体位置。
本代码以源代码视频应用文件举例(webcam_demo.py)

第一步:
在原项目工程代码中找到webcam_demo.py
修改视频获取路径(基于源代码修改):

def main():model = posenet.load_model(args.model)model = model.cuda()output_stride = model.output_stride# cap = cv2.VideoCapture(args.cam_id)cap = cv2.VideoCapture('3.mp4')cap.set(3, args.cam_width)cap.set(4, args.cam_height)#背景视频读取cap2 = cv2.VideoCapture('2.mp4')cap2.set(3, args.cam_width)cap2.set(4, args.cam_height)

然后在视频显示代码部分添加提取关键点显示界面:

            min_pose_score=0.15, min_part_score=0.1)cv2.imshow('posenet', overlay_image)# cv2.imshow('net', overlay_image)# cv2.resizeWindow('posenet', 500, 900)overlay_image2 = posenet.draw_skel_and_kp2(display_image2,display_image2, pose_scores, keypoint_scores, keypoint_coords,min_pose_score=0.15, min_part_score=0.1)cv2.imshow('posenet2', overlay_image2)#提取skeleton# cv2.namedWindow("dance", 0)# cv2.resizeWindow("dance", 600, 900)  # 设置窗口大小## cv2.imshow("dance", img)frame_count += 1if cv2.waitKey(1) & 0xFF == ord('q'):breakprint('Average FPS: ', frame_count / (time.time() - start))

第二步:
修改posenet/utils.py代码部分:
添加提取的骨架的视频背景函数:

#背景视频
def read_cap2(cap, scale_factor=1.0, output_stride=16):res2, img2 = cap.read()if not res2:raise IOError("webcam failure")return _process_input2(img2, scale_factor, output_stride)

添加定义骨架关键点绘制函数:

def draw_skel_and_kp2(img, img2, instance_scores, keypoint_scores, keypoint_coords,min_pose_score=0.1, min_part_score=0.1):        #将置信度由0.5改为0.3bk=img2out_img = imgadjacent_keypoints = []cv_keypoints = []for ii, score in enumerate(instance_scores):if score < min_pose_score:continuenew_keypoints = get_adjacent_keypoints(keypoint_scores[ii, :], keypoint_coords[ii, :, :], min_part_score)adjacent_keypoints.extend(new_keypoints)for ks, kc in zip(keypoint_scores[ii, :], keypoint_coords[ii, :, :]):if ks < min_part_score:continuecv_keypoints.append(cv2.KeyPoint(kc[1], kc[0], 10. * ks))if cv_keypoints:bk = cv2.drawKeypoints(bk, cv_keypoints, outImage=np.array([]), color=(255, 255, 0),flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)out_img = cv2.polylines(bk, adjacent_keypoints, isClosed=False, color=(255, 255, 0),thickness=20)return out_img

然后就能以一个纯粹的骨架关键点样式显示在另一个UI界面啦:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
上面用的是段dy的舞蹈视频做demo~


Reference:

1、https://github.com/rwightman/posenet-python
2、Zhou, Xingyi, Dequan Wang, and Philipp Krähenbühl. “Objects as points.” arXiv preprint arXiv:1904.07850 (2019).

上一篇:Node.js之Hello World

下一篇:贼动

相关内容

热门资讯

新任年级组长表态性发言稿 新任年级组长表态性发言稿???届高三取得的骄人成绩令我们全校师生精神振奋,令社会各界刮目相看,也让学...
《添加文字美化文稿》说课稿 《添加文字美化文稿》说课稿范文  一、说教材  (一)教材分析  《添加文字 美化文稿》是华中科技大...
初二年级家长会发言稿 初二年级家长会发言稿  在社会发展不断提速的今天,需要使用发言稿的事情愈发增多,发言稿可以帮助发言者...
大队委竞选稿 大队委竞选稿大队委竞选稿尊敬的老师们,亲爱的同学们:大家好!在这金秋送爽的季节里,我们迎来了新的学期...
《石榴》的说课稿 《石榴》的说课稿  尊敬的各位评委专家,你们好!  我今天说课的题目是《石榴》,下面我将从教材、学情...
安全月宣传报道稿件 安全月宣传报道稿件(精选10篇)  在日新月异的现代社会中,通讯稿的使用频率呈上升趋势,通讯稿常是拿...
运动会跳远加油稿范文50字   跳远运动比赛马上就要开始了,你的跳远运动会加油稿写好了吗?下面是应届毕业生小编为大家收集的关于运...
小学四年级语文《火烧云》说课... 小学四年级语文《火烧云》说课稿5篇  作为一名专为他人授业解惑的人民教师,通常需要准备好一份说课稿,...
五年级家长会学生代表发言稿 五年级家长会学生代表发言稿尊敬的老师、各位家长:  大家晚上好!  我是五(7)班的学生 。这两天我...
说课稿 【必备】说课稿范文汇编七篇  作为一位优秀的人民教师,时常要开展说课稿准备工作,借助说课稿我们可以快...
七彩的糖葫芦说课稿 七彩的糖葫芦说课稿  一、活动内容的形成与依据  每天放学后,总会听到好些小朋友央求自己的父母买糖葫...
《徐悲鸿励志学画》的说课材料 《徐悲鸿励志学画》的说课材料  一、关于教材  《徐悲鸿励志学画》是苏教版第七册第二单元中的课文。这...
运动员代表发言稿 运动员代表发言稿范文运动员代表发言稿范文1尊敬的各位领导、老师、亲爱的同学们:  大家好!在这姹紫嫣...
转正大会表态发言稿 转正大会表态发言稿(精选18篇)  在充满活力,日益开放的今天,能够利用到发言稿的场合越来越多,发言...
七夕的主持稿 七夕的主持稿(精选5篇)  在日常生活和工作中,我们使用上主持稿的情况与日俱增,主持稿在节目中起着穿...
初中语文的评课稿   所谓评课,顾名思义,即评价课堂教学。是在听课活动结束之后的教学延伸。对其执教教师的课堂教学的得失...
物质的分类说课稿 物质的分类说课稿  在教学工作者开展教学活动前,编写说课稿是必不可少的,编写说课稿助于积累教学经验,...
运动会加油稿致跳远 致跳远运动员你纵身一跃,留下一条美丽的彩虹。那七彩的色泽,就是你灿烂的笑容。也许,那是一条完美的抛物...
《四个太阳》说课稿 《四个太阳》说课稿范文  一、教材分析  《四个太阳》作者凭借着丰富的想象力和独特的创造力,在四个不...
辩论赛完整辩论稿总结 辩论赛完整辩论稿总结  总结是指对某一阶段的工作、学习或思想中的经验或情况加以总结和概括的书面材料,...