Bối cảnh và vấn đề nghiên cứu
Khu vực Đồng bằng sông Cửu Long hiện có trên 300.000 ha diện tích trồng cây ăn quả, chiếm gần 40% diện tích của cả nước và cung cấp khoảng 4 triệu tấn quả mỗi năm cho thị trường nội địa cùng xuất khẩu. Tuy nhiên, sự bùng phát của các loài côn trùng gây hại đã làm suy giảm nghiêm trọng năng suất và diện tích canh tác tại nhiều địa phương:
- Tỉnh Hậu Giang có gần 31.000 ha vườn cây ăn trái (cam sành, quýt đường, xoài, vú sữa, măng cụt...) bị nhiễm bệnh khiến cây chết dần và suy giảm sản lượng.
- Tỉnh Vĩnh Long ghi nhận tại xã Thiện Mỹ (huyện Trà Ôn) hơn 500 ha cây có múi xuất hiện bệnh vàng lá.
- Tỉnh Trà Vinh ghi nhận tại xã Thông Hòa (huyện Cầu Kè) có 1.000 ha cây ăn trái với hơn một nửa diện tích cam sành bị dịch bệnh vàng lá phá hủy.
- Tỉnh Đồng Tháp chịu thiệt hại trên diện tích chuyên canh quýt đường và quýt hồng tại huyện Lai Vung.
Theo số liệu từ Tổ chức Nông Lương Liên Hợp Quốc (FAO) được tác giả trích dẫn, sâu bọ gây hại làm thất thoát từ 20% đến 40% sản lượng cây trồng toàn cầu hàng năm, tương đương thiệt hại kinh tế khoảng 220 tỷ USD. Để ứng phó, nông dân thường lạm dụng thuốc bảo vệ thực vật hóa học, gây ô nhiễm môi trường và tiềm ẩn nguy cơ bệnh tật (ung thư, bệnh hô hấp, biến đổi di truyền). Việc nhận diện côn trùng bằng kinh nghiệm thủ công thường thiếu chính xác do hình thái côn trùng đa dạng và biến đổi phức tạp theo vòng đời.
Nhằm giải quyết thực trạng trên, khóa luận xác định 4 mục tiêu nghiên cứu cụ thể:
- Nghiên cứu cách thức xây dựng ứng dụng trên thiết bị di động.
- Nghiên cứu tổng quan về thuật toán YOLO và ứng dụng mô hình này vào bài toán nhận diện đối tượng.
- Nghiên cứu kiến trúc tổng thể của hệ thống nhận diện.
- Xây dựng hoàn chỉnh ứng dụng di động nhận dạng côn trùng gây hại, cung cấp thông tin sinh học, tập tính, phân bố và đề xuất các biện pháp phòng trừ sinh học nhằm giảm thiểu việc sử dụng thuốc hóa học.
Phạm vi đề tài được giới hạn như sau:
- Về lý thuyết: Tập trung vào mô hình học sâu YOLO (các phiên bản từ v1 đến v5), phương pháp học chuyển giao (Transfer Learning), hệ điều hành Android và cơ sở dữ liệu quan hệ.
- Về ứng dụng: Phát triển phần mềm di động trên nền tảng Android.
- Đối tượng nghiên cứu: Các loài côn trùng nông nghiệp gây hại, tập trung vào hình thái, đặc điểm sinh học, quy luật phân bố và biện pháp phòng trừ.
Phương pháp nghiên cứu kết hợp giữa nghiên cứu tài liệu lý thuyết (về thị giác máy tính, mạng nơ-ron tích chập, quy trình phát triển ứng dụng di động) và phương pháp thực nghiệm (thu thập, gán nhãn tập dữ liệu, huấn luyện mô hình học sâu và kiểm thử ứng dụng trong môi trường thực tế).
Cơ sở lý thuyết và phương pháp
Khóa luận phân định rõ 3 tác vụ cơ bản trong thị giác máy tính:
- Phân loại hình ảnh (Image Classification): Dự đoán nhãn lớp đối tượng trong ảnh.
- Định vị đối tượng (Object Localization): Xác định tọa độ và vẽ khung bao (bounding box) quanh đối tượng.
- Phát hiện đối tượng (Object Detection): Kết hợp đồng thời việc xác định vị trí tọa độ khung bao và phân loại nhãn của từng đối tượng xuất hiện.
Tác giả đi sâu phân tích tiến trình phát triển của mạng YOLO (You Only Look Once) qua các thế hệ kiến trúc:
- YOLOv1: Chia ảnh thành lưới $S \times S$ ($7 \times 7$), sử dụng mạng nền gồm 24 lớp tích chập (Convolutional) và 2 lớp kết nối đầy đủ (Fully Connected), tạo tensor đầu ra $7 \times 7 \times 30$ ($B=2$ khung bao, $C=20$ lớp). Hạn chế lớn nhất là chỉ phát hiện tối đa 49 đối tượng trên một ảnh và gặp khó khăn khi nhiều vật thể có tâm rơi vào cùng một ô lưới hoặc vật thể có kích thước quá nhỏ.
- YOLOv2: Bổ sung kỹ thuật chuẩn hóa theo lô (Batch Normalization) giúp tăng $2%$ mAP; huấn luyện bộ phân loại phân giải cao (High Resolution Classifier) ở kích thước $448 \times 448$ giúp tăng $4%$ mAP; thay thế lớp kết nối đầy đủ bằng các khung neo (Anchor Box); chia lưới $13 \times 13$; sử dụng mạng nền Darknet-19 (19 lớp tích chập, 5 lớp Maxpool); đầu ra dạng tensor $13 \times 13 \times 125$.
- YOLOv3: Sử dụng mạng nền Darknet-53 kết hợp 53 lớp tích chập bổ sung (tổng cộng 106 lớp), tích hợp khối phần dư (Residual Block), upsampling và skip connections; thực hiện dự đoán đa quy mô trên 3 kích thước ô lưới ($13 \times 13$ cho vật thể lớn, $26 \times 26$ cho vật thể trung bình, $52 \times 52$ cho vật thể nhỏ); đầu ra tensor $S \times S \times 255$ ($B=3$ hộp, $C=80$ lớp), sinh ra $10.647$ khung bao dự đoán; áp dụng thuật toán phân cụm K-means để tối ưu kích thước 9 hộp neo.
- YOLOv4: Cải tiến cấu trúc gồm Backbone (CSPDarknet53), Neck (kết hợp Spatial Pyramid Pooling - SPP, Path Aggregation Network - PAN với phép nối concat thay vì phép cộng add, Spatial Attention Module - SAM điều chỉnh) và Head tương tự YOLOv3. Mạng tích hợp các kỹ thuật "Bag of Freebies" nhằm cải thiện độ chính xác mà không giảm tốc độ thực thi: tăng cường dữ liệu CutMix, Mosaic data augmentation, cơ chế điều chuẩn DropBlock.
- YOLOv5: Do Glenn Jocher và Ultralytics phát triển trên nền tảng PyTorch, viết hoàn toàn bằng Python, tối ưu hóa quá trình triển khai trên thiết bị nhúng và di động. Khóa luận lựa chọn phiên bản YOLOv5s với cấu hình tùy biến
custom_yolov5s.yaml (các tham số: depth_multiple: 0.33, width_multiple: 0.50, 3 cụm anchor box tương ứng các tầng nhận diện).
Phương pháp học chuyển giao (Transfer Learning) được áp dụng nhằm khắc phục 4 nguyên nhân khiến mô hình dự báo kém: kích thước tập dữ liệu nhỏ, mất cân bằng dữ liệu giữa các lớp, kiến trúc mạng quá phức tạp gây hiện tượng quá khớp (overfitting) và khó khăn trong quá trình tối ưu hóa tốc độ học (learning rate). Khóa luận kế thừa trọng số đã được tiền huấn luyện (pre-trained) trên tập dữ liệu lớn để trích xuất đặc trưng cơ bản, sau đó tinh chỉnh các tầng phân loại cho tác vụ nhận dạng côn trùng.
Hạ tầng và công cụ nghiên cứu:
- Công cụ gán nhãn: Thư viện mã nguồn mở
labelImg xuất định dạng nhãn bounding box dạng tệp .txt đi kèm ảnh gốc.
- Môi trường huấn luyện: Điện toán đám mây Google Colab kết nối lưu trữ Google Drive, sử dụng bộ tăng tốc đồ họa GPU Tesla V100 với sự hỗ trợ của thư viện cuDNN.
- Mã lệnh huấn luyện thực thi:
python train.py --img 640 --batch 16 --epochs 300 --data ./yolov5_cf4bb-2/data.yaml --cfg ./models/custom_yolov5s.yaml --weights '' --name yolov5s_4bb_results --cache.
Thiết kế và triển khai hệ thống
Hệ thống được xây dựng theo kiến trúc phân tán kết hợp xử lý di động cục bộ:
- Môi trường phát triển ứng dụng di động: Android Studio, ngôn ngữ lập trình Java, Android SDK.
- Cơ sở dữ liệu trực tuyến: Hệ quản trị CSDL quan hệ MySQL được đặt trên máy chủ đám mây, phục vụ lưu trữ thông tin côn trùng (
info_insect), quản lý tài khoản người dùng (tbl_nguoidung) và vị trí tọa độ địa lý (GPS) phát hiện dịch hại.
- Cơ sở dữ liệu ngoại tuyến: CSDL nhúng SQLite được tích hợp trực tiếp trong ứng dụng di động, lưu trữ dữ liệu thông tin hình thái, phân bố và biện pháp phòng trừ, hỗ trợ nhận dạng ngoại tuyến khi không có kết nối Internet.
- Giao diện quản trị: Web Admin dành cho người quản trị hệ thống.
Hệ thống xác định 2 tác nhân chính (Actors): Người dùng (User) và Quản trị viên (Admin), bao gồm 13 ca sử dụng (Use case):
- Đăng nhập (Login): Xác thực quyền truy cập của người dùng và quản trị viên.
- Đăng ký (Register): Tạo tài khoản người dùng mới trên hệ thống.
- Nhận diện (Detect): Chụp ảnh hoặc chọn ảnh từ thư viện để mô hình học sâu phân tích, trả về nhãn và khung bao côn trùng.
- Xem danh sách côn trùng: Hiển thị danh mục các loài côn trùng có trong cơ sở dữ liệu.
- Xem danh sách hình ảnh theo tên côn trùng: Tra cứu các hình ảnh thực tế của từng loài.
- Upload hình ảnh lên server: Người dùng gửi hình ảnh côn trùng mới thu thập về máy chủ.
- Update phiên bản mới: Kiểm tra và cập nhật phiên bản ứng dụng di động.
- Mở hoặc Khóa tài khoản người dùng: Quyền của Admin nhằm quản lý trạng thái tài khoản.
- Lưu vị trí phát hiện côn trùng: Tự động lấy tọa độ GPS từ thiết bị di động khi phát hiện dịch hại và đồng bộ lên máy chủ để vẽ bản đồ phân bố.
- Gửi mail thông báo trạng thái tài khoản: Hệ thống tự động gửi thư điện tử khi tài khoản được kích hoạt hoặc bị khóa.
- Import database bằng file Excel: Cho phép Admin nạp hàng loạt dữ liệu thông tin côn trùng từ tệp bảng tính vào MySQL.
- Upload hình ảnh lên server từ trang Admin: Quản trị viên bổ sung dữ liệu mẫu từ giao diện web.
- Nhận diện offline: Cơ chế thực thi mô hình và tra cứu dữ liệu sinh học hoàn toàn trên thiết bị thông qua CSDL SQLite nội bộ khi mất kết nối mạng.
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương 1 thiết lập tính cấp thiết của đề tài xuất phát từ thiệt hại thực tế do dịch bệnh và côn trùng gây hại tại các vùng chuyên canh cây ăn quả trọng điểm ở Đồng bằng sông Cửu Long (Hậu Giang, Vĩnh Long, Trà Vinh, Đồng Tháp). Tác giả dẫn chứng báo cáo của FAO về thiệt hại kinh tế toàn cầu và nhấn mạnh nguy cơ của việc lạm dụng hóa chất bảo vệ thực vật. Chương này định rõ 4 mục tiêu nghiên cứu, giới hạn phạm vi trong hệ sinh thái Android và mô hình học sâu YOLO, đồng thời xác lập phương pháp nghiên cứu tài liệu kết hợp kiểm nghiệm thực nghiệm.
Chương 2: Cơ sở lý thuyết
Chương 2 cung cấp nền tảng lý thuyết toàn diện phục vụ việc xây dựng giải pháp:
- Phân tích chi tiết sự khác biệt giữa Image Classification, Object Localization và Object Detection.
- Trình bày cấu trúc toán học và giải thuật của chuỗi mô hình YOLO từ phiên bản v1 (chia ô lưới, NMS), v2 (Darknet-19, Anchor Box, High Resolution Classifier), v3 (Darknet-53, 3 thang đo dự đoán, hàm mất mát), v4 (CSPDarknet53, PAN, SAM, CutMix, Mosaic data augmentation) đến v5 (kiến trúc PyTorch, các biến thể s, m, l, x).
- Trình bày nguyên lý của Transfer Learning trong việc giải quyết tình trạng thiếu hụt dữ liệu huấn luyện và hiện tượng quá khớp.
- Giới thiệu kiến trúc hệ điều hành Android, môi trường lập trình Java/Android Studio, hệ quản trị CSDL MySQL.
- Khái quát đặc điểm sinh học của côn trùng: hình thái phát triển, vòng đời biến thái (biến thái hoàn toàn ở bướm và biến thái không hoàn toàn ở châu chấu), tập tính, phân loại côn trùng có ích và côn trùng gây hại.
- Điểm luận các công trình nghiên cứu tương tự trên thế giới, tiêu biểu như hệ thống nhận diện dịch hại cây trồng tại Sri Lanka sử dụng mô hình Faster R-CNN kết hợp lưu trữ đám mây.
Chương 3: Hệ thống nhận dạng côn trùng trên thiết bị di động
Chương 3 trình bày chi tiết toàn bộ quy trình thiết kế, cài đặt và đánh giá hệ thống:
- Thiết kế hệ thống: Danh sách Actor, sơ đồ use case tổng quát, bảng đặc tả chi tiết cho 13 use cases, lược đồ quan hệ cơ sở dữ liệu (ERD) và thiết kế chi tiết các bảng
info_insect, tbl_nguoidung.
- Dữ liệu thực nghiệm: Sử dụng tập dữ liệu quy mô lớn IP102 gồm 102 lớp côn trùng và tập dữ liệu thử nghiệm 10 lớp côn trùng nông nghiệp phổ biến; quy trình gán nhãn bằng
labelImg.
- Huấn luyện mô hình: Cấu hình tệp
custom_yolov5s.yaml với kích thước ảnh đầu vào 640, số lượng lớp $nc=102$, chu kỳ huấn luyện 300 epochs trên Google Colab GPU Tesla V100.
- Kết quả thực nghiệm: Đánh giá độ chính xác nhận diện trên tập 10 loài và tập 102 loài (IP102); đo lường chỉ số tốc độ khung hình trên giây (FPS); phân tích các trường hợp nhận diện sai đối với các loài có hình thái tương đồng.
- Giao diện chương trình: Minh họa chi tiết hệ thống màn hình ứng dụng di động (màn hình chờ, đăng nhập/đăng ký, màn hình nhận diện, thông tin chi tiết côn trùng, danh sách loài, bản đồ GPS phân bố dịch hại, giao diện nhận dạng offline) và giao diện Web Admin quản lý.
Kết quả và đóng góp
Khóa luận đã so sánh dung lượng lưu trữ của các mô hình phát hiện đối tượng nhằm chọn ra kiến trúc tối ưu nhất để tích hợp lên thiết bị di động:
| Tên mô hình |
Kích thước tệp mô hình (MB) |
Khả năng triển khai trên thiết bị di động |
| YOLOv4 |
245 MB |
Rất khó triển khai do kích thước lớn và cấu trúc nặng |
| YOLOv5x |
367 MB |
Quá nặng, tiêu tốn bộ nhớ và tài nguyên phần cứng |
| YOLOv5l |
192 MB |
Nặng, không tối ưu cho suy luận thời gian thực trên di động |
| YOLOv5m |
84 MB |
Kích thước trung bình, tốc độ xử lý ở mức vừa phải |
| YOLOv5s |
27 MB |
Tối ưu nhất (kích thước nhỏ gọn, tốc độ suy luận nhanh) |
Kết quả thực nghiệm chính của đề tài:
- Lựa chọn mô hình YOLOv5s (dung lượng 27 MB) giúp giải quyết triệt để rào cản về giới hạn bộ nhớ và năng lực tính toán của các dòng điện thoại thông minh phổ thông.
- Mô hình nhận diện thử nghiệm đạt độ chính xác cao trên tập dữ liệu 10 loài côn trùng gây hại phổ biến; đối với tập dữ liệu phức tạp IP102 (102 loài), mô hình phân loại được đa số các lớp đối tượng mục tiêu ở tốc độ xử lý thời gian thực (chỉ số FPS đáp ứng yêu cầu tương tác).
- Triển khai thành công kiến trúc 2 chế độ:
- Chế độ Online: Cho phép nhận dạng qua máy chủ, đồng bộ dữ liệu vào MySQL, ghi nhận tọa độ GPS thực địa để lập bản đồ dịch tễ phân bố côn trùng phục vụ công tác cảnh báo nông nghiệp.
- Chế độ Offline: Sử dụng CSDL SQLite nhúng ngay trên thiết bị di động, bảo đảm khả năng tra cứu thông tin và nhận diện tại các vùng sâu, vùng xa không có sóng viễn thông.
Đóng góp của tác giả so với các nghiên cứu trước:
- Khắc phục sự phụ thuộc hoàn toàn vào mạng Internet của các nghiên cứu tiền nhiệm (như nghiên cứu tại Sri Lanka sử dụng Faster R-CNN kết nối Cloud) bằng giải pháp nhận diện offline độc lập với SQLite.
- Tích hợp tính năng định vị GPS để theo dõi sự di chuyển và phân bố địa lý của sâu bệnh.
- Không chỉ dừng lại ở tác vụ định danh nhãn, ứng dụng cung cấp thông tin toàn diện về đặc tính sinh học, vòng đời và các biện pháp sinh học phòng ngừa, hỗ trợ trực tiếp người nông dân chuyển đổi phương thức canh tác an toàn.
Hạn chế và hướng nghiên cứu tiếp
Dựa trên các bảng số liệu thực nghiệm (Bảng 25 và Bảng 26 trong văn bản), tác giả thẳng thắn chỉ ra các hạn chế hiện tại:
- Mô hình còn nhầm lẫn và cho kết quả nhận dạng chưa tốt đối với một số loài côn trùng có nhiều đặc điểm hình thái tương đồng nhau về màu sắc, vân cánh hoặc kích thước.
- Khả năng nhận diện bị suy giảm giữa các giai đoạn biến thái khác nhau của cùng một loài (ví dụ giai đoạn ấu trùng/sâu non so với giai đoạn trưởng thành dạng bướm).
- Hiệu năng nhận diện và tốc độ khung hình (FPS) còn phụ thuộc lớn vào thông số cấu hình phần cứng của từng dòng thiết bị di động thực tế.
Hướng phát triển được đề xuất trong khóa luận:
- Bổ sung và mở rộng tập dữ liệu hình ảnh, đặc biệt là các góc chụp khó, điều kiện thiếu sáng và các pha biến thái khác nhau của các loài dễ nhầm lẫn.
- Tiếp tục tối ưu hóa mạng nơ-ron, nén mô hình để cải thiện chỉ số FPS và độ chính xác khi vận hành trên các thiết bị di động có cấu hình phần cứng khiêm tốn.
Giá trị tham khảo
Tài liệu khóa luận mang lại giá trị tham khảo học thuật và ứng dụng thực tiễn cụ thể:
- Đối với sinh viên ngành Công nghệ thông tin và Khoa học máy tính: Khóa luận là tài liệu tham khảo chi tiết về quy trình xây dựng đồ án thị giác máy tính ứng dụng (từ khâu thu thập dữ liệu bằng
labelImg, cấu hình huấn luyện mô hình YOLOv5 trên Google Colab với GPU Tesla V100 đến quy trình đóng gói mô hình học sâu lên ứng dụng Android bằng Java).
- Đối với các nhà phát triển hệ thống di động: Phần đặc tả 13 use cases, thiết kế CSDL lai giữa MySQL (trực tuyến) và SQLite (ngoại tuyến) cùng giải pháp lưu vết tọa độ GPS là mô hình kiến trúc thực tế đáng tham khảo cho các bài toán tương tự trong nông nghiệp và môi trường.
- Đối với kỹ sư nông nghiệp và cán bộ bảo vệ thực vật: Cung cấp cơ sở dữ liệu về 102 loài côn trùng (IP102) kèm hệ thống thông tin phòng trừ sinh học giúp định hướng giảm thiểu hóa chất độc hại trong canh tác cây ăn trái.
Câu hỏi thường gặp
1. Tại sao tác giả lại lựa chọn mô hình YOLOv5s thay vì YOLOv4 hay các biến thể YOLOv5 khác?
Dựa trên phân tích ở Hình 64 và Bảng so sánh dung lượng trong khóa luận, mô hình YOLOv4 có kích thước lên đến 245 MB, còn các phiên bản YOLOv5x (367 MB), YOLOv5l (192 MB) và YOLOv5m (84 MB) đều có dung lượng tệp quá lớn. Bản YOLOv5s chỉ chiếm 27 MB, giúp tiết kiệm bộ nhớ, giảm độ trễ tính toán và đảm bảo tốc độ suy luận (FPS) phù hợp nhất với tài nguyên hạn chế của thiết bị di động.
2. Khóa luận sử dụng các tập dữ liệu nào để huấn luyện và kiểm thử mô hình?
Khóa luận sử dụng 2 tập dữ liệu chính:
- Tập dữ liệu IP102 quy mô lớn gồm 102 lớp côn trùng nông nghiệp.
- Tập dữ liệu thu nhỏ gồm 10 lớp côn trùng gây hại phổ biến tại các vườn cây ăn trái để kiểm thử độ chính xác chi tiết. Dữ liệu được gán nhãn bounding box thông qua công cụ
labelImg với định dạng tệp ảnh kèm tệp tọa độ .txt.
3. Hệ thống xử lý như thế nào khi người nông dân sử dụng tại các khu vườn không có kết nối Internet?
Tác giả đã thiết kế riêng Use case số 13 ("Nhận diện offline") kết hợp cơ sở dữ liệu nhúng SQLite cục bộ trên điện thoại Android. Mô hình học sâu và dữ liệu thông tin côn trùng được nạp trực tiếp vào bộ nhớ máy, cho phép nhận diện và hiển thị thông tin phòng trừ ngay lập tức mà không cần kết nối mạng.
4. Ứng dụng cung cấp những thông tin gì cho người nông dân sau khi nhận diện thành công một loài côn trùng?
Sau khi nhận diện chính xác khung bao và tên loài côn trùng, ứng dụng truy xuất cơ sở dữ liệu và hiển thị đầy đủ: tên khoa học/tên thường gọi, đặc điểm hình thái, vòng đời sinh học, tập tính gây hại, vùng phân bố và các biện pháp sinh học phòng trừ cụ thể nhằm định hướng nông dân hạn chế phun thuốc trừ sâu hóa học.
5. Quá trình huấn luyện mô hình YOLOv5s trên Google Colab được thiết lập với các thông số cụ thể nào?
Theo mã lệnh thực thi trong văn bản, mô hình được huấn luyện với các tham số: kích thước ảnh đầu vào --img 640, kích thước lô --batch 16, số chu kỳ --epochs 300, tệp cấu hình mô hình custom_yolov5s.yaml tùy biến các tham số mạng gồm nc: 102 (số lớp), depth_multiple: 0.33, width_multiple: 0.50 và bộ 9 kích thước anchor box phân tầng.
Kết luận
Khóa luận tốt nghiệp của tác giả Phương Thái Ngọc đã giải quyết thành công bài toán nhận diện côn trùng gây hại cây ăn quả tại Đồng bằng sông Cửu Long bằng việc kết hợp mô hình học sâu YOLOv5s và nền tảng di động Android. Đề tài xây dựng hoàn chỉnh kiến trúc hệ thống 2 chế độ (trực tuyến với MySQL/GPS và ngoại tuyến với SQLite), cung cấp giải pháp tra cứu đặc tính sinh học và biện pháp phòng trừ hỗ trợ trực tiếp người sản xuất nông nghiệp. Các dữ liệu thực nghiệm trên tập 10 loài và tập IP102 đã chứng minh tính khả thi của giải pháp, đồng thời xác lập cơ sở kỹ thuật rõ ràng cho các nghiên cứu tối ưu hóa mô hình thị giác máy tính trên thiết bị biên tiếp theo.