Hàm mất mát ArcFace cho nhận dạng khuôn mặt

Một phần của tài liệu Nhận diện khuôn mặt ứng dụng trong robot tiếp tân (Trang 47)

Từ Softmax đến ArcFace:

Hình 2.42 Đào tạo một DCNN nhận dạng khuôn mặt với hàm mất mát softmax

Hàm mất mát được sử dụng rộng rãi trong nhận dạng khuôn mặt [14] là hàm softmax, được trình bày như sau:

𝐿1 = −1 𝑚∑𝑚𝑖=1𝑙𝑜𝑔 𝑒 𝑊𝑦𝑇𝑖𝑥𝑖+𝑏𝑦𝑖 ∑𝑛 𝑒∑ 𝑥𝑖𝑇𝑗 +𝑏𝑗 𝑗=1 (2.9)

Trong đó 𝑥𝑖 ∈ 𝑅𝑑 biểu thị đặc trưng của mẫu thứ i, thuộc lớp 𝑦𝑖. 𝑊𝑗 ∈ 𝑅𝑑 biểu thị cột thứ j của các trọng số 𝑊 ∈ 𝑅𝑑×𝑛 trong lớp được kết nối đầy đủ cuối cùng, và

36 không tối ưu hóa rõ ràng các đặc trưng có điểm tương tự cao hơn cho các cặp positive và điểm tương tự thấp hơn cho các cặp negative.

Có thể viết lại:

𝑊𝑗𝑇𝑥𝑖 = ‖𝑊𝑗‖‖𝑥𝑖‖𝑐𝑜𝑠𝜃𝑗 (2.10)

Chuẩn hóa đặc trưng được sử dụng rộng rãi để xác minh khuôn mặt, ví dụ: chuẩn 𝐿2 và khoảng cách cosin. [15] quan sát rằng chuẩn định mức 𝐿2 của các đặc trưng được học khi sử dụng hàm mất mát Softmax là thông tin về chất lượng của khuôn mặt. Các đặc trưng cho cho các mặt trước chất lượng tốt có chuẩn 𝐿2 cao trong khi các mặt mờ với tư thế cực đoan có chuẩn 𝐿2 thấp. [16] thêm ràng buộc 𝐿2 vào các mô tả đặc trưng và hạn chế các đặc trưng nằm trên một siêu cầu bán kính cố định. Chuẩn 𝐿2 trên các đặc trưng có thể được thực hiện dễ dàng bằng cách sử dụng các deep learning framework làm tăng đáng kể hiệu suất của xác minh khuôn mặt.

Hình 2.43 Đào tạo một DCNN để nhận dạng khuôn mặt với hàm mất mát ArcFace [17]

Bằng cách sửa trọng số ‖𝑊𝑗‖ = 1 theo chuẩn 𝐿2 và đặc tính nhúng 𝑥𝑖 thành s (s=64), đó là bán kính siêu cầu và dưới hạn dưới được đưa ra [15], sau đó tách mẫu số. Hàm mất mát trở thành: 𝐿2 = −1 𝑚∑ 𝑙𝑜𝑔 𝑒𝑠 cos 𝜃𝑦𝑖 𝑒𝑠 cos 𝜃𝑦𝑖+∑𝑛 𝑒𝑠 cos 𝜃𝑗 𝑗=1,𝑗≠𝑦𝑖 𝑚 𝑖=1 (2.11)

Sau đó thêm một góc lề m vào cos 𝜃 ta được hàm mất mát ArcFace: 𝐿3 = − 1

𝑚∑𝑚𝑖=1𝑙𝑜𝑔 𝑒𝑠(cos(𝜃𝑦𝑖+𝑚))

𝑒𝑠(cos(𝜃𝑦𝑖+𝑚))+∑𝑛 𝑒𝑠 cos 𝜃𝑗 𝑗=1,𝑗≠𝑦𝑖

37 Trong hàm softmax ban đầu, nó sẽ phân bổ đặc trưng nhúng 𝑥𝑖 cho lớp j tương ứng với trọng lượng 𝑊𝑗 gần nhất.

