1. Trang chủ
  2. » Trung học cơ sở - phổ thông

Nhận diện khuân mặt TinyML

46 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Trong thời đại số hóa ngày nay, việc nhận diện khuôn mặt không chỉ là một phần quan trọng của nhiều ứng dụng công nghệ, mà còn đóng vai trò quyết định trong việc cải thiện trải nghiệm người dùng và tăng cường an ninh. Tuy nhiên, việc triển khai các hệ thống nhận diện khuôn mặt trên các thiết bị nhúng với nguồn tài nguyên hạn chế đã gặp phải nhiều thách thức. Trong bối cảnh này, đề tài TinyML đã nổi lên như một giải pháp tiềm năng cho việc triển khai các mô hình máy học trên các thiết bị nhúng. Với sự kết hợp giữa tính nhỏ gọn, hiệu suất và tiêu thụ năng lượng thấp, đề tài TinyML đang trở thành một lựa chọn hấp dẫn cho việc xây dựng các hệ thống nhận diện khuôn mặt trên các thiết bị cấp thấp. Trong đề tài này chúng ta sẽ khám phá các cách để triển khai mô hình học máy lên trên vi điều khiển cụ thể là mô hình phát hiện khuân mặt. Hy vọng rằng đề tài sẽ cung cấp cái nhìn tổng quan và chi tiết về việc sử dụng TinyML trong ứng dụng nhận diện khuôn mặt, từ đó giúp đẩy mạnh sự phát triển của các hệ thống AI trên thiết bị nhúng và tạo ra những ứng dụng mới có ích trong cuộc sống hàng ngày.

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNGKHOA KỸ THUẬT ĐIỆN TỬ 1

BÁO CÁO BÀI TẬP LỚN

MÔN HỌC: THỊ GIÁC MÁY TÍNHĐề tài: Nhận diện khuân mặt TinyMLGiảng viên hướng dẫn: X

Nhóm bài tập lớn: 10

Thành viên nhóm: Nguyễn Minh Nghĩa - B20DCDT151: Hoàng Việt An - B20DCDT004: Nguyễn Tuấn Anh - B20DCDT015: Lưu Ngọc Anh – B20DCDT011: Nguyễn Xuân Mai - B20DCDT127

Hà Nội – 2024

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Trang 2

KHOA KỸ THUẬT ĐIỆN TỬ 1

BÁO CÁO BÀI TẬP LỚN

MÔN HỌC: ĐỒ ÁN THIẾT KẾ HỆ THỐNGNHÚNG

Đề tài: Nhận diện khuân mặt TinyMLGiảng viên hướng dẫn: X

Nhóm bài tập lớn: 10

Thành viên trong nhóm : Nguyễn Minh Nghĩa - B20DCDT151: Hoàng Việt An - B20DCDT004: Nguyễn Tuấn Anh - B20DCDT015: Lưu Ngọc Anh – B20DCDT011: Nguyễn Xuân Mai - B20DCDT127

Hà Nội - 2024

NHẬN XÉT CỦA GIẢNG VIÊN

Trang 3

DANH MỤC HÌNH ẢNH 3

Trang 4

LỜI MỞ ĐẦU 3

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 4

1.1 Giới thiệu đề tài 4

1.2 Cơ sở lý thuyết của đề tài 5

1.2.1 Artificial Intelligence – AI 5

1.2.2 Convolutional Neural Network – CNN 6

CHƯƠNG 2: HƯỚNG DẪN TIẾN HÀNH 17

2.1 Triển khai mô hình phát hiện khuân mặt trên nền tảng Edge Impulse 17

Trang 5

DANH MỤC HÌNH ẢNH

Hình 1-1: Phát hiện khuân mặt 5

Hình 1-2: Artificial Intelligence – AI 6

Hình 1-3: Convolutional Neural Network – CNN 7

Hình 2-1: Giao diện tạo project 18

Hình 2-2: Giao diện chính của project Edge Impulse 18

Hình 2-3: Lựa chọn Labeling method 19

Hình 2-4: Add existing data 20

Hình 2-5: Data giao diện phần thêm 20

Hình 2-6: Upload data 21

Hình 2-7: Giao diện sau khi được upload data 21

Hình 2-8: Giao diện sau khi được upload data ( Bounding boxes ) 22

Hình 2-9: Tuỳ chọn edit label 23

Hình 2-10: giao diện edit label 23

Hình 2-11: Labeling queue 24

Hình 2-12: Đặt tên Label cho data 24

Hình 2-13: Create Impulse sau khi setup 25

Hình 2-14: Lựa chọn thông số ảnh 25

Hình 2-15: Bản đồ Feature Map sau khi tạo 26

Hình 2-16: Setup và kết quả sau khi train 27

Hình 2-17: Lựa chọn thư viện sử dụng 28

Hình 2-18: Lựa chọn tải về sau Build 28

Hình 2-19: Sử dụng board AI Thinker ESP32-CAM 29

Trang 6

Hình 2-20: Chọn cổng COM 29Hình 2-21: Code nạp 30Hình 2-22: Define thiết bị 30

Trang 7

LỜI MỞ ĐẦU

Trong thời đại số hóa ngày nay, việc nhận diện khuôn mặt không chỉ là mộtphần quan trọng của nhiều ứng dụng công nghệ, mà còn đóng vai trò quyết định trongviệc cải thiện trải nghiệm người dùng và tăng cường an ninh Tuy nhiên, việc triểnkhai các hệ thống nhận diện khuôn mặt trên các thiết bị nhúng với nguồn tài nguyênhạn chế đã gặp phải nhiều thách thức.

Trong bối cảnh này, đề tài TinyML đã nổi lên như một giải pháp tiềm năng choviệc triển khai các mô hình máy học trên các thiết bị nhúng Với sự kết hợp giữa tínhnhỏ gọn, hiệu suất và tiêu thụ năng lượng thấp, đề tài TinyML đang trở thành một lựachọn hấp dẫn cho việc xây dựng các hệ thống nhận diện khuôn mặt trên các thiết bịcấp thấp.

Trong đề tài này chúng ta sẽ khám phá các cách để triển khai mô hình học máylên trên vi điều khiển cụ thể là mô hình phát hiện khuân mặt.

Hy vọng rằng đề tài sẽ cung cấp cái nhìn tổng quan và chi tiết về việc sử dụngTinyML trong ứng dụng nhận diện khuôn mặt, từ đó giúp đẩy mạnh sự phát triển củacác hệ thống AI trên thiết bị nhúng và tạo ra những ứng dụng mới có ích trong cuộcsống hàng ngày.

Trang 8

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI

1.1 Giới thiệu đề tài

Mục tiêu của dự án là tạo ra một hệ thống nhận diện khuôn mặt nhỏ gọn, hiệuquả và có khả năng hoạt động trực tiếp trên các thiết bị di động hoặc IoT Các ứngdụng tiềm năng của dự án này có thể làm nền tảng cho các hệ thống an ninh, xác thựcngười dùng, hoặc tạo trải nghiệm tương tác cá nhân hóa trong các ứng dụng di động.

Hình 1-1: Phát hiện khuân mặt

Dự án sẽ tập trung vào việc thu thập và xử lý dữ liệu khuôn mặt, huấn luyệnmột mô hình nhận diện khuôn mặt sử dụng các thuật toán học máy như CNN trênEdge Impulse, và sau đó triển khai mô hình đã huấn luyện trực tiếp trên các thiết bịnhúng cụ thể là ESP32 Cam

Trang 9

1.2 Cơ sở lý thuyết của đề tài

1.2.1 Artificial Intelligence – AI1.2.1.1 Định nghĩa

Trí tuệ nhân tạo (Artificial Intelligence - AI) là một lĩnh vực của khoa học máytính và công nghệ thông tin tập trung vào việc phát triển các hệ thống hoạt động giốnghoặc tốt hơn con người trong việc thực hiện nhiều nhiệm vụ thông minh.

Hình 1-2: Artificial Intelligence – AI

1.2.1.2 Một số khái niệm

Học máy (Machine Learning): Là một phương pháp trong trí tuệ nhân tạo, mà

hệ thống máy tính được lập trình để tự động học từ dữ liệu mà không cần phải lập trìnhcụ thể cho từng nhiệm vụ Học máy giúp máy tính nhận biết mẫu trong dữ liệu và tạora các dự đoán hay quyết định.

Học sâu (Deep Learning): Là một phân nhánh của học máy, nơi mô hình máy

tính có nhiều lớp (layer) để biểu diễn và học cách biểu diễn các khái niệm phức tạp.Đây là một phương pháp mạnh mẽ trong việc xử lý các nhiệm vụ như nhận diện hìnhảnh, giọng nói hay ngôn ngữ tự nhiên.

Học có giám sát (Supervised Learning): Một dạng học máy trong đó mô hình

máy tính được huấn luyện trên một tập dữ liệu đã được gán nhãn Mục tiêu là để dựđoán hoặc phân loại dữ liệu mới.

Trang 10

Học không giám sát (Unsupervised Learning): Một dạng học máy trong đó mô

hình máy tính được huấn luyện trên một tập dữ liệu không có nhãn Mục tiêu là để tìmra cấu trúc ẩn trong dữ liệu.

Học tăng cường (Reinforcement Learning): Một dạng học máy mà một hệ

thống máy tính học từ trải nghiệm, thông qua thử và sai, để đạt được mục tiêu cụ thể

1.2.2 Convolutional Neural Network – CNN

Mạng nơ-ron tích chập (Convolutional Neural Network - CNN) là một loại mạngnơ-ron sâu (deep neural network) thường được sử dụng trong các ứng dụng xử lý hìnhảnh và thị giác máy tính CNN được thiết kế để tự động học và trích xuất các đặc trưngtừ dữ liệu hình ảnh một cách hiệu quả.

Hình 1-3: Convolutional Neural Network – CNN

Một số khái niệm cơ bản về CNN:

Tích chập (Convolution): Là một phép toán trong xử lý tín hiệu, được sử dụngđể áp dụng một bộ lọc (filter) qua từng phần của hình ảnh để tạo ra các feature map.Tích chập giúp mạng nơ-ron tự động học các đặc trưng như cạnh, góc, hoặc texture từdữ liệu hình ảnh.

Lớp tích chập (Convolutional Layer): Là lớp chính của CNN, trong đó các bộlọc được áp dụng qua dữ liệu đầu vào để tạo ra các feature map Mỗi bộ lọc trong lớpnày sẽ tìm kiếm các đặc trưng cụ thể trong hình ảnh.

Trang 11

Lớp gộp (Pooling Layer): Là lớp được sử dụng để giảm kích thước của featuremap bằng cách lấy giá trị trung bình hoặc giá trị lớn nhất từ các vùng nhỏ của featuremap Điều này giúp giảm độ phức tạp của mạng và làm giảm lượng tính toán.

Hàm kích hoạt (Activation Function): Là một hàm phi tuyến tính được áp dụngsau mỗi lớp tích chập để thêm tính phi tuyến tính vào mô hình Hàm kích hoạt phổbiến nhất trong CNN là ReLU (Rectified Linear Unit).

Lớp kết nối đầy đủ (Fully Connected Layer): Là lớp cuối cùng của mạng, nơicác feature map được "flatten" thành một vector và đưa vào một hoặc nhiều lớp nơ-ronđể thực hiện phân loại hoặc dự đoán.

1.2.3 TinyML

1.2.3.1 Giới thiệu về TinyML

Trong thời đại hiện nay của các thiết bị thông minh như camera trí tuệ nhân tạo(AI), máy giặt trí tuệ nhân tạo và các thiết bị điện tử AI khác, Machine Learning (ML)đóng vai trò quan trọng trong việc hiểu dữ liệu từ các cảm biến nhiễu Tuy nhiên, mộtthách thức lớn xuất phát khi làm việc với các thiết bị nhúng: chúng thường nhỏ gọn vàhoạt động trên nguồn pin hạn chế Các mô hình Machine Learning truyền thốngthường đòi hỏi tài nguyên tính toán đáng kể, khiến chúng không thích hợp cho việctriển khai trên các thiết bị chạy bằng pin Đây là lúc tiny Machine Learning (tinyML)xuất hiện.

Hình 1-4: TinyML

TinyML là một nhánh chuyên biệt của Machine Learning tập trung vào việcphát triển và triển khai các mô hình Machine Learning trên các vi điều khiển nhỏ công

Trang 12

suất, có tài nguyên hạn chế như các vi điều khiển được tìm thấy trong các bo mạchArduino Bằng cách tối ưu hóa các thuật toán và kiến trúc mô hình, tinyML cho phépthực hiện các nhiệm vụ ML trực tiếp trên các vi điều khiển này, vượt qua các hạn chếvề nguồn năng lượng và kích thước.

MLOps, viết tắt của Machine Learning Operations, là một tập hợp các thực tiễnvà nguyên tắc nhằm tối ưu hóa và tự động hóa việc triển khai, giám sát và quản lý cácmô hình ML trong môi trường sản xuất Mặc dù MLOps truyền thống thường đượcliên kết với các hệ thống ML quy mô lớn triển khai trong các trung tâm dữ liệu, cácnguyên tắc của nó cũng hoàn toàn áp dụng cho các triển khai tinyML.

Tự Động Hóa: Một trong những mục tiêu chính của MLOps là tự động hóa toànbộ vòng đời ML, từ việc thu thập dữ liệu và huấn luyện mô hình đến triển khai vàgiám sát Trong ngữ cảnh của tinyML, tự động hóa trở nên quan trọng để tối ưu hóakích thước mô hình, hiệu suất và tiêu thụ năng lượng cho việc triển khai trên các thiếtbị có tài nguyên hạn chế.

Giám Sát: Giám sát liên tục các mô hình đã triển khai là rất quan trọng để đảmbảo tính đáng tin cậy và hiệu suất của chúng qua thời gian Trong trường hợp củatinyML, giám sát giúp phát hiện sự bất thường, theo dõi tiêu thụ năng lượng và đánhgiá sự thay đổi của mô hình, từ đó giúp thời gian can thiệp và cải thiện kịp thời.

Khả Năng Mở Rộng: Mặc dù từng triển khai tinyML có thể bao gồm các thiếtbị quy mô nhỏ, nhưng hệ sinh thái tổng thể có thể bao gồm một số lượng lớn các thiếtbị phân tán Các thực tiễn MLOps hỗ trợ tính mở rộng của các triển khai tinyML bằngcách cho phép quản lý tập trung, kiểm soát phiên bản và cập nhật trên nhiều thiết bị.

Các Thực Tiễn Tốt Nhất: MLOps ủng hộ việc áp dụng các thực tiễn tốt nhấttrong toàn bộ vòng đời ML, bao gồm tiền xử lý dữ liệu, đánh giá mô hình và các chiếnlược triển khai Các thực tiễn tốt nhất này được điều chỉnh để phản ánh các yêu cầu vàhạn chế đặc biệt của các triển khai tinyML, chẳng hạn như tối ưu hóa mô hình, suyluận thưa thớt và quản lý bộ nhớ hiệu quả.

Trang 13

Nhà Máy Tương Lai: Sử Dụng trong Quản Lý Sự Cố Máy Móc: TinyML có thểgiúp các nhà sản xuất tránh sự gián đoạn do hỏng hóc của thiết bị bằng cách cho phépquyết định thời gian thực Nó có thể thông báo cho nhân viên khi cần bảo dưỡng địnhkỳ dựa trên tình trạng của thiết bị.

Bán Lẻ: Quản Lý Hàng Tồn: TinyML có thể ngăn chặn việc cạn kiệt hàng hóabằng cách giám sát kệ hàng trong cửa hàng và cung cấp cảnh báo nhanh chóng khi sốlượng hàng hóa giảm.

Nông Nghiệp: Giám Sát Sức Khỏe Động Vật: Các bệnh tật của động vật đặtnông dân vào nguy cơ mất rất nhiều tiền Dữ liệu từ các thiết bị đeo trên gia súc, theodõi các dấu hiệu quan trọng như nhịp tim, huyết áp và nhiệt độ, có thể giúp dự đoáncác đợt bùng phát và dịch bệnh.

1.2.3.3 Cách TinyML Hoạt Động

Các thuật toán tinyML nhúng sử dụng các phương pháp sau để hoạt động trongnhững giới hạn tài nguyên đáng kể mà tinyML đặt ra.

