Dự án AI và IoT: Phân loại rác thải thông minh
Trung cấp7/6/2026

Dự án AI và IoT: Phân loại rác thải thông minh

Dùng AI và Raspberry Pi và các loại cảm biến để chế tạo thiết bị nhận diện vật thể từ đó giúp phân loại rác thải tự động, giúp nâng cao ý thức bảo vệ môi trường.

AI và IoTRaspberry Pi,AI phân loại rác thải
0 lượt thích0 người đã làm1 giờ7 bước8 linh kiện
← Quay lại dự án
Hướng dẫn chi tiết

Phần 3: Phát triển mô hình AI cho phân loại rác

1. Giới thiệu về các mô hình AI có thể sử dụng; 2. Hướng dẫn thu thập và chuẩn bị dữ liệu; 3. Cách tạo và huấn luyện mô hình AI với TensorFlow; 4. Xuất mô hình sang định dạng TensorFlow Lite; 5. Kiểm tra độ chính xác của mô hình; 6. Lưu mô hình và chuẩn bị cho Raspberry Pi.

Cập nhật 07/06/2026

Phần 3: Phát triển mô hình AI cho phân loại rác

1. Giới thiệu về các mô hình AI có thể sử dụng

Các mô hình AI phổ biến cho bài toán phân loại rác bao gồm:

  • MobileNetV2 / MobileNetV3: Nhẹ và tối ưu cho thiết bị edge như Raspberry Pi.

  • EfficientNet-Lite: Độ chính xác cao hơn, vẫn giữ được kích thước nhỏ gọn.

  • YOLOv8n: Phù hợp cho việc phát hiện nhiều đối tượng trong một khung hình.

  • TensorFlow Lite INT8: Tối ưu hóa cho hiệu suất chạy trên Raspberry Pi, nhưng cần lưu ý rằng không phải tất cả các mô hình đều có thể được lượng tử hóa sang INT8 mà không mất độ chính xác hoặc cần thêm bước hiệu chỉnh.

2. Hướng dẫn thu thập và chuẩn bị dữ liệu

Để huấn luyện mô hình, cần thu thập dữ liệu hình ảnh của các loại rác khác nhau. Bạn có thể sử dụng các nguồn dữ liệu công khai như TACO hoặc tự chụp ảnh trong môi trường kiểm soát.

Tip: Đảm bảo ảnh được gán nhãn chính xác và nhất quán để tăng độ chính xác của mô hình.

Chia dữ liệu thành các tập huấn luyện, xác thực và kiểm tra với tỷ lệ 70:15:15. Tập huấn luyện dùng để huấn luyện mô hình, tập xác thực để điều chỉnh tham số, và tập kiểm tra để đánh giá độ chính xác cuối cùng của mô hình.

3. Cách tạo và huấn luyện mô hình AI với TensorFlow

Sử dụng TensorFlow để tạo và huấn luyện mô hình:


import tensorflow as tf
from tensorflow.keras import layers, models

# Tạo mô hình
model = models.Sequential([
    layers.Input(shape=(224, 224, 3)),
    layers.Conv2D(32, (3, 3), activation='relu'),
    layers.MaxPooling2D(pool_size=(2, 2)),
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.MaxPooling2D(pool_size=(2, 2)),
    layers.Flatten(),
    layers.Dense(128, activation='relu'),
    layers.Dense(4, activation='softmax')  # 4 nhóm rác
])

# Biên dịch mô hình
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

# Huấn luyện mô hình
# Lưu ý: train_data, train_labels, val_data, val_labels cần được tiền xử lý và chia thành các lô dữ liệu
model.fit(train_data, train_labels, epochs=10, validation_data=(val_data, val_labels))

4. Xuất mô hình sang định dạng TensorFlow Lite

Sau khi huấn luyện, xuất mô hình sang định dạng TensorFlow Lite để sử dụng trên Raspberry Pi:


# Xuất mô hình
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()

# Lưu mô hình
with open('model.tflite', 'wb') as f:
    f.write(tflite_model)

5. Kiểm tra độ chính xác của mô hình

Đánh giá độ chính xác của mô hình bằng cách sử dụng tập dữ liệu kiểm tra:


test_loss, test_acc = model.evaluate(test_data, test_labels)
print(f"Độ chính xác: {test_acc * 100:.2f}%")

6. Lưu mô hình và chuẩn bị cho Raspberry Pi

Sau khi kiểm tra, lưu mô hình đã được chuyển đổi sang định dạng TensorFlow Lite và chuyển nó vào Raspberry Pi. Sử dụng thư viện TensorFlow Lite để chạy mô hình trên thiết bị. Đối với tăng tốc phần cứng như Hailo-8L, cần cài đặt SDK của nhà cung cấp và sử dụng API chạy mô hình của họ, không chỉ đơn thuần là TensorFlow Lite.

Cảnh báo: Đảm bảo Raspberry Pi có đủ tài nguyên để chạy mô hình AI một cách hiệu quả. Nên sử dụng tflite_runtime thay vì TensorFlow đầy đủ do hạn chế về hiệu suất và bộ nhớ.

Tài liệu tham khảo