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

Trong bối cảnh phát triển của thị giác máy tính và học sâu (Deep Learning), việc tự động hóa các quy trình phân loại nông sản đang trở thành nhu cầu thiết thực trong chuỗi cung ứng sản xuất và bán lẻ. Tại các trang trại và hệ thống phân phối nông sản, người lao động phải xử lý hàng nghìn quả trái cây mỗi ngày; quy trình phân loại thủ công bằng mắt thường bộc lộ nhiều điểm hạn chế như tốn kém chi phí nhân công, mất nhiều thời gian, dễ gây sai sót và khó đảm bảo tính đồng đều của sản phẩm. Bên cạnh đó, việc nhận diện nhanh chóng các chủng loại trái cây, loại bỏ quả kém chất lượng hay phân biệt đặc điểm nông sản (như xuất xứ) đặt ra yêu cầu phải có công cụ tự động hóa hỗ trợ. Đề 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 nền tảng ứng dụng mô hình học sâu để tự động phát hiện và phân loại các loại trái cây thông qua hình ảnh và video.

Nhiệm vụ nghiên cứu của đề tài được xác định qua 5 nội dung chính:

  1. Tìm hiểu về bài toán phát hiện đối tượng trong thị giác máy tính và nguyên lý hoạt động của mô hình YOLOv8.
  2. Phân tích, thu thập và tiền xử lý dữ liệu hình ảnh các loại trái cây phục vụ huấn luyện mô hình.
  3. Cài đặt và cấu hình mô hình phát hiện đối tượng dựa trên kiến trúc YOLOv8.
  4. Thử nghiệm, đánh giá mô hình trên tập dữ liệu hình ảnh tĩnh và luồng video thực tế.
  5. Nhận xét, đánh giá kết quả, chỉ ra các hạn chế và đề xuất giải pháp cải tiến khi ứng dụng vào thực tiễn.

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

  • Đối tượng nghiên cứu: Các thuật toán thị giác máy tính, mô hình phát hiện đối tượng YOLOv8 và dữ liệu hình ảnh của 7 loại trái cây phổ biến gồm cam, táo, xoài, chuối, nho, ổi và dưa hấu.
  • Phạm vi không gian: Nghiên cứu được thực hiện tại 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ốt nghiệp tại Công ty TNHH Đào tạo và Tích hợp Công nghệ e-Teck.
  • Phạm vi thời gian: Đồ án hoàn thành vào tháng 5 năm 2024.

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

Khóa luận xây dựng hệ thống trên nền tảng lý thuyết thị giác máy tính và các mạng nơ-ron tích chập (Convolutional Neural Networks - CNN) chuyên sâu cho bài toán phát hiện đối tượng (Object Detection):

  • Kỹ thuật xử lý ảnh truyền thống và mô tả đặc trưng HOG: Tác giả phân tích phương pháp Biểu đồ Gradient có hướng (Histogram of Oriented Gradients - HOG). Kỹ thuật này trích xuất vector đặc trưng cục bộ thông qua việc chia ảnh thành các ô (cells kích thước 8×8 điểm ảnh), tính toán biểu đồ hướng gradient với 9 mức giá trị, chuẩn hóa độ tương phản theo từng khối (blocks) nhằm tạo ra vector đặc trưng có tính bất biến với điều kiện chiếu sáng.
  • Dòng mạng nơ-ron tích chập theo vùng (Region-based CNN): Khảo sát quá trình tiến hóa từ R-CNN (sử dụng Selective Search trích xuất khoảng 2.000 vùng đề xuất), Fast R-CNN (xử lý toàn bộ ảnh qua mạng tích chập trước khi trích xuất đặc trưng vùng), đến Faster R-CNN (thay thế Selective Search bằng Mạng đề xuất vùng - Region Proposal Network - RPN, giúp giảm thời gian tính toán biên xuống khoảng 10 ms mỗi ảnh).
  • Mô hình You Only Look Once (YOLO): Tác giả tổng hợp lộ trình phát triển của mạng YOLO từ YOLOv1 đến YOLOv9. Trọng tâm nghiên cứu đặt vào YOLOv8 – kiến trúc hiện đại hỗ trợ đa tác vụ thị giác (phát hiện, phân đoạn thực thể, ước tính tư thế) với thiết kế không sử dụng hộp neo (anchor-free), tối ưu hóa hàm mất mát và tích hợp thuật toán tối ưu RAdam (Rectified Adam).

Phương pháp nghiên cứu thực nghiệm:

  • Thu thập và tiền xử lý dữ liệu: Dữ liệu ảnh thực nghiệm được thu thập, làm sạch và gán nhãn khung bao (bounding box) qua nền tảng Roboflow.
  • Phương pháp huấn luyện: Áp dụng kỹ thuật tăng cường dữ liệu (Data Augmentation) bao gồm xoay, lật và biến đổi màu sắc; chuẩn hóa kích thước đầu vào về chuẩn 640×640 pixel của YOLOv8.
  • Tiêu chuẩn đánh giá hiệu năng: Sử dụng các đại lượng thống kê gồm True Positive (TP), False Positive (FP), True Negative (TN), False Negative (FN) để xác định:
    • Độ chính xác (Precision): $P = \frac{TP}{TP + FP}$
    • Độ nhớ lại (Recall): $R = \frac{TP}{TP + FN}$
    • Độ chính xác trung bình (Average Precision - AP) dựa trên phép tính nội suy 11 điểm: $AP = \frac{1}{11} \sum_{r \in {0, 0.1, \dots, 1}} p_{interp}(r)$
    • Độ chính xác trung bình trung bình (Mean Average Precision - mAP): Trung bình cộng AP của toàn bộ các lớp đối tượng.

Thiết kế và triển khai hệ thống

Hệ thống phát hiện loại trái cây được thiết kế theo quy trình khép kín từ khâu tiếp nhận dữ liệu đến khâu nhận diện và xuất kết quả:

Thành phần Công nghệ / Công cụ Vai trò và thông số kỹ thuật
Ngôn ngữ lập trình Python Xây dựng mã nguồn huấn luyện, xử lý dữ liệu và thực thi suy luận
Môi trường phát triển (IDE) PyCharm Quản lý dự án, viết mã và tinh chỉnh giao diện ứng dụng
Nền tảng huấn luyện Google Colaboratory (Colab) Tận dụng phần cứng GPU đám mây, liên kết dữ liệu qua Google Drive
Quản lý & Gán nhãn dữ liệu Roboflow Gán nhãn Bounding Box, kiểm tra chất lượng (Health Check), tăng cường dữ liệu
Mô hình cốt lõi Ultralytics YOLOv8 Trích xuất đặc trưng, hồi quy tọa độ khung bao và phân loại đối tượng (Anchor-free)
Kích thước đầu vào $640 \times 640$ pixels Định dạng chuẩn hóa đầu vào cho mạng nơ-ron tích chập

