23 KiB
ตรวจสอบคุณภาพผลไม้จากอุปกรณ์ IoT
Sketchnote โดย Nitya Narasimhan คลิกที่ภาพเพื่อดูเวอร์ชันขนาดใหญ่
แบบทดสอบก่อนเรียน
บทนำ
ในบทเรียนที่ผ่านมา คุณได้เรียนรู้เกี่ยวกับตัวจำแนกภาพ และวิธีการฝึกให้สามารถตรวจจับผลไม้ที่ดีและไม่ดีได้ เพื่อใช้งานตัวจำแนกภาพนี้ในแอปพลิเคชัน IoT คุณจำเป็นต้องสามารถจับภาพโดยใช้กล้องบางประเภท และส่งภาพนี้ไปยังคลาวด์เพื่อทำการจำแนก
ในบทเรียนนี้ คุณจะได้เรียนรู้เกี่ยวกับเซ็นเซอร์กล้อง และวิธีการใช้งานร่วมกับอุปกรณ์ IoT เพื่อจับภาพ นอกจากนี้คุณยังจะได้เรียนรู้วิธีการเรียกใช้งานตัวจำแนกภาพจากอุปกรณ์ IoT ของคุณ
ในบทเรียนนี้เราจะครอบคลุม:
- เซ็นเซอร์กล้อง
- จับภาพโดยใช้อุปกรณ์ IoT
- เผยแพร่ตัวจำแนกภาพของคุณ
- จำแนกภาพจากอุปกรณ์ IoT ของคุณ
- ปรับปรุงโมเดล
เซ็นเซอร์กล้อง
เซ็นเซอร์กล้อง ตามชื่อของมัน คือกล้องที่คุณสามารถเชื่อมต่อกับอุปกรณ์ IoT ของคุณได้ กล้องเหล่านี้สามารถถ่ายภาพนิ่งหรือบันทึกวิดีโอแบบสตรีมมิ่งได้ บางรุ่นจะส่งข้อมูลภาพดิบ ในขณะที่บางรุ่นจะบีบอัดข้อมูลภาพเป็นไฟล์ภาพ เช่น JPEG หรือ PNG โดยทั่วไปกล้องที่ใช้งานร่วมกับอุปกรณ์ IoT จะมีขนาดเล็กและความละเอียดต่ำกว่าที่คุณคุ้นเคย แต่คุณสามารถหากล้องที่มีความละเอียดสูงซึ่งเทียบเท่ากับโทรศัพท์ระดับสูงได้ นอกจากนี้ยังมีกล้องที่สามารถเปลี่ยนเลนส์ได้หลายแบบ กล้องหลายตัว กล้องอินฟราเรด หรือกล้อง UV
เซ็นเซอร์กล้องส่วนใหญ่ใช้เซ็นเซอร์ภาพที่แต่ละพิกเซลเป็นโฟโตไดโอด เลนส์จะโฟกัสภาพลงบนเซ็นเซอร์ภาพ และโฟโตไดโอดนับพันหรือหลายล้านตัวจะตรวจจับแสงที่ตกลงบนแต่ละตัว และบันทึกเป็นข้อมูลพิกเซล
💁 เลนส์จะพลิกภาพกลับด้าน และเซ็นเซอร์กล้องจะพลิกภาพกลับมาให้ถูกต้อง เช่นเดียวกับในดวงตาของคุณ - สิ่งที่คุณเห็นจะถูกตรวจจับกลับด้านที่ด้านหลังของดวงตา และสมองของคุณจะปรับให้ถูกต้อง
🎓 เซ็นเซอร์ภาพเรียกว่า Active-Pixel Sensor (APS) และประเภท APS ที่ได้รับความนิยมมากที่สุดคือเซ็นเซอร์ CMOS (Complementary Metal-Oxide Semiconductor) คุณอาจเคยได้ยินคำว่าเซ็นเซอร์ CMOS ใช้สำหรับเซ็นเซอร์กล้อง
เซ็นเซอร์กล้องเป็นเซ็นเซอร์ดิจิทัลที่ส่งข้อมูลภาพในรูปแบบดิจิทัล โดยปกติจะใช้ไลบรารีที่ช่วยในการสื่อสาร กล้องเชื่อมต่อโดยใช้โปรโตคอล เช่น SPI เพื่อส่งข้อมูลจำนวนมาก - ภาพมีขนาดใหญ่กว่าตัวเลขเดี่ยวจากเซ็นเซอร์ เช่น เซ็นเซอร์วัดอุณหภูมิ
✅ ข้อจำกัดเกี่ยวกับขนาดภาพในอุปกรณ์ IoT มีอะไรบ้าง? ลองคิดถึงข้อจำกัดโดยเฉพาะในฮาร์ดแวร์ไมโครคอนโทรลเลอร์
จับภาพโดยใช้อุปกรณ์ IoT
คุณสามารถใช้อุปกรณ์ IoT ของคุณเพื่อจับภาพและนำไปจำแนกได้
งาน - จับภาพโดยใช้อุปกรณ์ IoT
ทำตามคู่มือที่เกี่ยวข้องเพื่อจับภาพโดยใช้อุปกรณ์ IoT ของคุณ:
เผยแพร่ตัวจำแนกภาพของคุณ
คุณได้ฝึกตัวจำแนกภาพในบทเรียนที่ผ่านมา ก่อนที่คุณจะใช้งานมันจากอุปกรณ์ IoT คุณจำเป็นต้องเผยแพร่โมเดล
การทำซ้ำของโมเดล
เมื่อโมเดลของคุณกำลังฝึกในบทเรียนที่ผ่านมา คุณอาจสังเกตเห็นว่าแท็บ Performance แสดงการทำซ้ำทางด้านข้าง เมื่อคุณฝึกโมเดลครั้งแรก คุณจะเห็น Iteration 1 ในการฝึก เมื่อคุณปรับปรุงโมเดลโดยใช้ภาพการทำนาย คุณจะเห็น Iteration 2 ในการฝึก
ทุกครั้งที่คุณฝึกโมเดล คุณจะได้การทำซ้ำใหม่ นี่เป็นวิธีการติดตามเวอร์ชันต่าง ๆ ของโมเดลที่ฝึกด้วยชุดข้อมูลต่าง ๆ เมื่อคุณทำ Quick Test จะมีเมนูแบบเลื่อนลงที่คุณสามารถใช้เลือกการทำซ้ำ เพื่อเปรียบเทียบผลลัพธ์ระหว่างการทำซ้ำหลายครั้ง
เมื่อคุณพอใจกับการทำซ้ำ คุณสามารถเผยแพร่เพื่อให้ใช้งานได้จากแอปพลิเคชันภายนอก วิธีนี้คุณสามารถมีเวอร์ชันที่เผยแพร่ซึ่งใช้งานโดยอุปกรณ์ของคุณ และทำงานกับเวอร์ชันใหม่ในหลายการทำซ้ำ จากนั้นเผยแพร่เมื่อคุณพอใจกับมัน
งาน - เผยแพร่การทำซ้ำ
การทำซ้ำจะถูกเผยแพร่จากพอร์ทัล Custom Vision
-
เปิดพอร์ทัล Custom Vision ที่ CustomVision.ai และลงชื่อเข้าใช้หากคุณยังไม่ได้เปิด จากนั้นเปิดโปรเจกต์
fruit-quality-detector
ของคุณ -
เลือกแท็บ Performance จากตัวเลือกด้านบน
-
เลือกการทำซ้ำล่าสุดจากรายการ Iterations ทางด้านข้าง
-
เลือกปุ่ม Publish สำหรับการทำซ้ำ
-
ในกล่อง Publish Model ตั้งค่าทรัพยากร Prediction resource เป็นทรัพยากร
fruit-quality-detector-prediction
ที่คุณสร้างในบทเรียนที่ผ่านมา ปล่อยชื่อไว้เป็นIteration2
และเลือกปุ่ม Publish -
เมื่อเผยแพร่แล้ว ให้เลือกปุ่ม Prediction URL ซึ่งจะแสดงรายละเอียดของ API การทำนาย และคุณจะต้องใช้สิ่งนี้เพื่อเรียกโมเดลจากอุปกรณ์ IoT ของคุณ ส่วนล่างจะมีป้ายกำกับ If you have an image file และนี่คือรายละเอียดที่คุณต้องการ คัดลอก URL ที่แสดงซึ่งจะมีลักษณะดังนี้:
https://<location>.api.cognitive.microsoft.com/customvision/v3.0/Prediction/<id>/classify/iterations/Iteration2/image
โดยที่
<location>
จะเป็นตำแหน่งที่คุณใช้เมื่อสร้างทรัพยากร Custom Vision และ<id>
จะเป็น ID ยาวที่ประกอบด้วยตัวอักษรและตัวเลขนอกจากนี้ให้คัดลอกค่าของ Prediction-Key ซึ่งเป็นคีย์ที่ปลอดภัยที่คุณต้องส่งเมื่อเรียกโมเดล แอปพลิเคชันที่ส่งคีย์นี้เท่านั้นที่ได้รับอนุญาตให้ใช้โมเดล แอปพลิเคชันอื่น ๆ จะถูกปฏิเสธ
✅ เมื่อมีการเผยแพร่การทำซ้ำใหม่ จะมีชื่อที่แตกต่างกัน คุณคิดว่าคุณจะเปลี่ยนการทำซ้ำที่อุปกรณ์ IoT ใช้อย่างไร?
จำแนกภาพจากอุปกรณ์ IoT ของคุณ
ตอนนี้คุณสามารถใช้รายละเอียดการเชื่อมต่อเหล่านี้เพื่อเรียกตัวจำแนกภาพจากอุปกรณ์ IoT ของคุณได้แล้ว
งาน - จำแนกภาพจากอุปกรณ์ IoT ของคุณ
ทำตามคู่มือที่เกี่ยวข้องเพื่อจำแนกภาพโดยใช้อุปกรณ์ IoT ของคุณ:
ปรับปรุงโมเดล
คุณอาจพบว่าผลลัพธ์ที่คุณได้รับเมื่อใช้กล้องที่เชื่อมต่อกับอุปกรณ์ IoT ของคุณไม่ตรงกับที่คุณคาดหวัง การทำนายไม่ได้แม่นยำเสมอไปเมื่อใช้ภาพที่อัปโหลดจากคอมพิวเตอร์ของคุณ นี่เป็นเพราะโมเดลถูกฝึกด้วยข้อมูลที่แตกต่างจากที่ใช้ในการทำนาย
เพื่อให้ได้ผลลัพธ์ที่ดีที่สุดสำหรับตัวจำแนกภาพ คุณต้องการฝึกโมเดลด้วยภาพที่คล้ายกับภาพที่ใช้ในการทำนายมากที่สุด หากคุณใช้กล้องโทรศัพท์ของคุณเพื่อจับภาพสำหรับการฝึก ตัวอย่างเช่น คุณภาพของภาพ ความคมชัด และสีจะต่างจากกล้องที่เชื่อมต่อกับอุปกรณ์ IoT
ในภาพด้านบน ภาพกล้วยทางซ้ายถูกถ่ายโดยใช้กล้อง Raspberry Pi ส่วนภาพทางขวาถูกถ่ายจากกล้วยเดียวกันในตำแหน่งเดียวกันโดยใช้ iPhone มีความแตกต่างของคุณภาพที่เห็นได้ชัด - ภาพ iPhone คมชัดกว่า มีสีสว่างกว่า และมีความคอนทราสต์มากกว่า
✅ อะไรอีกบ้างที่อาจทำให้ภาพที่จับโดยอุปกรณ์ IoT ของคุณมีการทำนายที่ไม่ถูกต้อง? ลองคิดถึงสภาพแวดล้อมที่อุปกรณ์ IoT อาจถูกใช้งาน ปัจจัยใดบ้างที่สามารถส่งผลต่อภาพที่ถูกจับ?
เพื่อปรับปรุงโมเดล คุณสามารถฝึกใหม่โดยใช้ภาพที่จับจากอุปกรณ์ IoT
งาน - ปรับปรุงโมเดล
-
จำแนกภาพหลายภาพของผลไม้ที่สุกและไม่สุกโดยใช้อุปกรณ์ IoT ของคุณ
-
ในพอร์ทัล Custom Vision ฝึกโมเดลใหม่โดยใช้ภาพในแท็บ Predictions
⚠️ คุณสามารถอ้างอิง คำแนะนำสำหรับการฝึกตัวจำแนกภาพใหม่ในบทเรียนที่ 1 หากจำเป็น
-
หากภาพของคุณดูแตกต่างจากภาพต้นฉบับที่ใช้ในการฝึก คุณสามารถลบภาพต้นฉบับทั้งหมดโดยเลือกในแท็บ Training Images และเลือกปุ่ม Delete เพื่อเลือกภาพ ให้เลื่อนเคอร์เซอร์ของคุณไปที่ภาพและเครื่องหมายถูกจะปรากฏขึ้น เลือกเครื่องหมายถูกนั้นเพื่อเลือกหรือยกเลิกการเลือกภาพ
-
ฝึกการทำซ้ำใหม่ของโมเดลและเผยแพร่โดยใช้ขั้นตอนด้านบน
-
อัปเดต URL ของ endpoint ในโค้ดของคุณ และรันแอปใหม่
-
ทำซ้ำขั้นตอนเหล่านี้จนกว่าคุณจะพอใจกับผลลัพธ์ของการทำนาย
🚀 ความท้าทาย
ความละเอียดของภาพหรือแสงมีผลต่อการทำนายมากแค่ไหน?
ลองเปลี่ยนความละเอียดของภาพในโค้ดอุปกรณ์ของคุณและดูว่ามันส่งผลต่อคุณภาพของภาพหรือไม่ นอกจากนี้ลองเปลี่ยนแสงดู
หากคุณต้องการสร้างอุปกรณ์สำหรับการผลิตเพื่อขายให้กับฟาร์มหรือโรงงาน คุณจะทำอย่างไรเพื่อให้มั่นใจว่ามันให้ผลลัพธ์ที่สม่ำเสมอตลอดเวลา?
แบบทดสอบหลังเรียน
ทบทวนและศึกษาด้วยตนเอง
คุณได้ฝึกโมเดล Custom Vision ของคุณโดยใช้พอร์ทัล ซึ่งต้องอาศัยการมีภาพอยู่ - และในโลกจริงคุณอาจไม่สามารถหาข้อมูลการฝึกที่ตรงกับสิ่งที่กล้องบนอุปกรณ์ของคุณจับได้ คุณสามารถแก้ไขปัญหานี้โดยการฝึกโดยตรงจากอุปกรณ์ของคุณโดยใช้ API การฝึก เพื่อฝึกโมเดลโดยใช้ภาพที่จับจากอุปกรณ์ IoT ของคุณ
- อ่านเพิ่มเติมเกี่ยวกับ API การฝึกใน การเริ่มต้นใช้งาน Custom Vision SDK
งานที่ได้รับมอบหมาย
ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามนุษย์ที่เป็นมืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้