Xây dựng mô hình thùng rác thông minh cho một thành phố tân tiến hơn

Design of smart bin for smarter cities

Trong phạm vi đề tài chúng tôi tập trung vào việc thu thập các tập dữ liệu về rác và đề xuất một data loader để quản lý và xử lý các tập dữ liệu này. Sau đó sẽ thực hiện benchmark các mô hình học máy trên các tập dữ liệu có trong data loader, báo cáo kết quả benchmark nhằm lựa chọn ra một mô hình tốt nhất.

Đề xuất của chúng tôi cung cấp một giải pháp toàn diện để thu nhập và quản lý các tập dữ liệu về rác. Data loader được đề xuất giúp tải và chuẩn bị dữ liệu rác một cách tiện lợi và hiệu quả cho quá trình huấn luyện và kiểm tra mô hình. Việc benchmark các mô hình trên các tập dữ liệu trong data loader và lựa chọn mô hình tốt nhất giúp xác định mô hình có hiệu suất tốt nhất cho bài toán xử lý rác.

TÁC GIẢ

Đỗ Phúc Kiên, Nguyễn Lê Tiến Phát

GIẢNG VIÊN HƯỚNG DẪN

NGÀNH

Năm:

Tổng quan đồ án

Trong thời đại công nghệ phát triển nhanh chóng, vấn đề quản lý rác thải ngày càng trở thành một thách thức lớn cho xã hội. Đô thị hóa, tăng dân số và sự tiến bộ kinh tế đã dẫn đến một lượng rác thải khổng lồ được tạo ra hàng ngày. Hơn 3,5 triệu tấn rác thải được tạo và thải ra môi trường hàng ngày trên toàn thế giới. Các nhà khoa học về môi trường coi dây là một con số rất lớn và dự đoán rằng nó sẽ còn tăng lên chóng mặt trong thời gian tới. Đến cuối thế kỷ 21, lượng rác thải phát sinh mỗi ngày có thể lên tới 11 triệu tấn, và làm quá tải quy trình xử lí rác thải nếu rác không được phân loại phù hợp. Nó không chỉ gây ôi nhiễm môi trường, ảnh hưởng đến sức khỏe con người mà còn làm ảnh hưởng xấu đến cảnh quan đô thị và cản trở sự phát triển bền vững.

Để giải quyết vấn đề này, việc hiểu và xử lý rác thải một cách hiệu quả là cực kỳ quan trọng. Trong đó, trí tuệ nhân tạo đã mở ra hướng đi mới. Đã có những nghiên cứu, bài báo liên quan về việc áp dụng máy học trong việc phân loại rác và đã có những thành công nhất định. Nhưng đồng thời, sự phổ biến của chủ đề này dẫn đến nhiều vấn đề cho các nhà nghiên cứu. Đầu tiên, tập dữ liệu về rác thải dàn trải trên nhiều nền tảng chia sẻ dữ liệu, điều này gây khó khăn cho các nhà nghiên cứu trong việc tìm kiếm và lựa chọn tập dữ liệu phù hợp cho nghiên cứu của họ. Tiếp theo, các tập dữ liệu trên các nền tảng khác nhau đó còn thiếu sự chuẩn hóa về tên và cách tổ chức dẫn đến việc gây nhầm lẫn cho nhà nghiên cứu. Sau đó, việc sử dụng các phương pháp tiền xử lý dữ liệu khác trên các tập dữ liệu gây khó khăn trong việc so sánh và đánh giá hiệu quả của các mô hình phân loại. Từ đó dẫn tới thiếu các nghiên cứu về tổng hợp và đánh giá về sử dụng nhiều loại kiến trúc mô hình và được huấn luyện trên nhiều tập dữ liệu khác nhau trên bài toán phân loại rác.

Trong phạm vi đề tài chúng tôi tập trung vào việc thu thập các tập dữ liệu về rác và đề xuất một data loader để quản lý và xử lý các tập dữ liệu này. Sau đó sẽ thực hiện benchmark các mô hình học máy trên các tập dữ liệu có trong data loader, báo cáo kết quả benchmark nhằm lựa chọn ra một mô hình tốt nhất.

Đề xuất của chúng tôi cung cấp một giải pháp toàn diện để thu nhập và quản lý các tập dữ liệu về rác. Data loader được đề xuất giúp tải và chuẩn bị dữ liệu rác một cách tiện lợi và hiệu quả cho quá trình huấn luyện và kiểm tra mô hình. Việc benchmark các mô hình trên các tập dữ liệu trong data loader và lựa chọn mô hình tốt nhất giúp xác định mô hình có hiệu suất tốt nhất cho bài toán xử lý rác.

Các mô hình huấn luyện

Một lượng lớn dữ liệu là cần thiết để đạt được độ chính xác tối ưu trong một mạng nơron. Dữ liệu cần được huấn luyện trong nhiều giờ trên một Đơn vị Xử lý Đồ họa (GPU) mạnh mẽ để đạt được kết quả. Với sự xuất hiện của transfer learning, đã có sự thay đổi đáng kể trong các quá trình học tập trong mạng nơ-ron sâu. Mô hình đã được huấn luyện trên một tập dữ liệu lớn như ImageNet, được gọi là mô hình tiền huấn luyện, nâng cao quá trình transfer learning. Quá trình học chuyển giao hoạt động bằng cách đóng băng các lớp ẩn ban đầu của mô hình và tinh chỉnh các lớp cuối cùng của mô hình. Trạng thái đóng băng của lớp cho biết rằng nó sẽ không được huấn luyện. Kết quả là, các trọng số của nó sẽ không thay đổi. Vì tập dữ liệu được sử dụng trong nghiên cứu này tương đối nhỏ với số lượng hình ảnh hạn chế trong mỗi lớp, transfer là phù hợp nhất cho nghiên cứu này. Các mô hình tiền huấn luyện được sử dụng trong nghiên cứu này sẽ được giải thích thêm trong tiểu mục.

1. ResNet

Được đề xuất bởi He Kaiming, ban đầu có 101 lớp. Ngoài một lớp tích chập 7×7 và một lớp FC, nó sắp xếp các lớp tích chập 3×3 theo thứ tự [3], [4], [23], [3], và thực hiện giảm chiều tại mỗi điểm nối nhóm. Mạng này có hiệu quả tốt trong việc giảm thiểu sự biến mất của gradient. Cấu trúc mô hình tổng thể được thể hiện trong Hình 2.

image 155

2. CNN (Convolutional Neural Networks)
Là mạng neural được thiết kế để xử lý dữ liệu có cấu trúc dạng lưới như ảnh. Nó bao gồm lớp tích chập, lớp pooling và lớp kết nối đầy đủ. Lớp tích chập trích xuất đặc trưng từ dữ liệu đầu vào bằng cách sử dụng bộ lọc. Lớp pooling giảm kích thước dữ liệu và giữ các đặc trưng quan trọng. Lớp kết nối đầy đủ học mối tương quan phức tạp giữa các đặc trưng để phân loại hoặc dự đoán. CNN có thể hiệu quả học cách nhận dạng mẫu phức tạp trong dữ liệu ảnh và đã được áp dụng thành công trong nhiều ứng dụng như nhận dạng ảnh, xử lý ngôn ngữ và thị giác máy tính. Cấu trúc mô hình tổng thể được biểu diễn trong hình 3.

image 156

3. VGG16

VGG (Visual Geometry Group), là một kiến trúc mạng neural tích chập được phát triển bởi nhóm Visual Geometry Group (VGG) tại Đại học Oxford vào năm 2014. Mô hình này đã đạt được kết quả hàng đầu trên nhiều tập dữ liệu thử nghiệm và được sử dụng rộng rãi trong các nhiệm vụ phân loại ảnh. VGG16 có cấu trúc được thiết kế sâu và phức tạp, bao gồm nhiều lớp tích chập (convolutional layers) và lớp kết nối đầy đủ (fully connected layers). Lớp tích chập được sử dụng để trích xuất các đặc trưng cục bộ của ảnh, như các biên, góc và mẫu màu sắc. Các lớp pooling được sử dụng để giảm kích thước của dữ liệu và giữ lại các đặc trưng quan trọng. Cuối cùng, các lớp kết nối đầy đủ học các mối tương quan phức tạp giữa các đặc trưng để thực hiện phân loại ảnh.

image 157

4. DenseNet

DenseNet là một kiến trúc mạng neural được giới thiệu vào năm 2016. DenseNet được đặc trưng bởi mẫu kết nối dày đặc, trong đó mỗi lớp trong mạng được kết nối với tất cả các lớp khác. Điều này cho phép mạng học các đặc trưng phức tạp hơn và cải thiện hiệu suất trong các nhiệm vụ phân loại ảnh. DenseNet121 là một biến thể cụ thể của DenseNet với 121 lớp đã được huấn luyện trên tập dữ liệu ImageNet, một tập dữ liệu lớn chứa hàng triệu hình ảnh. DenseNet121 đạt được kết quả tốt nhất trên nhiệm vụ phân loại ảnh ImageNet và đã trở thành một lựa chọn phổ biến trong các nhiệm vụ phân loại ảnh. Với mô hình DenseNet121, mạng có khả năng học các đặc trưng phức tạp và nhận diện các mẫu trong ảnh một cách hiệu quả. Điều này giúp nó thực hiện phân loại ảnh với độ chính xác cao và đã được áp dụng thành công trong nhiều lĩnh vực như nhận dạng ảnh y tế, phân loại ảnh và xử lý ngôn ngữ tự nhiên.

image 158

5. CoatNet

CoatNet là một mô hình mạng neural tích chập (CNN) được thiết kế đặc biệt cho các nhiệm vụ phân loại ảnh. Mô hình này được xây dựng dựa trên kiến trúc mạng neural sâu, với mục tiêu là nhận diện và phân loại các đối tượng trong ảnh một cách chính xác và
hiệu quả. Kiến trúc của CoatNet bao gồm nhiều lớp tích chập và lớp pooling. Lớp tích chập được sử dụng để trích xuất các đặc trưng cục bộ của ảnh, như các biên, góc và mẫu màu sắc. Các lớp pooling được sử dụng để giảm kích thước của dữ liệu và giữ lại các đặc trưng quan trọng. Nhờ vào việc kết hợp các lớp tích chập và pooling này, CoatNet có khả năng học các mẫu phức tạp trong ảnh và tạo ra một biểu diễn đặc trưng chính xác của ảnh. Sau đó, các đặc trưng được đưa vào các lớp kết nối đầy đủ để thực hiện phân loại ảnh. Các lớp kết nối đầy đủ học mối tương quan phức tạp giữa các đặc trưng để phân loại ảnh vào các lớp khác nhau. Cuối cùng, đầu ra của CoatNet là một phân phối xác suất trên các lớp phân loại khả thi.

image 159

6. EfficientNet

EfficientNet bao gồm một mạng nền (backbone network) để trích xuất đặc trưng từ ảnh đầu vào và một đầu phân loại (classification head) để thực hiện phân loại cuối cùng. Mạng nền dựa trên một chuỗi các lớp tích chập và lớp pooling, được thiết kế để đạt hiệu suất cao và tiết kiệm tài nguyên tính toán. Các lớp tích chập tách biệt theo chiều sâu giúp giảm số lượng tham số trong mạng, đồng thời tăng cường khả năng học các đặc trưng phức tạp từ ảnh. Phương pháp tỷ lệ kết hợp được sử dụng để tự động điều chỉnh kích thước của mạng, từ đó tăng cường hiệu suất và hiệu quả của mô hình trên các tài nguyên tính toán khác nhau. EfficientNetV2L là một biến thể cụ thể của kiến trúc EfficientNet, được thiết kế đặc biệt cho các nhiệm vụ phân loại ảnh, bao gồm một mạng nền để trích xuất đặc trưng từ ảnh và một đầu phân loại để thực hiện phân loại cuối cùng. Kiến trúc EfficientNetV2L tiếp tục sử dụng các lớp tích chập tách biệt theo chiều sâu và phương pháp tỷ lệ kết hợp, nhưng được điều chỉnh và tối ưu hóa để đạt hiệu suất và hiệu quả tốt hơn so với phiên bản trước đó. Đầu phân loại được thiết kế là một lớp kết nối đầy đủ, ánh xạ các đặc trưng trích xuất sang đầu ra cuối cùng, là một phân phối xác suất trên các lớp phân loại khả thi của ảnh đầu vào.

image 160

7. PyramidNet

PyramidNet là một mô hình học sâu được sử dụng để trích xuất đặc trưng từ ảnh bằng cách sử dụng một kiến trúc giống như một kim tự tháp, bao gồm các lớp tích chập và lớp pooling. Các lớp tích chập được thiết kế với các kích thước lĩnh vực nhận thức khác nhau, từ các kích thước nhỏ đến lớn, nhằm thu thập thông tin chi tiết và thông tin tổng quát từ ảnh. Việc sử dụng các kích thước lĩnh vực nhận thức khác nhau giúp mô hình hiểu được các đặc trưng cục bộ và toàn cục của ảnh. Sau đó, đầu ra của mỗi lớp tích chập sẽ được đưa qua một phép gộp (pooling operation), nhằm giảm kích thước của bản đồ đặc trưng và giúp mô hình tạo ra những đặc trưng trừu tượng hơn. Phép gộp cũng giúp giảm độ phức tạp tính toán của mô hình. Cuối cùng, đầu ra của PyramidNet được đưa qua một lớp kết nối đầy đủ (fully connected layer) để ánh xạ các đặc trưng đã được trích xuất sang một phân phối xác suất trên các lớp phân loại khả thi. Điều này cho phép mô hình phân loại ảnh vào các lớp khác nhau dựa trên đặc trưng đã học.

image 161

8. ViT-B16

Mô hình ViT (Vision Transformer) là một mô hình mạng neural được thiết kế dựa trên kiến trúc Transformer ban đầu, nhằm giải quyết các vấn đề liên quan đến phân loại ảnh và tạo ra một cách tiếp cận mới cho xử lý ảnh sử dụng self-attention mechanisms. Kiến trúc của ViT dựa trên ý tưởng chính của Transformer, sử dụng các lớp self-attention để học mối quan hệ và tương quan giữa các vị trí trong ảnh. Tuy nhiên, để áp dụng Transformer cho ảnh, ViT chia ảnh thành các miền nhỏ hơn gọi là patch, và mỗi patch được xem là một vector đầu vào cho mạng Transformer, giúp mô hình nhìn vào ảnh dưới dạng một chuỗi các vector thay vì các pixel riêng lẻ. Kiến trúc chính của ViT bao gồm một số lớp Transformer. Mỗi lớp Transformer bao gồm một lớp Multi-head SelfAttention (MHSA) và một lớp Feed-Forward Neural Network (FFNN). Lớp MHSA giúp mô hình học mối quan hệ và tương quan giữa các patch trong ảnh, trong khi lớp FFNN giúp mô hình học các biến đổi phi tuyến tính trên đầu ra của lớp MHSA. Việc lặp lại các lớp Transformer này giúp mô hình học được sự tương quan phức tạp và đặc trưng của ảnh. ViT- B/16 là một biến thể cụ thể của kiến trúc ViT, với “B” đại diện cho kích thước của mô hình, và “16” đại diện cho kích thước patch trong ảnh. ViT- B/16 sử dụng một mạng Transformer với số lượng lớp và kích thước patch được điều chỉnh để đạt được hiệu suất tốt hơn và tiết kiệm tài nguyên tính toán. ViT-B/16 chia ảnh thành các patch có kích thước 16×16 và sử dụng một mạng Transformer với số lượng lớp và kích thước patch tối ưu hóa để đạt được hiệu suất cao. Các lớp Transformer trong ViT-B/16 gắn kết các patch với nhau và tạo ra biểu diễn đặc trưng tổng thể của ảnh. Cuối cùng, một lớp kết nối đầy đủ được sử dụng để ánh xạ biểu diễn đặc trưng sang các lớp phân loại khả thi, đưa ra kết quả phân loại cuối cùng.

image 162

Môi trường huấn luyện

  • Hệ điều hành: Linux
  • Node Name: iec-sv
  • Phiên bản kernel: 5.15.0-112-generic
  • Kiến trúc: x86_64
  • Phiên bản Python: 3.10.14
  • CPU (Bộ xử lý trung tâm)
  • Số lõi vật lý: 6
  • Tổng số luồng: 12
  • Tần số tối đa: 3.6 GHz
  • Tần số tối thiểu: 2.2 GHz
  • RAM (Bộ nhớ) tổng: 62.72 GB
  • Ổ đĩa (Storage) chính: (/dev/mapper/ubuntu–vg-ubuntu–lv)
  • Mountpoint: File system: ext4, dung lượng tổng: 1820.92 GB
  • Đĩa boot (/dev/nvme0n1p2)
  • Mountpoint /boot: File system ext4
  • Các thiết bị loop: Chủ yếu là các package snap, có kích thước nhỏ (0.04 GB đến 0.09GB).
  • Dung lượng lưu trữ lớn với ổ chính là 1.82 TB. Ổ đĩa boot có dung lượng 1.9GB.
  • GPU (Đồ họa); NVIDIA GeForce RTX 3060, NVIDIA GeForce RTX 3060 Ti

Tổng kết

  • Đồ án phân loại rác thải đã đạt được nhiều mục tiêu, bao gồm:
  • Thu thập và xây dựng framework cho việc tải dữ liệu:

    Tập dữ liệu về các loại rác được tổng hợp từ các nguồn khác nhau trên internet được nhóm thu thập về và tạo 1 dataloader để thuận tiện cho việc sử dụng các tập dữ liệu này cho mục đích huấn luyện.

    • Đánh giá và phân tích hiệu suất các mô hình dựa trên dữ liệu thu được trên tập dữ liệu thu thập:

      Nhóm đã lựa chon các mô hình học sâu phổ biến , chất lượng đã qua chọn lọc, sau đó thực hiện đánh giá thông qua các chỉ số đánh giá hiệu suất phân loại sau khi được huấn luyện trên các tập dữ liệu, kết quả được ghi chép lại chi tiết. Hiệu suất của các mô hình, cũng như các phương pháp tự động gắn nhãn, đã được phân tích và so sánh cẩn thận

      • Đánh giá và phân tích hiệu suất mô hình dựa trên dữ liệu được crawl trên internet:

        Nhóm thu thập dữ liệu ảnh trên các website thông qua phương pháp crawl và sử dụng YOLOv10 để chọn lọc ra những ảnh đạt tiêu chuẩn, sau đó gom chúng lại thành một tập dữ liệu lí tưởng cho việc huấn luyện mô hình. Cuối cùng nhóm thực hiện đánh giá các mô hình dựa trên kết quả thu được thông qua huấn luyện và rút ra kết luận.