Trang 14

Hình 1-5: Cánh mà TinyML hoạt dộng

Sử Dụng Dự Đoán (Inference) Thay Vì Huấn Luyện Mô Hình: Thay vì huấn

luyện mô hình từ đầu, tinyML thường sử dụng việc dự đoán từ một mô hình đã đượchuấn luyện trước đó Điều này giúp tiết kiệm tài nguyên tính toán và bộ nhớ, vì việchuấn luyện mô hình yêu cầu nhiều tài nguyên hơn so với việc sử dụng mô hình đãđược huấn luyện.

Tối Ưu Hóa Bộ Nhớ Bằng Cách Sử Dụng Quan Hóa (Quantization): Quan

hóa được sử dụng để giảm thiểu lượng bộ nhớ cần thiết để lưu trữ các số học, ví dụ,bằng cách chuyển đổi các số thực 4 byte thành các số nguyên 8 bit (1 byte mỗi số).Kiến thức nhân chế được sử dụng để hỗ trợ trong việc tìm hiểu và nhớ chỉ những đặcđiểm quan trọng nhất của một mô hình.

Một số phương pháp này có thể dẫn đến sự giảm chất lượng của mô hình Vídụ, việc cắt tỉa (pruning) và quan hóa (quantization) mạng neural giới hạn khả năngcủa một mạng để hiểu và suy luận kết quả Do đó, trong tinyML, có một sự đối đầucần thiết giữa kích thước mô hình và độ chính xác, và việc triển khai các kỹ thuật nàylà một khía cạnh quan trọng của thiết kế hệ thống tinyML.

1.3 Công cụ và thiết bị cần thiết

1.3.1 Edge Impulse

Edge Impulse là một nền tảng phần mềm nhúng dựa trên trí tuệ nhân tạo (AI)được thiết kế để giúp các nhà phát triển xây dựng, huấn luyện và triển khai các môhình máy học và trí tuệ nhân tạo trên các thiết bị nhúng Nền tảng này giúp các nhà

Trang 15

phát triển tạo ra các ứng dụng thông minh trên các thiết bị nhúng, từ cảm biến đến viđiều khiển Với Edge Impulse, các nhà phát triển có thể dễ dàng xây dựng các ứngdụng thông minh như phát hiện động tác, nhận diện âm thanh, hoặc dự đoán dữ liệu từcác cảm biến, mà không cần có kiến thức chuyên sâu về trí tuệ nhân tạo hay lập trìnhnhúng.

Tiền xử lý dữ liệu: Sau khi thu thập dữ liệu, Edge Impulse cho phép tiền xử lýdữ liệu để chuẩn hóa và làm sạch dữ liệu trước khi đưa vào huấn luyện mô hình.

.Huấn luyện mô hình: Edge Impulse cung cấp giao diện dễ sử dụng để huấnluyện mô hình máy học từ dữ liệu đã được tiền xử lý Người dùng có thể chọn từ cácthuật toán máy học phổ biến như học sâu (deep learning), máy học có giám sát(supervised learning), hay các kỹ thuật khác như phân loại, phát hiện và dự đoán.

Kiểm tra và đánh giá mô hình: Edge Impulse cung cấp công cụ để kiểm tra vàđánh giá hiệu suất của mô hình máy học trên dữ liệu thử nghiệm.

Triển khai trên thiết bị nhúng: Một điểm mạnh của Edge Impulse là khả năngtriển khai mô hình máy học trực tiếp trên các thiết bị nhúng như microcontroller màkhông cần kết nối Internet Điều này giúp giảm thiểu độ trễ (latency) và bảo vệ sựriêng tư của dữ liệu.

Quản lý mô hình: Edge Impulse cung cấp các công cụ để quản lý các mô hìnhmáy học đã được huấn luyện và triển khai trên các thiết bị.

Trang 16

1.3.2 ESP-DL

Thư viện ESP-DL bao gồm các thông số lượng tử hóa, định dạng bố cục dữ liệuvà hỗ trợ cho các lớp tăng tốc.Cho phép triển khai các mô hình đã được đào tạo trêndòng chip ESP Cung cấp quy định về lượng tử hóa, định dạng dữ liệu và lớp tăng tốchỗ trợ.

