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/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md

11 KiB

จับภาพ - ฮาร์ดแวร์ IoT เสมือน

ในส่วนนี้ของบทเรียน คุณจะเพิ่มเซ็นเซอร์กล้องให้กับอุปกรณ์ IoT เสมือนของคุณ และอ่านภาพจากกล้องนั้น

ฮาร์ดแวร์

อุปกรณ์ IoT เสมือนจะใช้กล้องจำลองที่ส่งภาพจากไฟล์หรือจากเว็บแคมของคุณ

เพิ่มกล้องใน CounterFit

เพื่อใช้กล้องเสมือน คุณต้องเพิ่มกล้องในแอป CounterFit

งาน - เพิ่มกล้องใน CounterFit

เพิ่มกล้องในแอป CounterFit

  1. สร้างแอป Python ใหม่ในคอมพิวเตอร์ของคุณในโฟลเดอร์ชื่อ fruit-quality-detector โดยมีไฟล์เดียวชื่อ app.py และสร้างสภาพแวดล้อมเสมือนของ Python (virtual environment) จากนั้นเพิ่มแพ็กเกจ pip ของ CounterFit

    ⚠️ คุณสามารถดู คำแนะนำในการสร้างและตั้งค่าโปรเจกต์ Python ของ CounterFit ในบทเรียนที่ 1 หากจำเป็น

  2. ติดตั้งแพ็กเกจ Pip เพิ่มเติมเพื่อเพิ่ม CounterFit shim ที่สามารถสื่อสารกับเซ็นเซอร์กล้องโดยจำลองบางส่วนของ แพ็กเกจ Picamera Pip ตรวจสอบให้แน่ใจว่าคุณติดตั้งจากเทอร์มินัลที่เปิดใช้งาน virtual environment แล้ว

    pip install counterfit-shims-picamera
    
  3. ตรวจสอบให้แน่ใจว่าแอปเว็บ CounterFit กำลังทำงานอยู่

  4. สร้างกล้อง:

    1. ในกล่อง Create sensor ในแถบ Sensors ให้เลือก Sensor type เป็น Camera

    2. ตั้งค่า Name เป็น Picamera

    3. เลือกปุ่ม Add เพื่อสร้างกล้อง

    การตั้งค่ากล้อง

    กล้องจะถูกสร้างและปรากฏในรายการเซ็นเซอร์

    กล้องที่ถูกสร้าง

เขียนโปรแกรมกล้อง

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

งาน - เขียนโปรแกรมกล้อง

เขียนโปรแกรมสำหรับอุปกรณ์

  1. ตรวจสอบให้แน่ใจว่าแอป fruit-quality-detector เปิดอยู่ใน VS Code

  2. เปิดไฟล์ app.py

  3. เพิ่มโค้ดต่อไปนี้ที่ด้านบนของไฟล์ app.py เพื่อเชื่อมต่อแอปกับ CounterFit:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    
  4. เพิ่มโค้ดต่อไปนี้ในไฟล์ app.py ของคุณ:

    import io
    from counterfit_shims_picamera import PiCamera
    

    โค้ดนี้นำเข้าไลบรารีที่จำเป็น รวมถึงคลาส PiCamera จากไลบรารี counterfit_shims_picamera

  5. เพิ่มโค้ดต่อไปนี้ด้านล่างเพื่อเริ่มต้นกล้อง:

    camera = PiCamera()
    camera.resolution = (640, 480)
    camera.rotation = 0
    

    โค้ดนี้สร้างออบเจ็กต์ PiCamera และตั้งค่าความละเอียดเป็น 640x480 แม้ว่าจะรองรับความละเอียดที่สูงกว่า แต่ตัวจำแนกภาพ (image classifier) ทำงานกับภาพที่มีขนาดเล็กกว่ามาก (227x227) ดังนั้นจึงไม่จำเป็นต้องจับภาพที่มีขนาดใหญ่กว่า

    บรรทัด camera.rotation = 0 ตั้งค่าการหมุนของภาพเป็นองศา หากคุณต้องการหมุนภาพจากเว็บแคมหรือไฟล์ ให้ตั้งค่าตามความเหมาะสม ตัวอย่างเช่น หากคุณต้องการเปลี่ยนภาพกล้วยในโหมดแนวนอนของเว็บแคมให้เป็นแนวตั้ง ให้ตั้งค่า camera.rotation = 90

  6. เพิ่มโค้ดต่อไปนี้ด้านล่างเพื่อจับภาพในรูปแบบข้อมูลไบนารี:

    image = io.BytesIO()
    camera.capture(image, 'jpeg')
    image.seek(0)
    

    โค้ดนี้สร้างออบเจ็กต์ BytesIO เพื่อเก็บข้อมูลไบนารี ภาพจะถูกอ่านจากกล้องในรูปแบบไฟล์ JPEG และเก็บไว้ในออบเจ็กต์นี้ ออบเจ็กต์นี้มีตัวชี้ตำแหน่งเพื่อระบุว่าข้อมูลอยู่ที่ตำแหน่งใด ดังนั้นบรรทัด image.seek(0) จะย้ายตำแหน่งกลับไปที่จุดเริ่มต้นเพื่อให้สามารถอ่านข้อมูลทั้งหมดได้ในภายหลัง

  7. ด้านล่างนี้ ให้เพิ่มโค้ดต่อไปนี้เพื่อบันทึกภาพลงในไฟล์:

    with open('image.jpg', 'wb') as image_file:
        image_file.write(image.read())
    

    โค้ดนี้เปิดไฟล์ชื่อ image.jpg เพื่อเขียน จากนั้นอ่านข้อมูลทั้งหมดจากออบเจ็กต์ BytesIO และเขียนลงในไฟล์

    💁 คุณสามารถจับภาพโดยตรงลงในไฟล์แทนออบเจ็กต์ BytesIO ได้โดยส่งชื่อไฟล์ไปยังคำสั่ง camera.capture เหตุผลที่ใช้ BytesIO คือในภายหลังในบทเรียนนี้ คุณสามารถส่งภาพไปยังตัวจำแนกภาพได้

  8. ตั้งค่าภาพที่กล้องใน CounterFit จะจับภาพ คุณสามารถตั้งค่า Source เป็น File แล้วอัปโหลดไฟล์ภาพ หรือเลือก Source เป็น WebCam และภาพจะถูกจับจากเว็บแคมของคุณ ตรวจสอบให้แน่ใจว่าคุณเลือกปุ่ม Set หลังจากเลือกภาพหรือเลือกเว็บแคม

    CounterFit ตั้งค่าไฟล์เป็นแหล่งภาพ และเว็บแคมแสดงภาพตัวอย่างของคนถือกล้วย

  9. ภาพจะถูกจับและบันทึกเป็น image.jpg ในโฟลเดอร์ปัจจุบัน คุณจะเห็นไฟล์นี้ในตัวสำรวจของ VS Code เลือกไฟล์เพื่อดูภาพ หากภาพต้องการการหมุน ให้ปรับบรรทัด camera.rotation = 0 ตามความเหมาะสมและถ่ายภาพใหม่

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

😀 โปรแกรมกล้องของคุณสำเร็จแล้ว!


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