1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

39 67 0

Đ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

Thông tin cơ bản

Tiêu đề Nhận Diện Khuôn Mặt Với KNN
Tác giả Lê Huy Hoàng, Bùi Thanh Hải, Thân Thị Lợi
Người hướng dẫn THS. Lê Thị Thủy
Trường học Trường Đại Học Công Nghiệp Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại báo cáo
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 39
Dung lượng 2,34 MB

Cấu trúc

  • CHƯƠNG 1. BÀI TOÁN NHẬN DIỆN KHUÔN MẶT (9)
    • 1.1. Tổng quan về nhận dạng (10)
      • 1.1.1 Tính chất và sự cần thiết của bài toán nhận dang (10)
      • 1.1.2 Bản chất của quá trình nhận dạng (11)
    • 1.2. Bài toán nhận diện khuôn mặt (12)
      • 1.2.1 Khái niệm (12)
      • 1.2.2 Nguyên tắc hoạt động cơ bản (13)
  • CHƯƠNG 2. NHẬN DIỆN KHUÔN MẶT VỚI KNN (9)
    • 2.1. Thuật toán KNN (15)
      • 2.1.1 Giới thiệu về thuật toán KNN (15)
      • 2.1.2 Quy trình của thuật toán KNN (16)
      • 2.1.3 Ưu điểm và nhược điểm của thuật toán KNN (17)
      • 2.1.4 Ví dụ về thuật toán KNN (17)
    • 2.2. Xử lý hình ảnh để nhận dạng (20)
      • 2.2.1 Khái niệm về xử lý ảnh (20)
      • 2.1.2 Phương pháp xử lý ảnh (21)
  • CHƯƠNG 3. THỰC NGHIỆM NHẬN DIỆN KHUÔN MẶT VỚI KNN (9)
    • 3.1. Thiết kế chương trình (24)
    • 3.2. Xác định vùng chứa khuôn mặt sử dụng Haarcascade OpenCV (24)
    • 3.3. Xử lý hình ảnh và trích chọn đặc trưng bằng OpenCV (26)
    • 3.4. Xây dựng model KNN để phân loại khuôn mặt (28)
    • 3.5. Kết quả thực nghiệm chạy chương trình (29)
  • KẾT LUẬN (2)

Nội dung

BÀI TOÁN NHẬN DIỆN KHUÔN MẶT

Tổng quan về nhận dạng

1.1.1 Tính chất và sự cần thiết của bài toán nhận dang.

Nhận dạng là quá trình phân loại các đối tượng theo mô hình và gán cho chúng tên gọi dựa trên quy luật và mẫu chuẩn Quá trình này có thể được thực hiện thông qua nhận dạng có giám sát (supervised learning) khi sử dụng các mẫu học biết trước, hoặc học không có giám sát (non supervised learning) trong trường hợp không có mẫu Nhận dạng đóng vai trò quan trọng trong lĩnh vực thị giác máy tính.

Với sự phát triển không ngừng của kinh tế xã hội và các ngành kỹ thuật, nhu cầu quản lý và xử lý thông tin chính xác ngày càng cao, vượt quá khả năng của con người Do đó, việc sử dụng máy móc để giảm tải hoặc thay thế những công việc nặng nhọc, đòi hỏi độ chính xác cao và nhàm chán là cần thiết Việc trang bị cho máy móc khả năng nhận dạng, thu thập và phân loại thông tin giống như con người sẽ giúp nâng cao hiệu quả hoạt động với độ chính xác vượt trội.

Một số ứng dụng của bài toán nhận dạng:

Nhận dạng dấu vân tay tại Việt Nam đang trở thành giải pháp phổ biến cho việc chấm công, điểm danh và bảo mật cho các thiết bị như cửa sắt, máy tính xách tay Công nghệ này không chỉ mang lại sự tiện lợi mà còn đảm bảo an toàn cao Thay vì phải nhập mã PIN khi sử dụng máy ATM, người dùng chỉ cần đặt ngón tay trỏ lên cảm biến để thực hiện giao dịch nhanh chóng.

Nhận dạng giọng nói là công nghệ được tích hợp trong nhiều sản phẩm, cho phép người dùng điều khiển thiết bị bằng giọng nói thay vì thao tác bằng tay, đặc biệt trong mô hình nhà thông minh và trên điện thoại Một ví dụ điển hình là ứng dụng Jibbigo, có khả năng dịch tiếng nói của người dùng sang 8 ngôn ngữ khác nhau, bao gồm tiếng Anh, Pháp, Đức, Nhật, Hàn Quốc, Philipin, Tây Ban Nha và Trung Quốc.

TIEU LUAN MOI download : skknchat@gmail.com

Nhận dạng khuôn mặt là một quy trình gồm bốn bước chính: đầu tiên là phát hiện khuôn mặt, sau đó là căn chỉnh khuôn mặt, tiếp theo là trích xuất các đặc điểm và cuối cùng là nhận dạng khuôn mặt.

Hệ thống nhận dạng biển số xe là công nghệ tiên tiến có khả năng phân tích hình ảnh để xác định biển số trên xe Hệ thống này hoạt động thông qua video, thiết bị ghi hình và hình ảnh, giúp nâng cao hiệu quả quản lý giao thông và an ninh.

1.1.2 Bản chất của quá trình nhận dạng.

Quá trình nhận dạng gồm 3 giai đoạn chính:

 Lựa chọn mô hình biểu diễn đối tượng.

 Lựa chọn luật ra quyết định (phương pháp nhận dạng) và suy diễn quá trình học.

Sau khi xác định mô hình biểu diễn đối tượng, quá trình nhận dạng chuyển sang giai đoạn học, đây là giai đoạn quan trọng nhằm cải thiện và điều chỉnh việc phân hoạch tập đối tượng thành các lớp Học tập giúp tìm ra quy luật và thuật toán để gán đối tượng vào một lớp cụ thể, hay nói cách khác là gán cho đối tượng một tên.

Học có giám sát (supervised learning) là phương pháp phân loại dựa trên kiến thức đã biết, trong đó người dùng so sánh mẫu cần nhận diện với một thư viện các mẫu chuẩn Kỹ thuật này cho phép phân biệt các đối tượng trong ảnh viễn thám, như cánh đồng lúa, rừng hoặc vùng đất hoang, dựa trên mô tả đã có về chúng Điều quan trọng là thiết kế hệ thống đối sánh để xác định loại của đối tượng trong ảnh, thông qua các thủ tục ra quyết định sử dụng hàm phân lớp hay hàm ra quyết định.

TIEU LUAN MOI download : skknchat@gmail.com

Học không có giám sát (non supervised learning) là một kỹ thuật trong đó hệ thống tự xác định các lớp khác nhau và các tham số đặc trưng cho từng lớp mà không có sự hướng dẫn từ bên ngoài Việc này gặp khó khăn do số lượng lớp và các đặc trưng của chúng không được biết trước Kỹ thuật này tập trung vào việc thử nghiệm nhiều phương pháp gộp nhóm khác nhau để tìm ra cách tốt nhất Bắt đầu từ tập dữ liệu, nhiều quy trình xử lý được áp dụng để phân lớp và cải tiến dần nhằm đạt được một phương án phân loại hiệu quả.

Nhìn chung, một hệ thống nhận dạng có thể tóm tắt sơ đồ sau:

Hình 1 Sơ đồ tổng quan một hệ nhận dạng

NHẬN DIỆN KHUÔN MẶT VỚI KNN

Thuật toán KNN

2.1.1 Giới thiệu về thuật toán KNN

K- Nearest Neighbors (KNN) là một thuật toán học máy có giám sát (supervised learning) có thể được sử dụng trong cả phân loại (classification) và hồi quy (regression) Có thể nói KNN là một thuật toán xuất phát từ thực tế cuộc sống. Mọi người có xu hướng bị ảnh hưởng bởi những người xung quanh họ Hành vi của chúng ta được hướng dẫn bởi những người bạn mà chúng ta đã lớn lên cùng Cha mẹ chúng ta cũng hình thành nhân cách của chúng ta theo một số cách Nếu bạn lớn lên với những người yêu thể thao, rất có thể bạn sẽ yêu thể thao, tất nhiên cũng có những ngoại lệ.

KNN hoạt động với nguyên lý tương tự Giá trị của một điểm dữ liệu được xác định bởi các điểm dữ liệu xung quanh nó.

Nếu bạn có một người bạn thân thiết và thường xuyên dành thời gian bên nhau, bạn sẽ chia sẻ sở thích và tận hưởng những hoạt động tương tự Điều này tương tự như mối quan hệ giữa KNN và K.

Nếu bạn thường xuyên giao du với một nhóm 5 người, thì hành vi của bạn sẽ bị ảnh hưởng bởi từng thành viên trong nhóm, và bạn sẽ trở thành trung bình của 5 người đó Đây chính là khái niệm KNN với K = 5.

Bộ phân loại KNN xác định lớp của một điểm dữ liệu dựa trên nguyên tắc biểu quyết đa số Khi K được đặt là 5, nó sẽ xem xét các lớp của 5 điểm gần nhất để đưa ra quyết định.

Dự đoán lớp cho một điểm dữ liệu được thực hiện bằng cách xác định lớp chiếm ưu thế trong số 5 điểm lân cận gần nhất Trong khi đó, hồi quy KNN tính toán giá trị trung bình của 5 điểm gần nhất để đưa ra kết quả chính xác.

Để xác định sự gần gũi giữa các điểm dữ liệu, trước tiên cần phải đo khoảng cách giữa chúng Có nhiều phương pháp khác nhau để thực hiện việc này, trong đó phép đo khoảng cách Euclid là một trong những phương pháp phổ biến nhất.

TIEU LUAN MOI download : skknchat@gmail.com biến nhất Hình dưới đây cho thấy cách tính khoảng cách Euclid giữa hai điểm trong không gian 2 chiều.

Khoảng cách Euclid được tính toán bằng công thức sau: d= √ (x 2−x 1) 2 +( y 2− y 1) 2

Khoảng cách Euclide trong không gian hai chiều liên quan chặt chẽ đến định lý Pytago, trong đó khoảng cách giữa hai điểm được xem như là cạnh huyền của tam giác, trong khi sự chênh lệch giữa tọa độ x và y của hai điểm dữ liệu tương ứng với hai cạnh góc vuông.

2.1.2 Quy trình của thuật toán KNN

 Bước 1: Xác định tham số K = số láng giềng gần nhất.

 Bước 2: Tính toán khoảng cách đối tượng cần phân lớp với tất cả các đối tượng trong training data.

TIEU LUAN MOI download : skknchat@gmail.com

 Bước 3: Sắp xếp khoảng cách theo thứ tự tăng dần và xác định K láng giềng gần nhất với đối tượng cần phân lớp.

 Bước 4: Lấy tất cả các lớp của K láng giềng gần nhất.

 Bước 5: Dựa vào phần lớn lớp của K để xác định lớp cho đối tượng cần phân lớp.

2.1.3 Ưu điểm và nhược điểm của thuật toán

 Đơn giản và dễ giải thích.

 Không dựa trên bất kỳ giả định nào, vì thế nó có thể được sử dụng trong các bài toán phi tuyến tính.

 Hoạt động tốt trong trường hợp phân loại với nhiều lớp.

 Sử dụng được trong cả phân loại và hồi quy.

 Trở nên rất chậm khi số lượng điểm dữ liệu tăng lên vì mô hình cần lưu trữ tất cả các điểm dữ liệu.

 Nhạy cảm với các dữ liệu bất thường (nhiễu).

2.1.4 Ví dụ về thuật toán KNN

Một ngân hàng đã phân tích dữ liệu của 5000 khách hàng với các khoản vay tiêu dùng và phát hiện rằng 3895 khách hàng thanh toán đúng hạn, trong khi 1105 khách hàng không thanh toán đúng hạn, dẫn đến tình trạng nợ quá hạn sau 3 tháng Ngân hàng sẽ tổng hợp và phân loại khách hàng theo khả năng nợ xấu, trong đó Y đại diện cho khả năng nợ xấu, với Y = 0 là không có khả năng nợ xấu và Y = 1 là có khả năng nợ xấu.

Với các biến đầu vào X i bao gồm ví dụ các biến sau:

TIEU LUAN MOI download : skknchat@gmail.com

Giới tính (nam, nữ) Độ tuổi

Thu nhập hàng tháng (trong ví dụ này sẽ không xét đến nghề nghiệp do quá đa dạng)

Tình trạng sở hữu bất động sản Khoản vay

Giả định là lãi suất là như nhau đối với các khoản vay tiêu dùng (vay thế chấp).

Nhân viên ngân hàng lấy mẫu 15 khách hàng đã được phân loại khả năng nợ xấu để phân tích cho một khách hàng mới mở khoản vay.

Hình 4 Dữ liệu ví dụ ban đầu

Chúng ta chuẩn hóa dữ liệu định lượng theo phương pháp Min – Max để có được bảng dữ liệu như sau:

TIEU LUAN MOI download : skknchat@gmail.com

Hình 5 Dữ liệu sau khi được chuẩn hóa

Tiếp theo chúng ta sẽ tính khoảng cách giữa các điểm dữ liệu:

Ví dụ: d(ID 16, ID 1) = căn bậc hai của (0.3 – 0) 2 + 0 2 + 0 2 + 1 2 + 1 2 + (0.67 – 0.13) 2 + (0.33 – 0.11) 2 + (0.5 – 0.5) 2 = 1.557

Lưu ý ở các biến định tính, nếu giá trị bằng nhau thì sẽ là 0, ngược lại là 1.

Hình 6 Kết quả tính toán

TIEU LUAN MOI download : skknchat@gmail.com

Các giá trị khoảng cách được tính toán theo công thức Euclidean, với các điểm gần nhất được xếp hạng là 1 dựa trên khoảng cách nhỏ nhất.

Khi chọn K = 1, khách hàng mới có ID 16 được phân loại khả năng nợ xấu theo ID 6 là 1 Nếu chọn K = 2, tức là lấy 2 điểm gần nhất là ID 6 và ID 11, nhưng do mỗi điểm có 2 giá trị khả năng nợ xấu khác nhau, nên không thể phân loại cho ID 16 Khi chọn K = 3, ba điểm gần nhất là ID 13, ID 11 và ID 6, trong đó có hai điểm có khả năng nợ xấu là 0, dẫn đến ID 16 được phân loại khả năng nợ xấu là 0.

Hình 7 Dữ liệu sau khi sắp xếp

Để chọn giá trị K và xác định điểm vote cho Nợ xấu, ta cần xem xét các ID gần nhất với ID 16 Ví dụ, nếu K = 7, các ID gần nhất sẽ là ID 6, ID 11, ID 13, ID 2, ID 4, và ID 1.

1, ID 15, trong đó có 5 khách hàng được phân loại nợ xấu bằng 0, có 2 khách hàng được phân loại nợ xấu bằng 1.

Vậy ID 16 sẽ được phân loại nợ xấu là 0.

THỰC NGHIỆM NHẬN DIỆN KHUÔN MẶT VỚI KNN

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:

Link download: https://www.python.org/downloads/

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 khuôn mặt Haarcascade OpenCV Link download: https://github.com/opencv/opencv

 Thư viện OpenCV, numpy, pandas trong Python Cài đặt: pip install opencv-python, numpy, pandas

Các bước để thực hiện chương trình nhận diện khuôn 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 khuôn mặt, trích chọn đặc trưng và lưu trữ dưới dạng ma trận 100 x 100.

 Xây dựng một model KNN để phân loại khuôn mặt (faces classification).

 Kết quả thực nghiệm sau khi chạy chương trình.

Xác định vùng chứa khuôn mặt sử dụng Haarcascade OpenCV

Việc xác định vùng chứa khuôn mặt là rất quan trọng trong cả quá trình huấn luyện và kiểm thử, vì chỉ khi xác định chính xác vùng chứa này, chúng ta mới có thể đạt được kết quả đáng tin cậy.

TIEU LUAN MOI download : skknchat@gmail.com

Hình 11 Khởi tạo mô hình Haarcascade OpenCV để nhận diện khuôn mặt

Sau khi xác định vị trí khuôn mặt, bước tiếp theo là kẻ khung quanh khuôn mặt để nhận diện và kiểm tra độ chính xác của thuật toán.

Hình 12 Xác định vị trí của khuôn mặt

TIEU LUAN MOI download : skknchat@gmail.com

Xử lý hình ảnh và trích chọn đặc trưng bằng OpenCV

Các bước xử lý ảnh trong chương trình gồm có:

 Làm xám hình ảnh khuôn mặt bằng OpenCV

Hình 13 Xác định vị trí và làm xám khuôn mặt

Hình 14 Kết quả sau khi làm xám khuôn mặt

TIEU LUAN MOI download : skknchat@gmail.com

 Thay đổi kích thước khuôn mặt về dạng hình vuông kích cỡ 100px * 100px.

Hình 15 Thay đổi kích thước về dạng 100*100

Hình 16 Kết quả sau khi thay đổi kích thước

 Lưu ma trận pixel vào cơ sở dữ liệu

Sau khi chuyển đổi hình ảnh thành dạng 100x100, chúng ta thu được ma trận 10000 pixel Tiếp theo, tiến hành gán nhãn và lưu trữ các đặc trưng hình ảnh cùng 10000 điểm ảnh vào tập tin CSV.

Hình 17 Chương trình lưu trữ điểm ảnh

TIEU LUAN MOI download : skknchat@gmail.com

Hình 18 Hình ảnh trích chọn đặc trưng và làm xám

Xây dựng model KNN để phân loại khuôn mặt

Xây dựng mô hình KNN bao gồm các hàm khởi tạo giá trị K ( init ), hàm huấn luyện (fit) và hàm dự đoán (predict) Bên cạnh đó, cần có hàm tính khoảng cách Euclid (euc_dist) để áp dụng cho thuật toán KNN.

Hình 19 Nội dung model KNN

TIEU LUAN MOI download : skknchat@gmail.com

Hình 20 Hàm tính khoảng cách Euclid

Ngày đăng: 29/06/2022, 21:35

HÌNH ẢNH LIÊN QUAN

Bảng phân chia - 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
Bảng ph ân chia (Trang 2)
Hình 1. Sơ đồ tổng quan một hệ nhận dạng - 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
Hình 1. Sơ đồ tổng quan một hệ nhận dạng (Trang 13)
Hình 2. Nhận diện khuơn mặt - 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
Hình 2. Nhận diện khuơn mặt (Trang 14)
biến nhất. Hình dưới đây cho thấy cách tính khoảng cách Euclid giữa hai điểm trong khơng gian 2 chiều. - 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
bi ến nhất. Hình dưới đây cho thấy cách tính khoảng cách Euclid giữa hai điểm trong khơng gian 2 chiều (Trang 17)
Hình 4. Dữ liệu ví dụ ban đầu - 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
Hình 4. Dữ liệu ví dụ ban đầu (Trang 19)
Hình 5. Dữ liệu sau khi được chuẩn hĩa - 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
Hình 5. Dữ liệu sau khi được chuẩn hĩa (Trang 20)
Hình 6. Kết quả tính tốn - 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
Hình 6. Kết quả tính tốn (Trang 20)
Hình 7. Dữ liệu sau khi sắp xếp - 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
Hình 7. Dữ liệu sau khi sắp xếp (Trang 21)
Hình 8. Mơ hình xử lý ảnh tổng quan - 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
Hình 8. Mơ hình xử lý ảnh tổng quan (Trang 22)
Hình 10. Kỹ thuật lọc trung bình - 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
Hình 10. Kỹ thuật lọc trung bình (Trang 23)
Hình 9. Kỹ thuật lọc trung vị - 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
Hình 9. Kỹ thuật lọc trung vị (Trang 23)
Hình 11. Khởi tạo mơ hình Haarcascade OpenCV để nhận diện khuơn mặt - 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
Hình 11. Khởi tạo mơ hình Haarcascade OpenCV để nhận diện khuơn mặt (Trang 27)
3.3. Xử lý hình ảnh và trích chọn đặc trưng bằng OpenCV - 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
3.3. Xử lý hình ảnh và trích chọn đặc trưng bằng OpenCV (Trang 28)
 Thay đổi kích thước khuơn mặt về dạng hình vuơng kích cỡ 100px * 100px. - 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
hay đổi kích thước khuơn mặt về dạng hình vuơng kích cỡ 100px * 100px (Trang 29)
Hình 19. Nội dung model KNN - 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
Hình 19. Nội dung model KNN (Trang 31)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w