基于高精度YOLOv8开发构建公共场景下行人人员姿态估计分析识别系统

姿态估计(PoseEstimation)在我们前面的相关项目中涉及到的并不多,CV数据场景下主要还是以目标检测、图像识别和分割居多,最近正好项目中在使用YOLO系列最新的模型开发项目,就想着抽时间基于YOLOv8也开发构建实现人体姿态估计分析系统。

首先看下实例效果:

接下来简单看下我们构建的数据集:

实例标注数据如下所示:

0 0.204560 0.813013 0.128400 0.370993 0.216000 0.705298 2.000000 0.226000 0.695364 2.000000 0.208000 0.692053 2.000000 0.238000 0.701987 2.000000 0.194000 0.695364 2.000000 0.246000 0.754967 2.000000 0.180000 0.761589 2.000000 0.252000 0.841060 2.000000 0.150000 0.837748 2.000000 0.224000 0.894040 2.000000 0.174000 0.874172 2.000000 0.232000 0.880795 2.000000 0.194000 0.880795 2.000000 0.262000 0.874172 2.000000 0.154000 0.890728 2.000000 0.192000 0.956954 2.000000 0.234000 0.956954 2.000000
0 0.351840 0.809454 0.144080 0.356987 0.356000 0.725166 2.000000 0.362000 0.705298 2.000000 0.348000 0.705298 2.000000 0.376000 0.698675 2.000000 0.330000 0.701987 2.000000 0.390000 0.758278 2.000000 0.316000 0.758278 2.000000 0.418000 0.847682 2.000000 0.288000 0.854305 2.000000 0.406000 0.910596 1.000000 0.302000 0.927152 2.000000 0.384000 0.903974 2.000000 0.332000 0.907285 2.000000 0.412000 0.837748 2.000000 0.308000 0.854305 2.000000 0.354000 0.933775 2.000000 0.374000 0.933775 2.000000
0 0.474370 0.787649 0.131660 0.334834 0.476000 0.705298 2.000000 0.486000 0.692053 2.000000 0.468000 0.695364 2.000000 0.498000 0.688742 2.000000 0.454000 0.688742 2.000000 0.504000 0.735099 2.000000 0.444000 0.735099 2.000000 0.524000 0.814570 2.000000 0.412000 0.801325 1.000000 0.484000 0.824503 2.000000 0.434000 0.817881 2.000000 0.488000 0.910596 2.000000 0.454000 0.910596 2.000000 0.492000 0.788079 2.000000 0.436000 0.781457 2.000000 0.442000 0.910596 2.000000 0.488000 0.900662 2.000000
0 0.587770 0.793510 0.144820 0.315099 0.588000 0.725166 2.000000 0.598000 0.708609 2.000000 0.582000 0.708609 2.000000 0.612000 0.705298 2.000000 0.570000 0.701987 2.000000 0.628000 0.754967 2.000000 0.558000 0.751656 2.000000 0.648000 0.831126 2.000000 0.534000 0.821192 2.000000 0.610000 0.850993 2.000000 0.558000 0.831126 2.000000 0.608000 0.890728 2.000000 0.560000 0.887417 2.000000 0.642000 0.870861 2.000000 0.524000 0.864238 2.000000 0.574000 0.920530 2.000000 0.594000 0.913907 2.000000
0 0.718690 0.786507 0.126220 0.314603 0.704000 0.705298 2.000000 0.714000 0.692053 2.000000 0.696000 0.692053 2.000000 0.728000 0.695364 2.000000 0.684000 0.698675 2.000000 0.730000 0.738411 2.000000 0.676000 0.738411 2.000000 0.754000 0.814570 2.000000 0.672000 0.807947 2.000000 0.728000 0.877483 2.000000 0.702000 0.874172 2.000000 0.730000 0.864238 2.000000 0.690000 0.864238 2.000000 0.766000 0.857616 2.000000 0.664000 0.857616 2.000000 0.706000 0.930464 2.000000 0.734000 0.907285 2.000000
0 0.836620 0.804056 0.125160 0.326589 0.832000 0.725166 2.000000 0.842000 0.708609 2.000000 0.822000 0.708609 2.000000 0.854000 0.711921 2.000000 0.810000 0.708609 2.000000 0.856000 0.741722 2.000000 0.810000 0.735099 2.000000 0.876000 0.834437 2.000000 0.794000 0.821192 2.000000 0.000000 0.000000 0.000000 0.840000 0.824503 2.000000 0.856000 0.880795 1.000000 0.816000 0.880795 2.000000 0.904000 0.827815 1.000000 0.784000 0.814570 2.000000 0.828000 0.923841 2.000000 0.846000 0.933775 2.000000
0 0.829320 0.575281 0.081440 0.305596 0.828000 0.490066 2.000000 0.836000 0.483444 2.000000 0.818000 0.483444 2.000000 0.846000 0.490066 2.000000 0.806000 0.493377 2.000000 0.856000 0.536424 2.000000 0.796000 0.543046 2.000000 0.854000 0.596026 2.000000 0.798000 0.602649 2.000000 0.844000 0.655629 1.000000 0.816000 0.665563 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0 0.730170 0.630215 0.132700 0.387914 0.750000 0.509934 2.000000 0.754000 0.493377 2.000000 0.742000 0.493377 2.000000 0.766000 0.493377 2.000000 0.734000 0.496689 2.000000 0.782000 0.533113 1.000000 0.722000 0.529801 1.000000 0.784000 0.625828 2.000000 0.724000 0.625828 2.000000 0.762000 0.665563 2.000000 0.744000 0.665563 2.000000 0.770000 0.629139 2.000000 0.738000 0.632450 2.000000 0.762000 0.721854 2.000000 0.740000 0.715232 2.000000 0.766000 0.847682 1.000000 0.000000 0.000000 0.000000
0 0.684390 0.547202 0.077020 0.239371 0.684000 0.486755 2.000000 0.692000 0.476821 2.000000 0.678000 0.476821 2.000000 0.700000 0.480132 2.000000 0.664000 0.480132 1.000000 0.712000 0.526490 2.000000 0.660000 0.523179 2.000000 0.712000 0.592715 1.000000 0.658000 0.576159 2.000000 0.692000 0.645695 1.000000 0.664000 0.642384 2.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0 0.173210 0.286093 0.106420 0.353907 0.170000 0.182119 2.000000 0.176000 0.168874 2.000000 0.160000 0.168874 2.000000 0.188000 0.172185 2.000000 0.146000 0.168874 1.000000 0.204000 0.228477 2.000000 0.140000 0.228477 2.000000 0.220000 0.298013 2.000000 0.128000 0.304636 1.000000 0.210000 0.357616 2.000000 0.000000 0.000000 0.000000 0.194000 0.394040 2.000000 0.150000 0.390728 1.000000 0.198000 0.493377 1.000000 0.142000 0.493377 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0 0.246530 0.387881 0.093340 0.245960 0.242000 0.334437 2.000000 0.248000 0.324503 2.000000 0.234000 0.324503 2.000000 0.262000 0.327815 2.000000 0.228000 0.327815 2.000000 0.272000 0.397351 2.000000 0.216000 0.394040 2.000000 0.288000 0.480132 2.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.264000 0.529801 1.000000 0.220000 0.526490 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0 0.904980 0.679123 0.085200 0.468245 0.902000 0.500000 2.000000 0.908000 0.486755 2.000000 0.892000 0.486755 2.000000 0.922000 0.496689 1.000000 0.882000 0.496689 2.000000 0.932000 0.556291 2.000000 0.868000 0.556291 2.000000 0.936000 0.642384 2.000000 0.870000 0.639073 2.000000 0.922000 0.695364 2.000000 0.896000 0.698675 2.000000 0.918000 0.675497 2.000000 0.888000 0.678808 2.000000 0.932000 0.751656 2.000000 0.878000 0.745033 2.000000 0.886000 0.874172 1.000000 0.908000 0.870861 2.000000
0 0.609940 0.572252 0.082680 0.361854 0.614000 0.466887 2.000000 0.620000 0.453642 2.000000 0.606000 0.453642 2.000000 0.634000 0.460265 2.000000 0.600000 0.466887 2.000000 0.640000 0.526490 2.000000 0.588000 0.523179 2.000000 0.640000 0.622517 2.000000 0.584000 0.609272 2.000000 0.614000 0.658940 2.000000 0.592000 0.652318 1.000000 0.626000 0.658940 2.000000 0.586000 0.655629 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000

