Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 35 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
35
Dung lượng
2,34 MB
Nội dung
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN o0o BÁO CÁO BÀI TẬP LỚN MÔN HỌC MÁY ĐỀ TÀI: NHẬN DIỆN KHUÔN MẶT VỚI KNN GIẢNG VIÊN HƯỚNG DẪN : THS LÊ THỊ THỦY LỚP : 20212IT6047002 NHÓM : 10 SINH VIÊN THỰC HIỆN : LÊ HUY HOÀNG – 2021608739 : BÙI THANH HẢI – 2020608592 : THÂN THỊ LỢI – 2020608612 PHÂN CHIA NỘI DUNG VIẾT BÁO CÁO Bảng phân chia STT Thành viên Thân Thị Lợi Bùi Thanh Hải Lê Huy Hồng PHÂN CƠNG VÀ KẾ HOẠCH THỰC HIỆN Đề tài: Nhận diện khuôn mặt với KNN Tuần Người thực Lê Huy Hoàng Bùi Thanh Hải Thân Thị Lợi Thân Thị Lợi Lê Huy Hoàng Bùi Thanh Hải Lê Huy Hoàng Lê Huy Hoàng Bùi Thanh Hải Thân Thị Lợi MỤC LỤC DANH MỤC HÌNH LỜI CẢM ƠN LỜI MỞ ĐẦU CHƯƠNG BÀI TOÁN NHẬ 1.1 Tổng quan nhận dạng 1.1.1 Tính chất cần 1.1.2 Bản chất q tr 1.2 Bài tốn nhận diện khn mặt 1.2.1 Khái niệm 1.2.2 Nguyên tắc hoạt độ CHƯƠNG NHẬN DIỆN K 2.1 Thuật toán KNN 2.1.1 Giới thiệu thuật 2.1.2 Quy trình thuật 2.1.3 Ưu điểm nhược 2.1.4 Ví dụ thuật tốn 2.2 Xử lý hình ảnh để nhận dạng CHƯƠNG 2.2.1 Khái niệm xử lý 2.1.2 Phương pháp xử lý THỰC NGHIỆM 3.1 Thiết kế chương trình 3.2 Xác định vùng chứa khuôn mặt sử dụng Haarcascade Op 3.3 Xử lý hình ảnh trích chọn đặc trưng OpenCV 3.4 Xây dựng model KNN để phân loại khuôn mặt 3.5 Kết thực nghiệm chạy chương trình KẾT LUẬN DANH MỤC HÌNH Hình Sơ đồ tổng quan hệ nhận dạng 10 Hình Nhận diện khuôn mặt .10 Hình Khoảng cách Euclid .14 Hình Dữ liệu ví dụ ban đầu .16 Hình Dữ liệu sau chuẩn hóa 17 Hình Kết tính tốn 17 Hình Dữ liệu sau xếp 18 Hình Mơ hình xử lý ảnh tổng quan 19 Hình Kỹ thuật lọc trung vị 20 Hình 10 Kỹ thuật lọc trung bình 20 Hình 11 Khởi tạo mơ hình Haarcascade OpenCV để nhận diện khn mặt 23 Hình 12 Xác định vị trí khn mặt 23 Hình 13 Xác định vị trí làm xám khuôn mặt 24 Hình 14 Kết sau làm xám khuôn mặt 24 Hình 15 Thay đổi kích thước dạng 100*100 25 Hình 16 Kết sau thay đổi kích thước 25 Hình 17 Chương trình lưu trữ điểm ảnh 25 Hình 18 Hình ảnh trích chọn đặc trưng làm xám 26 Hình 19 Nội dung model KNN 26 Hình 20 Hàm tính khoảng cách Euclid 27 Hình 21 Huấn luyện phát khn mặt camera 27 Hình 22 Lưu trữ liệu khuôn mặt 28 Hình 23 Kết huấn luyện camera 28 Hình 24 Huấn luyện hình ảnh 29 Hình 25 Kết huấn luyện hình ảnh 29 Hình 26 Đọc liệu huấn luyện khởi tạo mơ hình KNN với K = .30 Hình 27 Lựa chọn phương pháp kiểm thử 30 Hình 28 Chương trình nhận diện khn mặt gán nhãn 31 Hình 29 Kết nhận diện khuôn mặt 31 LỜI CẢM ƠN Lời cho phép chúng em gửi lời cảm ơn sâu sắc tới thầy cô khoa Công nghệ thông tin - Trường Đại học Công Nghiệp Hà Nội, người truyền đạt dẫn cho chúng em kiến thức, học quý báu bổ ích Đặc biệt chúng em xin bày tỏ tri ân xin chân thành cảm ơn giảng viên ThS Lê Thị Thủy người trực tiếp hướng dẫn, bảo chúng em suốt trình học tập, nghiên cứu hoàn thành tập lớn Sau nữa, chúng em xin gửi tình cảm sâu sắc tới gia đình bạn bè ln bên cạnh khuyến khích, động viên, giúp đỡ vật chất linh tinh thần cho chúng em suốt qui trình học tập để chúng em hoàn thành tốt việc học tập thân Trong trình nghiên cứu làm đề tài, lực, kiến thức, trình độ thân chúng em cịn hạn hẹp nên khơng tránh khỏi thiếu sót chúng em mong mỏi nhận thơng cảm góp ý từ q thầy cô bạn lớp Chúng em xin chân thành cảm ơn! Lê Huy Hoàng Bùi Thanh Hải Thân Thị Lợi LỜI MỞ ĐẦU Những năm gần đây, AI – Artificial Intelligence (Trí tuệ nhân tạo) lên chứng cách mạng công nghiệp lần thứ tư (1 – động nước, – lượng điện, – công nghệ thông tin) Trí tuệ nhân tạo len lỏi vào lĩnh vực đời sống mà khơng nhận Xe tự hành Google Tesla, hệ thống tự gắn thẻ khuôn mặt ảnh Facebook, trợ lý ảo Siri Apple, hệ thống gợi ý sản phầm Amazon, hệ thống gợi ý phim Netfix, máy chơi cờ vây AlphaGo Google DeepMind,… vài ứng dụng AI Học máy (Machine Learning) lĩnh vực trí tuệ nhân tạo, sinh từ khả nhận diện mẫu từ lý thuyết máy tính học mà khơng cần phải lập trình để xử lý nhiệm vụ cụ thể Bài toán xử lý ảnh nghiên cứu phát triển với tốc độ nhanh chóng cảm biến hình ảnh camera, webcam ngày đại Nhờ hệ thống xử lý hình ảnh mà người giảm bớt khối cơng việc tăng xác việc đưa định liên quan đến xử lý ảnh nhiều lĩnh vực: quân quốc phịng, hệ thống kỹ nghệ hóa sinh, giải phẫu, hệ thống thông minh, robotics, hệ thống an ninh Hiện tại, có hình thức nhận dạng khác như: nhận dạng giọng nói, chữ viết, dấu vân tay, võng mạc, tốn nhận dạng khn mặt người nhóm chúng em quan tâm ý Trên thể người có nhiều đặc điểm để nhận dạng, khuôn mặt nơi thể rõ ràng để ta phân biệt người cách nhanh chóng Nhận diện khn mặt vấn đề quan trọng lĩnh vực xử lý hình ảnh Nhiệm vụ tốn đặt phát khn mặt nhận diện khn mặt Đây toán thường gặp thực tế có nhiều mơ hình đưa để giải như: mơ hình Nạve Bayes, K-NN (K-Nearest Neighbor), Cây định (Decision Tree), Mạng Neuron nhân tạo (Artificial Neural Network) SVM (Support Vector Machine) Mỗi mơ hình cho kết tốt cho tốn này, mơ hình nhận diện khn mặt K-NN dễ cài đặt độ xác phải dựa vào phần lớn liệu huấn luyện đầu vào Chính để nâng cao kiến thức nhận dạng hiểu rõ quy trình phát triển mơ hình K-NN, chúng em lựa chọn đề tài: “Nhận diện khuôn mặt với KNN” làm đề tài kết thúc mơn học Trong tập kết thúc học phần lần này, chúng em áp dụng mơ hình học máy Machine Learning để áp dụng vào hệ thống nhận diện khuôn mặt Trong phạm vi báo cáo đồ án, chúng em trình bày chương sau: Chương 1: Bài tốn nhận diện khn mặt Trình bày nội dung khái qt tốn nhận dạng nói chung phương pháp nhận diện khn mặt nói riêng Chương 2: Nhận diện khn mặt với KNN Trình bày kỹ thuật nhận diện khn mặt thuật tốn KNN kỹ thuật xử lý hình ảnh Chương 3: Thực nghiệm nhận diện khuôn mặt - Xác định vùng khuôn mặt - Trích chọn đặc trưng khn mặt - Lưu trữ đặc trưng khuôn mặt vào tập tin huấn luyện - Thực nghiệm nhận diện khuôn mặt thuật tốn KNN CHƯƠNG BÀI TỐN NHẬN DIỆN KHN MẶT 1.1 Tổng quan nhận dạng 1.1.1 Tính chất cần thiết toán nhận dang Nhận dạng trình phân loại đối tượng biểu diễn theo mơ hình gán cho chúng vào lớp (gán đối tượng tên gọi) dựa theo quy luật mẫu chuẩn Quá trình nhận dạng dựa vào mẫu học biết trước gọi nhận dạng có giám sát (supervised learning); trường hợp ngược lại gọi học khơng có giám sát (non supervised learning) Nhận dạng toán quan trọng ngành thị giác máy tính Cùng với phát triển không ngừng kinh tế xã hội ngành kỹ thuật Đòi hỏi quản lý xử lý thơng tin xác mà vượt q sức người Vì cần có máy móc hoạt động làm giảm tải thay cơng việc nặng nhọc, địi hỏi xác cao nhàm chán cho người Việc giúp máy móc nhận dang (thu thập, phân loại thơng tin) cịn người giúp máy móc hoạt động hiệu giống người với độ xác cao nhiều Một số ứng dụng toán nhận dạng: - Nhận dạng dấu vân tay: Việt Nam sử dụng việc chấm công, điểm danh làm khóa an tồn cho loại cửa sắt, máy tính xách tay… Nó tạo tiện dụng an tồn Thay phải nhập mã pin máy ATM bạn việc đặt ngón tay trỏ lên giao dịch bắt đầu - Nhận dạng giọng nói: ứng dụng tích hợp nhiều sản phẩm, bạn điều khiển thiết bị qua giọng nói thay phải thao tác trực tiếp tay, mô hình nhà thơng minh, điện thoại… Ví dụ: ứng dụng Jibbigo điện thoại động, Ứng dụng dịch tiếng nói người sử dụng với ngôn ngữ khác tiếng Anh, Pháp, Đức, Nhật, Hàn Quốc, Philipin, Tây Ban Nha, Trung Quốc Hình Mơ hình xử lý ảnh tổng quan 2.1.2 Phương pháp xử lý ảnh a) Khử nhiễu: Có loại nhiễu trình thu nhận ảnh: Nhiễu hệ thống: nhiễu có quy luật khử phép biến đổi Nhiễu ngẫu nhiên: vết bẩn không rõ nguyên nhân → khắc phục phép lọc b) Chỉnh mức xám: Nhằm khắc phục tính khơng đồng hệ thống gây Thơng thường có hướng tiếp cận: Giảm số mức xám: Thực cách nhóm mức xám gần thành bó Trường hợp có mức xám chuyển ảnh đen trắng Tăng số mức xám: Thực nội suy mức xám trung gian kỹ thuật nội suy Kỹ thuật nhằm tăng cường độ mịn cho ảnh c) Sử dụng lọc: Kỹ thuật lọc trung vị Ý tưởng: sử dụng cửa sổ lọc (ma trận 3x3) quét qua điểm ảnh ảnh đầu vào input Tại vị trí điểm ảnh lấy giá trị điểm ảnh tương ứng vùng 3x3 ảnh gốc lấp vào ma trận lọc sau xếp điểm ảnh cửa sổ theo thứ tự tăng dần, gán điểm ảnh nằm (trung vị) dãy giá trị điểm ảnh xếp cho giá trị điểm ảnh xét ảnh đầu output Sơ lược ý tưởng trên: Hình Kỹ thuật lọc trung vị Kỹ thuật lọc trung bình Ý tưởng: Tương tự kỹ thuật lọc trung vị, sử dụng cửa sổ lọc (ma trận 3x3) quét qua điểm ảnh ảnh đầu vào input Tại vị trí điểm ảnh lấy giá trị điểm ảnh tương ứng vùng 3x3 ảnh gốc lấp vào ma trận lọc Với hai bước: tính tổng thành phần cửa sổ lọc sau lấy tổng chia cho phần tử cửa sổ lọc Sơ lược ý tưởng trên: Hình 10 Kỹ thuật lọc trung bình d) Trích chọn đặc điểm: Tuỳ theo mục đích nhận dạng mà chọn đối tượng phù hợp Đặc điểm không gian: Phân bố mức xám, xác suất, biên độ, điểm uốn v.v Đặc điểm biến đổi: Thực lọc vùng (zonal filtering) Các vùng gọi “mặt nạ đặc điểm” (feature mask) thường khe hẹp với hình dạng khác (chữ nhật, tam giác, cung tròn v.v.) Đặc điểm biên đường biên: Đặc trưng cho đường biên đối tượng hữu ích việc trích chọn thuộc tính bất biến dùng nhận dạng đối tượng Có thể trích chọn nhờ tốn tử Gradient, tốn tử Laplace, tốn tử “chéo khơng” (zero crossing) v.v Việc trích chọn hiệu đặc điểm giúp cho việc nhận dạng đối tượng ảnh xác, với tốc độ tính tốn cao dung lượng nhớ lưu trữ giảm xuống CHƯƠNG THỰC NGHIỆM NHẬN DIỆN KHUÔN MẶT VỚI KNN 3.1 Thiết kế chương trình Các phần mềm cần thiết để xây dựng chương trình: Python 3.9 Link download: https://www.python.org/downloads/ Phần mềm Pycharm Link download: https://www.jetbrains.com/pycharm/download/ Các thư viện cần thiết để chạy chương trình: Model nhận diện khn mặt Haarcascade OpenCV Link download: https://github.com/opencv/opencv Thư viện OpenCV, numpy, pandas Python Cài đặt: pip install opencv-python, numpy, pandas Các bước để thực chương trình nhận diện khn mặt: Xác định vùng chứa khuôn mặt sử dụng Haarcascade OpenCV Sử dụng OpenCV để chuyển đổi làm xám hình ảnh khn mặt, trích chọn đặc trưng lưu trữ dạng ma trận 100 x 100 Xây dựng model KNN để phân loại khuôn mặt (faces classification) Kết thực nghiệm sau chạy chương trình 3.2 Xác định vùng chứa khn mặt sử dụng Haarcascade OpenCV Việc xác định vùng chứa khuôn mặt áp dụng cho trình huấn luyện kiểm thử trình cần phải xác định vùng chứa khn mặt xác đưa kết Hình 11 Khởi tạo mơ hình Haarcascade OpenCV để nhận diện khn mặt Sau xác định vị trí khn mặt, tiến hành kẻ khung khuôn mặt để nhận dạng xác định xem thuật tốn hoạt động xác hay chưa Hình 12 Xác định vị trí khn mặt 3.3 Xử lý hình ảnh trích chọn đặc trưng OpenCV Các bước xử lý ảnh chương trình gồm có: Làm xám hình ảnh khn mặt OpenCV Hình 13 Xác định vị trí làm xám khn mặt Hình 14 Kết sau làm xám khn mặt Thay đổi kích thước khn mặt dạng hình vng kích cỡ 100px * 100px Hình 15 Thay đổi kích thước dạng 100*100 Hình 16 Kết sau thay đổi kích thước Lưu ma trận pixel vào sở liệu Sau thay đổi hình ảnh dạng 100*100 ta thu 10000 pixel ảnh tương đương với ma trận 100*100 Tiến hành gán nhãn lưu hình ảnh đặc trưng 10000 điểm ảnh vào tập tin csv Hình 17 Chương trình lưu trữ điểm ảnh Hình 18 Hình ảnh trích chọn đặc trưng làm xám 3.4 Xây dựng model KNN để phân loại khuôn mặt Xây dựng model KNN với hàm khởi tạo giá trị K ( init ), hàm huấn luyện (fit) hàm dự đoán (predict) Ngồi cịn có hàm tính khoảng cách Euclid để sử dụng cho thuật tốn KNN (euc_dist) Hình 19 Nội dung model KNN Hình 20 Hàm tính khoảng cách Euclid 3.5 Kết thực nghiệm chạy chương trình a) Quá trình huấn luyện Quá trình huấn luyện chia thành cách dựa phương pháp đưa liệu đầu vào: Huấn luyện camera Huấn luyện hình ảnh Hình 21 Huấn luyện phát khn mặt camera Hình 22 Lưu trữ liệu khn mặt Hình 23 Kết huấn luyện camera Hình 24 Huấn luyện hình ảnh Hình 25 Kết huấn luyện hình ảnh b) Quá trình kiểm thử Quá trình kiểm thử gồm bước: đọc liệu huấn luyện, kiểm thử camera hình ảnh, đưa kết gán nhãn Đọc liệu huấn luyện Hình 26 Đọc liệu huấn luyện khởi tạo mơ hình KNN với K = Kiểm thử camera hình ảnh Hình 27 Lựa chọn phương pháp kiểm thử Đưa kết gán nhãn Hình 28 Chương trình nhận diện khn mặt gán nhãn Hình 29 Kết nhận diện khn mặt KẾT LUẬN Thuật tốn KNN (K-Nearest Neighbors) thuật tốn học có giám sát đơn giản sử dụng nhiều khai phá liệu học máy Ý tưởng thuật tốn khơng học điều từ tập liệu học (nên KNN xếp vào loại lazy learning), tính tốn thực cần dự đốn nhãn liệu Lớp (nhãn) đối tượng liệu dự đốn từ lớp (nhãn) k hàng xóm gần Vì đặc điểm nên phát triển chương trình “Nhận diện khn mặt KNN” có ưu điểm nhược điểm định Thuật tốn KNN có ưu điểm dễ dàng cài đặt sử dụng, không dựa giả định nào, sử dụng tốn phi tuyến tính, hoạt động tốt trường hợp phân loại với nhiều lớp, sử dụng phân loại hồi quy Tuy nhiên có nhược điểm chương trình trở nên chậm số lượng điểm liệu (số lượng khuôn mặt) tăng lên mơ hình cần lưu trữ tất điểm liệu, tốn nhớ nhạy cảm với liệu bất thường (nhiễu) Sau hoàn thành đề tài chúng em thu số kinh nghiệm làm quen sử dụng ngôn ngữ lập trình Python Nắm bắt kiến thức kỹ thuật nhận dạng yếu tố cần thiết để xây dựng hệ thống hiệu chuẩn xác Biết đến kỹ thuật nhận diện vật thể model phổ biến nhận diện khuôn mặt, thiết bị, vật dụng,… Ứng dụng thư viện OpenCV vào toán xác định nhận diện khn mặt Chương trình cần cải tiến thêm hiệu độ xác nhận diện khn mặt cách thay đổi phương pháp trích chọn đặc trưng tối ưu Qua giúp chương trình hoạt động mượt mà thiết bị có tài ngun, tránh nhận diện sai TÀI LIỆU THAM KHẢO Tanvi Penumudy, Face Detection and Recognition using OpenCV and KNN from Scratch, Medium https://medium.com/analytics-vidhya/face-detection-and-recognition-usingopencv-and-knn-from-scratch-dcba9b0fd07d Vũ Hữu Tiệp, Bài 6: K-nearest neighbors, Machine Learning Cơ Bản https://machinelearningcoban.com/2017/01/08/knn/ Nguyễn Thị Hợp, KNN (K-Nearest Neighbors) #1, Viblo https://viblo.asia/p/knn-k-nearest-neighbors-1-djeZ14ejKWz Ngoc N Tran, Haar Cascade gì? Luận kỹ thuật chuyên dùng để nhận biết khuôn mặt ảnh, Viblo https://viblo.asia/p/haar-cascade-la-gi-luan-ve-mot-ky-thuat-chuyen-dung-denhan-biet-cac-khuon-mat-trong-anh-E375zamdlGW ... tài: ? ?Nhận diện khuôn mặt với KNN? ?? làm đề tài kết thúc mơn học Trong tập kết thúc học phần lần này, chúng em áp dụng mơ hình học máy Machine Learning để áp dụng vào hệ thống nhận diện khuôn mặt. .. trưng khuôn mặt vào tập tin huấn luyện - Thực nghiệm nhận diện khuôn mặt thuật tốn KNN CHƯƠNG BÀI TỐN NHẬN DIỆN KHN MẶT 1.1 Tổng quan nhận dạng 1.1.1 Tính chất cần thiết toán nhận dang Nhận dạng... diện khn mặt với KNN Trình bày kỹ thuật nhận diện khn mặt thuật tốn KNN kỹ thuật xử lý hình ảnh Chương 3: Thực nghiệm nhận diện khuôn mặt - Xác định vùng khn mặt - Trích chọn đặc trưng khn mặt -