【通知】深度学习之人脸图像算法核心代码开源和勘误汇总

Github上10个深度学习开源项目,程序员:涨经验的时候到了 深度学习背后的主要思想是人工智能应该从大脑中汲取灵感。这种观点引申出了“神经网络”术语,大脑包含数十亿个神经元,它们之间有成千上万的连接;在许多情况下,深度学习算法类似于大脑,因为大脑和深度学习模型都涉及大量的神经网络。 单个的计算单元(神经元)并不智能,但是当它们彼此交互时会变得智能。 今天给大家推荐10个Gihub上的有趣且高星的开源项目,对于开发者来说,希望你能找到一个激发你灵感的有... 阅读详情

许多同学早就在问人脸图像的书什么时候代码开源,8月底我们如约而至,今天开源核心的代码以及对第一次印刷的勘误汇总。

代码开源

本次跟之前的两本书一样,代码开源在我们官方的GitHub项目中,按照有实战部分的章节进行开源。

其中参考了开源项目的代码,会在对应章节的readme.txt中给出项目的链接,请大家配合书中代码说明进行实践,其中部分代码的使用与开源项目有所不同。而书中原创的代码,会给出模型配置文件和模型参数。

数据集大家可以自行获取开源数据集或者用自有数据集进行替换。GitHub地址如下:

https://github.com/longpeng2008/yousan.ai

另外本书还有一次配套的直播,不清楚本书内容的,大家可以阅读回放如下:

点击边框调出视频工具条

 

 

勘误汇总

由于本书内容非常详细,公式非常多,笔者个人精力和能力有限,导致在编辑和转录过程中因为视野盲点有一些小的错误,现汇总如下表:

另外,AM-Softmax loss的公式编辑少写了一个括号,并且由于其与Cosine Face是同样的形式,因此修改后如下,请大家参考原书进行对比。

从上面可以看出,基本上都是公式编辑的问题,由于经过了word自带公式编辑器,转录Mathtype,出版社编辑加工等流程,非常容易出错,请大家在阅读公式的时候留意,下一版会集中修订。

另外,如果有发现新的比较重大的问题,也欢迎到我们读者群去反馈,联系有三微信Longlongtogo即可加入读者群。

关于书籍的详细介绍,大家可以阅读下面链接文章,另外当前在京东购买本书有较大的优惠,请及时关注。

言有三新书来袭,业界首次深入全面讲解深度学习人脸图像算法

【直播】回放!人脸图像算法及其应用

【杂谈】如果你想快速系统掌握计算机视觉大部分领域,学习人脸图像是唯一选择

往期相关

object detection(物体检测)系列论文梳理 object detection论文阅读梳理:1、R-CNN:Rich feature hierarchies for accurate object detection and semantic segmentation 技术路线:selective search + CNN + SVMsR-CNN网络结构: Step1:候选框提取(selective search)训练:给定一张图片,利用s 阅读详情

相关推荐

GAN侧脸照片生成正脸(可直接训练)源代码

CC-GAN训练将侧脸生成正脸的模型

数据纠错的开源工具与框架:如何选择合适的数据纠错方案

1.背景介绍 数据纠错是一种用于检测和修复数据中错误的方法。随着数据规模的增加,数据纠错技术的需求也逐渐增加。开源工具和框架为数据科学家和工程师提供了一种方便的途径,以解决数据质量问题。在本文中,我们将讨论数据纠错的核心概念、算法原理、实例代码和未来发展趋势。 2.核心概念与联系 数据纠错是一种用于检测和修复数据中错误的方法。数据纠错技术可以分为两类:一是检测错误,二是修复错误。数据纠错技术...

AI天才研究院 1507

人脸图像.rar

作为人脸识别的训练数据集合,包括40组人脸,每组包括10张同一个人的脸。资源中还包括一个CSV文件。

IOS开发callkit(call directory extension)勘误

最近在做一个项目,用到callkit的call directory extension来做陌生号码识别。网上很多文章写得不清楚甚至是错的,在此做一些勘误。本人也是小白,如有理解错误不吝赐教。 1、基础环境: xcode12(最低版本要求不清楚,反正要支持IOS10) 一个真的插卡的iphone,要求iphone6以上(要64位CPU和IOS10) 2、参考教程 (1)苹果官方 (2)大神讲解过程 (3)国外大神的demo(给了我很多启示) 3、勘误 (1)beginRequestWithE

1325

【自由谈】城域网IPv6过渡技术——MAP技术(1)

在IPv4向IPv6网络演进的浪潮中,存在着两对主要矛盾的较量,一对是IPv4地址短缺和IPv4业务蓬勃发展之间的矛盾,另一对是IPv6海量的地址空间和IPv6应用的匮乏之间的矛盾。同时两对矛盾又互相制约,IPv4地址共享机制似乎又减缓了IPv6产业链的发展,IPv6产业链的不断发展似乎又在考验着IPv4地址共享机制的部署规模。MAP成为目前兼顾IPv4和IPv6的4voer6场景中最为关注的技术。

韩立金自由谈 3025

GR00TN1.7国内本地下载+模型下在+hugingface无法连接,本地模型下载

GR00TN1.7

alsj123456的博客 99

【通知】深度学习之人脸图像算法重印,欢迎读者支持!

2020年7月份有三出版了《深度学习之人脸图像处理:核心算法与案例实践》,这是一本讲述在人脸各个方向中的深度学习算法为主的书籍,同时配套有大量实战案例,至今已经快一年了,历时一年终于也要重...

hacker_long的专栏 768

MS51内部振荡器

MS51内部有两个RC振荡器,一个高速16MHz或24MHz(HIRC),可通过HIRC24(RCTRIM1.4)位进 行选择配置,以及一个低速10 kHz(LIRC)。它们都可被选择用作系统时钟。通过设置HIRCEN (CKEN.5)位使能HIRC,设备上电时LIRC被使能。用户可设置OSC[1:0] (CKSWT [2:1])为[0,0]选择HIRC 作为系统时钟,设置OSC[1:0](CKSWT [1:0])为[1,0]选择LIRC作为系统时钟。注意:MS51上电后HIRC 和 LIRC都被...

seraphseraphhill2008的博客 808

开源最好的人脸识别算法_【通知】深度学习之人脸图像算法核心代码开源和勘误汇总...

许多同学早就在问人脸图像的书什么时候代码开源,8月底我们如约而至,今天开源核心的代码以及对第一次印刷的勘误汇总。代码开源本次跟之前的两本书一样,代码开源在我们官方的GitHub项目中,按照有实战部分的章节进行开源。其中参考了开源项目的代码,会在对应章节的readme.txt中给出项目的链接,请大家配合书中代码说明进行实践,其中部分代码的使用与开源项目有所不同。而书中原创的代码,会给出模型配置文件和...

weixin_39662228的博客 463

嵌入式通信协议----Wi-Fi协议详解(一)

Wi-Fi,又称“无线网络”,是Wi-Fi联盟的商标,一个基于IEEE 802.11标准的无线局域网技术。“Wi-Fi”常写作“WiFi”或“Wifi”,但是这些写法并没有被Wi-Fi联盟认可。Wi-Fi产品经由Wi-Fi联盟的一家独立授权测试实验室进行严格测试,产品成功通过测试后,授予制造商或销售商使用Wi-Fi标志、Wi-Fi CERTIFIED标志和相关商标,Wi-Fi联盟使用术语“Wi-Fi CERTIFIED”来称呼这类通过认证的产品。

聪聪的成长之路 1657

ubuntu 18.04 + Kimera slam 安装与demo测试

环境:opencv 3.4.12,其他的都是按照文档下载的。 首先进行组件的安装 一、Kimera-VIO 安装参考文档:https://github.com/MIT-SPARK/Kimera-VIO/blob/master/docs/kimera_vio_install.md 按照文档装就好,在安装过程中碰到如下问题: 0、make 过程很卡,不要用所有的核 1、cmake过程中卡下载 ORBvoc.zip ,手动下载这个文件,解压,将里面的3个文件,放到/Kimera-VIO/vocabu.

dna葡萄糖的博客 3630

【杂谈】如何使用有三AI生态学习计算机视觉和自然语言处理等内容

有三AI正式做内容已经一年多了,有非常多的粉丝都在使用我们的平台进行学习,不过有三还没有对整个学习生态进行过一次完整的介绍,今天就来给大家详细阐述,如何使用我们平台完成计算机视觉,自然语...

hacker_long的专栏 746

OpenClaw 在 Docker 容器中的部署实战——零配置启动

本文介绍了OpenClaw在Docker容器中的快速部署方法,对比了本地部署与容器化部署的优势。通过官方镜像和Docker Compose两种方式,5分钟即可完成部署,并详细讲解了配置管理方案(挂载配置文件和环境变量)。文章还提供了飞书集成配置方法,以及生产环境下的日志管理、资源限制、健康检查等优化建议。最后包含常见问题排查指南,帮助开发者快速实现OpenClaw的容器化部署。

刘一说的IT专栏 911

深度学习中的代码资源库------图像处理篇

1、 图像生成 1.1 绘画风格到图片的转换:Neural Style 1.2 图像类比转换:image-analogies 1.3 根据涂鸦生成图片:Neural Doodle 1.4 匹根据涂鸦类比图片:Sketchy 1.5 根据图片生成铅笔画:Pencil 1.6 手写文字模拟:rnnlib 1.7 转换风景图片:Transient Attributes for High-L

jaccen的专栏 7069

元学习与Transformer的结合:Meta-Transformer架构解析

