1. Trang chủ
  2. » Thể loại khác

BÁO CÁO ĐỒ ÁN CƠ SỞ 4 ĐỀ TÀI:NHẬN DIỆN KHUÔN MẶT GIẢNG VIÊN HƯỚNG DẪN:Ths LÊ THỊ BÍCH TRA

29 73 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

Định dạng
Số trang 29
Dung lượng 3,07 MB

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

Nội dung

Đây là một phương pháp xác minh độc đáo khi thiết bị sẽ dựa vào những điểm khácnhau tiêu biểu nhất trên khuôn mặt của một người để tiến hành phân biệt giữangười này với người khác.. Do v

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ

TRUYỀN THÔNG VIỆT-HÀN

ĐỀ TÀI:NHẬN DIỆN KHUÔN MẶT

GIẢNG VIÊN HƯỚNG DẪN:Ths LÊ THỊ BÍCH TRA SINH VIÊN THỰC HIỆN:NGUYỄN PHAN THÀNH CÔNG

Đà Nẵng, tháng 12 năm 2020

Trang 2

MỞ ĐẦU

Hiện nay, cùng với sự phát triển của xã hội, vấn đề án ninh bảo mậtđang được yêu cầu khắt khe ở mọi nơi trên thế giới Các hệ thống nhận dạngcon người được ra đời với độ tin cậy ngày càng cao Một trong các bài toánnhận dạng con người rất được quan tâm hiện nay là nhận dạng khuôn mặt Vìnhận dạng khuôn mặt là cách cơ bản và dễ dàng nhất mà con người dùng đểphân biệt nhau Bên cạnh đó, ngày nay việc thu thập, xử lý thông tin qua ảnh đểphân biệt đối tượng đang được quan tâm và ứng dụng rộng rãi Với phươngpháp này, chúng ta có thể thu nhận được nhiều thông từ đối tượng mà khôngcần tác nhiều đến đối tượng nghiên cứu

Một trong những bài toán được nhiều người quan tâm nhất của lĩnh vực

xử lý ảnh hiện nay đó là nhận dạng khuôn mặt (Face Recognition) Như chúng

ta đã biết, khuôn mặt đóng vai trò quan trọng trong quá trình giao tiếp giữangười với người, nó mang một lượng thông tin giàu có, chẳng hạn như từkhuôn mặt chúng ta có thể xác định giới tính, tuổi tác, chủng tộc, trạng tháicảm xúc, đặc biệt là xác định mối quan hệ với đối tượng (có quen biết haykhông) Do đó, bài toán nhận dạng khuôn mặt đóng vai trò quan trọng trongnhiều lĩnh vực đời sống hằng ngày của con người như các hệ thống giám sát,quản lý vào ra, tìm kiếm thông tin một người nổi tiếng, …đặc biệt là an ninh,bảo mật Có rất nhiều phương pháp nhận dạng khuôn mặt để nâng cao hiệu suấttuy nhiên dù ít hay nhiều những phương pháp này đang vấp phải những thửthách về độ sáng, hướng nghiêng, kích thước ảnh, hay ảnh hưởng của tham sốmôi trường

Trong khuôn khổ đồ án này, chúng em sẽ tiếp tục giải quyết bài toánnhận dạng offline Trong đó đối tượng được thu thập thành các file dữ liệu vàđược chuyển về trung tâm Tại đó, các số liệu sẽ được phân tích xử lý Chúng

em sẽ lấy đó làm nền tảng để có thể xây dựng các ứng dụng lớn hơn sau này

Trang 3

LỜI CẢM ƠN

Để thực hiện và hoàn thành tốt đồ án này, em đã nhận được sự giúp đỡ vàhướng dẫn rất tận tình của các thầy cô thuộc Khoa Công nghệ Thông tin và Truyềnthông – Đại học Đà Nẵng Em xin cảm ơn các thầy cô thuộc bộ môn chuyên ngành đãcung cấp cho chúng em các thông tin, kiến thức vô cùng quý báu và cần thiết trongsuốt thời gian quá để em có thể thực hiện và hoàn thành đồ án của mình Đặc biệt emxin chân thành cảm ơn cô Lê Thị Bích Tra người đã trực tiếp hướng dẫn chúng emtrong thời gian thực hiện đồ án này

Cuối cùng, xin chân thành cảm ơn các bạn trong ngành công nghệ thông tin đãủng hộ, giúp đỡ, chia sẻ kiến thức, kinh nghiệm và tài liệu có được giúp chúng tôitrong quá trình nghiên cứu và thực hiện đề tài

Do giới hạn về mặt thời gian và kiến thức cũng như kinh nghiệm thực tiễn nên

đề tài không tránh khỏi những sai sót Em rất mong nhận được sự thông cảm của quýthầy cô và mong đón nhận những góp ý của thầy cô và các bạn

Em xin chân thành cảm ơn!

Trang 4

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Đà Nẵng, ngày 23 tháng 07 năm 2020

Giảng viên hướng dẫn

Lê Thị Bích Tra

Trang 5

MỤC LỤC

Chương 1: 7

GIỚI THIỆU VÀ NGHIÊN CỨU TỔNG QUAN 7

1.1 Giới thiệu đề tài: 7

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

1.3 Các phương pháp nghiên cứu: 8

1.4 Ưu điểm, nhược điểm của các phương pháp: 8

1.5 Kết luận: 9

1.6 Cấu trúc đồ án: 10

Chương 2 : 11

CƠ SỞ LÝ THUYẾT 11

2.1 Tổng quan về Adaboost: 11

2.2 Tiếp cận Boosting: 11

2.3 Adaboost: 12

2.4 Các đặc trưng Haar-Like: 16

2.5 Cascade of Classifiers: 19

2.6 Cascade of boosting classifiers: 21

Chương 3: 22

PHÂN TÍCH VÀ XÂY DỰNG HỆ THỐNG 22

3.1 Sơ lược về OpenCV: 22

3.2 Tổng quan về một hệ thống phát hiện mặt người trong ảnh: 23

3.3 Phân tích – thiết kế hệ thống phát hiện mặt người: 24

3.3.1 Phân tích: 24

3.3.2 Thiết kế hệ thống: 25

3.3.3 Thiết kế cơ sở dữ liệu: 26

3.4 Giao diện chương trình: 27

KẾT LUẬN 29

DANH MỤC TÀI LIỆU THAM KHẢO 30

Trang 6

MỤC LỤC HÌNH ẢNH

Hình 1: Boosting 12

Hình 2: Đặt trưng Haar-like cơ bản 15

Hình 3: Cách tính Integral Image của ảnh 17

Hình 4: Ví dụ cách tính nhanh tổng các điểm ảnh của vùng D trên ảnh 17

Hình 5: Ví dụ cách tính nhanh tổng điểm ảnh của vùng D trên ảnh với các đặc

trưng xoay 450 18

Hình 6: Cascade of classifiers 20

Hình 7: Cascade of boosting classifiers 20

Hình 8: Cấu trúc cơ bản của OpenCV 22

Hình 9: Tổng quan về hệ thống phát hiện mặt người trong ảnh 23

Hình 10: Biểu đồ ngữ cảnh của hệ thống 24

Hình 11: Sơ đồ hệ thống 24

Hình 12: Cơ sở dữ liệu 26

Hình 13: Giao diện tạo mới người dùng 26

Hình 14: Giao diện lấy dữ liệu 27

Hình 15: File dữ liệu lấy được 27

Hình 16: Giao diện training 28

Hình 17: Giao diện nhận diện người dùng 28

Trang 7

Chương 1:

GIỚI THIỆU

1.1 Giới thiệu đề tài:

Với sự phát triển không ngừng của khoa học và công nghệ, đặc biệt là cácthiết bị được hỗ trợ công nghệ xử lý ảnh ngày càng hiện đại và được sử dụng phổbiến trong đời sống con người đã làm cho lượng thông tin thu được bằng hình ảnhngày càng tăng và phổ biến Theo đó, lĩnh vực xử lý ảnh cũng được chú trọngphát triển, ứng dụng rộng rãi trong đời sống xã hội hiện đại Không chỉ dừng lại ởviệc chỉnh sửa, tăng chất lượng hình ảnh mà với công nghệ xử lý ảnh hiện naychúng ta có thể giải quyết các bài toán nhận dạng chữ viết, nhận dạng dấu vân tay,đặc biệt là nhận dạng khuôn mặt…

Công nghệ nhân diện khuôn mặt (Facial Recognition Technology) hiện làmột công nghệ đang được sử dụng khá phổ biến tại các quốc gia phát triển Côngnghệ này có khả năng xác định hoặc xác nhận một người từ hình ảnh kỹ thuật sốđược lấy mẫu trước đó hoặc từ một khung hình trong một nguồn video khác Đây

là một phương pháp xác minh độc đáo khi thiết bị sẽ dựa vào những điểm khácnhau tiêu biểu nhất trên khuôn mặt của một người để tiến hành phân biệt giữangười này với người khác Do vậy đối với các trường hợp như song sinh thì ngườidùng có thể yên tâm rằng máy vẫn sẽ phát hiện ra.Chính vì đặc điểm này thì ngoàiđược ứng dụng trong việc quản lý nhân sự ra thì nó còn là sự lựa chọn của rấtnhiều đơn vị hoạt động trong lĩnh vực an ninh, bảo mật

Xây dựng một dự án phần mềm ứng dụng nhận dạng khuôn mặt nhằm giúpviệc quản lý, điểm danh và thống kê theo từng yêu cầu cho việc điểm danh sinhviên đi học, ra vào nhà trường Ngoài ra, giúp sinh viên tìm hiểu về thư việnOpenCV, tìm hiểu các phương pháp xác định khuôn mặt (Face Detection)

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

- Trước tiên ta phải nêu bài toán, phân tích và thiết kế hệ thống nhận dạng

- Xây dựng hệ thống sử dụng ngôn ngữ Python và thư viện OpenCV Hệthống lấy mẫu khuôn mặt bằng camera, sau đó hệ thống trích xuất, phân tíchkhuôn mặt từ hình ảnh hoặc các mẫu được lấy trước đó để so sánh và hệ thống

Trang 8

đưa ra kết luận rằng có phải đối tượng được cho phép hay không Sử dụng công

cụ IDLE Python để lập trình

- Sau đó xây dựng cơ sở dữ liệu SQLite để thống kê, hiển thị dữ liệu, sửdụng một số công cụ để lập trình như Sublime Text, PHPStorm, Pycharm …

1.3 Các phương pháp nghiên cứu:

Hiện nay có hai phương pháp nhận diện khuôn mặt được sử dụng rộng rãinhất là:

- Nhận dạng dựa trên các đặc trưng của các phần 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 facerecognition)

Ngoài ra còn có một số phương pháp về loại nhận dạng sử dụng mô hình

về khuôn mặt:

- Nhận dạng 2D: Elastics Bunch Graph, Active Appearance Model

- Nhận dạng 3D: 3D Morphable Model

1.4 Ưu điểm, nhược điểm của các phương pháp:

1 Nhận dạng dựa trên các đặc trưng của các phần tử trên khuôn mặt:

Đây là phương pháp nhận dạng khuôn mặt dựa trên viện xác định các đặctrưng hình học của các chi tiết trên một khuôn mặt (vị trí, diện tích , hình dạngcủa mắt, mũi, miệng, ) và mối quan hệ giữa chúng (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ó gần 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 điịnh đặc tính 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ễunhư bị nghiêng, bị xoay hoặc ánh sáng thay đổi

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ệcxác định mối quan hệ giữa các đặc tính sẽ khó phân biệt Mặt khác, với các ảnhkích thước bé thì các đặc tính sẽ khó phân biệt

2 Nhận dạng dựa trên xét tổng thể khuôn mặt:

Đây là phương pháp xem mỗi ảnh có kích thước RxC là một vector trongkhô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

Trang 9

chi khi biểu diễn trong không gian có các đặc điểm chính của một khuôn mặtkhông bị mất đi Trong không gian đó, các ảnh cùng một người sẽ được tập trunglại một nhóm gần nhau và cách xa các nhóm khác

Ưu điểm của phương pháp này là tìm được các đặc tính tiêu biểu của đốitượng cần nhận dạng mà không cần phải xác định các thành phần và mối quan hệgiữa các thành phần đó Phương pháp sử dụng thuật toán có thể thực hiện tốt vớicác ảnh có độ phân giải cao, thu gọn ảnh thành một ảnh có kích thước nhỏ hơn

Có thể kết hợp các phương pháp khác như mạng Nơ-ron, Support VectorMachine

Nhược điểm của phương pháp này phân loại theo chiều phân bố lớn nhấtcủa vector Tuy nhiên, chiều phân bố lớn nhất không phải lúc nào cũng mang lạihiệu qua tốt nhất cho bài toán nhận dạng và đặc biệt là phương pháp này rất nhạyvới nhiễu

1.5 Kết luận:

Vì kết quả nghiên cứu cuối cùng là một phần mềm áp dụng vào thực tế vớiyêu cầu về độ chính xác cao, khả năng thích ứng linh hoạt, hoạt động ổn địnhtrong môi trường thực tế và hoạt động với các camera với độ phân giải thấp Nênnhóm quyết định chọn phương pháp nhận dạng dựa trên các đặc trưng của cácphần tử trên khuôn mặt (Feature based face recognition)

1.6 Cấu trúc đồ án:

- Nghiên cứu tổng quan

- Phân tích và thiết kế hệ thống

- Triển khai xây dựng

- Kết luận và hướng phát triển

Trang 10

Chương 2

CƠ SỞ LÝ THUYẾT2.1 Tổng quan về Adaboost:

Học theo adaboost là một cách trong hướng tiếp cận dựa trên diện mạo,Viola và AdaBoost kết hợp cascade để xác định khuôn mặt người [1] với các đặctrưng dạng Haar wavelet-like Tốc độ xử lý khá nhanh và tỷ lệ chính xác hơn 80%trên ảnh xám

Thuật toán học máy Adaboost được phát triển thuật toán boosting, do đóchúng em sẽ trình bày sơ lược về thuật toán boosting trước khi trình bày vềadaboost

2.2 Tiếp cận Boosting:

Về lịch sử, boosting bắt nguồn từ câu nói nổi tiền được đưa ra bởi Kearnsvào đầu năm 1989: “Liệu có thể tạo ra một strong classifier từ một tệp các bộphân loại yếu?” Năm 1990, Robert Schapire và Simard kiểm nghiệm trong cácchương trình nhận dạng (OCR application) Freund đã tiếp tục các nghiên cứu củaSchapire và đến năm 1995 thì ông cùng với Schapire phát triển boosting thànhadaboost

Như vậy, nguyên lý cơ bản của boosting là sự kết hợp các weak classifiersthành một strong classifiers Trong đó, weak classifiers là các bộ phân loại đơngiản chỉ cần có độ chính xác trên 50% Bằng cách này, chúng ta nói bộ phân loại

đã được “boost”

Để hiểu cách hoạt động của thuật toán boosting, ta xét một bài toán phânloại 2 lớp (mẫu cần nhận dạng chỉ thuộc một trong hai lớp) với D là tập huấnluyện gồm có n mẫu Trước tiên, chúng ta sẽ chọn ngẫu nhiên ra n1 mẫu từ tập D(n1<n) để tạo tập D1 Sau đó, chúng ta sẽ xây dựng weak classifier đầu tiên C1 từtập D1 Tiếp theo, chúng ta xây dựng tập D2 để huấn luyện bộ phân loại C2 D2

sẽ được xây dựng sao cho một nửa số mẫu của nó được phân loại đúng bởi C1 vànửa còn lại bị phân loại sai bởi C1 Bằng cách này, D2 chứa đựng những thông tin

bổ sung cho C1 Bây giờ chúng ta sẽ xây huấn luyện C2 từ D2

Tiếp theo, chúng ta sẽ xây dựng tập D3 từ những mẫu không được phânloại tốt bởi sự kết hợp giữa C1 và C2: những mẫu còn lại trong D mà C1 và C2

Trang 11

cho kết quả khác nhau Như vậy, D3 sẽ gồm những mẫu mà C1 và C2 hoạt độngkhông hiệu quả Sau cùng, chúng ta sẽ huấn luyện bộ phân loại C3 từ D3 Bây giờchúng ta đã có một strong classifier: sự kết hợp C1, C2 và C3 Khi tiến hành nhậndạng một mẫu X, kết quả sẽ được quyết định bởi sự thỏa thuận của 3 bộ C1, C2

và C3: Nếu cả C1 và C2 đều phân X vào cùng một lớp thì lớp này chính là kết quảphân loại của X; ngược lại, nếu C1 và C2 phân X vào 2 lớp khác nhau, C3 sẽquyết định X thuộc về lớp nào

Hình 1: Boosting 2.3 Adaboost:

Như đã biết, AdaBoost (Adaptive Boost) là một bộ phân loại mạnh phituyến phức dựa trên hướng tiếp cận boosting được Freund và Schapire đưa ra vàonăm 1995 Adaboost hoạt động trên nguyên tắc kết hợp tuyến tính các weakclassifier dựa trên các đặc trưng Haar- Line để hình thành một strong classifier

Để có thể kết hợp các bộ phân loại yếu, adaboost sử dụng một trọng số(weight) để đánh dấu các mẫu khó nhận dạng Trong quá trình huấn luyện, cứ mỗiweak classifier được xây dựng, thuật toán sẽ tiến hành cập nhật lại trọng số để

Trang 12

chuẩn bị cho việc xây dựng weak classifier tiếp theo: tăng trọng số của các mẫu bịnhận dạng sai và giảm trọng số của các mẫu được nhận dạng đúng bởi weakclassifier vừa xây dựng Bằng cách này, các weak classifier sau có thể tập trungvào các mẫu mà các weak classifier trước đó chưa thực hiện tốt Sau cùng cácweak classifier sẽ được kết hợp tùy theo mức độ ‘tốt’ của chúng để tạo nên mộtstrong classifier.

Các weak classifiers hk(x) là các bộ phân loại yếu, được biểu diễn như sau:

Trong đó:

x: mẫu hay cửa sổ con cần xét (x = (x1, x2, …, xn) là vector đặc trưng củamẫu)

θk: ngưỡng

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

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

Công thức trên có thể diễn giải như sau: Nếu giá trị đặc trưng của mẫu chobởi hàm đánh giá của bộ phân loại vượt qua một ngưỡng cho trước thì mẫu đấy làkhuôn mặt (gọi là object: đối tượng cần nhận dạng), ngược lại thì mẫu làbackground (không phải là đối tượng)

Thuật toán adaBoost:

1 Cho một tập gồm n mẫu có đánh dấu (x1,y1), (x2,y2),… (xn,yn) với xk =(xk1, xk2, … , xkm) là vector đặc trưng và yk {-1, 1} là nhãn của mẫu (1ứng với object, -1 ứng với background)

2 Khởi tạo trọng số ban đầu cho tất cả các mẫu: với m là số mẫu đúng (ứngvới object và y = 1) và l là số mẫu sai (ứng với background và y = -1)

3 Xây dựng T weak classifiers

Lặp t = 1, …, T

 Với mỗi đặc trưng trong vector đặc trưng, xây dựng một weak classifier hj với ngưỡng θj và lỗi εj.j

Trang 13

 Chọn ra hj với εj.j nhỏ nhất, ta được ht:

 Cập nhật lại trọng số:

 Trong đó:

Zt: Hệ số dùng để đưa Wt+1 về đoạn [0,1] (normalization factor)

4 Strong classifier được xây dựng:

Sơ đồ khối:

Trang 14

Quá trình huấn luyện bộ phân loại được thực hiện bằng một vòng lặp mà ở mỗi bước lặp, thuật toán sẽ chọn ra weak classifier ht thực hiện việc phân loại với lỗi εj.t nhỏ nhất (do đó sẽ là bộ phân loại tốt nhất) để bổ sung vào strong classifier Mỗi khi chọn được 1 bộ phân loại ht, Adaboost sẽ tính giá trị αt theo công thức ở t theo công thức ở trên αt theo công thức ở t cũng được chọn trên nguyên tắc làm giảm thiểu giá trị lỗi εj.t

Hệ số αt theo công thức ở t nói lên mức độ quan trọng của ht:

 Trong công thức của bộ phân loại H(x):

Ta thấy tất cả các bộ phân loại ht đều có đóng góp vào kết quả của

bộ phân loại H(x), và mức độ đóng góp của chúng phụ thuộc vào giá trị αt theo công thức ở t tương ứng: ht với αt theo công thức ở t càng lớn thì nó càng có vài trò quan trọng trong H(x)

 Trong công thức tính αt theo công thức ở t:

Dễ thấy giá trị αt theo công thức ở t tỉ lệ nghịch với εj.t Bởi vì ht được chọn với tiêu chíđạt εj.t nhỏ nhất, do đó nó sẽ đảm bảo giá trị αt theo công thức ở t lớn nhất

Sau khi tính được giá trị αt theo công thức ở t, Adaboost tiến hành cập nhật lại trọng số củacác mẫu: tăng trọng số các mẫu mà ht phân loại sai, giảm trọng số các mẫu mà htphân loại đúng Bằng cách này, trọng số của mẫu phản ánh được mức độ khónhận dạng của mẫu đó và ht-+1 sẽ ưu tiên học cách phân loại những mẫu này

Vòng lặp xây dựng strong classifier sẽ dừng lại sau T lần lặp Trong thực tếcài đặt (thư viện OpenCV của Intel), người ta ít sử dụng giá trị T vì không cócông thức nào đảm bảo tính được giá trị T tối ưu cho quá trình huấn luyện Thayvào đó, người ta sử dụng giá trị max false positive hay max false alarm (tỉ lệ nhậndạng sai tối đa các mẫu background) Tỉ lệ này của bộ phân loại cần xây dựngkhông được phép vượt quá giá trị này Khi đó, qua các lần lặp, false alarm củastrong classifier Ht(x) xây dựng được (tại lần lặp thứ t) sẽ giảm dần, và vòng lặpkết thúc khi tỉ lệ này thấp hơn max false alarm

Ngày đăng: 20/04/2021, 22:18

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w