这里姿态估计的训练数据配置有别于目标检测,需要额外给出点位字段,下面给出来完整的训练数据配置文件内容:

# Dataset
path: ./dataset
train:- /person-pose-yolov8/dataset/images/train
val:- /person-pose-yolov8/dataset/images/test
test:- /person-pose-yolov8/dataset/images/testkpt_shape: [17, 3]
flip_idx: [0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15]# Classes
names:0: person

为了对YOLOv8这一款模型性能进行全面对比分析,这里我们开发构建了包括:n、s、

m、l和x在内的全系列参数模型,模型文件如下:

# Parameters
nc: 1  # number of classes
kpt_shape: [17, 3] 
scales: # model compound scaling constants, i.e. 'model=yolov8n-pose.yaml' will call yolov8-pose.yaml with scale 'n'# [depth, width, max_channels]n: [0.33, 0.25, 1024]s: [0.33, 0.50, 1024]m: [0.67, 0.75, 768]l: [1.00, 1.00, 512]x: [1.00, 1.25, 512]# YOLOv8.0n backbone
backbone:# [from, repeats, module, args]- [-1, 1, Conv, [64, 3, 2]]  # 0-P1/2- [-1, 1, Conv, [128, 3, 2]]  # 1-P2/4- [-1, 3, C2f, [128, True]]- [-1, 1, Conv, [256, 3, 2]]  # 3-P3/8- [-1, 6, C2f, [256, True]]- [-1, 1, Conv, [512, 3, 2]]  # 5-P4/16- [-1, 6, C2f, [512, True]]- [-1, 1, Conv, [1024, 3, 2]]  # 7-P5/32- [-1, 3, C2f, [1024, True]]- [-1, 1, SPPF, [1024, 5]]  # 9# YOLOv8.0n head
head:- [-1, 1, nn.Upsample, [None, 2, 'nearest']]- [[-1, 6], 1, Concat, [1]]  # cat backbone P4- [-1, 3, C2f, [512]]  # 12- [-1, 1, nn.Upsample, [None, 2, 'nearest']]- [[-1, 4], 1, Concat, [1]]  # cat backbone P3- [-1, 3, C2f, [256]]  # 15 (P3/8-small)- [-1, 1, Conv, [256, 3, 2]]- [[-1, 12], 1, Concat, [1]]  # cat head P4- [-1, 3, C2f, [512]]  # 18 (P4/16-medium)- [-1, 1, Conv, [512, 3, 2]]- [[-1, 9], 1, Concat, [1]]  # cat head P5- [-1, 3, C2f, [1024]]  # 21 (P5/32-large)- [[15, 18, 21], 1, Pose, [nc, kpt_shape]]  # Pose(P3, P4, P5)

在实验阶段我们设定不同系列的参数模型完全相同的训练配置,等待全部训练完成后来看下结果详情对比情况。

【Precision曲线】
精确率曲线(Precision-Recall Curve)是一种用于评估二分类模型在不同阈值下的精确率性能的可视化工具。它通过绘制不同阈值下的精确率和召回率之间的关系图来帮助我们了解模型在不同阈值下的表现。
精确率(Precision)是指被正确预测为正例的样本数占所有预测为正例的样本数的比例。召回率(Recall)是指被正确预测为正例的样本数占所有实际为正例的样本数的比例。
绘制精确率曲线的步骤如下:
使用不同的阈值将预测概率转换为二进制类别标签。通常,当预测概率大于阈值时,样本被分类为正例,否则分类为负例。
对于每个阈值,计算相应的精确率和召回率。
将每个阈值下的精确率和召回率绘制在同一个图表上,形成精确率曲线。
根据精确率曲线的形状和变化趋势,可以选择适当的阈值以达到所需的性能要求。
通过观察精确率曲线,我们可以根据需求确定最佳的阈值,以平衡精确率和召回率。较高的精确率意味着较少的误报,而较高的召回率则表示较少的漏报。根据具体的业务需求和成本权衡,可以在曲线上选择合适的操作点或阈值。
精确率曲线通常与召回率曲线(Recall Curve)一起使用,以提供更全面的分类器性能分析,并帮助评估和比较不同模型的性能。