Quy trình hoạt động của hệ thống bao gồm:

  1. Tiếp nhận đầu vào: Nhận luồng dữ liệu từ tệp ảnh tĩnh hoặc video ghi hình thực tế.
  2. Khối phát hiện và định vị: Mô hình YOLOv8 trích xuất đặc trưng đa tầng qua cấu trúc Backbone và Neck, dự đoán trực tiếp tâm đối tượng và kích thước khung bao mà không phụ thuộc vào các hộp neo định sẵn.
  3. Khối phân loại và hậu xử lý: Thực hiện gán nhãn lớp đối tượng (Cam, Táo, Xoài, Chuối, Nho, Ổi, Dưa hấu), tính toán điểm tin cậy (Confidence Score) và áp dụng thuật toán triệt tiêu không cực đại (Non-Maximum Suppression - NMS) để lọc các khung bao trùng lặp trước khi hiển thị kết quả lên giao 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 thiết lập nền tảng lý luận cho toàn bộ đồ án:

  • Trình bày bài toán thực tiễn trong ngành nông nghiệp và bán lẻ, phân tích sự cần thiết của việc thay thế thao tác phân loại thủ công bằng giải pháp thị giác máy tính.
  • Làm rõ định nghĩa phát hiện đối tượng, so sánh hai hướng tiếp cận chính: xử lý ảnh truyền thống (OpenCV, HOG) và mạng học sâu (Deep Learning).
  • Khảo sát chi tiết cấu trúc thuật toán HOG với quy trình chia ô, tính toán gradient 9 hướng và chuẩn hóa khối.
  • Phân tích sự tiến hóa của các kiến trúc mạng nơ-ron:
    • Mô hình hai giai đoạn: R-CNN, Fast R-CNN và Faster R-CNN với mạng RPN.
    • Mô hình một giai đoạn: Dòng thuật toán YOLO từ YOLOv1 (đạt mAP 63,4 tại 45 FPS trên VOC 2007), YOLOv2 (bổ sung anchor boxes, mAP 76,8 tại 67 FPS), YOLOv3 (backbone Darknet-53, phân loại logistic, mAP 28,2), YOLOv4 (BoF, BoS, mAP 43,5 tại 65 FPS), YOLOv5, YOLOv6 (mAP 37,5 đến 45), YOLOv7 (mAP 56,8), cho đến các phiên bản mở rộng như YOLO-NAS, RT-DETR, YOLO-World.
  • Thiết lập hệ thống công thức toán học đo lường độ tin cậy: Precision, Recall, ma trận nhầm lẫn, phương pháp nội suy 11 điểm tính AP và công thức tính mAP đa lớp.

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 đối tượng nông sản và kiến trúc mô hình triển khai:

  • Trình bày đặc điểm hình thái, màu sắc và nguồn gốc của 7 loại trái cây nghiên cứu:
    • Cam: Vỏ xanh hoặc vàng cam, bề mặt sần hoặc nhẵn (cam sành, cam xoàn, cam hamlin, cam Xã Đoài).
    • Xoài: Hình dạng từ tròn đến bầu dục, biến đổi từ xanh sang vàng khi chín (xoài Cát Hòa Lộc, Cát Chu, xoài keo, xoài Úc).
    • Táo: Quả kích thước trung bình vài centimet, sắc đỏ hoặc vàng sáng.
    • Chuối: Dáng cong, mọc thành nải/buồng, vỏ vàng hoặc xanh (chuối tiêu, chuối ngự, chuối sứ).
    • Nho: Mọc thành chùm từ vài chục đến vài trăm quả nhỏ hình tròn/bầu dục, màu sắc xanh, đỏ, tím, đen.
    • Ổi: Quả hình tròn hoặc bầu dục đường kính 4–12 cm, vỏ xanh nhạt đến vàng, ruột trắng hoặc hồng.
    • Dưa hấu: Kích thước lớn, trọng lượng từ vài kg đến trên 20 kg, vỏ xanh có vân hoặc đốm.
  • Thống kê chi tiết số lượng hình ảnh thu thập cho từng loại trái cây:
STT Loại trái cây Số lượng ảnh thu thập
1 Cam 1.087
2 Chuối 985
3 Nho 875
4 Dưa hấu 878
5 Xoài 935
6 Ổi 810
7 Táo 1.189
Tổng 7 loại đối tượng 6.759
  • Trình bày quy trình gán nhãn bounding box trên Roboflow và cơ chế phân chia tập dữ liệu huấn luyện, kiểm thực, kiểm thử.
  • Phân tích kiến trúc kỹ thuật của YOLOv8: Cấu trúc 3 khối (Backbone, Neck, Head), cơ chế phát hiện không neo (Anchor-free) giúp dự đoán trực tiếp tâm đối tượng, giảm gánh nặng tính toán trong giai đoạn hậu xử lý NMS.

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

