Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 78 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
78
Dung lượng
3,23 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH CƠNG TRÌNH NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN THIẾT KẾ VÀ THI CƠNG MƠ HÌNH CAMERA ĐO THÂN NHIỆT VÀ NHẮC NHỞ ĐEO KHẨU TRANG MÃ SỐ: SV2022 - 21 CHỦ NHIỆM ĐỀ TÀI: THÁI NGUYỄN KỲ DUYÊN SKC007675 Tp Hồ Chí Minh, tháng 6/2022 TIEU LUAN MOI download : skknchat123@gmail.com BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN THIẾT KẾ VÀ THI CƠNG MƠ HÌNH CAMERA ĐO THÂN NHIỆT VÀ NHẮC NHỞ ĐEO KHẨU TRANG SV2022-21 Thuộc nhóm ngành khoa học: Chuyên ngành Kỹ thuật Y sinh SV thực hiện: Thái Nguyễn Kỳ Duyên Dân tộc: Kinh Lớp, khoa: 181290A, Điện – Điện tử Ngành học: Kỹ thuật y sinh SV thực hiện: Dương Hoàng Huy Dân tộc: Kinh Lớp, khoa: 181290A, Điện – Điện tử Ngành học: Kỹ thuật y sinh Người hướng dẫn: ThS Ngơ Bá Việt TP Hồ Chí Minh, 06/2022 MỤC LỤC MỤC LỤC LIỆT KÊ HÌNH ẢNH LIỆT KÊ BẢNG THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI MỞ ĐẦU Tổng quan tình hình nghiên cứu thuộc lĩnh vực đề tài Lý chọn đề tài Mục tiêu đề tài Phương pháp nghiên cứu Đối tượng phạm vi nghiên cứu Chương CƠ SỞ LÝ THUYẾT 1.1 TỔNG QUAN VỀ NHIỆT ĐỘ CƠ THỂ CON NGƯỜI 1.2 CÁC PHƯƠNG PHÁP ĐO NHIỆT ĐỘ 1.2.1 Phương pháp đo nhiệt độ tiếp xúc 1.2.2 Phương pháp đo nhiệt độ không tiếp xúc 1.3 PHƯƠNG PHÁP NHẬN DẠNG KHUÔN MẶT 1.4 DEEP LEARNING 1.5 MÔ HÌNH CNN CONVOLUTIONAL NEURAL NETWORK 1.5.1 Lớp tích chập 1.5.2 Hàm kích hoạt 1.5.3 Lớp tổng hợp 1.5.4 Lớp kết nối đầy đủ 1.6 THƯ VIỆN OPENCV 1.7 THƯ VIỆN TENSORFLOW 1.8 THƯ VIỆN KERAS 1.9 CHUẨN GIAO TIẾP I2C 1.10 NGƠN NGỮ LẬP TRÌNH PYTHON 1.11 GIỚI THIỆU PHẦN CỨNG 1.11.1.Vi điều khiển Raspberry Pi Model B i 1.11.2 Cảm biến ảnh nhiệt AMG8833 18 1.11.3 Webcam usb 720p 19 1.11.4 Loa phát di động 19 Chương PHƯƠNG PHÁP THỰC HIỆN 20 2.1 TÍNH TỐN VÀ THIẾT KẾ MƠ HÌNH 20 2.1.1 Thiết kế sơ đồ khối mơ hình 20 2.1.2 Tính tốn thiết kế mạch 20 2.1.3 Sơ đồ nguyên lý toàn mạch 23 2.1.4 Thiết kế vỏ hộp mơ hình 24 2.2 THIẾT KẾ MƠ HÌNH MẠNG CNN 25 2.3 PHƯƠNG PHÁP ĐO NHIỆT ĐỘ 26 2.4 PHƯƠNG PHÁP ĐÁNH GIÁ MƠ HÌNH HUẤN LUYỆN DỮ LIỆU 28 2.5 LẬP TRÌNH HỆ THỐNG 29 2.5.1 Quy trình thu thập liệu tập mẫu huấn luyện mơ hình 29 2.5.2 Lưu đồ quy trình huấn luyện tập liệu 30 2.5.3 Lưu đồ chương trình 31 Chương KẾT QUẢ NGHIÊN CỨU 34 3.1 3.2 KẾT QUẢ THI CƠNG MƠ HÌNH 34 3.1.1 Danh sách linh kiện 34 3.1.2 Lắp ráp kiểm tra 34 3.1.3 Kết mơ hình hồn thiện 36 KẾT QUẢ NHẬN DẠNG NGƯỜI KHÔNG ĐEO KHẨU TRANG 37 3.2.1 Tập liệu huấn luyện 37 3.2.2 Kết trình huấn luyện tập liệu 38 3.2.3 Kết nhận dạng người không đeo trang 39 3.3 KẾT QUẢ PHẦN ĐO NHIỆT ĐỘ 52 3.4 ĐÁNH GIÁ THỜI GIAN ĐÁP ỨNG CỦA MÔ HÌNH 54 KẾT LUẬN VÀ KIẾN NGHỊ 55 KẾT LUẬN 55 KIẾN NGHỊ 55 TÀI LIỆU THAM KHẢO 56 ii PHỤ LỤC BỔ SUNG CHƯƠNG TRÌNH CHO RASPBERRY 59 iii LIỆT KÊ HÌNH ẢNH HÌNH TRANG Hình 1.1 Bốn bước xử lý hệ thống nhận dạng mặt người Hình 1.2 Kiến trúc mạng tích chập Hình 1.3 Cửa sổ trượt ma trận 10 Hình 1.4 Kích thước ảnh đầu thực bước nhảy .10 Hình 1.5 Ma trận thêm viền bên 11 Hình 1.6 Lớp max pooling cho vùng ảnh 12 Hình 1.7 Mơ lớp kết nối đầy đủ 13 Hình 1.9 Cấu trúc OpenCV 14 Hình 1.10 Mơ hình giao thức I2C 15 Hình 1.11 Hình ảnh thực tế Raspberry Pi 17 Hình 1.12 Cảm biến nhiệt AMG8833 8x8 Non-Contact IR Thermal Camera Sensor 18 Hình 1.13 Webcam 720p 19 Hình 1.14 Loa phát jack cắm 3.5mm kết nối cổng USB 19 Hình 2.1 Sơ đồ khối mơ hình 20 Hình 2.2 Nguồn Adapter 5V/3A 23 Hình 2.3 Sơ đồ ngun lý mơ hình 23 Hình 2.4 Bản vẽ thiết kế vỏ hộp mơ hình 24 Hình 2.5 Các khối tích chập mạng MobileNetV2 26 Hình 2.6 Bộ mơ hình mạng CNN xây dựng kiến trúc MobileNetV2 .26 Hình 2.7 Phương pháp đo nhiệt độ không tiếp xúc 27 Hình 2.8 Lưu đồ chương trình huấn luyện liệu 30 Hình 2.9 Lưu đồ chương trình 31 Hình 2.10 Lưu đồ quy trình đo nhiệt độ 32 Hình 2.11 Lưu đồ quy trình phát khơng đeo trang 33 Hình 3.1 Vỏ hộp mơ hình 34 Hình 3.2 Lắp ráp quạt tản nhiệt 35 Hình 3.3 Kết nối camera nhiệt với vi điều khiển 35 Hình 3.4 Lắp ráp vỏ hộp kết nối webcam với vi điều khiển 35 Hình 3.5 Kết nối loa với vi điều khiển 36 iv Hình 3.6 Ghim adapter vào vi điều khiển 36 Hình 3.7 Sản phẩm hồn thiện mơ hình 36 Hình 3.8 Kết thi cơng bên mơ hình 37 Hình 3.9 Kết thi cơng mặt trước mơ hình 37 Hình 3.10 Ảnh đeo trang tập liệu 38 Hình 3.11 Ảnh không đeo trang tập liệu 38 Hình 3.12 Đồ thị giá trị accuracy loss 39 Hình 3.13 Phát khn mặt khơng đeo trang 40 Hình 3.14 Phát khn mặt khơng đeo trang góc nghiêng bên trái 40 Hình 3.15 Phát khn mặt khơng đeo trang góc nghiêng bên phải .41 Hình 3.16 Phát khn mặt khơng đeo trang góc diện .41 Hình 3.17 Phát khn mặt khơng đeo trang góc nghiêng bên trái 42 Hình 3.18 Phát khn mặt khơng đeo trang góc nghiêng bên phải 42 Hình 3.19 Phát có khuôn mặt không đeo trang .43 Hình 3.20 Cả khn mặt đeo trang 43 Hình 3.21 Nhiệt độ đo mơ hình 52 Hình 3.22 Nhiệt độ đo súng đo nhiệt OMRON 53 v LIỆT KÊ BẢNG BẢNG TRANG Bảng 1.1 Thân nhiệt bình thường vị trí đo khác theo độ tuổi Bảng 1.2 Một số hàm kích hoạt thơng dụng 11 Bảng 2.1 Thông số kỹ thuật webcam usb 720p 21 Bảng 2.2 Thông số kỹ thuật cảm biến nhiệt AMG8833 21 Bảng 2.3 Thống kê dòng tải sử dụng cho mạch 23 Bảng 2.4 Thống kê kết nhiệt độ thể mà sản phẩm đo 27 Bảng 2.5 Ma trận nhầm lẫn 28 Bảng 3.1 Danh sách linh kiện 34 Bảng 3.2 Mô tả tập liệu 37 Bảng 3.3 Đánh giá mơ hình 39 Bảng 3.4 Kết nhận diện gương mặt đeo trang khoảng cách 1m .44 Bảng 3.5 Kết nhận diện gương mặt không đeo trang khoảng cách 1m 45 Bảng 3.6 Kết nhận diện gương mặt đeo trang khoảng cách 1.2m 45 Bảng 3.7 Kết nhận diện gương mặt không đeo trang khoảng cách 1.2m 46 Bảng 3.8 Kết nhận diện gương mặt đeo trang khoảng cách 1.5m 47 Bảng 3.9 Kết nhận diện gương mặt không đeo trang khoảng cách 1.5m 48 Bảng 3.10 Kết nhận diện gương mặt đeo trang khoảng cách 1.8m 48 Bảng 3.11 Kết nhận diện gương mặt không đeo trang khoảng cách 1.8m 49 Bảng 3.12 Kết nhận diện gương mặt đeo trang khoảng cách 2m 50 Bảng 3.13 Kết nhận diện gương mặt không đeo trang khoảng cách 2m 51 Bảng 3.14 Kết đo nhiệt độ mơ hình 52 Bảng 3.15 Kết đo nhiệt độ nhiều khoảng cách 53 Bảng 3.16 Kết thời gian xử lý mơ hình 54 vi BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI Thông tin chung: - Tên đề tài: Thiết kế thi cơng mơ hình camera đo thân nhiệt, nhắc nhở đeo trang - Chủ nhiệm đề tài: Thái Nguyễn Kỳ Duyên - Lớp: 181290A Mã số SV: 18129010 Khoa: Điện – Điện tử - Thành viên đề tài: Stt Họ tên Dương Hồng Huy - Người hướng dẫn: ThS Ngơ Bá Việt Mục tiêu đề tài: Thiết kế thi công hệ thống camera đo thân nhiệt, giám sát việc đeo trang Cụ thể dùng phương pháp machine learning để nhận diện gương mặt có đeo trang hay không đo nhiệt độ thể không tiếp xúc cảm biến ảnh nhiệt hồng ngoại Sau phát cảnh báo phát cá nhân khơng đeo trang có thân nhiệt cao Tính sáng tạo: Thiết kế thi công hệ thống giám sát việc đeo trang thông qua khuôn mặt dùng mạng nơ-ron tích chập CNN Ngồi hệ thống cịn thực việc đo thân nhiệt thơng qua cảm biến ảnh nhiệt Hệ thống chạy thành cơng độc lập với máy tính thơng qua máy tính nhúng Raspberry Pi model B Với kích thước máy tính nhúng nhỏ, gọn đáp đứng yêu cầu dễ dàng di chuyển lắp đặt hệ thống Kết nghiên cứu: Xây dựng thành công hệ thống giám sát cảnh báo khuôn mặt không đeo trang tốt phạm vi 1m với điều kiện đầy đủ ánh sáng thơng qua mạng neuron tích chập, đồng thời đo thân nhiệt với sai số trung bình khoảng 0.09°C so với thiết bị chuẩn vii Đóng góp mặt giáo dục đào tạo, kinh tế - xã hội, an ninh, quốc phòng khả áp dụng đề tài: Đóng góp mặt kinh tế - xã hội: Đề tài sử dụng quan, bệnh viện hay trường học để giám sát người không tuân thủ quy tắc an tồn để phịng chống dịch, hạn chế việc lây lan bệnh lây truyền qua đường hô hấp Công bố khoa học SV từ kết nghiên cứu đề tài (ghi rõ tên tạp chí có) nhận xét, đánh giá sở áp dụng kết nghiên cứu (nếu có): Khơng có Ngày tháng năm SV chịu trách nhiệm thực đề tài (kí, họ tên) Nhận xét người hướng dẫn đóng góp khoa học SV thực đề tài (phần người hướng dẫn ghi): Ngày tháng năm Người hướng dẫn (kí, họ tên) viii CHƯƠNG KẾT QUẢ NGHIÊN CỨU 3.3 KẾT QUẢ PHẦN ĐO NHIỆT ĐỘ Sau chạy mơ hình, nhóm tiến hành 10 lần thí nghiệm đo nhiệt độ người với khoảng cách 50cm để so sánh sai số hai thiết bị Kết sau 10 lần đo nhiệt độ mơ hình máy OMRON thể bảng 3.14 Từ bảng thấy nhiệt độ thể mà mơ hình đo rơi vào khoảng 36.9 °C Sai số nhiệt độ mơ hình so với thiết bị chuẩn thấp với mức trung bình 0.09 °C tương đương 0.26% Nhìn chung mơ hình đo nhiệt độ thể tốt chuẩn Bảng 3.14 Kết đo nhiệt độ mơ hình Lần đo 10 Sai số trung bình Hình 3.21 3.22 cho thấy hình ảnh kết đo nhiệt độ thơng qua mơ hình súng đo nhiệt OMRON thời điểm Thí nghiệm diễn khn mặt người vào khung màu đen vẽ sẵn, khn mặt cách mơ hình khoảng 50cm Ở hình 3.21 nhiệt độ thể đo 36.81°C hiển thị góc trái khung hình chữ nhật nhận diện gương mặt Khung màu đen vị trí đặt gương mặt vào để đo nhiệt độ Hình 3.22 thể nhiệt độ đo 36.7°C hiển thị hình súng OMRON đo súng cách trán 3cm Sai số sản phẩm 0.11°C Hình 3.21 Nhiệt độ đo mơ hình 52 CHƯƠNG KẾT QUẢ NGHIÊN CỨU Hình 3.22 Nhiệt độ đo súng đo nhiệt OMRON Để đánh giá độ xác việc đo thân nhiêt mơ hình, nhóm tiến hành đo nhiệt độ hai sinh viên khoảng cách khác với điều kiện đầy đủ ánh sáng góc mặt diện Mỗi khoảng cách thực đo 10 lần sau lấy giá trị trung bình Từ so sánh giá trị nhiệt độ với giá trị nhiệt độ thể mà súng đo nhiệt OMRON đo thời điểm Kết ghi nhận bảng 3.15 Sau trình thực nghiệm cho kết sai số hai thiết bị vào khoảng từ 0.01°C đến 0.29°C Ở khoảng cách xa mơ hình cho kết nhiệt độ với sai số cao Nguyên nhân dẫn đến chênh lệch nhiệt độ hai thiết bị nhiều nguyên nhân điều kiện môi trường, ánh sáng ảnh hưởng đến cảm biến cảm biến hồng ngoại, tư đo người sử dụng chưa thật xác Vì để giảm thiểu tối đa ảnh hưởng nhiệt độ môi trường đến kết đo cần thực việc đo nhiệt độ môi trường nhiệt độ phòng mát mẻ hạn chế đo bên tiếp xúc với ánh nắng mặt trời Khoảng 50cm cách M h Sinh viên Sinh viên Sinh viên 36 36 53 CHƯƠNG KẾT QUẢ NGHIÊN CỨU 3.4 ĐÁNH GIÁ THỜI GIAN ĐÁP ỨNG CỦA MÔ HÌNH Để đánh giá thời gian đáp ứng mơ hình, nhóm tiến hành thí nghiệm 10 lần để tính tốn thời gian từ lúc mơ hình nhận ảnh đầu vào đến lúc phát gương mặt đeo, không đeo trang cảnh báo Việc thực nghiệm thực điều kiện khác (khoảng cách, góc mặt, cường độ ánh sáng) Kết thời gian đáp ứng thể bảng 3.16 Sau 10 lần thực nghiệm, khoảng cách 1m mơ hình có thời gian xử lý liệu trung bình 35.6ms Đối với khoảng cách từ 1m – 1.5m từ 1.5m – 2m, thời gian xử lý 34.8ms 37.8ms Nhìn chung mơ hình có thời gian xử lý liệu từ lúc nhận diện ảnh có khn mặt đầu vào đến lúc hoàn thành chức vào khoảng 35ms Tuy vậy, mơ hình nhận diện ảnh đầu vào lại trễ giây so với thực tế Do thời gian đáp ứng thực tế mơ hình 1.3 giây Dựa vào kết cho thấy mơ hình đáp ứng nhu cầu thực tế sử dụng Bảng 3.16 Kết thời gian xử lý mơ hình Khoảng cách Kết Lần 10 54 KẾT LUẬN VÀ KIẾN NGHỊ KẾT LUẬN VÀ KIẾN NGHỊ KẾT LUẬN Đề tài thiết kế thi cơng hồn thành mơ hình camera đo thân nhiệt, nhắc nhở người khơng đeo trang Mơ hình thiết kế thành khối hộp hình chữ nhật chứa linh kiện bên Đề tài hoạt động tốt ổn định khoảng cách 1m phải có kết nối wifi Việc cảnh báo đáp ứng nhu cầu thực tế 1.3 giây sau phát có người khơng tn thủ quy tắc an tồn thân nhiệt cao khung hình Đề tài phần ứng dụng thành công công nghệ xử lý ảnh để phát người không đeo trang Mơ hình sử dụng nơi quan, bệnh viện trường học dễ dàng kiểm sốt người vào Kích thước mơ hình nhỏ nên dễ dàng vận chuyển đặt nơi theo ý muốn Nhìn chung, đề tài hoàn thành đầy đủ thực tốt mục tiêu nội dung nghiên cứu đặt ban đầu Bên cạnh thành đạt được, nghiên cứu cịn có điểm hạn chế Việc nhận diện cảnh báo khơng trang đơi cịn sai mơ hình xử lý ảnh bị ảnh hưởng lớn điều kiện ánh sáng khoảng cách nhận diện KIẾN NGHỊ Trong trình nghiên cứu thực hiện, đề tài phát số giải pháp khác, kiến nghị cho đề tài là: - Thêm tính chụp lại ảnh người khơng đeo trang người có thân nhiệt cao sau lưu lại gửi vào sở liệu để quản lý - Dùng tính nhận diện để thực điểm danh ngày camera 55 TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO [1] Vũ Thị Ngọc Ánh Nguyễn Hữu Nghị, “Thiết kế thi công thiết bị đo nhiệt độ thể người hồng ngoại sử dụng công nghệ Iots”, Đồ án Tốt nghiệp ĐH, Trường Đại học Sư phạm Kỹ thuật TP.HCM, 2020 [2] Nguyễn Bảo Trung, “Thiết kế chế tạo máy đo thân nhiệt từ xa sử dụng cảm biến không tiếp xúc”, Đồ án Tốt Nghiệp ĐH, Trường Đại học Quản lý Cơng nghệ Hải Phịng, 2020 [3] Nhiều Kỹ sư, “Chế tạo máy đo thân nhiệt”, Báo Tài nguyên Mơi trường, 2020 [4] Bùi Hồi Nhân Phạm Tú Tài, “Thiết kế thi cơng mơ hình phát không đeo trang”, Đồ án Tốt nghiệp ĐH, Trường Đại học Sư phạm Kỹ thuật TP.HCM, 2020 [5] Nguyễn Đình Thắng, “Thiết kế hệ thống nhận dạng khn mặt kit Raspberry pi”, Đồ án Tốt nghiệp ĐH, Trường Đại học Bách Khoa TP.HCM, 2018 [6] Wanbin Song, “COVID19-Face-Mask-Detection-using-deep-learning,” 2021 [Trực tuyến] Địa chỉ: https://github.com/matlab-deep-learning/COVID19-FaceMask-Detection-using-deep-learning [Truy cập 24/3/2022] [7] Balajisrinivas, “Face-Mask-Detection,” 2020 [Trực tuyến] Địa chỉ: https://github.com/balajisrinivas/Face-Mask-Detection [Truy cập 24/3/2022] [8] Data Flair, “Real-Time Face Mask Detector with Python, OpenCV, Keras,” 2022 [Trực tuyến] Địa chỉ: https://data-flair.training/blogs/face-mask-detection-withpython/ [Truy cập 24/3/2022] [9] Manikandan, “Protocentral_MAX30205,” 2020 [Trực tuyến] Địa chỉ: https://github.com/Protocentral/Protocentral_MAX30205 [Truy cập 24/3/2022] [10] Taher Ujjainwala, “IoT Based Contactless Body Temperature Monitoring using Raspberry Pi with Camera and Email Alert,” 2020 [Trực tuyến] Địa chỉ: https://circuitdigest.com/microcontroller-projects/iot-based-contactless-bodytemperature-monitoring-using-raspberry-pi-with-camera-and-email-alert [Truy cập 24/3/2022] [11] Gourab Banerjee, “Body Temperature Monitoring System,” 2020 [Trực tuyến] Địa chỉ: https://www.hackster.io/banerjeegourab0/body-temperature-monitoringsystem-f81a54 [Truy cập 24/3/2022] 56 TÀI LIỆU THAM KHẢO [13] Wikipedia , “Temperature,” 2022 [Trực tuyến] Địa chỉ: https://en.wikipedia.org/wiki/Temperature [Truy cập 24/3/2022] [14] Wikipedia , “Human body temperature,” 2022 [Trực tuyến] Địa chỉ: https://en.wikipedia.org/wiki/Human_body_temperature [Truy cập 24/3/2022] [15] Cao Tiến Đạt, “Xây dựng ứng dụng phát khuôn mặt ảnh sử dụng OpenCV”, Đồ án Tốt nghiệp ĐH, Trường Đại học Dân lập Hải Phòng, 2019 [16] John D Kelleher, “Deep Learning”, Library of Congress cataloging-in- Publication Data, 2019 [17] Quoc Pham, “Tìm Hiểu Convolutional Neural Networks Cho Phân Loại Ảnh,” 2019 [Trực tuyến] Địa chỉ: https://pbcquoc.github.io/cnn/ [Truy cập 24/3/2022] [18] Tram Ho, “Tìm hiểu mạng tích chập (CNN),” 2020 [Trực tuyến] Địa chỉ: https://itzone.com.vn/vi/article/tim-hieu-ve-mang-tich-chap-cnn/ [Truy cập 24/3/2022] [19] Phạm Bá Xuân Duy, “Xây dựng ứng dụng nhận diện loài hoa dựa Fastai”, Báo cáo tổng kết đề tài nghiên cứu khoa học sinh viên năm 2021, trường Đại học Đà Lạt, 2021 [20] Mark Sandler, Andrew Howard, Menglong Zhu, Andrey Zhmoginov, Liang-Chieh Chen, “MobilenetV2: Inverted Residuals and Linear Bottlenecks”, The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2018, pp 4510-4520 [21] TopDev Blog, “OpenCV gì? Học Computer Vision khơng khó,” 2022 [Trực tuyến] Địa chỉ: https://topdev.vn/blog/opencv-la-gi-hoc-computer-vision-khongkho/ [Truy cập 24/3/2022] [22] VNCoder, “Bài 1: Giới thiệu - Keras bản,” 2022 [Trực tuyến] Địa chỉ: https://vncoder.vn/bai-hoc/gioi-thieu-421 [Truy cập 24/3/2022] [23] Đam mê điện tử, “Giới thiệu chuẩn giao tiếp I2C,” 2022 [Trực tuyến] Địa chỉ: http://dammedientu.vn/gioi-thieu-chuan-giao-tiep-i2c/ [Truy cập 24/3/2022] [24] Điện tử tương lai, “Chuẩn giao tiếp I2C gì,” 2022 [Trực tuyến] Địa chỉ: https://dientutuonglai.com/chuan-giao-tiep-i2c-la-gi.html [Truy cập 24/3/2022] [25] Wikipedia, “Raspberry Pi,” 2022 [Trực tuyến] Địa chỉ: https://vi.wikipedia.org/wiki/Raspberry_Pi#cite_note-6 [Truy cập 24/3/2022] 57 TÀI LIỆU THAM KHẢO [26] Raspberry Pi Viet Nam, “Raspberry Pi gì? Giới thiệu Raspberry Pi,” 2014 [Trực tuyến] Địa chỉ: https://raspberrypi.vn/raspberry-pi-la-gi-gioi-thieu-veraspberry-pi-261.pi [Truy cập 24/3/2022] [27] Raspberry Pi, “Datasheet Raspberry Pi Model B”, Copyright Raspberry Pi (Trading) Ltd, 2019 [28] Mlab, “Camera nhiệt tầm xa MLX90640 IR Array 32×24 pixel 55° FOV,” 2019 [Trực tuyến] Địa chỉ: https://mlab.vn/index.php?_route_=3017169-camera-nhiettam-xa-mlx90640-ir-array-32%C3%9724-pixel-55%C2%B0-fov.html [Truy cập 24/3/2022] [29] Insys, “Giới Thiệu Máy Tính Nhúng Raspberry Pi (Model B),” 2021 [Trực tuyến] Địa chỉ: https://insys.vn/2021/02/16/bai-2-gioi-thieu-may-tinh-nhungraspberry-pi-4-model-b/ [Truy cập 24/3/2022] [30] Phạm Thị Hường, “Phát trang sử dụng mơ hình học sâu MobileNetV2”, Tạp chí Nghiên cứu khoa học, Trường Đại học Sao đỏ, ISSN 2859-4190, Số (70) 2020 [31] Nhóm tác giả trường đại học Lampung, “Low Cost Non-Contact Rapid Body Temperature Screening using Thermal Camera for Early Detection of Covid-19 Suspect”, 2022 [32] Mohammad Fernanduz William Andreaw , “Sistem Pengukuran Suhu Tubuh Menggunakan Camera Thermal AMG 8833 untuk Mengidentifikasi Orang Sakit”, 2022 58 PHỤ LỤC PHỤ LỤC BỔ SUNG CHƯƠNG TRÌNH CHO RASPBERRY Chương trình huấn luyện mơ hình liệu: from tensorflow.keras.preprocessing.image import ImageDataGenerator from tensorflow.keras.applications import MobileNetV2 from tensorflow.keras.layers import AveragePooling2D from tensorflow.keras.layers import Dropout from tensorflow.keras.layers import Flatten from tensorflow.keras.layers import Dense from tensorflow.keras.layers import Input from tensorflow.keras.models import Model from tensorflow.keras.optimizers import Adam from tensorflow.keras.applications.mobilenet_v2 import preprocess_input from tensorflow.keras.preprocessing.image import img_to_array from tensorflow.keras.preprocessing.image import load_img from tensorflow.keras.utils import to_categorical from sklearn.preprocessing import LabelBinarizer from sklearn.model_selection import train_test_split from sklearn.metrics import classification_report from tensorflow import lite import tensorflow as tf from imutils import paths import matplotlib.pyplot as plt import numpy as np import os INIT_LR = 1e-4 EPOCHS = 20 BS=32 DIRECTORY = r"Images1" CATEGORIES = ["Mask", "No Mask"] print("[INFO] loading images ") data = [] 59 PHỤ LỤC labels = [] for category in CATEGORIES: path = os.path.join(DIRECTORY, category) for img in os.listdir(path): img_path = os.path.join(path, img) image = load_img(img_path, target_size=(224, 224)) image = img_to_array(image) image = preprocess_input(image) data.append(image) labels.append(category) lb = LabelBinarizer() labels = lb.fit_transform(labels) labels = to_categorical(labels) data = np.array(data, dtype="float32") labels = np.array(labels) (trainX, testX, trainY, testY) = train_test_split(data, labels, test_size=0.20, stratify=labels, random_state=42) aug = ImageDataGenerator( rotation_range=20, zoom_range=0.15, width_shift_range=0.2, height_shift_range=0.2, shear_range=0.15, horizontal_flip=True, fill_mode="nearest") baseModel = MobileNetV2(weights="imagenet", include_top=False, input_tensor=Input(shape=(224, 224, 3))) headModel = baseModel.output headModel = AveragePooling2D(pool_size=(7, 7))(headModel) headModel = Flatten(name="flatten")(headModel) headModel = Dense(128, activation="relu")(headModel) headModel = Dropout(0.5)(headModel) 60 PHỤ LỤC headModel = Dense(2, activation="softmax")(headModel) model = Model(inputs=baseModel.input, outputs=headModel) for layer in baseModel.layers: layer.trainable = False print("[INFO] compiling model ") opt = Adam(lr=INIT_LR, decay=INIT_LR / EPOCHS) model.compile(loss="binary_crossentropy", optimizer=opt, metrics=["accuracy"]) print("[INFO] training head ") H = model.fit( aug.flow(trainX, trainY, batch_size=BS), steps_per_epoch=len(trainX) // BS, validation_data=(testX, testY), validation_steps=len(testX) // BS, epochs=EPOCHS) print("[INFO] evaluating network ") predIdxs = model.predict(testX, batch_size=BS) predIdxs = np.argmax(predIdxs, axis=1) print(classification_report(testY.argmax(axis=1), predIdxs, target_names=lb.classes)) print("[INFO] saving mask detector model ") model.save("mask_detector.model", save_format="h5") N = EPOCHS plt.style.use("ggplot") plt.figure() plt.plot(np.arange(0, N), H.history["loss"], label="train_loss") plt.plot(np.arange(0, N), H.history["val_loss"], label="val_loss") plt.plot(np.arange(0, N), H.history["accuracy"], label="train_acc") plt.plot(np.arange(0, N), H.history["val_accuracy"], label="val_acc") plt.title("Training Loss and Accuracy") plt.xlabel("Epoch #") plt.ylabel("Loss/Accuracy") plt.legend(loc="lower left") plt.savefig("plot.png") 61 PHỤ LỤC Chương trình giám sát cảnh báo việc đeo trang thân nhiệt: from tensorflow.keras.applications.mobilenet_v2 import preprocess_input from tensorflow.keras.preprocessing.image import img_to_array from tensorflow.keras.models import load_model from imutils.video import VideoStream import numpy as np import time import cv2 import os import pygame import math import busio,board import adafruit_amg88xx i2c = busio.I2C(board.SCL, board.SDA) sensor = adafruit_amg88xx.AMG88XX(i2c) pygame.mixer.init() tt=0 k=0 def detect_and_predict_mask(frame, faceNet, maskNet): (h, w) = frame.shape[:2] blob = cv2.dnn.blobFromImage(frame, 1.0, (224, 224), (104.0, 177.0, 123.0)) faceNet.setInput(blob) detections = faceNet.forward() faces = [] locs = [] preds = [] for i in range(0, detections.shape[2]): confidence = detections[0, 0, i, 2] if confidence > 0.5: box = detections[0, 0, i, 3:7] * np.array([w, h, w, h]) (startX, startY, endX, endY) = box.astype("int") (startX, startY) = (max(0, startX), max(0, startY)) 62 PHỤ LỤC (endX, endY) = (min(w - 1, endX), min(h - 1, endY)) face = frame[startY:endY, startX:endX] face = cv2.cvtColor(face, cv2.COLOR_BGR2RGB) face = cv2.resize(face, (224, 224)) face = img_to_array(face) face = preprocess_input(face) faces.append(face) locs.append((startX, startY, endX, endY)) if len(faces) > 0: faces = np.array(faces, dtype="float32") preds = maskNet.predict(faces, batch_size=32) return (locs, preds) prototxtPath = os.path.join(os.getcwd(), 'face_detector', 'deploy.prototxt') weightsPath = os.path.join(os.getcwd(), 'face_detector', 'res10_300x300_ssd_iter_140000.caffemodel') faceNet = cv2.dnn.readNet(prototxtPath, weightsPath) maskNet = load_model("mask_detector.model") print("[INFO] starting video stream ") cap = cv2.VideoCapture(0) count=0 while True: ret, frame = cap.read() cv2.rectangle(frame, (450, 350), (220, 120), (0,0,0), 3) if ret: count = count + frame = cv2.resize(frame, dsize=(640,640)) frame = cv2.flip(frame,1) if count%5==0: (locs, preds) = detect_and_predict_mask(frame, faceNet, maskNet) for (box, pred) in zip(locs, preds): (startX, startY, endX, endY) = box (mask, nomask) = pred 63 PHỤ LỤC if (mask < nomask): tt+=1 if(tt==4): pygame.mixer.music.load("ok.mp3") pygame.mixer.music.play() tt=0 while pygame.mixer.music.get_busy ==True: continue label="No Mask" color=(0,0,255) else: label="Mask" color=(0,255,0) pixels = [] for row in sensor.pixels: pixels = pixels + row temp=round(0.0538*max(pixels)+35.308,2) if(temp>=37.5): k+=1 if(k==4): pygame.mixer.music.load("ok1.mp3") pygame.mixer.music.play() k=0 while pygame.mixer.music.get_busy== True: continue temp= str(temp) cv2.putText(frame, temp + 'oC',(startX, startY - 10) , cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0),2) cv2.rectangle(frame, (startX, startY), (endX, endY), color, 2) cv2.imshow("Frame", frame) key = cv2.waitKey(1) & 0xFF if key == ord("q"): 64 PHỤ LỤC break cap.release() cv2.destroyAllWindows() 65 TIEU LUAN MOI download : skknchat123@gmail.com ... thực đề tài thi? ??t kế thi công hệ thống camera đo thân nhiệt, nhắc nhở người không đeo trang Mục tiêu đề tài Thi? ??t kế thi công hệ thống camera đo thân nhiệt, giám sát việc đeo trang Cụ thể dùng... GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN THI? ??T KẾ VÀ THI CƠNG MƠ HÌNH CAMERA ĐO THÂN NHIỆT VÀ NHẮC NHỞ ĐEO KHẨU TRANG SV2022-21... TỐN VÀ THI? ??T KẾ MƠ HÌNH 20 2.1.1 Thi? ??t kế sơ đồ khối mơ hình 20 2.1.2 Tính tốn thi? ??t kế mạch 20 2.1.3 Sơ đồ nguyên lý toàn mạch 23 2.1.4 Thi? ??t kế vỏ hộp mơ hình