DÒ TÌM VÀ CẮT ẢNH MẶT NGƯỜI DÙNG PCA
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP. HCM KHOA CÔNG NGHỆ ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP Đề tài: DÒ TÌM VÀ CẮT ẢNH MẶT NGƯỜI DÙNG PCA GVHD: Ths. Đào Thị Thu Thủy SVTH : Nguyễn Trung Hiếu -06052461 Bùi Ngọc Liêm -06054491 Lớp : DHDT2B1 TP. Hồ Chí Minh, tháng 7 năm 2010 LỜI MỞ ĐẦU Hiện nay, cùng với sự phát triển của xã hội, 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 con người rất được quan tâm hiện nay là nhận dạng khuôn mặt. Vì nhận dạng khuôn mặt là cách mà con người sử dụng để phân biệt nhau. Bên c ạnh đó, ngày nay 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 khuôn mặt người 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 nhiều. Bài toán nhận dạng khuôn mặt người 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à mộ t chủ đề có thể nói còn tương đối mới với những ứng dụng mang tính công nghệ cao như: robot, các thiết bị camera,các hệ thống bảo mật, nhận dạng,…đã và đang được các hãng, công ty áp dụng vào nhằm nâng cao các tính năng sản phẩm của mình trong quá trình cạnh tranh trên thị trường hiện nay… Với mong muốn tiếp cận các công nghệ mới, đồng thời bổ sung kiến thức về khoa học kỹ thu ật hiện đại, cũng như tổng kết lại những kỹ năng, kiến thức trong suốt quá trình học tập tại trường, chúng em xin chọn đề tài “ Dò tìm và cắt ảnh mặt người dùng PCA”. Đây có thể là một bài toán nhỏ, nhưng nó cũng giúp chúng em có một cái nhìn khái quát về bài toán, tạo cơ sở tiền đề cho sự tìm tòi và phát triển các hướng cao hơn trong sự nghiên cứu các công nghệ mới . Bài luận này được trình bày bao g ồm có 5 chương: • Chương 1: Giới thiệu Matlab và khái quát về ảnh. • Chương 2: Các phương pháp xác định khuôn mặt. • Chương 3: Phân tích thành phần chính PCA. • Chương 4: Chương trình mô phỏng. • Chương 5: Kết luận. Nội dung của đề tài: - 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 (1=>4). - 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 chúng 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,… LỜI CẢM ƠN Sau một thời gian học tập và nghiên cứu, cuối cùng chúng em cũng đã hoàn thành bài luận nghiên cứu của mình. Đây là thời điểm tốt nhất để chúng em có dịp được bày tỏ lòng biết ơn của mình đến những người thân đã giúp đỡ động viên trong suốt quá trình chúng em thực hiện bài luận này. Trước tiên, chúng em xin cảm ơn BGH trường Đại Học Công Nghiệp Thành Phố Hồ Chí Minh, Quý Thầy Cô trong khoa Công nghệ Điện T ử đã tạo điều kiện cho chúng em thực hiện bài luận này. Đặc biệt là Cô Đào Thị Thu Thủy, Cô không chỉ là người hướng dẫn khoa học một cách tài tình, mà còn là người dìu dắt chúng em, động viên và định hướng cho chúng em có những bước đi đầu đời về một cách nhìn khoa học về trí thức, cuộc sống, và sự cố gắng phấn đấu trong tương lai, điều này có ý nghĩa rất sâu sắ c đối với chúng em, giúp chúng em tự tin và nổ lực hoàn thành bài luận này đúng thời hạn. Một lần nữa, chúng em xin bày tỏ lòng biết ơn sâu sắc đến với Cô. Đồng thời chúng con xin cám ơn cha mẹ, anh chị đã hết sức thông cảm, chia sẽ và động viên chúng con trong những khó khăn trong quá trình làm đồ án tốt nghiệp này. Xin cám ơn những người bạn thân yêu, những người đã yêu mến, chia sẽ, giúp đỡ chúng tôi trong lúc chúng tôi thực hiện bài luận này. Kết quả của bài luận này là món quà mà chúng em dành tặng cho tất cả mọi người thân yêu, với tất cả tấm lòng mình! Sinh viên thực hiện Nguyễn Trung Hiếu Bùi Ngọc Liêm NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN . . . . . . . . . . . . . . . . . . . . . . Chữ ký của giáo viên NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN . . . . . . . . . . . . . . . . . . . . . . . Chữ ký của giáo viên MỤC LỤC Trang Chương 1: GIỚI THIỆU MATLAB VÀ KHÁI QUÁT VỀ ẢNH .1 1.1 Giới thiệu chung về phần mềm Matlab .2 1.1.1 Khái niệm về Matlab 2 1.1.2 Tổng quan về cấu trúc dữ liệu Matlab, các ứng dụng 2 1.1.2.1 Dữ liệu 3 1.1.2.2 Ứng dụng 3 1.1.2.3 Toolbox là một công cụ quan trọng trong Matlab .3 1.1.3 Hệ thống Matlab .3 1.1.4 Làm quen với Matlab 4 1.1.5 Các cửa sổ làm vi ệc của Matlab .5 1.2 Giới thiệu khái quát về ảnh số 7 1.2.1 Các khái niệm cơ bản về ảnh 7 1.2.2 Các cách phân loại ảnh .8 1.3 Xử lý ảnh với Matlab .9 1.3.1 Xử lý ảnh .9 1.3.2 Các giai đoạn xử lý ảnh .10 1.3.3 Xử lý ảnh với Matlab 11 1.3.3.1 Các kiểu ảnh trong Matlab .11 1.3.3.2 Các hàm xử lý ảnh cơ bản trong Matlab 13 1.3.3.3 Biến đổ i không gian ảnh 20 Chương 2: CÁC PHƯƠNG PHÁP XÁC ĐỊNH KHUÔN MẶT .36 2.1 Định nghĩa bài toán xác định khuôn mặt người 37 2.2 Ứng dụng của phương pháp xác định khuôn mặt .37 2.3 Phương pháp xác định khuôn mặt . 39 2.3.1 Hướng tiếp cận dựa trên tri thức . 40 2.3.2 Hướng tiếp cận dựa trên đặc trưng không thay đổi 41 2.3.2.1 Các đặc trưng khuôn mặt .42 2.3.2.2 Kết cấu . 45 2.3.2.3 Sắc màu của da .45 2.3.2.4 Đa đặc trưng .45 2.3.3 Hướng tiếp cận dựa trên so khớp mẫu 45 2.3.4 Hướng tiếp cận dựa trên diện mạo .46 2.4 Khó khăn và thử thách trong bài toán xác định khuôn mặt người 47 Chương 3: PHÂN TÍCH THÀNH PHẦN CHÍNH PCA (PRINCIPAL COMPONENT ANALYSIS) .48 3.1 Sơ lược về phân tích thành phần chính PCA 49 3.2 Thuật toán PCA và ứng dụng trong nhận dạng khuôn mặt ng ười 50 3.2.1 Thuật toán .50 3.2.2 Phân tích thành phần chính PCA .50 3.2.3 Hình ảnh minh họa .53 3.3 Ứng dụng Eigenfaces trong việc nhận dạng mặt người 56 3.3.1 Tính toán Eigenfaces 59 3.3.2 Dùng Eigenfaces để phân loại ảnh mặt người 61 3.3.3 Ứng dụng Eigenfaces để phát hiện gương mặt .62 3.3.3.1 Xem xét lại không gian mặt . 63 3.3.3.2 Nhận dạng theo thời gian thực .64 3.4 Nhận xét 65 3.4.1 Ưu điểm của ph ương pháp PCA .65 3.4.2 Nhược điểm của PCA .65 Chương 4: CHƯƠNG TRÌNH MÔ PHỎNG .67 4.1 Chương trình mô phỏng 68 4.1.1 Cơ sở dữ liệu ảnh 68 41.1.1 Tập ảnh huấn luyện .68 4.1.1.2 Tập ảnh mẫu .69 4.1.2 Các bước thực hiện chương trình .70 4.1.3 Lưu đồ giải thuật .72 4.1.3.1 Lưu đồ giải thuật chính 72 4.1.3.2 Lưu đồ giải thuật chi tiết 72 4.1.4 Kết quả mô phỏng .77 4.1.5 Tốc độ thực hiện. 80 4.2 Nhận xét kết quả đạt được .81 Chương 5: KẾT LUẬN .85 5.1 Kết luận .85 5.2 Hướng phát triển đề tài 85 PHỤ LỤ C . TÀI LIỆU THAM KHẢO MỤC LỤC HÌNH Trang Hình 1.1 Cửa sổ khi khởi động Matlab .4 Hình 1.2 Cửa sổ Command History 6 Hình 1.3 Cửa sổ Workspace 6 Hình 1.4 Cửa sổ Array Editor .7 Hình 1.5 Các bước cơ bản trong xử lý ảnh .9 Hình 1.6 Ảnh trước và sau khi imresize .23 Hình 1.7 Ảnh trước và sau khi imrotate 26 Hình 1.8 Ảnh được quay theo chiều ngang .27 Hình 1.9 Ảnh trước và sau khi imcrop 28 Hình 1.10 Ảnh trước và sau khi imcrop theo 1 tọa độ cho trước . 30 Hình 1.11 Ảnh trước và sau khi imtransforms 32 Hình 1.12 Ảnh trước và sau khi imtransformsvới 1 cường độ ảnh . 35 Hình 2.1 Độ phân giải của 1 ảnh 41 Hình 2.2 Một loại trí thức của người nghiên cứu phân tích trên khuôn mặt 41 Hình 2.3 Một mẫu khuôn mặt, có 16 vùng và 23 quan hệ (các mũi tên) 46 Hình 3.1 Eigenfaces 53 Hình 3.2 Bức ảnh kiểm tra và hình chiếu của nó 54 Hình 3.3 Ảnh ban đầu .55 Hình 3.4 Face map của bức ảnh ban đầu .55 Hình 3.5 Face map ảnh ban đầu với không gian không phải là khuôn mặt .56 Hình 3.6 Những g ương mặt dùng để huấn luyện 57 Hình 3.7 Bảy Eigenfaces được tính toán từ dãy huấn luyện của hình 4.6, phông nền đã được loại bỏ 58 Hình 3.8 Ảnh và hình chiếu của nó vào không gian mặt người xác định bởi các Eigenfaces từ hình 3.7 61 Hình 3.9 Ảnh gốc và bản đồ mặt người, vùng tối chỉ ra hình dạng khuôn mặt 63 Hình 3.10 Ví dụ đơn giản thể hiện 4 hình chiếu của ả nh lên không gian mặt người. Trong trường hợp này sử dụng 2 eigenfaces là µ 1 , µ 2 và 3 lớp mặt người (cá thể) đã biết trước (Ω 1 , Ω 2 , Ω 3 ) .63 [...]... pixel trong ảnh ra sẽ không hoàn toàn là 0 hoặc 1 Ảnh hưởng trên ảnh kết quả phụ thuộc vào lớp của ảnh vào: + Nếu lớp ảnh vào là double, ảnh ra là một ảnh đen trắng thuộc lớp double Ảnh ra không là ảnh nhị phân bởi vì nó bao gồm các giá trị khác 0 và 1 + Nếu ảnh vào là uint8, ảnh ra là một ảnh nhị phân thuộc lớp uint8 Giá trị của các pixel được nội suy được làm tròn thành 0 hoặc 1 Vì vậy , ảnh ra thuộc... Hệ thống dò tìm và định vị mặt người 64 Hình 4.1 Tập ảnh Face 68 Hình 4.2 Tập ảnh nface 69 Hình 4.3 Tập ảnh mẫu .70 Hình 4.4 Lưu đồ giải thuật chính 72 Hình 4.5 Lưu đồ giải thuật chọn ảnh 73 Hình 4.6 Lưu đồ giải thuật chương trình dò tìm ảnh mặt người 74 Hình 4.7 Lưu đồ giải thuật chương trình nhận dạng 75 Hình 4.8 Lưu đồ giải thuật PCA ... Giới thiệu Matlab và khái quát về ảnh + dither: Tạo một ảnh nhị phân từ một ảnh cường độ đen trắng bằng cách trộn, tạo một ảnh chỉ số từ một ảnh RGB bằng cách trộng (dither) + gray2id: Tạo một ảnh chỉ số từ một ảnh cường độ đen trắng + grayslice: Tạo một ảnh chỉ số từ một ảnh cường độ đen trắng bằng cách đặt ngưỡng + im2bw: Tạo một ảnh nhị phân từ một ảnh cường độ, ảnh chỉ số hay ảnh RGB trên cơ sở... liệt kê, không có biến dữ liệu vào và biến lấy giá trị ra • Dạng hàm function: có biến dữ liệu vào và biến ra e) Đường dẫn thư mục: Nơi lưu giữ các files chương trình 1.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 GVHD: Ths Đào Thị... theo Máy ảnh số hiện nay là một thí dụ gần gũi Mặt khác, ảnh cũng có thể tiếp nhận từ vệ tinh; có thể quét từ ảnh chụp bằng máy quét ảnh Hình dưới đây mô tả các bước cơ bản trong xử lý ảnh Thu nhận ảnh Tiền xử lý ảnh Phân đoạn ảnh Biểu diễn và mô tả Nhận dạng và nội suy Cơ sở tri thức GVHD: Ths Đào Thị Thu Thủy SVTH: Nguyễn Trung Hiếu Bùi Ngọc Liêm 10 Chương 1: Giới thiệu Matlab và khái quát về ảnh Hình... định dạng ảnh ra được chỉ rõ là không trợ giúp ảnh 1 bit (như JPEG), hàm imwrite chuyển ảnh tới một ảnh thuộc lớp uint8 + uint8: Nếu định dạng ảnh ra được chỉ rõ là trợ giúp ảnh 8 bit, hàm imwrite tạo một ảnh 8 bit + uint16: Nếu định dạng ảnh ra được chỉ rõ trợ giúp ảnh 16 bit (PNG hoặc TIFF), hàm imwrite tạo một ảnh 16 bit Nếu định dạng ảnh ra không trợ giúp ảnh 16 bit, hàm chuyển đổi dữ liệu ảnh tới... thiệu Matlab và khái quát về ảnh 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... Các cách phân loại ảnh Ảnh nhị phân: Giá trị xám của tất cả các điểm ảnh chỉ nhận giá trị 1 hoặc 0 như vậy mỗi điểm ảnh trong ảnh nhị phân được biểu diễn bởi 1 bit Ảnh xám: Giá trị xám nằm trong [0, 255] như vậy mỗi điểm ảnh trong ảnh nhị phân được biểu diễn bởi 1 byte GVHD: Ths Đào Thị Thu Thủy SVTH: Nguyễn Trung Hiếu Bùi Ngọc Liêm 9 Chương 1: Giới thiệu Matlab và khái quát về ảnh Ảnh màu: - Hệ màu... thuộc vào kiểu của file nhưng nó luôn bao gồm những thông tin sau: + Tên của file ảnh + Định dạng file ảnh + Số version của định dạng file + Ngày sửa đổi file gần nhất + Kích thước file tính theo byte + Chiều rộng ảnh tính theo pixel + Chiều cao ảnh tính theo pixel + Số lượng bít trên một pixel + Kiểu ảnh: RGB, chỉ số … b) Hiển thị ảnh Dùng hàm imview - Để hiển thị một ảnh sử dụng hàm imview, dùng hàm... tên của file ảnh như một tham số truyền vào cho hàm như ví dụ sau: imshow('moon.tif'); Khi sử dụng cấu trúc này thì dữ liệu ảnh không được nhập vào trong không gian làm việc Tuy nhiên, ta có thể mang ảnh vào trong không gian làm việc bằng cách sử dụng hàm getimage Hàm này sẽ nhận dữ liệu ảnh từ handle của một đối tượng ảnh hiện tại Chẳng hạn: moon = getimage; Sẽ gán dữ liệu ảnh từ moon.tif vào biến moon