Hình 1-7: ESP-DL

ONNX (Open Neural Network Exchange)

 ONNX là định dạng mở để biểu diễn các mô hình học sâu.

 Được sử dụng như một định dạng trung gian cho việc chuyển đổi giữa cácframework học sâu khác nhau.

 Lưu trữ cấu trúc và tham số của mô hình theo định dạng chuẩn.

Trang 17

Camera: ESP32-CAM đi kèm với một camera OV2640 hoặc OV7670 CameraOV2640 có độ phân giải cao (2 megapixel) và chất lượng hình ảnh tốt Điều này làmcho mô-đun này phù hợp cho nhiều ứng dụng như giám sát, nhận diện khuôn mặt,hoặc nhận diện vật thể.

Hình 1-8: ESP32-CAM và sơ đồ chân.

Vi điều khiển ESP32: ESP32 là một vi điều khiển mạnh mẽ với khả năng xử lýnhanh chóng và tích hợp các module Wi-Fi và Bluetooth Điều này cho phép ESP32-CAM kết nối với mạng Wi-Fi và truyền dữ liệu hình ảnh lên Internet hoặc điều khiểntừ xa.

Trang 18

Kết nối Wi-Fi: ESP32-CAM có khả năng kết nối với mạng Wi-Fi, cho phéptruy cập và điều khiển mô-đun từ xa qua Internet Điều này làm cho nó trở thành mộtlựa chọn lý tưởng cho các ứng dụng giám sát từ xa hoặc gửi hình ảnh đến máy chủ.

Giao tiếp: Mô-đun ESP32-CAM có các chân GPIO (General PurposeInput/Output) để kết nối với các thiết bị ngoại vi như cảm biến, màn hình hoặc cácmodule khác Nó cũng hỗ trợ giao tiếp SPI, I2C và UART.

Linh hoạt và dễ sử dụng: ESP32-CAM có thể lập trình bằng Arduino IDE hoặcPlatformIO, hai môi trường lập trình phổ biến cho vi điều khiển ESP32 Nó cũng hỗtrợ việc lập trình bằng MicroPython, một ngôn ngữ lập trình dễ học và dễ sử dụng.

Ứng dụng: ESP32-CAM có thể được sử dụng trong nhiều ứng dụng như giámsát nhà, hệ thống an ninh, máy ảnh tự động, hệ thống nhận diện, và nhiều ứng dụngkhác liên quan đến hình ảnh và video trong môi trường IoT.

1.3.4 Arduino IDE

Arduino IDE (Integrated Development Environment) là một môi trường phát triển tích hợp được thiết kế đặc biệt cho việc lập trình và nạp chương trình vào các bo mạch Arduino Đây là một công cụ phổ biến và dễ sử dụng cho người mới bắt đầu và cũng được sử dụng rộng rãi trong cộng đồng DIY (tự làm) và IoT Dưới đây là một số điểm quan trọng về Arduino IDE:

Trang 19

Hình 1-9: Arduino IDE

Giao diện đơn giản: Arduino IDE có một giao diện người dùng đơn giản vàthân thiện, với các nút chức năng rõ ràng Điều này làm cho nó dễ tiếp cận và sử dụngcho cả người mới bắt đầu và những người có kinh nghiệm.

Ngôn ngữ lập trình Arduino: Arduino IDE sử dụng ngôn ngữ lập trình C/C++,nhưng được đơn giản hóa và định dạng lại để dễ hiểu và sử dụng cho người mới họclập trình Các chương trình Arduino thường bao gồm một hàm setup() để khởi tạo vàmột hàm loop() để lặp lại các hành động chính của chương trình.

Thư viện tiêu chuẩn và thư viện bên thứ ba: Arduino IDE đi kèm với một số thưviện tiêu chuẩn cho các chức năng như điều khiển GPIO, giao tiếp với cảm biến, vàđiều khiển các thiết bị ngoại vi Ngoài ra, cộng đồng Arduino cũng phát triển nhiều thưviện bên thứ ba để hỗ trợ các chức năng phức tạp hơn.

Dễ dàng nạp chương trình: Arduino IDE cho phép bạn nạp chương trình vàocác bo mạch Arduino thông qua cổng USB Quá trình này rất đơn giản và chỉ cần mộtvài bước đơn giản.

Hỗ trợ nhiều loại bo mạch: Arduino IDE không chỉ hỗ trợ bo mạch Arduinochính thức mà còn hỗ trợ nhiều loại bo mạch phát triển khác như ESP8266, ESP32,STM32 và nhiều loại bo mạch khác.

Mã nguồn mở và cộng đồng lớn: Arduino IDE là mã nguồn mở và có một cộngđồng lớn, nơi bạn có thể tìm thấy nhiều nguồn tài liệu, hướng dẫn và mã nguồn mẫu đểhỗ trợ dự án của mình.

1.3.5 ESP-IDF

Như mọi người đã biết Arduino là một framework rất thân thiện với người mớihọc lập trình nhờ vào cú pháp đơn giản và cộng đồng hỗ trợ lớn Arduino cung cấp rấtnhiều thư viện cho nhiều loại cảm biến khác nhau, giúp việc phát triển dự án trở nêndễ dàng và nhanh chóng Nhưng khi chúng muốn đi sâu để tùy chỉnh dự án của mìnhthường khá là khó khăn

ESP-IDF là framework chính thức do Espressif hỗ trợ, cung cấp API đầy đủ vàchi tiết cho các tính năng của module ESP32 Với ESP-IDF, bạn có thể tận dụng hết

Trang 20

khả năng của ESP32 cũng như các tính năng đã được tối ưu hóa về hiệu suất và antoàn.

Theo một số thảo luận và kiểm nghiệm, ESP-IDF cho hiệu suất cao hơn so vớiArduino Hiệu suất cao hơn này có thể giúp tăng tốc độ xử lý, giảm thời gian phản hồi,và quan trọng nhất, giảm tiêu thụ điện năng.

Hình 1-10: ESP-IDF và Arduino

Trang 21

CHƯƠNG 2: HƯỚNG DẪN TIẾN HÀNH

2.1 Triển khai mô hình phát hiện khuân mặt trên nền tảng Edge Impulse

2.1.1 Tạo project

Tại giao diện chính của Edge Impulse, chúng ta sẽ lựa chọn “create newproject” tại vị trí số 1 và chọn các tuỳ chọn như trong hình 6 Khi đã đặt xong các tuỳchọn của bản thân thì ta sẽ nhấn vị trí số 2 để tạo project.

Hình 2-11: Giao diện tạo project

2.1.2 Giao diện chính

Hình 2-12: Giao diện chính của project Edge Impulse

Trang 22

Trong giao diện chính của project chúng ta cần phải chú ý một chỗ như trongảnh dưới đây:

Hình 2-13: Lựa chọn Labeling method

Labeling method (phương pháp gắn nhãn) là quy trình xác định nhãn cho cácmẫu dữ liệu trong một tập dữ liệu Quá trình này là quan trọng trong học máy và trí tuệnhân tạo để huấn luyện và kiểm định các mô hình Cụ thể, labeling method xác định rõràng cách gắn nhãn cho dữ liệu Các nhãn có thể là các danh mục, loại, hoặc các giá trịcó thể được dùng để phân loại hoặc dự đoán.

Việc lựa chọn Labeling method sẽ ảnh hưởng trực tiếp đến phương pháptraining model về sau Cụ thể là “One label per data item” sẽ chỉ yêu cầu ta đặt nhãncho dữ liệu, còn “Bounding boxes” sẽ yêu cầu phải vẽ 1 lớp mask cụ thể cho dữ liệuđể train Trong bài này chúng ta chọn phương án chỉ đặt nhãn cho dữ liệu.

Sau khi đã lựa chọn xong, chúng ta click đúp vào “add existing data” để tiếnhành thêm dữ liệu vào project.

Trang 23

Hình 2-14: Add existing data

2.1.3 Thêm data vào project

Hình 2-15: Data giao diện phần thêm

Trong giao diện thêm data, lựa chọn theo hướng sau “add data” >” Uploaddata” và ta sẽ đến giao diện sau

Ngày đăng: 24/06/2024, 09:01

Xem thêm:

w