1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ĐỒ án TIẾN HÀNH THỰC NGHIỆM PHÁT HIỆN cảm xúc GƯƠNG mặt TRONG THỜI GIAN THỰC

15 3 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 1,3 MB

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA CHƯƠNG TRÌNH ĐÀO TẠO KỸ SƯ CHẤT LƯỢNG CAO VIỆT PHÁP -o0o - ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM PHÁT HIỆN CẢM XÚC GƯƠNG MẶT TRONG THỜI GIAN THỰC GVHD: TS Trương Quang Vinh SVTH: Nguyễn Anh Kiệt – 1611699 TP HỒ CHÍ MINH, THÁNG NĂM 2020 0 LỜI CẢM ƠN Trên thực tế khơng có thành cơng mà không gắn liền với hỗ trợ, giúp đỡ dù hay nhiều, dù trực tiếp hay gián tiếp người khác Trong suốt thời gian làm đồ án vừa qua em nhận hỗ trợ giúp đỡ thầy Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý thầy cô Khoa Điện – Điện tử, đặc biệt thầy hướng dẫn TS Trương Quang Vinh Em xin chân thành cảm ơn thầy tận tâm hướng dẫn chúng em qua buổi nói chuyện, trao đổi đề tài đồ án Nếu khơng có lời hướng dẫn, dạy bảo thầy em nghĩ báo cáo em khó hồn thiện Một lần nữa, em xin chân thành cảm ơn thầy Tuy nhiên q trình thực khơng thể tránh khỏi sai sót, chúng em mong q thầy góp ý bổ sung để nhóm rút kinh nghiệm cho trình học tập làm việc sau Em xin chân thành cảm ơn TP.HCM, ngày 22 tháng 07 năm 2020 0 Mục lục CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI Đặt vấn đề: Mục tiêu nội dung đề tài: CHƯƠNG 2: PHƯƠNG PHÁP PHÂN LOẠI HÌNH ẢNH VÀ GIAO DIỆN NGƯỜI DÙNG .4 Giới thiệu Deep Learning: Mạng nơ-ron tích chập (CNNs): MobileNet V1: Giao diện người dùng: CHƯƠNG 3: SƠ ĐỒ THUẬT TOÁN 10 Sơ đồ thuật toán: 10 CHƯƠNG 4: KẾT QUẢ THỰC HIỆN 12 Bảng kết thực hiện: 12 Đánh giá hướng phát triển: 12 0 CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI Đặt vấn đề: Ngày nay, xã hội phát triển nhanh chóng, dễ dàng thấy nhiều thay đổi nhiều thứ xung quanh Từ cách giao tiếp, làm việc hay cách giải trí, tất khác Một lý cho thay đổi phát triển cơng nghệ máy tính Hiện nay, việc nhận diện khuôn mặt trở nên phổ biến Các nhà phát hành phát triển phần mềm nhận diện, thay đổi cảm xúc khuôn mặt Đề tài phần phần mềm – nhận diện cảm xúc mặt người Mục tiêu nội dung đề tài: Đề tài tập trung vào việc đưa nghiên cứu em việc học phân loại hình ảnh cách sử dụng mạng nơ ron tích chập (CNNs) phương pháp Deep Learning Em sử dụng MobileNet V1 làm mơđun trích xuất tính hình ảnh Cuối cùng, em thực chương trình phát cảm xúc khuôn mặt người (ba cảm xúc bản: vui, buồn bình thường) Mọi người sử dụng ứng dụng thông qua giao diện người dùng (GUI) Giao diện hiển thị “smile” bạn cười nhẹ trước webcam “sad” bạn nhăn mặt; bạn khơng làm gì, thơng báo “neutral” Đó kỳ vọng em dự án Mặc dù cố gắng để thực đề tài thiếu số khả phát phân loại 0 CHƯƠNG 2: PHƯƠNG PHÁP PHÂN LOẠI HÌNH ẢNH VÀ GIAO DIỆN NGƯỜI DÙNG Giới thiệu Deep Learning: - Trong vài năm qua, Deep Learning phát triển nhanh chóng nhờ lượng lớn liệu huấn luyện cải thiện khả tính tốn máy tính Do đó, kết phân loại hình ảnh tốt lên ngày Một sở liệu sử dụng nhiều ImageNet với hình ảnh 1,2M cho 1000 lớp khác Hình 1: Mơ hình phân loại Deep Learning - Các mơ hình Deep Learning (AlexNet, ZFNet, GoogLeNet, ResNet, VGG) thường bao gồm nhiều lớp (layer) Các lớp thường lớp Convolutional kết hợp với hàm kích hoạt phi tuyến lớp tổng hợp (Pooling layers) (thường gọi ConvNets) Lớp cuối Full Connected Layers Softmax Regression Số lượng đơn vị lớp cuối số lượng Classes (trong ImageNet 1000) Do đó, đầu gần lớp thứ hai đến lớp cuối coi vectơ đặc trưng Softmax Regression Classifier sử dụng trường hợp - Do tính (feature) Classifier huấn luyện thông qua Deep Networks, nên mơ hình dễ dàng mang lại kết tốt Tuy nhiên, mơ hình Deep Networks có số lượng lớp lớn Để đào tạo mơ hình nhận dạng hình ảnh từ đầu, phải có nhiều liệu đào tạo khả tính tốn dán nhãn (hàng tram GPU trở lên) Có kỹ thuật rút ngắn trình gọi Tranfer Learning Nó sử dụng phần mơ hình huấn 0 luyện chuyển nhiệm vụ tương tự mơ hình (ở mơ hình mà muốn thực hiện) Mạng nơ-ron tích chập (CNNs): - Convolutional Neural Network (CNNs – Mạng nơ ron tích chập) mơ hình Deep Learning tiên tiến Nó giúp cho xây dựng hệ thống thông minh với độ xác cao CNN sử dụng nhiều toán nhận dạng object ảnh Để tìm hiểu thuật tốn sử dụng rộng rãi cho việc nhận dạng (detection) - Mạng CNNs tập hợp lớp Convolution chồng lên sử dụng hàm nonlinear activation ReLU để kích hoạt trọng số node Mỗi lớp sau thông qua hàm kích hoạt tạo thơng tin trừu tượng cho lớp - Mỗi lớp sau thơng qua hàm kích hoạt tạo thông tin trừu tượng cho lớp Trong mơ hình mạng truyền ngược (feedforward neural network) neural đầu vào (input node) cho neural đầu lớp - Mơ hình gọi mạng kết nối đầy đủ (fully connected layer) hay mạng tồn vẹn (affine layer) Cịn mơ hình CNNs ngược lại Các layer liên kết với thông qua chế convolution - Layer kết convolution từ layer trước đó, nhờ mà ta có kết nối cục Như neuron lớp sinh từ kết filter áp đặt lên vùng ảnh cục neuron trước - Mỗi lớp sử dụng filter khác thơng thường có hàng trăm hàng nghìn filter kết hợp kết chúng lại Ngoài có số layer khác pooling/subsampling layer dùng để chắt lọc lại thơng tin hữu ích (loại bỏ thơng tin nhiễu) - Trong q trình huấn luyện mạng (traning) CNNs tự động học giá trị qua lớp filter dựa vào cách thức mà bạn thực Ví dụ tác vụ phân lớp ảnh, CNNs cố gắng tìm thơng số tối ưu cho filter 0 tương ứng theo thứ tự raw pixel > edges > shapes > facial > high-level features Layer cuối dùng để phân lớp ảnh - CNNs chia thành chiều: rộng, cao sâu Tiếp theo, tế bào thần kinh mạng khơng hồn tồn kết nối với tồn tế bào thần kinh tiếp theo, mà đến vùng nhỏ Cuối cùng, lớp đầu thu nhỏ lại thành vectơ giá trị tính Hình 2: Cấu trúc mạng CNNs - Tập liệu training em đính kèm folder chương trình Tập liệu bao gồm hình ảnh gắn nhãn: “Neutral”, “Happy”, “Sad” MobileNet V1: - Em sử dụng phương pháp Tranfer Learning với Mobile V1 huấn luyện trước Em sử dụng tệp tin retrain.txt để huấn luyện lại với sở liệu hình ảnh em Tệp tải mô đun huấn luyện trước huấn luyện trình phân loại đầu cho hình ảnh khn mặt Điều tuyệt vời Tranfer Learning lớp thấp đào tạo để phân biệt số đối tượng sử dụng lại cho nhiều nhiệm vụ nhận dạng mà khơng có thay đổi - Em sửa đổi số tham số để phù hợp với đồ án này, Inception_V3 thành MobileNet_1.0_224 Em chọn mô hình MobileNet có tốc độ nhanh nên phù hợp với nhu cầu cần phân loại theo thời gian thực So với mơ hình khác, nhanh gấp khoảng lần so với Inception nhanh gấp 10 lần VGGNet-16 Điều phần lớn số lượng tham số học nhỏ nhiều (4 triệu so với 24 triệu cho 0 Inception-v3 138 triệu cho VGGNet-16) MobileNets khơng nhanh mà cịn xác Độ xác xác thực MobileNets ImageNet 70,6% so với 71,5% VGGNet-16 - Em thay đổi số bước từ 6000 thành 10000 tỷ lệ học từ 0,01 đến 0,001 Phải phút để đào tạo lại, kết tốt 3-4 lần Em chỉnh sửa biểu đồ đầu tệp nhãn thành retrained_graph.pb và retrained_label.txt để tìm sử dụng dễ dàng - Em sử dụng lại khả trích xuất tính từ trình phân loại hình ảnh mạnh mẽ huấn luyện ImageNet cần huấn luyện lớp phân loại đầu Mặc dù khơng tốt đào tạo mơ hình đầy đủ, có hiệu đáng ngạc nhiên nhiều ứng dụng, hoạt động với lượng liệu đào tạo vừa phải - Yếu tố giúp MobileNet đạt độ xác cao thời gian tính tốn thấp cải tiến lớp Conv Trong MobileNet, có lớp Covn sử dụng: separableConv DepthwiseConv Thay thực tích chập bình thường, separableConv thực tích chập theo chiều sâu khơng gian theo sau tích chập theo hướng (Pointwise Convolution) DepthwiseConv thực tích chập theo chiều sâu khơng gian (khơng có tích chập theo hướng) Sự tích chập làm giảm đáng kể khối lượng mạng số lượng tham số Với thay đổi này, MobileNet hoạt động trơn tru phần cứng với cấu hình thấp 0 Hình 3: Cấu trúc Depthwise Separable Convolution Depthwise convolution: channel-wise DK×DK spatial convolution Ví dụ hình trên, ta có channels (các bạn để ý cục có khối hộp, cục thứ phân tách khối hộp thành ma trận mxn, cục thứ spatial convolution có kích thước kxk, cục thứ kết sau convolution, cục thứ ráp kết convolution lại ), có DK×DK spatial convolution tương ứng với channel Pointwise convolution : đơn giản convolution có kích thước 1x1 (như hình trên) - Với M số lượng input channel, N số lượng output channel, Dk kernel size, Df feature map size (với dataset ImageNet input có kích thước 224, feature map ban đầu có Df = 224), tính được: Chi phí tính tốn Depthwise convolution là: 0 Dk Dk M D f Df Chi phí tính tốn Pointwise convolution là: M N D f Df Tổng chi phí tính tốn Depthwise Separable Convolution là: Dk Dk M D f D f M N D f Df Nếu không sử dụng Depthwise Separable Convolution mà sử dụng phép convolution bình thường, chi phí tính toán là: D k D k M N D f D f Giả sử, chọn kernel size Dk = 3, giảm từ đến lần phép tính nhân => giảm chi phí tính tốn nhiều Giao diện người dùng: - Em sử dụng label_image.py, để tải lại mạng lưới thần kinh, trọng số toàn TensorFlow framework Tập tin đọc tensor từ hình ảnh đầu vào, đưa liệu ảnh làm đầu vào cho biểu đồ đưa dự đoán Em đặt giá trị trả về, thêm tỷ lệ chấp nhận để nhãn kết chấp nhận hiển thị giá trị (tạm gọi “số điểm”) cao 0,7 Nếu “số điểm” thấp 0,7 hàm trả “Detecting” - Em viết chương trình để chương trình chạy dễ dàng máy tính người khác, máy tính khơng cài đặt Python em sử dụng thư viện PyQt5 để thiết kế GUI - Chương trình mở đọc hình ảnh từ webcam máy tính lưu với tên “image00” Sau đó, chương trình tải hàm tập tin “Label_image.py” để kiểm tra hình ảnh khuôn mặt cắt từ webcam đưa kết với “số điểm” cao Nếu “số điểm” cao 0,7 chương trình hiển thị nhãn kết hộp Result Box Nếu “số điểm” không đủ cao, hiển thị “Detecting”, nghĩa cường độ ánh sáng môi trường không đủ tốt khó để phát cảm xúc khn mặt 10 0 CHƯƠNG 3: SƠ ĐỒ THUẬT TOÁN Sơ đồ thuật toán: - Dưới sơ đồ thuật tốn thể cách chương trình phát cắt khuôn mặt từ webcam: Start Image from Webcam Resize image Detect faces Crop faces, turn to gray “image00.jpg” End 11 0 - Sau có “image00.jpg”, chương trình sử dụng tệp “lable_image.py” để tìm nhãn phù hợp nó: Start “image00.jpg” Squeeze image Feature vector Feature vector == output layer? Top result Top result > 0.7 “Detecting” “Label” End 12 0 CHƯƠNG 4: KẾT QUẢ THỰC HIỆN Hình ảnh demo chương trình: Hình 4: Chương trình nhận diện khn mặt với nhãn “Neutral” Hình 5: Chương trình nhận diện khn mặt với nhãn “Sad” 13 0 Hình 6: Chương trình nhận diện khn mặt với nhãn “Happy” Bảng kết thực hiện: Em thực thử nghiệm chương trình phịng học (cường độ ánh sáng ≈ 160 – 180 lux) với tỉ lệ chấp nhận đặt > 0,7 Sau bảng kết quả: Happy Neutral Sad Đánh giá hướng phát triển: - Kết thực cho thấy mơi trường phịng học chương trình phát tốt cho hai cảm xúc “Happy” “Neutral” với độ xác cao Cảm xúc “Sad” phát với độ xác khơng cao 14 0 - Chương trình cịn phụ thuộc nhiều vào chất lượng số lượng ảnh có cảm xúc buồn sở liệu em - Hướng phát triển: Phát triển thêm nhiều cảm xúc khác việc mở rộng sở liệu Có thể sở cho việc thực phần mềm thay đổi cảm xúc gương mặt thịnh hành 15 0 ... lượng ảnh có cảm xúc buồn sở liệu em - Hướng phát triển: Phát triển thêm nhiều cảm xúc khác việc mở rộng sở liệu Có thể sở cho việc thực phần mềm thay đổi cảm xúc gương mặt thịnh hành 15 0 ... nay, việc nhận diện khuôn mặt trở nên phổ biến Các nhà phát hành phát triển phần mềm nhận diện, thay đổi cảm xúc khuôn mặt Đề tài phần phần mềm – nhận diện cảm xúc mặt người Mục tiêu nội dung... CHƯƠNG 3: SƠ ĐỒ THUẬT TOÁN 10 Sơ đồ thuật toán: 10 CHƯƠNG 4: KẾT QUẢ THỰC HIỆN 12 Bảng kết thực hiện: 12 Đánh giá hướng phát triển:

Ngày đăng: 20/12/2022, 11:03

w