Đồ án Xây dựng một hệ thống nhận dạng mặt người online

MỤC LỤC

Danh mục hình vẽ . iii

Lời nói ñầu. iv

Mở ñầu . 1

Chương 1. ðặt vấn ñề . 4

Chương 2. Phân tích hệ thống và các cơ sở lý thuyết . 6

2.1. Tổng quan về ảnh số và xử lý ảnh số . 6

2.1.1. Ảnh số . 6

2.1.2. Xử lý ảnh số . 7

2.2. Thu thập ảnh số . 9

2.3. Nhận dạng mặt người từ ảnh . 9

2.4. Tách mặt người trong ảnh số . 10

2.4.1. Sử dụng ngưỡng màu. 11

2.4.2. Trừ ảnh với nền không ñổi. 12

2.5. Một số phương pháp tiếp cận với nhận dạng mặt người . 12

2.5.1. Nhận dạng dựa trên mối quan hệ giữa các phần tử (Feature Based). 13

2.5.2. Nhận dạng dựa trên xét toàn diện khuôn mặt (Appearance Based). 13

2.6. Nội dung phương pháp PCA . 17

2.7. Sơ ñồ khối và nhiệm vụ từng khối trong hệ thống . 18

2.7.1. Sơ ñồ khối phần cứng . 18

2.7.2. Sơ ñồi khối phần mềm: . 20

Chương 3. Thiết kế chi tiết và triển khai hệ thống. 24

3.1. Thu thập và tách mặt người trong ảnh. 24

3.2. Chuẩn hóa ảnh . 25

3.2.1. Cắt và xoay chuẩn ảnh: . 25

3.3. Trích chọn ñặc tính bằng phương pháp PCA . 29

3.3.1. Quá trình học. 30

3.3.2. Quá trình tạo ñặc tính . 37

3.4. Quá trình nhận dạng . 39

Chương 4. Các kết quả triển khai hệ thống và áp dụng . 41

4.1. Lựa chọn thiết bị và công cụ lập trình . 41

4.1.1. Camera . 41

4.1.2. PC . 41

4.1.3. Công cụ lập trình. 41

- ii -

4.2. Các hàm sử dụng . 41

4.2.1. Khối tách ảnh ñối tượng . 41

4.2.2. Khối tiền xử lý. 42

4.2.3. Khối trích chọn ñặc tính . 42

4.2.4. Khối nhận dạng: . 43

4.3. Giao diện . 44

4.2. Kết quả nhận dạng . 47

4.2.1. Test với bộ dữ liệu có sẵn . 47

4.2.2. Test với bộ dữ liệu ñược lấy từ webcam hệ thống. . 49

Chương 5. Kết luận và hướng phát triển . 52

Tài liệu tham khảo . 55

pdf59 trang | Chia sẻ: netpro | Lượt xem: 2602 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Xây dựng một hệ thống nhận dạng mặt người online, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
n, nhiều nhiễu, khối lượng tính toán sẽ lớn và ñòi hỏi nhiều về cấu hình phần cứng. 2. Phân tích hệ thống và các cơ sở lý thuyết - 12 - 2.4.2. Trừ ảnh với nền không ñổi Nội dung của phương pháp này là so sánh ảnh khi có người với ảnh không có người. Sự chênh lệch mức xám giữa hai ảnh thể hiện sự xuất hiện của ñối tượng. Hai ñiểm ảnh cùng một vị trí trên hai ảnh, nếu hiệu mức xám giữa chúng lớn hơn ngưỡng cho phép, ta chấp nhận mức xám tại ñiểm ñó có sự thay ñổi và xác ñịnh ñược ñối tượng. (a) Ảnh nền (b) Ảnh mới (c) ðối tượng ñược tách Hình 2.6. Phương pháp trừ ảnh với nền không ñổi. Ưu ñiểm của phương pháp: - Phương pháp ñơn giản, thời gian thực hiện ngắn. - Chỉ cần thực hiện với ảnh xám. Nhược ñiểm của phương pháp: - Phạm vi ứng dụng hẹp, chỉ dùng ñược với nền không ñổi. - ðiều kiện ánh sáng không ñược thay ñổi nhiều giữa các lần chụp. Từ phân tích ưu nhược ñiểm của 2 phương pháp trên, với ñiều kiện ñầu vào ñược quy ñịnh là camera ñặt cố ñịnh, ñiều kiện ánh sáng tốt, ñồ án lựa chọn phương pháp trừ ảnh ñể tách ñối tượng cần nhận dạng. Sau khi lựa chọn phương pháp ñể tách mặt người ra khỏi ảnh số, ñồ án sẽ tìm hiểu về một số phương pháp nhận dạng mặt người hiện nay và ưu nhược ñiểm của từng phương pháp. Dựa trên các yêu cầu ñầu vào, ñồ án sẽ lựa chọn phương án trong các phương pháp ñó ñể sử dụng trong việc nhận dạng của hệ thống. 2.5. Một số phương pháp tiếp cận với nhận dạng mặt người Hai phương pháp tiếp cận với nhận dạng khuôn mặt hiện nay là: Nhận dạng dựa trên ñặc trưng của các phần tử trên khuôn mặt (Feature Based Face Recognition), và nhận dạng dựa trên xét tổng thể toàn khuôn mặt (Appearance Based Face Recognition). 2. Phân tích hệ thống và các cơ sở lý thuyết - 13 - 2.5.1. Nhận dạng dựa trên mối quan hệ giữa các phần tử (Feature Based) ðâ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, khuôn dạng của khuôn mặt,…), và mối quan hệ giữa chúng (ví dụ khoảng cách của hai mắt, khoảng cách của hai lông mày, khoảng cách từ mũi tới cằm,…). Ưu ñiểm của phương pháp: - Phương pháp này gần với cách mà con người sử dụng ñể nhận biết khuôn mặt . - 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, ánh sáng thay ñổi. Nhược ñiểm của phương pháp: - Việc một xác ñịnh một lúc nhiều ñặc tính và các mối quan hệ ñòi hỏi các thuật toán phức tạp. - Nếu ảnh có ñộ phân giải bé, các mối quan hệ giữa cùng một cặp ñặc tính trên các khuôn mặt ñều rất sát nhau, ñiều này dẫn ñến kết quả nhận dạng không chính xác. Với ảnh có ñộ phân giải lớn hơn thì khối lượng tính toán sẽ rất lớn, ñòi hỏi cao về cấu hình phần cứng. 2.5.2. Nhận dạng dựa trên xét toàn diện khuôn mặt (Appearance Based) 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 R C× là một vec-tơ trong không gian R C× chiều. Ta sẽ tìm một không gian mới có chiều nhỏ hơn, sao cho khi ñược biểu diễn trong không gian ñó các ñặc ñiểm chính của một khuôn mặt vẫn không bị mất ñi. Trong không gian mới ñó, các ảnh của cùng một người sẽ tập hợp 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 dùng hiện nay là PCA (Principle Components Analysis) và LDA (Linear Discriminant Analysis). 2.5.2.1. Nhận dạng bằng PCA PCA (Principle Components Analysis) là một thuật toán ñể 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 khuôn mặt cần nhận dạng. PCA không cần phải quan tâm ñến việc phải tìm ra cụ thể các ñặc ñiểm trên khuôn mặt (mắt, mũi, miệng…) và các mối quan hệ. Tất cả những chi tiết ñó ñều ñược thể hiện ở ảnh mới ñược tạo ra từ PCA. 2. Phân tích hệ thống và các cơ sở lý thuyết - 14 - Mục tiêu của PCA là ảnh mới ñược tạo ra có kích thước nhỏ nhất và chứa nhiều nhất các ñặc trưng của ảnh khuôn mặt ñầu vào. 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 vec-tơ trong một 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. Hình 2.7. Không gian mới (u1, u2) 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 Hình 2.8. Phân loại theo PCA Ưu ñiểm của phương pháp PCA: - Tìm ñược các ñặc tính tiêu biểu cho một khuôn mặt mà không cần phải xác ñịnh các thành phần và mối liên hệ giữa các thành phần trên khuôn mặt ñó. - Thuật toán thực hiện tốt với các ảnh ñầu vào có ñộ phân giải cao, do PCA sẽ thu gọn ảnh ñầu vào thành một ảnh mới có kích thước rất nhỏ. - Khối lượng tính toán không nhiều. - PCA có tính mở và có thể kết hợp ñược với các phương pháp khác (như mạng nơ-rôn, Support Vector Machine – SVM,…) ñể mang lại hiệu quả nhận dạng cao hơn. 2. Phân tích hệ thống và các cơ sở lý thuyết - 15 - 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 vec-tơ. Tuy nhiên, không phải bao giờ chiều phân bố lớn nhất lại mang lại hiệu quả cao nhất cho 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, vì vậy nhiệm vụ tiền xử lý (lọc nhiễu, chuẩn hóa,…) ñòi hỏi phải thực hiện rất kỹ 2.5.2.2. Nhận dạng bằng LDA Tương tự như PCA, LDA (Linear Discriminants Analysis) cũng là một phương pháp nhận dạng theo hướng tiếp cận Apprearance Based. Mục ñích của LDA là tìm ra một không gian mới ñể tách rời các nhóm ảnh với nhau. Không gian ñó ñược tạo bởi các vec-tơ không nhất thiết phải trực giao từng ñôi một. Trong không gian tạo ra từ LDA, các ảnh trong cùng một nhóm sẽ gần nhau, và các nhóm khác nhau sẽ cách xa nhau. LDA khắc phục ñược nhược ñiểm của PCA, ñó là “không phải hướng biến thiên mạnh nhất luôn mang thông tin nhận dạng cao nhất”. ðối với một nhóm, gọi dwithin là khoảng cách lớn nhất các phần tử trong nhóm ñó, và dbetween là khoảng cách bé nhất từ tâm của nhóm ñó tới tâm của các nhóm khác. Mục tiêu của LDA là trong không gian mới, ta có dwithin bé nhất và dbetween lớn nhất. ðể tính các khoảng cách dwithin, dbetween, ta dựa trên tính toán mối tương quan của các thành viên trong một nhóm và sự tương quan giữa các nhóm với nhau. Các mối tương quan này thể hiện qua các ma trận scatter. Các Hình 2.9 và Hình 2.10 minh họa cho tư tưởng của phương pháp LDA. (a) Các ñiểm trong không gian khi chiếu lên một trục bị lẫn với nhau (b) Các ñiểm ñó chiếu lên một trục khác. ðây là mục tiêu của phương pháp LDA. Hình 2.9. Phân loại với LDA 2. Phân tích hệ thống và các cơ sở lý thuyết - 16 - (a) Kết quả phân loại tốt khi khoảng cách dwithin bé nhất và khoảng cách dbetween lớn nhất. (b) Kết quả phân loại không tốt. Hình 2.10. Phân loại dựa trên between và within theo LDA. Ma trận scatter biểu diễn within-class là: w 1 1 ( )( ) jNC j j T i j i j j i S µ µ = = = Γ − Γ −∑∑ (2.4) Với jiΓ là vec-tơ thứ i trong nhóm thứ j, jµ là trung bình của nhóm thứ j, C là số nhóm, jN là số phần tử trong nhóm j. Ma trận scatter biểu diễn between-class là: 1 ( )( ) C T b j j j S µ µ µ µ = = − −∑ (2.5) Với µ là trung bình của tất cả các nhóm. Không gian tạo ra bởi phương pháp LDA là một tập các vec-tơ [ ]1 2W W ,W ,...,Wd= ñược xác ñịnh bởi công thức: argmax T b T W w W S W W W S W = (2.6) Ưu ñiểm của phương pháp: - LDA mang hầu hết các ưu ñiểm của phương pháp PCA, ñồng thời khắc phục ñược nhược ñiểm cơ bản của PCA. Nhược ñiểm của phương pháp: - LDA ñòi hỏi một khối lượng tính toán rất lớn. Nếu ảnh có kích thước 200 200× , thì ma trận biểu diễn bS , wS sẽ có kích thước là 40000 40000× . Hiện nay vẫn chưa có cách tính nhanh phương pháp LDA. - LDA cũng nhạy với nhiễu giống như PCA, ñiều này ñòi hỏi nhiệm vụ tiền xử lý ảnh phải ñược thực hiện kỹ lưỡng. 2. Phân tích hệ thống và các cơ sở lý thuyết - 17 - Qua phân tích ưu nhược ñiểm của từng phương pháp nhận dạng, với ñiều kiện ảnh ñầu vào có kích thước là 600 800× , thời gian xử lý ngắn, ta lựa chọn phương pháp PCA ñể nhận dạng. PCA có nhiệm vụ tạo ra vec-tơ ñặc tính dùng cho việc nhận dạng. 2.6. Nội dung phương pháp PCA Trong nhận dạng mặt người, khi sử dụng PCA, ta coi một ảnh xám R C× pixels là một vec-tơ trong không gian N R C= × chiều. Không gian mới ñược tạo ra bởi PCA ñược cấu thành từ K vec-tơ ñơn vị có chiều là N ,N R C<< × . Mỗi vec-tơ ñược gọi là một Eigenface. Phép biến ñổi: 1 1 2 2 N K            = → =            a w a w A W a w ⋮ ⋮ với K N≪ Theo công thức: = ⋅W T A (2.7) Với T là ma trận chuyển ñổi. T có kích thước là K N× - Gọi M là số ảnh ñầu vào, mỗi ảnh ñã ñược chuyển thành một vec-tơ N chiều. Ta có tập hợp ñầu vào 1 2{ , ,..., }M=X x x x ( N i ∈x ℝ ). - Trung bình của các vec-tơ ñầu vào (tâm của tập hợp ñầu vào): 1 1 M i iM = = ∑x x (2.8) - Sai lệch so với tâm: i iΦ = −x x (2.9) - Gọi 1 2[ , ,..., ]M= Φ Φ ΦA , ta có covariance matrix của A: 1 1 M T T i i iM = = Φ Φ = ⋅∑C A A (2.10) - Gọi các giá trị riêng của C là 1 2, ,..., Nλ λ λ sắp xếp theo thứ tự giảm dần, tương ứng với N vec-tơ riêng 1 2, , , Nu u u… . Các vec-tơ riêng này trực giao từng ñôi một. Mỗi vec-tơ riêng iu ñược gọi là một eigenface. Tập hợp vec-tơ ban ñầu ñược biểu diễn trong không gian tạo bởi N eigenface theo mô tả sau: 1 1 2 2 1 ... N N N i i i w w w w = − = + + + =∑x x u u u u (2.10) - Chọn lấy K vec-tơ riêng u tương ứng với K giá trị riêng λ lớn nhất. Ta có: 2. Phân tích hệ thống và các cơ sở lý thuyết - 18 - ɵ 1 1 2 2 1 ... K K K i i i w w w w = − = + + + =∑x x u u u u với K N≪ (2.11) Véc-tơ các hệ số khai triển 1 2[ , ,..., ]Kw w w chính là biểu diễn mới của ảnh ñược tạo ra trong không gian PCA. Ảnh mới xˆ vẫn giữ ñược các ñặc ñiểm chính của khuôn mặt ñầu vào. Véc-tơ 1 2[ , ,..., ]Kw w w ñược tính theo công thức sau: 11 2 2 ( ) ( ) T T T T K K w w w          = − = ⋅ −            u u x x U x x u ⋮ ⋮ (2.12) Vấn ñề cần giải quyết ở ñây là ma trận covariance T= ⋅C A A có kích thước 2N . Với N = 200 × 200 = 40000, khối lượng tính toán sẽ rất lớn. Do ñó, ñể tính ñược các eigenface mà không cần phải tính cả ma trận C, người ta ñưa ra phương pháp tính nhanh dựa vào tính vec-tơ riêng và giá trị riêng của ma trận T= ⋅L A A có kích thước M×M, với M là số ảnh ñầu vào. Ta có thể chứng mình như sau: gọi iv , iµ lần lượt là vec-tơ riêng và giá trị riêng của ma trận L: T i i iµ⋅ ⋅ = ⋅A A ν ν (2.13) Nhân cả 2 vế với A ta có: T i i iµ⋅ ⋅ ⋅ = ⋅ ⋅A A A ν A ν (2.14) Ta thấy i⋅A ν chính là vec-tơ riêng của T= ⋅C A A , ứng với giá trị riêng iµ . 2.7. Sơ ñồ khối và nhiệm vụ từng khối trong hệ thống 2.7.1. Sơ ñồ khối phần cứng Sơ ñồ các khối phần cứng của hệ thống như sau: Hình 2.11. Mô hình phần cứng của hệ thống 2. Phân tích hệ thống và các cơ sở lý thuyết - 19 - Trong khuôn khổ của ñồ án, ảnh số của ñối tượng ñược thu thập thông qua một webcam. Tín hiệu webcam truyền về PC là một luồng hình ảnh với tốc ñộ 25 hình/s theo kênh truyền thông qua cổng USB. Khối thu thập ảnh có chức năng lấy ra một hình ảnh trong ñó có chứa ñối tượng cần nhận dạng. MATLAB sẽ ñiều khiển toàn bộ quá trình thu nhận từng luồng và giữ lại ảnh cần chọn. MATLAB cho phép chúng ta ñiều khiển quá trình hoạt ñộng và truyền dữ liệu của camera có kết nối với máy tính theo các chuẩn khác nhau. ðể ñiều khiển thiết bị, MATLAB sẽ thông qua driver Windows API (Application Programming Interface) ñể tác ñộng tới các phần cứng kết nối với máy tính. Thư viện chuyên dụng Image Acquisition Toolbox của MATLAB ñược thiết kế riêng dành cho mục ñích ñiều khiển thiết bị và thu nhận ảnh. Chức năng ñiều khiển của MATLAB thông qua thư viện Image Acquisition Toolbox ñược minh họa trên Hình 2.12 Hình 2.12: Thu thập hình ảnh từ webcam theo các chuẩn khác nhau bằng thư viện Image Acquisition Toolbox của MATLAB Từ Hình 2.12 ta thấy khối thu thập ảnh và xử lý ảnh ñược kết nối với nhau thông qua Image Acquisition Toolbox. Luồng tín hiệu ñược truyền về PC và ñược MATLAB thu nhận. Cơ chế lấy ảnh theo luồng tín hiệu của MATLAB ñược thể hiện trong Hình 2.13. 2. Phân tích hệ thống và các cơ sở lý thuyết - 20 - Hình 2.13: Luồng dữ liệu ảnh và thu nhận frame ảnh bằng MATLAB Luồng tín hiệu theo chuẩn USB ñược truyền lên liên tục khi có lệnh start từ máy tính ñiều khiển Webcam hoạt ñộng. Mỗi frame là một ảnh. Dữ liệu sẽ ñược ghi vào bộ nhớ bắt ñầu từ khi có lệnh Trigger và kết thúc quá trình lưu bởi lệnh Acquisition stop. Khi ta cần lấy một ảnh, thời gian giữa Trigger và Acquisition Stop sẽ có chiều dài bằng 1 frame. Khi ñó ta sẽ có ảnh cần chụp. Các tín hiệu Trigger và Acquisition có thể ñược ñiều khiển tự ñộng (automatic) hoặc bằng tay (manual). ðồ án lựa chọn phương pháp manual, các lệnh Trigger và Acquisition ñược ñiều khiển bởi người sử dụng. 2.7.2. Sơ ñồi khối phần mềm: Phần mềm chủ yếu là ñược viết ñối với khối Xủ lý ảnh số. Tiền xử lý Trích chọn ñặc tính Thu thập và tách mặt người trong ảnh Cơ sở dữ liệu Phân loại, nhận dạng Xử lý kết quả Ảnh cần nhận dạng Ảnh ñược chuẩn hóa Vec-tơ ñặc tính Xử lý ảnh số Hình 2.14. Sơ ñồ khối phần mềm hệ thống nhận dạng mặt người 2. Phân tích hệ thống và các cơ sở lý thuyết - 21 - 2.7.2.1. Cơ sở dữ liệu Các ảnh mẫu ñược chọn và ñược xử lý qua hai bước Tiền xử lý và Trích chọn ñặc tính. Các vec-tơ ñặc tính của các ảnh học ñược lưu vào cơ sở dữ liệu, sử dụng ñể ñối chiếu với các ñối tượng mới cần nhận dạng. Ảnh ñối tượng cần nhận dạng cũng ñược xử lý qua các bước trên. Qua bước xử lý Phân loại và nhận dạng, vec-tơ ñặc tính của ảnh ñầu vào sẽ ñược so sánh lần lượt với vec-tơ ñặc tính của từng ảnh học trong cơ sở dữ liệu ñể ñưa ra kết quả nhận dạng. Trong ñồ án này, cơ sở dữ liệu ñược dùng là hai bộ ảnh: - Bộ ảnh thứ nhất ñược download từ thư viện của trường ñại học Cambridge, ảnh khuôn mặt ñược cắt thủ công bằng chương trình Photoshop 7.0. ðộ phân giải của các ảnh là 220×170 pixels và ñược lưu trong ổ cứng máy PC với ñịnh dạng JPEG. - Bộ thứ hai là ảnh ñược chụp trực tiếp bằng webcam, ñược tách ra từ khối thu thập ảnh của hệ thống. Ảnh ñược tách có ñộ phân giải 310×250 pixels, lưu trong ổ cứng máy PC dưới ñịnh dạng JPEG. 2.7.2.2. Thu thập và tách mặt người trong ảnh Ảnh ñược chụp bằng Webcam kỹ thuật số, ñược mã hóa thành file ảnh dạng JPEG có kích thước 600×800 pixel, hệ màu RGB 24 bits. Chương trình MATLAB ñiều khiển việc thu thập ảnh, hình ảnh ñược xử lý, hiển thị lên màn hình PC và lưu trữ trong bộ nhớ máy tính. Nhiệm vụ của khối là sau khi thu thập ñược ảnh, tự ñộng tách mặt người ra khỏi ảnh số. 2.7.2.3. Tiền xử lý Nhiệm vụ của khối: tách mặt ra khỏi ảnh và chuẩn hóa. ðầu vào của khối: hóa ảnh ñầu vào, là các ảnh ñược trích trực tiếp từ webcam (có ñộ phân giải là 800×600 pixel, ảnh màu RGB 24 bits). ðầu ra của khối: Ảnh mặt người ñược tách khỏi nền và ñược chuẩn hóa. Chức năng của khối gồm: - Tách mặt người ra khỏi ảnh. - Chuẩn kích thước về 310×250 pixel. - Căn tư thế thẳng ñứng (xoay ngang theo ñường nối hai mắt). - Chuẩn ánh sáng - Chuẩn mức xám - Lọc nhiễu 2.7.2.4. Trích chọn vec-tơ ñặc tính Nhiệm vụ của khối là tạo ra vec-tơ ñặc tính mang những ñặc tính riêng của khuôn mặt cần nhận dạng. Số chiều của vec-tơ ñặc tính phải nhỏ hơn rất nhiều so với tín hiệu ñầu vào. 2. Phân tích hệ thống và các cơ sở lý thuyết - 22 - ðầu vào của khối: ảnh sau khi ñã qua tiền xử lý. ðầu ra của khối: vec-tơ ñặc tính ñược tính bằng phương pháp PCA. - Các bước tiến hành trích chọn ñặc tính với PCA: 1. Tạo một tập S gồm M ảnh (ảnh học). Mỗi ảnh có kích thước R C× . Mỗi ảnh ñược chuyển thành một vec-tơ N R C= × chiều. { }1 2 3, , ,..., MS = Γ Γ Γ Γ (2.15) 2. Tính ảnh trung bình Ψ của tập hợp trên. 1 1 M i iM = Ψ = Γ∑ (2.16) 3. Tính sai lệch của các ảnh ñầu vào so với trung bình i iΦ = Γ −Ψ (2.17) 4. Tìm tập hợp gồm M vec-tơ trực giao, u , biểu diễn chiều phân bố mạnh nhất của tập dữ liệu Φ . Tập hợp các vec-tơ u ñược gọi là eigenface của tập dữ liệu học. 5. Xây dựng các ảnh mới kω theo M vec-tơ u [ ]1 2 ( ) , ,..., T k k k T M uω ω ω ω = Γ −Ψ Ω = (2.18) Cuối cùng, ta có kω là vec-tơ ñặc tính của ảnh thứ k trong tập cơ sở dữ liệu ñầu vào. Ảnh mới cần nhận dạng, Γ , sẽ ñược trích chọn vec-tơ ñặc tính theo công thức: ( )Tkuω = Γ −Ψ (2.19) 2.7.2.5. Phân loại, nhận dạng Khối này có chức năng ñối chiếu vec-tơ ñặc tính ñược tạo ra với cơ sở dữ liệu, từ ñó ñưa ra ñược kết quả nhận dạng. Trong bài toán, kết quả nhận dạng là “ñã ñược biết” hay là “chưa ñược biết”. Khối này có thể ñược thực hiện theo nhiều phương pháp khác nhau như khoảng cách Euclides, mạng nơ-ron, SVM,… Khoảng cách Euclides là phương pháp ñơn giản nhất, nó có kết quả tốt ñối với các ñối tượng tạo thành các nhóm cách xa nhau. Trong ñồ này, ta sử dụng phương pháp 2. Phân tích hệ thống và các cơ sở lý thuyết - 23 - này ñể nhận dạng. Vec-tơ ñặc tính của ñối tượng cần nhận dạng sẽ ñược so sánh lần lượt với vec-tơ ñặc tính của từng ảnh mẫu ñã ñược học trước ñó. Các khoảng cách ngắn nhất ñược lưu lại. Nếu khoảng cách ngắn nhất nhỏ hơn một ngưỡng cho phép, ta xác nhận rằng ñối tượng “ñã ñược biết ñến”. Việc nhận dạng trên ñược thực hiện qua công thức sau: { }min , 1,k k Mε ω ω= − = (2.20) Nếu thresholdε ≤ , ta xác nhận ảnh Γ là “ñã ñược biết”. Nếu thresholdε > , ta xác nhận ảnh Γ là “chưa ñược biết”. Trong ñó threshold là giá trị của ngưỡng nhận biết. Giá trị này ñược ñiều chỉnh cho từng bộ cơ sở dữ liệu. Nếu kết quả nhận dạng là ñối tượng “ñã ñược biết”, hệ thống sẽ tìm ñến một file dữ liệu chứa các thông tin về ñối tượng vừa tìm ñược. Các thông tin ñó sẽ ñược hiển thị trên giao diện của chương trình. Chương 2 ñã trình bày về các khối của hệ thống và phương án giải quyết cho từng khối. Chương 3 sẽ thể hiện quá trình vận dụng các phương án ñó vào hệ thống. Các bước thiết kế và kết quả triển khai vào hệ thống sẽ ñược trình bày chi tiết cho từng khối. 3. Thiết kế chi tiết và triển khai hệ thống - 24 - Chương 3. Thiết kế chi tiết và triển khai hệ thống 3.1. Thu thập và tách mặt người trong ảnh ðầu vào của khối: ảnh lấy ñược từ Webcam. ðầu ra của khối: Ảnh người cần nhận dạng ñược tách khỏi nền. Khối này sử dụng phương pháp trừ ảnh ñể tách ñối tượng. Cho ảnh nền X và ảnh chứa ñối tượng Y có cùng kích thước 600×800. Ảnh kết quả của phép trừ ảnh là I. Xét pixel có tọa ñộ 0 0( , )x y , ta có: 0 0 0 0 0 0 0 0 0 0 1 ( , ) ( , ) ( , ) 0 ( , ) ( , ) khi X x y Y x y I x y khi X x y Y x y ε ε  − > =  − ≤ (3.1) Kết quả của phép trừ ảnh là một ảnh nhị phân. Khu vực chứa ñối tượng sẽ có màu trắng (giá trị bằng 1), và khu vực còn lại sẽ có màu ñen (giá trị bằng 0). Tuy nhiên, do sự thay ñổi cường ñộ sáng ở một mức ñộ nào ñó giữa ảnh nền và ảnh chứa ñối tượng, ảnh sẽ có nhiều nhiễu. Lọc nhiễu: - Lọc các nhiễu (các vùng màu trắng không có ñối tượng) có diện tích bé. Vùng chứa ñối tượng luôn là vùng có diện tích tích lớn nhất. - Lọc các vùng ñen bên trong khu vực chứa ñối tượng. (a) (b) (c) (d) (e) Hình 3.1. Quá trình thu thập và tách ñối tượng khỏi ảnh. a. - Ảnh nền, b- Ảnh chưa ñối tượng, c. Kết quả trừ ảnh, d. Mặt nạ sau khi lọc nhiễu, e – ðối tượng ñược tách khỏi nền. 3. Thiết kế chi tiết và triển khai hệ thống - 25 - 3.2. Chuẩn hóa ảnh - ðầu vào: Ảnh ñối tượng sau khi ñã ñược tách ở khâu thu thập. - ðầu ra: Ảnh có kích thước cố ñịnh (310×250 pixels), bao trọn khuôn mặt ñối tượng, ñược xoay thẳng và ñược cân bằng sáng. 3.2.1. Cắt và xoay chuẩn ảnh: ðể thực hiện nhiệm vụ tìm khung khuôn mặt mà xoay chuẩn, ñồ án sử dụng phương pháp tìm tâm 2 mắt ñể xác ñịnh vị trí khuôn mặt. ðể xác ñịnh vùng mắt, ta nhận thấy mắt là một vùng có ánh sáng tối nằm ở một khu vực riêng trên khuôn mặt, xung quanh là vùng màu da. Do ñó, ta sử dụng phương pháp tách vùng ñể tìm ra vùng chứa mắt. Phương pháp phân ngưỡng ñược sử dụng. Các bước thực hiện: Hình 3.2. Khối chuẩn hóa ảnh 3. Thiết kế chi tiết và triển khai hệ thống - 26 - a – Xác ñịnh tâm mắt Ta thấy, số pixel quy ñịnh gương mặt có tỉ lệ gần như không ñổi so với tổng số pixel (ñiều này do ta ñã quy ñịnh chặt chẽ ñiều kiện biên). Ảnh chứa ñối tượng Lược ñồ mức xám của ảnh Hình 3.3. Xác ñịnh vùng mắt bằng phân tích lược ñồ mức xám Ta thấy khu mực chứa màu mắt khá nổi bật trong lược ñồ mức xám. Nhận thấy tỉ lệ của vùng da và nền so với tổng số pixel luôn nằm trong một khoảng cố ñịnh, do ñó ta có thể tính ñược ngưỡng của vùng màu mắt. Do diện tích của vùng mắt là nhỏ hơn rất nhiều so với vùng tóc, nên ta sử dụng chương trình lọc ñể bỏ ñi các vùng có diện tích lớn. Vùng có diện tích lớn hơn ngưỡng sẽ ñược thay thế bằng giá trị 0 (màu ñen). Qua khảo sát, ñồ án lựa chọn ngưỡng ñó là 1000 pixels. Việc ñặt ngưỡng thông thường sẽ sinh ra các vùng nhiễu có diện tích bé. ðể lọc các vùng này, ta cũng sử dụng hàm lọc giống như trên nhưng chỉ ñể lọc với các vùng có diện tích bé hơn ngưỡng. Qua khảo sát, ñồ án lựa chọn ngưỡng ñó là 100 pixels. Sau khi lọc nhiễu, ta có kết quả như sau: Ảnh mặt nạ sau khi ñặt ngưỡng tách màu mắt Ảnh mặt nạ sau khi ñược lọc nhiễu. Vùng mắt ñược tách Hình 3.4. Quá trình ñặt ngưỡng tách vùng mắt. Sau khi tách ñược vùng mắt, sử dụng phương pháp tìm tâm của một vùng, ta có ñược tâm của mắt như sau: 3. Thiết kế chi tiết và triển khai hệ thống - 27 - Hình 3.5. Xác ñịnh tâm mắt của ñối tượng Tìm ñược tâm 2 mắt, từ ñây ta có thể thực hiện phép xoay ảnh và tách ñược vùng mặt như mong muốn. b – Xoay ảnh và tắt khung mặt Từ tọa ñộ tâm 2 mắt, ta xác ñịnh góc nghiêng α của khuôn mặt so với phương thẳng ñứng. Nếu 05α > , ta sẽ thực hiện phép xoay ảnh. α α Hình 3.6. Xác ñịnh góc nghiêng của khuôn mặt dựa trên tâm mắt. Giả sử tại tâm 2 mắt có tọa ñộ tương ứng là (x1,y1) và (x2,y2) khi ñó ta có: 2 1 2 1 y x y tg x α − = − (3.2) Xoay chuẩn ñổi tượng thực chất là một phép biến ñổi hệ tọa ñộ. Giả sử ảnh f ban ñầu ở trong hệ tạo ñộ (w,z), thông qua phép biến ñổi T ta ñược ảnh f’ trong hệ tọa ñộ (x, y); ( ){ }( , ) ,x y T w z= (3.3) Phương pháp biến ñổi phổ biến hay ñược dùng là phương pháp affine transform theo phương pháp này thì: 3. Thiết kế chi tiết và triển khai hệ thống - 28 - [ ] [ ] [ ] 11 12 21 22 31 32 0 1 1 1 0 1 t t x y w z w z t t t t    = ⋅ = ⋅      T (3.4) Các phép chuyển ñổi thông thường có thể là: scale, rotation translation,… ðối với mỗi phương pháp có ma trận T khác nhau, trong trường hợp xoay ảnh thì ma trận T tương ứng sẽ là: cos sin 0 sin cos 0 0 0 1 α α α α    = −     T (3.5) Tương ứng với phương trình toán học: cos sin sin cos x w z y w z α α α α = − = + (3.6) Sau khi xoay, tọa ñộ của các ñiểm trong ảnh cũ sẽ bị dịch chuyển ñi theo công thức trên. Trong hệ tọa ñộ mới, ta có ñược khuôn mặt theo tư thế thẳng ñứng và hai tâm mới tương ứng với mắt của ñối tượng. Từ ñây, ta có ñược khung ñể tách phần mặt mong muốn ra khỏi ảnh. Kết quả thực hiện như sau: 01α = 09α = Hình 3.7. Xoay chuẩn ñối tượng theo góc α 3. Thiết kế chi tiết và triển khai hệ thống - 29 - c) Chuẩn sáng ảnh ðể kiểm tra mức sáng, ta kiểm tra biểu ñồ mức xám của ảnh và sử dụng thuật toán san bằng mức xám (histogram equalization). Ảnh sau khi ñược san bằng mức xám thì mức xám của ảnh sẽ phân bố ñều từ 0-255. (a) 0 50 100 150 200 250 0 500 1000 1500 b) (b) (c) 0 50 100 150 200 250 0 500 1000 1500 2000 d) (d) Hình 3.8. Kết quả cân bằng mức xám, biểu ñồ sau khi mức xám phân bố ñều hơn so với ban ñầu. 3.3. Trích chọn ñặc tính bằng phương pháp PCA Các khâu trong quá trình trích chọn ñặc tính: - ðầu vào: Ảnh ñã ñược chuẩn hóa - ðầu ra: vec-tơ ñặc tính của ảnh ñầu vào. ðể có ñược vec-tơ ñặc tính, ta cần phải qua 2 giai ñoạn: Giai ñoạn 1: Tạo ra các eigenfaces thông qua quá trình học các ảnh mẫu. Giai ñoạn 2: Chiếu vec-tơ ảnh cần nhận dạng vào không gian eigenface. Các vec-tơ ñặc tính của ảnh ñầu vào là phép chiếu tử ảnh ban ñầu vào không gian tạo bởi các eigenface. Quá trình trích chọn ñặc tính ñược thể hiện qua lưu ñồ sau: 3. Thiết kế chi tiết và triển khai hệ thống - 30 - Khối Trích chọn ñặc tính Hình 3.9. Sơ ñồ bên trong khối Trích chọn ñặc tính sử dụng PCA 3.3.1. Quá trình học Mô hình ñược xây dựng và kiểm nghiệm trên 2 bộ dữ liệu: - Bộ 1: Ảnh ñược download từ bộ dữ liệu ảnh mẫu ORL của Cambridge University Engineering Department. Bộ dữ liệu lựa chọn có 20 người, ảnh ñược cắt thủ công, mỗi người 5

Các file đính kèm theo tài liệu này:

  • pdfNghiên cứu xây dựng hệ thống nhận dạng mặt người online.pdf