You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/th/5-retail/lessons/2-check-stock-device/single-board-computer-objec...

9.0 KiB

เรียกใช้งานตัวตรวจจับวัตถุจากอุปกรณ์ IoT ของคุณ - ฮาร์ดแวร์ IoT เสมือนและ Raspberry Pi

เมื่อคุณเผยแพร่ตัวตรวจจับวัตถุแล้ว คุณสามารถใช้งานมันจากอุปกรณ์ IoT ของคุณได้

คัดลอกโปรเจกต์ตัวจำแนกภาพ

ตัวตรวจจับสินค้าส่วนใหญ่จะเหมือนกับตัวจำแนกภาพที่คุณสร้างในบทเรียนก่อนหน้า

งาน - คัดลอกโปรเจกต์ตัวจำแนกภาพ

  1. สร้างโฟลเดอร์ชื่อ stock-counter บนคอมพิวเตอร์ของคุณหากคุณใช้อุปกรณ์ IoT เสมือน หรือบน Raspberry Pi ของคุณ หากคุณใช้อุปกรณ์ IoT เสมือน อย่าลืมตั้งค่าสภาพแวดล้อมเสมือน

  2. ตั้งค่าฮาร์ดแวร์กล้อง

    • หากคุณใช้ Raspberry Pi คุณจะต้องติดตั้ง PiCamera คุณอาจต้องการยึดกล้องให้อยู่ในตำแหน่งเดียว เช่น แขวนสายเคเบิลไว้เหนือกล่องหรือกระป๋อง หรือยึดกล้องกับกล่องด้วยเทปสองหน้า
    • หากคุณใช้อุปกรณ์ IoT เสมือน คุณจะต้องติดตั้ง CounterFit และ CounterFit PyCamera shim หากคุณจะใช้ภาพนิ่ง ให้จับภาพบางภาพที่ตัวตรวจจับวัตถุของคุณยังไม่เคยเห็น หากคุณจะใช้เว็บแคม อย่าลืมจัดตำแหน่งให้สามารถมองเห็นสินค้าที่คุณกำลังตรวจจับได้
  3. ทำตามขั้นตอนจาก บทเรียนที่ 2 ของโปรเจกต์การผลิต เพื่อจับภาพจากกล้อง

  4. ทำตามขั้นตอนจาก บทเรียนที่ 2 ของโปรเจกต์การผลิต เพื่อเรียกใช้งานตัวจำแนกภาพ โค้ดส่วนใหญ่จะถูกนำมาใช้ซ้ำเพื่อการตรวจจับวัตถุ

เปลี่ยนโค้ดจากตัวจำแนกภาพเป็นตัวตรวจจับวัตถุ

โค้ดที่คุณใช้ในการจำแนกภาพมีความคล้ายคลึงกับโค้ดที่ใช้ในการตรวจจับวัตถุ ความแตกต่างหลักคือวิธีที่เรียกใช้งานบน Custom Vision SDK และผลลัพธ์ที่ได้จากการเรียกใช้งาน

งาน - เปลี่ยนโค้ดจากตัวจำแนกภาพเป็นตัวตรวจจับวัตถุ

  1. ลบโค้ดสามบรรทัดที่ใช้ในการจำแนกภาพและประมวลผลการคาดการณ์:

    results = predictor.classify_image(project_id, iteration_name, image)
    
    for prediction in results.predictions:
        print(f'{prediction.tag_name}:\t{prediction.probability * 100:.2f}%')
    

    ลบสามบรรทัดนี้ออก

  2. เพิ่มโค้ดต่อไปนี้เพื่อการตรวจจับวัตถุในภาพ:

    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 เพื่อรันตัวตรวจจับวัตถุ จากนั้นรวบรวมการคาดการณ์ทั้งหมดที่มีความน่าจะเป็นสูงกว่าค่าที่กำหนด และพิมพ์ผลลัพธ์ลงในคอนโซล

    แตกต่างจากตัวจำแนกภาพที่คืนผลลัพธ์เพียงหนึ่งรายการต่อแท็ก ตัวตรวจจับวัตถุจะคืนผลลัพธ์หลายรายการ ดังนั้นรายการที่มีความน่าจะเป็นต่ำจะต้องถูกกรองออก

  3. รันโค้ดนี้ และมันจะจับภาพ ส่งไปยังตัวตรวจจับวัตถุ และพิมพ์วัตถุที่ตรวจจับได้ออกมา หากคุณใช้อุปกรณ์ IoT เสมือน อย่าลืมตั้งค่าภาพที่เหมาะสมใน CounterFit หรือเลือกเว็บแคมของคุณ หากคุณใช้ Raspberry Pi อย่าลืมจัดตำแหน่งกล้องให้ชี้ไปยังวัตถุบนชั้นวาง

    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%

💁 คุณสามารถค้นหาโค้ดนี้ได้ในโฟลเดอร์ code-detect/pi หรือ code-detect/virtual-iot-device

😀 โปรแกรมนับสินค้าของคุณประสบความสำเร็จ!


ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้