1. Trang chủ
  2. » Tất cả

Hcmute thiết kế và thi công mô hình camrea đo thân nhiệt và nhắc nhở đeo khẩu trang

76 2 0

Đ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

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 S K C 0 9 MÃ SỐ: SV2022 - 21 CHỦ NHIỆM ĐỀ TÀI: THÁI NGUYỄN KỲ DUYÊN S KC 0 7 Tp Hồ Chí Minh, tháng 6/2022 Luan van 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 Luan van 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 Luan van 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 Luan van PHỤ LỤC BỔ SUNG CHƯƠNG TRÌNH CHO RASPBERRY 59 iii Luan van 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 Luan van 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 khuôn 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ả khuôn 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 Luan van 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 Luan van 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 khn 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 Luan van Đó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 Luan van 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 khn mặt người vào khung màu đen vẽ sẵn, khuôn 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 Luan van 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 Luan van 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 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 Luan van 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 Luan van 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 Hoà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 Luan van 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 Luan van 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 Luan van 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 Luan van 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 Luan van 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 Luan van 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 Luan van 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 Luan van 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 Luan van PHỤ LỤC break cap.release() cv2.destroyAllWindows() 65 Luan van S K L 0 Luan van ... 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... 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. .. 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

Ngày đăng: 02/02/2023, 10:15

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w