基于3D CNN的摔倒检测:创新算法与代码实现

深度学习笔记----三维卷积及其应用(3DCNN,PointNet,3D U-Net) 目录 1.什么是三维卷积 1.1 三维卷积简介 1.2 三维卷积的工作原理 2,三维卷积核多通道卷积的区别 2.1 多通道卷积 2.2 三维卷积和多通道卷积之间的区别 2.3 总结 3,三维卷积的应用 3.1 视频分类 3.2 点云分类 3.2.1 PointNet网络亮点 3.2.2PointNet网络结构 3.3 图像分割(U-Net) 3.3.1 二维的U-Net 3.3.2 三维的U-Net 1.什么是三维卷积 1.1 三维卷积简介 二维卷积是在... 阅读详情

基于3D CNN的摔倒检测:创新算法与代码实现

摔倒检测是计算机视觉领域中一个重要的研究方向,尤其是在老年人护理、智能家居和安防监控等领域。传统的摔倒检测方法多依赖于单一的图像特征或简单的机器学习模型,但这些方法往往难以准确捕捉到摔倒动作的时空特征。近年来,随着深度学习技术的发展,3D卷积神经网络(3D CNN)因其在处理视频数据时空特征方面的优势,逐渐成为摔倒检测领域的热门研究方向。

一、3D CNN算法原理

3D CNN是卷积神经网络(CNN)的扩展,它在二维卷积的基础上引入了时间维度,能够同时处理空间和时间特征。对于摔倒检测任务,3D CNN可以直接处理视频序列,提取出人体动作的时空特征,从而更准确地识别摔倒行为。

1. 算法优势

  • 时空特征提取:3D CNN能够同时捕捉视频中的空间和时间信息,这对于识别复杂的动作(如摔倒)非常关键。

  • 端到端学习:3D CNN可以直接从原始视频数据中学习特征,无需手动设计特征提取器。

  • 适应性强:该算法能够适应不同的视频分辨率和帧率,具有较强的鲁棒性。

2. 算法挑战

  • 计算复杂度高:3D CNN的计算量较大,尤其是在处理高分辨率视频时。

  • 数据需求大:需要大量的标注数据来训练模型,以避免过拟合。

二、基于3D CNN的摔倒检测模型构建

1. 数据集准备

为了训练3D CNN模型,需要准备一个包含摔倒和正常活动的视频数据集。可以使用公开的摔倒检测数据集,如“UR Fall Detection Dataset”,或者自行录制视频数据。数据集应包含以下两类样本:

  • 摔倒样本:记录各种场景下的人体摔倒动作。

  • 正常活动样本:记录行走、坐下、站立等正常活动。

2. 模型构建

以下是一个基于3D CNN的摔倒检测模型的代码实现,使用了PyTorch框架:

Python复制

import torch
import torch.nn as nn
import torch.optim as optim
from torchvision import transforms
from torch.utils.data import DataLoader, Dataset
import cv2
import numpy as np

# 定义3D CNN模型
class FallDetection3DCNN(nn.Module):
    def __init__(self):
        super(FallDetection3DCNN, self).__init__()
        self.conv1 = nn.Conv3d(3, 64, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))
        self.conv2 = nn.Conv3d(64, 128, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))
        self.conv3 = nn.Conv3d(128, 256, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))
        self.fc1 = nn.Linear(256 * 8 * 8 * 8, 128)
        self.fc2 = nn.Linear(128, 2)  # 输出层:2个类别(摔倒和非摔倒)
        self.relu = nn.ReLU()
        self.dropout = nn.Dropout(0.5)
        self.maxpool = nn.MaxPool3d(kernel_size=(2, 2, 2), stride=(2, 2, 2))
        self.flatten = nn.Flatten()

    def forward(self, x):
        x = self.relu(self.conv1(x))
        x = self.maxpool(x)
        x = self.relu(self.conv2(x))
        x = self.maxpool(x)
        x = self.relu(self.conv3(x))
        x = self.maxpool(x)
        x = self.flatten(x)
        x = self.dropout(x)
        x = self.relu(self.fc1(x))
        x = self.fc2(x)
        return x

