1. Trang chủ
  2. » Luận Văn - Báo Cáo

ĐỒ án NGÀNH điện tử đề tài NHẬN DIỆN KHUÔN mặt BẰNG PYTHON OPENCV

29 8 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 Bằng Python-Opencv
Tác giả Trần Xuân Lộc, Hoàng Trung Kiên
Người hướng dẫn GVHD: Nguyễn Phan Hải Phú
Trường học Trường Đại Học Bách Khoa Thành Phố Hồ Chí Minh
Chuyên ngành Điện-Điện Tử
Thể loại đồ án
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 29
Dung lượng 1,32 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

1.2 GIỚI THIỆU ĐỀ TÀI Giới thiệu chung về các phương pháp nhận dạng mặt người: a Các phương pháp nhận dạng mặt người: Phương pháp nhận d愃฀ng hiện nay c漃Ā 2 lo愃฀i:  Nhận d愃฀ng dựa trên c

Trang 1

ĐỒ ÁN

NGÀNH ĐIỆN TỬ

ĐỀ TÀI NHẬN DIỆN KHUÔN MẶT BẰNG

Trang 3

MỤC LỤC:

CHƯƠNG 1 GIỚI THIỆU

1.1 TỔNG QUAN

1.2 GIỚI THIỆU ĐỀ TÀI

1.3) Phân chia công việc

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1 Ngôn ngư฀ lập trình, thư viện và công cụ hỗ trợ

2.1.1 Python

2.1.2 OpenCV

2.1.3 Các thư viện được sử dụng

2.2.1 Tiền xử lý

2.2.2 Đối tượng nhận d愃฀ng

2.2.3 Các đặc trưng Haar-like

2.2.4 Cách áp dụng đặc trưng Haar-like để phát hiện khuôn mặt trong ảnh

2.2.5 Số lượng đặc trưng Haar-like

2.3 Nhận diện khuôn mặt opencv

2.3.1 Trích xuất tính năng

2.3.2 So sánh khuôn mặt

CHƯƠNG 3: QUY TRÌNH THỰC HIỆN

3.1 Phát hiện khuôn mặt sử dụng bộ phân t3ng Haar

3.1.1 Cài đặt các phụ thuộc

3.1.2 Áp dụng các t3ng Haar

3.1.3 Kết quả

3.2 Lấy dư฀ liệu khuôn mặt tư฀ webcam

3.2.1 Cài đặt các phụ thuộc

3.2.2 chụp ảnh tư฀ webcam và lưu vào dataset

3.3 Huấn luyện tập dư฀ liệu

3.3.1 đọc dư฀ liệu tư฀ id

3.3.2 Huấn luyện tập dư฀ liệu sử dụng hàm training recognizer

3.4 Nhận diện khuôn mặt trong luồng video

3.4.1 Lấy dư฀ liệu tư฀ tập dư฀ liệu đ( training

3.4.2 Đọc camera và nhận diện khuôn mặt trong luồng video

CHƯƠNG 4: KẾT QUẢ THỰC HIỆN

CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

5.1 T漃Ām tắt và kết luận

5.2 Hướng phát triển

TÀI LIỆU THAM KHẢO

PHỤ LỤC

Trang 4

CHƯƠNG 1 GIỚI THIỆU 1.1 TỔNG QUAN

Hiện nay, cùng với sự phát triển của x( hội, vấn đề an ninh bảo mật đang được yêu c3u khắt khe t愃฀i mọi quốc gia trên thế giới Các hệ thống nhận d愃฀ng con người được ra đời với độ tin cậy ngày càng cao Một trong các bài toán nhận d愃฀ng con người rất được quan tâm hiện nay là nhận d愃฀ng khuôn mặt.

Bài toán nhận d愃฀ng khuôn mặt phục vụ m愃฀nh mẽ trong nhiều lĩnh vực của đời sống đặt biệt ở như฀ng lĩnh vực công nghệ cao yêu c3u bảo đảm an ninh bảo mật…

Vì vậy bài toán nhận d愃฀ng khuôn mặt vẫn còn là bài toán n漃Āng hổi và càng ngày người

ta luôn tìm cách hoàn thiện n漃Ā để mang l愃฀i kết quả nhận d愃฀ng tốt nhất.

1.2 GIỚI THIỆU ĐỀ TÀI Giới thiệu chung về các phương pháp nhận dạng mặt người:

a) Các phương pháp nhận dạng mặt người:

Phương pháp nhận d愃฀ng hiện nay c漃Ā 2 lo愃฀i:

 Nhận d愃฀ng dựa trên các đặc trưng của các ph3n tử trên khuôn mặt (Feature based face recognition).

 Nhận d愃฀ng dựa trên xét tổng thể khuôn mặt (Appearance based face recognition).

Ngoài ra còn c漃Ā một số lo愃฀i nhận d愃฀ng sử dụng mô hình về khuôn mặt, một số phương pháp được dùng cho lo愃฀i này:

 Nhận d愃฀ng 2D: Elastic Bunch Graph, Active Appearance Model.

 Nhận d愃฀ng 3D: 3D Morphable Model.

b) Nhận dạng dựa trên các đặc trưng khuôn mặt:

