You are on page 1of 9

Nhận dạng khuôn mặt

Mục lục
Nhận dạng khuôn mặt ................................................................................................................................ 1
1. Tổng quan ........................................................................................................................................ 1
2. Các kỹ thuật nhận dạng khuôn mặt .............................................................................................. 1
2.1. Hướng tiếp cẩn dựa trên tri thức: .............................................................................................. 2
2.2. Hướng tiếp cận dựa trên đặc trưng không thay đổi ( bottom-up) ............................................. 3
2.3. Hướng xác định dựa trên so khớp mẫu ..................................................................................... 4
2.4. Hướng tiếp cận dựa trên diện mạo ............................................................................................ 4
3.Sử dụng OpenCV nhận dạng Face Recognition ................................................................................ 4
3.1. OpenCV .................................................................................................................................... 4
3.2. Hệ thống nhận dạng mặt ........................................................................................................... 5
3.3. Đặc trưng haar-like ................................................................................................................... 5
3.4. Thuật toán KNN (K-Nearest Neighbors) .................................................................................. 7
3.5. Thuật toán CNN_ Convolutional Neural Network (Mạng nơ ron sâu tích chập) ...................... 8

1. Tổng quan
 Hệ thống nhận dạng khuôn mặt là một hệ thống máy tính tự động nhận dạng
và xác định một ai đó từ các hình ảnh kỹ thuật số hoặc khung hình video từ
nguồn video.
 Nhận dạng khuôn mặt được ứng dụng trong nhiều lĩnh vực khác nhau, ví dụ:
Hệ thống an ninh phát hiện tội phạm, hệ thống theo dõi nhân sự, tìm kiếm
thông tin, máy ảnh,…
 Khó khăn : ảnh chụp không chất lượng, chụp một phần khuôn mặt, không
chính diện,…
2. Các kỹ thuật nhận dạng khuôn mặt
Có 4 hướng tiếp cận :
 Hướng tiếp cận dựa trên tri thức: mã hóa những hiểu biết của con
ngưởi về khuôn mặt thành các luật
 Hướng tiếp cận dựa trên đặc trưng không thay đổi: dùng các thuật
toán mô tả đặc trưng cấu trúc khuôn mặt người mà không bị thay đổi
khi tư thế khuôn mặt, vị trí camera,… thay đổi
 Hướng tiếp cận dựa trên so khớp mẫu: dung các mẫu chuẩn của khuôn
mặt người ( dữ liêụ ) đẻ mô tả đặc trưng của khuôn mặt
 Hướng tiếp cận dựa trên diện mạo: các mô hình được học từ một tập
ảnh được huấn luyện trước đó, sau đó hệ thống sẽ xách định khuôn
mặt người
Ngoài ra:
 Nhận dạng 3 chiều: sử dụng các cảm biến 3D để nắm bắt thông tin về
nhận dạng khuôn mặt
 Phân tích kết cấu da: sử dụng các chi tiết hình ảnh của da được chụp
bằng các máy tiêu chuẩn, đưa các đặc trưng, hình dạng, các điểm nốt
trên làn da vào một không gian toán học ( tang hiệu quả 20-25%)

2.1. Hướng tiếp cẩn dựa trên tri thức:


 Đây là hướng tiếp cận dạng top-down, dễ dàng xác định các luật cơ bản
để mô tả đặc trưng của khuôn mặt và các quan hệ tương ứng
 Trong hướng này, các luật sẽ phụ thuộc rất lớn vào tri thức của các tác
giả.
 Mô tả: Thông thường, các tác giả sẽ trích đặc trưng của khuôn mặt
thành các ứng viên ( chia nhỏ ), sau đó các ứng viên này sẽ được xác
định dựa vào các luật xem có là khuôn mặt hay không.
 Khó khăn: chuyển từ tri thức con người sang các luật một cách hiệu quả
( quá chi tiết? quá tổng quát ?), xác định khuôn mặt ở nhiều tư thế khác
nhau .
 phương pháp chủ yếu :
 Dùng một khung cửa sổ để quét trên ảnh và thông qua một tập luật để
tìm các ứng viên có thể là khuôn mặt, kế tiếp dùng một tập luật để mô
tả tổng quát hình dáng khuôn mặt, cuối cùng lại dùng một tập luật khác
để xem xét ở mức chi tiết đặc trưng của khuôn mặt.
 Dùng phương pháp chiếu đê xác định các đặc trưng của khuôn mặt:
Sử dụng các hàm để chiếu ảnh theo phương ngang và thẳng đứng, xác
định các điểm cực tiểu qua đó cho ta biết vị trí 2 điểm mắt, đỉnh mũi,
miệng => khuôn mặt
2.2. Hướng tiếp cận dựa trên đặc trưng không thay đổi ( bottom-up)
 Các tác giả cố gắng tìm ra các đặc trưng không đổi của khuôn mặt để
xác định khuôn mặt
 Căc đặc trưng như: lông mày, mắt mũi miệng, đường viền của tóc được
trích bằng phương pháp xác định cạnh. Xây dựng một mô hình thống
kê mô tả quan hệ của các đặc trưng này giúp xác định khuôn mặt trong
ảnh.
 Khó khăn: các đặc trưng cần phải điều chỉnh cho phù hợp với độ sáng,
nhiếu, không bị che khuất, bóng của khuôn mặt tạo ra cạnh mới rõ hơn
cạnh thật.
a. Các đặc trưng khuôn mặt
 Sử dụng mô hình xác suất dựa trên các đặc trưng cục bộ và so khớp
đồ thị ngẫu nhiên
 Xem bài toán xác định khuôn mặt như một bài toán tìm kiếm với mục
tiêu là tìm kiếm thứ tự các đặc trưng chắc chắn của khuôn mặt để tạo
thành một khuôn mặt giống nhất.
 5 đặc trưng: hai mắt, hai lỗ mũi, phần nối giữa mũi và miệng
 Luôn tính quan hệ khoảng cách giữa các đặc trưng
 Từ ảnh mẫu, các đặc trưng ứng viên được xác định bằng cách so khớp
với từng điểm ảnh khi lọc tương ứng với vector mẫu, chọn 2 ứng viên
hang đầu
 Xây dựng một đồ thị quan hệ : mỗi node của đồ thị tương ứng với các
đặc trưng của khuôn mặt, đưa xác suất vào đẻ xác định.
b. Kết cấu
 Khuôn mặt con người có những kết cấu riêng biệt có thể dung để phân
loại so với các đối tượng khác
 Có thể dung hình dạng của khuôn mặt đẻ phân loại kết cấu
 Có ba loại đặc trưng được xem xét: màu da, tóc và những thứ khác
c. Sắc màu da
d. Đa đặc trưng
 Sử dụng các đặc trưng toàn cục như: màu da, kích thước và hình dáng
để tìm các ứng viên khuôn mặt rồi xác định ứng viên nào là khuôn
mặt thông qua các đặc trưng cục bộ ( chi tiết ) như: mắt, lông mày,
mũi, miệng và tóc
2.3. Hướng xác định dựa trên so khớp mẫu
 Các mẫu chuẩn của khuôn mặt sẽ được xác định trước ( thường là
mẫu chụp thẳng)
 Từ một ảnh đưa vào, tính các giá trị tương quan so với các mẫu chuẩn
về đường viền khuôn mặt, mắt, mũi, miệng
 Qua đó ta xác định có hay không có khuôn mặt trong ảnh
 Khó khăn: dễ cài đặt nhưng không hiệu quả khi tỷ lệ, tư thế và hình
dáng thay đổi, nhiều độ phân giải, đa tỷ lệ, mẫu biến dạng
2.4. Hướng tiếp cận dựa trên diện mạo
 Sử dụng xác suất thống kê để tìm những đặc tính của khuôn mặt và
không phải khuôn mặt
 Sử dụng các hàm phân bố để xác định khuôn mặt người
 Dùng một ảnh hay một vector đặc trưng xuất phát từ một ảnh xem
như một biến x, hàm mật độ phân lớp theo điều kiện p(x)

3.Sử dụng OpenCV nhận dạng Face Recognition


3.1. OpenCV
- OpenCV là một thư viện mã nguồn mở cho thị giác máy tính (computer
vision), xử lý hình ảnh và máy học ( machine learning).
- Các ứng dụng OpenCV:
 Kiểm tra và giám sát tự động
 Tìm kiếm và phục hồi hình ảnh/video
 Hình ảnh street view
 Phim_ cấu trúc 3D từ chuyển động
 Phân tích hình ảnh y tế
- Chức năng OpenCV:
 Image/video/I/O, xủ lý, hiển thị
 Phát hiện các vật thể
 Machine learning&clustering
 Chụp ảnh tính toán
3.2. Hệ thống nhận dạng mặt
- Các pha trong một hệ thống nhận dạng mặt:
 Face detection : phát hiện phần ảnh mặt trong dữ liệu input (CSDL
ảnh, video…) và cắt lấy phần ảnh mặt để thực hiện nhận dạng (face
cropping)
 Preprocessing: tiền xử lý ảnh bao gồm các bước căn chỉnh ảnh (face
image alignment) và chuẩn hóa ánh sáng ( illumination normalization)
 Trích chọn đặc điểm (feature extraction): sử dụng các phương pháp
trích chọn đặc trưng ( haar-like ) để trích xuất các thông tin đặc trưng
cho ảnh, kết quả là mỗi ảnh sẽ được biểu diễn dưới dạng một vector
đặc điểm
 Nhận dạng ( recognition ), phân lớp (classification): xác định danh tính
của ảnh- đó là ai. ở bước classification thường sử dụng phương pháp
KNN (K-nearest neighbor )
- Dữ liệu cho một hệ thống nhận dạng mặt được chia làm 3 tập: tập huấn
luyện( training set), tập tham chiếu (reference) và tập để nhận dạng (probe
set):
 Tập training gồm các ảnh được dùng để huấn luyện, thông thường tập
này được dung để sinh ra một không gian con là một ma trân ( sử dụng
PCA, WPCA, LDA)
 Tập reference gồm các ảnh đã biết danh tính được chiếu vào không
gian con ở bước training, sau đó hệ thống lưu lại kết quả là một ma
trận với mỗi cột của ma trận là một vector tương ứng vưới ảnh( đinh
danh đã biết) để thực hiện nhận dạng
 Nhận dang( hay phân lớp) được thực hiện với tập các ảnh probe, sau
khi tiền xử lý xong, mỗi ảnh sẽ được áp dụng phương pháp trích chọn
đặc điểm và được chiếu vào không gian con. Tiếp đến việc phân lớp sẽ
dựa trên phương pháp k_NN.
3.3. Đặc trưng haar-like
Đặc trưng haar-like được tạo thành bằng việc kết hợp các hình chữ nhật
đen, trắng với nhau theo một trật tự, một kích thước nào đó.
4 đặc trưng Haar-Like cơ bản
Để phát hiện khuôn mặt các đặc trưng Haar-Like cở bản trên được mở rộng
thành nhóm các đặc trưng cạnh, đặc trưng đường và đặc trưng trung tâm

Giá trị của các đặc trưng Haar like là sự chênh lệch giữa tổng các điểm ảnh của các
vùng đen và các vùng trắng. Để có thể tính nhanh các đặc trưng này, Viola và
Jones giới thiệu khái niệm ảnh tích phân ( Integral Image), đó là một mảng hai
chiều với kích thước bằng kích thước của ảnh cần tính giá trị đặc trưng haar-like.

(x, y)

Giá trị tích phân tại điểm P (x,y) được tính như sau:

ii(x, y)  x'x, y' y i(x', y')

Sauk hi đã tính được ảnh tích phân, việc tính tổng các giá trị mức xám của
một vùng ảnh bất kỳ nào đó trên ảnh thực hiện theo cách sau, ví dụ tính giá trị
của vùng D trong hình 5 như sau: D=A+B+C+D-(A+B)-(A+C)+A
3.4. Thuật toán KNN (K-Nearest Neighbors)
- K-NN là phương pháp để phân lớp các đối tượng dựa vào khoảng cách gần
nhất giữa đối tượng cần xếp lớp( Query point) và tất cả các đối tượng trong
Training Data
- Một đối tượng được phân lớp dựa vào K láng giềng của nó. K là số nguyên
dương được xác định trước khi thực hiện thuật toán. Người ta thường dung
khoảng cách Euclidean để tính khoảng cách giữa các đối tượng
- Thuật toán được mô tả như sau:
1. Xác định giá trị tham số K ( số lang giêng gần nhất)
2. Tình khoảng cách giữa đối tượng cần phân lớp(Query Point) với tất cả các
đối tượng trong Training data( sử dụng khoảng cách Euclidean)
3. Sắp xếp khoảng cách theo thứ tự tang dần và xác định K láng giềng gần
nhất vưới Query Point
4. Lấy tất cả các lớp của K láng giềng gần nhất đã xác định
5. Dựa vào phần lớn lớp của láng giềng gần nhất để xác định lớp cho Query
Point
- Minh họa:
Trong hình dưới đây, training Data được mô tả bởi dấu (+) và dấu (-), đối
tượng cần được xác định lớp cho nó (Query point) là hình tròn đỏ. Nhiệm vụ của
chúng ta là ước lượng (hay dự đoán) lớp của Query point dựa vào việc lựa chọn số
láng giềng gần nhất với nó. Nói cách khác chúng ta muốn biết liệu Query Point sẽ
được phân vào lớp (+) hay lớp (-)

Ta thấy rằng:

1-Nearest neighbor : Kết quả là + (Query Point được xếp vào lớp dấu +)

2-Nearest neighbors : không xác định lớp cho Query Point vì số láng giềng gần
nhất với nó là 2 trong đó 1 là lớp + và 1 là lớp – (không có lớp nào có số đối tượng
nhiều hơn lớp kia)

5-Nearest neighbors : Kết quả là - (Query Point được xếp vào lớp dấu – vì trong 5
láng giềng gần nhất với nó thì có 3 đối tượng thuộc lớp - nhiều hơn lớp + chỉ có 2
đối tượng).

3.5. Thuật toán CNN_ Convolutional Neural Network (Mạng nơ ron sâu tích
chập)

- CNN là một trong những mô hình Deep Learning( Học sâu) tiên tiến giúp
chúng ta xây dựng được những hệ thông thông minh với độ chính xác cao
hiện nay như hệ thống xử lý ảnh lớn của Facebook, Google,… đã đưa vào sản
phẩm của mình những chức năng thông minh như nhận diện khuôn mặt người
dung,… CNN được sử dụng nhiều cho các bài toán nhận dạng các object
trong ảnh.
- Convolutinal là một cửa sổ trượt (sliding Windows) trên một ma trận
Các convolutional layer có các parameter(kernel) đã được học để tự điều chỉnh
lấy ra những thông tin chính xác nhất mà không cần chọn các feature. Trong
hình ảnh ví dụ trên, ma trận bên trái là một hình ảnh trắng đen được số hóa.
Ma trận có kích thước 5x5 và mỗi điểm ảnh có giá trị 1 hoặc 0 là giao điểm
của dòng và cột. Convolution hay tích chập là nhân từng phần tử trong ma trận
3. Sliding Window hay còn gọi là kernel, filter hoặc feature detect là một ma
trận có kích thước nhỏ như trong ví dụ trên là 3x3. Convolution hay tích chập
là nhân từng phần tử bên trong ma trận 3x3 với ma trận bên trái. Kết quả được
một ma trận gọi là Convoled feature được sinh ra từ việc nhận ma trận Filter
với ma trận ảnh 5x5 bên trái

- Mạng CNN là một tập hợp các lớp Convolution chồng lên nhau và sử dụng
các hàm nonlinear activation để kích hoạt trọng số trong node. Mỗi một lớp
sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn
cho các lớp tiếp theo.Trong mô hình CNN các layer liên kết với nhau thông
qua cơ chế convolution. Layer tiếp theo là kết quả convolution từ layer trước
đó, nhờ vậy mà ta có các kết nối cục bộ. Như vậy mỗi neuron ở lớp kế tiếp
sinh ra từ kết quả của filter áp đặt lên một vùng ảnh cục bộ của neuron trước
đó.
- Để hiểu đơn giản CNN gồm các lớp tích chập sẽ thực hiện các thao tác tách
feature( đặc trưng) của một hình ảnh ra và sau đó sử dụng một mô hình máy
học khác như KNN hoặc SVM để phân biệt người này với người khác. Cách
thực hiện này là One-shot learning. CNN chỉ đóng vai trò Extract feature
(Trích xuất đặc trưng), việc huấn luyện CNN ở đây là khiến nó tách đặc trưng
tốt hơn.

You might also like