# 数据集类
class FallDetectionDataset(Dataset):
    def __init__(self, video_paths, labels, transform=None):
        self.video_paths = video_paths
        self.labels = labels
        self.transform = transform

    def __len__(self):
        return len(self.video_paths)

    def __getitem__(self, idx):
        video_path = self.video_paths[idx]
        label = self.labels[idx]
        frames = []
        cap = cv2.VideoCapture(video_path)
        while cap.isOpened():
            ret, frame = cap.read()
            if not ret:
                break
            if self.transform:
                frame = self.transform(frame)
            frames.append(frame)
        cap.release()
        frames = np.stack(frames, axis=0)
        frames = torch.tensor(frames, dtype=torch.float32)
        return frames, label

# 数据预处理
transform = transforms.Compose([
    transforms.ToPILImage(),
    transforms.Resize((64, 64)),
    transforms.ToTensor(),
    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])

# 加载数据集
train_dataset = FallDetectionDataset(video_paths=["path/to/train/videos"], labels=[0, 1], transform=transform)
train_loader = DataLoader(train_dataset, batch_size=4, shuffle=True)

# 初始化模型、损失函数和优化器
model = FallDetection3DCNN()
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)

# 训练模型
num_epochs = 10
for epoch in range(num_epochs):
    model.train()
    for videos, labels in train_loader:
        videos = videos.permute(0, 4, 1, 2, 3)  # 调整维度顺序为 (batch_size, channels, depth, height, width)
        outputs = model(videos)
        loss = criterion(outputs, labels)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
    print(f"Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}")

# 保存模型
torch.save(model.state_dict(), "fall_detection_3dcnn.pth")

3. 实时检测

训练完成后,可以将模型部署到实际场景中,实时检测摔倒行为。以下是实时检测的代码示例:

Python复制

import cv2
import torch

# 加载模型
model = FallDetection3DCNN()
model.load_state_dict(torch.load("fall_detection_3dcnn.pth"))
model.eval()

# 打开摄像头
cap = cv2.VideoCapture(0)

