โดยค่าเริ่มต้น API ของ ML Kit จะใช้โมเดลแมชชีนเลิร์นนิงที่ Google ฝึก ซึ่งออกแบบมาให้ครอบคลุมแอปพลิเคชันที่หลากหลาย อย่างไรก็ตาม บางกรณีการใช้งานต้องใช้โมเดลที่กำหนดเป้าหมายมากขึ้น ด้วยเหตุนี้ API บางรายการของ ML Kit จึงอนุญาตให้คุณแทนที่โมเดลเริ่มต้นด้วยโมเดล LiteRT ที่กำหนดเองได้แล้ว
ทั้ง การติดป้ายกำกับรูปภาพ และ การตรวจจับและติดตามออบเจ็กต์ API รองรับโมเดลการจัดประเภทรูปภาพที่กำหนดเอง โดยเข้ากันได้กับโมเดลที่ฝึกไว้ล่วงหน้าคุณภาพสูงที่เลือกไว้ใน TensorFlow Hub หรือโมเดลที่กำหนดเองซึ่งคุณฝึกด้วย TensorFlow หรือ AutoML
หากต้องการโซลูชันที่กำหนดเองสำหรับโดเมนหรือกรณีการใช้งานอื่นๆ โปรดไปที่ หน้าแมชชีนเลิร์นนิงในอุปกรณ์เพื่อดูคำแนะนำเกี่ยวกับ โซลูชันและเครื่องมือทั้งหมดของ Google สำหรับแมชชีนเลิร์นนิงในอุปกรณ์
ประโยชน์ของการใช้ ML Kit กับโมเดลที่กำหนดเอง
ประโยชน์ของการใช้โมเดลการจัดประเภทรูปภาพที่กำหนดเองกับ ML Kit มีดังนี้
- API ระดับสูงที่ใช้งานง่าย - ไม่จำเป็นต้องจัดการอินพุต/เอาต์พุตของโมเดลระดับต่ำ ประมวลผลรูปภาพล่วงหน้า/ภายหลัง หรือสร้างไปป์ไลน์การประมวลผล
- ไม่ต้องกังวลเกี่ยวกับการแมปป้ายกำกับด้วยตนเอง, ML Kit จะดึง ป้ายกำกับจากข้อมูลเมตาของโมเดล LiteRT และทำการแมปให้คุณ
- รองรับโมเดลที่กำหนดเองจากแหล่งที่มาที่หลากหลาย ตั้งแต่โมเดลที่ฝึกไว้ล่วงหน้า ที่เผยแพร่ใน TensorFlow Hub ไปจนถึงโมเดลใหม่ที่ฝึกด้วย TensorFlow หรือ AutoML
- เพิ่มประสิทธิภาพเพื่อการผสานรวมกับ API กล้องของ Android
และสำหรับ API การตรวจจับและติดตามออบเจ็กต์ โดยเฉพาะ:
- ปรับปรุงความแม่นยำในการจัดประเภท โดยการระบุตำแหน่งออบเจ็กต์ก่อน แล้วเรียกใช้ตัวแยกประเภทในพื้นที่รูปภาพที่เกี่ยวข้องเท่านั้น
- มอบประสบการณ์แบบอินเทอร์แอกทีฟแบบเรียลไทม์ โดยให้ความคิดเห็นแก่ผู้ใช้ทันทีเกี่ยวกับออบเจ็กต์เมื่อมีการตรวจจับและจัดประเภท
ใช้โมเดลการจัดประเภทรูปภาพที่ฝึกไว้ล่วงหน้า
คุณสามารถใช้โมเดล LiteRT ที่ฝึกไว้ล่วงหน้าได้หากเป็นไปตามเกณฑ์ที่กำหนดa เรามีโมเดลที่ผ่านการตรวจสอบแล้วจาก Google หรือผู้สร้างโมเดลรายอื่นๆ ซึ่งเป็นไปตามเกณฑ์เหล่านี้ผ่าน TensorFlow Hub
ใช้โมเดลที่เผยแพร่ใน TensorFlow Hub
TensorFlow Hub มีโมเดลการจัดประเภทรูปภาพที่ฝึกไว้ล่วงหน้ามากมาย จากผู้สร้างโมเดลต่างๆ ซึ่งสามารถใช้กับ API การติดป้ายกำกับรูปภาพและ API การตรวจจับและติดตามออบเจ็กต์ได้ โปรดทำตามขั้นตอนต่อไปนี้
- เลือกโมเดลจากคอลเล็กชันโมเดลที่เข้ากันได้กับ ML Kit
- ดาวน์โหลดไฟล์โมเดล .tflite จากหน้ารายละเอียดโมเดล เลือกรูปแบบโมเดลที่มีข้อมูลเมตาหากมี
- ทำตามคำแนะนำสำหรับ API การติดป้ายกำกับรูปภาพ หรือ API การตรวจจับและติดตามออบเจ็กต์ เกี่ยวกับวิธีรวมไฟล์โมเดลกับโปรเจ็กต์และใช้ในแอปพลิเคชัน Android หรือ iOS
ฝึกโมเดลการจัดประเภทรูปภาพของคุณเอง
หากไม่มีโมเดลการจัดประเภทรูปภาพที่ฝึกไว้ล่วงหน้าที่ตรงกับความต้องการของคุณ คุณสามารถฝึกโมเดล LiteRT ของคุณเองได้หลายวิธี ซึ่งเราได้สรุปและอธิบายรายละเอียดเพิ่มเติมไว้ในส่วนต่อไปนี้
| ตัวเลือกในการฝึกโมเดลการจัดประเภทรูปภาพของคุณเอง | |
|---|---|
| AutoML |
|
| แปลงโมเดล TensorFlow เป็น LiteRT |
|
AutoML
API โมเดลที่กำหนดเองใน API การติดป้ายกำกับรูปภาพ และ API การตรวจจับและติดตามออบเจ็กต์ รองรับโมเดลการจัดประเภทรูปภาพที่ฝึกโดยใช้ AutoML นอกจากนี้ API เหล่านี้ยัง รองรับการดาวน์โหลดโมเดลที่โฮสต์ด้วย Cloud Storage ด้วย
หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้โมเดลที่ฝึกด้วย AutoML ในแอป Android และ iOS ให้ทำตามคำแนะนำโมเดลที่กำหนดเองสำหรับ API แต่ละรายการ ทั้งนี้ขึ้นอยู่กับกรณีการใช้งาน
โมเดลที่สร้างโดยใช้ตัวแปลง LiteRT
หากมีโมเดลการจัดประเภทรูปภาพ TensorFlow อยู่แล้ว คุณสามารถแปลง โมเดลดังกล่าวได้โดยใช้ ตัวแปลง LiteRT ตรวจสอบว่าโมเดลที่สร้างขึ้นเป็นไปตามข้อกำหนดด้านความเข้ากันได้ต่อไปนี้
หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้โมเดล LiteRT ในแอป Android และ iOS ให้ทำตามคำแนะนำสำหรับAPI การติดป้ายกำกับรูปภาพ หรือ API การตรวจจับและติดตามออบเจ็กต์ ทั้งนี้ขึ้นอยู่กับกรณีการใช้งาน
ความเข้ากันได้ของโมเดล LiteRT
คุณสามารถใช้โมเดลการจัดประเภทรูปภาพ LiteRT ที่ฝึกไว้ล่วงหน้าได้หากเป็นไปตามข้อกำหนดต่อไปนี้
เทนเซอร์
- โมเดลต้องมีเทนเซอร์อินพุตเพียงรายการเดียวที่มีข้อจำกัดต่อไปนี้
- ข้อมูลอยู่ในรูปแบบพิกเซล RGB
- ข้อมูลเป็นประเภท UINT8 หรือ FLOAT32 หากเทนเซอร์อินพุตเป็นประเภท FLOAT32 คุณต้องระบุ NormalizationOptions โดยแนบ ข้อมูลเมตา
- Tensor มี 4 มิติ ได้แก่ BxHxWxC โดยที่
- B คือขนาดกลุ่ม ต้องเป็น 1 (ระบบไม่รองรับการอนุมานในกลุ่มขนาดใหญ่)
- W และ H คือความกว้างและความสูงของอินพุต
- C คือจำนวนช่องที่คาดไว้ ต้องเป็น 3
- โมเดลต้องมีเทนเซอร์เอาต์พุตอย่างน้อย 1 รายการที่มี N คลาสและมี 2 หรือ 4 มิติ ดังนี้
- (1xN)
- (1x1x1xN)
- ระบบรองรับโมเดลแบบหัวเดียวอย่างเต็มรูปแบบ โมเดลแบบหลายหัวอาจแสดงผลลัพธ์ที่ไม่คาดคิด
ข้อมูลเมตา
คุณสามารถเพิ่มข้อมูลเมตาลงในไฟล์ LiteRT ได้ตามที่อธิบายไว้ใน หัวข้อการเพิ่มข้อมูลเมตาลงในโมเดล LiteRT
หากต้องการใช้โมเดลที่มีเทนเซอร์อินพุต FLOAT32 คุณต้องระบุ NormalizationOptions ในข้อมูลเมตา
นอกจากนี้ เราขอแนะนำให้คุณแนบข้อมูลเมตานี้กับ TensorMetadata ของเทนเซอร์เอาต์พุต TensorMetadata:
- แผนที่ป้ายกำกับที่ระบุชื่อของคลาสเอาต์พุตแต่ละคลาสเป็น AssociatedFile ที่มีประเภท TENSOR_AXIS_LABELS (มิฉะนั้น ระบบจะแสดงได้เฉพาะดัชนีคลาสเอาต์พุตที่เป็นตัวเลข)
- เกณฑ์คะแนนเริ่มต้นที่ต่ำกว่าซึ่งระบบจะพิจารณาว่าผลลัพธ์มีความน่าเชื่อถือต่ำเกินไปที่จะแสดงเป็น ProcessUnit ที่มี ScoreThresholdingOptions