Xây dựng hệ thống

Một phần của tài liệu Xây dựng ứng dụng hỗ trợ điểm danh sinh viên bằng điện thoại dựa trên nhận dạng khuôn mặt người luận văn thạc sĩ công nghệ thông tin (Trang 73 - 77)

5.1.1 Thuật tốn

Nhiệm vụ của hệ thống nhận diện khn mặt là thực hiện nhận diện khuôn mặt từ webcam trực tiếp. Hƣớng thực hiện gồm hai gồm 3 bƣớc cơ bản sau

Bƣớc 1 Xác định và lấy ra (các) khn mặt có trong hình ảnh.

Đây là cơng đoạn rất quan trọng của quá trình nhận dạng. Bởi lẽ, để có thể phân tích và nhận dạng khn mặt thì chúng ta cần xác định chính xác vị trí của khn mặt trong bức ảnh. Sau đó, chúng ta cần phải tách khn mặt ra khỏi khung cảnh cịn lại.

Bƣớc 2 Từ hình ảnh các khn mặt lấy ra từ bƣớc 1, thực hiện phân tích,

trích rút các đặc trƣng của khn mặt.

Chúng ta nhận dạng gƣơng mặt mọi ngƣời qua các đặc điểm, hệ thống nhận dạng cũng vậy, nhƣng nó thực hiện đánh giá các đặc điểm ở một cấp độ cao hơn, chính xác hơn. Mỗi khn mặt đều có những điểm mốc, những phần lồi lõm tạo nên các đặc điểm của khuôn mặt. Các hệ thống nhận dạng gƣơng mặt định nghĩa những điểm này là những điểm nút. Mỗi mặt ngƣời có khoảng 80 điểm nút. Trong bƣớc này, dựa vào các điểm nút mà hệ thống trích rút ra đặc trƣng của từng khn mặt. Một số điểm nút có thể đƣợc sử dụng để nhận dạng gồm có khoảng cách giữa hai

mắt, chiều rộng của mũi, độ sâu của hốc mắt, hình dạng của xƣơng gị má, độ dài xƣơng hàm, …

Bƣớc 3 Từ các thơng tin có đƣợc sau khi phân tích, kết luận và xác minh

danh tính ngƣời dùng.

Chúng ta thực hiện so sánh dựa trên các đặc trƣng đã trích rút để đƣa ra phân lớp cho mỗi đối tƣợng khuôn mặt. Sau khi phân lớp, ta có thể thu đƣợc kết quả của q trình nhận dạng đó là danh tính của mỗi khn mặt ngƣời.

Ta có thể khái qt mơ hình hệ thống nhận dạng mặt ngƣời bằng sơ đồ khối nhƣ sau

Start

Dữ liệu huấn luyện Dữ liệu kiểm thử

Huấn luyện bộ nhận dạng khuôn mặt

Nhận dạng khn mặt

End

Hình 5.1 Sơ đồ khối tóm tắt hệ thống nhận diện khn mặt.

Dù là dữ liệu huấn luyện đƣợc lấy từ phƣơng pháp nào thì cũng có chung một đặc điểm những bức ảnh có chứa khn mặt, thƣờng là ảnh một ngƣời, có đầy đủ mắt, mũi, miệng. Dữ liệu hình ảnh đƣợc tổ chức theo cấu trúc

/train

+ face_01.jpg + face_02.jpg + ... /person2 + face_01.jpg + face_02.jpg + ... / ... 5.1.2 Công cụ

Cấu hình phần cứng phục vụ cho quá trình huấn luyện

- Vi xử lý Intel® Core™ i3-9100f CPU @ 2.30GHz (4CPUs) GTX-1650. - Hệ điều hành Ubuntu 18.04.3

Thƣ viện phần mềm

- Thƣ viện phần mềm lập trình đƣợc sử dụng Python 3.68. - Cơng cụ lập tình Pycharm bản Community version 2019.3.

5.1.3 Cài đặt các thƣ viện- Opencv-python - Opencv-python - Keras 2.2.4 - Cython 0.26.1 - Pillow 5.1.0- pip3 - Easdict 1.9 - Face-recognition 1.2.3 - Face-recognition-models 0.3.0 - Imutils 0.5.3 - Skit-image 0.15.0 - Skit-learn 0.21.3 - Scipy 1.3.1- sklern 0.0 - Tensorflow 1.13.2 - Torch 1.2.0 - MTCNN 0.0.9 - Mxnet 1.5.1 - Numpy 1.16.2

5.1.4 Thực hiện huấn luyện dữ liệu ảnh

Sau khi đã có mơi trƣờng huấn luyện, các dữ liệu đầu vào cũng nhƣ các thƣ viện đƣợc hỗ trợ và các pretrain model có sẵn. Tiếp theo, ta sẽ thực hiện huấn luyện các mẫu dữ liệu đó.

Đầu tiên, chuyển các dữ liệu khuôn mặt thành các vector tƣơng ứng với mặt của từng ngƣời. Hệ thống sẽ xử lý lần lƣợt từng bức ảnh trong dữ liệu hệ thống. Kết quả trả về số lƣợng khn mặt đƣợc embedding.

Hình 5.2 Mơ tả q trình xử lý dữ liệu ảnh đầu vào

Tiếp theo, ta thực hiện huấn luyện dữ liệu với các ảnh khuôn mặt đã đƣợc embedding.

Kết quả trả về bao gồm các file accuracy_loss.png, embedings.pickle, le.pickle và my_model.h5 đƣợc lƣu trong folder outputs

Hình 5.4 Cấu trúc thư mục đầu ra sau khi huấn luyện

Trong đó, có biểu đồ accuracy_loss thể hiện độ chính xác của hàm. Biểu đồ đƣợc vẽ dựa vào các giá trị thu đƣợc trong q trình train dữ liệu. Biểu đồ có dạng nhƣ sau

Hình 5.5 Biểu đồ thể hiện tính chính xác của hàm

Theo nhƣ hình 5.5, chúng ta có thể thấy, biểu đồ mơ tả hai mối quan hệ chính giữa epoch với acc (độ chính xác) và giữa epoch với loss (độ sai số). Trong đó, epoch là một điểm cắt tùy ý. Ta có thể hiểu là một lần huấn luyện toàn bộ tập dữ liệu đƣợc phân tách thành các giai đoạn riêng biệt. Giả sử, ta có 1000 mẫu huấn luyện và batch = 500 thì sẽ mất 2 lần lặp để hồn thành một epoch.

Một phần của tài liệu Xây dựng ứng dụng hỗ trợ điểm danh sinh viên bằng điện thoại dựa trên nhận dạng khuôn mặt người luận văn thạc sĩ công nghệ thông tin (Trang 73 - 77)

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

(95 trang)
w