Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >两种常见的人体姿态评估显示方式

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

作者头像
OpenCV学堂
发布于 2024-06-11 08:08:06
发布于 2024-06-11 08:08:06
21902
代码可运行
举报
运行总次数:2
代码可运行
两种效果

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

火柴人

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

BodyPix

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

实现代码

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class InferenceThread(QtCore.QThread):
    fire_stats_signal = QtCore.pyqtSignal(dict)

    def __init__(self, settings):
        super(InferenceThread, self).__init__()
        self.settings = settings
        self.detector = None
        if self.settings.model_type == 0:
            self.detector = YOLOv8ORTPose(settings)
            self.detector.show_skeleton = True
        if self.settings.model_type == 1:
            self.detector = YOLOv8ORTPose(settings)
            self.detector.show_skeleton = True
        if self.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

    def run(self):
        if self.detector is None:
            return
        if self.input_image.endswith(".mp4"):
            cap = cv.VideoCapture(self.input_image)
            while True:
                ret, frame = cap.read()
                if ret is True:
                    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

点击【开始推理】按钮的执行代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def on_yolov8_infer(self):
    image_file = self.image_file_edit.text()
    label_file = self.label_file_path.text()
    model_file = self.weight_file_path.text()
    if len(image_file) == 0 or len(label_file) == 0 or len(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
    if self.rbtn0.isChecked():
        settings.model_type = 0
    if self.rbtn1.isChecked():
        settings.model_type = 1
    if self.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)

运行结果如下:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenCV学堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
多线程界面化、ONNXRUNTIME + YOLOv8推理演示
2023年一月份跟二月份创建了一个PyQT5人工智能软件开发系列的文章系列,过去的两个月都没怎么更新,心里一直想有时间继续更新下去,今天又更新了一篇,基于PyQT5实现多线程、界面化、YOLOv8对象检测、实例分割、姿态评估的推理。
OpenCV学堂
2023/08/22
1.4K0
多线程界面化、ONNXRUNTIME + YOLOv8推理演示
PyQT5案例开发
基于YOLOv8对象检测/实例分割模型,实现一个基于检测的对象跟踪算法,YOLOv8支持两种主流的对象跟踪算法ByteTrack与Botsort。通过自定义数据训练YOLOv8对象检测器可以实现不同类别的对象的跟踪。同时基于检测与跟踪模型的输出,实现了对象计数、指定类别跟踪、区域流量统计、指定ID跟踪、单对象与多对象跟踪等操作。
OpenCV学堂
2023/08/23
3290
PyQT5案例开发
两行代码搞定YOLOv8各种模型推理
大家好,YOLOv8 框架本身提供的API函数是可以两行代码实现 YOLOv8 模型推理,这次我把这段代码封装成了一个类,只有40行代码左右,可以同时支持YOLOv8对象检测、实例分割、姿态评估模型的GPU与CPU上推理演示。
OpenCV学堂
2023/08/22
1.3K0
两行代码搞定YOLOv8各种模型推理
YoloV8自定义姿势关键点检测教程:机械臂关键点姿势跟踪(步骤 + 源码)
自定义姿势关键点检测是一种计算机视觉技术,涉及识别和跟踪对象上的特定点或关键点。对于下棋机器人手臂来说,这些关键点可以代表棋子的位置、棋盘的方向,甚至机器人手臂本身的配置。
Color Space
2024/01/12
1.7K0
YoloV8自定义姿势关键点检测教程:机械臂关键点姿势跟踪(步骤 + 源码)
人工智能,应该如何测试?(二)数据挖掘篇
数据决定模型的上限,而算法调参只是尽量的帮你逼近那个上限,建模工程师 80% 的时间都是在跟数据打交道,国内在 AI 上的发展与国外最大的差距不是在算力上,而是高质量的数据。 相信大家在网络上都见过类似的说法,事实上这些说法都是正确的。并且对于测试人员来说也是一样的。 通过上一篇介绍效果测试的文章大家可以知道,目前已经有现成库帮我们去计算模型的评估指标,老实讲去计算这些指标没有一点难度,甚至可以说没什么技术含量,懂 python 的人都可以做。但是真正难的,是如何收集到符合场景要求的数据以及如何保证这些数据的质量,就连用 AI 测试 AI 这个方法,也需要先收集到符合要求的数据才能训练出可以用来测试的模型。 所以虽然我们是在测试 AI,但实际上我们掌握的最多的技能却是数据处理相关的,比如 spark, flink,opencv,ffmpeg 等等。 所以这一篇,我来科普一下在项目中,我们是如何处理数据的。
霍格沃兹测试开发Muller老师
2024/04/07
2600
「深度学习一遍过」必修27:基于Mask-RCNN的人体姿态估计的设计与实现
Classic_model_examples/2017_Mask-RCNN_TargetDetectionAndSegmentation at main · zhao302014/Classic_model_examples · GitHub
荣仔_最靓的仔
2022/01/10
1.1K0
「深度学习一遍过」必修27:基于Mask-RCNN的人体姿态估计的设计与实现
3D 人体姿态估计简述
3D Human Pose Estimation(以下简称 3D HPE )的目标是在三维空间中估计人体关键点的位置。3D HPE 的应用非常广泛,包括人机交互、运动分析、康复训练等,它也可以为其他计算机视觉任务(例如行为识别)提供 skeleton 等方面的信息。关于人体的表示一般有两种方式:第一种以骨架的形式表示人体姿态,由一系列的人体关键点和关键点之间的连线构成;另一种是参数化的人体模型(如 SMPL [2]),以 mesh 形式表示人体姿态和体型。
OpenMMLab 官方账号
2022/02/15
3.4K0
3D 人体姿态估计简述
使用OpenCV和YOLOv8制作目标检测器(附源码)
YOLO(You Only Look Once)是由Joseph Redmon和Ali开发的一种对象检测和图像分割模型。
小F
2023/09/19
3.1K1
使用OpenCV和YOLOv8制作目标检测器(附源码)
CVPR2019 | 15篇论文速递(涵盖目标检测、语义分割和姿态估计等方向)
【导读】CVPR 2019 接收论文列表已经出来了,但只是一些索引号,所以并没有完整的论文合集。CVer 最近也在整理收集,今天一文涵盖15篇 CVPR 2019 论文速递,内容涵盖目标检测、语义分割和姿态估计等方向。
AI研习社
2019/05/15
9940
CVPR2019 | 15篇论文速递(涵盖目标检测、语义分割和姿态估计等方向)
yolo-world 源码解析(三)
ApacheCN_飞龙
2024/03/09
4340
【全流程】从头在树莓派4B上部署自己训练的yolov5模型(配合NCS2加速)
最近这一个月基本没写过博客,因为一直在树莓派4B上部署yolov5的模型,已经数不清楚踩了多少坑了,来来回回折腾了一个月,终于完成了。于是写下这篇博客,一是记录下全部的流程,方便以后其他项目借鉴;二是希望和我一样有类似需求的朋友能少走些弯路。
全栈程序员站长
2022/09/02
7.4K0
【目标检测】SSD目标检测
场景文字识别 目标检测任务的目标是给定一张图像或是视频帧,让计算机找出其中所有目标的位置,并给出每个目标的具体类别。对于人类来说,目标检测是一个非常简单的任务。然而,计算机能够“看到”的仅有一些值为0 ~ 255的矩阵,很难解图像或是视频帧中出现了人或是物体这样的高层语义概念,也就更加难以定位目标出现在图像中哪个区域。与此同时,由于目标会出现在图像或是视频帧中的任何位置,目标的形态千变万化,图像或是视频帧的背景千差万别,诸多因素都使得目标检测对计算机来说是一个具有挑战性的问题。 【目标检测】 SSD目标
用户1386409
2018/04/02
4.4K1
【目标检测】SSD目标检测
使用decoupleR一次性实现11种基因集的活性打分(R与Python我都要)
官网github链接:https://github.com/saezlab/decoupleR
生信技能树
2024/12/05
1K0
使用decoupleR一次性实现11种基因集的活性打分(R与Python我都要)
基于Aidlux平台的工业视觉缺陷检测
工业视觉缺陷检测是一种利用计算机视觉技术,对工业制品进行自动化检测,以识别和分类可能存在的缺陷的方法。它是现代工业生产中的重要环节,可以大大提高生产效率,降低产品缺陷率,提高产品质量。
用户10686717
2023/09/08
3740
YOLOv8创新改进专栏介绍
数据集大小:427张,进行3倍数据增强得到1708张,最终训练集验证集测试集随机分配为8:1:1
AI小怪兽
2023/11/08
1.3K0
yolo-world 源码解析(四)
For pre-training YOLO-World, we adopt several datasets as listed in the below table:
ApacheCN_飞龙
2024/03/09
4120
手把手入门教程:YOLOv8如何训练自己的数据集,交通信号灯识别
Ultralytics YOLOv8是Ultralytics公司开发的YOLO目标检测和图像分割模型的最新版本。YOLOv8是一种尖端的、最先进的(SOTA)模型,它建立在先前YOLO成功基础上,并引入了新功能和改进,以进一步提升性能和灵活性。它可以在大型数据集上进行训练,并且能够在各种硬件平台上运行,从CPU到GPU。
AI小怪兽
2023/11/03
7.4K0
Analysis of requirement specification of parking management system
Analysis of requirement specification of parking management system
程序员小藕
2020/07/28
5370
旷视15篇论文入选ECCV 2020(含目标检测/NAS/人体姿态估计等)
8月23-28日,全球计算机视觉三大顶会之一,两年一度的 ECCV 2020(欧洲计算机视觉国际会议)即将召开。受到疫情影响,今年的 ECCV 将以线上形式举办。据官方统计,本次大会有效投稿5025篇,其中有1361篇被接收,录用率为27%,较上届31.8%有所下降。其中,Oral 论文104篇(占总投稿数2%),Spotlight 论文161篇(本届新增,占总投稿数5%),其余为 Poster。
Amusi
2020/08/24
1.1K0
旷视15篇论文入选ECCV 2020(含目标检测/NAS/人体姿态估计等)
《我的PaddlePaddle学习之路》笔记九——使用VOC数据集的实现目标检测
目标检测的使用范围很广,比如我们使用相机拍照时,要正确检测人脸的位置,从而做进一步处理,比如美颜等等。在目标检测的深度学习领域上,从2014年到2016年,先后出现了R-CNN,Fast R-CNN, Faster R-CNN, ION, HyperNet, SDP-CRC, YOLO,G-CNN, SSD等神经网络模型,使得目标检测不管是在准确度上,还是速度上都有很大提高,几乎可以达到实时检测。
夜雨飘零
2020/05/06
1.2K0
《我的PaddlePaddle学习之路》笔记九——使用VOC数据集的实现目标检测
推荐阅读
相关推荐
多线程界面化、ONNXRUNTIME + YOLOv8推理演示
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档