MỤC LỤC
Sau đó ta tính tổng các phần tử theo phép tính element-wise (đơn giản là nhân các phần tử tương ứng của mỗi ma trận với nhau rồi cộng tổng lại để được 1 số duy nhất) của ma trận A và ma trận W, rồi viết kết quả vào ma trận Y. Quá trình huấn luyện (training) của mạng nơ-ron tích chập cũng bao gồm 2 phần: foward propagation - lan truyền xuôi, duyệt qua mạng theo chiều thuận (sử dụng dữ liệu đầu vào tính toán đầu ra của từng lớp sử dụng các trọng số tương ứng) và backward propagation - lan truyền ngược, duyệt qua mạng theo chiều ngược (sử dụng các đầu ra đã tính toán và sai số tương ứng để cập nhật các tham số của từng lớp). Lớp tích chập sẽ tính toán đầu ra bằng cách trượt một kernel (bộ lọc) qua từng vùng của đầu vào và thực hiện tính toán với kernel trên vùng đấy (thường là nhân từng phần tử của ma trận (element-wise multiplication) với nhau rồi tính tổng cá giá trị).
Để giải quyết việc này, ta có thể sử dụng nhiều kernel (mỗi kernel là một tensor) trong một lớp tích chập, số lượng kernel được sử dụng tương đương với chiều sâu D của đầu ra của lớp tích chập đó như ở hình 28. Sau khi dữ liệu được truyền qua các lớp tích chập và lớp gộp để học được những đặc điểm quan trọng của dữ liệu, sau đó, những dữ liệu 3 chiều này với kớch thước WìHìD thường được biến đổi thành 1 vector và truyền vào những lớp kết nối toàn phần, thường nằm ở cuối của mạng nơ-ron tích chập để tính toán.
Trong thực tế, mạng CNN thường thấy sử dụng phổ biến nhất là hàm ReLU do tính đơn giản trong việc cài đặt, điều đó cũng giúp hàm tính toán xử lý nhanh hơn nhưng điểm chính là nó vẫn giữ được hiệu quả của một hàm kích hoạt cần có. Một thành phần không kém cạnh so với lớp Tích chập đó là lớp lấy mẫu (Pooling), vị trí thường được đặt của lớp này là ngay sau lớp Tích chập và lớp kích hoạt phi tuyến với mục tiêu tiếp tục làm giảm kích thước của ảnh đầu vào nhưng vẫn giữ được mục tiêu đảm bảo các điểm ảnh có những thông tin quan trọng sẽ không bị mất. Lớp này hoạt động gần giống lớp Tích chập do nó cũng sử dụng một cửa sổ trượt để quét toàn bộ các vùng trong ảnh đầu vào nhưng thay vì dùng phép nhân chập thì nó sử dụng phép lấy mẫu - hiểu đơn giản là sẽ lấy một giá trị đại diện có tất cả giá trị trong vùng mà cửa số quét qua.
Max Pooling (ta sẽ lấy giá trị điểm ảnh lớn nhất trong vùng được chọn) và Avarage Pooling (ta sẽ lấy giá trị trung bình của tất cả điểm ảnh đang được chọn) là hai phương thức lấy mẫu phổ biến hiện nay. Qua đây, từ ảnh đầu vào ta thu được ảnh đầu ra có kích thước giảm đáng kể so với ban đầu nhưng điểm quan trọng là vẫn giữ được những đặc trưng có những thông tin quan trọng.
Lúc này, ta thu được kết quả là model đã đọc được thông tin của ảnh và để liên kết chúng cũng như cho ra nhiều output hơn thì ta sử dụng fully connected layer. Có thể thấy rằng AlexNet sâu hơn cũng như có kích thước lớn hơn của từng lớp, bên cạnh đó, các lớp tích chập cũng được chồng lên nhau. Cải tiến của GoogLeNet so với các mô hình tiền nhiệm chính là thêm Inception Module giúp giảm số lượng tham số một cách đáng kể (chỉ còn khoảng 4 triệu, so với con số hơn 60 triệu tham sốs của AlexNet).
Cấu trúc của GoogLeNet bao gồm nhiều khối Inception, ở cuối của mô hình, lớp kết nối toàn phần được thay bằng lớp gộp trung bình giúp giảm được đáng kể số lượng tham số. VGG khác với các mạng trước ở việc nó chỉ sử dụng các lớp tích chập và gộp đơn giản: 3ì3 kernel với P=1 và cửa sổ gộp 2ì2 với S=2 tạo thành một khối.
Tại bước này, chúng ra cần sử dụng một mô hình có thể nhận biết mặt người xuất hiện ở đâu trong bức ảnh, mô hình sẽ trả về cho chúng ta các toạ độ (x1, y1, x2, y2) hoặc (x, y, w, h) để hợp thành các ô vuông là các boundingbox (ô xanh trên hình là bounding box), các boundingbox này sẽ chứa mặt người bên trong từ đó giúp chúng ta thực hiện crop face, trích xuất ra đặc trưng là mặt của bức ảnh. Đúng như tên gọi của nó alignment (sự căn chỉnh), sau bước detection các faces của chúng ta có thể ở các trạng thái khác nhau, các góc độ khác nhau, có những faces bị chéo và cũng có thể bị lệch do bước detect chưa chính xác trong việc lấy ra khung hình chuẩn của mặt. Nếu sử dụng pretrained models, sau khi nhận được các vector đặc trưng, do số lượng chiều đầu ra của các vector đặc trưng từ các models là khác nhau nên nếu vector đặc trưng có số chiều quá lớn có thể ảnh hưởng đến thời gian response ở bước recognize, nếu vector có số chiều quá lớn chúng ta có thể áp dụng các thuật toán Dimensionality Reduction (giảm chiều dữ liệu) để có được vector có số nhiều nhỏ hơn giúp ích cho quá trình recognize ở bước sau.
Đây là bước cuối cùng của bài toán, để recognition chúng ta sẽ có 2 cách tiếp cận bài toán, thứ nhất là chúng ta dùng dataset trích xuất ra từ phase trước đưa vào một mạng CNN training vs labels có sẵn để cho ra một models có khả năng predict, tuy nhiên điểm hạn chế của cách này đó là nếu như muốn models có khả năng predict được những person mới thì phải định kỳ training lại models của mình. FaceNet sử dụng CNN bằng cách dùng hàm f(x) và nhúng hình ảnh x vào không gian Euclidean d chiều sao cho khoảng cách giữa các hình ảnh của 1 người không phụ thuộc vào điều kiện bên ngoài, khoảng cách giữa các khuôn mặt giống nhau (của cùng 1 người là nhỏ) trong khi khoảng cách giữa các ảnh khác nhau sẽ có khoảng cách lớn.
- Không tạo ra một biên độ bảo đảm an toàn, có nghĩa là những đường viền hơi mờ. Tìm kiếm hình ảnh qua Google image Dữ liệu được lấy từ kho ảnh viễn thông của công ty VNPT-IT.
Đối với những ảnh không đạt yêu cầu chúng ta sẽ tiến hành loại bỏ một cách thủ công. Sau quá trình xử lý thủ công, số lượng ảnh đạt yêu cầu còn lại sẽ được lưu vào thư mục nhãn của dự án.
Bước 1: Phát hiện khuôn mặt trong bước ảnh đầu vào, để phát hiện được khuôn mặt ta sử dụng thuật toán RetinaFace. Kết quả ta thu được khung hình chỉ bao gồm khuôn mặt cần trích xuất đặc trưng. Bước 2: Trích xuất vector đặc trưng, để thực hiện việc này ta tiến hành đưa bức ảnh qua mô hình đã được huấn luyện có tên là Arcface, và đầu ra sẽ là vector đặc trưng của khuôn mặt bao gồm hình dáng, vị trí các phần của khuôn mặt như mắt, mũi, miệng, lông mày.
Cụ thể xác định một số các điểm đặc trưng trên khuôn mặt: 2 mống mắt, điểm chính giữa miệng, khóe miệng, một số các điểm khác ở vùng trán, mắt, ….
Sau khi ghi nhận, hệ thống sẽ thực hiện lưu vào cơ sở dữ liệu thời gian hệ thống điểm danh. Nếu hệ thống không thể nhận diện được nhân viên, admin có thể điểm danh bằng cách thủ công trên hệ thống.
Quản trị đơn vị: Được phép thực hiện các chức năng tương tự như Quản trị hệ thống tại đơn vị trực thuộc. - Sửa, xóa thiết bị tại đơn vị, chỉnh sửa danh sách camera, wifi - Quản lý người dùng tại đơn vị. Ứng dụng Vnface được chia làm 2 phần chính là Server và Client: Server (Xử lý yêu cầu) và Client (phía người dùng).
Server có nhiệm vụ lấy ảnh từ Google, tiền xử lý dữ liệu, sử dụng mô hình đã được huấn luyện để dự. Client được xây dựng trên nền tảng mobile web, với web ngôn ngữ sử dụng là Angular kết hợp Java, đối với ứng dụng mobile được viết bằng Native Android và Native IOS.
3 ACCOUNT_CHANNEL Lưu thông tin cấu hình số kênh OTT được sử dụng tương ứng với account 4 ACCOUNT_GROUP Lưu thông tin group tương ứng với. 15 HIS_CHECKIN Lưu thông tin về lịch sử checkin 16 OAUTH_ACCESS_TOKEN Lưu thông tin account và access token. 17 OAUTH_CLIENT_DETAILS Lưu thông tin cấu hình các client id 18 ORDER_TRANSACTION Lưu thông tin đơn hàng.
21 PLAN_VERSION Lưu thông tin các version gói cước 22 PLAN_VERSION_PRICE Lưu thông tin về giá của các version gói.