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:
- Klononi depon e git duke përdorur komandën e mëposhtme:
git clone https://github.com/google-ai-edge/mediapipe-samples
- 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:
- FaceStylizationHelper.kt : Inicializon stilizuesin e fytyrës dhe trajton zgjedhjen e modelit dhe delegatit.
- MainActivity.kt : Ofron rezultate dhe rezultate dhe trajton çdo gabim.
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ë:
Dalja e mësipërme u krijua duke aplikuar modelin e skicës me ngjyra në imazhin e mëposhtëm hyrës: