← กลับหน้าแรก
บทที่ 5

OpenMV สำหรับ Embedded Vision

Embedded Vision Power

⏱️ เวลาอ่าน: 10 นาที 📊 ระดับ: ปานกลาง

OpenMV Cam: กล้อง AI ขนาดเล็ก

📷 OpenMV Cam

เป็นกล้องอัจฉริยะขนาดเล็กที่รวมเซ็นเซอร์ภาพ ไมโครคอนโทรลเลอร์ และซอฟต์แวร์ประมวลผลภาพเข้าไว้ด้วยกัน ทำให้สามารถทำงาน Computer Vision ได้โดยไม่ต้องเชื่อมต่อกับคอมพิวเตอร์

OpenMV Cam 3D

คุณสมบัติเด่นของ OpenMV Cam

📏

ขนาดเล็ก

ประมาณ 45 × 36 มม. น้ำหนักเพียง 16 กรัม

🔋

ประหยัดพลังงาน

ใช้ไฟเพียง 250 mA ที่ 5V สามารถทำงานด้วยแบตเตอรี่ได้หลายชั่วโมง

🧠

ประมวลผลในตัว

มีไมโครคอนโทรลเลอร์ STM32 ความเร็วสูงในตัว

💾

หน่วยความจำ

มี RAM 512KB และ Flash 2MB สำหรับเก็บโค้ดและภาพ

🔌

พอร์ตเชื่อมต่อ

มี GPIO, I2C, SPI, UART สำหรับเชื่อมต่อกับเซ็นเซอร์และอุปกรณ์อื่นๆ

🔍

เลนส์หลากหลาย

สามารถเปลี่ยนเลนส์ได้ตามความต้องการ เช่น มุมกว้าง มุมแคบ หรือเลนส์แบบปรับโฟกัส

รุ่นยอดนิยมของ OpenMV Cam

🚀 OpenMV Cam H7

รุ่นล่าสุด ประสิทธิภาพสูงสุด เหมาะสำหรับงานซับซ้อน

⚖️ OpenMV Cam M7

รุ่นกลาง ราคาประหยัดกว่า เหมาะสำหรับผู้เริ่มต้น

💰 OpenMV Cam M4

รุ่นประหยัด เหมาะสำหรับงานพื้นฐาน

เปรียบเทียบ PC vs Embedded Vision

MicroPython: Python สำหรับไมโครคอนโทรลเลอร์

🐍 MicroPython

เป็นเวอร์ชันย่อส่วนของ Python ที่ออกแบบมาสำหรับอุปกรณ์ที่มีทรัพยากรจำกัด ทำให้การเขียนโค้ด Computer Vision เป็นเรื่องง่าย แม้สำหรับผู้ที่ไม่มีพื้นฐานการเขียนโปรแกรมมาก่อน

ข้อดีของ MicroPython

📚

เรียนรู้ง่าย

ไวยากรณ์เหมือน Python ที่เป็นมิตรกับผู้เริ่มต้น

พัฒนาเร็ว

ไม่ต้อง compile สามารถรันโค้ดได้ทันที

🔧

ไลบรารีครบ

มีฟังก์ชัน Computer Vision พร้อมใช้งาน

🐛

Debug ง่าย

สามารถทดสอบและแก้ไขโค้ดได้แบบ real-time

📝 ตัวอย่างโค้ด MicroPython พื้นฐาน

import sensor, image, time

# ตั้งค่ากล้อง
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 2000)

# วนลูปถ่ายภาพ
while(True):
    img = sensor.snapshot()
    print("ถ่ายภาพแล้ว!")

ฟังก์ชันพื้นฐานของ OpenMV

การตั้งค่ากล้องและถ่ายภาพ

📷 sensor.reset()

รีเซ็ตกล้องให้กลับสู่สถานะเริ่มต้น

🎨 sensor.set_pixformat()

กำหนดรูปแบบสี เช่น RGB565, GRAYSCALE

📐 sensor.set_framesize()

กำหนดขนาดภาพ เช่น QVGA (320x240), VGA (640x480)

📸 sensor.snapshot()

ถ่ายภาพและส่งคืนเป็น image object

การประมวลผลภาพพื้นฐาน

🔄 img.to_grayscale()

แปลงภาพเป็นขาวดำ

🌫️ img.gaussian()

ลดสั�ญาณรบกวนด้วย Gaussian filter

📐 img.find_edges()

ตรวจจับขอบในภาพ

🔍 img.binary()

แปลงเป็นภาพ binary (ขาว-ดำ)

การตรวจจับสี: หัวใจของการวินิจฉัยโรคพืช

การตรวจจับสีเป็นฟังก์ชันที่สำคัญที่สุดสำหรับการวินิจฉัยโรคพืช เนื่องจากโรคส่วนใหญ่แสดงอาการผ่านการเปลี่ยนแปลงสีของใบ

ตัวอย่างการตรวจจับสี

การกำหนดช่วงสี (Color Thresholding)

📝 ตัวอย่างการตรวจจับใบเหลือง

import sensor, image, time

# ตั้งค่ากล้อง
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 2000)

# กำหนดช่วงสีเหลือง (LAB color space)
yellow_threshold = (65, 100, -10, 10, 15, 45)

while(True):
    img = sensor.snapshot()
    
    # หาพื้นที่สีเหลือง
    blobs = img.find_blobs([yellow_threshold], 
                          pixels_threshold=200, 
                          area_threshold=200)
    
    # วาดกรอบรอบพื้นที่ที่พบ
    for blob in blobs:
        img.draw_rectangle(blob.rect())
        img.draw_cross(blob.cx(), blob.cy())
        print("พบใบเหลือง! พื้นที่:", blob.area())

การใช้งานจริงในสวนทุเรียน

🟡

ตรวจจับใบเหลือง

บ่งชี้การขาดธาตุไนโตรเจนหรือการแก่ตัวผิดปกติ

🟤

ตรวจจับจุดสีน้ำตาล

อาจเป็นโรคใบไหม้หรือการติดเชื้อรา

ตรวจจับจุดดำ

บ่งชี้โรคใบจุดดำหรือการติดเชื้อแบคทีเรีย

🟢

ประเมินความเขียว

วัดระดับคลอโรฟิลล์และสุขภาพใบ

การประยุกต์ใช้ในสวนทุเรียน

🔍

เครื่องตรวจสุขภาพใบแบบพกพา

  • OpenMV Cam ติดตั้งในกล่องกันน้ำ
  • แบตเตอรี่ลิเธียมสำหรับใช้งานทั้งวัน
  • จอ LCD แสดงผลการวินิจฉัยทันที
  • บันทึกข้อมูลลง SD card
🚁

กล้องติดโดรนสำหรับสำรวจสวน

  • น้ำหนักเบา ไม่กระทบการบินของโดรน
  • ประมวลผลภาพขณะบิน
  • ส่งสัญญาณเตือนเมื่อพบพื้นที่ผิดปกติ
  • สร้างแผนที่สีแสดงสุขภาพต้นไม้

ระบบตรวจสอบอัตโนมัติ 24 ชั่วโมง

  • ติดตั้งประจำที่ในจุดสำคัญของสวน
  • ถ่ายภาพและวิเคราะห์ทุก 30 นาที
  • ส่งแจ้งเตือนผ่าน WiFi เมื่อพบปัญหา
  • ทำงานด้วยพลังงานแสงอาทิตย์
📊

เครื่องนับและคัดแยกผลทุเรียน

  • ติดตั้งบนสายพานลำเลียง
  • นับจำนวนผลและวัดขนาดอัตโนมัติ
  • คัดแยกตามเกรดคุณภาพ
  • บันทึกสถิติการผลิตรายวัน

การเริ่มต้นใช้งาน OpenMV

1

เตรียมอุปกรณ์

  • OpenMV Cam (แนะนำ M7 สำหรับผู้เริ่มต้น)
  • สาย USB micro สำหรับเชื่อมต่อคอมพิวเตอร์
  • MicroSD card (ถ้าต้องการเก็บภาพ)
2

ติดตั้งซอฟต์แวร์

  • ดาวน์โหลด OpenMV IDE จาก openmv.io
  • ติดตั้งและเชื่อมต่อกับ OpenMV Cam
  • อัปเดต firmware ให้เป็นเวอร์ชันล่าสุด
3

ทดลองโค้ดตัวอย่าง

  • เริ่มจากตัวอย่างใน OpenMV IDE
  • ลองปรับค่าพารามิเตอร์ต่างๆ
  • ทดสอบกับใบทุเรียนจริง
4

พัฒนาโครงการของตนเอง

  • กำหนดปัญหาที่ต้องการแก้ไข
  • ออกแบบระบบและเขียนโค้ด
  • ทดสอบและปรับปรุงในสภาพแวดล้อมจริง

💡 เคล็ดลับสำหรับผู้เริ่มต้น

  • เริ่มง่ายๆ: ทดลองตรวจจับสีก่อน แล้วค่อยไปสู่งานซับซ้อน
  • ใช้แสงที่เหมาะสม: แสงธรรมชาติหรือ LED สีขาวให้ผลลัพธ์ที่ดีที่สุด
  • เก็บข้อมูลตัวอย่าง: ถ่ายภาพใบทุเรียนในสภาวะต่างๆ เพื่อปรับแต่งพารามิเตอร์
  • เข้าร่วมชุมชน: ฟอรัม OpenMV มีผู้เชี่ยวชาญคอยช่วยเหลือ

🎯 สรุป

OpenMV Cam เป็นเครื่องมือที่ทรงพลังสำหรับนำ Computer Vision ไปใช้ในสวนทุเรียน ด้วยขนาดเล็ก ใช้งานง่าย และราคาไม่แพง ทำให้เกษตรกรสามารถเข้าถึงเทคโนโลยีขั้นสูงได้อย่างง่ายดาย