.5 Mơ tả lớp POOL với bộ lọc 2x2 và stride=2

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 57)

Thơng thƣờng max pooling có kích thƣớc là 2 và stride=2. Nếu lấy giá trị q lớn, thay vì giảm tính tốn nó lại làm phá vỡ cấu trúc ảnh và mất mát thơng tin nghiêm trọng. Vì vậy mà một số chun gia khơng thích sử dụng layer này mà thay vào đó sử dụng thêm các lớp Conv Layer và tăng số stride lên mỗi lần.

- Lớp kết nối đầy đủ (Fully Connected Layer - FC)

Tại lớp mạng này, mỗi một nơ-ron của layer này sẽ liên kết tới mọi nơ-ron của lớp khác. Để đƣa ảnh từ các layer trƣớc vào mạng này, buộc phải dàn phẳng

bức ảnh ra thành 1 vector thay vì là mảng nhiều chiều nhƣ trƣớc. Tại layer cuối cùng sẽ sử dụng 1 hàm kinh điển trong học máy mà bất kì ai cũng từng sử dụng đó là softmax để phân loại đối tƣợng dựa vào vector đặc trƣng đã đƣợc tính tốn của các lớp trƣớc đó.

- Một số lƣu ý khi chọn các tham số cho mạng Neuron tích chập

Số các convolution layer sử dụng càng nhiề u các convolution layer thì hi ệ u

suất càng đƣợc c ả i thi ệ n. Sau kho ả ng 3 ho ặc 4 layer, các tác động đƣợc gi ả m một cách đáng kể . Filter size Thông thƣờng các h ệ thống s ẽ filter theo size 5x5 ho ặ c 3x3. Pooling size thƣờng là 2×2 hoặc 4×4 cho ảnh đầu vào lớn [10].

4.2.2 MTCNN.

MTCNN là viết tắt của Multi-task Cascaded Convolutional Networks. Nó là bao gồm 3 mạng CNN xếp chồng và đồng thời hoạt động khi phát hiện và xác định khuôn mặt. Mỗi mạng có cấu trúc khác nhau và đảm nhiệm vai trò khác nhau trong task. Đầu ra của MTCNN là vị trí khn mặt và các điểm trên mặt nhƣ mắt, mũi, miệng…

Trong giai đoạn đầu tiên, nó tạo ra các khung ứng cử một cách nhanh chóng thơng qua một CNN đơn giản. Sau đó, tinh chỉnh các cửa sổ bằng cách từ chối một số lƣợng lớn các cửa sổ không phải khuôn mặt ngƣời thông qua một CNN phức tạp hơn. Cuối cùng, nó sử dụng một CNN mạnh hơn để tinh chỉnh lại kết quả và đƣa ra năm vị trí m ốc trên khn mặ t.

Hình 4.6 Mơ tả q trình xác định khn mặt sử dụng MTCNN

4.2.2.1 Cơ chế hoạt động

Cơ chế hoạt động của hệ thống đã đƣợc khái quát nhƣ trên hình 4.6. Khi chúng ta đƣa vào một ảnh mặt ngƣời, ban đầu chúng ta thay đổi kích thƣớc của nó

thành các tỷ lệ khác nhau để xây dựng một kim tự tháp hình ảnh (bản chất của kim tự tháp hình ảnh là bản sao của các ảnh đầu vào với các kích thƣớc khác nhau). Kim tự tháp hình ảnh này là đầu vào của khung xếp tầng gồm 3 tác vụ chính của

MTCNN.

MTCNN hoạt động theo 3 bƣớc, mỗi bƣớc có một mạng neural riêng lần lƣợt là P-Net, R-Net và O-Net.

Bƣớc 1 Chúng ta khai thác một mạng tích chập đầy đủ đƣợc gọi là Proposal Network(P-Net), để có đƣợc các cửa sổ ứng cử viên và các bounding box regression vectors của chúng. Sau đó, các ứng cử viên đƣợc hiệu chuẩn dựa trên các estimated bounding box regression vectors. Sau đó, chúng ta sử dụng non-

maximum suppression (NMS) để hợp nhất các ứng cử viên chồng chéo.

Bƣớc 2 Tất cả các ứng cử viên đƣợc đƣa đến một CNN khác, đƣợc gọi là Refine Network (R-Net), để từ chối thêm một số lƣợng lớn các ứng cử viên sai. Sau đó, hệ thống thực hiện hiệu chuẩn với bounding box regression và tiến hành NMS.

Bƣớc 3 Giai đoạn này tƣơng tự nhƣ giai đoạn thứ hai, nhƣng trong giai đoạn này, chúng ta hƣớng đến việc xác định các khu vực khuôn mặt với sự giám sát nhiều hơn. Đặc biệt, mạng sẽ xuất ra năm vị trí trên khn mặt.

Bảng 4.1 So sánh tốc độ và độ chính xác CNNs khác [2]

Hiện nay, có nhiều mạng CNN đã đƣợc thiết kế để nhận dạng khn mặt. Tuy nhiên, hiệu suất của nó có thể bị hạn chế bởi các điều kiện sau

Group CNN 300xForward Propagation Vali dation Accuracy Group 1 12-Net 0,038s 94,4% P-Net 0,031s 94,6% Group 2 24-Net 0,738s 95,1% R-Net 0,458s 95,4% Group 3 48-Net 0,577s 93,2% O-Net 1,347s 95,4%

Một số filter trong convolution layer có thể thiếu sự đa dạng làm hạn chế khả năng phân biệt của chúng.

So với các nhiệ m v ụ phát hi ệ n và phân loạ i khác, phát hi ện khuôn mặ t là một nhi ệ m v ụ phân loại nh ị phân đầ y thách thức. Do đó, nó có thể cầ n s ố lƣợng b ộ lọc ít hơn trên mỗ i l ớp. Vì v ậ y, chúng ta gi ả m số lƣợng b ộ lọc và thay đổi b ộ lọc 5x5 thành b ộ lọc 3x3 để giảm tính tốn trong khi tăng độ sâu để có hiệu suấ t tốt hơn. Với nhữ ng cả i ti ế n này, so v ới nh ững ki ến trúc trƣớc đây, kiến trúc đƣợc lự a ch ọn có hiệ u su ấ t t ốt hơn và thời gian ch ạy ít hơn (kết qu ả trong giai đoạ n hu ấ n luyện đƣợc mô tả trong b ả ng 3.1 v ới các hu ấn luyệ n và d ữ liệu xác định tƣơng tự trong mỗi nhóm).

4.2.2.2 Huấn luyện

Các kiế n trúc CNN luận văn lự a chọn đƣợc th ể hiện trong hình 4.7 bên dƣới. Trong mơ hình này, chúng ta áp d ụng PreLU làm ch ức năng kích hoạt phi tuyế n sau khi tích ch ập và các l ớp k ết n ối đủ (fully connection layers), tr ừ các l ớp đầ u ra.

Hình 4.7 Mơ tả q trình huấn luyện MTCNN

T ạ i P-Net, thuật toán sử dụng 1 kernel 12x12 chạy qua mỗi bức hình để tìm kiếm khn mặt [5].

Hình 4.8 Quá trình xử lý dữ liệu tại P-Net.

Sau lớp convolution thứ 3, mạng chia thành 2 lớp. Convolution 4-1 đƣa ra xác suất của một khuôn mặt nằm trong mỗi bounding boxes, và Convolution 4-2 cung cấp tọa độ của các bounding boxes.

R-Net có cấu trúc tƣơng tự vói P-Net. Tuy nhiên sử dụng nhiều layer hơn. Tại đây, network sẽ sử dụng các bounding boxes đƣợc cung cấp từ P-Net và tinh chỉnh là tọa độ.

Tƣơng tự, R-Net chia ra làm 2 layers ở bƣớc cuối cùng cấp 2 đầu ra đó là tọa độ mới của các bounding boxes, cùng độ tin tƣởng của nó.

O-Net lấy các bounding boxes từ R-Net làm đầu vào và đánh dấu các tọa độ của các mốc trên khn mặt.

Hình 4.10 Quá trình xử lý dữ liệu tại O-Net

Ở bƣớc này, thu ật toán đƣa ra 3 kế t qu ả đầ u ra khác nhau bao gồm xác suấ t c ủ a khuôn mặ t nằm trong bounding box, t ọa độ c ủa bounding box và t ọa độ c ủ a các mốc trên khn mặt (vị trí mắt, mũi, miệ ng) [6].

Hình 4.11 Kết quả đầu ra của O-Net.

4.3 Nhận dạng khuôn mặt bằng ArcFace Model4.3.1 Giới thiệu. 4.3.1 Giới thiệu.

Biểu diễn khn mặt bằng cách sử dụng nhúng Mạng neuron tích chập sâu (DCNN) là phƣơng pháp đƣợc lựa chọn cho nhận dạng khn mặt. Các DCNN ánh xạ hình ảnh khn mặt, thƣờng là sau bƣớc chuẩn hóa tƣ thế, thành một tính năng có khoảng cách giữa các lớp nhỏ và khoảng cách giữa các lớp lớn. Có hai dịng

nghiên cứu chính để đào tạo DCNN cho nhận dạng khn mặt. Những hệ thống huấn luyện một trình phân loại nhiều lớp có thể phân tách các danh tính khác nhau trong tập huấn luyện, chẳng hạn nhƣ bằng cách sử dụng trình phân loại softmax và những ngƣời học trực tiếp nhúng, chẳng hạn nhƣ Soft-max loss. Dựa trên dữ liệu đào tạo quy mô lớn và các kiến trúc DCNN phức tạp, cả phƣơng pháp dựa trên Soft- max loss và phƣơng pháp dựa trên triplet-loss có thể đạt đƣợc hiệu suất tuyệt vời về nhận dạng khuôn mặt.Tuy nhiên, cả Softmax loss và Triplet-loss đều có một số nhƣợc điểm

Đối với softmax loss (1) Kích thƣớc của ma trận biến đổi tuyến tính

W ∈ Rdxn tăng tuyến tính với số nhận dạng n; (2) Các tính năng đã học có thể tách rời cho vấn đề phân loại đóng nhƣng khơng đủ phân biệt đối với vấn đề nhận dạng khuôn mặt mở.

Đối với Triplet Loss (1) Có một vụ nổ tổ hợp trong số lƣợng bộ ba khuôn

mặt đặc biệt là đối với các bộ dữ liệu quy mô lớn, dẫn đến sự gia tăng đáng kể số lƣợng các bƣớc lặp; (2) Khai thác mẫu semi-hard là một vấn đề khá khó khăn để đào tạo mơ hình hiệu quả.

Đã có một số biến thể đƣợc đề xuất để tăng cƣờng khả năng phân biệt của Softmax loss. Đầu tiên là Centre loss, phƣơng pháp này sử dụng khoảng cách Euclide giữa mỗi vector đặc trƣng và tâm của lớp đó để có đƣợc sự gọn nhẹ trong mỗi lớp mà vẫn đảm bảo sự phân tán trong trong mỗi lớp bằng Softmax loss. Tuy nhiên, việc cập nhật các tâm trong quá trình huấn luyện trên thực thế rất khó khăn. Bởi số lƣợng khn mặt huấn luyện rất lớn và liên tục tăng.

Ta có thể thấy trọng số từ lớp kết nối đầy đủ cuối cùng của phân lớp DCNN đƣợc huấn luyện trên hàm Softmax loss mang sự tƣơng đồng với các tâm của mỗi lớp. Do đó, xử lý biên góc nhân (multicative angular margin penalty) đƣợc đề xuất để thực thi đồng thời sự nhỏ gọn trong mỗi lớp và sự khác biệt giữa các lớp, dẫn tới khả năng phân biệt tốt hơn cho model đƣợc huấn luyện. Mặc dù Sphereface đã giới thiệu ý tƣởng quan trọng này của biên góc (angular marrgin), nhƣng hàm này địi hỏi một loạt các sấp xỉ để đƣợc tính tốn, dẫn đến việc huấn luyện mạng khơng ổn định. Để q trình huấn luyện ổn định, một hàm mất mát lai (hybrid loss) đƣợc đề xuất, nó bao gồm các tiêu chuẩn của Softmax loss. Theo các nghiên cứu, softmax

loss chi phối q trình huấn luyện bởi vì biên góc nhân dựa vào một số nguyên làm đƣờng cong logit mục tiêu rất dốc và cản trở sự đồng quy (hội tụ). CosFace cộng thêm trực tiếp các biên cosin vào logit mục tiêu, nó đạt đƣợc hiệu suất tốt hơn so với SphereFace nhƣng thừa nhận việc thực hiện dễ dàng hơn nhiều và giảm nhu cầu giám sát chung từ Softmax loss.

Do đó, tơi đã nghiên cứu và sử dụng ArcFace để cải thiện hơn nữa khả năng phân biệt của mơ hình nhận dạng khn mặt và để ổn định q trình huấn luyện.

Hình 4.12 Mơ hình ArcFace

Nhƣ đƣợc minh họa trong Hình 4.12, tích vơ hƣớng giữa tính năng DCNN và lớp kết nối đầy đủ cuối cùng bằng khoảng cách cosin sau khi chuẩn hóa tính năng và trọng số. Chúng ta sử dụng hàm arc-cosine để tính góc giữa tính năng hiện tại và trọng số mục tiêu. Sau đó, chúng ta thêm một góc góc phụ vào lề góc mục tiêu và chúng ta lấy lại logarit bằng hàm cosine. Sau đó, chúng ta chia tỷ lệ lại tất cả các bản ghi theo một định mức đặc trƣng cố định và các bƣớc tiếp theo hoàn toàn giống nhƣ trong softmax loss. Những ƣu điểm của ArcFace đƣợc đề xuất có thể đƣợc tóm tắt nhƣ sau

Engaging ArcFace trực tiếp tối ƣu hóa biên độ khoảng cách trắc địa

(geodesic) nhờ vào sự tƣơng ứng chính xác giữa góc và cung trong siêu

cầu(hypersphere) đƣợc chuẩn hóa. Bằng việc phân tích số liệu thống kê góc giữa các đặc trƣng và trọng số, chúng ta có thể minh họa đƣợc các sự kiện trong khơng gian 512 chiều.

Effective (hiệu quả) ArcFace là một trong mƣời phƣơng pháp dạng khuôn

mặt hiệu quả nhất hiện nay trên các bộ dữ liệu hình ảnh và video quy mơ lớn.

Easy (Dễ dàng) ArcFace chỉ cần một vài dòng code và cực kỳ dễ thực hiện

Tensorflow. Hơn nữa, ArcFace không cần kết hợp với các loss function khác để có hiệu suất ổn định và có thể dễ dàng thực hiện trên bất kỳ bộ dữ liệu huấn luyện nào.

Efficient ArcFace chỉ thêm độ phức tạp hoạt tính tốn khơng đáng kể trong

quá trình huấn luyện. Các GPU hiện tại có thể dễ dàng hỗ trợ hàng triệu danh tính để đào tạo và mơ hình song song mơ hình có thể dễ dàng hỗ trợ nhiều danh tính hơn.

4.3.2 ArcFace

Hàm phân lớp đƣợc sử dụng rộng rãi nhất là Softmax loss

L1 = − 1N N N i =1 n j =1 WT +byi WTj i j (4-1) Trong đó

xi ∈ Rd biểu thị đặc trƣng của mẫu thứ i trong class thứ yi

d là kích thƣớc đặc trƣng nhúng (embeding feature) đƣợc cài đặt là 512 W j ∈ R d

b j ∈ R n

biểu thị cột thứ j của trọng số W ∈ R là giới hạn ƣu tiên (bias term)

dxn

N là kích thƣớc batch(lơ) n là số Class

Tuy hàm Softmax loss truyền thống đƣợc sử dụng rộng dãi trong nhận diện khuôn mặt. Tuy nhiên, hàm Softmax loss khơng thể tối ƣu hóa rõ ràng feature embedding để tạo ra độ tƣơng tự cao hơn cho các mẫu trong cùng một lớp và tính đa dạng cho các mẫu giữa các lớp khác nhau. Từ đó, dẫn đến khoảng cách hiệu suất nhận dạng giữa các biến đổi khn mặt (ví dụ thay đổi tƣ thế, độ tuổi, quy mô hệ thống nhận dạng) của cùng một đối tƣợng khá lớn.

