BÀI tập lớn THỊ GIÁC máy TÍNH ỨNG DỤNG THỊ GIÁC máy TÍNH TRONG NHẬN DIỆN nụ cười

34 98 0
BÀI tập lớn THỊ GIÁC máy TÍNH ỨNG DỤNG THỊ GIÁC máy TÍNH TRONG NHẬN DIỆN nụ cười

Đ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

ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ──────── * ──────── BÀI TẬP LỚN THỊ GIÁC MÁY TÍNH ỨNG DỤNG THỊ GIÁC MÁY TÍNH TRONG NHẬN DIỆN NỤ CƯỜI Sinh viên thực Nguyễn Trọng Hải Phạm Minh Hiệp Nguyễn Minh Đức Trương Công Kiên Lớp Giảng viên hướng dẫn Hà Nội, tháng năm 2022 TIEU LUAN MOI download : skknchat123@gmail.com Thị giác máy tính MỤC LỤC DANH SÁCH HÌNH ẢNH DANH SÁCH BẢNG BIỂU PHÂN CÔNG CÔNG VIỆC I Giới thiệu mơ tả tốn Đặt vấn đề Mơ tả tốn II Data set III Mạng LE-NET Một số mạng Le-Net IV V 1.1 Mạng Le-Net 1.2 Mạng Le-Net 1.3 Mạng Le-Net Mạng BK-NET Cấu trúc mạng BKNet Thực nghiệm đánh giá Thực nghiệm đánh giá mạng Le-Net 1.1 Lý thuyết liên quan đến thực nghiệm 1.1.1 Chuẩn bị input ch 1.1.2 Sử dụng Keras-Tens 1.1.3 Mô tả hàm compile( 1.1.4 Mô tả hàm fit() 1.1.5 Cách đánh giá mô h 1.2 Thực nghiệm đánh giá mạng Le-Net 1.2.1 Thực nghiệm mạng Le-Net 1.2.2 1.3 Đánh giá mạng Le-N Thực nghiệm đánh giá mạng Le-Net 1.3.1 Thực nghiệm mạng Le-Net 1.3.2 1.4 Đánh giá mạng Le-N Thực nghiệm đánh giá mạng Le-Net 1.4.1 Thực nghiệm mạng Le-Net 1.4.2 Đánh giá mạng Le-N TIEU LUAN MOI download : skknchat123@gmail.com Thị giác máy tính 2.Cải tiến Le-Net 2.1.Thêm lớp tích chập sử dụng Dropou 2.2.Đánh giá cải tiến Le-Net 3.Sử dụng mạng BK-NET 3.1.Thực nghiệm BKNet 3.2.Đánh giá BKNet 3.3.So sánh LeNet sau cải tiến với BKNet VI Kết chạy thử 1.Sử dụng Haar Cascade để nhận diện khuôn mặt 2.Chạy thử với mạng Le-Net 3.Chạy thử với mạng BK-Net VII Kết luận VIII Tài liệu tham khảo DANH SÁCH HÌNH ẢNH Hình 1: Ảnh khác kích thước, sau tiền xử lý Hình 2: Sự phát triển CNN Hình 3: Kiến trúc mạng Le-Net Hình 4: Kiến trúc mạng Le-Net Hình 5: Kiến trúc mạng Le-Net Hình 6: Cấu trúc mạng CNN share network 10 Hình 7: Cấu trúc mạng BKNet 11 Hình 8: Ảnh 64x64x3 (bên trái) đưa vè ảnh 32x32x1 (bên phải) 12 Hình 9: Kết train Le-Net (Average pooling) 13 Hình 10: Kết train Le-Net (Max pooling) 14 Hình 11: Kết train Le-Net (Average pooling) 15 Hình 12: Kết train Le-Net (Max pooling) 15 Hình 13: Kết train Le-Net (Average pooling) 16 Hình 14: Kết train Le-Net (Max pooling) 16 Hình 15: Kiến trúc mạng Le-Net cải tiến 18 Hình 16: Kết train Le-Net cải tiến (Dropout = 0.2) 19 Hình 17: Kết train Le-Net cải tiến (Dropout = 0.4) 19 Hình 18: Kết train Le-Net cải tiến (Thêm 16 lọc lớp tích chập) 19 Hình 19: Kết train Le-Net cải tiến (Thêm lọc lớp tích chập) .20 Hình 20: Kết train Le-Net cải tiến (Thêm lọc lớp tích chập) .20 Hình 21: Kết train BKNet 22 Page3 TIEU LUAN MOI download : skknchat123@gmail.com Thị giác máy tính 20211 Hình 22: Đánh giá loss BKNet 22 Hình 23: Độ xác BK Net 23 Hình 24: Kết demo LeNet 24 Hình 25: Kết demo BKNet 24 DANH SÁCH BẢNG BIỂU Bang 1: So sánh độ xác Max-pooling Average-pooling Le-Net 14 Bang 2: So sánh độ xác Max-pooling Average-pooling Le-Net 16 Bang 3: So sánh độ xác Max-pooling Average-pooling Le-Net 17 Bang 4: So sánh độ xác Le-Net Le-Net cải tiến 20 Bang 5: So sánh độ xác Le-Net cải tiến (Dropout = 0) Le-Net cải tiến (Dropout = 0.4) 21 Bang 6: So sánh độ xác Le-Net cải tiến (16 lọc) Le-Net cải tiến (6 lọc) 21 PHÂN CÔNG CÔNG VIỆC Nhiệm vụ Người tham gia Mơ tả tốn Nguyễn Minh Đức, Phạm Minh Hiệp Tiền xử lý liệu Trương Công Kiên, Nguyễn Minh Đức Gán nhãn liệu Trương Cơng Kiên, Nguyễn Minh Đức Tìm hiểu mơ hình LeNet Nguyễn Trọng Hải, Phạm Minh Hiệp Chạy thử đánh giá mơ hình LeNet Nguyễn Trọng Hải, Nguyễn Minh Đức Cái tiến mơ hình LeNet Nguyễn Trọng Hải, Nguyễn Minh Đức Tìm hiểu mơ hình BKNet Phạm Minh Hiệp, Trương Cơng Kiên Chạy thử đánh giá mơ hình BKNet Phạm Minh Hiệp, Trương Công Kiên Page4 TIEU LUAN MOI download : skknchat123@gmail.com Thị giác máy tính Demo Nguyễn Minh Đức, Trương Công Kiên Báo cáo Nguyễn Trọng Hải, Phạm Minh Hiệp Slides Nguyễn Trọng Hải Page5 TIEU LUAN MOI download : skknchat123@gmail.com Thị giác máy tính 20211 I Giới thiệu mơ tả tốn Đặt vấn đề Có nhiều khoảnh khắc đẹp sống, đó, nụ cười người ln khoảnh khắc vô đẹp Con người thường hay cười vui, phấn khích, … Nhưng trạng thái cảm xúc thường khơng kéo dài đủ lâu, cho đủ nhiều người đẹp khung hình Nhận diện khn mặt, chi tiết nhận diện nụ cười tốn khơng cịn ln vậy, cơng nghệ giúp sống người lưu giữ nụ cười qua camera “thông minh hơn” Mô tả tốn Nhóm chọn tốn để làm quen với việc áp dụng kiến thức học liên quan đến Thị giác máy tính xử lý ảnh Nhóm muốn xây dựng ứng dụng di động có camera chụp ảnh nhận thấy khn mặt người cười khung hình II Data set Dữ liệu nhóm lấy từ nguồn có sẵn mã nguồn mở [1] tập “WIKI faces only” trang data.vision.ee.ethz.ch [2] Dữ liệu huấn luyện cho tốn bao gồm 13000 ảnh [64x64], có 6500 ảnh mặt cười 6500 ảnh mặt không cười Dữ liệu bao gồm 8000 ảnh lọc từ liệu gán nhãn sẵn, nhóm tự gán nhãn thêm 5000 ảnh Dữ liệu tự gán nhãn thêm cần tiến hành tiền xử lý ảnh có kích thước khác nhau, cần tách riêng phần mặt riêng khỏi ảnh đánh số lại cho đồng Hình 1: Ảnh khác kích thước, sau tiền xử lý Cuối cùng, liệu trộn lẫn 5000 ảnh 8000 ảnh cũ Page6 TIEU LUAN MOI download : skknchat123@gmail.com Thị giác máy tính 20211 III Mạng LE-NET Ra đời năm 1989 Tiến sĩ Yann Le Cun cộng [3], mạng Le-Net coi tảng mạng nơ-ron tích chập CNN (Convolutional Neural Network) sau [4] Có nhiều phiên Le-Net khác ý tưởng chung mạng sử dụng ảnh đầu vào cỡ 28x28 (hoặc 32x32) qua lần lớp mạng tích chập kết hợp pooling, tiếp tục qua 1,2 lớp kết nối đầy đủ để thu kết phân loại ảnh thuộc lớp cần phân biệt Hình 2: Sự phát triển CNN Một số mạng Le-Net 1.1 Mạng Le-Net Ban đầu, Le- Net phù hợp với ảnh đầu vào cỡ 28x28x1 Mạng sử dụng lớp mạng đầu vào đầu [5] Lớp 1: Gồm lọc tích chập, kernel = [5x5] , stride = 1, no-padding Lớp 2: Lớp average pooling, pool = [2x2], tride = Lớp 3: Gồm 12 lọc tích chập, kernel = [5x5] , stride = 1, no-padding Lớp 4: Lớp pooling, pool = [2x2], tride = Lớp 5: Lớp kết nối đầy đủ từ 4x4x12 = 192 neuron với 10 lớp phân loại Hình 3: Kiến trúc mạng Le-Net Page7 TIEU LUAN MOI download : skknchat123@gmail.com Thị giác máy tính lâu khoảng 30% Có thể thấy Le-Net cải tiến tốt so với Le-Net Bảng 2: So sánh độ xác Max-pooling Average-pooling Le-Net Max-pooling Average-pooling Kết sử dụng Max-pooling hay Average-pooling khơng có nhiều khác biệt, đủ để nhận thấy Average-pooling cho kết tốt tốc độ ngang 1.1 1.2 1.3 1.4 Thực nghiệm đánh giá mạng Le-Net 1.4.1 Thực nghiệm mạng Le-Net a) Đầu tiên, nhóm sử dụng mạng Le-Net trình bày mục III.1.3 Hình 13: Kết train Le-Net (Average pooling) Kết sau 15 epochs, tỉ lệ lỗi xấp xỉ 0.2913 độ xác khoảng 89.54% loss val_loss có thay đổi nhiều sau khoảng 7-8 epochs Độ xác tập test bị giảm so với train Tỉ lệ sai khác độ xác khoảng 5.19% b)Thử thay đổi Average-pooling Max-pooling kết cho tương tự P a g e 16 TIEU LUAN MOI download : skknchat123@gmail.com Thị giác máy tính Hình 14: Kết train Le-Net (Max pooling) Kết sau 15 epochs, tỉ lệ lỗi xấp xỉ 0.3199 độ xác khoảng 88.46% loss val_loss có thay đổi nhiều sau khoảng 7-8 epochs Độ xác tập test bị giảm so với train Tỉ lệ sai khác độ xác khoảng 5.84% 1.4.2 Đánh giá mạng Le-Net Tốc độ học mạng tốt, sau khoảng 15 epochs, tỉ lệ xác đạt khoảng 90% (nhanh 1% so với mạng Le-Net 4) thời gian train lâu khoảng 10% Có thể thấy Le-Net không vượt trội so với Le-Net toán Bảng 3: So sánh độ xác Max-pooling Average-pooling Le-Net Max-pooling Average-pooling Kết sử dụng Max-pooling hay Average-pooling khơng có nhiều khác biệt, đủ để nhận thấy Average-pooling cho kết tốt tốc độ ngang Cải tiến Le-Net Như kết đánh giá phần V.1.3.2 V.1.4.2 cho thấy, mạng Le-Net cho kết tương tự Le-Net 5, độ xác cuối Le-Net có thua 0.01 (0.89 với 0.90) độ sai khác độ xác tập train tập test bên Le-Net cho tốt (3.96% với 5.19%), tức Le-Net cho kết với khả bị phù hợp (overfitting) cao hơn, điều cần tránh xảy P a g e 17 TIEU LUAN MOI download : skknchat123@gmail.com Thị giác máy tính 20211 Nhóm lựa chọn cải tiến Le-Net để mơ hình phân loại xác Đồng thời, Average-pooling cho thời gian chạy sát với Max-pooling, kết tốt nên nhóm định dùng Average-pooling 2.1 Thêm lớp tích chập sử dụng Dropout Từ đánh giá trên, nhóm nhận thấy cần giảm khả xảy overfit, để overfit xảy chậm tốt nên nhóm có thêm dropout để cắt tỉa bớt số kết nối lớp kết nối đầy đủ Nhóm sử dụng thêm lớp tích chập sau lớp tích chập để trích xuất nhiều đặc trưng Ở Le-Net 4, qua lớp tích chập ban đầu thu (5x5+1)*4 = 104 đặc trưng, nhóm thấy số đặc trưng nên sử dụng lọc [5x5] để có (5x5+1)*8=208 đặc trưng Cấu trúc mạng cải tiến bao gồm: Lớp 1: Gồm lọc tích chập, kernel = [5x5] , stride = 1, no-padding Lớp 2: Gồm lọc tích chập, kernel = [5x5] , stride = 1, no-padding Lớp 3: Lớp pooling, pool = [2x2], tride = Lớp 4: Gồm 16 lọc tích chập, kernel = [5x5] , stride = 1, no-padding Lớp 5: Lớp pooling, pool = [2x2], tride = Lớp 6: Lớp kết nối đầy đủ từ 5x5x16 neuron với 120 neuron lớp Lớp 6: Lớp Dropout (rate = 0.2) Lớp 7: Lớp kết nối đầy đủ từ khoảng 96 neuron với 10 lớp phân loại P a g e 18 TIEU LUAN MOI download : skknchat123@gmail.com Thị giác máy tính 20211 Hình 15: Kiến trúc mạng Le-Net cải tiến a)Ban đầu nhóm thử thêm Dropout với tỉ lệ khác 0.2 0.4 Kết Dropout = 0.2 Hình 16: Kết train Le-Net cải tiến (Dropout = 0.2) Kết Dropout = 0.4 Hình 17: Kết train Le-Net cải tiến (Dropout = 0.4) Khi Dropout = 0.4 sai lệch độ xác tập train tập test có biến thiên lớn, nên không đáng tin Dropout = 0.2 Kết cho Dropout = 0.2 tốt với độ lệch độ xác 2.04% (so với 2.24% dùng Dropout = 0.4 2.24% không sử dụng Dropout) P a g e 19 TIEU LUAN MOI download : skknchat123@gmail.com Thị giác máy tính 20211 b)Ban đầu nhóm thử với 16 lọc lớp tích chập thêm vào, sau giảm dần cịn lọc lọc Kết sử dụng 16 lọc Hình 18: Kết train Le-Net cải tiến (Thêm 16 lọc lớp tích chập) Kết sử dụng lọc Hình 19: Kết train Le-Net cải tiến (Thêm lọc lớp tích chập) Kết sử dụng lọc Hình 20: Kết train Le-Net cải tiến (Thêm lọc lớp tích chập) Có thể thấy, sử dụng lọc, độ lệch độ xác tập train tập test nhất, khoảng 1.49% Trong đó, độ sai lệch 2.04% sử dụng 16 lọc 2.78% sử dụng lọc Độ biến thiên loss val_loss sử dụng lọc gần P a g e 20 TIEU LUAN MOI download : skknchat123@gmail.com Thị giác máy tính 2.1 2.2 Đánh giá cải tiến Le-Net Bảng 4: So sánh độ xác Le-Net Le-Net cảả̉i tiến Le-Net Le-Net cải tiến Bảng 5: So sánh độ xác Le-Net cảả̉i tiến (Dropout = 0) Le-Net cảả̉i tiến (Dropout = 0.4) 16 lọc, dropout = 0.0 16 lọc, dropout = 0.4 Bảng 6: So sánh độ xác Le-Net cảả̉i tiến (16 lọc) Le-Net cảả̉i tiến (6 lọc) 16 lọc, dropout = 0.2 lọc, dropout = 0.2 Độ xác mơ hình cải tiến chưa mơ hình khác tỉ lệ quan trọng “recall” nhận diện khuôn mặt “cười” lại trội hơn, “f1score” phân biệt ảnh “cười” tốt ảnh “khơng cười” Như P a g e 21 TIEU LUAN MOI download : skknchat123@gmail.com Thị giác máy tính 20211 thấy mơ hình nhận diện “cười” tốt mục đích mơ hình, việc nhận diện “cười” quan trọng việc nhận diện “không cười” Đánh giá độ chênh lệch độ chích xác tập train tập test, độ biến thiên lỗi tập, thấy mơ hình cải tiến cho kết overfit diễn chậm hơn, khó tránh mơ hình cịn đơn giản Vì vậy, nhóm tìm hiểu thêm mơ hình khác để cải thiện khả dự đoán Sử dụng mạng BK-NET 3.1 Thực nghiệm BKNet Trong tốn nhận diện nụ cười này, nhóm cài đặt kích thước batch 128, khởi tạo trọng số sử dụng phân phối Gaussian, độ lẹch chuẩn 0,01 Ngồi ra, nhóm áp dụng hàm phân rã cấp số nhân để phân learning rate theo thời gian Learning rate bước thứ k tính sau: Tập liệu chuẩn bị trước với 13000 ảnh, có 6500 ảnh gắn nhãn cười, 6500 ảnh gắn nhán khơng cười Nhóm chia thành tập, tập train với 10400 ảnh (80% tập data), tập test với 2600 ảnh (20% tập data), ảnh chọn ngẫu nhiên 3.2 Đánh giá BKNet Trong 10 epochs đầu tiên, kết training đạt cao > 99% P a g e 22 TIEU LUAN MOI download : skknchat123@gmail.com Thị giác máy tính 20211 Hình 21: Kết train BKNet Giá trị mát dùng tốn là: Cross Entropy L2 loss Hình 22: Đánh giá loss BKNet Mơ hình q trình train giữ lại giá trị checkpoint Trong q trình test, mơ hình load lại checkpoint đưa phán đoán với tập test Kết test với tập data test đạt ~88%: P a g e 23 TIEU LUAN MOI download : skknchat123@gmail.com Thị giác máy tính 20211 Hình 23: Độ xác BK Net 3.1 3.2 3.3 So sánh LeNet sau cải tiến với BKNet LeNet sau cải tiến mạng đơn giản nên mạng BKNet điều dễ hiểu Tỷ lệ train LeNet sau cải tiến đạt khoảng 90% (20 epochs), BKNet đạt 99% (10 epochs) Thực tế chạy thử cho thấy tỉ lệ nhận diện nụ cười mạng BKNet tốt mạng Lenet sau cải tiến Nhưng mạng Lenet mạng kém, nhận diện nụ cười xác góc mặt đơn giản VI Kết chạy thử Sử dụng Haar Cascade để nhận diện khuôn mặt Trước nhận diện nụ cười cần nhận diện khn mặt Nhóm chọn thuật tốn Haar Cascade thuật tốn đề xuất nhiều toán nhận diện khn mặt có mã nguồn mở hỗ trở OpenCV [12] Thuật toán sử dụng đặc trưng Haar loại đặc trưng ảnh không chiếm toàn mà chiếm phần ảnh Vì có nhiều lọc Haar ảnh nên kết hợp nhiều lọc với tạo thành nhiều lượt Cascade chồng lên để nhận diện nhiều đặc trưng lúc Chi tiết Haar Cascade khơng trình bày báo cáo này, hiểu đơn giản lọc Haar qt khung ảnh vài lần để tìm xem có đặc trưng 6000+ đặc trưng xác định sẵn để nhận diện khn mặt [13] Vùng có chứa khuôn mặt khoanh vùng, vùng khác lướt qua quên P a g e 24 TIEU LUAN MOI download : skknchat123@gmail.com Thị giác máy tính 20211 Chạy thử với mạng Le-Net Hình 24: Kết demo LeNet Chạy thử với mạng BK-Net Hình 25: Kết demo BKNet VII Kết luận Mơ hình Le-Net phù hợp với tốn nhóm đặt Kết chạy thử xác, khoảng 90% Mạng Le-Net mạng đơn giản với lượng liệu khơng lớn (13000 ảnh) khó cho kết tốt 90% Mơ hình BK-Net có kết tốt hơn… Kết đạt Bài tập lớn lần có tham gia tích cực tất thành viên nhóm, người có ý thức chủ động hồn thành cơng việc hỗ trợ thành viên khác Tuy nhiên, có số khó khăn nhóm gặp phải trình thực Bài tập lớn: P a g e 25 TIEU LUAN MOI download : skknchat123@gmail.com Thị giác máy tính Dữ liệu tìm cịn chưa “sạch”, sau tiền xử lý khơng hồn tồn xử lý hết sai sót nên kết chưa đạt độ xác cao Do tình hình dịch bệnh Covid19 nên nhóm gặp khó khăn việc trao đổi thành viên dẫn đến tiến độ có chậm mong muốn kịp hoàn thành VIII Tài liệu tham khảo Link open source Le-Net: https://github.com/meng1994412/Smile_Detection [1] Link tải data: https://data.vision.ee.ethz.ch/cvl/rrothe/imdb-wiki/? fbclid=IwAR0mjNhPRvA5yXii1HFmetECzrjbeqHEWLQWkg3RsTiquLnIGF39d xnPeLE [2] [3] Y Le Cun, B Boser, J S Denker, D Henderson, R E Howard, W Hubbard, and L D Jackel Backpropagation Applied to Handwritten Zip Code Recognition AT&T Bell Laboratories, Holmdel, NJ 07733 USA, NIPS ,1989 [4] Lịch sử mạng CNN: https://dlapplications.github.io/2018-07-06-CNN/ mạng Lenet: https://sh-tsang.medium.com/paper-brief-review-of-lenet-1lenet-4-lenet-5-boosted-lenet-4-image-classification-1f5f809dbf17 [5] Random-state: https://stackoverflow.com/questions/28064634/random-statepseudo-random-number-in-scikit-learn [6] [7] Keras-Tensorlow: https://viblo.asia/p/lam-quen-voi-keras-gGJ59mxJ5X2 Các hàm kích hoạt: https://aicurious.io/posts/2019-09-23-cac-ham-kichhoat-activation-function-trong-neural-networks/ [8] [9] Softmax: https://machinelearningcoban.com/2017/02/17/softmax [10] Adam: https://viblo.asia/p/thuat-toan-toi-uu-adam-aWj53k8Q56m Validation: https://machinelearningcoban.com/2017/08/31/evaluation/#truefalse-positivenegative [11] Opensource Haar Cascade: https://github.com/opencv/opencv/tree/master/data/haarcascades [12] [13] Chi tiết Haar Cascade: https://docs.opencv.org/3.4/db/d28/tutorial_cascade_classifier.html P a g e 26 TIEU LUAN MOI download : skknchat123@gmail.com ... mơ hình nhận diện ? ?cười? ?? tốt mục đích mơ hình, việc nhận diện ? ?cười? ?? quan trọng việc nhận diện “không cười? ?? Đánh giá độ chênh lệch độ chích xác tập train tập test, độ biến thiên lỗi tập, thấy... lệ nhận diện nụ cười mạng BKNet tốt mạng Lenet sau cải tiến Nhưng mạng Lenet mạng kém, nhận diện nụ cười xác góc mặt đơn giản VI Kết chạy thử Sử dụng Haar Cascade để nhận diện khuôn mặt Trước nhận. .. skknchat123@gmail.com Thị giác máy tính 20211 Hình 6: Cấu trúc mạng CNN share network Mục đích mạng BKNet sinh nhằm mục đích giúp cho máy học nhiều nhiệm vụ lúc: nhận diện nụ cười, dự đoán cảm xúc, dự đoán giới tính

Ngày đăng: 26/07/2022, 09:02

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

Tài liệu liên quan