 
 
งานตัวแบ่งกลุ่มรูปภาพของ MediaPipe ช่วยให้คุณแบ่งรูปภาพออกเป็นภูมิภาคตามหมวดหมู่ที่กำหนดไว้ล่วงหน้าได้ คุณสามารถใช้ฟังก์ชันการทำงานนี้เพื่อระบุวัตถุหรือพื้นผิวที่เฉพาะเจาะจง แล้วใช้เอฟเฟกต์ภาพ เช่น การเบลอพื้นหลัง งานนี้มีโมเดลหลายรายการที่ผ่านการฝึกมาโดยเฉพาะสำหรับการแบ่งกลุ่มคนและลักษณะภายในข้อมูลรูปภาพ ซึ่งรวมถึง
- บุคคลและพื้นหลัง
- ผมของบุคคลเท่านั้น
- ผม ใบหน้า ผิว เสื้อผ้า และเครื่องประดับของบุคคล
งานนี้จะดำเนินการกับข้อมูลรูปภาพด้วยโมเดลแมชชีนเลิร์นนิง (ML) ที่มีรูปภาพเดี่ยวหรือสตรีมวิดีโอต่อเนื่อง โดยจะแสดงผลรายการภูมิภาคที่แบ่งกลุ่ม ซึ่งแสดงวัตถุหรือพื้นที่ในรูปภาพ ทั้งนี้ขึ้นอยู่กับโมเดลที่คุณเลือก
เริ่มต้นใช้งาน
เริ่มใช้แท็บงานนี้โดยทําตามคําแนะนําการใช้งานแพลตฟอร์มเป้าหมายข้อใดข้อหนึ่งต่อไปนี้ คำแนะนำเฉพาะแพลตฟอร์มเหล่านี้จะแนะนำการใช้งานพื้นฐานของงานนี้ รวมถึงโมเดลที่แนะนำและตัวอย่างโค้ดพร้อมตัวเลือกการกำหนดค่าที่แนะนำ
รายละเอียดงาน
ส่วนนี้จะอธิบายความสามารถ อินพุต เอาต์พุต และตัวเลือกการกำหนดค่าของงานนี้
ฟีเจอร์
- การประมวลผลรูปภาพอินพุต - การประมวลผลประกอบด้วยการหมุนรูปภาพ การปรับขนาด การทำให้เป็นมาตรฐาน และการแปลงพื้นที่สี
| อินพุตงาน | เอาต์พุตของงาน | 
|---|---|
| อินพุตอาจเป็นประเภทข้อมูลอย่างใดอย่างหนึ่งต่อไปนี้ 
 
 
 | ตัวแบ่งกลุ่มรูปภาพจะแสดงผลข้อมูลรูปภาพที่แบ่งกลุ่ม ซึ่งอาจประกอบด้วยรายการต่อไปนี้อย่างน้อย 1 รายการหรือทั้ง 2 รายการ ทั้งนี้ขึ้นอยู่กับตัวเลือกการกําหนดค่าที่คุณตั้งค่าไว้ 
 
 | 
ตัวเลือกการกําหนดค่า
งานนี้มีตัวเลือกการกำหนดค่าต่อไปนี้
| ชื่อตัวเลือก | คำอธิบาย | ช่วงของค่า | ค่าเริ่มต้น | 
|---|---|---|---|
| running_mode | ตั้งค่าโหมดการทํางานสําหรับงาน โดยโหมดมี 3 แบบ ดังนี้ รูปภาพ: โหมดสำหรับอินพุตรูปภาพเดียว วิดีโอ: โหมดสำหรับเฟรมที่ถอดรหัสของวิดีโอ LIVE_STREAM: โหมดสตรีมแบบสดของข้อมูลอินพุต เช่น จากกล้อง ในโหมดนี้ คุณต้องเรียกใช้ resultListener เพื่อตั้งค่า Listener เพื่อรับผลลัพธ์แบบไม่พร้อมกัน | { IMAGE, VIDEO, LIVE_STREAM} | IMAGE | 
| output_category_mask | หากตั้งค่าเป็น Trueเอาต์พุตจะมีมาสก์การแบ่งกลุ่มเป็นรูปภาพ uint8 โดยที่ค่าพิกเซลแต่ละค่าจะระบุค่าหมวดหมู่ที่ชนะ | { True, False} | False | 
| output_confidence_masks | หากตั้งค่าเป็น Trueเอาต์พุตจะมีมาสก์การแบ่งกลุ่มเป็นรูปภาพค่าลอยตัว โดยค่าลอยตัวแต่ละค่าแสดงแผนที่คะแนนความเชื่อมั่นของหมวดหมู่ | { True, False} | True | 
| display_names_locale | ตั้งค่าภาษาของป้ายกำกับที่จะใช้สำหรับชื่อที่แสดงซึ่งระบุไว้ในข้อมูลเมตาของโมเดลของงาน (หากมี) ค่าเริ่มต้นคือ enสำหรับภาษาอังกฤษ คุณเพิ่มป้ายกำกับที่แปลแล้วลงในข้อมูลเมตาของโมเดลที่กำหนดเองได้โดยใช้ TensorFlow Lite Metadata Writer API | รหัสภาษา | en | 
| result_callback | ตั้งค่าโปรแกรมรับฟังผลลัพธ์ให้รับผลลัพธ์การแบ่งกลุ่มแบบไม่พร้อมกันเมื่อเครื่องมือแบ่งกลุ่มรูปภาพอยู่ในโหมด LIVE_STREAMใช้ได้เมื่อตั้งค่าโหมดการทํางานเป็นLIVE_STREAMเท่านั้น | ไม่มี | ไม่มี | 
โมเดล
ตัวแบ่งกลุ่มรูปภาพใช้ได้กับโมเดล ML มากกว่า 1 โมเดล โมเดลการแบ่งกลุ่มต่อไปนี้ส่วนใหญ่สร้างขึ้นและได้รับการฝึกให้ทำการแบ่งกลุ่มด้วยรูปภาพคน อย่างไรก็ตาม โมเดล DeepLab-v3 สร้างขึ้นเพื่อแยกแยะรูปภาพทั่วไป เลือกรูปแบบที่เหมาะกับแอปพลิเคชันของคุณมากที่สุด
โมเดลการแบ่งกลุ่มเซลฟี
โมเดลนี้สามารถแบ่งกลุ่มภาพบุคคลได้ และสามารถใช้เพื่อแทนที่หรือแก้ไขพื้นหลังในรูปภาพ โมเดลจะแสดงผล 2 หมวดหมู่ ได้แก่ พื้นหลังที่ดัชนี 0 และบุคคลที่ดัชนี 1 โมเดลนี้มีเวอร์ชันที่มีรูปร่างอินพุตต่างกัน ซึ่งรวมถึงเวอร์ชันสี่เหลี่ยมจัตุรัสและเวอร์ชันแนวนอนที่อาจมีประสิทธิภาพมากกว่าสำหรับแอปพลิเคชันที่มีอินพุตเป็นรูปร่างนั้นๆ เสมอ เช่น วิดีโอคอล
| ชื่อโมเดล | รูปร่างอินพุต | ประเภทการแปลงค่าเป็นจำนวนเต็ม | การ์ดโมเดล | เวอร์ชัน | 
|---|---|---|---|---|
| SelfieSegmenter (สี่เหลี่ยมจัตุรัส) | 256 x 256 | ลอย 16 | info | ล่าสุด | 
| SelfieSegmenter (แนวนอน) | 144 x 256 | ลอย 16 | info | ล่าสุด | 
โมเดลการแบ่งส่วนเส้นผม
โมเดลนี้จะจับภาพบุคคล หาตำแหน่งผมบนศีรษะ และแสดงแผนที่การแบ่งส่วนของภาพสำหรับผม คุณสามารถใช้โมเดลนี้เพื่อเปลี่ยนสีผมหรือใช้เอฟเฟกต์ผมอื่นๆ โมเดลจะแสดงหมวดหมู่การแบ่งกลุ่มต่อไปนี้
0 - background
1 - hair
| ชื่อโมเดล | รูปร่างอินพุต | ประเภทการแปลงค่าเป็นจำนวนเต็ม | การ์ดโมเดล | เวอร์ชัน | 
|---|---|---|---|---|
| HairSegmenter | 512 x 512 | ไม่มี (float32) | info | ล่าสุด | 
โมเดลการแบ่งกลุ่มเซลฟีแบบหลายคลาส
โมเดลนี้จะจับภาพบุคคล ค้นหาตำแหน่งของส่วนต่างๆ เช่น ผม ผิวหนัง และเสื้อผ้า แล้วแสดงผลแผนที่การแบ่งส่วนของรูปภาพสำหรับรายการเหล่านี้ คุณสามารถใช้โมเดลนี้เพื่อใส่เอฟเฟกต์ต่างๆ ให้กับบุคคลในรูปภาพหรือวิดีโอ โมเดลจะแสดงผลหมวดหมู่การแบ่งกลุ่มต่อไปนี้
0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
| ชื่อโมเดล | รูปร่างอินพุต | ประเภทการแปลงค่าเป็นจำนวนเต็ม | การ์ดโมเดล | เวอร์ชัน | 
|---|---|---|---|---|
| SelfieMulticlass (256 x 256) | 256 x 256 | ไม่มี (float32) | info | ล่าสุด | 
โมเดล DeepLab-v3
โมเดลนี้จะระบุกลุ่มสําหรับหมวดหมู่ต่างๆ ซึ่งรวมถึงพื้นหลัง บุคคล แมว สุนัข และกระถางต้นไม้ โดยโมเดลจะใช้การรวม Pyramid เชิงพื้นที่แบบ Atrous เพื่อจับข้อมูลระยะยาว ดูข้อมูลเพิ่มเติมได้ที่ DeepLab-v3
| ชื่อโมเดล | รูปร่างอินพุต | ประเภทการแปลงค่าเป็นจำนวนเต็ม | เวอร์ชัน | 
|---|---|---|---|
| DeepLab-V3 | 257 x 257 | ไม่มี (float32) | ล่าสุด | 
การเปรียบเทียบงาน
ต่อไปนี้เป็นการเปรียบเทียบประสิทธิภาพของงานสำหรับทั้งไปป์ไลน์โดยอิงตามโมเดลที่ผ่านการฝึกล่วงหน้าข้างต้น ผลลัพธ์เวลาในการตอบสนองคือเวลาในการตอบสนองโดยเฉลี่ยใน Pixel 6 ที่ใช้ CPU / GPU
| ชื่อแบบจำลอง | เวลาในการตอบสนองของ CPU | เวลาในการตอบสนองของ GPU | 
|---|---|---|
| SelfieSegmenter (สี่เหลี่ยมจัตุรัส) | 33.46 มิลลิวินาที | 35.15 มิลลิวินาที | 
| SelfieSegmenter (แนวนอน) | 34.19 มิลลิวินาที | 33.55 มิลลิวินาที | 
| HairSegmenter | 57.90 มิลลิวินาที | 52.14 มิลลิวินาที | 
| SelfieMulticlass (256 x 256) | 217.76 มิลลิวินาที | 71.24 มิลลิวินาที | 
| DeepLab-V3 | 123.93 มิลลิวินาที | 103.30 มิลลิวินาที |