1. Trang chủ
  2. » Công Nghệ Thông Tin

Xây dựng chương trình nhận diện khuôn mặt bằng CNN

22 65 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

Trong xã hội hiện đại ngày nay, Robot đang ngày một phát triển, dần dần đang được sử dụng để thay thế con người trong 1 số công việc. Ví dụ: Nhà hàng It’s More Teatime Than Terminator tại Côn Sơn, Trung Quốc có hàng chục Robot bé nhó dễ thương có thể nấu nướng và phục vụ. Công ty Moley Robotics tại London, Anh đã chế tạo ra Robot nấu ăn đầu tiên. Aiko Chihira, một Robot giống hệ người được Toshiba công bố tại Triển lãm điện tử CEATEC ngày 7102014. Aiko không chỉ nhìn, di chuyển, nói tiếng Nhật một cách trôi chảy, mà còn có thể sử dụng thành thạo ngôn ngữ kí hiệu.

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN 🙙🙙🙙 - BÁO CÁO ĐỀ TÀI Học phần: Trí Tuệ Nhân Tạo Đề tài: Tìm hiểu mạng CNN để xây dựng hệ thống nhận diện khuôn mặt Giáo viên hướng dẫn: ThS Lê Thị Thủy Nhóm sinh viên thực hiện: Nguyễn Danh Hịa Đặng Cơng Khả Nguyễn Q Hồng Lớp: IT6043.5 Khóa: K14 Nhóm: 25 Hà Nội - Năm 2022 MỤC LỤC Bảng phân chia công việc: Họ tên Chức vụ Cơng việc Nguyễn Danh Hịa Trưởng nhóm Lên kế hoạch, chọn công nghệ, viết code, thu thập liệu, kiểm thử sản phẩm, viết báo cáo Đặng Cơng Khả Thành viên nhóm Viết code, thu thập liệu, viết báo cáo Nguyễn Q Hồng Thành viên nhóm Viết code, thu thập liệu, viết báo cáo LỜI NÓI ĐẦU Lý chọn đề tài Trong xã hội đại ngày nay, Robot ngày phát triển, sử dụng để thay người số cơng việc Ví dụ: - Nhà hàng It’s More Teatime Than Terminator Côn Sơn, Trung Quốc có hàng chục Robot bé nhó dễ thương nấu nướng phục vụ - Cơng ty Moley Robotics London, Anh chế tạo Robot nấu ăn - Aiko Chihira, Robot giống hệ người Toshiba công bố Triển lãm điện tử CEATEC ngày 7/10/2014 Aiko khơng nhìn, di chuyển, nói tiếng Nhật cách trơi chảy, mà cịn sử dụng thành thạo ngơn ngữ kí hiệu Khi làm việc, Robot cần phải học hỏi làm việc lập trình ban đầu Và để Robot có khả cần có não giống người, Robot, học máy, tiếng Anh “Machine Learning” (ML) Một số lĩnh vực phổ biến mà ML góp mặt: Xử lý ảnh Phân tích văn Khai phá liệu Trò chơi điện tử & Robot Trong báo cáo này, chúng tơi giới thiệu q trình tìm hiểu xây dựng hệ thống nhận dạng khuôn mặt cấu trúc mạng CNN – cấu trúc mạng tiếng, thường sử dụng lĩnh vực xử lý ảnh Robot Chương I Giới thiệu cấu trúc mạng CNN Định nghĩa CNN gì? CNN tên viết tắt từ Convolutional Neural Network (hay cịn gọi CNNs_mang nơ ron tích chập) Đây mơ hình Deep Learning vơ tiên tiến CNN cho phép bạn xây dựng hệ thống thơng minh với độ xác vơ cao Hiện nay, CNN ứng dụng nhiều toán nhận dạng object ảnh Và kiến thức cụ thể CNN lý giải sau: ● Convolutional Đây loại cửa sổ dạng trượt nằm ma trận Những convolutional layer có parameter học để điều chỉnh lấy thơng tin xác mà khơng cần phải chọn feature Convolution hay tích chập nhân phần tử ma trận Sliding Window gọi kernel, filter feature detect loại ma trận có kích thước nhỏ ● Feature Feature đặc điểm, CNN so sánh hình ảnh dựa theo mảnh mảnh gọi Feature Thay phải khớp ảnh lại với CNN nhìn tương động tìm kiếm thơ Feature khớp với hình ảnh tốt Mỗi Feature xem hình ảnh mini có nghĩa chúng mảng chiều nhỏ Các Feature tương ứng với khía cạnh hình ảnh chúng khớp lại với 2 Các lớp mạng CNN ● Convolutional layer Đây lớp quan trọng CNN, lớp có nhiệm vụ thực tính tốn Những yếu tố quan trọng convolutional layer là: stride, padding, filter map, feature map ● CNN sử dụng filter để áp dụng vào vùng hình ảnh Những filter map gọi ma trận chiều, mà bên số chúng parameter ● Stride có nghĩa bạn dịch chuyển filter map theo pixel dựa vào giá trị trừ trái sang phải Và chuyển dịch Stride ● Padding: Là giá trị thêm vào với lớp input ● Feature map: Nó thể kết lần filter map quét qua input Sau lần quét xảy q trình tính tốn ● Relu Layer ● Relu layer hàm kích hoạt neural network hàm cịn gọi activation function Hàm kích hoạt có tác dụng mơ neuron có tỷ lệ truyền xung qua axon Trong activation function cịn có hàm nghĩa là: Relu, Leaky, Tanh, Sigmoid, Maxout, Hiện nay, hàm relu dùng phổ biến vơ thơng dụng ● Nó sử dụng nhiều cho nhu cầu huấn luyện mạng neuron relu mang lại nhiều ưu điểm bật như: việc tính tốn trở nên nhanh hơn, Q trình sử dụng relu, cần lưu ý đến vấn đề tùy chỉnh learning rate theo dõi dead unit Những lớp relu layer sử dụng sau filter map tính áp dụng hàm relu lên giá trị filter map ● Pooling layer Khi đầu vào lớn, lớp pooling layer xếp vào lớp Convolutional layer để làm giảm parameter Hiện nay, pooling layer có loại chủ yếu là: max pooling average ● Fully connected layer ● Lớp có nhiệm vụ đưa kết sau lớp convolutional layer pooling layer nhận ảnh truyền Lúc này, ta thu kết model đọc thông tin ảnh để liên kết chúng cho nhiều output ta sử dụng fully connected layer ● Ngồi ra, fully connected layer có giữ liệu hình ảnh chúng chuyển thành mục chưa phân chia chất lượng Cái giống với phiếu bầu chúng đánh giá để bầu chọn hình ảnh có chất lượng cao Cấu trúc mạng CNN gì? Mạng CNN tập hợp lớp Convolution bị chồng lên sử dụng hàm nonlinear activation ReLU để kích hoạt trọng số node Lớp sau thơng qua hàm trọng số node Những 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 CNN có tính bất biến tích kết hợp Nếu bạn có đối tượng mà lại chiếu theo nhiều góc độ khác độ xác bị ảnh hưởng Với chuyển dịch, quay co giãn pooling layer sử dụng để giúp làm bất biến tính chất Vì vậy, CNN đưa kết có độ xác tương ứng mơ hình Trong đó, pooling layer cho bạn tính bất biến phép dịch chuyển, phép co dãn phép quay Cịn tính kết hợp cục cho bạn thấy cấp độ biểu diễn, thông tin từ thấp đến mức độ cao với độ trừu tượng thơng qua convolution từ filter Mơ hình CNN có layer liên kết với dựa vào chế convolution Những layer kết từ convolution từ layer trước đó, mà bạn có kết nối cục phù hợp Vậy, neuron lớp sinh từ kết filter áp đặt lên vùng ảnh cục neuron có trước Trong huấn luyện mạng, CNN tự động học hỏi giá trị thông qua lớp filter dựa vào cách thức mà người dùng thực Trong đó, cấu trúc CNN thường bao gồm phần là: ● Local receptive field (trường cục bộ): Lớp có nhiệm vụ tách lọc liệu, thông tin ảnh lựa chọn vùng ảnh có giá trị sử dụng cao ● Shared weights and bias (trọng số chia sẻ): Lớp giúp làm giảm tối đa lượng tham số có tác dụng yếu tố mạng CNN Trong convolution có feature map khác feature lại có khả giúp detect vài feature ảnh ● Pooling layer (lớp tổng hợp): Pooling layer lớp cuối có tác dụng làm đơn giản thông tin đầu Có nghĩa là, sau hồn tất tính tốn quét qua lớp đến pooling layer để lược bớt thơng tin khơng cần thiết Từ đó, cho kết theo ý mà người dùng mong muốn Giới thiệu kiến trúc VGG19 Architect VGG19 bao gồm 19 layer :13 layer Conv (2 layer conv-conv,3 layer conv-conv-conv) có kernel 3×3, sau layer conv maxpooling downsize xuống 0.5, layer fully connection layer convolution layer conv cuối (thành conv stack với nhau) VGG 19 sử dụng kernel 3×3 thay 11×11 alexnet(7×7 ZFNet) Kết hợp conv 3×3 có hiệu cov 5×5 receptive field giúp mạng deeper lại giảm tham số tính tốn cho model Conv 3×3 có receptive field same conv 7×7 Input size giảm dần qua conv tăng số chiều sâu Làm việc tốt cho task classifier localizer (rất hay sử dụng object detection) Sử dụng relu sau conv training batch gradient descent Có sử dụng data augmentation technique trình training VGG-19 giành ILSVRC năm 2014 Hình minh họa cho kiến trúc VGG19 Mạng CNN tập hợp lớp Convolution bị chồng lên sử dụng hàm nonlinear activation ReLU để kích hoạt trọng số node Lớp sau thông qua hàm trọng số node Những 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 CNN có tính bất biến tích kết hợp Nếu bạn có đối tượng mà lại chiếu theo nhiều góc độ khác độ xác bị ảnh hưởng Với chuyển dịch, quay co giãn pooling layer sử dụng để giúp làm bất biến tính chất Vì vậy, CNN đưa kết có độ xác tương ứng mơ hình Trong đó, pooling layer cho bạn tính bất biến phép dịch chuyển, phép co dãn phép quay Cịn tính kết hợp cục cho bạn thấy cấp độ biểu diễn, thông tin từ thấp đến mức độ cao với độ trừu tượng thông qua convolution từ filter Mơ hình CNN có layer liên kết với dựa vào chế convolution Những layer kết từ convolution từ layer trước đó, mà bạn có kết nối cục phù hợp Vậy, neuron lớp sinh từ kết filter áp đặt lên vùng ảnh cục neuron có trước Trong huấn luyện mạng, CNN tự động học hỏi giá trị thông qua lớp filter dựa vào cách thức mà người dùng thực Trong đó, cấu trúc CNN thường bao gồm phần là: ● Local receptive field (trường cục bộ): Lớp có nhiệm vụ tách lọc liệu, thông tin ảnh lựa chọn vùng ảnh có giá trị sử dụng cao ● Shared weights and bias (trọng số chia sẻ): Lớp giúp làm giảm tối đa lượng tham số có tác dụng yếu tố mạng CNN Trong convolution có feature map khác feature lại có khả giúp detect vài feature ảnh ● Pooling layer (lớp tổng hợp): Pooling layer lớp cuối có tác dụng làm đơn giản thơng tin đầu Có nghĩa là, sau hồn tất tính tốn qt qua lớp đến pooling layer để lược bớt thơng tin khơng cần thiết Từ đó, cho kết theo ý mà người dùng mong muốn Architect VGG19 bao gồm 19 layer :13 layer Conv (2 layer conv-conv,3 layer conv-conv-conv) có kernel 3×3, sau layer conv maxpooling downsize xuống 0.5, layer fully connection layer convolution layer conv cuối (thành conv stack với nhau) Chương II Xây dựng ứng dụng Thu thập liệu mẫu ● Tạo file “Collect Images.py” dùng để thu thập ảnh mẫu dùng cho trình train test ● Import thư viện cv2, thư viện chuyển dùng python xử lý ảnh ● Sử dụng liệu mã nguồn mở “haarcascade_frontalface_default.xml” cộng đồng lập trình viên xây dựng để hỗ trợ xác định khuôn mặt ● Sau hệ thống xác định khuôn mặt camera, thực khoanh vùng khuôn mặt cắt ảnh khuôn mặt theo kích thước (200x200) lưu vào thư mục Train/Test folder mang tên người chụp ảnh tạo sẵn Train model ● Import thư viện cần thiết cho trình train ● Cài đặt cấu hình cho train test liệu ● Cài đặt cấu hình cho tập liệu training set testing set ● Thêm lớp tiền sử lí cho trình train, ta sử dụng cấu trúc VGG19 ● Set up để hệ thống không train layer train nhằm tối ưu trình train, tránh lãng phí tài nguyên ● Lấy danh sách folder thư mục train\ ● Setup layer đầu ● Tạo model train ● Show cấu trúc model VGG19 ● Bắt đầu trình train với cấu hình model set up ảnh, sau train xong lưu liệu vào file “facefeatures_new_model.h5” để tái sử dụng sau ● Quá trình train diễn Nhận diện khuôn mặt với thời gian thực ● Tạo file có tên “RealTime Check.py” ● Import thư viện cần thiết ● Sử dụng hàm load_model thư viện Keras.model để load file liệu train phần ● Load liệu mẫu để nhận dạng khuôn mặt ● Tạo list tên trùng tên với folder chứa ảnh dùng để train test ● Sử dụng camera để nhận dạng ● Thực q trình xác định xem có khn mặt góc cam khơng ● Sau xác định khn mặt hình, ta resize chúng kích thước 200x200, với kích thước liệu dùng để train, sau chuyển dạng vector dùng hàm “predict” để đưa dự đoán độ giống ảnh nhận dạng với tệp liệu train ● Ta lấy vị trí giá trị lớn list pred trên, sau lấy tên từ list class_labels phía với vị trí vừa lấy tên người nhận dạng, cuối in hình tên người nhận dạng, không nhận dạng khuôn mặt nào, hình “No face found”, nhấn “q” để tắt cửa sổ ứng dụng ● Một số kết chạy ứng dụng Chương III Tổng kết Qua bước trên, chúng tơi trình bày bước q trình xây dựng hệ thống nhận dạng khn mặt công nghệ CNN, mô hình Machine Learning bản, cịn nhiều sai số q trình xử dụng bước đầu cơng nghiên cứu công nghệ Machine Learning, mong nhận nhiều nhận xét từ người để chúng tơi cải thiện sản phẩm tương lai Ngoài ra, chúng em xin gửi lời cảm ơn tới cô Lê Thị Thủy, giảng viên trực tiếp giảng dạy mơn “Trí Tuệ Nhân Tạo” hỗ trợ chúng em trình xây dựng đề tài này, chúng em xin chân thành cảm ơn cô ... “haarcascade_frontalface_default.xml” cộng đồng lập trình viên xây dựng để hỗ trợ xác định khuôn mặt ● Sau hệ thống xác định khuôn mặt camera, thực khoanh vùng khuôn mặt cắt ảnh khuôn mặt theo kích thước (200x200)... thiệu q trình tìm hiểu xây dựng hệ thống nhận dạng khuôn mặt cấu trúc mạng CNN – cấu trúc mạng tiếng, thường sử dụng lĩnh vực xử lý ảnh Robot Chương I Giới thiệu cấu trúc mạng CNN Định nghĩa CNN. .. không nhận dạng khuôn mặt nào, hình “No face found”, nhấn “q” để tắt cửa sổ ứng dụng ● Một số kết chạy ứng dụng Chương III Tổng kết Qua bước trên, chúng tơi trình bày bước q trình xây dựng hệ

Ngày đăng: 04/03/2022, 21:11

Xem thêm:

TỪ KHÓA LIÊN QUAN

w