Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
2,25 MB
Nội dung
ĐẠ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 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ả toán Đặt vấn đề Mô tả toá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 c 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 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 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 Thị giác máy tính Demo Báo cáo Slides Nguyễn Minh Đức, Trương Công Kiên Nguyễn Trọng Hải, Phạm Minh Hiệp Nguyễn Trọng Hải Page5 Thị giác máy tính I 20211 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 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 khuôn 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 toá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 khuôn 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 toá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 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 1.1 Một số mạng Le-Net 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 Thị giác máy tính 20211 Mạng Le- Net đơn giản hiệu đem lại tốt vào thời điểm mắt Kết sau 30 lần train với khoảng gần 10000 chữ số viết tay đánh máy, tỉ lệ lỗi cỡ 1.1% với MSE khoảng 0,017 [3] 1.2 Mạng Le-Net Mạng Le-Net phù hợp với ảnh đầu vào cỡ 32x32x1 (tăng kích thước Le- Net 1) Mạng sử dụng lớp mạng đầu vào đầu (tăng thêm lớp kết nối đầy đủ) [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 16 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ừ 5x5x16 neuron với 120 neuron lớp Lớp 6: Lớp kết nối đầy đủ từ 120 neuron với 10 lớp phân loại Hình 4: Kiến trúc mạng Le-Net Mạng Le-Net có cải tiến để mạng học nhiều hơn, nhanh đảm bảo sai số tốt (lỗi xấp xỉ 1.1%) cách thêm lớp kết nối đầy đủ 1.3 Mạng Le-Net Mạng Le-Net phù hợp với ảnh đầu vào cỡ 32x32x1 (tương tự Le- Net 4) Mạng sử dụng lớp mạng đầu vào đầu (tăng thêm lớp kết nối đầy đủ so với Le-Net 4) [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 16 lọc tích chập, kernel = [5x5] , stride = 1, no-padding Lớp 4: Lớp pooling, pool = [2x2], tride = Page8 Thị giác máy tính 20211 Lớp 5: Lớp kết nối đầy đủ từ 5x5x16 neuron với 120 neuron lớp Lớp 6: Lớp kết nối đầy đủ từ 120 neuron với 84 neuron lớp Lớp 7: Lớp kết nối đầy đủ từ 84 neuron với 10 lớp phân loại Hình 5: Kiến trúc mạng Le-Net Mạng Le-Net thêm lớp kết nối đẩy đủ nữa, tổng cộng lớp kết nối đầy đủ để mạng học nhanh kết cho tốt (lỗi xấp xỉ 0.95%) IV Mạng BK-NET Cấu trúc mạng BKNet Mạng BKNet coi mạng VGG hiệu Qua kết thực nghiệm tác giả, tác giả đánh giá mạng có kết cải thiện so với mạng SOTA (State-of-the-art) có Mạng BKNet gồm blocks convolution (conv): Block chứa lớp conv với 32 neurons 3x3 với stride 1, sau lớp Max pooling 2x2 với stride Block thứ hai chứa lớp conv với 64 neurons 3x3 với stride 1, sau lớp Max pooling 2x2 với stride Block thứ chứa lớp conv với 128 neurons 3x3 với stride 1, sau lớp Max pooling 2x2 với stride Block cuối chứa lớp conv với 256 neurons 3x3 với stride 1, sau lớp Max pooling 2x2 với stride Sau lớp conv có lớp Batch Normalization activation function ReLU (Rectified Linear Unit) Page9 Thị giác máy tính 20211 Hình 8: Ảnh 64x64x3 (bên trái) đưa vè ảnh 32x32x1 (bên phải) Nhóm chia tập train/test theo tỉ lệ 80:20 số giả ngẫu nhiên (random_state = 42) để cố định thứ tự kết sau lần train [6] 1.1.2 Sử dụng Keras-Tensorflow để xây dựng mơ hình Nhóm sử dụng Keras-Tensorflow Python để triển khai nhanh mơ hình Le-Net với cách xây dựng mơ hình dạng Sequential thực tế mơ hình LeNet thực qua lớp mạng Nhóm sử dụng Keras để xây dựng mơ sau [7]: Conv2D lớp tích chập để lấy đặc trưng từ ảnh; với tham số: filter (số lọc), kernel_size (kích thước cửa sổ trượt ảnh), padding (bộ đệm biên ảnh) MaxPooling2D AveragePooling2D để giảm tham số mà giữ đặc trưng ảnh; với tham số: pool_size (kích thước số pooling), stride (bước lấy pooling) Dense lớp neural có tác dụng thực kết nối đầy đủ với lớp Dense khác; với tham số: units (số output sau train) Dropout để cắt tỉa bớt số kết nối lớp kết nối đầy đủ Activation hàm kích hoạt Do ưu điểm hàm Relu so với hàm Sigmoid hay hàm Tanh lọc giá trị nhỏ 0, hội tụ nhanh hơn, khơng bị bão hịa đầu nên nhóm lựa chọn hàm kích hoạt “Relu” cho lớp mạng Riêng lớp kết nối đầy đủ cuối sử dụng hàm kích hoạt “Softmax” để tối ưu tối đa tham số mơ hình [8] 1.1.3 Mơ tả hàm compile() Nhóm sử dụng hàm loss “binary_crossentropy”, trình tối ưu “ adam”, độ đo “ accuracy” Nhóm sử dụng Cross entropy cách đánh giá phân phối xác suất cho kết tương quan tốt dự đoán gần kết đúng, kết dự đoán sai bị “trừng phạt” nặng [9] Trình tối ưu “adam” cho kết hội tụ nhanh nhiều so với đạo hàm sử dụng phổ biến [10] Nhóm chọn độ đo “accuracy” tốn phân loại lớp lớp ngang hàng với P a g e 12 Thị giác máy tính 20211 1.1.4 Mơ tả hàm fit() Nhóm sử dụng batch_size = 64, train khoảng 15-20 epochs, đánh giá liệu validation 1.1.5 Cách đánh giá mơ hình Nhóm có sử dụng độ đo “accuracy” – độ xác để đánh giá mơ hình [11] “Precision” tỉ lệ số điểm điểm phân loại “Recall” tỉ lệ số điểm điểm thật điểm “F1-score” hàm trung bình điều hịa (harmonic mean) hay Cần sử dụng “F1-score ” hay cao chưa tốt, mơ hình coi tốt số phải cao, hay “F1-score” phải cao “Precision” cao mơ hình bị thiếu nhiều điểm chưa phân loại đúng, hay “Recall” cao mơ hình đốn bị lẫn nhiều điểm sai số lượng dự đoán suy hiệu thấp 1.2 Thực nghiệm đánh giá mạng Le-Net 1.2.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.1 P a g e 13 Thị giác máy tính Hình 9: Kết train Le-Net (Average pooling) Kết sau 15 epochs, tỉ lệ lỗi xấp xỉ 0.4098 độ xác khoảng 81.65% loss val_loss xấp xỉ lớn b) Thử thay đổi Average-pooling Max-pooling kết cho tương tự Hình 10: Kết train Le-Net (Max pooling) Kết sau 15 epochs, tỉ lệ lỗi xấp xỉ 0.3996 độ xác khoảng 82% loss val_loss xấp xỉ lớn 1.2.2 Đánh giá mạng Le-Net Tốc độ học mạng chậm, sau khoảng 15 epochs, tỉ lệ xác đạt khoảng 82% Bảng 1: 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 P a g e 14 Thị giác máy tính 20211 1.1 1.2 1.3 Thực nghiệm đánh giá mạng Le-Net 1.3.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.2 Hình 11: Kết train Le-Net (Average pooling) Kết sau 15 epochs, tỉ lệ lỗi xấp xỉ 0.2708 độ xác khoảng 88.92% loss val_loss có thay đổi nhiều sau khoảng 10 epochs Độ xác tập test bị giảm so với train Tỉ lệ sai khác độ xác khoảng 3% b) Thử thay đổi Average-pooling Max-pooling kết cho tương tự Hình 12: Kết train Le-Net (Max pooling) Kết sau 15 epochs, tỉ lệ lỗi xấp xỉ 0.2957 độ xác khoảng 88.46% loss val_loss có thay đổi nhiều sau khoảng 10 epochs Độ xác tập test bị giảm so với train Tỉ lệ sai khác độ xác khoảng 2.96% 1.3.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 89% (nhanh 7% so với mạng Le-Net 1) thời gian train P a g e 15 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 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 q 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 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 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 Thị giác máy tính b) 20211 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 cịn 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 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 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ự đốn Sử dụng mạng BK-NET 3 Thực nghiệm BKNet 3.1 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 Thị giác máy tính 20211 Hình 21: Kết train BKNet Giá trị mát dùng toá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 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 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 toá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 khuôn mặt [13] Vùng có chứa khn mặt khoanh vùng, vùng khác lướt qua quên P a g e 24 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 q trình thực Bài tập lớn: P a g e 25 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] [2] Link tải data: https://data.vision.ee.ethz.ch/cvl/rrothe/imdb-wiki/? fbclid=IwAR0mjNhPRvA5yXii1HFmetECzrjbeqHEWLQWkg3RsTiquLnI GF39d xnPeLE 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 [3] [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] [10] Softmax: https://machinelearningcoban.com/2017/02/17/softmax 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] Chi tiết Haar Cascade: https://docs.opencv.org/3.4/db/d28/tutorial_cascade_classifier.html [13] P a g e 26 ... “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 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. .. nhánh tương ứng với tasks, nhánh có nhiệm vụ học features đặc trưng task Trong đề tài này, nhóm sử dụng mạng với mục đích nhận diện nụ cười tập dataset chuẩn bị P a g e 10 Thị giác máy tính 20211... 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