งานในการระบุว่ารูปภาพแสดงถึงอะไร เรียกว่า การจำแนกรูปภาพ โมเดลการจัดประเภทรูปภาพได้รับการฝึกฝนให้รู้จักรูปภาพประเภทต่างๆ ตัวอย่างเช่น คุณอาจฝึกนางแบบให้จดจำภาพถ่ายที่เป็นตัวแทนของสัตว์สามประเภท ได้แก่ กระต่าย หนูแฮมสเตอร์ และสุนัข 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 คลาสรูปภาพ สำหรับรายการคลาสทั้งหมด โปรดดูไฟล์ป้ายกำกับใน model zip หากคุณต้องการฝึกโมเดลให้รู้จักคลาสใหม่ โปรดดู กำหนดโมเดลเอง สำหรับกรณีการใช้งานต่อไปนี้ คุณควรใช้แบบจำลองประเภทอื่น:- การคาดคะเนประเภทและตำแหน่งของออบเจ็กต์ตั้งแต่หนึ่งรายการขึ้นไปภายในรูปภาพ (ดู การตรวจจับออบเจกต์ )
- การคาดคะเนองค์ประกอบของภาพ เช่น ตัวแบบกับพื้นหลัง (ดู การแบ่งส่วน )
ปรับแต่งโมเดล
โมเดลที่ได้รับการฝึกฝนมาล่วงหน้านั้นได้รับการฝึกฝนให้รู้จักรูปภาพ 1,000 คลาส สำหรับรายการคลาสทั้งหมด โปรดดูไฟล์ป้ายกำกับใน model zip คุณยังสามารถใช้การเรียนรู้แบบโอนย้ายเพื่อฝึกแบบจำลองใหม่เพื่อให้รู้จักคลาสที่ไม่ได้อยู่ในชุดเดิมได้ ตัวอย่างเช่น คุณสามารถฝึกแบบจำลองใหม่เพื่อแยกแยะระหว่างต้นไม้ชนิดต่างๆ แม้ว่าจะไม่มีต้นไม้ในข้อมูลการฝึกเดิมก็ตาม ในการทำเช่นนี้ คุณจะต้องมีชุดภาพการฝึกสำหรับป้ายกำกับใหม่แต่ละรายการที่คุณต้องการฝึก เรียนรู้วิธีดำเนินการเรียนรู้การโอนย้ายด้วย TFLite Model Maker หรือใน Recognize flowers ด้วย TensorFlow codelabมาตรฐานประสิทธิภาพ
ประสิทธิภาพของโมเดลจะวัดในแง่ของระยะเวลาที่โมเดลใช้ในการอนุมานบนชิ้นส่วนของฮาร์ดแวร์ที่กำหนด ยิ่งเวลาที่ต่ำลงเท่าใด โมเดลก็จะยิ่งเร็วขึ้นเท่านั้น ประสิทธิภาพที่คุณต้องการขึ้นอยู่กับแอปพลิเคชันของคุณ ประสิทธิภาพอาจมีความสำคัญสำหรับแอปพลิเคชัน เช่น วิดีโอแบบเรียลไทม์ โดยอาจมีความสำคัญในการวิเคราะห์แต่ละเฟรมในช่วงเวลาก่อนที่จะวาดเฟรมถัดไป (เช่น การอนุมานต้องเร็วกว่า 33ms เพื่อทำการอนุมานแบบเรียลไทม์บนสตรีมวิดีโอ 30fps) . ช่วงประสิทธิภาพของรุ่น TensorFlow Lite ของ MobileNet มีตั้งแต่ 3.7ms ถึง 80.3 ms ตัวเลขเปรียบเทียบประสิทธิภาพสร้างขึ้นด้วย เครื่องมือเปรียบเทียบชื่อรุ่น | ขนาดรุ่น | อุปกรณ์ | นภาภรณ์ | ซีพียู |
---|---|---|---|---|
Mobilenet_V1_1.0_224_quant | 4.3 Mb | พิกเซล 3 (แอนดรอยด์ 10) | 6ms | 13ms* |
พิกเซล 4 (แอนดรอยด์ 10) | 3.3ms | 5ms* | ||
iPhone XS (iOS 12.4.1) | 11ms** |
* ใช้ 4 เธรด
** ใช้ 2 เธรดบน iPhone เพื่อผลลัพธ์ประสิทธิภาพที่ดีที่สุด
ความแม่นยำของแบบจำลอง
ความแม่นยำวัดจากความถี่ที่โมเดลจัดประเภทรูปภาพได้อย่างถูกต้อง ตัวอย่างเช่น แบบจำลองที่มีความแม่นยำตามที่ระบุ 60% สามารถจำแนกประเภทรูปภาพได้อย่างถูกต้องโดยเฉลี่ย 60% ของเวลา
เมตริกความแม่นยำที่เกี่ยวข้องมากที่สุดคือ Top-1 และ Top-5 อันดับ 1 หมายถึงความถี่ที่ป้ายกำกับที่ถูกต้องปรากฏเป็นป้ายกำกับที่มีความน่าจะเป็นสูงสุดในผลลัพธ์ของแบบจำลอง 5 อันดับสูงสุดหมายถึงความถี่ที่ป้ายกำกับที่ถูกต้องปรากฏใน 5 ความน่าจะเป็นสูงสุดในเอาต์พุตของโมเดล
ช่วงความแม่นยำ 5 อันดับแรกของรุ่น TensorFlow Lite ของรุ่น MobileNet มีตั้งแต่ 64.4 ถึง 89.9%
ขนาดรุ่น
ขนาดของโมเดลบนดิสก์จะแตกต่างกันไปตามประสิทธิภาพและความแม่นยำ ขนาดอาจมีความสำคัญต่อการพัฒนาอุปกรณ์พกพา (ซึ่งอาจส่งผลต่อขนาดการดาวน์โหลดแอป) หรือเมื่อทำงานกับฮาร์ดแวร์ (ในที่ที่พื้นที่จัดเก็บอาจมีจำกัด)
ขนาดของโมเดล MobileNet เชิงปริมาณของ TensorFlow Lite มีตั้งแต่ 0.5 ถึง 3.4 MB
อ่านเพิ่มเติมและทรัพยากร
ใช้แหล่งข้อมูลต่อไปนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับแนวคิดที่เกี่ยวข้องกับการจัดประเภทรูปภาพ: