TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 2024 184
TRIỂN KHAI MẠNG NƠRON TÍCH CHẬP TRÊN VI ĐIỀU KHIỂN STM32
IMPLEMETATION OF DEEP LEARNING NEURAL NETWORK
ON STM32 MICROCONTROLLER
Bùi Quốc Cường1,*, Cao Nhật Minh2, Lê Anh Tuấn3
1Lớp DTTT03 - K15, Khoa Điện tử, Trường Đại học Công nghiệp Hà Nội
2Lớp DTTT06 - K16, Khoa Điện tử, Trường Đại học Công nghiệp Hà Nội
3Khoa Điện tử, Trường Đại học Công nghiệp Hà Nội
*Email: buiquoccuong365@gmail.com
TÓM TẮT
Sự phát triển nhanh chóng của thiết bị di động thông minh và các ứng dụng, dịch vụ trực tuyến đã thúc đẩy nhu cầu về
điện toán biên. Điện toán biên, với khả năng xử lý dữ liệu gần nguồn tạo ra, giúp giảm độ trễ và tăng hiệu quả xử lý, trở
thành giải pháp quan trọng trong thời đại số hóa. Đồng thời, trí tuệ nhân tạo (AI) và học sâu ngày càng đóng vai trò quan
trọng trong việc cải thiện chất lượng dịch vụ trải nghiệm người dùng. Triển khai các mô hình AI học sâu trên nền
tảng điện toán biên là cần thiết để tối ưu hóa xử lý và phản hồi nhanh chóng. Các mạng nơron thường được triển khai trên
hệ thống máy tính nhúng hoặc thiết bị hỗ trợ AI nhằm đạt độ chính xác cao và thời gian suy luận nhanh. Tuy nhiên, việc
triển khai các hình nhẹ hơn tối ưu chi phí đang trthành nhu cầu cấp thiết. Bài báo này khảo sát và đánh giá khả
năng thực thi của hình mạng nơron tích chập (CNN) trong nhận diện giọng nói, triển khai trên vi điều khiển ARM,
dòng STM32, với sự hỗ trợ của thư viện STM-Cube-AI để tối ưu hóa hiệu suất. Quá trình nghiên cứu gồm thiết kế thực
thi bài toán nhận diện giọng nói trên bo mạch STM32, huấn luyện mô hình CNN trên Google Colab, và triển khai trên bo
mạch STM32F429 bằng công cụ X-Cube-AI. Kết quả cho thấy mô hình CNN trên vi điều khiển STM32 có hiệu suất gần
tương đương với trên máy tính đa năng, duy trì mức tiêu thụ năng lượng thấp và chi phí hợp lý. Điều này mở ra khả năng
ứng dụng rộng rãi các mô hình học sâu trong thiết bị nhúng, đặc biệt là nhận diện giọng nói, nơi mà hiệu suất cao và chi
phí thấp là lợi thế cạnh tranh lớn.
Từ khóa: Điện toán biên, Học sâu, vi điều khiển STM32.
ABSTRACT
The rapid advancement of smart mobile devices and the significant increase in applications and online services have
driven the demand for edge computing. Edge computing, with its ability to process data near the source of data generation,
reduces latency and enhances processing efficiency, becoming a crucial solution in the current digital age. Simultaneously,
artificial intelligence (AI) and deep learning are increasingly asserting their importance in improving service quality and
creating optimal user experiences. Deploying AI and deep learning models on edge computing platforms is not just a trend
but a necessary requirement to optimize processing capabilities and rapid response. Typically, neural networks are
deployed on high-cost embedded systems or specialized AI-supporting devices to achieve high accuracy and fast inference
times. However, with technological advancements, the deployment of lighter, cost-optimized models is becoming an
urgent need. This article focuses on surveying and evaluating the performance of convolutional neural network (CNN)
models in the task of speech recognition. The study's highlight is the deployment of this model on low-power
microcontrollers based on ARM architecture, specifically the STM32 series, with the support of the STM-Cube-AI library
to optimize performance on STM32 hardware. The research process begins with designing and implementing the speech
recognition task on the STM32 board. The CNN model is trained on the Google Colab platform using the Python
programming language and popular deep learning libraries. After completing the training process, this model is mapped
and deployed on the STM32F429 board using STMicroelectronics' X-Cube-AI tool. This tool supports optimizing and
converting the model from deep learning format to a format suitable for microcontrollers. Experimental results on STM32
hardware show that the CNN model's performance on microcontrollers is nearly equivalent to that on general-purpose
computers, while still maintaining low energy consumption and reasonable costs. This opens up the possibility of widely
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 2024 185applying deep learning models in embedded devices, especially in applications requiring speech recognition, where the
combination of high performance and low cost is a significant competitive advantage.
Keywords: Edge computing, Deep learning, board STM32.
1. GIỚI THIỆU
Ngày nay, sự bùng nổ của các thiết bị di động cùng các
cảm biến thông minh đã mở rộng phạm vi và các ứng dụng
dựa trên nền tảng Internet. Internet vạn vật (Internet of
Things – IoT) đề cập đến mạng lưới các đối tượng và thiết
bị được dùng để thu thập trao đổi dữ liệu, với số lượng
các thiết bị IoT ngày càng gia tăng. Các hình sẽ được
triển khai trên cloud xử phân tích dữ liệu nhưng khi
không mạng, hoặc dữ liệu tnhiều nguồn y tắc nghẽn,
trì hoãn việc xử lý của server nên đã sinh ra khái niệm điện
toán biên (Edge Computing)[1] trên các edge device.
Điện toán biên giúp giải quyết một số thách thức quan
trọng liên quan đến các ứng dụng IoT. Với các yêu cầu cần
phản hồi nhanh, thay vì gửi dữ liệu lên tính toán ở các máy
chủ tại đám mây, việc tính toán và lưu trữ có thể thực hiện
trực tiếp tại các thiết bị, do vậy điện toán biên giúp giảm
thiểu thời gian truyền dữ liệu cho phép đáp ứng với độ
trễ thấp [1, 2].
Bên cạnh ưu điểm, việc triển khai hình điện toán
biên cũng gặp không ít khó khăn. Thông thường các thiết bị
như vậy tài nguyên hạn chế, do đó việc chạy các thuật
toán, phương pháp và ứng dụng trên các thiết bị biên được
coi là một thách thức đáng kể.
2. CƠ SỞ VÀ LÝ THUYẾT
2.1. Mạng nơron tích chập cho học sâu
Mạng nơron tích chập (Convolutional Neural Network
– CNN) là một loại mạng học sâu thường được dùng trong
các ứng dụng xử lý hình ảnh và thị giác máy tính [3]. Kiến
trúc mạng nơron tích chập gồm nhiều lớp (layer), trong đó
có ba lớp phổ biến là lớp tích chập (convolution layer), lớp
lấy mẫu xuống (subsampling layer) lớp liên kết hoàn
toàn (fully-connected layer).
Lớp tích chập thưc hiện tính tích chập 2 chiều (2D
convolution) giữa dữ liệu đầu vào ma trận lọc. Ma trận
lọc thường được được gọi là kernel , kernel là một ma trận
thường kích thước 2x2, 3x3 hoặc 5x5. Sau khi tích chập,
một hàm kích hoạt phi tuyến được áp dụng cho kết quả tích
chập để tọa ra bản đồ đặc trưng (feature map). Sau nhiều
lớp tạo ra nhiều bản đồ đặc trưng khác nhau từ dữ liệu đầu
vào sử dụng để phân loại với các lớp mạng nơron liên kết
hoàn toàn.
2.2. Vi điều khiển STM32 và thư viện STM-Cube-AI
Dòng vi điều khiển STM32 là một loạt các vi điều khiển
32-bit dựa trên kiến trúc lõi ARM Cortex, được sản xuất bởi
STMicroelectronics. Các vi điều khiển này được thiết kế
cho các ứng dụng IoT các hệ thống nhúng hiệu năng cao,
cung cấp sự cân bằng tối ưu giữa tiêu thụ năng lượng
hiệu suất xử lý. STMicroelectronics đã phát triển các công
cụ cho phép thực thi các hình mạng nơron nhân tạo trên
các chip vi điều khiển STM32, đặc biệt các dòng STM32
F3, F4 cao hơn. Thư viện STM-Cube-AI [9] hỗ trợ ánh
xạ các mô hình đã được huấn luyện để tối ưu hóa trên phần
cứng của STM32.
Các vi điều khiển STM32 nổi tiếng với tính linh hoạt
của chúng và được sử dụng rộng rãi trong nhiều ứng dụng
nhờ vào tiêu thụ năng lượng thấp khả năng hiệu suất
mạnh mẽ. Với thư viện STM-Cube-AI, các nhà phát triển
có thể triển khai các mô hình AI trên các vi điều khiển này
một cách hiệu quả, tận dụng khả năng phần cứng để thực
thi các tính toán mạng nơron phức tạp một cách hiệu quả.
STM-Cube-AI đơn giản hóa việc tích hợp các hình AI
vào các hệ thống nhúng bằng cách chuyển đổi các mô hình
từ các framework học sâu như TensorFlow hoặc Keras sang
định dạng thể thực thi được trên các vi điều khiển
STM32. Quá trình này bao gồm tối ưu hóa mô hình để phù
hợp với ràng buộc của phần cứng nhúng, đảm bảo rằng các
mạng nơron thể chạy với độ trễ tiêu thụ năng lượng
tối thiểu trong khi vẫn duy trì độ chính xác hiệu suất cao.
Khả năng chạy các mạng nơron trên các vi điều khiển
STM32 mở ra nhiều khả năng cho các thiết bị thông minh
biên, cho phép xử dữ liệu ra quyết định một cách
thời gian thực trực tiếp trên thiết bị. Điều này đặc biệt hữu
ích cho các ứng dụng trong lĩnh vực IoT, nơi tiêu thụ năng
lượng thấp và xử lý dữ liệu hiệu quả là yêu cầu quan trọng.
dụ ới đây giúp ta thấy sự khác biệt khi triển khai
hình sine đơn giản định dạng TFLite trên STM-Cube-
Ai:
Hình 1. So sánh giữa TFlite TFlite sau khi chuyển đổi qua
STM-Cube-Ai
STM32Cube.AI giảm đáng kể dung lượng bộ nhớ Flash,
từ hình TFLite chiếm 50.032 byte bộ nhớ Flash thể
giảm khoảng 44% còn khoảng 27.868 byte. Thời gian suy
luận cải thiện 26%, từ 104 µs với TFLite xuống còn 77 µs
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 2024 186với STM32Cube.AI. Tuy tăng dung lượng RAM lên
khoảng 4% nhưng không quá đáng kể.
3. KẾT QUẢ NGHIÊN CỨU
3.1. Thực hiện mô hình học sâu trên STM32F429
Hình ảnh dưới minh họa các bước tiêu biểu khi triển khai
một hình nhận diện hoặc một hình học sâu trên vi
điều khiển STM32.
Hình 2. Các bước nhúng mô hình mạng nơ ron trên STM32
Cài đặt gói cần thiết:
Bước 1. Thu thập dữ liệu
Trong bước này, các dữ liệu đầu ra dùng để nhận diện
cần được thu thập với số lượng mẫu đủ lớn, làm sở để
phân loại dữ liệu các bước tiếp theo. đây chúng tôi sử
dụng bộ speech-commands của google, thể tải xuống với
đường link dưới đây:
Hình 3. Đường dẫn download data.
Bước 2. Tiền xử lý dữ liệu và gắn nhãn
Chúng tôi sử dụng phép biến đổi MFCC để trích xuất
các đặc trưng của âm thanh, biến đổi 16.000 mẫu thành một
ảnh kích thước 16x28x1. gắn nhãn thứ tự được sắp
xếp theo tiêu đề của âm thanh.
Hình 4. Trích xuất đặc trưng MFCC của âm thanh.
Bước 3. Xây dựng mô hình học sâu
Đây kiến trúc hình được xây dựng để nhận diện
âm thanh [4]
Hình 5. Kiến trúc mô hình cho mô hình nhận diện âm thanh
Bước 4. Huấn luyện mô hình học sâu
Quá trình huấn luyện được thực thi trên google colab,
kết quả quá trình huấn luyện một mô hình định dạng
tflite hoặc keras, onnx phù hợp để ánh xạ sang STM32.
Hình 6. Thông số quá trình huấn luyện
Bước 5. Ánh xạ mô hình lên vi điều khiển STM
Sử dụng công cụ STM-Cube-AI để chuyển đổi mô hình
đã được huấn luyện trước đó thành C tối ưu hóa về độ
phức tạp thuật toán và yêu cầu bộ nhớ. Hình dưới minh họa
cài đặt các thông số đầu vào sử dụng STM-Cube-AI (phiên
bản 8.1.0) để ánh xạ mạng nơron lên STM32, STM-Cube-
AI có hỗ trợ nén hệ số Lossless, Low, Medium, High và tối
ưu về mặt thời gian hoặc bộ nhớ. Chúng tôi không sử dụng
chế độ nén hệ số. Dung lượng cho bộ nhớ Flash là: 187.26
KiB và bộ nhớ RAM là: 16.41 KiB.
Tiền xử
lý dữ
liệu và
gắn
nhãn
Thu
thập dữ
liệu
Xây
dựng
mô hình
học sâu
Ánh xạ
mô hình
lên
STM32
Huấn
luyện
mô hình
Thực thi
và đánh
giá
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 2024 187
Hình 7. Nhúng mô hình trên STM32
Bảng 1. Bảng phân tích optimize trên STM32
Chế độ Bộ nhớ
Flash
(KB)
Bộ nhớ
RAM
(KB)
Hệ số nén
thực tế
đạt được
Không nén d
liệu
187.26 16.41 1
Nén với hệ số
Low (4)
63.15 16.41 3.79
Nén với hệ số
Medium (8)
39.15 16.41 7.08
Việc nén dữ liệu một mặt giúp tiết kiệm bộ nhớ, nhưng
đồng thời cũng sẽ giảm độ chính xác khi suy luận, vậy
cần cân nhắc trong từng trường hợp cụ thể.
Bước 6. Thực nghiệm
Đầu vào dữ liệu của mô hình sẽ là được thu từ cảm biến
âm thanh, lấy mẫu 16.000 chuyển đổi MFCC hình
thực hiện suy luận.
Hình 8. Nhận diện từ “stop” với trạng thái đèn bật
Hình 9. Nhận diện từ “stop” với trạng thái đèn tắt
Bảng 2. Kết quả 10 lần đo
Lần Độ chính xác
1 0,55
2 0,24
3 0,74
4 0,39
5 0,57
6 0,36
7 0,14
8 0,3
9 0,28
10 0,44
Đây link video demo sản phẩm:
https://drive.google.com/file/d/1tN2GIxc9lGeyg-
sjsoDdo86PzAfgeRa6/view?usp=sharing
3.2. Đánh giá
Trong phần này, chúng tôi trình bày kết quả nhận dạng
âm thanh trên STM32F429. Chúng tôi so sánh kết quả thực
thi mạng nơron trên STM32F429 và laptop CPU Intel Core
i5.
Để so sánh, đánh giá mô hình nhận dạng âm thanh trên
vi điều khiển STM32F429, chúng tôi sẽ sử dụng thông số
thời gian nhận diện.
Phần cứng Tần số
(MHz)
Thời gian nhận
dạng (ms)
STM32F429 123 22.333
Orange pi 1500 0.644
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 2024 188Bảng kết quả cho thấy thời gian nhận diện trên vi điều
khiển gần như tương đương với máy tính ( ). Tốc độ nhận
diện này đáp ứng được các yêu cầu nhận diện trong thời
gian thực, triển khai trên các thiết bị công suất thấp hệ
thống IoT.
4. THẢO LUẬN
Việc triển khai mạng nơron tích chập (CNN) trên vi điều
khiển STM32 đã chứng minh tính khả thi và hiệu quả, mặc
dù gặp một số thách thức liên quan đến tài nguyên hạn chế
của thiết bị.
Thời gian suy luận: Thời gian suy luận của CNN trên
STM32 đáp ứng được yêu cầu thời gian thực, phù hợp với
các ứng dụng như nhận dạng ảnh và phân loại dữ liệu cảm
biến.
Độ chính xác: Mặc dù có sự suy giảm nhẹ về độ chính
xác sau khi tối ưu hóa, mức độ suy giảm này vẫn trong
khoảng thể chấp nhận được không ảnh hưởng lớn đến
hiệu suất thực tế.
RAM và Flash: Thư viện STM-Cube-AI đã giúp tối ưu
hóa việc sử dụng bộ nhớ bằng cách n mô hình sử dụng
các kỹ thuật như lượng tử hóa và tỉa hình, giúphình
phù hợp với giới hạn bộ nhớ của STM32.
Giảm độ phức tạp của hình: Giảm số lượng lớp và
số lượng nơron trong mỗi lớp đã giúp cải thiện thời gian suy
luận và tiết kiệm bộ nhớ.
Kỹ thuật nén hình: Lượng tử hóa tỉa hình đã
giảm đáng kể kích thước mô hình mà vẫn duy trì độ chính
xác cần thiết.
Các lĩnh vực như IoT, thiết bị đeo, hệ thống điều
khiển tự động thể ứng dụng trực tiếp học sâu trên
STM32, mang lại trải nghiệm người dùng tốt hơn phản
hồi tức thì. dụ, các ứng dụng nhận diện khuôn mặt
giám sát sức khỏe có thể được triển khai hiệu quả trên thiết
bị nhúng. Giới hạn tài nguyên khả năng xử các
hình phức tạp hơn vẫn thách thức lớn. Một số kỹ thuật tối
ưu hóa thể làm giảm độ chính xác của hình. Tương
lai thể tập trung vào việc phát triển các hình CNN
nhẹ hơn cải thiện các kỹ thuật tối ưu hóa. Kết hợp với
các bộ đồng xử lý AI có thể mở ra nhiều cơ hội mới.
5. KẾT LUẬN
Bài báo đã trình bày khả năng triển khai các thuật toán
và ứng dụng học sâu trên vi điều khiển STM32. Chúng tôi
đã giới thiệu các bước để triển khai hình mạng nơron
trên STM32 đã thực thi và đánh giá mô hình mạng nơron
cho bài toán nhận diện âm thanh. Kết quả thực thi cho thấy,
việc triển khai hình mạng nơron nhân tạo trên STM32
hoàn toàn có thể đáp ứng được các yêu cầu nhận diện trong
thực tế. Chúng tôi tin rằng với kết quả của nghiên cứu này
góp phần mở ra ứng dụng, khả năng thực thi AIoT trên nền
điện toán biên với hiệu năng cao và công suất thấp.
TÀI LIỆU THAM KHẢO
[1]
. BKHost, 2024. Understanding Edge Computing: Benefits, Use Cases, and Future Trends,
[Online]. Available:
https://bkhost.vn/posts/edge-computing-la-gi. [Accessed May 16, 2024].
[2]
. IEEE, 2019. "Edge Computing: Vision, Challenges, and Future Directions,
. [Online]. Available:
https://ieeexplore.ieee.org/document/8763885. [Accessed May 16, 2024].
[3]
. Semantic Scholar, 2016. HCP: A Flexible CNN Framework for Multi-
Label Image Classification with Practical
Applications,. [Online]. Available: https://www.semanticscholar.org/paper/HCP%3A-A-Flexible-CNN-
Framework-for-Multi-Label-Image-Wei-
Xia/32d850e556f39f6bbedcdef0e38f5cd295a6144f. [Accessed May 16,
2024].
[4]
. TAPIT, 2023.
Comprehensive Guide on Embedding Deep Learning Models for Audio Recognition on STM32
Microcontrollers, . [Online]. Available: https://tapit.vn/huong-dan-nhung-mo-hinh-hoc-sau-nhan-dien-thanh-len-
vi-dieu-khien-stm32/. [Accessed May 16, 2024].
[5]
. IEEE, 2002. The Internet of Things: A Survey,. [Online].
Available: https://ieeexplore.ieee.org/document/726791.
[Accessed May 16, 2024]..
[6]
. STMicroelectronics, 2024. STM32Cube.AI: Optimize and Deploy AI Models on STM32 Microcontrollers,
.
[Online]. Available: https://stm32ai.st.com/stm32-cube-ai/. [Accessed May 16, 2024].