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

Computer Vision ด้วย OpenCV

Computer Vision Basics

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

ให้คอมพิวเตอร์ "มองเห็น" และ "เข้าใจ"

👁️ Computer Vision

เป็นเทคโนโลยีที่ทำให้คอมพิวเตอร์สามารถ "มองเห็น" และ "เข้าใจ" สิ่งที่อยู่ในภาพหรือวิดีโอได้ เทคโนโลยีนี้กำลังเปลี่ยนโฉมการทำเกษตรกรรมทั่วโลก

กระบวนการ Computer Vision

1

การรับภาพ (Image Acquisition)

กล้องดิจิทัลหรือเซ็นเซอร์ภาพจับภาพเป็นข้อมูลดิจิทัล

2

การประมวลผลภาพ (Image Processing)

ปรับปรุงคุณภาพภาพ ลดสัญญาณรบกวน ปรับความคมชัด

3

การวิเคราะห์ภาพ (Image Analysis)

สกัดข้อมูลสำคัญ เช่น รูปร่าง สี ขอบ พื้นผิว

4

การเข้าใจภาพ (Image Understanding)

ตีความสิ่งที่เห็นในภาพ เช่น ระบุว่าเป็นใบทุเรียนที่เป็นโรค

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

🔬

ตรวจจับโรคพืช

จากการวิเคราะห์สีและรูปแบบบนใบ

📏

ประเมินการเติบโต

โดยวัดขนาดและสีของต้นและผล

🏆

คัดแยกคุณภาพผลผลิต

ตามขนาด รูปร่าง และตำหนิ

🔢

นับจำนวนผล

เพื่อคาดการณ์ผลผลิต

ขั้นตอนการประมวลผลภาพ

OpenCV: เครื่องมือทรงพลังสำหรับ Computer Vision

📚 OpenCV (Open Source Computer Vision Library)

เป็นไลบรารีโอเพนซอร์สที่มีฟังก์ชันมากกว่า 2,500 ฟังก์ชันสำหรับงาน Computer Vision ทำให้การพัฒนาแอปพลิเคชันที่ใช้การมองเห็นเป็นเรื่องง่ายขึ้น

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

💰

ฟรีและโอเพนซอร์ส

ใช้งานได้โดยไม่มีค่าใช้จ่าย

ประสิทธิภาพสูง

เขียนด้วยภาษา C/C++ ที่ทำงานได้รวดเร็ว

🌐

หลากหลายแพลตฟอร์ม

ทำงานได้บน Windows, Linux, macOS, Android, iOS

💻

รองรับหลายภาษา

Python, Java, C++, MATLAB

👥

ชุมชนขนาดใหญ่

มีผู้ใช้และนักพัฒนาจำนวนมาก

💡 คำแนะนำ

สำหรับเกษตรกร Python + OpenCV เป็นคู่ที่เหมาะสมที่สุด เนื่องจาก Python เป็นภาษาที่เรียนรู้ง่าย และมีไลบรารีสนับสนุนงานวิทยาศาสตร์ข้อมูลมากมาย

การประมวลผลภาพ: อ่าน แปลง ปรับแต่ง

การประมวลผลภาพเป็นขั้นตอนสำคัญใน Computer Vision ที่ช่วยเตรียมภาพให้พร้อมสำหรับการวิเคราะห์ขั้นสูง

1. การอ่านและแสดงภาพ

📝 ตัวอย่างโค้ด Python + OpenCV

import cv2

# อ่านภาพ
img = cv2.imread('durian_leaf.jpg')

# แสดงภาพ
cv2.imshow('Durian Leaf', img)
cv2.waitKey(0)

2. การแปลงสี

ภาพดิจิทัลมีหลายโมเดลสี แต่ละโมเดลเหมาะกับงานวิเคราะห์ต่างกัน:

🌈 RGB (Red, Green, Blue)

โมเดลสีพื้นฐานที่ใช้ในกล้องและจอแสดงผล

⚫ Grayscale

ภาพขาวดำ ลดความซับซ้อนในการประมวลผล

🎨 HSV (Hue, Saturation, Value)

เหมาะสำหรับการตรวจจับสี เช่น ใบเหลืองที่เป็นโรค

📝 การแปลงสี

# แปลงเป็นภาพขาวดำ
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# แปลงเป็น HSV
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
เปรียบเทียบก่อน-หลังการประมวลผล

3. การกรองภาพ (Image Filtering)

🌫️ Gaussian Blur

ลดสัญญาณรบกวนและทำให้ภาพนุ่มขึ้น

📐 Edge Detection

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

🔍 Morphological Operations

ปรับปรุงรูปร่างของวัตถุในภาพ

📝 การกรองภาพ

# ลดสัญญาณรบกวน
blurred = cv2.GaussianBlur(img, (15, 15), 0)

# ตรวจจับขอบ
edges = cv2.Canny(gray, 50, 150)

การตรวจจับลักษณะเฉพาะ

การตรวจจับสี (Color Detection)

สำคัญสำหรับการวินิจฉัยโรคพืชที่มักแสดงอาการผ่านการเปลี่ยนแปลงสี:

🟡 ใบเหลือง

อาจบ่งชี้การขาดธาตุไนโตรเจน

🟤 จุดสีน้ำตาล

อาจเป็นโรคใบไหม้หรือโรคราน้ำค้าง

⚫ จุดดำ

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

📝 การตรวจจับสีเหลือง

# กำหนดช่วงสีเหลืองใน HSV
lower_yellow = np.array([20, 100, 100])
upper_yellow = np.array([30, 255, 255])

# สร้าง mask สำหรับสีเหลือง
mask = cv2.inRange(hsv, lower_yellow, upper_yellow)

# หาพื้นที่สีเหลือง
yellow_area = cv2.bitwise_and(img, img, mask=mask)

การตรวจจับรูปร่าง (Shape Detection)

ช่วยในการระบุและนับจำนวนผลทุเรียน หรือวิเคราะห์รูปร่างของใบที่ผิดปกติ:

🔵 วงกลม/วงรี

สำหรับตรวจจับผลทุเรียน

🍃 รูปใบ

วิเคราะห์ความผิดปกติของใบ

📐 เส้นตรง

ตรวจจับกิ่งและลำต้น

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

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

📱

แอปวินิจฉัยโรคด้วยสมาร์ทโฟน

  • ถ่ายภาพใบทุเรียนด้วยกล้องโทรศัพท์
  • OpenCV วิเคราะห์สีและรูปแบบบนใบ
  • แสดงผลการวินิจฉัยและคำแนะนำการรักษา
🚁

ระบบตรวจสอบสวนด้วยโดรน

  • โดรนบินถ่ายภาพทั่วสวนในมุมสูง
  • Computer Vision วิเคราะห์สุขภาพต้นไม้
  • สร้างแผนที่สีแสดงพื้นที่ที่ต้องดูแลเป็นพิเศษ
🤖

หุ่นยนต์เก็บเกี่ยวอัตโนมัติ

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

ระบบคัดแยกคุณภาพผลผลิต

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

ลองทำด้วยตนเอง: โครงการง่ายๆ

🎯 โครงการ: ตรวจจับใบทุเรียนที่เป็นโรค

เครื่องมือที่ต้องใช้:

  • คอมพิวเตอร์หรือ Raspberry Pi
  • กล้อง USB หรือกล้องในตัว
  • Python และ OpenCV

ขั้นตอนการทำ:

1. ติดตั้ง OpenCV
pip install opencv-python
2. เขียนโค้ดพื้นฐาน
import cv2
import numpy as np

# เปิดกล้อง
cap = cv2.VideoCapture(0)

while True:
    ret, frame = cap.read()
    
    # แปลงเป็น HSV
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
    
    # ตรวจจับสีเหลือง (ใบเป็นโรค)
    lower_yellow = np.array([20, 100, 100])
    upper_yellow = np.array([30, 255, 255])
    mask = cv2.inRange(hsv, lower_yellow, upper_yellow)
    
    # แสดงผล
    cv2.imshow('Original', frame)
    cv2.imshow('Disease Detection', mask)
    
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()
3. ปรับปรุงและทดสอบ

ลองปรับค่าช่วงสีและเพิ่มการกรองเพื่อให้ได้ผลลัพธ์ที่แม่นยำขึ้น

📚 แหล่งเรียนรู้เพิ่มเติม

  • เอกสาร OpenCV: docs.opencv.org
  • คอร์สออนไลน์: Coursera Computer Vision
  • ชุมชนไทย: กลุ่ม Facebook "OpenCV Thailand"
  • ตัวอย่างโค้ด: GitHub opencv/opencv

🎯 สรุป

Computer Vision ด้วย OpenCV เปิดโอกาสให้เกษตรกรสามารถใช้ "ตา" ของคอมพิวเตอร์ช่วยดูแลสวนทุเรียนได้อย่างมีประสิทธิภาพ เริ่มจากโครงการง่ายๆ และค่อยๆ พัฒนาไปสู่ระบบที่ซับซ้อนมากขึ้น