0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

常见人体姿态评估显示方式的两种方式

OpenCV学堂 来源:OpenCV学堂 2024-11-11 11:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

人体姿态评估中有两种常见的显示方式,分别是火柴人效果与BodyPix效果。其中火柴人效果本质就是基于关键点的深度学习模型推理以后的显示效果;Bodypix本质就就是语义分割模型,基于Deeplabv3+ 与ResNet34构建的一个人体语义分割模型。

火柴人

主要是基于关键点的人体姿态评估显示方式,基于YOLOv8等人体姿态评估的关键点模型均可以实现,演示代码运行效果如下:

612189f2-9052-11ef-a511-92fbcf53809c.png

BodyPix

主要是基于语义分割的人体姿态评估显示方式,支持对人体分割为10或者15个标签,演示代码运行效果如下:

6151cc2a-9052-11ef-a511-92fbcf53809c.png

实现代码

我把相关的代码使用PyQT5封装为一个线程,相关的代码如下:

classInferenceThread(QtCore.QThread):
fire_stats_signal=QtCore.pyqtSignal(dict)

def__init__(self,settings):
super(InferenceThread,self).__init__()
self.settings=settings
self.detector=None
ifself.settings.model_type==0:
self.detector=YOLOv8ORTPose(settings)
self.detector.show_skeleton=True
ifself.settings.model_type==1:
self.detector=YOLOv8ORTPose(settings)
self.detector.show_skeleton=True
ifself.settings.model_type==2:
weight_file_path="D:/projects/body_part_best.onnx"
self.detector=BodyPixSegment(weight_file_path)
self.input_image=settings.input_image

defrun(self):
ifself.detectorisNone:
return
ifself.input_image.endswith(".mp4"):
cap=cv.VideoCapture(self.input_image)
whileTrue:
ret,frame=cap.read()
ifretisTrue:
dst=self.detector.infer_image(frame)
self.fire_stats_signal.emit({"result":frame,"mask":dst})
else:
break
else:
frame=cv.imread(self.input_image)
dst=self.detector.infer_image(frame)
self.fire_stats_signal.emit({"result":frame,"mask":dst})
self.fire_stats_signal.emit({"done":"done"})
return
点击【开始推理】按钮的执行代码如下:
defon_yolov8_infer(self):
image_file=self.image_file_edit.text()
label_file=self.label_file_path.text()
model_file=self.weight_file_path.text()
iflen(image_file)==0orlen(label_file)==0orlen(model_file)==0:
QtWidgets.QMessageBox.warning(self,"警告","参数文件未选择...")
return
settings=DLInferSettings()
settings.weight_file_path=self.weight_file_path.text()
settings.label_map_file_path=self.label_file_path.text()
settings.score_threshold=self.conf_spinbox.value()
settings.input_image=image_file
settings.model_type=0
ifself.rbtn0.isChecked():
settings.model_type=0
ifself.rbtn1.isChecked():
settings.model_type=1
ifself.rbtn2.isChecked():
settings.model_type=2
settings.target_deploy=1
self.work_thread=InferenceThread(settings)
self.work_thread.fire_stats_signal.connect(self.on_update_result_image)
self.work_thread.finished.connect(self.work_thread.deleteLater)
self.work_thread.start()
self.startBtn.setStyleSheet("background-color:gray;color:white")
self.startBtn.setEnabled(False)
self.stopBtn.setStyleSheet("background-color:cyan;color:black")
self.stopBtn.setEnabled(True)

运行结果如下:

618a944c-9052-11ef-a511-92fbcf53809c.png

61b7fa18-9052-11ef-a511-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4976

    浏览量

    74376
  • 深度学习
    +关注

    关注

    73

    文章

    5607

    浏览量

    124624

原文标题:两种常见的人体姿态评估显示方式

文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    PCBA清洗全攻略:手工VS自动,两种方式的区别!

    23年PCBA一站式行业经验PCBA加工厂家今天为大家讲讲PCBA加工如何洗板?PCBA加工洗板的方法。PCBA洗板方法多样,可根据生产规模、产品特性及质量要求,从手工清洗与自动清洗大方向中选
    的头像 发表于 01-07 09:13 330次阅读

    用PLC实现卷径计算的两种算法

    卷径计算,是动态计算如钢卷,纸卷等存料量的一方法,它是实现张力控制和自动充放料、以及甩尾控制的重要前提。卷径计算目前主流的方法有两种,一是根据机列速度(产线速度)和和被测卷的转动角速度求得;另一
    的头像 发表于 11-14 16:54 2545次阅读
    用PLC实现卷径计算的<b class='flag-5'>两种</b>算法

    两种常见的除法器工作原理

    二进制除法器的本质是多次减法,直到余数小于除数为止。对应的个N bit二进制数的除法算法如下。 1、设置2N bit寄存器A的低N位存放被除数,设置2N bit寄存器B的高N位存放除数,设置N
    发表于 10-21 13:28

    ANSA人体模型姿态调整工具的使用案例

    中国体征人体数字模型(AC-HUMs)是中国汽研主持研发的人体有限元模型。BETA CAE Systems与中国汽研保持紧密合作,前、后处理软件(ANSA/META)会全面支持AC-HUMs系列模型。在软件中提供对应工具用于人体
    的头像 发表于 09-28 15:44 1453次阅读
    ANSA<b class='flag-5'>人体</b>模型<b class='flag-5'>姿态</b>调整工具的使用案例

    ANSA人体模型姿态调整工具介绍

    ANSA的人体模型姿态调整工具(HBM Articulation Tool)通过网格变形技术实现基于人体不同部位进行调节,定位人体模型最终的姿态
    的头像 发表于 09-28 15:40 1799次阅读
    ANSA<b class='flag-5'>人体</b>模型<b class='flag-5'>姿态</b>调整工具介绍

    两种散热路径的工艺与应用解析

    背景:两种常见的散热设计思路 在大电流或高功率器件应用中,散热和载流能力是PCB设计中必须解决的难题。常见两种思路分别是: 厚铜板方案:通过整体增加铜箔厚度(如3oz、6oz甚至更高
    的头像 发表于 09-15 14:50 971次阅读

    正确的连接电机传动轴的几种常见连接方式及其优缺点

    在工业机械和自动化设备中,电机与传动轴的连接方式直接影响设备的运行效率、稳定性和使用寿命。选择合适的连接方式需要综合考虑负载特性、安装精度、维护便利性以及成本等因素。以下是几种常见的电机传动轴连接
    的头像 发表于 09-10 07:41 3923次阅读

    常见的物联网连接方式有哪些?

    常见的物联网连接方式
    发表于 09-08 08:26

    科普 | 5G公网对讲有几种实现方式

    对讲机的通信方式,通过PTT按键,实现一键对讲的通信方式,应用在一些关键业务通信,应急通信,行业工作环境下的通信需求。要实现5G公网对讲现在有两种方式,一
    的头像 发表于 09-03 14:14 1321次阅读
    科普 | 5G公网对讲有几种实现<b class='flag-5'>方式</b>?

    常见的变压器接线组别的连接方式

    在电力系统中,变压器起着变换电压、传输电能的作用。而其绕组方式对于供电系统的运行稳定性和安全性具有重要意义。常见的变压器绕组有YNyn0、Dyn11、Y/△、YNd11等,下面将对这些绕组进行详细解析。
    的头像 发表于 09-03 14:07 4639次阅读

    振弦式应变计两种数据传输方式介绍

    着数据采集的效率与可靠性。下面给大家介绍振弦式应变计两种数据传输方式。一、有线传输:稳定可靠的传统方案有线传输是振弦式应变计最传统的数据传输方式,通过专用电缆将传感器与采集终
    的头像 发表于 07-15 13:38 757次阅读
    振弦式应变计<b class='flag-5'>两种</b>数据传输<b class='flag-5'>方式</b>介绍

    贴片晶振中两种常见封装介绍

    贴片晶体振荡器作为关键的时钟频率元件,其性能直接关系到系统运行的稳定性。今天,凯擎小妹带大家聊聊贴片晶振中两种常见封装——金属面封装与陶瓷面封装。
    的头像 发表于 07-04 11:29 1496次阅读
    贴片晶振中<b class='flag-5'>两种</b><b class='flag-5'>常见</b>封装介绍

    两种驱动方式下永磁直线开关磁链电机的研究

    摘要:永磁开关磁链电机数学模型可以等效为永磁无刷电机,普遍采用方波驱动方式。在有限元基础上分析6/7极直线式磁链电机反电势波形,采用方波和正弦波驱动方式,比较两种方式下的电流、电压、平
    发表于 06-09 16:18

    渗压计如何实现精准测量?两种主流方式与应用场景解析

    渗压计是监测岩土工程、大坝渗流压力变化的核心设备,其测量精度和效率直接影响工程安全评估的可靠性。目前主流的测量方式分为现场手动测量与自动化监测类,分别适用于不同的工程场景。一、现场测量:智能读数仪
    的头像 发表于 05-20 16:17 855次阅读
    渗压计如何实现精准测量?<b class='flag-5'>两种</b>主流<b class='flag-5'>方式</b>与应用场景解析

    正激变换器的两种复位方式

    )是RCD复位正激变换器的主要工作波形。电容C端电压在一个开关周期内近似为直流电压,则RCD复位电压是一个方波。同样在开关管关断瞬间,变压器上有一个电压尖峰,是由变压器漏感与开关管结电容谐振引起的。
    的头像 发表于 05-19 10:59 2.3w次阅读
    正激变换器的<b class='flag-5'>两种</b>复位<b class='flag-5'>方式</b>