Tải bản đầy đủ (.pdf) (34 trang)

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ạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.77 MB, 34 trang )

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 HỒ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

1


Thân Thị Lợi

2

Bùi Thanh Hải

3

Lê Huy Hoàng

Nội dung viết

- Chương 1:
 Tổng quan về nhận dạng
 Bài tốn nhận diện khn mặt
- Chương 2:
 Thuật toán KNN
 Xử lý ảnh để nhận dạng
- Chương 3:
 Thiết kế và xây dựng chương trình nhận diện
khn mặt với KNN.
 Thực nghiệm chương trình
- Kết luận


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 hiện

1


2

3

4

Nội dung công việc

Kết quả đạt được

Phương pháp
thực hiện

Lê Huy Hoàng
Bùi Thanh Hải
Thân Thị Lợi

Lập kế hoạch làm bài
tập lớn, thực hiện
nghiên cứu phát biểu
bài tốn.

Kế hoạch chi tiết
cơng việc.

Tìm hiểu tài liệu,
thảo luận nhóm.

Thân Thị Lợi


Tìm hiểu tổng quan về
bài tốn nhận dạng.
Khái niệm và nguyên
tắc nhận diện khuôn
mặt.

Tổng quan đề tài,
hiểu được tính chất,
bản chất của nhận
dạng, khái niệm về
nhận diện khn mặt.

Tìm hiểu tài liệu,
thảo luận nhóm.

Lê Huy Hồng
Bùi Thanh Hải

Tìm hiểu về thuật toán
KNN, và các phương
pháp xử lý ảnh để
nhận dạng.

Tổng quan về quy
trình của thuật tốn
Tìm hiểu tài liệu,
KNN, ưu và nhược
thảo luận nhóm.
điểm của thuật tốn.

Sưu tầm ví dụ.
Khái niệm và phương
pháp xử lý ảnh.

Lê Huy Hồng

Tìm hiểu và cài đặt
thuật toán KNN. Tiến
hành các bước thu
thập, tiền xử lý dữ
liệu; sử dụng các công
cụ phù hợp để thực
nghiệm/xây dựng
chương trình.

Mơ hình KNN xây
dựng trên ngơn ngữ
Python. Sử dụng mơ
hình để phát triển
chương trình nhận
diện khn mặt.

Tìm hiểu và tham
khảo tài liệu trên
mạng.

Nội dung hoàn chỉnh
về bài báo cáo. Sản
phẩm demo chương
trình nhận diện khn

mặt.

Tổng hợp kết quả
thu được từ những
lần làm việc trước
đó.

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.

5

Lê Huy Hồng

Tổng hợp nội dung.
Chạy đánh giá chương
trình.

6

Bùi Thanh Hải
Thân Thị Lợi

Xây dựng bài thuyết
trình từ nội dung tổng
hợp.



MỤC LỤC
DANH MỤC HÌNH..........................................................................................................5
LỜI CẢM ƠN...................................................................................................................6
LỜI MỞ ĐẦU...................................................................................................................7
CHƯƠNG 1. BÀI TỐN NHẬN DIỆN KHN MẶT...............................................9
1.1. Tổng quan về nhận dạng..........................................................................................9
1.1.1 Tính chất và sự cần thiết của bài tốn nhận dang...........................................9
1.1.2 Bản chất của q trình nhận dạng.................................................................10
1.2. Bài tốn nhận diện khuôn mặt................................................................................11
1.2.1 Khái niệm......................................................................................................11
1.2.2 Nguyên tắc hoạt động cơ bản........................................................................12
CHƯƠNG 2. NHẬN DIỆN KHUÔN MẶT VỚI KNN...............................................14
2.1. Thuật tốn KNN.....................................................................................................14
2.1.1 Giới thiệu về thuật tốn KNN.......................................................................14
2.1.2 Quy trình của thuật toán KNN......................................................................15
2.1.3 Ưu điểm và nhược điểm của thuật tốn KNN..............................................16
2.1.4 Ví dụ về thuật tốn KNN..............................................................................16
2.2. Xử lý hình ảnh để nhận dạng.................................................................................19
2.2.1 Khái niệm về xử lý ảnh.................................................................................19
2.1.2 Phương pháp xử lý ảnh.................................................................................20
CHƯƠNG 3. THỰC NGHIỆM NHẬN DIỆN KHN MẶT VỚI KNN................23
3.1. Thiết kế chương trình.............................................................................................23
3.2. Xác định vùng chứa khuôn mặt sử dụng Haarcascade OpenCV...........................23
3.3. Xử lý hình ảnh và trích chọn đặc trưng bằng OpenCV..........................................25
3.4. Xây dựng model KNN để phân loại khuôn mặt.....................................................27
3.5. Kết quả thực nghiệm chạy chương trình................................................................28
KẾT LUẬN.....................................................................................................................33



DANH MỤC HÌNH

Hình 1. Sơ đồ tổng quan một hệ nhận dạng..................................................................10
Hình 2. Nhận diện khn mặt.......................................................................................10
Hình 3. Khoảng cách Euclid.........................................................................................14
Hình 4. Dữ liệu ví dụ ban đầu.......................................................................................16
Hình 5. Dữ liệu sau khi được chuẩn hóa.......................................................................17
Hình 6. Kết quả tính tốn..............................................................................................17
Hình 7. Dữ liệu sau khi sắp xếp....................................................................................18
Hình 8. Mơ hình xử lý ảnh tổng quan...........................................................................19
Hình 9. 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í của khn mặt........................................................................23
Hình 13. Xác định vị trí và làm xám khn mặt...........................................................24
Hình 14. Kết quả sau khi làm xám khn mặt..............................................................24
Hình 15. Thay đổi kích thước về dạng 100*100...........................................................25
Hình 16. Kết quả sau khi 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 và 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 hiện khn mặt bằng camera..............................................27
Hình 22. Lưu trữ dữ liệu khn mặt.............................................................................28
Hình 23. Kết quả huấn luyện bằng camera...................................................................28
Hình 24. Huấn luyện bằng hình ảnh.............................................................................29
Hình 25. Kết quả huấn luyện bằng hình ảnh.................................................................29
Hình 26. Đọc dữ liệu huấn luyện và khởi tạo mơ hình KNN với K = 5.......................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 và gán nhãn...........................................31

Hình 29. Kết quả nhận diện khn mặt........................................................................31


LỜ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ô trong
khoa 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 ơn
giả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ốt
quá 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 em
xin gửi tình cảm sâu sắc tới gia đình và bạn bè vì đã ln 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ình
họ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ản
thâ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 mong
mỏi nhận được sự thông cảm và những góp ý từ q thầy cơ cũng như các bạn trong
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) 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ọi
lĩ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ủa
Apple, hệ thống gợi ý sản phầm của Amazon, hệ thống gợi ý phim của Netfix, máy
chơ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ần
phả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óng
bở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ác
trong việc đưa ra các quyết định liên quan đến xử lý ảnh trên nhiều lĩnh vực: qn 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ận
dạ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 khn mặt
ngườ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 khn 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 khn mặt và nhận diện khn 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


(Support Vector Machine). Mỗi mơ hình đều cho kết quả khá tốt cho bài tốn này,
mơ hình nhận diện khn mặt bằng K-NN là dễ cài đặt nhất mặc dù độ chính xác vẫn
phả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ến
thứ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ự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 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ọc
má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 tốn nhận diện khn mặt.

Trình bày nội dung khái qt về bài tốn nhận dạng nói chung và 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 các kỹ thuật nhận diện khn mặt bằng thuật tốn KNN và các kỹ
thuật xử lý hình ảnh.
Chương 3: Thực nghiệm nhận diện khn mặt.
- Xác định vùng của khn 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 khn mặt bằng thuật tốn KNN


CHƯƠNG 1. BÀI TỐN NHẬN DIỆN KHN 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 tốn nhận dang.
Nhận dạng là q 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 theo
nhữ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ết
trước gọi là nhận dạng có giám sát (supervised learning); trong trường hợp ngược lại
gọi là học khơng có giám sát (non supervised learning). Nhận dạng là một bài tốn
quan 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ật
hiện nay. Đòi hỏi sự quản lý và xử lý thơng tin chính xác mà nó vượt q sức của con
ngườ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ơng
việ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úp
má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óc
hoạ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ấm
cơng, điểm danh và làm khóa an tồ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 tồn. Thay vì phải nhập mã pin trên máy ATM
thì 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ực
tiếp bằng tay, như trong mơ hình nhà thơng minh, trên điện thoại…. Ví dụ: ứng
dụng Jibbigo trên điện thoại đi động, Ứng dụng này có thể dịch được tiếng nói
củ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.


- Nhận dạng khuôn mặt: thường được mô tả là một q trình bao gồm bốn
bước, đó là: phát hiện khn mặt, căn chỉnh khn 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), q 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ệc
phâ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ác
thuật tố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 đối
tượ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ết
trướ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ột

cá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 ảnh
vớ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ác
thủ 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.


Học khơng có giám sát (non supervised learning), kỹ thuật này phải tự định ra
cá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 đặc
trư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ộp
nhó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 tốn nhận diện khn mặt
1.2.1 Khái niệm
Nhận diện khn mặt là một hệ thống tự động xác định và nhận dạng một
ngườ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 khn 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 tay
hay tròng mắt


Hình 2. Nhận diện khn mặt


1.2.2 Ngun 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ảnh
xung quanh nó. Sau khi đã có một khn mặt đầy đủ và khơng bị tác động bởi khung
cả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 khn mặt một cách chi tiết và chính xác, thay vì đánh giá bằng cảm nhận
như mắt người. Mỗi khn mặt đều có nhiều điểm mốc, những phần lồi lõm tạo nên
cá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 khn mặt này với khn mặt
khá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 đưa
trê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ắt
 Hình dạng của xương gị má
 Chiều rộng của mũi
 Hình dạng mắt


Một số thuật tốn nhận dạng khn mặt xác định các đặc điểm khn mặt bằng
cách trích xuất các ranh giới, hoặc đặc điểm, từ một hình ảnh khn mặt của đối
tượng. Từ đó các thuật tốn sẽ trích xuất được các thơng tin, và những tính năng này
sau đó đượ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.
Trong trườ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 khn mặt và sau đó
nén dữ liệu khn mặt, chỉ lưu dữ liệu hình ảnh nào là hữu ích cho việc nhận dạng
khn mặt. Khi đó, muốn nhận diện sẽ so sánh hình ảnh mẫu với các dữ liệu khn
mặt đã lưu.

Có thể chia các thuật tốn nhận dạng khn 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áp
hì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òn
thực tế hiện nay, hệ thống nhận diện khn mặt có ngun tắc tương đối phức tạp để
có thể nhận diện được các khn mặt có độ chính xác cao trong những mơi trường
khơng thực sự tối ưu như môi trường thiếu sáng, hay khn mặt khơng được chụp,
quay chính diện.


CHƯƠNG 2. NHẬN DIỆN KHN MẶT VỚI KNN
2.1. Thuật tốn KNN
2.1.1 Giới thiệu về thuật toán KNN
K- Nearest Neighbors (KNN) là một thuật tố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 tố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 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
= 1.
Nếu bạn ln đi chơi với một nhóm 5 người, mỗi người trong nhóm có ảnh
hưởng đến hành vi của bạn và bạn sẽ là trung bình của 5. Đó là KNN với K = 5.

Bộ phân loại KNN xác định lớp (class) của một điểm dữ liệu theo nguyên tắc
biểu quyết đa số. Nếu K được đặt là 5, các lớp của 5 điểm gần nhất sẽ được kiểm tra.
Dự đoán đưa ra kết quả lớp của điểm dữ liệu dựa vào lớp nào chiếm đa số trong 5
điểm gần nhất. Tương tự, hồi quy KNN lấy giá trị trung bình của 5 điểm gần nhất.
Làm thế nào các điểm dữ liệu được xác định là gần nhau? Trước hết cần đo
khoảng cách giữa các điểm dữ liệu. Có nhiều phương pháp để đo khoảng cách. Phép
đo khoảng cách Euclid là một trong những phép đo khoảng cách được sử dụng phổ


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 tốn bằng cơng thức sau:
d= √( x 2−x 1)2+( y 2− y 1)2

Hình 3. Khoảng cách Euclid

Khoảng cách Euclide trong không gian hai chiều gợi nhớ cho chúng ta định lý
Pytago nổi tiếng: khoảng cách giữa 2 điểm chính là cạnh huyền của tam giác, cịn
chênh lệch giữa tọa độ x, y của 2 điểm dữ liệu chính là 2 cạnh góc vng.
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 tố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.


 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 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ác
bài tố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.
Nhược điểm
 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.
 Tốn bộ nhớ.
 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 tốn KNN
Giả sử một ngân hàng có một tập dữ liệu gồm 5000 khách hàng đã mở các
khoản vay tiêu dùng khác nhau, sau một khoản thời gian cụ thể, ngân hàng đã xác
định được có 3895 khách hàng thanh tốn khoản vay đúng hạn và có 1105 khách
hàng khơng thanh tốn khoản vay đúng hạn, nếu xét nợ quá hạn là sau 3 tháng kể từ
thời điểm thanh tốn tồn bộ, thì các khách hàng này đang trong tình trạng nợ quá
hạn. Ngân hàng sẽ tổng hợp toàn bộ dữ liệu và phân loại các khách hàng này theo có
khả năng nợ xấu và khơng có khả năng nợ xấu.
Đặ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.
Với các biến đầu vào Xi bao gồm ví dụ các biến sau:


 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)

 Trình độ học vấn
 Tình trạng hơn nhân
 Tình trạng sở hữu bất động sản
 Khoản vay
 Thời hạn vay (tháng)
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:


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 + 02 + 02 + 12 + 12 + (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


Bên trên là các giá trị khoảng cách tính được qua công thức Euclidean, và xếp
hạng với khoảng cách bé nhất tức là gần nhất được xếp hạng là 1.
Nếu chọn K = 1, thì khách hàng mới có ID 16 sẽ được phân loại khả năng nợ

xấu theo khách hàng ID 6 là 1, nếu K = 2, tức chọn ra 2 điểm gần nhất tức chọn ra
được ID 6 và ID 11 nhưng mỗi điểm lại có 2 giá trị khả năng nợ xấu khác nhau nên
không phân loại được cho ID 16, nếu K = 3 thì chúng ta chọn được 3 điểm gần nhất
là 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ân
loạ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 =
1, ví dụ K = 7, có 7 điểm gần nhất so với ID 16 là ID 6, ID 11, ID 13, ID 2, ID 4, ID
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.
2.2. Xử lý hình ảnh để nhận dạng
2.2.1 Khái niệm về xử lý ảnh
Xử lý ảnh là bước cơ bản tiền đề cho nghiên cứu, thật chất là nâng cao chất
lượng hình ảnh để cung cấp thơng tin số liệu cho ứng dụng thị giác vào điều khiển.
Bắt đầu từ việc thu nhận hình ảnh từ các thiết bị chuyên dụng và gửi đến dữ liệu máy
tính. Dữ liệu sẽ được tác động thông qua các thuật toán tương ứng nhằm nâng cao
chất lượng ảnh để làm cơ sở cho việc nhận dạng.


Hình 8. Mơ hình xử lý ảnh tổng quan

2.1.2 Phương pháp xử lý ảnh
a) Khử nhiễu:
Có 2 loại nhiễu cơ bản trong quá trình thu nhận ảnh:
 Nhiễu hệ thống: là nhiễu có quy luật có thể khử bằng các 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 bằng các phép
lọc.

b) Chỉnh mức xám:
Nhằm khắc phục tính khơng đồng đều của hệ thống gây ra. Thơng thường có 2
hướng tiếp cận:
 Giảm số mức xám: Thực hiện bằng cách nhóm các mức xám gần nhau thành một
bó. Trường hợp chỉ có 2 mức xám thì chính là chuyển về ảnh đen trắng.
 Tăng số mức xám: Thực hiện nội suy ra các mức xám trung gian bằng kỹ thuật
nội suy. Kỹ thuật này nhằm tăng cường độ mịn cho ảnh.
c) Sử dụng các bộ lọc:
Kỹ thuật lọc trung vị
Ý tưởng: sử dụng một cửa sổ lọc (ma trận 3x3) quét qua lần lượt từng điểm
ảnh của ảnh đầu vào input. Tại vị trí mỗi điểm ảnh lấy giá trị của các điểm ảnh tương
ứng trong vùng 3x3 của ảnh gốc lấp vào ma trận lọc. sau đó sắp xếp các điểm ảnh
trong cửa sổ này theo thứ tự tăng dần, gán điểm ảnh nằm chính giữa (trung vị) của


dãy giá trị điểm ảnh đã được sắp xếp ở trên cho giá trị điểm ảnh đang xét của ảnh đầu
ra output. Sơ lược ý tưởng trên:

Hình 9. Kỹ thuật lọc trung vị

Kỹ thuật lọc trung bình
Ý tưởng: Tương tự như kỹ thuật lọc trung vị, sử dụng một cửa sổ lọc (ma trận
3x3) quét qua lần lượt từng điểm ảnh của ảnh đầu vào input. Tại vị trí mỗi điểm ảnh
lấy giá trị của các điểm ảnh tương ứng trong vùng 3x3 của ảnh gốc lấp vào ma trận
lọc. Với hai bước: tính tổng các thành phần trong cửa sổ lọc và sau đó lấy tổng chia
cho các phần tử của 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 ra những đố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 hiện lọc vùng (zonal filtering). Các bộ vùng được gọi là
“mặt nạ đặc điểm” (feature mask) thường là các khe hẹp với hình dạng khác nhau
(chữ nhật, tam giác, cung tròn v.v.).
 Đặc điểm biên và đường biên: Đặc trưng cho đường biên của đối tượng và do vậy
rất hữu ích trong việc trích chọn các thuộc tính bất biến được dùng khi nhận dạng
đối tượng. Có thể được 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 quả các đặc điểm giúp cho
việc nhận dạng các đối tượng ảnh chính xác, với tốc độ tính tốn cao và dung
lượng nhớ lưu trữ giảm xuống.


CHƯƠNG 3. 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: /> Phần mềm Pycharm
Link 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: /> 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 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 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.
3.2. 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 khn mặt được áp dụng cho cả q trình huấn luyện
và kiểm thử vì cả 2 quá trình này đều cần phải xác định vùng chứa khn mặt chính
xác mới có thể đưa ra kết quả.


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

Sau khi xác định được vị trí của khuôn mặt, tiến hành kẻ khung khuôn mặt để
nhận dạng và xác định xem thuật tốn đã hoạt động chính xác hay chưa.

Hình 12. Xác định vị trí của khn mặt


3.3. 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 khn mặt bằng OpenCV

Hình 13. Xác định vị trí và làm xám khn mặt

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


×