Tải bản đầy đủ (.pptx) (22 trang)

TÁCH MẶT NGƯỜI DÙNG CÔNG CỤ IMAGE PROCESSSING TOOLBOX TRONG MATLAB

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 (293.72 KB, 22 trang )

LOGO

BÁO CÁO MÔN HỌC
CHUYÊN ĐỀ II

ĐỀ TÀI:
TÁCH MẶT NGƯỜI DÙNG CƠNG
CỤ IMAGE PROCESSSING
TOOLBOX TRONG MATLAB
GVHD: LÊ MẠNH THẮNG
NHĨM 3: PHẠM MINH THÀNH
PHẠM ANH THANH
NGUYỄN DUY HẬU


ĐẶT VẤN ĐỀ
 Xử lý ảnh là một lĩnh vực nghiên cứu rộng và có rất nhiều ứng
dụng trong các mặt của đời sống xã hội. Nhận dạng khuôn mặt là
một trong những khía cạnh của xử lý ảnh. Kỹ thuật này cho phép
chúng ta nhận diện một khuôn mặt người từ ảnh tĩnh hay từ
video bằng cách so sánh với kho dữ liệu có sẵn trong hệ thống.
Nhận dạng khn mặt được ứng dụng trong lĩnh vực phịng
chống tội nghiên cứu một phương pháp nhận dạng khuôn mặt
dùng thuật tốn phân tích thành phần cơ bản. Trong đồ án này sẽ
tìm hiểu về một số vấn đề của bài tốn nhận dạng và phát hiện
khn mặt ở chun đề này chúng ta sẽ nói đến mảng trích đăc
trưng và tách khuôn mặt người bằng công cụ Image Processing
toolbox trong Matlab R2009a, các kết quả của chương trình cho
thấy tính khả thi của việc áp dụng chương trình vào trong thực tế.



MỤC TIÊU CỦA ĐỀ TÀI
 Mục tiêu của đề tài “ Tách mặt người dùng Matlab” là thực
hiện chương trình chụp hình từ WC, lưu lại, sau đó xử lý đưa
về hình cắt mặt người trong ảnh vừa chụp
 Để tiện theo dõi nhóm em xin trình bày đề tài theo ba phần
như sau:
 Phần đầu là giới thiệu về thuật toán PCA là ứng toán được sử
dụng rất nhiều trong viễn thơng. Và đề tài này sử dụng thuật
tốn PCA.
 Phần tiếp theo là giới thiệu các lệnh được sử dụng trong
chương trình.
 Phần cuối cùng là giới thiệu giao diện chương trình và code
nguồn.


CÁC THUẬT TỐN NHẬN DẠNG
KHN MẶT
1.1 Định nghĩa bài tốn xác định khuôn mặt người
 Xác định khuôn mặt người (Face Detection) là một kỹ
thuật máy tính để xác định các vị trí và các kích thước
của các khn mặt người trong các ảnh bất kỳ (ảnh kỹ
thuật số). Kỹ thuật này nhận biết các đặc trưng của
khuôn mặt và bỏ qua những thứ khác, như: tòa nhà, cây
cối…..


1.2 Ứng dụng của phương pháp xác định khuôn mặt người

 Có nhiều ứng dụng đã được và đang thiết kế, nhóm
em chỉ xin đưa ra một số loại ứng dụng sau:

 Hệ thống tương tác giữa người và máy: giúp những
người bị tật hoặc khiếm khuyết có thể trao đổi.
Những người dùng ngơn ngữ tay có thể giao tiếp với
những người bình thường. Những người bị bại liệt
thơng qua một số ký hiệu nháy mắt có thể biểu lộ
những gì họ muốn, .. Đó là các bài tốn điệu bộ của
bàn tay (hand gesture), điệu bộ khuôn mặt.
 Hệ thống quan sát, theo dõi và bảo vệ.
 Thẻ căn cước, chứng minh nhân dân (Face
Identification).
 An ninh sân bay, xuất nhập cảnh.


1.3 Phương pháp xác định khn mặt người

 Có nhiều nghiên cứu tìm phương pháp xác định khn
mặt người, từ ảnh xám đến ngày nay là ảnh màu. Em sẽ
trình bày một cách tổng quát nhất những hướng giải quyết
chính cho bài tốn, từ những hướng chính này nhiều tác
giả thay đổi một số ý nhỏ bên trong để có kết quả mới.


1.4 Nhận dạng ảnh dựa trên PCA

 Khuôn mặt con người có rất nhiều nét để nhận biết, nếu
như ta gặp lại một người bạn sau một thời gian dài, ta
có thể nhận ra ngay người đó từ những chi tiết cụ thể
trên mặt có thể thay đổi như da, mái tóc . Ta nhận ra
khơng phải vì nhớ đơi mắt , hay mũi hay mơi hay tóc ,
lơng mày người đó mà ta nhận ra vì nhớ diện mạo của

người đó . Tức là trên khn mặt tồn tại một nét tổng
thể nào đó để có thể nhận diện , thuật toán của ta bắt
đầu từ ý tưởng này.
 Phân tích thành phần chính (Principal Component
Analysis ) gọi tắt là PCA là thuật toán nhận dạng ảnh
dựa trên những nét tổng thể của khuôn mặt .


2. CÁC LỆNH XỬ LÝ ẢNH TRONG MATLAB.

 Các hàm hiển thị ảnh trong Matlab
 Để hiển thị ảnh, Matlab cung cấp 2 hàm cơ bản là image và
imagesc.
 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 véctơ 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.


3.SƠ ĐỒ GIẢI THUẬT VÀ CODE CỦA CHƯƠNG TRÌNH

BEGIN

MỞ
VIDEO

ĐĨNG KHUNG
MẶT NGƯỜI

CẮT ẢNH VÀ
HIỂN THỊ

CHỤP VÀ
LƯU ẢNH
ĐỌC ẢNH VÀ
TIỀN XỬ LÝ
TÁCH
MÀU DA
LỌC
NHIỄU

END


ĐOẠN CODE XỬ LÝ ẢNH TRONG
MATLAB
vid= videoinput('winvideo',1);
preview(vid);
pause(5);
hi= getsnapshot(vid);
imwrite(hi,'D:\1.jpg');
a=imread('D:\1.jpg ');imshow(a);
srgb2lab = makecform('srgb2lab');

lab2srgb = makecform('lab2srgb');
a_lab = applycform(a, srgb2lab);
max_luminosity = 100;
L = a_lab(:,:,1)/max_luminosity;


ĐOẠN CODE XỬ LÝ ẢNH TRONG
MATLAB
a_imadjust = applycform(a_imadjust, lab2srgb);
a_imadjust = a_lab;
a_imadjust(:,:,1) = imadjust(L)*max_luminosity;
a_histeq = a_lab;
a_histeq(:,:,1) = histeq(L)*max_luminosity;
a_histeq = applycform(a_histeq, lab2srgb);
sz=size(a_histeq);
for i=1:sz(1)
for j=1:sz(2)
www.themegallery.com


ĐOẠN CODE XỬ LÝ ẢNH TRONG
MATLAB
if a(i,j,1)>60 & a(i,j,2)<130 & a(i,j,3)<160 &
a(i,j,1)<190 & a(i,j,2)>80 & a(i,j,3)>60
white (i,j)=1;
green(i,j)=0;
blue(i,j)=0;
red(i,j)=0;
else white (i,j)=0;
green(i,j)=0;

blue(i,j)=0;
red(i,j)=0;

www.themegallery.com


ĐOẠN CODE XỬ LÝ ẢNH TRONG
MATLAB

end
end
end
SE = strel('rectangle',[28 25]);
BW2 = imerode(white,SE);BW3 = imdilate(BW2,SE);
Ifill = imfill(BW3,'holes');
[Label,Total]=bwlabel(Ifill,8);
Sdata=regionprops(Label,'BoundingBox');
for i=1:Total Img=imcrop(a,Sdata(i).BoundingBox);
imwrite(Img,'b.jpg'); b=imread('b.jpg');[m n p] =size(b);
d=imcrop(b, [0 0 n 3/5*m]);
figure, imshow(d);


