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

    文章

    4823

    浏览量

    68963
  • 深度学习
    +关注

    关注

    73

    文章

    5512

    浏览量

    121459

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    什么是电流保护的接线方式?有哪两种接线方式?

    方式。下面将对这两种接线方式进行介绍。 一、完全星形接线方式 完全星形接线方式,也称为三相三继电器接线
    的头像 发表于 10-06 17:37 1872次阅读
    什么是电流保护的接线<b class='flag-5'>方式</b>?有哪<b class='flag-5'>两种</b>接线<b class='flag-5'>方式</b>?

    Linux应用层控制外设的两种不同的方式

    众所周知,linux下一切皆文件,那么应用层如何控制硬件层,同样是通过 文件I/O的方式来实现的,那么应用层控制硬件层通常有两种方式
    的头像 发表于 10-05 19:03 685次阅读
    Linux应用层控制外设的<b class='flag-5'>两种</b>不同的<b class='flag-5'>方式</b>

    两种常见的硬件消抖实现方式

    由于机械按键在操作过程中会产生抖动现象,这种抖动信号如果不加以处理,就可能导致单片机等电子设备误判按键状态,从而引发错误操作。本文将详细介绍两种常见的硬件消抖实现方式:RS触发器和电容滤波。 RS
    的头像 发表于 09-25 16:54 1641次阅读
    <b class='flag-5'>两种</b><b class='flag-5'>常见</b>的硬件消抖实现<b class='flag-5'>方式</b>

    示波器两种衰减方式的区别是什么

    两种:内部衰减和外部衰减。 内部衰减 内部衰减是指示波器内部对输入信号进行衰减的方式。内部衰减器通常由电阻和电容组成,通过改变电阻和电容的参数,实现对输入信号的衰减。内部衰减器的优点如下: 1.1 精度高:内部衰减
    的头像 发表于 08-09 14:41 556次阅读

    接地保护分为哪两种方式

    接地保护是电气工程中非常重要的一安全措施,其目的是确保电气设备和系统在发生故障时能够安全地将电流导向地面,从而保护人身安全和设备安全。接地保护主要分为两种方式:工作接地和保护接地。以下是对这
    的头像 发表于 08-05 10:24 1307次阅读

    plc与传感器的两种连接方式

    在工业自动化领域,PLC(可编程逻辑控制器)与传感器的连接是实现自动化控制的关键环节。本文将详细介绍PLC与传感器的两种主要连接方式:模拟量连接和数字量连接。这两种连接方式各有优缺点,
    的头像 发表于 07-25 09:36 1657次阅读

    wdm设备的两种传输方式

    系统中,有多种传输方式,其中最常见两种是密集波分复用(DWDM)和粗波分复用(CWDM)。 1. 密集波分复用(DWDM) 1.1 DWDM技术原理 密集波分复用(Dense Wavelength Division Multi
    的头像 发表于 07-18 09:45 540次阅读

    三相负载的连接方式有哪两种

    三相负载的连接方式主要有星形连接(Y连接)和三角形连接(Δ连接)两种。这两种连接方式在电气工程中非常常见,它们各自具有不同的特性和应用场景。
    的头像 发表于 07-17 10:33 5265次阅读

    控制器有哪两种实现方式?各有何优缺点?

    控制器是计算机系统中的一个关键组件,负责协调和管理计算机硬件和软件资源。在不同的应用场景和系统中,控制器的实现方式可能会有所不同。以下是两种常见的控制器实现方式:硬件控制器和软件控制器
    的头像 发表于 06-30 10:33 1462次阅读

    元器件的包装方式常见的四方式

    元件包装方式在实际生产和使用中广泛应用,不同的包装方式适用于不同类型和规格的元件,并且可以根据具体要求进行定制化的包装设计。不同的包装方式也可以影响元件的存储、运输和使用,选择适合
    的头像 发表于 06-27 12:58 1801次阅读

    PCBA加工中常见两种焊接方式详解

    ,在PCBA行业中经常被使用。接下来深圳PCBA加工厂家为大家详细介绍PCBA加工手工焊接的两种方式,为您揭秘行业内的技术细节。 PCBA加工过程中常用焊接方式 第一
    的头像 发表于 06-14 09:18 616次阅读

    武汉凯迪正大对10KV电缆故障的两种情况及应对和查找方式分享

    10KV电缆是电力传输的重要组成部分,其稳定性和可靠性直接关系到整个电网的安全运行。但是由于电缆的老化、外力破坏、施工质量等多种因素,电缆故障时有发生。下面武汉凯迪正大将针对两种常见的10KV电缆故障情况进行分析,并提出相应的应对和查找
    的头像 发表于 06-05 14:57 423次阅读
    武汉凯迪正大对10KV电缆故障的<b class='flag-5'>两种</b>情况及应对和查找<b class='flag-5'>方式</b>分享

    电动汽车的充电方式有哪两种

    随着电动汽车(EVs)的普及,充电站的建设也在全球范围内迅速扩展。电动汽车充电站主要分为大类:交流充电站和直流充电站。这两种充电站各有特点,为不同类型的电动车辆提供充电服务。 交流充电站 交流
    的头像 发表于 05-16 17:19 861次阅读

    异或门两种常见的实现方式

    两种实现方式都能够实现异或门的功能,具体的选择取决于设计需求和逻辑门的可用性。实际构建异或门时,可以使用离散电子元件(如晶体管、二极管等)或整合电路芯片(如 TTL、CMOS 等)来实现。
    的头像 发表于 02-04 17:30 1.3w次阅读
    异或门<b class='flag-5'>两种</b><b class='flag-5'>常见</b>的实现<b class='flag-5'>方式</b>