我们生活在一个信息爆炸的时代,每天都会产生海量的数据。在深度学习领域,如何让模型更高效地学习、更快地适应新的任务,一直是科学家们努力的方向。元学习和Transformer都是深度学习中的重要概念,它们各自有着独特的优势。本文的目的就是深入剖析将元学习和Transformer结合起来的Meta - Transformer架构,探讨它的原理、应用以及未来发展。我们会从基础概念讲起,逐步深入到架构的各个方面,让大家对Meta - Transformer有一个全面的了解。

AI智能探索者的博客 1054

【STM32系统】基于STM32+手机APP设计的智能停车场系统

功能简介1、进出停车场时需要刷卡,进行一个记时、计费的功能。2、停车位配有超声波检测,主要识别车位是否被占用。3、车位区域配有OLED显示屏,用户可以通过显示屏看到空闲车位。4、车位配有车位灯。当用户找不到车位可以通过手机点亮车位灯5、停车场配有温湿度检测和烟雾检测模块。当环境发生异常状态。会触动紧急报警。6、停车场信息会通过Wi-Fi发送数据上传至阿里云。用户可以通过手机了解到停车场空闲车位和停车时间、费用。

嵌入式阿齐Archie 2万+

主流开源深度学习框架对比分析

一、Caffe(Convolutional Architecture for Fast Feature Embedding) BVLC     We believe that Caffe is the fastest convnet implementation available. caffe的官网是http://caffe.berkeleyvision.org/。Caffe是一个清晰而高

zyazky 4656

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

10种轻量级人脸检测算法大PK | 代码集合开源

喜欢就关注AIZOO吧!几个月前,AIZOO曾经盘点过最强六大开源轻量级人脸检测项目分析 | 附打包下载,nihate同学将它丰富到10种算法,并用Python.对他们进行了汇总整...

AIZOO人工智能乐园 4295

深度学习工具包 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")

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

毕业设计 :基于深度学习的人脸识别【全网最详细】 - opencv 卷积神经网络

毕业设计 :基于深度学习的人脸识别【全网最详细】 - opencv 卷积神经网络

HUXINY的博客 7万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

国内 GitHub 造假黑色产业链曝光;开源开发者撤销对 ICE 禁用的决定

0、国内 GitHub 被爆造假,起底背后的黑色产业链作为全球最大的开源社区,GitHub 对于程序员群体而言像是空气般重要的存在,而互联网公司也会通过 GitHub 来...

数据与算法之美 1382

论文阅读:Comparative Study of Deep Learning Software Frameworks( caffe、Neon、TensorFlow、Theano、Torch 之比较)

这是我为本周例会准备的内容。最近不少人问我哪个开源框架好用,我自己用过 caffe、TensorFlow、Theano、Torch,用过后有一定的感觉。但很多东西需要实验来具体的验证。正好我看到《Comparative Study of Deep Learning Software Frameworks》,对Caffe、Theano、Torch、Neon和TensorFlow这5个框架作了对比,这是我阅读笔记。

Simon's Blog 4561

深度学习之 人脸识别(1) 人脸预处理

1. 理论概述 1.1 前馈深度网路 1.2 卷积神经网络 2. 人脸识别实例 2.1 人脸识别概述 2.1.1 人脸检测、对齐 2.1.2 人脸识别 2.2 实例 2.2.1 Inception模型 2.2.2 训练模型 2.2.3 SVM分类训练及预测 2.2.4 演示USB摄像头捕捉的人脸识别 ...

ClarkChang的博客 1万+

【技术综述】人脸算法新热点,人脸编辑都有哪些方向,如何学习

人脸属性编辑是一个很广的应用领域,不仅可以用于辅助其他诸如人脸识别等相关的任务,也可以独立成若干新的任务,在人机交互,娱乐社交领域有广泛应用,本文我们简单介绍其中核心算法以及如何深入学习。 作者&编辑 | 言有三 1. 人脸属性编辑应用 所谓人脸属性编辑,即改变人脸的某些属性,比如姿态、年龄等,或者将人脸图转变为具有特定风格的图人脸属性编辑包含非常多的应用,比如人脸化妆去妆、人脸年龄的更改、人脸卡通头像生成、换脸等。 1.1 人脸年龄编辑 人脸年龄编辑,即更改人脸的年龄属性,可以用于仿真人

喜欢打酱油的老鸟 2357

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 351

把 KV Cache 压到 FP4:BitDecoding-FP4 的算法-系统协同设计复盘

长上下文推理卡在KV Cache的显存与带宽上,而现有FP4方案要么精度崩、要么速度废。这篇文章复盘BitDecoding-FP4如何用三个算法补丁加一个系统重构,在B300上把服务吞吐提升2.4–3.0倍,精度几乎不掉。

helloagent的博客 312
上一篇: 【杂谈】有三AI季划的最核心价值在哪,听听这些同学怎么说!
下一篇: 【AI产品】智能修图时代已来临?「咔嗒」一下,轻松后期
言有三
言有三 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄15年 3635粉丝 976原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

言有三

三人行必有AI

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

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

打赏作者

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

抵扣说明:

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

余额充值