Nhận dạng khuôn mặt người sử dụng OpenCV trong CSharp

58 4K 32
Nhận dạng khuôn mặt người sử dụng OpenCV trong CSharp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

-Xây dựng một dự án phần mềm ứng dụng nhận dạng khuôn mặt. -Tìm hiểu về thư viện OpenCv, phần mềm EmguCv. -Nghiên cứu phương pháp trích chọn đặc trưng Eigenfaces. -Tìm hiểu các phương pháp xác định khuôn mặt (Face Detection). -Nghiên cứu phương pháp phân tích thành phần chính (Principal Component Analysis-PCA).

TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP KHOA ĐIỆN TỬ BỘ MÔN: TIN HỌC CÔNG NGHIỆP ĐỒ ÁN MÔN HỌC MÔN HỌC CÔNG NGHỆ PHẦN MỀM Giáo viên hướng dẫn : Ths Phùng Thị Thu Hiền Nhóm sinh viên : Trương Văn Khoan – DTK1151030245 Lớp : K47KMT01 Thái Nguyên – 2014 ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền Nhận xét giáo viên hướng dẫn Thái Nguyên, Ngày Tháng Năm 2014 Giáo Viên hướng dẫn (Ký ghi rõ họ tên) Nhận xét giáo viên chấm Thái Nguyên, Ngày Tháng Năm 2014 Giáo Viên hướng dẫn (Ký ghi rõ họ tên) Bộ môn Tin học công nghiệp ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền MỤC LỤC Mở đầu Lý chọn đề tài Mục đích đề tài Đối tượng phạm vi nghiên cứu Chương 1: Giới thiệu 1.1 Bài toán nhận dạng mặt người khó khăn………………………………………… 1.1.1 Bài toán nhận dạng mặt người……………………………………………………… 1.1.2 Những khó khăn hệ thống nhận dạng khuôn mặt…………………………… 1.2 Tổng quan kiến trúc hệ thống nhận dạng mặt người…………………………… 1.2.1 Ngôn ngữ lập trình…………………………………………………………………… Chương 2: Tổng quan xử lý ảnh 2.1 Xử lý ảnh, vấn đề xử lý ảnh………………………………………………… 2.1.1 Xử lý ảnh gì? 2.1.2 Các vấn đề xử lý ảnh………………………………………………………… 2.2 Một số khái niệm bản……………………………………………………………………… 2.2.1 Quan hệ điểm ảnh…………………………………………………………………  Tổng kết chương…………………………………………………………………… Chương 3: Làm quen với thư viện OpenCV 3.1 Giới thiệu OpenCV………………………………………………………………………… 3.1.1 OpenCV gì? 3.1.2 Cấu trúc tổng quan……………………………………………………………………… 3.2 Hướng dẫn sử dụng thư viện OpenCV……………………………………………  Tổng kết chương…………………………………………………………………… Chương 4: Bài toán phát nhận dạng mặt người 4.1 Detection……………………………………………………………………………………… 4.1.1 Bài toán xác định mặt người……………………………………………………… 4.1.2 Hướng tiếp cận dựa tri thức (knowledge-based)………………………… 4.1.3 Hướng tiếp cận dựa đặc trưng không đổi (feature invariant)……… 4.1.4 Hướng tiếp cận dựa phương pháp đối sánh mẫu (template matching)… 4.1.5 Hướng tiếp cận dựa diện mạo (appearance-based)……………………… 4.2 Recognition-Sử dụng Eigenfaces 4.2.1 Thuật toán PCA ứng dụng nhận dạng mặt người…………………… 4.2.2 Đi tìm Eigenfaces………………………………………………………………… 4.2.3 So sánh khoảng cách-Compare Distance………………………………………  Tổng kết chương…………………………………………………………………… Bộ môn Tin học công nghiệp ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền Chương 5: Xây dựng chương trình-Mô Xây dựng chương trình……………………………………………………………… 5.1.1 Phân tích…………………………………………………………………… 5.2 Thiết kế hệ thống……………………………………………………………………… 5.2.1 Xử lý ảnh đầu vào………………………………………………………… 5.2.2 Phát khuôn mặt ảnh…………………………………………… 5.2.3 Xử lý đầu ra………………………………………………………………… 5.2.4 Thiết kế sở liệu……………………………………………………… 5.2.5 Thiết kế giao diện chương trình…………………………………………… 5.3 Một số kết thực nghiệm…………………………………………………………  Tổng kết chương……………………………………………………………………… Kết Luận 5.1 Bộ môn Tin học công nghiệp ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền MỞ ĐẦU Lý chọn đề tài Với phát triển không ngừng khoa học công nghệ, đặc biệt với điện thoại thông minh (smartphone) ngày đại sử dụng phổ biến đời sống người làm cho lượng thông tin thu hình ảnh ngày tăng Theo đó, lĩnh vực xử lý ảnh trọng phát triển, ứng dụng rộng rãi đời sống xã hội đại Không dừng lại việc chỉnh sửa, tăng chất lượng hình ảnh mà với công nghệ xử lý ảnh giải toán nhận dạng chữ viết, nhận dạng dấu vân tay, nhận dạng khuôn mặt… Một toán nhiều người quan tâm lĩnh vực xử lý ảnh nhận dạng khuôn mặt (Face Recognition) Như biết, khuôn mặt đóng vai trò quan trọng trình giao tiếp người với người, mang lượng thông tin giàu có, chẳng hạn từ khuôn mặt xác định giới tính, tuổi tác, chủng tộc, trạng thái cảm xúc, đặc biệt xác định mối quan hệ với đối tượng (có quen biết hay không) Do đó, toán nhận dạng khuôn mặt đóng vai trò quan trọng nhiều lĩnh vực đời sống ngày người hệ thống giám sát, quản lý vào ra, tìm kiếm thông tin người tiếng,…đặc biệt an ninh, bảo mật Có nhiều phương pháp nhận dạng khuôn mặt để nâng cao hiệu suất nhiên dù hay nhiều phương pháp vấp phải thử thách độ sáng, hướng nghiêng, kích thước ảnh, hay ảnh hưởng tham số môi trường Bài toán Nhận diện khuôn mặt (Face Recognition) bao gồm nhiều toán khác như: phát mặt người (face detection), đánh dấu (facial landmarking), trích chọn (rút) đặc trưng (feature extration), gán nhãn, phân lớp (classification) Trong thực tế, nhận dạng khuôn mặt người (Face Recognition) hướng nghiên cứu nhiều nhà khoa học quan tâm, nghiên cứu để ứng dụng thực tiễn Ở trường đại học hàng đầu Công Nghệ Thông Tin Massachusetts Institute of Technology (MIT), Carnegie Mellon University (CMU), Standford, Berkeley công ty lớn Microsoft, Apple, Google, Facebook có trung tâm sinh trắc học (Biometrics Center) nghiên cứu nhận dạng khuôn mặt người trở thành lĩnh vực nghiên cứu Gần đây, công ty Hitachi Kokusai Electric Nhật cho đời camera giám sát, chụp ảnh tìm 36 triệu khuôn mặt khác có nét tương tự sở liệu vòng giây Có hai phương pháp nhận dạng phổ biến nhận dạng dựa đặc trưng phần tử khuôn mặt biến đổi Gabor Wavelet mạng Neural, SVM,…và nhận dạng dựa xét tổng thể toàn khuôn mặt phương pháp PCA, LDA, LFA Trong đó, PCA phương pháp trích rút đặc trưng nhằm giảm số chiều ảnh đơn giản mang lại hiệu tốt Hệ thống hoạt động ổn định có tính thích nghi cao liệu đầu vào thay đổi nhiều Bộ môn Tin học công nghiệp ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền Mục đích đề tài - Xây dựng dự án phần mềm ứng dụng nhận dạng khuôn mặt - Tìm hiểu thư viện OpenCv, phần mềm EmguCv - Nghiên cứu phương pháp trích chọn đặc trưng Eigenfaces - Tìm hiểu phương pháp xác định khuôn mặt (Face Detection) - Nghiên cứu phương pháp phân tích thành phần (Principal Component AnalysisPCA) Đối tượng phạm vi nghiên cứu đề tài a) Đối tượng: - Các phương pháp, thuật toán phục vụ cho việc phát nhận dạng khuôn mặt người ảnh - Bộ thư viện xử lý ảnh OpenCv công cụ hỗ trợ EmguCv - Bộ CSDL chuẩn Yalefaces, có thêm CSDL sinh viên tự thu thập b) Phạm vi nghiên cứu: - Tập trung tìm hiểu nhận dạng khuôn mặt (Face Recognition) không trọng tìm hiểu phát khuôn mặt (Face Detection) - Việc xử lý ảnh, nhận dạng khuôn mặt thỏa mãn điều kiện:  Ánh sáng bình thường, ngược sáng, ánh sáng đèn điện (Với CSDL tự thu thập)  Góc ảnh: Trực diện (frontal) góc nghiêng không 10o  Không bị che khuất (no occulusion)  Ảnh có chất lượng cao (high quality images) Bộ môn Tin học công nghiệp ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền CHƯƠNG 1: GIỚI THIỆU 1.1 Bài toán nhận dạng mặt người khó khăn 1.1.1 Bài toán nhận dạng mặt người Hệ thống nhận dạng mặt người hệ thống nhận vào ảnh đoạn video (một dòng hình ảnh liên tục) Qua xử lý, tính toán hệ thống xác định vị trí mặt người (nếu có) ảnh xác định người số người mà hệ thống biết (qua trình học) người lạ.[1] Hình Hệ thống nhận dạng mặt người Bộ môn Tin học công nghiệp ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền 1.1.2 Những khó khăn hệ thống nhận dạng khuôn mặt.[1] Bài toán nhận dạng mặt người toán nghiên cứu từ năm 70 Tuy nhiên, toán khó nên nghiên cứu chưa đạt kết mong muốn Chính thế, vấn đề nhiều nhóm giới quan tâm nghiên cứu Khó khăn toán nhận dạng mặt người kể đến sau: a Tư chụp, góc chụp: Ảnh chụp khuôn mặt thay đổi nhiều góc chụp camera khuôn mặt Chẳng hạn như: chụp thẳng, chụp chéo bên trái 45o hay chụp chéo bên phải 45o, chụp từ xuống, chụp từ lên, v.v… Với tư khác nhau, thành phần khuôn mặt mắt, mũi, miệng bị khuất phần chí khuất hết b Sự xuất thiếu số thành phần khuôn mặt: Các đặc trưng như: râu mép, râu hàm, mắt kính, v.v… xuất không Vấn đề làm cho toán trở nên khó nhiều c Sự biểu cảm khuôn mặt: Biểu cảm khuôn mặt người làm ảnh hưởng đáng kể lên thông số khuôn mặt Chẳng hạn, khuôn mặt người, khác họ cười sợ hãi, v.v… d Sự che khuất: Khuôn mặt bị che khuất đối tượng khác khuôn mặt khác e Hướng ảnh (pose variations): Các ảnh khuôn mặt biến đổi nhiều với góc quay khác trục camera Chẳng hạn chụp với trục máy ảnh nghiêng làm cho khuôn mặt bị nghiêng so với trục ảnh f Điều kiện ảnh: Ảnh chụp điều kiện khác về: chiếu sáng, tính chất camera (máy kỹ thuật số, máy hồng ngoại, v.v…), ảnh có chất lượng thấp ảnh hưởng nhiều đến chất lượng ảnh khuôn mặt g Aging condition: Việc nhận dạng ảnh mặt thay đổi theo thời gian vấn đề khó khăn, khả nhận dạng người h Các hệ thống cực lớn (very large scale systems): Các CSDL ảnh mặt test nhà nghiên cứu nhỏ (vài trăm tới vài chục nghìn ảnh mặt), nhiên thực tế CSDL lớn, ví dụ CSDL ảnh mặt cảnh sát đất nước chứa từ hàng triệu tới tỉ ảnh… 1.2 Tổng quan kiến trúc hệ thống nhận dạng mặt người.[1[2]] Một hệ thống nhận dạng mặt người thông thường bao gồm bốn bước xử lý sau: Phát khuôn mặt (Face Detection) Phân đoạn khuôn mặt (Face Alignment hay Segmentation) Trích chọn đặc trưng (Feature Extraction) Nhận dạng (Recognition) hay Phân lớp khuôn mặt (Face Clasaification) Bộ môn Tin học công nghiệp ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền Hình Các bước hệ thống nhận dạng khuôn mặt Phát khuôn mặt dò tìm, định vị vùng (vị trí) khuôn mặt xuất ảnh frame video Các vùng tách riêng để xử lý Phân đoạn khuôn mặt xác định vị trí mắt mũi, miệng thành phần khác khuôn mặt chuyển kết cho bước trích chọn đặc trưng Ở bước trích chọn đặc trưng, phương pháp trích chọn đặc điểm (mẫu nhị phân cục bộ-Local Binary Pattern-LBP, Gabor wavelets…) sử dụng với ảnh mặt để trích xuất thông tin đặc trưng cho ảnh từ thông tin thành phần khuôn mặt, kết ảnh biểu diễn dạng vector đặc trưng (feature vector) Những vecto đặc trưng liệu đầu vào cho mô hình huấn luyện trước để nhận dạng khuôn mặt (Face Recognition) hay phân lớp khuôn mặt (Face Classifition), tức xác định danh tính (identity) hay nhãn ảnh-đó ảnh Ở bước nhận dạng khuôn mặt (Face Recognition), thường phương pháp k-láng giềng gần (k-nearest neighbor:kNN) sử dụng Bên cạnh bước nêu trên, áp dụng thêm số bước khác tiền xử lý, hậu xử lý nhằm làm tăng độ xác cho hệ thống Ví dụ, sau bước phát khuôn mặt, ta thực bước tiền xử lý (Preprocessing) bao gồm bước chỉnh ảnh (face image alignment) chuẩn hóa ánh sáng (illumination normalization) Do số thông số như: tư khuôn mặt, độ sáng, điều kiện ánh sáng, v.v… phát khuôn mặt đánh giá bước khó khăn quan trọng so với bước lại hệ thống Tuy nhiên, phạm vi đồ án này, không tập trung tìm hiểu bước phát khuôn mặt mà tập trung chủ yếu vào bước nhận dạng khuôn mặt Dữ liệu cho hệ thống nhận dạng mặt chia làm tập: tập huấn luyện (training set), tập tham chiếu (reference set haygallery set) tập để nhận dạng (probe set hay query set, gọi test set) Trong nhiều hệ thống, tập training trùng với tập reference Tập training gồm ảnh dùng để huấn luyện (hay học-learning), thông thường tập dùng để sinh không gian (projection subspace) ma trận phương pháp hay sử dụng PCA (Principal Component Analysis), WPCA (Whitened PCA), LDA (Linear Discriminant Analysis), KPCA (Kernel PCA) Tập reference gồm ảnh biết danh tính chiếu (projected) vào không gian bước training Bước training nhằm mục đích: giảm số chiều (dimension reduction) vector đặc điểm (feature vector) vector thường Bộ môn Tin học công nghiệp ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền có độ dài lớn (vài nghìn tới vài trăm nghìn) nên để nguyên việc tính toán rất lâu, thứ hai làm tăng tính phân biệt (discriminative) ảnh khác lớp (định danh khác nhau), làm giảm tính phân biệt ảnh thuộc lớp (tùy theo phương pháp, ví dụ Linear Discriminant Analysis LDA- gọi Fisher Linear Discriminant Analysis-Fisherface phương pháp làm việc với tập training mà đối tượng có nhiều ảnh mặt điều kiện khác nhau) Sau thực chiếu tập reference vào không gian con, hệ thống lưu lại kết ma trận với cột ma trận vector tương ứng với ảnh (định danh biết) để thực nhận dạng (hay phân lớp) Nhận dạng (hay phân lớp) thực với tập ảnh probe, sau tiền xử lý xong, ảnh áp dụng phương pháp trích chọn đặc điểm (như với ảnh thuộc tập training reference) chiếu vào không gian Tiếp đến việc phân lớp dựa phương pháp k-NN, định danh ảnh cần xác định gán định danh ảnh có khoảng cách (distance) gần với Ở cần lưu ý ảnh vector nên dùng khái niệm hàm khoảng cách hai vector để đo khác biệt ảnh 1.2.1 Ngôn ngữ lập trình Để giải toán nhận dạng khuôn mặt sử dụng thư viện OpenCV, sử dụng ngôn ngữ lập trình như: NET C#, VB, IronPython, Java, C++… Trong đồ án ngôn ngữ lập trình sử dụng NET C#, viết phần mềm Visual Studio 2013 Bộ môn Tin học công nghiệp ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền  Hàm thực chức phát mặt người dòng hình ảnh camera Trong đó: The HaarCascade (haarface): Một đối tượng thuộc lớp Mô hình nhận diện: HaarCascade Đây tham số lời gọi DetectHaarCascade() Thực chất, file XML, từ đó, chuỗi liệu nạp cho phân loại Haar Có số thác phát khuôn mặt có trước OpenCV (và EmguCV) Các khuôn mặt ảnh phát nhờ mô hình nhận diện OpenCV cung cấp nhiều mô hình nhận diện khuôn mặt, phân loại tốt nhất, tùy trường hợp mà mô hình nhận dạng cho kết tốt mô hình Chúng ta thay đổi mô hình nhận dạng phần mềm cách dễ dàng, cần thay đổi tên tệp tin XML Ngoài mô hình nhận diện khuôn mặt, OpenCV cung cấp cho nhiều mô hình nhận diện khác, như: tròng mắt, mắt, mũi, tay… Ở đây, ta dùng mô hình nhận diện khuôn mặt, với: - haarface = “đường dẫn tới mô hình nhận diện” - mô hình nhận diện: haarcascade_frontalface_alt_tree.xml ScaleIncreaseRate: Tham số thứ hai lời gọi đến DetectHaarCascade() tỷ lệ co giãn, sử dụng thuật toán lặp-quét ảnh để tìm đối tượng (ở mặt người) Thiết lập cao làm tăng tốc độ phát khuôn mặt (giảm thời gian tìm kiếm, phát khuôn mặt ảnh) cách chạy đường chuyền hơn, cao, bạn nhảy nhanh phạm vi phát thiếu khuôn mặt Mặc định OpenCV 1.1, nói cách khác, tăng quy mô với hệ số 1.1 (10%) Thông số có giá trị: 1.1, 1.2, 1.3 1.4 Trong phần mềm, mặc định giá trị thông số ScaleIncreaseRate cao tức 1.4 Có nghĩa chạy số lượng lặp nhất, phát nhanh chóng khuôn mặt, bỏ qua số khuôn mặt Nếu thiết lập giá trị thấp hơn, việc kiểm tra, phát đối tượng: khuôn mặt hoàn hảo hơn, nhiều thời gian Tùy ảnh đầu vào mà điều chỉnh thông số để đạt kết mong muốn Minimum Neighbors Threshold (MinNeighbors) : Tham số thứ ba lời gọi đến DetectHaarCascade() “Ngưỡng hàng xóm tối thiểu”, thiết lập mức độ cắt cho việc loại bỏ giữ nhóm hình chữ nhật để xây dựng phân loại mạnh từ phân loại yếu Giả sử, với hình chữ nhật, ta xác định khuôn mặt-bộ phân loại mạnh Còn phân loại yếu tập hình chữ nhật thuộc phận khuôn mặt, phân loại yếu nhỏ Nếu số lượng khuôn mặt nhận dạng thực tế hạ thấp giá trị tham số (Dao động từ 0-4) Canny Pruning Flag: Tham số thứ tư biến cờ Hiện có hai lựa chọn: DO-CANNY-PRUNING Nếu lựa chọn Canny Pruning chọn, dò bỏ qua vùng mà khả có chứa khuôn mặt, giảm chi phí tính toán loại bỏ số phát sai Các Bộ môn Tin học công nghiệp 43 ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền vùng bỏ qua xác định cách chạy máy dò cạnh (máy dò cạnh Canny) ảnh trước chạy máy phát khuôn mặt Minimum Detection Scale (WindowSize): Quy mô phát tối thiểu Tham số thứ lời gọi đến DetectHaarCascade () kích thước khuôn mặt nhỏ để tìm kiếm Quy mô tối thiểu mặc định file XML 24x24 Tuy nhiên, phần mềm, để mặc định 25x25 Hình 18: Phát khuôn mặt dòng hỉnh ảnh camera Bộ môn Tin học công nghiệp 44 ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền 5.2.3 Xử lý đầu Các khuôn mặt sau phát tách khỏi ảnh, hiển thị lên picturebox Người dùng xem, di chuyển qua lại khuôn mặt phát (kể ảnh bị nhận nhầm khuôn mặt) Các khuôn mặt trước hiển thị lên picturebox chỉnh lại kích thước chuẩn hóa (tăng chỉnh độ sáng, đưa kênh màu: Ảnh Xám) Ảnh sau chuẩn hóa kiểm tra nhận dạng lưu vào CSDL dạng nhị phân 5.2.4 Thiết kế sở liệu CSDL trái tim hệ thống, việc thiết kế, tổ chức CSDL ảnh hưởng lớn đến hoạt động chương trình, liệu cần lưu trữ ảnh Dù kích thước ảnh không lớn, số lượng ảnh cần lưu trữ lại lớn Ảnh hưởng lớn đến tốc độ truy xuất liệu Do cần thiết kế, tổ chức CSDL cách hợp lý, việc lựa chọn Hệ quản trị CSDL quan trọng Ở đây, Hệ quản trị SQL server lựa chọn để xây dựng, quản lý CSDL Đây hệ quản trị CSDL mạnh, đáp ứng nhiều yêu cầu quản lý CSDL lớn Ta cần xác định thông tin cần lưu trữ: Ảnh khuôn mặt Tên người có khuôn mặt phát Id xác định đối tượng Ảnh (FaceImage) Ảnh đầu vào a Kiểu liệu: image b Is null: true Tên người (FaceName) c Kiểu liệu: nvarchar(200); d Is null: true; Id (FaceID) e Kiểu liệu: Int f Khóa g Mã tự tăng h Is null: false Bộ môn Tin học công nghiệp 45 ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền 5.2.5 Thiết kế giao diện chương trình Hình 19 Màn hình chương trình Giao diện chương trình thiết kế đơn giản, dễ nhìn Bố cục giao diện chia làm phần Phần 1, dành cho người dùng chọn đầu vào, ảnh tĩnh từ máy tính, mở webcam để lấy hình ảnh Phần bao gồm phần điều chỉnh thông số phát khuôn mặt, thông số nhận dạng khuôn mặt Và cuối phần nhận dạng khuôn mặt  Phần 1: - Button Browse Image: Mở hộp thoại để lấy ảnh tùy ý máy tính - Button Detect face: Thực việc tìm kiếm, phát mặt người ảnh, Imagebox Nếu có hiển thị thông báo số lượng khuôn mặt phát được, tách khuôn mặt hiển thị lên picturebox - Button Start: Khởi động webcam để thu hình ảnh - Button Extract face: Tách khuôn mặt phát dòng hình ảnh camera hiển thị lên picture box Bộ môn Tin học công nghiệp 46 ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền  Phần 2: Điều chỉnh thông số phát khuôn mặt - Scale Increase Rate - Min Neighbors - Min Detection Scale (Window Size) Điều chỉnh thông số nhận dạng khuôn mặt - Eigen Distance Threshold: Khoảng cách ngưỡng  Phần 3: - Picturebox pbInputFaces: Hiển thị ảnh khuôn mặt phsat ảnh - Picturebox pbTSFace: Hiển thị ảnh CSDL kết ảnh nhận dạng - Button Prev, Next: Di chuyển ảnh khuôn mặt phát - Button btnTSFirst, btnTSPArev, btnTSNxt, btnLoadTSLast: Di chuyển qua lại ảnh CSDL - Button btTrainforReg (Trained for Recognizer): Thực huấn luyện ảnh - Button btnCheckRecognizer (Check Recognizer): Thực nhận dạng khuôn mặt - Button btnView (View Information Of TrainingSet): Xem thông tin CSDL tập Training Set - Button btnAddtoTS (Add to Training Set): Lưu ảnh khuôn mặt phát vào CSDL - Button btnUpdateFace (Update Face): Cập nhật lại tên ID đối tượng - Button btnDelFace (Delete Face): Xóa đối tượng khỏi CSDL Bộ môn Tin học công nghiệp 47 ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền 5.3 Một số kết thực nghiệm - Với khoảng cách ngưỡng riêng β = 3000 Tên Đối tượng Subject 01 Subject 02 Lần nhận dạng Nhận dạng x x x x x x x x x x x x x x x x x x Bộ môn Tin học công nghiệp Không nhận dạng Subject 03 Nhận dạng sai x 48 ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền Subject 04 x x x x x x x x Subject 05 Subject 06 x x x x x x x x x Subject 07 Bộ môn Tin học công nghiệp x x x x x x 49 ĐAMH Công nghệ phần mềm Subject 08 Subject 09 GVHD Phùng Thị Thu Hiền x x x Tên đối tượng Số ảnh huấn luyện đối tượng Số ảnh test Tỷ lệ Nhận dạng Subject 01 22.22% Subject 02 50% Subject 03 57.14% Subject 04 16.67% Subject 05 5 80% Subject 06 75% Subject 07 0% Subject 08 0% Subject 09 0% Bộ môn Tin học công nghiệp 50 ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền - Với khoảng cách ngưỡng riêng β = 7000 Tên Đối tượng Subject 01 Lần nhận dạng Nhận dạng x x x x x x x x x x x x x x x x Bộ môn Tin học công nghiệp Không nhận dạng x Subject 02 Nhận dạng sai x 51 ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền x Subject 03 x x x x x x x Subject 04 Subject 05 Subject 06 Subject 07 x x x x x x x x x x x x x x Bộ môn Tin học công nghiệp x 52 ĐAMH Công nghệ phần mềm Subject 08 Subject 09 GVHD Phùng Thị Thu Hiền x x x x Tên đối tượng Số ảnh huấn luyện đối tượng Số ảnh test Tỷ lệ Nhận dạng Subject 01 88.89% Subject 02 75% Subject 03 71.43% Subject 04 83.33% Subject 05 5 100% Subject 06 100% Subject 07 33.33% Subject 08 50% Subject 09 100% Nhận xét: Từ bảng kết quả, ta thấy rằng, kết nhận dạng phụ thuộc nhiều vào giá trị khoảng cách ngưỡng riêng Do đó, cần điều chỉnh thông số cách phù hợp để thu kết tốt Ngoài ra, ảnh bị nhận dạng sai không nhận dạng phụ thuộc vào chất lượng ảnh đầu vào, đa số ảnh bị nhận dạng sai không nhận dạng ảnh bị chụp thiếu sáng Bộ môn Tin học công nghiệp 53 ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền Một số kết nhận dạng với liệu ảnh chưa chuẩn hóa - Ảnh đầu vào ảnh tĩnh - Ảnh đầu vào ảnh chụp từ camera Bộ môn Tin học công nghiệp 54 ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền  Tổng kết chương Phân tích, thiết kế hệ thống phần mềm nhận dạng mặt người o Thiết kế chức phần mềm o Thiết kế sở liệu o Thiết kế giao diện - Sử dụng phần mềm nhận dạng mặt người dựa sở liệu chuẩn hóa Yalefaces Nhận xét kết nhận dạng - Bộ môn Tin học công nghiệp 55 ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền KẾT LUẬN Báo cáo đồ án môn học trình bày kiến thức để giải toán nhận dạng khuôn mặt người Riêng phương pháp nhận dạng mặt người Eigenfaces xây dựng dựa phương pháp Eigenfaces-sử dụng thuật toán PCA trình bày cụ thể, chi tiết chương Phần mềm Face Recognition áp dụng phương pháp Eigenfaces thiết kế để nhận dạng mặt người Từ kết thực nghiệm cho thấy, độ xác chương trình tương đối cao khoảng 80% nhận dạng Tuy nhiên, thời hạn thời gian hạn chế nên chương trình nhiều nhược điểm nhiều ý tưởng chưa thực Để chương trình sử dụng vào thực tế, cần giải nhược điểm mà phần mềm gặp phải, thực ý tưởng nhằm cao tốc độ, hiệu suất độ xác chương trình Các ý tưởng mới: - Chuẩn hóa ảnh đầu vào nhằm tăng khả nhận dạng Đưa tất ảnh chưa chuẩn hóa kênh màu (đã thực được), kích thước cho khuôn mặt tâm ảnh (chưa thực được) - Các Button mở form để xem thông tin tập training set thông tin đối tượng chuyển sang tab, nhằm làm gọn chương trình - Sẽ tiến hành làm việc với sở liệu thư mục máy tính - Nhận dạng mặt người qua webcam Ta thực công việc mở camera, thu dòng hình ảnh, hiển thị lên Imagebox phát mặt người có Công việc cần thực là, sau phát hiện, xác định vị trí khuôn mặt ảnh Chương trình tự động thực việc nhận dạng hiển thị kết dòng hình ảnh camera Đó là, có thông tin người hình, hiển thị dòng chữ tên id người đó, ngược lại hiển thị dòng chữ “Unknow” Ta ứng dụng chức việc điểm danh sinh viên trường đại học Bộ môn Tin học công nghiệp 56 ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền DANH MỤC TÀI LIỆU THAM KHẢO [1] Trần Lê Hồng Dũ, “Phát khuôn mặt dựa đặc trưng lồi lõm” ĐH Quốc gia TP Hồ Chí Minh, 2005 [2] https://4fire.wordpress.com/2012/07/31/nhan-dang-mat-nguoi-face-recognition-bangpca-eigen-face-matlab-code-on-orl-database/ [3] TS Đỗ Năng Toàn, TS Phạm Việt Bình Giáo trình môn học: “Xử lý ảnh” Khoa Công Nghệ Thông Tin ĐH Thái Nguyên [4] PGS.TS Nguyễn Quang Toàn “Xử lý ảnh” Học Viện Công Nghệ Bưu Chính Viễn Thông Hà Nội-2006 [5] Nguyễn Văn Long “Ứng dụng xử lý ảnh thực tế với thư viện OpenCV C/C++” [6]http://www.codeproject.com/Articles/722569/Video-Capture-using-OpenCV-withCsharp https://vtct.wordpress.com/2013/05/ [7] Trần Thanh Duy, Nguyễn Minh Quang Báo Cáo đề tài: “Thiết kế thi công Robot bám đối tượng mặt người” Trường ĐH SPKT TP HCM [8] Lê Mạnh Tuấn Khóa luận tốt nghiệp ĐH hệ quy: “Phát mặt người ảnh ứng dụng” ĐH Công Nghệ Đại Học Quốc Gia Hà Nội [9] Nguyễn Trung Hiếu, Bùi Ngọc Liêm Đồ án tốt nghiệp: “Dò tìm cắt ảnh mặt người dùng PCA” ĐH Công Nghiệp TP HCM [10] Lê Hoàng Thanh “Dò tìm nhận dạng khuôn mặt người Eigenfaces” [11] http://vi.wikipedia.org/wiki/Ma_tr%E1%BA%ADn_hi%E1%BB%87p_ph%C6%B0%C6%A1 ng_sai Bộ môn Tin học công nghiệp 57 [...]... Thu Hiền CHƯƠNG 4: BÀI TOÁN PHÁT HIỆN VÀ NHẬN DẠNG MẶT NGƯỜI  Detection  Recognition 4.1 Face Detection 4.1.1 Bài toán xác định mặt người Nhận dạng 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ố) nếu có 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... xử lý ảnh -OpenCv - Giới thiệu, hướng dẫn cách cài đặt, sử dụng phần mềm EmguCv-là một phần mềm hỗ trợ giúp người dùng có thể sủ dụng bộ thư viện OpenCV một cách dễ dàng - Hướng dẫn cách sử dụng bộ thư viện OpenCv trong Visual Studio (với hình minh họa là Visual Studio 2010) - Hướng dẫn cách lấy các Control của thư viện OpenCv thêm vào Toolbox - Một số đoạn code ví dụ, sử dụng thư viện OpenCv trong chương... 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 loại ả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: - 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... á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 f Cơ sở tri thức (Knowledge Base) 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 Bộ môn Tin... và nhận dạng đối tượng (khuôn mặt, mắt…) 3.2 Hướng dẫn sử dụng các thư viện của OpenCV Để sử dụng các thư viện của OpenCV, có thể tải về một bản cài đặt OpenCV bằng cách truy cập địa chỉ: http://sourceforge.net/projects/opencvlibrary/ để tải về phiên bản mới nhất Sau khi tải về, tiến hành cài đặt bình thường, với thư mục mặc định là C:\Emgu Sau đó, cần tiến hành tùy chỉnh để có thể làm việc với OpenCV. .. xác định khuôn mặt người trong ảnh và trong đồ án này, hướng tiếp cận dựa trên diện mạo (appearance-based) được lựa chọn để thực hiện phát hiện khuôn mặt người trong ảnh Bộ môn Tin học công nghiệp 27 ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền 4.2 RECOGNITION-SỬ DỤNG EIGENFACES.[9][10] Eigen Faces là phương pháp áp dụng trực tiếp phép phân tích các thành phần chính PCA, nó đã được áp dụng rất... diễn, phát hiện và nhận dạng mặt Ưu điểm của phương pháp này là biểu diễn được toàn bộ ảnh và có độ nén rất tốt (loại bỏ nhiễu và dư thừa) Hình 12 Sơ đồ khối trích chọn đặc trưng sử dụng Eigen Faces 4.2.1 Thuật toán PCA và ứng dụng trong nhận dạng mặt người a) Giới thiệu chung về thuật toán Phân tích thành phần chính (Principal Coponent Analysis) gọi tắt là PCA là một thuật toán được sử dụng để tạo ra... nhận dạng cao hơn Bộ môn Tin học công nghiệp 28 ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền Nhược điểm của PCA:  PCA phân loại theo chiều lớn nhất của tập vector Tuy nhiên, chiều phân bố lớn nhất không phải lúc nào cũng mang lại hiệu quả tốt nhất cho bài toán 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 b) Ứng dụng trong bài toán nhận dạng mặt người Trong bài toán nhận dạng. .. nhiễu b) Ứng dụng trong bài toán nhận dạng mặt người Trong bài toán nhận dạng mặt người, 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, ta sẽ áp dụng thuật toán này để thực hiện công việc tìm một khuôn mặt giống với khuôn mặt cho trước với kích thước nhỏ hơn và chỉ mang những nét đặc trưng của khuôn mặt Đặc trưng PCA: Mục tiêu của phương pháp PCA là “giảm số chiều” của một... pháp xác định mặt người không chỉ dựa vào một hướng mà có liên quan đến nhiều hướng Trong phạm vi đồ án môn học này, chỉ giới thiệu tổng quan các hướng tiếp cận để xác định khuôn mặt người trong ảnh 4.1.2 Hướng tiếp cận dựa trên tri thức (knowledge-based) [7] 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à ... người dùng hệ thống o C:Emguemgucv-windows-universal-gpu 2.4.9.1847in; o C:Emguemgucv-windows-universal-gpu 2.4.9.1847inx64; o C:Emguemgucv-windows-universal-gpu 2.4.9.1847inx86;... khuôn mặt, ta thực bước tiền xử lý (Preprocessing) bao gồm bước chỉnh ảnh (face image alignment) chuẩn hóa ánh sáng (illumination normalization) Do số thông số như: tư khuôn mặt, độ sáng, điều kiện... …, cn) Do đó, ảnh XLA xem ảnh n chiều Sơ đồ tổng quát hệ thống XLA: Hình Các bước hệ thống xử lý ảnh Bộ môn Tin học công nghiệp 10 ĐAMH Công nghệ phần mềm GVHD Phùng Thị Thu Hiền Sơ đồ bao gồm

Ngày đăng: 05/11/2015, 16:35

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan