งานเครื่องมือแบ่งส่วนรูปภาพ MediaPipe ช่วยให้คุณแบ่งรูปภาพออกเป็นภูมิภาคตามหมวดหมู่ที่กำหนดไว้ล่วงหน้าได้ คุณสามารถใช้ฟังก์ชันนี้เพื่อระบุวัตถุหรือพื้นผิว ที่เฉพาะเจาะจง แล้วใช้เอฟเฟกต์ภาพ เช่น การเบลอพื้นหลัง งานนี้มีหลายโมเดลที่ได้รับการฝึกมาโดยเฉพาะสำหรับการแบ่งกลุ่มบุคคลและฟีเจอร์ภายในข้อมูลรูปภาพ ซึ่งได้แก่
- บุคคลและภูมิหลัง
- เส้นผมบุคคลเท่านั้น
- ผม ใบหน้า ผิวหนัง เสื้อผ้า และเครื่องประดับของบุคคล
งานนี้ดำเนินการกับข้อมูลรูปภาพด้วยโมเดลแมชชีนเลิร์นนิง (ML) ที่มีรูปภาพเดียวหรือสตรีมวิดีโอแบบต่อเนื่อง ระบบจะแสดงรายการของภูมิภาคที่แบ่งกลุ่ม ซึ่งแสดงวัตถุหรือพื้นที่ในรูปภาพ ซึ่งขึ้นอยู่กับmodelที่คุณเลือก
เริ่มต้นใช้งาน
เริ่มใช้งานนี้โดยทำตามคำแนะนำในการใช้งานสำหรับแพลตฟอร์มเป้าหมาย คำแนะนำเฉพาะแพลตฟอร์มเหล่านี้จะแนะนำการใช้งานเบื้องต้นของงานนี้ ซึ่งรวมถึงโมเดลที่แนะนำและตัวอย่างโค้ดที่มีตัวเลือกการกำหนดค่าที่แนะนำ
- Android - ตัวอย่างโค้ด - คำแนะนำ
- Python - ตัวอย่างโค้ด คำแนะนำ
- เว็บ - ตัวอย่างโค้ด - คำแนะนำ
รายละเอียดงาน
ส่วนนี้จะอธิบายความสามารถ อินพุต เอาต์พุต และตัวเลือกการกำหนดค่าของงานนี้
ฟีเจอร์
- การประมวลผลรูปภาพอินพุต - การประมวลผลจะรวมถึงการหมุนรูปภาพ การปรับขนาด การทำให้เป็นมาตรฐาน และการแปลงพื้นที่สี
ข้อมูลงาน | เอาต์พุตของงาน |
---|---|
อินพุตอาจเป็นข้อมูลประเภทใดประเภทหนึ่งดังต่อไปนี้
|
เครื่องมือแบ่งกลุ่มรูปภาพจะแสดงข้อมูลรูปภาพที่แบ่งกลุ่ม ซึ่งอาจรวมถึงรายการใดรายการหนึ่งหรือทั้ง 2 อย่างต่อไปนี้ ขึ้นอยู่กับตัวเลือกการกำหนดค่าที่คุณตั้งค่าไว้
|
ตัวเลือกการกำหนดค่า
งานมีตัวเลือกการกำหนดค่าต่อไปนี้
ชื่อตัวเลือก | คำอธิบาย | ช่วงของค่า | ค่าเริ่มต้น |
---|---|---|---|
running_mode |
ตั้งค่าโหมดการทำงาน มี 3 โหมดดังนี้ IMAGE: โหมดสำหรับการป้อนข้อมูลรูปภาพเดียว วิดีโอ: โหมดสำหรับเฟรมที่ถอดรหัสของวิดีโอ LIVE_Stream: โหมดสำหรับสตรีมแบบสดของข้อมูลอินพุต เช่น จากกล้อง ในโหมดนี้ ต้องมีการเรียกใช้ resultsListener เพื่อตั้งค่า 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 |
ตั้งค่า Listener ผลลัพธ์ให้รับผลลัพธ์การแบ่งกลุ่มแบบไม่พร้อมกันเมื่อตัวแบ่งกลุ่มรูปภาพอยู่ในโหมดสตรีมแบบสด
ใช้ได้เมื่อตั้งค่าโหมดการทำงานเป็น LIVE_STREAM เท่านั้น |
ไม่มีข้อมูล | ไม่มีข้อมูล |
รูปแบบ
เครื่องมือแบ่งรูปภาพใช้ได้กับโมเดล ML มากกว่า 1 โมเดล โมเดลการแบ่งกลุ่มลูกค้าต่อไปนี้ส่วนใหญ่ได้รับการสร้างและฝึกให้แบ่งกลุ่มด้วยรูปภาพบุคคล อย่างไรก็ตาม โมเดล DeepLab-v3 สร้างขึ้นเป็นเครื่องมือแยกรูปภาพสำหรับวัตถุประสงค์ทั่วไป เลือกรุ่นที่เหมาะกับแอปพลิเคชันของคุณมากที่สุด
รูปแบบการแบ่งกลุ่มเซลฟี
โมเดลนี้สามารถแบ่งกลุ่มภาพบุคคลของแต่ละบุคคล และนำมาใช้แทนที่หรือแก้ไขพื้นหลังในรูปภาพได้ โมเดลจะแสดง 2 หมวดหมู่ ได้แก่ พื้นหลังที่ดัชนี 0 และคนที่ดัชนี 1 โมเดลนี้มีเวอร์ชันที่มีรูปร่างอินพุตแตกต่างกัน ได้แก่ เวอร์ชันสี่เหลี่ยมจัตุรัสและเวอร์ชันแนวนอน ซึ่งอาจมีประสิทธิภาพมากกว่าสำหรับแอปพลิเคชันที่อินพุตมีรูปร่างดังกล่าวเสมอ เช่น วิดีโอคอล
ชื่อโมเดล | รูปร่างอินพุต | ประเภทการหาปริมาณ | การ์ดโมเดล | ฉบับ |
---|---|---|---|---|
SelfieSegmenter (สี่เหลี่ยมจัตุรัส) | 256 x 256 | ทศนิยม 16 | ข้อมูล | ล่าสุด |
SelfieSegmenter (แนวนอน) | 144 x 256 | ทศนิยม 16 | ข้อมูล | ล่าสุด |
โมเดลการแบ่งกลุ่มผม
โมเดลนี้จะถ่ายภาพบุคคล ค้นหาเส้นผมบนศีรษะ แล้วแสดงผลแผนที่การแบ่งกลุ่มรูปภาพสำหรับผม คุณสามารถใช้โมเดลนี้ในการ เปลี่ยนสีผมหรือใช้เอฟเฟกต์ผมอื่นๆ โมเดลจะแสดงผลหมวดหมู่การแบ่งกลุ่มต่อไปนี้
0 - background
1 - hair
ชื่อโมเดล | รูปร่างอินพุต | ประเภทการหาปริมาณ | การ์ดโมเดล | ฉบับ |
---|---|---|---|---|
HairSegmenter | 512 X 512 | ไม่มี (Float32) | ข้อมูล | ล่าสุด |
โมเดลการแบ่งกลุ่มเซลฟีแบบหลายชั้นเรียน
โมเดลนี้จะถ่ายภาพบุคคล ระบุตำแหน่งของพื้นที่ต่างๆ เช่น ผม ผิวหนัง และเสื้อผ้า แล้วแสดงผลแผนที่การแบ่งกลุ่มภาพสำหรับรายการเหล่านี้ คุณสามารถใช้โมเดลนี้ในการใช้เอฟเฟ็กต์ต่างๆ กับผู้คนในรูปภาพหรือวิดีโอ โมเดลนี้จะแสดงหมวดหมู่การแบ่งกลุ่มต่อไปนี้
0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
ชื่อโมเดล | รูปร่างอินพุต | ประเภทการหาปริมาณ | การ์ดโมเดล | ฉบับ |
---|---|---|---|---|
SelfieMulticlass (256 x 256) | 256 x 256 | ไม่มี (Float32) | ข้อมูล | ล่าสุด |
โมเดล DeepLab-v3
โมเดลนี้จะระบุกลุ่มสำหรับหมวดหมู่ต่างๆ เช่น พื้นหลัง คน แมว สุนัข และไม้กระถาง โมเดลนี้ใช้การผนวกรวมพีระมิดเชิงพื้นที่ เพื่อเก็บข้อมูลที่ช่วงนานขึ้น ดูข้อมูลเพิ่มเติมได้ที่ DeepLab-v3
ชื่อโมเดล | รูปร่างอินพุต | ประเภทการหาปริมาณ | ฉบับ |
---|---|---|---|
DeepLab-V3 | 257 X 257 | ไม่มี (Float32) | ล่าสุด |
การเปรียบเทียบงาน
นี่คือการเปรียบเทียบงานสำหรับทั้งไปป์ไลน์ตามโมเดลที่ฝึกไว้แล้วด้านบน ผลของเวลาในการตอบสนองคือเวลาในการตอบสนองโดยเฉลี่ยใน Pixel 6 ที่ใช้ CPU / GPU
ชื่อโมเดล | เวลาในการตอบสนองของ CPU | เวลาในการตอบสนองของ GPU |
---|---|---|
เครื่องมือตัดภาพเซลฟี (สี่เหลี่ยมจัตุรัส) | 33.46 มิลลิวินาที | 35.15 มิลลิวินาที |
กล้องถ่ายเซลฟี (แนวนอน) | 34.19 มิลลิวินาที | 33.55 มิลลิวินาที |
HairSegmenter | 57.90 มิลลิวินาที | 52.14 มิลลิวินาที |
SelfieMulticlass (256 x 256) | 217.76 มิลลิวินาที | 71.24 มิลลิวินาที |
DeepLab-V3 | 123.93 มิลลิวินาที | 103.30 มิลลิวินาที |