Xây dựng ứng dụng phát hiện khuôn mặt trong ảnh sử dụng OpenCV

61 56 0
Xây dựng ứng dụng phát hiện khuôn mặt trong ảnh sử dụng OpenCV

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG -o0o - ISO 9001:2015 XÂY DỰNG ỨNG DỤNG PHÁT HIỆN KHUÔN MẶT TRONG ẢNH SỬ DỤNG OPENCV ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng nghệ Thơng tin HẢI PHÒNG - 2019 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG -o0o - XÂY DỰNG ỨNG DỤNG PHÁT HIỆN KHUÔN MẶT TRONG ẢNH SỬ DỤNG OPENCV ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng nghệ Thơng tin Sinh viên thực : Cao Tiến Đạt Mã sinh viên : 1512111009 Giáo viên hướng dẫn : TS Ngô Trường Giang HẢI PHÒNG - 2019 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG -o0o - NHIỆM VỤ THIẾT KẾ TỐT NGHIỆP Sinh viên: Cao Tiến Đạt Mã sinh viên: Lớp: Ngành: Công nghệ Thông tin CT1901C 1512111009 Tên đề tài: “Xây dựng ứng dụng phát khuôn mặt ảnh sử dụng OpenCV” NHIỆM VỤ ĐỀ TÀI Nội dung yêu cầu cần giải nhiệm vụ đề tài tốt nghiệp a Nội dung: - Tìm hiểu tổng quan phát khuôn mặt ảnh - Tìm hiểu phương pháp phát khn mặt dựa đặc trưng Haarlike - Tìm hiểu số hàm thư viện OpenCV sử dụng cho phát khuôn mặt ảnh b Các yêu cầu cần giải - Trình bày tổng quan phát khn mặt ảnh - Hiểu trình bày phương pháp phát khuôn mặt dựa đặc trưng - Xây dựng ứng dụng phát khuôn mặt ảnh sử dụng OpenCV Các số liệu cần thiết để thiết kế, tính tốn Địa điểm thực tập CÁN BỘ HƯỚNG DẪN ĐỀ TÀI TỐT NGHIỆP Người hướng dẫn thứ nhất: Họ tên: Ngô Trường Giang Học hàm, học vị: Tiến sĩ Cơ quan công tác: Khoa Công nghệ Thơng tin Nội dung hướng dẫn: - Tìm hiểu tổng quan phát khuôn mặt ảnh - Tìm hiểu phương pháp phát khn mặt dựa đặc trưng - Tìm hiểu số hàm thư viện OpenCV sử dụng cho phát khuôn mặt ảnh Người hướng dẫn thứ hai: Họ tên: ………………………………………………………………………………… Học hàm, học vị……………………………………………………………………………… Cơ quan công tác: …………………………………………………………………………… Nội dung hướng dẫn: …………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… Đề tài tốt nghiệp giao ngày 01 tháng năm 2019 Yêu cầu phải hoàn thành trước ngày 21 tháng năm 2019 Đã nhận nhiệm vụ: Đ.T.T.N Sinh viên Đã nhận nhiệm vụ: Đ.T.T.N Cán hướng dẫn Đ.T.T.N Cao Tiến Đạt Ngơ Trường Giang Hải Phịng, ngày tháng .năm 2019 HIỆU TRƯỞNG GS.TS.NGUT Trần Hữu Nghị CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc PHIẾU NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN TỐT NGHIỆP Họ tên: Ngô Trường Giang Cơ quan công tác: Khoa Công nghệ Thông tin Họ tên sinh viên: Cao Tiến Đạt Ngành: Công nghệ Thông tin Nội dung hướng dẫn: - Tìm hiểu tổng quan phát khn mặt ảnh - Tìm hiểu phương pháp phát khn mặt dựa đặc trưng - Tìm hiểu số hàm thư viện OpenCV sử dụng cho phát khuôn mặt ảnh Tinh thần thái độ sinh viên trình làm đề tài tốt nghiệp: - Sinh viên chủ động tìm đọc tài liệu liên quan tới đề tài - Chấp hành nghiêm túc kế hoạch, tiến độ đề Đánh giá chất lượng đồ án (so với nội dung yêu cầu đề nhiệm vụ đề tài tốt nghiệp mặt lý luận, thực tiễn, tính tốn số liệu ): - Về mặt lý thuyết: Đồ án trình bày vấn đề Phát khuôn mặt ảnh, đặc trưng Haar-like, hàm OpenCV ứng dụng phát khuôn mặt ảnh - Về mặt thực nghiệm: Đồ án cài đặt chương trình phát khuôn mặt ảnh sử dụng hàm OpenCV, va dừng lại phát khuôn mặt nhìn thẳng (độ nghiêng, xoay ít) - Về hình thức: Báo cáo trình bày sáng sủa, bố cục hợp lý - Đồ án đáp ứng yêu cầu đề Ý kiến cán hướng dẫn: Đạt Không đạt Điểm:…………………………………… Ngày 25 tháng năm 2019 Cán hướng dẫn TS Ngơ Trường Giang QC20-B18 CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc PHIẾU NHẬN XÉT CỦA CÁN BỘ CHẤM PHẢN BIỆN Họ tên giảng viên: TS Đỗ Văn Chiểu Đơn vị công tác: Khoa Công nghệ Thông tin – Trường Đại học Dân lập Hải Phòng Họ tên sinh viên: Cao Tiến Đạt Ngành: Công nghệ Thông tin Đề tài tốt nghiệp: “Xây dựng ứng dụng phát khuôn mặt ảnh sử dụng OpenCV” Phần nhận xét giảng viên chấm phản biện Những mặt hạn chế Ý kiến giảng viên chấm phản biện Được bảo vệ Khơng bảo vệ Điểm:…………………………… Hải Phịng, ngày …… tháng 10 năm 2019 Cán chấm phản biện (Ký ghi rõ họ tên) Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV LỜI CẢM ƠN Em xin chân thành cảm ơn thầy, cô khoa Công nghệ Thông tin Truờng Ðại học quản lí cơng nghệ tình dạy dỗ, truyền đạt cho chúng em nhiều kiến thức quý báu Em xin tỏ lịng biết ơn sâu sắc đến thầy TS.Ngơ Truờng Giang, nguời tận tình giúp đỡ truyền đạt nhiều kinh nghiệm để đề tài thực hoàn thành Xin chân thành cảm ơn bạn khoa Công Nghệ Thông Tin, Ðai Học Quản lí cơng nghệ giúp đỡ nhiều trình thực đề tài Em xin trân trọng cảm ơn! Hải Phòng, tháng nǎm 2019 Sinh viên Cao Tiến Đạt Cao Tiến Đạt _ CT1901C Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV MỤC LỤC PHẦN MỞ ĐẦU CHƯƠNG 1: Tổng quan phát khuôn mặt 1.1 Giới thiệu phát khuôn mặt 1.2 Các hướng tiếp cận phát khuôn mặt 1.2.1 Hướng tiếp cận dựa tri thức 1.2.2 Hướng tiếp cận dựa đặc trưng không đổi 11 1.2.3 Hướng tiếp cận dựa so lớp mẫu 15 1.2.4 Hướng tiếp cận dựa máy học 18 1.2.5 Hướng tiếp cận tổng hợp 23 1.3 Khó khăn thách thức tốn phát khn mặt 24 1.4 Một số lĩnh vực ứng dụng phát khuôn mặt 25 CHƯƠNG 2: Phát khuôn mặt sử dụng đặc trưng Haar 26 2.1 Đặc trưng Haar 26 2.1.1 Đối tượng nhận dạng 26 2.1.2 Đặc trưng 27 2.2 Bộ phân lớp AdaBoost 30 2.2.1 Giới thiệu 30 2.2.2 Các hướng tiếp cận dị tìm khn mặt nhanh 30 2.2.3 Thuật toán AdaBoost 31 2.2.4 Bộ phân lớp AdaBoost 36 2.3 Dị tìm khn mặt 39 2.4 Nhận xét 40 2.4.1 Ưu điểm 40 2.4.2 Nhược điểm 41 CHƯƠNG 3: Thực nghiệm phát khuôn mặt 42 3.1 Mơ tả tốn 42 Phân tích lựa chọn cơng cụ 42 3.2 Phát khuôn mặt sử dụng hàm OpenCV 43 3.2.1 OpenCV 43 3.2.2 Cấu trúc OpenCV 44 Cao Tiến Đạt _ CT1901C Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV 3.2.3 Phát khuôn mặt với hàm OpenCV 45 3.3 Một số kết chương trình 49 KẾT LUẬN 51 Cao Tiến Đạt _ CT1901C Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV  Nếu mặt người vị trí (x,y) thực tế mặt người vị trí (x * scalestep , y * scalestep ) kích cỡ cửa sổ (𝑤0 * scalestep , ℎ0 * scalestep )  Gán 𝒘𝟏 = W / scale , 𝒉𝟏 = h / scale  Thu nhỏ ảnh từ kích thước (w x h) đến (𝒘𝟏 x , 𝒉𝟏 )  Gán w = 𝒘𝟏 h = , 𝒉𝟏  step = step + Nhận xét: Hệ số co scale định độ mịn cửa số dị tìm, scale nhỏ (≥ 1) có nhiều cửa sổ dị tìm nên xác Áp dụng thuật tốn dị theo kiến trúc tháp ta dị tìm tất khn mặt tất vị trí, song kích thước dị tìm bước sau: Bước 1: Kích thước từ (𝒘𝟎 , 𝒉𝟎 ) đến (𝒘𝟎 * scale, , 𝒉𝟎 * scale) Bước 2: Kích thước từ (𝒘𝟎 * scale, , 𝒉𝟎 * scale) đến ( 𝒘𝟎 ∗ 𝒔𝒄𝒂𝒍𝒆𝟐 , 𝒉𝟎 𝒔𝒄𝒂𝒍𝒆𝟐 ) ……………………………… Bước n: Kích thước từ ( 𝒘𝟎 ∗ 𝒔𝒄𝒂𝒍𝒆 𝒏 − 𝟏, 𝒉𝟎 𝒔𝒄𝒂𝒍𝒆 𝒏 − 𝟏) đến (w0 * scale, , 𝒉𝟎 * scale) 2.4 Nhận xét 2.4.1 Ưu điểm  Phương pháp cho độ xác tương đối cao (trên 90%), tốc độ dị tìm khn mặt nhanh, thích hợp để dị tìm khn mặt thời gia thực, video  Thích hợp với việc huấn luyện liệu bị nhiễu  Phương pháp trích chọn đặc trưng thực nhanh Cao Tiến Đạt _ CT1901C 40 Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV 2.4.2 Nhược điểm  Thuật tốn huấn luyện khn mặt thực chậm có nhiều phân loại yếu  Chỉ dị tìm khn mặt nhìn thẳng góc quay nhỏ  Khơng tính chất AdaBoost mang tính chất nhận định chưa chứng minh chặt chẽ Cao Tiến Đạt _ CT1901C 41 Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV CHƯƠNG 3: THỰC NGHIỆM PHÁT HIỆN KHUÔN MẶT 3.1 Mơ tả tốn Từ phương pháp đưa phần trước, tốn phát khn mặt thực theo hai bước chính:  Do tìm vùng khn mặt ảnh  Xác thực khn mặt Phân tích lựa chọn cơng cụ Đầu vào: Ảnh gốc Đầu ra: ảnh phát khuôn mặt Để nhận dạng khuôn mặt đặc trưng haar like ta phải đưa ảnh xám hóa, sau cho đặc trưng haarlike chạy khắp ảnh, khu vực so sánh cho giống với nhiều đặc chưng haar like đánh dấu lại Hình 3-1: Hệ thống phát khuôn mặt người Cao Tiến Đạt _ CT1901C 42 Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV Từ ảnh gốc ban đầu ta tính Integral image, mảng hai chiều với phần tử (x,y) tính tổng phần tử (x’,y’) với x’ < y y’ < y, làm để tính nhanh tổng giá trị mức xám vùng hình chữ nhật ảnh gốc Các vùng ảnh đưa qua hàm Haar để ước lượng đặc trưng, kết ước lượng đưa qua điều chỉnh Adaboost để loại bỏ nhanh đặc trưng khơng có khả đặc trưng khn mặt người Chỉ có tập nhỏ đặc trưng mà điều chỉnh Adaboost cho có khả đăc trưng khuôn mặt người chuyển sang cho định kết (là tập phân loại yếu) Bộ định tổng hợp kết khuôn mặt người kết phân loại yếu trả khuôn mặt người Mỗi phân loại yếu định kết cho đặc trưng Haar-like, xác định ngưỡng đủ nhỏ cho vượt tất liệu mẫu tập liệu huấn luyện (số lượng ảnh khuôn mặt tập huấn luyện 3.2 Phát khuôn mặt sử dụng hàm OpenCV 3.2.1 OpenCV Opencv viết tắt từ Open Source Computer Vision Library OpenCV thư viện mã nguồn mở phục vụ cho việc nghiên cứu hay phát triển thị giác máy tính Tối ưu hóa xử lý ứng dụng thời gian thực Giúp cho việc xây dựng ứng dụng xử lý ảnh, thị giác máy tính … cách nhanh OpenCV có 500 hàm khác nhau, chia làm nhiều phần phục vụ công việc như: xử lý ảnh, an ninh, camera quan sát, nhận diện, robot… Cao Tiến Đạt _ CT1901C 43 Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV Thư viện viết ngơn ngữ C C++ chạy hệ điều hành Linux, Window MacOsX OpenCV thiết kế để nâng cao hiệu suất tính tốn nhấn mạnh đến hệ thống thời gian thực OpenCV đưa hệ thống đơn giẩn, dễ sử dụng giúp người nhanh chóng xây dựng ứng dụng thị giác máy, kể hệ thống kiểm tra nhà máy, ảnh lĩnh vực y học, bảo mật, robot học… Nó chứa lập trình xử lý ảnh đơn giản, kể thực thi hàm bậc cao dị tìm khn mặt, theo dõi khuôn mặt, nhận dạng khuôn mặt… OpenCV giới thiệu vào tháng 1/1999, OpenCV sử dụng nhiều ứng dụng, sản phẩm nghiên cứu như: lĩnh vực hàng không, sử dụng giảm nhiễu y học, phân tích đối tượng, an ninh, hệ thống dị tìm, theo dõi tự động hệ thống bảo mật…., ngồi cịn sử dụng nhận dạng âm OpenCV cịn chìa khóa quan trọng robot sử dụng thị giác Stanford, Asimo 3.2.2 Cấu trúc OpenCV Cấu trúc opencv chia làm phần chính, số chia hình sau: Hình 3-2: Cấu trúc OpenCV Cao Tiến Đạt _ CT1901C 44 Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV CV (computer vision) thành phần chữa xử lý ảnh sở thuật toán thị giác máy tính mức cao MLL (machine learning library) thư viện machine learning, bao gồm nhiều lớp thống kê gộp công cụ xử lý HighGUI chứa thủ tục vào hàm dùng cho việc lưu trữ tải ảnh video CXCore chứa cấu trúc nội dung liệu sở 3.2.3 Phát khuôn mặt với hàm OpenCV Từ phương pháp đưa phần trước, tốn phát khn mặt thực theo bước:  Huấn luyện tập mẫu  Xác định khuôn mặt Ở bước huấn luyện tập mẫu Trong cài đặt Opencv 3.4.2 có sẵn thư mục huấn luyện có sẵn Ta sử dụng tài nguyên Ở bước xác định khuôn mặt chia làm bước:  Tiền xử lí  Dị tìm khn mặt  Hậu xử lí 3.2.3.1 Huấn luyện tập mẫu Ta sử dụng huấn luyện có sẵn thư mục opencv Hình 3-3: Trong thư mục Opencv có huấn luyện có sẵn Cao Tiến Đạt _ CT1901C 45 Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV 3.2.3.2 Xác định khuôn mặt Bước 1: Tiền xử lí Một lưu ý nhỏ phương pháp HA thực ảnh xám (gray image) Mỗi điểm ảnh (pixel) có giá trị mức xám từ đến 255 (không gian màu bit) Như phương pháp HA không khai thác đặc điểm màu sắc khuôn mặt để nhận dạng song hiệu Ảnh màu chuyển ảnh xám để nhận dạng, việc chuyển đổi đơn giản, thực hàm chuyển đổi sử dụng với câu lệnh Opencv nên báo cáo chưa đề cập tới Sau chuyển thành ảnh xám, ảnh lại tiếp tục chuyển thành “ảnh tích hợp” bước trình nhận dạng, đặc trưng Haar-like làm việc trực tiếp ảnh tích hợp Hình 3-4: Chuyển ảnh xám Bước 2: Dị tìm khn mặt Integal Image mảng chiều với kích thước ảnh cần tính đặc trưng Haar Bắt đầu từ vị trí bên trái đến vị trí dưới, bên phải ảnh Sau tính Integral Image, việc tính tổng điểm ảnh vùng ảnh thực đơn giản Cao Tiến Đạt _ CT1901C 46 Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV Để phát khuôn mặt, hệ thống cho cửa sổ (sub-window) có kích thước cố định quét lên toàn ảnh đầu vào Như có nhiều ảnh ứng với cửa sổ con, đặc trưng Haar-like đặt lên cửa sổ để từ tính giá trị đặc trưng Sau giá trị huấn luyện xác nhận xem khung hình có phải khn mặt hay khơng Hình ví dụ: khung màu xanh cửa sổ con, đặc trưng Haar-like với kích thước vị trí đặt hình sau: Hình 3-5: Tầm nhìn máy tính đặc trưng Haar chạy Bước 3: Hậu xử lí Sau quét cửa sổ khắp ảnh Đặc trưng Haar so sánh với huấn luyện mẫu đánh dấu nơi khn mặt ảnh Hình 3-6 Trong đó: faces.width/height: Chiều rộng/cao đặc trưng Haar Cao Tiến Đạt _ CT1901C 47 Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV Hàm detectMultiScale phần tìm kiếm khn mặt, hàm (hay phương thức) thuộc lớp CascadeClassifier (lớp phục vụ tìm kiếm đối tượng Opencv) Hàm detectMultiScale sau tìm kiếm xong trả giá trị gồm tọa độ gốc khung chứa khuôn mặt x,y ; chiều dài, rộng khung w, h Các giá trị nằm mảng faces Cấu trúc for… duyệt qua toàn giá trị này, với giá trị ta dùng hàm rectangle để vẽ hình chữ nhật lên ảnh ban đầuvới tọa độ điểm trái phải dưới: (x,y), (x+w,y+h) (0,0,255) màu vẽ hình chữ nhật Hình 3-7: Các đặc trưng Haar đánh dấu nơi khn mặt Sau đánh dấu hết nơi khn mặt gộp lại hình chữ nhật chứa khn mặt hình chữ nhật cho khuôn mặt Cao Tiến Đạt _ CT1901C 48 Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV Hình 3-8: Bức ảnh xác định khn mặt 3.3 Một số kết chương trình Hình 3-9: Bức ảnh cần nhận diện khn mặt Cao Tiến Đạt _ CT1901C 49 Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV Hình 3-10: Giao diện chương trình Hình 3-11: Kết Thử nhiệm với ảnh có nhiều khn mặt: Cao Tiến Đạt _ CT1901C 50 Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV Hình 3-12: Bức ảnh có nhiều khn mặt Hình 3-14: Kết ( khn mặt nghiêng chưa nhận dạng được) Cao Tiến Đạt _ CT1901C 51 Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV Cao Tiến Đạt _ CT1901C 52 Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV KẾT LUẬN Qua tìm hiểu tốn phát mặt người ảnh em thấy quan trọng xử lý ảnh phát triển tầm quan trọng toán phát mặt người đời sống Trong trình xây dựng chương trình em tìm hiểu thư viện mã nguồn mở OpenCV Qua biết cách sử dụng hàm xây dựng sẵn thư viện OpenCV Về chương trình em thực phát mặt người ảnh, kết đạt mong muốn, thời gian phát nhanh mặt người chụp thẳng, chất lượng ảnh tốt, khơng có vật cản…., ảnh chụp nghiêng hay ảnh có màu sắc tối chương trình chưa phát khn mặt ảnh Em tìm hiểu thêm cố gắng khắc phục Cao Tiến Đạt _ CT1901C 53 Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV TÀI LIỆU THAM KHẢO [1.] https://123doc.org/document/2903809-bao-cao-do-an-phat-hienkhuon-mat-voi-thuat-toan-adaboost.htm) [2.] https://www.stdio.vn/articles/opencv-voi-python-trong-ungdung-phat-hien-khuon-mat-trong-buc-anh-617 Cao Tiến Đạt _ CT1901C 54 ... CT1901C Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV MỤC LỤC PHẦN MỞ ĐẦU CHƯƠNG 1: Tổng quan phát khuôn mặt 1.1 Giới thiệu phát khuôn mặt 1.2 Các hướng tiếp cận phát khuôn. .. tham khảo Cao Tiến Đạt _ CT1901C Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV CHƯƠNG 1: TỔNG QUAN VỀ PHÁT HIỆN KHUÔN MẶT 1.1 Giới thiệu phát khuôn mặt Trong năm gần đây, có nhiều cơng... CT1901C Xây dựng ứng dụng phát khuân mặt ảnh sử dụng OpenCV 3.2.3 Phát khuôn mặt với hàm OpenCV 45 3.3 Một số kết chương trình 49 KẾT LUẬN 51 Cao Tiến Đạt _ CT1901C Xây dựng ứng

Ngày đăng: 04/08/2020, 10:33

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan