GIỚI THIỆU

Một phần của tài liệu nhận dạng ảnh mặt người sử dụng mạng nơron nhân tạo và giải thuật di truyền (Trang 45 - 72)

Mặc dù các nghiên cứu nhận dạng ảnh mặt ngƣời dùng mạng NN cho tới hiện nay về cơ bản đã cho các kết quả rất tốt cả về độ chính xác và thời gian, chi phí huấn luyện, các nghiên cứu này vẫn cần đƣợc cải tiến phát triển để tăng tỷ lệ nhận dạng, đặc biệt là giảm khối lƣợng tính toán và giảm thời gian, chi phí huấn luyện. Ngoài giải pháp kết hợp dùng PCA và NN, một giải pháp khác đƣợc một số nhà nghiên cứu gần đây quan tâm là áp dụng giải thuật di truyền GA kết hợp với hệ thống nhận dạng dùng mạng NN đã có để tối ƣu hệ thống. Luận văn này đi theo hƣớng tiếp cận nàỵ Thuật toán và phƣơng pháp kết hợp MLP-PCA-GA trong hệ thống nhận dạng sẽ đƣợc trình bày chi tiết trong các mục tiếp theọ

3.2 HỆ THỐNG NHẬN DẠNG DÙNG MẠNG MLP DÙNG ĐẶC TRƢNG PCA 3.2.1 Trích đặc trƣng PCA

Dựa theo lý thuyết phân tích các thành phần đặc trƣng PCA nhƣ đã trình bày ở chƣơng 2 ta sẽ thực hiện các bƣớc nhƣ sau :

Chọn lấy một tập ảnh ban đầu: gồm 100 ảnh của 20 ngƣời, mỗi ngƣời có 6 ảnh luyện [x1,x2,x3 ,…,xM] (M=100)

Tính ảnh mặt trung bình của tập ảnh trên: X=(x1+x2+x3+…+xM) /M

Trừ mỗi ảnh cho ảnh mặt trung bình: Xi’=Xi-X i=1,2,...M

Ta đƣợc tập ảnh mới là: [x1’,x2’,x3’ ,…,xM’]

Tính các vector đặc trƣng cho tập ảnh mới này ta đƣợc tập có M vector đặc trƣng trực giao là:[Y1,Y2,Y3 ,…,YM]. Các vector này khi xem dƣới dạng ảnh sẽ có dạng mặt ngƣời nên ngƣời ta còn gọi là mặt đặc trƣng (Eigenface). Sắp xếp các

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 44

vector nay theo sự tăng dần của giá trị đặc trƣng, ta có ví dụ về các vector đặc trƣng nhƣ sau :

Hình 3.2: 20 mặt đặc trƣng với giá trị đặc trƣng thấp nhất

Một đặc tính của các vector đặc trƣng đó là những vector có giá trị đặc trƣng cao sẽ mang nhiều thông tin về sự khác biệt của mặt so với mặt trung bình hơn những vector có giá trị đặc trƣng thấp.

Một ảnh mặt đƣợc biến đổi sang không gian vector đặc trƣng sẽ có biểu diễn là sự kết hợp tuyến tính của các vector đặc trƣng đó hay nói cách khác là sẽ có một bộ các số =[1,2, 3,… M] mô tả ảnh mặt đó trong không gian vector đặc trƣng hay mỗi ảnh mặt sẽ coi là một điểm trong không gian M chiềụ

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 45

Nếu ta sử dụng tất cả các vector đặc trƣng để khôi phục lại ảnh ban đầu thì ta sẽ khôi phục đƣợc hoàn toàn tuy nhiên nếu ta chỉ sử dụng một số các vector có giá trị đặc trƣng lớn nhất khôi phục thì ta cũng thu đƣợc ảnh tƣơng đói giống với ảnh ban đầụ

Nhận xét này rất quan trọng, nó cho phép ta giảm số vector đặc trƣng cần thiết để khôi phục ảnh ban đầu hay ta có thể coi mỗi ảnh mặt là một điểm trong không gian có số chiều M’ nhỏ hơn M và do đó công việc tính toán để phân loại mặt sau này sẽ đƣợc cải thiện đáng kể.

Theo thử nghiệm trong luận văn này ta có thể chọn M’=40(lƣu ý M=120) là đã có kết quả tƣơng đối tốt. Sau khi đã tính đƣợc bộ trọng số =[1,2, 3,… M] là bộ trọng số mô tả mặt, ta tiến hành phân loại, nhận dạng ảnh mặt.

3.2.2 Thiết kế mạng MLP

Mạng neural là một cấu trúc học để nhận biết nên mạng tiếp nhận dữ liệu về khuôn mặt của một ngƣời càng đầy đủ càng tốt. Số ngõ vào của mạng là các bộ trọng số mô tả mặt. Mỗi neural ngõ ra ứng với một ngƣời đƣợc nhận dạng.

Trong quá trình huấn luyện nếu đƣa ảnh của ngƣời ứng với neural biểu diễn cho ngƣời đó vào; giá trị của neural đƣợc gán bằng 1, những neural khác đƣợc gán bằng 0.

Khi mạng đƣợc dùng để nhận dạng, khuôn mặt cần nhận dạng sẽ đƣợc đƣa vào mạng neural, ngõ ra có giá trị bằng 1, thì khuôn mặt đó sẽ tƣơng ứng của ngƣời đó.

Mạng nơron sử dụng ở đây là mạng MLP lan truyền ngƣợc. Mạng gồm 3 lớp trong đó: lớp nhập có tới 100 nút, lớp ẩn có 10 nút, lớp ra có 1 nút có giá trị từ 0.0- >1.0 dựa vào đó quyết định xem mặt thuộc phân lớp nàọ

Ta sẽ thiết kế mỗi một mạng nơron sẽ nhận dạng cho một ngƣời, thuật toán nhận dạng của ta là cho ảnh nhận dạng qua tất cả các mạng rồi chọn ra mạng có đầu ra lớn nhất, nếu giá trị đầu ra này vƣợt quá một ngƣỡng thì coi là nhận dạng đƣợc, nếu không thì sẽ coi là nhạn dạng đƣợc, nếu không thì sẽ coi là không nhận dạng đƣợc.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 46

Hình 3.3. Mạng MLP sử dụng để nhận dạng mặt 3.2.3. Huấn luyện mạng MLP

Đối với mạng MLP nhận dạng khuôn mặt các neural lớp ẩn đóng vai trò tính ra các giá trị đặc trƣng đại diện cho khuôn mặt để đƣa đến các lớp phía saụ Mạng đƣợc huấn lƣyện bằng ảnh trong tập train image lấy từ cơ sở dữ liệụ

Sau khi đã tạo xong mạng nơron, việc rất quan trọng là phải huấn luyện mạng để mạng có thể nhận dạng đƣợc. Ta sẽ chuẩn bị một tập các ảnh mẫu cho mỗi ngƣờị Cho các ảnh mẫu này qua tất cả các mạng. có 4 khả năng xảy ra:

1. Ảnh mặt có đầu ra tại chính mạng của đầu đấy là cao hơn so với đầu ra trên các mạng khác. Trƣờng hợp này không phải thực hiện gì.

2. Ảnh mặt có đầu ra cao tại chính mạng của ngƣời đấy và một số mạng khác. Ta sẽ lấy ảnh này làm mãu tiêu cực cho các mạng khác.

3. Ảnh mặt có đầu ra thấp tại chính mạng của ngƣời đấỵ Ta sẽ lấy ảnh này làm mẫu tích cực cho chính mạng đó và mẫu tiêu cực cho các mạng khác.

4. Ảnh mặt có đầu ra thấp tại chính mạng của ngƣời đấy và có đầu ra tại các mạng khác. Ta sẽ lấy ảnh này làm mẫu tiêu cực cho các mạng khác hoặc có thể loại bỏ ảnh mẫu nàỵ

Sau khi đã luyện song ta sẽ lƣu các trọng số của mạng nơron để phục vụ nhận dạng sau nàỵ Khi cần nhận dạng mặt mới, ta đƣa tập ảnh mẫu vào tập mẫu và luyện lại các mạng. Sau khi luyện song ta có thể thực hiện nhận dạng.

Quá trình huấn luyện nhƣ trên thực chất là đào tạo (train) cho mạng có khả nặng nhận biết các đối tƣợng cần nhận dạng. Việc làm này cũng tƣơng tự việc đƣa ra M ảnh của một ngƣời rồi cho mạng học để ghi nhớ ngƣời này vào CSDL sau đó lấy ảnh khác để kiểm tra khả năng học của mạng.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 47

3.3 TỐI ƢU VIỆC HUẤN LUYỆN MẠNG MLP BẰNG GA

Mặc dù mạng NN đƣợc cho là công cụ rất tốt với các hệ thống nhận dạng ảnh nói chung và nhận dạng ảnh mặt ngƣời nói riêng, chi phí huấn luyện đối dùng mạng NN đƣợc xem là rất tốn kém.

Cho dù đặc trƣng PCA đã giảm số chiều của vector đặc trƣng thì chi phí tính toán đối với NN vẫn là lớn. Vấn đề tối ƣu mạng NN do đó là một vấn đề quan trọng.

Trong mục cơ sở lý thuyết về GA đã trình bày, một trong các ứng dụng quan trọng của GA là đƣợc dùng để tối ƣu hóa mạng NN. Vì vậy, gần đây một số tác giả đã đề xuất giải pháp kết hợp NN và GA để tối ƣu thao tác huấn luyện cho hệ thống. Luận văn này đi theo cách tiếp cận nàỵ Ý tuởng cơ bản của việc sử dụng GA ở đây là tìm kiếm trọng số tối ƣu để đƣa vào mạng MLP, ở đây gọi là thuật toán MLP-GẠ.

Thuật toán huấn luyện mẫu sử dụng trong luận văn này đƣợc tham khảo từ thuật toán đề xuất trong [28]. Trong đó, GA đƣợc sử dụng kết hợp để tối ƣu quá trình huấn luyện bằng cách tìm trọng số tối ƣu cho mạng MLP.

Thuật toán đƣợc mô tả nhƣ trong hình 3.1 bao gồm 02 giai đoạn học. Giai đoạn học thứ nhất sử dụng thuật toán GA với bƣớc truyền thẳng để tăng tốc cả quá trình học. Thuật toán GA thực hiện tìm kiếm toàn cục và tìm kiếm điểm khởi tạo gần tối ƣu (vector trọng số) cho giai đoạn học thứ haị Ở đó, mỗi cá thể đƣợc sử dụng để mã hóa các trọng số của mạng nơ ron.

Hàm gán thang điểm ƣớc lƣợng (hàm mục tiêu fitness) cho GA đƣợc định nghĩa là tổng bình phƣơng lỗi (TSSE – Total Sum Squared Error) của mạng nơ ron tƣơng ứng.

Do vậy, nó trở thành một bài toán tối ƣu không giám sát để tìm ra một tập các tham số quyết định bằng cách tối thiểu hóa hàm mục tiêụ

Giá trị tốt nhất của hàm mục tiêu fitness cho GA trong một quần thể đƣợc định nghĩa là giá trị nhỏ nhất của mục tiêu trong quần thể hiện tạị

Thuật toán GA-MLP bao gồm 02 giai đoạn học đƣợc mô tả bằng mã giả nhƣ sau:

/* Giai đoạn học thứ nhất dùng thuật toán GAs */

Khởi tạo ngẫu nhiên các cá thể trong thế hệ hiện tại, khởi tạo các tham số, đặt cá thể đầu tiên là cá thể tốt nhất best_chromosome

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 48

sub_total_fitness = 0;

sub_best_chromosome = null;

b – For j = 1 to length_of_chromosomes, -thực hiện thủ tục truyền thẳng của mạng MLP -tính toán hàm mục tiêu (lỗi hệ thống của mạng NN) Next j

