การจำแนกรูปภาพ

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

รูปภาพต่อไปนี้แสดงผลลัพธ์ของแบบจำลองการจัดหมวดหมู่รูปภาพบน Android

ภาพหน้าจอของตัวอย่าง Android

เริ่ม

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

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

ตัวอย่าง Android ด้านล่างสาธิตการใช้งานทั้งสองวิธีเป็น lib_task_api และ lib_support ตามลำดับ

ดูตัวอย่าง Android

ดูตัวอย่าง iOS

หากคุณใช้แพลตฟอร์มอื่นที่ไม่ใช่ 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

อ่านเพิ่มเติมและแหล่งข้อมูล

ใช้แหล่งข้อมูลต่อไปนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับแนวคิดที่เกี่ยวข้องกับการจัดหมวดหมู่รูปภาพ: