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

XỬ lý ẢNH NHẬN DIỆN KHUÔN mặt (có code bên dưới)

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 (875.75 KB, 27 trang )

ĐỒ ÁN 3

XỬ LÝ ẢNH NHẬN DIỆN KHUÔN MẶT


MỤC LỤC

DANH MỤC CÁC BẢNG BIỂU


DANH MỤC CÁC HÌNH VẼ


HÌNH 2-1: NHỮNG BƯỚC CƠ BẢN TRONG XỬ LÝ ẢNH [5]
HÌNH 2-2: CÁC LOẠI MÀU CƠ SỞ RGB [6]
Hình 2-2: KHÔNG GIAN MÀU CỦA RGB [7]


DANH MỤC CÁC TỪ VIẾT TẮT
BMP

Bitmap

DIM

Digital Image Processing

GIF

Graphic Interchange Format


JPEG

Joint Photo-graphic Experts Group

Pixel

Picture Element

PNG

Portable Network Graphic

PCA

Principal Component Analysis

RGB

Red Green Blue


ĐỒ ÁN 3
Trang 6/23

CHƯƠNG 1.

GIỚI THIỆU CHUNG

1.1 Giới thiệu:
- Trong bối cảnh phát triển công nghệ mạnh mẽ, các thiết bị sử dụng thuật toán

xử lý ảnh được sử dụng phổ biến, với nhiều mục đích khác nhau. Dùng cho các hệ
thống bảo mật như dò vân tay, giọng nói, giác mạc mắt đến các thiết bị an ninh, truy
tìm tội phạm..., và một trong những phương pháp phổ biến đó là xử lý ảnh nhận
nhiện khuôn mặt.
- Trong quá trình nghiên cứu, có rất nhiều công trình nghiên cứu về bài toán
nhận dạng khuôn mặt người, và qua nhiều thập kỉ từ ảnh đen trắng, xám đến ảnh
màu ngày nay. Các bài toán đi từ đơn giản mỗi ảnh chỉ có một người với một khuôn
mặt nhìn thẳng vào thiết bị thu trong ảnh đen trắng cho đến bài toán mở rộng cho
ảnh màu, có nhiều khuôn mặt cùng lúc trong ảnh với nhiều tư thế khác nhau. Không
những vậy mà còn mở rộng cả phạm vi từ môi trường xung quanh khá đơn giản cho
đến môi trường xung quanh rất phức tạp nhằm đáp ứng nhu cầu của con người.
- Với những vấn đề trên cộng thêm những kiến thức học được cùng với các tài
liệu tham khảo để có thể thực hiện đồ án xử lý ảnh nhận diện khuôn mặt. Đồ án có
thể được hoàn thành nhưng vẫn có những thiếu sót ngoài mong đợi, mong thầy cô
và các bạn đóng góp thêm để các báo cáo đồ án sau được hoàn thiện hơn.
1.2 Mục tiêu và phương án:
- Mục tiêu của đề tài là thực hiện chương trình bằng ngôn ngữ matlab để tìm
kiếm thông tin và diện mạo một bức ảnh có khuôn mặt một người trong tập ảnh có
sẵn giống với thông tin và diện mạo khuôn mặt của người trong bức ảnh cần kiểm
tra.
- Phương án thực hiện:
 Nghiên cứu, tìm hiểu tài liệu về Matlab và các loại ảnh màu
 Sừ dụng thuật toán nhận dạng để xử lý ảnh màu, cấu trúc ảnh màu.
 Mô phỏng nhận dạng khuôn mặt
 Nâng cao kỹ năng thiết kế và lập trình bằng ngôn ngữ matlab.
Nhận dạng khuôn mặt bằng Matlab


ĐỒ ÁN 3
Trang 7/23


1.3 Hướng nghiên cứu:
- Nghiên cứu và tìm hiểu các thuật toán nhận dạng, mà cụ thể là thuật toán PCA.
- Nghiên cứu cấu trúc ảnh màu, các lệnh xử lý ảnh màu trên matlab.
- Nghiên cứu giải thuật mô phỏng bằng phần mền nhận dạng trên matlab.
1.4 Các công cụ phần mềm hỗ trợ đồ án:
- Phần mềm matlab:

Hình 1-1: Hình ảnh phần mềm Matlab [4]

Nhận dạng khuôn mặt bằng Matlab


ĐỒ ÁN 3
Trang 8/23

- Giao diện matlab:

Hình 1-2: Giao diện Matlab

Nhận dạng khuôn mặt bằng Matlab


ĐỒ ÁN 3
Trang 9/23

CHƯƠNG 2. NỘI DUNG THỰC HIỆN
2.1 Các khái niệm và phương pháp nhận dạng ảnh:
2.1.1 Xác định khuôn mặt:
- Xác định khuôn mặt người (Face Detection): là một kỹ thuật trong máy

tính để xác định các kích cỡ, vị trí, diện mạo của khuôn mặt trong các ảnh bất kỳ
(ảnh kỹ thuật số). Vì kỹ thuật này nhận biết các đặc trưng trên của khuôn mặt nên
sẽ bỏ qua những vật thể khác như: tòa nhà, cây cối, cơ thể..
- Phương pháp xác định: Dựa vào tính chất của các phương pháp xác định
khuôn mặt người trên ảnh. Các phương pháp này được chia làm bốn hướng tiếp cận
chính:
 Hướng tiếp cận dựa trên tri thức: Sử dụng hiểu biết của con người về các
loại khuôn mặt người và giải mã thành quy luật. Thông thường các luật mô tả
quan hệ của các đặc trưng.
 Hướng tiếp cận dựa trên đặc trưng không thay đổi: Mục tiêu thuật toán đi
tìm các sự đặc trưng trên khuôn mặt mô tả chúng, các đặc trưng này sẽ không
thay đổi dù vị tri khuôn mặt, tư thế đặt thiết bị thu hình hoặc điều kiện ánh
sáng thay đổi.
 Hướng tiếp cận dựa trên so khớp mẫu: Sử dụng một dữ liệu ảnh nào đó lấy
làm mẫu chuẩn của khuôn mặt người (mẫu được chọn lựa và lưu trữ) để mô tả
cho khuôn mặt người sau đó dùng các ảnh vật khác có vị trí tư thế khuôn mặt
thay đổi và so sánh. Dựa Các mối tương quan đặc trưng giữa dữ liệu ảnh đưa
vào và các mẫu dùng để xác định khuôn mặt người.
 Hướng tiếp cận dựa trên diện mạo: Trái ngược hẳn với khớp mẫu, các mẫu
được học từ một tập ảnh huấn luyện trước đó. Sau đó hệ thống sẽ xác định
khuôn mặt người. Hướng tiếp cận này là hướng tiếp cận theo phương pháp
học.
2.1.2 Ảnh số:

Nhận dạng khuôn mặt bằng Matlab


ĐỒ ÁN 3
Trang 10/23


-

Ảnh số là tập hợp các điểm ảnh với mức xám phù hợp dùng để mô tả ảnh
gần với ảnh thật. Khi ảnh được mã hóa thành digital thì nó trở thành ảnh
số và ảnh số lại thì tập hợp nhiều phần tử được gọi là pixel. Mỗi điểm ảnh
lại được biểu diễn dưới dạng một số hữu hạn các bit.

-

Có ba loại khác nhau: Ảnh đen trắng với mỗi bit biểu diễn cho một điểm
ảnh, ảnh Gray – scale mỗi điểm ảnh được biểu diễn bằng các mức chói
khác nhau, ta và có 256 mức chói tương đương 8 bit cho 1 điểm ảnh. Ảnh
màu mỗi điểm ảnh chia ra thành tín hiệu chói và tín hiệu màu.

-

