โมเดลที่กำหนดเองที่ใช้ ML Kit

โดยค่าเริ่มต้น API ของ ML Kit จะใช้โมเดลแมชชีนเลิร์นนิงที่ฝึกโดย Google โมเดลเหล่านี้ได้รับการออกแบบมาให้ครอบคลุมการใช้งานที่หลากหลาย อย่างไรก็ตาม Use Case บางกรณีจำเป็นต้องใช้รูปแบบที่ตรงเป้าหมายมากขึ้น นั่นเป็นเหตุผลที่ ML Kit API บางส่วน อนุญาตให้คุณแทนที่โมเดลเริ่มต้นด้วยโมเดล TensorFlow Lite ที่กำหนดเองได้

ทั้ง Image Labeling และ API Object Detection & Tracking จะรองรับโมเดลการจัดประเภทรูปภาพที่กำหนดเอง ซึ่งใช้งานได้กับการเลือกโมเดลคุณภาพสูงที่ฝึกล่วงหน้าใน TensorFlow Hub หรือโมเดลแบบกำหนดเองที่ฝึกด้วย TensorFlow, AutoML Vision Edge หรือ TensorFlow Lite

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

ประโยชน์ของการใช้ ML Kit กับโมเดลที่กำหนดเอง

ประโยชน์ของการใช้โมเดลการจัดประเภทรูปภาพที่กำหนดเองกับ ML Kit มีดังนี้

  • API ระดับสูงที่ใช้งานง่าย - ไม่จำเป็นต้องจัดการกับอินพุต/เอาต์พุตของโมเดลระดับต่ำ จัดการอิมเมจก่อน/หลังการประมวลผล หรือสร้างไปป์ไลน์การประมวลผล
  • ไม่ต้องกังวลเรื่องการแมปป้ายกำกับด้วยตนเอง ML Kit จะดึงป้ายกำกับจากข้อมูลเมตาโมเดล TFLite และทำการแมปให้คุณ
  • รองรับโมเดลที่กำหนดเองจากแหล่งที่มาที่หลากหลาย ตั้งแต่โมเดลที่ฝึกไว้แล้วล่วงหน้าที่เผยแพร่ใน TensorFlow Hub ไปจนถึงโมเดลใหม่ที่ฝึกด้วย TensorFlow, AutoML Vision Edge หรือ TensorFlow Lite Model Maker
  • รองรับโมเดลที่โฮสต์กับ Firebase ลดขนาด APK โดยการดาวน์โหลดโมเดล ตามความต้องการ พุชการอัปเดตโมเดลโดยไม่ต้องเผยแพร่แอปอีกครั้ง และทำการทดสอบ A/B ง่ายๆ ด้วยการกำหนดค่าระยะไกลของ Firebase
  • เพิ่มประสิทธิภาพเพื่อการผสานรวมกับ API กล้องของ Android

และโดยเฉพาะอย่างยิ่งสำหรับการตรวจจับและการติดตามวัตถุ

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

ใช้โมเดลการจัดประเภทอิมเมจก่อนการฝึก

คุณจะใช้โมเดล TensorFlow Lite ที่ฝึกไว้แล้วล่วงหน้าได้หากมีคุณสมบัติตรงตามชุดเกณฑ์ เราใช้ TensorFlow Hub เพื่อเสนอชุดโมเดลที่ผ่านการตรวจสอบ จาก Google หรือผู้สร้างโมเดลคนอื่นๆ ที่มีคุณสมบัติตรงตามเกณฑ์เหล่านี้

ใช้โมเดลที่เผยแพร่บน TensorFlow Hub

TensorFlow Hub มีโมเดลการจัดประเภทอิมเมจก่อนการฝึกที่หลากหลายจากผู้สร้างโมเดลจำนวนมากที่ใช้ร่วมกับ API การติดป้ายกำกับรูปภาพและการตรวจจับออบเจ็กต์และ API การติดตามได้ โดยทำตามขั้นตอนต่อไปนี้

  1. เลือกรุ่นจากคอลเล็กชันโมเดลที่รองรับ ML Kit
  2. ดาวน์โหลดไฟล์โมเดล .tflite จากหน้ารายละเอียดโมเดล หากมี ให้เลือกรูปแบบโมเดลที่มีข้อมูลเมตา
  3. ทำตามคำแนะนำสำหรับ Image Labeling API หรือ Object Detection and Tracking API เกี่ยวกับวิธีรวมไฟล์โมเดลกับโปรเจ็กต์ของคุณ และนำไปใช้ในแอปพลิเคชัน Android หรือ iOS

ฝึกโมเดลการจัดประเภทรูปภาพของคุณเอง

หากไม่มีโมเดลการจัดประเภทอิมเมจก่อนการฝึกที่เหมาะกับความต้องการของคุณ มีหลายวิธีในการฝึกโมเดล TensorFlow Lite ตามวิธีเหล่านั้น ซึ่งบางวิธีจะมีการสรุปและอธิบายรายละเอียดเพิ่มเติมไว้ด้านล่าง

