Phát triển ứng dụng phân loại và quản lý rác thải sử dụng AI dựa trên kiến trúc Microservices

Development of a Waste Classification and Management Application Using AI based on Microservices Architecture

Trong bối cảnh đó, việc tìm kiếm một giải pháp công nghệ cao để hỗ trợ quá trình phân loại và quản lý chất thải là một điều hết sức cần thiết. Chính vì vậy, chúng tôi đã nghiên cứu và thực hiện một đề tài sử dụng trí tuệ nhân tạo hỗ trợ trong việc nhận dạng và phân loại rác thải thành các loại rác tái chế và không tái chế. Mục đích đơn giản và hiện đại hóa quá trình xả thải và phân loại rác ra môi trường từ các rác thải sinh hoạt của người dùng và giảm bớt những quy trình và sai sót trong việc quản lý chất thải.

TÁC GIẢ

Ong Dương Gia Bảo, Nguyễn Tuấn Anh

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

NGÀNH

Năm:

Tổng quan đồ án

Trong nghiên cứu và quan sát từ đời sống hằng ngày, chúng tôi nhận thấy việc phân loại và quản lý chất thải là một trong những vấn đề nổi bật mà các quốc gia trên thế giới hiện nay phải đối mặt. Nếu không được phân loại và quản lý đúng cách thì quá trình xử lý sau đó có thể dẫn đến các nguy cơ phát tán các tác nhân gây bệnh, các yếu tố độc hại, nguy hiểm. Việc phân loại rác thải đúng cách đóng vai trò quan trọng trong công tác quản lý chất thải, góp phần giảm thiểu dịch bệnh, tiết kiệm tài nguyên, giảm chi phí cho công tác thu gom và xử lý rác thải.

Trong bối cảnh đó, việc tìm kiếm một giải pháp công nghệ cao để hỗ trợ quá trình phân loại và quản lý chất thải là một điều hết sức cần thiết. Chính vì vậy, chúng tôi đã nghiên cứu và thực hiện một đề tài sử dụng trí tuệ nhân tạo hỗ trợ trong việc nhận dạng và phân loại rác thải thành các loại rác tái chế và không tái chế. Mục đích đơn giản và hiện đại hóa quá trình xả thải và phân loại rác ra môi trường từ các rác thải sinh hoạt của người dùng và giảm bớt những quy trình và sai sót trong việc quản lý chất thải.

Mục tiêu nghiên cứu

Mục tiêu nghiên cứu của nhóm trong đề tài này là phát triển một hệ thống hỗ trợ phân loại rác thải tự động dựa trên những kiến trúc Machine Learning/AI để nhận dạng hình ảnh trong lĩnh vực Computer Vision, cùng với đó là mục tiêu xây dựng một ứng dụng web dễ sử dụng cho người dùng thực hiện quá trình phân loại rác. Cuối cùng đảm bảo kiến trúc hệ thống có khả năng mở rộng, bảo trì, cập nhật và tích hợp linh hoạt dựa trên kiến trúc hệ thống Microservices giúp tối ưu hóa quy trình quản lý rác thải, tăng cường hiệu quả bảo vệ môi trường.

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

Đối tượng nghiên cứu chính là về các loại rác thải sinh hoạt và các dạng phân loại rác thải được thu thập từ các rác sinh hoạt gia đình, khu vực công cộng, hoặc rác thải công nghiệp. Nghiên cứu tập trung vào việc ứng dụng mô hình mạng tích chập CNN (Convolutional Neural Network) và Tensorflow framework để xây dựng hệ thống nhận dạng và phân loại hình ảnh rác thải. Thiết kế giao diện người dùng có khả năng tương tác với ứng dụng và cuối cùng là kiến trúc Microservices hỗ trợ trong việc quản lý và vận hành hệ thống.

Cơ sở lý thuyết

Tổng quan về AI và Deep Learning trong thị giác máy tính

Trí tuệ nhân tạo (AI) là thuật ngữ dùng để chỉ việc mô phỏng trí thông minh của con người thông qua các máy móc hoặc các ứng dụng được lập trình để suy nghĩ và hành động, tương tác như con người. Nó đặc biệt mô tả hành vi, từ đó đưa ra những phán đoán tương tự như cách suy nghĩ của con người. Nó bao gồm việc phát triển các thuật toán và chương trình máy tính có thể thực hiện các nhiệm vụ đòi hỏi trí thông minh của con người như nhận thức về thị giác, nhận dạng giọng nói, ra quyết định và dịch ngôn ngữ. Trong bối cảnh đồ án này, Trí tuệ nhân tạo sẽ tập trung chuyên sâu vào lĩnh vực nghiên cứu về Computer Vision cũng như các nhánh nghiên cứu liên quan khác.

Các khái niệm của Deep Learning về Computer Vision

Mạng nơ-ron là nền tảng của học sâu , được thiết kế để mô phỏng cách não người xử lý thông tin. Mạng nơ-ron bao gồm các lớp nút được kết nối với nhau, hay còn gọi là “nơron”, mỗi lớp thực hiện các phép tính đơn giản trên dữ liệu đầu vào. Mạng nơ-ron tích chập (CNN) là một loại mạng nơ-ron được thiết kế riêng để xử lý dữ liệu lưới có cấu trúc, đặc biệt là hình ảnh. Chúng rất hiệu quả trong việc nắm bắt các phân cấp về không gian và các mẫu trong dữ liệu trực quan.

Computer Vision (Thị giác máy tính): Đây là một lĩnh vực nghiên cứu phổ biến trong trí tuệ nhân tạo (AI) bên cạnh các lĩnh vực khác như NLP hay GenAI. Chúng tập trung vào việc cho phép máy tính thực hiện việc nhận dạng và trích xuất thông tin từ hình ảnh và video, theo cách tương tự như thị giác của con người. Nó bao gồm việc phát triển các thuật toán và kỹ thuật để trích xuất thông tin có ý nghĩa từ các đầu vào trực quan.

Computer Vision được xem là một công nghệ có phạm vi phát triển cực kì đa dạng và rộng lớn vì các ứng dụng của nó không có giới hạn.

Phát hiện đối tượng là một kỹ thuật sử dụng mạng lưới thần kinh để định vị và phân loại đối tượng trong ảnh. Phát hiện đối tượng là một nhiệm vụ thị giác máy tính nhằm mục đích xác định vị trí các đối tượng trong hình ảnh kỹ thuật số. Nó có nhiều ứng dụng, từ hình ảnh y tế đến ô tô tự lái, phát hiện cảnh báo.

Phát hiện đối tượng trong thị giác máy tính giải quyết 2 vấn đề chủ yếu đó chính là: “đối tượng đang hiện diện là đối tượng gì? ” và “ Những đối tượng này nằm ở đâu? ”. Chúng bao gồm 2 quá trình đó là Phân loại và Định vị.

image 113
image 114
image 115
image 116

Kiến trúc Microservices là một phương pháp thiết kế hệ thống phần mềm bằng cách chia ứng dụng thành các dịch vụ nhỏ, độc lập, mỗi dịch vụ đảm nhận một chức năng cụ thể và có thể triển khai, nâng cấp, hoặc thay thế một cách độc lập mà không ảnh hưởng đến toàn bộ hệ thống.

TensorFlow là một thư viện mã nguồn mở do Google phát triển, được thiết kế để xây dựng và huấn luyện các mô hình học máy, đặc biệt là mạng nơ-ron sâu. Nó cho phép các nhà phát triển tạo ra các biểu đồ luồng dữ liệu (dataflow graphs), trong đó các nút biểu diễn phép toán và các cạnh biểu diễn dữ liệu đa chiều (tensors) di chuyển giữa các phép toán.

image 117

Phân tích và thiết kế hệ thống

Kiến trúc hệ thống trong đồ án của nhóm được mô tả qua mô hình bên dưới. Bao gồm giao diện người dùng UI, Back-end, AI Service, Database, Camera Service.

image 118

Mô hình hoạt động của hệ thống

1. Luồng xử lý dữ liệu từ camera đến AI

Camera được xây dựng độc lập để xử lý chức năng nhận dạng hình ảnh rác thải theo thời gian thực, Camera sẽ liên tục ghi lại hình ảnh theo thời gian thực, thu thập từng khung hình (frame) từ luồng video và truyền dữ liệu ảnh đã tiền xử lý đến AI Service thông qua REST API (HTTP POST). Sau đó AI Service tiếp tục xử lý quá trình nhận dạng rác thải. OpenCV là thư viện được nhóm sử dụng để truy cập và xử lý dữ liệu từ camera. OpenCV sẽ kết nối đến camera và thu thập các frame hình. Sau khi xử lý, kết quả sẽ được hiển thị tức thời lên trên giao diện màn hình và lưu vào cơ sở dữ liệu.

2. Xử lý kết quả phân loại và lưu trữ dữ liệu

Mô hình AI được xây dựng dựa trên thư viện TensorFlow/Keras. Keras là một API m nguồn mở được tích hợp sẵn vào trong TensorFlow framework. Keras cung cấp một giao diện dễ sử dụng để phát triển các mô hình học sâu và học máy. Nó được thiết kế để đơn giản hóa việc xây dựng và huấn luyện các mô hình mạng nơ-ron.

3. Thiết kế cơ sở dữ liệu

Nhóm sử dụng thư viện SQLite được tích hợp trong ứng dụng để lưu trữ dữ liệu phân loại và hiển thị thống kê dạng bảng trên ứng dụng web. SQLite là một hệ quản trị cơ sở dữ liệu nhẹ, không cần cài đặt server và phù hợp với các ứng dụng nhỏ hoặc khi cần lưu trữ dữ liệu trên máy tính cục bộ. Các dữ liệu liên quan đến việc phân loại rác thải, kết quả phân loại, thống kê, và thông tin về các loại rác tái chế và không tái chế sẽ được lưu vào file rubbish_classification.db.

Và để thiết kế cơ sở dữ liệu dùng trong việc lưu trữ và hiển thị bảng thống kê lên giao diện web.Nhóm tạo một API endpoint trong Flask để lấy dữ liệu từ cơ sở dữ liệu và hiển thị trên trang web. Sau đó lưu kết quả phân loại vào cơ sở dữ liệu SQLite. Mỗi khi có kết quả mới từ mô hình phân loại, lưu nó vào bảng classifications. Mỗi khi một ảnh được phân loại, dữ liệu sẽ được lưu vào cơ sở dữ liệu. Route /statistics sẽ tổng hợp dữ liệu từ cơ sở dữ liệu và trả về định dạng JSON cho ứng dụng web. JavaScript sẽ tải và hiển thị thống kê mỗi khi có một phân loại mới hoặc khi trang được tải.

image 119

Triển khai hệ thống

Xây dựng và đóng gói ứng dụng dựa theo kiến trúc Microservices.

Dựa theo kiến trúc của Microservices, nhóm sẽ triển khai phân tách project ra thành những services nhỏ độc lập dựa trên chức năng. Mỗi service sẽ chạy độc lập trong Docker container riêng.

Với kiến trúc Monolithic, khi có nhu cầu mở rộng ứng dụng, các services sẽ to lên và mở rộng theo thời gian, dẫn đến cả kiến trúc hệ thống phức tạp hơn và khó bảo trì hệ thống, nâng cấp và thêm tính năng cho phù hợp. Chính vì vậy, kiến trúc Microservices sẽ giải quyết vấn đề trên khi ta chia nhỏ thành các services độc lập, riêng lẻ để dễ dàng quản lý, mở rộng và nâng cấp cho từng dịch vụ.

Các dịch vụ này sẽ dựa vào REST API đã xây dựng để có thể giao tiếp với nhau.

image 120

Thử nghiệm và đánh giá

Thu thập và tiền xử lý dữ liệu

Quá trình thu thập và xử lý dữ liệu là điều kiện tiên quyết khi thực hiện xây dựng bất kì mô hình ứng dụng AI nào, đó là tiêu chí quan trọng để đánh giá chất lượng của mô hình Machine Learning mà nhóm đã xây dựng. Dựa vào tập dữ liệu mà nhóm đã thu thập và xử lý, mô hình sẽ được xây dựng dựa trên tập dữ liệu ấy.

image 121
image 122

Các bước tiền xử lý (resize, chuẩn hóa, gán nhãn)

Nhóm đã sử dụng thư viện phổ biến trong lĩnh vực Computer Vision đó là OpenCV và ImageDataGenerator của TensorFlow để xử lý và tự động gán nhãn dựa trên tên thư mục.

Quá trình thực hiện:

1. Resize hình ảnh có kích thước cố định để đảm bảo tính đồng nhất trong kích thước dữ liệu và giảm tải cho mô hình trong quá trình huấn luyện.

    • Hình ảnh của rác thải tái chế được resize thành kích thước 512×384 pixel.
    • Hình ảnh của rác không tái chế được resize thành kích thước 150×150 pixel.

    2. Chuẩn hóa màu dữ liệu: dữ liệu hình ảnh thường có giá trị điểm ảnh trong khoảng từ 0 đến 255. Để giúp mô hình có thể xử lý và học được hiệu quả hơn thì nhóm đã thực hiện chuẩn hóa ảnh về thang màu xám.

    3. Gán nhãn dữ liệu: Sau khi hoàn tất quá trình resize và chuẩn hóa màu, nhóm sẽ thực hiện tổ chức gán nhãn hình ảnh theo thư mục đã định sẵn. Cụ thể:

    Tổ chức dữ liệu theo thư mục:

      • Folder “Recyclable”: chứa ảnh của rác có thể tái chế (chai nhựa, giấy, thủy tinh).
      • Folder “Non-Recyclable”: chứa ảnh của rác không thể tái chế (rác hữu cơ).

      Xây dựng mô hình AI

      image 123

      Đánh giá mô hình

      Sau khi xây dựng mô hình huấn luyện, nhóm sẽ sử dụng công cụ TensorBoard để theo dõi và giám sát mô hình dựa trên quá trình nhận dạng và phân loại rác thải. TensorBoard là một công cụ được tích hợp trong TensorFlow để trực quan hóa và giám sát các mô hình học sâu (Deep Learning). Nó theo dõi hiệu suất của mô hình, phân tích lỗi, và cải thiện quá trình huấn luyện.

      Cụ thể, giám sát mô hình AI bằng TensorBoard để tiện theo dõi và phân tích hiệu suất mô hình qua các chỉ số như loss, accuracy, và các thông số huấn luyện khác.

      image 124

      Kết luận

      Đồ án này tập trung vào việc nghiên cứu và xây dựng một hệ thống ứng dụng AI nhằm nhận dạng và phân loại rác thải. Góp phần tối ưu, đơn giản hóa các quy trình xả thải và quản lý chất thải.

      Bằng các công nghệ Deep Learning, Machine Learning, nhóm đã thành công trong việc phát triển mô hình AI dựa trên mạng nơ-ron tích chập (CNN) với độ chính xác cao khi nhận dạng và phân loại rác từ hình ảnh. Tuy nhiên, các phương pháp CNN có xu hướng tốn kém về mặt tính toán so với các kỹ thuật khác như Yolo, đòi hỏi nguồn lực tính toán tốt hơn.

      Ngoài ra, độ chính xác trong cách tiếp cận của CNN có thể được cải thiện thông qua một số kỹ thuật như tăng cường dữ liệu và tinh chỉnh, sẽ được nghiên cứu trong công việc tương lai. Hơn nữa, nếu có nhiều dữ liệu hơn, CNN có xu hướng tạo ra kết quả tốt hơn.

      Cuối cùng là tích hợp hệ thống vào ứng dụng web cho người dùng với camera xử lý hình ảnh theo thời gian thực, cho phép người dùng dễ dàng sử dụng và quản lý dữ liệu phân loại.

      Triển khai các dịch vụ theo kiến trúc Microservices trong việc vận hành và quản lý hệ thống.

      Từ những phương pháp hiện đại kết hợp trí tuệ nhân tạo, ứng dụng có thể phát triển và góp phần giảm thiểu sai sót trong phân loại rác, khuyến khích tái chế, giảm gánh nặng cho các bãi rác và bảo vệ tài nguyên thiên nhiên. Thể hiện tiềm năng ứng dụng của AI và kiến trúc Microservices trong quản lý rác thải, mở ra hướng đi mới trong các dự án IoT và AI trong tương lai tại các thành phố có mức độ ô nhiễm cao.