Bối cảnh và vấn đề nghiên cứu

Khóa luận tốt nghiệp kỹ sư ngành Kỹ thuật Máy tính của tác giả Vương Mạnh Kiên và Phan Hoàng Anh Tuấn (Trường Đại học Công nghệ Thông tin – Đại học Quốc gia TP.HCM, dưới sự hướng dẫn của TS. Đoàn Duy) tập trung giải quyết bài toán chẩn đoán tự động bệnh hại trên cây trồng thông qua thị giác máy tính.

Trong bối cảnh nông nghiệp toàn cầu đang chuyển dịch mạnh mẽ sang mô hình "Nông nghiệp chính xác" (Precise Agriculture), việc ứng dụng trí tuệ nhân tạo, máy học và kết nối vạn vật (IoT) giúp người nông dân phát hiện sớm các mầm bệnh hại, từ đó giảm thiểu tổn thất kinh tế và nâng cao năng suất canh tác. Cây xoài (Mangifera indica) là loại cây ăn trái có giá trị thương mại và xuất khẩu lớn tại Việt Nam. Tuy nhiên, quá trình canh tác thường xuyên gặp khó khăn do các bệnh hại xuất hiện trên lá như đốm đen, mụn ghẻ, thán thư nhưng người làm vườn thiếu kiến thức chuyên sâu để định danh chính xác và kịp thời áp dụng biện pháp phòng trị.

Tác giả đã tiến hành tổng quan các công trình nghiên cứu trong và ngoài nước liên quan đến nhận dạng bệnh cây trồng:

Tên đề tài / Đối tượng Công nghệ máy học sử dụng Tỷ lệ chính xác
Nhận dạng bệnh lá lúa (Rice Leaf Disease Detection, 2019) KNN, J48 (Decision Tree), Naive Bayes (NB), Logistic Regression (LR) > 97% (97,23% với 10-fold cross validation)
Nhận dạng bệnh lá ngô (Maize Leaf Disease Detection, 2020) Naive Bayes (NB), Decision Tree (DT), KNN, Support Vector Machine (SVM), Random Forest (RF) 79,23%
Nhận dạng bệnh lá cây bông (Cotton leaf disease detection, 2017) Thuật toán hồi quy (Regression algorithm), kết hợp ứng dụng điện thoại 83,26%
Nhận dạng sâu bệnh trên lá bưởi (Việt Nam, 2017) Support Vector Machine (SVM) trên 500 ảnh thực nghiệm 99,2%
Nhận dạng bệnh trên lá xoài (Đề tài của nhóm tác giả) Phân đoạn đối tượng (Instance Segmentation) với Mask R-CNN > 80% (cao nhất 95%)

Tác giả chỉ ra rằng phần lớn các công trình nghiên cứu trước đây là các sản phẩm rời rạc, thuần túy tra cứu thông tin mà chưa tạo ra một hệ thống dịch vụ tương tác hoàn chỉnh, thiếu sự kết nối trực tiếp với chuyên gia nông nghiệp để tư vấn chuyên sâu.

Mục tiêu và nhiệm vụ nghiên cứu:

  1. Xây dựng bộ cơ sở dữ liệu hình ảnh về các loại bệnh trên lá cây xoài phục vụ nghiên cứu và ứng dụng.
  2. Thiết kế và huấn luyện mô hình máy học có khả năng phân đoạn và phân loại các loại bệnh trên lá cây xoài với độ chính xác cao dựa trên kiến trúc Mask R-CNN.
  3. Phát triển hệ thống phần mềm bao gồm ứng dụng di động và website hỗ trợ nông dân chụp ảnh, tự động chẩn đoán bệnh, tra cứu phác đồ điều trị và tương tác với chuyên gia nông nghiệp.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng: Lá cây xoài trưởng thành có biểu hiện triệu chứng bệnh rõ rệt.
  • Phạm vi nhận diện gồm 8 nhãn (7 nhóm bệnh và 1 trạng thái bình thường):
    1. Bệnh cắt lá (Apoderus javanicus)
    2. Sâu bướm ăn lá (Dappula tertia)
    3. Bệnh héo lá (Miotis longicornis)
    4. Bệnh phấn trắng (Neomelicharia sparsa)
    5. Lá bình thường (Normal)
    6. Bệnh ghẻ xoài (Procontarinia rubus)
    7. Bệnh thán thư (Mango anthracnose)
    8. Bệnh rỉ đỏ (Red rust)
  • Giới hạn dữ liệu: Bộ dữ liệu gồm 4.000 ảnh đã qua xử lý gán nhãn phân đoạn.

Cơ sở lý thuyết và phương pháp

Khóa luận thiết lập nền tảng dựa trên các khái niệm xử lý ảnh số và mạng nơ-ron học sâu chuyên sâu về phân đoạn thể hiện (Instance Segmentation).

Quy trình xử lý ảnh 5 bước:

  • Thu nhận ảnh: Nhận dữ liệu ảnh từ camera màu hoặc nguồn thu thập.
  • Tiền xử lý ảnh: Lọc nhiễu, nâng cao chất lượng ảnh, điều chỉnh độ tương phản.
  • Phân đoạn ảnh: Phân tách ảnh đầu vào thành các vùng đối tượng riêng biệt để biểu diễn và phân tích.
  • Biểu diễn và mô tả: Mô tả các đường biên cong, hình dạng cấu trúc sau khi phân đoạn dưới dạng tập hợp điểm.
  • Nhận dạng và nội suy: Phân loại đối tượng dựa trên việc so sánh đặc trưng với mẫu đã lưu trữ.

Khung lý thuyết mô hình mạng nơ-ron:

  • Convolutional Neural Networks (CNN): Mạng nơ-ron tích chập gồm các lớp tích chập (Convolutional layer), lớp tổng hợp (Pooling layer) và lớp kết nối đầy đủ (Fully-connected layer).
  • Faster R-CNN: Kết hợp mạng đề xuất vùng (Region Proposal Network - RPN) với mạng trích xuất đặc trưng để tạo ra nhãn lớp và tọa độ hộp giới hạn (Bounding box).
  • Mask R-CNN: Mở rộng từ Faster R-CNN bằng việc tích hợp thêm một nhánh thứ ba chạy song song để xuất mặt nạ phân đoạn đối tượng (Segmentation Mask) ở cấp độ pixel. Mô hình sử dụng mạng đường trục ResNet-101 kết hợp Feature Pyramid Network (FPN), tính toán chỉ số giao trên hợp ($IoU = \frac{\text{Area of Intersection}}{\text{Area of Union}}$) với ngưỡng $IoU \ge 0.5$ để xác định vùng quan tâm (Region of Interest - RoI).

Môi trường phần cứng và công cụ phát triển:

  • CVAT (Computer Vision Annotation Tool): Công cụ mã nguồn mở của Intel dùng để khoanh vùng đa giác và gắn nhãn phân đoạn cho tập dữ liệu ảnh.
  • FiftyOne: Nền tảng trực quan hóa tập dữ liệu, kiểm tra lỗi phân đoạn, lọc các mẫu ảnh trống không có chú thích (segmentations.length() > 0).
  • Detectron2: Thư viện thị giác máy tính thế hệ mới của Facebook AI Research viết trên nền tảng PyTorch, hỗ trợ cấu hình các mô hình phân đoạn định dạng COCO.
  • PyTorch & Python: Nền tảng tính toán tensor và tối ưu hóa tự động (Autograd).
  • Google Colab: Môi trường tính toán đám mây cung cấp CPU Intel Xeon 2.30GHz (13GB RAM) và GPU Tesla K80 (12GB VRAM).

Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình client-server tích hợp module máy học:

        1. Gửi ảnh qua App/Web         4. Trả kết quả chẩn đoán
        2. Chuyển ảnh xử lý            3. Trả nhãn, độ chính xác,
               5. Đánh giá, hiệu chỉnh kết quả

Kiến trúc tổng thể:

  • Giao diện người dùng: Ứng dụng di động và website cho phép người dùng chụp hoặc tải ảnh lá xoài, chọn loại cây (hỗ trợ xoài và cà chua).
  • Máy chủ xử lý (Server): Nhận dữ liệu hình ảnh qua giao tiếp API, gọi mô hình máy học đã huấn luyện để phân tích và trả về thông tin tên bệnh, tỷ lệ tin cậy, nguyên nhân, biểu hiện, phương pháp phòng trị và tài liệu tham khảo.
  • Vòng lặp tương tác chuyên gia: Kết quả phân tích có thể được chuyên gia nông nghiệp đánh giá, hiệu chỉnh để phản hồi ngược lại cho hệ thống, bổ sung vào kho dữ liệu phục vụ tái huấn luyện mô hình.

Quy trình chuẩn bị dữ liệu (Data Pre-processing):

  1. 4.000 ảnh thô được nạp vào CVAT để thực hiện phân đoạn biên dạng vết bệnh bằng các đường đa giác (polygon).
  2. Dữ liệu gán nhãn của từng nhóm bệnh được xuất dưới dạng các file JSON riêng lẻ (0.json đến 7.json).
  3. Sử dụng mã nguồn Python để gộp các tệp thành một file chú thích tổng hợp duy nhất labels.json theo định dạng chuẩn COCO Detection Dataset.
  4. Tải dữ liệu lên Google Drive và nạp vào thư viện FiftyOne để kiểm tra trực quan, lọc bỏ các ảnh không có nhãn phân đoạn thông qua điều kiện truy vấn dataset.match(F("segmentations.length() > 0")).
  5. Đăng ký tập dữ liệu vào Detectron2 bằng hàm register_coco_instances.

Cấu hình huấn luyện mô hình: Mô hình lựa chọn là mask_rcnn_X_101_32x8d_FPN_3x từ Model Zoo của Detectron2 với các tham số cấu hình:

  • IMS_PER_BATCH = 2 (Số lượng ảnh đưa vào bộ nhớ trong mỗi vòng lặp).
  • MAX_ITER = 3000 (Số vòng lặp tối đa).
  • BATCH_SIZE_PER_IMAGE = 512 (Số mẫu lấy trong mỗi ảnh).
  • NUM_CLASSES = 8 (Số nhãn lớp đầu ra).
  • Checkpoint mô hình sau huấn luyện được lưu trữ thành tệp model_final.pth.

Kiểm thử và đánh giá (Validating & Testing):

  • Ngưỡng lọc dự đoán: Đặt SCORE_THRESH_TEST = 0.50 (chỉ giữ lại các kết quả nhận diện có độ tin cậy từ 50% trở lên).
  • Trực quan hóa kết quả: Sử dụng module Visualizer của Detectron2 để vẽ bounding box, đường viền segmentation và tên nhãn tương ứng.
  • Đánh giá lỗi: Quá trình kiểm thử ghi nhận các lỗi thực tế như không nhận diện được vùng phân đoạn khi ảnh bị mờ, xuất hiện hai nhãn đè/chồng lấn lên nhau trên cùng một vùng bệnh, hoặc nhận diện sai nhãn (ví dụ nhầm lẫn giữa nhãn sâu cắt lá Apoderus javanicus và sâu bướm ăn lá Dappula tertia).

Nội dung chính theo từng chương

Chương 1: Giới thiệu tổng quan

Chương 1 thiết lập tính cấp thiết của đề tài trong xu thế phát triển nông nghiệp chính xác. Tác giả tổng thuật chi tiết các công trình nghiên cứu trong và ngoài nước ứng dụng máy học trên lá lúa, ngô, bông và bưởi; từ đó chỉ ra khoảng trống về một giải pháp tích hợp chẩn đoán đa nền tảng có sự tham gia của chuyên gia. Chương này xác định rõ mục tiêu phát triển hệ thống ứng dụng di động/website, giới hạn phạm vi nghiên cứu trên 8 nhãn phân loại lá xoài với 4.000 ảnh phân đoạn, và đặt mục tiêu đạt độ chính xác trên 80%.

Chương 2: Giới thiệu các kỹ thuật được sử dụng

Chương 2 trình bày toàn diện cơ sở lý thuyết và công nghệ phục vụ đề tài. Nội dung bao gồm khái niệm 5 bước xử lý ảnh số, cấu trúc công cụ gán nhãn CVAT (hỗ trợ phân loại, phát hiện, phân đoạn và xuất chuẩn COCO), ngôn ngữ lập trình Python và môi trường Google Colab. Chương này đi sâu giải thích cấu trúc dữ liệu của công cụ FiftyOne (Dataset, Sample, Field, Tag, Label), nguyên lý hoạt động của framework PyTorch (Autograd, Optim, NN), mạng tích chập CNN, cơ chế hoạt động của Faster R-CNN và Mask R-CNN (kiến trúc Backbone ResNet-101, mạng RPN, RoI Align, công thức IoU, nhánh mặt nạ), cùng các tính năng mô-đun hóa của thư viện Detectron2.

Chương 3: Hiện thực thiết kế đề tài

Chương 3 mô tả chi tiết quy trình hiện thực hóa giải pháp kỹ thuật. Tác giả xây dựng sơ đồ luồng hoạt động tổng quát kết nối giữa Nông dân – Máy chủ – Mô hình máy học – Chuyên gia nông nghiệp. Quy trình thực nghiệm máy học được triển khai qua 4 giai đoạn cụ thể: Tiền xử lý dữ liệu (gán nhãn CVAT, xuất JSON, merge dữ liệu thành labels.json, lọc ảnh trống bằng FiftyOne, đăng ký COCO instance); Huấn luyện mô hình (thiết lập thông số cho Mask R-CNN X-101 trên Detectron2, ghi nhận thời gian huấn luyện 2 giờ 14 phút 54 giây cho 2.998 iterations); Kiểm tra đánh giá (Validating với ngưỡng tin cậy 0.50, trích xuất hình ảnh phân đoạn, phân tích các trường hợp thành công và thất bại); Kiểm thử thực tế (Testing trên ứng dụng với ảnh chưa gán nhãn). Cuối chương là thiết kế luồng hoạt động của chức năng phân tích bệnh trên giao diện ứng dụng.

Chương 4: Kết quả của nghiên cứu

Chương 4 công bố toàn bộ dữ liệu thực nghiệm thu được từ hệ thống máy học và ứng dụng thực tế. Tác giả thống kê cấu trúc kho dữ liệu 4.000 ảnh chia đều cho 8 nhãn lớp. Báo cáo cung cấp biểu đồ biến thiên hàm mất mát tổng (Total loss) từ vòng lặp 100 đến 3.000, cho thấy loss giảm liên tục và đạt mức 0.0118 ở iteration thứ 2.999. Đánh giá độ chính xác chi tiết trên tập kiểm tra độc lập gồm 400 ảnh (50 ảnh/nhãn). Đồng thời, chương này hiển thị giao diện thực tế của ứng dụng di động và website khi tiếp nhận ảnh đầu vào, thực thi phân tích và xuất kết quả chẩn đoán kèm phác đồ điều trị.

Chương 5: Kết luận

Chương 5 tổng kết lại toàn bộ kết quả đạt được của khóa luận, khẳng định tính khả thi của mô hình Mask R-CNN trong bài toán phân đoạn bệnh lá xoài. Tác giả phân tích các ưu điểm đạt được về độ chính xác và khả năng ứng dụng thực tế, thẳng thắn chỉ ra các điểm hạn chế về kích thước tập dữ liệu và tỷ lệ nhận diện sai sót trong một số trường hợp phức tạp, đồng thời vạch ra định hướng mở rộng hệ thống trong tương lai.


Kết quả và đóng góp

Kết quả thực nghiệm mô hình máy học:

  • Độ chính xác theo từng nhãn bệnh (đánh giá trên tập kiểm tra 400 ảnh, 50 ảnh/nhãn):
STT Tên khoa học Tên tiếng Việt Số lượng ảnh kiểm tra Tỷ lệ chính xác (%)
1 Apoderus javanicus Cắt lá 50 82%
2 Dappula tertia Sâu bướm ăn lá 50 > 80%
3 Miotis longicornis Héo lá 50 > 80%
4 Neomelicharia sparsa Phấn trắng 50 > 80%
5 Normal Lá bình thường 50 95%
6 Procontarinia rubus Ghẻ xoài 50 > 80%
7 Mango anthracnose Thán thư 50 > 80%
8 Red rust Rỉ đỏ 50 > 80%

Nhãn lá bình thường đạt độ chính xác cao nhất (95%), nhãn bệnh cắt lá có độ chính xác thấp nhất (82%). Nhìn chung, toàn bộ 8 nhóm nhãn đều đạt tỷ lệ chính xác trên 80%.

  • Chỉ số hàm mất mát (Total Loss) và thời gian huấn luyện:
    • Quá trình huấn luyện hoàn tất 2.998 iterations trong thời gian 2 giờ 14 phút 54 giây.
    • Hàm mất mát giảm dần đều: tại vòng lặp 2.839 đạt 0.1089; vòng lặp 2.879 đạt 0.0999; vòng lặp 2.899 đạt 0.0868; vòng lặp 2.959 đạt 0.0135; và tại vòng lặp 2.999 đạt 0.0118.

Giải pháp và kiến nghị ứng dụng: Hệ thống cung cấp giải pháp can thiệp kỹ thuật cụ thể theo từng loại bệnh. Ví dụ với bệnh rỉ đỏ (Red rust) do nấm Pestalotia mangiferae gây ra (xuất hiện nhiều đốm đỏ trên bề mặt lá), hệ thống tự động khuyến nghị sử dụng thuốc bảo vệ thực vật như Baycor (nồng độ 0,2%) hoặc Tilt (nồng độ 0,1%) và cung cấp đường dẫn tài liệu kỹ thuật nông nghiệp để người dân tham khảo.

Đóng góp của khóa luận:

  • Xây dựng thành công tập dữ liệu 4.000 ảnh bệnh lá xoài được phân đoạn biên dạng chuẩn xác theo định dạng COCO.
  • Chứng minh tính hiệu quả của mô hình Mask R-CNN X-101 trong việc giảm thiểu nhiễu hậu cảnh (background) và phân đoạn chính xác vùng tổn thương trên bề mặt lá cây xoài.
  • Phát triển thành công hệ thống tích hợp đa nền tảng (Mobile App và Website), tạo kênh tương tác hai chiều kết nối người nông dân với chuyên gia nông nghiệp thay vì các ứng dụng tra cứu đơn lẻ.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế được tác giả chỉ ra:

  • Nguồn dữ liệu ảnh thực tế còn hạn chế về số lượng và điều kiện môi trường chụp, dẫn đến một số trường hợp mô hình không nhận diện được vùng phân đoạn hoặc nhận diện sai nhãn giữa các loại bệnh có biểu hiện tương đồng (như Apoderus javanicus bị nhận diện nhầm thành Dappula tertia).
  • Xuất hiện tình trạng dự đoán đè/chồng lấn hai nhãn bệnh lên cùng một khu vực tổn thương.
  • Phạm vi chẩn đoán của hệ thống chỉ giới hạn trên lá cây xoài trưởng thành khi mầm bệnh đã bộc lộ dấu hiệu rõ rệt, chưa hỗ trợ chẩn đoán ở các giai đoạn cây non hoặc triệu chứng tiềm ẩn.
  • Môi trường huấn luyện trên Google Colab phiên bản miễn phí bị giới hạn thời gian thực thi (tối đa 12 giờ) và tài nguyên phần cứng không thể tùy chọn cố định.

Hướng nghiên cứu tiếp theo:

  • Thường xuyên cập nhật và bổ sung nguồn dữ liệu hình ảnh đa dạng hơn để tái huấn luyện (fine-tuning) mô hình, nâng cao độ chính xác nhận diện.
  • Tối ưu hóa thuật toán để khắc phục triệt để hiện tượng gối nhãn và nhận diện sai giữa các nhóm bệnh có hình thái tương tự.
  • Mở rộng quy mô hệ thống để chẩn đoán thêm nhiều loại bệnh hại trên các giống cây trồng khác và các bộ phận khác ngoài lá.

Giá trị tham khảo

