Tải bản đầy đủ (.docx) (15 trang)

Phát hiện và nhận dạng mặt người Thạc sĩ PTIT

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (417.55 KB, 15 trang )

MỤC LỤC


LỜI MỞ ĐẦU
Hiện nay, cùng với sự phát triển của xã hội, vấn đề an ninh bảo mật đang
được yêu cầu khắt khe tại mọi quốc gia trên thế giới. Các hệ thống nhận dạng con
người được ra đời với độ tin cậy ngày càng cao. Một trong các bài toán nhận dạng
con người rất được quan tâm hiện nay là nhận dạng khuôn mặt. Vì nhận dạng
khuôn mặt là cách mà con người sử dụng để phân biệt nhau. Bên cạnh đó, ngày
nay việc thu thập, xử lý thông tin qua ảnh để nhận biết đối tượng đang được quan
tâm và ứng dụng rộng rãi. Với phương pháp này, chúng ta có thể thu nhận được
nhiều thông tin từ đối tượng mà không cần tác động nhiều đến đối tượng nghiên
cứu. Sự phát triển của khoa học máy tính tạo môi trường thuận lợi cho bài toán
nhận dạng mặt người từ ảnh số. Các hệ thống nhận dạng ngày nay có độ tin cậy
cao và chính xác hơn.
Trong khuôn khổ đồ án này, chúng em sẽ tiếp tục giải quyết bài toán nhận dạng
mặt người trong thời gian thực. Trong đó đối tượng được thu thập thành các file dữ
liệu và được chuyển về trung tâm. Tại đó, các số liệu sẽ được phân tích xử lý. Trong
phần này chúng em sẽ giải quyết bài toán nhận dạng thông thường, phần hai sẽ là
phần nhận dạng giới tính.


Chương I
Giới thiệu chung về các phương pháp nhận dạng mặt người
và đặc trưng của phương pháp nhận dạng mặt người bằng thuật toán PCA
1. Các phương pháp nhận dạng mặt người
a. Phân loại các phương pháp nhận dạng


Nhận dạng dựa trên các đặc trưng của các phần tử trên khuôn mặt (Feature based
face recognition).





Nhận dạng dựa trên xét tổng thể khuôn mặt (Appearance based face recognition).
Ngoài ra còn có một số loại nhận dạng sử dụng mô hình về khuôn mặt, một
số phương pháp được dùng cho loại này:



Nhận dạng 2D: Elastic Bunch Graph, Active Appearance Model.



Nhận dạng 3D: 3D Morphable Model.
b. Nhận dạng dựa trên mối quan hệ giữa các phần tử
Đâ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,…), và mối quan hệ giữa chúng (như khoảng cách của hai
mắt, khoảng cách của hai lông mày,…).
Ưu điểm của phương pháp này là nó gần với cách mà con người sử dụng để
nhận biết khuôn mặt. Hơn nữa 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 hoặc ánh sáng thay đổi.
Nhược điểm của phương pháp này là cài đặt thuật toán phức tạp do việc xác
định mối quan hệ giữa các đặc tính đòi hỏi các thuật toán phức tạp. Mặt khác, với
các ảnh kích thước bé thì các đặc tính sẽ khó phân biệt.
c. Nhận dạng dựa trên xét toàn diện khuôn mặt
Nội dung chính của hướng tiếp cận này là xem mỗi ảnh có kích thước RxC
là một vector trong không gian RxC chiều. Ta sẽ xây dựng một không gian mới có



chiều nhỏ hơn sao cho khi biểu diễn trong không gian đó các đặc điểm chính của
một khuôn mặt không bị mất đi. Trong không gian đó, các ảnh của cùng một người
sẽ được tập trung lại thành một nhóm gần nhau và cách xa các nhóm khác.
Hai phương pháp thường được sử dụng là PCA (Principle Components
Analysis) và LDA (Linear Discriminant Analysis). Trong khuôn khổ báo cáo này,
chúng em sẽ sử dụng thuật toán PCA.
2. Thuật toán PCA
a. Giới thiệu chung về thuật toán
PCA (Principle Components Analysis) là một thuật toán để được sử dụng để
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 ảnh cần nhận
dạng. PCA không cần 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ệ giữa các đặc điểm đó. Tất cả các chi tiết đó đều
được thể hiện ở ảnh mới được tạo ra từ 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.


70.00
60.00
50.00

x2

40.00
30.00
20.00

10.00
0.00
0.00

50.00

100.00

150.00

200.00

250.00

x1

70.00
60.00
p2
50.00

x2

40.00
p1
30.00
20.00
10.00
0.00
0.00


50.00

100.00

x1

150.00

200.00

250.00



Không gian mới (p1,p2) theo hướng phân bố mạnh nhất của các vector
trong không gian (x1,x2) tìm theo PCA.
b. Ưu điểm của phương pháp PCA
Tìm được các đặc tính tiêu biểu của đối tượng cần nhận dạng mà không cần phải



xác định các thành phần và mối quan hệ giữa các thành phần đó.
Thuật toán có thể thức hiện tốt với các ảnh có độ phân giải cao, do PCA sẽ thu gọn
ảnh thành một ảnh có kích thước nhỏ hơn.




PCA có thể kết hợp với các phương pháp khác như mạng Noron, Support Vector




Machine … để mang lại hiệu quả nhận dạng cao hơn.
c. Nhược điểm của PCA
PCA phân loại theo chiều phân bố lớn nhất của tập vector. Tuy nhiên, chiều phân
bố lớn nhất không phải lúc nào cũng mang lại hiệu quả tốt nhất cho bài toán nhận



dạng. Đây là nhược điểm cơ bản của PCA.
PCA rất nhạy với nhiễu.


Chương II
Trình bày phương pháp
1. Mô tả
Việc nhận dạng khuôn mặt đã là một vấn đề phổ biến trong nhiều lĩnh vực trên
toàn thế giới như cơ điện tử, robot,… đặc biệt là trong lĩnh vực khoa học máy tính.
Nhận diện khuôn mặt trong thời gian thực sử dụng C# và EmguCV
EmguCV là một đa nền tảng .Net wrapper cho các thư viện xử lý hình ảnh
Intel OpenCV. Nó cho phép chức năng OpenCV được gọi từ các ngôn ngữ như C#,
VB, VC++, IronPython.
Mục đích chính là thực hiện nhận diện khuôn mặt trong thời gian thực sử
dụng phân tính thành phần chính (PCA) với eigenface.
2. Các hàm xử lý
Đầu tiên, khai báo tất cả các giá trị, vecto và haarcascades:

Sau đó, tải Haarcascades để nhận diện khuôn mặt và tạo thủ tục để tải các
gương mặt và nhãn cho mỗi hình ảnh được lưu trữ trước đó.



Tiếp tục, khởi tạo thiết bị chụp và sự kiện FrameGrabber để thực hiện việc
phát hiện hình ảnh cho mỗi khung hình bị bắt:

Sử dụng DetectHaarCascade và EigenObjectRecognizer để phát hiện các
hoạt động đối với mỗi khuôn mặt trong một khung hình:


Các tham số:
haarObj: Phân tầng haar trong nội bộ scaleFactor: yếu tố mà cửa sổ tìm
kiếm được thu nhỏ giữa các lượt quét tiếp theo, ví dụ, 1.1 nghĩa là tăng cửa sổ
10%.
minNeighbors: Số tối thiểu (trừ 1) các hình chữ nhật láng giềng tạo nên một
đối tượng. Tất cả các nhóm số lượng hình chữ nhật nhỏ hơn min_neighbors-1 sẽ bị
từ chối. Nếu min_neighbors là 0, sẽ không có nhóm nào và trả về tất cả hình chữ


nhật được phát hiện, điều này là hữu ích nếu người dùng áp dụng vào thủ tục nhóm
tùy chỉnh.
flag: Chế độ hoạt động. Hiện nay các cờ (flag) chỉ có thể được xác định là
CV_HAAR_DO_CANNY_PRUNING. Nếu được thiết lập, chức năng sử dụng
việc phát hiện cạnh Canny để từ chối một số vùng ảnh chứa quá ít hoặc quá nhiều
cạnh và do đó, không thể chứa các đối tượng tìm kiếm. Các giá trị ngưỡng đặc biệt
được điểu chỉnh để nhận diện khuôn mặt và trong trường hợp này được giảm bớt
để tăng tốc độ xử lý.
minSize: Kích thước cửa sổ tối thiểu. Kích thước của mẫu phân loại đã đào
tạo được thiết lập mặc định (~20x20 cho nhận diện khuôn mặt).
-


Đào tạo Nguyên mẫu
Với mỗi khung hình sẽ liên tục nhận diện khuôn mặt và có thể thêm khuôn
mặt đã được phát hiện vào trong cơ sở dữ liệu hình ảnh với một nhãn. Hình ảnh
khuôn mặt được đào tạo sẽ hiển thị trong imageBoxFrameGrabber và quá trình này
sẽ được hoàn thành.
Ví dụ:


Phần code cho nút Training:



3. Cải thiện độ chính xác
Các thuật toán nhận dạng khuôn mặt dựa trên PCA sẽ so sánh sự phù hợp
giữa khuôn mặt được phát hiện và những hình ảnh đào tạo lưu trữ trong cơ sở dữ
liệu nhị phân. Để có được độ chính xác thì nên thêm một số hình ảnh của cùng một
người ở các góc độ, vị trí và điệu kiện chiếu sáng khác nhau.
-

Các thông số mặc định như: scale_factor = 1.1, min_neighbors = 3, flag = 0 được

-

điều chỉnh cho chính xác phát hiện đối tượng.
Thay đổi kích thước cho một giá trị lớn. Sửa đổi này như sau:

4. Cải thiện hiệu suất cho các CPU chậm
Tất cả các thuật toán xử lý hình ảnh đòi hỏi khả năng tính toán cao, trong
trường hợp này có hai lựa chọn để cải thiện hiệu suất cho các CPU chậm
-


Đối với các video hình ảnh thực cần thiết lập: scale_factor = 1.2, min_neighbors =
2, flag = CV_HAAR_DO_CANNY_PRUNING, MIN_SIZE = <tối thiểu> (ví dụ
từ 1/4 đến 1/16 cho khu vực hình ảnh trong hội nghị truyền hình).
Ngoài ra, bạn có thể thay đổi các tham số Minsize bằng một giá trị lớn:


-

Sử dụng “hình thu nhỏ” hoặc thay đổi kích thước hình ảnh chụp ban đầu:
Ví dụ:

Tương tự với nút Training:


Chương III
Đánh giá thuật toán
1. Kết quả đạt được
-

Đã xử lýđược yêu cầu bài toán khi nhận diện được mặt người bằng phương pháp

-

PCA (phân tích thành phần chính) trong thời gian thực qua camera.
Độ chính xác khi phát hiện và nhận dạng tương đối cao và nó càng chính xác nếu
như tập huấn luyện của chúng ta có nhiều góc độ ảnh, vị trí, cường độ sáng với

-


cùng một mẫu thử.
Trong chương trình có sử dụng mã nguồn mở của EmguCVnên việc tương tác với
các thư viện được dễ dàng hơn và độ chính xác cao hơn.
2. Những hạn chế của phương pháp lựa chọn

-

Khả năng nhận dạng bị hạn chế nếu mẫu thử không được làm giầu trước khi so

-

sánh dễ dẫn đến kết quả bị sai lệch.
Những đối tượng mà không được huấn luyện sẽ không được phát hiện là một hạn

-

chế của phương pháp Eigenface sử dụng trong chương trình.
Do sử dụng phương pháp PCA để nhận dạng mặt người nên khi mặt bị che đi 1 góc
rất nhỏ (trán hoặc mũi …) thì phương pháp này cũng không thể nhận dạng được.



×