306 words
2 minutes
Plant Disease Detection

ระบบตรวจจับโรคพืชด้วย AI#

สวัสดีครับ วันนี้ผมจะมาเล่าให้ฟังเกี่ยวกับโปรเจกต์ตรวจจับโรคพืชด้วย AI ครับ

โปรเจกต์นี้ผมทำขึ้นมาเพราะสนใจเรื่อง AI กับการเกษตรครับ พอลองศึกษาดูพบว่าปัญหาโรคพืชเป็นเรื่องที่เกษตรกรต้องเจอบ่อยมาก บางทีกว่าจะรู้ว่าเป็นโรคอะไรก็สายไปแล้วครับ ผมเลยลองใช้ YOLOv26 มาฝึกให้ตรวจจับโรคพืชจากภาพใบไม้ได้แบบ Real-time เลยครับ ผลออกมาดีมากเลย ได้ mAP50 ถึง 91.67% ครับ

สำหรับการศึกษาเท่านั้น — โปรเจกต์นี้จัดทำขึ้นเพื่อเป็นกรณีศึกษาด้าน Computer Vision ในภาคการเกษตรครับ


ระบบทำอะไรได้บ้าง#

  • ตรวจจับโรคพืชจากรูปใบไม้ได้แบบ Real-time ครับ
  • รองรับพืช 3 ชนิด คือ ถั่ว สตรอเบอรี่ และมะเขือเทศ
  • ตรวจจับได้ 12 โรค ด้วยกันครับ
  • ความแม่นยำสูงถึง 91.67% (mAP50) เลยครับ
  • ใช้งานง่าย แค่โหลดโมเดลแล้วส่งรูปเข้ามาก็ได้ผลทันทีครับ

ประสิทธิภาพของโมเดล#

Model : YOLOv26n
Dataset : 5,493 รูป
Epochs : 100
Image Size : 640×640px
mAP50 : 91.67%

ผมเลือกใช้ YOLOv26n (Nano) เพราะมันเล็กและเร็วมากครับ เหมาะกับการใช้งานบนอุปกรณ์ที่ทรัพยากรจำกัด ถ้าอยากได้ความแม่นยำมากขึ้นก็ลองเปลี่ยนไปใช้ขนาดที่ใหญ่กว่าได้ครับ เช่น YOLOv26s หรือ YOLOv26m


โรคที่รองรับ (12 ชนิด)#

🫘 ถั่ว (Beans) — 2 โรค#

โรคคำอธิบาย
Angular Leaf Spotจุดเหลี่ยมบนใบถั่วครับ เกิดจากเชื้อแบคทีเรีย
Rustโรคราสนิม จะเห็นเป็นจุดสีน้ำตาลแดงบนใบครับ

🍓 สตรอเบอรี่ (Strawberry) — 7 โรค#

โรคคำอธิบาย
Angular Leaf Spotจุดเหลี่ยมบนใบสตรอเบอรี่ครับ
Anthracnose Fruit Rotโรคแอนแทรคโนส ทำให้ผลเน่าครับ
Blossom Blightโรคดอกไหม้ ทำให้ดอกเสียหาย
Gray Moldราสีเทา พบบ่อยในสภาพอากาศชื้นครับ
Leaf Spotจุดบนใบ สังเกตได้ง่ายเลยครับ
Powdery Mildew Fruitราแป้งบนผลสตรอเบอรี่
Powdery Mildew Leafราแป้งบนใบสตรอเบอรี่ครับ

🍅 มะเขือเทศ (Tomato) — 3 โรค#

โรคคำอธิบาย
Blightโรคใบไหม้ ทำให้ใบเปลี่ยนสีและเหี่ยวครับ
Leaf Moldราบนใบ มักเกิดในโรงเรือนที่อากาศไม่ถ่ายเทครับ
Spider Mitesไรแดง ทำให้ใบมีจุดซีดเล็กๆ กระจายทั่วครับ

เทคโนโลยีที่ใช้#

เทคโนโลยีรายละเอียด
YOLOv26โมเดล Object Detection รุ่นล่าสุดครับ
UltralyticsFramework สำหรับ YOLO ใช้งานง่ายมากเลย
Pythonภาษาหลักที่ใช้พัฒนาครับ
Roboflowแหล่ง Dataset สำหรับโปรเจกต์นี้

สิ่งที่ต้องมีก่อนเริ่ม#

ต้องมี Python 3.8 ขึ้นไปครับ แล้วก็ต้องติดตั้ง ultralytics ด้วยนะครับ ถ้ามี GPU ก็ยิ่งดีเลยครับ จะประมวลผลได้เร็วขึ้นมาก


วิธีเริ่มใช้งาน#

ติดตั้ง dependencies ครับ#

Terminal window
pip install ultralytics

รันโปรแกรมได้เลยครับ#

Terminal window
python main.py

แค่นี้ก็ใช้งานได้แล้วครับ!


ตัวอย่างการเรียกใช้ผ่านโค้ด#

ถ้าอยากเรียกใช้โมเดลผ่านโค้ด Python โดยตรง ก็ทำได้ง่ายมากเลยครับ

ตรวจจับจากรูปภาพ#

from ultralytics import YOLO
# โหลดโมเดลที่ฝึกไว้ครับ
model = YOLO("runs/detect/train/weights/best.pt")
# ตรวจจับโรคพืชจากรูป
results = model.predict("leaf_photo.jpg", conf=0.5)
# แสดงผลลัพธ์ครับ
results[0].show()

ตรวจจับแบบ Real-time จาก Webcam#

from ultralytics import YOLO
import cv2
model = YOLO("runs/detect/train/weights/best.pt")
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if not ret:
break
results = model.predict(frame, conf=0.5, verbose=False)
annotated_frame = results[0].plot()
cv2.imshow("Plant Disease Detection", annotated_frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()

ใช้ตรวจจับผ่านกล้องแบบ Real-time ได้เลยครับ เหมาะมากถ้าจะเอาไปใช้ในภาคสนาม

ตรวจจับจากหลายรูปพร้อมกัน#

from ultralytics import YOLO
model = YOLO("runs/detect/train/weights/best.pt")
# ตรวจจับรูปทั้งโฟลเดอร์ครับ
results = model.predict(
source="test_images/",
conf=0.5,
save=True
)
# ดูผลลัพธ์ของแต่ละรูป
for result in results:
boxes = result.boxes
for box in boxes:
cls = int(box.cls[0])
conf = float(box.conf[0])
class_name = model.names[cls]
print(f"พบ: {class_name} ความมั่นใจ: {conf:.2%}")

ข้อมูลเกี่ยวกับ Dataset#

หัวข้อรายละเอียด
จำนวนภาพ5,493 รูปครับ
จำนวน Classes12 โรค
พืชที่รองรับถั่ว, สตรอเบอรี่, มะเขือเทศ
แหล่งที่มาRoboflow Universe
ลิขสิทธิ์CC BY 4.0

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


สิ่งที่ได้เรียนรู้#

โปรเจกต์นี้ทำให้ผมได้เรียนรู้หลายอย่างเลยครับ

  • การ ฝึก YOLO ด้วย Custom Dataset ตั้งแต่เตรียมข้อมูลจนถึงได้โมเดลออกมา
  • การ ปรับ Hyperparameters เพื่อให้โมเดลมีความแม่นยำสูงขึ้น
  • การ ประยุกต์ใช้ AI กับการเกษตร เพื่อแก้ปัญหาในชีวิตจริง
  • การใช้ Roboflow สำหรับจัดการ Dataset และ Annotation ครับ
  • เข้าใจเรื่อง mAP, Precision, Recall ในงาน Object Detection มากยิ่งขึ้น

ลิงก์โปรเจกต์#


ขอบคุณ#

  • Roboflow Universe สำหรับ Dataset ที่ดีมากครับ
  • Ultralytics สำหรับ Framework YOLO ที่ใช้งานง่ายสุดๆ ครับ

License#

โปรเจกต์นี้เป็น Open Source ครับ นำไปศึกษาและต่อยอดได้ตามสบายเลย


หากมีคำถามหรือข้อเสนอแนะ สามารถเปิด Issue ได้เลยนะครับ ขอบคุณที่สนใจครับ 🙏

Plant Disease Detection
https://blog.lukkid.dev/posts/plant-disease-detection/
Author
LUKKID
Published at
2026-03-04
License
CC BY-NC-SA 4.0