Tuy nhiên, trong hàm mất mát ArcFace (với lề góc m), trọng số lớp thực sự

𝑊𝑗 không chỉ cần là trọng số gần nhất với đặc trưng nhúng 𝑥𝑖 mà còn là trọng lượng gần nhất trong khi thêm góc m.

Hình 2.44 Ví dụ về sự mất mát của softmax và ArcFace trên 8 danh tính [17]

2.7 Hồi quy Softmax

Các bài toán phân loại thường có nhiều lớp dữ liệu. Một phương pháp mở rộng để khắc phục các hạn chế của hồi quy logistic có tên là hồi quy softmax. Mặc dù trong tên có chứa chữ “hồi quy”, hồi quy softmax sử dụng cho các bài toán phân loại. Hồi quy softmax là một trong những thành phần phổ biến nhất trong các bộ phân loại hiện nay.

2.7.1 Entropy chéo

Đầu ra của mạng softmax, 𝑎 = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥(𝑊𝑇𝑋), là một vector có số phần tử bằng số lớp dữ liệu. Các phần tử của vector này là các số dương có tổng bằng một, thể hiện xác suất để điểm đầu vào rơi vào từng lớp dữ liệu. Với một điểm dữ liệu huấn luyện thuộc lớp thứ c, mong muốn xác suất với lớp này càng cao càng tốt, tức càng gần một càng tốt. Việc này kéo theo các phần tử còn lại gần với không. Một cách tự nhiên, đầu ra thực sự y là một vector có tất cả các phần tử bằng không trừ phần tử ở vị trí thứ c bằng một. Cách biểu diễn nhãn dưới dạng này được gọi là mã hóa one-hot.

Hàm mất mát của hồi quy sofmax được xây dựng dựa trên bài toán tối thiểu sự khác nhau giữa đầu ra dự đoán 𝑎 và đầu vào thực sự 𝑦 ở dạng one-hot. Khi cả hai là vector thể hiện xác suất, khoảng cách giữa chúng thường được đo bằng một hàm được gọi là hàm entropy chéo 𝐻(𝑦, 𝑎). Đặc điểm nổi bật của hàm số: nếu cố định𝒚, hàm sẽ đạt giá trị nhỏ nhất khi 𝒂 = 𝒚, và càng lớn nếu a càng khác𝒚.

38

𝐻(𝑝, 𝑞) = − ∑ 𝑝𝑖log 𝑞𝑖

𝐶 𝑖=1

Hình 2.45 So sánh hàm entropy chéo và hàm bình phương khoảng cách [19]

Hình 2.33 thể hiện ưu điểm của hàm entropy chéo so với hàm bình phương khoảng cách Euclid.

• Giá trị nhỏ nhất của hai hàm số đạt được khi q = p tại hoành độ các điểm được đánh dấu

• Hàm entropy chéo nhận giá trị rất cao, tức mất mát rất cao, khi p ở xa q. Sự mất mát ở gần hay xa nghiệm của hàm bình phương khoảng cách (𝑞 − 𝑝)2là ít đáng kể hơn.

2.7.2. Hàm mất mát

39 Trong trường hợp có C lớp dữ liệu, mất mát giữa đầu ra dự đoán và đầu ra thực sự của một điểm dữ liệu 𝒙𝒊 với nhãn𝒚𝒊 được tính bởi

𝐿𝑖 = − ∑𝐶𝑗=1𝑦𝑗𝑖log(𝑎𝑗𝑖) (2.13)

Với 𝑦𝑗𝑖 và 𝑎𝑗𝑖 lần lượt là phần tử thứ j của vector xác suất 𝑦𝑖 và 𝑎𝑖. Đầu ra 𝑎𝑖

phụ thuộc vào đầu vào 𝑥𝑖 và ma trận trọng số 𝑊.

Khi sử dụng toàn bộ tập huấn luyện 𝑥𝑖, 𝑦𝑖, 𝑖 = 1, 2, … , 𝑁, hàm mất mát của hồi quy softmax:

𝐿 = −1

𝑁∑𝑁𝑖=1log(𝑎𝑦𝑖, 𝑖) (2.14)

2.8 Biến đổi hình học trong xử lý ảnh

Biến đổi hình học là một ánh xạ môt-một từ một tập hợp điểm sang một tập hợp điểm khác dựa trên cùng một quy tắc. Nói cách khác, phép biến đổi hình học là phép ánh xạ tọa độ điểm hay vector thành tọa độ hay vector khác [21]

Các phép biến đổi thường gặp

Phép biến đổi tuyến tính- Linear transformation

Phép tỉ lệ - Scale: Thay đổi kích thước ảnh theo tỉ lệ của từng trục:

𝑥′ = 𝑎𝑥 𝑦′ = 𝑏𝑦

Ma trận kết hợp a, b có thể tìm được khi nhân ma trận tỉ lệ M có kích thước 2×2 cho ma trận tọa độ điểm ảnh có kích thước 2×1

[𝑦𝑥′′] = 𝑀 [𝑦𝑥] = [0 𝑏𝑎 0] [𝑦𝑥] (2.15) Phép xoay – rotation: Xét một điểm 𝑥 trên ảnh làm đại diện, xoay 𝑥 một góc

𝜃 – góc tính từ tọa độ 𝑥 ban đầu đến 𝑥′ sau khi đã xoay

𝑥′= 𝑥 cos 𝜃 − 𝑦 sin 𝜃 𝑦′ = 𝑥 sin 𝜃 + 𝑦 cos 𝜃

Tương tự tìm được ma trận M:

[𝑥𝑦′′] = 𝑀 [𝑦𝑥] = [sin 𝜃 cos 𝜃cos 𝜃 −sin 𝜃] [𝑥𝑦] (2.16)

Phép trượt nghiêng – Shear: tương tự phép tỉ lệ thì phép trượt nghiêng có thể hiểu là thay đổi độ dài theo đường chéo:

40

𝑥′ = 𝑥 + 𝑎𝑦 𝑦′ = 𝑏𝑥 + 𝑦

Ta tìm được ma trận M:

[𝑥𝑦′′] = 𝑀 [𝑦𝑥] = [1 𝑎𝑏 1] [𝑥𝑦] (2.17)

Ngoài ra còn có các phép biến đổi lật ảnh theo trục Ox, lật ảnh theo trục Oy, … Tổng quát công thức chung:

𝑋′ là điểm ảnh sau khi biến đổi, có tọa độ (𝑥′, 𝑦′) 𝑋 là điểm ảnh được biến đổi, có tọa độ (x, y)

p là tham số - thường là ma trận 2×2 ký hiệu M

f là phép biến đổi.

𝑋′ = 𝑓(𝑋; 𝑝) → [𝑥𝑦′′] = 𝑀 [𝑥𝑦] (2.18)

Một số tính chất của phép biến đổi tuyến tính: • Giữ nguyên gốc tọa độ

• Đường thẳng ánh xạ thành đường thẳng • Bảo toàn tính song song

• Tỉ lệ được giữ nguyên • Bảo toàn tổ hợp tuyến tính.

Phép tịnh tiến – Translation

Đối với phép biến đổi tịnh tiến, thay vì biể diễn mặt phẳng 2 chiều ta chiếu sang không gian 3 chiều bằng cách thêm 1 vào tọa độ (x, y) để hệ tọa độ đồng nhất (x, y, 1), hệ số này sẽ độc lập với x, y.

Hệ tọa độ đồng nhất được xác định bởi tỉ lệ, ta có thể hình dung rằng khi dịch chuyển một vật lại gần hoặc ra xa tầm mắt sẽ làm cho kích thước của vật thay đổi, tương đương với khoảng cách từ mắt đến vật thay đổi.

[𝑥𝑦] => [𝑥𝑦

1] ≝ [𝑎𝑥𝑎𝑦

𝑎 ] (2.19)

Với hệ tọa độ đồng nhất, tìm được một ma trận 3×3 thoản mãn phép tịnh tiến sau:

