Vijesti o Tehnologiji, Recenzije i Savjeti!

Vodič prema brzom, preciznom i stabilnom okviru 3D Dense Face Alignment (3DDFA-V2)

Napomena: Sljedeći članak će vam pomoći: Vodič prema brzom, preciznom i stabilnom okviru 3D Dense Face Alignment (3DDFA-V2)

3D gusto poravnanje lica (3DDFA) je tehnika u trendu za mnoge zadatke lica, Na primjer, prepoznavanje objekata, animacija, praćenje, restauracija slike i još mnogo toga. Za sada je većina studija u 3DDFA podijeljena u dvije kategorije:

    Regresija parametara 3D Morphable Model (3DMM) i regresija gustih vrhova.

Sada postojeća metoda 3D gustog poravnanja lica fokusira se samo na točnost, što ograničava opseg njihove praktične primjene. U prethodnim implementacijama 3DDFA postojao je veliki problem s točnošću i zaključkom izlaza, ali novi 3DdFA_V2(verzija 2.) osmislio je novi regresijski okvir koji čini pouzdanu ravnotežu između točnosti, brzine i stabilnosti. 3DDFA_V2 objavili su Jianzhu Guo, Xiangyu Zhu, Yang Yang, Fan Yang, Zhen Lei i Stan Z. Li u istraživačkom radu pod nazivom Towards Fast, Accurate and Stable

3D Dense Face Alignment Nova okosnica ovog okvira vrlo je lagana, a njegov izvorni kod dostupan je na GitHubu ovdje. Repozitorij je u vlasništvu Jianzhu Guo. Istraživanje je prihvatio ECCV 2020

3DDFA_V2 (3D gusto poravnanje lica – verzija 2)

To je poboljšana verzija prethodnih implementacija 3DDFA-e koja se sada zove 3DDFA_V2, postigla je obećavajuću brzinu, točnost i stabilnost također uključivanjem FaceBoxesa za brzo otkrivanje lica umjesto Dliba. Uveo je novu strategiju optimizacije meta-zgloba za dinamičku regresiju malog skupa 3DMM parametara, također za daljnje poboljšanje stabilnosti modela na metodi virtualne sinteze autora videozapisa za pretvaranje jedne slike u kratki video koji integrira u ravnini i izvan -of-plane lice koje se kreće.

    Radi preko 50 sličica u sekundi (19,2 ms) na jednom CPUC-u, može doseći i do 130 slika u sekundi (7.2ms) na više CPU (i5-8259U) jezgri. 24 puta je brži od PRNet-a. To je dinamičnije optimizirana tehnika koja iskorištava 3DMM parametar kroz novu strategiju metaoptimizacije.

Arhitektura

3DDFA_V2 arhitektura sastoji se od četiri dijela:

    Lagana temeljna MobileNet arhitektura za predviđanja 3DMM parametaraMeta zajednička optimizacija fWPDC i VDC. Značajna regresijska regulacija Sinteza kratkog videa za bolju obuku.

Kako bi se smanjio računski teret, regresijska grana orijentira se odbacuje tijekom zaključivanja.

Provedba

Da bismo vidjeli rezultate koristit ćemo demonstraciju Google Colaba, prvo ćemo klonirati 3DDFA_V2 repo, a zatim ćemo postaviti okruženje. Prijeđimo odmah na kod:

Kloniranje i postavljanje okruženja

%cd /content !git klon https://github.com/cleardusk/3DDFA_V2.git %cd 3DDFA_V2 !sh ./build.sh

Uvoz modula

uvoz cv2 uvoz yaml iz FaceBoxes uvoz FaceBoxes iz TDDFA uvoz TDDFA iz utils.render uvoz render iz utils.depth uvoz dubina iz utils.pncc uvoz pncc iz utils.uv uvoz uv_tex iz utils.pose uvoz viz_pose iz utils.serialization uvoz ser_to_ply, ser_to_obj iz utils.functions import draw_landmarks, get_suffix import matplotlib.pyplot as plt from skimage import io

Učitaj 3DDFA konfiguracije

Omogućit će ONNX okruženju da ubrza proces, što je zadana okosnica arhitekture MobileNet_V1 s veličinom unosa 120×120 i zadanim unaprijed obučenim težina/mb1_120x120.pthtakođer postoji još jedan širi čimbenik koji je dostupan jer ovaj projekt nudi dva modela mobilne mreže na izbor.

Model Ulazni #Parametri #Macovi Zaključivanje (TF)
MobileNet 120×120 3.27M 183.5M ~6.2ms
MobileNet x0.5 120×120 0.85M 49.5M ~2.9 ms

3DDFA podržani modeli

cfg = yaml.load(open(‘configs/mb1_120x120.yml’), Loader=yaml.SafeLoader) onnx_flag = True # True za korištenje ONNX-a za ubrzavanje ako onnx_flag: !pip instaliraj onnxruntime import os os.environ[‘KMP_DUPLICATE_LIB_OK’] = ‘Istina’ os.environ[‘OMP_NUM_THREADS’] = ‘4’ from FaceBoxes.FaceBoxes_ONNX import FaceBoxes_ONNX from TDDFA_ONNX import TDDFA_ONNX face_boxes = FaceBoxes_ONNX() tddfa = TDDFA_ONNX(**cfg) else: face_boxes = FaceBoxes() tddfa = TDDFA(gpu_mode=False, **cfg)

Testiranje

Prvo snimimo bilo koju sliku koju želite

img_url=”https://photovideocreative.com/wordpress/wp-content/uploads/2017/12/Angles-de-prise-de-vue-horizontal-contreplong%C3%A9-et-plong%C3%A9.jpg ” img = io.imread(img_url) plt.imshow(img) img = img[…, ::-1] # RGB -> BGR

Vodič prema brzom, preciznom i stabilnom okviru 3D Dense Face Alignment (3DDFA-V2) 1

Prepoznavanje lica pomoću FaceBoxa

Modul FaceBoxes modificiran je iz FaceBoxes.PyTorch. Postoji neki prethodni rad na 3DDFA ili su dostupne rekonstrukcije kao što su: 3DDFA, face3d, PRNet.

boxes = face_boxes(img) print(f’Detect {len(boxes)} faces’) print(boxes) #Regresija 3DMM parametara, rekonstrukcija i vizualizacija param_lst, roi_box_lst = tddfa(img, boxes)

Rekonstrukcija vrhova i vizualizacija rijetkih orijentira pomoću 3DDFA

dense_flag = False ver_lst = tddfa.recon_vers(param_lst, roi_box_lst, dense_flag=dense_flag) draw_landmarks(img, ver_lst, dense_flag=dense_flag)

Vodič prema brzom, preciznom i stabilnom okviru 3D Dense Face Alignment (3DDFA-V2) 2

Rekonstrukcija vrhova i vizualizacija gustih orijentira

dense_flag = True ver_lst = tddfa.recon_vers(param_lst, roi_box_lst, dense_flag=dense_flag) draw_landmarks(img, ver_lst, dense_flag=dense_flag)

Vodič prema brzom, preciznom i stabilnom okviru 3D Dense Face Alignment (3DDFA-V2) 3

Rekonstrukcija vrhova i renderiranje

ver_lst = tddfa.recon_vers(param_lst, roi_box_lst, dense_flag=dense_flag) render(img, ver_lst, tddfa.tri, alpha=0.6show_flag=Istina);

Vodič prema brzom, preciznom i stabilnom okviru 3D Dense Face Alignment (3DDFA-V2) 4

Rekonstrukcija vrhova i prikaz pncc

ver_lst = tddfa.recon_vers(param_lst, roi_box_lst, dense_flag=dense_flag) pncc(img, ver_lst, tddfa.tri, show_flag=True);

Vodič prema brzom, preciznom i stabilnom okviru 3D Dense Face Alignment (3DDFA-V2) 5

Pokretanje na Video

python3 demo_video.py -f examples/inputs/videos/214.avi –onnx

demo 3ddfa

Zaključak

Ovaj novi pristup za stabilnije, brže i točnije 3D Dense Face poravnanje zapravo je novi način obuke i zaključivanja podataka o licu. U Colabu kodu je potrebno gotovo nekoliko sekundi da se pokrene. samo zbog lagane mobinet arhitekture, iznenađujuće je latencija onnxruntimea također bila mnogo manja na CPU-u, za više možete slijediti resurse u nastavku: