# เรียกใช้งานตัวตรวจจับวัตถุจากอุปกรณ์ IoT ของคุณ - ฮาร์ดแวร์ IoT เสมือนและ Raspberry Pi เมื่อคุณเผยแพร่ตัวตรวจจับวัตถุแล้ว คุณสามารถใช้งานมันจากอุปกรณ์ IoT ของคุณได้ ## คัดลอกโปรเจกต์ตัวจำแนกภาพ ตัวตรวจจับสินค้าส่วนใหญ่จะเหมือนกับตัวจำแนกภาพที่คุณสร้างในบทเรียนก่อนหน้า ### งาน - คัดลอกโปรเจกต์ตัวจำแนกภาพ 1. สร้างโฟลเดอร์ชื่อ `stock-counter` บนคอมพิวเตอร์ของคุณหากคุณใช้อุปกรณ์ IoT เสมือน หรือบน Raspberry Pi ของคุณ หากคุณใช้อุปกรณ์ IoT เสมือน อย่าลืมตั้งค่าสภาพแวดล้อมเสมือน 1. ตั้งค่าฮาร์ดแวร์กล้อง * หากคุณใช้ Raspberry Pi คุณจะต้องติดตั้ง PiCamera คุณอาจต้องการยึดกล้องให้อยู่ในตำแหน่งเดียว เช่น แขวนสายเคเบิลไว้เหนือกล่องหรือกระป๋อง หรือยึดกล้องกับกล่องด้วยเทปสองหน้า * หากคุณใช้อุปกรณ์ IoT เสมือน คุณจะต้องติดตั้ง CounterFit และ CounterFit PyCamera shim หากคุณจะใช้ภาพนิ่ง ให้จับภาพบางภาพที่ตัวตรวจจับวัตถุของคุณยังไม่เคยเห็น หากคุณจะใช้เว็บแคม อย่าลืมจัดตำแหน่งให้สามารถมองเห็นสินค้าที่คุณกำลังตรวจจับได้ 1. ทำตามขั้นตอนจาก [บทเรียนที่ 2 ของโปรเจกต์การผลิต](../../../4-manufacturing/lessons/2-check-fruit-from-device/README.md#task---capture-an-image-using-an-iot-device) เพื่อจับภาพจากกล้อง 1. ทำตามขั้นตอนจาก [บทเรียนที่ 2 ของโปรเจกต์การผลิต](../../../4-manufacturing/lessons/2-check-fruit-from-device/README.md#task---classify-images-from-your-iot-device) เพื่อเรียกใช้งานตัวจำแนกภาพ โค้ดส่วนใหญ่จะถูกนำมาใช้ซ้ำเพื่อการตรวจจับวัตถุ ## เปลี่ยนโค้ดจากตัวจำแนกภาพเป็นตัวตรวจจับวัตถุ โค้ดที่คุณใช้ในการจำแนกภาพมีความคล้ายคลึงกับโค้ดที่ใช้ในการตรวจจับวัตถุ ความแตกต่างหลักคือวิธีที่เรียกใช้งานบน Custom Vision SDK และผลลัพธ์ที่ได้จากการเรียกใช้งาน ### งาน - เปลี่ยนโค้ดจากตัวจำแนกภาพเป็นตัวตรวจจับวัตถุ 1. ลบโค้ดสามบรรทัดที่ใช้ในการจำแนกภาพและประมวลผลการคาดการณ์: ```python results = predictor.classify_image(project_id, iteration_name, image) for prediction in results.predictions: print(f'{prediction.tag_name}:\t{prediction.probability * 100:.2f}%') ``` ลบสามบรรทัดนี้ออก 1. เพิ่มโค้ดต่อไปนี้เพื่อการตรวจจับวัตถุในภาพ: ```python results = predictor.detect_image(project_id, iteration_name, image) threshold = 0.3 predictions = list(prediction for prediction in results.predictions if prediction.probability > threshold) for prediction in predictions: print(f'{prediction.tag_name}:\t{prediction.probability * 100:.2f}%') ``` โค้ดนี้เรียกใช้งานเมธอด `detect_image` บน predictor เพื่อรันตัวตรวจจับวัตถุ จากนั้นรวบรวมการคาดการณ์ทั้งหมดที่มีความน่าจะเป็นสูงกว่าค่าที่กำหนด และพิมพ์ผลลัพธ์ลงในคอนโซล แตกต่างจากตัวจำแนกภาพที่คืนผลลัพธ์เพียงหนึ่งรายการต่อแท็ก ตัวตรวจจับวัตถุจะคืนผลลัพธ์หลายรายการ ดังนั้นรายการที่มีความน่าจะเป็นต่ำจะต้องถูกกรองออก 1. รันโค้ดนี้ และมันจะจับภาพ ส่งไปยังตัวตรวจจับวัตถุ และพิมพ์วัตถุที่ตรวจจับได้ออกมา หากคุณใช้อุปกรณ์ IoT เสมือน อย่าลืมตั้งค่าภาพที่เหมาะสมใน CounterFit หรือเลือกเว็บแคมของคุณ หากคุณใช้ Raspberry Pi อย่าลืมจัดตำแหน่งกล้องให้ชี้ไปยังวัตถุบนชั้นวาง ```output pi@raspberrypi:~/stock-counter $ python3 app.py tomato paste: 34.13% tomato paste: 33.95% tomato paste: 35.05% tomato paste: 32.80% ``` > 💁 คุณอาจต้องปรับค่า `threshold` ให้เหมาะสมกับภาพของคุณ คุณจะสามารถเห็นภาพที่ถูกจับ และค่าต่าง ๆ เหล่านี้ในแท็บ **Predictions** ใน Custom Vision ![กระป๋องซอสมะเขือเทศ 4 กระป๋องบนชั้นวาง พร้อมการคาดการณ์สำหรับการตรวจจับ 4 รายการที่ 35.8%, 33.5%, 25.7% และ 16.6%](../../../../../translated_images/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.th.png) > 💁 คุณสามารถค้นหาโค้ดนี้ได้ในโฟลเดอร์ [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) หรือ [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device) 😀 โปรแกรมนับสินค้าของคุณประสบความสำเร็จ! --- **ข้อจำกัดความรับผิดชอบ**: เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้