งาน MediaPipe Face Stylizer ช่วยให้คุณสามารถใช้การจัดรูปแบบใบหน้ากับใบหน้าในรูปภาพ คุณใช้งานนี้เพื่อสร้างรูปโปรไฟล์เสมือนในรูปแบบต่างๆ ได้
ตัวอย่างโค้ดที่อธิบายในวิธีการเหล่านี้จะดูได้ใน GitHub ดูข้อมูลเพิ่มเติมเกี่ยวกับความสามารถ โมเดล และตัวเลือกการกำหนดค่าของงานนี้ได้ที่ภาพรวม
ตัวอย่างโค้ด
โค้ดตัวอย่างงาน MediaPipe Tasks เป็นการใช้งานขั้นพื้นฐานของแอปสไตไลเซอร์ใบหน้าสำหรับ Android ตัวอย่างนี้ใช้การจัดรูปแบบใบหน้ากับรูปภาพที่ให้ไว้ในแอป
คุณสามารถใช้แอปนี้เป็นจุดเริ่มต้นสำหรับแอป Android ของคุณเองหรือใช้อ้างอิงเมื่อแก้ไขแอปที่มีอยู่ โค้ดตัวอย่างสำหรับสไตไลเซอร์ใบหน้าโฮสต์อยู่ใน GitHub
ดาวน์โหลดโค้ด
วิธีการต่อไปนี้แสดงวิธีสร้างสำเนาโค้ดตัวอย่างในเครื่องโดยใช้เครื่องมือบรรทัดคำสั่ง git
วิธีดาวน์โหลดโค้ดตัวอย่าง
- โคลนที่เก็บ Git โดยใช้คำสั่งต่อไปนี้
git clone https://github.com/google-ai-edge/mediapipe-samples
- (ไม่บังคับ) กำหนดค่าอินสแตนซ์ Git เพื่อใช้การชำระเงินแบบค่อยเป็นค่อยไป เพื่อให้คุณมีเฉพาะไฟล์สำหรับแอปตัวอย่างสำหรับสไตไลเซอร์ Face ดังนี้
cd mediapipe git sparse-checkout init --cone git sparse-checkout set examples/face_stylization/android
หลังจากสร้างโค้ดตัวอย่างเวอร์ชันในเครื่องแล้ว คุณจะนำเข้าโปรเจ็กต์ไปยัง Android Studio และเรียกใช้แอปได้ โปรดดูวิธีการที่หัวข้อคู่มือการตั้งค่าสำหรับ Android
องค์ประกอบหลัก
ไฟล์ต่อไปนี้มีโค้ดที่สำคัญสำหรับแอปพลิเคชันตัวอย่าง การจัดรูปแบบใบหน้านี้
- FaceStylizationHelper.kt: เริ่มใช้งานสไตไลเซอร์ใบหน้า รวมถึงจัดการโมเดลและผู้รับมอบสิทธิ์
- MainActivity.kt: แสดงผลลัพธ์และเอาต์พุต รวมถึงจัดการข้อผิดพลาด
ตั้งค่า
ส่วนนี้จะอธิบายขั้นตอนสำคัญในการตั้งค่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์และโปรเจ็กต์โค้ดเพื่อใช้สไตไลเซอร์ใบหน้าโดยเฉพาะ สำหรับข้อมูลทั่วไปเกี่ยวกับการตั้งค่าสภาพแวดล้อมการพัฒนาเพื่อใช้งาน MediaPipe รวมถึงข้อกำหนดเวอร์ชันแพลตฟอร์ม โปรดดูคู่มือการตั้งค่าสำหรับ Android
การอ้างอิง
งานสไตไลเซอร์ใบหน้าใช้คลัง com.google.mediapipe:tasks-vision
เพิ่มทรัพยากร Dependency นี้ไปยังไฟล์ build.gradle
ของแอป Android
dependencies {
implementation 'com.google.mediapipe:tasks-vision:latest.release'
}
รุ่น
งาน MediaPipe Face Stylizer ต้องมีแพ็กเกจโมเดลที่ผ่านการฝึกแล้วซึ่งเข้ากันได้กับงานนี้ ดูข้อมูลเพิ่มเติมเกี่ยวกับโมเดลที่ผ่านการฝึกแล้วสำหรับสไตไลซ์ใบหน้าได้ที่ภาพรวมงานส่วนโมเดล
เลือกและดาวน์โหลดโมเดล แล้วจัดเก็บไว้ในไดเรกทอรีโปรเจ็กต์ของคุณ ดังนี้
<dev-project-root>/src/main/assets
ระบุเส้นทางของโมเดลภายในพารามิเตอร์ ModelAssetPath
val modelName = "https://storage.googleapis.com/mediapipe-models/face_stylizer/blaze_face_stylizer/float32/latest/face_stylizer_color_sketch.task"
baseOptionsBuilder.setModelAssetPath(modelName)
สร้างงาน
งาน MediaPipe Face Stylizer ใช้ฟังก์ชัน createFromOptions()
เพื่อตั้งค่างาน ฟังก์ชัน createFromOptions()
จะยอมรับค่าสำหรับตัวเลือกการกำหนดค่า ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกการกำหนดค่าได้ที่ตัวเลือกการกำหนดค่า
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)
ตัวเลือกการกำหนดค่า
งานมีตัวเลือกการกำหนดค่าต่อไปนี้สำหรับแอป Android
ชื่อตัวเลือก | คำอธิบาย | ช่วงของค่า | ค่าเริ่มต้น |
---|---|---|---|
errorListener |
ตั้งค่า Listener ข้อผิดพลาดที่ไม่บังคับ | N/A |
Not set |
เตรียมข้อมูล
สไตไลเซอร์ใบหน้าใช้งานได้กับภาพนิ่ง งานนี้จะจัดการการประมวลผลอินพุตข้อมูลล่วงหน้า ซึ่งรวมถึงการปรับขนาด การหมุน และการปรับค่าให้เป็นมาตรฐาน โค้ดต่อไปนี้แสดงวิธีส่งต่อข้อมูลเพื่อการประมวลผล
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()
เรียกใช้งาน
ใช้เมธอด FaceStylizer.stylize()
กับรูปภาพอินพุตเพื่อเรียกใช้สไตไลเซอร์
val result = FaceStylizer.stylize(mpImage)
แฮนเดิลและแสดงผลลัพธ์
สไตไลเซอร์ใบหน้าจะแสดงวัตถุ FaceStylizerResult
ซึ่งมีวัตถุ MPImage
ที่มีการจัดรูปแบบของใบหน้าที่โดดเด่นที่สุดภายในรูปภาพอินพุต
ตัวอย่างต่อไปนี้แสดงตัวอย่างข้อมูลเอาต์พุตจากงานนี้
เอาต์พุตด้านบนสร้างขึ้นโดยใช้โมเดลภาพร่างสีกับรูปภาพอินพุตต่อไปนี้