Chương 3 trình bày các bước thực nghiệm, cấu hình và kết quả đạt được:

  • Mô tả môi trường phát triển: Cài đặt thư viện trên Python thông qua PyCharm, kết nối Google Colab với Google Drive để tận dụng GPU phục vụ huấn luyện.
  • Thực hiện đào tạo mô hình YOLOv8 với số lượng chu kỳ huấn luyện (epochs = 100), theo dõi biểu đồ hàm mất mát và các chỉ số thống kê hội tụ.
  • Xây dựng giao diện chương trình cho phép tải ảnh tĩnh hoặc chọn luồng video để nhận diện đối tượng theo thời gian thực.
  • Đánh giá định lượng qua ma trận nhầm lẫn (Confusion Matrix) và bảng thử nghiệm phân loại trên nhiều tập mẫu dữ liệu:
    • Thử nghiệm trên ảnh chụp đơn lẻ từng loại quả.
    • Thử nghiệm trên ảnh phức tạp chứa đồng thời nhiều loại trái cây khác nhau trong một khung hình.
    • Thử nghiệm nhận diện trực tiếp trên dữ liệu video chuyển động.

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

Kết quả thực nghiệm chính

  • Xây dựng thành công bộ dữ liệu gán nhãn chuẩn hóa gồm 6.759 ảnh cho 7 loại trái cây nông sản phổ biến, đáp ứng yêu cầu đầu vào $640 \times 640$ pixel của mạng nơ-ron học sâu.
  • Triển khai thành công quy trình huấn luyện mô hình YOLOv8 không dùng hộp neo trên Google Colab với số lượng 100 epochs, tạo ra mô hình có khả năng định vị và phân loại đối tượng chính xác trên phần lớn các mẫu thử nghiệm.
  • Xây dựng hoàn chỉnh ứng dụng có giao diện trực quan, hỗ trợ phát hiện loại trái cây trên cả 2 định dạng: hình ảnh tĩnh (đơn đối tượng và đa đối tượng) và tập tin video.

Giải pháp và khuyến nghị tác giả đề xuất

  • Cần chú trọng khâu tiền xử lý và tăng cường dữ liệu (Data Augmentation) với các góc chụp và điều kiện chiếu sáng đa dạng để giảm thiểu hiện tượng nhận diện sai đối với các loại quả có hình thái tương đồng.
  • Khi triển khai trong môi trường sản xuất hoặc đóng gói tự động, cần bố trí hệ thống camera cố định và nguồn sáng ổn định nhằm tối ưu hóa độ chính xác của mô hình.

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

  • Hệ thống hóa cơ sở lý thuyết từ các giải pháp xử lý ảnh truyền thống (HOG) đến các mô hình học sâu tiên tiến (Faster R-CNN, YOLOv1 - YOLOv9).
  • Đưa ra quy trình thực nghiệm rõ ràng về việc ứng dụng kiến trúc Anchor-free của YOLOv8 vào bài toán nông nghiệp cụ thể tại Việt Nam.

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

Khóa luận chỉ ra một số hạn chế trong quá trình thực nghiệm:

  • Hiện tượng nhận diện sai lệch: Mô hình vẫn ghi nhận một số trường hợp phân loại nhầm giữa các đối tượng có màu sắc hoặc hình khối tương tự nhau trong điều kiện phức tạp (văn bản ghi nhận cụ thể trường hợp trái xoài bị nhận dạng sai và chùm nho bị nhận diện sai khi góc chụp bị khuất hoặc ánh sáng không đồng đều).
  • Phạm vi chủng loại dữ liệu: Bộ dữ liệu dừng lại ở 7 loại trái cây cơ bản, chưa bao quát được toàn bộ các giống cây ăn quả nhiệt đới và cận nhiệt đới.

Hướng phát triển tiếp theo được đề xuất:

  • Thu thập bổ sung và mở rộng tập dữ liệu với nhiều giống trái cây mới, gia tăng các trường hợp biên như quả bị che khuất một phần, quả dập nát hoặc điều kiện ánh sáng yếu.
  • Nghiên cứu tối ưu hóa mô hình để tích hợp lên các hệ thống phần cứng nhúng (Edge AI, Raspberry Pi, Jetson Nano) phục vụ trực tiếp cho các dây chuyền phân loại nông sản tự động trong nhà máy.

Giá trị tham khảo

Đồ án là tài liệu tham khảo phù hợp cho:

  • Sinh viên chuyên ngành Công nghệ thông tin, Khoa học dữ liệu và Kỹ thuật phần mềm đang thực hiện đồ án tốt nghiệp hoặc nghiên cứu ứng dụng thị giác máy tính.
  • Các nhà nghiên cứu và kỹ sư quan tâm đến quy trình gán nhãn dữ liệu bằng Roboflow, huấn luyện mô hình YOLOv8 trên Google Colab và triển khai ứng dụng nhận diện đối tượng bằng Python.
  • Nội dung đáng tham khảo nhất bao gồm: Chương 1 (hệ thống hóa lý thuyết về HOG, RPN và dòng mô hình YOLO), bảng thống kê chi tiết số lượng ảnh từng lớp trong Chương 2, cùng quy trình cấu hình thử nghiệm và đánh giá bằng Confusion Matrix trong Chương 3.

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

1. Đồ án sử dụng mô hình học sâu nào làm kiến trúc nhận diện chính và có đặc trưng gì nổi bật?
Đồ án sử dụng mô hình YOLOv8 của Ultralytics. Điểm nổi bật chính của mô hình này là áp dụng cơ chế phát hiện không sử dụng hộp neo (Anchor-free detection head), giúp dự đoán trực tiếp tâm của đố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 và tối ưu hóa tốc độ xử lý của thuật toán Triệt tiêu không cực đại (NMS).

2. Tập dữ liệu thực nghiệm gồm bao nhiêu loại trái cây và số lượng ảnh chi tiết của từng loại là bao nhiêu?
Tập dữ liệu bao gồm 7 loại trái cây với tổng số 6.759 ảnh, phân bố cụ thể như sau: quả táo (1.189 ảnh), quả cam (1.087 ảnh), chuối (985 ảnh), xoài (935 ảnh), dưa hấu (878 ảnh), nho (875 ảnh) và quả ổi (810 ảnh).

3. Tác giả đã sử dụng những công cụ và môi trường nào để chuẩn bị dữ liệu và huấn luyện mô hình?
Tác giả sử dụng nền tảng Roboflow để tập trung ảnh, kiểm tra chất lượng (Health Check), tăng cường dữ liệu và gán nhãn bounding box. Quá trình huấn luyện mô hình được thực hiện trên môi trường trực tuyến Google Colab (sử dụng GPU và liên kết dữ liệu qua Google Drive), kết hợp môi trường lập trình PyCharm với ngôn ngữ Python.

4. Khóa luận đã kiểm thử mô hình trên những dạng dữ liệu nào và có phát hiện sai sót gì không?
Mô hình đã được thử nghiệm trên 3 dạng dữ liệu: hình ảnh tĩnh chụp đơn quả, hình ảnh tĩnh chụp nhiều loại quả khác nhau trong cùng một khung hình, và video chuyển động thực tế. Kết quả kiểm thử ghi nhận mô hình phát hiện tốt phần lớn đối tượng nhưng vẫn còn một số trường hợp nhận diện sai, cụ thể như trái xoài bị nhận sai hoặc chùm nho bị nhận diện sai.


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ụ đề ra. Tác giả đã tổng hợp có hệ thống cơ sở lý thuyết về thị giác máy tính, xây dựng thành công tập dữ liệu 6.759 ảnh cho 7 loại trái cây và huấn luyện mô hình phát hiện đối tượng dựa trên kiến trúc YOLOv8. Mặc dù vẫn còn một số sai số cục bộ trong điều kiện hình ảnh phức tạp, kết quả thực nghiệm và chương trình ứng dụng đã chứng minh tính khả thi của giải pháp trong việc tự động hóa nhận diện nông sản.