GiẢI THÍCH CODE

 Kết nối WC với matlab, chụp ảnh và lưu lại
vid= videoinput('winvideo',1);
preview(vid);
pause(5);
hi= getsnapshot(vid);

imwrite(hi,'D:\1.jpg');


 ĐỌC ẢNH VÀ XỬ LÝ ẢNH:
a=imread('D:\1.jpg ');imshow(a);
srgb2lab = makecform('srgb2lab');
lab2srgb = makecform('lab2srgb');
a_lab = applycform(a, srgb2lab);
max_luminosity = 100;
L = a_lab(:,:,1)/max_luminosity;
a_imadjust = a_lab;
www.themegallery.com


ĐỌC ẢNH VÀ XỬ LÝ ẢNH:
a_imadjust(:,:,1) = imadjust(L)*max_luminosity;
a_imadjust = applycform(a_imadjust, lab2srgb);
a_histeq = a_lab;
a_histeq(:,:,1) = histeq(L)*max_luminosity;
a_histeq = applycform(a_histeq, lab2srgb);

www.themegallery.com


TÁCH MẶT NGƯỜI RA TỪ ẢNH VỪA CHỤP
sz=size(a_histeq);
for i=1:sz(1)
for j=1:sz(2)
if a(i,j,1)>60 & a(i,j,2)<130 & a(i,j,3)<160 & a(i,j,1)<190 & a(i,j,2)>80 & a(i,j,3)>60
white (i,j)=1;

green(i,j)=0;
blue(i,j)=0;
red(i,j)=0;
else white (i,j)=0;
green(i,j)=0;
blue(i,j)=0;
red(i,j)=0;end
end


 LỌC NHIỄU
SE = strel('rectangle',[28 25]);% tạo ra hình chữ nhật
BW2 = imerode(white,SE); % làm xói mịn
BW3 = imdilate(BW2,SE);% làm giãn nở
Ifill = imfill(BW3,'holes');% lấp các lỗ hỗng trong ảnh


 ĐÓNG KHUNG TẤT CẢ MẶT NGƯỜI TRONG ẢNH VỪA
LỌC TỪ ĐÓ CẮT VÀ HiỂN THỊ LÊN TẤT CẢ MẶT NGƯỜI
CĨ TRONG HÌNH CHỤP.
[Label,Total]=bwlabel(Ifill,8);tạo nhãn trong ảnh, trả về số nhãn tạo đc
Sdata=regionprops(Label,'BoundingBox'); đóng khung nhãn
for i=1:Total Img=imcrop(a,Sdata(i).BoundingBox); cắt ảnh
imwrite(Img,' D:\ b.jpg');
b=imread(' D:\ b.jpg');[m n p] =size(b);
d=imcrop(b, [0 0 n 4/6*m]);
figure, imshow(d);
end



KẾT QUẢ ĐẠT ĐƯỢC VÀ HẠN CHẾ
 Kết quả đạt được:
- Đã tìm hiểu được tổng quan về Matlab cơng cụ image processing
toolbox
- Ứng dụng công cụ image processing toolbox để hoàn thành được đề
tài giao viên đưa ra là tách được mặt người từ hình chụp từ WC.
 Hạn chế:
- Thời gian làm đề tài ngắn nên chưa tìm hiểu sâu về cơng cụ image
processing toolbox mà chỉ tìm hiểu tổng quan ở những hàm cơ bản.
- Chỉ mới tìm hiểu 1 phương pháp nhận dạng mặt người qua màu da
nên kết quả chưa được cao.
- Quá trình nhận dạng còn bị ảnh hưởng bởi độ sáng, màu áo nên bị
nhiễu lớn dẫn đến kết quả kém chính xác hơn không như mong muốn.


HƯỚNG MỞ RỘNG CỦA ĐỀ TÀI

 Hướng mở rộng của đề tài
Đề tài có thể được phát triển thành một phần mện nhận
dạng mặt người tốt hơn, bằng cách kết hợp với một số
thuật toán nhận dạng và xử lý ảnh hiện đại hơn. Cho ra kết
quả chính xác hơn.


Cảm ơn thầy và các bạn đã
lắng nghe bài thuyết trình
của nhóm.




×