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

Trong ngành sản xuất nông nghiệp và hệ thống phân phối bán lẻ hiện đại, việc kiểm định chất lượng và phân loại nông sản đóng vai trò thiết yếu nhằm đảm bảo tính đồng nhất của sản phẩm thương mại. Tuy nhiên, quy trình phân loại thủ công bộc lộ nhiều hạn chế do tiêu tốn chi phí nhân công, mất nhiều thời gian và khó duy trì độ chính xác đồng đều khi xử lý khối lượng lớn hàng nghìn quả. Bên cạnh đó, thực tiễn đặt ra các yêu cầu phức tạp như phát hiện nhanh quả hư hỏng, dập nát hoặc phân biệt xuất xứ nông sản (ví dụ: nho Việt Nam và nho Trung Quốc) để hỗ trợ nhà phân phối ra quyết định kinh doanh và minh bạch hóa thông tin cho người tiêu dùng.

Đề tài "Phát hiện loại trái cây" được thực hiện nhằm xây dựng giải pháp thị giác máy tính giải quyết bài toán nhận diện và phân loại tự động. Đồ án xác định các mục tiêu và nhiệm vụ cụ thể:

  1. Mô tả tóm tắt đề tài: Tìm hiểu mô hình phát hiện đối tượng YOLOv8 áp dụng cho bài toán phát hiện loại trái cây; thiết kế và xây dựng chương trình ứng dụng nhận diện tự động.
  2. Nội dung hướng dẫn và triển khai:
    • Nghiên cứu tổng quan về bài toán phát hiện đối tượng (Object Detection) và cơ chế hoạt động của mô hình YOLOv8.
    • Thu thập, tiền xử lý và xây dựng bộ dữ liệu hình ảnh các loại trái cây phục vụ quá trình huấn luyện.
    • Cài đặt, cấu hình và huấn luyện mô hình phát hiện đối tượng với mạng YOLOv8.
    • Thử nghiệm, đánh giá mô hình trên tập dữ liệu hình ảnh tĩnh và luồng video.
    • Nhận xét, đánh giá kết quả thực nghiệm và đưa ra khuyến nghị ứng dụng.
  3. Kết quả cần đạt được: Xây dựng hoàn chỉnh mô hình YOLOv8 phát hiện trái cây; phát triển ứng dụng nhận diện trên ảnh/video; hoàn thiện báo cáo đồ án tốt nghiệp.
  • Đối tượng nghiên cứu: 7 loại trái cây phổ biến bao gồm cam, xoài, táo, chuối, nho, ổi và dưa hấu.
  • Phạm vi nghiên cứu:
    • Không gian: Đồ án thực hiện tại Khoa Công nghệ Thông tin, Trường Đại học Quản lý và Công nghệ Hải Phòng, phối hợp thực tập tại Công ty TNHH Đào tạo và Tích hợp Công nghệ e-Teck.
    • Thời gian: Hoàn thành và bảo vệ vào tháng 5 năm 2024.

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

Đề tài tiếp cận bài toán phát hiện đối tượng bằng cách tổng hợp cơ sở lý thuyết từ các phương pháp xử lý ảnh truyền thống đến các kiến trúc học sâu (Deep Learning) hiện đại.

Khung lý thuyết và mô hình phát hiện đối tượng

Bài toán phát hiện đối tượng tập trung giải quyết hai câu hỏi cơ bản: "Đối tượng cần tìm có xuất hiện trong hình ảnh không?" và "Nếu có, vị trí của nó nằm ở đâu (thông qua bounding box)?".

  • Phương pháp truyền thống: Sử dụng bộ mô tả đặc trưng HOG (Histogram of Oriented Gradients). HOG chia ảnh thành các ô nhỏ (cells) kích thước $8 \times 8$ điểm ảnh, tính toán 64 vector gradient rồi rút gọn thành biểu đồ 9 giá trị hướng gradient, sau đó chuẩn hóa theo khối (blocks) để tạo ra vector đặc trưng bất biến với ánh sáng. Nhược điểm của kỹ thuật này là độ chính xác hạn chế trong môi trường nền phức tạp hoặc đối tượng bị che khuất.
  • Mạng nơ-ron tích chập hai giai đoạn (Two-stage Detectors):
    • R-CNN: Sử dụng thuật toán Selective Search để trích xuất khoảng 2.000 vùng đề xuất (region proposals), sau đó đưa qua mạng CNN để phân loại và hồi quy hộp bao.
    • Fast R-CNN: Truyền toàn bộ bức ảnh qua mạng CNN một lần duy nhất để tạo bản đồ đặc trưng, cải thiện tốc độ xử lý so với R-CNN.
    • Faster R-CNN: Thay thế Selective Search bằng mạng đề xuất vùng RPN (Region Proposal Network), giảm thời gian tạo vùng biên xuống còn khoảng 10 ms mỗi ảnh.
  • Mạng nơ-ron tích chập một giai đoạn (One-stage Detectors - Họ mô hình YOLO):
    • YOLOv1 – YOLOv7: Quá trình phát triển từ kiến trúc chia lưới đơn giản (v1: 45 FPS, 63.4 mAP), bổ sung Anchor Boxes và IoU (v2: 67 FPS, 76.8 mAP), xương sống Darknet-53 kết hợp bộ phân loại Logistic (v3: 28.2 mAP), các kỹ thuật Bag of Freebies / Bag of Specials (v4: 43.5 mAP), triển khai PyTorch linh hoạt (v5), đến các cải tiến mô-đun BiC và tự chưng cất (v6), tái tham số hóa mô hình và gán nhãn động (v7: 56.8 mAP).
    • Kiến trúc YOLOv8: Mô hình hiện đại tích hợp kiến trúc backbone CSPDarknet, phân nhánh C2f, và loại bỏ hoàn toàn anchor box (Anchor-free detection head). Cơ chế này cho phép dự đoán trực tiếp tâm đối tượng, giảm độ phức tạp trong khâu Triệt tiêu không tối đa (Non-Maximum Suppression - NMS).

Phương pháp nghiên cứu và hệ thống độ đo

Đề tài sử dụng phương pháp thực nghiệm kỹ thuật, bao gồm các bước: thu thập dữ liệu thứ cấp, gán nhãn thủ công kết hợp bán tự động, áp dụng kỹ thuật tăng cường dữ liệu (Data Augmentation), huấn luyện mô hình có giám sát trên nền tảng điện toán đám mây và kiểm thử độc lập.

Hiệu năng của mô hình được đánh giá qua các chỉ số thống kê chuẩn:

  • Precision (Độ chính xác): Tỷ lệ các trường hợp mô hình dự đoán đúng trên tổng số các trường hợp dự đoán là dương tính. $$\text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}}$$
  • Recall (Độ nhớ lại / Độ nhạy): Tỷ lệ phát hiện chính xác đối tượng thực tế có trong dữ liệu. $$\text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}}$$ (Trong đó: TP là Dương tính thực, FP là Dương tính giả, TN là Âm tính thực, FN là Âm tính giả).
  • AP (Average Precision): Độ chính xác trung bình tính theo phương pháp nội suy 11 điểm trên các mức Recall từ 0.0 đến 1.0.
  • mAP (Mean Average Precision): Trung bình cộng giá trị AP của tất cả 7 lớp trái cây cần nhận diện.

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

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

Chương 1 trình bày bối cảnh thực tiễn của ngành nông nghiệp và bán lẻ, phân tích sự cần thiết của việc ứng dụng thị giác máy tính vào tự động hóa phân loại nông sản. Tác giả tổng hợp bức tranh công nghệ phát hiện đối tượng qua hai nhánh tiếp cận: xử lý ảnh truyền thống (OpenCV, trích xuất đặc trưng HOG) và mạng nơ-ron học sâu.

Chương này đi sâu vào phân tích lộ trình phát triển của các kiến trúc mạng:

  • Phân tích cơ chế hoạt động của các mạng hai giai đoạn gồm R-CNN, Fast R-CNN và Faster R-CNN với mạng đề xuất vùng RPN.
  • Khái quát lịch sử phát triển của dòng mô hình YOLO từ phiên bản YOLOv1 (năm 2015) qua các mốc YOLOv2, YOLOv3, YOLOv4, YOLOv5, YOLOv6, YOLOv7, YOLOv8 và các biến thể mới như YOLOv9, YOLO-NAS, YOLO-World.
  • Thiết lập cơ sở toán học cho các tiêu chuẩn đánh giá mô hình phân loại và phát hiện đối tượng, bao gồm bảng ma trận nhầm lẫn (Confusion Matrix), các công thức Precision, Recall, AP 11 điểm nội suy và mAP.

Chương 2: Mô hình hệ thống phân loại trái cây

Chương 2 mô tả chi tiết đặc điểm hình thái và sinh học của 7 loại trái cây được lựa chọn trong đề tài:

  • Cam: Các giống cam sành, cam xoàn, cam ham lin, cam Xã Đoài.
  • Xoài: Xoài Cát Hòa Lộc, Cát Chu, xoài keo, xoài Úc với các hình dạng tròn, bầu dục, biến đổi màu sắc từ xanh sang vàng.
  • Táo, Chuối (chuối tiêu, chuối ngự, chuối sứ), Nho, Ổi và Dưa hấu: Đặc trưng về kích thước, màu sắc vỏ và dạng mọc (đơn lẻ hoặc theo chùm/nải).

Tiếp đó, chương 2 thiết lập sơ đồ khối hoạt động của hệ thống phân loại, quy trình thu thập ảnh, xử lý dữ liệu và cấu hình gán nhãn hộp bao (Bounding Box) thông qua nền tảng Roboflow. Tác giả phân tích cấu trúc chi tiết của mạng YOLOv8, tập trung vào thiết kế mô-đun hóa của Backbone, Neck và cơ chế đầu ra không neo (Anchor-free detection head), kết hợp thuật toán tối ưu hóa RAdam (Rectified Adam).

Chương 3: Cài đặt, thử nghiệm và đánh giá

Chương 3 trình bày toàn bộ quá trình thực nghiệm kỹ thuật:

  • Thiết lập môi trường phần mềm với ngôn ngữ Python, môi trường phát triển tích hợp PyCharm, và hạ tầng huấn luyện trực tuyến Google Colab (sử dụng GPU/TPU) kết nối đồng bộ dữ liệu qua Google Drive.
  • Xây dựng bộ dữ liệu huấn luyện chuẩn hóa về kích thước $640 \times 640$ pixels.
  • Quá trình đào tạo mô hình YOLOv8 với số lượng chu kỳ huấn luyện 100 epochs.
  • Phân tích các biểu đồ tổn thất (loss), biểu đồ hiệu suất, ma trận nhầm lẫn (Confusion Matrix) sau huấn luyện.
  • Thiết kế giao diện ứng dụng cho phép người dùng nạp ảnh tĩnh hoặc truyền luồng video thời gian thực để thực hiện phát hiện trái cây tự động.
  • Đánh giá chi tiết ưu điểm, nhược điểm và ghi nhận các trường hợp nhận diện sai lệch trong thực tế.

Thiết kế và triển khai

Hệ thống phát hiện loại trái cây được thiết kế theo quy trình xử lý thị giác máy tính khép kín, từ khâu chuẩn bị dữ liệu đầu vào đến triển khai ứng dụng thực tế.

Công nghệ và môi trường phát triển

  • Ngôn ngữ lập trình: Python.
  • Môi trường phát triển tích hợp (IDE): PyCharm.
  • Hạ tầng huấn luyện: Google Colab hỗ trợ đơn vị xử lý đồ họa (GPU) và đơn vị xử lý Tensor (TPU), liên kết trực tiếp với Google Drive để lưu trữ trọng số mô hình.
  • Công cụ gán nhãn và xử lý dữ liệu: Nền tảng Roboflow, hỗ trợ gán nhãn Bounding Box, kiểm tra sức khỏe dữ liệu (Health check) và thực hiện các kỹ thuật tăng cường dữ liệu (Data Augmentation) như xoay, lật, thay đổi độ sáng và màu sắc.

Cấu trúc dữ liệu huấn luyện

Dữ liệu hình ảnh được thu thập đa dạng về góc chụp, cường độ ánh sáng và bối cảnh không gian. Kích thước ảnh đầu vào được chuẩn hóa về định dạng $640 \times 640$ pixels theo yêu cầu tối ưu của mạng YOLOv8.

STT Tên loại trái cây Số lượng ảnh (Bảng 3-1)
1 Táo 1.189
2 Cam 1.087
3 Chuối 985
4 Xoài 935
5 Dưa hấu 878
6 Nho 875
7 Ổi 810
Tổng 7 lớp đối tượng 6.759

Triển khai mô hình và giao diện

  1. Huấn luyện mô hình: Tập dữ liệu 6.759 ảnh được phân chia thành các tập huấn luyện (Train), tập kiểm định (Validation) và tập kiểm thử (Test). Quá trình đào tạo mô hình được cấu hình qua tệp định dạng YAML, thực thi trên Google Colab với số chu kỳ lặp 100 epochs.
  2. Kiến trúc phát hiện: Tận dụng cơ chế Anchor-free của YOLOv8 giúp loại bỏ sự phụ thuộc vào các hộp neo cố định, giảm thiểu các phép tính toán không cần thiết trong giai đoạn hậu xử lý lọc biên NMS.
  3. Ứng dụng thực nghiệm: Xây dựng giao diện chương trình cho phép nhận diện trái cây trên 2 phương thức:
    • Hình ảnh tĩnh: Nhận diện đơn đối tượng hoặc đồng thời nhiều loại quả khác nhau trong cùng một khung hình.
    • Video thời gian thực: Xử lý luồng khung hình liên tục để đóng khung và hiển thị tên loại trái cây kèm độ tin cậy.

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

Kết quả đạt được

  • Đã thu thập và chuẩn hóa thành công bộ dữ liệu gồm 6.759 hình ảnh thuộc 7 nhóm trái cây phổ biến tại Việt Nam, hoàn thiện gán nhãn chính xác trên Roboflow.
  • Huấn luyện thành công mô hình YOLOv8 trên tập dữ liệu tùy chỉnh sau 100 epochs, ghi nhận ma trận nhầm lẫn phản ánh tỷ lệ phân loại chính xác giữa các lớp đối tượng.
  • Triển khai thành công phần mềm có giao diện trực quan, đáp ứng khả năng phân loại chính xác các trường hợp ảnh tĩnh có nhiều loại quả xếp chồng hoặc phân bố rải rác.
  • Thử nghiệm thành công tính năng nhận diện đối tượng trái cây trên định dạng video với tốc độ xử lý đáp ứng yêu cầu thời gian thực.

Đóng góp của đề tài

  • Cung cấp tài liệu tổng quan hệ thống hóa quá trình phát triển của các thuật toán phát hiện đối tượng từ HOG, họ R-CNN đến toàn bộ các thế hệ mạng YOLO (v1 đến v8).
  • Xây dựng hoàn chỉnh quy trình kỹ thuật xây dựng ứng dụng AI trong nông nghiệp: từ tiền xử lý dữ liệu, gán nhãn, cấu hình huấn luyện YOLOv8 trên Google Colab đến đóng gói ứng dụng giao diện.
  • Đặt nền tảng thực nghiệm ban đầu cho các nghiên cứu tiếp theo về tự động hóa phân loại nông sản phục vụ dây chuyền đóng gói hoặc bán lẻ thông minh.

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

