人脸识别之简单实现

本文介绍了人脸识别的基本原理,并通过Python实现了一个简单的人脸识别系统。利用开源库进行图像预处理、特征提取和匹配,阐述了每个步骤的关键点和技术细节。
摘要由CSDN通过智能技术生成
# 某个人脸识别
# 1 数据yale 2 准备train label-》train
# 3 cnn 4 检测
import tensorflow as tf
import numpy as np
import scipy.io as sio

f = open('./Yale_64x64.mat','rb')
mdict = sio.loadmat(f)
# print(type(mdict))
# print(mdict.keys())
# print(mdict['gnd'])
# print(mdict['fea'])

# fea gnd
train_data = mdict['fea']
train_label = mdict['gnd']

# 方法一(打乱顺序)
# np.random.seed(50)
# train_data = np.random.permutation(train_data)
# np.random.seed(50)
# [0,1,2,3,4,5] -> [3,5,2,4,0,1]
# train_label = np.random.permutation(train_label)

# 方法二(打乱顺序)
# np.random.seed(50)
# np.random.shuffle(train_data)
# np.random.seed(50)
# # [0,1,2,3,4,5] -> [3,5,2,4,0,1]
# np.random.shuffle(train_label)

# 方法三(打乱顺序)
m = len(train_label)
permutation = np.random.permutation(m)  # m为样本数,返回list
train_data = train_data[permutation]
train_label = train_label[permutation]

test_data = train_data[0:64]
test_label = train_label[0:64]

np.random.seed(100)
test_data = np.random.permutation(test_data)
np.random.seed(100)
test_label = np.random.permutation(test_label)

# one hot 编码
# train [0-9] [10*N] [15*N]  [0 0 1 0 0 0 0 0 0 0] -> 2
train_data = train_data.reshape(train_data.shape[0],64,64,1).astype(np.float32)/127.5-1
train_labels_new = np.zeros((165,15))# 165 image 15
for i in range(0,165):
    j = int(train_label[i,0])-1 # 1-15 0-14
    train_labels_new[i,j] = 1
# one hot 编码
test_data_input = test_data.reshape(test_data.shape[0],64,64,1).astype(np.float32)/127.5-1
test_labels_input = np.zeros((64,15))# 165 image 15
for i in range(0,64):
    j = int(test_label[i,0])-1 # 1-15 0-14
    test_labels_input[i,j] = 1

# cnn acc  tf.nn tf.layer
data_input = tf.placeholder(tf.float32,[None,64,64,1])
label_input = tf.placeholder(tf.float32,[None,15])

layer1 = tf.layers.conv2d(inputs=data_input,filters=32,kernel_size=2,strides=1,padding='SAME',activation=tf.nn.relu)
layer1_pool = tf.layers.max_pooling2d(layer1,pool_size=2,strides=2)
layer2 = tf.reshape(layer1_pool,[-1,32*32*32])
layer2_relu = tf.layers.dense(layer2,1024,tf.nn.relu)
output = tf.layers.dense(layer2_relu,15)

loss = tf.losses.softmax_cross_entropy(onehot_labels=label_input,logits=output)
train = tf.train.GradientDescentOptimizer(0.01).minimize(loss)
accuracy = tf.metrics.accuracy(labels=tf.argmax(label_input,axis=1),predictions=tf.argmax(output,axis=1))[1]

# run acc
init = tf.group(tf.global_variables_initializer(),tf.local_variables_initializer())
with tf.Session() as sess:
    sess.run(init)
    for i in range(0,500):
        train_data_input = np.array(train_data)
        train_label_input = np.array(train_labels_new)
        sess.run([train,loss],feed_dict={data_input:train_data_input,label_input:train_label_input})
        acc = sess.run(accuracy,feed_dict={data_input:test_data_input,label_input:test_labels_input})
        print('acc:%.2f',acc)
'''
# 运算结果
2019-01-17 13:37:02.410744: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-01-17 13:37:02.500879: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:897] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2019-01-17 13:37:02.501371: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1392] Found device 0 with properties: 
name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.582
pciBusID: 0000:01:00.0
totalMemory: 10.91GiB freeMemory: 9.96GiB
2019-01-17 13:37:02.501387: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1471] Adding visible gpu devices: 0
2019-01-17 13:37:02.688582: I tensorflow/core/common_runtime/gpu/gpu_device.cc:952] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-01-17 13:37:02.688606: I tensorflow/core/common_runtime/gpu/gpu_device.cc:958]      0 
2019-01-17 13:37:02.688610: I tensorflow/core/common_runtime/gpu/gpu_device.cc:971] 0:   N 
2019-01-17 13:37:02.688758: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1084] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 9636 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:01:00.0, compute capability: 6.1)
acc:%.2f 0.1875
acc:%.2f 0.2265625
acc:%.2f 0.26041666
acc:%.2f 0.28515625
acc:%.2f 0.3125
acc:%.2f 0.34635416
acc:%.2f 0.37723213
acc:%.2f 0.40234375
acc:%.2f 0.421875
acc:%.2f 0.4421875
acc:%.2f 0.46022728
acc:%.2f 0.4765625
acc:%.2f 0.49158654
acc:%.2f 0.50558037
acc:%.2f 0.51770836
acc:%.2f 0.53027344
acc:%.2f 0.5413603
acc:%.2f 0.5538194
acc:%.2f 0.5649671
acc:%.2f 0.575
acc:%.2f 0.58407736
acc:%.2f 0.59232956
acc:%.2f 0.6005435
acc:%.2f 0.60807294
acc:%.2f 0.615625
acc:%.2f 0.62319714
acc:%.2f 0.6302083
acc:%.2f 0.63671875
acc:%.2f 0.6427802
acc:%.2f 0.6484375
acc:%.2f 0.6532258
acc:%.2f 0.65771484
acc:%.2f 0.6619318
acc:%.2f 0.6663603
acc:%.2f 0.67053574
acc:%.2f 0.6744792
acc:%.2f 0.6786318
acc:%.2f 0.6825658
acc:%.2f 0.6862981
acc:%.2f 0.6898438
acc:%.2f 0.69321644
acc:%.2f 0.6968006
acc:%.2f 0.7005814
acc:%.2f 0.7041903
acc:%.2f 0.70763886
acc:%.2f 0.7109375
acc:%.2f 0.7140958
acc:%.2f 0.7171224
acc:%.2f 0.72002554
acc:%.2f 0.7228125
acc:%.2f 0.7254902
acc:%.2f 0.7280649
acc:%.2f 0.7308373
acc:%.2f 0.7335069
acc:%.2f 0.7360796
acc:%.2f 0.73856026
acc:%.2f 0.7409539
acc:%.2f 0.7432651
acc:%.2f 0.7454979
acc:%.2f 0.7476562
acc:%.2f 0.7497439
acc:%.2f 0.7517641
acc:%.2f 0.75396824
acc:%.2f 0.7561035
acc:%.2f 0.75841343
acc:%.2f 0.7611269
acc:%.2f 0.7637593
acc:%.2f 0.7665441
acc:%.2f 0.7692482
acc:%.2f 0.771875
acc:%.2f 0.77442783
acc:%.2f 0.7769097
acc:%.2f 0.7795377
acc:%.2f 0.7820946
acc:%.2f 0.78458333
acc:%.2f 0.78700656
acc:%.2f 0.7893669
acc:%.2f 0.7916667
acc:%.2f 0.794106
acc:%.2f 0.79648435
acc:%.2f 0.798804
acc:%.2f 0.80106705
acc:%.2f 0.8032756
acc:%.2f 0.80543154
acc:%.2f 0.8075368
acc:%.2f 0.809593
acc:%.2f 0.811602
acc:%.2f 0.8135653
acc:%.2f 0.8154845
acc:%.2f 0.8173611
acc:%.2f 0.8191964
acc:%.2f 0.8209919
acc:%.2f 0.82274866
acc:%.2f 0.8244681
acc:%.2f 0.8261513
acc:%.2f 0.8277995
acc:%.2f 0.82941365
acc:%.2f 0.8309949
acc:%.2f 0.8325442
acc:%.2f 0.8340625
acc:%.2f 0.8355507
acc:%.2f 0.8370098
acc:%.2f 0.83844054
acc:%.2f 0.839994
acc:%.2f 0.84151787
acc:%.2f 0.843013
acc:%.2f 0.84448016
acc:%.2f 0.84592015
acc:%.2f 0.8473337
acc:%.2f 0.84872156
acc:%.2f 0.8500845
acc:%.2f 0.85142297
acc:%.2f 0.85273784
acc:%.2f 0.8540296
acc:%.2f 0.85529894
acc:%.2f 0.85654634
acc:%.2f 0.8577724
acc:%.2f 0.85897774
acc:%.2f 0.8601628
acc:%.2f 0.8613281
acc:%.2f 0.8624742
acc:%.2f 0.86360145
acc:%.2f 0.8647104
acc:%.2f 0.8658014
acc:%.2f 0.866875
acc:%.2f 0.86793154
acc:%.2f 0.86897147
acc:%.2f 0.8699951
acc:%.2f 0.8710029
acc:%.2f 0.8719952
acc:%.2f 0.8729723
acc:%.2f 0.8739347
acc:%.2f 0.8748825
acc:%.2f 0.8758162
acc:%.2f 0.8767361
acc:%.2f 0.87764245
acc:%.2f 0.87853557
acc:%.2f 0.87941575
acc:%.2f 0.8802833
acc:%.2f 0.8811384
acc:%.2f 0.8819814
acc:%.2f 0.8828125
acc:%.2f 0.883632
acc:%.2f 0.8844401
acc:%.2f 0.8852371
acc:%.2f 0.8860231
acc:%.2f 0.88679844
acc:%.2f 0.88756335
acc:%.2f 0.88831794
acc:%.2f 0.8890625
acc:%.2f 0.8897972
acc:%.2f 0.8905222
acc:%.2f 0.89123774
acc:%.2f 0.891944
acc:%.2f 0.8926411
acc:%.2f 0.8933293
acc:%.2f 0.89400876
acc:%.2f 0.8946796
acc:%.2f 0.895342
acc:%.2f 0.8959961
acc:%.2f 0.8966421
acc:%.2f 0.8972801
acc:%.2f 0.8979103
acc:%.2f 0.89853275
acc:%.2f 0.89914775
acc:%.2f 0.8997553
acc:%.2f 0.9003555
acc:%.2f 0.90094864
acc:%.2f 0.90153474
acc:%.2f 0.902114
acc:%.2f 0.9026864
acc:%.2f 0.9032522
acc:%.2f 0.9038114
acc:%.2f 0.9043642
acc:%.2f 0.90491074
acc:%.2f 0.905451
acc:%.2f 0.9059852
acc:%.2f 0.90651333
acc:%.2f 0.9070356
acc:%.2f 0.90755206
acc:%.2f 0.9080628
acc:%.2f 0.90856797
acc:%.2f 0.90906763
acc:%.2f 0.9095618
acc:%.2f 0.9100507
acc:%.2f 0.91053426
acc:%.2f 0.9110127
acc:%.2f 0.911486
acc:%.2f 0.91195434
acc:%.2f 0.91241777
acc:%.2f 0.9128763
acc:%.2f 0.9133301
acc:%.2f 0.91377914
acc:%.2f 0.9142236
acc:%.2f 0.91466343
acc:%.2f 0.91509885
acc:%.2f 0.91552985
acc:%.2f 0.91595644
acc:%.2f 0.9163788
acc:%.2f 0.91679686
acc:%.2f 0.9172108
acc:%.2f 0.91762066
acc:%.2f 0.9180265
acc:%.2f 0.9184283
acc:%.2f 0.9188262
acc:%.2f 0.91922027
acc:%.2f 0.9196105
acc:%.2f 0.919997
acc:%.2f 0.92037976
acc:%.2f 0.9207589
acc:%.2f 0.9211345
acc:%.2f 0.92150646
acc:%.2f 0.921875
acc:%.2f 0.9222401
acc:%.2f 0.92260176
acc:%.2f 0.92296004
acc:%.2f 0.9233151
acc:%.2f 0.92366683
acc:%.2f 0.9240154
acc:%.2f 0.9243608
acc:%.2f 0.92470306
acc:%.2f 0.9250422
acc:%.2f 0.9253784
acc:%.2f 0.9257115
acc:%.2f 0.92604166
acc:%.2f 0.9263689
acc:%.2f 0.92669326
acc:%.2f 0.9270148
acc:%.2f 0.92733353
acc:%.2f 0.92764944
acc:%.2f 0.92796266
acc:%.2f 0.92827314
acc:%.2f 0.928581
acc:%.2f 0.92888623
acc:%.2f 0.92918885
acc:%.2f 0.9294889
acc:%.2f 0.9297864
acc:%.2f 0.9300814
acc:%.2f 0.93037397
acc:%.2f 0.93066406
acc:%.2f 0.9309518
acc:%.2f 0.9312371
acc:%.2f 0.93152004
acc:%.2f 0.9318007
acc:%.2f 0.9320791
acc:%.2f 0.93235517
acc:%.2f 0.93262905
acc:%.2f 0.9329007
acc:%.2f 0.9331702
acc:%.2f 0.9334375
acc:%.2f 0.9337027
acc:%.2f 0.9339658
acc:%.2f 0.93422675
acc:%.2f 0.93448573
acc:%.2f 0.9347426
acc:%.2f 0.93499756
acc:%.2f 0.93525046
acc:%.2f 0.93550146
acc:%.2f 0.9357505
acc:%.2f 0.9359976
acc:%.2f 0.9362428
acc:%.2f 0.9364862
acc:%.2f 0.93672764
acc:%.2f 0.9369673
acc:%.2f 0.9372052
acc:%.2f 0.93744123
acc:%.2f 0.93767554
acc:%.2f 0.9379081
acc:%.2f 0.93813896
acc:%.2f 0.9383681
acc:%.2f 0.9385955
acc:%.2f 0.93882126
acc:%.2f 0.9390453
acc:%.2f 0.9392678
acc:%.2f 0.93948865
acc:%.2f 0.9397079
acc:%.2f 0.93992555
acc:%.2f 0.9401416
acc:%.2f 0.9403562
acc:%.2f 0.9405692
acc:%.2f 0.9407807
acc:%.2f 0.9409907
acc:%.2f 0.9411992
acc:%.2f 0.94140625
acc:%.2f 0.9416118
acc:%.2f 0.941816
acc:%.2f 0.94201875
acc:%.2f 0.94222003
acc:%.2f 0.94242
acc:%.2f 0.94261855
acc:%.2f 0.9428157
acc:%.2f 0.9430116
acc:%.2f 0.9432061
acc:%.2f 0.94339925
acc:%.2f 0.9435911
acc:%.2f 0.9437817
acc:%.2f 0.943971
acc:%.2f 0.944159
acc:%.2f 0.9443457
acc:%.2f 0.94453126
acc:%.2f 0.94471556
acc:%.2f 0.9448986
acc:%.2f 0.94508046
acc:%.2f 0.9452611
acc:%.2f 0.9454406
acc:%.2f 0.94561887
acc:%.2f 0.945796
acc:%.2f 0.945972
acc:%.2f 0.94614685
acc:%.2f 0.9463206
acc:%.2f 0.94649315
acc:%.2f 0.9466647
acc:%.2f 0.94683504
acc:%.2f 0.9470044
acc:%.2f 0.94717264
acc:%.2f 0.9473398
acc:%.2f 0.9475059
acc:%.2f 0.947671
acc:%.2f 0.947835
acc:%.2f 0.94799805
acc:%.2f 0.94816005
acc:%.2f 0.94832104
acc:%.2f 0.948481
acc:%.2f 0.94864005
acc:%.2f 0.94879806
acc:%.2f 0.9489551
acc:%.2f 0.9491112
acc:%.2f 0.9492664
acc:%.2f 0.9494206
acc:%.2f 0.9495739
acc:%.2f 0.9497262
acc:%.2f 0.9498776
acc:%.2f 0.9500282
acc:%.2f 0.9501778
acc:%.2f 0.9503265
acc:%.2f 0.9504743
acc:%.2f 0.9506213
acc:%.2f 0.9507674
acc:%.2f 0.9509126
acc:%.2f 0.95105696
acc:%.2f 0.9512005
acc:%.2f 0.9513432
acc:%.2f 0.95148504
acc:%.2f 0.95162606
acc:%.2f 0.9517663
acc:%.2f 0.9519057
acc:%.2f 0.9520443
acc:%.2f 0.9521821
acc:%.2f 0.95231915
acc:%.2f 0.95245534
acc:%.2f 0.9525908
acc:%.2f 0.95272547
acc:%.2f 0.9528594
acc:%.2f 0.95299256
acc:%.2f 0.953125
acc:%.2f 0.95325667
acc:%.2f 0.9533876
acc:%.2f 0.9535178
acc:%.2f 0.95364726
acc:%.2f 0.95377606
acc:%.2f 0.9539041
acc:%.2f 0.9540314
acc:%.2f 0.95415807
acc:%.2f 0.954284
acc:%.2f 0.95440924
acc:%.2f 0.9545338
acc:%.2f 0.9546577
acc:%.2f 0.95478094
acc:%.2f 0.9549035
acc:%.2f 0.9550253
acc:%.2f 0.95514655
acc:%.2f 0.95526713
acc:%.2f 0.95538706
acc:%.2f 0.9555063
acc:%.2f 0.955625
acc:%.2f 0.955743
acc:%.2f 0.95586044
acc:%.2f 0.9559772
acc:%.2f 0.9560933
acc:%.2f 0.9562089
acc:%.2f 0.9563238
acc:%.2f 0.9564382
acc:%.2f 0.9565519
acc:%.2f 0.95666504
acc:%.2f 0.9567776
acc:%.2f 0.95688957
acc:%.2f 0.957001
acc:%.2f 0.9571118
acc:%.2f 0.95722204
acc:%.2f 0.9573317
acc:%.2f 0.95744085
acc:%.2f 0.95754945
acc:%.2f 0.95765746
acc:%.2f 0.9577649
acc:%.2f 0.95787185
acc:%.2f 0.95797825
acc:%.2f 0.95808405
acc:%.2f 0.95818937
acc:%.2f 0.95829415
acc:%.2f 0.95839846
acc:%.2f 0.9585022
acc:%.2f 0.9586054
acc:%.2f 0.9587081
acc:%.2f 0.9588103
acc:%.2f 0.958912
acc:%.2f 0.9590132
acc:%.2f 0.95911396
acc:%.2f 0.95921415
acc:%.2f 0.95931387
acc:%.2f 0.9594131
acc:%.2f 0.9595119
acc:%.2f 0.9596101
acc:%.2f 0.9597079
acc:%.2f 0.95980525
acc:%.2f 0.9599021
acc:%.2f 0.9599985
acc:%.2f 0.96009445
acc:%.2f 0.9601899
acc:%.2f 0.9602849
acc:%.2f 0.9603795
acc:%.2f 0.9604736
acc:%.2f 0.96056724
acc:%.2f 0.96066046
acc:%.2f 0.96075326
acc:%.2f 0.9608456
acc:%.2f 0.9609375
acc:%.2f 0.961029
acc:%.2f 0.96112
acc:%.2f 0.96121067
acc:%.2f 0.96130085
acc:%.2f 0.9613907
acc:%.2f 0.96148
acc:%.2f 0.961569
acc:%.2f 0.9616575
acc:%.2f 0.9617457
acc:%.2f 0.9618334
acc:%.2f 0.96192074
acc:%.2f 0.9620077
acc:%.2f 0.96209425
acc:%.2f 0.9621804
acc:%.2f 0.96226615
acc:%.2f 0.9623515
acc:%.2f 0.9624365
acc:%.2f 0.96252114
acc:%.2f 0.96260536
acc:%.2f 0.96268916
acc:%.2f 0.96277267
acc:%.2f 0.96285576
acc:%.2f 0.9629385
acc:%.2f 0.96302086
acc:%.2f 0.9631028
acc:%.2f 0.9631845
acc:%.2f 0.9632657
acc:%.2f 0.96334666
acc:%.2f 0.9634272
acc:%.2f 0.9635074
acc:%.2f 0.9635872
acc:%.2f 0.96366674
acc:%.2f 0.9637459
acc:%.2f 0.96382475
acc:%.2f 0.9639032
acc:%.2f 0.96398133
acc:%.2f 0.9640591
acc:%.2f 0.9641366
acc:%.2f 0.9642137
acc:%.2f 0.9642905
acc:%.2f 0.964367
acc:%.2f 0.9644431
acc:%.2f 0.9645189
acc:%.2f 0.9645944
acc:%.2f 0.9646696
acc:%.2f 0.96474445
acc:%.2f 0.96481895
acc:%.2f 0.9648932
acc:%.2f 0.96496713
acc:%.2f 0.9650407
acc:%.2f 0.965114
acc:%.2f 0.96518695
acc:%.2f 0.9652597
acc:%.2f 0.96533203
acc:%.2f 0.9654041
acc:%.2f 0.96547586
acc:%.2f 0.9655474
acc:%.2f 0.96561855
acc:%.2f 0.9656894
acc:%.2f 0.96576005
acc:%.2f 0.9658303
acc:%.2f 0.96590036
acc:%.2f 0.9659701
acc:%.2f 0.96603954
acc:%.2f 0.9661087
acc:%.2f 0.9661776
acc:%.2f 0.9662462
acc:%.2f 0.9663145
acc:%.2f 0.96638256
acc:%.2f 0.96645033
acc:%.2f 0.96651787
acc:%.2f 0.9665851
acc:%.2f 0.96665204
acc:%.2f 0.96671873

Process finished with exit code 0
'''
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
人脸识别是计算机视觉领域的一个重要研究方向,目前已有很多成熟的算法和工具可以实现人脸识别。Matlab作为一个强大的数学软件,也提供了丰富的图像处理和计算机视觉工具箱,可以用来实现人脸识别。 下面是一个简单的基于Matlab的人脸识别程序,主要包括以下步骤: 1. 读取训练集和测试集图像 2. 提取训练集图像的特征向量 3. 选取测试图像,并提取其特征向量 4. 计算测试图像与每个训练图像的距离,并选取距离最近的k个训练图像 5. 统计距离最近的k个训练图像中出现频率最高的人脸标签,作为测试图像的识别结果 以下是简单的Matlab代码实现: ```matlab % 读取训练集和测试集图像 train_dir = 'train_images/'; test_dir = 'test_images/'; train_files = dir([train_dir '*.jpg']); test_files = dir([test_dir '*.jpg']); % 提取训练集图像的特征向量 train_features = []; for i = 1:length(train_files) img = imread([train_dir train_files(i).name]); feature = extract_feature(img); train_features = [train_features; feature]; end % 选取测试图像,并提取其特征向量 test_idx = 1; test_img = imread([test_dir test_files(test_idx).name]); test_feature = extract_feature(test_img); % 计算测试图像与每个训练图像的距离,并选取距离最近的k个训练图像 k = 5; distances = pdist2(train_features, test_feature); [~, idx] = sort(distances); nearest_k = idx(1:k); % 统计距离最近的k个训练图像中出现频率最高的人脸标签,作为测试图像的识别结果 labels = {'person1', 'person2', 'person3', 'person4', 'person5'}; label_freq = zeros(length(labels), 1); for i = 1:k label_idx = find(strcmp(labels, train_files(nearest_k(i)).name(1:end-6))); label_freq(label_idx) = label_freq(label_idx) + 1; end [~, max_idx] = max(label_freq); fprintf('Test image is recognized as %s.\n', labels{max_idx}); ``` 其中,`extract_feature()`函数用于提取图像的特征向量,可以根据具体的人脸识别算法进行实现。在这个简单的示例中,我们假设每个人脸图像都是大小相同的灰度图像,直接将图像展开为一个向量作为特征向量。在实际应用中,可能需要考虑更复杂的特征提取方法,如LBP、HOG等。 需要注意的是,这个示例只是一个简单人脸识别程序,实际应用中还需要考虑很多问题,如人脸检测、人脸对齐、特征选择和分类器的选择等。同时,由于人脸识别涉及到个人隐私,需要考虑相关法律法规和道德伦理问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值