« Home « Kết quả tìm kiếm

Luận văn Thạc sĩ Kỹ thuật: Hệ thống nhận diện khuôn mặt qua camera


Tóm tắt Xem thử

- HỆ THỐNG NHẬN DIỆN KHUÔN MẶT QUA CAMERA.
- TỔNG QUAN VỀ NHẬN DIỆN KHUÔN MẶT.
- HỆ THỐNG NHẬN DIỆN KHUÔN MẶT DỰA TRÊN MẠNG NƠ RON TÍCH CHẬP.
- 2.1 Sơ đồ thiết kế hệ thống nhận diện khuôn mặt.
- 2.2 Mạng Inception-ResNet sử dụng cho việc trích chọn đặc trưng khuôn mặt.
- 2.3.7 Sử dụng random forest để phân loại, định danh cho khuôn mặt.
- Sơ đồ hoạt động của hệ thống nhận diện khuôn mặt.
- Hệ thống nhận diện khuôn mặt có đeo kính.
- Luồng xử lý của hệ thống sử dụng phương pháp PCA và DCT.
- Chương này sẽ trình bày một số nội dung nền tảng về bài toán nhận diện khuôn mặt, các ứng dụng tương tác người máy liên quan đến nhận diện khuôn mặt, và một số kỹ thuật hay được sử dụng trong bài toán nhận diện khuôn mặt.
- Phần cuối cùng giới thiệu một số mạng tích chập thường được sử dụng trong bài toán nhận diện khuôn mặt..
- Hệ thống nhận diện khuôn mặt dựa trên mạng nơ ron tích chập Các kỹ thuật cơ bản được sử dụng để xây dựng hệ thống nhận diện khuôn mặt của luận văn được trình bày trong chương này.
- Nội dung của chương trình bày về các phương pháp trích chọn đặc trưng phục vụ quá trình nhận diện khuôn mặt, phương pháp định danh khuôn mặt và mô hình học máy được sử dụng để phân loại dữ liệu nhận diện khuôn mặt.
- Chương này cũng bao gồm các thông tin về mô hình, kiến trúc mạng nơ ron tích chập Inception-ResNet sử dụng cho việc trích chọn đặc trưng khuôn mặt của luận văn..
- Nhận diện khuôn mặt là một bài toán tổng hợp.
- Các bài toán trên hiện đang được sử dụng rất nhiều và thành một phần không thể thiếu trong cuộc sống của mỗi người..
- PCA (Principal Components Analysis) [1] là một thuật toán được sử dụng để tạo ra một ảnh mới từ ảnh ban đầu.
- Trong nghiên cứu [2], thuật toán PCA thường được sử dụng cho việc trích chọn đặc trưng khuôn mặt.
- Thuật toán PCA thường được sử dụng để trích chọn vectơ đặc trưng.
- Trong nghiên cứu [3], [4] cũng chỉ rõ đây là một thuật toán tốt được sử dụng cùng với các phương pháp khác như mạng nơ-ron nhân tạo hay PCA trong bài toán nhận diện khuôn mặt..
- Mô hình này có thể sử dụng vào cả hai loại bài toán phân loại (classification) và hồi quy (regression) theo [5].
- Hiện nay, mô hình cây quyết định vẫn còn được sử dụng rất nhiều trong các nghiên cứu cũng như ứng dụng [6]..
- Decision Tree sẽ sử dụng một vài chỉ số để đưa ra việc xác định câu hỏi và thứ tự các biến nào chia dữ liệu để tạo ra Decision Tree có khả năng phân loại tốt nhất.
- Để tìm nghiệm cho các bài toán có nhiều thuộc tính và mỗi thuộc tính có nhiều giá trị khác nhau thì ta sẽ sử dụng một phương pháp đơn giản thường được sử dụng là tại mỗi bước, một thuộc tính tốt nhất sẽ được chọn ra dựa trên một tiêu chuẩn nào đó.
- Những tính chất này của hàm entropy khiến nó được sử dụng trong việc đo độ vẩn đục của một phép phân chia của ID3.
- Sau đó sử dụng thuộc tính đó để phân sẽ giúp cho việc giá trị entropy tại mỗi bước giảm đi một lượng lớn nhất.
- C4.5 là thuật toán phân lớp dữ liệu dựa trên cây quyết định được sử dụng phổ biến và đem lại hiệu quả cao trong những bài toán khai phá dữ liệu có kích thước trung bình, nhỏ.
- Thuật toán C4.5 có sử dụng cơ chế chọn thuộc tính để kiểm tra trên mỗi node..
- Trong thuật toán ID3, Information Gain được sử dụng làm độ đo.
- Do vậy, để khắc phục nhược điểm trên, ta sử dụng độ đo Gain Ratio (trong thuật toán C4.5)..
- Hai độ đo được sử dụng trong C4.5 là information gain và gain ratio.
- Một trong số các phương pháp được sử dụng trong cây quyết định để tránh việc quá khớp diễn ra là: Trong một node, trường hợp các điều kiện sau xảy ra thì ta sẽ coi đó là một một leaf node và dừng, không tiếp tục phân chia tiếp node đó:.
- Điều kiện 1: Giá trị entropy tại node bằng 0 và mọi điểm cùng thuộc một lớp Điều kiện 2: Ta sẽ sử dụng ngưỡng để quyết định có tiếp tục phân chia node..
- Điều kiện 3: Ta sẽ sử dụng ngưỡng quy định số tầng tối đa.
- Điều kiện 4: Ta sẽ sử dụng ngưỡng quy định tổng số leaf node tối đa.
- Với cách chọn này, ta sẽ sử dụng toàn bộ tập dữ liệu này để xây dựng, huấn luyện cho cây quyết định.
- Hàm tổng là sử dụng để tính tổng các tích của dữ liệu đầu vào với trọng số liên kết của nó.
- Ngưỡng là được đưa vào để sử dụng trong hàm kích hoạt.
- Hàm kích hoạt được sử dụng để giới hạn đầu ra của các nơ-ron.
- Mô hình mạng nơ-ron được sử dụng rộng rãi nhất là mô hình mạng nhiều tầng truyền thẳng.
- Bằng cách sử dụng quy tắc dây chuyền, chúng ta có thể tính đạo hàm của X, Z như sau:.
- Cụ thể lớp gộp sẽ làm giảm số tham số sử dụng trong việc tính toán.
- Có rất nhiều loại gộp nhưng gộp cực đại thường được sử dụng nhiều.
- Thông thường thi sẽ chỉ cần sử dụng kích thước 2x2, còn nếu đầu vào là ảnh lớn thì ta có thể sử dụng 4x4..
- Cụ thể, nó sử dụng s(i, t + 1.
- càng nhỏ thì lỗi càng ít từ đó hàm tối ưu được sử dụng để tối ưu hàm mất mát sao cho giá trị hàm mất mát là nhỏ nhất..
- Đối với bài toán phân loại thì đây là phương pháp phổ biến và được sử dụng nhiều nhất.
- Một số mạng tích chập thường được sử dụng trong bài toán nhận diện khuôn mặt.
- Hiện nay có rất nhiều mạng tích chập được sử dụng trong bài toán nhận diện khuôn mặt có thể kể đến như AlexNet, VGG16, DenseNet, GoogleNet hay ResNet..
- Năm 2014, Các kỹ sư của google giới đã sử dụng một mô hình mạng rất đặc.
- Trong kiến trúc, MTCNN sử dụng lần lượt ba mạng P-Net, R-Net, O-Net để xác định khuôn mặt..
- Tầng thứ nhất sử dụng lớp tích chập 3x3 với sải là 1, hàm kích hoạt là PReLu và sau đó là một lớp gộp cực đại với cửa sổ trượt là 3x3 với sải là 2 để kích thước của dữ liệu đầu ra.
- Tầng thứ hai sử dụng lớp tích chập 3x3 với sải là 1, hàm kích hoạt là PReLU và sau đó cũng là một lớp gộp cực đại với cửa sổ trượt là 3x3 với sải là 2 để kích thước của dữ liệu đầu ra.
- O-Net sử dụng 4 lớp tích chập, 3 tầng gộp cực đại và 1 lớp kết nối đầy đủ..
- Bên cạnh đó nội dung của chương cũng trình bày về một số phương pháp hay được sử dụng trong bài toán nhận diện khuôn mặt như PCA, LDA, cây quyết định, mạng nơ ron nhân tạo, nơ ron tích chập.
- Vì vậy ta có thể thấy không phải với bài toán nào ta cũng có thể sử dụng những kiến trúc mạng có sẵn như VGGNET, ZFNET hay AlexNet rồi thêm những tầng tích chập phía sau thì sẽ đem lại kết quả tốt.
- Nhánh đầu tiên sử dụng một tầng tích chập với cửa sổ trượt là 1x1.
- Nhánh thứ ba sử dụng một tầng gộp tối đa với cửa sổ trượt là 3x3 đệm 1 và tầng tích chập 1x1.
- Ba nhánh đầu tiên sử dụng các cửa sổ 1x1, 3x3 và 5x5 để trích chọn đặc trưng tự từ các vùng không gian khác nhau.
- Đó là vì họ đã thực hiện các cửa sổ trượt từ 3x3, 5x5, 7x7 và 11x11 thì nhận thấy việc sử dụng kích thước cửa sổ lớn như 7x7 hay 11x11 sẽ đem lại hiệu quả cao hơn trong việc trích chọn đặc trưng.
- GoogLeNet sử dụng tổng cộng 9 khối inception và tầng gộp trung bình toàn cục xếp chồng lên nhau.
- GoogLeNet sử dụng bốn mô-đun được tạo thành từ các khối Inception.
- ResNet sử dụng bốn mô-đun được tạo thành từ các khối phần dư có cùng số kênh đầu ra.
- Kiến trúc mạng inception-ResNet sử dụng nhiều khối mạng con như Inception-A, Inception-B, Inception-C, Reduction-A, Reduction-B, Stem.
- Ba nhánh đều sử dụng các tầng tích chập với kích thước cửa sổ trượt khác nhau để trích chọn đặc trưng.
- Cả ba nhánh sử dụng phần đệm phù hợp để đầu vào và đầu ra của khối có cùng chiều cao và chiều rộng.
- Cả hai nhánh sử dụng phần đệm phù hợp để đầu vào và đầu ra của khối có cùng chiều cao và chiều rộng.
- Đây là khối inception phần dư cuối cùng được sử dụng trong mạng.
- Tại tầng cuối cùng mỗi nhánh đều sử dụng stride là 2 để giảm depth.
- Rừng ngẫu nhiên (Random Forest) hay còn được gọi là rừng quyết định ngẫu nhiên là một kỹ thuật học tập được sử dụng để giải quyết các nhiệm vụ học tập có giám sát như phân loại và hồi quy.
- Thuật toán này sinh một số cây quyết định (thường là vài trăm) và sử dụng chúng.
- Sử dụng hàng trăm cây quyết định là bất khả thi với con người, nhưng máy tính có thể làm việc này tương đối dễ dàng..
- Như vậy chẳng khác gì chúng ta chỉ sử dụng một cây quyết định duy nhất cả..
- Từ đó, Rừng ngẫu nhiên đã sử dụng bootstrapping để giải quyết vấn đề này.
- Quá trình bootstrapping được rừng ngẫu nhiên sử dụng là thuật toán sẽ chọn ra ngẫu nhiên các quan sát (observations) để đảm bảo rằng không phải tất cả các cây quyết định cho cùng câu trả lời.
- Để chắc chắn các cây quyết định được tạo ra sẽ hoàn toàn khác nhau, rừng ngẫu nhiên sử dụng thêm kỹ thuật lấy mẫu thuộc tính (attribute sampling).
- Các tham số thường được sử dụng khi huấn luyện random forest là n_estimators, max_depth, min_samples_split, max_features, max_features, class_weight, min_impurity_split..
- Đối với bài toán nhận diện khuôn mặt.
- Ta sẽ sử dụng random forest để huấn luyện các vectơ đặc trưng đó với nhãn tương ứng.
- Mô hình phân loại này sẽ được sử dụng trong thực thế với dữ liệu đầu vào là một vectơ đặc trưng và nó sẽ trả lại nhãn với xác suất tương.
- Chương 3 sẽ trình bày về kết quả thu được khi sử dụng mạng inception resnet kết hợp với rừng ngẫu nhiên cho bài toán nhận diện khuôn mặt..
- Bộ dữ liệu được sử dụng trong luận văn là hai bộ dữ liệu faces94 [10] và CASIA-WebFace [20].
- Luận văn sẽ sử dụng hai bộ dữ liệu vào các mục đích khác nhau.
- Đây là bộ dữ liệu nhỏ được dùng để thử nghiệm và đánh giá hiệu quả của kiến trúc mạng trước khi sử dụng bộ dữ liệu chính để huấn luyện.
- Ta tiến hành huấn luyện mạng Inception-ResNet với hàm tối ưu được sử dụng là adagrad.
- Với những người ít kinh nghiệm trong bài toán này việc lựa chọn một mô hình kèm với một phương pháp tối ưu cần truyền vào là tốc độ học sẽ rất khó khăn vì nó tốn thời gian, công sức để đánh giá nên em quyết định sử dụng adagrad.
- Việc tự điều chỉnh tốc độ học trong hàm tối ưu này sẽ giúp mô hình của ta dễ dàng sử dụng hơn.
- Hàm mục tiêu được sử dụng trong nghiên cứu này là cross-entropy-loss..
- Để cho mô hình có thể học tốt ta sẽ tiến hành sử dụng các phương pháp tăng cường dữ liệu qua các tham số là random_rotate, random_flip, random_crop..
- Từ đánh giá trên, kiến trúc mạng Inception-Resnet nguyên bản sẽ được sử dụng để huấn luyện mô hình trích chọn đặc trưng này.
- Dữ liệu được sử dụng cho việc huấn luyện này là CASIA-WebFace.
- Máy chủ được sử dụng cho việc thực nghiệm sử dụng vi xử lý Intel Core i5- 8400 với xung nhịp cơ bản là 2.8GHz.
- Hệ thống nhận diện khách hàng VIP sẽ được phát triển trên nền tảng Ubuntu và ngôn ngữ lập trình được sử dụng là python version 3.6 cùng với các bộ thư viện như opencv, keras, tensorflow để phục vụ cho bài toán xử lý ảnh..
- Ngưỡng này sử dụng được sử dụng để tránh việc xác suất khuôn mặt trả ra quá thấp gây ra việc nhận nhầm thông tin.
- Các tập dữ liệu được sử dụng để đánh giá trong luận văn này là Faces94 [14], Faces95[15], Faces96[16], Grimace[17].
- Sau đó ta sẽ so sánh kết quả của mô hình vừa được huấn luyện với kết quả của một số phương pháp được sử dụng tron nghiên cứu [18] [19] như là LDA, PCA, LBP, SVM based on LDA và MLP kết hợp với PCA và DCT..
- Cả hai thiết kế dù đem lại kết quả nhận diện tốt nhưng trong thiết kế sử dụng MLP, PCA, DCT thì ta có thể thấy thiết kế rất phức tạp và mô hình phân loại đang được sử dụng là một mạng lan truyền ngược lớn.
- Đó là một khoảng thời gian quá lớn vì phương pháp này sử dụng quá nhiều kỹ thuật..
- Hướng tiếp theo là nghiên cứu một số phương pháp sử dụng khoảng cách khi huấn luyện với triplet loss.
- Phương pháp này sẽ cần dung lượng bộ nhớ lớn nhưng không cần huấn luyện và sử dụng mô hình phân loại.

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt