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).
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.
- 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.
| 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 |
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
Đả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
- Cài đặt phần mềm Arduino IDE, PlatformIO hoặc ESP-IDF.
- Cài đặt thư viện
TensorFlowLitehoặctflite-microthông qua Library Manager của IDE để biên dịch được file C-Array sang mã máy.
- 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.