คู่มืองานการแยกประเภทรูปภาพ

สัตว์ที่ติดป้ายกำกับอย่างถูกต้องว่าเป็นนกฟลามิงโกโดยมีคะแนนความเชื่อมั่น 95%

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

ลองใช้เลย

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

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

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

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

ฟีเจอร์

  • การประมวลผลรูปภาพอินพุต - การประมวลผลประกอบด้วยการหมุนรูปภาพ การปรับขนาด การปรับให้เป็นมาตรฐาน และการแปลงพื้นที่สี
  • พื้นที่สนใจ - จัดประเภทพื้นที่ของรูปภาพแทนทั้งรูปภาพ
  • ภาษาของแผนที่ป้ายกำกับ - ตั้งค่าภาษาที่ใช้สำหรับชื่อที่แสดง
  • เกณฑ์คะแนน - กรองผลลัพธ์ตามคะแนนการคาดการณ์
  • การจัดประเภท Top-k - จำกัดจำนวนผลลัพธ์การจัดประเภท
  • รายการที่อนุญาตและปฏิเสธของป้ายกำกับ - ระบุหมวดหมู่ที่จัดประเภท
อินพุตงาน เอาต์พุตของงาน
อินพุตอาจเป็นประเภทข้อมูลอย่างใดอย่างหนึ่งต่อไปนี้
  • ภาพนิ่ง
  • เฟรมวิดีโอที่ถอดรหัสแล้ว
  • ฟีดวิดีโอสด
เครื่องมือจัดประเภทรูปภาพจะแสดงรายการหมวดหมู่ที่มี
  • ดัชนีหมวดหมู่: ดัชนีของหมวดหมู่ในเอาต์พุตของโมเดล
  • คะแนน: คะแนนความเชื่อมั่นของหมวดหมู่นี้ ซึ่งมักจะเป็นค่าความน่าจะเป็นในช่วง [0,1]
  • ชื่อหมวดหมู่ (ไม่บังคับ): ชื่อหมวดหมู่ตามที่ระบุไว้ในข้อมูลเมตาของโมเดล TFLite (หากมี)
  • ชื่อที่แสดงของหมวดหมู่ (ไม่บังคับ): ชื่อที่แสดงของหมวดหมู่ตามที่ระบุไว้ในข้อมูลเมตาของโมเดล TFLite ในภาษาที่ระบุผ่านตัวเลือกภาษาของชื่อที่แสดง หากมี

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

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

ชื่อตัวเลือก คำอธิบาย ช่วงของค่า ค่าเริ่มต้น
running_mode ตั้งค่าโหมดการทํางานสําหรับงาน โดยโหมดมี 3 แบบ ดังนี้

รูปภาพ: โหมดสำหรับอินพุตรูปภาพเดียว

วิดีโอ: โหมดสำหรับเฟรมที่ถอดรหัสของวิดีโอ

LIVE_STREAM: โหมดสตรีมแบบสดของข้อมูลอินพุต เช่น จากกล้อง ในโหมดนี้ คุณต้องเรียกใช้ resultListener เพื่อตั้งค่า Listener เพื่อรับผลลัพธ์แบบไม่พร้อมกัน
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
display_names_locale ตั้งค่าภาษาของป้ายกำกับที่จะใช้สำหรับชื่อที่แสดงซึ่งระบุไว้ในข้อมูลเมตาของโมเดลของงาน (หากมี) ค่าเริ่มต้นคือ en สำหรับภาษาอังกฤษ คุณเพิ่มป้ายกำกับที่แปลแล้วลงในข้อมูลเมตาของโมเดลที่กำหนดเองได้โดยใช้ TensorFlow Lite Metadata Writer API รหัสภาษา en
max_results กําหนดจํานวนสูงสุดของผลการแยกประเภทที่มีคะแนนสูงสุดที่จะแสดง (ไม่บังคับ) หากมีค่าน้อยกว่า 0 ระบบจะแสดงผลลัพธ์ทั้งหมดที่มีอยู่ ตัวเลขบวกใดก็ได้ -1
score_threshold ตั้งค่าเกณฑ์คะแนนการคาดการณ์ที่จะลบล้างเกณฑ์ที่ระบุไว้ในข้อมูลเมตาของโมเดล (หากมี) ระบบจะปฏิเสธผลลัพธ์ที่ต่ำกว่าค่านี้ ตัวเลขทศนิยม ไม่ได้ตั้งค่า
category_allowlist ตั้งค่ารายการชื่อหมวดหมู่ที่อนุญาต (ไม่บังคับ) หากไม่ว่าง ระบบจะกรองผลการจัดประเภทที่มีชื่อหมวดหมู่ไม่อยู่ในชุดนี้ออก ระบบจะไม่สนใจชื่อหมวดหมู่ที่ซ้ำกันหรือไม่รู้จัก ตัวเลือกนี้ใช้ร่วมกับ category_denylist ไม่ได้ และการใช้ทั้ง 2 ตัวเลือกจะทำให้เกิดข้อผิดพลาด สตริงใดก็ได้ ไม่ได้ตั้งค่า
category_denylist ตั้งค่ารายการชื่อหมวดหมู่ที่ไม่อนุญาต (ไม่บังคับ) หากไม่เป็นค่าว่าง ระบบจะกรองผลการจัดประเภทที่มีชื่อหมวดหมู่อยู่ในชุดนี้ออก ระบบจะไม่สนใจชื่อหมวดหมู่ที่ซ้ำกันหรือไม่รู้จัก ตัวเลือกนี้ใช้ร่วมกันกับ category_allowlist ไม่ได้ และการใช้ทั้ง 2 ตัวเลือกจะทำให้เกิดข้อผิดพลาด สตริงใดก็ได้ ไม่ได้ตั้งค่า
result_callback ตั้งค่าโปรแกรมรับฟังผลลัพธ์ให้รับผลการแยกประเภทแบบไม่พร้อมกันเมื่อตัวแยกประเภทรูปภาพอยู่ในโหมดสตรีมแบบสด ใช้ได้เมื่อตั้งค่าโหมดการทํางานเป็น LIVE_STREAM เท่านั้น ไม่มี ไม่ได้ตั้งค่า

