Trong bài tập kết thúc học phần lần này, chúng em sẽ áp dụng mô hình họcmáy cơ bản của 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
Trang 1TRƯỜ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Ị
SINH VIÊN THỰC HIỆN : LÊ HUY HOÀNG – 2021608739
: BÙI THANH HẢI – 2020608592 : THÂN THỊ LỢI – 2020608612
Trang 2● Bài toán nhận diện khuôn mặt
2 Bùi Thanh Hải
Trang 3PHÂ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 hiện Nội dung công việc Kết quả đạt được Phương pháp thực hiện
1
Lê Huy Hoàng
Bùi Thanh Hải
Thân Thị Lợi
Lập kế hoạch làmbài tập lớn, thực hiệnnghiên cứu phát biểubài toán
Kế hoạch chi tiếtcông việc
Tìm hiểu tàiliệu, thảo luậnnhóm
2 Thân Thị Lợi
Tìm hiểu tổng quan vềbài toán nhận dạng
Khái niệm và nguyêntắc nhận diện khuônmặt
Tổng quan đề tài,hiểu được tính chất,bản chất của nhậndạng, khái niệm vềnhận diện khuônmặt
Tìm hiểu tàiliệu, thảo luậnnhóm
3 Lê Huy Hoàng
Bùi Thanh Hải
Tìm hiểu về thuật toánKNN, và các phươngpháp xử lý ảnh đểnhận dạng
Tổng quan về quytrình của thuật toánKNN, ưu và nhượcđiểm của thuật toán
Khái niệm và phươngpháp xử lý ảnh
Tìm hiểu tàiliệu, thảo luậnnhóm Sưu tầm
ví dụ
4 Lê Huy Hoàng
Tìm hiểu và cài đặtthuật toán KNN Tiếnhành các bước thuthập, tiền xử lý dữliệu; sử dụng các công
cụ phù hợp để thựcnghiệm/xây dựngchương trình
Mô hình KNN xâydựng trên ngôn ngữPython Sử dụng môhình để phát triểnchương trình nhậndiện khuôn mặt
Tìm hiểu và thamkhảo tài liệu trênmạng
5 Lê Huy Hoàng
Tổng hợp nội dung
Chạy đánh giá chươngtrình
Nội dung hoàn chỉnh
về bài báo cáo Sảnphẩm demo chươngtrình nhận diện khuônmặt
Tổng hợp kết quảthu được từnhững lần làmviệc trước đó
6 Bùi Thanh HảiThân Thị Lợi Xây dựng bài thuyếttrình từ nội dung tổng
hợp
Bài thuyết trình đểtrình bày về kết quảhọc tập của nhóm
Họp nhóm
Trang 5Hình 26 Đọc dữ liệu huấn luyện và khởi tạo mô hình KNN với K = 5 30
Trang 6LỜI CẢM ƠN
Lời đầu tiên cho phép chúng em gửi lời cảm ơn sâu sắc tới các thầy cô trongkhoa Công nghệ thông tin - Trường Đại học Công Nghiệp Hà Nội, những người đãhết mình truyền đạt và chỉ dẫn cho chúng em những kiến thức, những bài học quýbáu và bổ ích Đặc biệt chúng em xin được bày tỏ sự tri ân và xin chân thành cảm ơngiảng viên ThS Lê Thị Thủy người trực tiếp hướng dẫn, chỉ bảo chúng em trong suốtquá trình học tập, nghiên cứu và hoàn thành được bài tập lớn này Sau nữa, chúng emxin gửi tình cảm sâu sắc tới gia đình và bạn bè vì đã luôn bên cạnh khuyến khích,động viên, giúp đỡ cả về vật chất linh tinh thần cho chúng em trong suốt qui trìnhhọc tập để chúng em hoàn thành tốt việc học tập của bản thân
Trong quá trình nghiên cứu và làm đề tài, do năng lực, kiến thức, trình độ bảnthân chúng em còn hạn hẹp nên không tránh khỏi những thiếu sót và chúng em mongmỏi nhận được sự thông cảm và những góp ý từ quý thầy cô cũng như các bạn tronglớp Chúng em xin chân thành cảm ơn!
Thân Thị Lợi
Trang 7LỜI MỞ ĐẦU
Những năm gần đây, AI – Artificial Intelligence (Trí tuệ nhân tạo) nổi lên nhưmột bằng chứng của cuộc cách mạng cơng nghiệp lần thứ tư (1 – động cơ hơi nước, 2– năng lượng điện, 3 – cơng nghệ thơng tin) Trí tuệ nhân tạo đang len lỏi vào mọilĩnh vực trong đời sống mà cĩ thể chúng ta khơng nhận ra Xe tự hành của Google vàTesla, hệ thống tự gắn thẻ khuơn mặt trong ảnh của Facebook, trợ lý ảo Siri củaApple, hệ thống gợi ý sản phầm của Amazon, hệ thống gợi ý phim của Netfix, máychơi cờ vây AlphaGo của Google DeepMind,… chỉ là một vài trong vơ vàn nhữngứng dụng của AI
Học máy (Machine Learning) là một lĩnh vực của trí tuệ nhân tạo, được sinh ra
từ khả năng nhận diện mẫu và từ lý thuyết các máy tính cĩ thể học mà khơng cầnphải lập trình để xử lý các nhiệm vụ cụ thể nào đĩ
Bài tốn xử lý ảnh đang được nghiên cứu và phát triển với tốc độ nhanh chĩngbởi các cảm biến hình ảnh như camera, webcam ngày càng hiện đại Nhờ hệ thống
xử lý hình ảnh mà con người đã giảm bớt khối cơng việc cũng như tăng sự chính xáctrong việc đưa ra các quyết định liên quan đến xử lý ảnh trên nhiều lĩnh vực: quân sự
và quốc phịng, các hệ thống kỹ nghệ hĩa sinh, giải phẫu, các hệ thống thơng minh,robotics, các hệ thống an ninh Hiện tại, cĩ các hình thức nhận dạng khác như: nhậndạng giọng nĩi, chữ viết, dấu vân tay, võng mạc, thì bài tốn nhận dạng khuơn mặtngười đang được nhĩm chúng em quan tâm chú ý Trên cơ thể người cĩ rất nhiều đặcđiểm để nhận dạng, và khuơn mặt là nơi thể hiện rõ ràng nhất để ta cĩ thể phân biệtđược mỗi người một cách nhanh chĩng
Nhận diện khuơn mặt là một vấn đề quan trọng trong lĩnh vực xử lý hình ảnh.Nhiệm vụ bài tốn đặt ra là phát hiện khuơn mặt và nhận diện khuơn mặt đĩ là ai.Đây là một bài tốn rất thường gặp trong thực tế và đã cĩ rất nhiều mơ hình được đưa
ra để giải quyết như: mơ hình Nạve Bayes, K-NN (K-Nearest Neighbor), Cây quyếtđịnh (Decision Tree), Mạng Neuron nhân tạo (Artificial Neural Network) và SVM
Trang 8(Support Vector Machine) Mỗi mô hình đều cho kết quả khá tốt cho bài toán này, môhình nhận diện khuôn mặt bằng K-NN là dễ cài đặt nhất mặc dù độ chính xác vẫnphải dựa vào phần lớn dữ liệu huấn luyện đầu vào Chính vì vậy để nâng cao kiếnthức nhận dạng và hiểu rõ hơn về quy trình phát triển mô hình K-NN, chúng em lựachọ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 của mình
Trong bài tập kết thúc học phần lần này, chúng em sẽ áp dụng mô hình họcmáy cơ bản của 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 sẽ trình bày 3 chương như sau:
Chương 1: Bài toán nhận diện khuôn mặt.
Trình bày nội dung khái quát về bài toán nhận dạng nói chung và phương phápnhận diện khuôn mặt nói riêng
Chương 2: Nhận diện khuôn mặt với KNN.
Trình bày các kỹ thuật nhận diện khuôn mặt bằng thuật toán KNN và các 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 của khuôn mặt
- Trích chọn đặc trưng của khuôn mặt
- Lưu trữ đặc trưng của 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 bằng thuật toán KNN
Trang 9CHƯƠNG 1 BÀI TOÁN NHẬN DIỆN KHUÔN MẶT
1.1 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 được biểu diễn theo một môhình nào đó và gán cho chúng vào một lớp (gán đối tượng một tên gọi) dựa theonhững quy luật và các mẫu chuẩn Quá trình nhận dạng dựa vào những mẫu học biếttrước gọi là nhận dạng có giám sát (supervised learning); trong trường hợp ngược lạigọi là học không có giám sát (non supervised learning) Nhận dạng là một bài toánquan trọng trong ngành thị giác máy tính
Cùng 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ậthiện nay Đòi hỏi sự quản lý và xử lý thông tin chính xác mà nó vượt quá sức của conngười Vì vậy chúng ta cần có máy móc hoạt động làm giảm tải hoặc thay thế côngviệc nặng nhọc, đòi hỏi sự chính xác cao và nhàm chán cho con người Việc giúpmáy móc nhận dang (thu thập, phân loại thông tin) như còn người sẽ giúp máy móchoạt động hiệu quả giống như con người với độ chính xác cao hơn rất nhiều
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: ở Việt Nam đã được sử dụng trong việc chấmcông, điểm danh và làm khóa an toàn cho các loại cửa sắt, máy tính xách tay…
Nó tạo sự tiện dụng và rất an toàn Thay vì phải nhập mã pin trên máy ATMthì bạn chỉ việc đặt ngón tay trỏ của mình lên và giao dịch sẽ bắt đầu
- Nhận dạng giọng nói: ứng dụng này được tích hợp trên nhiều sản phẩm,bạn sẽ điều khiển các thiết bị qua giọng nói của mình thay vì phải thao tác trựctiếp bằng tay, như trong mô hình nhà thông minh, trên điện thoại… Ví dụ: ứngdụng Jibbigo trên điện thoại đi động, Ứng dụng này có thể dịch được tiếng nóicủa người sử dụng với 8 ngôn ngữ khác nhau như tiếng Anh, Pháp, Đức, Nhật,Hàn Quốc, Philipin, Tây Ban Nha, Trung Quốc
Trang 10- Nhận dạng khuôn mặt: thường được mô tả là một quá trình bao gồm bốnbước, đó là: phát hiện khuôn mặt, căn chỉnh khuôn mặt, 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à hệ thống có khả năng phân tích hìnhảnh và xác định biển số trên xe, thông qua video, thiết bị ghi hình và hình ảnh
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
✔ Học nhận dạng
Khi mô hình biểu diễn đối tượng đã được xác định, có thể là định lượng (môhình tham số) hay định tính (mô hình cấu trúc), quá trình nhận dạng chuyển sang giaiđoạn học Học là giai đoạn quan trọng Thao tác học nhằm cải thiện, điều chỉnh việcphân hoạch tập đối tượng thành lớp Việc nhận dạng chính là tìm ra quy luật và cácthuật toán để có thể gán đối tượng vào một lớp hay nói một cách khác gán cho đốitượng một tên
Học có giám sát (supervised learning) là kỹ thuật phân loại nhờ kiến thức biếttrước gọi là học có thầy Đặc điểm cơ bản của kỹ thuật này là người ta có một thưviện các mẫu chuẩn Mẫu cần nhận dạng sẽ được đem so sánh với mẫu chuẩn để xem
nó thuộc loại nào Ví dụ như trong một ảnh viễn thám, người ta muốn phân biệt mộtcách đồng lúa, một cánh rừng hay một vùng đất hoang mà đã có miêu tả về đối tượng
đó Vấn đề chủ yếu là thiết kế một hệ thống để có thể đối sánh đối tượng trong ảnhvới mẫu chuẩn và quyết định gán cho chúng vào một lớp Việc đối sánh nhờ vào cácthủ tục ra quyết định dựa trên một công cụ gọi là hàm phân lớp hay hàm ra quyếtđịnh
Trang 11Học không có giám sát (non supervised learning), kỹ thuật này phải tự định racách lớp khác nhau và xác định các tham số đặc trưng cho từng lớp Học không cóthầy khó khăn hơn Một mặt, do số lớp không được biết trước, mặt khác những đặctrưng của lớp cũng không biết trước Kỹ thuật này nhằm tiến hành mọi cách gộpnhóm có thể và chọn lựa cách tốt nhất Bắt đầu từ tập dữ liệu, nhiều thủ tục xử lýkhác nhau nhằm phân lớp và nâng cấp dần để đạt được một phương án phân loại
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
1.2 Bài toán nhận diện khuôn mặt
1.2.1 Khái niệm
Nhận diện khuôn mặt là một hệ thống tự động xác định và nhận dạng mộtngười dựa trên một bức ảnh kỹ thuật số hoặc một đoạn video từ một nguồn video Cóthể hiểu đơn giản, hệ thống này so sánh các đặc điểm, thông số của một cơ sở dữ liệu
về khuôn mặt với một khuôn mặt được chọn trước từ hình ảnh
Hệ thống nhận diện khuôn mặt được sử dụng nhiều trong các hệ thống an ninh
và có thể so sánh với các dạng sinh trắc học khác như hệ thống nhận dạng vân tayhay tròng mắt
Trang 12Hình 2 Nhận diện khuôn mặt
1.2.2 Nguyên tắc hoạt động cơ bản
Việc đầu tiên cần làm là tách khuôn mặt cần nhận dạng ra khỏi khung cảnhxung quanh nó Sau khi đã có một khuôn mặt đầy đủ và không bị tác động bởi khungcảnh xung quanh, hệ thống tiến hành phân tích chúng
Khác với thị giác của con người, hệ thống sự dụng cơ sở dữ liệu là các đặcđiểm của khuôn mặt một cách chi tiết và chính xác, thay vì đánh giá bằng cảm nhậnnhư mắt người Mỗi khuôn mặt đều có nhiều điểm mốc, những phần lồi lõm tạo nêncác đặc điểm của khuôn mặt Các hệ thống nhận diện gương mặt định nghĩa nhữngđiểm này là những điểm nút Mỗi mặt người có khoảng 80 điểm nút
Có nhiều đặc điểm, thông số dùng để phân biệt khuôn mặt này với khuôn mặtkhác Đó là những điểm mốc của gương mặt, hay được định nghĩa như các điểm nútđối với hệ thống nhận diện Hiện nay, người ta thường đánh giá một khuôn mặt đưatrên khoản 80 điểm nút, có thể liệt kê là các điểm:
Khoảng cách giữa hai mắt
Độ dài của xương hàm
Độ sâu của hốc mắtHình dạng của xương gò máChiều rộng của mũi
Hình dạng mắt
Trang 13Một số thuật toán nhận dạng khuôn mặt xác định các đặc điểm khuôn mặt bằngcách trích xuất các ranh giới, hoặc đặc điểm, từ một hình ảnh khuôn mặt của đốitượng Từ đó các thuật toán sẽ trích xuất được các thông tin, và những tính năng nàysau đó được sử dụng để tìm kiếm các hình ảnh khác với các tính năng phù hợp Trongtrường hợp sử dụng để nhận diện, cần phải lưu lại thông tin khuôn mặt để ghi nhớtrước Các thuật toán sẽ đơn giản hóa một tập các hình ảnh khuôn mặt và sau đó nén
dữ liệu khuôn mặt, chỉ lưu dữ liệu hình ảnh nào là hữu ích cho việc nhận dạng khuônmặt Khi đó, muốn nhận diện sẽ so sánh hình ảnh mẫu với các dữ liệu khuôn mặt đãlưu
Có thể chia các thuật toán nhận dạng khuôn mặt thành hai phương pháp:phương pháp trắc quang (đo sáng) và hình học Với phương pháp trắc quang, hệthống sử dụng phương pháp thống kế để chia tách một hình ảnh thành các giá trị và
so sánh các giá trị đó với các mẫu, chênh lệch sẽ được loại bỏ Đối với phương pháphình học, hệ thống phân biệt thông qua nhìn vào các tính năng
Tuy nhiên, trên đây chỉ là những nguyên tắc cơ bản và quan trọng nhất, cònthực tế hiện nay, hệ thống nhận diện khuôn mặt có nguyên tắc tương đối phức tạp để
có thể nhận diện được các khuôn mặt có độ chính xác cao trong những môi trườngkhông thực sự tối ưu như môi trường thiếu sáng, hay khuôn mặt không được chụp,quay chính diện
Trang 14CHƯƠNG 2 NHẬN DIỆN KHUÔN MẶT VỚI KNN
2.1 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ồiquy (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ủachú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ênvớ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ữngngoạ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 rất thân và dành phần lớn thời gian cho anh ấy/cô
ấy, bạn sẽ có chung sở thích và tận hưởng những điều giống nhau Đó là KNN với K
Trang 152.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 đốitượng trong training data
Trang 16✔ 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ềnggầ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ânlớp
2.1.3 Ưu điểm và nhược điểm của thuật toán
KNN Ưu điểm
✔ Đơ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ácbà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
Đặt Y là khả năng nợ xấu, với Y = 0 là không có khả năng nợ xấu, ngược lại là Y =1
Trang 17tieuluanmoi123docz.netVới các biến đầu vào Xibao gồm ví dụ các biến sau:
Trang 18Hì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:
Trang 19Hì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:
Trang 20là ID 13, ID 11, ID 6, trong đó 2 điểm có khả năng nợ xấu là 0, vậy ID 16 được phânloại khả năng nợ xấu là 0.
Hình 7 Dữ liệu sau khi sắp xếp
Bên trên là cách thức chọn K và giá trị vote có được cho Nợ xấu = 0, Nợ xấu =