Skip to content

Repository files navigation

🚀 TinyML Bootcamp: Từ Python đến Vi Điều Khiển (Edge AI)

Repository này cung cấp một lộ trình thực chiến đi từ những dòng code xử lý dữ liệu Python đầu tiên, cho đến việc triển khai mạng Nơ-ron nhân tạo (AI) chạy mượt mà trên phần cứng hạn chế tài nguyên (ESP32/STM32).

🌟 1. Giới thiệu chung

Repo này được tạo ra để làm cầu nối: Giúp các bạn sinh viên, kỹ sư Nhúng nắm vững cả "Tam giác vàng" của Data Science (Numpy, Pandas, Matplotlib), xử lý tín hiệu số (DSP) và quy trình ép cân mô hình bằng TensorFlow Lite Micro để nạp vào chip mà không cần đến Internet.

🎯 2. Mục tiêu dự án

  • Hiểu sâu: Nắm vững bản chất Xử lý tín hiệu số (DSP) thay vì chỉ gọi hàm có sẵn.
  • Tối ưu: Nén các mô hình Deep Learning khổng lồ xuống mức vài chục KB.
  • Thực chiến: Tự tay viết code C++ để vi điều khiển tự suy luận AI.

🗺️ 3. Cấu trúc Lộ trình Bootcamp (Roadmap)

Giai đoạn (Phase) Bài / Ngày Tên File (Code) Nội dung chính (Description)
🐍 Phase 1: 10 Days of Python Day 01 Day1_Types_&_Variable.py Biến, Kiểu dữ liệu và In ra màn hình
Day 02 Day2_Operator_&_Bitwise.py Toán tử, Phép toán cơ bản & Bitwise
Day 03 Day3_String_&_String_Method.py Xử lý chuỗi và các Hàm về chuỗi
Day 04 Day4_List_&_Tuples.py Kiểu dữ liệu mảng (List) và Tuple
Day 05 Day5_Dictionaries_&_Sets.py Kiểu dữ liệu từ điển (Dictionary) & Set
Day 06 Day6_Conditionals.py Cấu trúc rẽ nhánh (If/Else)
Day 07 Day7_Loops_&_Comprehension.py Vòng lặp For/While & List Comprehension
Day 08 Day8_Functions_&_Lambda.py Khởi tạo Hàm (Functions) & Lambda
Day 09 Day9_Modules_Builtin.py Import Thư viện và Module tích hợp
Day 10 Day10_Exceptions_&_FileIO.py Bắt lỗi (Try/Except) và Đọc/Ghi File
Thực hành 1 P1_Practice_D1_to_D5.py Bài tập tổng hợp kiến thức cơ bản
Thực hành 2 P2_Practice_D6_to_D8.py Bài tập xử lý logic và hàm
📊 Phase 2: Scientific Libraries Day 11 Day11_NumPy_Basics.py Khởi tạo ma trận và Phép toán Numpy
Day 12 Day12_Numpy_Advanced.py Cắt gọt và Chuẩn hóa dữ liệu (Clipping)
Day 13 Day13_OS_Dataset_Manager.py Quản lý File/Thư mục với thư viện OS
Day 14 Day14_Pandas_Basics.py Đọc CSV, lọc và làm sạch dữ liệu
Day 15 Day15_Matplotlib_Basics.py Vẽ biểu đồ trực quan dạng sóng
Day 16 Day16_Seaborn_Analytics.py Vẽ Boxplot, Scatterplot tìm đặc trưng
Day 17 Day17_Sklearn_Bridge.py Tiền xử lý dữ liệu và SVM Baseline
Thực hành 3 P1_Practice_Numpy.py Bài tập thao tác mảng tốc độ cao
Thực hành 4 P2_Practice_OS_NumPy_Pandas.py Dự án nhỏ: Xử lý file dữ liệu hàng loạt
🎛️ Phase 3: Audio DSP & Feature Day 18 Day18_DSP_&_FFT.py Lọc nhiễu Band-pass và Biến đổi FFT
Day 19 Day19_Librosa_Spectrogram.py Ảnh phổ 3D Mel-Spectrogram (Librosa)
Day 20 Day20_Librosa_MFCC.py Ép xung đặc trưng âm thanh (MFCCs)
Day 21 Day21_Audio_Augmentation.py Kỹ thuật nhân bản, hack thêm dữ liệu
🤖 Phase 4: DL for TinyML Day 22 Day22_TF_Basics.py Nhập môn TensorFlow, Kiến trúc Sequential
Day 23 Day23_Build_Model.py Dựng mạng Nơ-ron hồi quy (Regression DNN)
Day 24 Day24_Compile_Model.py Hàm suy hao (Loss) và Bộ tối ưu (Adam)
Day 25 Day25_Training.py Huấn luyện mô hình & Early Stopping
Day 26 Day26_Evaluation.py Đánh giá đồ thị dự đoán (Evaluation)
Day 27 Day27_TFLite_Quantization.py Ép cân TFLite và Lượng tử hóa Int8
Day 28 Day28_Export_C_Array.py Dịch ngược mô hình thành C-Array (model.h)
Day 29 Day29_ESP32_TFLite_SinWave (Thư mục C++) Suy luận trên ESP32

💻 4. Hướng dẫn cài đặt (Installation)

Bước 1: Tải Source Code

Mở Terminal hoặc Command Prompt và chạy lệnh sau để tải toàn bộ Repo về máy:

git clone https://github.com/Foxcy2611/Python-for-TinyML.git
cd Python-for-TinyML

Bước 2: Cài đặt môi trường Python

Đảm bảo máy tính đã cài đặt Python (khuyến nghị phiên bản 3.8 đến 3.10). Sau đó cài đặt các thư viện cần thiết bằng lệnh:

pip install numpy pandas matplotlib seaborn scipy librosa scikit-learn tensorflow

Bước 3: Chuẩn bị môi trường C++ (Cho Day 29)

  • Cài đặt phần mềm Arduino IDE, PlatformIO hoặc ESP-IDF.
  • Cài đặt thư viện TensorFlowLite hoặc tflite-micro thông qua Library Manager của IDE để biên dịch được file C-Array sang mã máy.

👨‍💻 5. Tác giả

  • Phát triển bởi: NgocChien Trùm VT01 (Mã SV: B23DCVT061)
  • Đơn vị: Sinh viên Học viện Công nghệ Bưu chính Viễn thông (PTIT) - Chuyên ngành Điện tử Viễn thông.
  • Liên hệ: Mọi góp ý hoặc báo lỗi (bug report), vui lòng tạo Issues trực tiếp trên Github của Foxcy2611.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages