คู่มือการแบ่งกลุ่มรูปภาพ

งานเครื่องมือแบ่งส่วนรูปภาพ MediaPipe ช่วยให้คุณแบ่งรูปภาพออกเป็นภูมิภาคตามหมวดหมู่ที่กำหนดไว้ล่วงหน้าได้ คุณสามารถใช้ฟังก์ชันนี้เพื่อระบุวัตถุหรือพื้นผิว ที่เฉพาะเจาะจง แล้วใช้เอฟเฟกต์ภาพ เช่น การเบลอพื้นหลัง งานนี้มีหลายโมเดลที่ได้รับการฝึกมาโดยเฉพาะสำหรับการแบ่งกลุ่มบุคคลและฟีเจอร์ภายในข้อมูลรูปภาพ ซึ่งได้แก่

  • บุคคลและภูมิหลัง
  • เส้นผมบุคคลเท่านั้น
  • ผม ใบหน้า ผิวหนัง เสื้อผ้า และเครื่องประดับของบุคคล

งานนี้ดำเนินการกับข้อมูลรูปภาพด้วยโมเดลแมชชีนเลิร์นนิง (ML) ที่มีรูปภาพเดียวหรือสตรีมวิดีโอแบบต่อเนื่อง ระบบจะแสดงรายการของภูมิภาคที่แบ่งกลุ่ม ซึ่งแสดงวัตถุหรือพื้นที่ในรูปภาพ ซึ่งขึ้นอยู่กับmodelที่คุณเลือก

ลองเลย

เริ่มต้นใช้งาน

เริ่มใช้งานนี้โดยทำตามคำแนะนำในการใช้งานสำหรับแพลตฟอร์มเป้าหมาย คำแนะนำเฉพาะแพลตฟอร์มเหล่านี้จะแนะนำการใช้งานเบื้องต้นของงานนี้ ซึ่งรวมถึงโมเดลที่แนะนำและตัวอย่างโค้ดที่มีตัวเลือกการกำหนดค่าที่แนะนำ

รายละเอียดงาน

ส่วนนี้จะอธิบายความสามารถ อินพุต เอาต์พุต และตัวเลือกการกำหนดค่าของงานนี้

ฟีเจอร์

  • การประมวลผลรูปภาพอินพุต - การประมวลผลจะรวมถึงการหมุนรูปภาพ การปรับขนาด การทำให้เป็นมาตรฐาน และการแปลงพื้นที่สี
ข้อมูลงาน เอาต์พุตของงาน
อินพุตอาจเป็นข้อมูลประเภทใดประเภทหนึ่งดังต่อไปนี้
  • ภาพนิ่ง
  • เฟรมวิดีโอที่ถอดรหัสแล้ว
  • ฟีดวิดีโอสด
เครื่องมือแบ่งกลุ่มรูปภาพจะแสดงข้อมูลรูปภาพที่แบ่งกลุ่ม ซึ่งอาจรวมถึงรายการใดรายการหนึ่งหรือทั้ง 2 อย่างต่อไปนี้ ขึ้นอยู่กับตัวเลือกการกำหนดค่าที่คุณตั้งค่าไว้
  • CATEGORY_MASK: รายการที่มีมาสก์ที่แบ่งกลุ่มเป็นรูปภาพในรูปแบบ uint8 ค่าพิกเซลแต่ละค่าระบุว่าค่านั้นเป็นส่วนหนึ่งของหมวดหมู่กลุ่มเฉพาะที่โมเดลรองรับหรือไม่
  • CONFIDENCE_MASK: รายการแชแนลที่มีมาสก์ที่แบ่งกลุ่มพร้อมค่าพิกเซลในรูปแบบ Float32 ค่าพิกเซลแต่ละค่าแสดงถึงระดับความมั่นใจว่าเป็นส่วนหนึ่งของหมวดหมู่เฉพาะที่โมเดลรองรับ

ตัวเลือกการกำหนดค่า

งานมีตัวเลือกการกำหนดค่าต่อไปนี้

ชื่อตัวเลือก คำอธิบาย ช่วงของค่า ค่าเริ่มต้น
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 มิลลิวินาที