大俠好,歡迎來到FPGA技術(shù)江湖,江湖偌大,相見即是緣分。大俠可以關(guān)注FPGA技術(shù)江湖,在“闖蕩江湖”、"行俠仗義"欄里獲取其他感興趣的資源,或者一起煮酒言歡?!爸缶蒲詺g”進入IC技術(shù)圈,這里有近50個IC技術(shù)公眾號。
第一部分 設(shè)計概述(Design Introduction)
1.1?設(shè)計目的
近年來隨著機器學(xué)習(xí)等技術(shù)的發(fā)展,人工智能在圖像識別、語音處理等方面的能力不斷增強、應(yīng)用范圍不斷擴大,這極大的方便了人們的生活。然而隨之帶來的安全問題也變得越來越不可忽視。
鑒于此,我們決定采用 Xilinx 的 PYNQ-Z2 開發(fā)板,將 FPGA 高度并行化的特點與人工智能安全相結(jié)合,設(shè)計了一種具有實時人臉偽造能力的視頻采集設(shè)備。目的在于對視頻 數(shù)據(jù)進行有針對性的偽造,協(xié)助安全系統(tǒng)的評估與改進。相較于傳統(tǒng)的基于軟件實現(xiàn)的人臉偽造系統(tǒng),采用FPGA,功耗與成本較低,實時性較高,偽造結(jié)果真實,并且隱蔽性更高。對安全系統(tǒng)的性能具有更大的挑戰(zhàn),更有助于安全系統(tǒng)的測試。
1.2 應(yīng)用領(lǐng)域
本作品的應(yīng)用前景十分廣泛,例如在人臉支付領(lǐng)域,可以對現(xiàn)有的人臉識別系統(tǒng)進行 測試,輔助找出人臉識別系統(tǒng)的漏洞,進而提高人臉識別系統(tǒng)的穩(wěn)定性與可靠性。如果利用在會議視頻中,可以協(xié)助會議平臺完善對參會者的身份驗證的系統(tǒng),防止出現(xiàn)利用參會者的照片、視頻信息冒名頂替的行為。
1.3 主要技術(shù)特點
(1)總體采用 Deepfake 框架,本質(zhì)是由一套人臉識別、合成、融合構(gòu)成的技術(shù)框架,屬 于圖像模型在軟硬件結(jié)合的深度學(xué)習(xí)中的應(yīng)用。
(2)軟件端的算法設(shè)計包括錨框、人臉特征檢測、點云匹配、DeepFake Module、泊松融合、前后景融合、邊緣膨脹等技術(shù)。
(3)硬件端的相關(guān)層采用 Xilinx 開發(fā)的神經(jīng)網(wǎng)絡(luò)加速 IP 核 DPU,同時結(jié)合 Vitis AI 對神經(jīng)網(wǎng)絡(luò)模型進行壓縮優(yōu)化編譯,轉(zhuǎn)換成可供 FPGA 使用的神經(jīng)網(wǎng)絡(luò)模型。
1.4 關(guān)鍵性能指標(biāo)
(1)延遲:使用 DeepFake 后的延遲約為 270ms。
(2) 幀率:在 640×360 的分辨率下,經(jīng)過 DeepFake 后的 FPGA 輸出的幀率約為 4fps。
1.5 主要創(chuàng)新點
(1)采用軟硬件結(jié)合的方式來實現(xiàn) Deepfake 框架,相較于傳統(tǒng)采用 GPU 加速的方式具有功耗低、體積小、成本低的特點。
(2)對 Deepfake 算法進行了優(yōu)化,一方面圖像信息存儲采用 int8 數(shù)據(jù)類型,激活函數(shù)采用計算更快的 ReLU。另一方面對輸入輸出矩陣的維度進行調(diào)整。這些優(yōu)化對算法速度有很大提升。
(3)完成可配置性的設(shè)計,一方面從硬件角度采用多種視頻流的接入方式(硬件攝像頭/ 網(wǎng)絡(luò)攝像頭),另一方面在算法的圖像融合部分設(shè)計了兩種不同的算法。這些設(shè)計可以適應(yīng)不同處理質(zhì)量、實時性和應(yīng)用場景的要求。
第二部分 系統(tǒng)組成及功能說明 (System Construction & Function Description)
2.1 系統(tǒng)介紹
本系統(tǒng)由 Xilinx Zynq-7000 系列的 PYNQ-Z2 開發(fā)板作為主控中心,主要包含攝像頭 (視頻)采集模塊、圖像處理模塊、數(shù)據(jù)處理終端??傮w結(jié)構(gòu)如圖 1 所示,圖像處理結(jié)構(gòu)如圖 2 所示。
系統(tǒng)流程圖說明:
由攝像頭獲取人物實時的圖片信息,傳送給 PYNQ-Z2 開發(fā)板,并在 PYNQ-Z2 中采用 神經(jīng)網(wǎng)絡(luò)模型對圖像進行處理。最后將處理結(jié)果返回到上位機終端,實現(xiàn)真假人臉的轉(zhuǎn)換。
圖像處理算法部分說明:
首先進行幀截取,將動態(tài)視頻流轉(zhuǎn)換成靜態(tài)幀。通過錨框?qū)⑷砣讼竦娜四槻糠纸厝〕鰜恚偻ㄟ^人臉特征檢測提取出人臉的特征。再提取出特征之后,采用點云匹配算法完成整個人臉的對齊,而后直接使用 Deepfake Module 換掉對齊后的人臉,再通過點云匹配將換后的人臉對齊。然后采用泊松融合或者前后景+邊緣膨脹的方式將人臉還原到靜態(tài)圖片幀(具體采用哪種取決于算力與實時性的要求),最終將靜態(tài)圖片幀還原到視頻流中。
2.2 硬件模塊介紹
2.2.1 FPGA 開發(fā)板
本系統(tǒng)主要采用 Xilinx Zynq-7000 的 PYNQ-Z2 開發(fā)板作為主控中心。從硬件方面上, 該開發(fā)板采用 FPGA+ARM 的雙處理架構(gòu),擁有采用 Cortex-A9 雙核處理器的 ARM 芯片, 主頻可以達(dá)到 650MHz,同時還有快速的 Block RAM 芯片,速度可以達(dá)到 630KB。從軟件方面上,Xilinx 提供大量的 Python API,同時提供深度學(xué)習(xí)相關(guān)的 IP 核 DPU 以及相應(yīng)的配套軟件 Vitis AI,可以快速部署相應(yīng)的深度學(xué)習(xí)模型。
2.2.2 視頻采集模塊
該模塊采用羅技的 C270 高清攝像頭。攝像頭采用 USB 2.0 接口,內(nèi)置麥克風(fēng),同時免驅(qū)動。捕獲畫面最大可達(dá)到 1280×720。使用較為簡便,并且可以達(dá)到本項目的要求,因此十分適合在該項目中使用。
2.2.3 FPGA 硬件 IP 核 DPU
DPU 的詳細(xì)硬件架構(gòu)如圖 5 所示。啟動時,DPU 獲取片內(nèi)存儲器中的指令來控制計算引擎的運行。這些指令是由 Vitis AI 編譯器生成的,并且在編譯時進行了很多優(yōu)化。片上存儲器用于緩沖輸入,中間和輸出數(shù)據(jù),以實現(xiàn)高吞吐量和處理效率。DPU 中的數(shù)據(jù)均盡可能重復(fù)使用來減少內(nèi)存帶寬并且使用基于深度流水線設(shè)計的計算引擎。處理元件(PE) 充分利用了 Xilinx 器件中的細(xì)粒度構(gòu)造塊,例如多路復(fù)用器,加法器和累加器等。
同樣的這里給出 DPU 的端口圖如圖 6 所示,端口的詳細(xì)類型、數(shù)據(jù)位寬、I/O 類型以及簡單的描述在圖 7 中。
2.3 圖像處理算法介紹
2.3.1 視頻流接入的設(shè)計
考慮到可能的不同情境,我們?yōu)榇嗽O(shè)計了兩種視頻流的接入方式。一種是采用 USB 在安裝好攝像頭驅(qū)動的 PYNQ 開發(fā)板上直接插入攝像頭(PYNQ 直接處理),另一種方式是采用網(wǎng)絡(luò)攝像頭的網(wǎng)絡(luò)傳輸接入方式(PYNQ 作為加速器)。網(wǎng)絡(luò)攝像頭采用 Python 中的 socket 庫進行開發(fā),可以完成視頻流的接收與轉(zhuǎn)發(fā)。USB 方式和網(wǎng)絡(luò)攝像頭方式可以分別適應(yīng)遠(yuǎn)程與近程兩種控制模式。
2.3.2 錨框+人臉特征檢測
錨框部分:
錨框部分是我們對整體Deepfake框架的第一次優(yōu)化,因此這里首先對算法的選擇進行說明。最開始時考慮使用OpenCV中內(nèi)置的機器學(xué)習(xí)函數(shù)庫HaarCascade。OpenCV中有Haar 級聯(lián)分類器,通過分析對比相鄰圖像區(qū)域來判斷給定圖像或者圖像區(qū)域與已知對象是否匹 配??梢詫⒍鄠€Haar級聯(lián)分類器組合起來,每個分類器負(fù)責(zé)匹配一個特征區(qū)域(比如眼 睛),然后進行總體識別。也可以一個分類器進行整體區(qū)域識別(比如人臉),其他分類器可識別小的部分(比如眼睛)等。但是Opencv提供的Haar級聯(lián)分類器和跟蹤器并不具有旋轉(zhuǎn)不變性,也就是說無法較好的識別側(cè)臉。而且只有將輸入圖片的尺寸設(shè)計在64×64時才 能將時間控制在40ms以下。此時的識別效果很差,故舍棄該方法。接下來采用opencv中的dnn函數(shù)對基于mobilenet-ssd 網(wǎng)絡(luò)設(shè)計的人臉檢測模型進行推理。雖然此時的識別率較高并且清晰度也較好,但是耗時大約為300ms,時間極長,也放棄了該方法。因此,最后考慮使用Densebox方法來錨框。
DenseBox 目標(biāo)檢測算法是一個集成的 FCN 框架,并且不需要生成 proposal,在訓(xùn)練過程中也可以達(dá)到最優(yōu)。與現(xiàn)存的基于滑動窗的 FCN 的檢測框架相類似,DenseBox 更偏重于小目標(biāo)及較為模糊目標(biāo)的檢測,比較適合對人臉的檢測。整體流程如圖 10 所示。
單一的卷積網(wǎng)絡(luò)同時輸出不同的預(yù)測框及類別分?jǐn)?shù)。DenseBox 中的所有目標(biāo)檢測模塊 都為全卷積網(wǎng)絡(luò)結(jié)構(gòu),除了 NMS 處理部分,因此沒有必要生成 proposal。人臉錨框時,輸 入圖片大小為?? × ?? × 3,輸出為??/4 × ??/4 × 5。將目標(biāo)邊界框左上角及右下角的點的坐標(biāo)域定 義為???? = (???? , ????)及???? = (????, ????),則第 i 個位置的像素的輸出就可以用一個 5 維向量描述
其中s^代表識別到是目標(biāo)的分?jǐn)?shù),剩余幾個變量代表輸出像素位置與真實邊框之間的距離。最后對帶有邊框及類別分?jǐn)?shù)的框進行 NMS 處理。其中 NMS(非極大值抑制)就是抑制不是極大值的元素,可以理解為局部最大搜索。這個局部代表一個兩參數(shù)可變的鄰域,一是鄰域的維數(shù),二是鄰域的大小。這個操作的目的實際上就是將重疊框最后減少到 只有一個框。
在具體的工程實現(xiàn)中,在權(quán)衡實時性、圖片質(zhì)量等多個因素之后,我們采用 320× 320 × 3的輸入和 80× 80 × 4與 80× 80 × 2的輸出。其中 80× 80 × 4的輸出是每個框的左上角和右下角坐標(biāo)。80× 80 × 2的輸出是每個框是人臉的概率和不是人臉的概率。注意這里比上面的算法流程中多出一維,是因為將是人臉和不是人臉的概率均輸出出來了, 而算法流程中僅輸出是人臉的概率。最后在 DPU 的 IP 核上運行該算法,每檢測一張人臉的耗時為 43ms。較好的平衡了計算耗時與計算效果。具體在這個工程中的網(wǎng)絡(luò)結(jié)構(gòu)如圖 11 所示。
人臉特征檢測部分:
該部分網(wǎng)絡(luò)結(jié)構(gòu)的思想來自 VanillaCNN,為了更好的匹配 FPGA 的特點和處理要求, 這里將原網(wǎng)絡(luò)調(diào)整成新的 98 個關(guān)鍵點的 landmark 網(wǎng)絡(luò)。98 landmark 這個網(wǎng)絡(luò)是專門為 DPU 計算設(shè)計的,因為 DPU 不支持 tanh 函數(shù)和絕對值單元,這里采用 ReLU 作為激活函 數(shù)。ReLU 的計算成本比較低,并且由于激活函數(shù)大部分的梯度為 0,因此訓(xùn)練的速度也更快。多次訓(xùn)練該網(wǎng)絡(luò),最后能將網(wǎng)絡(luò)的測試損失從 0.022 減少到 0.019。同時為了提高該神經(jīng)網(wǎng)絡(luò)的空間分辨率,這里采用擴張卷積替換了原始算法中的池化層,這一步將網(wǎng)絡(luò)的測試損耗從 0.019 降低到 0.011。原始算法中僅能進行 5 個特征的標(biāo)注,這在 Deepfake 框架 后面的換臉中明顯是不夠用的,因此這里將特征的標(biāo)注數(shù)量從 5 個增長到 98 個。相應(yīng)的, 網(wǎng)絡(luò)的輸入層從原輸入40 × 40 Pixels 變?yōu)?0 × 80 Pixels,輸出層由原來 10 輸出的全連接層修改成 196 輸出的全連接層,其中 98 個 x 坐標(biāo)和 98 個 y 坐標(biāo)。具體的網(wǎng)絡(luò)結(jié)構(gòu)如圖 12 所示。最終采用這個網(wǎng)絡(luò)標(biāo)注一張臉花費的時間約為 7ms。
2.3.3 人臉對齊
Umeyama 是一種點云匹配算法,是將源點云變換到目標(biāo)點云的相同坐標(biāo)系下,包含了 常見的矩陣變換和 SVD 的分解過程。算法的核心在于使變換前后兩組點之間的均方距離最小。具體來說就是對兩組均為 d 維的點集 A 和 B(各包含 n 個樣本點),假定點集 A 的均值為????,均方差為????,點集 B 的均值為????,均方差為????,點集 A 與點集 B 之間的協(xié)方差
則兩組點之間的均方距離用下式表示:
定義矩陣 S 為
當(dāng)協(xié)方差矩陣的秩恰為d-1時對 S 進行修改
對協(xié)方差矩陣進行 SVD 分解得到
當(dāng)協(xié)方差矩陣的秩不小于d-1的時候參數(shù)表示如下
通過該算法就可以將已經(jīng)標(biāo)記好的人臉特征進行標(biāo)準(zhǔn)化旋轉(zhuǎn),方便下面在對應(yīng)位置直接進行換臉。
2.3.4 DeepFake Model
網(wǎng)絡(luò)總體采用 Encoder – Decoder 的形式。網(wǎng)絡(luò)由一個 Encoder 和兩個 Decoder 組成,兩個 Decoder 分別對應(yīng)換臉人照片和換臉對象照片的解碼。其中 Encoder – Decoder 的網(wǎng)絡(luò)結(jié)構(gòu)如圖 13 和圖 14 所示。
這里涉及到對 Deepfake 框架優(yōu)化的第二點,相比于在 CPU 和 GPU 上運行的該框架的算法,這里為更好適應(yīng) FPGA 的特點對網(wǎng)絡(luò)結(jié)構(gòu)進行了重建。具體的網(wǎng)絡(luò)實現(xiàn)如圖 15 和 圖 16 所示。
相比于原始算法中的網(wǎng)絡(luò)結(jié)構(gòu),新的網(wǎng)絡(luò)結(jié)構(gòu)將中間 Flatten 的步驟刪去。在 Encoder 中采用卷積與激活函數(shù)結(jié)合的方式,取 leak 值為 0.1,并且保證每次讓區(qū)域的長和寬減小為原來的二倍,讓區(qū)域的深度增長到原來的二倍。在 Decoder 中在卷積與激活函數(shù)后面加上上采樣的過程,每次卷積將深度減為原來的一半,每次上采樣將區(qū)域的長和寬增長到原來的兩倍。
2.3.5 調(diào)色
考慮到訓(xùn)練時換臉人與換臉對象的數(shù)據(jù)集可能在拍攝時處在不同的光線條件下,或者換臉人與換臉對象的膚色本身存在一定的差異。因此這里為了保證能更好的融合換臉人和被換臉對象的面部,提前進行調(diào)色。假定換臉人人臉的圖像矩陣為 A,換臉對象的人臉圖像矩陣為 B,調(diào)色后的人臉圖像矩陣為 C,則有如下關(guān)系:
后面的融合部分采用這個調(diào)色后的圖像。
2.3.6 融合內(nèi)核
考慮到該項目的實時性要求與 FPGA 有限的計算資源之間的矛盾,這里提供兩種融合內(nèi)核。根據(jù)不同的計算資源與實時性的要求,在項目中可以采用不同的內(nèi)核。方案 A 是泊松融合內(nèi)核,方案 B 是前后景+邊緣膨脹的內(nèi)核??偟膩碚f第二種比第一種的融合效果稍差,但是計算的速度更快,因此實時性更好。
方案 A 泊松融合
假定有待克隆的圖像區(qū)域 g,還有一張背景圖片 S,泊松融合能將圖像 g 自然融合到背景圖片 S 中。其中??與?? ?代表對應(yīng)區(qū)域的像素值,v 是原圖像的梯度場, 是原圖, 是邊界。實際上就是求下面的式子的最小值。
而這個最小值的解實際對應(yīng)泊松等式的解:
對應(yīng)的算法流程如下:
Step 1:計算圖像 g 的梯度場 v 和背景圖片和融合圖像的梯度場。
Step 2:求解融合圖像的散度場即 Laplace 坐標(biāo)。
Step 3:用這個 Laplace 坐標(biāo)和原圖求解泊松等式。
方案 B 前后景+邊緣膨脹融合前后景的方法如下:
Step1:創(chuàng)建需要替換人臉的區(qū)域并轉(zhuǎn)為灰度圖片,并通過灰度設(shè)置閾值對比,建立 mask 區(qū)域。
Step2:?分別對需要替換人臉的區(qū)域和用來替換的人臉進行掩膜保護,留下需要的圖片。
Step3:將人臉區(qū)域和用來替換的人臉進行合并。?邊緣膨脹:?為了保證融合后的邊緣過渡的更加自然,這里采用邊緣膨脹進行邊緣的完善。?定義像素點的膨脹范圍卷積核如下
指定范圍為9 × 9的矩陣,表示每個像素點的膨脹范圍,對原圖像進行卷積操作就可以完成 邊緣膨脹。
2.4 Python 算法與 FPGA 結(jié)合的流程
由于這個項目采用的是神經(jīng)網(wǎng)絡(luò)、Python 與 FPGA 的聯(lián)合開發(fā),因此這里有必要對文件在 Vitis AI、DNNDK 中的綜合以及在 DPU 中的調(diào)用流程進行一定的說明。?文件的綜合:
對于采用 TensorFlow 編寫的神經(jīng)網(wǎng)絡(luò),首先要生成 frozen_float.pb 文件,然后對該文件進行量化生成 deploy_model.pb 文件。對于采用 caffe 編寫的神經(jīng)網(wǎng)絡(luò),首先要生成 float. caffemodel 以及 float.prototxt 文件,然后對這些文件進行量化生成 deploy.prototxt 以及 deploy.caffemodel 文件。在生成上面的文件后,使用 dnnc 工具將上面的文件轉(zhuǎn)換成 model.elf 文件,通過鏈接生成對應(yīng)的 libdpumodel.so 文件,然后就可以在 PYNQ 中直接調(diào)用了。
文件的調(diào)用:
在程序開始時調(diào)用 dpuOpen 打開 DPU,然后調(diào)用 dpuLoadKernal 將先前綜合好的網(wǎng)絡(luò)模型加載到 DPU 中。調(diào)用 dpuCreateTask 為該網(wǎng)絡(luò)模型創(chuàng)建一個任務(wù),同時調(diào)用 dpuRunTask 運行這個網(wǎng)絡(luò)模型。當(dāng)這個模型計算完成后,調(diào)用 dpuDestroyKernel 釋放這個 DPU 內(nèi)核。最后當(dāng)全部的計算完成后,調(diào)用 dpuClose 關(guān)閉整個 DPU。
第三部分 完成情況及性能參數(shù)(Final Design & Performance Parameters)
3.1 FPGA 資源消耗
3.1.1 硬件加速
通過 vivado 搭建了神經(jīng)網(wǎng)絡(luò)加速的底層 IP 核,vivado 生成的 Block Design,如圖 18 所示。圖中展示了各 IP 之間的連接關(guān)系和數(shù)據(jù)流的傳輸過程。
3.1.2 DPU 的設(shè)置
如圖 19 所示,底層采用單一的 DPU 核,并選取 B1152 的 DPU 架構(gòu)。使用較少的 RAM 并允許通道增強、允許帶有維度信息的卷積和平均池化操作,選擇的激活函數(shù)為ReLU 類。因為 PYNQ 的 DPU 不支持 softmax,因此這里不選用 softmax,softmax 的計算在 ARM 的內(nèi)核中實現(xiàn)。
3.1.3 系統(tǒng)資源消耗
如圖 20 所示,系統(tǒng)目前 LUT 占用 68%,BRAM 占用 88%,DSP 占用 96%,F(xiàn)F 占用 59%。
3.2 圖像處理網(wǎng)絡(luò)模型資源占用情況
3.2.1 DenseBox 網(wǎng)絡(luò)的資源消耗
可以看到 DenseBox 網(wǎng)絡(luò)代碼大小為 0.09MB,參數(shù)占用大約 0.50MB,乘加操作 485.38 百萬次/秒,IO 存儲占 0.49MB。
3.2.2 LandMark 網(wǎng)絡(luò)的資源消耗
可以看到 LandMark 網(wǎng)絡(luò)代碼大小為 0.04MB,參數(shù)占用大約 0.77MB,乘加操作 43.46 百萬次/秒,IO 存儲占 0.12MB。
3.2.3 DeepFake 網(wǎng)絡(luò)的資源消耗
可以看到 DeepFake 網(wǎng)絡(luò)代碼大小為 0.15MB,參數(shù)占用大約 28.64MB,乘加操作 4415.42 百萬次/秒,IO 存儲占 0.57MB。
3.3 圖像處理算法各步驟的結(jié)果
首先從視頻流中截取出靜態(tài)圖,如圖 24 所示
然后經(jīng)過錨框與人臉特征檢測處理,處理結(jié)果如圖 25 所示
在上面處理的基礎(chǔ)上經(jīng)過點云變換和 DeepFake Model 產(chǎn)生換完臉后的圖,同時這里要對換完的臉再次進行特征提取,這幾步操作結(jié)果分別如圖 26 和圖 27 所示。
最后采用泊松融合或者前后景+邊緣膨脹后接調(diào)色+點云匹配的方式將換完的人臉融合到被換臉人的臉上,就可以得到最終的換臉結(jié)果如圖 28 所示。
3.4 n2cube 的數(shù)據(jù)讀取 API 優(yōu)化
最初開發(fā)中,我們使用 DPU 在 Python 的 n2cube API 上進行開發(fā),但是在模型推理結(jié)束,讀取模型結(jié)構(gòu)到內(nèi)存的過程中我們發(fā)現(xiàn) n2cube.dpuGetOutputTensorInXXX 這幾個 API 函數(shù)具有較大的性能瓶頸。在讀取 Densebox 的80 × 80 × 4 + 80 × 80 × 2的 int8 的結(jié)果時耗時接近 300ms,遠(yuǎn)不能滿足實時性的要求。因此我們著手對這幾個讀取數(shù)據(jù)的 API 接口進行優(yōu)化,具體的優(yōu)化和每步的耗時如圖 29 和圖 30 所示。
可以看出,優(yōu)化后的 API 接口在相同數(shù)據(jù)長度的條件下處理耗時要少得多。通過測試,優(yōu)化后的算法比優(yōu)化前的算法快約 30 倍。
第四部分 總結(jié)(Conclusions)
4.1?可擴展之處
(1)從算力角度上講:?由于 PYNQ-Z2 的計算能力有限,因此一方面視頻處理的實時性和效果存在一定的局限性,另一方面無法同時處理音頻與視頻。之后考慮可以采用算力更高的 Ultra96 開發(fā)板進 行音視頻的協(xié)同 DeepFake,或者采用 FPGA 陣列提高單位時間內(nèi)的處理能力,甚至在云端接入 GPU,將 FPGA 作為實體輸入,加速深度網(wǎng)絡(luò)的計算。
(2)從算法角度講:?這里采用的 DeepFake Model 相對比較簡單,僅使用了類似 Unet 的 Encoder-Decoder 模型,圖像處理的質(zhì)量存在較大的改進空間,這里可以考慮在算力有了一定提升的基礎(chǔ)上在 計算損失函數(shù)時增加 GAN 的處理部分,提高圖像處理的質(zhì)量。