TensorFlow基础,TensorFlow简单人脸识别

TensorFlow:如何使用人工智能实现人脸识别? TensorFlow是一个由Google开发的开源计算机视觉库,它提供了一套灵活、高效的框架来训练和部署机器学习模型。接下来,我们将导入必要的库和模块,并创建一个简单的人脸识别模型。在本文中,我们将使用PyTorch作为我们的主要框架,因为它与TensorFlow兼容且易于使用。在这个例子中,我们定义了两个超参数:模型的最大池化层和最小池化层的大小。在这个例子中,我们使用了预训练的ResNet18模型作为我们的模型,它是一个在深度学习中广泛使用的模型,可以用于人脸检测和识别。 阅读详情

TensorFlow基础,TensorFlow简单人脸识别

数据材料

这是一个小型的人脸数据库,一共有40个人,每个人有10张照片作为样本数据。这些图片都是黑白照片,意味着这些图片都只有灰度0-255,没有rgb三通道。于是我们需要对这张大图片切分成一个个的小脸。整张图片大小是1190 × 942,一共有20 × 20张照片。那么每张照片的大小就是(1190 / 20)× (942 / 20)= 57 × 47 (大约,以为每张图片之间存在间距)。

问题解决:

10类样本,利用CNN训练可以分类10类数据的神经网络,与手写字符识别类似

Fly-AI竞赛

#coding=utf-8
#http://www.jianshu.com/p/3e5ddc44aa56
#tensorflow 1.3.1
#python 3.6
import os
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import matplotlib.patches as patches
import numpy
from PIL import Image

#获取dataset
def load_data(dataset_path):
    img = Image.open(dataset_path)
    # 定义一个20 × 20的训练样本,一共有40个人,每个人都10张样本照片
    img_ndarray = np.asarray(img, dtype='float64') / 256
    #img_ndarray = np.asarray(img, dtype='float32') / 32

    # 记录脸数据矩阵,57 * 47为每张脸的像素矩阵
    faces = np.empty((400, 57 * 47))

    for row in range(20):
        for column in range(20):
            faces[20 * row + column] = np.ndarray.flatten(
                img_ndarray[row * 57: (row + 1) * 57, column * 47 : (column + 1) * 47]
            )

    label = np.zeros((400, 40))
    for i in range(40):
        label[i * 10: (i + 1) * 10, i] = 1

    # 将数据分成训练集,验证集,测试集
    train_data = np.empty((320, 57 * 47))
    train_label = np.zeros((320, 40))
    vaild_data = np.empty((40, 57 * 47))
    vaild_label = np.zeros((40, 40))
    test_data = np.empty((40, 57 * 47))
    test_label = np.zeros((40, 40))

    for i in range(40):
        train_data[i * 8: i * 8 + 8] = faces[i * 10: i * 10 + 8]
        train_label[i * 8: i * 8 + 8] = label[i * 10: i * 10 + 8]

        vaild_data[i] = faces[i * 10 + 8]
        vaild_label[i] = label[i * 10 + 8]

        test_data[i] = faces[i * 10 + 9]
        test_label[i] = label[i * 10 + 9]

    train_data = train_data.astype('float32')
    vaild_data = vaild_data.astype('float32')
    test_data = test_data.astype('float32')

    return [
        (train_data, train_label),
        (vaild_data, vaild_label),
        (test_data, test_label)
    ]

def convolutional_layer(data, kernel_size, bias_size, pooling_size):
    kernel = tf.get_variable("conv", kernel_size, initializer=tf.random_normal_initializer())
    bias = tf.get_variable('bias', bias_size, initializer=tf.random_normal_initializer())

    conv = tf.nn.conv2d(data, kernel, strides=[1, 1, 1, 1], padding='SAME')
    linear_output = tf.nn.relu(tf.add(conv, bias))
    pooling = tf.nn.max_pool(linear_output, ksize=pooling_size, strides=pooling_size, padding="SAME")
    return pooling

def linear_layer(data, weights_size, biases_size):
    weights = tf.get_variable("weigths", weights_size, initializer=tf.random_normal_initializer())
    biases = tf.get_variable("biases", biases_size, initializer=tf.random_normal_initializer())
    return tf.add(tf.matmul(data, weights), biases)

def convolutional_neural_network(data):
    # 根据类别个数定义最后输出层的神经元
    n_ouput_layer = 40

    kernel_shape1=[5, 5, 1, 32]
    kernel_shape2=[5, 5, 32, 64]
    full_conn_w_shape = [15 * 12 * 64, 1024]
    out_w_shape = [1024, n_ouput_layer]

    bias_shape1=[32]
    bias_shape2=[64]
    full_conn_b_shape = [1024]
    out_b_shape = [n_ouput_layer]

    data = tf.reshape(data, [-1, 57, 47, 1])

    # 经过第一层卷积神经网络后,得到的张量shape为:[batch, 29, 24, 32]
    with tf.variable_scope("conv_layer1") as layer1:
        layer1_output = convolutional_layer(
            data=data,
            kernel_size=kernel_shape1,
            bias_size=bias_shape1,
            pooling_size=[1, 2, 2, 1]
        )
    # 经过第二层卷积神经网络后,得到的张量shape为:[batch, 15, 12, 64]
    with tf.variable_scope("conv_layer2") as layer2:
        layer2_output = convolutional_layer(
            data=layer1_output,
            kernel_size=kernel_shape2,
            bias_size=bias_shape2,
            pooling_size=[1, 2, 2, 1]
        )
    with tf.variable_scope("full_connection") as full_layer3:
        # 讲卷积层张量数据拉成2-D张量只有有一列的列向量
        layer2_output_flatten = tf.contrib.layers.flatten(layer2_output)
        layer3_output = tf.nn.relu(
            linear_layer(
                data=layer2_output_flatten,
                weights_size=full_conn_w_shape,
                biases_size=full_conn_b_shape
            )
        )
        # layer3_output = tf.nn.dropout(layer3_output, 0.8)
    with tf.variable_scope("output") as output_layer4:
        output = linear_layer(
            data=layer3_output,
            weights_size=out_w_shape,
            biases_size=out_b_shape
        )

    return output;

def train_facedata(dataset, model_dir,model_path):
    # train_set_x = data[0][0]
    # train_set_y = data[0][1]
    # valid_set_x = data[1][0]
    # valid_set_y = data[1][1]
    # test_set_x = data[2][0]
    # test_set_y = data[2][1]
    # X = tf.placeholder(tf.float32, shape=(None, None), name="x-input")  # 输入数据
    # Y = tf.placeholder(tf.float32, shape=(None, None), name='y-input')  # 输入标签

    batch_size = 40

    # train_set_x, train_set_y = dataset[0]
    # valid_set_x, valid_set_y = dataset[1]
    # test_set_x, test_set_y = dataset[2]
    train_set_x = dataset[0][0]
    train_set_y = dataset[0][1]
    valid_set_x = dataset[1][0]
    valid_set_y = dataset[1][1]
    test_set_x = dataset[2][0]
    test_set_y = dataset[2][1]

    X = tf.placeholder(tf.float32, [batch_size, 57 * 47])
    Y = tf.placeholder(tf.float32, [batch_size, 40])

    predict = convolutional_neural_network(X)
    cost_func = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=predict, labels=Y))
    optimizer = tf.train.AdamOptimizer(1e-2).minimize(cost_func)

    # 用于保存训练的最佳模型
    saver = tf.train.Saver()
    #model_dir = './model'
    #model_path = model_dir + '/best.ckpt'
    with tf.Session() as session:
        # 若不存在模型数据,需要训练模型参数
        if not os.path.exists(model_path + ".index"):
            session.run(tf.global_variables_initializer())
            best_loss = float('Inf')
            for epoch in range(20):
                epoch_loss = 0
                for i in range((int)(np.shape(train_set_x)[0] / batch_size)):
                    x = train_set_x[i * batch_size: (i + 1) * batch_size]
                    y = train_set_y[i * batch_size: (i + 1) * batch_size]
                    _, cost = session.run([optimizer, cost_func], feed_dict={X: x, Y: y})
                    epoch_loss += cost

                print(epoch, ' : ', epoch_loss)
                if best_loss > epoch_loss:
                    best_loss = epoch_loss
                    if not os.path.exists(model_dir):
                        os.mkdir(model_dir)
                        print("create the directory: %s" % model_dir)
                    save_path = saver.save(session, model_path)
                    print("Model saved in file: %s" % save_path)

        # 恢复数据并校验和测试
        saver.restore(session, model_path)
        correct = tf.equal(tf.argmax(predict,1), tf.argmax(Y,1))
        valid_accuracy = tf.reduce_mean(tf.cast(correct,'float'))
        print('valid set accuracy: ', valid_accuracy.eval({X: valid_set_x, Y: valid_set_y}))

        test_pred = tf.argmax(predict, 1).eval({X: test_set_x})
        test_true = np.argmax(test_set_y, 1)
        test_correct = correct.eval({X: test_set_x, Y: test_set_y})
        incorrect_index = [i for i in range(np.shape(test_correct)[0]) if not test_correct[i]]
        for i in incorrect_index:
            print('picture person is %i, but mis-predicted as person %i'
                %(test_true[i], test_pred[i]))
        plot_errordata(incorrect_index, "olivettifaces.gif")


