Professional Documents
Culture Documents
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%)
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:
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.