Để đơn giản, chúng ta đặt bias bj = 0. Sau đó, chúng ta biến đổi logarit WTj ix = W j xi cosθ j

, trong đó θ j là góc giữa trọng số Wj và đặc trƣng xi . Tiếp theo, ta đặt trong số riêng Wj = 1 bằng chuẩn hóa l2 . Sau đó, chúng ta cũng đặt

∑ log e

e x +b

embedding feature xi và quy mơ lại s. Bƣớc chuẩn hóa trên các đặc trƣng và trọng số làm cho dự đoán chỉ phụ thuộc vào góc giữa đặc trƣng và trọng số. Các

embedding feature đã học đƣợc phân phối trong một hypersphere với bán kính s.

L2 = − N1 N i =1 s cosθ y j + s cosθ y j n j =1, j ≠ yi s cosθ j (4-2) Nhƣ các embedding feature đƣợc phân phối quanh tâm của hypershpere, chúng ta thêm các góc biên phụ m vào giữa xi và Wy

để đồng thời tăng độ nhỏ gọn trong mỗi lớp và sự khác biệt giữa các lớp. Phƣơng pháp này đƣợc gọi là ArcFace. Sau khi thêm góc m, ta có

L3 = − 1 N N i =1 s cos(θ y j +m) s cosθ y j n + j =1, j ≠ yi s cosθ j (4-3) Nhƣ đƣợc mơ tả trên hình 4.12 về sơ đồ huấn luyện một DCNN cho nhận dạng khuôn mặt sử dụng hàm Arcface loss. Dựa vào chuẩn hóa đặc trƣng xi và trọng số W, ta lấy cos θ j

(logit) cho mỗi lớp bằng WTj ix . Chúng ta tính arccosθ y j

và lấy góc giữa đặc trƣng xi và trọng số ground truth Wy

. Trên thực tế, Wj cung cấp một loại tâm cho mỗi lớp. Sau đó, chúng ta thêm một góc xử lý biên m vào góc mục tiêu θ y

. Sau đó, ta tính cos(θ y j + m) rồi nhân tất cả các logit theo hệ số s. Các logit sau đó đƣa qua hàm softmax loss và địng góp và hàm cross-entropy loss.

Để chứng minh tính hiệu quả của hàm Arcface loss so với Softmax loss chúng ta có thể dựa trên kết quả của kiểm nghiệm sau. Chúng ta sử dụng các hình ảnh khn mặt của 8 danh tính khác nhau gồm đủ các mẫu (khoảng 1500 ảnh/ lớp) để đào tạo mạng embedding feature 2 chiều với các hàm Softmax loss và Arcface tƣơng ứng. Kết quả của mỗi hàm đƣợc mơ tả nhƣ sau

log

log

Hình 4.13 Mơ tả kết quả huấn luyện của hàm Softmax loss và Arcface

Nhƣ mơ tả trên hình 4.13, hàm Softmax loss cung cấp các embedding feature gần nhƣ tách rời giữa các lớp, nhƣng tạo ra sự mơ hồ đáng chú ý trong ranh giới giữa các lớp. Điều này có thể sẽ gây nhầm lẫn khi nhận diện các mẫu khác nhau cùng một lớp với các lớp khác. Trong khi đó, hàm Arcface loss lại tạo ra khoảng các rõ ràng hơn giữa các lớp kế nhau [12].

4.3.3 So sánh Arcface với các hàm mát (Loss function) khác4.3.3.1 So sánh với Face và CosFace 4.3.3.1 So sánh với Face và CosFace

Tƣơng đồng số học ba phƣơng pháp SphereFace, ArcFace và CosFace là ba loại khác nhau của xử lý biên biên góc nhân (multiplicative angular margin) m1, biên góc cộng (additive angular margin), biên cosine tổng (additive cosine margin) m3. Về mục đích, cả ba phƣơng pháp đều làm tăng tính gọn nhẹ trong cùng một lớp và sự khác biệt giữa các lớp khác nhau bằng logit mục tiêu. Trong hình 2-15 mơ tả đƣờng cong logit mục tiêu của SphereFace, ArcFace và CosFace dƣới cài đặt biên tốt nhất. Chúng ta chỉ quan tâm đến các các đƣờng cong logit mục tiêu trong

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 57)