#画出在测试集中错误的数据
def plot_errordata(error_index, dataset_path):
    img = mpimg.imread(dataset_path)
    plt.imshow(img)
    currentAxis = plt.gca()
    for index in error_index:
        row = index // 2
        column = index % 2
        currentAxis.add_patch(
            patches.Rectangle(
                xy=(
                     47 * 9 if column == 0 else 47 * 19,
                     row * 57
                    ),
                width=47,
                height=57,
                linewidth=1,
                edgecolor='r',
                facecolor='none'
            )
    )
    plt.savefig("result.png")
    plt.show()


def main():
    dataset_path = "olivettifaces.gif"
    data = load_data(dataset_path)
    model_dir = './model'
    model_path = model_dir + '/best.ckpt'
    train_facedata(data, model_dir, model_path)

if __name__ == "__main__" :
    main()

C:\python36\python.exe X:/DeepLearning/code/face/TensorFlow_CNN_face/facerecognition_main.py
valid set accuracy:  0.825
picture person is 0, but mis-predicted as person 23
picture person is 6, but mis-predicted as person 38
picture person is 8, but mis-predicted as person 34
picture person is 15, but mis-predicted as person 11
picture person is 24, but mis-predicted as person 7
picture person is 29, but mis-predicted as person 7
picture person is 33, but mis-predicted as person 39

Fly-AI竞赛

Author:Maddock转载请注明出处:Maddock 计算机视觉、图像处理、机器学习

FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台。每周免费提供项目开源算法样例,支持算法能力变现以及快速的迭代算法模型。更多TensorFlow实战项目都在FlyAI!

获取更多相关项目代码 请访问:https://www.flyai.com

多途径采集人脸并利用简单CNN网络构建简易人脸识别系统         最近入门了一下OpenCV以及TensorFlow的一些简单的内容,加上之前了解的一些关于网络数据采集的基础内容,由此产生做一个多途径采集人脸构造入门级的人脸识别系统的想法。        代码已上传到GitHub上:https://github.com/Chaphlagical/Facial-Recognition.git准备:python 3.6,dlib, python-op... 阅读详情

相关推荐

基于Python的OpenCV+TensorFlow+Keras人脸识别实现

前言:本节要讲的人脸识别主要是借鉴了 一位研究生前辈的文章 我只是在他的基础上进行了改动,让代码能在现在的TensorFlow2.X 等的环境下运行 先看一下效果图 一、准备工作,安装环境 注意:下列Python第三方包的版本比较重要,应为在这里用到的包比较多,如果两个包版本相差较大可能会导致错误,接下来我列出我用的包名及其版本信息供你参考 Python – 3.8.4 TensorFlow-GPU – 2.3.0 OpenCV – 4.4.0 keras – 2.0.9 sklearn –

冰河的博客 2万+

tensorflow实现人脸检测及识别(简单版)

本教程主要是对人脸检测及识别python实现系列 及碉堡了!程序员用深度学习写了个老板探测器(付源码) 的实现。主要实现的功能是用网络摄像头自动识别在工位通道走过的人脸,如果确认是老板的话,就用一张图片覆盖到整个屏幕上。虽然原教程已经写的很好,但是我们在实现的时候仍然踩了很多坑。本着让后来者少走点弯路的原则,我们特将最详细的步骤记录如下,以期读者朋友只花最少的时间便能体验用tensorflow实现...

Gavinmiaoc的博客 2万+

Tensorflow + OpenCV实现简单的人脸识别

