Thiết kế phần mềm hệ thống điểm danh tự động

Một phần của tài liệu Nghiên cứu, thiết kế hệ thống cơ điện tử thông minh ứng dụng công nghệ nhận dạng khuôn mặt và thuật toán học sâu trong việc điểm danh và đánh giá độ chuyên cần của sinh viên (Trang 33)

3.3.1. Bài toán nhận diện khuôn mặt

Trong thực tế, quá trình nhận diện bao gồm 2 quá trình chính là Face Detection (Phát hiện khuôn mặt) và Face Recognization (Nhận diện khuôn mặt). Mỗi quá trình lại sử dụng những thuật toán khác nhau.

34 Face Detection: Đây là quá trình phát hiện khuôn mặt trong ảnh. Các máy ảnh, camera smartphone hiện tại đều có chức năng này.

Có khá nhiều cách để phát hiện khuôn mặt: Thông qua màu sắc, cử động hoặc qua góc cạnh trong ảnh,…. Tuy nhiên, thuật toán được sử dụng phổ biến nhất hiện nay là Viola-Jones (Thư viện OpenCV hỗ trợ nhận diện khuôn mặt theo thuật toán này).

Thuật toán này khá tốt ở chỗ nó không chỉ nhận diện được khuôn mặt mà còn có thể nhận diện được đồ vật, hình dạng. Cơ chế của nó khá đơn giản:

 Tạo ra một frame hình vuông, lần lượt di chuyển frame này khắp tấm ảnh gốc.

 Mỗi khi frame di chuyển, check xem khu vực trong frame có phải là khuôn mặt hay đồ vật hay không. (Bằng cách check các vùng sáng tối trong frame).

 Sau khi di chuyển hết tấm ảnh, tăng kích cỡ frame lên và scan lại từ đầu.

 Dừng thuật toán khi frame đủ lớn.

Bài toán Face Detection thực ra không phải đơn giản vì hệ thống phải được tranning từ vài ngàn đến vài chục ngàn tấm ảnh mới có được ouput nhận dạng tương đối chuẩn.

Mục đích của quá trình này là sau khi chúng ta input 1 bức ảnh, đầu ra sẽ cho ta khuôn mặt đã được detect.

Face Recognition: Đây mới là quá trình nhận diện khuôn mặt. Từ kết quả của bài toán trước, ta đã có các khuôn mặt trong ảnh. Các khuôn mặt này sẽ lần lượt được so sánh với các khuôn mặt đã có trong cơ sở dữ liệu để tìm khuôn mặt giống nhất.

Có vô số thuật toán nhận diện khuôn mặt, chúng được phát triển dựa trên các thuật toán cơ sở như: PDA, LCA, MDA, Kernel Method… Gần đây nhất Facebook vừa giới thiệu thuật toán DeepFace với độ chính xác khá… cao, vượt trội hơn hẳn các thuật toán trước đó.

Bước này, chúng ta sẽ tốn khá nhiều thời gian để trainning để đạt được độ chính xác có thể chấp nhận được.

Phương pháp nhận dạng mặt có thể chia tiếp cận theo tiêu chí sau:

 Nhận dạng với dữ liệu đầu vào là ảnh tĩnh 2D(still image based FR) là phổ biến nhất

 Tương lai có thể phương pháp nhận dạng 3D FR sẽ phổ biến hơn(vì việc bố trí nhiều camera 2D sẽ cho dữ liệu 3D và đem lại kết quả tốt hơn, đáng tin cậy hơn).

Nguyên lý nhận dạng của bài toán:

Với bài toán nhận diện khuôn mặt, yêu cầu bài toán là với in put đầu vào đầu ra ta có thể nhận diện được khuôn mặt với định danh cụ thể. Bài toán có thể chia nhỏ như sau:

 Bước đầu tiên cần thực hiện là face detection, tức là phát hiện phần ảnh mặt trong dữ liệu input (CSDL ảnh, video …) và cắt lấy phần ảnh mặt để thực hiện nhận dạng (face cropping).

 Bước thứ hai là tiền xử lý ảnh (preprocessing) bao gồm các bước căn chỉnh ảnh (face image alignment) và chuẩn hóa ánh sáng (illumination normalization)(frontal view face image).

 Tiếp đến là bước trích chọn đặc điểm (feature extraction), ở bước này một phương pháp trích chọn đặc điểm nào đó (mẫu nhị phân cục bộ – Local Binary Pattern – LBP, Gabor wavelets, …) sẽ được sử dụng với ảnh mặt để trích xuất các thông tin đặc trưng cho ảnh, kết quả là mỗi ảnh sẽ được biểu diễn dưới dạng một vector đặc điểm (feature vector).

 Bước tiếp theo là bước nhận dạng (recognition) hay phân lớp (classification), tức là xác định danh tính (identity) hay nhãn (label) của ảnh – đó là ảnh của ai.

36

Hình 3.9: Bài toán nhận diện khuôn mặt

3.3.2. So sánh một số phương pháp nhận diện khuôn mặt phổ biến hiện nay

Có rất nhiều phương pháp phát hiện và nhận dạng khuôn mặt đã được phát triển để làm phù hợp với yêu cầu bài toán thực tế. Tác giả sẽ đề cập đến hai phương pháp hay dùng hiện nay đó là nhận diện bằng phương pháp Haar-Adaboost [8] và phương pháp MTCNN-FaceNet [9].

Tiêu chí Adaboost FaceNet

Độ chính xác 80.8% [9] 86.2% [10]

Dataset IRIS LWF

Face detect Haar-like MTCNN

Face Detect & Segmentation

Alight and

Cropping Grayscale Eigenface

Principal Component

Analysis

Pre-

processing Feature Extraction Classifier Algorithm Decision

Face Database

Hình 3.10: So Sánh một số đặc điểm hai phương pháp

Mặt khác, băng cách thử nghiệm thực tế hai phương pháp trên với cùng bộ sample dataset, ta cũng thu được kết quả là khác nhau.

Sử dụng data pre-train của hai phương pháp, tôi sẽ đưa dữ liệu mẫu về học sinh của một lớp để trainning nhận dạng đánh giá kết quả. Dữ liệu trainning mẫu gồm 10 học sinh với khuôn mặt chụp rõ nét, với mỗi học sinh sẽ đưa 20 ảnh mẫu để tiến hành quá trình trainning. Mỗi học sinh sau khi trainning ảnh đầu vào sẽ được lưu vào thư mục ảnh đã cắt mặt và xử lý.

Hình 3.11: Ảnh sample trainning

Kết quả nhận được của hai phương pháp

Hướng thẳng trực diện Hướng nghiêng

Haar - Adaboost 70% 69%

MTCNN - FaceNet 85.3% 83.1%

Hình 3.12: Kết quả thực nghiệm

38 khuôn mặt MTCNN-FaceNet áp dụng vào hệ thống điểm danh này.

3.3.3. Xây dựng phần mềm hệ thống

Giao diện tổng quát phần mềm

Hình 3.13: Giao diện hệ thống

Quá trình nhận dạng xong ta tiến hành vào 1 số chức năng xử lý dữ liệu. Đầu tiên là chức năng ghi lại thời gian đến, thời gian về của từng sinh viên khi đã nhận dạng thành công. Sau khi ghi nhận thời gian đến của từng sinh viên, hệ thống sẽ tự động lưu thời gian đến lấy cơ sở đánh giá đi muộn về sớm sau này. Những sinh viên đi muộn thường xuyên cũng bị đánh giá kém.

Để có thể quan sát quá trình đi học của sinh viên thì việc quan sát qua đồ thị là trực quan nhất. Ta có thể nhìn và biết được số ngày đi học của sinh viên đó, so sánh với các bạn còn lại để có được mức đánh giá tốt nhất.

ON/OFF Cam Sinh Viên Hiển thị mặt Kết nối RS232

Record thời gian

Display Cam

Lớp 1 Danh tính Nhận dạng Lớp 1 Lớp 29 Lớp 1 Lớp 1 Lớp 2 Lớp 3 Lớp 12 Lớp 11 Lớp 13 Lớp 29 Lớp 28 Lớp 29 Lớp 30

CHƯƠNG 4: KẾT QUẢ, ĐÁNH GIÁ BÀI TOÁN 4.1. Thử nghiệm độ chính xác thuật toán

Hình 5-20 Nhận dạng Mẫu thử nghiệm chưa được quan sát thuộc về Người1 là đúng

Như đã trình bày ở trên, bài toán nhận dạng được chia thành hai quá trình chính đó là phát hiện khuôn mặt trong khung hình và nhận dạng được danh tính của khuôn mặt. Chính vì vậy kết quả bài toán cũng được đánh giá dựa trên hai tiêu chí khả năng phát hiện khuôn mặt trên khung hình realtime và độ chính xác phát hiện là bao nhiêu phần trămĐộ chính xác nhận dạng được tính theo công thức:

Cơ sở dữ liệu: Với thuật toán MTCNN, cơ sở dữ liệu ảnh pre-train được lấy từ tập dữ liệu Labeled Face in Wild (LFW) bao gồm hơn 13000 bức ảnh chứa khuôn mặt

Số ảnh nhận dạng đúng x 100% Độ chính xác = Tổng số ảnh testing Các khuôn mặt trong tập trainning

40 người. Đối với mỗi đối tượng, hình ảnh được chụp tại các địa điểm khác nhau với ánh sáng cũng khác nhau. Góc độ và biểu cảm khuôn mặt của từng người là không giống nhau để tập trainning đa dạng. Tiếp theo là tập ảnh trainning cho đối tương sinh viên cần nhận dạng. Ở đây mỗi sinh viên tôi sẽ đưa 5 đến 20 ảnh với góc độ và biểu cảm khác nhau vào huấn luyện với bộ pre-train đã có từ trước đó.

Hình 4.1: Labeled Face in Wild (LFW) Dataset

Sau khi đã có dữ liệu pre-train, tôi sẽ đưa dữ liệu mẫu về học sinh của một lớp để trainning nhận dạng đánh giá kết quả. Dữ liệu trainning mẫu gồm 10 học sinh với khuôn mặt chụp rõ nét, với mỗi học sinh sẽ đưa 20 ảnh mẫu để tiến hành quá trình trainning. Mỗi học sinh sau khi trainning ảnh đầu vào sẽ được lưu vào thư mục ảnh đã cắt mặt và xử lý. Sau đó quá trình nhận dạng sẽ được tiến hành và phân biệt qua tên sinh viên.

Hình 4.2: Ảnh sample trainning

Kết quả:

So sánh kết quả nhận dạng về độ chính xác của phương pháp khi đưa 20 ảnh vào trainning tạo ra model nhận dạng.

Hướng thẳng trực diện Hướng nghiêng

MTCNN - FaceNet 85.3% 83.1%

Hình 8: Kết quả nhận diện MTCNN-FaceNet

Hình 4.3: Kết quả nhận dạng

Dưới đây là biểu đồ so sánh về tính thay đổi độ chính xác khi số lượng ảnh trainning đầu vào thay đổi của phương pháp:

Hình 4.4: So sánh độ chính xác với số mẫu khác nhau

42 học, tôi sẽ đưa một số dữ liệu liên quan đến sinh viên vào trainning, sau đó nhập điểm chuyên cần và để hệ thống sẽ tính điểm chuyên cần tự động. Các dữ liệu cần nhập bằng tay là điểm lên bảng làm bài và điểm cuối kỳ.

 Số lượng sinh viên đưa dữ liệu vào: 10 sinh viên

 Các thông số liên quan khác gồm điểm cuối kỳ và điểm giữa kỳ được nhập như bảng.

Sau khi nhận dạng 24 lần và qua quá trình tính toán, đánh giá điểm quá trình ta được kết quả điểm kết thúc học phần cuối cùng như bảng bên dưới.

Họ Tên Sinh viên Điểm cuối kỳ Sinh viên Điểm thi giữa kì Số ngày đi học (Nhận dạng) Số ngày bỏ tiết Điểm tổng kết môn học Kết quả nhận dạng đúng Nam 8.0 6.5 19/24 1 7.25 100% Duy 6.6 7.0 20/24 0 6.42 Trang 7.5 4.0 22/24 0 6.15 Tuấn 8.0 7.5 24/24 2 7.55 Huyền 7.0 8.5 20/24 0 7.75 Hải 9.5 8.0 22/24 1 8.75 Thanh 8.5 5.5 24/24 1 7.6 Trọng 7.5 6.0 19/24 0 6.75 Mạnh 6.5 9.0 24/24 2 6.95 Đức 6.0 10.0 23/24 1 6.9

Hình 4.5: Đầu vào và kết quả đánh giá

Hình 4.6: Đồ thị điểm danh theo tháng

KẾT LUẬN

Hoàn thành tốt nghiệp chuyên ngành thạc sĩ cơ điện tử em đã đúc rút được rất nhiều kinh nghiệm.

 Kiến thức về Deep learning ứng dụng vào ứng dụng cụ thể.

 Cách kết hợp giữa phần cứng và phần mềm để xây dựng một hệ thống hoàn thiện ứng dụng thực tế.

 Phương pháp phân tích và xử lý vấn đề triệt để.

Tuy nhiên, do trình độ và điều kiện đo kiểm thực tế còn hạn chế nên trong quá trình thực hiện luận văn này em không thể tránh khỏi những sai sót. Em mong được sự hướng dẫn, chỉ bảo của các thầy cô, sự góp ý quý báu của hội đồng để giúp em có thể củng cố và hoàn thiện những kiến thức của mình. Em xin bày tỏ lòng biết ơn sâu sắc tới TS. Đặng Thái Việt đã tận tình hướng dẫn, giúp đỡ chúng em trong suốt quá trình làm đồ án này. Đồng thời cảm ơn các thầy, các cô trong bộ môn Cơ Điện Tử trường Đại Học Bách Khoa Hà

44 Nội đã hỗ trợ giúp em hoàn thành luận văn này.

PHỤ LỤC

TÀI LIỆU THAM KHẢO

[1] “Finger based attendance management system”, L.S.Ezema.

[2]“Fingerprint-Based Attendance Management System”, Akinduyite C.O, Adetunmbi A.O, Olabode O.O, Ibidunmoye

[3] “An RFID attendance and monitoring system for university applications”, A.Kassem

[4]PGS.TS.Nguyễn Bốn, Nhiệt Kỹ Thuật, nhà xuất bản Hà Nội,2003. [5]“Fingerprint Identification Module User Manual”,User Manual [6]https://www.minhha.com

[7]https://en.wikipedia.org

[8]“Global Haar-like Features:A New Extension of Classic Haar Features forEfficient Face Detection in Noisy Images”, Mahdi Rezaei

[9]https://www.datacamp.com/community/tutorials/adaboost-classifier-python [10] “FaceNet”, Florian Schroff, Dmitry Kalenichenko, James Philbin.

Một phần của tài liệu Nghiên cứu, thiết kế hệ thống cơ điện tử thông minh ứng dụng công nghệ nhận dạng khuôn mặt và thuật toán học sâu trong việc điểm danh và đánh giá độ chuyên cần của sinh viên (Trang 33)

Tải bản đầy đủ (PDF)

(45 trang)