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

    文章

    4941

    浏览量

    73137
  • 深度学习
    +关注

    关注

    73

    文章

    5590

    浏览量

    123900

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    常见网络负载均衡的几种方式

    常见网络负载均衡的几种方式包括:DNS负载均衡、反向代理负载均衡、IP负载均衡、应用层负载均衡、链路层负载均衡。以下是小编对几种常见的网络负载均衡方式及其详细展开介绍。
    的头像 发表于 03-06 11:14 1083次阅读

    使用ADS1258的时候调试了它的两种工作方式,寄存器的值会发生错乱,为什么?

    我在使用ADS1258的时候调试了它的两种工作方式,一是auto channel,一是fix channel;使用第一方式都是正常的,
    发表于 02-10 08:21

    LED显示屏的八安装方式及注意事项分析

    LED显示屏的应用场景越来越多,随之也产生了不同的安装方式。今天我们来详细了解一下这些常见的安装方法吧!
    的头像 发表于 01-17 14:52 2814次阅读

    屏蔽双绞线的绞合方式分类

    屏蔽双绞线的绞合方式主要涉及到线芯的排列与绞合程度,以下是关于屏蔽双绞线绞合方式的详细解释: 一、绞合方式的分类 屏蔽双绞线的绞合方式根据绞合程度的不同,主要分为同轴绞合和反向扭绞
    的头像 发表于 01-08 10:34 1004次阅读

    基于ISOS测试标准,两种封装方式对钙钛矿太阳能电池性能影响分析

    钙钛矿太阳能电池(PSCs)极具潜力,但湿度和氧气会导致其性能快速下降,因此封装技术对提高其稳定性至关重要。文章研究了两种常见的封装策略:基于层压的玻璃-玻璃封装(COM)和基于胶水的封装(LAB
    的头像 发表于 01-03 09:03 1577次阅读
    基于ISOS测试标准,<b class='flag-5'>两种</b>封装<b class='flag-5'>方式</b>对钙钛矿太阳能电池性能影响分析

    被问爆的四供电方式,来啦~

    4G模组的外部电源供电设计十分重要,对系统稳定、射频性能都有直接影响。 常见的物联网应用场景下,供电方式有四: LDO供电方式 DCDC供电方式
    的头像 发表于 12-30 15:40 1496次阅读
    被问爆的四<b class='flag-5'>种</b>供电<b class='flag-5'>方式</b>,来啦~

    solidworks正版软件:永久版权和订阅许可 两种购买方式解析和选择

    SOLIDWORKS软件分从购买方式上划分为永久版权的形式和订阅即年付费两种方式,代理商硕迪科技向您详细解析 SOLIDWORKS 的永久版权和订阅许可的区别,各自的优劣势以及适合的应用场景。以帮助您做出适合的决策。
    的头像 发表于 12-16 16:45 2994次阅读
    solidworks正版软件:永久版权和订阅许可 <b class='flag-5'>两种</b>购买<b class='flag-5'>方式</b>解析和选择