行为识别:基于3D卷积的视频分析与动作识别,Openpose、姿态估计

I3D (inflated 3D)是什么? ​I3D是除了双流网络视频领域里的另一力作,本文主要的工作有2个方面,一方面就是这个标题名称,inflated,本文提供了一种方法将2D网络膨胀为3D网络,使得视频理解不需要再耗费心神去设计一个专门的网络了,而是可以直接使用图片预训练好的模型甚至是预训练的参数,另一方面是提出了一个Kinetics400数据集(后续还有扩充),大家可以在这个数据集做视频理解的预训练,然后迁移到其他数据集上,也能获得比较好的结果 ​... 阅读详情
AI摘要

本文围绕3D卷积展开,对比了2D与3D卷积,介绍了C3D、I3D等3D卷积网络架构。阐述了其在时空特征提取、动作识别(行为分类)、姿态估计方面的应用,还提出计算效率提升和准确率改进的优化策略,推动其在视频分析领域的发展。

3D卷积基础

卷积原理

3D卷积是一种扩展自2D卷积的技术,专门设计用于处理三维数据。它在 深度、高度和宽度 三个维度上操作,特别适用于处理视频或医学影像等三维数据。其核心思想是在输入数据上滑动一个三维卷积核,执行元素乘法并求和,生成新的三维输出数据块。

这一过程可以用数学公式表示为:

O(x,y,z) = ΣΣΣI(x+i,y+j,z+m) * K(i,j,m)

其中,I代表输入数据,K代表卷积核,O代表输出数据。这种操作使3D卷积能够有效捕捉时空特征,为后续的高级视觉任务提供强大支持。

2D与3D卷积对比

在深度学习领域,2D卷积和3D卷积都是处理图像和视频数据的重要工具,但它们在原理和应用上有显著差异。本节将详细对比这两种卷积技术的特点和优劣,特别关注它们在视频分析和动作识别方面的表现。

2D卷积主要用于处理静态图像,在图像分类、目标检测等任务中表现出色。然而,当面对具有时间或深度信息的三维数据时,其性能受到限制。相比之下,3D卷积能够同时捕捉空间和时间特征,使其在处理视频数据时具有天然优势。

特征提取能力

3D卷积的核心优势在于能够提取连续帧之间的运动信息。研究表明,3D卷积在视频分类和动作识别任务中显著优于2D卷积。例如,在一项针对Rat Social Interaction数据集的研究中,3D卷积网络的准确率达到80%,远高于2D卷积网络的60%左右。

参数规模和计算复杂度

3D卷积面临的主要挑战是计算量和内存消耗大幅增加。为解决这一问题,研究者提出了多种优化方案:

  1. 使用稀疏卷积减少计算量

  2. 利用迁移学习和预训练模型加速训练过程

这些方法在一定程度上缓解了3D卷积的计算压力,提高了其在实际应用中的可行性。

结论

2D卷积和3D卷积各有优势:

  • 2D卷积适合处理静态图像

  • 3D卷积擅长处理视频和医学影像等三维数据

在选择合适的卷积技术时,需根据具体任务需求和计算资源进行权衡。未来,随着硬件技术和算法优化的进步,3D卷积有望在更多领域发挥重要作用,推动深度学习技术在三维数据分析方面的突破。

 3D卷积网络架构

C3D模型

C3D模型是3D卷积网络的一个重要里程碑,专为视频分析和动作识别任务设计。其独特之处在于使用3D卷积核在整个时空域上进行操作,从而有效地捕捉视频中的动态信息。

C3D模型的结构主要包括以下几个关键部分:

  1. 8个卷积层 :每层使用3×3×3的卷积核,步长为1,在空间和时间维度上均匀提取特征。

  2. 5个最大池化层 :除第一个池化层为1×2×2外,其余均为2×2×2,逐步降低特征图的空间和时间分辨率。

  3. 2个全连接层 :每个包含4096个神经元,用于整合全局特征信息。

  4. Softmax输出层 :用于最终的动作分类。

C3D模型的设计理念体现了对时空特征的均衡考虑。通过在所有层使用3×3×3的小卷积核,模型能够在保持计算效率的同时,有效捕捉局部时空信息。这种设计允许网络逐步汇聚空间和时间信息,构建更深的网络结构,从而获得更好的特征表达能力。

