XÂY DỰNG HỆ THỐNG NHẬN DẠNG KHUÔN MẶT SỬ DỤNG RASPBERRY PI VÀ OPENCV Học viên: Nguyễn Văn Thơ Chuyên ngành: Kỹ thuật điện tử Mã số: Khóa: K38 Trường Đại học Bách khoa - ĐHĐN Tóm tắt – H
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA
NGUYỄN VĂN THƠ
Trang 2ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA
NGUYỄN VĂN THƠ
Trang 3Tôi cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu và kết quả trong luận văn là trung thực và chưa được ai công bố trong
bất kỳ công trình nào
Tác giả luận văn
Nguyễn Văn Thơ
DUT.LRCC
Trang 4XÂY DỰNG HỆ THỐNG NHẬN DẠNG KHUÔN MẶT
SỬ DỤNG RASPBERRY PI VÀ OPENCV
Học viên: Nguyễn Văn Thơ Chuyên ngành: Kỹ thuật điện tử
Mã số: Khóa: K38 Trường Đại học Bách khoa - ĐHĐN
Tóm tắt – Hệ thống nhận dạng khuôn mặt là một nhiệm vụ nghiên cứu phổ biến trong lĩnh vực xử lý hình ảnh và thị giác máy tính, do khả năng ứng dụng to lớn cũng như giá trị lý thuyết của nó Hệ thống này được triển khai rộng rãi nhiều ứng dụng trong thế giới thực như an ninh, giám sát, an ninh nội địa, kiểm soát truy cập, tìm kiếm hình ảnh, người-máy và giải trí Tuy nhiên, các ứng dụng này đặt ra những thách thức khác nhau như điều kiện ánh sáng và nét mặt Luận văn nêu bật các nghiên cứu gần đây về phương pháp cũng như các thuật toán phát hiện và nhận dạng khuôn mặt Qua đó đề xuất hệ thống nhận dạng khuôn mặt trên máy tính nhúng Raspberry
Pi 3 sử dụng thư viện mã nguồn mở OpenCV Hệ thống sử dụng mạng Neural tích chập với các Model CNN (convolutional neural network) trong thuật toán phát hiện
và nhận dạng khuôn mặt Hệ thống với kích thước nhỏ gọn, độ chính xác cao và khả năng nhận dạng đáp ứng thời gian thực, có thể triển khai được trong các ứng dụng IoT, hệ thống điểm danh tự động…
Từ khóa – Hệ thống nhận dạng khuôn mặt; OpenCV; mạng Neural tích chập;
Raspberry Pi; chấm công tự động
BUILDING A FACE RECOGNITION SYSTEM USING RASPBERRY PI AND OPENCV
Abstract - The facial recognition system is a popular research task in the field of image
processing and computer vision, due to its enormous applicability and theoretical value The system is widely deployed in real-world applications such as security, surveillance, domestic security, access control, image search, robotics and entertainment However, these applications pose various challenges such as lighting conditions and facial expressions The thesis highlights recent studies on facial detection methods as well as algorithms for detection and recognition Thereby proposing facial recognition system
on Raspberry Pi 3 embedded computer using OpenCV open source library The system uses convolutional neural network (model CNN) in face detection and recognition algorithm The system with compact size, high accuracy and real-time response identification, can be deployed in IoT applications, automatic attendance system…
Key words - The facial recognition system; OpenCV; convolutional neural network
(CNN); Raspberry Pi; automatic attendance system
DUT.LRCC
Trang 5MỤC LỤC
MỞ ĐẦU 1
1 Tính cấp thiết của đề tài 1
2 Mục đích nghiên cứu 2
3 Đối tượng và phạm vi nghiên cứu 2
4 Phương pháp nghiên cứu 2
5 Ý nghĩa khoa học và thực tiễn của đề tài 2
6 Bố cục luận văn 3
CHƯƠNG 1 TỔNG QUAN VỀ HỆ THỐNG NHẬN DẠNG KHUÔN MẶT 4
1.1 Giới thiệu chương 4
1.2 Tổng quan về hệ thống nhận dạng khuôn mặt 4
1.2.1 Các vấn đề liên quan 4
1.2.2 Kiến trúc tổng quát của hệ thống nhận dạng khuôn mặt 5
1.2.3 Những khó khăn, thách thức của hệ thống nhận dạng khuôn mặt 6
1.2.4 Những ứng dụng hệ thống nhận dạng khuôn mặt 7
1.3 Kết luận chương 9
CHƯƠNG 2 KỸ THUẬT TRÍCH CHỌN ĐẶC TRƯNG VÀ PHƯƠNG PHÁP PHÂN LỚP ỨNG DỤNG TRONG NHẬN DẠNG KHUÔN MẶT 10
2.1 Giới thiệu chương 10
2.2 Kỹ thuật phát hiện khuôn mặt bằng thuật toán Haar 10
2.2.1 Tổng quan về các đặc trưng Haar-like 10
2.2.2 Mô hình phân tầng Cascade of Classifiers 12
2.3 Các phương pháp nhận dạng khuôn mặt 14
2.3.1 Nhận dạng dựa trên đặc trưng giữa các phần tử (Feature Based) 14
2.3.2 Nhận dạng dựa trên xét toàn diện khuôn mặt (Appearance Based) 15
2.4 Kỹ thuật trích chọn đặc trưng PCA 19
2.4.1 Giới thiệu về phương pháp PCA 19
2.4.2 Thuật toán PCA 21
2.5 Phương pháp đối sánh trong nhận dạng 22
2.6 Phương pháp máy vector hỗ trợ 23
2.7 Phương pháp mạng neural tích chập 25
2.7.1 Nhận dạng khuôn mặt sử dụng mạng neural tích chập 25
2.7.2 Lớp tích chập 27
2.7.3 Lớp tinh chỉnh đơn vị tuyến tính (ReLU layer) 29
2.7.4 Pooling layer 29
DUT.LRCC
Trang 62.7.5 Lớp kết nối hoàn chỉnh (The Fully connected layer) 30
2.7.6 Hàm mất mát (Loss function) 30
2.8 Kết luận chương 31
CHƯƠNG 3 XÂY DỰNG HỆ THỐNG NHẬN DẠNG KHUÔN MẶT TRÊN MÁY TÍNH NHÚNG RASPBERRY PI 3 32
3.1 Giới thiệu chương 32
3.2 Máy tính nhúng Raspberry Pi 3 32
3.2.1 Giới thiệu chung 32
3.2.2 Cấu trúc phần cứng 33
3.2.3 Hệ điều hành 36
3.2.4 Ưu, nhược điểm 36
3.3 Ngôn ngữ Python 36
3.3.1 Giới thiệu Python 36
3.3.2 Các chức năng chính của Python 36
3.4 Thư viện OpenCV 37
3.4.1 Giới thiệu OpenCV 37
3.4.2 Tổ chức thư viện OPENCV 38
3.5 Quy trình xây dựng hệ thống nhận dạng khuôn mặt 39
3.5.1 Sơ đồ chức năng hệ thống nhận dạng khuôn mặt 39
3.5.2 Phát hiện khuôn mặt sử dụng mạng neural tích chập nối tầng đa nhiệm (MTCNN) 41
3.5.3 Mã hóa và nhận dạng khuôn mặt 44
3.6 Kết luận chương 46
CHƯƠNG 4 THỰC NGHIỆM VÀ ĐÁNH GIÁ HỆ THỐNG 47
4.1 Giới thiệu chương 47
4.2 Kết quả thực hiện hệ thống 47
4.3 Đánh giá hệ thống 50
4.3.1 Tiêu chí đánh giá 50
4.3.2 Xây dựng cơ sở dữ liệu và phân tích kết quả 51
4.4 Kết luận chương 53
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 54 DANH MỤC TÀI LIỆU THAM KHẢO
PHỤ LỤC
QUYẾT ĐỊNH GIAO ĐỀ TÀI (Bản sao)
DUT.LRCC
Trang 7DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt Tiếng anh Dịch nghĩa tiếng việt
ANN Artificial Neural Network Mạng neural nhân tạo
AI Artificial Intelligence Trí tuệ nhân tạo
CNN Convolutional Neural Network Mạng nơ-ron tích chập
DSP Digital Signal Processing Xử lý tín hiệu số
FSVM Fuzzy support vector machines Máy vector hỗ trợ mờ
HOG Histogram of Oriented
Gradians Biểu đồ Gradients IoT Internet of Things Kết nối vạn vật
Trang 8DANH MỤC CÁC BẢNG
Số hiệu
4.1 Ma trận confusion matrix 51 4.2 Kết quả nhận dạng của hệ thống 52 4.3 Kết quả nhận dạng của hệ thống 52 4.4 Tham số ma trận nhầm lẫn của hệ thống 52 4.5 Kết quả thống kê tham số RC, PR, Acc 52
DUT.LRCC
Trang 9các đặc trưng xoay 45o 12 2.5 Minh họa mô hình phân tầng Cascade of Classifiers 13 2.6 Hình ảnh nhìn từ 2 phía khác nhau của con lạc đà 16
2.7 Không gian mới (Aex1, Axe2)có độ biến thiên dữ liệu cao hơn
so với không gian cũ, tìm theo PCA 17 2.8 Phân loại với LDA 19 2.9 Phân loại dựa trên between và within theo LDA 19 2.10 Phân lớp SVM trong mặt phẳng 24
2.11
Siêu phẳng h phân chia dữ liệu thành 2 lớp + và - với khoảng cách biên lớn nhất, các điểm gần nhất (được khoanh tròn) là các vector hỗ trợ
24
2.12 Kiến trúc cơ bản một mạng neural tích chập (CNN) 26 2.13 Mạng neural ứng dụng trong phân loại đối tượng 26 2.14 Các thành phần của tích chập 27 2.15 Minh họa tích chập 27 2.16 Ảnh mờ hơn sau khi áp dụng phép tích chập 28 2.17 Ảnh được phát hiện biên sau khi chập 28 2.18 Đồ thị hàm ReLU 29 2.19 Tính toán với phương pháp MaxPooling 30 3.1 Máy tính nhúng Raspberry Pi 3 32 3.2 Sơ đồ phần cứng Raspberry Pi 3 33 3.3 Sơ đồ chân vào/ ra của Raspberry Pi 3 34 3.3 Tổ chức thư viện OpenCV 38 3.5 Sơ đồ quá trình nhận dạng khuôn mặt trên Raspberry Pi 3 39
DUT.LRCC
Trang 10Số hiệu
3.6 Sơ đồ chức năng của hệ thống 40 3.7 Kiến trúc mạng MTCNN 41 3.8 Các bước phát hiện và cân chỉnh khuôn mặt sử dụng MTCNN 44 3.9 Quy trình mã hóa khuôn mặt sử dụng mạng Neural tích chập 44 3.10 Kết quả mã hóa khuôn mặt thành vecto 128 chiều 45 3.11 Quá trình mã hóa và phân lớp khuôn mặt 45 3.12 Quá trình huấn luyện mạng sử dụng hàm triple loss 46 4.1 Giao diện đăng ký thông tin 47 4.2 Quá trình đăng ký từ những hình ảnh có sẵn 48 4.3 Quá trình đăng ký hình ảnh trực tiếp từ camera 48 4.4 Cơ sở dữ liệu data_face sau khi đăng ký các đối tượng 49 4.5 Giao diện nhận dạng khuôn mặt 49 4.6 Hệ thống nhận dạng nhiều đối tượng cùng lúc 50
DUT.LRCC
Trang 11MỞ ĐẦU
1 Tính cấp thiết của đề tài
Ngày nay, nghiên cứu các kỹ thuật xử lý và nhận dạng ảnh đang và được triển khai rộng rãi ở nước ta Xử lý ảnh là một phân ngành trong xử lý tín hiệu số nhưng đối tượng tín hiệu cụ thể là ảnh Đối tượng ảnh chủ yếu được sử dụng ở đây là ảnh số, và việc xử
lý được tiến hành trên hệ thống máy tính Thông thường việc xử lý ở đây được tiến hành theo quy trình sau Đầu tiên, thông qua các phép biến đổi ảnh như làm mượt, nhị phân ảnh, trích xuất viền,… ta có thể thu được các thông tin hữu ích Sau đó, từ các thông tin hữu ích, thông qua các phương pháp phân nhóm hay phân loại, nhận dạng ta có thể xây dựng được các hệ thống thông minh phục vụ cho cuộc sống của con người Cụ thể ở nước ta, đã có các công trình nghiên cứu liên quan đến xử lý ảnh như nhận dạng dấu vân tay, nhận dạng chữ viết, nhận dạng khuôn mặt…
Nhận dạng mặt người (Face recognition) là một lĩnh vực nghiên cứu của ngành Computer Vision, và cũng được xem là một lĩnh vực nghiên cứu của ngành Biometrics (tương tự như nhận dạng vân tay – Fingerprint recognition, hay nhận dạng mống mắt -Iris recognition) Xét về nguyên tắc chung, nhận dạng mặt có sự tương đồng rất lớn với nhận dạng vân tay và nhận dạng mống mắt, tuy nhiên sự khác biệt nằm ở bước trích chọn đặt trưng (feature extraction) của mỗi lĩnh vực Trong khi nhận dạng vân tay và mống mắt đã đạt tới độ chín, tức là có thể áp dụng trên thực tế một cách rộng rãi thì nhận dạng mặt người vẫn còn nhiều thách thức và vẫn là một lĩnh vực nghiên cứu thú vị với nhiều người So với nhận dạng vân tay và mống mắt, nhận dạng mặt có nguồn dữ liệu phong phú hơn (bạn có thể nhìn thấy mặt người ở bất cứ tấm ảnh, video clip nào liên quan tới con người trên mạng) và ít đòi hỏi sự tương tác có kiểm soát hơn (để thực hiện nhận dạng vân tay hay mống mắt, dữ liệu input lấy từ con người đòi hỏi có sự hợp tác trong môi trường có kiểm soát)
Nhận dạng khuôn mặt được ứng dụng rất rộng rãi trong đời sống hằng ngày của con người, như các hệ thống bảo mật, an ninh, giám sát, quản lý vào ra, tìm kiếm thông tin, ứng dụng trong mạng xã hội như Facebook, google… Vì vậy nhận dạng khuôn mặt được nhiều nhóm nghiên cứu, công ty công nghệ lớn trên thế giới quan tâm Thêm nữa cùng với sự ra đời và phát triển bùng nổ của khoa học máy tính, nhận dạng khuôn mặt đang đòi hỏi nhiều yêu cầu cao về kết quả, độ tin cậy, tính bảo mật
Hiện nay, tất cả các thuật toán nhận diện khuôn mặt được phát triển phần lớn đều dựa trên nền tảng hệ thống xử lý tín hiệu số DSP (Digital Signal Processing) với lượng tài nguyên tính toán rất lớn và giá thành cao, vì vậy khó có thể tích hợp vào các hệ thống nhận dạng yêu cầu giá thành thấp Để giải quyết vấn đề này, luận văn hướng đến nghiên
DUT.LRCC
Trang 12cứu nhận dạng khuôn mặt trên máy tính nhúng Raspberry Pi, với đặc trưng là tài nguyên tính toán giới hạn nhỏ gọn, giá thành thấp nhưng vẫn đảm bảo độ chính xác
Khi trí tuệ nhân tạo AI và Internet vạn vật (IoT) đang phát triển mạnh mẽ, cùng với đó là các thiết bị thông minh ngày càng có sẵn cho người tiêu dùng, nhu cầu về một
hệ thống kết nối nhận dạng khuôn mặt với các tiện ích thông minh trở nên phổ biến thì máy tính nhúng Raspberry là một trong những lựa chọn phù hợp và hiệu quả cao
2 Mục đích nghiên cứu
Luận văn xây dựng hệ thống nhận dạng khuôn mặt trên máy tính nhúng Raspberry
Pi 3 sử dụng thư viện mã nguồn mở OpenCV
Thông qua việc nghiên cứu lý thuyết và thực nghiệm hệ thống nhận dạng khuôn mặt, luận văn đưa ra khảo sát đánh giá về độ chính xác cũng như tính đáp ứng thời gian thực
Từ đó luận văn hướng đến triển khai hệ thống nhận dạng ứng dụng trong thực tiễn
3 Đối tượng và phạm vi nghiên cứu
Lý thuyết tổng quan về hệ thống nhận dạng khuôn mặt
Phương pháp để nhận dạng và phân lớp đối tượng ứng dụng trong nhận dạng khuôn mặt
Lý thuyết tổng quan về máy tính nhúng Raspberry Pi và thư viện xử lý ảnh OpenCV
Thuật toán nhận dạng khuôn mặt sử dụng mạng Neural tích chập
Các tiêu chí đánh giá hiệu năng của hệ thống nhận dạng khuôn mặt: tỉ lệ nhận dạng đúng, thời gian nhận dạng
4 Phương pháp nghiên cứu
Luận văn được nghiên cứu theo phương pháp thu thập dữ liệu kết hợp giữa lý thuyết và thực nghiệm, theo thứ tự sau:
Thu thập tài liệu nghiên cứu, bao gồm tài liệu lý thuyết và thực nghiệm
Tìm hiểu, khảo sát cơ sở vật chất, kỹ thuật và công nghệ, thiết bị sẵn có, linh kiện phù hợp có mặt trên thị trường
Xây dựng mô hình tổng quan về nhận dạng khuôn mặt trên hệ thống nhúng (kit Raspberry Pi)
Thao tác thử nghiệm các thuật toán trực tiếp trên phần cứng
Xây dựng bản demo hệ thống nhận dạng khuôn mặt
5 Ý nghĩa khoa học và thực tiễn của đề tài
Luận văn thực hiện lại các nghiên cứu từ các tài liệu, bài báo cáo khoa học về kỹ thuật nhận dạng khuôn mặt dựa trên nền tảng OpenCV và Raspberry Pi Kết quả luận văn sẽ là tài liệu tham khảo để rút ra ưu điểm và những hạn chế của phương pháp nhận
DUT.LRCC
Trang 13dạng khuôn mặt trên hệ thống nhúng Raspberry Pi Trên cơ sở đó có thể sử dụng Raspberry Pi để ứng dụng vào các hệ thống điều khiển, quản lý, giám sát, an ninh…
6 Bố cục luận văn
Luận văn được chia ra làm 4 chương như sau:
Chương 1: Tổng quan về hệ thống nhận dạng khuôn mặt
Phân tích tổng quan hệ thống nhận dạng khuôn mặt, tình hình phát triển của kỹ thuật này cũng như tóm tắt sơ lược về các phương pháp, kỹ thuật nhận dạng khuôn mặt
Chương 2: Kỹ thuật trích chọn đặc trưng và phương pháp phân lớp ứng dụng trong
nhận dạng khuôn mặt
Tập trung phân tích lý thuyết cho hệ thống từ mức tổng quan đến chi tiết từng thuật toán Ở chương này, Luận văn trình bày lý thuyết chung cho từng kỹ thuật ứng dụng trong luận văn: kỹ thuật phân tích thành phần chính PCA, kỹ thuật huấn luyện bằng phương pháp đối sánh và phương pháp máy vector hỗ trợ SVM, phương pháp mạng Neural tích chập
Chương 3: Hệ thống nhận dạng khuôn mặt trên máy tính nhúng Raspberry Pi 3
Trình bày các kiến thức tổng quan về Raspberry Pi 3 và thư viện mã nguồn mở OpenCV, quy trình thực hiện nhận dạng khuôn mặt thực hiện trên Raspberry Pi
Chương 4: Thực nghiệm và đánh giá hệ thống
Trình bày hệ thống nhận dạng khuôn mặt thực nghiệm, đánh giá hiệu năng của hệ thống Từ đó rút ra kết luận và hướng phát triển của đề tài
Luận văn được thực hiện dựa trên các nguồn tài liệu tham khảo được thu thập từ nhiều nguồn khác nhau: các bài báo trong các tạp chí hoặc hội thảo khoa học chuyên ngành, các báo cáo khoa học, cơ sở dữ liệu Đồ án và Luận văn tại các trường Đại học, được trích dẫn trong suốt luận văn và danh mục tài liệu được liệt kê cụ thể ở phần Tài liệu tham khảo
DUT.LRCC
Trang 14CHƯƠNG 1 TỔNG QUAN VỀ HỆ THỐNG NHẬN DẠNG KHUÔN MẶT
1.1 Giới thiệu chương
Hệ thống nhận dạng khuôn mặt là một ứng dụng máy tính tự động xác định hoặc nhận dạng một người nào đó từ một hình ảnh kỹ thuật số hoặc một khung hình video từ một nguồn video Một trong những cách để thực hiện điều này là so sánh các đặc điểm khuôn mặt chọn trước từ hình ảnh và một cơ sở dữ liệu về khuôn mặt Công nghệ nhận dạng khuôn mặt là công nghệ sinh trắc học ít tác động đến người dùng nhất và là công nghệ sinh trắc học nhanh nhất Nhà quản lý có thể chủ động hơn trong việc kiểm soát,
hệ thống sẽ nhận diện khuôn mặt một cách kín đáo bằng cách chụp ảnh khuôn mặt của những ai bước vào một khu vực được xác định từ camera giám sát Trong chương này
sẽ trình bày những khái niệm cơ bản về nhận dạng khuôn mặt, quá trình nhận dạng khuôn mặt và những thách thức, khó khăn cũng như những giải pháp công nghệ đã được đưa ra để nâng cao tính hiệu quả của nhận dạng khuôn mặt
1.2 Tổng quan về hệ thống nhận dạng khuôn mặt
1.2.1 Các vấn đề liên quan
Đặc tính sinh trắc học: Những thuộc tính vật lý hoặc các mẫu hành vi, các đặc
điểm sinh học đặc trưng như dấu vân tay, mẫu mống mắt, giọng nói, khuôn mặt, dáng đi để nhận diện con người [1, 2]
Dữ liệu sinh trắc lý tưởng của người luôn luôn phải có những đặc tính cơ bản như sau:
Tính tổng quát: Mỗi người đều được thể hiện bởi đặc tính này
Tính duy nhất: Không thể tồn tại hai người có đặc tính giống nhau
Tính thường xuyên: Là sự độc lập của đặc tính đối với thời gian
Tính thu thập được: Là đặc tính được thu thập một cách tương đối đơn giản và nhanh chóng từ mỗi cá nhân và có thể được chi tiết hóa
Hệ thống sinh trắc học: Hệ thống sinh trắc học là một hệ thống được thiết kế
để xác minh và nhận dạng một người dựa vào những đặc trưng sinh học duy nhất của người đó
Hệ thống nhận dạng khuôn mặt: Hệ thống nhận dạng khuôn mặt là một hệ thống
được thiết kế để tìm thông tin của một người Kĩ thuật nhận dạng là kiểm tra sự phù hợp dựa trên phép so sánh một-nhiều, cụ thể là tìm ra một người là ai trong số những người
đã được lưu trữ trong hệ thống dựa vào thông tin khuôn mặt [3-5]
Hệ thống xác minh hay xác thực mặt người: Hệ thống xác minh/xác thực khuôn
DUT.LRCC
Trang 15mặt là một hệ thống được thiết kế để xác minh thông tin của một người Kĩ thuật xác minh là kiểm tra sự phù hợp trên phép so sánh một-một, cụ thể là đối chiếu thông tin mới nhận về một người với thông tin đã lưu trữ về người này có khớp hay không dựa trên thông tin khuôn mặt [3]
1.2.2 Kiến trúc tổng quát của hệ thống nhận dạng khuôn mặt
Nhận dạng khuôn mặt là một kiểu nhận dạng trực quan, khuôn mặt được xem là một đối tượng với sự thay đổi của ánh sáng, tư thế, cảm xúc sẽ được xác định dựa trên ảnh hai chiều Nhiệm vụ của hệ thống nhận dạng khuôn mặt là xử lý tự động thông tin
từ các hình ảnh đầu vào và đưa ra quyết định về thông tin khuôn mặt [3] Trong đề tài này, cấu trúc của hệ thống nhận dạng khuôn mặt được thực hiện theo quy trình như hình sau:
Hình 1.1 Kiến trúc tổng quan của hệ thống nhận dạng khuôn mặt [5]
Chức năng từng khối mô tả cụ thể như sau:
Phát hiện khuôn mặt: Hệ thống nhận dạng khuôn mặt đầu tiên bắt đầu với việc
định vị khuôn mặt người trong một hình ảnh cụ thể Mục đích của bước này là xác định xem hình ảnh đầu vào có chứa khuôn mặt người hay không Sự thay đổi của ánh sáng
và biểu cảm khuôn mặt có thể ngăn cản việc phát hiện khuôn mặt thích hợp Nhiều kỹ thuật được sử dụng để phát hiện và định vị hình ảnh khuôn mặt người, ví dụ, máy dò Viola - Jones [8, 9], biểu đồ của gradient định hướng (HOG) [10], và phân tích thành phần chính (PCA) [17-19 ]
Trích xuất đặc trưng: Chức năng chính của bước này là trích xuất các đặc điểm
của hình ảnh khuôn mặt được phát hiện trong bước đầu tiên Bước này đại diện cho một khuôn mặt với một tập hợp các vectơ đặc điểm được gọi là “đặc trưng” mô tả các đặc điểm nổi bật của hình ảnh khuôn mặt như miệng, mũi và mắt với sự phân bố hình học của chúng [21] Mỗi khuôn mặt được đặc trưng bởi cấu trúc, kích thước và hình dạng cho phép nó được nhận dạng Một số kỹ thuật liên quan đến việc trích xuất hình dạng
Phát hiện
Trích xuất đặc trưng
Dữ liệu khuôn mặt
DUT.LRCC
Trang 16của miệng, mắt hoặc mũi để xác định khuôn mặt bằng cách sử dụng kích thước và khoảng cách HOG [10], Eigenface [18, 21], phân tích thành phần độc lập (ICA), phân tích phân biệt tuyến tính (LDA) [19], biến đổi tính năng bất biến tỷ lệ (SIFT) [22], bộ lọc gabor, lượng tử hóa pha cục bộ (LPQ) [23] và kỹ thuật mẫu nhị phân cục bộ (LBP) [24] được sử dụng rộng rãi để trích xuất các đặc trưng của khuôn mặt
Nhận dạng khuôn mặt: Bước này xem xét các đặc trưng được trích xuất trong
bước trích xuất đặc trưng và so sánh nó với các khuôn mặt đã biết được lưu trữ trong cơ
sở dữ liệu cụ thể Trong bước nhận dạng, một khuôn mặt thử nghiệm được so sánh với một tập hợp các khuôn mặt trong dữ liệu có sẵn nhằm tìm ra khuôn mặt phù hợp nhất Trong bước nhận dạng, một khuôn mặt kiểm tra được so sánh với các khuôn mặt đã biết trong cơ sở dữ liệu để đưa ra quyết định [25, 26]
1.2.3 Những khó khăn, thách thức của hệ thống nhận dạng khuôn mặt
- Tư thế, góc chụp: Ảnh chụp khuôn mặt có thể thay đổi rất nhiều bởi vì góc chụp giữa camera và khuôn mặt Chẳng hạn như: chụp thẳng, chụp xéo bên trái hay xéo bên phải, chụp từ trên xuống, chụp từ dưới lên, v.v Với các tư thế khác nhau, các thành phần trên khuôn mặt như mắt, mũi, miệng có thể bị khuất một phần hoặc thậm chí khuất hết [8]
- Sự xuất hiện hoặc thiếu một số thành phần của khuôn mặt: các đặc trưng như râu
mép, râu hàm, mắt kính, v.v có thể xuất hiện hoặc không Vấn đề này làm cho bài toán càng trở nên khó hơn rất nhiều
- Sự biểu cảm của khuôn mặt: Biểu cảm của khuôn mặt người có thể làm ảnh hưởng đáng kể lên các thông số của khuôn mặt Chẳng hạn, cùng một khuôn mặt một người, nhưng có thể sẽ rất khác khi họ cười hoặc sợ hãi,v.v
- Sự che khuất: Khuôn mặt có thể bị che khuất bởi các đối tượng khác hoặc các khuôn mặt khác
- Điều kiện của ảnh: Ảnh được chụp trong các điều kiện khác nhau về: chiếu sáng,
về tính chất camera (máy kỹ thuật số, máy hồng ngoại,v.v ) ảnh hưởng rất nhiều đến chất lượng ảnh khuôn mặt Tuy vậy, hệ thống nhận dạng mặt người cần đảm bảo các yêu cầu sau:
- Độ chính xác nhận dạng có thể chấp nhận được đối với yêu cầu của bài toán nhận dạng người
- Tốc độ vận hành cao đối với các cơ sở dữ liệu lớn và số lượng các yêu cầu có thể giải quyết được
- Đơn giản trong việc cài đặt, lựa chọn thiết bị và vận hành, an toàn với người sử dụng
DUT.LRCC
Trang 171.2.4 Những ứng dụng hệ thống nhận dạng khuôn mặt
Ngày nay, trên thế giới ước tính có khoảng 79% số lượng vi xử lý dùng trong các
hệ thống nhúng Thị trường hệ thống nhúng sẽ sớm vượt thị trường của các hệ thống dạng PC, và đương nhiên, hệ thống phần mềm và các thuật toán kèm theo cũng được dự đoán là sẽ tăng vượt bậc Và hệ thống nhận dạng khuôn mặt trên nền hệ thống nhúng cũng nằm trong quy luật phát triển đó
Trong nước, các nghiên cứu về hệ thống nhận dạng khuôn mặt chỉ tập trung vào nền tảng PC với nhiều thuật toán phức tạp
Rất nhiều nghiên cứu của các tác giả trong nước về các thuật toán nhận dạng khuôn mặt cũng như xây dựng nhiều hệ thống thực nghiệm để đánh giá Các ứng dụng trên được mô phỏng và xử lý tốt với Matlab, và có thể phát triển thành các ứng dụng cụ thể với ngôn ngữ C# Các hệ thống này đáp ứng rất tốt tính thời gian thực, độ chính xác rất cao, tuy nhiên trong phạm vi hệ thống nhúng, các phương pháp tính này tỏ ra chưa phù hợp khi chưa đảm bảo được tính hiệu quả ở nhiều thông số như: năng lượng, kích thước
hệ thống, hiệu quả sử dụng và giá thành
Bên cạnh đó, trên thế giới, để đáp ứng nhu cầu về phát triển hệ thống nhúng chuyên dụng cho mục đích nhận dạng khuôn mặt thì đã có nhiều nhóm nghiên cứu tiến hành thực hiện và đánh giá các thuật toán và đạt được kết quả rất khả quan Các bài toán phát hiện khuôn mặt sử dụng FPGA, Kit Xilinx XC5VLX50, có khả năng xử lý các bức ảnh tĩnh có độ phân giải 10242 pixels cũng như các hệ thống sử dụng OpenCV cascade of classifiers cho khuôn mặt chính diện và lưu trữ được đến 2730 Haar-like classifiers
Từ năm 2009 đến 2013, nhiều nhóm nghiên cứu đã tiếp tục phát triển các hệ thống nhúng nhận dạng khuôn mặt trên chip ARM với các bộ cơ sở dữ liệu có sẵn như AT&T, Yale, Face94 Hệ thống được xây dựng trên chip ARM 7, hệ điều hành Window với kết nhận dạng rất tốt Tuy nhiên, các kết quả trên chỉ có thể áp dụng để phát triển và đánh giá thuật toán, mà không thể đi vào ứng dụng thực tiễn do mô hình hệ thống chưa phù hợp (thiếu các cơ cấu IO chấp hành, cửa sổ hiển thị phải dùng Matlab )
Nhận dạng khuôn mặt đang được phát triển và ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau Cụ thể có thể nói đến hệ thống nhận diện khuôn mặt được triển khai ở
Mỹ, vốn trước kia chỉ dành cho các cơ quan thực thi pháp luật của nước này Chính phủ
Mỹ hiện đang ứng dụng công nghệ này để đảm bảo an ninh quốc gia thông qua việc nhận diện khuôn mặt kẻ tội phạm ngay khi chúng xuống sân bay hay loại bỏ những lá phiếu gian lận thông qua việc xác định khuôn mặt người đi bầu cử Một ứng dụng khác rất tiềm năng là việc xác thực rút tiền từ máy rút tiền tự động ATM, một giải pháp bảo mật hứa hẹn sẽ trở nên phổ biến trong tương lai gần
Trên lĩnh vực điện thoại di động, ứng dụng nhận diện khuôn mặt để mở máy đã có
DUT.LRCC
Trang 18trong hệ điều hành Android 4.x, thành quả thu được của Google sau thắng lợi trong cuộc chiến bằng sáng chế trước các đối thủ cạnh tranh Cùng thời điểm đó, Apple cũng đã tiết
lộ bằng sáng chế khóa và mở khóa các dòng sản phẩm của hãng ứng dụng công nghệ nhận diện khuôn mặt
Tháng 6/2012, việc mạng xã hội Facebook mua lại công ty nhận diện khuôn mặt Face.com đã tạo ra những hy vọng nhất định cho các công ty hoạt động trong lĩnh vực này Trước đó, Google và Sony cũng đã ứng dụng công nghệ nhận diện khuôn mặt trong các phần mềm của họ, tương ứng là Picasa và Picture Motion Browser Tất nhiên, tất cả mới chỉ dừng lại ở việc tạo sự thuận tiện cho người sử dụng Các lĩnh vực và sản phẩm
cụ thể đã áp dụng nhận dạng khuôn mặt có thể liệt kê như:
- Face Identification: Hệ thống này nhận dạng khuôn mặt bởi hình ảnh khuôn mặt trực tuyến chứ không phải thông qua các mã PIN, ID hay password cổ điển Ứng dụng
cụ thể như nhận dạng bằng lái xe, chứng minh nhân dân, passports hay kiểm phiếu bầu
cử Năm 2000, Faceit technology đã lần đầu tiên ứng dụng nhận dạng khuôn mặt chống gian lận trong bầu cử Người bỏ phiếu được nhận dạng và lưu lại trong cơ sở dữ liệu nhằm đối sánh để loại bỏ các trường hợp trùng lặp người bỏ phiếu Hay như hệ thống Viisage’s face Finder của Department of State for the Diversity Visa Program Hoa Kỳ (hình 1.2) chứa xấp xỉ 50000 thông tin khuôn mặt phục vụ cho quản lý bằng lái xe
Hình 1.2 Giao diện chương trình FaceFinder
DUT.LRCC
Trang 19- Access control: Ứng dụng cho việc giới hạn đăng nhập vào hệ thống bất kì như máy tính, hệ thống tòa nhà, Hệ thống này yêu cầu ảnh hoặc video phải được thu nhận dưới các ràng buột nhất định về hướng khuôn mặt hay độ sáng khung hình Năm 2000, các máy tính của IBM được tích hợp Facelt và camera Ultraport cho phép người dùng quản trị máy tính bằng khuôn mặt Admin của hệ thống được quan sát từ video tích hợp trên máy tính, nếu admin không có trước màn hình máy tính, hệ thống sẽ tự động khóa bàn phím và chuột, cho đến khi admin trở về và kích hoạt đăng nhập bằng khuôn mặt
Dễ thấy hơn cả là các hệ thống Facegate sử dụng khuôn mặt để đăng nhập hoặc chấm công, được sử dụng rộng rãi trên toàn thế giới
Hình 1.3 Máy chấm công FK605 dùng FaceID
- An ninh: Ngày nay, hơn bao giờ hết, an ninh là một mối quan tâm chính tại các địa điểm công cộng và sự kiện tập trung nhiều người Ví dụ như hệ thống an ninh sân bay sử dụng công nghệ nhận dạng khuôn mặt đã được thực hiện tại nhiều nơi trên toàn thế giới Mặc dù nó có thể kiểm soát điều kiện ánh sáng và định hướng khuôn mặt trong một số ứng dụng bảo mật, (ví dụ, bằng cách sử dụng một làn đường cho người đi bộ duy nhất với ánh sáng kiểm soát), một trong những thách thức lớn nhất đối với nhận dạng khuôn mặt ở những nơi công cộng là số lượng lớn các mặt mà cần phải được kiểm tra nên hiệu suất nhận dạng chưa cao
1.3 Kết luận chương
Với nội dung chương 1, luận văn đã trình bày tổng quát về hệ thống nhận dạng khuôn mặt nói chung, cụ thể là về những đặc điểm của hệ thống cũng như các khó khăn, thách thức hiện nay đối với nhận dạng khuôn mặt Chương này cũng giới thiệu một số ứng dụng cụ thể của công nghệ nhận dạng khuôn mặt đang được triển khai
DUT.LRCC
Trang 20CHƯƠNG 2
KỸ THUẬT TRÍCH CHỌN ĐẶC TRƯNG VÀ PHƯƠNG PHÁP PHÂN LỚP ỨNG DỤNG TRONG NHẬN DẠNG KHUÔN MẶT
2.1 Giới thiệu chương
Trong chương này sẽ trình bày tổng quan về kỹ thuật phát hiện và nhận dạng khuôn mặt, cụ thể là về phương pháp trích chọn đặc trưng và nhận dạng khuôn mặt Kỹ thuật phát hiện khuôn mặt sử dụng thuật toán Haar và trích chọn đặc trưng khuôn mặt dựa trên phương pháp PCA Sau đó đưa ra phương pháp nhận dạng được áp dụng vào PCA,
đó là phương pháp đối sánh và phương pháp SVM
2.2 Kỹ thuật phát hiện khuôn mặt bằng thuật toán Haar
2.2.1 Tổng quan về các đặc trưng Haar-like
Đặc trưng Haar-like diễn đạt được tri thức về các đối tượng trong ảnh (bởi vì nó biểu diễn mối liên hệ giữa các bộ phận của đối tượng), điều mà bản thân từng điểm ảnh không diễn đạt được [7,8] Mỗi đặc trưng Haar-like chứa 2, 3 hoặc 4 miền hình học có màu “trắng” hoặc “đen” như sau:
Hình 2.1 Các đặc trưng Haar-like cơ sở
Trang 21Như vậy ta có thể thấy rằng, để tính các giá trị của đặc trưng Haar-like, ta phải tính tổng của các vùng pixel trên ảnh Nhưng để tính toán các giá trị của các đặc trưng Haar-like cho tất cả các vị trí trên ảnh đòi hỏi chi phí tính toán khá lớn, không đáp ứng được cho các ứng dụng đòi hỏi tính thời gian thực Do đó Viola và Jones đưa ra một khái niệm gọi là Integral Image, là một mảng 2 chiều với kích thước bằng với kích thước của ảnh cần tính các đặc trưng Haar- like, với mỗi phần tử của mảng này được tính bằng cách tính tổng của điểm ảnh phía trên (dòng-1) và bên trái (cột-1) của nó Bắt đầu từ vị trí trên, bên trái đến vị trí dưới, bên phải của ảnh, việc tính toán này đơn thuần chỉ đựa trên phép cộng
số nguyên đơn giản, do đó tốc độ thực hiện rất nhanh
Integral Image tại vị trí (x, y) có giá trị bằng tổng các giá trị pixel nằm trong hình chữ nhật được định bởi góc trái trên là (0, 0) và góc phải dưới là (x, y) Integral Image chính là một ảnh được xử lý trước nhằm tăng cường cho việc rút trích những đặc trưng Haar
P(x,y) = ∑𝑥′ ≤𝑥,𝑦′≤𝑦𝑖(𝑥′, 𝑦′) (2.2)
Hình 2.3 Cách tính Integral Image của ảnh
Sau khi đã tính được Integral Image, việc tính tổng các giá trị mức xám của một vùng bất kỳ nào đó trên ảnh cũng được thực hiện rất đơn giản Giả sử ta cần tính tổng các giá trị mức xám của vùng D trong hình
Trong đó:
- A, B, C, D là tổng các giá trị mức xám của hình chữ nhật tương ứng
- P1, P2, P3, P4 lần lượt là Integral Image tại 4 đỉnh của hình chữ nhật D
Trang 22Suy ra:
P1+ P4-P2-P3= A + (A + B + C + D) - (A + B) - (A + C) = D
Vậy ta có: D = P1+ P4- P2- P3 (2.3) Sau này, Lienhart kế thừa gọi Integral Image là SAT - Summed Area Table và đưa ra thêm khái niệm RSAT - Rotated Summed Area Table dùng để tính toán nhanh
cho các đặc trưng xoay một góc 45o Tổng các điểm ảnh trong một hình chữ nhật (kể
cả trường hợp xoay 45º) bất kì đều có thể được tính nhanh dựa trên integral image
tại 4 đỉnh của nó
Hình 2.4 Ví dụ cách tính nhanh tổng điểm ảnh của vùng D trên ảnh với các đặc trưng
xoay 45 o
2.2.2 Mô hình phân tầng Cascade of Classifiers
Ta thấy quá trình huấn luyện, bộ phân loại phải duyệt qua tất cả các đặc trưng của
các mẫu trong tập training Việc này tốn rất nhiều thời gian Tuy nhiên, trong các mẫu đưa vào, không phải mẫu nào cũng thuộc loại khó nhận dạng, có những mẫu background rất dễ nhận ra (ta gọi đây là những mẫu background đơn giản) Đối với những mẫu này,
ta chỉ cần xét một hay vài đặc trưng đơn giản là có thể nhận diện được chứ không cần xét tất cả các đặc trưng Nhưng đối với các bộ phân loại thông thường thì cho dù mẫu cần nhận dạng là dễ hay khó thì nó vẫn sẽ xét tất cả các đặc trưng mà nó rút ra được trong quá trình học Do đó, chúng tốn thời gian xử lý một cách không cần thiết Mô hình
phân tầng Cascade of Classifiers được xây dựng chính là nhằm rút ngắn thời gian xử lý, giảm thiểu false alarm cho bộ phân loại Cascade tree gồm nhiều stage (hay còn gọi là
layer), mỗi stage của cây sẽ là một stage classifier Một mẫu để được phân loại là đối
tượng thì nó cần phải đi qua hết tất cả các stages của cây Các stage classifiers ở stage sau được huấn luyện bằng những mẫu negative mà stage classifier trước nó nhận dạng sai, tức là nó sẽ tập trung học từ các mẫu background khó hơn, do đó sự kết hợp các
stage classifiers này lại sẽ giúp bộ phân loại có false alarm thấp Với cấu trúc này, những
mẫu background dễ nhận diện sẽ bị loại ngay từ những stages đầu tiên, giúp đáp ứng tốt
nhất đối với độ phức tạp gia tăng của các mẫu đưa vào, đồng thời giúp rút ngắn thời gian
DUT.LRCC
Trang 23xử lý [7-9]
Để phát hiện khuôn mặt, ảnh được quét bằng một cửa sổ con chứa một đặc trưng Haar-like Ứng với một đặc trưng Haar-like fj, một bộ phân lớp yếu yj(x) được định nghĩa như sau:
yj = { 1 𝑛ế𝑢 𝑝𝑗𝑓𝑗(𝑥) < 𝑝𝑗𝜃𝑗
− 1 𝑛ế𝑢 𝑛𝑔ượ𝑐 𝑙ạ𝑖 (2.4) trong đó:
- x là cửa sổ con
- θ là ngưỡng
- pj là hệ số với ý nghĩa là quyết định dấu của bất phương trình
Công thức này có ý nghĩa: Nếu giá trị của đặc trưng Haar-like tại cửa sổ con x vượt quá một ngưỡng nào đó thì đó là khuôn mặt; ngược lại thì không phải là khuôn mặt Minh họa các bước huấn luyện trong mô hình phân tầng:
Hình 2.5 Minh họa mô hình phân tầng Cascade of Classifiers
Hình 2.5 minh họa sự huấn luyện của một cascade gồm N stages Ở mỗi stage,
weak classifier tương ứng sẽ được huấn luyện để đảm bảo giá trị hai thông số quan trọng của một cascade là false alarm và tỉ lệ phát hiện đúng
Ưu nhược điểm của phương pháp:
Ưu điểm:
Bộ đặc trưng Haar -like mô tả tốt đặc điểm của khuôn mặt chính diện
Nhược điểm:
Hiệu quả của bộ phân lớp phụ thuộc rất lớn vào bộ đặc trưng Haar-like đã chọn
và việc thực nghiệm số bộ phân lớp như đã mô tả trong kịch bản kiểm thử
Sự không rạch ròi về mức xám giữa nền và khuôn mặt cũng làm cho hiệu quả giảm đáng kể
Nhược điểm lớn nhất của mô hình là không phản ánh được khuôn mặt nghiêng
DUT.LRCC
Trang 24(chỉ thấy một bên mắt) và những khuôn mặt bị quay ngang
2.3 Các phương pháp nhận dạng khuôn mặt
Nhận dạng khuôn mặt nói chung có hai phương pháp [11, 12]:
Nhận dạng dựa trên đặc trưng của các phần tử trên khuôn mặt (Feature Based
2.3.1 Nhận dạng dựa trên đặc trưng giữa các phần tử (Feature Based)
[15,16] Đây là phương pháp nhận dạng khuôn mặt dựa trên việc xác định các đặc trưng hình học của các chi tiết trên một khuôn mặt (như vị trí, diện tích, hình dạng của mắt, mũi, miệng, khuôn dạng của khuôn mặt,…), và mối quan hệ giữa chúng (ví dụ khoảng cách của hai mắt, khoảng cách của hai lông mày, khoảng cách từ mũi tới cằm,…)
Ưu điểm của phương pháp:
Phương pháp này gần với cách mà con người sử dụng để nhận biết khuôn mặt
Với việc xác định đặc tính và các mối quan hệ, phương pháp này có thể cho kết quả tốt trong các trường hợp ảnh có nhiều nhiễu, ảnh bị nghiêng, bị xoay, ánh sáng thay đổi
Nhược điểm của phương pháp:
Việc xác định một lúc nhiều đặc tính và các mối quan hệ đòi hỏi các thuật toán phức tạp
Nếu ảnh có độ phân giải bé, các mối quan hệ giữa cùng một cặp đặc tính trên các khuôn mặt đều rất sát nhau, điều này dẫn đến kết quả nhận dạng không chính xác Với ảnh có độ phân giải lớn hơn thì khối lượng tính toán sẽ rất lớn, đòi hỏi cao về cấu hình phần cứng
Có nhiều thuật toán đưa ra dựa trên phương pháp này như nhận dạng ảnh mặt người dựa trên biến đổi Gabor Wavelet và mạng Neural, phương pháp SVM hoặc FSVM
2.3.1.1 Phương pháp dùng biến đổi Gabor Wavelet và mạng Neural
Wavelet là các hàm toán học chia dữ liệu thành các thành phần tần số khác nhau và xem xét từng thành phần với độ phân giải thích hợp.Wavelet có rất nhiều
ưu điểm so với biến đổi Fourier truyền thống để phát hiện sự gián đoạn và thay đổi đột biến của tín hiệu Phương pháp nhận dạng dùng biến đổi Gabor là một phương pháp nhận dạng dựa trên đặc trưng Biến đổi Gabor biểu diễn ảnh mô phỏng theo
hệ thống thị giác của con người HVS (Human Visual System), các đặc trưng Gabor
DUT.LRCC
Trang 25của ảnh có thể được sử dụng hiệu quả trong các ứng dụng thị giác máy tính, robotic [13, 14]
Nền tảng chung để biểu diễn ảnh không gian ở đây dựa trên đồ thị có thứ tự, các điểm đặc trưng không gian được định vị để biểu diễn mẫu trong ảnh Ở mỗi đặc trưng, một băng lọc đa phân giải ứng với các hàm Gabor wavelet đa hướng được sử dụng
Trước tiên, chúng ta dùng biến đổi Gabor wavelet để trích chọn đặc trưng Theo
đó, ảnh khuôn mặt được xử lý bằng biến đổi Gabor wavelet để trích ra các đặc trưng Một tập các tần số và hướng của các điểm đặc trưng xác định bởi mạng wavelet sẽ là thông tin đặc trưng để biểu diễn ảnh
Sau đó, chúng ta đưa các đặc trưng này vào mạng neural để huấn luyện Loại mạng neural điển hình được dùng trong xử lý ảnh là mạng neural perception nhiều lớp MLP (multi-layer perception) Mỗi Neural trong một lớp kết nối trực tiếp với các neural ở lớp dưới Mạng neural sử dụng rộng rãi để huấn luyện, học mẫu là mạng lan truyền ngược (back propagation) Ở đây, giá trị đầu ra được so sánh với kết quả đúng để tính giá trị của hàm sai số xác định trước Giá trị hàm sai số này sau đó được truyền ngược lại mạng điều chỉnh trọng số của mỗi kết nối để cực tiểu hóa lỗi Sau khi lặp lại quá trình này với
số lần huấn luyện đủ lớn sẽ hội tụ đến các trạng thái ít lỗi nhất
2.3.1.2 Phương pháp SVM
SVM là phương pháp học do Vladimir N Vapnik đề xuất vào năm 1995, và ngày càng được sử dụng phổ biến trong nhiều lĩnh vực, đặc biệt là lĩnh vực phân loại mẫu và nhận dạng mẫu [15, 16]
SVM đã được Osuna áp dụng đầu tiên để xác định khuôn mặt người SVM được xem như là một kiểu mới dùng huấn luyện để phân loại theo hàm đa thức Trong khi hầu hết các phương pháp khác huấn luyện để phân loại (Mạng Bayes, Neural, RBF) đều dùng tiêu chí tối thiểu lỗi huấn luyện (rủi ro do kinh nghiệm), trong khi SVM dùng quy nạp (được gọi là tối thiểu rủi ro cấu trúc) Phân loại SVM
là một phân loại tuyến tính, dùng một siêu phẳng để tách dữ liệu Dựa trên một kết hợp có các trọng số của một tập con nhỏ các vector huấn luyện, các vector này được gọi là support vector Ước lượng siêu phẳng thì tương đương giải một bài toán tuyến tính bậc hai
Chúng ta có thể kết hợp một phương pháp trích chọn thuộc tính (như PCA, Gabor Wavelet, Haar Wavelet…) với phương pháp học SVM trong nhận dạng khuôn mặt
2.3.2 Nhận dạng dựa trên xét toàn diện khuôn mặt (Appearance Based)
Nhận dạng dựa xét toàn diện khuôn mặt có nghĩa là việc nhận dạng không dựa trên xét từng thành phần đặc trưng trên khuôn mặt mà sẽ xem khuôn mặt là một không gian
DUT.LRCC
Trang 26cụ thể, sau đó đi tìm những đặc trưng, những đặc điểm chính trên không gian đó [17]
Một số phương pháp thường được dùng hiện nay là PCA (Principle Components
Analysis), LDA (Linear Discriminant Analysis) [20]
2.3.2.1 Nhận dạng bằng PCA
PCA (Principle Components Analysis) là một thuật toán để tạo ra một ảnh mới
từ ảnh ban đầu Ảnh mới này có kích thước nhỏ hơn rất nhiều so với ảnh đầu vào và vẫn mang những đặc trưng cơ bản nhất của khuôn mặt cần nhận dạng PCA không cần phải quan tâm đến việc phải tìm ra cụ thể các đặc điểm trên khuôn mặt (mắt, mũi, miệng…) và các mối quan hệ.Tất cả những chi tiết đó đều được thể hiện ở ảnh mới được tạo ra từ PCA Mục tiêu của PCA là ảnh mới được tạo ra có kích thước nhỏ nhất
và chứa nhiều nhất các đặc trưng quan trọng (mang nhiều thông tin chính) của ảnh khuôn mặt đầu vào [18, 20]
Về bản chất, PCA tìm ra một không gian mới theo hướng biến thiên mạnh nhất của một tập hợp các vec-tơ trong một không gian cho trước Trong không gian mới, người ta
hy vọng rằng việc phân loại sẽ mang lại kết quả tốt hơn so với không gian đầu hay nói cách khác thì các liên kết tiềm ẩn của dữ liệu có thể được khám phá, mà nếu đặt trong không gian cũ thì khó phát hiện hơn, hoặc những liên kết như thế không thể hiện rõ.Một
ví dụ (hình 2.6) là hình ảnh về con lạc đà Cùng là một con lạc đà nhưng nếu nhìn từ bên hông thì ta có được đầy đủ thông tin nhất, trong khi nhìn từ phía trước thì thật khó để nói nó là lạc đà
Hình 2.6 Hình ảnh nhìn từ 2 phía khác nhau của con lạc đà
DUT.LRCC
Trang 27Một ví dụ khác sẽ minh hoạ rõ hơn cho PCA:
Hình 2.7 Không gian mới (Aex 1 , Axe 2 )có độ biến thiên dữ liệu cao hơn so với không
gian cũ, tìm theo PCA
Giả sử tập dữ liệu ban đầu (tập điểm màu xanh) được quan sát trong không gian 3 chiều (trục màu đen) như hình bên trái Rõ ràng 3 trục này không biểu diễn được tốt nhất mức độ biến thiên của dữ liệu Do đó PCA sẽ tìm hệ trục tọa độ mới (là hệ trục màu đỏ trong hình bên trái) Sau khi tìm được không gian mới, dữ liệu sẽ được chuyển sang không gian này để được biểu diễn như trong hình bên phải Rõ ràng hình bên phải chỉ cần 2 trục tọa độ nhưng biểu diễn tốt hơn độ biến thiên của dữ liệu so với hệ trục 3 chiều ban đầu PCA làm giảm số chiều của dữ liệu nhưng vẫn thể hiện tốt nhất mức độ biến thiên của dữ liệu
Ưu điểm của phương pháp PCA:
+ Tìm được các đặc tính tiêu biểu cho một khuôn mặt mà không cần phải xác định các thành phần và mối liên hệ giữa các thành phần trên khuôn mặt đó
+ Thuật toán thực hiện tốt với các ảnh đầu vào có độ phân giải cao, do PCA sẽ thu gọn ảnh đầu vào thành một ảnh mới có kích thước rất nhỏ (giảm số chiều dữ liệu) + PCA có thể kết hợp được với các phương pháp khác để mang lại hiệu quả nhận dạng cao hơn ví dụ như việc trích đặc trưng theo phương pháp PCA sau đó đưa vào mạng neural nhận dạng,…
Nhược điểm của PCA:
+ PCA tìm ra một không gian mới theo hướng biến thiên mạnh nhất của một tập hợp các vec-tơ trong một không gian cho trước Tuy nhiên, không phải bao giờ không gian mới theo hướng biến thiên mạnh nhất của một tập hợp các vec-tơ cũng mang lại hiệu quả cao nhất cho nhận dạng
DUT.LRCC
Trang 28 Phương pháp PCA kết hợp với mạng Neural:
PCA có thể sử dụng để nhận dạng, tuy nhiên hiệu suất chưa cao Do vậy để nâng cao hiệu suất, ta sử dụng phương pháp PCA kết hợp với mạng neural Đối với phương pháp này ta chỉ sử dụng các đặc trưng được trích xuất theo phương pháp PCA, sau đó đưa vào mạng Neural để huấn luyện Mạng Neural nhân tạo mô phỏng những chức năng của hệ thần kinh con người Nó được học bởi kinh nghiệm, lưu những kinh nghiệm đó
và sử dụng trong những tình huống phù hợp [19]
Ưu điểm của phương pháp:
+ Mạng neural có khả năng xử lý song song, với tốc độ xử lý nhanh như vậy, nó
là công cụ mới đầy hứa hẹn trong khoa học tính toán, nhận dạng, điều khiển tự động và nhiều lĩnh vực khác
+ ANN có khả năng học thích nghi, nó thích ứng trong quá trình tự chỉnh trong điều khiển tự động
+ Không đòi hỏi các đặc trưng mở rộng của bài toán (chủ yếu dựa trên tập học)
Nhược điểm của phương pháp:
+ Thời gian huấn luyện mạng thường khá lâu
+ ANN có rất nhiều thuật toán khác nhau, đòi hỏi người sử dụng phải thử nhiều
mô hình để tìm được cấu trúc mạng tối ưu
+ Không có cách tổng quát để đánh giá hoạt động bên trong mạng
2.3.2.2 Phương pháp LDA
Tương tự như PCA, LDA (Linear Discriminants Analysis) cũng là một phương
pháp nhận dạng theo hướng tiếp cận dựa trên xét tổng thể toàn khuôn mặt [19, 20] Mục đích của LDA là tìm ra một không gian mới để tách rời các nhóm ảnh với nhau Không gian đó được tạo bởi các vec-tơ không nhất thiết phải trực giao từng đôi một
Trong không gian tạo ra từ LDA, các ảnh trong cùng một nhóm sẽ gần nhau, và các nhóm khác nhau sẽ cách xa nhau LDA khắc phục được nhược điểm của PCA, đó là
“không phải hướng biến thiên mạnh nhất luôn mang thông tin nhận dạng cao nhất” Đối với một nhóm, gọi dwithin là khoảng cách lớn nhất các phần tử trong nhóm đó, và dbetween
là khoảng cách bé nhất từ tâm của nhóm đó tới tâm của các nhóm khác Mục tiêu của LDA là trong không gian mới, ta có dwithin bé nhất và dbetween lớn nhất Để tính các khoảng cách dwithin, dbetween, ta dựa trên tính toán mối tương quan của các thành viên trong một nhóm và sự tương quan giữa các nhóm với nhau Các mối tương quan này thể hiện qua
các ma trận scatter
DUT.LRCC
Trang 29Các điểm trong không gian khi Các điểm đó chiếu lên một trục khác chiếu lên một trục bị lẫn với nhau
Hình 2.8 Phân loại với LDA
Hình 2.9 Phân loại dựa trên between và within theo LDA
Ưu điểm của phương pháp:
+ LDA mang hầu hết các ưu điểm của phương pháp PCA, đồng thời khắc phục được nhược điểm cơ bản của PCA
Nhược điểm của phương pháp:
+ LDA đòi hỏi một khối lượng tính toán rất lớn Nếu ảnh có kích thước 200x200 thì ma trận biểu diễn Sb,Sw sẽ có kích thước là 40000x40000 Hiện nay vẫn chưa có cách tính nhanh phương pháp LDA
+ LDA cũng nhạy với nhiễu giống như PCA, điều này đòi hỏi nhiệm vụ tiền xử lý ảnh phải được thực hiện kỹ lưỡng
2.4 Kỹ thuật trích chọn đặc trưng PCA
2.4.1 Giới thiệu về phương pháp PCA
PCA là viết tắt của Principle Components Analysis, được gọi là phương pháp phân
DUT.LRCC
Trang 30tích thành phần chính, là kỹ thuật hữu ích trong các ứng dụng nhận dạng và nén ảnh, và
là một kỹ thuật phổ biến để tìm mẫu trong các dữ liệu nhiều chiều [18]
Trước đây người ta thường gặp rất nhiều khó khăn trong việc tính toán, thực thi
khi gặp không gian đa chiều.Thông thường một ảnh với nxm điểm ảnh sẽ được biểu diễn
thành một vectơ trong không gian n.m chiều Như vậy với một ảnh 92x112 điểm sẽ biểu
diễn thành một vectơ 10304 chiều, khối lượng tính toán rất nhiều Thuật toán PCA đã ra
đời nhắm đến giải quyết khó khăn nói trên Ý tưởng chính của thuật toán là tìm một
phép biến đổi tuyến tính nhằm làm giảm số chiều của không gian dữ liệu ban đầu mà
vẫn giữ được nhiều thông tin nhất Có thể nói phân tích thành phần chính là tìm cách
giữ lại những thành phần thống kê quan trọng nhất của tập mẫu
PCA không quan tâm đến việc tìm ra các đặc điểm cụ thể của thực thể cần nhận
dạng và mối quan hệ của tất cả điểm đó Tất cả các chi tiết đều được thể hiện ở ảnh mới
tạo ra từ thuật toán PCA Về bản chất, PCA tìm ra một không gian mới theo hướng biến
thiên mạnh nhất của một tập hợp các vector trong không gian cho trước Trong không
gian mới người ta hy vọng rằng việc phân loại sẽ mang lại kết quả tốt hơn so với không
gian ban đầu [20]
Giả sử ta cần giảm số chiều của mẫu học từ n chiều xuống còn m chiều nghĩa là ta
cần tìm một ánh xạ từ không gian n chiều xuống không gian nhỏ hơn chỉ có m chiều (m
< n) Gọi x là một vector trong không gian n chiều, y là một vector trong không gian m
chiều Ta có trung bình bình phương lỗi MSE (mean square error) khi loại bỏ một số
thành phần trong x để thu được Y bằng tổng phương sai của những thành phần bị loại
bỏ Phương pháp phân tích thành phần chính sẽ tìm một phép biến đổi tuyến tính T:
y = T*x , T là ma trận m x n sao cho trung bình bình phương lỗi là bé nhất
Gọi M là vector trung bình của các vector x trong tập học X
Người ta chứng minh được rằng nếu T là một ma trận mà mỗi hàng là một vector
riêng của C và m vector riêng này ứng với m trị riêng lớn nhất thì T chính là phép biến
đổi tuyến tính thỏa mãn điều kiện MSE nhỏ nhất
Tóm lại, phương pháp phân tích thành phần chính ánh xạ một vector từ không gian
n chiều xuống không gian m chiều sẽ đi tìm các trị riêng và vector riêng của ma trận
DUT.LRCC
Trang 31hiệp phương sai C của tập X và giữ lại m vector riêng ứng với m trị riêng lớn nhất làm
cơ sở cho không gian m chiều này
2.4.2 Thuật toán PCA
Một bức ảnh khuôn mặt 2D có kích thước RxC, có thể xem như 1 vector có chiều
N= RxC Toàn bộ bức ảnh được biểu diễn bởi 1 tập hợp các điểm trong 1 không gian rất
rộng lớn Ý tưởng được đặt ra là làm thế nào có thể biểu diễn khuôn mặt bằng các vector
trong một không gian con khác nhưng vẫn chứa được các đặc trưng nhất của bức ảnh,
không gian này được gọi là “không gian mặt người” Mỗi vector này có chiều dài RxC,
mô tả bức ảnh RxC là sự kết hợp tuyến tính của bức ảnh gốc Bởi vì các vector này là
các eigenvector của ma trận covariance của bức ảnh gốc và chúng giống mặt người khi
biểu diễn nên được gọi là các eigenface Các bước trích chọn đặc tính với PCA:
Tạo một tập S gồm M ảnh (ảnh học) Mỗi ảnh có kích thước RxC Mỗi ảnh được
chuyển thành một vector N = RxC chiều
Vậy C có kích thước NxN Vấn đề về tìm vector riêng (eigenvector) ui của ma trận
C khó thực hiện được vì kích thước quá lớn
Để tìm eigenvector ui của C ta thực hiện như sau:
Giả sử vi là vector riêng của ma trận ATA, tức là:
AT Avi = µi vi (2.12)
DUT.LRCC
Trang 32Nhân 2 vế với ma trận A ta được:
AATAvi = µi Avi (2.13)
i là eigenvector của C
Tìm eigenvector và eigenvalue của ma trận L:
L = ATA với Lm,n = Φ𝑚𝑇Φ𝑛 (2.14) Với:
.
ui là eigenvector của C (Hay còn gọi là mặt riêng (eigenface))
Sau khi tìm được các eigenface, với một ảnh trong cơ sở dữ liệu huấn luyện hay một ảnh mới đầu vào được chiếu lên không gian các eigenface này để tạo ra vector đặc tính Vector này có kích thước nhỏ hơn nhiều so với kích thước ảnh nhưng vẫn mang nhiều nhất thông tin chứa trong ảnh
2.5 Phương pháp đối sánh trong nhận dạng
Sau khi ảnh đầu được trích xuất vector đặc trưng, vector này sẽ được đưa vào khối đối sánh (Matching) để so sánh với các vector đặc trưng của tập ảnh có trong cơ sở dữ liệu được gọi là xác định khuôn mặt với phân lớp láng giềng gần nhất (neareast neighbor classifier) [28] Có hai phương pháp đơn giản thường được sử dụng ở đây, đó là: Khoảng cách Euclides và khoảng cách Mahalanobis
Khoảng cách Euclides giữa hai điểm p và q chính là độ dài của đoạn thẳng nối
chúng ( pq ) Nếu p = (p1,p2,…,pn) và p = (q1,q2,…,qn) là hai điểm trong không gian n chiều, thì khoảng cách giữa p và q được tính như sau :
DUT.LRCC
Trang 33||p-q|| = √(𝑝1− 𝑞1)2+ (𝑝2− 𝑞2)2+ ⋯ + (𝑝𝑛− 𝑞𝑛)2 (2.17) Khoảng cách Mahalanobis tính đến hiệp phương sai của các đặc trưng Sử dụng thích hợp nhất khi các chiều của vector đặc trưng không độc lập với nhau và có độ quan trọng khác nhau Khoảng cách Mahalanobis [27] tăng trọng số cho các đặc trưng chiếm
tỷ lệ cao và giảm trọng số cho các đặc trưng chiếm tỷ lệ thấp
d (p,q) = √(𝑝 − 𝑞)𝑇𝐶−1(𝑝 − 𝑞) (2.18) Với C là ma trận hiệp phương sai của bộ vector đặc trưng
Như vậy, ta thấy rằng đối với những vector không độc lập thì ta nên dùng khoảng cách Mahalanobis, còn ngược lại ta dùng khoảng cách Euclides
2.6 Phương pháp máy vector hỗ trợ
Thuật toán máy vector hỗ trợ (Support Vector Machines - SVM) được Corters
và Vapnik giới thiệu vào năm 1995 SVM rất hiệu quả để giải quyết các bài toán với
dữ liệu có số chiều lớn như các vector biểu diễn văn bản Thuật toán SVM ban đầu chỉ được thiết kế để giải quyết bài toán phân lớp nhị phân tức là số lớp hạn chế là hai lớp Hiện nay, SVM được đánh giá là bộ phân lớp chính xác nhất cho bài toán phân lớp văn bản, bởi vì đó là bộ phân lớp tốc độ rất nhanh và hiệu quả đối với bài toán phân lớp văn bản
SVM sử dụng thuật toán nhằm xây dựng một siêu phẳng để phân tách dữ liệu SVM có khả năng rất lớn cho các ứng dụng ở bài toán phân lớp văn bản hay nhận dạng Phương pháp SVM có khả năng tính toán và phân lớp, nó trở thành lý thuyết học mà có thể áp dụng cho nhiều ứng dụng thực tế Đặc trưng cơ bản quyết định khả năng phân lớp
là khả năng phân lớp những dữ liệu mới dựa vào những thông tin đã tích luỹ được trong quá trình huấn luyện Sau quá trình huấn luyện nếu hiệu suất tổng quát hoá của bộ phân lớp cao thì thuật toán huấn uyện được đánh giá là tốt, dựa vào tham số sai số huấn luyện
là tỷ lệ lỗi phân lớp trên tập dữ liệu huấn luyện
Bài toán cơ bản của SVM là bài toán phân loại hai lớp [11, 15]:
Cho trước n điểm trong không gian d chiều (mỗi điểm thuộc vào một lớp kí hiệu
là +1 hoặc -1, mục đích của giải thuật SVM là tìm một siêu phẳng (hyperplane) phân hoạch tối ưu cho phép chia các điểm này thành hai phần sao cho các điểm cùng một lớp nằm về một phía với siêu phẳng này Hình 2.10 cho một minh họa phân lớp với SVM trong mặt phẳng
DUT.LRCC
Trang 34Hình 2.10 Phân lớp SVM trong mặt phẳng
Thuật toán SVM
Xét bài toán phân lớp đơn giản nhất: phân lớp hai lớp với tập dữ liệu mẫu:
{(xi , yi) i = 1,2,…,N, xi ϵ Rm } (2.19) Các mẫu dương là các mẫu xi thuộc lĩnh vực quan tâm và được gán nhãn yi = 1 Các mẫu âm là các mẫu xi không thuộc lĩnh vực quan tâm và được gán yi = - 1
Trong đó mẫu là các vector đối tượng được phân lớp thành các mẫu dương và mẫu
âm như trong hình dưới đây:
Hình 2.11 Siêu phẳng h phân chia dữ liệu thành 2 lớp + và - với khoảng cách biên lớn
nhất, các điểm gần nhất (được khoanh tròn) là các vector hỗ trợ
Thực chất phương pháp này là một bài toán tối ưu, mục tiêu là tìm ra một không gian H và siêu mặt phẳng quyết định h trên H sao cho sai số phân lớp là thấp nhất Trong trường hợp này, tập phân lớp SVM là mặt siêu phẳng phân tách các mẫu dương khỏi các mẫu âm với độ chênh lệch cực đại, trong đó độ chênh lệch - còn gọi là Lề (margin) xác định bằng khoảng cách giữa các mẫu dương và các mẫu âm gần mặt siêu phẳng nhất
Mặt siêu phẳng này được gọi là mặt siêu phẳng lề tối ưu
DUT.LRCC
Trang 35Các mặt siêu phẳng trong không gian đối tượng có phương trình là:
C + w1x1 + w2x2 + … + wnxn (2.20)
C + ∑𝑤𝑖𝑥𝑖 = 0, i = 1, 2, …, n (2.21) Với w = w1 , w2 , …, wn là bộ hệ số siêu phẳng hay là vector trọng số, C là độ dịch, khi thay đổi w và C thì hướng và khoảng cách từ gốc toạ độ đến mặt siêu phẳng thay đổi
Tập phân lớp SVM được định nghĩa như sau:
f(x) = sign(C + ∑𝑤𝑖𝑥𝑖) (2.22) Trong đó sign (z) = +1 nếu z ≥ 0
dữ liệu của các lớp (đây được xem là các hàm lề) càng tốt Có thể nói, lề càng lớn thì sai số tổng quát của thuật toán phân loại càng bé Như vậy, cực đại hoá lề thực chất
là việc tìm một máy học có năng lực nhỏ nhất Quá trình phân lớp là tối ưu khi sai số phân lớp là cực tiểu
Từ biểu thức dưới đây:
2
1 w 2min
l i
Ta tìm ra được vector trọng số w và sai số của mỗi điểm trong tập huấn luyện là ηi
từ đó ta có phương trình tổng quát của siêu phẳng tìm ra được bởi thuật toán SVM là:
f(x1, x2, …, xn) = C + ∑𝑤𝑖𝑥𝑖 (2.24) Với i = 1,…, n; n là số dữ liệu huấn luyện Sau khi đã tìm được phương trình của siêu phẳng bằng thuật toán SVM, áp dụng công thức này để tìm ra nhãn lớp cho các dữ liệu mới
Trang 36ảnh và những thay đổi trong biểu cảm khuôn mặt [6] Các phương pháp dựa trên học sâu (Deep learning) có thể trích xuất các đặc điểm khuôn mặt phức tạp hơn [30, 40] Học sâu đang tạo ra những tiến bộ quan trọng trong việc giải quyết các vấn đề phức tạp, có thể áp dụng cho nhiều lĩnh vực khoa học, kinh doanh Nó giải quyết tốt các vấn
đề trong nhận dạng hình ảnh, xử lý ngôn ngữ tự nhiên, phân đoạn ngữ nghĩa và nhiều kịch bản thế giới thực khác Có nhiều cách tiếp cận học tập sâu khác nhau, trong đó điển hình là mạng neural tích chập (Convolutional Neural Network-CNN) CNN chủ yếu được sử dụng nhiều trong xử lý hình ảnh và nhận dạng khuôn mặt
Hình 2.12 Kiến trúc cơ bản một mạng neural tích chập (CNN)
CNN là một loại mạng neural nhân tạo sử dụng phương pháp tích chập để trích xuất các đặc trưng từ dữ liệu đầu vào nhằm tăng số lượng các đối tượng [29]
Hình 2.13 Mạng neural ứng dụng trong phân loại đối tượng
DUT.LRCC
Trang 37Về cơ bản, kiến trúc của một mạng neural cơ bản bao gồm các lớp như sau :
Convolution layer (lớp tích chập)
Rectified Linear Unit layer (ReLU layer - lớp tinh chỉnh đơn vị tuyến tính)
Pooling layer (lớp gộp chung)
Fully connected layer (lớp kết nối hoàn chỉnh)
Trang 38Ta coi ma trận bên trái là một ảnh có 2 giá trị là 0 và 1 Mỗi giá trị của ma trận tương đương với một điểm ảnh (pixel), 0 là màu đen, 1 là màu trắng (nếu là ảnh grayscale thì giá trị biến thiên từ 0 đến 255)
Cửa sổ trượt là hành động của các bộ lọc (filter) hay bộ trích đặc trưng (feature detector) Ở đây, ta thường dùng một ma trận bộ lọc 3×3 nhân từng thành phần tương ứng (element-wise) với ma trận ảnh bên trái Giá trị đầu ra do tích của các thành phần này cộng lại Kết quả của tích chập là một ma trận (convoled feature) sinh ra từ việc trượt ma trận bộ lọc và thực hiện tích chập cùng lúc lên toàn bộ ma trận ảnh bên trái Dưới đây là một vài ví dụ của phép toán tích chập
Ta có thể làm mờ bức ảnh ban đầu bằng cách lấy giá trị trung bình của các điểm ảnh xung quanh cho vị trí điểm ảnh trung tâm :
Hình 2.16 Ảnh mờ hơn sau khi áp dụng phép tích chập
Ngoài ra, ta có thể phát hiện biên cạnh bằng cách tính vi phân (độ dị biệt) giữa các điểm ảnh lân cận
Hình 2.17 Ảnh được phát hiện biên sau khi chập
DUT.LRCC
Trang 392.7.3 Lớp tinh chỉnh đơn vị tuyến tính (ReLU layer)
Lớp này thường được cài đặt ngay sau lớp Convolutional Lớp này sử dụng hàm
kých hoạt ReLU:
Hình 2.18 Đồ thị hàm ReLU
Hàm ReLU có công thức như sau :
Nói một cách đơn giản, lớp này có nhiệm vụ chuyển toàn bộ giá trị âm trong kết
quả lấy từ lớp Convolutional thành giá trị 0
Ý nghĩa của cách cài đặt này chính là tạo nên tính phi tuyến cho mô hình Tương
tự như trong mạng truyền thẳng, việc xây dựng dựa trên các phép biến đổi tuyến tính sẽ khiến việc xây dựng đa tầng đa lớp trở nên vô nghĩa Có rất nhiều cách để khiến mô hình
trở nên phi tuyến như sử dụng các hàm kích hoạt sigmoid, tanh,… nhưng
hàm f(x)=max(0, x) dễ cài đặt, tính toán nhanh mà vẫn hiệu quả
Việc sử dụng hàm ReLU (Rectified Linear Unit) cho kết quả tốt hơn ở các khía cạnh:
Tính toán đơn giản
Tạo ra tính thưa (sparsity) ở các neural ẩn Ví dụ như sau bước khởi tạo ngẫu
nhiên các trọng số, khoảng 50% các neural ẩn được kích hoạt (có giá trị lớn hơn 0)
Quá trình huấn luyện nhanh hơn ngay cả khi không phải trải qua bước tiền huấn
Các phương thức lấy phổ biến trong lớp Pooling :
MaxPooling ( lấy giá trị lớn nhất)
MinPooling (lấy giá trị nhỏ nhất)
AveragePooling (lấy giá trị trung bình)
DUT.LRCC
Trang 40Loại Pooling ta thường gặp nhất là Max pooling , lấy giá trị lớn nhất trong một pooling window Pooling hoạt động gần giống với convolution, nó cũng có 1 cửa sổ trượt gọi là pooling window, cửa sổ này trượt qua từng giá trị của ma trận dữ liệu đầu
vào (thường là các feature map trong convolutional layer), chọn ra một giá trị từ các giá trị nằm trong cửa sổ trượt (với max pooling ta sẽ lấy giá trị lớn nhất)
Để hiểu rõ hơn ta xét một ảnh có kých thước 6×6 như sau:
Hình 2.19 Tính toán với phương pháp MaxPooling
Filter có kích thước 2×2
Bước trượt stride = 2,
Phương pháp sử dụng là MaxPooling
Filter sẽ lần lượt duyệt qua ảnh, với mỗi lần duyệt chỉ có giá trị lớn nhất trong 4
giá trị nằm trong vùng cửa sổ 2×2 của filter được giữ lại và đưa ra đầu ra
Như vậy sau khi qua lớp Pooling, ảnh đầu ra có kích thước 3×3 (kích thước mỗi chiều giảm 2 lần)
2.7.5 Lớp kết nối hoàn chỉnh (The Fully connected layer)
Lớp này tương tự với lớp trong mạng neural truyền thẳng, các giá trị ảnh được liên kết đầy đủ vào node trong lớp tiếp theo Sau khi ảnh được xử lý và rút trích đặc trưng từ các lớp trước đó, dữ liệu ảnh sẽ không còn quá lớn so với mô hình truyền thẳng nên ta
có thể sử dụng mô hình truyền thẳng để tiến hành nhận dạng
Tóm lại, lớp Fully-connected đóng vai trò như một mô hình phân lớp đưa ra kết quả và tiến hành dựa trên dữ liệu đã được xử lý ở các lớp trước đó
2.7.6 Hàm mất mát (Loss function)
Trong các bài toán về nhận dạng, phân loại đối tượng, ta cần biết được kết quả dự đoán cuối cùng mà mô hình dự đoán đối tượng đầu vào sẽ thuộc nhóm nào Để huấn luyện một mạng phân loại đối tượng ta cần xây dựng một hàm mất mát – Loss function Hàm mất mát được áp dụng ở lớp cuối cùng- lớp output của mạng Về cơ bản hàm này
DUT.LRCC