Luan van thac si CNTT (bui the hung CNN for facerecognition)

65 4 0
Luan van thac si CNTT (bui the hung   CNN for facerecognition)

Đ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

Mẫu bìa Đề cương luận văn BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI ĐỀ CƯƠNG LUẬN VĂN THẠC SĨ Chuyên ngành Công nghệ thông tin Mã ngành 8480201 Đề tài Phương pháp nhận dạng khuôn mặt dựa trên mạ.

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI - ĐỀ CƯƠNG LUẬN VĂN THẠC SĨ Chuyên ngành: Công nghệ thông tin Mã ngành: 8480201 Đề tài: Phương pháp nhận dạng khuôn mặt dựa mạng nơron học sâu ứng dụng ghi nhận cán vào, Viện khoa học công nghệ quân HỌC VIÊN THỰC HIỆN: BÙI THẾ HÙNG HƯỚNG DẪN KHOA HỌC: TS DƯƠNG THĂNG LONG Hà Nội, 04/2019 MỞ ĐẦU Tên đề tài: “Phương pháp nhận dạng khuôn mặt dựa mạng nơron học sâu ứng dụng ghi nhận cán vào, Viện khoa học công nghệ quân sự” Đặt vấn đề 2.1 - Tính cấp thiết đề tài Hiện nay, với phát triển xã hội, vấn đề an ninh bảo mật yêu cầu khắt khe quốc gia giới Các hệ thống nhận dạng người đời với độ tin cậy ngày cao Một toán nhận dạng người quan tâm nhận dạng mặt người - Bài tốn nhận dạng mặt người áp dụng rộng rãi nhiều lĩnh vực khác Các ứng dụng liên quan đến nhận dạng mặt người kể như: hệ thống phát tội phạm, hệ thống theo dõi nhân đơn vị, hệ thống tìm kiếm thông tin ảnh, video dựa nội dung… - Đối với Viện khoa học công nghệ quân sự, vấn đề kiểm soát việc ra, vào quan cán nhân viên khách đến làm việc quan trọng nhằm đảm bảo an ninh, an toàn khu vực quân Hệ thống nhận dạng giúp giảm bớt thời gian xử lý công việc cho cán kiểm sốt, giám sát, tăng độ xác xử lý thông tin mang lại hiệu công việc - Từ nhu cầu thực tế đó, học viên với giúp đỡ TS Dương Thăng Long lựa chọn đề tài “Phương pháp nhận dạng khuôn mặt dựa mạng nơron học sâu ứng dụng ghi nhận cán vào, Viện khoa học công nghệ quân sự” làm đề tài nghiên cứu luận văn tốt nghiệp thạc sĩ chuyên ngành Công nghệ thông tin 2.2 - Mục tiêu nghiên cứu Nghiên cứu mạng Neural nhân tạo máy học chuyên sâu (Deep learning) – Convolution Neural Network (CNN) - Hiện thực Convolution Neural Network cho toán nhận dạng mặt người - Đề xuất phương pháp nhận dạng mặt người máy học chuyên sâu cho thành phần khuôn mặt xây dựng nhận dạng kết hợp từ CNN thành phần - Xây dựng phần mềm thử nghiệm cho ứng dụng đề tài 2.3 Đối tượng phạm vi nghiên cứu - Phương pháp nhận dạng khuôn mặt - Mạng nơron nhân tạo 2.4 Phương pháp nghiên cứu Để thực đề tài khoa học này, cần phải kết hợp hai phương pháp sau: - Phương pháp nghiên cứu lý thuyết: Tổng hợp, nghiên cứu tài liệu nhận dạng khuôn mặt; nghiên cứu phương pháp, thuật tốn nhận dạng khn mặt sử dụng mạng nơron - Phương pháp nghiên cứu thực nghiệm: Sau nghiên cứu lý thuyết, phát biểu toán, đưa giải pháp xử lý; cài đặt thử nghiệm chương trình; đánh giá kết đạt 2.5 Nội dung nghiên cứu Với đề tài “Phương pháp nhận dạng khuôn mặt dựa mạng nơron học sâu ứng dụng ghi nhận cán vào, Viện khoa học công nghệ quân sự” Học viên dự kiến thực nội dung nghiên cứu theo kế hoạch sau: - Chương 1: Giới thiệu nhận dạng khuôn mặt - Chương 2: Phương pháp nhận dạng mặt người dựa mạng nơron học sâu - Chương 3: Xây dựng ứng dụng thử nghiệm cho toán ghi nhận cán vào, Viện khoa học công nghệ quân CHƯƠNG I GIỚI THIỆU VỀ NHẬN DẠNG KHUÔN MẶT 1.1 Tổng quan hệ thống nhận dạng khuôn mặt 1.1.1 Hệ thống nhận dạng khuôn mặt Như biết, người sinh có đặc điểm sinh học tự nhiên riêng biệt phân biệt người với người kia, khó trùng lặp Các đặc điểm bị thay đổi sống trừ tác động khách quan chủ quan như: tai nạn, tổn thương, phẫu thuật chỉnh hình Chính yếu tố riêng biệt đó, nhà khoa học tập trung nghiên cứu, tìm hiểu đặc trưng sinh trắc người áp dụng vào biện pháp giúp nhận dạng, xác định danh tính người Dựa vào đặc điểm sinh trắc học người, hệ thống nhận dạng sinh trắc học đời nhằm giải nhiều vấn đề có liên quan tới bảo mật, an ninh, khoa học hay nhu cầu khác sống Các đặc trưng sinh trắc khuôn mặt đặc điểm riêng khuôn mặt người gần không thay đổi theo thời gian, đặc điểm phân biệt người người kia, khó xảy trùng lặp Dựa nhận xét thực tế, người dễ dàng nhận biết khuôn mặt đối tượng tư khác điều kiện ánh sáng khác nhau, phải tồn thuộc tính hay đặc trưng khơng thay đổi Chính thế, việc xác định danh tính, nhận dạng khn mặt người thông qua đặc trưng sinh trắc học đảm bảo độ xác, tin cậy cao Bản thân người nhận dạng ảnh khuôn mặt người cách dễ dàng Thậm chí, ảnh nằm ảnh phức tạp Tuy nhiên, hệ máy việc nhận dạng công việc phức tạp khó khăn Chính vậy, năm gần đây, lĩnh vực nhận dạng khuôn mặt nhận quan tâm nghiên cứu lớn từ nhà khoa học nhằm tạo hệ hỗ trợ định phục vụ nhiều lĩnh vực sống Nhiệm vụ hệ thống nhận dạng khuôn mặt xử lý tự động thông tin từ ảnh khuôn mặt để tìm độ tương tự khn mặt đưa định tính đồng chúng Cấu trúc hệ thống nhận dạng khuôn mặt thể Hình 1.1 Hình 1.1 Cấu trúc tổng quát hệ thống nhận dạng khuôn mặt Q trình nhận dạng khn mặt hoạt động bằng cách sử dụng một ứng dụng và thiết bị máy tính chụp ảnh một khn mặt cá nhân (cũng có thể được lấy từ khung hình từ một video) và so sánh nó với hình ảnh trong cơ sở dữ liệu được lưu trữ trước đó (Hình 1.1) Trường hợp  ảnh đầu vào (image input) gồm cả  khơng gian có chứa khn mặt người muốn định danh thì chúng ta cần phát hiện vùng ảnh chỉ chứa khn mặt của người đó (face detection).  Ảnh khn mặt có thể  được tiền xử  lý (cân chỉnh ­ face alignment) nhằm đảm bảo chất lượng cho nhận dạng. Khn mặt của mỗi người được trích chọn và biểu diễn thơng qua một véc­tơ  đặc trưng (feature extraction) nhằm mơ tả  những đặc điểm riêng biệt của khn mặt của người đó và để  so sánh với các khn mặt khác. Việc so sánh khn mặt đầu vào với cơ  sở  dữ  liệu các khn mặt đã được lưu trữ  (existing database) trở thành việc tính tốn mức độ  gần nhau giữa các véc­tơ  đặc trưng (feature matching), từ đó tìm ra khn mặt giống nhất trong cơ sở dữ liệu. Nếu mức độ  gần nhất của khn mặt tìm được dưới một ngưỡng cho phép thì định danh người đó Hệ thống nhận dạng khuôn mặt cần đảm bảo u cầu sau: - Độ xác nhận dạng chấp nhận yêu cầu toán nhận dạng - Tốc độ vận hành cao CSDL lớn số lượng yêu cầu giải - Đơn giản việc cài đặt, lựa chọn thiết bị vận hành - An toàn với người sử dụng 1.1.2 Một số hướng tiếp cận nhận dạng khuôn mặt Nhận dạng khuôn mặt q trình xác định danh tính tự động cho đối tượng người ảnh/video dựa vào nội dung Rất nhiều hướng tiếp cận đề xuất để giải tốn Nhìn chung, quy trình giải tốn thường bao gồm cơng đoạn như: thu nhận hình ảnh; tiền xử lý, tăng cường chất lượng hình ảnh; phát hiện, chỉnh, crop ảnh khn mặt; nhận dạng (trích chọn đặc trưng phân lớp) khuôn mặt Các hướng tiếp cận trước chủ yếu dựa đặc trưng cố gắng đưa định nghĩa tường minh để biểu diễn khuôn mặt dựa tỷ lệ khoảng cách, diện tích góc Một biểu diễn khn mặt định nghĩa tường minh hướng tới mục tiêu xây dựng không gian đặc trưng trực quan Tuy nhiên, thực tế biểu diễn định nghĩa tường minh thường khơng xác Để khắc phục điều đó, hướng tiếp cận sau đề xuất dựa ý tưởng sử dụng mơ hình học máy thống kê có khả học để lựa chọn đặc trưng khuôn mặt từ tập mẫu cho trước, điển hình như: phương pháp PCA (Principal Component Analysis), khuôn mặt biểu diễn dạng tổ hợp eigenvectors, eigenfaces, fisherfaces; phương pháp sử dụng mơ hình mạng nơron tích chập CNN (Convolutional Neural Network) Hiện tại, hiệu mơ hình nhận dạng khuôn mặt cải thiện đáng kể dựa việc sử dụng kết hợp mơ hình học sâu để tự động phát đặc trưng khuôn mặt kỹ thuật phân lớp thống kê Nhìn chung ứng dụng nhận dạng khuôn mặt thường mong muốn tìm biểu diễn chiều, có khả tổng qt hóa tốt khn mặt mà mạng chưa huấn luyện Trong [1], Florian Schroff cộng đề xuất kiến trúc mạng học sâu FaceNet với hàm chi phí ba ( triplet loss function) định nghĩa trực tiếp biểu diễn Các cải tiến quan trọng FaceNet bao gồm: đề xuất hàm chi phí ba; thủ tục lựa chọn ba huấn luyện; cho phép học từ tập liệu khổng lồ để tìm kiến trúc mạng thích hợp Tính đến thời điểm FaceNet đời, thuật toán lập nên kỷ lục nhận dạng khuôn mặt nhiều điều kiện ảnh khác Tuy nhiên, FaceNet huấn luyện với số lượng lớn hình ảnh (hơn 200 triệu ảnh triệu đối tượng), lớn gấp nhiều lần so với liệu có Để xây dựng liệu lớn khó thực phịng thiết bị, học thuật đòi hỏi kiến trúc máy lớn 1.2 Giới thiệu mạng nơron 1.2.1 Mạng nơron sinh học Não người mạng lưới khoảng 10 11 tế bào thần kinh hay gọi nơron Chúng có cấu trúc chức tương đối đồng Các nhà nghiên cứu sinh học não người đưa kết luận nơron đơn vị đảm nhiệm chức định hệ thần kinh bao gồm não, tuỷ sống dây thần kinh Hình 1.2 cấu tạo hệ thống tế bào sinh học Hình 1.2 Mạng nơron sinh học Cấu trúc nơron chia thành phần chính: Phần thân, hệ thống dây thần kinh tiếp nhận sợi trục thần kinh Hệ thống dây thần kinh tiếp nhận tạo thành mạng lưới dày đặc xung quanh thân tế bào (chiếm diện tích khoảng 0.25 mm2) Chúng đầu vào để đưa tín hiệu điện đến thân tế bào Thân tế bào có nhân bên tổng hợp tín hiệu vào làm thay đổi điện thân Khi điện vượt mức ngưỡng nhân tế bào kích thích đưa xung điện sợi trục thần kinh Sợi trục thần kinh dài vài centimet đến vài met Nó phân thành nhiều nhánh theo dạng hình để nối với dây thần kinh vào nhiều tế bào khác nối trực tiếp đến thân tế bào nơron Việc kết nối thực nhờ khớp nối Số khớp nối nơron lên tới hàng trăm ngàn Người ta tính tốn mạng lưới dây thần kinh khớp nối chiếm khoảng 90% diện tích bề mặt nơron Các tín hiệu điện truyền sợi dây thần kinh hiệu điện nhân tế bào kết q trình phản ứng giải phóng chất hữu đưa từ khớp nối dẫn đến dây thần kinh vào Xung điện đưa sợi trục axon truyền tới khớp nối với đầu vào nơron khác kích thích giải phóng chất truyền điện Tuỳ theo việc tăng hay giảm hiệu mà người ta chia thành hai loại khớp nối khớp nối kích thích khớp nối ức chế Cường độ tín hiệu mà tế bào thần kinh nhận phụ thuộc chủ yếu vào mức độ liên kết khớp nối Các nghiên cứu trình học mạng nơron sinh học việc thay đổi mức độ liên kết khớp nối Chính cấu trúc mạng nơron mức độ liên kết khớp nối tạo nên chức hệ thần kinh người Quá trình phát triển hệ thần kinh trình “học” liên tục Ngay từ sinh ra, số cấu trúc thần kinh đơn giản hình thành Sau cấu trúc khác xây dựng thêm nhờ trình học Do cấu trúc mạng nơron liên tục biến đổi để ngày phát triển hoàn thiện Một vấn đề đặt dựa kết nghiên cứu hệ thần kinh người mơ phỏng, xây dựng lên hệ thần kinh nhân tạo nhằm phục vụ cho chức khơng Nghiên cứu trả lời câu hỏi đưa hướng phát triển mới: Mạng nơron nhân tạo 1.2.2 Mạng nơron nhân tạo Mạng neural nhân tạo (Artificial Neural Network – ANN) mơ hình xử lý thông tin mô dựa hoạt động hệ thống thần kinh sinh vật hay gọi mạng neural sinh học Cấu tạo từ số lượng lớn neural kết nối với để xử lý thông tin ANN giống não người, học kinh nghiệm thông qua huấn luyện, có khả lưu giữ kinh nghiệm tri thức sử dụng tri thức việc dự đoán liệu chưa biết ANN giới thiệu năm 1943 nhà thần kinh học Warren McCulloch nhà logic học Walter Pits 1.2.2.1 Cấu trúc tổng quan mạng nơron nhân tạo (ANN) Một ANN gồm ba tầng lớp đầu vào (input layer), lớp ẩn (hidden layers) cuối lớp đầu (output layer) mơ tả Hình 1.3, đó, lớp ẩn gồm nhiều neural nhận liệu đầu vào từ lớp trước để xử lý chuyển đổi liệu cho lớp Một ANN có nhiều lớp ẩn khơng có lớp ẩn Mỗi node mạng gọi neural Mỗi neural nhận liệu đầu vào xử lý chúng trả kết Kết đầu neural làm liệu đầu vào neural khác Hình 1.3 Cấu trúc ANN Hình 1.4 mơ tả q trình xử lý neural ANN Trong input liệu đầu vào, output kết đầu Trọng số liên kết hay trọng số (connection weights hay gọi tắt weights) thành phần quan trọng, thể mức độ quan trọng trình xử lý liệu từ lớp sang lớp khác Quá trình học ANN thực trình điều chỉnh trọng số liệu đầu vào Hình 2.3 Quá trình xửa lý nơron ANN Hàm tổng tính tổng tích trọng số liệu vào Hàm tính tổng neural liệu đầu vào lớp thứ i Hàm kích hoạt hay hàm chuyển đổi tính tốn đầu neural để chuyển đến lớp mạng neural Hàm kích hoạt phi tuyến sử dụng mạng sử dụng hàm kích hoạt tuyến tính lược giản thơng qua biến đổi đại số thành mơ hình perceptron lớp (là mơ hình ANN đơn giản nhất, khơng có lớp ẩn) Một số hàm kích hoạt phi tuyến thường dùng ReLU (Rectified Linear Unit), sigmoid, logistic, Gaussian, tanh, softmax Hình 2.4 (a) (b) (c) Hình 1.4 Đồ thị hàm kích hoạt: (a) Hàm Tanh; (b) Hàm ReLU; (c) Hàm Sigmoid mo hinh phan tầng của AdaBoost đa loại bỏ hầu hết cac vung  ứng vien khong phải la khuon mặt từ cac t ầng đầu tien, chỉ xet r ất it vung  ứng vien  ở cac t ầng cuối. So với công cụ  phát hiện khn mặt trong thư  viện OpenCV phổ  biến, kỹ  thuật phát hiện khn mặt Haar­cascade sử dụng thuật tốn của Viola­Jones đã được cài đặt trong thư viện Dlib cho kết quả  tốt hơn, ngay cả trong một số tình huống khó khăn và hạn chế của ảnh.  Khi  ảnh khn mặt được phát hiện, chúng tơi cắt vùng ảnh khn mặt đó từ  nền, cải thiện chất lượng  ảnh khn mặt này bằng việc cân bằng sáng và co giãn về  kích thước đúng với đầu vào của mạng nơron đã thiết kế để thực hiện trích chọn đặc trưng và phân lớp. Trong luận văn này, chúng tơi thử  nghiệm trong thực tế với kích thước ảnh khn mặt đầu vào của mạng CNN là 100×90 pixels.  2.3.2 Mơ hình nhận dạng khn mặt dựa CNN Mơ hình CNN được thiết kế  gồm hai phần chức năng là trích chọn đặc trưng của ảnh khn mặt và phân lớp đối tượng dựa trên đặc trưng đã chọn. Mơ hình CNN bao gồm nhiều lớp, số  lớp nơron và độ  lớn (số  nơron) của mỗi lớp  ảnh hưởng đến chất lượng cũng như  độ  phức tạp trong tính tốn của mạng nơron. Các nghiên cứu thường điều chỉnh hai yếu tố  này tuỳ  theo bài tốn  ứng dụng để  đạt được chất lượng mong muốn và đồng thời đảm bảo sự phức tạp tính tốn chấp nhận được.  Mỗi lớp nơron trong mơ hình CNN lấy một mảng nhiều chiều gồm các số làm đầu vào và tạo ra một mảng số nhiều chiều khác ở đầu ra (sau đó trở thành đầu vào của lớp tiếp theo). Khi phân loại hình ảnh khn mặt, đầu vào của lớp nơron đầu tiên là kích thước hình ảnh đầu vào. Kích thước đầu ra của lớp cuối cùng là tập hợp các khả năng của các lớp khác nhau được phân loại cho mỗi  ảnh đầu vào. Chúng tơi sử  dụng cả  ba loại lớp nơron để  xây dựng kiến trúc của CNN bao gồm: 5 lớp tích chập (CONV), 4 lớp nơron gộp chung hay cịn gọi là lớp nơron tổng hợp (POOL) và 2 lớp nơron kết nối đầy đủ  để  phân loại (gọi là lớp Dense). Mỗi lớp CONV được kết nối theo sau nó bởi một lớp POOL, áp dụng cơ  chế  kích hoạt ReLu (Rectified Linear Unit, mặc định là max(x,0)) sau mỗi lớp CONV để  đảm bảo đầu vào khơng âm cho lớp nơron kế  tiếp Theo ngun tắc xếp chồng các lớp nơron và giảm khơng gian mẫu (downsampling) tại các kết quả  đầu ra của chúng, CNN thực hiện trích xuất các đặc trưng ngày càng trừu tượng và phức tạp hơn, đồng thời, là bất biến đối với các phép biến dạng và 50 chuyển đổi [Kam17]. Hơn nữa, để khắc phục hiện tượng q khớp (overfit) trong huấn luyện mạng nơron, mơ hình này sử  dụng thêm kỹ  thuật Dropout sau mỗi lớp POOL Kỹ thuật Dropout này được giới thiệu và sử dụng chủ yếu gần đây, nó thực hiện chọn ngẫu nhiên hàm kích hoạt với một lượng theo tỷ lệ (được đặt trước) của các nơron và đặt thành 0 (tức là đầu ra của nơron được chọn bằng 0) trong q trình huấn luyện mạng, do đó mơ hình sẽ trở nên ít nhạy cảm hơn với các trọng số cụ thể  trong mạng Giá trị  tỷ  lệ  cho mỗi lớp Dropout trong mơ hình được thiết lập theo phương pháp heuristic và dựa trên q trình thử  nghiệm. Mạng tích chập CNN trong mơ hình này được chia thành 12 khối (Hình 2.15) như sau: Hình 2.15 Kiến trúc dạng khối của mơ hình CNN  Khối B1 là  ảnh đầu vào có kích thước H×W×1 (cao × rộng × sâu). Để  giảm bớt khơng gian và bộ nhớ  của q trình tính tốn mạng nơron nên chúng tơi sử  dụng ảnh đầu vào đa cấp xám (số  chiều thứ  3 (độ  sâu) trong kích thước  ảnh bằng 1) Hình vẽ sau minh hoạ cho một ảnh đầu vào: Hình 2.16 Một ảnh đầu vào kích thước 100×90×1 (đa cấp xám) 51  Khối B2 là lớp nơron tích chập có 32 bộ lọc đặc trưng với kích thước cửa sổ hàm nhân là 3×3. Hàm kích hoạt ReLu được sử  dụng trong lớp nơron này. Hiệu  ứng này nhằm cải thiện các đặc trưng thưa của tồn mạng và tránh sự  phụ  thuộc vào việc truyền tham số giữa các nơron  Khối B3 là lớp POOL kết hợp với hàm kích hoạ kiểu MaxPooling, cửa sổ xử lý có kích thước 2×2 được sử  dụng và đầu ra bị  loại bỏ  (đặt về  0) ngẫu nhiên với xác suất 0,25. Lớp giảm khơng gian mẫu (downsampling) này sử  dụng phương pháp max­pooling với việc có thể  giữ  lại thơng tin hữu ích và cắt giảm lượng dữ  liệu cần xử lý ở bước tiếp theo Hình 2.17 minh hoạ kết quả xử lý của lớp nơron tích chập CONV ở khối B2 và lớp nơron POOL (max­pooling)  ở khối B3, tương  ứng mỗi  ảnh là một trong số 16 bộ lọc (chỉ  số  tiêu đề   ảnh từ  #1 đến #16). Với  ảnh đầu vào   Hình  2.17, kích thước của mỗi ảnh sau xử lý đến bước này là 50×45 vì kích thước cửa sổ xử lý POOL là 2×2 (chia đơi chiều cao và rộng của ảnh đầu vào) Hình 2.17 Hình ảnh sau khi xử lý của khối B2 và lớp nơron POOL 52  Các khối B4, B6, B8 tương tự khối B2 nhưng số các bộ lọc (filters) tăng dần từ 32, 64, đến 128. Các khối B5, B7, B9 tượng tự  khối B3, mỗi khối này kết nối ngay theo sau khối tích chập CONV để thực hiện cắt giảm khơng gian mẫu Thơng thường, chúng ta càng có nhiều bước sử  dụng phép tích chập thì cơ  hội trích chọn càng nhiều đặc trưng phức tạp hơn, qua đó kỳ vọng mơ hình đề xuất có thể  học để  nhận biết đối tượng   mức tốt hơn [Kam17]. Chẳng hạn, trong phân loại hình  ảnh, mơ hình CNN có thể  học để  phát hiện các đặc trưng cạnh từ  các pixel thơ trong lớp CONV đầu tiên, sau đó sử dụng các đặc trưng cạnh này để phát hiện các đặc trưng hình dạng đơn giản trong lớp CONV thứ  hai, sau đó sử  dụng các đặc trưng hình dạng này để phát hiện các đặc trưng ở mức cao hơn, chẳng hạn như hình dạng khn mặt ở các lớp cao hơn Trong Hình 2.18/a/b/c dưới đây minh hoạ  kết quả  xử  lý   bộ lcutiờnca cỏckhiB4,B6,B8cựngvilpnronPOOLngaysauchỳng(tngngB5, B7,B9),doúkớchthccahỡnhnhsaumibcxlýgimdnvihsẵ (sauB5l25ì23,sauB7l13ì12,sauB9l7ì6).Ktqu minhho trcquan chothycngv sauhỡnh nhcngm,th hinkh  năng trừu tượng hố và biểu diễn các đặc trưng chung nhất của  khn mặt một cá nhân, dù được chụp dưới góc độ nào. Hay có thể nói rằng các đặc trưng này của cá nhân có độ bất biến cao nhất đối với bất kỳ hình ảnh khác nhau nào của họ dù dưới các dạng thức, độ sáng tối, màu sắc, kích thước khác nhau Hình 2.18 Hình ảnh kết xử lý sau B5, B7 B9  Khối B10 là lớp nơron kết nối đầy đủ (fully connection layers). Lớp này cùng với lớp trong khối B12 nhằm mục tiêu phân lớp các đặc trưng được trích chọn   các lớp trước, do đó chúng tơi thiết kế số nơron đủ lớn, trong bài báo này chúng tơi đặt  50 lần số  lớp  đối tượng  cần phân loại,  hàm kích hoạt ReLu  cũng  được áp dụng. Tiếp sau là khối B11 áp dụng nhằm loại bỏ ngẫu nhiên đầu ra của nơron với 53 xác xuất 0,25. Dữ liệu sau đây là đầu ra của 30 nơron đầu tiên trong khối B10, các giá trị ở đây được xem như biểu diễn dạng số của các đặc trưng khn mặt tương ứng với ảnh đầu vào  Khối Khối B12 là lớp nơron đầu ra cuối cùng, đây chính là một phân bố cho phân loại của các lớp đối tượng khác nhau với tính năng của hàm kích hoạt Softmax. Áp dụng phương pháp hồi quy Softmax ở lớp đầu ra của mạng CNN nhằm thẩm định cho q trình huấn luyện mạng. Cơ  chế  thẩm định này đảm bảo mơ hình CNN khơng bị  q khớp (overfiting) dữ  liệu học và có khả  năng dự  đốn tốt hơn. Cơ chế này được thực hiện thơng qua việc chia dữ liệu học thành hai phần, một phần để tính tốn cập nhật và điều chỉnh trọng số mạng, một phần để tính tốn sai số và cũng đưa vào pha cập nhật thay đổi trọng số mạng. Đầu ra phân lớp cuối cùng của mơ hình được xác định dựa trên giá trị cực đại hàm Softmax của nơron tương ứng, với mơ hình CNN có   lớp (tức là có   nơron  ở lớp ra) thì ta có cơng thức xác định như sau: Trong đó,   là đầu ra của nơron thứ   ở lớp nơron cuối cùng và tương ứng với nó là lớp đối tượng    Bảng 2.1 minh hoạ dữ liệu gồm 3 giá trị  sau là kết quả đầu ra của lớp nơron cuối cùng (khối B12), tương ứng với kết quả phân lớp của ảnh đầu vào. Kết quả đầu ra của mơ hình CNN tương ứng với mỗi ảnh đầu vào gồm 3 giá trị (ở đây chỉ minh hoạ với 3 lớp). Giá trị cao nhất ở vị trí nào (tính theo chỉ số từ 0 và từ trái sang phải) trong bộ 3 giá trị đầu ra chính là định danh cá nhân (vị trí tương ứng giá trị và số in đậm) của dữ liệu ảnh đầu vào.  54 Bảng 2.1 Ví dụ về dữ liệu phân lớp của mơ hình CNN Kết luận chương Có thể thấy rằng, mạng nơron cơng cụ hữu hiệu việc xử lý lớp toán phi tuyến phức tạp Đặc biệt tốn phân lớp đối tượng phi tuyến Chính vậy, nội dung chương trình bày kiến thức tổng quan cho việc xây dựng loại mạng nơron Hiệu mơ hình kiểm chứng thơng qua chương trình ứng dụng xây dựng ngôn ngữ Python kết hợp thư viện mã nguồn mở OpenCV trình bày chi tiết chương CHƯƠNG III XÂY DỰNG ỨNG DỤNG THỬ NGHIỆM CHO BÀI TOÁN GHI NHẬN RA, VÀO TẠI VIỆN KHOA HỌC CƠNG NGHỆ QN SỰ 3.1 Xây dựng chương trình ứng dụng 3.1.1 Đặt vấn đề toán Như đề cập chương 1, mục tiêu luận văn xây dựng phần mềm nhận dạng để ghi nhận trình ra, vào cán bộ, công nhân viên khách đến liên hệ công việc Viện khoa học công nghệ quân Đối với Viện khoa học công nghệ quân sự, vấn đề kiểm soát việc ra, vào quan cán nhân viên khách đến làm việc quan trọng nhằm đảm bảo an ninh, an toàn khu vực quân Hệ thống nhận dạng giúp giảm bớt thời gian xử lý công việc cho cán kiểm sốt, giám sát, tăng độ xác xử lý thơng tin mang lại hiệu cơng việc Vì vậy, ý tưởng xây dựng phần mềm nhận dạng khuôn mặt hình thành phát triển nhằm đáp ứng nhu cầu sử dụng cán kiểm sốt 3.1.2 Mơi trường thực nghiệm 3.1.2.1 Cơng cụ xây dựng phần mềm 55 Chương trình thực nghiệm cài đặt môi trường Python, sử dụng thư viện Numpy cho việc biểu diễn, lưu trữ thao tác liệu; thư viện OpenCV để thực thao tác xử lý ảnh bản; thư viện Scikit-Learn cho việc thử nghiệm mơ hình học máy (mạng nơron, mơ hình smv, ) Chương trình thử nghiệm máy tính sử dụng hệ điều hành Windows 10 Pro phiên 64 bit với RAM 8GB, Intel(R) Core(TM) i3-8130U CPU @2.20GHz 3.1.2.2 Ngôn ngữ xây dựng phần mềm Để xây dựng chương trình nhận dạng này, tơi sử dụng ngơn ngữ Python Đó ngơn ngữ lập trình hướng đối tượng, cấp cao, mạnh mẽ, tạo Guido van Rossum Nó dễ dàng để tìm hiểu lên ngôn ngữ lập trình nhập mơn tốt cho người lần đầu tiếp xúc với ngơn ngữ lập trình Python hồn tồn tạo kiểu động sử dụng chế cấp phát nhớ tự động Python có cấu trúc liệu cấp cao mạnh mẽ cách tiếp cận đơn giản hiệu lập trình hướng đối tượng Cú pháp lệnh Python điểm cộng vô lớn rõ ràng, dễ hiểu cách gõ linh động làm cho nhanh chóng trở thành ngơn ngữ lý tưởng để viết script phát triển ứng dụng nhiều lĩnh vực, hầu hết tảng Các tính của Python - Ngơn ngữ lập trình đơn giản, dễ học: Python có cú pháp đơn giản, rõ ràng Nó dễ đọc viết nhiều so sánh với ngôn ngữ lập trình khác C++, Java, C# Python làm cho việc lập trình trở nên thú vị, cho phép bạn tập trung vào giải pháp cú pháp - Miễn phí, mã nguồn mở: Bạn tự sử dụng phân phối Python, chí dùng cho mục đích thương mại Vì mã nguồn mở, bạn khơng sử dụng phần mềm, chương trình viết Python mà cịn thay đổi mã nguồn Python có cộng đồng rộng lớn, khơng ngừng cải thiện lần cập nhật - Khả di chuyển: Các chương trình Python di chuyển từ tảng sang tảng khác chạy mà khơng có thay đổi Nó chạy liền mạch hầu hết tất tảng Windows, macOS, Linux - Khả mở rộng nhúng: Giả sử ứng dụng đòi hỏi phức tạp lớn, bạn dễ dàng kết hợp phần code C, C++ ngôn ngữ 56 khác (có thể gọi từ C) vào code Python Điều cung cấp cho ứng dụng bạn tính tốt khả scripting mà ngơn ngữ lập trình khác khó làm - Thư viện tiêu chuẩn lớn để giải tác vụ phổ biến: Python có số lượng lớn thư viện tiêu chuẩn giúp cho cơng việc lập trình bạn trở nên dễ thở nhiều, đơn giản khơng phải tự viết tất code Ví dụ: Bạn cần kết nối sở liệu MySQL Web server? Bạn nhập thư viện MySQLdb sử dụng Những thư viện kiểm tra kỹ lưỡng sử dụng hàng trăm người Vì vậy, bạn chắn khơng làm hỏng code hay ứng dụng Ứng dụng Python - Lập trình ứng dụng web: Bạn tạo web app có khả mở rộng (scalable) cách sử dụng framework CMS (Hệ thống quản trị nội dung) tích hợp Python Vài tảng phổ biến để tạo web app là: Django, Flask, Pyramid, Plone, Django CMS Các trang Mozilla, Reddit, Instagram PBS viết Python - Khoa học tính tốn: Có nhiều thư viện Python cho khoa học tính tốn số liệu, SciPy NumPy, sử dụng cho mục đích chung chung tính tốn Và, có thư viện cụ thể như: EarthPy cho khoa học trái đất, AstroPy cho Thiên văn học, Ngồi ra, Python cịn sử dụng nhiều machine learning, khai thác liệu deep learning - Tạo nguyên mẫu phần mềm: Python chậm so sánh với ngôn ngữ biên dịch C++ Java Nó khơng phải lựa chọn tốt nguồn lực bị giới hạn yêu cầu hiệu bắt buộc Tuy nhiên, Python ngôn ngữ tuyệt vời để tạo nguyên mẫu (bản chạy thử - prototype) Ví dụ, bạn sử dụng Pygame (thư viện viết game) để tạo nguyên mẫu game trước Nếu thích ngun mẫu dùng C++ để viết game thực 3.1.2.3 Cơ sở liệu ảnh Để lấy sở liệu ảnh, cán bộ, nhân viên đến gặp trực tiếp cán phụ trách gửi ảnh chụp sẵn cho cán phụ trách để thu thập liệu ảnh Với cán bộ, nhân viên thu thập số hình ảnh khn mặt (với 57 góc nghiêng khác nhau, trạng thái khác cười khơng cười, đeo kính khơng, miệng mở đóng …) 3.1.2.4 Cài đặt - Cài đặt Python 3.6.7 - Cài đặt thư viện OpenCV tương thích 58 - Cài đặt thư viện khác - Mã nguồn chương trình 59 3.2 Kiểm thử đánh giá kết 3.2.1 Khởi tạo trích xuất liệu 3.2.2 Khởi tạo đào tạo mơ hình nhận dạng 3.2.3 Chương trình nhận diện dựa liệu có sẵn 60 3.2.4 Chương trình nhận diện thời gian thực qua camera 61 3.2.5 Đánh giá kết Sau tiến hành cài đặt chạy thử chương trình thử nghiệm, nhận thấy rằng, số lượng ảnh huấn luyện nhiều độ xác phương pháp tăng lên Điều hiển nhiên nhiều mẫu huấn luyện có nhiều đặc trưng cho lớp liệu không gian khuôn mặt Kết thực nghiệm cho thấy mơ hình đạt độ xác tương đối cao ổn định mơi trường thực tế, không bị ảnh hưởng yếu tố tự nhiên người Kết luận chương Xuất phát từ tính cấp thiết việc nhận dạng cán bộ, nhân viên nhằm kiểm chứng tính đắn thuật tốn nhận dạng khn mặt, chương luận văn trình bày cách thức xây dựng chương trình mơ Từ việc chuẩn bị, thu thập mẫu liệu nhằm đạt yêu cầu đặt toán Kết kiểm chứng cho thấy phương pháp kết hợp cho hiệu tốt Cụ thể việc nhận dạng cho kết tốt thay đổi tư thế, góc nghiêng khn mặt, ảnh trước webcam thu thập điều kiện sáng khác KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 62 Trong luận văn này, tơi đã đề  xuất một mơ hình dựa trên mạng nơron tích chập (CNN) để  nhận dạng khn mặt con người. Mơ hình này có 4 lớp nơron tích chập (CONV) và 2 lớp nơron liên kết đầy đủ  (FC), tổng số  tham số  là khoảng 12 triệu Trong khi đó, các mơ hình của dựa trên kiến trúc VGG gồm 13 lớp CONV và 3 lớp FC, số  lượng khoảng 138 triệu tham số, gấp hơn 10 lần. Như vậy, có thể  khẳng định mơ hình của chúng tơi có độ phức tạp ở mức vừa phải, phù hợp với các hệ thống tính tốn ở mức trung bình và đem lại tiềm năng khả thi trong ứng dụng thực tiễn Mặc dù độ phức tạp của mơ hình ở mức thấp so với các mơ hình khác, nhưng kết  thử  nghiệm cho thấy tính hiệu quả  của phân lớp khá cao. Hiện nay do điều kiện tính tốn nên chúng tơi chỉ áp dụng số lần huấn luyện cịn thấp, nếu được huấn luyện ở mức độ sâu hơn thì kỳ vọng sẽ đem lại kết quả cao hơn nữa Trong thời gian tới, chúng tơi sẽ nghiên cứu cải thiện hiệu quả phân lớp bằng cách áp dụng mơ hình phân lớp SVM thay thế cho các lớp nơron dạng FC trong mơ hình CNN, phân tích điều chỉnh một số  lớp CONV bằng lớp nơron dạng Inception. Tiếp theo, chúng tơi sẽ  thiết kế  một hệ  thống thu thập dữ  liệu hình  ảnh để  tạo bộ  dữ  liệu huấn luyện cho mơ hình, từ đó xây dựng một ứng dụng hồn chỉnh cho bài tốn thực tiễn: hệ thống giám sát cán bộ vào/ra cổng cơ quan. Bên cạnh đó là nhiều bài tốn thực tiễn khác như: hệ  thống điểm danh sinh viên có mặt   lớp học, hệ  thống theo dõi và định danh liên tục q trình học tập của người học trực tuyến 63 TÀI LIỆU THAM KHẢO 64 ... cấu trúc mạng nơron sinh học Giữa mạng nơron nhân tạo mạng nơron sinh học có điểm chung là: - Mạng xây dựng phần tử tính tốn đơn giản liên kết lại với cách phức tạp hoạt động theo nguyên tắc song... động CNN hình thành cách ghép lớp nêu lại CNN bắt đầu với lớp tích chập Theo sau lớp tích chập ln lớp hàm kích hoạt, đơi ta ghép hai lớp lại thành lớp Các lớp lớp pooling lớp tích chập tùy theo... nghiên cứu, tìm hiểu đặc trưng sinh trắc người áp dụng vào biện pháp giúp nhận dạng, xác định danh tính người Dựa vào đặc điểm sinh trắc học người, hệ thống nhận dạng sinh trắc học đời nhằm giải

Ngày đăng: 09/12/2022, 22:36

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan