Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
1,09 MB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG CƠ SỞ TP.HỒ CHÍ MINH KHOA CƠNG NGHỆ THƠNG TIN Nhờ phát triển khoa học kỹ thuật Công nghệ nhận diện khuôn mặt phát triển ứng dụng rộng rãi sống ngày người Tiêu biểu hệ thống camera quan sát tòa nhà, trung tâm mua sắm, sân bay nhằm quản lý an ninh, chống trộm, bảo vệ an tồn cho người Ngồi cịn áp dụng nhằm bảo mật thông tin xác thực danh tính, chấm cơng vv Với mong muốn tìm hiểu sơ lược phương pháp nhận diện khuôn mặt nên em chọn đề tài “Nhận diện khuôn mặt” Lịch công nghệ nhận diện khuôn mặt - - - Những người tiên phong lĩnh vực nhận dạng khuôn mặt bao gồm: Woody Bledsoe Helen Chan Wolf, Charles Bisson Trong năm 1964 – 1965 ba nhà khoa học bắt đầu ý tưởng sử dụng máy tính để nhận khuôn mặt người Với dự án mang tên “man-machine”, họ trích xuất tọa độ tập hợp đặc điểm từ hình ảnh , sau đưa máy tính nhận dạng.[1] Năm 1966 cơng việc nghiên cứu tiếp tục viện nghiên cứu Standford Đến năm 1997 hệ thống phát triển Christoph von der Malsburg sinh viên sau đại học trường Đại học Bochum Đức Đại học Nam California Mỹ thể vượt trội so với hầu hết hệ thống khác Năm 2006 thuật tốn nhận diện khn mặt phát triển Hình ảnh scan gương mặt 3D với kết xác gấp 10 lần so với thuật toán năm 2002 gấp 100 lần vào năm 1995 Bài tốn nhận diện khn mặt - - - Nhận diện khuôn mặt phương pháp sinh trắc nhằm xác minh người cách so sánh liệu hình ảnh người với ghi lưu trữ Các hệ thống nhận diện khuôn mặt áp dụng rộng rãi sống vào mục đích an ninh, phát tội phạm … Một số khó khăn việc nhận diện khn mặt như: độ sáng, hướng nghiêng, kích thước hình ảnh, diện mạo, biểu cảm xúc môi trường Để xây dựng hệ thống nhận diện khuôn mặt với đầu vào hình ảnh kỹ thuật số số khung hình video, đầu danh tính người thường chia làm bước để thực hiện: phát khn mặt, rút trích đặc trưng nhận diện khn mặt.[2] • Phát khn mắt: phát có khn mặt xuất hình video hay không? bước quan trọng để đảm bảo bước sau bạn có đạt độ xác hay khơng • Rút trích đặc trưng: Sau phát khuôn mặt ta bắt đầu biểu diễn thành vector đặc trưng đại diện cho khn mặt • Nhận diện khn mặt: Đây bước cuối toán đem đặc trưng vừa tìm đem so sánh với đặc trưng nằm sở liệu 2.1.Nhận diện khuôn mặt bản: • Tiền sử lý: q trình giúp nâng cao chất lượng hình ảnh, chuẩn hóa liệu giúp cho việc rút trích đặc trưng xác • Rút trích đặc trưng: sử dụng thuật tốn để lấy thơng tin riêng biệt, đặc trưng người Thuật toán Principle Components Analysis (PCA) thuật tốn tạo hình ảnh có kích thước nhỏ nhiều so với ảnh ban đầu 2.2.Thuật tốn PCA - Khơng gian tạo từ thuật toán PCA gồm K vector đơn vị có chiều dài N Mỗi vector gọi Eigenfaces [3] [4] [3] 3.Ưu nhược điểm công nghệ nhận diện khn mặt: • So với cơng nghệ khác: đem so sánh với công nghệ khác nhận diện khn mặt khơng đáng tin cậy hiệu • Nhược điểm: nhận dạng khn mặt khó thực xác điều kiện định, trở ngại liên quán đến góc chụp, điều kiện ánh sáng, thời tiết khn mặt bị che • Ưu điểm: khơng địi hỏi hợp tác đến từ người dùng • Vấn đề riêng tư:các tổ chức quyền công dân bày tỏ lo ngại quyền riêng tư bị tổn hạị cách sử dụng công nghệ dám sát Điều khiến liệu người dùng bị lạm dụng cho mục đích riêng nhằm kiếm lợi nhuận hành vi xấu xa 4.Bài thực hành : ( Thực theo hướng dẫn anh Trung Sơn Viblo )[2] HNSW: thư viện fast approximate nearest neighbor search dựa thuật tốn HNSW • Nhẹ, nhanh dụng lượng • Có suport C++, python R • Hỗ trợ thêm xóa phần tử mà khơng giải phóng nhớ (annoy khơng làm được) • Có thể tự định nghĩa hàm tìm kiếm khoảng cách riêng (C++) Các thư viện cần cài đặt: • Dlib: toolkit viết C++ chứa thuật toán machine learning, deep learning xử lý vấn đề computer vison đặc biệt với tốn nhận diện khn mặt với độ xác khơng cần cao • OpenCV: thư viện mã nguồn mở lĩnh vực computer vison machine learning • Face_Recognition: thư viện nhận dạng khuôn mặt viết python đơn giản sử dụng deep learning Thu thập liệu: - Trước hết ta import thư viện cần thiết vào • Khởi tạo face object detection với function get_frontal_face_detector • Detect face landmarks trả key points khuôn mặt, dlib trả 62 points • Align khn mặt cách sử dụng phép biến đổi affine function FaceAligner, bạn đọc thêm • Sau khởi tạo hàm VideoCapture để capture video, tham số '0' dùng cho thiết bị camera cắm ngồi vào • frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) Chuyển kênh màu RGB sang thang đo độ xám • number_of_images < MAX_NUMBER_OF_IMAGES set MAX_NUMBER_OF_IMAGES = 40 , vòng lặp qua frame dừng lại detect cap đủ 40 images • (x, y, w, h) = face_utils.rect_to_bb(face) Lấy tọa độ face frame • face_img = frame_gray[y-50:y + h+100, x-50:x + w+100] Trả face cut từ tọa độ lấy trên, tham số 50, 100 để chỉnh thêm cho khn mặt( thêm vào khơng) • face_aligned = face_aligner.align(frame, frame_gray, face) Align face nhờ Function FaceAligner nói Kết quả: Đánh Index: • p = hnswlib.Index(space = 'l2', dim = DIM) Khởi tạo không gian với DIM số chiều cần khởi tạo không gian (không gian chỗ lưu trữ index để tìm kiếm) • p.init_index(max_elements = NUM_ELEMENTS, ef_construction = EF_CONSTRUCTION, M = M) khởi tạo index rỗng vào space, với max_elements số lượng phần tử tối đa lưu trữ cấu trúc, ef_construction thời gian khởi tạo/đánh đổi accuracy vs speed search, M số lượng node kết nối với để tạo nên small world graphs graph • detector = MTCNN() Sử dụng MTCNN để kiểm tra trích xuất face lần trước đánh index Ta sử dụng thư viện face_recognition để encode image vector 128 chiều đánh index được, function image_encoding encode face images thành vector 128 chiều cho Khởi tạo vịng lặp để ecode images đánh index • p.add_items(np.expand_dims(img_emb[0], axis = 0), i) expand dimension sau add vào space • p.save_index("images.bin") space lưu dạng file "images.bin" coi database search Search face với Hnswlib • p.load_index("images.bin", max_elements = NUM_ELEMENTS) Load index từ file images.bin , max_elementsĐặt lại số lượng phần tử tối đa cấu trúc file • rgb_small_frame = small_frame[:, :, ::-1] Chuyển kênh màu RGB • face_locations = face_recognition.face_locations(rgb_small_frame) Trả tọa độ face có frame • face_encodings = face_recognition.face_encodings(rgb_small_frame, face_locations) Kết hợp cut face từ frame với tọa độ cho trước encode thành vector 128 chiều • labels, distances = p.knn_query(np.expand_dims(face_encoding, axis = 0), k = 1) Với face_encoding vừa lấy từ frame ta thực query DB • if distances < 0.13: Nếu euclidean distance face vừa trích xuất với face DB mà nhỏ 0.13 xuất tên tìm ko trả "unknown" Kết quả: Kết Luận: Ta tìm hiểu sơ qua công nghệ nhận diện khuôn mặt, ứng dụng vào sống ngày Ưu, nhược điểm vấn đề đạo đức quyền riêng tư Thực theo làm ứng dụng nhỏ nhận diện khuôn mặt Tài liệu tham khảo: Wikipedia Hệ thống nhận dạng khuôn mặt https://vi.wikipedia.org/wiki/ Hệ_thống_nhận_dạng_khuôn_mặt Mai Xuân Phú, (2017) Nghiên cứu kỹ thuật nhận dạng khuôn mặt người Xây dựng hệ thống camera chống trộm http://tainguyenso.dut.udn.handle/DUT/3 22 Tiep Vu Huu,(2017) Principal Component Analysis (phần 1/2) https://machi nelearningcoban.com/2017/06/15/pca/ Tiep Vu Huu, (2017) Principal Component Analysis (phần 2/2) https://machi nelearningcoban.com/2017/06/21/pca2/ trungson077, (2020) Xây dựng hệ thống nhận diện khuôn mặt real time – Phần 2: xây dựng hệ thống hoàn chỉnh nhận dạng khuôn mặt với Hnswlib https: //viblo.asia/p/xay-dung-he-thong-nhan-dang-khuon-mat-real-time-phan-2-xaydung-he-thong-hoan-chinh-nhan-dang-khuon-mat-voi-hnswlibgAm5y1Jw5db#_cac-thu-vien-can-cai-dat-7 Jain, Anil K., Flynn, Patrick, Ross, Arun A, (2008) Handbook-of-Biometrics ... mong muốn tìm hiểu sơ lược phương pháp nhận diện khuôn mặt nên em chọn đề tài ? ?Nhận diện khuôn mặt? ?? Lịch công nghệ nhận diện khuôn mặt - - - Những người tiên phong lĩnh vực nhận dạng khuôn mặt bao... nhận diện khn mặt phát triển Hình ảnh scan gương mặt 3D với kết xác gấp 10 lần so với thuật toán năm 2002 gấp 100 lần vào năm 1995 Bài tốn nhận diện khn mặt - - - Nhận diện khuôn mặt phương pháp. .. diện khuôn mặt Tài liệu tham khảo: Wikipedia Hệ thống nhận dạng khuôn mặt https://vi.wikipedia.org/wiki/ Hệ_thống _nhận_ dạng _khuôn_ mặt Mai Xuân Phú, (2017) Nghiên cứu kỹ thuật nhận dạng khuôn mặt