Udhëzues për stilizimin e fytyrës për Android

Detyra MediaPipe Face Stylizer ju lejon të aplikoni stilizime të fytyrës tek fytyrat në një imazh. Ju mund ta përdorni këtë detyrë për të krijuar avatarë virtualë në stile të ndryshme.

Shembulli i kodit i përshkruar në këto udhëzime është i disponueshëm në GitHub . Për më shumë informacion rreth aftësive, modeleve dhe opsioneve të konfigurimit të kësaj detyre, shihni Përmbledhjen .

Shembull kodi

Kodi i shembullit të MediaPipe Tasks është një zbatim bazë i një aplikacioni Face Stylizer për Android. Shembulli zbaton stilizimin e fytyrës për imazhet e ofruara në aplikacion.

Mund ta përdorni aplikacionin si pikënisje për aplikacionin tuaj Android ose t'i referoheni kur modifikoni një aplikacion ekzistues. Kodi i shembullit të Face Stylizer gjendet në GitHub .

Shkarkoni kodin

Udhëzimet e mëposhtme ju tregojnë se si të krijoni një kopje lokale të kodit shembull duke përdorur mjetin e linjës së komandës git .

Për të shkarkuar kodin shembull:

  1. Klononi depon e git duke përdorur komandën e mëposhtme:
    git clone https://github.com/google-ai-edge/mediapipe-samples
    
  2. Opsionale, konfiguroni shembullin tuaj të git për të përdorur arkëtimin e rrallë, në mënyrë që të keni vetëm skedarët për shembullin e aplikacionit Face Stylizer:
    cd mediapipe
    git sparse-checkout init --cone
    git sparse-checkout set examples/face_stylization/android
    

Pas krijimit të një versioni lokal të kodit shembull, mund ta importoni projektin në Android Studio dhe të ekzekutoni aplikacionin. Për udhëzime, shihni Udhëzuesin e konfigurimit për Android .

Komponentët kryesorë

Skedarët e mëposhtëm përmbajnë kodin vendimtar për këtë aplikacion shembulli të stilizimit të fytyrës:

Konfigurimi

Ky seksion përshkruan hapat kryesorë për konfigurimin e mjedisit tuaj të zhvillimit dhe projekteve të kodit në mënyrë specifike për të përdorur Face Stylizer. Për informacion të përgjithshëm mbi konfigurimin e mjedisit tuaj të zhvillimit për përdorimin e detyrave të MediaPipe, duke përfshirë kërkesat e versionit të platformës, shihni udhëzuesin e konfigurimit për Android .

varësitë

Detyra Face Stylizer përdor bibliotekën com.google.mediapipe:tasks-vision . Shtoni këtë varësi në skedarin build.gradle të aplikacionit tuaj Android:

dependencies {
    implementation 'com.google.mediapipe:tasks-vision:latest.release'
}

Model

Detyra MediaPipe Face Stylizer kërkon një paketë modeli të trajnuar që është në përputhje me këtë detyrë. Për më shumë informacion mbi modelet e disponueshme të trajnuara për Face Stylizer, shihni seksionin Modelet e përmbledhjes së detyrave.

Zgjidhni dhe shkarkoni modelin dhe ruajeni në direktorinë e projektit tuaj:

<dev-project-root>/src/main/assets

Specifikoni shtegun e modelit brenda parametrit ModelAssetPath .

val modelName = "https://storage.googleapis.com/mediapipe-models/face_stylizer/blaze_face_stylizer/float32/latest/face_stylizer_color_sketch.task"
baseOptionsBuilder.setModelAssetPath(modelName)

Krijo detyrën

Detyra MediaPipe Face Stylizer përdor funksionin createFromOptions() për të konfiguruar detyrën. Funksioni createFromOptions() pranon vlerat për opsionet e konfigurimit. Për më shumë informacion mbi opsionet e konfigurimit, shihni Opsionet e konfigurimit .

val baseOptionsBuilder = BaseOptions.builder().setModelAssetPath(modelName)
val baseOptions = baseOptionBuilder.build()

val optionsBuilder =
    FaceStylizer.FaceStylizerOptions.builder()
        .setBaseOptions(baseOptionsBuilder.build())

val options = optionsBuilder.build()

FaceStylizer =
    FaceStylizer.createFromOptions(context, options)

Opsionet e konfigurimit

Kjo detyrë ka opsionet e mëposhtme të konfigurimit për aplikacionet Android:

Emri i opsionit Përshkrimi Gama e vlerave Vlera e paracaktuar
errorListener Vendos një dëgjues opsional gabimi. N/A Not set

Përgatitni të dhënat

Face Stylizer punon me imazhe statike. Detyra trajton parapërpunimin e hyrjes së të dhënave, duke përfshirë ndryshimin e madhësisë, rrotullimin dhe normalizimin e vlerës. Kodi i mëposhtëm tregon se si të dorëzohen të dhënat për përpunim.

import com.google.mediapipe.framework.image.BitmapImageBuilder
import com.google.mediapipe.framework.image.MPImage

// Convert the input Bitmap object to an MPImage object to run inference
val mpImage = BitmapImageBuilder(image).build()

Drejtoni detyrën

Përdorni metodën FaceStylizer.stylize() në imazhin e hyrjes për të ekzekutuar stilizuesin:

val result = FaceStylizer.stylize(mpImage)

Trajtoni dhe shfaqni rezultatet

Face Stylizer kthen një objekt FaceStylizerResult , i cili përmban një objekt MPImage me një stilizim të fytyrës më të spikatur brenda imazhit të hyrjes.

Më poshtë tregon një shembull të të dhënave dalëse nga kjo detyrë:

Një pamje nga afër e krijuar e një gruaje të vizatuar në stilin e skicës me laps dhe shënues.

Dalja e mësipërme u krijua duke aplikuar modelin e skicës me ngjyra në imazhin e mëposhtëm hyrës:

Fotografia e gruas imazhi i së cilës është përdorur për të gjeneruar rezultatin e mëparshëm