งานในการระบุว่ารูปภาพแสดงถึงอะไรเรียกว่า การจัดหมวดหมู่รูปภาพ แบบจำลองการจัดหมวดหมู่รูปภาพได้รับการฝึกฝนให้จดจำคลาสรูปภาพต่างๆ ตัวอย่างเช่น คุณอาจฝึกแบบจำลองให้จดจำภาพถ่ายของสัตว์สามประเภทที่แตกต่างกัน ได้แก่ กระต่าย หนูแฮมสเตอร์ และสุนัข TensorFlow Lite นำเสนอโมเดลที่ได้รับการฝึกล่วงหน้าที่ได้รับการปรับปรุงซึ่งคุณสามารถปรับใช้ในแอปพลิเคชันมือถือของคุณได้ เรียนรู้เพิ่มเติมเกี่ยวกับการจัดหมวดหมู่ภาพโดยใช้ TensorFlow ที่นี่
รูปภาพต่อไปนี้แสดงผลลัพธ์ของแบบจำลองการจัดหมวดหมู่รูปภาพบน Android
เริ่ม
หากคุณยังใหม่กับ TensorFlow Lite และใช้งานกับ Android หรือ iOS ขอแนะนำให้คุณสำรวจแอปพลิเคชันตัวอย่างต่อไปนี้ที่สามารถช่วยคุณเริ่มต้นได้
คุณสามารถใช้ประโยชน์จาก API แบบสำเร็จรูปจาก ไลบรารีงาน TensorFlow Lite เพื่อผสานรวมโมเดลการจัดหมวดหมู่รูปภาพด้วยโค้ดเพียงไม่กี่บรรทัด คุณยังสามารถสร้างไปป์ไลน์การอนุมานที่คุณกำหนดเองได้โดยใช้ TensorFlow Lite Support Library
ตัวอย่าง Android ด้านล่างสาธิตการใช้งานทั้งสองวิธีเป็น lib_task_api และ lib_support ตามลำดับ
หากคุณใช้แพลตฟอร์มอื่นที่ไม่ใช่ Android/iOS หรือหากคุณคุ้นเคยกับ TensorFlow Lite API อยู่แล้ว ให้ดาวน์โหลดโมเดลเริ่มต้นและไฟล์ที่รองรับ (ถ้ามี)
คำอธิบายโมเดล
มันทำงานอย่างไร
ในระหว่างการฝึก โมเดลการจัดหมวดหมู่รูปภาพจะถูกป้อนรูปภาพและ ป้ายกำกับ ที่เกี่ยวข้อง แต่ละป้ายกำกับคือชื่อของแนวคิดหรือคลาสที่แตกต่างกัน ซึ่งโมเดลจะเรียนรู้ที่จะจดจำ
เมื่อได้รับข้อมูลการฝึกอบรมที่เพียงพอ (มักมีรูปภาพหลายร้อยหรือหลายพันภาพต่อป้ายกำกับ) โมเดลการจัดหมวดหมู่รูปภาพสามารถเรียนรู้ที่จะคาดเดาได้ว่ารูปภาพใหม่เป็นของคลาสใดๆ ที่ได้รับการฝึกหรือไม่ กระบวนการทำนายนี้เรียกว่า การอนุมาน โปรดทราบว่าคุณยังสามารถใช้ การเรียนรู้แบบถ่ายโอน เพื่อระบุคลาสใหม่ของรูปภาพได้โดยใช้โมเดลที่มีอยู่แล้ว การเรียนรู้แบบถ่ายโอนไม่จำเป็นต้องใช้ชุดข้อมูลการฝึกอบรมที่มีขนาดใหญ่มาก
เมื่อคุณจัดเตรียมรูปภาพใหม่เป็นอินพุตให้กับโมเดลในภายหลัง มันจะส่งออกความน่าจะเป็นของรูปภาพที่แสดงถึงสัตว์แต่ละประเภทที่ได้รับการฝึกฝน ผลลัพธ์ตัวอย่างอาจเป็นดังนี้:
ประเภทสัตว์ | ความน่าจะเป็น |
---|---|
กระต่าย | 0.07 |
หนูแฮมสเตอร์ | 0.02 |
สุนัข | 0.91 |
แต่ละหมายเลขในเอาต์พุตสอดคล้องกับป้ายกำกับในข้อมูลการฝึก เมื่อเชื่อมโยงผลลัพธ์กับป้ายกำกับสามป้ายที่แบบจำลองได้รับการฝึกฝน คุณจะเห็นว่าแบบจำลองได้ทำนายความเป็นไปได้สูงที่รูปภาพจะเป็นตัวแทนของสุนัข
คุณอาจสังเกตเห็นว่าผลรวมของความน่าจะเป็นทั้งหมด (สำหรับกระต่าย หนูแฮมสเตอร์ และสุนัข) เท่ากับ 1 นี่เป็นเอาต์พุตประเภททั่วไปสำหรับโมเดลที่มีหลายคลาส (ดูข้อมูลเพิ่มเติมที่ Softmax )
ผลลัพธ์ที่ไม่ชัดเจน
เนื่องจากความน่าจะเป็นของเอาต์พุตจะรวมเป็น 1 เสมอ หากรูปภาพไม่ได้รับการยอมรับอย่างมั่นใจว่าเป็นของคลาสใดๆ ที่โมเดลได้รับการฝึกฝน คุณอาจเห็นความน่าจะเป็นที่กระจายไปทั่วป้ายกำกับโดยไม่มีค่าใดค่าหนึ่งที่ใหญ่กว่าอย่างมีนัยสำคัญ
ตัวอย่างเช่น ข้อมูลต่อไปนี้อาจบ่งบอกถึงผลลัพธ์ที่ไม่ชัดเจน:
ฉลาก | ความน่าจะเป็น |
---|---|
กระต่าย | 0.31 |
หนูแฮมสเตอร์ | 0.35 |
สุนัข | 0.34 |
การเลือกสถาปัตยกรรมแบบจำลอง
TensorFlow Lite มีโมเดลการจัดหมวดหมู่รูปภาพที่หลากหลาย ซึ่งทั้งหมดได้รับการฝึกฝนจากชุดข้อมูลดั้งเดิม สถาปัตยกรรมโมเดล เช่น MobileNet, Inception และ NASNet มีอยู่ใน TensorFlow Hub ในการเลือกรุ่นที่ดีที่สุดสำหรับกรณีการใช้งานของคุณ คุณจะต้องพิจารณาสถาปัตยกรรมแต่ละแบบ รวมถึงข้อดีข้อเสียระหว่างรุ่นต่างๆ ข้อดีข้อเสียของโมเดลเหล่านี้บางส่วนขึ้นอยู่กับหน่วยวัด เช่น ประสิทธิภาพ ความแม่นยำ และขนาดโมเดล ตัวอย่างเช่น คุณอาจต้องการโมเดลที่เร็วกว่าสำหรับการสร้างเครื่องสแกนบาร์โค้ด ในขณะที่คุณอาจต้องการโมเดลที่ช้ากว่าและแม่นยำกว่าสำหรับแอปสร้างภาพทางการแพทย์ โปรดทราบว่า แบบจำลองการจัดหมวดหมู่รูปภาพ ที่ให้มานั้นยอมรับขนาดอินพุตที่แตกต่างกัน สำหรับบางรุ่น ข้อมูลนี้จะระบุไว้ในชื่อไฟล์ ตัวอย่างเช่น รุ่น Mobilenet_V1_1.0_224 ยอมรับอินพุตขนาด 224x224 พิกเซล ทุกรุ่นต้องใช้ช่องสีสามช่องต่อพิกเซล (แดง เขียว และน้ำเงิน) โมเดลเชิงปริมาณต้องใช้ 1 ไบต์ต่อแชนเนล และโมเดลโฟลตต้องใช้ 4 ไบต์ต่อแชนเนล ตัวอย่างโค้ด Android และ iOS สาธิตวิธีการประมวลผลภาพจากกล้องขนาดเต็มเป็นรูปแบบที่จำเป็นสำหรับแต่ละรุ่นการใช้และข้อจำกัด
โมเดลการจัดหมวดหมู่รูปภาพ TensorFlow Lite มีประโยชน์สำหรับการจัดหมวดหมู่แบบป้ายกำกับเดียว นั่นคือการคาดเดาว่ารูปภาพใดที่มีแนวโน้มที่จะเป็นตัวแทนมากที่สุด พวกเขาได้รับการฝึกฝนให้จดจำคลาสรูปภาพได้ 1,000 คลาส สำหรับรายการคลาสทั้งหมด โปรดดูไฟล์ป้ายกำกับในไฟล์ zip ของโมเดล หากคุณต้องการฝึกโมเดลให้รู้จักคลาสใหม่ โปรดดู ที่ ปรับแต่งโมเดล สำหรับกรณีการใช้งานต่อไปนี้ คุณควรใช้โมเดลประเภทอื่น:- การคาดการณ์ประเภทและตำแหน่งของวัตถุตั้งแต่หนึ่งชิ้นขึ้นไปภายในภาพ (ดู การตรวจจับวัตถุ )
- การคาดการณ์องค์ประกอบของภาพ เช่น เรื่องกับพื้นหลัง (ดู การแบ่งส่วน )
ปรับแต่งโมเดล
โมเดลที่ได้รับการฝึกอบรมล่วงหน้าได้รับการฝึกฝนให้จดจำรูปภาพได้ 1,000 คลาส สำหรับรายการคลาสทั้งหมด โปรดดูไฟล์ป้ายกำกับในไฟล์ zip ของโมเดล คุณยังสามารถใช้การเรียนรู้แบบถ่ายโอนเพื่อฝึกโมเดลอีกครั้งเพื่อจดจำคลาสที่ไม่ได้อยู่ในชุดดั้งเดิม ตัวอย่างเช่น คุณสามารถฝึกโมเดลใหม่เพื่อแยกความแตกต่างระหว่างต้นไม้ชนิดต่างๆ แม้ว่าข้อมูลการฝึกดั้งเดิมจะไม่มีต้นไม้ก็ตาม ในการดำเนินการนี้ คุณจะต้องมีชุดอิมเมจการฝึกสำหรับป้ายกำกับใหม่แต่ละป้ายกำกับที่คุณต้องการฝึก เรียนรู้วิธีถ่ายโอนการเรียนรู้ด้วย TFLite Model Maker หรือใน Codelab จดจำดอกไม้ด้วย TensorFlowเกณฑ์มาตรฐานประสิทธิภาพ
ประสิทธิภาพของโมเดลวัดจากระยะเวลาที่ใช้สำหรับโมเดลในการอนุมานบนชิ้นส่วนฮาร์ดแวร์ที่กำหนด ยิ่งเวลาน้อย โมเดลก็จะยิ่งเร็วขึ้น ประสิทธิภาพที่คุณต้องการขึ้นอยู่กับการใช้งานของคุณ ประสิทธิภาพอาจมีความสำคัญสำหรับแอปพลิเคชัน เช่น วิดีโอแบบเรียลไทม์ โดยการวิเคราะห์แต่ละเฟรมในเวลาก่อนที่จะวาดเฟรมถัดไปอาจเป็นสิ่งสำคัญ (เช่น การอนุมานต้องเร็วกว่า 33ms เพื่อทำการอนุมานแบบเรียลไทม์บนสตรีมวิดีโอ 30fps) . TensorFlow Lite วัดปริมาณประสิทธิภาพของรุ่น MobileNet ตั้งแต่ 3.7ms ถึง 80.3 ms หมายเลขเกณฑ์มาตรฐานประสิทธิภาพสร้างขึ้นด้วย เครื่องมือเปรียบเทียบชื่อรุ่น | ขนาดโมเดล | อุปกรณ์ | นาปี | ซีพียู |
---|---|---|---|---|
Mobilenet_V1_1.0_224_quant | 4.3 ลบ | พิกเซล 3 (Android 10) | 6ms | 13 มิลลิวินาที* |
พิกเซล 4 (Android 10) | 3.3ms | 5 มิลลิวินาที* | ||
iPhone XS (iOS 12.4.1) | 11 มิลลิวินาที** |
* ใช้ 4 เธรด
** ใช้ 2 เธรดบน iPhone เพื่อผลลัพธ์ประสิทธิภาพที่ดีที่สุด
ความแม่นยำของแบบจำลอง
ความแม่นยำจะวัดจากความถี่ที่แบบจำลองจัดประเภทรูปภาพได้อย่างถูกต้อง ตัวอย่างเช่น โมเดลที่มีความแม่นยำตามที่ระบุไว้ 60% สามารถคาดหวังให้จัดประเภทรูปภาพได้อย่างถูกต้องโดยเฉลี่ย 60% ของเวลา
ตัวชี้วัดความแม่นยำที่เกี่ยวข้องมากที่สุดคือ Top-1 และ Top-5 Top-1 หมายถึงความถี่ที่ป้ายกำกับที่ถูกต้องปรากฏเป็นป้ายกำกับที่มีความน่าจะเป็นสูงสุดในเอาต์พุตของแบบจำลอง 5 อันดับแรกหมายถึงความถี่ที่ป้ายกำกับที่ถูกต้องปรากฏในความน่าจะเป็นสูงสุด 5 รายการในเอาต์พุตของแบบจำลอง
TensorFlow Lite วัดปริมาณความแม่นยำ 5 อันดับแรกของรุ่น MobileNet ตั้งแต่ 64.4 ถึง 89.9%
ขนาดโมเดล
ขนาดของโมเดลบนดิสก์จะแตกต่างกันไปตามประสิทธิภาพและความแม่นยำ ขนาดอาจมีความสำคัญสำหรับการพัฒนาอุปกรณ์เคลื่อนที่ (ซึ่งอาจส่งผลต่อขนาดการดาวน์โหลดแอป) หรือเมื่อทำงานกับฮาร์ดแวร์ (ในกรณีที่พื้นที่เก็บข้อมูลอาจมีจำกัด)
ขนาดของรุ่น MobileNet ที่คำนวณปริมาณของ TensorFlow Lite มีตั้งแต่ 0.5 ถึง 3.4 MB
อ่านเพิ่มเติมและแหล่งข้อมูล
ใช้แหล่งข้อมูลต่อไปนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับแนวคิดที่เกี่ยวข้องกับการจัดหมวดหมู่รูปภาพ: