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

Lý do chọn đề tài và bối cảnh thực tiễn

Theo số liệu từ Báo cáo hiện trạng môi trường quốc gia năm 2019 được trích dẫn trong đồ án, Việt Nam phát sinh khoảng 28 triệu tấn rác thải sinh hoạt mỗi năm. Trong đó, chỉ khoảng 85% lượng rác thải được thu gom và xử lý, phần còn lại bị thải bỏ bừa bãi ra môi trường tự nhiên, gây suy thoái hệ sinh thái đất, nước, không khí và làm lãng phí nguồn tài nguyên có thể tái chế.

Thực tế công tác quản lý rác thải hiện nay phần lớn vẫn dựa vào phương pháp thủ công: rác thải chưa được phân loại triệt để tại nguồn, thu gom lẫn lộn và vận chuyển đến các bãi tập kết trước khi tiến hành phân loại để tái chế hoặc tiêu hủy. Quy trình này tiềm ẩn nguy cơ ô nhiễm thứ cấp và ảnh hưởng xấu đến sức khỏe của công nhân vệ sinh. Nhằm giải quyết vấn đề trên, đề tài tập trung nghiên cứu giải pháp tự động hóa quá trình nhận diện và phân loại rác thông qua thị giác máy tính và học sâu (Deep Learning), ứng dụng mô hình YOLOv8 để phát hiện các loại vật thể rác thải phục vụ tái chế.

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

Mục tiêu tổng quát của đồ án là xây dựng một mô hình học sâu có khả năng phát hiện và phân loại các loại rác thải tái chế phổ biến (nhựa, chai lọ, kim loại, vỏ hộp sữa) trên dữ liệu hình ảnh tĩnh và luồng video thời gian thực.

Nhiệm vụ nghiên cứu cụ thể được xác định theo 4 nội dung chính:

  1. Tìm hiểu tổng quan về bài toán phát hiện đối tượng (Object Detection) và nghiên cứu cơ chế hoạt động của mô hình YOLOv8.
  2. Thu thập bộ dữ liệu hình ảnh rác thải và thực hiện gán nhãn dữ liệu chuẩn hóa phục vụ huấn luyện mô hình.
  3. Cài đặt môi trường, thiết lập tham số và tiến hành huấn luyện mô hình phát hiện rác thải bằng YOLOv8.
  4. Thử nghiệm thực tế trên các định dạng đầu vào (ảnh tĩnh, video), đánh giá hiệu năng mô hình qua các chỉ số định lượng và đề xuất các giải pháp kỹ thuật liên quan.

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

  • Đối tượng nghiên cứu: Kỹ thuật phát hiện đối tượng trong xử lý ảnh; mô hình mạng nơ-ron tích chập (CNN); kiến trúc mô hình YOLOv8; các nhóm rác thải sinh hoạt có khả năng tái chế bao gồm rác thải nhựa, kim loại, chai lọ thủy tinh và vỏ hộp sữa.
  • Phạm vi không gian: Đề tài được 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; kết hợp quá trình thực tập tốt nghiệp tại Công ty Cổ phần Hạ tầng Viễn thông Việt Nam (CMC Telecom).
  • Phạm vi thời gian: Đề tài được giao thực hiện từ ngày 13 tháng 01 năm 2024 và hoàn thành nghiệm thu vào tháng 05 năm 2024.

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

Khung lý thuyết và mô hình tiếp cận

Đồ án tiếp cận bài toán phân loại rác thải dựa trên các lý thuyết và mô hình kỹ thuật sau:

  • Phân loại rác thải: Phân nhóm chất thải thành rác thải hữu cơ, rác thải vô cơ, rác thải nguy hại, rác thải điện tử (e-waste), rác thải y tế và rác thải xây dựng. Trong đó, nghiên cứu đi sâu vào đặc tính của các vật liệu tái chế:
    • Vỏ hộp sữa: Cấu tạo phức hợp 6 lớp từ 3 loại nguyên liệu (75% giấy, 25% còn lại là nhôm và nhựa polyethylene), có chức năng bảo quản chất lỏng nhưng khó phân hủy nếu xử lý sai quy cách.
    • Chai lọ: Vật liệu thủy tinh hoặc nhựa với đặc tính chịu lực, không thấm nước.
    • Rác thải nhựa và túi nilon: Các polyme tổng hợp có thời gian phân hủy tự nhiên kéo dài hàng trăm đến hàng nghìn năm.
    • Kim loại: Các hợp chất kim loại phổ biến (nhôm, đồng, sắt, thiếc...) chiếm khoảng 80% bảng tuần hoàn các nguyên tố hóa học, có giá trị tái chế cao.
  • Các phương pháp phát hiện rác thải: Tổng quan các hướng tiếp cận bao gồm phân tích đặc trưng vật lý (kích thước, hình dạng, màu sắc), phân tích thành phần hóa học, cảm biến IoT, mạng nơ-ron hồi quy (RNN cho dữ liệu âm thanh/văn bản/chuỗi thời gian) và mạng nơ-ron tích chập (CNN cho dữ liệu hình ảnh).
  • Lý thuyết mô hình YOLO (You Only Look Once): Đồ án hệ thống hóa các thế hệ kiến trúc của dòng mô hình YOLO từ YOLOv1 đến YOLOv8:
    • YOLOv1 (2016): Mô hình một giai đoạn (one-stage detector) sử dụng một mạng CNN duy nhất để dự đoán đồng thời bounding box và xác suất lớp.
    • YOLOv2 / YOLO9000: Bổ sung cơ chế anchor box, cải thiện độ chính xác trên tập dữ liệu VOC 2007 (76.8 mAP ở 67 FPS).
    • YOLOv3 (2018): Giới thiệu cơ chế dự đoán đa tỷ lệ (multi-scale features) và phân loại đa nhãn (logistic regression thay vì softmax).
    • YOLOv4 (2020): Tích hợp kỹ thuật tăng cường dữ liệu Mosaic, Self-Adversarial Training (SAT), và nhóm phương pháp Bag of Freebies (BoF).
    • YOLOv5 & YOLOv6: Bổ sung cấu trúc BiC (Bi-directional Concatenation), chiến lược neo hỗ trợ (AAT) và tối ưu hóa suy luận.
    • YOLOv7: Cải tiến vượt trội về tốc độ và độ chính xác (đạt 56.8% AP trên GPU V100).
    • YOLOv8: Kiến trúc mới nhất với việc loại bỏ neo (Anchor-free Split Head), tối ưu hóa cấu trúc Backbone và Neck, hỗ trợ đa tác vụ từ phát hiện vật thể, phân đoạn phiên bản (Instance Segmentation) đến ước lượng tư thế (Pose Estimation).
[Ảnh đầu vào rác thải] 
[Backbone: Trích xuất đặc trưng] 
[Neck: Tinh chỉnh và kết hợp đa tầng đặc trưng] 
[Anchor-free Split Head: Dự đoán Bounding Box & Phân loại Class] 
[Đầu ra: Vị trí tọa độ rác thải + Nhãn lớp + Độ tin cậy (Confidence)]

Phương pháp nghiên cứu

  • Phương pháp thu thập và xử lý dữ liệu: Thu thập hình ảnh từ nền tảng trực tuyến (Pinterest) theo các danh mục rác thải mục tiêu, lọc dữ liệu với phông nền trắng để làm nổi bật hình thái vật thể.
  • Phương pháp gán nhãn dữ liệu: Sử dụng công cụ bán tự động MakeSense.ai để định vị khung bao (bounding box) và gán nhãn định danh cho từng đối tượng vật thể trong ảnh.
  • Phương pháp thực nghiệm mô hình: Cài đặt mô hình YOLOv8 trên nền tảng điện toán đám mây Google Colab, tận dụng bộ xử lý đồ họa (GPU) để huấn luyện mạng qua 100 chu kỳ lặp (epochs).
  • Phương pháp đánh giá định lượng: Đánh giá độ hội tụ và độ chính xác của mạng thông qua các hàm mất mát (Box Loss, Class Loss, Distribution Focal Loss) và các chỉ số đo lường Precision, Recall, mAP50, Ma trận nhầm lẫn (Confusion Matrix).

Thiết kế và triển khai

Kiến trúc công nghệ và môi trường thực nghiệm

Quá trình xây dựng mô hình và triển khai thử nghiệm sử dụng các công cụ phần mềm và hạ tầng kỹ thuật:

  • Ngôn ngữ lập trình: Python (ngôn ngữ thông dịch, hỗ trợ các thư viện xử lý khoa học dữ liệu và học máy).
  • Môi trường phát triển tích hợp (IDE): PyCharm (quản lý mã nguồn, tích hợp môi trường ảo và liên kết Git).
  • Môi trường huấn luyện đám mây: Google Colab (cung cấp hạ tầng GPU/TPU miễn phí, tích hợp trực tiếp với Google Drive để lưu trữ và nạp dữ liệu).
  • Phần mềm gán nhãn: MakeSense.ai (công cụ trực tuyến hỗ trợ xuất định dạng nhãn bounding box chuẩn cho các mô hình YOLO).

Quy cách bộ dữ liệu huấn luyện

Bộ dữ liệu được xây dựng từ thư viện ảnh Pinterest với tổng số 1.771 ảnh chụp trên phông nền trắng, chia thành 4 lớp (classes) đối tượng rác thải tái chế:

STT Tên lớp đối tượng (Class) Số lượng hình ảnh Đặc điểm nhận diện chính
1 Kim loại 703 Bề mặt có ánh kim, hình dạng lon, vỏ sắt, nhôm
2 Chai lọ 512 Chai thủy tinh trong suốt hoặc chai nhựa có hình khối đặc trưng
3 Nhựa 402 Túi nilon, rác thải bao bì nhựa sinh hoạt
4 Vỏ hộp sữa 161 Khối hộp chữ nhật phức hợp nhiều lớp giấy - nhôm - nhựa
Tổng cộng 4 nhóm đối tượng 1.771 ảnh Dữ liệu được chuẩn hóa gán nhãn qua MakeSense.ai

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

Lời mở đầu và Đặt vấn đề

Trình bày tổng quan thực trạng phát sinh 28 triệu tấn rác thải mỗi năm tại Việt Nam, sự thiếu hụt trong hạ tầng thu gom và phân loại rác tự động. Phân tích vai trò của trí tuệ nhân tạo và công nghệ xử lý ảnh trong việc nâng cao ý thức cộng đồng, hỗ trợ các cơ quan quản lý môi trường tối ưu hóa quy trình tái chế chất thải. Xác định rõ mục tiêu, nhiệm vụ và phạm vi đề tài tốt nghiệp ngành Công nghệ Thông tin.

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

  • Khái niệm và phân loại chất thải: Phân tích chi tiết khái niệm rác thải, phân nhóm chất thải sinh hoạt, công nghiệp, y tế, điện tử và xây dựng. Đi sâu vào cấu tạo vật lý - hóa học của 4 nhóm vật liệu: vỏ hộp sữa (cấu tạo 6 trong 1 với 75% giấy, 25% nhôm và nhựa), túi nilon/nhựa khó phân hủy, chai lọ thủy tinh/nhựa có thể tái chế nhiều lần, và các kim loại thông dụng.
  • Tổng quan các kỹ thuật nhận diện: Phân tích ưu nhược điểm của các phương pháp phân loại rác: phân loại tại nguồn, công nghệ chôn lấp (landfill), đốt rác thủ công, đốt rác phát điện, sản xuất phân compost, và ứng dụng mạng nơ-ron (CNN, RNN kết hợp cảm biến/chuỗi thời gian).
  • Lý thuyết mạng nơ-ron và tiến trình phát triển của YOLO: Phân tích nguyên lý trích xuất đặc trưng của mạng nơ-ron tích chập (CNN), cấu trúc kết nối hoàn toàn (fully connected layer) và sự chuyển dịch từ các mô hình hai giai đoạn (R-CNN, Faster R-CNN) sang mô hình một giai đoạn (YOLO). Điểm qua kiến trúc kỹ thuật của các phiên bản YOLO từ v1 (Joseph Redmon, 2016) đến v8 (Ultralytics, 2023), làm rõ cấu trúc 3 phần của YOLOv8 gồm Xương sống (Backbone), Cổ (Neck) và Đầu ra (Head) không dùng neo (anchor-free).

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

  • Công cụ và môi trường: Giới thiệu chi tiết vai trò của ngôn ngữ Python, phần mềm PyCharm, nền tảng đám mây Google Colab và công cụ gán nhãn MakeSense.ai.
  • Thu thập và gán nhãn dữ liệu: Mô tả quá trình tải và xử lý 1.771 ảnh từ Pinterest thành 4 class (Kim loại: 703 ảnh, Chai lọ: 512 ảnh, Nhựa: 402 ảnh, Vỏ hộp sữa: 161 ảnh), cấu trúc tệp văn bản chứa nhãn (class ID, tọa độ bounding box tương đối).
  • Quá trình huấn luyện và kiểm thử mô hình: Huấn luyện mô hình YOLOv8 qua 100 epochs, theo dõi các đồ thị hàm mất mát và độ chính xác. Thực nghiệm nhận diện trên 3 dạng dữ liệu đầu vào: ảnh tĩnh chứa một vật thể, ảnh tĩnh chứa nhiều vật thể đồng thời, và video độ nét cao (HD) quay từ điện thoại di động. Phân tích ảnh hưởng của ngưỡng tin cậy (Confidence threshold) trong quá trình suy luận (detect.py).

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

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

Qua 100 chu kỳ huấn luyện (epochs) và thử nghiệm thực tế trên tập dữ liệu kiểm tra, mô hình ghi nhận các kết quả kỹ thuật sau:

  • Biến thiên của các hàm mất mát (Loss values):
    • Train/Box Loss dao động trong khoảng từ 0 đến 5 trong suốt 100 epochs.
    • Train/Cls Loss giảm mạnh từ mức khoảng 15 xuống gần 0, thể hiện mô hình học phân loại nhãn lớp tốt.
    • Train/Dfl Loss (Distribution Focal Loss) bắt đầu từ khoảng 2 và giảm dần đều theo số chu kỳ huấn luyện.
    • Val/Box Loss duy trì dao động nhẹ quanh mốc giá trị 5; Val/Cls Loss trên tập kiểm định giảm ổn định từ 10 xuống sát 0.
  • Biến thiên của các chỉ số hiệu năng (Metrics):
    • Các chỉ số Metrics/Precision(B), Metrics/Recall(B) và Metrics/mAP50(B) đều có xu hướng tăng trưởng tuyến tính từ 0 lên tiệm cận mức tối ưu khi số lần lặp đạt mốc 100 epochs.
  • Khả năng nhận diện theo định dạng đầu vào:
    • Ảnh tĩnh chứa một vật thể: Mô hình nhận diện chính xác vị trí và tên nhãn vật liệu rác thải với độ tin cậy cao.
    • Ảnh tĩnh chứa nhiều vật thể: Mô hình phát hiện đồng thời nhiều lớp rác thải khác nhau trong cùng một khung hình với bounding box phân tách rõ ràng.
    • Dữ liệu video HD (quay từ điện thoại di động): Mô hình xử lý luồng khung hình đạt mức trung bình khá, phát hiện được các loại rác thải di động nhưng còn xuất hiện một số sai sót ngắt quãng giữa các frame.
  • Vai trò của ngưỡng tin cậy (Confidence): Ma trận nhầm lẫn (Confusion Matrix) chỉ ra rằng các dự đoán chính xác đều có giá trị Confidence lớn; việc thiết lập ngưỡng Confidence ở mức cao khi chạy tệp thực thi suy luận (detect.py) giúp triệt tiêu các dự đoán sai lệch hoặc nhầm nhãn đối tượng.

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

  1. Xây dựng thành công quy trình khép kín từ thu thập dữ liệu ảnh rác thải, tiền xử lý, gán nhãn chuẩn hóa đến huấn luyện mô hình thị giác máy tính với kiến trúc hiện đại YOLOv8.
  2. Thiết lập một bộ dữ liệu thử nghiệm gồm 1.771 ảnh chia thành 4 nhóm rác thải tái chế phổ biến tại Việt Nam (nhựa, kim loại, chai lọ, vỏ hộp sữa).
  3. Chứng minh tính khả thi của việc ứng dụng mô hình một giai đoạn không neo (anchor-free) để nhận diện tự động rác thải trên cả hai môi trường ảnh tĩnh và video thực tế.

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

Hạn chế được ghi nhận trong đồ án

  • Dữ liệu huấn luyện có độ đồng nhất cao: Toàn bộ 1.771 ảnh trong bộ dữ liệu được thu thập trên nền phông trắng đồng nhất, chưa bao quát được các bối cảnh môi trường thực tế phức tạp (rác bị chôn vùi một phần, rác biến dạng, ánh sáng yếu hoặc bị che khuất).
  • Mất cân bằng dữ liệu giữa các lớp: Số lượng ảnh giữa các class có sự chênh lệch đáng kể (Kim loại có 703 ảnh trong khi Vỏ hộp sữa chỉ có 161 ảnh), ảnh hưởng đến độ đồng đều trong khả năng học đặc trưng của mô hình.
  • Hiệu năng trên luồng video: Việc nhận diện qua video HD quay bằng điện thoại đôi lúc còn sai sót, độ trễ và tính ổn định chưa đạt mức tối ưu tuyệt đối so với xử lý ảnh tĩnh.

Hướng phát triển tiếp theo

  • Mở rộng quy mô và độ đa dạng của tập dữ liệu: Bổ sung hình ảnh rác thải chụp tại các bãi tập kết, môi trường tự nhiên với nhiều góc chụp, điều kiện ánh sáng và mức độ biến dạng khác nhau.
  • Tối ưu hóa tham số mạng và thử nghiệm các biến thể khác của YOLOv8 nhằm nâng cao tốc độ khung hình (FPS) và độ chính xác khi xử lý video thời gian thực.
  • Nghiên cứu tích hợp mô hình lên các thiết bị phần cứng nhúng (IoT, Raspberry Pi, Jetson Nano) để ứng dụng vào các thùng rác thông minh hoặc dây chuyền phân loại tự động tại nhà máy.

Giá trị tham khảo

Đồ án là tài liệu tham khảo chuyên ngành hữu ích cho sinh viên và các nhà nghiên cứu trong các lĩnh vực:

  • Sinh viên ngành Công nghệ Thông tin, Khoa học Dữ liệu, Trí tuệ Nhân tạo: Tham khảo phương pháp xây dựng pipeline huấn luyện bài toán phát hiện đối tượng từ khâu gán nhãn dữ liệu bằng MakeSense.ai, cấu hình Google Colab, đến xử lý mã nguồn huấn luyện và kiểm thử YOLOv8.
  • Người nghiên cứu các đề tài tự động hóa môi trường: Tham khảo cơ sở lý thuyết phân loại chất thải, đặc tính vật liệu rác tái chế và cách thức áp dụng thị giác máy tính để giải quyết bài toán phân loại chất thải tại nguồn.
  • Phần đáng tham khảo nhất trong văn bản: Toàn bộ Chương 2 (tổng quan tiến trình phát triển kiến trúc của các thế hệ YOLO từ v1 đến v8) và Chương 3 (chi tiết về phân bố bộ dữ liệu, đồ thị suy giảm hàm mất mát qua 100 epochs, cùng các phân tích thực nghiệm trên ảnh tĩnh và video).

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

1. Đồ án sử dụng bộ dữ liệu huấn luyện nào và phân chia thành những lớp đối tượng nào?

Tác giả sử dụng bộ dữ liệu thu thập từ thư viện ảnh Pinterest với tổng cộng 1.771 ảnh vật thể trên phông nền trắng. Dữ liệu được chia thành 4 lớp (classes) đối tượng:

  • Kim loại: 703 ảnh
  • Chai lọ: 512 ảnh
  • Nhựa: 402 ảnh
  • Vỏ hộp sữa: 161 ảnh

2. Cấu trúc mạng YOLOv8 được tác giả trình bày gồm những thành phần cơ bản nào?

Kiến trúc YOLOv8 được phân tích gồm 3 thành phần chính:

  • Xương sống (Backbone): Chịu trách nhiệm trích xuất các đặc trưng cơ bản từ hình ảnh đầu vào.
  • Cổ (Neck): Kết nối xương sống với đầu ra, tinh chỉnh và kết hợp các đặc trưng đa tỷ lệ.
  • Đầu ra (Head): Sử dụng cấu trúc phân chia không neo (Anchor-free Split Head) để dự đoán tọa độ bounding box và phân loại nhãn đối tượng.

3. Những công cụ và môi trường kỹ thuật nào được sử dụng để xây dựng hệ thống?

Đồ án sử dụng các công cụ kỹ thuật:

  • Ngôn ngữ lập trình: Python.
  • Môi trường phát triển: PyCharm IDE.
  • Môi trường huấn luyện đám mây: Google Colab (sử dụng GPU/TPU và lưu trữ Google Drive).
  • Công cụ gán nhãn: MakeSense.ai.

4. Kết quả thực nghiệm của mô hình trên ảnh tĩnh và video khác nhau như thế nào?

  • Trên ảnh tĩnh (cả trường hợp 1 vật thể và nhiều vật thể): Mô hình nhận diện chính xác loại vật liệu và định vị đúng khung bao của rác thải.
  • Trên video HD (quay từ điện thoại di động): Quá trình phát hiện đạt mức độ khả thi và nhận diện tương đối chính xác, tuy nhiên đôi lúc vẫn còn xảy ra sai sót ngắt quãng giữa các khung hình do biến động chuyển động và góc quay.

5. Sự thay đổi của các hàm mất mát (loss) trong quá trình huấn luyện 100 epochs diễn ra ra sao?

Theo biểu đồ thống kê huấn luyện trong đồ án:

  • Train/Box Loss dao động trong khoảng từ 0 đến 5.
  • Train/Cls Loss giảm rõ rệt từ khoảng 15 xuống sát 0.
  • Train/Dfl Loss bắt đầu từ khoảng 2 và giảm dần theo số epoch.
  • Val/Box Loss dao động ổn định quanh mức 5 và Val/Cls Loss giảm từ 10 xuống gần 0.

Kết luận

Đồ án tốt nghiệp "Phát hiện rác thải (vd: rác thải nhựa, chai lọ, vỏ hộp sữa bỏ đi cần phân loại)" của sinh viên Nguyễn Mạnh Chính đã hoàn thành đầy đủ các nhiệm vụ nghiên cứu đặt ra, giải quyết bài toán nhận diện chất thải tái chế thông qua mô hình học sâu YOLOv8. Hệ thống được triển khai thực nghiệm trên tập dữ liệu 1.771 ảnh gán nhãn qua 100 chu kỳ huấn luyện trên nền tảng Google Colab, đạt độ hội tụ hàm mất mát khả quan và cho kết quả phân loại chính xác trên ảnh tĩnh cũng như luồng video thực nghiệm. Công trình cung cấp tài liệu tham khảo có cấu trúc rõ ràng về mặt lý thuyết mô hình thị giác máy tính và quy trình kỹ thuật xây dựng ứng dụng trí tuệ nhân tạo phục vụ công tác quản lý, phân loại rác thải bảo vệ môi trường.