Đề tài dự đoán tuổi qua khuôn mặt bằng python

63 0 0
Đề tài dự đoán tuổi qua khuôn mặt bằng python

Đ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

1 TRƯỜNG ĐẠI HỌC KINH BẮC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP Nhóm – 07DCNTT02 ĐỀ TÀI: DỰ ĐỐN TUỔI QUA KHN MẶT BẰNG PYTHON GIẢNG VIÊN HƯỚNG DẪN: SINH VIÊN THỰC HIỆN: TS.Trần Đức Nghĩa Đặng Thị Huế Trần Thanh Minh BẮC NINH – 2021 MỤC LỤC DANH MỤC HÌNH IV LỜI NÓI ĐẦU VI CHƯƠNG 1: KHÁI QT VỀ NHẬN DIỆN KHN MẶT ĐỐN TUỔI .1 1.1 Tổng quan nhận diện khn mặt đốn tuổi .1 1.2 Bài toán dự đoán tuổi 1.3 Yêu cầu đề tài CHƯƠNG 2: CÁC THUẬT TOÁN NHẬN DIỆN KHUÔN MẶT 2.1 Khái quát xử lý ảnh 2.1.1 Một số khái niệm 2.1.2 Các hệ thống xử lý ảnh 2.1.3.Xây dựng hệ thống đưa tuổi từ khuôn mặt .5 2.2 Nhận dạng khuôn mặt sử dụng Bag- of- Words 2.2.1 Chi tiết thuật toán .7 2.2.2 Kết Quả Thực Nghiệm 2.2.3 Ưu Nhược Điểm Thuật Toán 2.2.4 Nhận Xét Thuật Toán 2.3 Nhận Dạng Khuôn Mặt Sử Dụng Thuật Toán FaceNet .9 2.3.1 Chi tiết thuật toán 2.3.2 Thực Nghiệm 15 2.3.3 Ưu Nhược Điểm Thuật Toán 16 2.3.4 Nhận Xét Thuật Toán 16 2.4 Nhận Dạng Khn Mặt Sử Dụng Thuật Tốn DeepFace 16 2.4.1 Chi Tiết Thuật Toán 16 2.4.2 Biểu Diễn 19 2.4.3 Thực Nghiệm 22 2.4.4 Ưu Nhược Điểm Thuật Toán 23 2.4.5 Nhận Xét Thuật Toán 23 2.5 Nhận Dạng Khn Mặt Sử Dụng Thuật Tốn Open CV 23 CHƯƠNG : CÁC ĐẶC TRƯNG TRÊN KHUÔN MẶT GÂY NÊN SỰ BIẾN HÓA VỀ ĐỘ TUỔI 28 3.1 Các đặc trưng khuôn mặt .28 3.2 Đặc trưng lõm 30 3.3.Rút trích đặc trưng lõm 31 3.3.1.Điểm lõm 31 3.3.2 Dị tìm lấy vùng lõm 32 3.3.3.Dò phát vùng lõm nhiều mức khác 35 3.4 Phát mặt người ảnh dựa đặc trưng lõm 46 3.4.1 Gán nhãn 46 3.4.2 Thống kê 46 3.4.3 Tính tốn thơng số tăng trưởng 47 CHƯƠNG THIẾT KẾ VÀ XÂY DỰNG TRƯƠNG TRÌNH .50 4.1 Chức chương trình 50 4.2 Xây dựng chương trình 50 4.2.1 Phát khuôn mặt người .50 4.2.2 Chương trình nhận dạng 51 DANH MỤC HÌN Hình 1 Xác định tuổi khuôn mặt .3Y Hình Quá trình xử lý ảnh Hình 2 Các bước hệ thống xử lý ảnh Hình Hệ thống nhận diện mặt người đặc trưng .5 Hình Kết cấu khn mặt .7 Hình Màu sắc da mặt Hình Sơ đồ thuật toán Khối Bag of Word .9 Hình Ảnh liệu AR 10 Hình Kết thực nghiệm liệu AR 10 Hình Chia ảnh theo lưới vuông chia ảnh theo superpixel .11 Hình 10 Cấu trúc mơ hình mạng bao gồm khối lớp vào (batch) qua cấu trúc 11 Hình 11 Ví dụ ba sai số 12 Hình 12 Bộ ba sai số tối thiểu hóa 13 Hình 14 Kết vector ảnh đưa vào 16 Hình 15 Cấu trúc mạng Zeiler Fergus đề xuất 16 Hình 16 Module Inception dạng nguyên thủy dạng giảm chiều 17 Hình 17 FaceNet sử dụng mơ hình Inception 17 Hình 18 Một số cặp ảnh nhận dạng sai liệu LFW .18 Hình 19 Quy trình canh chỉnh mặt 19 Hình 20 Cấu trúc huấn luyện DeepFace 21 Hình 21 Đặc trưng Haar Cascade 26 Hình 22 Đọc ảnh từ Webcam 27 Hình 23 Vẽ khung chữ nhật quanh khn mặt .27 Hình 24 Crop mặt 28 Hình 25 Hiển thị thông tin tuổi 28 Hình 26 Nhận dạng khuôn mặt Haar Cascade .28 Hình Dị tìm thơng tin lõm 30 Hình Dị tìm vùng lõm ảnh 31 Hình 3 Tập lọc 32 Hình Dị tìm vùng lõm nhiều mức khác 34 Hình Ảnh tích phân .35 Hình Tính tổng độ sáng cho hình chữ nhật R(l,t,r,b) 36 Hình Tạo cấp bậc 37 Hình Một rút trích từ khuôn mặt 37 Hình Vị trí vùng tương đối nút .38 Hình 10 Cách tính vecto đại diện độ sáng cho nút 38 Hình 11 Cây rút trích thơng tin nút 39 Hình 12 Gán nhãn ảnh 43 Hình 13 Mơ hình phát khn mặt 44 Hình 14 Mơ hình tăng trưởng quan sát qua lứa tuổi .44 Hình 15 Tăng trưởng kích thước khuôn mặt 45 LỜI NĨI ĐẦU Lời mq đầu Cơng nghệ thơng tin ngày phát triển có vai trị quan trọng thiếu sống đại Con người ngày tạo cỗ máy thơng minh có khả tự nhận biết xử lí cơng việc cách tự động, phục vụ cho lợi ích người Trong năm gần đây, toán nhận nhiều quan tâm tốn nhiều công sức lĩnh vực cơng nghệ thơng tin, toán nhận dạng Tuy xuất chưa lâu quan tâm tính ứng dụng thực tế toán phức tạp Bài tốn nhận dạng có nhiều lĩnh vực như: nhận dạng vất chất (nước, lửa, đất, đá, gỗ ) nhận dạng chữ viết, nhận dạng giọng nói, nhận dang hình dáng, nhận dạng khn mặt đốn tuổi qua khuôn mặt thịnh hành làứng dụng giúp bạn dự đốn tuổi qua khuôn mặt, thay cho việc upload chụp ảnh sau qt đốn tuổi thật gần người Với hấp dẫn toán thách thức cịn phía trước, cơng nghệ đại ứng dụng thực tế tuyệt vời nó, nhóm em chọn đề tài nghiên cứu: DỰ ĐOÁN TUỔI QUA KHUÔN MẶT BẰNG PYTHON làm để tài nghiên cứu Mục tiêu đề tài Xây dựng model dự đoán tuổi thông qua khuôn mặt,… Phạm vi nghiên cứu - Hệ thống lưu trữ thông tin liên quan đến dự án đốn tuổi thơng qua nhân dạng khn mặt - Tìm hiểu Opencv VGGFace - Tìm hiểu phương pháp xác định khuôn mặt - Phạm vi nằm nghiên cứu khuôn mặt người từ - 100 tuổi - Sử dụng ngơn ngữ lập trình PYTHON Phương pháp nghiên cứu Recommandé pour toi 26 Suite du document ci-dessous [Marketing Plan] dự án giày Biti's - Final Lập trình mạng 100% (3) Bài tập lớn thực sở : - Thu thập, tổng hợp ảnh - Bộ xử lý ảnh Opencv công cụ hỗ trợ VGGFace - Các phương pháp, thuật tốn phục vụ cho việc phát khn mặt dự đốn tuổi thơng qua việc dự đốn - Tìm hiểu điều kiện để phục vụ cho việc xử lý ảnh nhận dạng khuôn mặt Như là: Ánh sáng, góc ảnh, chất lượng ảnh… CHƯƠNG 1: KHÁI QT VỀ NHẬN DIỆN KHN MẶT ĐỐN TUỔI 1.1 Tổng quan nhận diện khn mặt đốn tuổi Nhận dạng khn mặt tốn lâu đời nghiên cứu rộng rãi khoảng 30 năm trở lại Bài tốn nhận dạng khn mặt áp dụng rộng rãi nhiều lĩnh vực khác Các ứng dụng liên quan đến nhận dạng khn mặt kể như: Hệ thống phát tội phạm, hệ thống theo dõi nhân đơn vị, hệ thống tìm kiếm thơng tin ảnh, video dựa nội dung, … Và hẳn nghe qua câu truyện SharkTank Việt Nam có startup làm bán hàng, khách hàng đến đứng trước camera dự đốn tuổi, giới tính khách để chuẩn bị mặt hàng phù hợp khơng? Phải nói thú vị ấn tượng với tốn họ hơm làm toán đoán tuổi qua khn mặt 1.2 Bài tốn dự đốn tuổi Nhiệm vụ toán đưa ước lượng tuổi người từ ảnh chụp khuôn mặt họ Bài toán giới thiệu lần Kwon Lobo đó, họ sử dụng phương pháp phát tính tốn tỷ lệ nếp nhăn khn mặt để dự dốn độ tuổi sau cải tiến Ramanathan Chellappa Tuy nhiên, phương pháp phân biệt độ tuổi người lớn trẻ em, khó phân biệt độ tuổi người lớn với Một cách tiếp cận khác Geng cộng trình bày sử dụng AGES cho hiệu cao thuật tốn cần lượng lớn hình ảnh khn mặt người đặc biệt hình ảnh đầu vào cần phải giữa, mặt hướng thẳng chỉnh kích thước Tuy nhiên, thực tế ảnh chụp lại thỏa mãn điều kiện cách tiếp cận không phù hợp với nhiều ứng dụng thực tế Để dự đốn tuổi qua khn mặt trước hết cần phải có hệ thống nhận dạng khn 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 chuỗi ảnh) Qua xử lý tính tốn hệ thống xác định vị trí mặt người ảnh (nếu có) xác định người số người hệ thống biết (qua trình học) người lạ Sau có thơng tin khn mặt đưa khn mặt vào thuật tốn để thuật đốn đưa độ tuổi khn mặt đưa vào 1.3 Yêu cầu đề tài Từ ảnh chụp phần (hay góc) khn mặt, ta cần xác định xem mặt Yêu cầu ảnh phải đảm bảo thấy 50% diện tích khn mặt phần chi tiết mắt, mũi, miệng … Từ xác định tuổi khn mặt Hình 1 Xác định tuổi khuôn mặt 48 quan trọng tốn phát nhận dang khn mặt sau Để lưu trữ thông tin cây, ta sử dụng phương pháp phân tích thành phần (Principal Component Analysis – PCA) để giảm số chiều ảnh mức xám vùng ảnh nút Bằng cách ta giảm đáng kể thông tin phải lưu trữ độ sáng ảnh Thay phải lưu trữ toàn điểm sáng vùng lõm (các nút), cần lưu vector PCA chứa nội dung điểm sáng Cách giúp cho giảm thông tin phải lưu trữ, xử lý mà khơng mát q nhiều thơng tin Hình 10 Cách tính vecto đại diện độ sáng cho nút Cụ thể ta thực sau: dùng cửa sổ S kích thước 9x9 quét theo đường zic-zac ảnh xám vùng lõm Các cửa cổ chồng lắp lên hai phần ba kích thước Tại điểm, ta lưu lại trung bình mức sáng điểm ảnh cửa sổ S Như ta lưu vector tương ứng cho biểu diễn mức sáng điểm ảnh nút 49 Nội dung nút Được phóng ra: Kiểu lõm Hình vng Vị trí: Hình 11 Cây rút trích thơng tin nút Bên cạnh đó, ta sử dụng số luật để tỉa bớt nhánh cho Nếu nút kiểu (lõm) so với nút cha xem nút lặp Trong trường hợp này, nút lặp tỉa khỏi Nếu nút lá, dễ dàng xóa khỏi b, Xây dựng hàm tính độ tương đồng hai Trong phần ta tìm hiểu cách tính độ tương đồng hai lõm theo cách biểu diễn phần trước Việc xây dựng hàm tương đồng hai cần thiết tất xử lý liên quan đến đặc trưng Nó có tính chất định ảnh hưởng đến độ xác phát nhận dạng khuôn mặt 50 Độ tương đồng hai nút Để xây dựng hàm tính độ tương đồng hai trước hết ta cần xây dựng hàm tính độ tương đồng hai nút hai Với điều kiện hai nút thuộc hai khác mức i Đặt N1 N2 hai nút cấp hai T1 T2 Khi N1 N2 có thuộc tính sau: (2.10) Trong đó: t {ridge, valley} : loại nút (lõm) s = {square, horizontal rectangle, vertical rectangle} (vng,hình chữ nhật ngang, hình chữ nhật đứng) p nút nút cha i hình dạng nút [0 12] : vị trí tương đối (a1,a2, ,an) : vector chứa thơng tin độ sáng nút Trong n thay đổi tùy theo cấp nút Ở mức i cao, kích thước vùng lõm tương ứng với nút lớn, số chiều n vector cao Dựa thuộc tính node định nghĩa công thức 3.9, ta xây dựng công thức tính độ tương đồng nút sau: (2.11) Trong công thức (2.11), , , thông số thực ngiệm, hàm E(x,y) dùng để xét giống thuộc tính định nghĩa sau: (2.12) Bên cạnh ký hiệu EV(x,y) hàm tính độ tương đồng vector chuẩn hóa đoạn [0,1] Trong x y hai vector độ sáng có n chiều (a1,a2, an) 51 (2.13) Do thành phần vector độ sáng có giá trị độ sáng (ai [0,255]) nên dễ dàng chứng minh EV(x,y) [0,1] EV(x,y) đạt giá trị lớn hai vector x y trùng Và EV(x,y) đạt giá trị nhỏ hai vector có khoảng cách Euclid xa Và từ ta dễ dàng suy giá trị NS (N1, N ) [0,1] với cặp nút N1 N2 Độ tương đồng hai : Trên sở hàm tính độ tương đồng hai nút, ta xây dựng lên hàm tính độ tương đồng hai Gọi T1 T2 hai cần tính độ tương đồng T1 T2 có thuộc tính sau: T1,T2 Tree = {(r, n, c1, c2 , ,cn )} (2.14) Trong đó: r : nút gốc r Node n : số nhánh n N ci : (nhánh) thứ i ci Tree i [1 n] ci nút là khác Từ công thức (2.13), ta xây dựng cơng thức tính độ tương đồng sau: 52 (2.15) Trong thơng số thực nghiệm Các thông số thực nghiệm 1, 1, công thức (2.10) (2.14) thảo luận chi tiết phần thực nghiệm nhằm chọn thông số thực nghiệm tốt Theo công thức (2.15) ta dễ dàng nhận thấy TS (T1,T2 ) [0,1] với cặp T1 T2 Giá trị hàm lớn, hai giống nhiều Ngoài ra, phần thử nghiệm chúng tơi có thử nghiệm đặc trưng lồi lõm mà khơng sử dụng đến thơng tin độ sáng Khi cơng thức(2.10) tính độ tương đồng hai nút đơn giản hóa sau: (2.16) Khơng gian khoảng cách hai Trong số trường hợp, hàm tính độ tương đồng hai khơng đủ để tính tốn số trường hợp Để đưa tốn khơng gian, ta xây dựng “khơng gian cây” (tree-space), không gian sở tốn phát nhận dạng khn mặt sau Trong không gian này, xem điểm không gian Trên sở ta xây dựng hàm tính khoảng cách hai sau: (2.17) Dễ dàng nhận thấy, khoảng cách hai giá trị thuộc đoạn [0,1] Và khoảng cách tiến dần không hai giống Trên cở sở công thức tính độ tương đồng, khoảng cách này, ta xây dựng mơ hình thống kê để dị tìm phát khn mặt Mơ hình dùng cho nhận dạng khuôn mặt mở rộng cho tốn phân loại đối 53 tượng Phần mơ hình trình bày chương sau Các phần thảo luận khả mở rộng mơ hình cho tốn nhận dạng khn mặt phân loại đối tượng trình chương kết luận hướng phát triển 3.4 Phát mặt người ảnh dựa đặc trưng lõm 3.4.1 Gán nhãn Từ tập ảnh học, ta dùng phương pháp trình bày chương để rút trích lõm ảnh Các gán nhãn thủ công Mỗi gán nhãn mặt (face) hay khuôn mặt (non-face) Như vậy, từ tập ảnh học ta rút trích hai tập Tập biểu diễn khuôn mặt tập biểu diễn đối tượng khơng phải khn mặt Hình 12 Gán nhãn ảnh 3.4.2 Thống kê Mục đích bước xấp xỉ cấu trúc khuôn mặt Trong bước gán nhãn, tơi tiến hành rút trích gán nhãn Kết thu số lượng thuộc lớp “khuôn mặt” Các dùng làm liệu học thống kê Mơ hình thống kê sử dụng sau: 54 Đặt S(Tx) tổng khoảng cách T x đến tất lại tập học (2.18) Ta có tập học trở thành (2.19) Trong FaceSet tập gán nhãn “khuôn mặt” Việc học thống kê theo mơ hình đơn giản Trước tiên, chọn tập Training k có giá trị S(T) bé k đại diện tiêu biểu cho lớp khn mặt Từ kết k rút trích được, tạm gọi tập chuẩn, ta dùng chúng để phát khn mặt theo mơ sau: Hình 13 Mơ hình phát khn mặt Trong mơ hình này, trước tiên từ ảnh đầu vào ta dùng phương pháp rút trích lõm ta nhận danh sách lõm Ứng với ta dựa vào tập chuẩn để kiểm tra xem liệu có phải biểu diễn “khn mặt” hay khơng Nếu thỏa điều kiện đánh giá trở thành ứng viên khuôn mặt Trong bước cuối cùng, hậu xử lý, ứng viên kiểm tra ràng buộc Và sau khử trùng lắp khn mặt có số có phần nút gốc chồng lên 3.4.3 Tính tốn thông số tăng trưqng Nguyên mẫu khuôn mặt cho độ tuổi khác tạo cách sử dụng phép đo nhân trắc học 55 Hình 14 Mơ hình tăng trưởng quan sát qua lứa tuổi Ràng buộc tuyến tính phi tuyến tính tham số tăng trưởng: Hình 15 Tăng trưởng kích thước khn mặt Thuật ngữ: [ k , k , … ,k 15 ] Các thông số tăng trưởng dựa độ tuổi xác định 15 mốc khn mặ Việc tính tốn tham số tăng trưởng xây dựng giống cơng thức tính 56 c1 Tỷ lệ phép đo khuôn mặt dựa tuổi Sử dụng tối ưu hóa Levenberg Marquardt để giải thơng số tăng trưởng dựa độ tuổi xác định mốc khuôn mặt: Sử dụng công thức spline mỏng, tính tốn thơng số tăng trưởng vùng khác khuôn mặt 57 CHƯƠNG THIẾT KẾ VÀ XÂY DỰNG TRƯƠNG TRÌNH 4.1 Chức chương trình Chương trình viết ngơn ngữ lập trình python, với hỗ trợ thư viện xử lý ảnh OpenCV Chức chương trình dự đốn tuổi qua khn mặt Ngồi chương trình cịn có nhận diện khn mặt tạo liệu trình thực chương trình 4.2 Xây dựng chương trình 4.2.1 Phát khn mặt người Chuẩn bị liệu Sử dụng kho ảnh WIKI để train Dữ liệu đầy đủ mặt ,cả ngày tháng năm sinh tuổi tác để train Hình Tập ảnh Wiki file data File xml haarcascade để phát khuôn mặt đặt thư mục model Thư mục chứa model pretrain, train toán File pretrain weights mạng VGGFace VGG16 mơ hình mạng nơ-ron tích tụ đề xuất K Simonyan A Zisserman từ Đại học Oxford 58 báo “Mạng lưới kết hợp sâu để nhận dạng hình ảnh quy mơ lớn” Mơ hình đạt độ xác kiểm tra top 92,7% ImageNet,là tập liệu 14 triệu hình ảnh thuộc 1000 lớp Đây mơ hình tiếng nộp cho ILSVRC-2014 Nó cải tiến AlexNet cách thay lọc có kích thước hạt nhân lớn (11 lớp chập thứ hai, tương ứng) nhiều lọc kích thước hạt nhân × VGG16 đào tạo nhiều tuần sử dụng GPU NVIDIA Titan Black Hình VGG-16 4.2.2 Chương trình nhận dạng Hình Lưu đồ thuật tốn đốn tuổi qua khn mặt 59 Đánh giá kết chương trình: Sau xây dựng chường trình, thử nghiệm với khn mặt đưa vào xử lý với khn mặt kích thước 224x224 Sau lần thử nghiệm thu bảng kết sau: Bảng Kết dự báo tuổi hợp lý 60 Hình 4 Hiệu suất dự đốn tuổi 61 TÀI LIỆU THAM KHẢO Narayanan Ramanathan and Rama Chellappa, "Modeling Age Progression in Young Faces" (accepted in CVPR 2006, New York) Narayanan Ramanathan and Rama Chellappa, "Face Verification across Age Progression" (accepted in IEEE Transactions on Image Processing) Narayanan Ramanathan and Rama Chellappa, "Face Verification across Age Progression", IEEE Computer Vision and Pattern Recognition (CVPR) vol 2, pp: 462-469, June 2005, San Diego Narayanan Ramanathan, Amit K Roy Chowdhury and Rama Chellappa, "Facial Similarity across Age, Disguise, Illumination and Pose", IEEE International Conference in Image Processing, vol 3, pp: 1999-2002, October 2004, Singapore 62

Ngày đăng: 11/08/2023, 13:23

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

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

Tài liệu liên quan