โมเดล

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

โมเดล EfficientNet-Lite0 ใช้สถาปัตยกรรม EfficientNet และได้รับการฝึกโดยใช้ ImageNet เพื่อจดจำคลาสต่างๆ 1,000 คลาส เช่น ต้นไม้ สัตว์ อาหาร ยานพาหนะ บุคคล ฯลฯ ดูรายการทั้งหมดของป้ายกำกับที่รองรับ EfficientNet-Lite0 มีให้บริการเป็นโมเดล int8 และ float 32 เราขอแนะนํารูปแบบนี้เนื่องจากช่วยให้เกิดความสมดุลระหว่างเวลาในการตอบสนองกับความแม่นยำ ทั้งยังแม่นยำและเบาพอสําหรับกรณีการใช้งานหลายประเภท

ชื่อโมเดล รูปร่างอินพุต ประเภทการแปลงค่าเป็นจำนวนเต็ม เวอร์ชัน
EfficientNet-Lite0 (int8) 224 x 224 int8 ล่าสุด
EfficientNet-Lite0 (float 32) 224 x 224 ไม่มี (float32) ล่าสุด

โมเดล EfficientNet-Lite2

โมเดล EfficientNet-Lite2 ใช้สถาปัตยกรรม EfficientNet และได้รับการฝึกโดยใช้ ImageNet เพื่อจดจำคลาสต่างๆ 1,000 คลาส เช่น ต้นไม้ สัตว์ อาหาร ยานพาหนะ บุคคล ฯลฯ ดูรายการทั้งหมดของป้ายกำกับที่รองรับ EfficientNet-Lite2 มีให้บริการในรูปแบบ int8 และ float 32 โดยทั่วไปแล้วโมเดลนี้มีความแม่นยำมากกว่า EfficientNet-Lite0 แต่ก็ช้ากว่าและใช้หน่วยความจำมากกว่าด้วย รูปแบบนี้เหมาะสำหรับกรณีการใช้งานที่มีความแม่นยำสำคัญกว่าความเร็วหรือขนาด

ชื่อโมเดล รูปร่างอินพุต ประเภทการแปลงค่าเป็นจำนวนเต็ม เวอร์ชัน
EfficientNet-Lite2 (int8) 224 x 224 int8 ล่าสุด
EfficientNet-Lite2 (float 32) 224 x 224 ไม่มี (float32) ล่าสุด

การเปรียบเทียบงาน

ต่อไปนี้คือการเปรียบเทียบประสิทธิภาพของงานสำหรับทั้งไปป์ไลน์โดยอิงตามโมเดลที่ผ่านการฝึกล่วงหน้าข้างต้น ผลลัพธ์เวลาในการตอบสนองคือเวลาในการตอบสนองโดยเฉลี่ยใน Pixel 6 ที่ใช้ CPU / GPU

ชื่อแบบจำลอง เวลาในการตอบสนองของ CPU เวลาในการตอบสนองของ GPU
EfficientNet-Lite0 (float 32) 23.52 มิลลิวินาที 18.90 มิลลิวินาที
EfficientNet-Lite0 (int8) 10.08 มิลลิวินาที -
EfficientNet-Lite2 (จำนวนลอยตัว 32) 44.17 มิลลิวินาที 22.20 มิลลิวินาที
EfficientNet-Lite2 (int8) 19.43 มิลลิวินาที -

โมเดลที่กำหนดเอง

คุณสามารถใช้โมเดล ML ที่กําหนดเองกับงานนี้ได้หากต้องการปรับปรุงหรือเปลี่ยนแปลงความสามารถของโมเดลที่ระบุ คุณสามารถใช้ Model Maker เพื่อแก้ไขโมเดลที่มีอยู่หรือสร้างโมเดลโดยใช้เครื่องมืออย่าง TensorFlow โมเดลที่กำหนดเองซึ่งใช้กับ MediaPipe ต้องเป็นรูปแบบ TensorFlow Lite และต้องระบุmetadataที่เฉพาะเจาะจงซึ่งอธิบายพารามิเตอร์การทํางานของโมเดล คุณควรพิจารณาใช้ Model Maker เพื่อแก้ไขโมเดลที่ให้มาสำหรับงานนี้ก่อนที่จะสร้างโมเดลของคุณเอง

หากสนใจสร้างตัวจัดประเภทรูปภาพที่กําหนดเองโดยใช้ชุดข้อมูลของคุณเอง ให้เริ่มด้วยบทแนะนำการปรับแต่งตัวจัดประเภทรูปภาพ