这段时间在学习卷积神经网络,为了对CNN有更深的了解和认识,便搞了一个简单的人脸识别作为练习。 运行环境 Windows Python 3.x (tensorflow, opencv, numpy, sklearn, dlib) 获取人脸 第一步就是要获取用于训练的人脸图像,其中自己的人脸,我们使用程序来拍照,数量需求比较大,我用了12000张自己的人脸图像。 其他人人的人脸在网上找到,这...

Juicewyh的博客 4325

CNN tensorflow 人脸识别

数据材料 这是一个小型的人脸数据库,一共有40个人,每个人有10张照片作为样本数据。这些图片都是黑白照片,意味着这些图片都只有灰度0-255,没有rgb三通道。于是我们需要对这张大图片切分成一个个的小脸。整张图片大小是1190 × 942,一共有20 × 20张照片。那么每张照片的大小就是(1190 / 20)× (942 / 20)= 57 × 47 (大约,以为每张图片之间存在间距)。 问...

柳鲲鹏 1385

手把手教你使用Tensorflow2.7完成人脸识别系统,web人脸识别(Flask框架)+pyqt界面,保姆级教程

随着人工智能的不断发展,机器学习和深度学习这门技术也越来越重要,一时间成为码农的学习热点。下面将使用深度学习技术开发一个人脸识别系统。之前使用 Tensorflow1.5 完成人脸识别(之前版本的链接:手把手教你完成深度学习人脸识别系统加入 Flask 框架完成一个简单的 web 版人脸识别Tensorflow1.5 改成Tensorflow2.7数据预处理代码更加自动完整源码+数据集+模型,

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 4190

用TensorFlow实现人脸识别

用TensorFlow实现人脸识别 1.背景介绍 在当今世界,人脸识别技术已经广泛应用于各个领域,如安全监控、身份验证、人群分析等。随着深度学习技术的不断发展,基于卷积神经网络(CNN)的人脸识别算法取得了长足的进步,展现出了优异的性能表现。TensorFlow作为谷歌开源的领先机器学习框

AI天才研究院 1664

tensorflow人脸识别_TensorFlow基础,TensorFlow简单人脸识别

TensorFlow基础,TensorFlow简单人脸识别数据材料这是一个小型的人脸数据库,一共有40个人,每个人有10张照片作为样本数据。这些图片都是黑白照片,意味着这些图片都只有灰度0-255,没有rgb三通道。于是我们需要对这张大图片切分成一个个的小脸。整张图片大小是1190 × 942,一共有20 × 20张照片。那么每张照片的大小就是(1190 / 20)× (942 / 20)= 57...

weixin_35492662的博客 1113

树莓派下,centos7操作系统, TensorFlow java版实现简单的人脸识别

通过上述步骤,你可以在树莓派的CentOS 7系统上使用TensorFlow Java实现简单的人脸识别。这包括设置环境、准备人脸检测模型、编写和运行Java代码。你可以根据需求扩展和优化此基础代码,例如将人脸图像输入到预训练的TensorFlow模型中以识别人脸特征或身份。

极客栈 334

python人脸识别项目之基础学习(二):TensorFlow的简单操作

2. 基础知识的学习 2.1.TensorFlow概述 TensorFlow是一个采用数据流图,用于数值计算的开源软件库 节点(Nodes):在图中表示数学操作 线(edges):表示在节点间相互联系的多维数据 数组,即张量(tensor) TensorFlow的特征 高度的灵活性 真正的可移植性(Portability) 将科研和产品联系在一起 自动求微分 多语言支持 性能最优化 2.2.1 TensorFlow张量 张量(tensor)是多维数组,目的是把向量、矩阵推向更高的维度 我的

不小努力的小龙 392

【人工智能学习】第十三课:理解卷积神经网络(CNNs)和它们在计算机视觉中的应用

卷积神经网络(Convolutional Neural Networks, CNNs)是一种深度学习模型,特别适用于处理图像数据。CNN通过模拟人类视觉系统的工作原理,能够有效识别和分类图像中的对象。卷积神经网络是深度学习在图像处理领域中的重要成就之一。通过深入学习和实践CNN,你将能够解决各种计算机视觉任务,打开人工智能应用的新视界。希望这第十三课能够帮助你理解CNN的基本原理和应用,并激发你继续探索计算机视觉领域的兴趣。继续学习,不断实践,你将在人工智能的旅程上取得更多成就!

weixin_46453070的博客 1363

基于TensorFlow的Python人脸识别神经网络实战

人脸识别技术已经成为计算机视觉领域的一项重要应用,它涉及到图像处理、机器学习和模式识别等多个技术领域。近年来,随着深度学习技术的快速发展,人脸识别技术更是取得了突破性进展。在构建人脸识别系统时,选择合适的数据集至关重要。目前,市场上存在许多公开的人脸数据集,例如LFW(Labeled Faces in the Wild)、CASIA-WebFace、MS-Celeb-1M等。这些数据集包含大量的面部图像,且标注信息详细,适用于训练和测试人脸识别算法。

weixin_29443363的博客 1067

tensorflow 人面关键点识别_TensorFlow基础,TensorFlow简单人脸识别

TensorFlow基础,TensorFlow简单人脸识别数据材料:这是一个小型的人脸数据库,一共有40个人,每个人有10张照片作为样本数据。这些图片都是黑白照片,意味着这些图片都只有灰度0-255,没有rgb三通道。于是我们需要对这张大图片切分成一个个的小脸。整张图片大小是1190 × 942,一共有20 × 20张照片。那么每张照片的大小就是(1190 / 20)× (942 / 20)= 5...

weixin_39562089的博客 279

RK3588 EVB开发板原理图讲解【六】

该原理图展示了eMMC Flash与主控芯片之间的连接关系,以及相关的电源、信号线路和去耦电容等。

weixin_48721556的博客 1168

TensorFlow基础笔记(8) TensorFlow简单人脸识别

  数据材料 这是一个小型的人脸数据库,一共有40个人,每个人有10张照片作为样本数据。这些图片都是黑白照片,意味着这些图片都只有灰度0-255,没有rgb三通道。于是我们需要对这张大图片切分成一个个的小脸。整张图片大小是1190 × 942,一共有20 × 20张照片。那么每张照片的大小就是(1190 / 20)× (942 / 20)= 57 × 47 (大约,以为每张图片之间存在间距)。 ...

weixin_34008805的博客 333

Matlab激活失败?手把手教你解决License checkout failed问题(附详细截图)

本文针对Matlab激活后出现“License checkout failed”错误的常见问题,提供了详细的解决方案。核心在于精准定位并正确填写Windows系统用户名,而非计算机名或账户全名。文章通过分步截图和命令指引,手把手教你使用`whoami`命令获取正确信息,并重新运行激活程序,从根本上解决因用户名填写错误导致的许可检查失败问题。

weixin_29062823的博客 571

科研笔记:怎样写好博士论文?

博士论文外审避坑指南与写作要点 博士论文外审的核心关注点呈现5级优先级:科研成果(硬指标)>创新性>逻辑结构与场景合理性>文献综述与规范性>工作量验证。外审专家会重点核查:1)成果清单是否达标;2)创新点是否真实明确;3)章节逻辑是否自洽、应用场景是否细化;4)文献综述是否构建"研究坐标系";5)实验/理论支撑是否充分。需特别注意三大雷区:科学错误(直接挂稿)、伪创新、场景不合理。写作时应强化选题依据的场景细化,通过"发展阶段+跨领域对比"提升文献综述质量。

Grow into a more wonderful you 1064

人脸检测及识别python实现系列(1)——配置、获取实时视频流

1. 前言 今天用多半天的时间把QQ空间里的几篇年前的旧文搬到了这里,算是完成了博客搬家。QQ空间里还剩下一些记录自己数学学习路线的学习日志,属于私人性质,不再搬运了。过完春节,快马加鞭地重修完高阶偏导数后,终于感觉到疲惫了,潜意识里觉得是时候做点东西了,一是练练手,二是换换脑子,用新鲜东西刺激一下自己,好把学习效率保持下去。于是,我选择了自己最感兴趣的人脸识别,期望能够通过摄像头识别出我自己来。正好,前两天济南新闻上说济南火车站可以刷脸进站了,招行也可以刷脸取现了,感情人家都已经大规模商...

weixin_44491431的博客 648

从零开始玩转机械臂:用Matlab+Robotics Toolbox实现四自由度机械臂运动仿真

本文详细介绍了如何利用Matlab及其Robotics Toolbox工具箱,从零开始构建并仿真一个四自由度机械臂。通过D-H参数建模、正向运动学验证、交互式操控以及轨迹规划等实践步骤,帮助初学者在虚拟环境中直观理解机器人运动学核心概念,为后续硬件实现奠定坚实基础。

weixin_29055699的博客 324

基于Tensorflow2.0的简单人脸识别实验

基于Tensorflow2.0的简单人脸识别实验 运行环境 Windows10 Pycharm 需要用到的库 opencv4.1.2_python3.7 模型的训练 我上一篇文章有提到如何制作自己的数据集,当时就是以人脸为例做的,这篇文章我们利用上篇已经做好的数据集来进行训练。 首先我们需要确定自己的模型,我们这里采用6层卷积,2层全连接层,代码如下。 from tensorflow.kera...

sq_damowang的博客 6486

开关变换器分析:大信号模型与小信号模型

是电力电子系统建模中的两类基本方法,分别用于描述系统在不同工作条件下的动态行为。它们的核心区别在于是否对变量进行线性化近似,以及适用的分析场景。

创新改变世界! 1907

三种 绘制奈奎斯特曲线 的方法

如何绘制Nyquist曲线 提供三种绘制方法,其中使用最广泛的是概略图绘制方法 ①解析法绘制 ②概略图法绘制 ③MATLAB绘制

weixin_46664967的博客 6万+

Python+Tensorflow+Opencv人脸识别(任意数量人脸)

Python+Tensorflow+Opencv的人脸识别简单的人脸识别准备工作开始——先获取必要的人脸图像训练——分类吧识别大脸 简单的人脸识别 一直想做机器学习的东东,最近由于工作的调整,终于有开始接触的机会了,哈哈。本文主要代码是来源于“就是这个七昂”的博文,传送门在此:https://blog.youkuaiyun.com/qq_42633819/article/details/81191308。”就...

黑色五叶草的博客 2万+

YOLO11实战优化:暗光环境检测 | 引入Retinex增强模块与YOLO11联合训练,解决夜间/低照度场景抓拍痛点

本文探讨了暗光环境下目标检测的技术挑战与解决方案。研究发现,传统CNN模型在低照度条件下性能显著下降,主要由于光子数减少导致信噪比降低、目标特征被噪声淹没。针对这一问题,文章提出将可微分光照增强模块嵌入YOLO检测器的技术路线,重点分析了Retinexformer+YOLO11联合方案的优势。 文章对比了YOLO系列模型在暗光场景的表现,指出YOLO11凭借其C3k2模块、无锚检测头和多任务统一骨干网络,在低对比度图像特征提取方面优于前代产品。同时详细介绍了Retinexformer的理论基础和技术创新,包

2601_95807009的博客 206

简单人脸识别一之使用opencv+cnn网络实现人脸识别

最近在研究目标检测这个方向,看到网上有很多的人脸识别帖子,所以也想着上上手看看。当时是做了三个模型出来,第一个就是网上很通用普遍的opencv+简单三层cnn网络来实现的,说实话效果真的一般吧!具体的下面再细细陈述。第二个是把三层cnn网络换成了残差网络。因为自己刚好也是学习了残差网络。就想着生搬硬套过来,但效果说实话很迷,时好时坏,把我是整蒙逼了,后面也会提的。最后一个是用opencv+MTCN...

飞奔的菜猪的博客 3万+

vue2/3 - [超详细] 实现企业微信扫码登录完整流程及代码,vue项目接入企业微信扫码登录功能教程,支持新跳页显示二维码或div容器里内嵌登录二维码(详细代码注释,一键复制开箱即用)

vue企业微信扫码登录,vue网页网站企业微信扫码登录教程,vue如何实现企业微信扫码登录功能,vue详细企业微信扫码登录功能实现,vue2实现企业微信扫码登录,前端vue企业微信扫码登录教程,vue pc电脑端企业微信扫码登录详细教程,vue项目中怎么做企业微信扫码注册登录,vue实现网站接入企业微信扫码登录,vue2做企业微信扫码登录的优质文章教程,vue网站对接企业微信扫码登录,vue企业微信扫码登录如何新开一页全屏显示登录二维码,vue企业微信登录二维码 内嵌在div容器里/跳页显示登录二维码,vu

✅ 精选推荐文章 5701

IMSL CNL 7.0.0 (x86-64)Crack

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

上一篇: NLP教程:教你如何自动生成对联
下一篇: 人工智能-了解机器学习
iFlyAI
博客等级 码龄9年 238粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值