ตัวเลือกในการฝึกโมเดลการจัดประเภทรูปภาพของคุณเอง
AutoML Vision Edge
  • ให้บริการผ่าน AI ของ Google Cloud
  • สร้างโมเดลการจัดประเภทรูปภาพสุดล้ำสมัย
  • ประเมินประสิทธิภาพและขนาดได้อย่างง่ายดาย
เครื่องมือสร้างโมเดล TensorFlow Lite
  • ฝึกโมเดลอีกครั้ง (การเรียนรู้การโอน) ใช้เวลาน้อยกว่าและ ใช้ข้อมูลน้อยกว่าการฝึกโมเดลตั้งแต่ต้น
แปลงโมเดล TensorFlow เป็น TensorFlow Lite
  • ฝึกโมเดลด้วย TensorFlow แล้วแปลงเป็น TensorFlow Lite

AutoML Vision Edge

โมเดลการจัดประเภทรูปภาพที่ฝึกโดยใช้ AutoML Vision Edge จะรองรับโมเดลที่กำหนดเองใน API การติดป้ายกำกับรูปภาพ และ API การตรวจจับออบเจ็กต์และการติดตาม นอกจากนี้ API เหล่านี้ยังรองรับการดาวน์โหลดโมเดลที่โฮสต์ด้วยการทำให้โมเดล Firebase ใช้งานได้ด้วย

หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้โมเดลที่ฝึกด้วย AutoML Vision Edge ในแอป Android และ iOS ให้ทำตามคำแนะนำสำหรับโมเดลที่กำหนดเองสำหรับ API แต่ละรายการ ทั้งนี้ขึ้นอยู่กับกรณีการใช้งานของคุณ

เครื่องมือสร้างโมเดล TensorFlow Lite

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

หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้โมเดลที่ฝึกด้วย Model Maker ในแอป Android และ iOS ให้ทำตามคำแนะนำสำหรับ Image Labeling API หรือ Object Detection and Tracking API ทั้งนี้ขึ้นอยู่กับกรณีการใช้งานของคุณ

โมเดลที่สร้างโดยใช้ตัวแปลง TensorFlow Lite

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

หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้โมเดล TensorFlow Lite ในแอป Android และ iOS ให้ทำตามคำแนะนำสำหรับ Image Labeling API หรือ Object Detection and Tracking API ทั้งนี้ขึ้นอยู่กับกรณีการใช้งานของคุณ

ความเข้ากันได้ของโมเดล TensorFlow Lite

คุณสามารถใช้โมเดลการจัดประเภทอิมเมจ TensorFlow Lite ที่ฝึกไว้แล้วล่วงหน้าหากโมเดลดังกล่าวเป็นไปตามข้อกำหนดต่อไปนี้

Tensor

  • โมเดลต้องมี Tensor อินพุตเพียง 1 รายการเท่านั้นที่มีข้อจำกัดต่อไปนี้
    • โดยข้อมูลจะอยู่ในรูปแบบพิกเซล RGB
    • ข้อมูลเป็นประเภท UINT8 หรือ FLOAT32 หากประเภท Tensor อินพุตคือ FLOAT32 ต้องระบุ NormalizationOptions โดยแนบ Metadata
    • Tensor มีมิติข้อมูล 4 รายการ คือ BxHxWxC โดยที่:
      • B คือขนาดกลุ่ม ค่านี้ต้องเป็น 1 (ไม่รองรับการอนุมานในกลุ่มที่ใหญ่กว่า)
      • W และ H คือความกว้างและความสูงของอินพุต
      • C คือจํานวนแชแนลที่คาดไว้ ต้องเป็น 3
  • โมเดลต้องมี Tensor เอาต์พุตอย่างน้อย 1 รายการที่มีคลาส N และมิติข้อมูล 2 หรือ 4 รายการดังนี้
    • (1xN)
    • (1x1x1xN)
  • ขณะนี้รองรับเฉพาะโมเดลส่วนหัวเดียวอย่างเต็มรูปแบบ โมเดลแบบหลายหัวอาจ ให้ผลลัพธ์ที่ไม่คาดคิด

Metadata

คุณเพิ่มข้อมูลเมตาลงในไฟล์ TensorFlow Lite ได้ตามที่อธิบายไว้ในการเพิ่มข้อมูลเมตาไปยังโมเดล TensorFlow Lite

หากต้องการใช้โมเดลที่มี Tensor อินพุต FLOAT32 คุณต้องระบุ NormalizationOptions ในข้อมูลเมตา

เราขอแนะนำให้คุณแนบข้อมูลเมตานี้ไปยัง Tensor เอาต์พุต TensorMetadata:

  • แมปป้ายกำกับระบุชื่อคลาสเอาต์พุตแต่ละรายการเป็น AssociatedFile ที่มีประเภทเป็น TENSOR_AXIS_LABELS (มิฉะนั้นระบบจะแสดงผลเฉพาะดัชนีคลาสเอาต์พุตตัวเลขเท่านั้น)
  • เกณฑ์คะแนนเริ่มต้นซึ่งต่ำกว่าผลลัพธ์จะถือว่ามีความเชื่อมั่นต่ำเกินกว่าที่จะแสดงผลเป็น ProcessUnit ที่มี ScoreThresholdingOptions