Hạn chế

  • Hiện tượng nhận diện sai lệch: Trong quá trình thử nghiệm thực tế, mô hình vẫn ghi nhận một số trường hợp dự đoán sai nhãn (False Positive/False Negative), cụ thể như quả xoài bị nhận dạng nhầm hoặc các chùm nho có mật độ quả dày đặc bị bỏ sót hoặc nhận diện sai.
  • Tính phức tạp của bối cảnh: Khả năng nhận diện bị suy giảm khi đối tượng bị che khuất phần lớn, điều kiện ánh sáng thay đổi đột ngột hoặc góc chụp quá xa.

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

  • Tiếp tục thu thập và bổ sung thêm dữ liệu hình ảnh ở các điều kiện môi trường phức tạp (thiếu sáng, bóng râm, quả bị che khuất).
  • Nghiên cứu mở rộng bài toán nhận diện nhằm phân biệt quả đạt chuẩn chất lượng với quả bị hư hỏng, thối dập.
  • Nâng cấp mô hình để phân biệt nguồn gốc xuất xứ của nông sản (ví dụ: phân biệt nho Việt Nam và nho nhập khẩu).
  • Thử nghiệm tích hợp mô hình lên các thiết bị phần cứng nhúng phục vụ tự động hóa trực tiếp tại nông trại và siêu thị.

Giá trị tham khảo

Đồ án là tài liệu tham khảo hữu ích cho sinh viên chuyên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Khoa học Dữ liệu đang nghiên cứu về thị giác máy tính và học sâu. Tài liệu cung cấp hướng dẫn từng bước về việc sử dụng nền tảng Roboflow để quản lý dữ liệu, kỹ thuật kết nối Google Colab với Google Drive để đào tạo mô hình học sâu, cũng như cách triển khai kiến trúc YOLOv8 vào một bài toán thực tế trong đời sống.


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

1. Đồ án sử dụng kiến trúc mô hình nào để phát hiện trái cây và có điểm gì cải tiến so với các phiên bản trước?
Đồ án sử dụng mô hình YOLOv8. Cải tiến nổi bật của YOLOv8 so với các phiên bản tiền nhiệm là thiết kế Anchor-free (không sử dụng anchor box), giúp mô hình dự đoán trực tiếp tâm đối tượng thay vì điều chỉnh từ các hộp neo định sẵn, từ đó giảm số lượng dự đoán hộp biên và tăng tốc độ xử lý của quá trình Triệt tiêu không tối đa (NMS).

2. Bộ dữ liệu của đồ án gồm những loại trái cây nào và tổng số lượng ảnh là bao nhiêu?
Bộ dữ liệu gồm 7 loại trái cây với tổng cộng 6.759 hình ảnh, cụ thể: Táo (1.189 ảnh), Cam (1.087 ảnh), Chuối (985 ảnh), Xoài (935 ảnh), Dưa hấu (878 ảnh), Nho (875 ảnh) và Ổi (810 ảnh).

3. Công cụ nào được tác giả sử dụng để gán nhãn và tiền xử lý hình ảnh?
Tác giả sử dụng nền tảng Roboflow để tập trung dữ liệu, gán nhãn Bounding Box cho các đối tượng và áp dụng các kỹ thuật tăng cường dữ liệu (Data Augmentation) như xoay, lật và thay đổi màu sắc.

4. Mô hình được huấn luyện trong bao nhiêu chu kỳ (epochs) và trên hạ tầng nào?
Mô hình được huấn luyện với 100 epochs trên môi trường điện toán đám mây Google Colab (sử dụng tài nguyên GPU/TPU) và kết nối lưu trữ với Google Drive.

5. Trong phần thử nghiệm thực tế, mô hình gặp phải những lỗi nhận diện cụ thể nào?
Theo kết quả thử nghiệm ở Chương 3, mô hình còn gặp lỗi nhận diện sai nhãn ở một số trường hợp cụ thể như quả xoài bị nhận dạng sai và chùm nho bị nhận diện không chính xác.


Kết luận

Đồ án tốt nghiệp "Phát hiện loại trái cây" của sinh viên Nguyễn Tuấn Hùng đã hoàn thành đầy đủ các mục tiêu nghiên cứu và nhiệm vụ kỹ thuật được giao. Bằng việc ứng dụng mạng học sâu YOLOv8 kết hợp với quy trình xử lý dữ liệu trên Roboflow và hạ tầng Google Colab, tác giả đã xây dựng thành công ứng dụng nhận diện 7 loại trái cây trên cả hình ảnh tĩnh và video. Công trình mang tính ứng dụng thực tiễn cao, đóng vai trò làm cơ sở nền tảng cho việc phát triển các hệ thống phân loại nông sản tự động trong tương lai.