Tài liệu khóa luận có giá trị thực tiễn và học thuật cho các nhóm đối tượng:

  • Sinh viên và nhà nghiên cứu ngành Kỹ thuật Máy tính, Khoa học Dữ liệu, Trí tuệ nhân tạo: Cung cấp tài liệu tham khảo chi tiết về quy trình xây dựng bài toán phân đoạn thể hiện (Instance Segmentation), từ khâu gán nhãn đa giác trên CVAT, quản lý dữ liệu với FiftyOne, đến cấu hình thư viện Detectron2 với kiến trúc Mask R-CNN X-101.
  • Kỹ sư phát triển ứng dụng Nông nghiệp thông minh (Smart Agriculture): Cung cấp thiết kế kiến trúc hệ thống client-server hoàn chỉnh, tích hợp API máy học phục vụ chẩn đoán bệnh cây trồng trực tuyến kết hợp module phản hồi của chuyên gia.

Câu hỏi thường gặp

1. Mô hình máy học cụ thể nào được nhóm tác giả lựa chọn để nhận dạng bệnh trên lá xoài? Khóa luận sử dụng mô hình Mask R-CNN phiên bản cấu hình mask_rcnn_X_101_32x8d_FPN_3x (mạng đường trục ResNet-101 kết hợp FPN) được cung cấp bởi thư viện Detectron2.

2. Tập dữ liệu huấn luyện của đề tài có quy mô như thế nào và bao gồm những nhãn bệnh nào? Bộ cơ sở dữ liệu gồm khoảng 4.000 ảnh đã qua xử lý gán nhãn phân đoạn, chia đều cho 8 nhóm nhãn: Cắt lá (Apoderus javanicus), Sâu bướm ăn lá (Dappula tertia), Héo lá (Miotis longicornis), Phấn trắng (Neomelicharia sparsa), Lá bình thường (Normal), Ghẻ xoài (Procontarinia rubus), Thán thư (Mango anthracnose) và Rỉ đỏ (Red rust).

3. Kết quả độ chính xác và hàm mất mát của mô hình đạt được là bao nhiêu? Đánh giá trên tập kiểm tra 400 ảnh (50 ảnh/nhãn), độ chính xác tổng thể của tất cả các nhãn đều đạt trên 80%, trong đó nhãn Lá bình thường đạt cao nhất (95%) và nhãn Cắt lá đạt thấp nhất (82%). Hàm mất mát tổng (Total loss) giảm dần và đạt mức 0.0118 ở vòng lặp thứ 2.999 với tổng thời gian huấn luyện 2 giờ 14 phút 54 giây.

4. Nhóm tác giả sử dụng những công cụ nào cho công tác tiền xử lý và gán nhãn hình ảnh? Tác giả sử dụng công cụ CVAT (Computer Vision Annotation Tool) để vẽ mặt nạ phân đoạn đối tượng và xuất dữ liệu JSON, kết hợp script Python để gộp các tệp chú thích thành labels.json chuẩn COCO, sau đó sử dụng thư viện FiftyOne để trực quan hóa và lọc bỏ các mẫu ảnh lỗi không có chú thích.

5. Khi phát hiện bệnh rỉ đỏ (Red rust), hệ thống đưa ra nguyên nhân và phác đồ điều trị cụ thể nào? Hệ thống xác định bệnh rỉ đỏ do nấm Pestalotia mangiferae gây ra và đưa ra khuyến nghị phòng trị bằng cách sử dụng một trong các loại thuốc bảo vệ thực vật gồm Baycor (nồng độ 0,2%) hoặc Tilt (nồng độ 0,1%).


Kết luận

Khóa luận tốt nghiệp của tác giả Vương Mạnh Kiên và Phan Hoàng Anh Tuấn đã xây dựng thành công hệ thống hỗ trợ chẩn đoán 7 nhóm bệnh hại phổ biến trên lá cây xoài ứng dụng kỹ thuật phân đoạn thể hiện Mask R-CNN. Với tập dữ liệu 4.000 ảnh được chuẩn hóa định dạng COCO và huấn luyện qua framework Detectron2, mô hình đạt độ chính xác trên 80% cho toàn bộ các nhóm bệnh thực nghiệm. Giải pháp phần mềm tích hợp di động và website không chỉ cung cấp kết quả chẩn đoán và phác đồ xử lý kịp thời cho người nông dân mà còn thiết lập mô hình kết nối tương tác trực tiếp với chuyên gia nông nghiệp, đóng góp thiết thực cho quá trình ứng dụng công nghệ thông tin vào nông nghiệp chính xác.