frames = []
while True:
    ret, frame = cap.read()
    if not ret:
        break

    # 预处理图像
    frame = cv2.resize(frame, (64, 64))
    frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
    frame = frame / 255.0
    frame = torch.tensor(frame, dtype=torch.float32).permute(2, 0, 1).unsqueeze(0)

    # 将当前帧加入帧序列
    frames.append(frame)
    if len(frames) > 16:  # 限制帧序列长度为16
        frames.pop(0)

    if len(frames) == 16:
        video = torch.cat(frames, dim=2)  # 沿时间维度拼接帧
        with torch.no_grad():
            output = model(video.unsqueeze(0))
            _, predicted = torch.max(output, 1)
            if predicted.item() == 1:  # 假设类别1为摔倒
                cv2.putText(frame.numpy(), "Fall Detected!", (10, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)

    # 显示结果
    cv2.imshow("Fall Detection", frame.numpy().transpose(1, 2, 0))

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

三、总结与展望

本文介绍了一种基于3D CNN的摔倒检测方法,通过构建3D CNN模型,能够有效地从视频中提取时空特征,从而实现对摔倒事件的准确检测。该方法具有较高的准确性和实时性,适用于多种应用场景。未来,可以进一步优化模型架构,引入更多的传感器数据(如加速度计、陀螺仪)与视觉数据融合,以进一步提高检测的准确性和鲁棒性。此外,还可以将该技术应用于智能家居、智能医疗等领域,为人们的生活安全提供更全面的保障。

在特定行业(如公交车、地铁)的摔倒检测中,关键是应对动态环境(如车身晃动、光线变化)和复杂行为模式(如乘客正常动作与摔倒动作的区分)。以下是摔倒检测的有效实现方法和流程 在特定行业(如公交车、地铁)的摔倒检测中,关键是应对动态环境(如车身晃动、光线变化)和复杂行为模式(如乘客正常动作与摔倒动作的区分)。以下是摔倒检测的有效实现方法和流程。通过以上方法,公交摔倒检测系统可实现高精度、实时性和低误报率,从而有效保障乘客安全。:对动态场景(如车内晃动)需增加鲁棒性。:需要硬件支持(如深度摄像头、传感器)。:需大量标注视频数据,训练成本高。:结合多模态信息,降低误报率;:对动作模式识别效果好;:高精度、规则清晰; 阅读详情

相关推荐

智能安防的关键技术与实战:基于AI行为识别实现从摔倒检测到异常预警

本文介绍了行为识别技术及其在安防、养老等领域的应用,重点讲解了单帧与多帧识别两种技术路径,以及C3D、I3D等经典模型架构。通过"摔倒识别"实战案例,展示了从数据准备、预处理到模型搭建的全流程,提供可运行的代码示例,帮助读者快速实现行为识别系统。

LXY_LOVE36的博客 4335

3D-CNN

Q1:什么是2D卷积(多通道) A1:这里假设输入层是一个 5 x 5 x 3 矩阵,它有 3 个通道。过滤器则是一个 3 x 3 x 3 矩阵。首先,过滤器中的每个卷积核都应用到输入层的 3 个通道,执行 3 次卷积后得到了尺寸为 3 x 3 的 3 个通道。 面向多通道的 2D 卷积的第一步:过滤器每个卷积核分别应用到输入层的 3 个通道上,之后,这 3 个通道都合并到一起(元素级别的加法)组成了一个大小为3 x 3 x 1 的单通道。这个通道是输入层(5 x 5 x 3 矩阵)使用了过滤...

qinxin_ni的博客 1万+

基于YOLOv10的异常行为检测系统:打架、摔倒、奔跑检测完整实现

异常行为检测是计算机视觉领域的一个重要研究方向,在安防监控、智慧城市、医疗护理等场景中具有广泛应用价值。本文将详细介绍基于YOLOv10的异常行为检测系统的完整实现,包括算法原理、数据集构建、模型训练策略以及可视化界面开发。通过结合时序信息和空间特征,我们的系统能够有效检测打架、摔倒、奔跑等异常行为,并在UI界面中实时展示检测结果。关键词:YOLOv10、异常行为检测、时序模型、深度学习、计算机视觉数据预处理模块:负责视频帧提取、数据增强和标注处理特征提取模块:基于YOLOv10的主干网络提取空间特征。

YOLO 568

【3DCNN基础】

3DCNN是可以处理3D输入数据的卷积神经网络,结构与2DCNN相同,但是比2DCNN占用更多的内存空间和运行时间。另一方面,由于输入数据的信息很丰富,3DCNN可以给出更精确的结果。池化层用于减少图像的空间维度,同时仅保留最具描述性的像素。激活函数是一个数学函数,它考虑权重和偏差来确定哪个结果将转移到下一个神经元,可以分为线性激活函数和非线性激活函数。这种激活函数的选择取决于要解决的问题的类型。全连接层适用于之前已经展平的输入,它将一层中的每个神经元连接到另一层中的所有神经元。此笔记仅供自己复习使用!

qq_43561603的博客 7291

OpenCV安装配置教程VS2022(超级顺利)

博主最开始没打算写这篇博客,只是想简单的在网上找一下最新版的OpenCV的安装配置教程,适用于VS2022的,但是我搜了一早上,也没搜到一个能让我成功安装配置的,看了很多很多文章,根本就没有几篇有用的。所以没办法了,只能自己研究了,于是就整理了这篇博客,希望能帮到和我一样的人,这就是博主一直信奉的利他精神!

weixin_47367099的博客 5万+

From Manual to Magic: How nnU-Net is Revolutionizing Biomedical Image Segmentation Without Human Int

本文探讨了nnU-Net如何通过全自动深度学习技术革新生物医学图像分割领域。作为自我配置的智能系统,nnU-Net无需人工干预即可完成从数据预处理到模型训练的全流程,显著提升医学影像分割的效率和精度,尤其在CT和MRI影像分析中表现卓越。

metal的博客 1085

三维卷积( 3D CNN)

​ 3D CNN主要运用在视频分类、动作识别等领域,它是在2D CNN的基础上改变而来。由于2D CNN不能很好的捕获时序上的信息,因此我们采用3D CNN,这样就能将视频中时序信息进行很好的利用。首先我们介绍一下2D CNN与3D CNN的区别。如下图所示,a)和b)分别为2D卷积用于单通道图像和多通道图像的情况(此处多通道图像可以指同一张图片的3个颜色通道,也指多张堆叠在一起的图片,即一小段视频),对于一个滤波器,输出为一张二维的特征图,多通道的信息被完全压缩了。而c)中的3D卷积的。

qq_54695558的博客 9630

手把手教你使用ESM-2进行蛋白质结构预测:从安装到实战

本文详细介绍了如何使用ESM-2蛋白质语言模型进行蛋白质结构预测,从环境准备、模型安装到实战应用。通过逐步指导,读者可以掌握ESM-2的配置、单序列预测、结果可视化及高级优化技巧,适用于生物信息学研究和药物开发。

weixin_29306875的博客 536

3DCNN概述及3DCNN与2DCNN的区别

对3DCNN有关知识进行了解和梳理。这篇博客主要介绍了3DCNN的概念、3DCNN工作原理以及3DCNN与2DCNN的区别。

m0_71212140的博客 1万+

从医疗成像到工业检测:CMOS图像传感器NIR技术的最新应用案例解析

本文深入解析了CMOS图像传感器NIR技术在医疗成像和工业检测中的最新应用案例。通过提升量子效率至70%,NIR技术实现了血管可视化、材料缺陷检测等突破性进展,显著提高了医疗诊断精度和工业质检效率。文章还探讨了系统集成关键考量和前沿发展趋势。

weixin_30879169的博客 92

5分钟搞定PettingZoo多智能体环境搭建:从安装到运行第一个Demo

本文详细介绍了如何在5分钟内完成PettingZoo多智能体环境的搭建,从安装到运行第一个Demo。通过精准的版本控制和常见问题解决方案,帮助开发者快速上手多智能体强化学习(MARL)环境配置,并提供了实战案例和性能优化技巧。

backprop5master的博客 223

基于改进3D CNN的摔倒检测系统:创新与优化

本文介绍了一种基于改进3D CNN的摔倒检测系统,通过引入多模型融合、轻量级网络结构和数据增强等创新方法,显著提升了摔倒检测的准确性和实时性。未来,我们将继续优化模型架构,探索多模态数据融合,以进一步提高摔倒检测的性能,为老年人护理和智能家居领域提供更可靠的解决方案。

matlab_python22的博客 1086

【大语言模型 14】Transformer权重初始化策略:从Xavier到GPT的参数初始化演进之路

权重初始化是深度学习训练成功的隐秘基石,特别是在Transformer这样的深层架构中,合适的初始化策略能够决定模型的训练稳定性和收敛速度。本文从经典的Xavier和He初始化出发,深入解析Transformer特有的初始化策略,通过数学推导、代码实现和实验分析,揭示不同初始化方法对大语言模型训练的深层影响。我们将探讨为什么GPT系列模型采用特定的初始化方案,以及如何针对不同层设计最优的初始化策略。

熵数实验室 1688

基于ST-GCN与3D CNN融合的摔倒检测算法设计

本文提出了一种基于ST-GCN与3D CNN融合的摔倒检测算法,通过结合关节点运动特征和视频时空特征,显著提高了摔倒检测的准确率。未来,通过引入多模态数据融合、模型剪枝与量化、改进损失函数等技术,可以进一步提升模型的性能,使其在实际应用中更加可靠和高效。

matlab_python22的博客 1253

2025华为杯第二十二届中国研究生数学建模竞赛D题:低空湍流监测及最优航路规划 - 完整解题分析+完整MATLAB源码!(上篇)

🎓 本文收录于 《滚雪球学数学建模》专栏,本专栏专注于从零基础出发,带你循序渐进掌握数学建模的核心方法与思维路径。通过“滚雪球式”学习法,从最简单的生活化案例到经典建模工具,再到省赛、国赛真题实战演练,逐步积累知识与技能,帮助你搭建完整的建模体系。无论你是刚接触建模的新生,还是希望提升科研与竞赛能力的学者与工程师,本专栏都将为你提供一条清晰、高效、可实操的建模成长路线,助力你快速进阶,突破难点,迈向数学建模竞赛与实际应用的更高峰 🚀!

**My Coding Family** 2591

OpenClaw 运行时错误文档:Embedded Run Agent End with Stream Error(嵌入式运行代理结束流式错误)

OpenClaw运行时错误文档:EmbeddedRunAgentEndwithStreamError(OC-ERR-009) 该错误表示LLM提供商在流式传输过程中发生服务器端异常(HTTP 500),属于可恢复的中等严重性错误。典型表现为日志中出现包含"stream_error"和500状态码的错误信息。系统会自动进行错误分类(50%为服务过载,25%网络问题等),并通过内置机制尝试解决:包括模型切换、API密钥轮换和自动重试策略。用户可采取重试请求、切换模型或简化请求内容等操作,管理

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 554

摔倒检测的典型算法

算法类别核心思想优点缺点基于人体姿态估计的算法利用姿态估计方法提取人体关键点并分析变化1. 高准确性2. 精确捕捉摔倒时的姿态变化1. 对遮挡和复杂背景敏感2. 对低分辨率视频效果较差基于深度学习的端到端算法使用深度学习从视频中自动学习时空特征,进行摔倒检测1. 高准确性2. 自动学习复杂时空特征1. 需要大量数据和计算资源2. 模型训练时间较长基于多模态融合的算法融合视频、音频、传感器等数据,提高摔倒检测的准确性1. 提供更全面的信息2. 适应复杂环境。

m0_68894275的博客 2284

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

摔倒检测的方法

算法类别核心思想方法优点缺点基于人体姿态估计的算法利用姿态估计方法提取人体关键点并分析变化OpenPose, YOLOv8 + 姿态估计, HRNet高精度,捕捉姿态变化对遮挡和低分辨率视频敏感基于光流法的算法基于像素运动(光流)分析视频帧之间的运动Lucas-Kanade光流法, Horn-Schunck光流法简单高效,适合实时处理对背景运动敏感,光照变化影响较大基于背景建模的算法通过背景建模提取前景,分析人体运动高斯混合模型(GMM), MOG2简单直观,适用于静态背景。

m0_68894275的博客 2027

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

基于改进3D CNN的摔倒检测系统:高效、准确且实时

本文介绍了一种基于改进3D CNN的摔倒检测系统,通过引入多模型融合、轻量级网络结构和数据增强等创新方法,显著提升了摔倒检测的准确性和实时性。未来,我们将继续优化模型架构,探索多模态数据融合,以进一步提高摔倒检测的性能,为老年人护理和智能家居领域提供更可靠的解决方案。

matlab_python22的博客 700

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

改进3D CNN摔倒检测算法的优势与进一步优化

改进的3D CNN摔倒检测算法通过引入多模型融合、轻量级网络结构、注意力机制和数据增强等技术,显著提升了摔倒检测的准确性和实时性。未来,通过引入多模态数据、优化超参数、改进损失函数和进一步优化模型结构,可以进一步提升模型的性能,使其在实际应用中更加可靠和高效。

matlab_python22的博客 507

专注于 基于机器视觉的摔倒检测算法

算法类别关键技术优点缺点基于图像分割的算法背景建模、深度图像分割、基于像素的分割1. 清晰分离人体与背景2. 适应不同环境1. 对复杂背景敏感2. 遮挡时可能导致误判基于人体姿态估计的算法OpenPose、YOLOv8、姿态跟踪与动作分析1. 捕捉动态变化2. 精确的姿态估计1. 对遮挡敏感2. 低质量视频影响准确性基于运动分析的算法光流法、帧差法、光流与物体跟踪1. 计算高效2. 适用于实时视频流1. 对背景变化敏感2. 对细微动作不敏感基于行为识别的算法。

m0_68894275的博客 1413

尽可能高的准确率实现摔倒检测

不合适的算法:基于图像分割的算法和基于运动分析的算法,由于它们对环境变化敏感,无法提供极高的准确率,尤其在复杂环境或低质量视频中容易出现误判。合适的算法:基于人体姿态估计、深度学习端到端算法和多模态融合算法,这些方法具有高准确性,能够有效地适应复杂和动态的摔倒检测场景。基于人体姿态估计的算法尤其适用于实时性要求较高的情况,而基于深度学习和多模态融合的算法则适用于精度要求高、环境复杂的场景。根据您的需求,推荐您选择基于人体姿态估计的算法或基于深度学习的端到端摔倒检测算法。

m0_68894275的博客 711

基于3D卷积神经网络的人体行为理解(论文笔记)

基于3D卷积神经网络的人体行为理解(论文笔记)zouxy09@qq.comhttp://blog.youkuaiyun.com/zouxy09        最近看Deep Learning的论文,看到这篇论文:3D Convolutional Neural Networks for Human Action Recognition。比较感兴趣是CNN是怎么应用于行为理解的,所以就看看。这篇论文发表在TPAM

zouxy09的专栏 7万+

摔倒检测是一个重要的安全问题,尤其是在手扶梯和楼梯等区域。以下是几种有效的摔倒检测算法及其实现方法,并分析哪种方法可能最适合地铁场景。1. YOLOv5 + 姿态估计算法描述:目标检测:使用YO

摔倒检测是一个重要的安全问题,尤其是在手扶梯和楼梯等区域。以下是几种有效的摔倒检测算法及其实现方法,并分析哪种方法可能最适合地铁场景。

m0_68894275的博客 514

人员行为识别与异常检测:从摔倒、打架到坐姿站立行为的智能识别系统_1

本文提出了一种基于自注意力机制的人员行为识别与异常检测系统,结合标签自适应混淆和中心损失函数,实现了对摔倒、打架及坐姿站立等行为的精准识别。系统采用多尺度特征融合和时序建模技术,在公开数据集测试中准确率达95%以上。通过模型优化和硬件加速,系统具备实时处理能力,可广泛应用于安防监控、健康管理等领域。创新性的标签自适应方法动态调整混合标签权重,配合中心损失函数,显著提升了模型对复杂行为特征的识别鲁棒性。

2501_94165277的博客 990

手把手训练你的第一个行为检测模型:基于PyTorch的摔倒检测系统开发指南

本文详细介绍了如何使用PyTorch开发一个基于深度学习的行为检测模型,专注于摔倒检测系统的构建。从环境配置、数据采集与标注、C3D模型架构解析到模型训练与优化,再到TensorRT部署与性能提升,全面覆盖了开发流程。特别针对老年人摔倒检测这一计算机视觉应用场景,提供了实用的技术方案和优化策略,帮助开发者快速实现高效的行为检测系统。

gold的博客 1041
上一篇: 基于加速度传感器数据的摔倒检测
下一篇: 基于改进3D CNN的摔倒检测系统:创新与优化
交通上的硅基思维
博客等级 码龄4年 2762粉丝 913原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

交通上的硅基思维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值