(Đề tài NCKH) Thiết kế và thi công mô hình camrea đo thân nhiệt và nhắc nhở đeo khẩu trang(Đề tài NCKH) Thiết kế và thi công mô hình camrea đo thân nhiệt và nhắc nhở đeo khẩu trang(Đề tài NCKH) Thiết kế và thi công mô hình camrea đo thân nhiệt và nhắc nhở đeo khẩu trang(Đề tài NCKH) Thiết kế và thi công mô hình camrea đo thân nhiệt và nhắc nhở đeo khẩu trang(Đề tài NCKH) Thiết kế và thi công mô hình camrea đo thân nhiệt và nhắc nhở đeo khẩu trang(Đề tài NCKH) Thiết kế và thi công mô hình camrea đo thân nhiệt và nhắc nhở đeo khẩu trang(Đề tài NCKH) Thiết kế và thi công mô hình camrea đo thân nhiệt và nhắc nhở đeo khẩu trang(Đề tài NCKH) Thiết kế và thi công mô hình camrea đo thân nhiệt và nhắc nhở đeo khẩu trang(Đề tài NCKH) Thiết kế và thi công mô hình camrea đo thân nhiệt và nhắc nhở đeo khẩu trang(Đề tài NCKH) Thiết kế và thi công mô hình camrea đo thân nhiệt và nhắc nhở đeo khẩu trang(Đề tài NCKH) Thiết kế và thi công mô hình camrea đo thân nhiệt và nhắc nhở đeo khẩu trang(Đề tài NCKH) Thiết kế và thi công mô hình camrea đo thân nhiệt và nhắc nhở đeo khẩu trang(Đề tài NCKH) Thiết kế và thi công mô hình camrea đo thân nhiệt và nhắc nhở đeo khẩu trang(Đề tài NCKH) Thiết kế và thi công mô hình camrea đo thân nhiệt và nhắc nhở đeo khẩu trang(Đề tài NCKH) Thiết kế và thi công mô hình camrea đo thân nhiệt và nhắc nhở đeo khẩu trang(Đề tài NCKH) Thiết kế và thi công mô hình camrea đo thân nhiệt và nhắc nhở đeo khẩu trang(Đề tài NCKH) Thiết kế và thi công mô hình camrea đo thân nhiệt và nhắc nhở đeo khẩu trang
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 Nữ Dân tộc: Kinh Lớp, khoa: 181290A, Điện – Điện tử Năm thứ: /Số năm đào tạo: Ngành học: Kỹ thuật y sinh SV thực hiện: Dương Hoàng Huy Nam Dân tộc: Kinh Lớp, khoa: 181290A, Điện – Điện tử Năm thứ: /Số năm đào tạo: 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 i LIỆT KÊ HÌNH ẢNH iv LIỆT KÊ BẢNG vi THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI .vii MỞ ĐẦU 1 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 .3 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 .6 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 11 1.5.3 Lớp tổng hợp 12 1.5.4 Lớp kết nối đầy đủ 13 1.6 THƯ VIỆN OPENCV 13 1.7 THƯ VIỆN TENSORFLOW 14 1.8 THƯ VIỆN KERAS 14 1.9 CHUẨN GIAO TIẾP I2C 15 1.10 NGƠN NGỮ LẬP TRÌNH PYTHON 16 1.11 GIỚI THIỆU PHẦN CỨNG 17 1.11.1 Vi điều khiển Raspberry Pi Model B 17 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 .9 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ó khn 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 Hoàng Huy MSSV 18129023 Lớp 181290A Khoa Điện – Điện tử - 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 tn 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 MỞ ĐẦU MỞ ĐẦU Tổng quan tình hình nghiên cứu thuộc lĩnh vực đề tài Trong nước: Trong đồ án tốt nghiệp với đề tài “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” thực vào năm 2020 tác giả Vũ Thị Ngọc Ánh Nguyễn Hữu Nghị [1] sử dụng cảm biến hồng ngoại MLX90614 để đo nhiệt độ thể trả kết qua Oled, loa đưa lên web server Ngồi cịn số nghiên cứu sử dụng cảm biến không tiếp xúc để đo nhiệt độ thể “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” Nguyễn Bảo Trung [2] “Chế tạo máy đo thân nhiệt” [3] kỹ sư Điện lực Thừa Thiên Huế Đề tài “Thiết kế thi cơng mơ hình phát khơng đeo trang” Bùi Hoài Nhân Phạm Tú Tài [4] sử dụng xử lý ảnh để phân tích nhận diện quan khn mặt Từ nhận dạng khn mặt khơng đeo trang đưa thiết bị ngoại vi Ngoài “Thiết kế hệ thống nhận dạng khuôn mặt kit Raspberry pi” Nguyễn Đình Thắng [5] sử dụng phương pháp tương tự để nhận dạng khuôn mặt không đeo trang nhắc nhở Ngoài nước: Việc phát triển ngày mạnh mẽ mảng xử lý ảnh, giới có nhiều nghiên cứu việc phát khơng đeo trang Trong phải nói đến nghiên cứu dùng Deep learning tác giả Wanbin Song [6] thành công ý tưởng phát người không đeo trang Tác giả Balaji Srinivas xây dựng mơ hình với việc dùng ngơn ngữ lập trình Python với thư viện OpenCV [7] việc nhận diện việc đeo trang Ngồi cịn có nghiên cứu dùng mạng neural để huấn luyện mơ hình kết hợp với Python [8] tác giả khác Nhiệt độ thể thay đổi dấu hiệu nhiễm bệnh, để kiểm tra nhiệt độ nhanh chóng giới có nghiên cứu việc dùng cảm biến đo không tiếp xúc Trước hết dự án dùng cảm biến MAX30205 Manikandan [9] kết hợp với Arduino Tác giả Taher Ujjainwala đến từ Ấn độ có dự án mơ hình dùng sức mạnh Internet of Things để xây dựng thiết bị Giám sát nhiệt độ với cảnh báo qua Email sử dụng Raspberry Pi, MLX90614 PiCamera [10] Cảm biến LM35 Gourab Banerjee sử dụng để làm hệ thống báo động tự động nhiệt độ thể thay đổi khác thường [11] dự án quan tâm 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 Nhiệt độ đo Máy OMRON mơ hình (°C) (°C) 36.90 37 36.91 37 36.92 36.9 36.95 36.8 36.96 36.8 36.84 36.8 36.85 36.8 36.95 36.9 36.98 37.1 36.94 37.1 Sai số trung bình Sai số (°C) 0.10 0.09 0.02 0.15 0.16 0.04 0.05 0.05 0.12 0.16 0.09 Sai số (%) 0.28 0.25 0.06 0.40 0.44 0.11 0.15 0.13 0.33 0.44 0.26 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 khuôn 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 Bảng 3.15 Kết đo nhiệt độ nhiều khoảng cách Khoảng cách Sinh viên Sinh viên Sinh viên 50cm Mơ hình Súng đo 70cm Mơ hình Súng đo 1m Mơ hình Súng đo 1.5m Mơ hình Súng đo 2m Mơ hình Súng đo 36.77 36.70 36.86 36.80 36.63 36.80 36.60 36.80 36.51 36.80 36.69 36.70 36.61 36.70 36.87 36.90 36.64 36.80 36.63 36.90 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 hồ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 Dưới 1m Từ 1m – 1.5m Kết Thời Thực Thời Thực gian đầy đủ gian đầy đủ (ms) chức (ms) chức Lần 38 Có 34 Có 37 Có 34 Có 36 Có 39 Có 39 Có 39 Có 32 Có 33 Có 33 Có 28 Có 36 Có 36 Có 35 Có 30 Có 38 Có 38 Có 10 32 Có 37 Có Từ 1.5m - 2m Thời Thực gian đầy đủ (ms) chức 36 Có 38 Có 33 Có 39 Có 36 Có 35 Có 35 Có 34 Có 56 Có 36 Có 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 toà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 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 ngun 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 khuôn 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 45104520 [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 S K L 0 ... 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 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 -... 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