-Tính giá trị total_fitness bằng cách cộng dồn giá trị sub_total_fitness c – Lƣu giá trị best_chromosome bằng sub_best_chromosome

Next i

d – So sánh các giá trị biến sub_best_chromosome và đặt giá trị sub_best_chromosome tốt nhất bằng best_chromosome

e – For i = 0 to population_size/2,

-sub_total_fitness = 0; sub_best_chromosome = null; -For j = 1 to length_of_chromosome,

o Chọn cá thể cha

oÁp dụng phƣơng pháp 2 điểm, đa điểm, đơn điểm chéo cho các cá thể cha -For k = 1 to length_of_chromosome,

o thực hiện thủ tục lan truyền thẳng của mạng MLP cho các cá thể cha

o Tính toán hàm mục tiêu cho các cá thể cha Next k

-Tính toán sub_total_fitness bằng cách cộng dồn giá trị hàm mục tiêu của các cá thể

-Lƣu biến best_chromosome bằng giá trị sub_best_chromosome Next j

g – Thay thế hệ cũ bằng thế hệ mới trong khi tiêu chuẩn dừng chƣa thỏa mãn

/* Giai đoạn học thứ hai dùng mạng MLP */

-Đặt best_chromosome làm giá trị khởi tạo của vector trọng số của mạng MLP, khởi tạo cấu trúc mạng MLP.

-Tính đầu ra thực sự của mạng MLP truyền thẳng -Tính lỗi giữa đầu ra mong muốn và đầu ra thực sự

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 49

3.4 CƠ SỞ DỮ LIỆU ĐỂ ĐÁNH GIÁ THỬ NGHIỆM

Để đánh giá, so sánh hiệu quả của các phƣơng pháp MLP dùng đặc trƣng PCA và phƣơng pháp kết hợp với GA, chúng ta cần một cơ sở dữ liệu ảnh để đánh giá thực nghiệm.

Hình 3.4. Thuật toán MLP-GA

Khởi tạo quần thể thế hệ hiện tại

Tính hàm mục tiêu cho mỗi cá thể

Áp dụng toán tử chéo, hoán vị cho các cá thể cha và tạo ra thế hệ mới Thay thế thế hệ mới thành thế hệ hiện tại Khởi tạo trọng số sử dụng cá thể có hàm mục tiêu nhỏ nhất Bƣớc truyền thẳng của mạng MLP dùng hàm hoạt hóa xichma Tính tổng lỗi trung bình phƣơng giữa đầu ra thực sự và mong muốn

Cập nhật trọng số dùng thuật toán lan truyền ngƣợc

Start Dừng bƣớc học thứ nhất Stop End No No Yes Yes Khối GA Khối MLP Khối học thứ nhất (GA) Khối học thứ hai (MLP)

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 50

Hình 3.5 Một số ảnh trong CSDL

Cơ sở dữ liệu ảnh mặt ngƣời đƣợc sử dụng trong luận văn này là cơ sở dữ liệu của Yale (http://cvc.yalẹedu/projects/yalefaces/yalefaces.html), đƣợc công bố, chia sẻ công khai trên Internet để mọi ngƣời dùng chung

Cơ sở dữ liệu này gồm 200 ảnh mặt ngƣờị Các ảnh có kích thƣớc cố định giống nhau và chỉ chứa phần mặt ngƣời nên trong hệ thống nhận dạng ảnh mặt ngƣời có thể bỏ qua thao tác phát hiện mặt ngƣời, đƣa luôn ảnh vào khối nhận dạng.

Trƣớc khi đƣa vào hệ thống, tất cả các ảnh sẽ đƣợc resize về kích cỡ giống nhau 48 x 48 pixels.

3.5 KẾT QUẢ THỬ NGHIỆM VÀ ĐÁNH GIÁ

Trong phần đánh giá hiệu quả của các phƣơng pháp. Để đánh giá về tỷ lệ nhận dạng đúng, luận văn sử dụng tham số đánh giá FR (Failure Rate).

FR = (tổng số ảnh test – tổng số ảnh nhận dạng đúng) / tổng số ảnh test x 100%. Từng phƣơng pháp MLP-PCA và MLP-PCA-GA sẽ đƣợc thực nghiệm và so sánh kết quả.

Riêng để đánh giá hiệu quả tối ƣu cho quá trình huấn luyện của MLP-GA, ngoài tham số tỷ lệ lỗi FR, lỗi hệ thống TSSE thì quan trọng nhất là tham số số bƣớc lặp đến khi hội tụ thuật toán Epoch’s.. Tham số này sẽ ảnh hƣởng đến chi phí tính toán và do đó là thời gian thực thị

Trong đó , TSSE đƣợc tính nhƣ sau:

 2

er

1

2 patt ns outputs

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 51

3.5.1 Môi trƣờng và công cụ để thực nghiệm các phƣơng pháp

Trong luận văn thực nghiệm 2 phƣơng pháp MLP-PCA và MLP-PCA-GA để có cơ sở đánh giá hiệu quả của các phƣơng pháp.

Ngôn ngữ lập trình đƣợc sử dụng trong phần mềm đánh giá thực nghiệm là ngôn ngữ Visual Studiọnet. Để tập trung vào công việc chính của luận văn là đánh giá hiệu quả các phƣơng pháp MLP và phƣơng pháp MLP-PCA-GA, luận văn sử dụng một số thƣ viện có sẵn trên mạng gồm các hàm có sẵn về MLP, PCA, GẠ Thƣ viện MLP đƣợc lấy từ www.codeproject.com, thƣ viện GA đƣợc lấy từ

sourceforgẹnet, còn thƣ viện PCA đƣợc lấy từ crsouzạblogspot.com. Các thƣ viện này có sẵn hầu hết các hàm, thủ tục liên quan đến việc cài đặt các thuật toán MLP, GA, PCẠ Nhiều nghiên cức trên thế giới cũng sử dụng các thƣ viện sẵn có nayfneen các thƣ viện này có thể xem là có độ tin cậy caọ Hệ thống nhận dạng ảnh mặt ngƣời sử dụng 2 phƣơng pháp MLP-PCA và MLP-PCA-GA sau đó đƣợc lập trình, cài đặt và đánh giá kết quả.

3.5.2. Đánh giá hiệu quả tối ƣu quá trình huấn luyện của phƣơng pháp dùng MLP-PCA và MLP-PCA-GA

Sau đây là một số kết quả ứng với các tham số huấn luyện khác nhau:

Test 1. Dùng mạng MLP Số lƣợng ảnh test: 12 Độ chính xác mong muốn: 90% Số nút ẩn: 60 Tốc độ học: 0.6 Momentum: 0.6 Kết quả huấn luyện là

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 52

Test 2. Dùng thuật toán huấn luyện kết hợp MLP- GẠ Mạng MLP gồm 3 lớp với 01 lớp ẩn, Population_size = 12 Mutation_rate = 0.05 Crossover_rate = 0.46 Length of chromosomes = 6600 Số thế hệ = 8 Độ chính xác mong muốn = 90% Kết quả huấn luyện là

Bảng 3.2 Kết qủa đánh giá hàm mục tiêu của MLP-PCA-GA

Bảng 3.3 Kết qủa đánh giá FR và TTSE bảng MLP-PCA-GA

Lỗi hệ thống trong test 1 (dùng thuật toán huấn luyện MLP) là 5.73 × 10−5 sau 366 bƣớc lặp. Trong test 2, sau 8 thế hệ, giai đoạn học thứ nhất (dùng GA) của thuật toán huấn luyện kết hợp MLP-PCA-GA gặp tiêu chuẩn dừng. Giá trị hàm mục tiêu fitness trung bình tốt nhất là 5.6283. Kết quả đầu ra từ giai đoạn học thứ nhất đƣợc dùng làm đầu vào khởi tạo vector trọng số cho giai đoạn học thứ hai (dùng MLP)

Một phần của tài liệu nhận dạng ảnh mặt người sử dụng mạng nơron nhân tạo và giải thuật di truyền (Trang 45 - 72)