位置: IT常识 - 正文

Opencv项目实战:18 人体姿态检测(opencv开发项目)

编辑:rootadmin
Opencv项目实战:18 人体姿态检测

目录

0、项目介绍

1、效果展示

2、项目搭建

3、项目代码讲解与介绍

 Basics.py

  PoseModule.py

Example.py

 人体姿态图​编辑

4、项目资源

5、项目总结


0、项目介绍

推荐整理分享Opencv项目实战:18 人体姿态检测(opencv开发项目),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:opencv项目实战教程,opencv项目实战,opencv c++项目,opencv三大经典项目实战,opencv的项目,opencv的项目,opencv的项目,opencv项目实战,内容如对您有帮助,希望把文章链接给更多的朋友!

mediapipe中有人体姿态检测的功能,今天我们就将实现最最基础的人体姿态估计项目,它的应用还是有很多的,比如:AI锻炼检测标准、老人跌倒检测等,这些方面其实已经有了很多的参考资料了,当然在我知道的当中用yolo的倒是挺多的。那么今天我们将会通过人物跳舞的视频进行一个姿态的检测。

 

1、效果展示

可以看见GIF图片中人物跳舞视频检测到的人体姿态骨架。(窗口大小的问题,膝盖下的点没有检测到) 

2、项目搭建Opencv项目实战:18 人体姿态检测(opencv开发项目)

如上图,你完全按这个模式照搬过去,完整的视频已经被我拆分好了,大家有兴趣的可以从我的GitHub中获得完整视频与拆分好的视频。

3、项目代码讲解与介绍 Basics.pyimport cv2import mediapipe as mpimport timempDraw = mp.solutions.drawing_utilsmpPose = mp.solutions.posepose = mpPose.Pose()cap = cv2.VideoCapture('Pose_videos/02.mp4')pTime = 0while True: success, img = cap.read() imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) results = pose.process(imgRGB) # print(results.pose_landmarks) if results.pose_landmarks: mpDraw.draw_landmarks(img, results.pose_landmarks, mpPose.POSE_CONNECTIONS) for id, lm in enumerate(results.pose_landmarks.landmark): h, w, c = img.shape print(id, lm) cx, cy = int(lm.x * w), int(lm.y * h) cv2.circle(img, (cx, cy), 5, (255, 0, 0), cv2.FILLED)####################################################################################### cTime = time.time() fps = 1 / (cTime - pTime) pTime = cTime cv2.putText(img, str(int(fps)), (70, 50), cv2.FONT_HERSHEY_PLAIN, 3, (255, 0, 0), 3) cv2.imshow("Image", img) k=cv2.waitKey(1) if k==27: break  PoseModule.pyimport cv2import mediapipe as mpimport timeclass poseDetector(): def __init__(self, mode=False, upBody=False, smooth=True, detectionCon=0.5, trackCon=0.5): self.mode = mode self.upBody = upBody self.smooth = smooth self.detectionCon = detectionCon self.trackCon=trackCon self.mpDraw = mp.solutions.drawing_utils self.mpPose = mp.solutions.pose self.pose = self.mpPose.Pose(self.mode, self.upBody, self.smooth) def findPose(self, img, draw=True): imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) self.results = self.pose.process(imgRGB) if self.results.pose_landmarks: if draw: self.mpDraw.draw_landmarks(img, self.results.pose_landmarks, self.mpPose.POSE_CONNECTIONS) return img def findPosition(self, img, draw=True): self.lmList = [] if self.results.pose_landmarks: for id, lm in enumerate(self.results.pose_landmarks.landmark): h, w, c = img.shape # print(id, lm) cx, cy = int(lm.x * w), int(lm.y * h) self.lmList.append([id, cx, cy]) if draw: cv2.circle(img, (cx, cy), 5, (255, 0, 0), cv2.FILLED) return self.lmListdef main(): cap = cv2.VideoCapture('Pose_videos/02.mp4') pTime = 0 detector = poseDetector() while True: success, img = cap.read() img = detector.findPose(img) lmList = detector.findPosition(img, draw=False) if len(lmList) != 0: print(lmList[14]) cv2.circle(img, (lmList[14][1], lmList[14][2]), 15, (0, 0, 255), cv2.FILLED) cTime = time.time() fps = 1 / (cTime - pTime) pTime = cTime cv2.putText(img, str(int(fps)), (70, 50), cv2.FONT_HERSHEY_PLAIN, 3, (255, 0, 0), 3) cv2.imshow("Image", img) k=cv2.waitKey(1) if k==27: breakif __name__ == "__main__": main()

此模块参照与cvzone中的cvzone.PoseModule模块,大家以后也要学习一下这种制作模块的思想,对大家做项目时是很有帮助的。

Example.pyimport cv2import timeimport PoseModule as pmcap = cv2.VideoCapture('Pose_videos/02.mp4')pTime = 0detector = pm.poseDetector()while True: success, img = cap.read() img = detector.findPose(img) lmList = detector.findPosition(img, draw=False) if len(lmList) !=0: print(lmList[14]) cv2.circle(img, (lmList[14][1], lmList[14][2]), 15, (0, 0, 255), cv2.FILLED) cTime = time.time() fps = 1 / (cTime - pTime) pTime = cTime cv2.putText(img, str(int(fps)), (70, 50), cv2.FONT_HERSHEY_PLAIN, 3, (255, 0, 0), 3) cv2.imshow("Image", img) k = cv2.waitKey(1) if k == 27: break

 可以看到,在以后做项目时就可以从模块当中copy代码,实现会变得更加的方便。

 人体姿态图

此为人体姿态各点的对应图,如果你想要检测某一点的信息,则需要查看此图。

(此图来源于Pose | mediapipe)

4、项目资源

GitHub:18 Human Posture Recognition

5、项目总结

本次项目是按照mediapipe提供的人体姿态估计的功能实现的项目,非常的基础和简单,后面如果我有更好的点子会继续更新这部分内容。

本文链接地址:https://www.jiuchutong.com/zhishi/295916.html 转载请保留说明!

上一篇:【bug】Failed at the node-sass@4.14.1 postinstall script(终于圆满解决)(but all failed)

下一篇:HTML创意动画代码(html制作动画代码)

  • 华为nova5复制粘贴怎么操作(华为手机复制黏贴)

    华为nova5复制粘贴怎么操作(华为手机复制黏贴)

  • 微信怎么看朋友圈访客记录(微信怎么看朋友在不在线状态)

    微信怎么看朋友圈访客记录(微信怎么看朋友在不在线状态)

  • 抖音拉黑能看对方吗(抖音拉黑能看对方在线吗)

    抖音拉黑能看对方吗(抖音拉黑能看对方在线吗)

  • 华为视频在哪个文件夹(华为视频在哪个城市)

    华为视频在哪个文件夹(华为视频在哪个城市)

  • 微信视频通话录屏没有声音怎么办

    微信视频通话录屏没有声音怎么办

  • 电容并联容量大还是小(电容并联容量大还是小计算)

    电容并联容量大还是小(电容并联容量大还是小计算)

  • 现场总线协议应用层分为哪两个子层(现场总线协议的三个基本要素为底层协议)

    现场总线协议应用层分为哪两个子层(现场总线协议的三个基本要素为底层协议)

  • wps页眉横线怎么设置粗细(wps页眉横线怎么设置磅数)

    wps页眉横线怎么设置粗细(wps页眉横线怎么设置磅数)

  • 腾讯会议怎么静音其他人(腾讯会议怎么静音还不被发现)

    腾讯会议怎么静音其他人(腾讯会议怎么静音还不被发现)

  • 如何将电脑微信聊天记录导入手机(如何将电脑微信聊天记录导入新手机)

    如何将电脑微信聊天记录导入手机(如何将电脑微信聊天记录导入新手机)

  • 微信零钱通明细怎么单独删除(微信零钱通明细和零钱明细在一起吗)

    微信零钱通明细怎么单独删除(微信零钱通明细和零钱明细在一起吗)

  • vivox9可不可以隐藏应用(vivox9如何隐藏软件)

    vivox9可不可以隐藏应用(vivox9如何隐藏软件)

  • qq不能发图片是怎么回事(qq不能发图片是怎么回事苹果手机)

    qq不能发图片是怎么回事(qq不能发图片是怎么回事苹果手机)

  • 小米6x什么时候上市(小米6x什么时候出的)

    小米6x什么时候上市(小米6x什么时候出的)

  • win10怎么重装ie浏览器(win10怎么重装声卡驱动)

    win10怎么重装ie浏览器(win10怎么重装声卡驱动)

  • 什么是ofdm符号(ofdm符号生成)

    什么是ofdm符号(ofdm符号生成)

  • 如何关闭windows自动更新(如何关闭windows10自动更新)

    如何关闭windows自动更新(如何关闭windows10自动更新)

  • 微信聊天记录怎么完整版保存(微信聊天记录怎么导入到另一个手机)

    微信聊天记录怎么完整版保存(微信聊天记录怎么导入到另一个手机)

  • 微信加好友显示对方存在异常行为(微信加好友显示朋友验证消息是什么意思)

    微信加好友显示对方存在异常行为(微信加好友显示朋友验证消息是什么意思)

  • 小米8如何隐藏刘海屏(小米8如何隐藏应用软件图标)

    小米8如何隐藏刘海屏(小米8如何隐藏应用软件图标)

  • 全民k歌听歌有记录吗(全民k歌只要听了就有记录吗)

    全民k歌听歌有记录吗(全民k歌只要听了就有记录吗)

  • 为什么wifi有信号却连接不上?(为什么wifi有信号没网络)

    为什么wifi有信号却连接不上?(为什么wifi有信号没网络)

  • 退的个税手续费怎么做会计分录
  • 劳务公司一般纳税人要交什么税
  • 车船使用税代扣怎么计算
  • 如何写财务制度
  • 投资性房地产公允价值模式出售
  • 计提房产税和土地使用税附件
  • 小规模差额征税全额开票和差额开票
  • 年报后 申报报表年初数会调整吗
  • 增值税负数申报监控
  • 小规模纳税人开普票要交税吗
  • 房产未竣工如何缴纳房产税
  • 国有企业党组织工作应遵循的原则包括
  • 怎么扣除未支付的钱
  • 动漫产业增值税优惠政策
  • 子公司之间固定资产转让
  • 金碟系统操作
  • 公司开发票要交多少钱的税?
  • 小规模纳税人可以出口退税吗
  • 民办非营利组织幼儿园清算时固定资产如何处理
  • 金税盘点了没反应
  • 房地产企业扣除项目
  • 研发的样机属于固定资产吗
  • 不交社保一告一个准罚多少钱
  • 商业承兑汇票是谁签发的
  • 什么情况下一般纳税人可以转为小规模纳税人
  • 查账征收的企业所得税什么时候开始汇算
  • 出口退税附加税计税依据
  • 工资中的公积金怎么算法
  • 鸿蒙系统大文件夹怎么调节大小
  • mac和wondows
  • 2021最新版眼保健视频
  • 往年的营业外收入冲减
  • 费用报销操作流程
  • 企业将自有资金无偿提供
  • win10开发工具在哪
  • php日期时间运算汇总
  • 没有一般纳税人证明怎么办
  • 电子发票能否作废
  • 分次预缴税额怎么算
  • 基于stm32的小游戏
  • 一般户和专户可以同一个网点吗
  • php getcwd与dirname(__FILE__)区别详解
  • 支付境外佣金税收政策
  • 个人能去税务局开劳务费发票吗
  • 维修费开票属于信息技术服务吗
  • 年终奖不属于工资有法律依据吗
  • 期初和期末余额是什么意思
  • mysql 网页用户界面
  • 增值税抵扣勾选最晚日期
  • 工会经费计提比例0.8%
  • 子公司自购买日开始持续计算的可辨认净资产的公允价值
  • 坏账准备的核销的分录怎么做
  • 筹建期的开办费开业后如何处理
  • 作废的支票由谁保管
  • 4s店收到红字发票怎么开
  • 进项跟销项金额一样是否可行
  • 一次性购买多张火车票
  • mysql数据查询语句
  • mySQL中in查询与exists查询的区别小结
  • win7 bug
  • 分区时把磁盘格式化了,如何恢复
  • win10怎么自定义壁纸
  • xp系统远程桌面设置
  • 如何把itunes的音乐导入ipod
  • RHEL5 Apache+Tomcat整合,同时支持jsp与php
  • os x10.12支持的机型
  • unity双击
  • shell 多个文件合并
  • img引入图片
  • dos命令可以做什么
  • 批处理重启后继续运行
  • css常用布局方式
  • jquery get(0)
  • jquery自定义方法
  • 走逃失踪纳税人如何处理
  • 财税咨询服务内容包括
  • 车船税优惠政策2022年
  • 浙江省个人医保累计自费多少可以报销
  • 中国采购网地胶
  • 北京税务代办
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设