位置: 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制作动画代码)

  • 用QQ群疯狂推广的5种方法(qq群推广有用吗)

    用QQ群疯狂推广的5种方法(qq群推广有用吗)

  • 华为手机禁止安装恶意应用在哪里修改呢(华为手机禁止安装应用软件,在哪里设置)

    华为手机禁止安装恶意应用在哪里修改呢(华为手机禁止安装应用软件,在哪里设置)

  • 在WPS第一张幻灯片前加一张空白幻灯片怎么办(第一张幻灯片在位置怎么做)

    在WPS第一张幻灯片前加一张空白幻灯片怎么办(第一张幻灯片在位置怎么做)

  • 怎么查手机删过的照片(怎么查手机删除)

    怎么查手机删过的照片(怎么查手机删除)

  • 抖音投放最佳时间..(抖音投放dou什么时候合适)

    抖音投放最佳时间..(抖音投放dou什么时候合适)

  • 键盘上的冒号是哪个键(键盘上的冒号是什么键)

    键盘上的冒号是哪个键(键盘上的冒号是什么键)

  • 表格怎么加宽行距(表格怎么加宽行距和列宽)

    表格怎么加宽行距(表格怎么加宽行距和列宽)

  • 苹果手机无指纹什么意思(苹果手机无指纹是什么意思)

    苹果手机无指纹什么意思(苹果手机无指纹是什么意思)

  • 使用电脑音频是什么意思(电脑音频是啥)

    使用电脑音频是什么意思(电脑音频是啥)

  • 苹果8p建议升级13.4系统吗(苹果8p建议升级15.7.1吗)

    苹果8p建议升级13.4系统吗(苹果8p建议升级15.7.1吗)

  • ipad怎么增加内存容量(苹果ipad怎么增加内存)

    ipad怎么增加内存容量(苹果ipad怎么增加内存)

  • 移动宽带突然没网了怎么办(移动宽带突然没网了)

    移动宽带突然没网了怎么办(移动宽带突然没网了)

  • 苹果手机微信图标被隐藏了怎么办(苹果手机微信图片删除了怎么恢复)

    苹果手机微信图标被隐藏了怎么办(苹果手机微信图片删除了怎么恢复)

  • 天猫精灵方糖r和in糖区别(天猫精灵方糖r和in糖哪个好)

    天猫精灵方糖r和in糖区别(天猫精灵方糖r和in糖哪个好)

  • ipx5防水能到什么程度(ipx5防水和ipx4防水)

    ipx5防水能到什么程度(ipx5防水和ipx4防水)

  • 横屏模式是什么意思(横屏功能)

    横屏模式是什么意思(横屏功能)

  • 手机号暂停服务啥意思(手机号暂停服务了交了话费还能用么)

    手机号暂停服务啥意思(手机号暂停服务了交了话费还能用么)

  • 苹果11有指纹解锁吗(苹果11有指纹解锁的手机)

    苹果11有指纹解锁吗(苹果11有指纹解锁的手机)

  • 汉微商城是什么模式(汉薇商城有直销牌照)

    汉微商城是什么模式(汉薇商城有直销牌照)

  • 高尔夫app开发怎么做(高尔夫的app)

    高尔夫app开发怎么做(高尔夫的app)

  • 安全守护2怎么绑定不了(安全守护2怎么下载应用)

    安全守护2怎么绑定不了(安全守护2怎么下载应用)

  • Win10系统txt文件打不开怎么办?(win10打开txt)

    Win10系统txt文件打不开怎么办?(win10打开txt)

  • 城市创业生意——开办一家咨询服务公司躺赚钱(城市里创业)

    城市创业生意——开办一家咨询服务公司躺赚钱(城市里创业)

  • 土地税税额标准
  • 印花税申报是含税收入还是不含税收入
  • 小规模纳税人升级一般纳税人流程
  • 固定资产的进项税额可以抵扣吗
  • 出售可供出售金融资产的利得属于什么活动
  • 建筑类企业是否允许留抵
  • 减免所得税优惠明细表怎么填
  • 普票能抵扣多少
  • 个人社保缴费多少钱一个月
  • 信息技术服务开票单位填什么
  • 自然人独资企业是什么意思
  • 外商独资企业资本金的使用
  • 非财政补助支出
  • 不动产进项税额分两年抵扣
  • 销售废旧物品的账务处理
  • 增值税多缴税款退税政策
  • 单位房屋出租转投资性房地产怎么转?
  • 国有资产如何保值
  • 公司支付宝账户怎么登录
  • 员工借款可以直接转账吗
  • 财务人员的大忌
  • 建筑机械租赁站
  • 发票金额与支票数量不符
  • 企业为员工提供住宿会计科目
  • 设立独立核算的销售机构
  • 财务软件里面可以修改吗
  • 自然灾害造成的存货净损失计入什么科目
  • 固定资产替换公式
  • 财产租赁所得的税率是多少
  • 收到以前年度退回的企业所得税怎么做账
  • 如何冲回以前年度账户
  • 房地产企业使用什么准则
  • kernl32.dll
  • 耕地使用税的征收标准
  • 外资企业出租房产税优惠
  • 辞退员工补偿标准是n+1还是2n
  • php canal
  • 外籍人员一次性奖金
  • 微信小程序登录的账号怎么注销
  • 赡养老人专项附加扣除标准2023年
  • 前端es6是什么意思
  • cvpr2021论文列表
  • 处置固定资产涉税
  • php 密码
  • libev & libevent简介 IntelIOT 博客园
  • 购入需要安装的固定资产应先通过什么账户
  • 江西税务官网
  • 小规模纳税人没有收入怎么报税
  • 当月增加的房产 要交房产税吗
  • 筹建期间发生的开办费用
  • 只有发票没有银行怎么办
  • 钢贸企业税收怎么算
  • sql cell函数
  • 基本社会保险制度范围
  • 专项应付款的会计处理
  • 公司购买的机票可以退吗
  • 产品质量认证费用属于什么成本
  • 营改增后建筑业税率
  • 银行卡转账怎么撤回转账的钱
  • 本年利润净利润的关系
  • 各个都很实用:win7系统电脑日常小技巧
  • MS DTC 事务管理器无法启动的解决方案
  • 电脑bios怎么分区
  • win8 开始
  • iphone看mac
  • linux怎么操作
  • dnssne是什么意思
  • win7断电后无法正常启动
  • linux bfs
  • bootstrap栅格布局
  • quick cocos UIListView之isItemInViewRect方法修正
  • cocos2dx 2.2.2
  • css使用教程
  • 7z.exe 命令行
  • shell脚本批量添加10个用户
  • js相等和全等
  • javascript入门教学
  • 山西省地方税务局通用定额发票
  • 临时工和季节工需要交社保吗合法吗
  • 国家税务北京税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设