1.3 Nội dung thực hiệnSử dụng các kiến thức đã học trong 2 học phần môn vi điều khiển và trí tuê m nhân tạo để tìm hiểu:- Tiến hành thiết lâ mp sơ đồ khối hê m thống.- Xử lí các quá trìn
Trang 1ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬTKHOA ĐIỆN – ĐIỆN TỬ
-ĐỒ ÁN HỌC PHẦN
Ngành: Công nghệ kỹ thuật điện tử - viễn thôngChuyên ngành: Điện tử máy tính – mạng truyền thông
Đề tài:
NHẬN DIỆN NGƯỜI ĐEO KHẨU TRANG THEO THỜIGIAN THỰC
Giảng viên hướng dẫn : TS Nguyễn Linh Nam
Sinh viên thực hiện: Bùi Xuân Quang 1911505410148 -19DT1 Trần Duy Tân 1911505410153 - 19DT1
Đà Nẵng, tháng 12 năm 2022
Trang 2LỜI CẢM ƠN
Lời đầu tiên, chúng em xin trân thành cảm ơn và bày tỏ lòng biết ơn sâu sắc nhất tới giảng viên hướng dẫn môn Đồ án Điện tử - Viễn thông 2 - thầy Nguyễn Linh Nam đã nhiệt tình hướng dẫn.
Chúng em xin chân thành cảm ơn các thầy cô giáo đang giảng dạy tại Khoa Điện - Điện tử đã nhiệt tình ủng hộ, cung cấp tài liệu và đưa ra những ý kiến góp ý quý báu.
Do kiến thức còn hạn chế của chúng em, bài báo cáo này không thể tránh khỏi những thiếu sót Chúng em rất mong được thầy cô giáo nhận xét và góp ý để chúng em hoàn thiện tốt hơn đề tài của mình.
Xin chân thành cảm ơn!
Trang 3
1.5 Các bước trong chu trình xây dựng thuật toán nhận diện khuôn mặt 7
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 8
2.4 Giới thiệu về ngôn ngữ lập trình Python và OpenCV 20
2.4.1 Giới thiệu OpenCV 20
2.4.2 Ngôn ngữ Python 21
2.5 Thuật toán hệ thống 23
2.5.1 Thuật toán thu thập dữ liệu 23
2.5.2 Thuật toán huấn luyện mô hình 24
2.5.3 Thuật toán phát hiện người đeo khẩu trang trong thời gian thực 25
CHƯƠNG 3 MÔ PHỎNG CHƯƠNG TRÌNH 27
3.1 Cài đặt cơ bản cấu hình ESP32-CAM 27
3.2 Kết quả chạy chương trình trên ESP32-CAM 32
3.3 Kết luận 33
3.4 Hướng phát triển 33
Trang 4Hình 2.8 Logo ngôn ngữ Python 22
Hình 2.9 Thuật toán thu thập dữ liệu 24
Hình 2.10 Thuật toán huấn luyện mô hình 25
Hình 2.11 Thuật toán phát hiện người đeo khẩu trang 26
Hình 3.1 ESP32-CAM 28
Hình 3.2 Mạch chuyển UART CP2102 28
Hình 3.4 Kết quả hiển thị màu xanh khi đeo khẩu trang 33
Trang 5CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI
1.1 Lý do chọn đề tài
Việc đeo khẩu trang nơi công cộng đã góp phần hạn chế được sự lây lan của dịch bệnh covid 19 trên toàn cầu Giám sát người dân thực hiện đúng chủ trương, chính sách của Nhà nước trong việc đeo khẩu trang nơi công cộng hoàn toàn có thể được thực hiện một cách tự động Bằng việc ứng dụng công nghệ xử lý ảnh, nhóm em đã cùng nhau xây dựng nên chương trình phát hiện người dân có đeo khẩu trang hay không và nhắc nhở Chương trình dựa trên ngôn ngữ python và một số thư viện mã nguồn mở như Open CV, Keras, Mô hình được thực hiện đạt độ chính xác cao lên đến 98, 99% khi tiến hành phát hiện người đeo khẩu trang trên tập dữ liệu thử nghiệm.
Hình 1.1 Công nghệ xử lý ảnh
1.2 Vấn đề giải quyết
Với đề tài này chúng ta xác định mục tiêu là người có đeo khẩu trang hay không Yêu cầu đă mt ra này gồm các tiêu chí:
- Nhâ mn diê mn có đô m chính xác cao
- Cho phép lưu khuôn mă mt vào dữ liê mu hê m thống.
- Tốc đô m xử lý nhanh, khi có người không đeo khẩu trang đứng trong khung hình của camera lập tức có kòi báo
Sản phẩm có tính thẩm my,nhỏ gọn.
Trang 61.3 Nội dung thực hiện
Sử dụng các kiến thức đã học trong 2 học phần môn vi điều khiển và trí tuê m nhân tạo để tìm hiểu:
- Tiến hành thiết lâ mp sơ đồ khối hê m thống.
- Xử lí các quá trình nhâ mn diê mn và thông báo đúng lúc.
- Thực hiê mn lắp đă mt phần cứng và viết nạp code theo yêu cầu chức năng.
1.4 Công nghệ nhận dạng khuôn mặt
Nhâ mn dạng khuôn mă mt là một ứng dụng máy tính tự động xác định hoặc nhận dạng một người nào đó từ một bức hình ảnh ky thuật số hoặc một khung hình video từ một nguồn video Một trong những cách để thực hiện điều này là so sánh các đặc điểm khuôn mặt chọn trước từ hình ảnh và một cơ sở dữ liệu về khuôn mặt Hệ thống này thường được sử dụng trong các hệ thống an ninh và có thể được so sánh với các dạng sinh trắc học khác như các hệ thống nhận dạng vân tay hay tròng mắt.
- Nhâ |n dạng truyền thống.
Một số thuật toán nhận dạng khuôn mặt xác định các đặc điểm khuôn mặt bằng cách trích xuất các ranh giới, hoặc đặc điểm, từ một hình ảnh khuôn mặt của đối tượng Ví dụ, một thuật toán có thể phân tích các vị trí tương đối, kích thước, và/hoặc hình dạng của mắt, mũi, gò má, và cằm Những tính năng này sau đó được sử dụng để tìm kiếm các hình ảnh khác với các tính năng phù hợp
Các thuật toán bình thường hóa một bộ sưu tập các hình ảnh khuôn mặt và sau đó nén dữ liệu khuôn mặt, chỉ lưu dữ liệu hình ảnh nào là hữu ích cho việc nhận dạng khuôn mặt Một hình ảnh mẫu sau đó được so sánh với các dữ liệu khuôn mặt Một trong những hệ thống thành công sớm nhất dựa trên các ky thuật phù hợp với mẫu áp dụng cho một tập hợp các đặc điểm khuôn mặt nổi bật, cung cấp một dạng đại diện của khuôn mặt được nén.
Các thuật toán nhận dạng có thể được chia thành hai hướng chính, là hình học, đó là nhìn vào tính năng phân biệt, hoặc trắc quang (đo sáng), là sử dụng phương pháp thống kê để 'chưng cất' một hình ảnh thành những giá trị và so sánh các giá trị với các mẫu để loại bỏ chênh lệch.
Trang 7Hình 1.2 Nhận diện khuôn mặt truyền thống
- Nhâ |n dạng 3D
Một xu hướng mới nổi lên, tuyên bố cải thiện được độ chính xác, là nhận dạng khuôn mặt ba chiều Ky thuật này sử dụng các cảm biến 3D để nắm bắt thông tin về hình dạng của khuôn mặt Thông tin này sau đó được sử dụng để xác định các tính năng đặc biệt trên bề mặt của một khuôn mặt, chẳng hạn như các đường viền của hốc mắt, mũi và cằm
Các điểm dữ liệu ba chiều từ một khuôn mặt cải thiện lớn độ chính xác cho nhận dạng khuôn mặt Nghiên cứu 3D được tăng cường bởi sự phát triển của các bộ cảm biến tinh vi giúp nắm bắt hình ảnh chụp khuôn mặt 3D được tốt hơn Các cảm biến hoạt động bằng cách chiếu ánh sáng có cấu trúc lên gương mặt
Hàng chục hoặc nhiều hơn nữa các bộ cảm biến hình ảnh này có thể được đặt lên trên cùng một con chip CMOS-mỗi cảm biến sẽ thu một phần khác nhau của hình ảnh
Hình 1.3 Nhận diện khuôn mặt 3D
Trang 81.5 Các bước trong chu trình xây dựng thuật toán nhận diện khuôn mặt.Bước 1: Nhận diện khuôn mặt.
Máy ảnh phát hiện và định vị hình ảnh của một khuôn mặt khi đối tượng đang ở một mình hoặc trong một đám đông Từ đó ghi nhận hình ảnh của đối tượng.
Bước 2: Phân tích khuôn mặt.
Tiếp theo, hình ảnh khuôn mặt đối tượng được chụp lại và tiến hành phân tích Hầu hết công nghệ nhận diện khuôn mặt dựa trên hình ảnh 2D thay vì 3D vì nó có thể khớp hình ảnh 2D với ảnh công khai trong cơ sở dữ liệu một cách thuận tiện và chính xác hơn Sau đó đưa vào phần mềm để tiến hành đọc hình dạng khuôn mặt của đối tượng Các yếu tố chính cần xử lý bao gồm khoảng cách giữa hai mắt, độ sâu của hốc mắt, khoảng cách từ trán đến cằm, hình dạng của gò má và đường viền của môi, tai và cằm Mục đích là để xác định các điểm mốc chính trên khuôn mặt nhằm phân biệt nhiều người khác nhau.
Bước 3: Chuyển đổi hình ảnh thành dữ liệu.
Chuyển đổi ảnh chụp khuôn mặt thành một tập hợp thông tin ky thuật số (dữ liệu) dựa trên các đặc điểm khuôn mặt của người đó Những thuộc tính khuôn mặt sẽ được xử lý dưới dạng các thuật toán và công thức, và mỗi người sẽ sở hữu một dữ liệu khuôn mặt riêng biệt.
Bước 4: Tìm kết quả nhận diện khuôn mặt phù hợp.
Bước tiếp theo tiến hành so sánh với cơ sở dữ liệu khuôn mặt sẵn có Nếu khuôn mặt được ghi lại khớp với một hình ảnh trong cơ sở dữ liệu, thì việc xác định sẽ hoàn tất.
Trang 9CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 Hệ thống nhận diện khuôn mặt2.1.1 Cấu trúc chương trình
Hê m thống nhâ mn dạng mă mt người là mô mt hê m thống nhâ mn vào mô mt ảnh hoă mc đoạn video (mô mt dòng gồm các ảnh liên tục) Qua quá trình xử lí, tính toán hê m thống xác định vị trí mă mt người có trong ảnh và xác định là người nào trong số những người mà hê m thống biết (qua quá trình học) hoă mc người lạ.
Hình 2.1 Hệ thống nhận dạng khuôn mặt Cấu trúc chương trình gồm 3 bước được thể hiện trên Hình 1.
Bước 1: Thu thập dữ liệu: Sử dụng mã nguồn mở OpenCV để phát hiện, lưu trữ 500 bức ảnh của người đeo khẩu trang và 500 bức ảnh của người không đeo khẩu trang
Bước 2: Sử dụng nguồn dữ liệu đã thu thập được ở bước 1 để huấn luyện mô hình dựa trên mô hình mạng nơron tích chập CNN
Bước 3: Phát hiện người đeo khẩu trang hay không Bước này sẽ tiến hành so sánh dữ liệu được trích xuất từ camera (sau khi đã được xử lý dữ liệu đầu vào) với dữ liệu đã được huấn luyện để trích xuất kết quả và cảnh báo bằng giọng nói.
2.1.2 Những tham số hình ảnh cơ bản
Khuôn mă mt con người vốn d} đa dạng Điều này khiến cho hình ảnh thu được của khuông mă mt rất phong phú, có thể chỉ ra mô mt số tham số cho các hình ảnh này như:
Trang 10- Góc quay xung quanh trục thẳng đứng: tham số này ảnh hưởng tới tính đối xứng của khuôn mă mt, đồng thời che lấp mô mt con mắt và làm thay đổi hình ảnh hiển thị của những chi tiết khác trên khuôn mă mt.
- Góc quay xung quanh trục nằm ngang: ứng với tư thế ngẩng hay cúi đầu của đối tượng thu nhâ mp trước máy quay, tham số này ảnh hưởng tới sự hiê mn diê mn của mô mt số chi tiết quan trọng trên khuôn mă mt như đôi mắt, vùng trán hay vùng miê mng.
- Góc quay xung quanh trục nối liền khuôn mă mt với máy quay: tham số này không biểu hiê mn đến những chi tiết trên khuôn mă mt và có thể khôi phục về vị trí thẳng đứng bằng phép xử lí quay hình.
- Kích thước khuôn mă mt
- Tỉ lê m của các chiều của khuôn mă mt
- Cảm xúc của khuôn mă mt: tham số này làm thay đổi hình ảnh hiển thị của những chi tiết trên khuôn mă mt
2.2 Giới thiệu về ESP32-CAM2.2.1 Khái niệm
Hình 2.2 ESP32-CAM
ESP32-CAM có một module camera cỡ nhỏ có thể hoạt động như một hệ thống độc lập với kích thước 27x40.5x4.5mm và dòng ở chế độ deep sleep lên đến 6mA.
Trang 11ESP32-CAM được đóng gói DIP-16 (Dual In-line Package) và có thể được lắp trực tiếp vào bo mạch chủ, cung cấp cho khách hàng chế độ kết nối với độ tin cậy cao, thuận tiện cho việc ứng dụng trong các thiết bị IoT khác nhau.
Module cần phải được lập trình với ESP-IDF và không hỗ trợ Arduino IDE ESP32 là chip kết hợp Wi-Fi và Bluetooth 2,4 GHz được thiết kế với TSMC 40 nm công suất cực thấpCông nghệ Nó được thiết kế để đạt được công suất và hiệu suất RF tốt nhất, thể hiện sự mạnh mẽ, linh hoạt vàđộ tin cậy trong nhiều ứng dụng và các kịch bản điện năng.
Dòng chip ESP32 bao gồm D0WD-V3, D0WDQ6-V3, ESP32-D0WD, ESP32-D0WDQ6, ESP32-D2WD, ESP32-S0WD và ESP32-U4WDH, trong đó, ESP32-D0WD-V3, ESP32-D0WDQ6-V3, và ESP32-U4WDH dựa trên tấm wafer ECO V3.
2.2.2 Ứng dụng
…ng dụng thực tế trong thực tế
Sử dụng rộng rãi trong các ứng dụng IoT: các thiết bị thông minh trong nhà, giám sát và điều khiển không dây, nhận dạng không dây QR, tín hiệu hệ thống MHz cho ESP32-S0WD, ESP32-D2WD và ESP32-U4WDH) - Bộ lệnh 16/24-bit cung cấp mật độ mã cao.
- Hỗ trợ cho Đơn vị dấu chấm động.
- Hỗ trợ các lệnh DSP, chẳng hạn như bộ nhân 32 bit, bộ chia 32 bit và MAC 40 bit.
- Hỗ trợ 32 vectơ ngắt từ khoảng 70 nguồn ngắt Các giao diện CPU đơn / kép bao gồm:
- Giao diện RAM / ROM Xtensa cho các hướng dẫn và dữ liệu.
Trang 12- Giao diện bộ nhớ cục bộ Xtensa để truy cập thanh ghi ngoại vi nhanh chóng.
- Nguồn ngắt bên ngoài và bên trong.
Bộ nhớ
Bộ nhớ trong của ESP32 bao gồm:
- 448 KB ROM để khởi động và các chức năng cốt lõi - 520 KB SRAM trên chip cho dữ liệu và hướng dẫn.
- 8 KB SRAM trong RTC, được gọi là Bộ nhớ NHANH RTC và có thể được sử dụng để lưu trữ dữ liệu; nó được truy cậpbởi CPU chính trong khi Khởi động RTC từ chế độ Ngủ sâu.
- 8 KB SRAM trong RTC, được gọi là Bộ nhớ RTC SLOW và có thể được truy cập bởi bộ đồng xử lýtrong chế độ Ngủ sâu.
- 1 Kbit của eFuse: 256 bit được sử dụng cho hệ thống (địa chỉ MAC và cấu hình chip) và phần còn lại768 bit được dành riêng cho các ứng dụng của khách hàng, bao gồm mã hóa flash và ID chip.
- Đèn flash nhúng.
Timers and Watchdogs.Bộ hẹn giờ 64bit.
Có bốn bộ hẹn giờ có mục đích chung được nhúng trong chip Chúng đều là bộ định thời chung 64bit dựa trêntrên bộ đếm trước 16bit và bộ định thời gian lên / xuống có khả năng tự động tải lại 64 bit.
Tính năng hẹn giờ:
- Bộ định mức đồng hồ 16 bit, từ 2 đến 65536 - Bộ đếm thời gian 64 bit.
- Bộ đếm thời gian lên / xuống có thể định cấu hình: tăng hoặc giảm - Tạm dừng và tiếp tục bộ đếm gốc thời gian.
- Tự động tải lại khi báo động - Tải lại tức thì do phần mềm kiểm soát - Tạo mức và ngắt cạnh.
Trang 13Bộ định thời gian cho cơ quan giám sát.
Con chip này có ba bộ định thời cơ quan giám sát: một bộ định thời trong mỗi hai mô-đun bộ định thời (được gọi là Bộ định thời cơ quan giám sát chính, hoặcMWDT) và một trong mô-đun RTC (được gọi là RTC Watchdog Timer, hoặc RWDT) Những bộ hẹn giờ của cơ quan giám sát này là nhằm khôi phục từ một lỗi không mong muốn khiến chương trình ứng dụng từ bỏ trình tự bình thường của nó Bộ đếm thời gian watchdog có bốn giai đoạn Mỗi giai đoạn có thể kích hoạt một trong ba hoặc bốn hành động có thể xảy ra khi hết hạn khoảng thời gian lập trình của nó, trừ khi cơ quan giám sát được cho ăn hoặc bị vô hiệu hóa Các hành động là: ngắt, đặt lại CPU và đặt lại hệ thống Chỉ RWDT mới có thể kích hoạt thiết lập lại hệ thống và có thể đặt lại toàn bộ chip,bao gồm cả RTC Giá trị thời gian chờ có thể được đặt cho từng giai đoạn riêng lẻ.
Trong quá trình khởi động flash, RWDT và MWDT đầu tiên sẽ tự động khởi động để phát hiện và khôi phục từ quá trình khởi động các vấn đề.
Cơ quan giám sát có các tính năng sau:
- Bốn giai đoạn, mỗi giai đoạn có thể được cấu hình hoặc tắt riêng biệt - Khoảng thời gian có thể lập trình cho từng giai đoạn.
- Một trong ba hoặc bốn hành động có thể xảy ra (ngắt, đặt lại CPU, đặt lại lõi và đặt lại hệ thống) khi hết hạn mỗi giai đoạn.
- Bộ đếm hết hạn 32 bit.
- Bảo vệ ghi để ngăn cấu hình RWDT và MWDT vô tình bị thay đổi - Bảo vệ khởi động bằng flash SPI Nếu quá trình khởi động từ đèn flash
SPI không hoàn thành trong một khoảng thời gian, cơ quan giám sát sẽ khởi động lại toàn bộ hệ thống.
Trang 14- Bộ tạo xung nhịp.
WiFi Radio and Baseband.
Wi-Fi Radio và băng tần cơ sở ESP32 hỗ trợ các tính năng sau:
- Công suất phát lên đến 20,5 dBm - Công suất phát có thể điều chỉnh - Đa dạng ăng-ten.
WiFi MAC.
ESP32 Wi-Fi MAC tự động áp dụng các chức năng giao thức cấp thấp: - 4 × giao diện Wi-Fi ảo.
- Chế độ Trạm BSS Cơ sở hạ tầng đồng thời / Chế độ SoftAP / Chế độ
Trang 15Bluetooth Radio và Baseband hỗ trợ các tính năng sau:
- Công suất đầu ra truyền lớp 1, lớp 2 và lớp 3 và phạm vi điều khiển động lên đến 24 dB.
- Điều chế π / 4-DQPSK và 8 DPSK.
- Hiệu suất cao ở độ nhạy máy thu NZIF với dải động hơn 94 dBm - Hoạt động lớp 1 không có PA bên ngoài.
- SRAM nội bộ cho phép truyền dữ liệu tốc độ cao, thoại và dữ liệu hỗn hợp cũng như hoạt động piconet đầy đủ.
- Logic để sửa lỗi chuyển tiếp, kiểm soát lỗi tiêu đề, tương quan mã truy cập, CRC, giải điều chế,mã hóa tạo dòng bit, làm trắng và truyền định hình xung.
- ACL, SCO, eSCO và AFH.
- Giải A-law digital audio code ,i -law và CVSD trong giao diện PCM - SBC audio CODEC.
- Quản lý nguồn điện cho các ứng dụng tiêu thụ điện năng thấp - SMP với 128-bit AES.
Giao diện Bluetooth.
- Cung cấp giao diện UART HCI, lên đến 4 Mbps - Cung cấp giao diện SDIO / SPI HCI.
- Cung cấp giao diện âm thanh PCM / I²S.
Ngăn xếp Bluetooth.
Ngăn xếp Bluetooth của chip tương thích với Bluetooth v4.2 BR / EDR và Bluetooth LEthông số ky thuật.
Bộ điều khiển liên kết Bluetooth.
Bộ điều khiển liên kết hoạt động ở ba trạng thái chính: chờ, kết nối và đánh hơi Nó cho phép nhiều kết nối, và các hoạt động khác.
Thiết bị ngoại vi và Cảm biến.
- Giao diện đầu vào / đầu ra mục đích chung (GPIO) - Bộ chuyển đổi số tương tự (ADC).
Trang 16- Cảm biến Hall.
- Bộ chuyển đổi DigitaltoAnalog (DAC) - Cảm biến, cảm ứng.
- Bộ đồng xử lý UltraLowPower - Giao diện MAC Ethernet.
- Bộ điều khiển máy chủ SD / SDIO / MMC - Bộ điều khiển Slave SDIO / SPI.
- Máy phát thu không đồng bộ đa năng (UART) - Giao diện I²C.
- Giao diện I²S.
- Bộ điều khiển từ xa hồng ngoại - Bộ đếm xung.
- Điều chế độ rộng xung (PWM) - LED PWM.
- Giao diện ngoại vi nối tiếp (SPI) - Bộ điều khiển TWAI.
- Bộ tăng tốc.
Thông số
+ Đầầu nốối FPC
+ Hốỗ tr camera OV2640(bán kèm theo board) ho c camera OV7670ợặ+ JPEG(ch hốỗ tr OV2640), BMP, GRAYSCALEỉợ
+ Đèn ledD i quang phảổ2412 ~2484MHz
AntennaOnboard PCB antenna, gain 2dBiTransmit Power802.11b: 17±2 dBm (@11Mbps)
Trang 17Tiêu th đi n năngụ ệ
+ Tăốt đèn flash: 180mA@5V
+ B t đèn flash và b t đ sáng tốối đa:ậậ ộ 310mA@5V