Trong biểu diễn ảnh, người ta thường dùng các phần tử đặc trưng của ảnh
là Pixel. Nhìn chung có thể xem một hàm 2 biến chứa các thông tin biểu
diễn của một ảnh. Việc xử lý ảnh số phải được lấy mẫu và lượng tử hóa.
lượng tử hóa là chuyển đổi tín hiệu tương tự sang tín hiệu số của một ảnh
đã lấy mẫu sang một số mức xám hữu hạn.

Hình 2-1: Những bước cơ bản trong xử lý ảnh [5]

-

2.1.3 Ảnh màu:
Tất cả các màu được tạo ra từ 3 màu cơ bản (màu sơ cấp) là : đỏ (R),lam
(B) và lục (G).Các màu cơ bản trộn lại với nhau theo một tỉ lệ nhất định


Nhận dạng khuôn mặt bằng Matlab


ĐỒ ÁN 3
Trang 11/23

để tạo ra các màu thứ cấp. Phương trình màu: Y= 0.2989*R +0.58662*G
+ 0.11448*B.

Hình 2-2: Các loại màu cơ sở trong RGB [6]

-

Các đặc trưng dùng để phân biệt một màu với màu khác là : độ sáng
(brightness) , sắc màu (hue) và độ bảo hòa màu (Saturation).

Hình 2-2: Không gian màu của RGB [7]

-

Trong mô hình màu RGB bao gồm 3 mặt phẳng ảnh độc lập. Tất cả các
giá trị màu được chuẩn hóa nằm trong khoảng [0,1]. Vì vậy trong hệ màu
RGB, các màu được minh họa như những điểm bên trong hình lập
phương. Ở gốc tọa độ (0;0;0) là màu đen. Trên các trục tọa độ dương là

Nhận dạng khuôn mặt bằng Matlab


ĐỒ ÁN 3
Trang 12/23


màu đỏ, lục, lam. Khi đó ánh sáng từ các điểm riêng biệt sẽ được cộng với
nhau để tạo ra các màu khác nhau.

-

2.1.4 Các loại định dạng:
Các ảnh số hóa thường được lưu lại cho quá trình xử lý tiếp theo hoặc
truyền đi thường được lưu lại dưới nhiều định dạng như ảnh đen trắng
(IMG), ảnh đa cấp xám cho đến ảnh màu: (BMP, GIF, JPEG…).

-

Định dạng ảnh IMG là ảnh đen trắng. phần đầu của IMG có 16byte chứa
thông tin.

-

Định dạng ảnh GIF (Graphics Interchange Format) là một định dạng tập
tin hình ảnh bitmap cho các hình ảnh dùng ít hơn 256 màu sắc khác nhau
và các hoạt hình dùng ít hơn 256 màu cho mỗi khung hình.

-

Định dạng JPEG: Phương pháp nén ảnh JPEG (Joint Photo-graphic
Experts Group) là một trong những phương pháp nén ảnh hiệu quả, có tỷ
lệ nén ảnh tới vài chục lần. Tuy nhiên ảnh sau khi giải nén sẽ khác với ảnh
ban đầu. Chát lượng ảnh bị giảm theo hệ số nén. Phần mở rộng của các
file JPEG thường có dạng .jpeg, .jfif, .jpg, .JPG, hay .JPE; dạng .jpg là
dạng được dùng phổ biến nhất.


2.2 Nhận dạng dùng thuật toán PCA:
- Thuật toán phân tích thành phần chính PCA (Principal Component
Analysis ) là thuật toán nhận dạng ảnh dựa trên những nét đặc trưng tổng
thể của khuôn mặt, dùng thuật toán này để thực hiện hai việc sau:
 Thứ nhất là tìm một khuôn mặt giống với khuôn mặt cho trước nhưng không
cần cùng tư thế, hoàn cảnh ảnh và vị trí trong ảnh
 Thứ hai là xác định vị trí những khuôn mặt người trong một bức ảnh và phân
tích các nét đặc trưng tổng thể.
-

Ban đầu ta chọn các ảnh khuôn mặt làm dữ liệu tạo thành tập hợp ảnh gọi
là tập ảnh huấn luyện (training set). Giả sử mỗi ảnh có kích thước M×N ,
ta coi mỗi bức ảnh này là một vector trong không gian M×N chiều . Bây

Nhận dạng khuôn mặt bằng Matlab


ĐỒ ÁN 3
Trang 13/23

giờ mỗi khuôn mặt là một vector, những vector này phân bố không ngẫu
nhiên trong không gian ảnh mà phân bố theo một quy luật tương đối nào
đó, và không gian này gọi là không gian khuôn mặt. Từ những vector
trong tập huấn luyện, ta sẽ tìm một cơ sở trực chuẩn trong ma trận M×N
cho không gian khuôn mặt. Những vector thuộc cơ sở này có thể coi là
những vector mang những nét tổng thể đặc trưng về khuôn mặt .
2.3 Các hàm xử lý ảnh cơ bản trong matlab:
2.3.1 Các phép toán xử lý dữ liệu ảnh:
- Đây là các thao tác cơ bản trước khi thực hiện các phép biến đổi phức tạp

khác. Sử dụng các hàm số học mà Matlab cung cấp để tác động lên dữ
liệu ảnh. Tuy nhiên Matlab chỉ hỗ trợ các phép toán này trên kiểu dữ liệu
double nên cần phải chuyển đổi kiểu trước khi thực hiện. Để đơn giản
hơn, Matlab cung cấp các hàm thực hiện các phép toán số học có thể chấp
nhận bất kỳ bất kỳ kiểu dữ liệu ảnh nào và trả về kết quả giá thuộc cùng
kiểu với các toán hạng.
Bảng 2-1: Các phép toán số học trên ảnh

Cú pháp
z=imabsdiff(x,y)
z=imadd(x,y,out_class)
im2= imcomplement(im)
z=imdivide(x,y)
z=imlincomb(k1,a1,k2,a2…,out_class)
z=immultiply(x,y)
z=imsubtract(x,y)

Mô tả
Trừ tương ứng mỗi phần tử y cho mỗi
phần tử của x, trả về trị tuyệt đối hiệu
Cộng hai ảnh, cộng ảnh với hằng số,
out_class kiểu dữ liệu tổng
Lấy bù của ảnh im
Chia các phần tử x cho các phần tử y,kết
quả làm tròn
Lấy tổ hợp tuyến tính z=k1*a1+k2*a2+

Nhân hai ảnh, ảnh với hằng số
Trừ hai ảnh, ảnh với hằng số


2.3.2 Các hàm hiển thị ảnh trong matlab:

Nhận dạng khuôn mặt bằng Matlab


ĐỒ ÁN 3
Trang 14/23

- Matlab cung cấp 2 hàm cơ bản là image và imagesc dùng hiển thị file ảnh.
Ngoài ra, trong Image Processing Toolbox cũng có hai hàm hiển thị khác là imview
và imshow.
- Hàm image(x,y,c) hiển thị hình ảnh biểu diễn bởi ma trận c kích thước mxn
lên hệ trục tọa độ. x,y là các vector xác định vị trí của các điểm c(1,1) và c(m,n).
- Hàm imagesc có chức năng tương tự hàm image, ngoại trừ việc dữ liệu ảnh
sẽ được co giãn để sử dụng toàn bộ bản đồ màu hiện hành.
- Hàm imview cho phép hiển thị ảnh trên của sổ riêng nền Java, gọi là Image
Viewer.
- Hàm imshow cho phép hiển thị ảnh trên một Figure và tự động thiết lập giá
trị các đối tượng image, axes, figure để hiển thị hình ảnh.
Bảng 2-2: Các hàm xử lý hình ảnh trong Matlab

Các hàm chuyển đổi loại ảnh và kiểu dữ liệu ảnh
dither
Tạo ra ảnh nhị phân hoặc ảnh RGB
gray2ind
Chuyển ảnh trắng đen sang ảnh indexed
im2bw
Chuyển ảnh thành ảnh kiểu dữ liệu nhị phân
im2double
Chuyển ảnh thành ảnh kiểu dữ liệu double

im2uint16
Chuyển ảnh thành ảnh kiểu dữ liệu uint16
im2uint8
Chuyển ảnh thành ảnh kiểu dữ liệu uint8
imapprox
Xấp xỉ ảnh indexed bằng cách giảm số màu
ind2gray
Chuyển ảnh indexed thành ảnh gray scale
ind2rgb
Chuyển ảnh indexed thành ảnh RBG
mat2gray
Tạo ảnh gray scale từ ma trận
rgb2ind
Chuyển ảnh RBG thành ảnh indexed
rgb2gray
Chuyển ảnh RBG thành ảnh gray scale
Các hàm truy xuất dữ liệu ảnh
imfinfo
Truy xuất thông tin ảnh
imread
Đọc ảnh từ file và xuất ra ma trận ảnh
imwrite
Lưu ma trận ảnh thành file ảnh
Các hàm biến đổi hình học
cp2tform
Định nghĩa phép biến đổi hình học từng cặp tương ứng
imcrop
Trích xuất một phần ảnh
imresize
Thay đổi kích thước ảnh

imrotate
Thực hiện phép quay ảnh
imtranform
Thực hiện phép biến đổi hình học tổng quát
maketform
Định nghĩa phép biến đổi hình học tổng quát

Nhận dạng khuôn mặt bằng Matlab


ĐỒ ÁN 3
Trang 15/23

CHƯƠNG 3.

MÔ PHỎNG THỰC HIỆN TRÊN MATLAB

3.1 Sơ đồ khối:

DATA BASE

Nhận dạng khuôn mặt bằng Matlab

TẬP HUẤN LUYỆN


ĐỒ ÁN 3
Trang 16/23

ẢNH TEST


THUẬT TOÁN PCA

TẬP ÁNH XẠ

XUẤT VECTOR

XUẤT VECTOR

ĐẶC TRƯNG

ĐẶC TRƯNG

KHỐI SO SÁNH
v
Hình 3-1: Sơ đồ khối trong xử lý ảnh nhận dạng khuôn mặt

3.2 Lưu đồ giải thuật
BEGIN

NHẬP ẢNH

ẢNH TEST
Nhận dạng khuôn mặt bằng Matlab


ĐỒ ÁN 3
Trang 17/23

ẢNH MẪU


XỬ LÝ

SAI

SO SÁNH

ĐÚNG
XUẤT KẾT QUẢ

KẾT THÚC

Hình 3-2: Lưu đồ giải thuật

3.3 NGUYÊN LÝ NHẬN DẠNG:
- Sử dụng Matlab nhận dạng khuôn mặt dựa trên việc nhận dạng các vector và
so sánh các điểm ảnh.
- Đầu tiên ta chọn các ảnh mẫu để lập thành tập ảnh huấn luyện, thiết lập các
thông tin dữ liệu cho các tập ảnh này như họ tên, ngày tháng năm sinh, địa chỉ...
Sau đó ta sử dụng matlab khởi chạy chọn ảnh test, Matlab sẽ sử dụng thuật toán
PCA mà ta code trong matlab để so sánh phân tích các đặc trưng khuôn mặt trong
ảnh mẫu và ảnh test, nếu các đặc trưng giữa 2 ảnh phù hợp thì sẽ xuất thông tin, dữ

Nhận dạng khuôn mặt bằng Matlab


ĐỒ ÁN 3
Trang 18/23

liệu mà ta đã thiết lập trong Data base, nếu không phù hợp sẽ phải nhập lại hình ảnh

khác.

Hình 3-3: Chương trình giao diện mô phỏng bằng Matlab

3.4 Kết quả mô phỏng:

Hình 3-4: Ảnh nhập từ cơ sở dữ liệu

Nhận dạng khuôn mặt bằng Matlab


ĐỒ ÁN 3
Trang 19/23

Hình 3-5: Ảnh test

Hình 3-6: Xuất thông tin kết quả

Nhận dạng khuôn mặt bằng Matlab


ĐỒ ÁN 3
Trang 20/23

CHƯƠNG 4.

NHẬN XÉT

4.1 Vấn đề trong mô phỏng:
- Các phép tính toán trong matlab vẫn có những sai số do sử dụng các hàm quy

định số thập phân.
- Trong quá trình lưu ảnh có giải nén nhất là giải nén các file ảnh JPEG hay GIF
làm độ pixel có khả năng suy giảm, nhưng mức độ giảm ấy không đáng kế vì ngày
nay thiết kế cho ảnh JPEG có độ giải nén không nhòa tới vài chục lần và độ nhòa
trong pixel là một con số nhỏ không đáng kể, không ảnh hưởng tới quá trình nhận
dạng đặc trưng của ảnh.
4.2 Nhận xét hệ thống:

Nhận dạng khuôn mặt bằng Matlab


ĐỒ ÁN 3
Trang 21/23

- Sau khi hoàn thiện và mô phỏng, kết quả đạt được phù hợp với những lý thuyết
tính toán tuy vẫn còn có sự sai số nhỏ trong quá trình mô hệ thống nhưng không
đáng kể. Đồ án với các thuật toán nhận dạng ngày càng được nâng cấp và tối ưu sẽ
giúp ích không nhỏ trong đời sống.
- Với ngôn ngữ Matlab và với lượng kiến thức đã học, đồ án này được thực hiện
chỉ có thể đáp ứng một số yêu cầu cơ bản, để có thể xây dựng một hệ thống nhận
dạng hoàn chỉnh thực tế trong xử lý ảnh ta cần bỏ công nghiên cứu tham khảo thêm
các công nghệ xây dựng phần mềm hiện đại trên thế giới.

CHƯƠNG 5.

KẾT LUẬN

5.1 Kết luận:
- Đồ án “xử lý ảnh nhận dạng khuôn mặt” có tính ứng dụng thực tiễn, là nhu cầu
cần thiết hàng ngày đóng vai trò quan trọng trong xã hội hiện đại.

5.2 Hướng phát triển:
- Đề tài có thể được phát triển thành nhận dạng mặt người tốt hơn, bằng cách kết
hợp với các thuật toán nhận dạng tiên tiến và xử lý ảnh hiện đại hơn như công nghệ
nhận dạng 3D làm cho kết quả chính xác hơn. Có thể phát triển thành các dự án lơn
hoặc các đề tài đồ án tốt nghiệp xử lý ảnh nhận dạng khuôn mặt bằng webcam.

Nhận dạng khuôn mặt bằng Matlab


ĐỒ ÁN 3
Trang 22/23

TÀI LIỆU THAM KHẢO
Tiếng Anh:
[1] Rafael C. Gonzalez & Richard E. Wood (2009), “ Digital Image Processing”.
Tiếng Việt:
[2] TS. Nguyễn Thanh Hải (01/2014), “Giáo trình xử lý ảnh”.
Internet:
[3] Tài liệu nhận dạng khuôn mặt bằng phương pháp PCA, < >.
[4] Matlab 2016, < >.
[5] Các bước xử lý ảnh cơ bản , < >.
[6] Màu cơ bản trong RGB, < >.
[7]

Không

gian

màu


RGB,

< />
mau/f2ae523e>.

PHỤ LỤC

Nhận dạng khuôn mặt bằng Matlab


ĐỒ ÁN 3
Trang 23/23

Nhận dạng khuôn mặt bằng Matlab


ĐỒ ÁN 3
Trang 24/23

Nhận dạng khuôn mặt bằng Matlab


ĐỒ ÁN 3
Trang 25/23

Nhận dạng khuôn mặt bằng Matlab


×