Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.95 MB, 39 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<i><b>Đà Nẵng, tháng 12 năm 2022</b></i>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">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!
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">
<b>1.5 Các bước trong chu trình xây dựng thuật tốn nhận diện khn mặt...7</b>
<b>CHƯƠNG 2. CƠ SỞ LÝ THUYẾT...8</b>
<b>2.4 Giới thiệu về ngơn ngữ lập trình Python và OpenCV...20</b>
<b>2.4.1 Giới thiệu OpenCV...20</b>
<b>2.4.2 Ngơn ngữ Python...21</b>
<b>2.5 Thuật tốn hệ thống...23</b>
<b>2.5.1 Thuật toán thu thập dữ liệu...23</b>
<b>2.5.2 Thuật toán huấn luyện mơ hình...24</b>
<b>2.5.3 Thuật tốn phát hiện người đeo khẩu trang trong thời gian thực...25</b>
<b>CHƯƠNG 3. MƠ PHỎNG CHƯƠNG TRÌNH...27</b>
<b>3.1 Cài đặt cơ bản cấu hình ESP32-CAM...27</b>
<b>3.2 Kết quả chạy chương trình trên ESP32-CAM...32</b>
<b>3.3 Kết luận...33</b>
<b>3.4 Hướng phát triển...33</b>
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">Hình 2.8 Logo ngơn ngữ Python...22
Hình 2.9 Thuật tốn thu thập dữ liệu...24
Hình 2.10 Thuật tốn huấn luyện mơ hình...25
Hình 2.11 Thuật tố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
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5"><b>1.1 Lý do chọn đề tài</b>
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 hồn tồ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
<b>1.2 Vấn đề giải quyết</b>
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. 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.
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6"><b>1.3 Nội dung thực hiện</b>
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:
<b>- Tiến hành thiết lâ m</b>p sơ đồ khối hê m thống.
<b>- Xử lí các q trình nhâ m</b>n diê mn và thông báo đúng lúc.
<b>- Thực hiê m</b>n lắp đă mt phần cứng và viết nạp code theo yêu cầu chức năng.
<b>1.4 Công nghệ nhận dạng khuôn mặt</b>
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 khn 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.
<b>- Nhâ |n dạng truyền thống.</b>
Một số thuật tốn nhận dạng khn mặt xác định các đặc điểm khn 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 khn mặt của đối tượng. Ví dụ, một thuật tố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 tốn bình thường hóa một bộ sưu tập các hình ảnh khn mặt và sau đó nén dữ liệu khn mặt, chỉ lưu dữ liệu hình ảnh nào là hữu ích cho việc nhận dạng khn 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 tố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.
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">Hình 1.2 Nhận diện khn mặt truyền thống
<b>- Nhâ |n dạng 3D</b>
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 khn 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 khn 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 khn 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 khn mặt 3D
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8"><b>1.5 Các bước trong chu trình xây dựng thuật tốn nhận diện khuôn mặt.Bước 1: Nhận diện khuôn mặt.</b>
Máy ảnh phát hiện và định vị hình ảnh của một khn 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>Bước 2: Phân tích khn mặt.</b>
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 khn 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 khn 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>Bước 3: Chuyển đổi hình ảnh thành dữ liệu.</b>
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 khn mặt sẽ được xử lý dưới dạng các thuật tố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>Bước 4: Tìm kết quả nhận diện khn mặt phù hợp.</b>
Bước tiếp theo tiến hành so sánh với cơ sở dữ liệu khn mặt sẵn có. Nếu khn 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ẽ hồn tất.
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9"><b>2.1 Hệ thống nhận diện khn mặt2.1.1 Cấu trúc chương trình</b>
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 q trình xử lí, tính tố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 khn 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.
<b>2.1.2 Những tham số hình ảnh cơ bản</b>
Khn 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 khng mă mt rất phong phú, có thể chỉ ra mơ mt số tham số cho các hình ảnh này như:
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="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 khn 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 khn 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
<b>2.2 Giới thiệu về ESP32-CAM2.2.1 Khái niệm</b>
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.
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">ESP32-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.
<b>2.2.2 Ứng dụng</b>
…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.
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="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 ngồi và bên trong.
<b>Bộ nhớ</b>
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.
<b>Timers and Watchdogs.Bộ hẹn giờ 64bit.</b>
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.
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13"><b>Bộ định thời gian cho cơ quan giám sát.</b>
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ừ q 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 hồ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.
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">- Bộ tạo xung nhịp.
<b>WiFi Radio and Baseband.</b>
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.
<b>WiFi MAC.</b>
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ế độ
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">Bluetooth 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.
<b>Giao diện Bluetooth.</b>
- 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.
<b>Ngăn xếp Bluetooth.</b>
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>Bộ điều khiển liên kết Bluetooth.</b>
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.
<b>Thiết bị ngoại vi và Cảm biến.</b>
- Giao diện đầu vào / đầu ra mục đích chung (GPIO). - Bộ chuyển đổi số tương tự (ADC).
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="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.
<b>Thông số</b>
<small>+ Đầầu nốối FPC</small>
<small>+ Hốỗ tr camera OV2640(bán kèm theo board) ho c camera OV7670ợặ+ JPEG(ch hốỗ tr OV2640), BMP, GRAYSCALEỉợ</small>
<small>+ Đèn ledD i quang phảổ2412 ~2484MHz</small>
<small>AntennaOnboard PCB antenna, gain 2dBiTransmit Power802.11b: 17±2 dBm (@11Mbps)</small>
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17"><small>Tiêu th đi n năngụ ệ</small>
<small>+ Tăốt đèn flash: 180mA@5V</small>
<small>+ B t đèn flash và b t đ sáng tốối đa:ậậ ộ 310mA@5V</small>
</div>