[𝑦′𝑥′

1] = 𝑀 [𝑥𝑦

1] = [1 0 𝑡𝑥0 1 𝑡𝑦

0 0 1] [𝑦𝑥

41 • Phép biến đổi Euclidean

Eucidean = Translation + Rotation

[sin 𝜃 cos 𝜃 𝑡𝑦cos 𝜃 −sin 𝜃 𝑡𝑥

0 0 1 ] (2.21)

Phép đồng dạng – Similarity transformation

Phép đồng dạng là sự kết hợp giữa Euclidean và tỉ lệ đều – uniform scale. Ma trận biến đổi dễ dàng tìm được bằng cách lấy ma trận biến đổi của Euclidean, rồi lấy các phần tử trong ma trận vừa được mà có liên quan đến phép tỉ lệ để nhân với tỉ lệ s:

Similarity = Rotation + Translation + Uniform Scale [𝑠 cos 𝜃 𝑠(− sin 𝜃) 𝑡𝑥𝑠 sin 𝜃 𝑠 cos 𝜃 𝑡𝑦

0 0 1 ] (2.22)

• Biến đổi Affine – Affine transformation

Phép biến đổi Affine là sự kết hợp giữa phép đồng dạng và phép trượt nghiêng. Affine = Rotation + Translation + Unform Scale + Shear

[𝑠 cos 𝜃−𝑏𝑠 sin 𝜃 −𝑠 sin 𝜃+𝑎𝑠 cos 𝜃 𝑡𝑥𝑠 sin 𝜃+𝑏𝑠 cos 𝜃 𝑠 cos 𝜃+𝑎𝑠 sin 𝜃 𝑡𝑦

0 0 1 ] (2.23)

Các tính chất của phép biến đổi Affine: • Gốc tọa độ có thể thay đổi

• Đường thẳng ánh xạ thành đường thẳng • Bảo toàn tính song song

• Tỉ lệ được giữ nguyên

• Bảo toàn tổ hợp biến đổi chính nó (tổ hợp các phép biến đổi Affine cũng là Affine)

2.9 Các phương pháp đánh giá 2.9.1 Intersection Over Union

Intersection over Union (IoU) là thước đo dựa trên chỉ số Jaccard để đánh giá sự chồng chéo giữa hai bounding box. Nó đòi hỏi một bounding box thực sự 𝐵𝑔𝑡 và một bounding box dự đoán 𝐵𝑝. Bằng cách áp dụng IoU có thể biết liệu phát hiện có đúng

42 (True Positive) hay không (False Positive). IoU được đưa ra bởi khu vực chồng chéo giữa bounding box dự đoán và bounding box thực sự chia cho khu vực kết hợp giữa chúng:

𝐼𝑜𝑈 = 𝑎𝑟𝑒𝑎(𝐵𝑝∩𝐵𝑔𝑡)

𝑎𝑟𝑒𝑎(𝐵𝑝∪𝐵𝑔𝑡) (2.24)

Hình 2.47 minh họa IoU giữa bounding box thực sự (màu xanh lá cây) và bounding box được phát hiện (màu đỏ).

Hình 2.47 Intersection over Union

2.9.2 Loss và Accuracy

Loss: thường là một số thực không âm (trừ một số trường hợp loss là cosin proximity) thể hiện sự chênh lệch giữa hai đại lượng: nhãn thật của dữ liệu và nhãn của dữ liệu do model dự đoán ra. Model dự đoán càng lệch với giá trị thực thì Loss càng to và ngược lại, nếu dự đoán càng sát với giá trị thực thì Loss sẽ nhỏ dần về 0.

Accuracy: Sự chính xác

𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = 𝑛

𝑁 (2.25)

Trong đó:

• n: Số sample dự đoán đúng

• N: Tổng số sample đưa ra dự đoán

2.9.3 Precision, Recall và Accuracy

Một số khái niệm cơ bản:

• True positive: Một phát hiện chính xác nhãn đúng • False positive: Một phát hiện sai nhãn đúng • True negative: Một phát hiện đúng nhãn sai

43 • False negative: Một phát hiện sai nhãn sai

Precision 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 𝑇𝑃 𝑇𝑃+𝐹𝑃 = 𝑇𝑃 𝑎𝑙𝑙 𝑑𝑒𝑡𝑒𝑐𝑡𝑖𝑜𝑛𝑠 (2.26) Recall 𝑅𝑒𝑐𝑎𝑙𝑙 = 𝑇𝑃 𝑇𝑃+𝐹𝑁 = 𝑇𝑃 𝑛ℎã𝑛 𝑡ℎự𝑐 (2.27)

44

CHƯƠNG 3. THIẾT KẾ VÀ XÂY DỰNG PHẦN CỨNG

3.1 Sơ đồ khối

Hình 3.1 Sơ đồ khối của hệ thống

3.2 Giới thiệu phần cứng sử dụng

3.2.1 Máy tính xách tay Lenovo Ideapad L340

45 Máy tính xách tay IdeaPad L340 được trang bị chip Intel Core i5-9300H thế hệ mới với xung nhịp 2.40GHz upto 4.10GHz và RAM 8GB (1 × 8𝐺𝐵) DDR4 2666MHz giúp xử lý các tác vụ trơn tru và máy hoạt động ổn định. Ổ cứng kèm theo là 512GB SSD giúp khởi động máy, khởi động hệ thống môt cách nhanh hơn, cũng như xử lý đa nhiệm một cách nhanh chóng.

Bảng 3.1 Thông số kỹ thuật máy tính IdeaPad L340

CPU Intel Core I5 9300H

RAM DDR4 8GB (1x8GB) 2666MHz; 1 slot, up to 16 GB GPU Geforce GTX 1050 3GB

Màn hình 15.6” FHD (1920x1080), IPS Ổ cứng SSD 1 slot SSD NVMe M.2 PCIe Ổ cứng HDD 1TB HDD 5400 rpm

Ổ đĩa quang No ODD

Lan Dual 10/100/1000Mbps Ethernet Wireless 802.11 ac Wifi + Blutoolth v4.1

Các cổng kết nối

1 x USB 3.0 (Type-C); 2 x USB 3.0; 1 x USB 2.0; 1 x HDMIAudio Jack Microphone RJ45 LAN 4-in-1 Card Reader (SD, SDHC, SDXC, NMC)

Pin 3 Cell

Kích thước 380265 x 25.8 (mm)

3.2.2 Camera logitech C270

Camera logitech C270 là dòng camera HD với độ phân giải 720p, hình ảnh chụp lên tới 3-megapixel. Kết nối với laptop dễ dàng thông qua cổng USB. Camera được bảo vệ bởi lớp vỏ nhựa chắc chắn.

46

Hình 3.3. Camera logitech C270

Yêu cầu hệ thống:

Bảng 3.2 Yêu cầu khi sử dụng camera

Yêu cầu cơ bản Yêu cầu HD

Yêu cầu hệ thống CPU: 1 GHz RAM: 1GB CPU: 2.4 GHz Intel Core 2 Duo RAM: 2GB

Thông số kỹ thuật của camera

Bảng 3.3. Thông số kỹ thuật của camera Logitech C270

Kiểu kết nối USB có dây

Loại USB USB 2.0 tốc độ cao USB VID_PID VID_046D&PID_081A Microphone Tích hợp giảm tiếng ồn Loại ống kính và cảm biến Nhựa

Loại tiêu điểm Cố định

Trường nhìn 60°

Tiêu cự 4.0 mm

Độ phân giải quang học 1280 x 960 1.2MP

Chụp ảnh (4:3 SD) 320x240, 640x480 1.2 MP, 3.0 MP Chụp ảnh (16:9 W) 360p, 480p, 720p

Quay video (4:3 SD) 320x240, 640x480, 800x600 Quay video (16:9 W) 360p, 480p, 720p,

47 Hiệu ứng video (VFX) N/A

Buttons Right Light 2 Đèn báo (LED) NA

Quyền riêng tư Activity/Power Kích thước clip (tối đa) Không

3.2.3 Mô hình robot

Hình 3.4 Mô hình Joy Robot (Robô Da Alegria)

Mô hình robot được dùng là Joy Robot (Robô Da Alegria). Thi công, lắp ráp robot

Bước 1: In 3D

48

Bước 2: Lắp ráp các bộ phận

Hình 3.6 Lắp ráp phần đầu robot

49

Bước 3: Hoàn thiện mô hình robot

Hình 3.8 Mô hình robot

3.2.4 Các thiết bị sử dụng trong robot 3.2.4.1 Arduino Uno 3.2.4.1 Arduino Uno

50 Arduino Uno là một bo mạch thiết kế với bộ xử lý trung tâm là vi điều khiển AVR Atmega328. Cấu tạo chính của Arduino Uno bao gồm các phần:

• Cổng USB: là cổng giao tiếp để upload code từ máy tính lên vi điều khiển. Đồng thời nó cũng là giao tiếp serial để truyền dữ liệu giữa vi điều khiển và máy tính.

• Jack nguồn: để chạy Arduino có thể lấy nguồn từ USB hoặc nguồn ngoài từ 9V đến 12 V.

• Có 14 chân vào/ra số đanh từ 0 đến 13, ngoài ra có một chân nối đất (GND) và một chân điện áp tham chiếu (AREF).

• Vi điều khiển AVR: là bộ xử lý trung tâm của toàn bo mạch.

Hình 3.10 Sơ đồ chân Arduino Uno

Thông số kỹ thuật:

Bảng 3.4 Thông số kỹ thuật Arduino Uno

Vi xử lý Atmega328 Điện áp hoạt động 5V

Điện áp đầu vào 7-12V Điện áp đầu vào (giới hạn) 6-20V

Chân vào/ra (I/O) 14 chân (6 chân có thể cho đầu ra PWM) Chân vào tương tự 6

Dòng điện cho mỗi chân I/O 40mA Dòng điện chân nguồn 3.3V 50mA

51 Bộ nhớ trong 32 KB (Atmega328)

SRAM 2 KB (Atmega328)

EEFROM 1 KB (Atmega328)

Xung nhịp 16MHZ

3.2.4.2 Mạch điều khiển 16 Channel PWM PCA9685

Mạch điều khiển 16 channel PWM PCA9685 được sử dụng để có thể xuất ra 16 xung PWM từ 16 cổng khác nhau thông qua giao tiếp I2C sử dụng IC PCA9685, giúp điều khiển đồng thời 16 RC Servo hoặc Dimmer 16 thiết bị đồng thời,… Mạch điều khiển 16 Channel PWM PCA9685 có cấu trúc phần cứng đơn giản (hình 3.6) cũng như bộ thư viện có sẵn trên Arduino rất dễ dàng sử dụng và kết nối.

Hình 3.11 Mạch điều khiển 16 Channel PWM PCA9685

Thông số kỹ thuật:

Bảng 3.5 Thông số kỹ thuật mạc điều khiển 16 Channel PWM PCA9685

IC chính PCA9685

Điện áp sử dụng 2.3 - 5.5VDC

Số kênh PWM 16 kênh, tần số: 40 – 1000Hz Độ phân gải PWM 12 bit

Giao tiếp I2C

52

3.2.4.3 Động cơ Servo SG90

Động cơ servo SG90 có kích thước nhỏ, được sử dụng nhiều trong các mô hình nhỏ hoặc các cơ cấu kéo không cần đến lực năng. Động cơ servo SG90 có tốc độ phản ứng nhanh, các bánh răng được làm bằng nhựa nên cần lưu ý khi nâng tải nặng có thể làm hư bánh răng, động cơ RC Servo SG90 có tích hợp sẵn Driver điều khiển động cơ bên trong nên có thể dễ dàng điều khiển góc quay bằng phuwong pháp điều chế độ rộng xung.

Hình 3.12 Động cơ Servo SG90

Thông số kỹ thuật:

Bảng 3.6 Thông số kỹ thuật động cơ Servo SG90

Khối lượng 9g

Kích thước 22.2×11.8× 32 mm

Moment xoắn 1.8kg/cm

Tốc độ hoạt động 60 độ trong 0.1 giây Điện áp hoạt động 4.8 (~5V)

Nhiệt độ hoạt động 0℃ - 55℃

3.2.4.4Mạch điều khiển động cơ L298N

Một phần của tài liệu Nhận diện khuôn mặt ứng dụng trong robot tiếp tân (Trang 47)