【Recall曲线】
召回率曲线(Recall Curve)是一种用于评估二分类模型在不同阈值下的召回率性能的可视化工具。它通过绘制不同阈值下的召回率和对应的精确率之间的关系图来帮助我们了解模型在不同阈值下的表现。
召回率(Recall)是指被正确预测为正例的样本数占所有实际为正例的样本数的比例。召回率也被称为灵敏度(Sensitivity)或真正例率(True Positive Rate)。
绘制召回率曲线的步骤如下:
使用不同的阈值将预测概率转换为二进制类别标签。通常,当预测概率大于阈值时,样本被分类为正例,否则分类为负例。
对于每个阈值,计算相应的召回率和对应的精确率。
将每个阈值下的召回率和精确率绘制在同一个图表上,形成召回率曲线。
根据召回率曲线的形状和变化趋势,可以选择适当的阈值以达到所需的性能要求。
通过观察召回率曲线,我们可以根据需求确定最佳的阈值,以平衡召回率和精确率。较高的召回率表示较少的漏报,而较高的精确率意味着较少的误报。根据具体的业务需求和成本权衡,可以在曲线上选择合适的操作点或阈值。
召回率曲线通常与精确率曲线(Precision Curve)一起使用,以提供更全面的分类器性能分析,并帮助评估和比较不同模型的性能。

【F1值曲线】
F1值曲线是一种用于评估二分类模型在不同阈值下的性能的可视化工具。它通过绘制不同阈值下的精确率(Precision)、召回率(Recall)和F1分数的关系图来帮助我们理解模型的整体性能。
F1分数是精确率和召回率的调和平均值,它综合考虑了两者的性能指标。F1值曲线可以帮助我们确定在不同精确率和召回率之间找到一个平衡点,以选择最佳的阈值。
绘制F1值曲线的步骤如下:
使用不同的阈值将预测概率转换为二进制类别标签。通常,当预测概率大于阈值时,样本被分类为正例,否则分类为负例。
对于每个阈值,计算相应的精确率、召回率和F1分数。
将每个阈值下的精确率、召回率和F1分数绘制在同一个图表上,形成F1值曲线。
根据F1值曲线的形状和变化趋势,可以选择适当的阈值以达到所需的性能要求。
F1值曲线通常与接收者操作特征曲线(ROC曲线)一起使用,以帮助评估和比较不同模型的性能。它们提供了更全面的分类器性能分析,可以根据具体应用场景来选择合适的模型和阈值设置。

【mAP0.5】
mAP0.5(mean Average Precision at 0.5 IoU)
mAP0.5表示在IoU(交并比)阈值为0.5的情况下计算的平均精度(Average Precision,AP)。
IoU阈值决定了何时认为检测框与真实框匹配。较高的IoU阈值意味着更严格的匹配标准。
mAP0.5主要关注低阈值下的性能,即当IoU接近0.5时,模型在识别重叠框时的准确性。

【mAP0.5:0.95】
mAP0.5:0.95(mean Average Precision over IoU thresholds from 0.5 to 0.95):
mAP0.5:0.95表示在多个IoU阈值(从0.5到0.95)下计算的平均精度。
它涵盖了从低到高的IoU阈值,更全面地评估了模型在不同IoU阈值下的性能。
mAP0.5:0.95可以帮助我们了解模型在不同重叠程度下的检测能力。

从实验对比结果来看:n和s系列模型的效果被拉开了明显的差距,m系列的模型效果居于中游水平,l和x系列的模型则达到了最优的效果,二者旗鼓相当没有明显的差异。在实际项目使用的话可以优先考虑使用m或者是l系列的模型。

接下来我们以l系列模型为例看下结果详情:

【Batch实例】

【训练可视化】

【PR曲线】

【离线推理实例效果如下】

感兴趣的话也都可以试试看!

如果自己不具备开发训练的资源条件或者是没有时间自己去训练的话这里我提供出来对应的训练结果可供自行按需索取。

单个模型的训练结果默认YOLOv8s

全系列五个模型的训练结果总集

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/652295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

知识笔记(九十七)———什么是实体符???

在HTML中&#xff0c;有些字符无法直接在文本中输入&#xff0c;因为它们是HTML语言的保留字符&#xff0c;如小于号&#xff08;<&#xff09;、大于号&#xff08;>&#xff09;、&符号&#xff08;&&#xff09;等。为了将这些字符显示在网页上&#xff0c;需…

[UI5 常用控件] 02.Title,Link,Label

文章目录 前言1. Title1.1 结合Panel1.2 结合Table1.3 Title里嵌套Link 2. Link3. Label3.1 普通用法3.2 在Form里使用 前言 本章节记录常用控件Title,Link,Label。 其路径分别是&#xff1a; sap.m.Titlesap.m.Linksap.m.Label 1. Title Title可以结合其他控件一起使用 1.…

总结红包雨项目的所有代码,包括添加图片,分享按钮,红包雨,用户是否有抽奖逻辑判断

整体实现效果: 需要用的图片: html: <body><div id"app"><!-- <div class"share-box"><img src"./share_box.png" alt"share-button"></div> --><!-- img图片 --><div class"gif-…

DNS解析记录类型

在数字化时代&#xff0c;理解DNS&#xff08;域名系统&#xff09;解析的各种记录类型对于任何网络专业人士来说都是至关重要的。DNS作为互联网的基石&#xff0c;其记录类型的多样性和复杂性使得网络通信既高效又安全。以下是对DNS记录类型的详细解读。 A记录&#xff08;Ad…

axios结合ts使用,取消请求,全局统一获取数据,抛出错误信息

通常在开发时&#xff0c;后端向前端返回的数据可以如下&#xff1a; 1 使用restful api充分利用http状态码&#xff0c;然后在data中追加code字段&#xff0c;请求成功返回200,请求失败返回404,401,500等状态码&#xff0c;并且在code字段中给出详细的字符串信息2 再包一层&a…

JVM基础知识汇总篇

☆* o(≧▽≦)o *☆嗨~我是小奥&#x1f379; &#x1f4c4;&#x1f4c4;&#x1f4c4;个人博客&#xff1a;小奥的博客 &#x1f4c4;&#x1f4c4;&#x1f4c4;CSDN&#xff1a;个人CSDN &#x1f4d9;&#x1f4d9;&#x1f4d9;Github&#xff1a;传送门 &#x1f4c5;&a…

【力扣每日一题】力扣2865美丽塔I

题目来源 力扣2865美丽塔I 题目概述 给你一个长度为 n 下标从 0 开始的整数数组 maxHeights 。 你的任务是在坐标轴上建 n 座塔。第 i 座塔的下标为 i &#xff0c;高度为 heights[i] 。 如果以下条件满足&#xff0c;我们称这些塔是 美丽 的&#xff1a; 1 < heights…

翻译: GPT-4 with Vision 升级 Streamlit 应用程序的 7 种方式一

随着 OpenAI 在多模态方面的最新进展&#xff0c;想象一下将这种能力与视觉理解相结合。 现在&#xff0c;您可以在 Streamlit 应用程序中使用 GPT-4 和 Vision&#xff0c;以&#xff1a; 从草图和静态图像构建 Streamlit 应用程序。帮助你优化应用的用户体验&#xff0c;包…

《合成孔径雷达成像算法与实现》Figure5.18

clc clear close all距离向参数 R_eta_c 20e3; % 景中心斜距 Tr 25e-6; % 发射脉冲时宽 Kr 0.25e12; % 距离向调频率 Fr 7.5e6; % 距离向采样率 Nrg 256; % 距离线采样点数 Bw abs(Kr*Tr); …

Redis面试题35

什么是大数据&#xff1f;它有哪些应用场景&#xff1f; 答&#xff1a;大数据&#xff08;Big Data&#xff09;是指规模庞大、复杂多样的数据集合&#xff0c;以及从这些数据中提取、分析和运用的技术和方法。 大数据的特点主要包括3V&#xff1a;Volume&#xff08;大量&…

.NET绿色开源一键自动化下载、安装、激活Office的利器

前言 今天分享一款.NET开源、绿色、安全、无毒的支持一键自动化下载、安装、激活Microsoft Office的利器&#xff1a;LKY_OfficeTools。 工具介绍 一键自动化下载、安装、激活 Microsoft Office 的利器。绿色、开源、安全、无毒。 目前包含的功能&#xff1a; 一键快速下载、…

【机器学习300问】16、逻辑回归模型实现分类的原理?

在上一篇文章中&#xff0c;我初步介绍了什么是逻辑回归模型&#xff0c;从它能解决什么问题开始介绍&#xff0c;并讲到了它长什么样子的。如果有需要的小伙伴可以回顾一下&#xff0c;链接我放在下面啦&#xff1a; 【机器学习300问】15、什么是…

C#,计算几何,二维贝塞尔拟合曲线(Bézier Curve)参数点的计算代码

Pierre Bzier Bzier 算法用于曲线的拟合与插值。 插值是一个或一组函数计算的数值完全经过给定的点。 拟合是一个或一组函数计算的数值尽量路过给定的点。 这里给出 二维 Bzier 曲线拟合的参数点计算代码。 区别于另外一种读音接近的贝塞耳插值算法&#xff08;Bessels int…

【CAD全套教程】第1阶段 CAD软件教程 002+003基础界面设置

002基础界面设置 1.切换界面至AutoCAD经典界面 方式一&#xff1a;任务栏点击后直接选择 方式二&#xff1a;右下角点击齿轮图标&#xff08;切换工作空间&#xff09;后直接选择 界面图 2.AutoCAD常用命令 工具栏右键单击&#xff0c;选择AutoCAD 3.命令提示行 最下方&#xf…

【Docker】实现JMeter分布式压测

一个JMeter实例可能无法产生足够的负载来对你的应用程序进行压力测试。如本网站所示&#xff0c;一个JMeter实例将能够控制许多其他的远程JMeter实例&#xff0c;并对你的应用程序产生更大的负载。JMeter使用Java RMI[远程方法调用]来与分布式网络中的对象进行交互。JMeter主站…

【前端web入门第二天】01 html语法实现列表与表格_合并单元格

html语法实现列表与表格 文章目录: 1.列表 1.1 无序列表1.2 有序列表1.3 定义列表 2.表格 2.1 表格基本结构2.2 表格结构标签2.3 合并单元格 写在最前,第二天学习目标: 列表 表格 表单 元素为嵌套关系 1.列表 作用:布局内容排列整齐的区域。 列表分类:无序列表、有序列表…

数字IC实践项目(8)—CNN加速器(ASIC_Flow;付费项目补充)

数字IC实践项目&#xff08;8&#xff09;—CNN加速器&#xff08;ASIC_Flow&#xff1b;付费项目补充&#xff09; 更新说明项目整体框图神经网络框图File tree 项目简介和学习目的软件环境要求 Area、QOR、Power&Timing报告Area & QORTiming & Power 总结 更新说…

数据结构和线程池

1.List List<String> list new ArrayList<>(); 并发读写时&#xff0c;会抛出异常&#xff08;Java.util.ConcurrentModificationException&#xff09; new vector<>(); 读写操作都加了锁&#xff0c;但性能不理想 new CopyOnWriteArrayList<>(); 并…

【C++】类与对象(一)

前言 类与对象&#xff08;一&#xff09; 文章目录 一、面向对象和面向过程的对比二、类的引入2.1 C中的结构体2.2 类2.3 类定义方法2.4 修饰限定符2.5 封装2.6 类的实例化2.7 类对象的大小 三、this指针3.1 this 指针的使用 一、面向对象和面向过程的对比 面向过程编程是将程…

代码随想录算法训练营第四十六天 | 139.单词拆分、多重背包

139.单词拆分 题目链接&#xff1a;139.单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 文章讲解/视频讲解&#xff1a;https://programmercarl.com/0139.%E5%8D%95%E8%AF%8D%E6%8B%86%E5%88…