Đây là phương pháp nhận d愃฀ng khuôn mặt dựa trên việc xác định các đặc trưng hình học của các chi tiết trên một khuôn mặt (như vị trí, diện tích, hình d愃฀ng của mắt, mũi, miệng,…), và mối quan hệ giư฀a chúng (như khoảng cách của hai mắt, khoảng cách của hai lông mày,…).

Ưu điểm của phương pháp này là n漃Ā g3n với cách mà con người sử dụng để nhận biết khuôn mặt Hơn nư฀a với việc xác định đặc tính và các mối quan hệ, phương pháp này c漃Ā thể cho kết quả tốt trong các trường hợp ảnh c漃Ā nhiều nhiễu như bị nghiêng, bị xoay hoặc ánh sáng thay đổi.

Trang 5

Nhược điểm của phương pháp này là cài đặt thuật toán phư฀c t愃฀p do việc xác định mối quan hệ giư฀a các đặc tính đòi hỏi các thuật toán phư฀c t愃฀p Mặt khác, với các ảnh kích thước bé thì các đặc tính sẽ kh漃Ā phân biệt do đ漃Ā kh漃Ā tính toán được các đặc trưng trên khuôn mặt.

c) Nhận dạng dựa trên xét toàn diện khuôn mặt:

Nhận d愃฀ng đựa trên toàn diện khuôn mặt, c漃Ā nghĩa mình sẽ không đi xét đến tư฀ng thành ph3n đặc trưng trên khuôn mặt nư฀a… Mình sẽ xem khuôn mặt là một không gian cụ thể và mình tìm như฀ng đặc trưng, như฀ng đặc điểm chính trên không gian đ漃Ā.

Nội dung chính của hướng tiếp cận này là xem mỗi ảnh c漃Ā kích thước RxC là một vector trong không gian RxC chiều Ta sẽ xây dựng một không gian mới c漃Ā chiều nhỏ hơn sao cho khi biểu diễn trong không gian đ漃Ā các đặc điểm chính của một khuôn mặt không bị mất đi Trong không gian đ漃Ā, các ảnh của cùng một người sẽ được tập trung l愃฀i thành một nh漃Ām g3n nhau và cách xa các nh漃Ām khác.

Hai phương pháp thường được sử dụng là trong hướng tiếp cận này:

 PCA (Principle Components Analysis)

 LDA (Linear Discriminant Analysis) Vâng, với hướng tiếp cận này chúng ta c漃Ā thể hình dung tương đối dễ chịu hơn phải không Chúng ta không c3n phải phân tích nhiều về đặc điểm khuôn mặt nư฀a do đ漃Ā phương pháp tiếp cận này tương đối dễ cài đặt hơn và cũng khá hiệu quả trong việc nhận d愃฀ng.

Nhược điểm thì tất nhiên sẽ không khỏi tránh khỏi Tùy theo phương pháp chúng ta sư฀ dụng PCA hay LDA mà đánh giá nhược điểm trong hướng tiếp cận này.

1.3) Phân chia công việc trong nhóm

Tr3n Xuân Lộc Tìm hiểu và ch愃฀y code 50%

Hoàng Trung Kiên Demo, kiểm duyệt, viết

báo cáo

50%

Trang 6

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Ngôn ngữ lập trình, thư viện và công cụ hỗ trợ 2.1.1 Python

Python được thiết kế với ưu điểm m愃฀nh là dễ đọc, dễ học, dễ nhớ Theo thời gian, Python d3n mở rộng sang mọi hệ điều hành Mac OS, Windows,… và c漃Ā thể sử dụng được online trên các nền tảng web hiện nay Ở chủ đề này, nh漃Ām chọn lựa ngôn ngư฀ lập trình Python dùng để lập trình cho việc nhận diện biển số xe vì các ưu điểm

mà ngôn ngư฀ này mang l愃฀i.

2.1.2 OpenCV

OpenCV (Open Computer Vision) là một thư viện m( nguồn mở hàng đ3u cho

xử lý về thị giác máy tính, machine learning, xử lý ảnh OpenCV đươc viết bằng C/C++, vì vậy c漃Ā tốc độ tính toán rất nhanh, c漃Ā thể sử dụng với các ư฀ng dụng liên quan đến thời gian thực Opencv c漃Ā các interface cho C/C++, Python Java vì vậy

hỗ trợ được cho Window, Linux, MacOs lẫn Android, iOS OpenCV OpenCV c漃Ā nhiều ư฀ng dụng trong nhận d愃฀ng và xử lí ảnh.

2.1.3 Các thư viện được sử dụng.

- Thư viện numpy: là một thư viện toán học rât phổ biến và m愃฀nh mẽ của Python

NumPy được trang bị các hàm số đ( được tối ưu, cho phép làm việc hiệu quả với ma trận và mảng, đặc biệt là dư฀ liệu ma trận và mảng lớn với tốc độ xử lý nhanh hơn nhiều l3n khi chỉ sử dụng Python đơn thu3n.

- Thư viện os: module os trong Python cung cấp các chư฀c năng được sử dụng để tương tác với hệ điều hành và cũng c漃Ā được thông tin liên quan về n漃Ā OS đi theo các Module tiện ích tiêu chuẩn của Python Module này cung cấp một cách linh động sử dụng chư฀c năng phụ thuộc vào hệ điều hành.

- Thư viện sqlite: là cơ sở dư฀ liệu Back -end, b愃฀n c漃Ā thể sử dụng Python để xây dựng

một trang web hoặc t愃฀o các công cụ c漃Ā yêu c3u lưu trư฀ dư฀ liệu SQLite cũng được sử dụng rộng r(i trong các trường khác, chẳng h愃฀n như HTML5 và các thiết bị đ3u cuối di động Python sqlite3 Trong thư viện tiêu chuẩn cung cấp giao diện của cơ sở dư฀ liệu.

2.2 Phát hiện khuôn mặt bằng bộ phân tầng haar

C漃Ā rất nhiều phương pháp để giải quyết bài toán xác định khuôn mặt người trên ảnh 2D dựa trên các hướng tiếp cận khác nhau Phương pháp Haar-like – Adaboost(viết tắt HA) của hai tác giả Paul Viola và Michael J.Jones là phương pháp xác định mặt người

Trang 7

dựa theo hướng tiếp cận trên diện m愃฀o.

Hướng tiếp cận trên diện m愃฀o tư฀c là hệ thống nhận d愃฀ng khuôn mặt sẽ được học các mẫu của khuôn mặt tư฀ một tập ảnh mẫu Sau khi quá trình học hay quá trình huấn luyện này (training) thực hiện xong, hệ thống sẽ rút ra được như฀ng tham số để phục vụ cho quá trình nhận d愃฀ng.Vì vậy tiếp cận trên diện m愃฀o còn được biết đến với tên gọi tiếp cận theo phương pháp học máy Bài báo cáo tập trung chủ yếu vào quá trình nhận d愃฀ng(sau khi đ( thực hiện quá trình học).

Về tổng quan, phương pháp HA được xây dựng dựa trên sự kết hợp, lắp ghép của 4 thành ph3n, đ漃Ā là:

- Các đặc trưng Haar-like: các đặc trưng được đặt vào các vùng ảnh để tính toán các giá trị của đặc trưng, tư฀ như฀ng giá trị đặc trưng này đưa vào bộ phân lo愃฀i Adaboost ta sẽ xác định được ảnh c漃Ā khuôn mặt hay không.

- Ảnh tích hợp(Integral Image): thực ra đây là một công cụ giúp việc tính toán các giá trị đặc trưng Haar-like nhanh hơn.

- Adaboost(Adaptive Boost): bộ phân lo愃฀i (bộ lọc) ho愃฀t động dựa trên nguyên tắc kết hợp các bộ phân lo愃฀i yếu để t愃฀o lên bộ phân lo愃฀i m愃฀nh Adaboost sử dụng giá trị đặc trưng Haar-like để phân lo愃฀i ảnh là mặt hay không phải mặt.

- Cascade of Classifiers: bộ phân lo愃฀i t3ng với mỗi tâng là một bộ phân lo愃฀i Adaboost, c漃Ā tác dụng tăng tốc độ phân lo愃฀i.

Như vậy bài toán xác định mặt người trong ảnh cũng chính là bài toán phân lo愃฀i ảnh thành hai lớp mặt hoặc không phải mặt.

2.2.1 Tiền xử lý

Một lưu ý nhỏ là phương pháp HA thực hiện trên ảnh xám (gray image) Mỗi điểm ảnh(pixel) sẽ c漃Ā giá trị mư฀c xám tư฀ 0 đến 255(không gian màu 8 bit) Như vậy phương pháp HA sẽ không khai thác như฀ng đặc điểm về màu sắc khuôn mặt để nhận d愃฀ng song vẫn rất hiệu quả Ảnh màu sẽ được chuyển về ảnh xám để nhận d愃฀ng, việc chuyển đổi này khá đơn giản, thực hiện bằng một hàm chuyển đổi và sử dụng chỉ với một câu lệnh trong Opencv nên báo cáo chưa đề cập tới.

Sau khi chuyển thành ảnh xám, ảnh l愃฀i tiếp tục được chuyển thành “ảnh tích hợp” (sẽ trình bày ở ph3n sau) và trong bước đ3u tiên của quá trình nhận d愃฀ng, các đặc trưng Haar-like sẽ làm việc trực tiếp trên ảnh tích hợp.

2.2.2 Đối tượng nhận dạng.

Trên ảnh, vùng khuôn mặt là tập hợp các điểm ảnh c漃Ā nhưng mối quan hệ khác biệt so với các vùng ảnh khác, như฀ng mối quan hệ này t愃฀o lên các đặc trưng riêng của khuôn mặt Tất cả khuôn mặt người đều c漃Ā chung như฀ng đặc điểm sau khi đ( chuyển qua ảnh xám, ví dụ như:

- Vùng hai mắt sẽ tối hơn vùng má và vùng chán, tư฀c mư฀c xám của vùng này cao hơn vượt trội so với hai vùng còn l愃฀i.

- Vùng giư฀a sống mũi cũng tối hơn vùng hai bên mũi.

- …

Trang 8

Và còn rất nhiều như฀ng đặc điểm khác của khuôn mặt và các đặc trưng Haar like dựa vào các đặc điểm này để nhận d愃฀ng.

Về tổng quát, các đặc trưng Haar like không chỉ được sử dụng để nhận d愃฀ng khuôn mặt mà c漃Ā thể dùng để nhận d愃฀ng bất kì một đối tượng nào trên ảnh( thân người, tay, chân, ô tô, đồ vật,….) Bởi vì cũng giống như khuôn mặt, mỗi đối tượng c漃Ā như฀ng đặc điểm riêng biệt đặc trưng bởi các vùng điểm ảnh, công việc của đặc trưng Haar-like là tính toán các giá trị tương quan giư฀a các vùng ảnh đ漃Ā.

Đây chỉ là bước ban đ3u về cách áp dụng đặc trưng để phân lo愃฀i cửa sổ con, chi tiết cách phân lo愃฀i của bộ Adaboost và Cascade of Classifiers sẽ trình bày ở mục sau.

o Đặc trưng tâm – xung quanh:

Giá trị của một đặc trưng Haar-like là sự khác biệt giư฀a tổng các giá trị xám của các pixel trong vùng “đen” với tổng các giá trị xám của các pixel trong vùng “trắng”:

f(x) = Tổng vùng đen (pixel) - Tổng vùng trắng (pixel) (1)

Vậy khi được đặt lên một vùng ảnh, đặc trưng Haar-like sẽ tính toán và đưa ra giá trị đặc trưng h(x) của vùng ảnh đ漃Ā.

2.2.4 Cách áp dụng đặc trưng Haar-like để phát hiện khuôn mặt trong ảnh.

Trang 9

Như đ( trình bày ở bài báo cáo 1, để phát hiện khuôn mặt, hệ thống sẽ cho một cửa sổ con(sub-window) c漃Ā kích thước cố định quét lên toàn bộ ảnh đ3u vào Như vậy

sẽ c漃Ā rất nhiều ảnh con ư฀ng với tư฀ng cửa sổ con, các đặc trưng Haar-like sẽ được đặc lên các cửa sổ con này để tư฀ đ漃Ā tính ra giá trị của đặc trưng Sau đ漃Ā các giá trị này được bộ phân lo愃฀i xác nhận xem khung hình đ漃Ā c漃Ā phải khuôn mặt hay không Hình dưới là một ví dụ: khung màu xanh là cửa sổ con, một đặc trưng Haar-like với kích thước và vị trí đặt như trong hình vẽ.

Ứng với mỗi một đặc trưng như trên, một bộ phân lớp yếu(weak classifier)

h k (x) được định nghĩa như sau:

(2) Trong đ漃Ā:

X : cửa sổ con c3n xét : ngưỡng

f k : giá trị của đặc trưng Haar-like

p k : hệ số quyết định chiều của bất phương trình

Ta hiểu công thư฀c trên đơn giản như sau: khi giá trị của đặc trưng Haar-like k:f k

t愃฀i cửa sổ con vượt qua một ngưỡng thì bộ phân lớp h (x) sẽ kết luận cửa sổ con là x k x

khuôn mặt(h (x)=1), còn f không vượt qua ngưỡng đ漃Ā thì không là khuôn mặt k k

Ngưỡng là giá trị đ( rút ra sau qua trình huấn luyện bộ phân lớp, sẽ trình bày sau.

Như trong ph3n đối tượng nhận d愃฀ng, ta thấy đặc trưng Haar-like c漃Ā kích k

thước và vị trí đặt trong cửa sổ con trên hình sẽ c漃Ā giá trị f rất lớn(vì mư฀c xám ở x k

vùng mắt lớn hơn rất nhiều vùng má ) Giá trị f này lớn hơn nhiều với h3u hết các giá k

trị f k khác khi ta di chuyển cửa sổ con x sang các vị trí khác(quét trên toàn ảnh đ3u vào), và với nhưỡng phù hợp, kết quả bộ phân lớp h (x) sẽ cho cửa sổ con ở vị trí như k

trên là khuôn mặt còn ở vị trí khác thì không.

Đương nhiên sẽ c漃Ā như฀ng vị trí khác trên ảnh đ3u vào vô tình cho ra f vượt k

Trang 10

ngưỡng và bộ phân lớp yếu h (x) kết luận đấy là khuôn mặt, nhưng ta không chỉ dùng k

một đặc trưng Haar-like mà dùng rất nhiều đặc trưng ở như฀ng vị trí và kích thước khác nhau trong cửa sổ con làm giảm đi sự trùng hợp ngẫu nhiên.

2.2.5 Số lượng đặc trưng Haar-like

Việc xác định một cửa sổ con c漃Ā phải là mặt hay không phải sử dụng rất nhiều đặc trưng Haar-like Ứng với mỗi một kích thước, kiểu đặc trưng và vị trí đặt trong cửa

sổ con cho ta một đặc trưng ư฀ng với một bộ phân lớp yếu Vì vậy tập hợp đ3y đủ số x

lượng các đặc trưng trong một cửa sổ con là rất lớn Theo như sự tính toán của hai tác giả, với một cửa sổ con ở kích thước cơ bản 2424 pixel số lượng đ3y đủ các đặc trưng Haar-like là hơn 160000.C漃Ā hai vấn đề đặt ra ở đây:

Thư฀ nhất là giá trị của mỗi một đặc trưng Haar-like được tính bằng tổng giá trị các điểm ảnh vùng đen trư฀ đi tổng các điểm ảnh vùng trắng, như vậy là với số lượng lớn các đặc trưng sẽ t愃฀o ra một khối lượng tính toán khổng lồ Điều này là không phù hợp để đáp ư฀ng thời gian thực vì thời gian xử lý rất lâu.

Thư฀ hai là trong số hàng trăm nghìn đặc trưng đ漃Ā thì không phải đặc trưng nào cũng c漃Ā ích cho công việc phân lo愃฀i Nếu chúng ta không tìm cách lo愃฀i bổ như฀ng đặc trưng không c漃Ā ích để tập trung vào như฀ng đặc trưng c漃Ā hiệu quả cao thì cũng sẽ mất thời gian xử lý một cách vô ích.

Như฀ng ph3n sau sẽ l3n lượt tìm cách giải quyết các vấn đề này.

2.3 Nhận diện khuôn mặt opencv

Cách nhận dạng khuôn mặt của OpenCV hoạt động:

Trang 11

Hình 1: Tổng quan về đường ống nhận d愃฀ng khuôn mặt OpenCV Bước quan trọng là

một công cụ trích xuất tính năng CNN để t愃฀o ra các hình ảnh nhúng trên khuôn mặt 128-d

Để xây dựng quy trình nhận d愃฀ng khuôn mặt OpenCV của chúng tôi, chúng tôi sẽ áp dụng học sâu theo hai bước chính:

1 Để áp dụng tính năng nhận diện khuôn mặt , phát hiện sự hiện diện và vị trí của một khuôn mặt trong hình ảnh, nhưng không xác định được khuôn mặt đ漃Ā

2 Để trích xuất các vectơ đặc trưng 128-d (được gọi là "nhúng") định lượng tư฀ng khuôn mặt trong một hình ảnh

2.3.1 Trích xuất tính năng

Bây giờ chúng ta đ( cắt khuôn mặt ra khỏi hình ảnh, chúng ta trích xuất các tính năng tư฀ n漃Ā Ở đây chúng ta sẽ sử dụng phương pháp nhúng khuôn mặt để tách các đặc điểm ra khỏi khuôn mặt Một m愃฀ng nơ-ron lấy hình ảnh khuôn mặt của một người làm đ3u vào và xuất ra một vectơ đ愃฀i diện cho các đặc điểm quan trọng nhất của khuôn mặt Trong học máy, vectơ này được gọi là nhúng và do đ漃Ā chúng tôi gọi vectơ này là nhúng khuôn mặt Bây giờ điều này giúp ích như thế nào trong việc nhận d愃฀ng khuôn mặt của như฀ng người khác nhau?

Trong khi huấn luyện m愃฀ng nơ-ron, m愃฀ng sẽ học cách xuất ra các vectơ tương tự cho các khuôn mặt trông giống nhau Ví dụ: nếu c漃Ā nhiều hình ảnh khuôn mặt trong khoảng thời gian khác nhau, tất nhiên, một số đặc điểm trên khuôn mặt c漃Ā thể thay đổi nhưng không nhiều Vì vậy, trong trường hợp này các vectơ liên kết với các mặt

là tương tự nhau hay n漃Āi ngắn gọn là chúng rất g3n nhau trong không gian vectơ H(y xem sơ đồ dưới đây để biết sơ bộ:

Trang 12

Bây giờ sau khi huấn luyện m愃฀ng, m愃฀ng học cách xuất ra các vectơ g3n nhau hơn (tương tự) cho các khuôn mặt của cùng một người (trông giống nhau) Các vectơ trên bây giờ biến đổi thành:

Chúng tôi sẽ không đào t愃฀o một m愃฀ng như vậy ở đây vì c3n một lượng lớn dư฀ liệu

và sư฀c m愃฀nh tính toán để đào t愃฀o các m愃฀ng như vậy Chúng tôi sẽ sử dụng một m愃฀ng được huấn luyện trước do Davis King đào t愃฀o trên tập dư฀ liệu gồm ~ 3 triệu hình ảnh M愃฀ng xuất ra một vectơ gồm 128 số đ愃฀i diện cho các đặc điểm quan trọng nhất của một khuôn mặt.

Trang 13

2.3.2 So sánh khuôn mặt

Bây giờ chúng ta đ( nhúng khuôn mặt cho mọi khuôn mặt trong dư฀ liệu của chúng ta được lưu trong một tệp, bước tiếp theo là nhận d愃฀ng một hình ảnh t mới không c漃Ā trong dư฀ liệu của chúng ta Vì vậy, bước đ3u tiên là tính toán việc nhúng khuôn mặt cho hình ảnh bằng cùng một m愃฀ng mà chúng ta đ( sử dụng ở trên và sau đ漃Ā so sánh cách nhúng này với ph3n còn l愃฀i của các l3n nhúng mà chúng ta c漃Ā Chúng tôi nhận ra khuôn mặt nếu cách nhúng được t愃฀o g3n hơn hoặc tương tự với bất kỳ cách nhúng nào khác như được hiển thị bên dưới:

Trang 14

Vì vậy, chúng tôi chuyển qua hai hình ảnh, một trong như฀ng hình ảnh là của Vladimir Putin và hình ảnh khác của George W Bush Trong ví dụ của chúng tôi ở trên, chúng tôi đ( không lưu các nhúng cho Putin nhưng chúng tôi lưu các nhúng của Bush Vì vậy, khi chúng tôi so sánh hai phương pháp nhúng mới với các phương pháp hiện c漃Ā, vectơ cho Bush g3n với các phương pháp nhúng khuôn mặt khác của Bush trong khi các phương pháp nhúng khuôn mặt của Putin không g3n với bất kỳ phương pháp nhúng nào khác và do đ漃Ā chương trình không thể nhận ra ông ấy.

3.1 Phát hiện khuôn mặt sử dụng bộ phân tầng Haar 3.1.1 Cài đặt các phụ thuộc

Trước tiên, chúng ta c3n cài đặt OpenCV vì n漃Ā cung cấp việc triển khai các tệp phân lo愃฀i t3ng Haar ở d愃฀ng XML bằng cách sử dụng hàm cv2.CascadeClassifier ().

3.1.2 Áp dụng các tầng Haar

Ngày đăng: 24/12/2023, 11:51

HÌNH ẢNH LIÊN QUAN

Hình dưới là một ví dụ: khung màu xanh là cửa sổ con, một đặc trưng Haar-like với kích thước và vị trí đặt như trong hình vẽ. - ĐỒ án NGÀNH điện tử đề tài NHẬN DIỆN KHUÔN mặt BẰNG PYTHON OPENCV
Hình d ưới là một ví dụ: khung màu xanh là cửa sổ con, một đặc trưng Haar-like với kích thước và vị trí đặt như trong hình vẽ (Trang 9)

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

TÀI LIỆU LIÊN QUAN

w