Chương 2 PHƯƠNG PHÁP XỬ LÝ VÀ NHẬN DẠNG KHUÔN MẶT Hơn một thập kỷ qua có rất nhiều công trình nghiên cứu về bài toán xác định khuôn mặt người từ ảnh đen trắng, xám đến ảnh màu như ngày h
Trang 1LỜI CẢM ƠN
Từ những kiến thức và kỹ năng em học tập và rèn luyện, em đã hoàn thành đồ
án tốt nghiệp đại học của mình
Để hoàn thiện được đồ án này, em xin gửi lời cảm ơn chân thành tới thầy ThS
Tạ Hùng Cường đã hướng dẫn, động viên em trong quá trình làm đồ án vừa qua
Em cũng xin gửi lời cảm ơn tới quý thầy/cô đã giúp em để hoàn thành đồ án này
Trong quá trình làm đồ án chắc chắn không tránh khỏi những thiếu sót, rất mong nhận được những đóng góp ý kiến từ phía các đơn vị
Nghệ An, tháng 05 năm 2016 Sinh viên thực hiện Đặng Thế Hưởng
Trang 2MỤC LỤC
LỜI CẢM ƠN 1
MỤC LỤC 2
LỜI NÓI ĐẦU 4
DANH MỤC HÌNH SỬ DỤNG TRONG ĐỒ ÁN 5
CÁC TỪ VIẾT TẮT SỬ DỤNG TRONG ĐỒ ÁN 6
Chương 1 MATLAB VÀ XỬ LÝ ẢNH 7
1.1 MATLAB 7
1.2 Giới thiệu khái quát về ảnh số 10
1.3 Xử lý ảnh với Matlab 11
1.4 Toolbox bắt ảnh và xử lý ảnh 14
1.5 Tạo giao diện người dùng nhờ công cụ GUIDE 20
Kết luận chương 1 24
Chương 2 PHƯƠNG PHÁP XỬ LÝ VÀ NHẬN DẠNG KHUÔN MẶT 25
2.1 Định nghĩa bài toán xác định khuôn mặt người 25
2.2 Ứng dụng của phương pháp xác định khuôn mặt 25
2.3 Phương pháp xác định khuôn mặt 27
2.4 Khó khăn và thử thách trong bài toán xác định khuôn mặt người 32
2.5 Bài toán nhận dạng khuôn mặt bằng PCA 33
Kết luận chương 2 39
Chương 3 THUẬT TOÁN PCA VÀ CHƯƠNG TRÌNH MÔ PHỎNG 40
3.1 Ưu điểm của phương pháp PCA 40
3.2 Nhược điểm của phương pháp PCA 40
3.3 Lưu đồ giải thuật 41
3.4 Kết quả mô phỏng 46
3.5 Tốc độ thực hiện 47
3.6 Nhận xét quá trình thực hiện 47
Kết luận chương 3 49
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 50
TÀI LIỆU THAM KHẢO 51
PHỤ LỤC 52
Trang 4LỜI NÓI ĐẦU
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 rất được quan tâm hiện nay là nhận dạng khuôn mặt Bên cạnh đó, 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 từ ảnh số Các
hệ thống nhận dạng offline đã ra đời và có độ tin cậy cao, tuy nhiên các hệ thống nhận dạng online lại chưa đáp ứng được
Bài toán nhận dạng là một bài toán hấp dẫn, không giới hạn giải pháp sử dụng, vận dụng linh hoạt kiến thức trong nhiều lĩnh vực, đã thách thức nhiều người nghiên cứu vì tính ứng dụng to lớn trong thực tế Đây là vấn đề cần được nghiên cứu để ứng dụng vào việc chế tạo như: robot, các thiết bị camera, các hệ thống bảo mật,
nhận dạng,… Do đó em chọn đề tài “Thiết kế mô phỏng hệ thống nhận dạng trên
cơ sở thuật toán PCA” Đề tài này được trình bày bao gồm có 3 chương:
Chương 1: Matlab và xử lý ảnh
Chương 2: Phương pháp xử lý và nhận dạng khuôn mặt
Chương 3: Thiết kế chương trình mô phỏng nhận dạng dung thuật toán PCA Nội dung đề tài bao gồm:
- Tìm hiểu phương pháp nhận diện ảnh
- Nghiên cứu PCA
- Dò tìm ảnh mặt người có không gian
- Cắt ảnh mặt và lưu vào 1 file
- Xử lý ảnh động qua webcam
Trong bài luận này em xin đề cập tới vấn đề dò tìm và nhận dạng mặt người qua một ảnh tĩnh cho trước, đồng thời mở rộng hơn là xử lý ảnh thu được qua một thiết bị thu ảnh, ví dụ như: camera, webcam, …
Trang 5DANH MỤC HÌNH SỬ DỤNG TRONG ĐỒ ÁN
Hình 1.1 Cửa sổ khi khởi động Matlab 9
Hình 1.2 Biểu diễn ảnh index 18
Hình 1.3 Cửa số GUIDE 21
Hình 1.4 Cửa số biên soạn GUIDE 21
Hình 1.5 Cửa sổ thuộc tính 23
Hình 2.1 Một mẫu khuôn mặt, có 16 vùng và 23 quan hệ (các mũi tên) 32
Hình 3.1 Lưu đồ thuật toán chính của chương trình 41
Hình 3.2 Lưu đồ thuật toán chọn ảnh 42
Hình 3.3 Lưu đồ thuật toán dò tìm mặt 43
Hình 3.4 Lưu đồ giải thuật chương trình nhận dạng 44
Hình 3.5 Lưu đồ giải thuật PCA 45
Hình 3.6 Giao diện chính 46
Hình 3.7 Giao diện chương trình nhận dạng ảnh tĩnh 46
Hình 3.8 Giao diện chương trình dò tìm ảnh động 47
Trang 6CÁC TỪ VIẾT TẮT SỬ DỤNG TRONG ĐỒ ÁN
PCA Principal Component Analysis Phân tích thành phần chính COM Component Object Model Phần kết hợp
CGA Color Graphic Adaptor Độ phân giải màn hình SVM Support Vector Machine Vector hỗ trợ
ICA Independent Component
Analysis Phân tích thành phần độc lập
Trang 7Chương 1 MATLAB VÀ XỬ LÝ ẢNH 1.1 MATLAB
1.1.1 Khái niệm MATLAB
Matlab là một công cụ mô phỏng, lập trình bậc cao được sử dụng để giải các bài toán về khoa học kỹ thuật MATLAB tích hợp được việc tính toán, thể hiện kết quả, cho phép lập trình, giao diện làm việc rất dễ dàng cho người sử dụng Dữ liệu cùng với thư viện được lập trình sẵn cho phép người sử dụng có thể có được những ứng dụng sau đây
Sử dụng các hàm có sẵn trong thư viện MATLAB, các phép tính toán học thông thường
Cho phép lập trình tạo ra những ứng dụng mới
Cho phép mô phỏng các mô hình thực tế
Phân tích, khảo sát và hiển thị dữ liệu
Với phần mềm đồ hoạ cực mạnh
Cho phép phát triển, giao tiếp với một số phần mềm khác như C++, Fortran
1.1.2 Tổng quan về cấu trúc dữ liệu của MATLAB, các ứng dụng
Matlab là một hệ thống tương giao, các phần tử dữ liệu là một mảng (mảng này không đòi hỏi về kích thước) Chúng cho phép giải quyết các vấn đề liên quan đến lập trình bằng máy tính, đặc biệt sử dụng các phép tính về ma trận hay vectơ
và có thể sử dụng ngôn ngữ C học Fortran lập trình rồi thực hiện ứng dụng lập trình đó bằng các câu lệnh gọi từ MATLAB MATLAB được viết tắt từ chữ
“MATrix LABoratory” tức là thư viện về ma trận, từ đó phần mềm Matlab được viết nhằm cung cấp cho việc truy cập vào phần mềm ma trận một cách dễ dàng, phần mềm ma trận này được phát triển bởi các công trình Linpack và Eispack Ngày nay Matlab được phát triển bởi Lapack và Artpack tạo nên một nghệ thuật phần mềm cho ma trận
a) Dữ liệu
Dữ liệu của MATLAB thể hiện dưới dạng ma trận (hoặc mảng - tổng quát), và
có các kiểu dữ liệu được liệt kê sau đây:
Kiểu đơn single, kiểu này có lợi về bộ nhớ dữ liệu vì nó đòi hỏi ít byte nhớ
Trang 8hơn, kiểu dữ liệu này không được sử dụng trong các phép tính toán học, độ chính xác kém hơn
Kiểu double kiểu này là kiểu thông dụng nhất của các biến trong Matlab
Kiểu Sparse
Kiểu uint8, uint8, uint16, uint64
Kiểu char ví dụ “Hello”
Các kỹ sư, các nhà nghiên cứu khoa học
Dùng Matlab để tính toán, nghiên cứu tạo ra các sản phẩm tốt nhất trong sản xuất
c) Toolbox là một công cụ quan trọng trong MATLAB
Công cụ này được MATLAB cung cấp cho phép bạn ứng dụng các kỹ thuật để phân tích, thiết kế, mô phỏng các mô hình
Ta có thể tìm thấy toolbox ở trong mô trường làm việc của
Trang 9+ Browsers for viewing help
Thư viện, các hàm toán học bao gồm các cấu trúc như tính tổng, sin cosin atan, atan2 etc , các phép tính đơn giản đến các phép tính phức tạp như tính ma trận nghich đảo, trị riêng, chuyển đổi fourier, laplace, symbolic library
Ngôn ngữ Matlab Đó là các ngôn ngữ cao về ma trận và mảng, với các dòng lệnh, các hàm, cấu trúc dữ liệu vào, có thể lập trình hướng đối tượng
Đồ hoạ trong Matlab Bao gồm các câu lệnh thể hiện đồ họa trong môi trường 2D và 3D, tạo các hình ảnh chuyển động, cung cấp các giao diện tương tác giữa người sử dụng và máy tính
Giao tiếp với các ngôn ngữ khác Matlab cho phép tương tác với các ngôn ngữ khác như C, Fortran…
1.1.4 Làm việc với MATLAB
Hình 1.1 Cửa sổ khi khởi động MATLAB
Trước tiên để khởi động MATLAB ta kích click vào biểu tượng file MATLAB trên màn hình xuất hiện cửa sổ như hình vẽ Cửa sổ đó chứa các thanh công cụ (Giao diện người và máy) cần thiết cho việc quản lý các files, các biến, cửa sổ lệnh, có thể coi desktop là các panel gồm các ô, vùng, quản lý và tác dụng của từng cửa sổ nhỏ được quản lý bởi desktop
Trên hình vẽ ta thấy cửa sổ desktop (cửa sổ lớn nhất), và các cửa sổ phụ của
nó
Trang 101.2 Giới thiệu khái quát về ảnh số
1.2.1 Các khái niệm cơ bản về ảnh
Ảnh số là tập hợp hữu hạn 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 Số điểm ảnh xác định độ phân giải của ảnh Ảnh có độ phân giải càng cao thì càng thể hiện rõ nét các đặt điểm của tấm hình càng làm cho tấm ảnh trở nên thực và sắc nét hơn
a) Điểm ảnh (Picture Element)
Điểm ảnh (Pixel) là một phần tử của ảnh số tại toạ độ (x, y) với độ xám hoặc màu nhất định Kích thước và khoảng cách giữa các điểm ảnh đó được chọn thích hợp sao cho mắt người cảm nhận sự liên tục về không gian và mức xám (hoặc màu) của ảnh số gần như ảnh thật Mỗi phần tử trong ma trận được gọi là một phần tử ảnh
b) Mức xám của ảnh
Mức xám: Là kết quả của sự biến đổi tương ứng 1 giá trị độ sáng của 1 điểm ảnh với 1 giá trị nguyên dương Thông thường nó xác định trong [0, 255] tuỳ thuộc vào giá trị mà mỗi điểm ảnh được biểu diễn
Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256 (Mức 256 là mức phổ dụng Lý do: từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn mức xám Mức xám dùng 1 byte biểu diễn: 28=256 mức, tức là từ 0 đến 255)
c) Độ phân giải của ảnh
Định nghĩa: Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh được ấn định trên một ảnh số được hiển thị
Theo định nghĩa, khoảng cách giữa các điểm ảnh phải được chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh Việc lựa chọn khoảng cách thích hợp tạo nên một mật độ phân bổ, đó chính là độ phân giải và được phân bố theo trục x và y trong không gian hai chiều
Ví dụ: Độ phân giải của ảnh trên màn hình CGA (Color Graphic Adaptor) là một lưới điểm theo chiều ngang màn hình: 320 điểm chiều dọc * 200 điểm ảnh (320*200) Rõ ràng, cùng màn hình CGA 12” ta nhận thấy mịn hơn màn hình CGA 17” độ phân giải 320*200 Lý do: cùng một mật độ (độ phân giải) nhưng diện tích màn hình rộng hơn thì độ mịn (liên tục của các điểm) kém hơn
Trang 11=> Hệ màu này thường được dùng trong máy in
- Hệ màu CMYK: trong đó K là độ đậm nhạt của màu K= min(C, M, Y)
P(x, y) = (C-K, M-K, V-K, K)
Ví dụ:
Với (C1, M1, Y1) ta sẽ có K=min(C1, M1, Y1)
vậy CMYK=(C1-K, M1-K, Y1-K, K)
1.3 Xử lý ảnh với Matlab
1.3.1 Xử lý ảnh
Các bước cần thiết trong xử lý ảnh Đầu tiên, ảnh tự nhiên từ thế giới ngoài được thu nhận qua các thiết bị thu (như Camera, máy chụp ảnh) Trước đây, ảnh thu qua Camera là các ảnh tương tự (loại Camera ống kiểu CCIR) Gần đây, với sự phát triển của công nghệ, ảnh màu hoặc đen trắng được lấy ra từ Camera, sau đó nó được chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý tiếp theo Máy ảnh số hiện nay
Trang 12- Mục đích: biến đổi thông tin hình ảnh về các cấu trúc được lưu trữ trong máy tính, có thể hiển thị ra các thiết bị ngoại vi như là máy in, màn hình…
- Gồm hai tiến trình:
+ Biến đổi năng lượng quang học thành năng lượng điện
+ Tổng hợp năng lượng điện thành ảnh hoặc ma trận số
+ Chuẩn hoá độ lớn, màu, dạng của ảnh
+ Điều chỉnh bộ lọc để khuyếch đại và nén các tần số
c) Phân đoạn (Segmentation)
- Là quá trình phân chia nội dung các đối tượng cần khảo sát ra khỏi ảnh
- Phân chia các đối tượng tiếp giáp nhau
- Phân tách các đối tượng riêng biệt thành các đối tượng con
d) Biểu diễn ảnh (Image Representation)
Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã phân đoạn) cộng với mã liên kết giữa các vùng lân cận Việc biến đổi các số liệu này thành dạng thích hợp là cần thiết cho xử lý ảnh tiếp theo bằng máy tính
e) Nhận dạng và nội suy ảnh (Image Recognition and Interpretation)
Nhận dạng ảnh là quá trình xác định ảnh Quá trình này thường thu được bằng cách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước Nội suy là phán đoán theo ý nghĩa trên cơ sở nhận dạng
Ví dụ: một loạt chữ số và nét gạch ngang trên phong bì thư có thể được nội suy thành mã điện thoại Có nhiều cách phân loai ảnh khác nhau về ảnh Theo lý thuyết về nhận dạng, các mô hình toán học về ảnh được phân theo hai loại nhận dạng ảnh cơ bản:
Trang 13- Nhận dạng theo tham số
- Nhận dạng theo cấu trúc
Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng trong khoa học và công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn bản (Text), nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt người…
Như đã nói ở trên, ảnh là một đối tượng khá phức tạp về đường nét, độ sáng tối, dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo theo nhiễu Trong nhiều khâu xử lý và phân tích ảnh ngoài việc đơn giản hóa các phương pháp toán học đảm bảo tiện lợi cho xử lý, người ta mong muốn bắt chước quy trình tiếp nhận
và xử lý ảnh theo cách của con người Trong các bước xử lý đó, nhiều khâu hiện nay đã xử lý theo các phương pháp trí tuệ con người Vì vậy, ở đây các cơ sở tri thức được phát huy
1.3.3 Phân loại ảnh
a) Ảnh được định chỉ số (Indexed Images)
Một ảnh chỉ số bao gồm một ma trận dữ liệu X và ma trận bản đồ màu map
Ma trận dữ liệu có thể có kiểu thuộc lớp uint8, uint16 hoặc kiểu double Ma trận bản đồ màu là một mảng mx3 kiểu double bao gồm các giá trị dấu phẩy động nằm giữa 0 và 1 Mỗi hàng của bản đồ chỉ ra các giá trị mà: red, green và blue của một màu đơn Một ảnh chỉ số sử dụng ánh xạ trực tiếp giữa giá trị của pixel ảnh tới giá trị trong bản đồ màu Màu sắc của mỗi pixel ảnh được tính toán bằng cách sử dụng giá trị tương ứng của X ánh xạ tới một giá trị chỉ số của map Giá trị 1 chỉ ra hàng đầu tiên, giá trị 2 chỉ ra hàng thứ hai trong bản đồ màu…
Một bản đồ màu thường được chứa cùng với ảnh chỉ số và được tự động nạp cùng với ảnh khi sử dụng hàm imread để đọc ảnh Tuy nhiên, ta không bị giới hạn khi sử dụng bản đồ màu mặc định, ta có thể sử dụng bất kì bản đồ màu nào
b) Ảnh cường độ (Intensity Images)
Một ảnh cường độ là một ma trận dữ liệu ảnh mà giá trị của nó đại diện cho cường độ trong một số vùng nào đó của ảnh Matlab chứa một ảnh cường độ như một ma trận đơn, với mỗi phần tử của ma trận tương ứng với một pixel của ảnh Ma trận có thể thuộc lớp double, uint8 hay uint16 Trong khi ảnh cường độ hiếm khi
Trang 14được lưu với bản đồ màu, MATLAB sử dụng bản đồ màu để hiển thị chúng
Những phần tử trong ma trận cường độ đại diện cho các cường độ khác nhau hoặc độ xám Những điểm có cường độ bằng 0 thường được đại diện bằng màu đen
và cường độ 1,255 hoặc 65535 thường đại diện cho cường độ cao nhất hay màu trắng
c) Ảnh nhị phân (Binary Images)
Trong một ảnh nhị phân, mỗi pixel chỉ có thể chứa một trong hai giá trị nhị phân 0 hoặc 1 Hai giá trị này tương ứng với bật hoặc tắt (on hoặc off) Một ảnh nhị phân được lưu trữ như một mảng logic của 0 và 1
d) Ảnh RGB (RGB Images)
Một ảnh RGB - thường được gọi là true-color, được lưu trữ trong MATLAB dưới dạng một mảng dữ liệu có kích thước 3 chiều mxnx3 định nghĩa các giá trị màu red, green và blue cho mỗi pixel riêng biệt Ảnh RGB không sử dụng palette Màu của mỗi pixel được quyết định bởi sự kết hợp giữa các giá trị R, G, B (Red, Green, Blue) được lưu trữ trong một mặt phẳng màu tại vị trí của pixel Định dạng file đồ hoạ lưu trữ ảnh RGB giống như một ảnh 24 bits trong đó R, G, B chiếm tương ứng 8 bit một Điều này cho phép nhận được 16 triệu màu khác nhau
Một mảng RGB có thể thuộc lớp double, uint8 hoặc uint16 Trong một mảng RGB thuộc lớp double, mỗi thành phần màu có giá trị giữa 0 và 1 Một pixel mà thành phần màu của nó là (0, 0, 0) được hiển thị với màu đen và một pixel mà thành phần màu là (1, 1, 1) được hiển thị với màu trắng Ba thành phần màu của mỗi pixel được lưu trữ cùng với chiều thứ 3 của mảng dữ liệu Chẳng hạn, giá trị màu R,
G, B của pixel (10, 5) được lưu trữ trong RGB(10, 5, 1), RGB(10, 5, 2) và RGB(10,
5, 3) tương ứng
Để tính toán màu sắc của pixel tại hàng 2 và cột 3 chẳng hạn, ta nhìn vào bộ
ba giá trị được lưu trữ trong (2, 3, 1:3) Giả sử (2, 3, 1) chứa giá trị 0.5176; (2, 3, 2) chứa giá trị 0.1608 và (2, 3, 3) chứa giá trị 0.0627 thì màu sắc của pixel tại (2, 3)
sẽ là (0.5176, 0.1608, 0.0627)
1.4 Toolbox bắt ảnh và xử lý ảnh
1.4.1 Nhiệm vụ của Toolbo
Image Acquisition Toolbox và Image processing là tật hợp các hàm có nhiệm
Trang 15vụ thu thập và xử lý hình ảnh số từ các thiết bị thu hình Cụ thể là:
Thu nhập hình ảnh từ các thiết bị thu hình khác nhau, từ loại chuyên dùng đến loại r tiền như Webcam ( giao tiếp qua cổng USB)
Trình chiếu (preview) luồng dữ liệu video từ thiết bị thu hình
Trích hình ảnh từ luồng dữ liệu video
Thiết lập các callback cho các sự kiện khác nhau
Chuyển dữ liệu hình ảnh vào không gian workpace của MATLAB để xử lý ảnh tiếp theo
1.4.2 Thu nhập cơ bản với Toolbo
Việc thu nhập cơ bản với Toolbox được thực hiện qua các bước sau:
- ước :
Gắn thiết bị thu hình vào máy
Cài đặt driver (trình điều khiển) cho thiết bị, (được cho bởi nhà sản xuất)
Xem thử hình ảnh video trên máy tính thông qua phần mềm của nhà sản xuất
Khởi động MATLAB
- ước
Ta cần chỉ định cho MATLAB biết phần cứng nào dùng để lấy dữ liệu ( vì có thể có nhiều camera kết nối với PC)
Gõ lệnh imaqhwinfo để biết tên các loại thiết bị có thể dùng
Chỉ định thiết bị: Tuỳ vào loại thiết bị (adaptor name), mỗi thiết bị cùng loại gắn vào PC được gắn đánh số ID, thiết bị thứ nhất có deviceID=1, thiết bị thứ 2 có deviceID=2
Để liệt kê xem loại winvideo có bao nhiêu thiết bị gắn vào máy tính, ta cũng dùng lệnh imaqhwinfor với đối số là winvideo:
Trang 16- ước : Tạo đối tượng đại diện vào máy để làm đề tài này
Để tạo luồng dữ liệu video, dùng lệnh videoinput
>> vid = videoinput('winvideo',1)
Summary of Video Input Object Using 'USB PC Camera (SN9C120)'
Acquisition Source(s): input1 is available
Acquisition Parameters: 'input1' is the current selected source
10 frames per trigger using the selected source
'RGB24_320x240' video data to be logged upon START Grabbing first of every 1 frame(s)
Log data to 'memory' on trigger
Trigger Parameters: 1 'immediate' trigger(s) on START
Status: Waiting for START
0 frames acquired since starting
0 frames available for GETDATA
- ước : Hiện thị luồng video trên màng hình để xem thử
Để xem trước luồng dữ liệu video, dùng lệnh preview
>> preview(vid)
Màn hình lúc này hiện lên cửa sổ video của đối tượng vid
Nếu muốn kết thúc xem, dùng lệnh stoppreview Hoặc để đóng cửa sổ preview, dùng lệnh closepreview(vid)
Trang 17- ước Lấy một khung hình ảnh và lưu thành file đồ hoạ
Để lấy 1 ảnh vào xử lý ta sử dụng lệnh getsnapshot
Để lưu ảnh thành file đồ hoạ ta dùng lệnh imwrite
1.4.3 Toolbo ử lý ảnh ( Image Processing Toolbox)
a) Loại file dữ liệu của ảnh
- BMP ( Microsoft Windows Bitmap)
- HDF (Hierarchical Data Format)
- ICO ( Windows Icon Resources)
- JPG, JPEG( Joint Photographic Experts Group)
- PCX (Paintbrush)
- PNG(Porable Network Graphics)
- TIFF ( Tagged Image File Format)
- XWD ( X Window Dump)
b) Các hàm đọc và lưu ảnh
- Axis: vẽ trục
- Image, imshow: hiển thị ảnh
- Imagese: sắp xếp dữ liệu và hiển thị như ảnh
- Imread: đọc ảnh từ file đồ họa
- Immovie: tạo phim từ loạt nhiều khuôn hình
- Imwrite: cất ảnh vào file đồ họa
- Imfinfo: lấy thông tin ảnh từ file
- Ind2rgb: đổi ảnh có chỉ số sang ảnh RGB
MATLAB coi ảnh như một ma trận hai chiều, mỗi phần tử là một phần tử hình
Trang 18pixel, do đó ta có thể xử lý hình như đối với ma trận, các phần tử ma trận có thể là double (64 bit), uint 16 (16 bit), uint 8 (8 bit) Ảnh index được biễu diễn bởi hai ma trận, một ma trận dữ liệu ảnh X và một ma trận màu (còn gọi là bản đồ màu) Ma trận có thể là kiểu uint8, uint16, double Ma trận màu là một ma trận kích thước m x
3 gồm các thành phần thuộc kiểu double có giá trị trong khoảng [0 1] Mỗi hàng của
ma trận xác định thành phần red, green, blue của một màu trong tổng m màu được
sử dụng trong ảnh Gía trị của một phần tử trong ma trận dữ liệu ảnh cho biết màu của điểm ảnh đó nằm ở hàng nào trong ma trận
Hình 1.2 Biểu diễn ảnh index
c) Các hàm xử lý ảnh c bản trong Matlab
Đôi khi ảnh bị mờ, không nét, bị nhiễu cần phải xử lý hoặc cần phải tách một chi tiết nào đó ra khỏi ảnh Sau đây là một số hàm xử lý ảnh cho phép thực hiện các công việc này một cách dễ dàng Chú ý là các hàm này chỉ thực hiện độc lập, còn muốn thực hiện thời gian thực cần phải dùng các ngôn ngữ lập trình như VB, Delphi, ta cũng có thể biến đổi các hàm xử lý ảnh m ra hàm c để giảm bớt thời gian lập trình, còn có một cách để xử lý thời gian thực là lập trình xử lý trong MATLAB, sau đó dùng Toolbox Com Builder biến chương trình thành COM Object rồi ghép vào các ngôn ngữ lập trình
d) Đổi màu và loại ảnh
- rgb2gray: đổi ảnh màu RGB ra ảnh cường độ xám
- gray2ind: đổi ảnh trắng đen (gray scale) thành ảnh indexed
- im2bw: đổi sang ảnh nhị phân
e) Xử lý hình học
- Imcrop(A), imcrop(A.rec): xén ảnh A theo hình chữ nhật định bởi con chuột
Trang 19hay bởi thông số kèm theo trong hàm
- Imresize (A, m, mothod): thay đổi kích thước ảnh A theo tỉ lệ m và theo phương pháp nội suy method
- Imrotate (A, angle, method): quay ảnh A một góc angle và dùng phương pháp nội suy method
- Histeq: cân bằng histogram ảnh cường độ để tăng độ tương phản
- Edge: tách biên ảnh dùng các thuật toán Sobel, Prewitt, Canny, Laplace,…
- Qtdecomp, qtgeblk, qtsetblk: các lệnh dùng trong phân vùng ảnh quadtree
h) Biến đổi ảnh
- Fft2: biến đổi Fourier hai chiều nhanh
- Ifft2: biến đổi ngược hai chiều nhanh
- Dct2: biến đổi cosin rời rạc hai chiều
- Idct2: biến đổi ngược cosin rời rạc
Trang 20- Trừ : X= A – B
- Nhân : X= A * B
- Chia : X = A/B lúc đó X*B = A
: X = A\B lúc đó A*X = B : X=A./B chia các phần tử tương ứng với nhau
- Luỹ thừa : X = A^2
l) Điều kiện switch
- Cú pháp của switch như sau :
m) Điều kiện while
- Vòng lặp while dùng khi không biết trước số lần lặp Cú pháp của nó như sau:
while <biểu thức>
<phát biểu>
1.5 Tạo giao diện người dùng nhờ công cụ GUIDE
Giao diện người dùng (graphical user interface GUI) cho phép thực hiện các
Trang 21lệnh trong Matlab thông qua menu, nút nhấn, tương tự như các ngôn ngữ Visual Basic Lập trình GUI được thực hiện nhờ công cụ GUIDE (GUI Development Environnment) hoặc bằng cách soạn một file m
1.5.1 Khởi động giao diện GUIDE
- Mở phần mềm MATLAB, chọn File/GUI/Open Existing GUI/Open
Hình 1.3 Cửa số GUIDE
1.5.2 Cửa số GUIDE
Hình 1.4 Cửa số biên soạn GUIDE
Giao diện rất giống với các chương trình lập trình giao diện như Visual Basic, Visual C++, … Các bạn di chuyển chuột qua các biểu tượng ở bên trái sẽ
Trang 22thấy tên của các thanh công cụ điều khiển Xin nói qua một vài công cụ điều khiển hay dùng:
- Push Button: Là một nút nhấn, giống như nút Command Button trong VB
Là các nút bấm như nút OK, Cancel mà ta vẫn bấm
- Toggle button: Là một nút bật giống như push button nhưng có hiện thị trạng thái thay đổi mỗi khi nhấn nút
- Radio Button: Nút nhỏ hình tròn để chọn lựa
- Check Box: Là hộp kiểm tra cho phép đưa vào các chọn lựa khi bấm chuột vào nó
- Edit Text: Là hộp văn bản đưa chuỗi ký tự vào đó
- Static Text: Dòng văn bản dùn để đặt nhãn, tiêu đề, hướng dẫn
- Pop-up Menu: menu sổ xuống trình bày một bảng các chọn lựa khi nhấp chuột vào
- List Box: Gồm một bảng các mục có thể lựa chọn
- Axes: Vẽ hệ trục
- Slider: Thanh trượt dùng để đưa giá trị vào trong một vùng giới hạn
- Run (Ctr + T): nhấn vào để chạy chương trình mà ta đã viết Có lỗi là hiện ra ngày
- Align Object: dùng để làm cho các điều khiển sắp xếp gọn đẹp theo ý mình như cùng căn lề bên trái, …
- Grid and Rulers: dùng để cấu hình về lưới trong giao diện vì nó sẽ coi giao diện như một ma trận các ô vuông nhỏ, ta sẽ thay đổi giá trị này để cho các điều khiển có thể thả ở đâu tùy ý cho đẹp
- Menu Editor: trình này để tạo menu cho điều khiển
- Tab Order Editor: sắp xếp Tab order là thứ tự khi ta nhấn phím Tab
- Gui Options: lựa chọn cho giao diện GUI
- Các bạn save dưới tên: “ TÊN”, khi đó đồng thời xuất hiện cửa sổ Editor và đang mở file TÊN.m của bạn Trong thư mục bạn save sẽ có 2 file là:
- TUT01.fig: file này chứa giao diện của chương trình
- TUT01.m: file chứa các mã thực thi cho chương trình như các hàm khởi tạo, các hàm callback
Trang 231.5.3 Thay đổi thuộc tính điều khiển
Nhấp chuột vào component trong vùng layout để soạn tính chất của component
Ví dụ: Nhấn chuột vào Edit text, sẽ hiện ra cửa sổ Property Inspector
- Tag: dùng để đặt tên cho component
- BackgroundColor: màu nền của component
- ForegroundColor: màu chữ trên component
- FontName: kiểu chữ
- String: văn bản hiển thị trên component
- Enable: cho phép component hoạt động hay không
- Visible: hiển thị component hay không
Hình 1.5 Cửa sổ thuộc tính
- Quan trọng nhất đối với các component là callback, tức là hàm con mà file
áp dụng M sẽ gọi khi ta tác động vào component Để soạn thảo callback ở cửa số layout nhấp chuột phải vào component muốn soạn thảo sau đó chọn View callbacks -> callback ta sẽ vào màn hình soạn thảo callback cho component đó Sau khi soạn thảo xong ta lưu, lập tức Matlab sẽ lưu thành hai file có cùng tên nhưng khác nhau
về phần mở rộng:
Trang 24- File có phần mở rộng.fig chứa nội dung của giao diện
- File có phần mở rộng.m chứa những đoạn mã liên quan đến giao diện
Kết luận chương 1
Ở chương này em đã trình bày được cơ bản các kiến thức sử dụng MATLAB
và giao diện GUIDE của nó
Khái quát được khái niệm, các ví dụ cơ bản về ảnh số và cách thực hiện ảnh số trên MATLAB thông qua các hàm
Trang 25Chương 2 PHƯƠNG PHÁP XỬ LÝ VÀ NHẬN DẠNG KHUÔN MẶT
Hơn một thập kỷ qua có rất nhiều công trình nghiên cứu về bài toán xác định khuôn mặt người từ ảnh đen trắng, xám đến ảnh màu như ngày hôm nay Các nghiên cứu đi từ bài toán đơn giản, mỗi ảnh chỉ có một khuôn mặt người nhìn thẳng vào thiết bị thu hình và đầu ở tư thế thẳng đứng trong ảnh đen trắng Cho đến ngày hôm nay bài toán mở rộng cho ảnh màu, có nhiều khuôn mặt trong cùng một ảnh,
có nhiều tư thế thay đổi trong ảnh 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 (trong phòng thí nghiệm) cho đến môi trường xung quanh rất phức tạp (như trong tự nhiên) nhằm đáp ứng nhu cầu thật sự và rất nhiều của con người
2.1 Định nghĩa bài toán á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 khuôn 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, cơ thể,…
2.2 Ứng dụng của phương pháp ác định khuôn mặt
Có rất nhiều ứng dụng đã và đang được nghiên cứu, và được ứng dụng trong thực tế:
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ận dạng người A có phải là tội phạm truy nã hay không? Giúp cơ quan
an ninh quản lý tốt con người Công việc nhận dạng có thể ở trong môi trường bình thường cũng như trong bóng tối (sử dụng camera hồng ngoại)
Hệ thống quan sát, theo dõi và bảo vệ Các hệ thống camera sẽ xác định đâu là con người và theo dõi con người đó xem họ có vi phạm gì không, ví dụ xâm phạm khu vực không được vào,…
Lưu trữ (rút tiền ATM, để biết ai rút tiền vào thời điểm đó), hiện nay có tình trạng những người bị người khác lấy mất th ATM hay mất mã số PIN và những người ăn cắp này đi rút tiền, hoặc những người chủ th đi rút tiền nhưng lại
Trang 26báo cho ngân hàng là mất th và mất tiền Các ngân hàng có nhu cầu khi có giao dịch tiền sẽ kiểm tra hay lưu trữ khuôn mặt người rút tiền để sau đó đối chứng và xử
lý
Th căn cước, chứng minh nhân dân (Face Identification)
Điều khiển vào ra: văn phòng, công ty, trụ sở, máy tính, Palm,… Kết hợp thêm vân tay và mống mắt Cho phép nhân viên được ra vào nơi cần thiết, hay mỗi người sẽ đăng nhập máy tính cá nhân của mình mà không cần nhớ tên đăng nhập cũng như mật khẩu mà chỉ cần xác định thông qua khuôn mặt
An ninh sân bay, xuất nhập cảnh (hiện nay cơ quan xuất nhập cảnh Mỹ đã
áp dụng) Dùng để xác thực người xuất nhập cảnh và kiểm tra có phải là nhân vật khủng bố hay không
Trong tương lai sẽ phát triển các loại th thông minh có tích hợp sẵn đặc trưng của người dùng trên đó, khi bất cứ người dùng khác dùng để truy cập hay xử
lý tại các hệ thống sẽ được yêu cầu kiểm tra các đặc trưng khuôn mặt so với th để biết nay có phải là chủ th hay không
Tìm kiếm và tổ chức dữ liệu liên quan đến con người thông qua khuôn mặt người trên nhiều hệ cơ sở dữ liệu lưu trữ thật lớn, như internet, các hãng truyền hình,… Ví dụ: tìm các đoạn video có tổng thống Bush phát biểu, tìm các phim có diễn viên Lý Liên Kiệt đóng, tìm các trận đá banh có Ronaldo đá,…
Hiện nay có nhiều hướng tiếp cận để xác định một ảnh có phải là ảnh khỏa thân hay không? Khuôn mặt người được xem như một yếu tố để xác định cho một hướng tiếp cận mà được dùng gần đây
Ứng dụng trong video phone
Phân loại trong lưu trữ hình ảnh trong điện thoại di động Thông qua bài toán xác định khuôn mặt người và trích đặc trưng, rồi dựa vào đặc trưng này để sắp xếp lưu trữ, giúp người sử dụng dễ dàng truy tìm khi cần thiết
Kiểm tra trạng thái người lái xe có ngủ gật, mất tập trung hay không, và
hỗ trợ thông báo khi cần thiết
Phân tích cảm xúc trên khuôn mặt
Trong lãnh vực thiết kế điều khiển robot
Trang 27 Hãng máy chụp hình Canon đã ứng dụng bài toán xác định khuôn mặt người vào máy chụp hình thế hệ mới để cho kết quả hình ảnh đẹp hơn, nhất là khuôn mặt người
2.3 Phương pháp ác định khuôn mặt
Có nhiều nghiên cứu tìm phương pháp xác định khuôn mặt người, từ ảnh xám đến ngày nay là ảnh màu Dựa vào tính chất của các phương pháp xác định khuôn mặt, 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: Mã hóa các hiểu biết của con người về các loại khuôn mặt người thành các 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 các thuật toán
đi tìm các đặc trưng mô tả cấu trúc khuôn mặt người mà các đặc trưng này sẽ không thay đổi khi tư thế khuôn mặt, vị trí đặt thiết bị thu hình hoặc điều kiện ánh sáng thay đổi
2.3.1 Hướng tiếp cận dựa trên tri thức
Trong hướng tiếp cận này, các luật sẽ phụ thuộc rất lớn vào tri thức của những tác giả nghiên cứu về bài toán xác định khuôn mặt người Đây là hướng tiếp cận dạng top-down Dễ dàng xây dựng các luật cơ bản để mô tả các đặc trưng của khuôn mặt và các quan hệ tương ứng Ví dụ, một khuôn mặt thường có hai mắt đối xứng nhau qua trục thẳng đứng ở giữa khuôn mặt và có một mũi, một miệng Các quan hệ của các đặc trưng có thể được mô tả như quan hệ về khoảng cách và vị trí Thông thường các tác giả sẽ trích đặc trưng của khuôn mặt trước tiên để có được các ứng viên, sau đó các ứng viên này sẽ được xác định thông qua các luật để biết ứng viên nào là khuôn mặt và ứng viên nào không phải khuôn mặt Thường áp dụng quá trình xác định để giảm số lượng xác định sai
Một vấn đề khá phức tạp khi dùng hướng tiếp cận này là làm sao chuyển từ tri thức con người sang các luật một các hiệu quả Nếu các luật này quá chi tiết (chặt chẽ) thì khi xác định có thể xác định thiếu các khuôn mặt có trong ảnh, vì những khuôn mặt này không thể thỏa mãn tất cả các luật đưa ra Nhưng các luật tổng quát quá thì có thể chúng ta sẽ xác định lầm một vùng nào đó không phải là khuôn mặt
mà lại xác định là khuôn mặt Và cũng khó khăn mở rộng yêu cầu từ bài toán để xác
Trang 28định các khuôn mặt có nhiều tư thế khác nhau
Có hai tác giả Yang và Huang đã dùng một phương thức theo hướng tiếp cận này để xác định các khuôn mặt Hệ thống của hai tác giả này bao gồm ba mức luật
Ở mức cao nhất, 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 Ở mức kế tiếp, hai ông dùng một tập luật để
mô tả tổng quát hình dáng khuôn mặt Còn ở mức cuối cùng lại dùng một tập luật khác để xem xét ở mức chi tiết
+ Phương pháp xác định khuôn mặt trong ảnh xám Dùng bộ lọc để làm nổi các biên, các phép toán hình thái học (morphology) được dùng để làm nổi bật các vùng có cường độ cao và hình dáng chắc chắn (như mắt) Thông qua histogram để tìm các đỉnh nổi bật để xác định các ngưỡng chuyển ảnh xám thành hai ảnh nhị phân Các thành phần dính nhau đều xuất hiện trong hai ảnh nhị phân thì được xem
là vùng của ứng viên khuôn mặt rồi phân loại xem có phải là khuôn mặt không Phương pháp được kiểm tra trên các ảnh chỉ có đầu và vai của người Tuy nhiên còn vấn đề, làm sao sử dụng các phép toán morphology và làm sao xác định khuôn mặt trên các vùng ứng viên
+ Phương pháp xác định khuôn mặt dựa mô hình xác suất để xác định khuôn mặt ở trong ảnh có hình nền phức tạp trên cơ sở một bộ xác định đặc trưng cục bộ
và so khớp đồ thị ngẫu nhiên Ý chính là xem bài toán xác định khuôn mặt như là bài toán tìm kiếm với mục tiêu là tìm thứ tự các đặc trưng chắc chắn của khuôn mặt
để tạo thành giống nhất một mẫu khuôn mặt Dùng năm đặc trưng (hai mắt, hai lỗ mũi, phần nối giữa mũi và miệng) để mô tả một khuôn mặt Luôn tính quan hệ khoảng cách với các đặc trưng cặp (như mắt trái, mắt phải), dùng phân bố Gauss
để mô hình hóa Một mẫu khuôn mặt được đưa ra thông qua trung bình tương ứng
Trang 29cho một tập đa hướng, đa tỷ lệ của bộ lọc đạo hàm Gauss Từ một ảnh, các đặc trưng ứng viên được xác định bằng cách so khớp từng điểm ảnh khi lọc tương ứng với vector mẫu (tương tự mối tương quan), chọn hai ứng viên đặc trưng đứng đầu
để tìm kiếm cho các đặc trưng khác của khuôn mặt Giống như xây dựng một đồ thị quan hệ mỗi node của đồ thị tương ứng như các đặc trưng của một khuôn mặt, đưa xác suất vào để xác định Tỷ lệ xác định chính xác là 86%
+ Phương pháp xác định khuôn mặt dùng lý thuyết xác suất thống kê về hình dáng Dùng hàm mật độ xác suất (Probility Density Function- PDF) qua N điểm đặc trưng, tương ứng (xi, yi) là đặc trưng thứ i với giả sử dựa vào phân bố Gauss có 2N- chiều Các tác giả áp dụng phương thức cực đại khả năng (Maximum Likelihood- ML) để xác định vị trí khuôn mặt Một thuận lợi của phương pháp này là các khuôn mặt bị che khuất vẫn có thể xác định được Nhưng phương pháp không xác định được đa khuôn mặt trong ảnh
+ Phương pháp xác định khuôn mặt dựa vào đặc trưng, dùng số lượng lớn các dấu hiệu từ ảnh và cả dấu hiệu về ngữ cảnh Đầu tiên dùng bộ lọc đạo hàm Gauss thứ hai, xác định các điểm mấu chốt ở tại cực đại địa phương trong bộ lọc, rồi chỉ ra nơi có thể là đặc trưng Giai đoạn hai, kiểm tra các cạnh xung quanh điểm mấu chốt
và nhóm chúng lại thành các vùng Tiêu chuẩn để nhóm các cạnh là gần và tương tự hướng và cường độ Đo lường các đặc tính vùng như: chiều dài cạnh, cường độ cạnh, và biến thiên cường độ được lưu trong một vector đặc trưng Từ dữ liệu đặc trưng khuôn mặt đã được huấn luyện, sẽ tính được giá trị trung bình và ma trận hiệp phương sai của mỗi đặc trưng khuôn mặt Một vùng là ứng viên khuôn mặt khi khoảng cách Mahalanobis giữa các vector đặc trưng đều dưới một ngưỡng Rồi thông qua mạng Bayes để xác định ứng viên có phải là khuôn mặt không Tỷ lệ chính xác là 85%, tuy nhiên mức độ sai là 28%, và chỉ hiệu quả với hình khuôn mặt
có kích thước 60x60 điểm ảnh Phương pháp này được dùng thêm với mô hình đường viền linh hoạt
+ Phương pháp xác định khuôn mặt dựa trên tích đặc trưng võng mạc và cử động theo dao động nhỏ của mắt Thuật toán hoạt động trên bản đồ hay vùng của các mấu chốt, mô hình hóa lưới võng mạc Đầu tiên tính toán ước lượng thô vùng khuôn mặt trên cơ sở bộ lọc Giai đoạn thứ hai tinh chế trên độ phân giải mịn
Trang 30hơn Tỷ lệ sai là 4.69%
+ Phương pháp xác định khuôn mặt dựa trên cơ sở hình thái học để trích các đoạn giống mắt (eye-analogue) để xác định khuôn mặt người Phương pháp này cho rằng mắt và lông mày là đặc trưng nổi bật nhất và ổn định nhất của khuôn mặt con người, và nó rất hữu dụng để xác định khuôn mặt người Các đoạn giống mắt như
là các cạnh trên đường viền của mắt Đầu tiên, các phép toán morphology như đóng, cắt bỏ sai khác, và phân ngưỡng để trích các điểm ảnh có giá trị cường độ thay đổi đáng kể Các điểm ảnh này sẽ trở thành các điểm ảnh giống mắt Sau đó một tiến trình gán nhãn để sinh các đoạn giống mắt Các đoạn này được dùng để chỉ dẫn tìm kiếm các vùng tiềm năng có thể là khuôn mặt qua kết hợp các đặc tính hình học của mắt, mũi, lông mày và miệng Các vùng này sẽ được một mạng neural xem xét có phải là khuôn mặt không Tỷ lệ chính xác là 94%
+ Phương pháp xác định khuôn mặt dựa trên hình dáng và áp dụng cho các khuôn mặt chụp thẳng Có hai giai đoạn để xác định khuôn mặt người: tập trung và phân loại chi tiết Làm có thứ tự các mảnh cạnh, các mảnh này được trích từ bộ xác định cạnh đơn giản thông qua sự khác biệt cường độ là quá trình tập trung Khi có các ứng viên từ quá trình trên, dùng thuật toán CART để xây dựng một cây phân loại từ các ảnh để huấn luyện, để xem xét ứng viên nào là khuôn mặt người
+ Phương pháp xác định khuôn mặt dùng cấu trúc hình học của khuôn mặt người để tìm ứng viên khuôn mặt trong ảnh xám và hình nền không phức tạp Mỗi ảnh chỉ có một khuôn mặt người, nhưng tư thế điều kiện ánh sáng, không cố định
Tỷ lệ chính xác khoảng 94.25% và thời gian khá nhanh
+ Phương pháp xác định khuôn mặt dùng sắc màu của da người để tìm ứng viên, bằng cách dùng mô hình màu da người trên từng phần nhỏ rồi xử lý phân đoạn trên đó Sau khi có ứng viên khuôn mặt, dùng một số đặc tính về hình dáng để xác định khuôn mặt người Tỷ lệ chính xác là 85%
a) Kết cấu
Khuôn mặt con người có những kết cấu riêng biệt mà có thể dùng để phân loại so với các đối tượng khác Có một số nhà nghiên cứu cho rằng hình dạng của khuôn mặt dùng làm kết cấu phân loại, gọi là kết cấu giống khuôn mặt (face-like texture) Tính kết cấu qua các đặc trưng thống kê thứ tự thứ hai (SGLD) trên