Giới thiệu dự án
Trong bối cảnh nền nông nghiệp hiện đại đang hướng tới mô hình nông nghiệp chính xác (Precision Agriculture), bài toán quản lý và kiểm soát dịch hại đóng vai trò sống còn trong việc đảm bảo an ninh lương thực và giá trị kinh tế cây trồng. Theo thống kê của Tổ chức Lương thực và Nông nghiệp Liên Hợp Quốc (FAO), sâu bệnh gây tổn thất từ 20% đến 40% sản lượng nông sản toàn cầu mỗi năm, gây thiệt hại ước tính hơn 220 tỷ USD do bệnh thực vật và 70 tỷ USD do côn trùng dịch hại xâm lấn. Tại Việt Nam, sự bùng phát của các đợt dịch rầy nâu (Nilaparvata lugens), sâu cuốn lá hay sâu đục thân đã nhiều lần gây suy giảm nghiêm trọng năng suất lúa và hoa màu tại Đồng bằng sông Cửu Long và các tỉnh Nam Bộ.
Phương pháp phòng trừ truyền thống phụ thuộc lớn vào việc tuần tra thủ công và quan sát trực quan bằng mắt thường. Cách tiếp cận này bộc lộ nhiều điểm nghẽn nghiêm trọng:
- Tốn kém nhân lực và thời gian: Việc giám sát diện tích canh tác lớn đòi hỏi nhiều công sức nhưng khả năng bao quát bị giới hạn.
- Sai lệch định danh: Côn trùng có kích thước nhỏ, đa dạng sinh học cao và trải qua 4 pha biến thái hình thái học (trứng, ấu trùng, nhộng, trưởng thành), dẫn đến nguy cơ chẩn đoán sai loài gây hại.
- Lạm dụng hóa chất bảo vệ thực vật: Do thiếu dữ liệu thời gian thực về mật độ và chủng loại sâu hại, người nông dân thường phun thuốc trừ sâu tràn lan theo cảm tính, làm tăng chi phí canh tác và gây suy thoái hệ sinh thái đất và nguồn nước. Các nghiên cứu chỉ ra rằng việc phát hiện sớm và xác định chính xác vị trí sâu bệnh có thể giảm tới 90% lượng thuốc bảo vệ thực vật cần sử dụng thông qua kỹ thuật phun điểm mục tiêu.
Dự án khóa luận tốt nghiệp "Nghiên Cứu và Ứng Dụng Thuật Toán Nhận Dạng Côn Trùng" (thực hiện bởi sinh viên Phan Hoàng Trung, hướng dẫn bởi TS. Đoàn Thanh Nghị tại Trường Đại học An Giang - ĐHQG-HCM) được xây dựng nhằm giải quyết triệt để bài toán tự động hóa quá trình phát hiện và định danh côn trùng gây hại bằng các thuật toán thị giác máy tính hiện đại.
+-----------------------------------------------------------------------------------+
| MỤC TIÊU DỰ ÁN |
+-----------------------------------------------------------------------------------+
| 1. Thu thập, làm sạch và chuẩn hóa 2 bộ dữ liệu ảnh: Insect_10bb & IP102 |
| 2. Xây dựng, huấn luyện mô hình Object Detection: YOLOv4, YOLOv5, YOLOX |
| 3. Nghiên cứu thực nghiệm ảnh hưởng của Transfer Learning đối với tốc độ hội tụ |
| 4. Đánh giá đa chiều về độ chính xác (mAP) và tốc độ suy luận (FPS) trên GPU K80 |
| 5. Triển khai thử nghiệm phát hiện thời gian thực trên ảnh tĩnh và luồng video |
+-----------------------------------------------------------------------------------+
Giải pháp lựa chọn các mô hình phát hiện đối tượng một giai đoạn (One-stage Detector) thuộc họ YOLO (You Only Look Once) thay vì mô hình hai giai đoạn (Two-stage Detector như Faster R-CNN) nhằm tối ưu hóa sự cân bằng giữa độ chính xác định vị và tốc độ xử lý khung hình thời gian thực (Real-time Inference). Phạm vi nghiên cứu tập trung đánh giá chuyên sâu trên tập dữ liệu chuẩn Insect_10bb (10 loài, 2.335 mẫu) và tập dữ liệu quy mô lớn IP102 (102 loài, 18.976 mẫu), khai thác môi trường phần cứng GPU Tesla K80 12GB để rút ra cấu trúc mạng tối ưu nhất cho bài toán nông nghiệp.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Trước khi Deep Learning trở thành tiêu chuẩn công nghiệp trong Computer Vision, nhiều giải pháp xử lý ảnh truyền thống và học máy cổ điển đã được đề xuất nhằm nhận dạng côn trùng. Tuy nhiên, mỗi phương pháp đều bộc lộ những rào cản kỹ thuật rõ rệt khi triển khai ngoài thực địa.
| Phương pháp |
Kỹ thuật cốt lõi |
Ưu điểm |
Nhược điểm / Giới hạn |
| Xử lý ảnh truyền thống |
Phân đoạn màu, biến đổi Hough, lọc hình thái học (Morphological) |
Thuật toán nhẹ, không yêu cầu phần cứng GPU mạnh |
Độ chính xác trung bình (70–80%), phụ thuộc hoàn toàn vào điều kiện ánh sáng đồng nhất |
| Học máy truyền thống |
Trích xuất thủ công (SIFT, HOG) + SVM, Cây quyết định |
Hoạt động tốt trên tập dữ liệu rất nhỏ, phân loại nhị phân ổn định |
Không tự học được đặc trưng bậc cao, tỷ lệ phát hiện sót mục tiêu nhỏ rất cao |
| Two-Stage Detectors |
R-CNN, Fast R-CNN, Faster R-CNN (với RPN) |
Độ chính xác cao, định vị Bounding Box chuẩn xác |
Tốc độ suy luận chậm (thường < 15 FPS), tiêu tốn nhiều tài nguyên bộ nhớ |
| One-Stage Detectors |
YOLO series, SSD (Single Shot MultiBox Detector) |
Tốc độ suy luận vượt trội (> 30–60 FPS), tối ưu cho real-time |
Các phiên bản cũ (YOLOv1-v3) gặp khó khăn khi phát hiện vật thể kích thước siêu nhỏ |
Phân tích yêu cầu hệ thống theo mô hình MoSCoW:
- Must-have (Bắt buộc): Khả năng phát hiện đa loài côn trùng trên cùng một khung hình; hỗ trợ vẽ Bounding Box kèm nhãn phân loại và độ tin cậy (Confidence Score); đạt mAP@0.5 tối thiểu > 80% trên tập thử nghiệm.
- Should-have (Nên có): Xử lý luồng video mượt mà với tốc độ tối thiểu 30 FPS trên GPU tiêu chuẩn; tích hợp Transfer Learning từ weights COCO để giảm thời gian huấn luyện.
- Could-have (Có thể có): Hỗ trợ chuyển đổi mô hình sang các định dạng tối ưu hóa cho thiết bị biên (Edge Devices) như ONNX hoặc TensorRT.
- Won't-have (Chưa thực hiện): Phân đoạn đối tượng theo từng pixel (Instance Segmentation) do giới hạn về tài nguyên nhãn gán ban đầu.
Thách thức kỹ thuật lớn nhất nằm ở bài toán Small Object Detection (phát hiện đối tượng nhỏ): côn trùng chiếm diện tích điểm ảnh rất nhỏ trên tổng thể khung hình, dễ bị hòa lẫn vào phông nền tự nhiên (lá cây, đất đá) hoặc bị mất thông tin sau các phép toán lấy mẫu giảm (downsampling/pooling) trong các tầng mạng nơ-ron sâu.
Thiết kế hệ thống
Kiến trúc tổng thể của hệ thống nhận dạng được thiết kế dạng pipeline liên tục từ khâu thu nhận tín hiệu đầu vào đến khâu hậu xử lý trích xuất kết quả:
[Raw Image / Video Stream]
│
▼
[Pre-processing & Data Augmentation] (Mosaic, MixUp, HSV Jitter, Affine Transform)
│
▼
[Feature Extraction Backbone] (CSPDarknet53 / CSPDarknet / Focus Layer)
│
▼
[Neck - Multi-scale Aggregation] (PANet / FPN: Fusion P3, P4, P5 feature maps)
│
▼
[Detection Head]
├── YOLOv4 / YOLOv5: Coupled Anchor-based Head (Classification + Regression)
└── YOLOX: Decoupled Anchor-free Head (Separate Cls & Reg branches)
│
▼
[Post-Processing] (IoU Calculation -> Non-Maximum Suppression - NMS)
│
▼
[Output: Bounding Boxes + Class IDs + Confidence Scores]
Technology Stack triển khai trong nghiên cứu:
- Ngôn ngữ lập trình: Python 3.8+
- Deep Learning Frameworks: PyTorch 1.10+, Darknet Framework (C/CUDA)
- Thư viện thị giác máy tính & Tiền xử lý: OpenCV 4.5+, NumPy, Matplotlib, Albumentations
- Nền tảng quản lý & gán nhãn dữ liệu: Roboflow, LabelImg, VOC XML / YOLO TXT format
- Hạ tầng tính toán: Google Colaboratory (NVIDIA Tesla K80 12GB VRAM, Intel Xeon CPU @ 2.30GHz)
Dữ liệu gán nhãn được chuẩn hóa theo format chuẩn của YOLO:
$$\text{Annotation} = \left[ \text{class_id}, x_{\text{center}}, y_{\text{center}}, w, h \right]$$
Trong đó các tọa độ tâm $(x_{\text{center}}, y_{\text{center}})$ cùng chiều rộng ($w$) và chiều cao ($h$) được chuẩn hóa về dải $[0, 1]$ tương ứng với kích thước ảnh gốc.
Methodology
Quy trình nghiên cứu áp dụng phương pháp lặp thực nghiệm khoa học qua 4 giai đoạn rõ ràng:
Giai đoạn 1: Thu thập & Chuẩn hóa dữ liệu (Insect_10bb & IP102)
└── Thu thập -> Lọc nhiễu -> Đổi kích thước (416x416, 640x640)
Giai đoạn 2: Gán nhãn & Phân tách tập Train / Val / Test
└── Bounding box annotation -> Phân tách tỷ lệ 70:20:10
Giai đoạn 3: Huấn luyện đa mô hình & Tối ưu Siêu tham số
└── Huấn luyện YOLOv4, YOLOv5 (s, m, l, x), YOLOX (nano, tiny, s, m, l)
Giai đoạn 4: Đánh giá định lượng & Kiểm thử thực địa
└── Đánh giá Precision, Recall, mAP@0.5, mAP@0.5:0.95, FPS trên Video
Các rủi ro quá khớp (overfitting) do số lượng mẫu của một số loài hiếm bị hạn chế được kiểm soát thông qua kỹ thuật tăng cường dữ liệu mở rộng (Data Augmentation) bao gồm: lật ngang/dọc, xoay góc $90^\circ, 180^\circ, 270^\circ$, dịch chuyển pixel, cân bằng sáng HSV và tạo ảnh ghép Mosaic.
Implementation và kết quả
Development process
Quá trình triển khai tập trung vào việc thiết lập các siêu tham số huấn luyện (Hyperparameters) tối ưu cho từng kiến trúc:
| Siêu tham số |
YOLOv4 |
YOLOv5 (s, m, l, x) |
YOLOX (nano, tiny, s, m, l) |
| Kích thước đầu vào (Input Resolution) |
$416 \times 416$ |
$640 \times 640$ |
$640 \times 640$ |
| Tối ưu hóa (Optimizer) |
SGD with Momentum (0.949) |
SGD / AdamW |
SGD (Momentum 0.9, Weight Decay 0.0005) |
| Học suất ban đầu (Initial Learning Rate) |
0.001 |
0.01 |
0.01 (với Cosine LR Schedule) |
| Batch Size |
64 (Subdivisions 16) |
16 / 32 |
16 / 32 |
| Số chu kỳ huấn luyện (Epochs / Iterations) |
2000 iterations |
150 epochs |
150 epochs |
| Kỹ thuật trích xuất đặc trưng |
CSPDarknet53 + SPP |
Focus + C3/CSP + SPPF |
Modified CSPDarknet + Decoupled Head |
Một trong những thuật toán cốt lõi được áp dụng trong quá trình hậu xử lý để loại bỏ các khung bao trùng lặp là Non-Maximum Suppression (NMS) dựa trên chỉ số giao trên hợp (Intersection over Union - IoU):
$$\text{IoU}(A, B) = \frac{\text{Area}(A \cap B)}{\text{Area}(A \cup B)} = \frac{|A \cap B|}{|A| + |B| - |A \cap B|}$$
Dưới đây là đoạn mã nguồn Python minh họa việc tính toán chỉ số IoU và cơ chế gán nhãn, trích xuất dự đoán của mô hình:
import torch
def compute_iou(box1: torch.Tensor, box2: torch.Tensor) -> torch.Tensor:
"""
Tính toán Intersection over Union (IoU) giữa 2 tập Bounding Boxes.
Box format: [x1, y1, x2, y2]
"""
# Xác định tọa độ giao nhau
x1 = torch.max(box1[..., 0], box2[..., 0])
y1 = torch.max(box1[..., 1], box2[..., 1])
x2 = torch.min(box1[..., 2], box2[..., 2])
y2 = torch.min(box1[..., 3], box2[..., 3])
intersection = torch.clamp(x2 - x1, min=0) * torch.clamp(y2 - y1, min=0)
area1 = (box1[..., 2] - box1[..., 0]) * (box1[..., 3] - box1[..., 1])
area2 = (box2[..., 2] - box2[..., 0]) * (box2[..., 3] - box2[..., 1])
union = area1 + area2 - intersection
return intersection / (union + 1e-7)
def non_max_suppression(boxes: torch.Tensor, scores: torch.Tensor, iou_threshold: float = 0.5):
"""
Thuật toán lọc bỏ các Bounding Box trùng lặp bằng Non-Maximum Suppression
"""
selected_indices = []
order = scores.argsort(descending=True)
while order.numel() > 0:
if order.numel() == 1:
selected_indices.append(order.item())
break
i = order[0].item()
selected_indices.append(i)
ious = compute_iou(boxes[i].unsqueeze(0), boxes[order[1:]]).squeeze(0)
remaining = torch.where(ious <= iou_threshold)[0]
order = order[remaining + 1]
return selected_indices
Trong kiến trúc YOLOX, sự đột phá nằm ở cơ chế Decoupled Head (Tách riêng đầu phân loại và hồi quy tọa độ) giúp mạng hội tụ nhanh hơn $2.5\times$ so với thiết kế Coupled Head truyền thống của YOLOv4 và YOLOv5, đồng thời loại bỏ sự phụ thuộc vào tập Anchor Box cố định (Anchor-free approach).
┌──> Conv 1x1 ──> Conv 3x3 ──> Cls Branch (Class Scores)
Feature Map ──> 1x1 ──┤
└──> Conv 1x1 ──> Conv 3x3 ──┬──> Reg Branch (Box Coordinates)
└──> IoU Branch (Objectness)
Testing và validation
Hiệu năng của các mô hình được đánh giá thông qua các chỉ số định lượng tiêu chuẩn quốc tế:
- Precision (Độ chính xác): $P = \frac{TP}{TP + FP}$
- Recall (Độ thu hồi): $R = \frac{TP}{TP + FN}$
- Mean Average Precision (mAP): Diện tích dưới đường cong Precision-Recall trung bình trên tất cả các lớp phân loại tại ngưỡng IoU 0.5 ($\text{mAP}@0.5$) và dải ngưỡng từ 0.5 đến 0.95 ($\text{mAP}@0.5:0.95$).
Nghiên cứu cũng tiến hành thử nghiệm đối chứng nghiêm ngặt giữa việc Huấn luyện từ đầu (Training from scratch) và Học chuyển giao (Transfer Learning) với bộ trọng số tiền huấn luyện trên tập MS-COCO.
Kết quả đạt được
Kết quả thực nghiệm trên tập dữ liệu chuẩn Insect_10bb (2.335 mẫu, 10 loài côn trùng gây hại phổ biến: Achatina fulica, Acalymma vittatum, bọ trĩ, sâu cuốn lá, rầy nâu, v.v.):
| Kiến trúc |
Biến thể Model |
Phương pháp |
Epochs / Iters |
Precision (%) |
Recall (%) |
mAP@0.5 (%) |
mAP@0.5:0.95 (%) |
| YOLOv4 |
Darknet Conv137 |
Scratch |
2000 iters |
84.12 |
81.30 |
85.60 |
48.20 |
| YOLOv4-tiny |
Tiny Conv29 |
Scratch |
2000 iters |
78.40 |
74.20 |
77.80 |
41.50 |
| YOLOv5 |
YOLOv5s |
Scratch |
150 epochs |
79.20 |
76.50 |
80.40 |
46.10 |
| YOLOv5 |
YOLOv5s |
Transfer Learning |
150 epochs |
92.80 |
90.40 |
93.40 |
61.20 |
| YOLOv5 |
YOLOv5m |
Transfer Learning |
150 epochs |
93.10 |
91.20 |
93.80 |
62.50 |
| YOLOv5 |
YOLOv5l |
Transfer Learning |
150 epochs |
93.50 |
91.80 |
94.10 |
63.10 |
| YOLOv5 |
YOLOv5x |
Transfer Learning |
150 epochs |
93.90 |
92.10 |
94.50 |
63.80 |
| YOLOX |
YOLOX-Nano |
Transfer Learning |
150 epochs |
82.40 |
79.80 |
83.50 |
50.10 |
| YOLOX |
YOLOX-Tiny |
Transfer Learning |
150 epochs |
88.60 |
86.10 |
89.20 |
56.40 |
| YOLOX |
YOLOX-s |
Transfer Learning |
150 epochs |
94.10 |
92.30 |
94.20 |
64.30 |
| YOLOX |
YOLOX-m |
Transfer Learning |
150 epochs |
94.60 |
92.80 |
94.90 |
65.20 |
| YOLOX |
YOLOX-l |
Transfer Learning |
150 epochs |
95.10 |
93.40 |
95.40 |
66.10 |
Kết quả thực nghiệm trên tập dữ liệu quy mô lớn IP102 (18.976 mẫu đánh giá, 102 lớp dịch hại trên cây trồng kinh tế và cây lương thực):
- YOLOv5s: Đạt $\text{mAP}@0.5 = 68.4%$, tốc độ suy luận 42 FPS trên GPU Tesla K80.
- YOLOX-s: Đạt $\text{mAP}@0.5 = 70.2%$, tốc độ suy luận 39 FPS trên GPU Tesla K80.
Thử nghiệm trên luồng video thực tế cho thấy các mô hình YOLOv5s và YOLOX-s duy trì khả năng nhận dạng liên tục các loài côn trùng di chuyển nhanh hoặc xuất hiện với mật độ dày đặc nhiều cá thể trên cùng một lá cây (như English grain aphid hay Acalymma vittatum) mà không xảy ra hiện tượng mất dấu Bounding Box giữa các khung hình liên tiếp.
Đổi mới và đóng góp
- Khảo sát thực nghiệm toàn diện trên các biến thể kiến trúc tiên tiến: Nghiên cứu thực hiện đánh giá đối đầu (Head-to-head Comparison) chi tiết giữa 11 cấu hình mô hình thuộc 3 thế hệ kiến trúc: YOLOv4 (Darknet C++), YOLOv5 (PyTorch modular), và YOLOX (Anchor-free Decoupled Head), cung cấp bức tranh hoàn chỉnh về sự đánh đổi giữa kích thước mô hình, tốc độ suy luận và độ chính xác.
- Chứng minh định lượng sức mạnh của Transfer Learning trong bài toán nông nghiệp: Kết quả thực nghiệm khẳng định Transfer Learning giúp nâng cao chỉ số $\text{mAP}@0.5$ từ $80.40%$ lên $93.40%$ (tăng $13.00%$) trên mô hình YOLOv5s, đồng thời giảm $60%$ thời gian hội tụ của hàm mất mát.
- Giải quyết bài toán nhận diện đa cá thể và mục tiêu nhỏ (Small Object Detection): Ứng dụng thành công cơ chế gán nhãn SimOTA và Decoupled Head trong YOLOX, cải thiện độ chính xác định vị các loài côn trùng kích thước dưới $32 \times 32$ pixels lên $18.5%$ so với YOLOv4.
- Cung cấp bộ dữ liệu gán nhãn chuẩn hóa: Bộ dữ liệu Insect_10bb được tinh lọc, gán nhãn chuẩn hóa tọa độ và phân loại theo hệ thống phân cấp nông nghiệp (Field Crops & Economic Crops), đóng góp nguồn học liệu thực nghiệm giá trị cho cộng đồng nghiên cứu trong nước.
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng ngoài thực địa
[CAMERA / DRONE / BẪY THÔNG MINH]
│
▼
┌─────────────────────────────────────────────────────┐
│ HỆ THỐNG XỬ LÝ NHẬN DẠNG THỜI GIAN THỰC │
│ ├── YOLOX-Nano / Tiny: Triển khai trên Jetson Nano │
│ └── YOLOv5s / YOLOX-s: Triển khai trên Edge Server │
└─────────────────────────────────────────────────────┘
│
▼
[KẾT QUẢ ĐỊNH DANH & MẬT ĐỘ DỊCH HẠI]
│
┌─────────────────────────┴─────────────────────────┐
▼ ▼
[BẢN ĐỒ CẢNH BÁO DỊCH HẠI] [ĐIỀU KHIỂN PHUN ĐIỂM TỰ ĐỘNG]
(Gửi thông báo qua Mobile App) (Tiết kiệm 70-90% thuốc BVTV)
- Bẫy côn trùng thông minh (Smart Light Trap IoT): Tích hợp camera độ phân giải cao và vi mạch xử lý biên (NVIDIA Jetson Nano hoặc Raspberry Pi 4) chạy mô hình YOLOX-Nano để tự động đếm và định danh số lượng rầy nâu, sâu đục thân rơi vào bẫy mỗi đêm, truyền dữ liệu về máy chủ qua mạng 4G/LoRaWAN.
- Hệ thống giám sát bằng máy bay không người lái (UAV/Drone): Trang bị camera hành trình bay quét qua cánh đồng lúa, phân tích hình ảnh lá bị tổn thương và phát hiện ổ dịch sâu cuốn lá ở giai đoạn sớm.
- Ứng dụng di động hỗ trợ nông dân chẩn đoán nhanh: Nông dân chụp ảnh côn trùng trên đồng ruộng và nhận kết quả tức thì về tên loài, mức độ nguy hại cùng khuyến cáo phác đồ sinh học xử lý phù hợp.
Yêu cầu phần cứng và chiến lược triển khai
- Triển khai tại biên (Edge Computing):
- Thiết bị: NVIDIA Jetson Nano 4GB / Jetson Orin Nano
- Model tối ưu: YOLOX-Nano hoặc YOLOv5n được tối ưu qua TensorRT (FP16/INT8)
- Điện năng tiêu thụ: 5W – 10W, tốc độ xử lý: 25–35 FPS
- Triển khai tập trung (Cloud / Central Server):
- Máy chủ: GPU NVIDIA RTX 3060 / T4 hoặc cụm GPU Cloud
- Model triển khai: YOLOv5s / YOLOX-s (PyTorch Serving / FastAPI)
- Khả năng đáp ứng: Xử lý đồng thời 50–100 luồng video camera giám sát
Hạn chế và hướng phát triển
Hạn chế hiện tại
- Điều kiện chiếu sáng phức tạp: Khả năng nhận diện bị suy giảm cục bộ khi quay chụp trong điều kiện ban đêm thiếu sáng hoặc ánh sáng mặt trời chiếu trực diện gây lóa điểm ảnh.
- Hiện tượng che khuất (Occlusion): Khi côn trùng ẩn nấp sâu dưới mặt sau của tán lá hoặc dính cụm mật độ quá dày đặc, mô hình vẫn còn hiện tượng gộp nhãn hoặc phát hiện sót cá thể.
- Giới hạn phần cứng huấn luyện: Do sử dụng tài nguyên miễn phí GPU Tesla K80 trên Google Colab, thời gian huấn luyện trên toàn bộ 102 lớp của tập IP102 bị kéo dài, chưa thể khai thác hết độ sâu của các biến thể siêu lớn như YOLOv5x6 hay YOLOX-X.
Hướng phát triển tiếp theo
- Tích hợp mô hình Siêu phân giải (Super-Resolution): Sử dụng Real-ESRGAN tiền xử lý ảnh đầu vào để phục hồi chi tiết cánh và râu côn trùng đối với các bức ảnh chụp từ khoảng cách xa.
- Mở rộng sang Phân đoạn cá thể (Instance Segmentation): Nâng cấp kiến trúc lên YOLOv8-seg hoặc Mask R-CNN nhằm tính toán chính xác diện tích bề mặt cơ thể côn trùng, phục vụ ước lượng sinh khối dịch hại.
- Tích hợp cảm biến đa phổ (Multispectral Imaging): Kết hợp camera nhiệt và hồng ngoại để nhận diện sâu đục thân ẩn bên trong thân cây lúa.
Đối tượng hưởng lợi
- Sinh viên & Học viên ngành CNTT/AI: Tiếp cận tài liệu tham khảo hoàn chỉnh về quy trình xây dựng đồ án thị giác máy tính từ khâu thu thập dữ liệu, gán nhãn đến huấn luyện so sánh đa mô hình YOLOv4, YOLOv5 và YOLOX.
- Kỹ sư thị giác máy tính & Lập trình viên AI: Nắm bắt kỹ thuật tối ưu hóa siêu tham số, phân tích kiến trúc Decoupled Head của YOLOX và phương pháp ứng dụng Transfer Learning hiệu quả.
- Doanh nghiệp Nông nghiệp công nghệ cao: Cơ sở khoa học để thiết kế các trạm quan trắc sâu bệnh tự động, tối ưu hóa chi phí vận hành và giảm thiểu chi phí thuốc bảo vệ thực vật lên tới hàng tỷ đồng mỗi vụ mùa.
- Nhà nghiên cứu Nông học & Bảo vệ thực vật: Nguồn dữ liệu số hóa và công cụ định lượng chính xác mật độ côn trùng phục vụ các công trình nghiên cứu dịch tễ học nông nghiệp.
Câu hỏi thường gặp
1. Cần cấu hình phần cứng tối thiểu nào để triển khai hệ thống nhận dạng côn trùng trong thực tế?
Để triển khai thực nghiệm suy luận (Inference), hệ thống chỉ cần phần cứng biên như NVIDIA Jetson Nano 4GB (giá thành khoảng 100–150 USD) chạy mô hình YOLOX-Nano hoặc YOLOv5s đã qua tối ưu hóa TensorRT FP16, đạt tốc độ từ 28–35 FPS. Đối với huấn luyện (Training) mô hình trên tập dữ liệu mới, khuyến nghị sử dụng máy tính có GPU chuyên dụng từ NVIDIA GTX 1660 6GB trở lên hoặc tận dụng hạ tầng GPU đám mây miễn phí như Google Colab (Tesla T4/K80).
2. Mô hình xử lý thế nào khi côn trùng có kích thước quá nhỏ hoặc bị che khuất một phần?
Kiến trúc YOLOX và YOLOv5 giải quyết bài toán này nhờ mạng trích xuất đặc trưng đa tầng PANet (Path Aggregation Network) kết hợp các Feature Maps ở các tỷ lệ P3 ($80 \times 80$), P4 ($40 \times 40$) và P5 ($20 \times 20$). Các tầng P3 giữ lại độ phân giải không gian cao giúp bắt trọn các đặc trưng cạnh và hình thái của côn trùng kích thước nhỏ. Đồng thời, kỹ thuật Data Augmentation (Mosaic và MixUp) trong quá trình huấn luyện rèn luyện cho mạng khả năng nhận dạng từng phần cơ thể khi bị lá cây che khuất.
3. Tại sao YOLOX lại cho độ chính xác cao hơn YOLOv4 và YOLOv5 trên tập dữ liệu côn trùng?
YOLOX sở hữu 2 cải tiến đột phá:
- Anchor-free: Không sử dụng các Anchor Box cố định được tạo bởi thuật toán phân cụm k-means, giúp mô hình linh hoạt thích ứng với các tỷ lệ cơ thể côn trùng biến thiên phức tạp mà không bị sai lệch kích thước hộp ban đầu.
- Decoupled Head: Tách rời nhánh dự đoán lớp phân loại (Classification) và nhánh dự đoán vị trí hộp (Regression), giải quyết triệt để xung đột tối ưu hóa giữa hai tác vụ, từ đó nâng cao chỉ số $\text{mAP}@0.5$ thêm $0.8% - 1.5%$ và tăng tốc độ hội tụ.
4. Hệ thống có thể tích hợp vào các phần mềm quản lý nông nghiệp hiện có qua hình thức nào?
Mô hình có thể được đóng gói thành các Microservices thông qua Docker container và cung cấp giao diện lập trình ứng dụng RESTful API hoặc gRPC bằng FastAPI. Các phần mềm quản lý nông trại, ứng dụng di động Flutter/React Native hoặc hệ thống SCADA tại nhà màng có thể gửi ảnh chụp hoặc luồng RTSP stream tới máy chủ và nhận về kết quả JSON chứa tọa độ hộp, tên loài và mức độ tin cậy trong thời gian dưới 50ms.
5. Chi phí đầu tư và thời gian hoàn vốn (ROI) khi triển khai giải pháp vào nông trại là bao nhiêu?
Chi phí đầu tư cho một trạm quan trắc bẫy đèn thông minh IoT gắn camera và vi xử lý biên ước tính khoảng 8–15 triệu VNĐ/trạm (bao phủ bán kính 1–2 ha). Nhờ phát hiện dịch hại sớm và chuyển đổi từ phun thuốc định kỳ sang phun cục bộ, nông trại có thể tiết kiệm 70% chi phí thuốc trừ sâu (tương đương 3–5 triệu VNĐ/ha/vụ) và ngăn chặn nguy cơ mất trắng năng suất mùa vụ, giúp chủ đầu tư đạt điểm hòa vốn chỉ sau 1 đến 2 vụ canh tác.
Kết luận
Khóa luận tốt nghiệp "Nghiên Cứu và Ứng Dụng Thuật Toán Nhận Dạng Côn Trùng" đã hoàn thành xuất sắc các mục tiêu nghiên cứu đặt ra, mang lại giải pháp công nghệ thị giác máy tính có tính ứng dụng thực tiễn cao cho ngành nông nghiệp thông minh. Bằng việc phân tích chuyên sâu và đối sánh thực nghiệm trên các kiến trúc hiện đại YOLOv4, YOLOv5 và YOLOX, đề tài đã chứng minh tính ưu việt của mô hình YOLOX-s (đạt $\text{mAP}@0.5 = 94.20%$) và YOLOv5s (đạt $\text{mAP}@0.5 = 93.40%$) trên tập dữ liệu Insect_10bb, đồng thời khẳng định vai trò then chốt của Transfer Learning trong việc tối ưu hóa hiệu suất mạng nơ-ron sâu.
Kết quả nghiên cứu không chỉ đóng góp một cơ sở lý thuyết và thực nghiệm vững chắc cho bài toán nhận dạng đối tượng kích thước nhỏ trong môi trường tự nhiên, mà còn mở ra triển vọng to lớn trong việc thương mại hóa các thiết bị bẫy côn trùng IoT thông minh và hệ thống điều khiển phun thuốc tự động. Đây là bước tiến quan trọng hướng tới việc giảm thiểu phụ thuộc vào hóa chất nông nghiệp, bảo vệ sức khỏe cộng đồng và thúc đẩy nền nông nghiệp Việt Nam phát triển bền vững trong kỷ nguyên chuyển đổi số 4.0.