在视频分析与动作识别任务中,C3D模型展现出卓越的表现。其主要优点包括:

  1. 强大的时空特征提取能力 :3D卷积核能在空间和时间维度上同时提取特征,有效捕捉动作的动态信息。

  2. 计算效率高 :相比复杂的2D+LSTM结构,C3D模型在保持高性能的同时,具有较低的计算复杂度。

  3. 通用性强 :C3D特征不仅适用于动作识别,还可迁移到其他视频分析任务,如行为检测和场景理解。

实验证明,C3D模型在多个基准数据集上取得了优异的成绩。特别是在UCF101数据集上,C3D模型达到了63.3%的top-1精度,超过了当时许多先进的方法。

此外,C3D模型的特征表示具有紧凑性和计算效率高的特点,这使得它在实际应用中具有广泛的潜力。通过简单的线性分类器,C3D就能在4个不同的基准上超越或接近现有方法,充分证明了其在视频分析和动作识别领域的优越性。

I3D模型

I3D模型是视频分析与动作识别领域的一项重要创新,由Joao Carreira和Andrew Zisserman在论文《Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset》中提出。该模型巧妙地结合了2D卷积网络的优势和3D卷积的强大时空特征提取能力,通过将预训练的2D卷积网络“膨胀”为3D卷积网络,实现了高效的视频特征学习。

I3D模型的核心设计理念体现在其独特的架构中:

  1. 双流网络结构 :I3D采用了经典的双流网络设计,分别处理RGB帧和光流信息,以充分利用两种不同类型的数据源。这种方法能够全面捕捉视频中的外观和运动特征,显著提升了模型的性能。

  2. Inception V1为基础网络 :研究人员选择Inception V1作为基础网络,这是因为其在网络深度和计算效率之间取得了良好的平衡。通过将Inception V1的2D卷积核扩展为3D卷积核,I3D能够在时间和空间维度上同时进行特征提取,有效捕捉视频中的动态信息。

  3. 精心设计的时间维度处理 :为了避免过早压缩时间维度信息,I3D在前两个池化层中设置了特殊的时间步长。具体而言,这两个池化层在时间维度上的步长为1,而在空间维度上为2×2。这种设计确保了模型能够充分保留时间信息,同时逐步降低空间分辨率,从而在保持计算效率的同时,最大化地利用时间维度的特征。

  4. 批量归一化和ReLU激活函数 :为了进一步优化模型性能,I3D在每个卷积层后添加了批量归一化(Batch Normalization)和ReLU激活函数。这些技术有助于加快训练过程,提高模型的泛化能力。

在视频分析与动作识别任务中,I3D模型展现出了卓越的性能。其主要优势包括:

  • 强大的时空特征提取能力 :通过3D卷积核,I3D能够有效捕捉视频中的动态信息,同时保留空间和时间维度的特征。

  • 计算效率高 :相比传统的2D+LSTM结构,I3D在保持高性能的同时,具有更低的计算复杂度。

  • 迁移学习能力强 :I3D模型在大规模数据集(如Kinetics)上的预训练能够显著提升其在较小数据集上的性能,展示了优秀的迁移学习能力。

I3D模型的成功应用不仅限于动作识别,还可以延伸到其他视频分析任务,如行为检测和场景理解。这种多功能性使得I3D成为一个在视频分析领域具有广泛应用前景的模型。

时空特征提取 

空间特征分析

在3D卷积网络中,空间特征分析是一个关键环节,旨在捕捉视频帧内的几何和纹理信息。通过使用3D卷积核,模型能够同时处理空间和时间维度,从而更全面地理解和表征视频内容。这种多维度的特征提取方法不仅提高了动作识别的准确性,还为后续的时序信息分析奠定了坚实的基础。

值得注意的是,3D卷积在空间特征分析中展现出独特优势,特别是在处理复杂场景下的动作识别任务时。例如,在人体姿态估计中,3D卷积能够有效捕捉身体各个部位的空间关系,为精准的姿态重建提供了有力支持。这种空间感知能力使得3D卷积在视频分析和动作识别等领域具有广泛的应用前景。

时序信息捕捉

在视频分析与动作识别领域,3D卷积网络的时序信息捕捉能力一直是研究的重点。近年来,一些创新的方法不断涌现,旨在提高模型对时序特征的敏感性和准确性。

一种值得关注的方法是 早期融合 和 后期融合 。这两种策略分别在不同阶段处理时序信息,以适应不同的应用场景和计算需求:

另一种创新方法是结合 注意力机制 和 可变形卷积 ,如 Attentive Spatio-temporal Transformer GRU (AST-GRU) 。这种方法通过STA (Spatial Transformer Attention) 和TTA (Temporal Transformer Attention) 分别关注前景物体检测和运动物体特征图谱的对齐,有效解决了运动物体在不同帧间的位置偏移问题。

在实际应用中,时序信息的捕捉还需要考虑与其他模态的融合。例如, IntentNet 将动态高精地图作为额外输入,结合时序信息和静态语义信息,为3D物体检测、意图分类和轨迹预测提供丰富线索。这种方法展示了时序信息与其他类型数据结合的可能性,为进一步提高动作识别的准确性和鲁棒性开辟了新途径。

这些研究成果表明,3D卷积网络在时序信息捕捉方面仍有巨大潜力可挖。未来研究可能会继续探索更精细的时序特征提取方法,以及如何更好地将时序信息与其他模态数据融合,以应对日益复杂的视频分析和动作识别任务。

动作识别应用 

行为分类

在视频分析与动作识别领域,行为分类一直是一个关键课题。近年来,基于3D卷积的方法在这方面取得了显著进展,为智能监控系统和人机交互应用提供了强有力的支持。

一种值得关注的行为分类方法是 早期融合 和 后期融合 策略。这两种策略分别在不同阶段处理时序信息,以适应不同的应用场景和计算需求:

在实际应用中,行为分类还需要考虑与其他模态的融合。例如, IntentNet 将动态高精地图作为额外输入,结合时序信息和静态语义信息,为3D物体检测、意图分类和轨迹预测提供丰富线索。这种方法展示了行为分类与其他类型数据结合的可能性,为进一步提高动作识别的准确性和鲁棒性开辟了新途径。

另一个值得关注的方向是 注意力机制 的应用。 Attentive Spatio-temporal Transformer GRU (AST-GRU) 方法通过STA (Spatial Transformer Attention) 和TTA (Temporal Transformer Attention) 分别关注前景物体检测和运动物体特征图谱的对齐,有效解决了运动物体在不同帧间的位置偏移问题。这种方法不仅提高了行为分类的准确性,还为处理复杂场景下的动作识别任务提供了新的思路。

这些研究成果表明,行为分类在视频分析与动作识别领域仍有巨大潜力可挖。未来研究可能会继续探索更精细的特征提取方法,以及如何更好地将时序信息与其他模态数据融合,以应对日益复杂的视频分析和动作识别任务。

姿态估计

在动作识别领域,3D卷积网络为姿态估计带来了革命性的进步。通过结合深度学习和几何变换技术,这些网络能够从单幅或多幅图像中精确推断出人体的三维姿态。具体而言,3D卷积网络首先在2D平面上检测和定位人体关键点,随后利用透视投影或三角测量等几何方法将这些关键点转换到三维空间中。

这种方法不仅能捕捉复杂的运动模式,还能有效处理遮挡和视角变化等问题,大大提高了姿态估计的准确性和鲁棒性。例如,基于3D卷积的 OpenPose 系统已成功应用于实时人体姿态追踪和动作分析,展现了该技术在实际应用中的巨大潜力。

性能优化策略 

计算效率提升

在基于3D卷积的视频分析与动作识别中,提升计算效率是一项关键挑战。为应对这一问题,研究者们开发了几种有效的优化策略:

  1. 因子分解 :将3D卷积分解为一系列2D卷积和1D卷积,显著降低计算复杂度。

  2. 混合精度训练 :采用FP16和FP32混合精度,平衡精度和速度。

  3. 自适应采样 :根据视频内容动态调整采样频率,节省计算资源。

  4. 并行处理 :利用GPU集群实现高效并行计算,加速大规模视频分析。

这些方法共同推动了3D卷积在视频分析与动作识别领域的应用,提高了计算效率,促进了技术的实际落地。

准确率改进

在基于3D卷积的视频分析与动作识别领域,提高准确率始终是研究的重点。近年来,多项创新方法应运而生,旨在优化模型性能,提升识别精度。这些方法主要聚焦于时空特征融合、多模态信息利用以及网络架构优化等方面。

一种值得关注的改进方法是 时间金字塔网络(TPN) 。TPN作为一种“即插即用”的模块,可以轻松集成到现有的2D和3D网络架构中。其核心思想是在不同时间尺度上提取特征,并通过精心设计的融合策略来整合这些多层次的时序信息。这种方法不仅能够捕捉短时间内的快速动作,还能有效处理持续时间较长的复杂行为,从而全面提升动作识别的准确性。

TPN的工作原理可以简化为以下几个关键步骤:

  1. 时间尺度划分:将输入视频划分为多个时间段,每个时间段对应不同的时间尺度。

  2. 特征提取:在每个时间尺度上独立应用3D卷积层,提取对应的时空特征。

  3. 特征融合:通过特定的融合机制(如加权平均或注意力机制)整合来自不同时间尺度的特征。

  4. 决策:基于融合后的特征进行最终的动作分类。

TPN的优势在于其灵活性和有效性。它可以无缝集成到各种现有的网络架构中,无需大幅度修改原始模型结构。同时,通过多尺度特征融合,TPN能够更全面地捕捉动作的本质特征,尤其是在处理复杂、长时间跨度的动作时表现出色。

另一项值得关注的技术是 跨模态监督信息提取 。这种方法巧妙地利用了视频中的多模态信息,特别是结合了视觉和音频信号。例如,《Speech2Action: Cross-Modal Supervision for Action Recognition》一文中提出了一种创新的方法,通过利用电影视频中的语音与对应台词来构建动作识别分类器。这种方法不仅能够利用大规模未标注视频数据,还显著提升了动作识别的精度。跨模态监督信息提取的优势在于:

  • 充分利用未标注数据

  • 提供额外的上下文信息

  • 改善小样本学习问题

  • 提高模型的泛化能力

这些方法共同推动了3D卷积在视频分析与动作识别领域的应用,不仅提高了识别的准确性,还为解决复杂场景下的动作识别问题提供了新的思路。未来研究可能会继续探索更精细的特征提取方法,以及如何更好地将多模态信息融合,以应对日益复杂的视频分析和动作识别任务。


 超详细2024年最新版人工智能CV+NLP学习路线

视频行为识别检测综述 IDT TSN CNN-LSTM C3D CDC R-C3D 本文github地址 Video Analysis之Action Recognition(行为识别) 行为识别就是对时域预先分割好的序列判定其所属行为动作的类型,即“读懂行为”。 [行为检测|论文解读]行为检测调研综述 较新 基于Deep Learning 的视频识别技术 科研成果—-中国科学院深圳先进技术研究院 面向人体姿态行为理解的深度学习方法 CVPR 2014 Tut... 阅读详情

相关推荐

基于C3D网络的视频分析与动作识别

3D卷积与2D卷积的区别 首先看一下二维卷积,一个33的卷积核,在单通道图像上进行卷积,得到输出。 然后我们再看一下3维卷积,一个33*3的卷积核在立方体上进行卷积,得到输出: 多通道卷积不同的通道上的卷积核的参数是不同的,而3D卷积则由于卷积核本身是3D的,所以这个由于“深度”造成的看似不同通道上用的就是同一个卷积,权重共享。 总之,多了一个深度通道,这个深度可能是视频上的连续帧,也可能是立体图像中的不同切片。 3D卷积的应用 上面也说了,3D卷积就是多了一个深度通道,而这个深度通道可能是视频上的连续

@bangbang的博客 5094

【视频理解】十、I3D☆

I3D

traveller的博客 1404

人体骨骼关键点检测的算法

1.AlphaPose 实时全身多人姿势估计与跟踪系统 https://github.com/MVIG-SJTU/AlphaPose.git git clone -b pytorch https://github.com/MVIG-SJTU/AlphaPose.git python demo.py --indir examples/demo --outdir examples/res --sp python video_demo.py --video D:/cpl.mp4 --outdir example

聪哥965 1万+

【Two Stream network (Tsn)】(二) 阅读笔记

所谓two-stream是指空间stream和时间stream,视频可以分成空间与时间两个部分,空间部分指独立帧的表面信息,关于物体、场景等;而时间部分信息指帧间的光流,携带着帧之间的运动信息。相应的,所提出的网络结构由两个深度网络组成,分别处理时间与空间的维度。

jjjhut的博客 1008

深度学习:STGCN学习笔记

目录标题基于图神经网络的图分类问题GCN在行为识别领域的应用主要任务研究思路ST-GCN(SpatialTemporal Graph Convolutional Networks for Skeleton-Based Action Recognition)解读原论文解决问题主要贡献核心思想简介OpenPose 预处理基于人体关键点构造graph构造单帧graph(空间域)构造帧间graph(时间域)ST-GCN模型采样函数权重函数空域图卷积空间-时间模型分区策略可学习的边重要性权重TCNST-GCN模型的实

zhe470719的博客 3万+

人体姿态估计和动作识别简述

摘要: 人体姿态估计与动作识别是计算机视觉的核心技术,广泛应用于体感交互、医疗康复等领域。姿态估计分为自上而下(如YOLOv8-Pose,先检测人体再定位关键点,精度高)和自下而上(如MediaPipe Pose,先检测关键点再分组,效率高)。动作识别则分为基于RGB视频流(3D CNN、双流网络)和骨骼数据(GCN、RNN)。MediaPipe Pose适合实时多人场景,YOLOv8-Pose适用于高精度需求。未来,这些技术将推动更智能的人机交互发展。

像风一样自由的博客 1132

ST-GCN模型详解(+openpose)

ST-GCN应当具备能够从时空维度提取特征的能力,其在GCN中的表现就是能够同时聚合时空维度的信息,如下图所示。其具体网络层如图所示:步骤1:引入一个可学习的权重矩阵(与邻接矩阵等大小)与邻接矩阵按位相乘。该权重矩阵叫做“Learnable edge importance weight”,用来赋予邻接矩阵中重要边(节点)较大的权重且抑制非重要边(节点)的权重。步骤2:将加权后的邻接矩阵与输入送至GCN中进行运算。

qq_74722169的博客 2万+

第30篇:AI技术实战:基于深度学习的视频分析与行为识别

深度学习技术为视频分析和行为识别提供了强大的支持,通过3D CNN、Two-Stream Networks和Transformer等模型,能够实现高效的视频处理和行为识别。使用TensorFlow和Keras可以快速构建和训练视频分析模型,而预训练模型则可以进一步提升性能。数据预处理、模型选择和性能优化是提升视频分析性能的关键。希望本文的代码示例和注意事项能帮助你更好地理解和应用这些技术。接下来,我们将继续探索更多AI技术实战案例。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 940

行为检测(一):openpose、LSTM、TSN、C3D等架构实现或者开源代码总结

文章目录pytorch实现 pytorch实现 一:PyTorch-Pose is a PyTorch implementation of the general pipeline for 2D single human pose estimation. The aim is to provide the interface of the training/inference/evaluation, and the dataloader with various data augmentation opti

源的博客 2398

国内动作识别与姿态检测研究论文合集

htmltable {th, td {th {pre {简介:动作识别与姿态检测是计算机视觉与人工智能交叉领域的重要研究方向,在视频监控、虚拟现实、健康监护和人机交互等场景中具有广泛应用。本论文合集“动作识别,姿态检测 国内相关论文1.zip”收录了国内在该领域的最新研究成果,涵盖基于深度学习的动作分类与人体关键点检测技术。

weixin_42309599的博客 1138

“华为”云桌面系统声音比较小,如何调大?

调整操作系统声音 开启云桌面,登录账户之后,进入操作系统,鼠标左键点击右下角的声音图标,把声音调到最大(如下图); 可以考虑使用浏览器在线听音乐,确定声音的音量! 如果只是耳麦声音小,可以鼠标右键点击声音图标,选择录音设备(R),如下图: 点击“录音设备(R)”后进入,鼠标右键点击“麦克风”选择属性,将侦听级别调至最大,确定! 调整华为云终端声音(软设置) 将鼠标移至桌面的顶端中间位置,打开如下图的样式图标,鼠标左键点击“主页”; 点击“主页”之后,将回到云桌面的终端操作界面,

shunchang的专栏 2338

人体姿态估计——Python+OpenCV+OpenPose

目录前言技术难点人体姿态估计方法类别单人姿态估计多人姿态估计人体姿态跟踪3D人体姿态估计技术原理神经网络的实现相关代码参考文献运行过程注意 前言 人体姿态估计(Human Pose estimation),几十年来备受计算机视觉界关注,其实在计算机视觉中是一个是很基础的问题,其实通俗化理解就是对“人体”的姿态(部分关键点:头,手,脚等具有象征性的关键部位)的位置估计。姿态估计可以应用在很多领域,比如说可以实现类似于格灵深瞳的各种游戏应用,当然,我们可以利用人体姿态估计,去完成某些生活需要! 技术难点 基于关

m0_62925334的博客 1万+

Unity VR 零基础开发之 Pico4 MR

2、弹出弹窗后,点击Android选项,然后再点击Switch Platform按钮切换成安卓平台。3、切换完成后Android选项后面会显示unity图标。

十画的博客 5116

OpenCV实现人体姿态估计(人体关键点检测)OpenPose(图像、视频或调用摄像头均能实现)

图像、视频或调用摄像头均能实现OpenCV实现人体姿态估计(人体关键点检测) OpenPose人体姿态识别项目是美国卡耐基梅隆大学(CMU)基于卷积神经网络和监督学习并以Caffe为框架开发的开源库。可以实现人体动作、面部表情、手指运动等姿态估计。适用于单人和多人,具有极好的鲁棒性。是世界上首个基于深度学习的实时多人二维姿态估计应用。 其理论基础来自Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ,是CVPR 2017的

北屿的博客 1万+

Java电商秒杀系统性能优化(一)——电商秒杀系统框架回顾

电商秒杀系统框架回顾项目简介外部依赖框架回顾项目要点项目中存在的问题小结 课程是免费的,课程地址如下:SpringBoot搭建电商秒杀项目,课程真的很棒,作者的思路很清晰,建议各位读者可以跟着视频练习一下这个项目; 项目简介 通过SpringBoot快速搭建的前后端分离的电商基础秒杀项目。项目通过应用领域驱动型的分层模型设计方式去完成:用户otp注册、登陆、查看、商品列表、进入商品详情以及倒计时秒...

ghw15221836342的博客 3722

STM32超声波避障小车硬件设计与实时测距实现

超声波测距是嵌入式系统中经典的环境感知技术,其原理基于声波在空气中的传播时间与距离的线性关系,通过精确计时实现非接触式距离测量。该技术具备成本低、抗光干扰强、算法简洁等优势,广泛应用于智能小车、机器人避障、液位监测等场景。工程落地的关键在于硬件信号完整性(如5V/3.3V电平匹配)、微秒级定时精度(依赖高稳定外部晶振与输入捕获模式)以及强干扰环境下的数据鲁棒性(需软硬协同滤波)。本文以STM32F103C8T6为平台,深入解析HC-SR04模块的时序闭环控制、TIM3输入捕获双沿测量、L298N电机状态机驱

weixin_42578963的博客 298

python姿态检测实现多人多姿态识别python行为识别openpose行为骨骼框架检测动作识别动作检测行为动作分类

将待识别视频序列的每帧静态图像输入训练好的空间通道卷积神经网络,对网络参数进行微调后,进行训练和测试,并输出待识别视频序列的每帧静态图像对应的各个类别的概率值;h和w分别是第t帧静态图像的宽度和高度;步骤三、采集待识别视频序列,将待识别视频序列切割为每帧静态图像来作为训练集和测试集数据,对步骤二训练好的空间通道卷积神经网络的参数进行微调后,利用训练集和测试集的每帧静态图像对空间通道卷积神经网络进行训练和测试,输出待识别视频序列的每帧静态图像对应的各个类别的概率值P1,P2,…

babyai996的博客 7863

Power BI财销一体分析——KPI分析应用实践

第九步:插入三个散点图,行拖入分销商表分销商字段,将度量值中的销量拖入X轴,将利润拖入Y轴,大小拖入度量值总销售额,将分销商表业务类型字段作为筛选条件添加给散点图,分别选择专业自行车店、增值经销商、仓库,使视觉对象固定显示不同业务类型的散点分布。这个公式其实是不需要我们自己写的,依赖于快度量值功能星级评分,基值选择度量值总销售额,星数选择5,最低星值评分选择0,最高星级评分值选择100,点击添加,星级评分度量值就建立好了,接下来我们理解一下公式。好的,今天的讲解就到这里。

BI瓶子的博客 1553

OpenPose实时多人二维姿态估计库介绍

OpenPose 的核心创新在于其自下而上(Bottom-Up)的算法流程和部分亲和场(PAFs)。自下而上的流程第一步:检测所有关键点。首先,一个卷积神经网络(CNN)会扫描整个图像,预测出一个包含所有可能人体关键点的“热度图”。热度图中每个“热点”代表一个特定类型关键点(如左肩、右膝)可能存在的位置。第二步:将关键点组装成人体。在检测出所有独立的关键点后,需要解决“哪个关键点属于哪个人”的问题。部分亲和场(PAFs)PAFs 是解决上述问题的关键。

学亮编程手记 1288

PostgreSQL核心原理:数据库崩溃恢复的唯一真相详解

PostgreSQL崩溃恢复机制通过WAL日志确保数据一致性和持久性。核心流程包括:触发恢复(非正常关闭时)、读取控制文件获取检查点LSN、顺序扫描WAL日志进行Redo阶段重做已提交事务、利用MVCC标记未提交事务为ABORTED实现逻辑撤销,最后执行检查点完成恢复。该机制依赖WAL原子性、检查点锚点和无Undo的可见性模型三大支柱,保证即使系统崩溃也能恢复到逻辑一致状态。关键设计包括延迟写入、LSN顺序控制和FPW防部分写,最终通过确定性重放实现ACID特性。

数据知道的博客 2665

MicroCap声学仿真介绍(五)-倒相管扬声器系统仿真

实际倒相管的扬声器单体选择、后腔容积、倒相管的直径和长度都是需要精心挑选的,为了便于演示,随意指定了倒相管的长度和直径,现实中还是不能这么随便的。之前介绍了封闭式扬声器的仿真,今天在封闭式扬声器的基础上,再介绍一下倒相管扬声器系统的仿真。

山无忧的博客 1720

AI学习笔记整理(28)—— 计算机视觉之姿态估计与动作识别

姿态估计是动作识别的“基石”,提供细粒度的结构信息;动作识别则是姿态估计的“延伸”,关注更高层次的行为理解。实际应用中,它们常被集成到统一框架中,以实现更智能的人机交互。‌。

斯丝2011的博客 1391

2026年全国青少年信息素养大赛算法应用主题赛C++样题及答案解析

2026年全国青少年信息素养大赛算法应用主题赛C++样题

王老师青少年编程 3728

9个最流行的姿态估计AI模型

姿态估计?”……“姿态”一词对于不同的人来说可能有不同的含义,但我们不是在讨论阿诺德经典、奥林匹亚或选美表演。那么,姿态估计到底是什么?那么,让我们深入探讨这个话题。姿态估计(Pose Estimation)在计算机视觉领域引起了极大的关注。人们越来越感兴趣的是使用计算机视觉技术来实时识别和跟踪人或物体的运动的能力,这为跨行业提供了很多用处。在先进技术不断发展的时代,姿势估计可以成为运动生物力学、动画、游戏、机器人、医疗康复和监视领域的有效工具。

胭脂草的ABC博客 2850

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

VideoPose3D技术深度解析:基于时序卷积网络的视频3D人体姿态估计算法实现

VideoPose3D是一个基于PyTorch实现的高效3D人体姿态估计算法框架,专注于从视频序列中的2D关键点轨迹重建精确的3D人体姿态。该项目通过创新的时序卷积网络架构,解决了传统单帧3D姿态估计方法中存在的抖动问题,实现了在时间维度上连续稳定的姿态重建。 ## 项目背景与价值定位 3D人体姿态估计是计算机视觉领域的核心任务之一,在动作识别、人机交互、虚拟现实和体育分析等应用中具有重要价值

gitblog_00959的博客 1136

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

探索前沿技术:Image Animation、Openpose、YOLObile 和 Real-Time_3D-CNN 项目推荐

探索前沿技术:Image Animation、Openpose、YOLObile 和 Real-Time_3D-CNN 项目推荐 在人工智能和计算机视觉领域,技术的进步日新月异。今天,我们将介绍四个前沿的开源项目:Image Animation、Openpose、YOLObile 和 Real-Time_3D-CNN。这些项目不仅展示了最新的技术成果,还为开发者提供了强大的工具,助力他们在各自的应...

gitblog_01200的博客 1245

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

上一篇: 注意力机制中生成的类似热力图或者柱状图是如何生成的
下一篇: 硕士论文写YOLO可以毕业吗?
大模型星球
博客等级 码龄5年 1132粉丝 239原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值