Học sâu là thuật toán dựa trên một số ý tưởng từ não bộ tới việc tiếp thu nhiều tầng biểu đạt, diễn tả cả cụ thể lần trừu tượng, từ đó làm rõ nghĩa các loại dữ liệu. Học sâu được ứng dụng trong nhận diện hình ảnh, giọng nói, xử lý ngôn ngữ tự nhiên.
MƠ HÌNH THỐNG KÊ HỌC SÂU TRONG NHẬN DẠNG KHN MẶT DEEP LEARNING STATISTIC MODEL IN FACE RECOGNITION Đỗ Thành Công Khoa Công nghệ thông tin, Trường Đại học Kinh doanh Cơng nghệ Hà Nội E-mail: plc1810@gmail.com Ngày tịa soạn nhận báo: 28/11/2018 Ngày phản biện đánh giá: 18/12/2018 Ngày báo duyệt đăng: 28/12/2018 Tóm tắt: Học sâu thuật toán dựa số ý tưởng từ não tới việc tiếp thu nhiều tầng biểu đạt, diễn tả cụ thể lần trừu tượng, từ làm rõ nghĩa loại liệu Học sâu ứng dụng nhận diện hình ảnh, giọng nói, xử lý ngơn ngữ tự nhiên Convolutional Neural Network (CNNs) mơ hình học sâu đem lại kết có độ xác cao Từ khóa: Summary: Deep learning refers to the number of layers through which the data is transformed Deep learning is also known as deep structured learning and a part of a broader family of neural network methods based on convolutional neural networks (CNN) s Deep learning is applied in image recognition, voice, natural language processing It is one of the deep learning models that results in high accuracy Keywords: Face Detection, Deep Learning, Convolutional Neural Network (CNNs) I GIỚI THIỆU Định nghĩa xác định khuôn mặt Xác định khuôn mặt người (Face Detection) kỹ thuật máy tính để xác định vị trí kích thước khuôn mặt ảnh (ảnh kỹ thuật số) Kỹ thuật nhận biết đặc trưng khuôn mặt bỏ qua thứ khác như: tòa nhà, cối, thể, … Ứng dụng nhận dạng khn mặt TẠP CHÍ KHOA HỌC QUẢN LÝ VÀ CƠNG NGHỆ Bài tốn nhận dạng khn mặt phát triển từ năm 1990, đến toán ứng dụng nhiều lĩnh vực khác Xác minh tội phạm: Dựa vào ảnh người, nhận dạng xem người có phải tội phạm hay không cách so sách với ảnh tội phạm lưu trữ Hoặc sử dụng camera để phát tội phạm đám đông Ứng dụng giúp quan an ninh quản lý người tốt Camera chống trộm: Các hệ thống camera xác định đâu người theo dõi xem người có làm phạm pháp khơng, ví dụ lấy trộm đồ, xâm nhập bất hợp pháp vào khu vực Bảo mật: Các ứng dụng bảo mật đa dạng, số cơng nghệ nhận dạng mặt người máy tính, điện thoại Cơng nghệ cho phép chủ nhân thiết bị cần cho camera chụp hình khn mặt đăng nhập Lưu trữ khn mặt: Xác định mặt người ứng dụng trạm rút tiền tự động (ATM) Lưu trữ khuôn mặt người rút tiền, ngân hàng đối chứng xử lý dễ dàng trường hợp rút tiền phạm pháp Trong thiết bị di động hay mạng xã hội, lưu trữ khuôn mặt giúp nhận dạng ảnh, phân loại ảnh bạn bè cách nhanh chóng Tìm kiếm tổ chức liệu liên quan đến người thông qua khuôn mặt người nhiều hệ sở liệu lưu trữ thật lớn, internet, hãng truyền hình, … ví dụ: tìm phim có diễn viên Thành Long đóng, tìm trận đá bóng có Quang Hải đá, … Trong chụp hình, nhận dạng khn mặt để máy chụp hình hệ kết hình ảnh đẹp hơn, khuôn mặt người Một số hãng xe nhận dạng khuôn mặt để kiểm tra lái xe có ngủ gật hay khơng để thơng báo cần thiết Các phương pháp tiếp cận: Để xác định khn mặt ảnh ta sử dụng theo bốn hướng tiếp cận Ngồi có nhiều nghiên cứu mà phương pháp xác định mặt người khơng dựa vào hướng mà có liên quan đến nhiều hướng Hướng tiếp cận tri thức: đặc trưng khn mặt mã hóa thành luật Thông thường luật thường mô tả quan hệ đặc trưng khn mặt thường có hai mắt đối xứng qua trục thẳng đứng khuôn mặt có mũi, miệng Các quan hệ đặc trưng mơ tả quan hệ khoảng cách vị trí Hướng tiếp cận đặc trưng không thay đổi: xác định khuôn mặt người dựa đặc trưng không bị thay đổi thay đối tư khn mặt , vị trí quan sát hay điều kiện ánh sáng thay đổi Đã có nhiều nghiên cứu hướng tiếp cận này, đặc điểm khơng thay đổi tìm thấy màu da, lông mày, mắt, mũi, miệng hay đường viền tóc … Hướng tiếp cận so khớp mẫu: mẫu chuẩn khuôn mặt (thường khuôn mặt TẠP CHÍ KHOA HỌC QUẢN LÝ VÀ CƠNG NGHỆ chụp thẳng) xác định trước biểu diễn thành hàm với tham số cụ thể Từ ảnh đầu vào, ta tính giá trị tương quan so với mẫu chuẩn đường viền khuôn mặt, mắt, mũi miệng Thông qua giá trị tương quan mà hệ thống định có hay khơng có tồn khn mặt ảnh Hướng tiếp cận dựa diện mạo: Hướng tiếp cận dựa diện mạo trái ngược với hướng tiếp cận dựa so sánh khớp mẫu (các mẫu nhà nghiên cứu định nghĩa trước), mẫu hướng tiếp cận học từ tập ảnh mẫu Có thể nói hướng tiếp cận dựa diện mạo áp dụng kỹ thuật theo hướng xác suất thống kê học máy để tìm đặc tính liên quan khuôn mặt khuôn mặt II MƠ HÌNH HỌC SÂU (DEEP LEARNING) Học sâu phương pháp sử dụng nhiều lớp đơn vị xử lý phi tuyến để trích trọn đặc trưng chuyển đổi Trong lớp giá trị lớp đầu lớp trước giá trị đầu vào cho lớp Các thuật tốn sử dụng thuật tốn học có giám sát khơng có giám sát Học sâu thường áp dụng cho mơ hình nhận dạng mẫu toán phân loại thống kê Các thuật toán học sâu khác so với thuật toán học nơng việc biến đổi tín hiệu tham số truyền từ lớp đầu vào cho lớp đầu ra, nơi tham số biến đổi đơn vị xử lý có khả huấn luyện cho tham số, chẳng hạn trọng số ngưỡng Giới thiệu mạng Neuron Mạng neuron nhân tạo, Artificial Neuron Network (ANN) gọi tắt mạng neuron, neuron network, mơ hình xử lý thơng tin theo cách thức xử lý thông tin hệ neuron sinh học Nó tạo lên từ số lượnglớn phần tử (gọi phần tử xử lý hay neuron) kết nối với thông qua cácliên kết (gọi trọng số liên kết) làm việc thể thống để giải mộtvấn đề cụ thể Một mạng neuron nhân tạo cấu hình cho ứng dụng cụ thể (nhận dạng mẫu, phân loại liệu ) thơng qua q trình học từ tập mẫu huấn luyện Về chất học q trình hiệu chỉnh trọng số liên kết neuron Kiến trúc chung mạng nơron nhân tạo (ANN) gồm thành phần là: Input Layer, Hidden Layer Output Layer Hình Mơ hình mạng Neuron TẠP CHÍ KHOA HỌC QUẢN LÝ VÀ CƠNG NGHỆ Theo hình trên, lớp ẩn (Hidden Layer) gồm Nơron nhận liệu input từ Nơron lớp (Layer) trước chuyển đổi input cho lớp xử lý Trong ANN có nhiều lớp ẩn Huấn luyện mạng Neuron Mạng neuron nhân tạo theo việc xử lý thông tin não người, đặc trưng mạng có khả học, khả tái tạo hình ảnh liệu học Trong trạng thái học thông tin lan truyền theo hai chiều nhiều lần để học trọng số Có kiểu học chính, kiểu học tương ứng với nhiệm vụ học trừu tượng Đó học có giám sát (có mẫu), học khơng giám sát học tăng cường Thông thường loại kiến trúc mạng dùng cho nhiệm vụ Học cố giám sát: Là cách huấn luyện mô hình liệu học có đầu vào đầu tương ứng đầu vào Mơ hình huấn luyện cách giảm thiểu sai số lỗi (loss) dự đốn vịng lặp huấn luyện Sau q trình huấn luyện mơ hình có khả đưa dự đoán đầu với đầu vào gặp (khơng có liệu học) Nếu không gian đầu biểu diễn dứới dạng rời rạc, ta gọi tốn phân loại (classification) Nếu không gian đầu biểu diễn dạng liên tục, ta gọi tốn hồi quy (regression) Học không giám sát: cách huấn luyện mơ hình liệu học bao gồm đầu vào mà khơng có đầu Mơ hình huấn luyện cách để tìm cấu trúc mối quan hệ đầu vào Một phương pháp học không giám sát quan trọng phân cụm (clustering): Tạo cụm khác với cụm biểu diễn đặc trưng liệu phân đầu vào vào cụm theo đặc trưng đầu vào Học tăng cường: phương pháp huấn luyện hệ thống tự động Phương pháp không cần liệu ban đầu mà thu thập liệu thông qua phép thử hay sai Mạng neuron tích chập Convolutional Neuron Network (CNNs – Mạng neuron tích chập) mơ hình Deep Learning tiên tiến giúp cho xây dựng hệ thống thông minh với độ xác cao Tích chập cửa sổ mặt trận mơ tả hình: Hình Mơ hình tổ hợp tích chập TẠP CHÍ KHOA HỌC QUẢN LÝ VÀ CÔNG NGHỆ Ma trận bên trái ảnh đen trắng Mỗi giá trị ma trận tương đương với điểm ảnh (pixel), màu đen, màu trắng (nếu ảnh grayscale giá trị biến thiên từ đến 255) Sliding window cịn có tên gọi kernel, filter hay feature detector Ở đây, ta dùng ma trận filter 3×3 nhân thành phần tương ứng (element-wise) với ma trận ảnh bên trái Gía trị đầu tích thành phần cộng lại Kết tích chập ma trận (convoled feature) sinh từ việc trượt ma trận filter thực tích chập lúc lên tồn ma trận ảnh bên trái Mạng neuron tích chập bao gồm lớp sau: lớp Convolutional, lớp RELU, lớp Pooling, lớp Fully connected Sự xếp số lượng thứ tự lớp tạo mơ hình khác phù hợp cho toán khác Lớp Convolutiinal: Lớp nơi thể tư tưởng ban đầu mạng nơ-ron tích chập Thay kết nối toàn điểm ảnh, lớp sử dụng lọc (filters) có kích thước nhỏ so với ảnh (thường 3×3 5×5) áp vào vùng ảnh tiến hành tính tích chập filter giá trị điểm ảnh vùng cục Bộ filter dịch chuyển theo giá trị bước trượt (stride) chạy dọc theo ảnh quét toàn ảnh Lớp RELU: Lớp thường cài đặt sau lớp Convolutional Lớp sử dụng hàm kích hoạt f(x) = max(0,x)f(x)=max(0,x) Nói cách đơn giản, lớp có nhiệm vụ chuyển toàn giá trị âm kết lấy từ lớp Convolutional thành giá trị Ý nghĩa cách cài đặt tạo nên tính phi tuyến cho mơ hình Tương tự mạng truyền thẳng, việc xây dựng dựa phép biến đổi tuyến tính khiến việc xây dựng đa tầng đa lớp trở nên vơ nghĩa Có nhiều cách để khiến mơ hình trở nên phi tuyến sử dụng hàm kích hoạt sigmoid, tanh, … hàm f(x) = max(0,x)f(x)=max(0,x) dễ cài đặt, tính tốn nhanh mà hiệu Lớp Pooling: Lớp sử dụng cửa sổ trượt quét qua toàn ảnh liệu, lần trượt theo bước trượt (stride) cho trước Khác với lớp Convolutional, lớp Pooling khơng tính tích chập mà tiến hành lấy mẫu (subsampling) Khi cửa sổ trượt ảnh, có giá trị xem giá trị đại diện cho thơng tin ảnh vùng (giá trị mẫu) giữ lại Các phương thức lấy phổ biến lớp Pooling MaxPooling ( lấy giá trị lớn nhất), MinPooling (lấy giá trị nhỏ nhất) AveragePooling (lấy giá trị trung bình) Lớp Fully connected: Lớp tương tự với lớp mạng nơ-ron truyền thẳng, giá trị ảnh liên kết đầy đủ vào node lớp Sau ảnh xử lý rút trích đặc trưng từ lớp trước đó, liệu ảnh khơng cịn q lớn so với mơ hình truyền thẳng nên ta sử dụng mơ hình truyền thẳng để tiến hành nhận dạng III XÂY DƯNG KIẾN TRÚC MẠNG CNNS NHẬN DẠNG KHUÔN MẶT Xây dựng mạng CNNs Xây dựng tầng Convolutiinal: sử dụng ảnh có kích thước (32*32*3) Sử dụng bước lọc bước lọc có kích thước (5*5*3) ta đồ kích thước 28 TẠP CHÍ KHOA HỌC QUẢN LÝ VÀ CƠNG NGHỆ Hình Tầng Convolutiinal Xây dựng tầng Pooling: Sử dụng 64 lọc filter có kích thước [244*244*64] thực với thơng số F= 2, S=2 ta thu đàu kích thước [112*112*64] Hình Mơ hình pooling cho ảnh Xây dựng hàm biến đổi tuyến tính: Về bản, covolution phép biển đổi tuyến tính Nếu tất neuron tổng hợp phép biến đổi tuyến tính mạng neuron đưa dạng hàm tuyến tính Tuy nhiên, nghiên cứu gần chứng minh việc sử dụng hàm ReLu (Rectified Linear Unit) đáng tin cậy Kết nối Fully-connected: cách kết nối neural hai tầng với tầng sau kết nối đẩy đủ với neural tầng trước Đây dạng kết nối thường thấy ANN, CNN tầng thường sử dụng tầng phí cuối kiến trúc mạng Trong toán phân lớp ảnh , CNNs mô tả sau: [[CONV -> RELU]*N -> POOL?]*M -> [FC -> RELU]*K -> FC Trong đó: [CONV -> RELU]*N tức kiến trúc sau tầng CONV tầng RELU, CNN kiến trúc tầng lặp N lần TẠP CHÍ KHOA HỌC QUẢN LÝ VÀ CƠNG NGHỆ POOL? tầng Pooling cho người thiết kế định có khơng [[CONV -> RELU]*N -> POOL?]*M kiến trúc CNN lặp lại M lần kiểu sau tầng CONV tầng RELU kế tới tầng Pooling [FC -> RELU]*K CNN lặp K lần cấu trúc kiểu sau tầng FC tầng RELU trước phải có tầng [CONV -> RELU] Như CNNs cố gắng tìm thơng số tối ưu cho filter tương ứng theo thứ tự pixel > edges > shapes > facial > high-level features Hình Thứ tự lọc mạng CNNs Huấn luyện mạng CNNS Bài toán áp dụng mơ hình nhỏ nhận dạng 10 khn mặt người khác Sử dụng tập ảnh chụp 10 nghệ sỹ Việt Nam.Sử dụng 80% ảnh để huấn luyện 20% ảnh để kiểm chứng Hình Mơ hình mạng huấn luyện 10 TẠP CHÍ KHOA HỌC QUẢN LÝ VÀ CÔNG NGHỆ Bước 1: Xây dựng tập thư viện hình ảnh khn mặt người phân loại lưu vào thư mục đặt theo tên nghệ sỹ lưu vào thư mục training_face Hình 6: Tập mẫu huấn luyện Bước 2: Thay đổi kích thước hình ảnh huấn luyện thành cỡ 128 x 128 a = tf.truncated_normal([16,128,128,3]) sess = tf.Session() sess.run(tf.initialize_all_variables()) sess.run(tf.shape(a)) Bước 3: Đặt tên cho lớp thiết lập số lượng ảnh sử dụng kiểm tra validation_size = 0.2 img_size = 128 num_channels = train_path = 'face_train' Bước 4: Thiết lập tầng tích chập: filter_size_conv1 = num_filters_conv1 = 32 filter_size_conv2 = num_filters_conv2 = 32 TẠP CHÍ KHOA HỌC 11 QUẢN LÝ VÀ CÔNG NGHỆ filter_size_conv3 = num_filters_conv3 = 64 Bước 5: Xây dựng tầng Flattening def create_flatten_layer(layer): layer_shape = layer.get_shape() num_features = layer_shape[1:4] layer = tf.reshape(layer, [-1, num_features]) return layer Bước 6: Xây dựng kết nối Fully-connected def create_fc_layer(input, num_inputs, num_outputs, use_relu=True): weights = create_weights(shape=[num_inputs, num_outputs]) biases = create_biases(num_outputs) layer = tf.matmul(input, weights) + biases if use_relu: layer = tf.nn.relu(layer) return layer Bước 7: Thực huấn luyện mạng Hình Kết huấn luyện mạng Kết huấn luyện sau 300 lần huấn luyện kết sai số đạt khoảng 68% Bước 8: Lưu kết huấn luyện saver.save(session, 'test/trainningData.xml') Xây dựng mơ hình dự đốn: Hình Mơ hình dự đốn 12 TẠP CHÍ KHOA HỌC QUẢN LÝ VÀ CÔNG NGHỆ Bước 1: Load file huấn luyện Bước 2: Đọc ảnh đầu vào tìm vùng gần giống dự đốn khn mặt lưu ảnh xử lý vào thư mục process Bước 3: Đối sánh hình ảnh so sánh với lớp học Kết thử nghiệm với ảnh khơng có tập huấn luyện Thu sai số khoảng 0.97 Hình Kết thử nghiệm IV HƯỚNG PHÁT TRIỂN Với phương pháp sử dụng mạng tích chập để nhận dạng khuôn mặt đem lại tỉ lệ thành công cao nhiên cịn tồn số khó khăn: Tỉ lệ nhận dạng phụ thuộc vào điều kiện ánh sáng, phản chiếu, khn mặt bị che tóc hay mũ Màu sắc mơi trường xung quanh có lẫn với khn mặt khiến kết khơng xác Trong ảnh có nhiều khn mặt có nhiều hướng mặt khác Để khắc phục hạn chế ta kết hợp hợp học tăng cường thuật tốn IV KẾT LUẬN TẠP CHÍ KHOA HỌC 13 QUẢN LÝ VÀ CƠNG NGHỆ Bài tốn nhận dạng khn mặt vấn đề hay có nhiều ứng dụng thực tế Dữ liệu thu thập huấn luyện lớn đem kết xác TÀI LIỆU THAM KHẢO [1] Z Li, J.-i Imai and M Kaneko, "Robust face recognition using block-based bag of words.,"Pattern Recognition (ICPR), 2010 20th International Conference on IEEE, pp 12851288, 2010 [2] C.-F Tsai, "Bag-of-words representation in image annotation: A review.," ISRN Artificial Intelligence 2012,2012 [3] S Liao, A K Jain and S Z Li, "Partial face recognition: Alignment-free approach," IEEE Transactions on Pattern Analysis and Machine Intelligence 35.5, pp 1193-1205, 2013 [4] R Achanta, A Shaji, K Smith, A Lucchi, P Fua and S Süsstrunk, "SLIC superpixels compared to state-of-the-art superpixel methods," IEEE transactions on pattern analysis and machine intelligence,vol 34.11, pp 2274-2282, 2012 [8] J Y Wright, G A Y., S S S A and Y Ma, "Robust face recognition via sparse representation," IEEE transactions on pattern analysis and machine intelligence, vol 31(2), pp 210-227, 2009 [5] D G Lowe, "Distinctive image features from scale-invariant keypoints," International ournal of computer vision, vol 60.2, pp 91-110, 2004 [6] J Canny, "A computational approach to edge detection, "IEEE Transactions on pattern analysis and machine intelligence,vol 6, pp 679-698, 1986 [7] K Mikolajczyk, A Zisserman and C Schmid, "Shape recognition with edge-based features, "British Machine Vision Conference (BMVC'03), vol Vol 2, pp 779-788, 2003 [8] K Mikolajczyk and C Schmid, "Scale & affine invariant interest point detectors," International journal of computer vision,vol 60(1), pp 63-86, 2004 14 TẠP CHÍ KHOA HỌC QUẢN LÝ VÀ CÔNG NGHỆ ... hãng truyền hình, … ví dụ: tìm phim có diễn viên Thành Long đóng, tìm trận đá bóng có Quang Hải đá, … Trong chụp hình, nhận dạng khn mặt để máy chụp hình hệ kết hình ảnh đẹp hơn, khuôn mặt người... tốn học có giám sát khơng có giám sát Học sâu thường áp dụng cho mơ hình nhận dạng mẫu toán phân loại thống kê Các thuật toán học sâu khác so với thuật tốn học nơng việc biến đổi tín hiệu tham... khả học, khả tái tạo hình ảnh liệu học Trong trạng thái học thông tin lan truyền theo hai chiều nhiều lần để học trọng số Có kiểu học chính, kiểu học tương ứng với nhiệm vụ học trừu tượng Đó học