自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

TensorRT如何加速人臉識別

人工智能 人臉識別
為了提高人臉識別的實時性,我們團隊將傳統(tǒng)的利用神經(jīng)網(wǎng)絡框架推理升級至統(tǒng)一的 TensorRT 加速推理。

[[329844]]

為了提高人臉識別的實時性,我們團隊將傳統(tǒng)的利用神經(jīng)網(wǎng)絡框架推理升級至統(tǒng)一的 TensorRT 加速推理。經(jīng)實驗對比,經(jīng) TensorRT FP16 模式推理加速后的人臉識別不僅幾乎無損精度,甚至于在部分場景精度有提升,識別速度提升為原來的 2.3 倍。統(tǒng)一加速推理的人臉識別不僅能為客戶提供優(yōu)質高響應的服務,同時也能提升 AI 服務器資源利用率,降低服務成本,也有利于各模型推理的整合統(tǒng)一。

一、目的及背景

首先,量化推理的出現(xiàn)為提升人臉識別服務的響應速度,給客戶提供更優(yōu)質的服務體驗提供了更多的選擇。

其次,由于不同業(yè)務需求的神經(jīng)網(wǎng)絡模型可能是在不同的神經(jīng)網(wǎng)絡框架下訓練生成的,比如說人臉檢測利用的是 TensorFlow,人臉識別利用的是 MxNet,而肖像生成利用的是 PyTorch。如果線上服務都用深度學習框架進行推理,則需要在服務器上部署多種框架,相對于統(tǒng)一的推理引擎,多種框架不利于結構的優(yōu)化以及數(shù)據(jù)之間的通信,且會增加升級和維護的成本。

最后,面對日益增長的 AI 服務需求,為了保證響應的服務質量,企業(yè)需要采購更多的服務器資源,特別是 GPU 服務器。如何提升服務器資源的利用率,降低相應的服務成本也成為迫切的需求。通過模型量化推理減少計算和存儲資源的占用,而推理加速也可以減少服務器資源占用。

基于以上背景,我們團隊對現(xiàn)有的量化推理和深度學習推理服務進行了調研和實驗。

二、相關技術

1、TensorRT

什么是 TensorRT?TensorRT 是 Nvidia 開發(fā)的用于高性能深度學習推理的 SDK。其包括一個高性能的神經(jīng)網(wǎng)絡 Inference Optimizer 和一個 Runtime Engine 用于生產部署。利用 TensorRT,可以優(yōu)化所有主要深度學習框架中訓練的神經(jīng)網(wǎng)絡模型,以高準確性來校準低精度,最終部署到超大規(guī)模的數(shù)據(jù)中心、嵌入式設備或汽車產品平臺。如圖 1 所示:

TensorRT 通過融合層和優(yōu)化內核來優(yōu)化網(wǎng)絡,從而提高延遲、吞吐量、功率效率和內存消耗。如果應用程序指定,它還將優(yōu)化網(wǎng)絡以降低運行精度,進一步提高性能并減少內存需求。如圖 2 所示:

TensorRT 為深度學習推理應用的生產部署提供 INT8 和 FP16 優(yōu)化,如視頻流、語音識別、推薦和自然語言處理。減少精度推理可以顯著降低應用程序延遲,降低延遲是許多實時服務、自動駕駛和嵌入式應用程序的需求。

① Low Precision Inference 

MxNet、TensorFlow、PyTorch 等現(xiàn)有的深度學習框架,在訓練模型的時候,一般都會使用 Float 32(簡稱 FP32)的精度來表示權值、偏置、激活值等. 而當網(wǎng)絡的層數(shù)逐漸加深,其參數(shù)的計算量是極其多的,比如像 ResNet、VGG 這種網(wǎng)絡。如此大的計算量,如果在推理過程中都用 FP32 的精度來計算,會比較耗費時間和資源。如果是在對計算資源有限制的移動設備或者是嵌入式設備,如此大的計算量簡直無法想法,甚至于根本運行不起來。

在部署推理的時候使用低精度的數(shù)據(jù),比如 INT8、FP16 等就是解決大計算量以及提升推理速度的一種方法。當然解決大計算量問題的方法,還有模型壓縮這類方法。但本文的方法專注于模型推理階段的優(yōu)化。

那么問題就來了,使用更低精度的數(shù)值表示會不會降低原來的模型準確性。畢竟如表格 1 所示,不同精度的動態(tài)范圍相差還是很大。

對這個精度損失的問題,已經(jīng)有不少學者在經(jīng)驗層面對其進行了相應的分析。比如 Why are Eight Bits Enough for Deep Neural Networks? [1]以及 Low Precision Inference with TensorRT  [2] 這兩篇博文的提出即便是推理時使用低精度的數(shù)據(jù),在提升推理速度的同時,并不會對精度造成太大的影響。博文作者認為神經(jīng)網(wǎng)絡學習到數(shù)據(jù)樣本的模式可分性,同時由于數(shù)據(jù)中存在的噪聲,使得網(wǎng)絡具有較強的魯棒性,也就是說在輸入樣本中做輕微的變動并不會過多的影響結果性能。甚至有研究發(fā)現(xiàn),在某些場景下,低精度推理能提升結果的準確性。此外  Improving the Speed of Neural Networks on CPUs [3]和  Training Deep Neural Networks with Low Precision Multiplications [4] 這兩篇文章則在理論上其進行了分析論證。

由于 INT8 的低存儲占用以及高通過率,但是由于其表示范圍與 FP32 相差還是太大,實際上將 FP32 精度降為 INT8 精度,即用 8bit 來表示原來用 32bit 表示的 tensor,這其實相當于信息再編碼過程,而且不能有明顯的精度損失,還是具有相當大的挑戰(zhàn)。該轉換過程需要將每一層輸入張量 (Tensor) 和網(wǎng)絡學習的參數(shù)都從原來的 FP32 表示轉為 INT8 表示。因此需要最小化該轉換過程的信息損失,而且轉換方式得要是簡單而且計算效率高的。TensorRT 采用是簡單有效的線性量化的轉換方式。即式(1):

FP32 Tensor(T) = FP32 scale factor * 8-bit Tensor(t) + FP32_bias(b)(1)

其中 Nvidia 的研究者經(jīng)過證明可以將其中的偏置項去掉,即式(2):

FP32 Tensor(T) = FP32 scale factor * 8-bit Tensor(t)(2)

那么在轉換過程中最重要的就是確定這個 scale factor,最簡單的方法就是如圖 3 左邊所示的直接將 FP32 tensor 值中的 –|max| 和 |max| 映射為 INT8 對應的 -127 和 127,中間的值按照線性的關系進行映射,該方法也被稱為不飽和(No saturation)映射。但是經(jīng)過實驗表明,該種方式有明顯的精度損失。因此 TensorRT 的開發(fā)者采用被稱為飽和 (saturate) 映射的方式,如圖 3 右邊所示:

相對于非飽和映射,不再是直接將兩端的 ±|max|值映射到±127,而是選取一個閾值|T|, 將 ±|T| 映射為±127,其中 |T| < |max|。在 [ -|T|,  |T| ] 區(qū)間外的值直接映射為 ±127,比如圖 3 中的三個紅色 x 點就直接映射為 -127, 而在 [ -|T|, |T| ] 區(qū)間內的按照線性映射的方式。

TensorRT 開發(fā)者分別對網(wǎng)絡推理過程中涉及的權重 ( weights ) 和激活值 ( activation ) 做了實驗,得出對權重做飽和映射相對于不飽和方式并沒有精度的提高,而對激活值做飽和映射有明顯的精度提升。因此在 TensorRT 中對權重采用的是不飽和映射的方式,對激活值采用的是飽和映射的方式。

那么為什么非飽和映射的方式相對飽和映射有精度的提升?此外非飽和映射中的 T 要如何選取呢?首先來看下圖右邊所示,該圖是 resnet-152 網(wǎng)絡模型中間層的激活值統(tǒng)計,橫坐標是激活值,縱坐標是統(tǒng)計數(shù)量的歸一化表示。

可以看到圖 4 中白線左邊的激活值分布比較的集中重合,而白線(該線對應的就是閾值 T 線)右邊,即紅色框內的激活值就比較的分散,而且在紅色框內的激活值在整個層中所占的比例比較少,因此這部分可以不考慮到映射關系中,如圖右邊所示。研究發(fā)現(xiàn)大部分的網(wǎng)絡都具有這種大部分激活值集中,少量激活值分散的特點。

T 值需要滿足 FP32 模式到 INT8 模式轉換的信息損失最小化,而信息損失可以用 KL 散度(也叫做相對熵)來衡量,即如式(3)所示:

KL_divergence(P, Q) := SUM( P[i] * log( P[i] / Q[i] ), i)   (3)

其中 P,Q 分別表示 FP32 和 INT8 模式下的分布,每一層 tensor 對應的 T 值都是不同的,而確定 T 值的過程被稱為校準(Calibration), 如圖 5 所示校準的原理圖。

首先需要在校準數(shù)據(jù)集(Calibration Dataset)做 FP32 推理,然后獲取每一層激活值的直方圖,并用不同的量化閾值生成相應的量化分布。其中量化閾值就如上面的激活值直方圖中,等間隔的虛線所對應的激活值就是量化閾值,我們需要的 T 值就是這些虛線中能夠使得 KL 散度最小化的激活值。這個校準是需要一些時間的,所以每次進行量化的時候,會將校準得到的 T 值都保存在相應的文件中,待下次進行 FP32 到 INT8 推理模式轉換的時候,直接讀取保存了每層 T 值的文件,這樣可以節(jié)省整個流程的時間。

顯而易見的是校準數(shù)據(jù)集(Calibration Dataset)會直接的影響到激活值的分布,進而影響到 T 值的選擇。校準數(shù)據(jù)集要具有代表性、多樣性,比如在圖像分類應用中,校準數(shù)據(jù)集的要能夠代表所有的分類目標。驗證集 (validation dataset) 的子集是比較理想的校準集,當然有人或許會問,把全部的數(shù)據(jù)用于校準不就可以最好的體現(xiàn)原始數(shù)據(jù)分布么?但是這樣的話也會增加整個流程的時間,而經(jīng)過研究和實驗表明校準集只需要 1000 個樣本即可。

TensorRT INT8 量化的性能和精度,圖 6 和圖 7 來自 Nvidia 官方的 PPT。

從上面圖 6 和圖 7 中可以看到經(jīng)過校準的 INT8 推理相對于 FP32 的推理,準確率(Accuracy)有略微的損失,也可見在部分情況下(圖 6 表格中綠色所示)INT8 推理相比 FP32 推理準確率有略微提升。另外可以看見一個趨勢,隨著 Calibration dataset 中圖片數(shù)量的增加,INT8 相對于 FP32 的精度損失是在逐漸減小。從 Performance 這張圖中可見在不同的推理 Batch Size(注意實際推理的 Batch Size 和 Calibration 過程中的 Batch Size 并不需要保持一致)設定下,INT8 推理相比于 FP32 推理的加速比。圖中可見 Batch Size 越大,加速效果越好,在 Batch Size 為 128 的時候,加速比大約在 3.5 倍左右,當然實際的加速比和硬件平臺,還有神經(jīng)網(wǎng)絡本身也有關系。除了速度上面的提升以外,低精度推理在存儲消耗上相對于 FP32 也有相應的優(yōu)化,如圖 8 所示:

圖 8 中,INT8 on P40 即表示在 P40 顯卡上進行 INT8 推理,可以看出相比 FP32 推理模式內存占用減少了 3 倍多,而速度提升了 3 倍多。而 FP16 模式也減少了 30% 的內存占用,速度提升了近兩倍。

當然,上述的實驗對比測試均來自 Nvidia 官方,具體到我們實際的深度學習場景,還需要經(jīng)過實驗進行對比精度的損失以及速度的提升,在第三章中,將會概述我們團隊利用 TensorRT 加速人臉識別的實驗流程以及效果,還有在實施中遇到的一些問題和解決方法。

② 神經(jīng)網(wǎng)絡優(yōu)化

TensorRT 除了通過支持 FP16 和 INT8 這兩種低精度模式的推理來提升速度以外,其在底層會根據(jù) GPU 特性對神經(jīng)網(wǎng)絡進行相應的重構和優(yōu)化。首先是其會刪除一些并沒有使用輸出的層,以避免不必要的計算。然后會對神經(jīng)網(wǎng)絡中一些可以合并的運算進行合并,例如在圖 9 所示的原始網(wǎng)絡,TensorRT 會將其中的 conv、bias、relu 這三個層融合在一個層中,即圖 10 所示的 CBR 層,這個合并操作也被成為垂直層融合。進一步的還有水平層融合,即如圖 10 到圖 11 的過程,將處于同一水平層級的 1x1CBR 融合到一起。

2、Inference Server

Inference Server 是一類為機器學習模型提供一站式管理、推理服務、集成等功能的高性能模型服務系統(tǒng)。以下簡要介紹幾種常見的 Inference Server。

① TensorFlow Serving

TensorFlow Serving 是由 Google 的 TensorFlow 團隊開發(fā)的一種靈活的、高性能的機器學習模型服務系統(tǒng),專為生產環(huán)境設計。在機器學習推理方面,其可以對訓練后的模型進行生命周期管理,通過高性能、引用計數(shù)的查找表為客戶端提供版本化訪問。其提供了與 TensorFlow 模型開箱即用的集成,也能拓展到其他模型。如果模型由 TensorFlow 訓練生成的,用 TensorFlow Serving 最為方便。詳細介紹參見 https://github.com/tensorflow/serving 。

② MMS( Multi Model Server )

Multi Model Server(MMS)是一個靈活和易于使用的工具,為使用任何 ML/DL 框架訓練的深度學習模型提供推理服務。這個是由 Amazon 的 AWSlab 開發(fā)的模型推理工具,原來叫 MxNet Model Server。由于 Amazon 主力支持的是 MxNet,因此 MMS 對 MxNet 有更好的優(yōu)化,對 MxNet 的特性支持也更加積極。詳見 https://github.com/awslabs/multi-model-server

③ TensorRT Inference Server

前面介紹的 TensorFlow Serving 和 MMS 都是由深度學習框架的廠商推出的,相應的對其各自的深度學習框架支持也會更好。

TensorRT Inference Server (最新版叫 Nvidia Triton Inference Server)是由顯卡廠商 Nvidia 開發(fā)的深度學習模型推理 Server。其針對 Nvidia GPU 有更深層次的優(yōu)化,該 Server 可以通過 HTTP 或者 GRPC 端點提供推理服務。其最大的特點是多框架的支持,其不僅支持 TensorRT 本身生成的模型,而且支持 TensorFlow、Caffe2、ONNX 和 PyTorch 的模型。還支持混合模型的推理,以及不同框架模型同時推理。這很好的契合業(yè)務上推理服務與神經(jīng)網(wǎng)絡框架脫離的需求。詳見 https://github.com/NVIDIA/triton-inference-server。

這里簡單介紹常見的 Inference Server,當然還有其他廠商的 Inference Server,如 TorchServe,見 https://github.com/pytorch/serve。

三、TensorRT 加速人臉識別

1、TensorRT 的典型 INT8 工作流程: 

首先我們需要在 FP32 模式下訓練得到的模型文件及校準數(shù)據(jù)集。接下來:

① TensorRT 將會在校準集上作 FP32 的推理。

② 得到每個網(wǎng)絡層相應的激活值統(tǒng)計。

③ 實施校準算法即獲取每層對應的最佳閾值 T,獲取最優(yōu)的量化因子。

④ 量化 FP32 的權重為 INT8 模式。

⑤ 生成相應的校準表 ( CalibrationTable ) 和 INT8 執(zhí)行引擎。

2、TensorRT 加速需要注意的問題:

① 深度學習框架與 TensorRT 的整合度不同

如上所述實施 TensorRT 推理加速,首先是需要一個 FP32 模式下訓練得到的神經(jīng)網(wǎng)絡模型。如果要進行 INT8 推理,還需要校準數(shù)據(jù)集 (Calibration Dataset),一般是選取驗證集的子集。由于各深度學習框架和 TensorRT 的整合度和支持度不同,除了 TensorFlow 和 MATLAB 已經(jīng)集成了 TensorRT 外,大部分的深度學習框架生成的模型都要通過 ONNX 格式導入 TensorRT 中。如圖 12 所示:

由于 TensorFlow 內實現(xiàn)了和 TensorRT 進行整合的 API,即可以從 TensorFlow 代碼中指定 TensorRT 作為 Inference 的 backend,TensorRT 中也實現(xiàn)了一個 TensorFlow Parser 用于解析 TensorFlow 生成的模型文件。PyTorch、MXNET 則需要在訓練的時候將模型文件保存為 ONNX 格式,或者是將原先的模型文件導入框架再保存為 ONNX 格式。當然這些深度學習框架也在跟進對 TensorRT 的支持和整合,比如新的 1.60 版本 MXNET 中已經(jīng)實現(xiàn)了調用 TensorRT 加速推理,但是當前版本只支持 FP16 的推理,還不支持 INT8 推理。當然使用框架內提供的 TensorRT 接口進行加速有其好處,當然也會帶來相應的問題,好處是框架內提供的比較方便,減少轉換等中間過程,但還是不能脫離框架本身,這與統(tǒng)一用推理引擎,脫離深度學習框架本身的出發(fā)點相背道。

② TensorRT 對神經(jīng)網(wǎng)絡中的算子和層的支持

由于我們當前業(yè)務中人臉識別是在 mxnet 框架上實現(xiàn)的,為了實現(xiàn)并對比其在 TensorRT FP32、FP16、INT8 三種模式下的精度損失情況和加速效果。我們首先將原始的 mxnet 格式(.params + .json)模型文件導入到 mxnet 中,然后利用 mxnet 內部的 onnx 接口將模型文件轉換為 onnx 格式。這里需要注意一個問題是 Mxnet 模型導出為 onnx 格式,需要安裝 1.3.0 以上版本的 mxnet,以及對應的組件 onnx 也需要 1.2.1 版本,不過我們測試過 1.3.0 版本的 onnx 也可以。具體可參見 MxNet 的官方教程:Exporting to ONNX format [5]。onnx-1.2.1 版本生成的是 onnx 文件默認 V7 版本的 onnx operator,而 1.3.0 版本 onnx 生成的 onnx 文件支持的是 V8 版本的 onnx operator。不同版本的 onnx operator 對算子的支持是不同的,而且即便是同樣的算子,不同的版本其內部實現(xiàn)方式也可能會不同。不同版本的 TensorRT 對 onnx 的算子支持也不同,mxnet 對 onnx 算子支持可參見: ONNX Operator Coverage[6]。TensorRT 對 onnx 算子支持可參見:Supported ONNX Operators[7] 和 TensorRT-Support-Matrix-Guide[8]。

我們團隊在利用 TensorRT 轉換人臉識別 onnx 模型到 TensorRT 對應的模型文件(.trt)的過程就曾遇到過算子支持的問題。由 mxnet 生成的 onnx 模型文件導入到 TensorRT 之后,一直無法正常的導出 TRT 文件。后來通過調研發(fā)現(xiàn)是 TensorRT 對 Prelu 這個算子的支持模式問題。通過 Netron(神經(jīng)網(wǎng)絡可視化工具)可以清楚的看到這兩種 Prelu 的模式區(qū)別。如圖 13 所示:

其中綠色粗線左邊的 PRelu 是 mxnet 中支持運行的模式,這是 mxnet 導出 onnx 的默認 PRelu 模式。綠色粗線右邊帶有 Reshape 的 PRelu 則是 TensorRT 中支持的模式。為此我們通過手動修改 mxnet 的對應 onnx 轉換的源碼,將導出的 onnx 文件的 Prelu 修改為圖右邊的模式。除此外,團隊里有其他深度學習的任務在轉 onnx 格式時還碰到過如 softmaxactivation、upsampling、crop 等算子的支持問題。除了修改 mxnet 的源碼的解決方式以外,還可以通過修改原始的神經(jīng)網(wǎng)絡結構為支持 TensorRT 的,然后重新進行模型的訓練,但重新調參訓練模型在部分業(yè)務場景下所消耗的時間和精力成本比較大。也可以通過 TensorRT 提供的 plugin 功能來自行實現(xiàn)有些尚未支持的算子和網(wǎng)絡層的解析。

③ 不同的顯卡對計算模式的支持度不同 

由于架構和功能上的差異,不同的顯卡對 FP16、INT8、INT4 的支持,以及相對于 FP32 實際獲得加速效果是不同的,詳見圖 14 的表格所示:

圖 14 中,N/A 表示不支持,2x、4x、8x 分別表示在該模式下相對于 FP32 模式下的加速比為 2 倍、4 倍、8 倍。比如從表中可以看到,Tesla P100 支持 FP32 和 FP16,但是不支持 INT8 和 INT4 加速。而 Tesla P40 則支持 INT8,但是不支持 FP16。在 nvidia 新的圖靈架構 (表中 chip 為 tu102 和 tu104) 卡已經(jīng)完整的支持 FP16、INT8、INT4。

為保證 TensorRT 加速人臉識別的公平性,我們團隊統(tǒng)一在 Tesla T4 上進行 FP32、FP16、INT8 的實驗。另外有一點需要提到的是在不同的型號顯卡上生成的 TensorRT 推理引擎文件 (TRT) 是不能通用的,比如說在 Tesla P40 上面生成的 TRT 文件并不能在 Tesla P100 上運行,反之同理。

3、人臉識別在經(jīng)過 TensorRT 的加速后效果

測試集:由客流云系統(tǒng)前端攝像頭采集的 506 張員工照片;

校準集:LFW,INT8 模式需要校準,F(xiàn)P16 模式無需校準;

測試平臺: Nvidia Tesla T4;

相關設置: 校準 batch size 設置為 64;推理的 batch size 設置為 1,這個與我們實際業(yè)務場景一樣,要求來一張?zhí)幚硪粡?,保證實時返回處理結果。

上面圖 15 所展示的為我們團隊利用 TensorRT 加速人臉識別的推理效果,其中 MX 表示利用 MXNET 框架進行推理,TR 表示利用 TensorRT 進行推理,F(xiàn)P32、FP16、INT8 分別表示對應的推理模式。首先來看藍色柱形部分,以 MX FP32 為基準,在 TensorRT 上以 FP32 的精度來進行推理,其推理速度是 MX FP32 模式下的 1.557 倍,該提速主要是得益于 TensorRT 對神經(jīng)網(wǎng)絡中的層和算子進行相應的融合及優(yōu)化。利用 TensorRT 分別在 FP16 和 INT8 模式下獲得的提速分別是 2.296 倍和 3.185 倍。再看橙色的柱形,TR FP16 和 TR INT8 相對于 TR FP32 的 1.475 倍的加速主要是得益于 FP16 和 INT8 相對于 FP32 計算獲得更加高效的計算以及更高的通過率。INT8 加速的效果是非常喜人的,不僅是速度的提升,以及還有內存上占比的減少,帶來的效果不光是服務的提升,同時也能減少相應的資源成本。

我們的目的是在盡量保持原有精度的情況下獲得提速,經(jīng)過后續(xù)的精度對比實驗,其中 FP16 模式幾乎無精度損失,甚至于部分情況下精度有略微提升,而 INT8 模式的精度損失稍微大了些。為此團隊在綜合考慮之后,擬線上部署 TensorRT FP16 模式加速推理,F(xiàn)P16 模式精度幾乎無損、加速效果可以、使用也比較方便(無需校準),另外 FP16 模式也是 NVIDIA 何琨老師比較推薦的。

四、總結

為了提升客流云的服務速度以及降低相應的服務成本,我們團隊在調研和實驗相關的量化推理加速方案后,利用 TensorRT 在無損精度的情況下將人臉識別服務的推理速度提升為原來的 2.3 倍。統(tǒng)一推理后臺為 TensorRT,同時也為后續(xù)融合多種不同神經(jīng)網(wǎng)絡框架模型帶來可能,也相應的減少了業(yè)務部署上的成本和麻煩。主要需要注意的問題是,神經(jīng)網(wǎng)絡框架、ONNX、TensorRT 對算子的支持,此外一定要結合自身的業(yè)務場景實驗量化推理,保證無損精度的情況下獲得相應的加速,這也為我們后續(xù)加速其他的 AI 服務提供了寶貴經(jīng)驗。 

 

責任編輯:龐桂玉 來源: AI前線
相關推薦

2021-05-10 11:08:00

人工智能人臉識別

2021-07-01 09:32:14

人臉識別AI人工智能

2021-03-09 09:20:09

人臉識別人工智能智能手機

2022-10-20 09:33:35

2020-12-22 21:57:39

人臉識別AI人工智能

2021-03-23 12:13:02

人臉識別人工智能技術

2021-12-07 23:00:55

人臉識別安全技術

2020-11-18 09:43:29

人臉識別AI人工智能

2023-11-14 08:38:43

Golang人臉識別

2021-02-03 14:43:40

人工智能人臉識別

2022-02-18 14:29:43

人臉識別隱私人工智能

2015-05-14 14:03:22

Face++人臉識別

2024-09-30 06:04:02

人臉識別Python機器學習

2020-11-06 18:55:56

人臉識別刷臉安全

2022-10-31 08:47:21

人臉識別按鍵鍵盤

2021-08-26 10:36:02

人臉識別人工智能技術

2024-06-12 12:57:12

2021-03-10 17:22:01

人臉識別人工智能數(shù)據(jù)

2019-05-20 13:00:00

人臉識別人工智能AI

2021-08-06 09:30:34

人工智能AI人臉識別
點贊
收藏

51CTO技術棧公眾號