Chương 1. Giới thiệu tổng quan về khóa luận, bài toán phát hiện khuôn mặt trong video từ trên không, các vân đề được giải quyết và đóng góp của luận văn. Trình bày các phương pháp họ YOLO và các khái niệm Chương 3. Trình bày phương pháp YOLOv4-tiny Chương 4.
Trình bày các phương pháp nhận dạng khuôn mặt Chương 5. Trình bày phương pháp MobileFaceNet kết hợp ArcFace nhận dạng khuôn mặt. Trình bày các bước thực hiện và kết quả của các thực nghiệm. Trình bày tông quan về hệ thống được xây dựng, kiến trúc và thiết kế của hệ thống.
Kết luận các kết quả đạt được và các hướng phát triển sau này. TRÌNH BÀY CÁC PHƯƠNG PHÁP HỌ YOLO VÀ CÁC NGHIÊN CỨU LIÊN QUAN Nội dung chương 2 là giới thiệu về các nghiên cứu liên quan đã được nghiên cứu và công bố cho bài toán phát hiện khuôn mặt trong video từ trên không. Đồng thời giới thiệu về các hướng tiếp cận cho bài toán. Perceptron Một perceptron (một tế báo thần kinh) được hiểu đơn giản là một hàm toán học nhận đầu vào từ một số hoặc nhiều số, thực hiện các phép toán và trả về kết quả đầu ra.
Các trọng số ân (weights) của perceptrion — là các giá trị cần tìm và được xác định trong quá trình huấn luyện (training) dựa trên dữ liệu huấn luyện (training data). Có thể hình dung hoạt động của perceptrion theo hình Hình 2. Inputs X|7'— Output | J Sum Activation Function Hình 2.1: Perceptron Trong Hình 2.1 có thé thay dữ liệu đầu vào được biéu diễn bởi vector X = [x0, x1, «+. xn] và các trong số cần học được biểu diễn bởi vector W = [w0, wl,.
, wn], di qua perceptrion và kết quả đầu ra được trả thông qua một hàm gọi là unit step function trong trường hợp trên là binary. Mục đích của hàm nay sử dụng dé cho perceptrion có thể ra được quyết định. Hàm kích hoạt Hàm kích hoạt hay activation functions được sinh ra với mục đích bẻ gãy sự tuyến tính của mạng nơ ron. Các hàm này có thể hiểu đơn giản như một bộ lọc để quyết định xem thông tin có được đi qua nơ ron hay không.
Trong quá trình huấn luyện mạng nơ ron, các hàm kích hoạt đóng vai trò quan trọng trong việc điều chỉnh độ dốc của đạo hàm. Chúng ta cần hiểu rằng tính chất của các hàm phi tuyến này giúp cho mạng no ron có thé học được biểu diễn của các hàm phức tạp hơn là chỉ sử dụng các hàm tuyến tinh. Hầu hết các activation functions là các hàm liên tục (continuous function) và khả vi (differentiable functions). Các hàm này là các hàm liên tục, tức là có sự thay đổi nhỏ ở kết quả đầu ra nếu như đầu vào có sự thay đổi nhỏ và khả vi tức là có đạo hàm tại mọi điểm trong miền xác định của nó.
Việc tính toán được đạo hàm là rẤt quan trọng và nó là một yếu tố quyết định đến no ron của chúng ta có thé huấn luyện được hay không. Artificial Neural Network (ANN) Artificial Neural Network (ANN) có thê coi là một tập hợp của các perceptrion và các hàm kích hoạt. Các perceptrion đơn lẻ sẽ được kết hợp với nhau thành các lớp ẩn hidden layers hay units. Các lớp an sử dụng các hàm kích hoạt phi tuyến ánh xa các lớp đầu vào thành các lớp đầu ra trong một không gian có số chiều thấp hơn và được gọi chung là mạng nơ rôn nhân tạo.
ANN có thể hiểu là một hàm biến đổi (ánh xạ) từ đầu và đến đầu ra. Ánh xạ này được tính bằng cách thêm vào các ma trận trọng số weights va giá trị của độ sai lệch biases tương ứng với kiến trúc được gọi là mô hình hay model. Quá trình training model là quá trình xác định các giá trị của các weights và biases. Các giá trị của chúng được khởi tạo với các giá trị ngẫu nhiên khi bắt đầu training.
Muốn training chúng ta cần phải định nghĩa bằng hàm lỗi của mạng. Lúc này chúng ta sẽ nhắc đến hai giá trị đó là ground truth — tức là giá tri thực tế có trong tập dữ liệu huấn luyện và predict output là giá trị mà mô hình dự đoán. Lỗi được tính bằng cách sử dụng ham loss định nghĩa dựa trên sự khác nhau giữa hai giá trị này. Dựa trên giá trị của ham loss được tính toán, các trọng số weights được điều chỉnh tại mỗi bước trong quá trình training.
Việc huấn luyện mô hình được dừng lại khi lỗi không thể giảm thêm được nữa. Quá trình training thực chất là tìm ra các đặc trưng trong features trong dữ liệu đầu vào. Các features này là một đại diện tốt hơn so với đữ liệu thô.2 là sơ đồ của mạng nơ ron nhân tạo ANN hay perceptionron nhiều lớn. Input layer ; Hidden layers ‡ Output layer h h, h, Input 1 Py.
\WY, Output 1 VV Input 2 i 00OOS :Ặ WW WY Output n Hinh 2,2 Artifical Neural Network Một số đầu vào của dữ liệu x được chuyên qua một tập hợp các perceptron và xuất hiện ở đầu ra. Theo lý thuyết x4p xỉ vũ trụ - universal approximation theorem thì một mạng no ron có thé xắp xi mọi hàm phi tuyến. Tắt nhiên là tùy thuộc vào số lượng các layers và số nodes của mạng. Lớp ẩn — the hidden layer hay thường gọi là dense layer — thường đi kèm với mỗi activation function dé giúp giải quyết một số vấn đề về đạo hàm được bàn luận phía trên.
Số lượng các tham số của mạng như số no ron trên mỗi layers, số layers trong mõi mạng được lựa chọn tùy thuộc vào bài toán. Convolutional Neural Network (CNN) Convolutional Neural Network (CNN) cũng tương tự như các kiến trúc mạng MLP bao gồm các weights, biases, và các activation function được sử dụng để biến đổi dữ liệu tuyến tính về dạng phi tuyến. Trong các kiến trục mạng chính thống thì mỗi neural trong mỗi layer được kết nối theo kiểu fully connected — kết nói đầy đủ đến các neural của layers tiếp theo. Tắt cả các nơ ron thuộc cùng một layers không chia sẻ bất kì một kết nối nào.
Một nhược điểm của mạng này là số lượng két nối sẽ trở nên khổng lồ nếu như kích thước của từng layers là lớn và no skhoong phù hợp cho các dữ liệu giống như ảnh. Điều đó dẫn đến khái niệm overfitting trên toàn bộ dữ liệu học. Nếu như ảnh chúng ta có kích thước lớn thì việc sử dụng mô hình mạng chính thống lại càng làm cho số lượng các tham số trở nên lớn hơn. Với đặc thù của dữ liệu ảnh, mộ image có thể chưa giá trị thuộc 3 thuộc tính là height, width và depth.
Trong đó depth được gọi là channel của hình có thể là red, blue và green. Mạng CNN được thiết kế với tư tưởng tích chập các input layers dé làm đầu vào cho layers tiếp theo. Việc chuyển đổi đó thực hiện trên mỗi layer.3 Ví dụ về một convolutional Neural Network Các lớp CNN được sử dụng dé trích chon ra các đặc trưng và partern trong hình ảnh. Các số lượng tham số được sử dụng trong mạng CNN được chứng minh là nhỏ hon rất nhiều so với mang fully connected và hiệu quả mang lại thường là cao hơn nhiều so với các phương pháp trước đó.
Kernel Kernel có thể được coi là tham số của mô hình CNN và được sử dụng để tính toán tích chập — convolve trên ảnh. Chúng ta có thé thấy thao tác tích chập được mô tả trong Hình 2.4 Các hoạt động của Kernel Mỗi phần của hình ảnh sẽ được phân tích chập với kernel đề tạo thành một ma trận mới — làm input cho layer tiếp theo. Một kernel có hai tham số cần quan tâm đến đó là stride và size. Size là kích thước của một kernel (có thể là kích thước của một hình chữ nhật bát kì) và stride là số bước nhảy của kernel.
Nếu stride bằng | thì gần như toàn bộ pixel trên ảnh sẽ được trượt qua và tính tích chập. Nếu stride bằng 2 chúng ta cứ cách 2 pixel lại tính tích chập một lần và như vậy số lượng pixel của ảnh đầu ra bị giảm đi một nửa so với stride = 1. Padding có thé giúp số chiều của ảnh dau ra giống với ảnh input. Max pooling Max pooling là một layer được thêm vào giữa các lớp convolution với mục đích là giảm kích thước của layers thông qua việc lấy mẫu — sampling.
Việc lấy mẫu này thực hiện bằng cách lấy giá trị lớn nhất trong cửa số pooling được chọn. Ngoài ra chúng. ta có thé bắt gặp khái niệm Average pooling tức là lấy mẫu bằng cách lấy giá trị trung bình của tất cả các giá trị trong cửa số pooling. Pooling được xem là một trong những kỹ thuật giúp giảm hiện tượng overfitting trong CNN.
Chúng ta có thể hình dung hoạt động của nó trong Hình 2. 2x2Max-Pool | 20 | 30› : 112| 37 Hình 2.5 Ví dụ về max pooling 2. Lan truyền ngược (Backpropagation) “Thuật toán lan truyền ngược — backpropagation là một trong những thuật toán cốt lõi của mạng nơ ron hiện đại. Thông thường thì việc huấn luyện và tối ưu một mạng MLP được thực hiện bằng giải thuật Gradient Descent, tức là tối ưu dựa trên đạo hàm.
Muốn như vậy chúng ta sẽ cần phải tính toán được đạo hàm của từng ma trận trọng số trong quá trình training. Tuy nhiên việc tính toán trực tiếp giá trị đạo hàm ngay từ các layer đầu là một việc cực kỳ khó khăn bởi vì hàm mat mát sẽ không phụ thuộc đơn lẻ vào trọng số của layer đó. Backpropagation là một thuật toán lấy tư tưởng bằng việc tính đạo hàm từ cuối sau đó lan truyền giá trị này dần vào trong các layers phía trên của mang no ron thông qua quy tắc của chain rule — đạo hàm hàm hợp. Chúng ta có thể hình dung bước cập nhật trọng số trong Hình 2.6 Các bước lan truyền ngược 2.
Nghiên cứu các phương pháp họ YOLO 2. YOLOv1 Thuật toán YOLO được Joseph Redmon và các cộng sự giới thiệu lần đầu tiên trong bài báo You Only Look Once: Unified, Real-Time Object Dectection tại hội nghị Conference on Computer Vision and Pattern Recogition (CVPR) vao thang 6 nam 2016. Class probability map Hình 2.7 Các hoạt động cua YOLO Về ý tưởng YOLO chia ảnh đầu vào thành một lưới có kích thước 7x7, mỗi ô trong lưới sẽ làm nhiệm vụ dự đoán một đối tượng. Mỗi ô sẽ dự đoán 30 thông tin: 2 bounding box, mỗi bounding box có 5 thông tin bao gồm x, y, width, height, box objectness score, trong đó 4 thông tin đầu sẽ cung cấp vị trí cũng như kích thước của hộp, thông tin thứ 5 cung cấp mức độ khả năng tồn tại một đối tượng ở ô này.