Sơ lược về đề tài của nhóm thực hiện, nhóm sẽ tìm hiểu và thiết kế ra một hệ thống nhận diện có đeo khẩu trang và nhiệt độ cơ thể thấp để đóng mở cửa tự động.. Đầu tiên về khối nhận diện
Trang 1THÀNH PHỐ HỒ CHÍ MINH
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT MÁY TÍNH
Tp Hồ Chí Minh, Tháng 8/2022
SVTH: NGUYỄN ANH HUY GVHD: PGS.TS TRƯƠNG NGỌC SƠN
S K L 0 0 9 8 4 3
THIẾT KẾ HỆ THỐNG MỞ CỬA TỰ ĐỘNG
THÔNG QUA NHẬN DIỆN CÓ ĐEO KHẨU TRANG
VÀ NHIỆT ĐỘ CƠ THỂ THẤP
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ KỸ THUẬT MÁY TÍNH
THIẾT KẾ HỆ THỐNG MỞ CỬA TỰ ĐỘNG THÔNG QUA NHẬN DIỆN CÓ ĐEO KHẨU TRANG VÀ NHIỆT ĐỘ CƠ THỂ THẤP
MSSV: 18119077
TP HỒ CHÍ MINH – 08/2022
Trang 3TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ KỸ THUẬT MÁY TÍNH
THIẾT KẾ HỆ THỐNG MỞ CỬA TỰ ĐỘNG THÔNG QUA NHẬN DIỆN CÓ ĐEO KHẨU TRANG VÀ NHIỆT ĐỘ CƠ THỂ THẤP
MSSV: 18119077
GVHD: PGS.TS TRƯƠNG NGỌC SƠN
TP HỒ CHÍ MINH – 08/2022
Trang 4TP Hồ Chí Minh, ngày 31 tháng 07 năm 2022
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên: Nguyễn Anh Huy MSSV: 18119077
Ngành: Công nghệ kỹ thuật máy tính Lớp: 18119CL1A
Giảng viên hướng dẫn: PGS.TS Trương Ngọc Sơn
1 Tên đề tài: Thiết kế hệ thống mở cửa tự động thông qua nhận diện có đeo
khẩu trang và nhiệt độ cơ thể thấp
2 Các số liệu, tài liệu ban đầu: Các tài liệu về các dự án có liên quan, tài liệu
về ngôn ngữ lập trình sử dụng trong đề tài, tài liệu về các linh kiện sử dụng
trong đề tài
3 Nội dung thực hiện đề tài: Thiết kế chi tiết mô hình và thi công mô hình thử
nghiệm
4 Sản phẩm: Mô hình phần cứng hệ thống
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc ***
Trang 5TP Hồ Chí Minh, ngày 31 tháng 07 năm 2022
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên Sinh viên: Nguyễn Anh Huy MSSV: 18119077
Ngành: Công nghệ kỹ thuật máy tính
Tên đề tài: Thiết kế hệ thống mở cửa tự động thông qua nhận diện khẩu trang
và nhiệt độ cơ thể cao
Họ và tên Giáo viên hướng dẫn: PGS.TS Trương Ngọc Sơn
GIẢNG VIÊN HƯỚNG DẪN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc ***
Trang 6TP Hồ Chí Minh, ngày tháng năm 2022
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên Sinh viên: Nguyễn Anh Huy MSSV: 18119077
Ngành: Công nghệ kỹ thuật máy tính
Tên đề tài: Thiết kế hệ thống mở cửa tự động thông qua nhận diện có đeo khẩu
trang và nhiệt độ cơ thể thấp
Họ và tên Giáo viên phản biện:
GIẢNG VIÊN PHẢN BIỆN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc ***
Trang 7đã dành nhiều công sức để tìm hiểu và sửa chữa những kiến thức còn thiếu sót qua
đó giúp nhóm hoàn thành tốt luận văn
Do thời gian chuẩn bị và làm việc, cũng như với lượng kiến thức chuyên môn
và kinh nghiệm còn hạn chế nên có thể luận văn do nhóm thực hiện còn vướng mắc nhiều vấn đề Rất mong nhận được sự cảm thông và đóng góp của quí thầy cô
và các bạn
Cuối cùng, nhóm xin gửi lời cảm ơn đến gia đình và bạn bè, đã luôn tạo điều kiện, động lực, hỗ trợ, động viên nhóm để nhóm để có thể hoàn thành được luận văn tốt nghiệp một cách thuận lợi nhất Nhóm xin chân thành thành cám ơn !
Trang 8vi
LỜI CAM ĐOAN
Nhóm thực hiện luận văn gồm Nguyễn Anh Huy xin cam đoan rằng tất cả nội dung đều do nhóm tự tìm hiểu và được sự hướng dẫn của PGS.TS Trương Ngọc Sơn Các ứng dụng trong bài báo cáo nhóm có tham khảo trong một vài tài liệu nhưng không thực hiện hành vi sao chép các nguồn tài liệu này Thông tin về tài liệu tham khảo đã được trích dẫn ở cuối bài báo cáo
Đại diện nhóm thực hiện đồ án tốt nghiệp
(ký và ghi rõ họ tên)
Nguyễn Anh Huy - 18119077
Trang 9
vii
TÓM TẮT
Ngày nay, với sự tiến bộ và phát triển không ngừng của khoa học kỹ thuật, trí tuệ nhân tạo và xử lý ảnh là những đề tài đang được để mắt đến Từ xử lý một ảnh xám đơn giản cho đến ứng dụng để xử lý một luồng hình ảnh trong thị giác máy tính Cùng với đó là sự phát triển của lĩnh vực trí tuệ nhân tạo đã mở ra những cơ hội mới cho nhóm ngành công nghệ nghiên cứu về máy tính, cung cấp cho máy tính các khả năng như con người như khả năng học, suy luận, dự đoán, thị giác, ngôn ngữ Nhận thấy các chủ đề xoay quanh việc sử dụng AI ngày càng nhiều trong cuộc sống, nhóm quyết định thực hiện đề tài về chủ để xử lý ảnh
Sơ lược về đề tài của nhóm thực hiện, nhóm sẽ tìm hiểu và thiết kế ra một hệ thống nhận diện có đeo khẩu trang và nhiệt độ cơ thể thấp để đóng mở cửa tự động
Để có thể tối ưu tốc độ của hệ thống nhiều nhất có thể, nhóm chia hệ thống thành hai khối nhỏ để đảm nhận các công việc khác nhau Đầu tiên về khối nhận diện khuôn mặt có đeo khẩu trang, nhóm sử dụng Raspberry Pi 4 để thực hiện công việc này với các ưu điểm như gọn nhẹ, tiết kiệm điện nhưng vẫn có đủ sức mạnh để có thể xử lý được mô hình nhận diện khẩu trang Về mô hình nhận diện khẩu trang, nhóm sử dụng kiến trúc MobileNetV2 với các ưu điểm là ít thuật toán, phù hợp với các thiết bị nhúng như Raspberry Về khối đo nhiệt độ cơ thể và đóng mở cửa
tự động, nhóm sử dụng STM32 với các ưu điểm là rẻ, sức mạng vi xử lý vừa đủ dùng, đồng thời có thể lập trình trên ngôn ngữ C nên khá gần gũi với nhóm Bên khối này, để có thể đo được nhiệt độ người ra vào thì nhóm sử dụng cảm biến nhiệt
độ không tiếp xúc để đo Đối việc đóng mở cửa thì nhóm sử dụng servo để mô phỏng cho hoạt động đóng mở cửa của hệ thống
Về nội dung bài báo cáo, nhóm sẽ trình bày về lý thuyết cơ bản của các khối
sử dụng trong bài báo cáo và lưu đồ hoạt động của cả hệ thống cả phần cứng lẫn phần mềm Cuối cùng là đánh giá hoạt động của từng khối, đồng thời thời cũng đưa ra bảng kiểm nghiệm sai số đối với mô hình nhận diện khẩu trang trong các môi trường hoạt động khác nhau
Trang 10
viii
ABSTRACT
Nowaday, with improvement of technology, artificial intelligent image processing are some topics kept an eye on it From process a simple gray image to process a list of images in a second With development of AI has bring a lot of opportunity to major relatived to AI, create a computer which can behave like a human like thinking, deductive, prediction, vision and language Found that topic about AI play important role in life today, my group decide to make a project about image processing
About our group project, we will research and design a system which can detect face with mask and measure body temperature, who is wearing mask for automatic door To optimize the system, we decide to split the system to two small parts The first part is used to detect face mask by using Raspberry Pi 4 with some advantages like small, save energy with powerful chip for process mask image About the architecture we use to detect the face mask, we choose MobileNetV2 network with have advantage like less parameter, appropriate to use for embedded system like Raspberry Pi 4 About the other part, we use STM32 with have advantage such as cheap, chip have enough power to measure body temperature, and it use C to program which is easy program To measure body temperature, we use sensor to measure temperature And to simulate automatic door, we use servo
in this system for this job
About content in this report, we will introduce about basic theory used in this system and working flowchart about hardware and software using in this system Finally, we will validate working each part can work smoothly Beside, we will summary about error when detect face mask in different light conditions
Trang 11ix
MỤC LỤC
DANH MỤC HÌNH XI
DANH MỤC BẢNG XIII
CÁC TỪ VIẾT TẮT XIV
CHƯƠNG 1 GIỚI THIỆU 1
1.1 G IỚI THIỆU 1
1.2 MỤC TIÊU ĐỀ TÀI 2
1.3 GIỚI HẠN ĐỀ TÀI 3
1.4 PHƯƠNG PHÁP NGHIÊN CỨU 3
1.5 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 3
1.6 BỐ CỤC QUYỂN BÁO CÁO 3
CHƯƠNG 2 GIỚI THIỆU MẠNG MOBILE NET 5
2.1 G IỚI THIỆU K IẾN TRÚC M OBILE N ET V1 5
2.1.1 Lớp tích chập phân tách theo chiều sâu (DSC) 5
2.1.2 Kiến trúc mạng MobileNet V1 7
2.2 G IỚI THIỆU KIẾN TRÚC M OBILE N ET V2 8
2.2.1 Loại bỏ non-linear 8
2.2.2 Khối Inverted Residual với Linear Bottleneck 9
2.2.3 Kiến trúc mạng MobileNetV2 10
CHƯƠNG 3 THIẾT KẾ HỆ THỐNG MỞ CỬA TỰ ĐỘNG THÔNG QUA NHẬN DIỆN CÓ ĐEO KHẨU TRANG VÀ NHIỆT ĐỘ CƠ THỂ THẤP 12
3.1 T HIẾT KẾ PHẦN CỨNG 12
3.1.1 Sơ đồ khối hệ thống 12
3.1.2 Khối nhận tín hiệu 13
3.1.3 Khối đóng mở cửa 15
3.1.4 Khối giao tiếp giữa Raspberry Pi và STM32 16
3.1.5 Khối hiển thị 17
3.1.6 Khối nguồn 18
3.1.7 Sơ đồ nguyên lý 20
3.2 T HIẾT KẾ PHẦN MỀM 21
3.2.1 Huấn luyện xây dựng mô hình nhận dạng khẩu trang 21
Trang 12x
3.2.2 Sơ đồ khối hệ thống thực thi 27
3.2.3 Lưu đồ giải thuật 27
CHƯƠNG 4 KẾT QUẢ 31
4.1 ĐÁNH GIÁ MÔ HÌNH NHẬN DẠNG KHẨU TRANG 31
4.2 Đ ÁNH G IÁ M Ô H ÌNH PHẦN CỨNG 32
4.2.1 Mô hình sản phẩm 32
4.2.2 Kết quả thực nghiệm từ việc nhận dạng khuôn mặt 34
4.2.3 Đánh giá quá trình nhận dữ liệu 36
4.2.4 Đánh giá hoạt động tổng thể của hệ thống 37
4.2.5 Đánh giá hoạt động của hệ thống 40
CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 42
5.1 KẾT LUẬN 42
5.2 HƯỚNG PHÁT TRIỂN 43
TÀI LIỆU THAM KHẢO 44
Trang 13xi
DANH MỤC HÌNH
Hình 2.1 Mô tả phép chập Depthwise Convolution 5
Hình 2.2 Mô tả phép chập Pointwise Convolution 6
Hình 2.3 Bảng mô tả kiến trúc của mạng MobileNetV1 7
Hình 2.4 So sánh giữa phép chập thường và phép chập theo DSC 8
Hình 2.5 Biểu diễn của hàm phi tuyến tác động lên sự mất mát của dữ liệu 9
Hình 2.6 So sánh sự khác nhau giữa khối Residual Block và Inverted Residual Block 10
Hình 2.7 Bảng mô tả kiến trúc của mạng Mobile Net V2 và khối Inverted Residual Block 10
Hình 3.1 Sơ đồ khối hệ thống nhận diện và điều khiển đóng mở cửa 12
Hình 3.2 Hình minh họa camera sử dụng trong đề tài 13
Hình 3.3 Sơ đồ kết nối của cảm biến nhiệt độ MLX90614 14
Hình 3.4 Sơ đồ kết nối của servo SG90 15
Hình 3.5 Sơ đồ kết nối của cảm biến hồng ngoại 16
Hình 3.6 Sơ đồ kết nối của FT232RL 17
Hình 3.7 Màn hình Waveshare sử dụng trong hệ thống 18
Hình 3.8 Sơ đồ kết nối của mạch ổn áp LM2596S 19
Hình 3.9 Sơ đồ nguyên lý chi tiết của toàn bộ hệ thống 20
Hình 3.10 Sơ đồ khối quy trình xây dựng và ứng dụng mô hình 22
Hình 3.11 Dữ liệu ảnh đeo khẩu trang 23
Hình 3.12 Dữ liệu ảnh không đeo khẩu trang 23
Hình 3.13 Tăng cường tập ảnh dữ liệu train 24
Hình 3.14 Sơ đồ khối của hệ thống nhận diện khẩu trang và nhiệt độ để mở cửa 27
Hình 3.15 Lưu đồ hoạt động của Raspberry Pi 4 28
Hình 3.16 Lưu đồ hoạt động của STM32 29
Hình 4.1 Đồ thị giá trị loss và accuracy 31
Hình 4.2 Đánh giá model bằng classification_report 32
Hình 4.3 Mô hình toàn thể của hệ thống 33
Trang 14xii
Hình 4.4 Màn hình của hệ thống khi hoạt động 34
Hình 4.5 Kiểm tra nhận diện không đeo khẩu trang trên Raspberry Pi 4 35
Hình 4.6 Kiểm tra nhận diện có đeo khẩu trang trên Raspberry Pi 4 35
Hình 4.7 Kiểm tra truyền tham số khi nhận diện không đeo khẩu trang 36
Hình 4.8 Kiểm tra truyền tham số khi nhận diện có đeo khẩu trang 37
Hình 4.9 Trường hợp nhiệt độ cao và có đeo khẩu trang 38
Hình 4.10 Trường hợp nhiệt độ thấp và không đeo khẩu trang 38
Hình 4.11 Trường hợp nhiệt độ cơ thể thấp và có đeo khẩu trang 39
Hình 4.12 Trường hợp có người đã đi qua cửa 39
Hình 4.13 Bảng đánh giá khả năng nhận diện trong các điều kiện khác nhau 40
Trang 15xiii
DANH MỤC BẢNG
Bảng 1 Thông số công suất của từng bộ phận 20
Trang 16xiv
CÁC TỪ VIẾT TẮT
DSC Depthwise Separable Convolution
RWFD Real-World Face
Trang 17Song song với đó là sự phổ biến và phát triển vượt bậc của dòng thiết bị Raspberry Pi tuy nhỏ gọn nhưng vẫn mang sức mạnh xử lý mạnh mẽ và tiết kiệm năng lượng Kết hợp với khả năng chạy được hệ điều hành mở và giá thành thấp, phù hợp với các ứng dụng có chi phí không cao nhưng vẫn cần sức mạnh đủ lớn
dữ liệu đeo khẩu trang nhân tạo, cụ thể là lấy sử dụng một tấm hình bình thường
và chỉnh thêm khẩu trang vào cho khuôn mặt trong hình Cuối cùng là trong mô
Trang 182
hình này sử dụng thư viện dlib để xác định các mốc trên khuôn mặt, từ đó xác định
vị trí của đôi mắt, mũi, miệng Sử dụng các điểm ở vùng miệng và tính toán độ sáng trung bình ở vùng miệng để so sánh với một ngưỡng đặt trước để kiểm tra xem có đeo khẩu trang hay không, phương pháp này tuy nhanh nhưng độ chính xác không cao Vì vậy ở đây nhóm quyết định thực hiện đề tài sẽ sử dụng mạng MobileNetV2, một mạng nhẹ, tốc độ tính toán nhanh, số lượng tham số ít và dễ dàng triển khai trên các hệ thống nhúng gọn nhẹ có đủ sức mạnh để xử lý hình ảnh
để phát hiện khuôn mặt có đeo khẩu trang theo thời gian thực Nhận thấy các điều trên, nhóm đã chọn đề tài phát hiện người đeo khẩu trang bằng mạng MobilenetV2 kết hợp với việc đo nhiệt độ của người sử dụng để cho phép người đó có thể đi vào bên trong khu vực yêu càu đảm bảo an toàn dịch bệnh trên máy tính nhúng Raspberry Pi Đề tài phát hiện người đeo khẩu trang sẽ có input là hình ảnh được lấy trực tiếp từ webcam hoặc là hình ảnh cần phát hiện/nhận diện và output là ảnh
sẽ đóng khung khuôn mặt người đeo khẩu trang bằng ô vuông màu xanh lá, ảnh đóng khung mặt người không đeo khẩu trang bằng ô vuông màu đỏ Đồng thời để tài sẽ tiến hành đo đạc xem người đó có sốt không, một trong những triệu chứng sớm của bệnh Covid-19 Sau khi thỏa mãn các yêu cầu thì sẽ mở cổng và cho phép người đó đi vào trong
1.2 MỤC TIÊU ĐỀ TÀI
Mục tiêu của nhóm là nghiên cứu về một mạng AI có thể nhận dạng ảnh người
có hay không đeo khẩu trang, đồng thời cũng mong muốn có thể hoạt động tốt trên một hệ thống nhỏ gọn Nên ở đây nhóm nghiên cứu về mạng MobileNetV2 để có thể ứng dụng trên các thiết bị nhúng nhỏ gọn như Raspberry Pi 4 Từ những kiến thức đã nghiên cứu được, nhóm đã thiết kế và tích hợp mô hình vào Raspberry Pi
4 để cho ra được một hệ thống nhận diện khẩu trang tự động bằng mạng MobileNetV2 Sau cùng là nhúng hệ thống nhận diện khẩu trang vào một hệ thống đóng mở cửa tự động có đo nhiệt độ cơ thể để cho ra được hệ thống của nhóm
Trang 193
1.3 GIỚI HẠN ĐỀ TÀI
Đề tài sử dụng Raspberry Pi 4 để nhận diện nên việc nhận diện và trả tham số
về cho phía STM32 để xử lý bị chậm Ngoài ra đề tài chỉ có thể nhận diện tốt nhất vào lúc trời sáng và khoảng cách gần, và tệ dần khi gặp trời tối hoặc khoảng cách
xa
1.4 PHƯƠNG PHÁP NGHIÊN CỨU
Nghiên cứu, tìm hiểu về hệ thống nhận diện khuôn mặt có hay không đeo khẩu trang
Nghiên cứu, tìm hiểu về hệ thống thu thập nhiệt độ, đóng mở cửa
Phân tích giải thuật để thực thi và giao tiếp giữa hai hệ thống với nhau
Thiết kế hệ thống dựa trên giải thuật đã phân tích
Phân tích, đánh giá hiệu năng của hệ thống
1.5 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
Đối tượng nghiên cứu: các thuật toán trích xuất đặt trung của khuôn mặt có và không đeo khẩu trang, các thuật toán nhận khuôn mặt
Phạm vi: Nghiên cứu các mô hình có sẵn như MobileNetV2, dataset sử dụng cho việc huấn luyện mô hình cũng được lấy từ nguồn có sẵn
Nhóm sẽ tiếp cận bài toán bằng cách sử dụng các các thư viện máy học như TensorFlow, Keras, OpenCV và Scikit-Learn Phương pháp sẽ là phát hiện khuôn mặt được đọc từ frame của camera realtime sau đó xác định xem khuôn mặt đó có đeo khẩu trang hay không bằng mạng MobilenetV2
1.6 BỐ CỤC QUYỂN BÁO CÁO
Nội dung chính của đề tài được trình bày với 5 chương:
• Chương 1 GIỚI THIỆU: giới thiệu chung về đề tài, mục tiêu nghiên cứu, giới hạn đề tài, phương pháp nghiên cứu, đối tượng và phạm vi nghiên cứu
• Chương 2 GIỚI THIỆU VỀ MOBILENET: giới thiệu về các lý thuyết cơ bản của MobileNet
Trang 204
• Chương 3 THIẾT KẾ HỆ THỐNG: đưa ra mô hình chung của toàn hệ thống, các khối của hệ thống, thiết kế từng khối và các thiết bị được sử dụng trong các khối
• Chương 4 KẾT QUẢ: trình bày kết quả thi công của mô hình hệ thống
• Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN: rút ra các kết luận, điểm mạnh điểm yếu và hướng phát triển của mô hình
Trang 21
5
CHƯƠNG 2
GIỚI THIỆU MẠNG MOBILE NET
2.1 GIỚI THIỆU KIẾN TRÚC MOBILENET V1
Kiến trúc MobileNet V1 được giới thiệu vào năm 2017, điểm đáng chú ý của kiến trúc này là khả năng tối ưu khả năng khả năng accuracy có tỉ lệ rất cao, song song đó vẫn có thể hoạt động tốt trên hệ thống có nguồn tài nguyên hạn chế như các thiết bị di động hay các hệ thống nhúng Hai mục đích mà kiến trúc này hướng tới là: kích thước model nhỏ hơn (ít parameter hơn) và ít phức tạp hơn (ít phép cộng và phép nhân hơn) MobileNet V1 dựa trên một kiến trúc được sắp xếp hợp
lí sử dụng các lớp tích chập có thể phân tách theo chiều sâu (Depthwise Separable Convolution: DSC) để xây dựng mạng nơ ron có số lượng trọng số và độ phức tạp
ít hơn
2.1.1 Lớp tích chập phân tách theo chiều sâu (DSC)
Ý tưởng của DSC là tách phép tích chập làm 2 phần: tích chập theo chiều sâu (Depthwise Convolution: DC) và tích chập theo điểm (Pointwise Convulution: PC)
Hình 2.1 Mô tả phép chập Depthwise Convolution [1]
Depthwise Convulution là một phép tích chập bằng cách cho một kernel duy nhất chập với từng kênh của đầu vào, từ đó giúp giữ được sự đặc trưng của từng kênh Điều này ngược lại với phép tích chập thường thấy là số lượng kênh của
Trang 226
kernel bằng với số lượng kênh của đầu vào, việc thực hiện chập theo phương pháp này làm trộn lẫn các kênh và tạo ra được ảnh đầu ra Ngược lại, sự biến đổi theo chiều sâu giữ cho mỗi kênh riêng biệt Các bước thực hiện:
1) Tách ảnh đầu vào và bộ lọc thành M kênh
2) Tích chập M kênh đầu vào với M bộ lọc tương ứng
3) Xếp chồng M fearture map vào lại với nhau
Như vậy, độ phức tạp của DC là:
Hình 2.2 Mô tả phép chập Pointwise Convolution [1]
Như vậy, độ phức tạp của PC là:
Trang 232.1.2 Kiến trúc mạng MobileNet V1
Hình 2.3 Bảng mô tả kiến trúc của mạng MobileNetV1 [1]
Như chúng ta thấy, kiến trúc MobileNet có 30 lớp, ảnh ngõ vào là ảnh màu 224x224x3, phần lớn các lớp là DSC để giảm số lượng trọng số Ngõ ra là 1 trong
1000 lớp đã được đưa ra phân loại từ lớp softmax Sau các lớp chập Depthwise và
Pointwise mạng sử dụng hàm kích hoạt ReLU và Batch Normalization (BN) [1]
Trang 248
Hình 2.4 So sánh giữa phép chập thường và phép chập theo DSC [1]
Theo như hình đã so sánh thì khác phép chập thông thường, phép chập theo DSC sẽ có phép chập ở ngõ vào khác nhau và có thêm một vài lớp trung gian khác nữa
2.2 GIỚI THIỆU KIẾN TRÚC MOBILENET V2
Mạng MobileNetV2 được giới thiệu vào đầu năm 2018, là mạng được cải tiến
từ MobileNet V1, mạng đã cải tiến về mặt tốc độ và accuracy tốt hơn, nhưng vẫn giữ được sự đơn giản, không yêu cầu bất kì toán tử phức tạp nào để hạn chế sử dụng tài nguyên phần cứng Để giải quyết vấn đề đó, ở mạng MobileNetV2 đã được đề xuất một lớp mới là khối Inverted Residual với Linear Bottleneck
2.2.1 Loại bỏ non-linear
Xem xét một mạng nơ ron học sâu bao gồm n lớp (Li), mỗi lớp có một tensor kích hoạt có kích thước Hi * Wi * Di Những tensor này chúng ta sẽ xem như là nơi chứa Hi * Wi pixel với Di chiều, Với tập hình ảnh thực ở ngõ vào sẽ có tương ứng tập các lớp kích hoạt ở mỗi lớp tạo thành “maniford interest”, có thể được hiểu là một ma trận nhiều chiều phức tạp Đã có giả định rằng các “maniford interest” trong mạng nơ ron có thể được đưa vào một không gian phụ kích thước nhỏ hơn nếu xem xét tất cả các pixel của 1 kênh riêng trong một lớp tích chập, điều này đã được áp dụng thành công ở mạng MobileNet Theo cách đó, bằng cách tiếp cận để
hệ số chiều rộng để giảm kích thước tensor kích hoạt cho đến khi maniford interest
Trang 259
trải dài hết toàn bộ Tuy nhiên cách đó đã thất bại vì ở mỗi lớp trong mạng nơ ron học sâu có các phép biến đổi phi tuyến tính, ví dụ như ReLU, hàm ReLU được áp dụng cho một đường thẳng trong không gian 1 chiều tạo ra một tia, trong không gian Rn, nó tạo ra một đường cong tuyến tính với n điểm Có thể dễ dàng hiểu rằng nếu kết quả của lớp biến đối ReLU có ngõ ra khác không, các giá trị được ánh xạ
ở trong ngõ ra đã thu được với phép biến đổi tuyến tính của ngõ vào Điều đó chỉ
ra rằng một phần của không gian ngõ vào tương ứng với tất cả chiều của ngõ ra
được giới hạn bởi biến đổi tuyến tính [2]
Hình 2.5 Biểu diễn của hàm phi tuyến tác động lên sự mất mát của dữ liệu
[2]
Điều này cho thấy khi maniford ngõ vào có kích thước thấp thì ReLU vẫn có khả năng giữ nguyên thông tin nhưng ngược lại khi maniford có kích thước lớn thì các biến đổi phi tuyến sẽ làm mất mát thông tin Do đó, bằng sử dụng các lớp Linear Bottleneck vào các khối tích chập, bằng chứng trên thực nghiệm cho rằng việc sử dụng các lớp tuyến tính rất quan trọng vì nó ngăn các lớp phi tuyến tính
làm mất mát dữ liệu
2.2.2 Khối Inverted Residual với Linear Bottleneck
Với kiến trúc mạng MobileNetV2 sử dụng Inverted Residual vì cấu trúc này tiết kiệm bộ nhớ hơn Điểm khác biệt có thể dễ dàng nhận thấy là Residual này có
số lượng kênh ở input và output của một block sẽ có số lượng kênh nhiều hơn khi
so với lớp trung gian, điều này trái ngược hoàn toàn với khối Residual truyền thống Đối với layer trung gian nguyên nhân do có nhiều lớp hơn là để thực hiện chức năng biến đổi phi tuyến để tạo ra nhiều phép biến đổi hơn Tại đây, các layer trung gian này sử dụng phương pháp chập tách biệt theo chiều sâu để (DSC) mục đích để giảm số lượng tham số sử dụng trong kiến trúc này Các layer input và input không cần thực hiện việc biến đổi phi tuyến, vì sẽ có một kết nối tắt giữa các
Trang 2610
bottleneck input và output mà không cần thực hiện trên các layer trung gian Các kết nối sẽ được điều chỉnh sao cho số lượng kênh ở input và output bị thu hẹp lại, chính vì vậy mới được gọi là bottleneck layers [2]
Hình 2.6 So sánh sự khác nhau giữa khối Residual Block và Inverted
Residual Block [2]
Đối với mạng MobileNetV2 thì sẽ sử dụng theo khối bên phải, với đặc điểm khá dễ để nhận ra là kích thước ngõ vào và ngõ ra nhỏ, còn kích thước lớp trung gian sẽ to ra
2.2.3 Kiến trúc mạng MobileNetV2
Hình 2.7 Bảng mô tả kiến trúc của mạng Mobile Net V2 và khối
Inverted Residual Block [2]
Theo như bảng ở trên thì MobileNetV2 là một kiến trúc mạng nơ ron tích chập dựa trên cấu trúc inverted residual, là nơi các kết nối residual nằm giữa các lớp bottleneck Lớp trung gian sử dụng tích chập theo chiều sâu để lọc các feature map không tuyến tính Kiến trúc mạng MobileNetV2 bao gồm 1 lớp chập truyền thống với 32 bộ lọc, tiếp theo là 19 lớp residual bottleneck
Trang 2711
Cấu trúc một khối bottleneck residual gồm ngõ vào có kích thước h * w, độ sâu d’, hệ số mở rộng t và kích thước kernel k và độ sâu d’’ ở ngõ ra Tổng độ phức tạp của một khối bottleneck residual là h × w × d’ × t × (d’+ k2 + d’’) So sánh với lớp DSC ở mạng MobileNet thì khối bottleneck nhiều hơn một lớp tích chập theo điểm vì bản chất của mạng cần thu hẹp kích thước ngõ vào và ngõ ra
Ở bên trong các bottleneck, ta sử dụng ReLU6 là một hàm phi tuyến vì tính
ưu việt của nó khi tính toán trên số có precision thấp Ở lớp tích chập theo chiều sâu, ta sử dụng bộ lọc có kích thước 3x3 đồng thời vẫn sử dụng droppout và batch normalization Để tạo bottleneck sử dụng tích chập với kernnel 1x1, số kênh của output được mở rộng để tạo thành layer trung gian, sau đó tích chập theo chiều sâu với kernel 3x3 để rút trích đặc trưng, kích thước của ngõ ra có chiều sâu bằng với lớp chập cuối, và cuối là tích chập với kernel 1x1 để giảm số kênh xuống tạo thành output cho khối residual
Ngoại trừ lớp đầu tiên, kiến trúc mạng sử dụng hằng số mở rộng cho các lớp
để ở rộng thành các layer trung gian Trong quá trình nghiên cứu, nhận thấy rằng
hệ số mở rộng khoảng từ 5 đến 10 có hiệu suất gần giống nhau, tuy thuộc vào kích thước mạng, với mạng nhỏ thích hợp với hệ số mở rộng nhỏ và mạng lớn thích hợp với hệ số mở rộng lớn
Trang 2812
CHƯƠNG 3
THIẾT KẾ HỆ THỐNG MỞ CỬA TỰ ĐỘNG THÔNG QUA NHẬN DIỆN CÓ ĐEO KHẨU TRANG VÀ NHIỆT ĐỘ CƠ THỂ THẤP
3.1 THIẾT KẾ PHẦN CỨNG
3.1.1 Sơ đồ khối hệ thống
Hệ thống nhận diện khẩu trang và nhiệt độ này phục vụ tại những vị trí có nhiều người qua lại thường xuyên, do đó hệ thống cần đạt được một số yêu cầu kỹ thuật Hệ thống cần có điện năng tiêu thụ nhỏ và có thể hoạt động liên tục trong khoảng thời gian dài Sơ đồ khối của hệ thống được mô tả trong hình dưới đây:
Hình 3.1 Sơ đồ khối hệ thống nhận diện và điều khiển đóng mở cửa
Hệ thống sử dụng hệ thống nhúng Raspberry Pi 4 làm bộ xử lý trung tâm, và
vi điều khiển STM32 để điều khiển và xử lý các cảm biến Bộ xử lý trung tâm phải đảm bảo có khả năng nhận dạng khuôn có hay không đeo khẩu trang thông qua các video, sau đó gửi tín hiệu đến STM32 qua chuẩn UART Đối với vi điều khiển STM32, yêu cầu phải nhận được tín hiệu được truyền từ Raspberry Pi 4, từ tín hiệu
đó kết hợp với giá trị trả về từ cảm biến nhiệt độ để quyết định sẽ đóng hay mở cửa Với việc nhận dạng khuôn mặt cần sử dụng các hệ thống có sức mạnh lớn nên nhóm quyết định sử dụng Raspberry Pi 4 để làm bộ xử lý chính Kèm theo đó, nhóm tách riêng ra sử dụng thêm vi điều khiển STM32 để điều khiển các cảm biến
Trang 2913
và module nhằm đảm bảo tính đảm bảo về nguồn Đối với hệ thống chính sử dụng
hệ thống sử dụng Raspberry Pi 4 với bộ xử lý ARM 64 bit Cortex-A72, 4 nhân với tốc độ 1.5GHz cho phép xử lý với tốc độ cao Hệ thống sử dụng bộ nhớ 4GB cho phép chạy các ứng dụng xứ lý và nhận dạng giọng nói nhanh và hiệu quả Board
có tích hợp mạch kết nối mạng không dây (Wifi) và bluetooth 5.0 theo tiêu chuẩn 802.11b/g/n/ac dual band, 2.4GHz và 5GHz wifi Bộ xử lý ARM Cortex-A72 có tích hợp bộ xử lý đồ họa (GPU) đồng thời ngõ ra có bốn cổng kết nối USB để giao tiếp với camera bên ngoài và truyền tham số qua cho STM32 Còn với hệ thống STM32, em sử dụng vi điều khiển STM32F051R8T6 với bộ xử lý chính là ARM Cortex M0 với tần số tối đa là 48MHz, bộ nhớ ROM là 64kB và bộ nhớ RAM là 8kB, số lượng I/O là 55 pins
3.1.2 Khối nhận tín hiệu
3.1.2.1 Camera
Ở đây, nhóm sử dụng camera có cổng USB để truyền tín hiệu hình ảnh về cho Raspberry xử lý
Hình 3.2 Hình minh họa camera sử dụng trong đề tài
Lí do nhóm chọn camera này do thứ nhất là camera đã được hoàn thiện phần
vỏ nên việc hư hỏng trong khi sử dụng khá thấp Hai là thiết bị giao tiếp qua cổng USB nên việc truyền nhận dữ liệu diễn ra khá dễ dàng Ba là camera thu hình ảnh
Trang 30GY-Hình 3.3 Sơ đồ kết nối của cảm biến nhiệt độ MLX90614
Mô hình kết nối giữa GY-MLX90614-DCI và STM32 sẽ kết nối như sau:
• Chân SCL của cảm biến kết nối với PB6 của STM32
• Chân SDA của cảm biến kết nối với PB7 của STM32
• Chân VIN sẽ được cấp nguồn bởi chân 5V của STM32 để cảm biến hoạt đông
• Chân GND sẽ kết nối với GND của STM32
Trang 3115
3.1.3 Khối đóng mở cửa
3.1.3.1 Điều khiển cửa
Ở đây để mô phỏng được quá trình đóng mở cửa tự động thì nhóm sử dụng servo để mô phỏng hoạt động đóng mở cửa, cụ thể là servo SG90 Servo sử dụng nguồn cấp là 5V từ STM32, và nhận tín hiệu xung PWM từ STM32 để điều khiển xoay cửa
Hình 3.4 Sơ đồ kết nối của servo SG90
Dưới đây là kết nối giữa STM32 và Servo:
• Chân VDD sẽ được cấp nguồn bởi chân 5V của STM32
• Chân GND kết nối với chân GND của STM32
• Chân Signal sẽ nhận tín hiệu PWM của STM32 do chân PA5 cung cấp
3.1.3.2 Nhận diện người ra vào
Ở đây để nhận biết khi nào người ra vào chưa, nhóm sẽ sử dụng thêm cảm biến khoảng cách hồng ngoại để xét thêm điều kiện để đóng mở cửa