ĐỒ ÁN CUỐI KỲBỘ MÔN: ĐỒ ÁN THIẾT KẾ HỆ THỐNG NHÚNG NHÓM MÔN HỌC 03 Đề tài : Điểm danh sinh viên sử dụng công nghệ RFID và nhận diện khuôn mặt... theo dõi nhiệt độ gắn lên hàng hóa có th
Trang 1ĐỒ ÁN CUỐI KỲ
BỘ MÔN:
ĐỒ ÁN THIẾT KẾ HỆ THỐNG NHÚNG
NHÓM MÔN HỌC 03
Đề tài : Điểm danh sinh viên sử dụng công nghệ
RFID và nhận diện khuôn mặt
Trang 2MỤC LỤC
A Công nghệ RFID 3
1 Giới thiệu chung 3
1.1 RFID 3
1.1.1 Giới thiệu về RFID 3
1.1.2 Cấu trúc hệ thống RFID 3
1.1.3 Ứng dụng của công nghệ RFID 3
1.2 MODULE RFID RC522 4
1.2.1 Giới thiệu module RFID RC522 4
1.2.2 Giao tiếp phần cứng 4
1.3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC FREE RTOS 5
1.3.1 RTOS là gì ? 5
1.3.2 Khi nào cần sử dụng RTOS ? 6
1.3.3 Tại sao lại phải dụng RTOS ? 6
1.3.4 Cách hoạt động của RTOS 6
1.4 Các khái niệm trong hệ điều hành thời gian thực RTOS 7
1.4.1 Kernel – Nhân 7
1.4.2 Task -Tác vụ 7
1.4.3 Task States – Trạng thái Task 7
1.4.4 Scheuler 8
2 Lưu đồ hệ thống 8
3 Lưu đồ chương trình điểm danh bằng RFID 8
4 Giao diện Websever 9
5 Database 10
Trang 36 Code vi điều khiển NodeMCU 11
7 Mô phỏng board test 12
B Nhận diện khuôn mặt 13
Chương I: Cơ sở lý thuyết 13
1 Giới thiệu về đề tài 13
2 Mục tiêu, nhiệm vụ và phạm vi nghiên cứu 13
3 Phương pháp nghiên cứu 13
4 Các bước nhận diện gương mặt 14
Chương II: Thiết kế hệ thống 15
1 Sơ đồ tổng quan 15
2 Hệ thống 16
Trang 4A Công nghệ RFID
1 Giới thiệu chung
1.1 RFID
1.1.1 Giới thiệu về RFID
RFID (Radio Frequency Identification) là công nghệ nhận dạng đốitượng bằng sóng vô tuyến Công nghệ này cho phép nhận biết các đốitượng thông qua hệ thống thu phát sóng radio, từ đó có thể giám sát, quản
lý hoặc lưu vết từng đối tượng, có nhiều ưu điểm vượt trội so với côngnghệ mã vạch Công nghệ mã mạch (line of sight technology) chỉ cho phépnhận dạng đối tượng khi máy đọc cần phải đặt đối tượng ở khoảng cáchgần Trong khi đó, với công nghệ RFID có thể xác định đối tượng ở khoảngcách xa từ vài mét cho tới hàng chục mét trong không gian 3 chiều
1.1.2 Cấu trúc hệ thống RFID
Một hệ thống RFID gồm có hai thành phần chính: thẻ RFID (RFIDtag) và đầu đọc (reader) Thẻ RFID có gắn chip silicon và ăng–ten radiodùng để gắn vào đối tượng quản lý như sản phẩm, hàng hóa, động vật hoặcngay cả con người… Thẻ RFID có kích thước rất nhỏ, cỡ vài cm Bộ nhớcủa con chip có thể chứa từ 96 đến 512 bit dữ liệu Đầu đọc reader cho phépgiao tiếp với thẻ RFID qua sóng radio và truyền dữ liệu về hệ thống máy
Trang 5theo dõi nhiệt độ gắn lên hàng hóa có thể giúp nhà sản xuất theo dõi nhiệt độ trong kho lạnh, sử dụng thẻ RFID cấy vào vật nuôi để nhận dạng nguồn gốc và theo dõi vật nuôi tránh thất lạc và bị đánh cắp,các thẻ RFID được gắn với các cuốn sách giúp giảm thời gian tìm kiếm và kiểm kê, chống được tình trạng ăn trộm sách Một số lĩnh vực có khả năng sử dụng một số lượng lớn các thẻ RFID như thẻ thông minh, chứng minh nhân dân, hộ chiếu điện tử, hàng hóa trong siêuthị, quản lý hành lý trong hàng không, hệ thống giao thông công cộng, các ngànhmay mặc, giày dép…
1.2 MODULE RFID RC522
1.2.1 Giới thiệu module RFID RC522
Module RFID RC522 sử dụng IC MFRC522 có thể đọc được các loạithẻ có kết nối không dây như NFC, thẻ từ ( loại dùng làm thẻ giảm giá, thẻ
xe bus, tàu điện ngầm, )
Trang 6Hình 3 Sơ đồ chân của module RFID RC522
Chức năng của từng chân trong module RFID RC522:
DA: Kết nối với chân SPI_NSS của vi điều khiển để lựa chọn chip
khi giao tiếp SPI (Kích hoạt ở mức thấp)
SCK: Kết nối với chân SPI_NSS của vi điều khiển để tạo xung trongchế độ SPII
MISO: Kết nối với chân SPI_MISO của vi điều khiển có chức năng Master Data Out- Slave In trong chế độ giao tiếp SPI
MOSI: Kết nối với chân SPI_MOSI của vi điều khiển có chức năng Master Data In- Slave Out trong chế độ giao tiếp SPI
IRQ: chân ngắt
GND: kết nối với GND của nguồn
RST: chân Reset module
VCC: kết nối với nguồn 3.3V để cấp nguồn cho module hoạt động
1.3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC FREE RTOS
1.3.1 RTOS là gì ?
RTOS là viết tắt của cụm từ Real-time operating system hay hệ điều hànhthời gian thực thường được nhúng trong các dòng vi điều khiển dùng đểđiều khiển thiết bị một cách nhanh chóng và đa nhiệm (multi tasking) Đểhiểu rõ ràng nó là gì trước hết hãy làm rõ khái niệm về hệ điều hành đã
Hệ điều hành thông thường (non-realtime): như Window, linux, android,ios… chính là thứ mà chúng ta sử dụng hằng ngày
Hệ điều hành thời gian thực (realtime): sinh ra cho các tác vụ cần sự phảnhồi nhanh của hệ thống, thường được nhúng trong các loại vi điều khiển
và không có giao diện (GUI) tương tác với người dùng Chúng cần phảnhồi nhanh bởi vì đa số các tác vụ tương tác với thiết bị, máy móc khácchứ không phải con người Các tài nguyên bên trong rất hữu hạn nên chỉmột sự chậm trễ cũng có thể làm hệ thống làm việc hoàn toàn sai lệch
Trang 71.3.2 Khi nào cần sử dụng RTOS ?
Ứng dụng liên quan tới các tác vụ xử lý nhanh, xử lý ảnh, âm thanh
Nếu ứng dụng của bạn mà kích thước chương trình lớn dần và độ phứctạp tăng lên thì RTOS sẽ rất hữu dụng trong trường hợp này, lúc đóRTOS sẽ chia các ứng dụng phức tạp thành các phần nhỏ hơn và dễ quản
lý hơn
RTOS được sử dụng rất nhiều khi lập trình ESP32, ESP8266, STM32 vàcác dòng chip khác
1.3.3 Tại sao lại phải dụng RTOS ?
Chia sẻ tài nguyên một cách đơn giản: cung cấp cơ chế để phân chia cácyêu cầu về bộ nhớ và ngoại vi của MCU
Dễ debug và phát triển: Mọi người trong nhóm có thể làm việc một cáchđộc lập
Tăng tính linh động và dễ dàng bảo trì: thông qua API của RTOS,…
1.3.4 Cách hoạt động của RTOS
RTOS là một phân đoạn hoặc một phần của chương trình, trong đó nógiải quyết việc điều phối các task, lập lịch và phân mức ưu tiên chotask, nắm bắt các thông điệp gửi đi từ task
RTOS khá phức tạp, nói một cách dễ hiểu hơn là nó thực hiện việc xử
lý các trạng thái máy (State Machine)
Để giải quyết một bài toán nhiều trạng thái máy, thông thường chúng
ta sử dụng code sau:
Hình 2.8 Cấu trúc switch case tuần tự
Trang 81.4 CÁC KHÁI NIỆM TRONG HỆ ĐIỀU HÀNH RTOS
1.4.1 Kernel – Nhân
Kernel hay còn gọi là Nhân có nhiệm vụ quản lý và điều phối các Task
Mọi sự kiện (Even) như ngắt, Timer, data truyền tới… đều qua Kernel xử
lý để quyết định xem nên làm gì tiếp theo
Thời gian xử lý của Kernel thường rất nhanh nên độ trễ rất thấp
1.4.2 Task -Tác vụ
Bạn cứ tưởng tượng một chương trình là một công ty, với ông to nhất làGiám đốc – Kernel Ông này chỉ điều hành và chả biết nghiệp vụ gì cả, đểthực hiện các nghiệp vụ khác nhau, công ty đó cần các nhân viên Và cácnhân viên đó gọi là các Task
Nói đơn giản, Task là một đoạn chương trình thực thi một hoặc nhiều vấn
đề gì đó, được Kernel quản lý
Kernel sẽ quản lý việc chuyển đổi giữa các task, nó sẽ lưu lại ngữ cảnhcủa task sắp bị hủy và khôi phục lại ngữ cảnh của task tiếp theo bằngcách:
Kiểm tra thời gian thực thi đã được định nghĩa trước (time slice được tạo
Khi khởi động thì kernel sẽ tạo ra một task mặc định gọi là Idle Task
1.4.3 Task States – Trạng thái Task
Trang 91.4.4 Scheuler
Đây là 1 thành phần của kernel quyết định task nào được thực thi Có một
số luật cho scheduling như:
Cooperative: giống với lập trình thông thường, mỗi task chỉ có thể thựcthi khi task đang chạy dừng lại, nhược điểm của nó là task này có thểdùng hết tất cả tài nguyên của CPU
Round-robin: mỗi task được thực hiện trong thời gian định trước (timeslice) và không có ưu tiên
Priority base: Task được phân quyền cao nhất sẽ được thực hiện trước,nếu các task có cùng quyền như nhau thì sẽ giống với round-robin, cáctask có mức ưu tiên thấp hơn sẽ được thực hiện cho đến cuối time slice
2 Lưu đồ hệ thống
Hình 4 Lưu đồ hệ thống
3 Lưu đồ chương trình điểm danh bằng RFID
Trang 10Hình 5 Lưu đồ chương trình điểm danh bằng RFID
Sau khi chọn chế độ điểm danh bằng RFID thì hệ thống sẽ hiển thịyêu cầu quét thẻ, người dùng quét thẻ vào vùng RFID của máy để tiếnhành điểm danh bằng thẻ Khi thẻ được quét sẽ có thông tin thẻ hiển thịtrên cổng COM
Nếu thẻ được nhận dạng thì màn hình sẽ hiển thị thông tin của chủthẻ, đồng thời hệ thống sẽ ghi nhận tên, thông tin người dùng và lưu vàothẻ nhớ SD card trong máy, sau đó 1 giây hệ thống tiến hành gửi dữ liệuqua API để gửi dữ liệu lên Web server và quay lại giao diện của chế độđiểm danh bằng RFID Chế độ quét sẽ diễn ra liên tục
4 Giao diện Websever
Trang 115 Database
Trang 126 Code vi điều khiển NodeMCU
Trang 137 Mô phỏng board test
Trang 14Chương I: Cơ sở lý thuyết
1 Giới thiệu về đề tài
Trí tuệ nhân tạo (AI) đang là xu hướng phát triển có nhiều tiềm năng trong lĩnh vựccông nghệ thông tin, nắm giữ vai trò chủ đạo trong dòng chảy công nghệ hiện đạivới nhiều ứng dụng trong mọi lĩnh vực của đời sống xã hội như trợ lí ảo, nhà thôngminh, xe tự lái, các hệ thống nhận diện, Nhận diện khuôn mặt là một là một lĩnhvực nghiên cứu của ngành thị giác máy tính, và cũng được xem là một lĩnh vựcnghiên cứu của ngành sinh trắc học tương tự như nhận dạng vân tay, hay nhận dạngmắt Nhận thấy việc điểm danh sinh viên vào các buổi học thường tốn nhiều thờigian vì người điểm danh cần gọi tên, điểm mặt từng bạn trong lớp học Đối vớinhững lớp học có từ 50 sinh viên trở lên thì công việc này càng khó khăn hơn vì cóthể xảy ra trường hợp gian lận trong điểm danh (điểm danh hộ) Trong đề tài này,nhóm sinh viên chúng em chọn nghiên cứu về nhận diện gương mặt bằng bằng thuậttoán học sâu sử dụng python
2 Mục tiêu, nhiệm vụ và phạm vi nghiên cứu
Thông qua máy học nghiên cứu các thuật toán nhận dạng gương mặt sử dụngngôn ngữ python và các phương pháp học sâu mang lại kết quả có độ chính xáccao, từ đó áp dụng vào bài toán thực tế: Xây dựng hệ thống điểm danh bằng gươngmặt
Tập trung chính vào đối tượng nghiên cứu là gương mặt người, kỹ thuật nhận diệngương mặt bằng máy học
3 Phương pháp nghiên cứu
Phương pháp nghiên cứu lý thuyết :
Trang 15Phương pháp nghiên cứu thực nghiệm :
- Lập trình xây dựng ứng dụng
4 Các bước nhận diện gương mặt
Phát hiện gương mặt: tìm kiếm, xác định vùng hay vùng có thể là mặt người Nhữngvùng vị trí được tách riêng xử lý Tách điểm mặt, tìm vị trí các bộ phận của mặtngười để chuyển kết quả cho bước trích chọn lọc điểm mặt Bước chọn lọc điểm, sửdụng phương pháp trích chọn đặc điểm nào đó để sử dụng với ảnh mặt để xuất cácthông tin đặc điểm riêng cho ảnh từ các thông tin về các bộ phận khuôn mặt, kết quảmỗi ảnh sẽ biểu diễn dưới dạng một vector đặc trưng Vecto đặc trưng sẽ là dữ liệuđầu vào cho mô hình đã dạy từ trước nhận diện khuân mặt (Face Recognition) -danh tính(identity) hay thẻ ảnh-đây là người nào Ở bước nhận diện khuôn mặt(Face Recognition), thường phương pháp k-kề gần hay được sử dụng
Ngoài những bước chính trên, một số bước khác có thêm như: hậu xử lý, tiên xử lýgiúp cải thiện chính xác
Dữ liệu nhận diện mặt người được chia làm 3 phần: huấn luyện, tham chiếu và phầnnhận diện Trong nhiều hệ thống, tập training trùng với tập reference Tập training
có hình ảnh cho huấn luyện (học), thông thường tập này được dùng để tạo ra mộtkhông gian còn là ma trận PCA(Principal Component Analysis), LDA(LinearDiscriminant Analysis), KPCAKernel PCA) là các phương pháp thường được sửdụng Các hình ảnh đã biết chiếu vào không gian còn là tham chiếu ở bước huấnluyện 2 mục tiêu của Training huấn luyện): vector đặc điểm có Sơ đồ gồm cácphần:
• Phần thu nhận ảnh Qua camera màu hoặc đen trắng có thể nhận ảnh Camerathường dùng là loại quét dòng, tạo ra ảnh có dạng hai chiều Thiết bị thu, môitrường quy định chất lượng ảnh nhận được
• Tiền xử lý Hình ảnh có thể bị nhiễu sau bộ thu nhận, cần đưa vào bộ tiền xử lý vì
độ tương phản thấp để nâng cao chất lượng Bộ tiền xử lý có chức năng chính là lọcnhiễu, nâng độ tương phản để làm nét và rõ hơn
- Phân đoạn hay phân vùng ảnh Tách một ảnh đầu vào thành các vùng thành phần
để nhận dạng, biểu diễn và phân tích ảnh được gọi là phân vùng ảnh Trong XLA
Trang 16đây là phần phức tạp hay tạo lỗi, khiến giảm chính xác của ảnh và là phần khó khănnhất Công đoạn này cho ra kết quả chính của việc nhận dạng.
• Mô tả ảnh Sau phân đoạn gồm điểm của ảnh hay của vùng ảnh (ảnh đã phânđoạn) đầu ra ảnh cộng liên kết với các vùng lân cận Trích chọn đặc trưng (FeatureSelection) là lấy các tính chất ảnh gắn với việc làm cơ sở để phân biệt lớp đối tượngnày với đối tượng khác hay tách các đặc tính của ảnh dưới dạng các thông tin địnhlượng hoặc trong phạm vi ảnh nhận được
- Phát hiện ảnh và phân tích ảnh Quá trình xác định ảnh là nhận dạng ảnh Mẫuchuẩn đã được học (hoặc lưu từ trước) so sánh với ảnh nhận được để thu được kếtquả trong quá trình này Phân tích ảnh trên cơ sở nhận dạng để phán đoán ảnh Cóhai loại nhận dạng cơ bản của ảnh phân theo các mô hình toán học về ảnh:
- Theo tham số
- Theo cấu trúc
Chương II: Thiết kế hệ thống
1 Sơ đồ tổng quan
Trang 172 Hệ thống
a Giao diện đăng nhập
Gồm khung đăng nhập yêu cầu người sử dụng điền thông tin đăng nhập được cấpsẵn hoặc tự tạo
Trang 18Code giao diện:
Sau khi đăng nhập hệ thống sẽ bật cam để máy có thể quét nhận diện gương mặt củangười sử dụng và lưu vào cơ sở dữ liệu dùng để đối chiếu sau này
Trang 19Sau đó hệ thống sẽ được huấn luyện mô hình thu thập hình ảnh và trích trọn các đặctrưng của gương mặt người sử dụng và lưu lại
Sau khi đã có dữ liệu để so sánh thì người dùng có thể bắt đầu sử dụng để điểmdanh bằng cách nhập môn học mà mình tham dự
Code training model (thu thập xử lý hình ảnh)
Trang 22Hệ thống sẽ nhận diện gương mặt người sử dụng và so sánh với dữ liệu đã thu thậpđược từ trước và đưa ra kết quả ngày giờ và thông tin người sử dụng đã đăng ký từtrước sau đó sẽ được lưu vào file excel để quản lý và sử dụng lại một cách dễ dànghơn