Sự ra đời của các thiết bị di động thông minh, cùng với sự bùng nổ của các ứng dụng và dịch vụ trên nền tảng Internet dẫn đến sự ra đời của mô hình tính toán mới – điện toán biên. Cùng với xu hướng ứng dụng trí tuệ nhân tạo đang rộng mở hiện nay, triển khai các ứng dụng trí tuệ nhân tạo và học sâu trên nền tảng điện toán biên là một xu hướng nổi bật. Bài báo này sẽ khảo sát khả năng thực thi mô hình học sâu sử dụng mạng nơ-ron tích chập LeNet5 cho các bài toán học sâu được triển khai trên các vi điều khiển công suất thấp dựa trên kiến trúc ARM. Chúng tôi trình bày quá trình thiết kế và thực thi bài toán nhận dạng hình ảnh là chữ số viết tay trên board phát triển STM32. Chúng tôi sử dụng Google Colab và ngôn ngữ Python để huấn luyện mô hình mạng nơ-ron tích chập, sau đó ánh xạ mô hình đã huấn luyện lên thực thi trên board phát triển vi điều khiển STM32F411 với công cụ X-Cube-AI. Kết quả đánh giá thực tế trên phần cứng cho thấy việc thực thi trên vi điều khiển đạt hiệu năng gần tương đương với thực thi trên máy tính đa mục đích.
TNU Journal of Science and Technology 226(11): 191 - 199 IMPLEMENTATION OF DEEP LEARNING NEURAL NETWORK LENET5 ON STM32 MICROCONTROLLER FOR IMAGE RECOGNITION Huynh Viet Thang* University of Science and Technology – University of Danang ARTICLE INFO Received: 16/5/2021 Revised: 02/8/2021 Published: 09/8/2021 KEYWORDS Deep learning Edge computing STM32 microcontroller MNIST Internet of Things ABSTRACT The advent of smart mobile devices, along with the explosion of Internet-based applications and services, has led to the birth of a new computing paradigm – edge computing Along with the current expanding trend of artificial intelligence applications, deploying artificial intelligence and deep learning applications on edge computing platforms is a prominent trend This paper will investigate the ability to execute deep learning models using the convolutional neural network LeNet5 for deep learning problems implemented on low-power microcontrollers based on ARM architecture We present the process of designing and implementing the handwritten digit recognition problem on the STM32 development board We use Google Colab and Python language to train the convolutional neural network model, then map the trained model to execute on the STM32F411 microcontroller development board with the use of XCube-AI tool The experimental results show that the implementation on the microcontroller achieves nearly the same performance as that on the general purpose computers NGHIÊN CỨU TRIỂN KHAI MẠNG HỌC SÂU LENET5 TRÊN VI ĐIỀU KHIỂN STM32 ỨNG DỤNG TRONG NHẬN DẠNG HÌNH ẢNH Huỳnh Việt Thắng Trường Đại học Bách Khoa – ĐH Đà Nẵng THÔNG TIN BÀI BÁO Ngày nhận bài: 16/5/2021 Ngày hồn thiện: 02/8/2021 Ngày đăng: 09/8/2021 TỪ KHĨA Học sâu Điện toán biên Vi điều khiển STM32 MNIST Internet vạn vật TÓM TẮT Sự đời thiết bị di động thông minh, với bùng nổ ứng dụng dịch vụ tảng Internet dẫn đến đời mơ hình tính toán – điện toán biên Cùng với xu hướng ứng dụng trí tuệ nhân tạo rộng mở nay, triển khai ứng dụng trí tuệ nhân tạo học sâu tảng điện toán biên xu hướng bật Bài báo khảo sát khả thực thi mơ hình học sâu sử dụng mạng nơ-ron tích chập LeNet5 cho tốn học sâu triển khai vi điều khiển công suất thấp dựa kiến trúc ARM Chúng trình bày trình thiết kế thực thi tốn nhận dạng hình ảnh chữ số viết tay board phát triển STM32 Chúng sử dụng Google Colab ngơn ngữ Python để huấn luyện mơ hình mạng nơ-ron tích chập, sau ánh xạ mơ hình huấn luyện lên thực thi board phát triển vi điều khiển STM32F411 với công cụ X-Cube-AI Kết đánh giá thực tế phần cứng cho thấy việc thực thi vi điều khiển đạt hiệu gần tương đương với thực thi máy tính đa mục đích DOI: https://doi.org/10.34238/tnu-jst.4497 Email: thanghv@dut.udn.vn http://jst.tnu.edu.vn 191 Email: jst@tnu.edu.vn TNU Journal of Science and Technology 226(11): 191 - 199 Giới thiệu 1.1 Internet vạn vật điện toán biên Ngày nay, bùng nổ thiết bị di động cảm biến thông minh mở rộng phạm vi ứng dụng dựa tảng Internet Internet vạn vật (Internet of Things - IoT) đề cập đến mạng lưới đối tượng thiết bị dùng để thu thập trao đổi liệu, với số lượng thiết bị IoT ngày gia tăng Báo cáo Cisco [1] dự đoán có khoảng 15 tỷ thiết bị IoT kết nối vào năm 2023, ước tính chiếm đến 50% tổng số lượng thiết bị kết nối Internet Cisco ước tính rằng, gần 850 Zettabyte (ZB) liệu tạo năm bên dịch vụ đám mây, lưu lượng trung tâm liệu toàn cầu khoảng 20,6 ZB [2] Điều cho thấy nguồn liệu cho tính tốn liệu lớn trải qua trình chuyển dịch: chuyển từ trung tâm liệu đám mây quy mô lớn sang loạt thiết bị đặt biên mạng, gọi thiết bị biên hay Edge Device Lượng liệu khổng lồ tạo đối tượng thúc đẩy đời giải pháp để lưu trữ phân tích liệu Trong bối cảnh đó, khái niệm điện tốn biên (hay tính tốn biên) – Edge Computing – đề xuất mơ hình máy tính với việc tính tốn chủ yếu thực thiết bị đặt biên mạng, edge device Điện toán biên giúp giải số thách thức quan trọng liên quan đến ứng dụng IoT Ví dụ, ứng dụng dịch vụ chăm sóc sức khỏe, điều khiển xe tự hành, việc phản hồi nhanh bắt buộc Với yêu cầu phản hồi nhanh, thay gửi liệu lên tính tốn máy chủ đám mây (cloud), việc tính tốn lưu trữ thực trực tiếp thiết bị biên đặt gần ứng dụng, điện toán biên giúp giảm thiểu thời gian truyền liệu cho phép đáp ứng với độ trễ thấp [2], [3] Ứng dụng điện toán biên trường hợp giúp giảm chi phí truyền liệu, tính tốn lưu trữ Ngoài ra, xử lý liệu biên bảo vệ tính riêng tư người dùng không cần tải liệu lên máy chủ Bên cạnh ưu điểm, việc triển khai mơ hình điện tốn biên gặp khơng thách thức Thiết bị biên thiết bị điện tử cung cấp kết nối với nhà cung cấp dịch vụ thiết bị cạnh khác; thông thường, thiết bị có tài ngun (tốc độ tính tốn, nhớ, tài nguyên phần cứng khác) hạn chế [3] Vì thiết bị biên bị hạn chế tài nguyên phần cứng, nhiệm vụ chạy thuật toán, phương pháp ứng dụng thiết bị biên coi thách thức đáng kể 1.2 Học sâu điện toán biên Là lớp kỹ thuật học máy, học sâu (Deep Learning – viết tắt DL) lĩnh vực nghiên cứu ứng dụng bật nay, mang lại thành đáng kể nhiều lĩnh vực bao gồm xử lý hình ảnh [4], nhận dạng giọng nói [5] điều khiển xe tự hành [6] Với đời mơ hình điện tốn biên, việc triển khai ứng dụng học sâu kết hợp điện toán biên xu hướng bật Các camera, micrô nhiều thiết bị cảm biến đặt biên mạng, với đời nhiều thiết bị điện toán biên với hiệu cao gần mở nhiều hội tuyệt vời để thực thi thuật tốn học sâu biên mạng Hình minh họa trường hợp triển khai ứng dụng học sâu, mơ hình học sâu triển khai trung tâm liệu đám mây (cloud data center), máy chủ biên (edge server), thiết bị điện toán biên (edge device) [3] Trên giới có nghiên cứu mơ hình học sâu thiết bị điện tốn biên phát triển thiết bị điện toán biên cho việc thực thi thuật toán học sâu [2], [3] Những giải pháp phần cứng bao gồm: i) sử dụng máy tính nhúng đơn board (single board computer); ii) sử dụng thiết bị tính tốn hiệu cao board phát triển FPGA hay card đồ họa GPU; iii) sử dụng chip vi điều khiển với cơng suất thấp hiệu tính tốn mức chấp nhận phù hợp với yêu cầu ứng dụng cụ thể http://jst.tnu.edu.vn 192 Email: jst@tnu.edu.vn TNU Journal of Science and Technology 226(11): 191 - 199 Hình Các mơ hình triển khai ứng dụng học sâu [2] 1.3 Đóng góp khoa học báo Trong báo này, khảo sát khả triển khai thuật tốn học sâu dịng chip vi điều khiển ARM Chúng tơi thực thi tốn nhận dạng hình ảnh chữ số viết tay [7] với tập liệu MNIST [8] board phát triển STM32F411 [9] hãng ST Vi điều khiển STM32F411 (32-bit) có kiến trúc dựa lõi ARM Cortex-M sử dụng phổ biến ứng dụng IoT, y tế, chăm sóc sức khỏe nhiều ứng dụng khác Phần lại báo tổ chức sau Phần trình bày mơ hình thực hệ thống học sâu thiết bị điện toán biên sở lý thuyết liên quan Phần trình bày chi tiết trình thực toán học sâu với tập liệu chữ số viết tay MNIST vi điều khiển ARM Cortex-M STM32F411 hãng ST Phần kết thực thi đánh giá mơ hình Cuối cùng, kết luận hướng nghiên cứu trình bày Phần Cơ sở 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) loại mạng học sâu thường sử dụng cho ứng dụng xử lý hình ảnh thị giác máy tính Kiến trúc mạng nơron tích chập thường gồm nhiều lớp (layer), có ba lớp phổ biến 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 (fullyconnected layer) Với kiến trúc vậy, mạng nơ-ron tích chập thực kết hợp hai chức trích chọn thuộc tính phân loại kiến trúc thực thi, mang lại hiệu suất nhận dạng tốt Hình minh họa kiến trúc mạng nơ-ron tích chập tiêu biểu – mạng LeNet5 [7] ứng dụng toán nhận dạng chữ số viết tay Lớp tích chập thực tính tích chập hai chiều (2D convolution) liệu đầu vào ma trận lọc Ma trận lọc thường gọi kernel thông thường kernel ma trận có kích thước 3x3 5x5 phần tử Sau tính tích chập, hàm kích hoạt phi tuyến áp dụng cho kết chập để tạo đồ đặc trưng (feature map) Hàm kích hoạt ReLu thường sử dụng phổ biến mạng nơ-ron tích chập Có nhiều loại kernel sử dụng lớp mạng nơ-ron tích chập để tạo nhiều đồ đặc trưng nhằm trích xuất loại đặc trưng khác từ liệu đầu vào Các đồ đặc trưng sau sử dụng để thực phân loại với lớp mạng nơ-ron liên kết hoàn toàn http://jst.tnu.edu.vn 193 Email: jst@tnu.edu.vn TNU Journal of Science and Technology 226(11): 191 - 199 Hình Kiến trúc mạng nơ-ron tích chập LeNet [7] Lớp lấy mẫu xuống thực việc giảm kích thước khơng gian đồ đặc trưng từ lớp tích chập trước Việc lấy mẫu xuống nhằm trích xuất đặc điểm trội từ đồ đặc trưng nhằm đảm bảo tính bất biến khơng gian thuộc tính trích chọn phép tốn xoay dịch chuyển điểm ảnh tập liệu đầu vào, giúp nâng cao hiệu suất q trình huấn luyện nhận dạng mẫu Ngồi ra, lớp lấy mẫu xuống hữu ích để giảm độ phức tạp tính tốn mạng nơ-ron tích chập Có hai toán tử lấy mẫu xuống thường dùng: lấy mẫu tối đa (max pooling) lấy mẫu trung bình (average pooling), lấy mẫu tối đa thường ưa chuộng Kích thước mặt nạ lấy mẫu thơng thường 2x2 Trong mạng nơ-ron tích chập, lớp mạng gồm lớp tích chập lớp lấy mẫu xuống ghép nối tầng xen kẽ Ví dụ, mạng Hình có hai lớp tích chập hai lớp lấy mẫu xuống để thực việc trích xuất đặc trưng cho liệu đầu vào Khi việc trích xuất đặc trưng thực xong, đầu lớp lấy mẫu xuống làm phẳng thành vectơ giá trị đưa vào lớp nơ-ron kết nối đầy đủ Các lớp nơ-ron kết nối đầy đủ tiếp thực nhiệm vụ phân loại cho hình ảnh đầu vào Trong ví dụ Hình 2, có ba lớp nơ-ron kết nối đầy đủ sử dụng Để thuận tiện trình bày, báo lớp mạng nơ-ron tích chập ký hiệu sau: Lớp tích chập ký hiệu “Conv”, lớp lấy mẫu tối đa ký hiệu “MaxPooling”, lớp nơron liên kết hoàn toàn ký hiệu “Dense”, lớp làm phẳng ký hiệu “Flatten” 2.2 Vi điều khiển ARM Cortex-M STM32 cơng cụ X-Cube-AI Dịng vi điều khiển STM32 dịng vi điều khiển 32-bit có kiến trúc dựa lõi ARM Cortex hãng STMicroelectronics sản xuất hướng đến ứng dụng IoT hệ thống nhúng hiệu cao có khả cung cấp cân tốt mức lượng tiêu thụ hoạt động hiệu suất xử lý Vi điều khiển STM32F411VET6 [7] có dung lượng nhớ chương trình (Flash) 512 KB dung lượng nhớ liệu (SRAM) 128 KB, hoạt động với thạch anh ngồi tần số MHz, thơng qua hệ thống phân phối xung clock bên chip cho phép lõi vi điều khiển hoạt động tần số xung clock tối đa 100 MHz Trên thị trường, STM32F411VET6 tích hợp board phát triển EDiscovery STMicroelectronics cho phép người dùng chạy ứng dụng điều khiển nhúng thông thường phát triển ứng dụng xử lý tín hiệu số xử lý hình ảnh, âm video Gần đây, STMicroelectronics phát triển công cụ cho phép thực thi mơ hình mạng nơ-ron nhân tạo dịng chip vi điều khiển STM32 Một số gói thư viện mở rộng X-Cube-AI chuyên cho triển khai mơ hình mạng nơ-ron nhân tạo học máy Cơng cụ X-Cube-AI [10] gói mở rộng công cụ STM32 CubeMX cho phép người dùng ánh xạ chạy mơ hình mạng nơ-ron nhân tạo huấn luyện trước (pre-trained) chip STM32 dòng F3 F4 trở lên Công cụ X-Cube-AI hỗ trợ tạo thư viện tối ưu hóa để thực thi mơ hình mạng nơ-ron nhân tạo huấn luyện trước, đồng thời hỗ trợ ánh xạ mô http://jst.tnu.edu.vn 194 Email: jst@tnu.edu.vn TNU Journal of Science and Technology 226(11): 191 - 199 hình mạng nơ-ron nhân tạo từ nhiều thư viện phát triển mơ hình mạng nơ-ron nhân tạo học sâu phổ biến Keras, TensorFlow Lite, ONNX, PyTorch, Caffe Thực mơ hình học sâu vi điều khiển ARM Cortex-M STM32F411 3.1 Các bước thực Hình minh họa bước tiêu biểu triển khai ứng dụng nhận dạng và/hoặc học sâu lên vi điều khiển STM32 MCU [10] Thu nhận liệu Tiền xử lý liệu & Gán nhãn Xây dựng mơ hình học sâu Huấn luyện mơ hình học sâu Ánh xạ mơ hình lên STM32 MCU Thực thi & Đánh giá Hình Các bước triển khai ứng dụng nhận dạng/ học sâu vi điều khiển STM32 MCU • Bước Thu nhận liệu Trong bước này, liệu liên quan toán hay ứng dụng cần triển khai thu nhận với số lượng mẫu đủ lớn, làm sở để thực việc mơ hình hóa hay phân loại dựa liệu bước Để thu nhận liệu sử dụng cảm biến gần đối tượng theo dõi thực việc ghi lại trạng thái thay đổi đối tượng theo thời gian Các thông số vật lý bao gồm gia tốc, nhiệt độ, âm hình ảnh tùy thuộc vào ứng dụng • Bước Tiền xử lý liệu Gán nhãn Tiền xử lý liệu bao gồm q trình lọc nhiễu, làm liệu thơ Tiếp đó, liệu gán nhãn (label) để phục vụ cho việc huấn luyện sử dụng mơ hình học sâu có giám sát bước • Bước Xây dựng mơ hình học sâu Dựa vào mục tiêu ứng dụng tập liệu thu nhận được, người thiết kế cần lựa chọn xây dựng mơ hình học sâu phù hợp để học suy luận với kết tốt từ tập liệu có nhằm đáp ứng mục tiêu tốn Cơng việc bao gồm định kiểu mạng nơ-ron nhân tạo cần dùng (ví dụ mạng nơ-ron lan truyền thẳng hay mạng nơ-ron tích chập), kiến trúc mạng (số lớp, số nơ-ron lớp, hàm kích hoạt cần dùng), phương pháp huấn luyện mạng • Bước Huấn luyện mơ hình học sâu Quá trình huấn luyện thường tiến hành máy tính sử dụng dịch vụ học máy với lực xử lý lớn tài nguyên phần cứng (bộ nhớ, tốc độ) không hạn chế Kết q trình huấn luyện mơ hình mạng nơ-ron nhân tạo huấn luyện (pre-trained model) lưu định dạng phù hợp với công cụ phát triển STM32 • Bước Ánh xạ mơ hình lên vi điều khiển STM32 Sử dụng cơng cụ X-Cube-AI để chuyển đổi mơ hình mạng nơ-ron huấn luyện trước thành mã C tối ưu hóa độ phức tạp tính tốn u cầu nhớ, để thực thi mơ hình mạng nơ-ron nhân tạo huấn luyện vi điều khiển STM32 • Bước Thực thi Đánh giá Quá trình thực thi đánh giá mạng nơ-ron thiết kế vi điều khiển STM32 thực dễ dàng cách sử dụng hàm tham khảo ví dụ sẵn có tạo tích hợp sẵn công cụ X-Cube-AI http://jst.tnu.edu.vn 195 Email: jst@tnu.edu.vn TNU Journal of Science and Technology 226(11): 191 - 199 3.2 Huấn luyện mạng nơ-ron tích chập cho nhận dạng chữ số viết tay với MNIST Trong nghiên cứu này, chúng tơi thực việc ánh xạ mơ hình mạng nơ-ron tích chập LeNet thực thi tốn nhận dạng chữ số viết tay tập liệu MNIST lên board phát triển EDiscovery STM32F411VET6 Mơ hình mạng nơ-ron tích chập LeNet huấn luyện trước cơng cụ Google Colab [11] sử dụng thư viện Keras, sau mơ hình mạng huấn luyện ánh xạ, thực thi đánh giá lên vi điều khiển STM32F411VET6 sử dụng công cụ X-CubeAI môi trường phát triển tích hợp STM32-CubeIDE Tập liệu MNIST sử dụng để huấn luyện kiểm tra mạng nơ-ron tích chập Tập liệu MNIST gồm tập huấn luyện 60.000 mẫu tập kiểm tra 10.000 mẫu Có 10 loại chữ số viết tay khác từ đến tập liệu MNIST Mỗi chữ số chuẩn hóa ảnh đa mức xám có kích thước 28x28 điểm ảnh Bảng Kiến trúc mạng nơ-ron tích chập ứng dụng cho nhận dạng chữ số viết tay với tập MNIST, triển khai vi điều khiển STM32F411VET6 TT Lớp Ảnh đầu vào Conv1 MaxPooling1 Conv2 MaxPooling2 Flatten Dense1 Dense2 Dense3 Số feature map 6 16 16 - Kích thước đầu 28x28 28x28 14x14 14x14 7x7 784 120 84 10 Kích thước kernel 5x5 2x2 5x5 2x2 - Hàm kích hoạt ReLu ReLu ReLu ReLu Softmax Số lượng tham số 156 2416 94200 10164 850 Tổng số tham số: 107786 Chúng tơi lựa chọn sử dụng mơ hình mạng nơ-ron tích chập LeNet-5, chi tiết mơ hình mạng sử dụng cho Bảng 1, với kiến trúc mạng gồm lớp tích chập (Conv1 Conv2) ghép xen kẽ với lớp lấy mẫu xuống với phương thức lấy mẫu tối đa (MaxPooling1 MaxPooling2), sau chuyển thành vector nhờ lớp Flatten đưa đến lớp nơ-ron kết nối đầy đủ (Dense1, Dense2, Dense3) gồm có 120, 84 10 nơ-ron tương ứng lớp để thực việc nhận dạng Hàm kích hoạt ReLu sử dụng lớp tích chập lớp nơ-ron kết nối đầy đủ, riêng lớp cuối (Dense3) chúng tơi sử dụng hàm kích hoạt Softmax để thực phân loại Các lớp tích chập sử dụng mặt nạ 5x5, lớp lấy mẫu sử dụng cửa sổ lấy mẫu kích thước 2x2 Tổng số tham số mạng 107786 tham số Để huấn luyện mạng, chúng tơi sử dụng Google Colab [11] với chương trình huấn luyện mạng nơ-ron tích chập phát triển tảng Python, sử dụng thư viện Keras Sau 20 vòng huấn luyện (epoch), mạng cho độ xác (Accurcy) 99,77% tập liệu huấn luyện 99,05% tập liệu kiểm tra Các kết độ xác tốt so sánh với độ xác mơ hình học máy liên quan [7], [8], [12] cho ứng dụng nhận dạng chữ số viết tay với tập liệu MNIST Tất tham số mạng nơ-ron tích chập huấn luyện lưu lại định dạng h5 phù hợp để sử dụng việc ánh xạ mơ hình lên vi điều khiển STM32F411VET6 3.3 Ánh xạ mơ hình mạng nơ-ron tích chập vi điều khiển STM32F411VET6 Hình minh họa việc cài đặt thông số đầu vào sử dụng công cụ X-Cube-AI (phiên 5.2.0) môi trường phát triển tích hợp STM32-CubeIDE (phiên 1.5.0) để thực việc ánh xạ mạng nơ-ron tích chập huấn luyện lên vi điều khiển STM32 Để tối ưu hóa dung lượng nhớ sử dụng, X-Cube-AI hỗ trợ nén liệu với hệ số nén Chúng không sử http://jst.tnu.edu.vn 196 Email: jst@tnu.edu.vn TNU Journal of Science and Technology 226(11): 191 - 199 dụng chế độ nén liệu, dung lượng nhớ sử dụng tương ứng cho mơ hình mạng nơ-ron huấn luyện là: 421,04 KB (82,23%) cho nhớ chương trình (Flash) 10,95 KB (8,55%) cho nhớ liệu (RAM) (xem Hình 4) Hình Thiết lập thơng số cho mơ hình mạng nơ-ron tích chập sử dụng cơng cụ X-Cube-AI mơi trường phát triển tích hợp STM32-CubeIDE Bảng Tài nguyên nhớ sử dụng lựa chọn chế độ nén liệu khác Chế độ Không nén liệu Nén với hệ số Nén với hệ số Bộ nhớ Flash (KB) 421,04 117,88 65,15 Bộ nhớ RAM (KB) 10,95 10,95 10,95 Hệ số nén thực tế đạt 3,64 6,48 Bảng Phân tích chi tiết độ phức tạp tính tốn tài nguyên sử dụng lớp mạng Lớp Conv1 Conv2 Dense1 Dense2 Dense3 Số lượng tham số 156 2416 94200 10164 850 Tỉ lệ MACC thực thi (%) 17,9 67,2 13,3 1,4 0,1 Tỉ lệ sử dụng nhớ Flash (%) 0,1 2,2 87,5 9,4 0,8 Tổng số phép tốn nhân cộng tích lũy MACC: 709056 MACC Dung lượng Flash sử dụng 421,04 KB Dung lượng nhớ RAM sử dụng 10,95 KB Ngồi ra, chúng tơi thử khảo sát thay đổi dung lượng nhớ u cầu cho mơ hình mạng nơ-ron tích chập huấn luyện để ánh xạ lên vi điều khiển STM32F411 thay đổi hệ số nén liệu 8, với kết dung lượng nhớ sử dụng tương ứng cho chế độ tóm tắt Bảng Việc nén liệu khía cạnh giúp tiết kiệm nhớ, khía cạnh khác làm suy giảm độ xác thực nhận dạng mạng, người thiết kế cần cân nhắc trường hợp sử dụng cụ thể Trong nghiên cứu này, không thực chế độ nén liệu thực thi board phát triển STM32F411 Bảng (được tạo phần mềm X-Cube-AI) phân tích chi tiết độ phức tạp tính tốn tài ngun nhớ Flash sử dụng tương ứng cho lớp mạng triển khai Tổng số phép toán nhân cộng tích lũy MACC (Multiply-ACCumulate operation) thực mạng http://jst.tnu.edu.vn 197 Email: jst@tnu.edu.vn TNU Journal of Science and Technology 226(11): 191 - 199 709056 MACC, lớp Conv2 có số lượng MACC thực thi lớn chiếm tỉ lệ 67,2%, lớp Conv1 (tỉ lệ 17,9%) lớp Dense1 (tỉ lệ 13,3%) Nếu xét đến tài ngun nhớ sử dụng lớp Dense1 có số lượng tham số nhiều (94200 tham số), sử dụng hầu hết nhớ kiến trúc mạng (tỉ lệ 87,5%) Kết phân tích chi tiết độ phức tạp tính tốn tài ngun sử dụng mạng giúp người thiết kế hiểu rõ đặc điểm hoạt động mạng có điều chỉnh phù hợp để cải thiện hiệu mạng phù hợp ứng dụng cụ thể Thực thi đánh giá Trong phần này, chúng tơi trình bày kết thực thi tốn nhận dạng chữ số viết tay sử dụng mạng nơ-ron tích chập board vi điều khiển EDiscovery STM32F411VET6 Quá trình thực thi thiết lập chi tiết sau: Chúng tơi phát triển chương trình C thực việc nhận dạng chữ số viết tay sử dụng mơ hình mạng nơ-ron thiết lập vi điều khiển STM32F411VET6 Dữ liệu đầu vào để nhận dạng trích xuất từ tập liệu kiểm tra tập liệu MNIST Để đo xác thời gian nhận dạng cho mẫu liệu đầu vào mạng, sử dụng định thời TIM2 vi điều khiển STM32F411VET6 Kết nhận dạng vi điều khiển, bao gồm chữ số nhận dạng thời gian nhận dạng cho mẫu mạng nơ-ron, chuyển đến hiển thị máy tính thơng qua giao tiếp UART Trên máy tính chúng tơi dùng phần mềm Hercules Terminal kết nối với vi điều khiển hiển thị kết nhận dạng chữ số viết tay vi điều khiển Chúng so sánh kết thực thi mạng nơ-ron vi điều khiển STM32F411VET6 với kết thực thi mơ hình mạng nơ-ron với tập liệu MNIST máy tính đa mục đích có cấu hình CPU Intel Core i5 7200U hoạt động tần số 2,5 GHz Phiên mạng nơron máy tính phát triển phần mềm Matlab Để so sánh, đánh giá lực hệ thống nhận dạng chữ số viết tay sử dụng mạng nơ-ron tích chập chạy vi điều khiển STM32F411VET6, sử dụng thông số là: thời gian nhận dạng hiệu mạng Hiệu mạng tính số lượng phép tốn nhân cộng tích lũy MACC thực thi giây (MACC/s), trình bày cơng thức (1) Hiệu = Số phép tốn MACC / Thời gian nhận dạng (1) Bảng Kết thực thi đánh giá hiệu vi điều khiển STM32F411VET6 toán nhận dạng chữ số viết tay với tập liệu MNIST sử dụng mạng nơ-ron tích chập LeNet5 Nền tảng phần cứng STM32F411VET6 CPU Intel Core i5 7200U Tần số (MHz) 100 2500 Thời gian nhận dạng (ms) 70,66 68,14 Hiệu (MACC/s) 10,03 x 106 10,41 x 106 Bảng trình bày chi tiết kết thực thi đánh giá Vi điều khiển STM32F411VET6 thực thi mạng nơ-ron tích chập LeNet5 cho toán nhận dạng chữ số viết tay với thời gian nhanh gần tương đương với phiên phần mềm thực thi máy tính (70,66 ms so với 68,14 ms) Với thời gian nhận dạng mạng nơ-ron đạt (70,66 ms cho mẫu), ước lượng số lượng mẫu chữ số viết tay mà vi điều khiển nhận dạng giây xấp xỉ 14 mẫu/giây Tốc độ nhận dạng đáp ứng yêu cầu ứng dụng nhận dạng mẫu thực tế triển khai thiết bị điện tốn biên cơng suất thấp ứng dụng hệ thống IoT Trong tương lai, thực tối ưu hóa việc truyền liệu nhớ lõi xử lý vi điều khiển chế truy cập nhớ trực tiếp (Direct Memory Access – DMA) và/hoặc tối ưu hóa kiến trúc mạng nơ-ron tích chập cải thiện tốc độ nhận dạng thiết bị Kết luận Bài báo trình bày khả triển khai thuật toán ứng dụng học sâu tảng điện toán biên với thiết bị biên vi điều khiển ARM Cortex-M STM32 Chúng giới thiệu http://jst.tnu.edu.vn 198 Email: jst@tnu.edu.vn TNU Journal of Science and Technology 226(11): 191 - 199 bước thực mô hình học sâu vi điều khiển STM32 triển khai thực thi đánh giá mơ hình mạng nơ-ron tích chập LeNet5 cho tốn nhận dạng chữ số viết tay vi điều khiển STM32F411VET6 Kết thực thi cho thấy, mơ hình mạng nơ-ron tích chập triển khai vi điều khiển hồn tồn đáp ứng yêu cầu ứng dụng nhận dạng thực tế Chúng tin rằng, kết nghiên cứu góp phần mở khả thực thi ứng dụng IoT học máy với hiệu cao công suất thấp thiết bị điện toán biên Lời cảm ơn Bài báo tài trợ Quỹ Khoa học Công nghệ Murata Trường Đại học Bách Khoa - ĐHĐN với đề tài có mã số T2020-02-04MSF TÀI LIỆU THAM KHẢO/ REFERENCES [1] Cisco, "Cisco Annual Internet Report (2018–2023) White Paper", 2020 [Online] Available: https://www.cisco.com/c/en/us/solutions/collateral/executive-perspectives/annual-internetreport/white-paper-c11-741490.html [Accessed May 10, 2021] [2] X Wang, Y Han, V C M Leung, D Niyato, X Yan, and X Chen, "Convergence of edge computing and deep learning: A comprehensive survey," IEEE Communications Surveys & Tutorials, vol 22, no 2, pp 869-904, 2020 [3] J Chen and X Ran, "Deep Learning With Edge Computing: A Review," Proceedings of the IEEE 107, no 8, pp 1655-1674, 2019 [4] Y Wei, W Xia, M Lin, J Huang, B Ni, J Dong, Y Zhao, and S Yan, "HCP: A flexible CNN framework for multi-label image classification," IEEE Transactions on Pattern Analysis and Machine Intelligence, vol 38, no 9, pp 1901-1907, 2015 [5] A B Nassif, I Shahin, I Attili, M Azzeh, and K Shaalan, "Speech recognition using deep neural networks: A systematic review," IEEE Access, vol 7, pp 19143-19165, 2019 [6] M Bojarski, D D Testa, D Dworakowski, B Firner, B Flepp, P Goyal, and L D Jackel, "End to end learning for self-driving cars," 2016 [7] Y LeCun, L Bottou, Y Bengio, and P Haffner, "Gradient-based learning applied to document recognition," Proceedings of the IEEE, vol 86, no 11, pp 2278-2324, 1998 [8] Y LeCun and C Cortes, “MNIST database”, 1998 [Online] Available: http://yann.lecun.com/exdb/mnist/ [Accessed May 10, 2021] [9] ST Microelectronics, “STM32F411 Microcontroller – Product Overview and Documentations”, 2020 [Online] Available: https://www.st.com/en/microcontrollers-microprocessors/stm32f411.html [Accessed May 10, 2021] [10] STMicroelectronics, “STM32 solutions for Artificial Neural Networks”, 2020 [Online] Available: https://www.st.com/content/st_com/en/ecosystems/stm32-ann.html [Accessed May 10, 2021] [11] Google, “Google Colaboratory (Colab) Introduction”, 2020 [Online] Available: https://colab.research.google.com/notebooks/intro.ipynb [Accessed May 10, 2021] [12] A Baldominos, Y Saez, and P Isasi, "A survey of handwritten character recognition with MNIST and EMNIST," Applied Sciences, vol 9, no 15, 2019, Art no 3169 http://jst.tnu.edu.vn 199 Email: jst@tnu.edu.vn ... hình học sâu Huấn luyện mơ hình học sâu Ánh xạ mơ hình lên STM32 MCU Thực thi & Đánh giá Hình Các bước triển khai ứng dụng nhận dạng/ học sâu vi điều khiển STM32 MCU • Bước Thu nhận liệu Trong. .. mơ hình học sâu vi điều khiển STM32 triển khai thực thi đánh giá mơ hình mạng nơ-ron tích chập LeNet5 cho tốn nhận dạng chữ số vi? ??t tay vi điều khiển STM32F411VET6 Kết thực thi cho thấy, mơ hình. .. chữ số vi? ??t tay mà vi điều khiển nhận dạng giây xấp xỉ 14 mẫu/giây Tốc độ nhận dạng đáp ứng yêu cầu ứng dụng nhận dạng mẫu thực tế triển khai thiết bị điện tốn biên cơng suất thấp ứng dụng hệ