Untitled 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 S K C 0 0 3 9 5 9 CÔNG TRÌNH MÃ SỐ S KC0 0 7 6 7 5 Tp Hồ Chí Minh, BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THU[.]
Trang 2BỘ 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ứ: 4 /Số năm đào tạo: 4 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ứ: 4 /Số năm đào tạo: 4 Ngành học: Kỹ thuật y sinh
Người hướng dẫn: ThS Ngô Bá Việt
Trang 3MỤ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
1 Tổng quan tình hình nghiên cứu thuộc lĩnh vực đề tài 1
2 Lý do chọn đề tài 2
3 Mục tiêu đề tài 2
4 Phương pháp nghiên cứu 2
5 Đối tượng và phạm vi nghiên cứu 3
Chương 1 CƠ SỞ LÝ THUYẾT 4
1.1 TỔNG QUAN VỀ NHIỆT ĐỘ CƠ THỂ CON NGƯỜI 4
1.2 CÁC PHƯƠNG PHÁP ĐO NHIỆT ĐỘ 5
1.2.1 Phương pháp đo nhiệt độ tiếp xúc 5
1.2.2 Phương pháp đo nhiệt độ không tiếp xúc 6
1.3 PHƯƠNG PHÁP NHẬN DẠNG KHUÔN MẶT 6
1.4 DEEP LEARNING 8
1.5 MƠ HÌNH CNN CONVOLUTIONAL NEURAL NETWORK 9
1.5.1 Lớp tích chập 9
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
Trang 41.11.3 Webcam usb 720p 19
1.11.4 Loa phát di động 19
Chương 2 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 và thiết kế mạch 20
2.1.3 Sơ đồ nguyên lý của 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 dữ 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 dữ liệu 30
2.5.3 Lưu đồ chương trình chính 31
Chương 3 KẾT QUẢ NGHIÊN CỨU 34
3.1 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 và kiểm tra 34
3.1.3 Kết quả mơ hình hồn thiện 36
3.2 KẾT QUẢ NHẬN DẠNG NGƯỜI KHÔNG ĐEO KHẨU TRANG 37
3.2.1 Tập dữ liệu huấn luyện 37
3.2.2 Kết quả của quá trình huấn luyện tập dữ liệu 38
3.2.3 Kết quả nhận dạng người không đeo khẩu 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
1 KẾT LUẬN 55
2 KIẾN NGHỊ 55
Trang 6LIỆT KÊ HÌNH ẢNH
HÌNH TRANG
Hình 1.1 Bốn bước xử lý của hệ thống nhận dạng mặt người 7
Hình 1.2 Kiến trúc cơ bản của một mạng tích chập 9
Hình 1.3 Cửa sổ trượt trên một ma trận 10
Hình 1.4 Kích thước ảnh đầu ra khi thực hiện bước nhảy lần lượt là 1 và 2 10
Hình 1.5 Ma trận khi thêm viền 0 bên ngoài 11
Hình 1.6 Lớp max pooling cho vùng ảnh 12
Hình 1.7 Mơ phỏng lớp kết nối đầy đủ 13
Hình 1.9 Cấu trúc cơ bản của OpenCV 14
Hình 1.10 Mơ hình giao thức I2C 15
Hình 1.11 Hình ảnh thực tế của Raspberry Pi 4 17
Hình 1.12 Cảm biến nhiệt AMG8833 8x8 Non-Contact IR Thermal Camera Sensor 18Hì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ý của mơ hình 23
Hình 2.4 Bản vẽ thiết kế của vỏ hộp mơ hình 24
Hình 2.5 Các khối tích chập của mạng MobileNetV2 26
Hình 2.6 Bộ mơ hình mạng CNN xây dựng bằ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 dữ liệu 30
Hình 2.9 Lưu đồ chương trình chí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 hiện khơng đeo khẩu 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 và kết nối webcam với vi điều khiển 35
Trang 7Hình 3.7 Sản phẩm hồn thiện mơ hình 36
Hình 3.8 Kết quả thi cơng bên trong mơ hình 37
Hình 3.9 Kết quả thi cơng mặt trước của mơ hình 37
Hình 3.10 Ảnh đeo khẩu trang trong tập dữ liệu 38
Hình 3.11 Ảnh không đeo khẩu trang trong tập dữ liệu 38
Hình 3.12 Đồ thị giá trị accuracy và loss 39
Hình 3.13 Phát hiện khn mặt khơng đeo khẩu trang 40
Hình 3.14 Phát hiện khn mặt khơng đeo khẩu trang ở góc nghiêng bên trái 40
Hình 3.15 Phát hiện khn mặt khơng đeo khẩu trang ở góc nghiêng bên phải 41
Hình 3.16 Phát hiện 2 khn mặt khơng đeo khẩu trang ở góc chính diện 41
Hình 3.17 Phát hiện 2 khn mặt khơng đeo khẩu trang ở góc nghiêng bên trái 42
Hình 3.18 Phát hiện 2 khn mặt khơng đeo khẩu trang ở góc nghiêng bên phải 42
Hình 3.19 Phát hiện có 1 khn mặt khơng đeo khẩu trang 43
Hình 3.20 Cả 2 khn mặt đều đeo khẩu trang 43
Hình 3.21 Nhiệt độ được đo bằng mơ hình 52
Trang 8LIỆT KÊ BẢNG
BẢNG TRANG
Bảng 1.1 Thân nhiệt bình thường ở các vị trí đo khác nhau theo từng độ tuổi 5
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 của webcam usb 720p 21
Bảng 2.2 Thông số kỹ thuật của cảm biến nhiệt AMG8833 21
Bảng 2.3 Thống kê dòng và tải sử dụng cho mạch 23
Bảng 2.4 Thống kê kết quả nhiệt độ cơ thể mà 2 sản phẩm đo được 27
Bảng 2.5 Ma trận nhầm lẫn 28
Bảng 3.1 Danh sách các linh kiện 34
Bảng 3.2 Mô tả tập dữ liệu 37
Bảng 3.3 Đánh giá mơ hình 39
Bảng 3.4 Kết quả nhận diện gương mặt đeo khẩu trang ở khoảng cách dưới 1m 44
Bảng 3.5 Kết quả nhận diện gương mặt không đeo khẩu trang ở khoảng cách dưới 1m 45
Bảng 3.6 Kết quả nhận diện gương mặt đeo khẩu trang ở khoảng cách 1.2m 45
Bảng 3.7 Kết quả nhận diện gương mặt không đeo khẩu trang ở khoảng cách 1.2m 46
Bảng 3.8 Kết quả nhận diện gương mặt đeo khẩu trang ở khoảng cách 1.5m 47
Bảng 3.9 Kết quả nhận diện gương mặt không đeo khẩu trang ở khoảng cách 1.5m 48
Bảng 3.10 Kết quả nhận diện gương mặt đeo khẩu trang ở khoảng cách 1.8m 48
Bảng 3.11 Kết quả nhận diện gương mặt không đeo khẩu trang ở khoảng cách 1.8m 49Bảng 3.12 Kết quả nhận diện gương mặt đeo khẩu trang ở khoảng cách 2m 50
Bảng 3.13 Kết quả nhận diện gương mặt không đeo khẩu trang ở khoảng cách 2m 51
Bảng 3.14 Kết quả đo nhiệt độ của mơ hình 52
Bảng 3.15 Kết quả đo nhiệt độ ở nhiều khoảng cách 53
Trang 9TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM
THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI
1 Thông tin chung:
- Tên đề tài: Thiết kế và thi công mơ hình camera đo thân nhiệt, nhắc nhở đeo khẩu
trang
- Chủ nhiệm đề tài: Thái Nguyễn Kỳ Duyên Mã số SV: 18129010
- Lớp: 181290A Khoa: Điện – Điện tử - Thành viên đề tài:
Stt Họ và tên MSSV Lớp Khoa
1 Dương Hoàng Huy 18129023 181290A Điện – Điện tử - Người hướng dẫn: ThS Ngô Bá Việt
2 Mục tiêu đề tài:
Thiết kế và thi công được hệ thống camera đo thân nhiệt, giám sát việc đeo khẩu trang Cụ thể là dùng phương pháp machine learning để nhận diện gương mặt có đeo khẩu trang hay không và đo nhiệt độ cơ thể không tiếp xúc bằng cảm biến ảnh nhiệt hồng ngoại Sau đó phát cảnh báo nếu phát hiện cá nhân đó khơng đeo khẩu trang hoặc có thân nhiệt cao
3 Tính mới và sáng tạo:
Thiết kế và thi công hệ thống giám sát việc đeo khẩu trang thơng qua khn mặt dùng mạng nơ-ron tích chập CNN Ngồi ra hệ thống cịn thực hiện được việc đo thân nhiệt thông qua cảm biến ảnh nhiệt Hệ thống này chạy thành cơng và độc lập với máy tính thơng qua máy tính nhúng Raspberry Pi 4 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 và lắp đặt hệ thống
4 Kết quả nghiên cứu:
Trang 10khả năng áp dụng của đề tài:
Đóng góp về mặt kinh tế - xã hội: Đề tài có thể được sử dụng tại các cơ quan, bệnh viện hay trường học để giám sát người không tn thủ các quy tắc an tồn để phịng chống dịch, hạn chế việc lây lan các bệnh lây truyền qua đường hô hấp
6 Công bố khoa học của SV từ kết quả nghiên cứu của đề tài (ghi rõ tên tạp chí nếu
có) hoặc nhận xét, đánh giá của cơ sở đã áp dụng các kết quả nghiên cứu (nếu có):
Khơng có
Ngày tháng năm
SV chịu trách nhiệm chính thực hiện đề tài
(kí, họ và tên)
Nhận xét của người hướng dẫn về những đóng góp khoa học của SV thực hiện đề tài (phần này do người hướng dẫn ghi):
Ngày tháng năm
Người hướng dẫn
Trang 11MỞ ĐẦU
1 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ế và thi công thiết bị đo nhiệt độ cơ thể con người bằng hồng ngoại sử dụng công nghệ Iots” được thực hiện vào năm 2020 bởi tác giả Vũ Thị Ngọc Ánh và Nguyễn Hữu Nghị [1] đã sử dụng cảm biến hồng ngoại MLX90614 để đo nhiệt độ cơ thể và trả kết quả qua Oled, loa và đưa lên web server Ngồi ra cũng cịn một số nghiên cứu cũng sử dụng cảm biến không tiếp xúc để đo nhiệt độ cơ thể như “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” của Nguyễn Bảo Trung [2] và “Chế tạo máy đo thân nhiệt” [3] của các kỹ sư của Điện lực Thừa Thiên Huế.Đề tài “Thiết kế và thi cơng mơ hình phát hiện khơng đeo khẩu trang” của Bùi Hoài Nhân và Phạm Tú Tài [4] đã sử dụng xử lý ảnh để phân tích nhận diện các cơ quan trên khn mặt Từ đó nhận dạng khuôn mặt không đeo khẩu trang và đưa ra các thiết bị ngoại vi Ngoài ra “Thiết kế hệ thống nhận dạng khuôn mặt trên kit Raspberry pi” của Nguyễn Đình Thắng [5] cũng sử dụng phương pháp tương tự để nhận dạng khuôn mặt không đeo khẩu trang và nhắc nhở.
Trang 122 Lý do chọn đề tài
Thế giới đã ghi nhận hơn 540 triệu ca nhiễm vì COVID-19 tính đến thời điểm đầu tháng 6 năm 2022 [12] Virus SARS-CoV-2 lây lan qua dễ dàng đường hô hấp gây tổn thương tại các cơ quan trong cơ thể làm hình thành huyết khối trên các mạch máu Việc theo dõi nhiệt độ cơ thể thường xuyên, và mang khẩu trang là việc bắt buộc cho bất cứ ai khi đi đến nơi đông người Ngày nay với sự tiến bộ của khoa học kỹ thuật việc giúp phát hiện và sàng lọc những người có thân nhiệt cao hay những người khơng tn thủ quy tắc an tồn, giúp kiểm sốt bệnh tật và giảm bớt một phần nhân lực thực hiện việc giám sát thủ công ngày càng dễ dàng Ngôn ngữ lập trình Python là cơng cụ hỗ trợ đắc lực trong việc lập trình các thiết bị cảm biến cũng như xử lý ảnh để làm ra các thiết bị giám sát Với các lý do cấp thiết trên nhóm tác giả đã kiến nghị thực hiện đề tài thiết kế và thi công hệ thống camera đo thân nhiệt, nhắc nhở người không đeo khẩu trang.
3 Mục tiêu đề tài
Thiết kế và thi công được hệ thống camera đo thân nhiệt, giám sát việc đeo khẩu trang Cụ thể là dùng phương pháp machine learning để nhận diện gương mặt có đeo khẩu trang hay khơng và đo nhiệt độ cơ thể không tiếp xúc bằng cảm biến ảnh nhiệt hồng ngoại Sau đó phát cảnh báo nếu phát hiện cá nhân đó khơng đeo khẩu trang hoặc có thân nhiệt cao
4 Phương pháp nghiên cứu
Phương pháp nghiên cứu tài liệu: Thu thập thông tin thông qua sách báo, tài liệu với mục đích tìm ra các khái niệm cơ bản làm cơ sở lý thuyết cho lý luận của đề tài
Phương pháp tính tốn thống kê: Thu thập và xử lý các tín hiệu đầu vào, tính tốn dữ liệu để đưa ra kết quả
Trang 135 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu: Nhiệt độ cơ thể và việc đeo khẩu trang của con người trong cuộc sống
Trang 14Chương 1 CƠ SỞ LÝ THUYẾT
1.1 TỔNG QUAN VỀ NHIỆT ĐỘ CƠ THỂ CON NGƯỜI
Nhiệt độ là một tính chất vật lý của vật chất thể hiện nóng và lạnh [13] Nó là biểu hiện của nhiệt năng trong mọi vật chất, nguồn gốc của sự xuất hiện nhiệt, một dòng năng lượng khi một vật tiếp xúc với vật khác lạnh hơn Ba thang đo nhiệt độ phổ biến nhất là thang đo Celsius (gọi là C, ký hiệu là °C), thang đo Fahrenheit (ký hiệu là °F), thang đo Kelvin (ký hiệu là K) [13] và được liên hệ với nhau qua các công thức:
32)(*59)(F T C T (1.1) 15.273)()(K T C T (1.2)
Nhiệt độ cơ thể con người bình thường hay nhiệt độ bình thường là phạm vi nhiệt độ bình thường điển hình ở người Phạm vi nhiệt độ cơ thể của người bình thường trong khoảng 36.5 – 37.5 °C (97.7 – 99.5 °F) [14] Nhiệt độ cơ thể của mỗi người phụ thuộc vào nhiều yếu tố như độ tuổi (người trẻ tuổi thường có thân nhiệt cao hơn), mức độ gắng sức, tình trạng sức khỏe, giới tính cùng tình trạng sinh sản, thời gian trong ngày, vị trí nơi thực hiện việc đo nhiệt độ và trạng thái ý thức của đối tượng đo như thức hay ngủ, mức độ hoạt động và trạng thái cảm xúc Tuy nhiên, nhiệt độ cơ thể thường được giữ ở mức ổn định nhờ vào khả năng điều hòa thân nhiệt cùng thích nghi với mơi trường sống của con người
Trang 15Bảng 1.1 Thân nhiệt bình thường ở các vị trí đo khác nhau theo từng độ tuổi
Độ tuổi Nơi đo
0 – 2 tuổi 3 – 10 tuổi 11 – 65 tuổi Trên 65 tuổi
Miệng 36.4 – 38 °C 35 5 – 37.5 °C 36.4 – 37.5 °C 35.7 – 36.9 °C
Hậu môn 36.6 – 38 °C 36.6 – 38 °C 37 – 38.1 °C 36.2 – 37.3 °C
Nách 34.7 – 37.3 °C 35.8 – 36.7 °C 35.2 – 36.8 °C 35.5 – 37.5 °C
Tai 36.4 – 38 °C 36.1 – 37.7 °C 35.8 – 37.6 °C 35.7 – 37.5 °C
Thân nhiệt 36.4 – 37.7 °C 36.4 – 37.7 °C 36.8 – 37.8 °C 35.8 – 37.1 °C 1.2 CÁC PHƯƠNG PHÁP ĐO NHIỆT ĐỘ
Nhiệt độ là đại lượng chỉ có thể được đo gián tiếp dựa trên cơ sở tính chất của vật phụ thuộc nhiệt độ Vì vậy, có hai phương pháp chính đo nhiệt độ là phương pháp tiếp xúc và phương pháp không tiếp xúc Nguyên lý để chế tạo cảm biến đo nhiệt độ dựa trên sự giãn nở của các vật rắn, lỏng, khí, sự phụ thuộc của điện trở vào nhiệt độ, hiệu ứng seebeck, Thomson, Peltier hoặc sự phân bố phổ bức xạ nhiệt
1.2.1 Phương pháp đo nhiệt độ tiếp xúc
Phương pháp đo nhiệt độ tiếp xúc được đo bằng cách áp bộ phận nhạy cảm của nhiệt kế tiếp xúc một cách trực tiếp với môi trường cần đo Các thiết bị đo nhiệt độ tiếp xúc như nhiệt kế thủy ngân, nhiệt điện trở kim loại, nhiệt điện trở bán dẫn, cặp nhiệt ngẫu hay các IC cảm biến nhiệt
- Nhiệt kế thủy ngân được phát minh vào năm 1714 bởi nhà vật lý học Daniel Gabriel Fahrenheit gồm phần cảm biến nhiệt độ, ống dẫn và phần hiển thị kết quả Nó hoạt động dựa theo nguyên lý sự giãn nở của thủy ngân theo nhiệt độ: nhiệt độ thay đổi làm cho cột độ chạy để mở rộng hoặc kéo tụt thủy ngân trong ống
- Nhiệt điện trở hay thermistor được cấu tạo từ hỗn hợp các bột oxit Nó hoạt động dựa theo nguyên tắc điện trở của kim loại tăng lên khi nhiệt độ tăng lên
Trang 161.2.2 Phương pháp đo nhiệt độ không tiếp xúc
Phương pháp đo nhiệt độ không tiếp xúc dựa trên định luật bức xạ đen tuyệt đối, tức là vật hấp thụ năng lượng theo mọi hướng với khả năng lớn nhất Bức xạ nhiệt của vật thể đặc trưng cho số năng lượng bức xạ trong một đơn vị thời gian với một đơn vị diện tích của vật xảy ra trên một đơn vị của độ dài sóng Thiết bị đo nhiệt độ không tiếp xúc như cảm biến quang, hỏa quang kế, cảm biến hồng ngoại, cảm biến ảnh nhiệt
- Hỏa quang kế gồm hỏa quang kế bức xạ, hỏa quang kế cường độ sáng, hỏa quang kế màu sắc đo nhiệt độ với dải nhiệt độ cao trên 1600 °C Nó hoạt động dựa trên mật độ phổ năng lượng phát xạ theo bước sóng của vật đen lý tưởng khi bị đốt nóng
- Cảm biến hồng ngoại: là thiết bị điện tử đo và phát hiện bức xạ hồng ngoại ở môi trường xung quanh Bức xạ hồng ngoại được phát hiện bởi nhà thiên văn học William Herschel vào năm 1800 Định luật bức xạ Planck đã chỉ ra bức xạ đặc trưng Mλs của vật thể đen tuyệt đối phụ thuộc vào nhiệt độ T của nó và bước sóng
λ: 112)(52TkhcsBehcTM (1.3)
trong đó, h là hằng số Planck, c là tốc độ ánh sáng, kB là hằng số Boltzmann Bằng cách tích hợp cảm biến của các bức xạ ánh sáng có bước sóng từ 0 đến vơ cùng thì có thể đo được giá trị bức xạ phát ra của vật thể Mối tương quan này được thể hiện ở định luật Stefan-Boltzmann:
4
* T
j (1.4)
Cảm biến hồng ngoại gồm hai loại là thụ động và chủ động Nó hoạt động bằng cách sử dụng một cảm biến ánh sáng cụ thể để phát hiện ra bước sóng ánh sáng chọn trong phổ hồng ngoại
1.3 PHƯƠNG PHÁP NHẬN DẠNG KHN MẶT
Xác định khn mặt người là một kỹ thuật dùng để xác định vị trí và kích thước khn mặt trong các ảnh bất kỳ Kỹ thuật này nhận biết về các đặc trưng của khuôn mặt và bỏ qua những thứ khác Một hệ thống nhận dạng thông thường bao gồm bốn bước như hình 1.1
Trang 17chuyển kết quả này cho bước trích xuất đặc trưng Từ những thông tin về các thành phần trên khuôn mặt, chúng ta có thể dễ dàng tính được véc-tơ đặc trưng Những véc-tơ này sẽ là dữ liệu đầu vào cho một mơ hình đã được huấn luyện trước để phân loại khn mặt Bên cạnh đó, chúng ta cịn có thể áp dụng thêm một số bước khác như tiền xử lý, hậu xử lý nhằm làm tăng độ chính xác cho hệ thống Do một số thông số như: tư thế khuôn mặt, độ sáng, điều kiện ánh sáng,… Phát hiện khn mặt được đánh giá là bước khó khăn và quan trọng nhất so với các bước còn lại của hệ thống
Hình 1.1 Bốn bước xử lý của hệ thống nhận dạng mặt người
Có nhiều nghiên cứu tìm ra phương pháp xác định khn mặt người, từ ảnh xám đến ngày nay là ảnh màu Dựa vào tính chất của các phương pháp này thành bốn hướng tiếp cận chính [15]:
- Hướng tiếp cận dựa trên tri thức: là hướng tiếp cận kiểu top-down mã hóa các hiểu biết của con người về các loại khuôn mặt người thành các luật Thông thường các luật mô tả quan hệ của các đặc trưng như quan hệ về khoảng cách hay vị trí Vấn đề phức tạp của hướng tiếp cận này là chuyển từ tri thức của con người sang các luật một cách hiệu quả
- Hướng tiếp cận dựa trên đặc trưng không thay đổi: là hướng tiếp cận kiểu bottom-up với mục tiêu là các thuật tốn đi tìm các thuộc tính đặc trưng mơ tả cấu trúc khn mặt người mà các đặc trưng này sẽ không thay đổi khi tư thế khn mặt, vị trí đặt thiết bị thu hình hoặc điều kiện ánh sáng thay đổi Từ đó xây dựng một mơ hình thống kê để mô tả quan hệ của các đặc trưng và xác định khuôn mặt trong ảnh Vấn đề phức tạp của hướng tiếp cận này là cần phải điều chỉnh cho phù hợp điều kiện sáng, nhiễu hay bị khuất
Trang 18- Hướng tiếp cận dựa trên máy học: các mơ hình học ở đây được học từ một tập ảnh huấn luyện cho trước Sau đó hệ thống sẽ áp dụng các kỹ thuật theo hướng xác suất thống kê và máy học để xác định khn mặt người Một số tác giả cịn gọi hướng tiếp cận này là hướng tiếp cận theo phương pháp học Có nhiều phương pháp như phương pháp sử dụng Eigenfaces, phương pháp sử dụng mạng neuron, SVM, mô hình neuron ẩn hay Adaboost
1.4 DEEP LEARNING
Deep Learning được xem là một nhánh nhỏ của Machine Learning khi sử dụng mạng lưới thần kinh với nhiều lớp Về bản chất, Deep Learning là một nhánh thuộc Artificial Intelligence (AI) đang được phát triển cách thức hoạt động của bộ não con người [16] Đây được xem là một thuật toán dựa trên các ý tưởng đến từ não bộ thông qua việc tiếp thu rất nhiều tầng biểu đạt hay trừu tượng để có thể làm rõ nghĩa của các loại dữ liệu nhằm nâng cấp các cơng nghệ như nhận diện giọng nói, tầm nhìn máy tính hay xử lý ngơn ngữ tự nhiên Deep learning sẽ thực hiện một nhiệm vụ nhiều lần, mỗi lần tinh chỉnh nhiệm vụ một chút để cải thiện kết quả, đơn giản là kết nối dữ liệu giữa tất cả các tế bào thần kinh nhân tạo và điều chỉnh chúng theo dữ liệu mẫu
Deep Learning được sử dụng khi dữ liệu phần lớn khơng có cấu trúc và có rất nhiều dữ liệu Những thuật tốn của Deep Learning vơ cùng đa dạng, mỗi thuật tốn sẽ được ứng dụng tùy vào từng bài toán cụ thể như Linear Regression, Logistic Regression, Naive Bayes, Support Vector Machines, K-Nearest Neighbors, Principal Component Analysis (PCA) hay Neural network Một số kỹ thuật hiện tại của Deep Learning như mạng thần kinh chuyển đổi CNN được dùng cho việc liên quan đến thị giác máy tính, mạng thần kinh ngơn ngữ RNN sử dụng cho việc chuyển đổi ngôn ngữ Hay mạng Perceptron là mạng cơ bản nhất dùng để thảo luận bên trong các số liệu viết tay
Trang 191.5 MƠ HÌNH CNN CONVOLUTIONAL NEURAL NETWORK
Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) là một trong những mơ hình Deep Learning tiên tiến Nó giúp xây dựng hệ thống xử lý ảnh thơng minh với độ chính xác cao, hiệu quả tính tốn cao hơn, địi hỏi ít tham số và dễ thực thi song song trên nhiều GPU hơn các kiến trúc mạng dày đặc khác
Hình 1.2 Kiến trúc cơ bản của một mạng tích chập
Hình 1.2 thể hiện kiến trúc mạng tích chập bao gồm các lớp cơ bản sau: lớp tích chập, hàm kích hoạt, lớp tổng hợp và lớp kết nối đầy đủ Các lớp này thường được thay đổi về số lượng và cách sắp xếp để tạo ra mơ hình huấn luyện phù hợp cho từng bài tốn cụ thể
1.5.1 Lớp tích chập
Trang 20Hình 1.3 Cửa sổ trượt trên một ma trận
Lớp tích chập có các tham số quan trọng là kích thước bộ lọc, bước nhảy và đường viền Kích thước bộ lọc tỉ lệ thuận với số tham số cần học tại mỗi tầng tích chập và là tham số quyết định receptive field của tầng này Kích thước của bộ lọc nhỏ thường được ưu tiên vì nó sẽ rút trích được các đặc trưng có tính cục bộ cao, giúp phát hiện các đặc trưng nhỏ hơn, thơng tin rút trích được đa dạng và hữu ích hơn ở tầng sau, ít trọng số do đó sẽ chia sẻ trọng số tốt hơn và cho phép mạng sâu hơn Kích thước bộ lọc hầu hết đều là số lẻ, ví dụ như 3x3 hay 5x5 Với kích thước bộ lọc lẻ, các giá trị của feature map sẽ xác định một tâm điểm ở tầng phía trước Nếu chọn bộ lọc có kích thước chẵn thì sẽ gặp khó khăn khi muốn tìm vị trí tương ứng của các giá trị ma trận ảnh đặc trưng trên khơng gian ảnh [18]
Ngồi kích thước bộ lọc, bước nhảy cũng là tham số quan trọng của lớp tích chập Khi bước nhảy là 1 thì bộ lọc di chuyển qua một điểm ảnh mỗi lần Khi bước nhảy là 2 thì bộ lọc nhảy qua 2 điểm ảnh mỗi lần tại thời điểm trượt bộ lọc xung quanh Điều này sẽ tạo ra khối đầu ra nhỏ hơn theo không gian được minh họa qua hình 1.4
Trang 21Tham số quan trọng cuối là đường viền Sử dụng đường viền cho phép kiểm sốt kích thước của khơng gian đầu ra, bảo tồn chính xác kích thước của khơng gian đầu vào sao cho kích thước của đầu vào và đầu ra là như nhau Hình 1.5 minh họa viền với giá trị 0, nghĩa là bổ sung một ô vào xung quanh các cạnh của đầu vào
Hình 1.5 Ma trận khi thêm viền 0 bên ngoài
1.5.2 Hàm kích hoạt
Các hàm kích hoạt sẽ mơ phỏng về tỷ lệ truyền xung qua sợi trục của một nơ-ron thần kinh và đóng vai trị là thành phần phi tuyến để giới hạn biên độ cho phép của giá trị đầu ra Đây là một lớp được xây dựng để đảm bảo tính phi tuyến của mơ hình sau khi trải qua nhiều phép tốn tuyến tính ở lớp tích chập Một số hàm kích hoạt thơng dụng được thể hiện trong bảng 1.2
Trang 22ReLU ),0max()(xxf Leaky, ReLU f(x)1(x0)(x)1(x) với α là hằng số nhỏ Maxout f(x)max(w1Txb1,w2Txb2)1.5.3 Lớp tổng hợp
Lớp tổng hợp (Pooling Layer) thường được đặt sau lớp tích chập và hàm kích hoạt Lớp tổng hợp là một lớp lấy những hình ảnh lớn và làm giảm kích thước dữ liệu nhưng vẫn giữ được các thông tin quan trọng trong đó Việc giảm kích thước dữ liệu có tác dụng làm giảm được số lượng tham số cũng như tăng hiệu quả tính tốn Lớp tổng hợp cũng sử dụng một cửa sổ trượt để quét toàn bộ các vùng trong ảnh giống như lớp tích chập và thực hiện phép tổng hợp, tức là chọn một giá trị đại diện của các điểm ảnh như hình 1.6 Như vậy, với mỗi ảnh đầu vào được đưa qua tổng hợp thu được ảnh đầu ra tương ứng có kích thước giảm xuống đáng kể nhưng vẫn giữ được những giá trị cần thiết cho q trình tính tốn sau này Các hàm tổng hợp có nhiều loại khác nhau như [17]:
- Max pooling lấy phần tử lớn nhất từ ma trận đối tượng - Average pooling lấy tổng trung bình từ ma trận đối tượng - Sum pooling lấy tổng tất cả các phần tử trong ma trận
Trang 231.5.4 Lớp kết nối đầy đủ
Tầng cuối cùng của mơ hình CNN là tầng kết nối đầy đủ (Fully Connected Layer) Đầu vào của lớp này là đầu ra từ lớp tổng hợp hoặc lớp tích chập cuối cùng được làm phẳng và sau đó đưa vào lớp kết nối đầy đủ Lớp kết nối đầy đủ được thiết kế tương tự mạng ron truyền thống Vector phẳng này có các ron kết nối đầy đủ với các nơ-ron ở tầng sau được thể hiện qua hình 1.7, các kết nối này giống như mạng thần kinh nhân tạo và thực hiện tính tốn tương tự Lớp này có chức năng tìm ra đường phân chia giữa các điểm dữ liệu thông qua việc học các kết hợp phi tuyến trong khơng gian
Hình 1.7 Mơ phỏng lớp kết nối đầy đủ
1.6 THƯ VIỆN OPENCV
Open Source Computer Vision được viết tắt là OpenCV là một thư viện mã nguồn mở được bắt đầu từ Intel bởi Gary Bradski vào năm 1999 [21] Nó được viết bằng tối ưu hóa C/C++ và có các giao diện C++, C, Python và Java có thể hỗ trợ Windows, Linux, Mac OS, IOS và Android OpenCV được thiết kế để tối ưu hóa và xử lý ứng dụng trong real-time – thời gian thực, giúp cho việc xây dựng các ứng dụng xử lý ảnh, thực tế ảo, thị giác máy tính… một cách nhanh gọn hơn Cấu trúc của Opencv được chia thành năm phần chính, bốn trong số đó được biểu diễn như hình 1.9:
- CV: chứa các hàm xử lý ảnh cơ sở và thuật tốn về thị giác máy tính mức cao - MILL: là thư viện machine learning, chứa các thuật toán học máy bao gồm các
bộ phân cụm, phân loại thống kê
- HighGUI: chứa các thủ tục vào, ra và các hàm dùng cho việc tải và lưu trữ file ảnh và file video
Trang 24Computer Vision(CV)
CXCORE
HighGUIMachine learning library
(MILL)
Hình 1.8 Cấu trúc cơ bản của OpenCV
1.7 THƯ VIỆN TENSORFLOW
Tensorflow là một nền tảng học máy mã nguồn mở, được thiết kế bởi đội ngũ Google Brain và tổ chức nghiên cứu trí tuệ máy của Google nhằm triển khai các ứng dụng của học máy và học sâu theo cách đơn giản Nó là kết hợp giữa đại số tính toán của các kỹ thuật tối ưu hoá để dễ dàng tính tốn các biểu thức tốn học [19] Kiến trúc của Tensorflow bao gồm 3 phần: xử lý trước dữ liệu, xây dựng mơ hình, đào tạo và ước tính mơ hình.Một số tính năng nổi bật của Tensorflow:
- Định nghĩa, tối ưu và tính tốn các biểu thức số học dễ dàng nhờ vào sự trợ giúp của các mảng đa chiều, gọi là tensors
- Hỗ trợ lập trình các kỹ thuật của mạng học máy và học sâu
- Bao gồm tính năng tính tốn độ ổn định cao với đa dạng các tập dữ liệu - Sử dụng GPU hoặc CPU để tính tốn và tự động quản lý
Tensorflow có tài liệu đầy đủ và bao gồm nhiều thư viện học máy nên rất phổ biến hiện nay Vì là một sản phẩm của Google, nên hiện tại, Tensorflow đang được ứng dụng rất nhiều trong các sản phẩm của Google như phân loại chữ viết tay, nhận diện hình ảnh, xử lý ngơn ngữ tự nhiên
1.8 THƯ VIỆN KERAS
Keras là một thư viện Học sâu mã nguồn mở dành cho Python, chạy trên các thư viện máy mã nguồn mở như TensorFlow, Theano hoặc Bộ công cụ nhận thức (CNTK) Keras dựa trên cấu trúc tối thiểu, cung cấp một cách dễ dàng và dễ dàng để tạo các mơ hình học sâu dựa trên TensorFlow hoặc Theano [22] Keras được thiết kế để xác định nhanh các mơ hình học sâu Một số đặc điểm nổi bật của Keras:
- API nhất quán, đơn giản và có thể mở rộng
- Cấu trúc tối thiểu, dễ dàng đạt được kết quả mà cần sự phức tạp - Hỗ trợ đa nền tảng và backend
Trang 251.9 CHUẨN GIAO TIẾP I2C
Inter – Integrated Circuit được viết tắt I2C là một giao thức giao tiếp được phát triển bởi Philips Semiconductors để truyền dữ liệu giữa một bộ xử lý trung tâm với nhiều IC trên cùng một board mạch chỉ sử dụng hai đường truyền tín hiệu [23] Vì tính đơn giản nên được sử dụng làm bus giao tiếp ngoại vi giữa vi điều khiển và cảm biến, các thiết bị hiển thị, EEPROMs… và nó trở thành một chuẩn công nghiệp cho các giao tiếp điều khiển Nó là giao thức giao tiếp nối tiếp đồng bộ, các bit dữ liệu được truyền lần lượt từng bit một theo khoảng thời gian đều đặn được thiết lập trước bởi tín hiệu clock tham chiếu
I2C kết hợp những tính năng tốt nhất của SPI và UART Vậy nên bus I2C (dây giao tiếp) cũng sử dụng hai dây để truyền dữ liệu giữa các thiết bị giống như UART gồm Serial Data Line (SDA) là đường truyền cho master và slave để gửi và nhận dữ liệu và Serial Clock Line (SDI) mang tín hiệu xung nhịp [24] I2C là giao thức truyền thông nối tiếp, dữ liệu truyền đi từng bit được gửi qua dây SDA và giống như SPI, đầu ra của các bit sẽ được đồng bộ với việc lấy mẫu các bit bởi tín hiệu đồng hồ (clock) từ SCL được chia sẻ giữa master và slave
Hình 1.9 Mơ hình giao thức I2C
SDA và SCL đều hoạt động như các bộ lái cực máng hở (open drain) Bất kỳ thiết bị hay IC trên mạng I2C có thể lái bus I2C xuống mức thấp nhưng không thể lái chúng lên mức cao Vì vậy, một điện trở kéo lên (khoảng 1 kΩ đến 4,7 kΩ) được sử dụng cho mỗi đường bus để giữ chúng ở mức cao (ở điện áp dương) theo mặc định
Trang 261.10 NGƠN NGỮ LẬP TRÌNH PYTHON
Python là ngơn ngữ lập trình bậc cao được dùng cho nhiều mục đích khác nhau, và đặc biệt được ứng dụng phổ biến trong phát triển trí tuệ nhân tạo Python được thiết kế thuận tiện cho những người lập trình với đặc điểm dễ đọc, dễ hiểu và dễ nhớ Với thiết kế dễ đọc, dễ hiểu và dễ nhớ python có những đặc điểm cơ bản sau:
- Cú pháp và từ khóa: Khác với các ngơn ngữ khác python không sử dụng dấu ngoặc nhọn để giới hạn khối lệnh và dấu chấm phẩy cuối câu có thể dùng hoặc khơng Các từ khóa của python được viết bằng tiếng Anh và có phân biệt chữ hoa và chữ thường
- Khối lệnh: Python sử dụng thụt lề bằng khoảng trắng để tạo khối lệnh Các khối lệnh con sẽ thụt lùi vào sâu hơn so với các khối lệnh mẹ mà nó trực thuộc - Khả năng mở rộng linh hoạt: Có thể dễ dàng tích hợp python vào việc viết các
đoạn mã khác nhau tùy thuộc vào nhu cầu sử dụng Có thể mở rộng chức năng của trình thơng dịch hoặc liên kết trình thơng dịch với ứng dụng viết bằng ngôn ngữ C để mở rộng hoặc tạo lệnh hỗ trợ cho ứng dụng đó
- Python được ứng dụng linh hoạt vào nhiều mục đích sau:
Lập trình ứng dụng web: Python có thể đóng vai trị như một ngơn ngữ xây dựng cho ứng dụng web Nó được sử dụng để xây dựng và phát triển cho nhiều website của doanh nghiệp hay website dạy học Một số khung web phổ biến sử dụng python như Django, Pylons, Pyramid, TurboGears, web2py, Tornado, Flask, Bottle và Zope
Lập trình tính tốn khoa học và phân tích dữ liệu: Với việc sở hữu những thư viện chuẩn lớn như Numpy, SciPy và Panda thì python là một trong số ít các ngơn ngữ lập trình có thể tính tốn và phân tích số liệu tốt nhất
Trí tuệ nhân tạo và học máy (Artificial Intelligence and Machine Learning): Các ứng dụng AI và ML yêu cầu ngôn ngữ ổn định, bảo mật, linh hoạt và được trang bị các cơng cụ có thể xử lý các yêu cầu khác nhau Python đáp ứng được tất cả các yêu cầu nêu trên và vì vậy nó đã trở nên ưa chuộng với các chuyên gia phát triển AI và ML
Trang 27 Xử lý ảnh và thiết kế đồ họa: Python được sử dụng để thiết kế và xây dựng các phần mềm hình ảnh 2D như Inkscape, GIMP, Paint Shop Pro và Scribus Ngồi ra, python cịn được sử dụng trong một số gói hoạt hình 3D như Blender, Houdini, 3ds Max, Maya, Cinema 4D và Lightwave
1.11 GIỚI THIỆU PHẦN CỨNG
1.11.1 Vi điều khiển Raspberry Pi 4 Model B
Raspberry Pi để chỉ các máy tính chỉ có một board mạch (hay cịn gọi là máy tính nhúng) có kích thước bẳng một thẻ tín dụng [25] Nó được phát triển tại Anh bởi Raspberry Pi Foundation với mục đích thúc đẩy việc giảng dạy về khoa học máy tính cơ bản trong trường học và các nước đang phát triển Raspberry Pi xây dựng xoay quanh bộ xử lý SoC Broadcom BCM2835 (chip xử lý mobile mạnh mẽ có kích thước nhỏ được dùng trong điện thoại di động) bao gồm CPU, GPU, bộ xử lý âm thanh /video, và các
tính năng khác
Raspberry Pi 4 Model B (Pi4B) là sản phẩm đầu tiên của dòng máy tính Raspberry Pi hỗ trợ nhiều RAM với hiệu suất CPU, GPU và I /O được nâng cao Có hình thức tương tự hệ số, năng lượng và chi phí như Raspberry Pi 3B + Pi4B có sẵn với 1, 2 và 4 Gigabyte LPDDR4 SDRAM [27] Raspberry Pi 4 model B chạy trên hệ điều hành Raspbian, có thể sử dụng và cài đặt các phần mềm lập trình như Python, Arduino
Hình 1.10 Hình ảnh thực tế của Raspberry Pi 4
Các chức năng chính của Raspberry Pi4 có thể kể đến như sau: - Sử dụng như máy tính để bàn
- Sử dụng như một smart TV - Máy chơi game
Trang 28- Xây dựng một hệ thống an ninh - Xây dựng một công cụ giám sát mạng
- Hệ thống tự động hóa tại gia đình với Arduino
1.11.2 Cảm biến ảnh nhiệt AMG8833
Cảm biến nhiệt AMG8833 8x8 Non - Contact IR Thermal Camera Sensor giúp thu được hình ảnh nhiệt của vật thể từ xa thích hợp với các ứng dụng đo nhiệt độ, thu ảnh nhiệt từ xa Module camera ảnh nhiệt phát hiện phân bố hồng ngoại của các đối tượng trong trường nhìn, biến dữ liệu thành nhiệt độ bề mặt của các đối tượng bằng cách tính tốn và sau đó tạo ra hình ảnh nhiệt [28]
Hình 1.11 Cảm biến nhiệt AMG8833 8x8 Non-Contact IR Thermal Camera Sensor
AMG8833 thu nhiệt bức xạ từ một vật thể phát tia tử ngoại Nhiệt độ được tính bằng cách sử dụng định luật Stefan-Boltzmann: 4TA (2.5)
trong đó, ε được gọi là độ phát xạ (từ 0 đến 1), A là diện tích bề mặt, σ là hằng số Stefan-Boltzmann, T là nhiệt độ của vật thể và, Π là công suất bức xạ Các nhiệt kế hồng ngoại (nhiệt kế của cặp nhiệt điện) đo cơng suất bức xạ, do đó cần có sự chuyển đổi thành nhiệt độ gần đúng Một phương trình đơn giản cho nhiệt độ gần đúng của vật như sau:
)( 44sobjTTkV (2.6)
Trong đó, V thể hiện điện áp được đo bởi cảm biến thô, k là hằng số thực nghiệm hấp thụ A, ε, σ và nhiễu điện tử có thể tồn tại Các Ts là nhiệt độ của cảm biến chính nó, Tobjlà nhiệt độ của đối tượng được đo
Nhiệt độ cảm biến được trừ đi để đảm bảo không làm sai lệch phép đo nhiệt độ đối tượng Để có kết quả chính xác về nhiệt độ, các cảm biến thường được hiệu chuẩn bằng cách sử dụng các vật liệu ở các nhiệt độ khác nhau để đảm bảo giá trị chính xác Phương trình thực nghiệm cho nhiệt độ của vật thể:
Trang 291.11.3 Webcam usb 720p
Webcam với mục đích kết nối với raspberry để thu nhận ảnh đầu vào Sau khi khảo sát và thử nghiệm một số loại camera trên thị trường, nhóm quyết định sử dụng webcam với độ phân giải 720p để phù hợp với tốc độ xử lí của vi điều khiển Loại webcam usb 720p có thể phát video HD ở tốc độ 30 khung hình/giây và cung cấp hình ảnh rõ nét Ngồi ra cịn có chức năng tự động lấy nét ngay cả trong điều kiện thiếu sáng Nó được kết nối với Raspberry thơng qua cổng USB 2.0
Hình 1.12 Webcam 720p
1.11.4 Loa phát di động
Loa di động sử dụng điện trực tiếp từ cổng nguồn USB, thiết kế nhỏ gọn, lấy tín hiệu từ jack cắm 3,5mm - loại jack cắm thông dụng hiện nay được áp dụng cho thiết bị truyền thơng và di động Có thể dễ dàng kết nối với Raspberry qua cổng AV để lập trình việc phát âm thanh
Trang 30Chương 2 PHƯƠNG PHÁP THỰC HIỆN
2.1 TÍNH TỐN VÀ THIẾT KẾ MƠ HÌNH2.1.1 Thiết kế sơ đồ khối mơ hình
Dựa trên các u cầu của đề tài “Thiết kế và thi cơng mơ hình camera đo thân nhiệt, nhắc nhở đeo khẩu trang” nên mơ hình này sẽ gồm những khối được thể hiện như hình 2.1 gồm: khối thu nhận ảnh và nhiệt độ, khối xử lý trung tâm, khối cảnh báo và khối nguồn
Hình 2.1 Sơ đồ khối mơ hình
Khối thu nhận ảnh và nhiệt độ: Sử dụng webcam 720p và cảm biến ảnh nhiệt AMG8833 cho phép thu nhận hình ảnh và nhiệt độ để đưa vào khối xử lý trung tâm xử lý
Khối xử lý trung tâm: Sử dụng Raspberry Pi4 Model B với chức năng chính của khối này là tính tốn, xử lý hình ảnh khn mặt có trong ảnh đầu vào và thơng số nhiệt độ đo được sau đó đưa kết quả xử lý được đến khối tiếp theo
Khối cảnh báo: Khối này sử dụng loa để phát cảnh báo
Nguồn ni: Có chức năng cung cấp nguồn cho khối xử lý trung tâm
2.1.2 Tính tốn và thiết kế mạch a Thiết kế khối thu nhận ảnh
Để thu nhận ảnh đầu vào, đề tài sử dụng webcam usb 720p Thiết bị này có ống kính có thể điều chỉnh lên và xuống 30 độ Với việc khơng cần trình điều khiển giúp việc kết nối webcam với vi điều khiển trung tâm dễ dàng qua cổng usb Bảng 2.1 dưới
KHỐI THU NHẬN ẢNH VÀ NHIỆT ĐỘ
KHỐI XỬ LÝ TRUNG TÂM
KHỐI CẢNH BÁO
Trang 31đây cho thấy các thông số kỹ thuật của thiết bị này phù hợp với mơ hình Camera được kết nối dễ dàng với vi điều khiển thông qua cổng USB
Bảng 2.1 Thông số kỹ thuật của webcam usb 720p
Tốc độ khung hình 30/s
Phạm vi lấy nét 20MM-cực nhỏ
Phương pháp lấy nét Tự động
Giao tiếp USB 2.0
Kích thước 11cm13cm5cm
Độ phân giải 1280720
Phụ kiện Dây kết nối dài 1.5m
b Thiết kế khối đo nhiệt độ
Cảm biến nhiệt độ AMG8833 phát hiện nhiệt độ bằng cách nhận biết và chụp các mức ánh sáng hồng ngoại có bức xạ khác nhau và chuyển nó thành hình ảnh có thể nhìn thấy bằng mắt, kết nối dễ dàng với Raspberry qua chuẩn giao tiếp I2C với lập trình Python Bảng 2.2 dưới đây mô tả các thông số kỹ thuật của module cảm biến ảnh nhiệt AMG8833
Bảng 2.2 Thông số kỹ thuật của cảm biến nhiệt AMG8833
Điện áp sử dụng 3.3-5 VDC
Chuẩn giao tiếp I2C
Số điểm ảnh nhiệt 88 (64 điểm ảnh)
Khoảng nhiệt độ đo được 0~80 °C
Sai số 2.5 °C
Khoảng cách đo tối đa 7m
Kích thước 17.817.8mm
c Thiết kế khối xử lý trung tâm
Trang 32- Cổng nguồn micro USB: 5V/3A
- Lưu trữ: microSD card slot do Raspberry khơng tích hợp ổ cứng
- Audio: Kết nối dễ dàng với loa hoặc headphone qua cổng AV bằng jack cắm 3.5mm
- USB: 2 cổng USB 3.0, 2 cổng USB 2.0
- GPIO: 40 chân tiêu chuẩn tương thích với các board Raspberry Pi phiên bản trước:
2 chân có mức điện áp 3.3V (chân số 1 và chân số 17) 2 chân có mức điện áp 5V (chân số 2, chân số 4)
8 chân Ground (0V) (chân số 6, 9, 14, 20, 25, 30, 34, 39)
28 chân GPIO (chân số 3, 5, 7, 8, 10, 11, 12, 13, 15, 16, 18, 19, 21, 22, 23, 24, 26, 27, 28, 29, 31, 32, 33, 35, 36, 37, 38, 40)
d Thiết kế khối cảnh báo
Nhằm mục đích cảnh báo sau khi phát hiện có người khơng tn thủ việc đeo khẩu trang và có thân nhiệt cao, nhóm đã chọn loa phát kết nối với bộ xử lý trung tâm qua cổng AV bằng jack cắm 3.5mm Lựa chọn các loa có sẵn jack cắm Nhóm khơng chọn buzzer thơng thường vì nó chỉ cảnh báo bằng tiếng kêu bíp bíp Loại loa có jack cắm có thể lập trình để cảnh báo bằng đoạn âm thanh mong muốn Thông số kỹ thuật của loa phù hợp với đề tài:
- Nguồn cấp: 5V DC - Công suất: 6W
- Có nút vặn âm lượng lớn nhỏ - Kết nối: Jack 3.5
e Nguồn nuôi
Trang 33Bảng 2.3 Thống kê dòng và tải sử dụng cho mạch
Tên linh kiện Điện áp Dòng hoạt động
Camera 5V ICam=250mA
AMG8833 5V IAMG=4.5mA
Loa phát 5V ILoa=1000mA
Quạt tản nhiệt 5V IQuạt=200mA
Hình 2.2 Nguồn Adapter 5V/3A
Trang 34Sơ đồ nguyên lý của mơ hình gồm vi điều khiển là raspberry pi 4 kết nối với module cảm biến ảnh nhiệt AMG8833 bằng chuẩn giao tiếp I2C thông qua hai chân SDA và SCL cho phép thu nhận dữ liệu nhiệt độ Raspberry kết nối camera thông qua cổng USB 3.0 cho phép thu nhận dữ liệu hình ảnh Loa phát được kết nối với raspberry qua cổng audio để nhận âm thanh từ raspberry và cổng USB để nhận nguồn Ngoài ra cịn có quạt tản nhiệt được kết nối thơng qua chân 5V và GND giúp làm mát raspberry khi hoạt động Mơ hình được cấp nguồn hoạt động thơng qua cổng micro-C USB với điện áp 5V (DC) bằng adapter
2.1.4 Thiết kế vỏ hộp mơ hình
Sau khi hoàn thành việc lựa chọn và ổn định kết nối các phần linh kiện của mơ hình, cần thiết kế một vỏ hộp để đựng các linh kiện tạo điều kiện thuận lợi trong việc sử dụng mơ hình cũng như bảo vệ các linh kiện Vỏ hộp sẽ được thiết kế và vẽ bằng phần mềm Solidworks
Hình 2.4 Bản vẽ thiết kế của vỏ hộp mơ hình
Trang 35như hình 2.9 Cụ thể vị trí loa là cách đều hai cạnh bên 5mm, kích thước khoảng trống là 60mm x 60mm Kích thước của camera thường là 10mm x 20mm và của cảm biến ảnh nhiệt là 7mm x 10mm Mặt trên của mô hình có lỗ để đưa dây nguồn ra ngồi dạng hình vng kích thước cạnh 5mm Các linh kiện được bố trí và cố định bên trong hộp, đồng thời cơng tắc nguồn của mơ hình cố định tại mặt trên của mơ hình để dễ dàng sử dụng
2.2 THIẾT KẾ MƠ HÌNH MẠNG CNN
Mạng nơ-ron tích chập CNN có nhiều phiên bản của mạng được đào tạo trước và có kiến trúc tốt như mạng Resnet, AlexNet, LeNet, MobileNet,… Nhóm đã thiết kế mạng CNN với mơ hình MobileNetV2 là mơ hình hướng di động, khá nhẹ, số lượng tham số ít, tốc độ tính tốn nhanh và dễ triển khai ứng dụng real time trên các hệ thống nhúng Sau đó xây dựng mơ hình huấn luyện dựa trên nghiên cứu của tác giả Phạm Thị Hường [30] với các lớp khác nhau như AveragePooling2D, Flatten, Dropout và Dense như hình 2.10
Kiến trúc MobileNetV2 chứa lớp tích chập đầy đủ ban đầu với 32 bộ lọc, theo sau là 19 lớp residual bottleneck [19] Sau đó qua một hàm phi tuyến ReLU với tốc độ tính tốn nhanh và phương pháp chuẩn hóa hàng loạt trong suốt quá trình huấn luyện Kiến trúc MobileNetV2 có kích thước nhỏ hơn so với các kiến trúc khác do có chứa ít tham số hơn, ít phức tạp do sử dụng phép tốn nhân và cộng ít hơn các kiến trúc khác
Mạng MobileNetV2 sử dụng Depthwise Separable Convolutions, ngồi ra cịn đề xuất thêm Linear bottlenecks và Inverted Residual Block để tránh được các lớp kích hoạt phi tuyến làm mất mát thông tin khi dữ liệu đi qua MobileNetV2 sử dụng 2 loại khối, bao gồm: khối residual với stride = 1 và khối với stride = 2 để thu nhỏ như hình 2.5 Có 3 phần đối với mỗi khối [20]:
- Layer đầu là 1×1 convolution với ReLU6 - Layer thứ hai là depthwise convolution
Trang 36Hình 2.5 Các khối tích chập của mạng MobileNetV2
Đầu tiên ảnh đầu vào sẽ vào lớp nền cơ sở đầu tiên MobileNetV2 làm cơng cụ trích xuất tính năng để phát hiện mặt nạ Một bộ phân loại được thiết kế bằng cách sử dụng 5 lớp ẩn tiếp theo Lớp ẩn đầu tiên là lớp Pooling, cụ thể là lớp AveragePooling2D có kích thước 7x7 với chức năng giảm kích thước của ảnh nhưng vẫn giữ được các đặc trưng cơ bản của ảnh và tránh overfitting Theo sau lớp Pooling là lớp Flatten làm phẳng ảnh nhằm tạo ra một véc-tơ đối tượng dài duy nhất để phân loại Sau khi chuyển qua lớp Dense dùng hàm kích hoạt ReLU để lọc các giá trị điểm ảnh nhỏ hơn 0 Lớp Dropout tiếp theo để làm giảm số nút mạng một cách ngẫu nhiên, được sử dụng để chống overfitting Và cuối cùng là lớp ngõ ra bao gồm Mask và No Mask đi kèm là hàm kích hoạt Softmax để phân loại đối tượng dựa trên giá trị xác suất
Hình 2.6 Bộ mơ hình mạng CNN xây dựng bằng kiến trúc MobileNetV2
2.3 PHƯƠNG PHÁP ĐO NHIỆT ĐỘ
Trang 37để so sánh với nhiệt độ cảm biến thu được và tìm ra cơng thức liên hệ giữa hai giá trị này Phương pháp này dựa trên tài liệu nghiên cứu của nhóm tác giả đến từ trường đại học Lampung của Indonesia [31] và đề tài nghiên cứu của tác giả Mohammad Fernanduz William Andreaw [32]
Hình 2.7 Phương pháp đo nhiệt độ khơng tiếp xúc
Áp dụng phương pháp này nhóm tiến hành đo và lấy 10 giá trị nhiệt độ cơ thể khác nhau mà mơ hình và thiết bị chuẩn đo được Nhiệt độ cơ thể mà mơ hình đo được là nhiệt độ lớn nhất mà cảm biến thu nhận được khi có người đứng trước cảm biến Thiết bị chuẩn nhóm chọn súng đo nhiệt của hãng OMRON Kết quả được ghi nhận vào bảng 2.4 Sau khi có bảng thống kê nhóm tính tốn để tìm cơng thức liên hệ giữa 2 giá trị Công thức 2.1 dưới đây là cơng thức hiệu chỉnh để có được nhiệt độ gần đúng cho mơ hình Trong đó x là giá trị nhiệt độ ban đầu mà cảm biến đo được và y là giá trị nhiệt độ đã được hiệu chỉnh 308.35*0538.0 xy (2.1)
Bảng 2.4 Thống kê kết quả nhiệt độ cơ thể mà 2 sản phẩm đo được
Lần đo Nhiệt độ cơ thể mơ
hình đo được (°C)
Nhệt độ cơ thể máy
OMRON đo được °(C)
Trang 382.4 PHƯƠNG PHÁP ĐÁNH GIÁ MƠ HÌNH HUẤN LUYỆN DỮ LIỆU
Dữ liệu huấn luyện được lấy tập dữ liệu đã tạo với nhiều tư thế, ánh sáng và sự che khuất khác nhau Dữ liệu bao gồm các khn mặt có khẩu trang, không khẩu trang Để đánh giá tập trọng số cần xác định lỗi cho cả quá trình huấn luyện (loss) và kiểm tra (val_loss), ta sử dụng hàm Cross Entropy Cụ thể, tính tốn loss của mỗi trường hợp bằng cách tính giá trị trung bình như sau:
niiiiiyyyynyyloss11log*)1(log**1, (2.2) Với n là số lượng giá trị vô hướng trong đầu ra của mơ hình, hàm loss trả về một số thực khơng âm thể hiện sự chênh lệch giữa hai đại lượngy là xác suất nhãn được dự đoán và y là xác suất của nhãn đúng Hơn nữa để kiểm định hiệu năng của mơ hình phân loại, cần tính tốn tỷ lệ chính xác trung bình trên tất cả các dự đoán sử dụng thang đo ma trận nhầm lẫn như sau: Bảng 2.5 Ma trận nhầm lẫn Thực tế Dự đốn Dương tính Âm tính Dương tính TP FN Âm tính FP TN
Trong đó các hàng của ma trận là nhãn lớp thực tế, các cột của ma trận là nhãn lớp dự đoán Dương tính là các khn mặt đeo khẩu trang, âm tính là các khn mặt khơng đeo khẩu trang Chú thích:
- TP: số lượng khn mặt đeo khẩu trang được phân loại chính xác
- FP: số lượng khuôn mặt không đeo khẩu trang bị phân loại nhầm là khuôn mặt đeo khẩu trang
- FN: số lượng khuôn mặt đeo khẩu trang bị phân loại nhầm là khuôn mặt không đeo khẩu trang
- TN: số lượng khuôn mặt không đeo khẩu trang được phân loại chính xác Từ đó độ chính xác của mơ hình được tính theo cơng thức sau:
FNTNFPTPTNTPAccuracy (2.3)
Trang 39đánh giá mơ hình phân lớp đó là F1_scoregiúp ta có căn cứ để lựa chọn model được tính tốn dựa trên hai độ đo khác là precision và recall Precision thể hiện sự chuẩn xác của việc phát hiện tất cả các positive, số này càng cao thì model nhận các điểm càng chuẩn Recall thể hiện khả năng phát hiện tất cả các positive, tỷ lệ này càng cao thì cho thấy khả năng bỏ sót các điểm positive càng thấp Các độ đo này được tính tốn như sau:
FPTPTPecisionPr (2.4) FNTPTPcallRe (2.5) 2Re1Pr12_1 FNFPTPTPcallecisionFscore (2.6) 2.5 LẬP TRÌNH HỆ THỐNG
Chương trình chính của hệ thống và cụ thể là của bộ điều khiển Raspberry Pi được viết bằng ngơn ngữ lập trình Python được chạy trực tiếp trên hệ điều hành Raspbian của Raspberry Pi Sau khi thiết lập được xong phần cứng nhóm tiến hành viết chương trình để mơ hình có thể hoạt động
2.5.1 Quy trình thu thập dữ liệu tập mẫu huấn luyện mơ hình
Trang 402.5.2 Lưu đồ quy trình huấn luyện tập dữ liệu
Để huấn luyện mơ hình theo như hình 2.7, đầu tiên sẽ khai báo các thư viện cần thiết cho quá trình huấn luyện cũng như khai báo các tham số của mạng bao gồm tốc độ học (INIT_LR) là 0.0001, số lần học (epoch) là 20, số lượng mẫu dữ liệu trong một batch (batch_sizes) là 32 Tiếp theo sẽ lấy hình ảnh ở tập dữ liệu đầu vào được tạo Sau đó tiến hành chia tập dữ liệu theo tỷ lệ 80% cho tập train và 20% cho tập test Thực hiện mã hóa hình ảnh bằng cách định lại kích thước ảnh thành 224224 pixel và chuyển đổi sang định dạng mảng Tiếp đến là huấn luyện dữ liệu bằng mơ hình đã được thiết kế và lưu mơ hình sau khi huấn luyện với tên là “mask_detector.model” Q trình hồn tất sẽ xuất ra các thơng số để đánh giá mơ hình
Bắt đầu
Chia tập dữ liệu hình ảnhMã hóa hình ảnh, tạo nhãn
Kết thúcKhai báo thư việnKhai báo tham số của mạng
Lấy danh sách hình ảnh
Huấn luyện dữ liệuLưu mơ hình
Xuất ra các thơng số đánh giá mơ hình