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

ĐỒ ÁN CƠ SỞ 3 Đề tài XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT

30 4 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 30
Dung lượng 2,62 MB

Cấu trúc

  • Chương 1:

  • GIỚI THIỆU

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

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

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

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

    • 1.5 Kết luận:

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

  • Chương 2:

  • CƠ SỞ LÝ THUYẾT

    • 2.1 Tổng quan về Adaboost:

    • 2.2 Tiếp cận Boosting:

    • 2.3 Adaboost:

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

    • 2.5 Cascade of Classifiers:

    • 2.6 Cascade of boosting classifiers:

  • Chương 3:

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

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

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

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

      • 3.3.1 Phân tích:

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

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

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

  • KẾT LUẬN

    • 2.Hướng phát triển:

Nội dung

Giới thiệu đề tài

Với sự tiến bộ không ngừng của khoa học và công nghệ, đặc biệt là trong lĩnh vực thiết bị xử lý ảnh hiện đại, lượng thông tin thu được từ hình ảnh ngày càng gia tăng và trở nên phổ biến trong đời sống Điều này đã thúc đẩy sự phát triển của lĩnh vực xử lý ảnh, với nhiều ứng dụng rộng rãi trong xã hội hiện đại Công nghệ xử lý ảnh không chỉ giúp chỉnh sửa và nâng cao chất lượng hình ảnh mà còn giải quyết các vấn đề phức tạp như nhận dạng chữ viết, dấu vân tay và đặ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) đang trở nên phổ biến tại các quốc gia phát triển, cho phép xác định hoặc xác nhận danh tính cá nhân từ hình ảnh kỹ thuật số hoặc video Phương pháp này dựa vào các điểm đặc trưng trên khuôn mặt để phân biệt giữa các cá nhân, ngay cả trong trường hợp có người giống nhau như song sinh Nhờ vào tính năng ưu việt này, công nghệ không chỉ được ứng dụng trong quản lý nhân sự mà còn được nhiều tổ chức trong lĩnh vực an ninh và bảo mật lựa chọn.

Dự án phần mềm ứng dụng nhận dạng khuôn mặt được xây dựng nhằm hỗ trợ quản lý, điểm danh và thống kê sinh viên trong việc ra vào trường học Bên cạnh đó, dự án còn giúp sinh viên tìm hiểu về thư viện OpenCV và các phương pháp xác định khuôn mặt (Face Detection).

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.

Hệ thống được xây dựng bằng ngôn ngữ Python kết hợp với thư viện OpenCV, cho phép lấy mẫu khuôn mặt qua camera Hệ thống này sẽ trích xuất và phân tích khuôn mặt từ hình ảnh hoặc mẫu đã lưu trữ, sau đó so sánh để xác định xem đối tượng có được phép hay không Lập trình được thực hiện thông qua công cụ IDLE Python.

Sau đó, tiến hành xây dựng cơ sở dữ liệu SQLite để thống kê và hiển thị dữ liệu, sử dụng các công cụ lập trình như Sublime Text, PHPStorm và Pycharm.

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ãi nhấ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 face recognition).

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.

Ư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 đặc trư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ạng củ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ễu như bị nghiêng, bị xoay hoặc ánh sáng thay đổi.

Phương pháp này gặp nhược điểm 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 khó khăn Thêm vào đó, các ảnh kích thước nhỏ cũng làm cho việc phân biệt các đặc tính trở nên khó khăn hơn.

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 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 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ặt không bị mất đi Trong không gian đó, các ảnh cùng một người sẽ được tập trung lạ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 đối tượ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ới cá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 Vector Machine.

Phương pháp phân loại theo chiều phân bố lớn nhất của vector có nhược điểm là không phải lúc nào cũng đạt hiệu quả tối ưu trong bài toán nhận dạng Đặc biệt, phương pháp này rất nhạy cảm với nhiễu, điều này có thể ảnh hưởng đến độ chính xác của kết quả.

Kết luận

Nghiên cứu cuối cùng đã phát triển một phần mềm thực tiễn yêu cầu độ chính xác cao, khả năng thích ứng linh hoạt và hoạt động ổn định trong môi trường thực tế, đặc biệt là với các camera có độ phân giải thấp Do đó, nhóm nghiên cứu đã quyết định áp dụng phương pháp 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.

Cấu trúc đồ án

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

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

Tổng quan về Adaboost

Học theo Adaboost là một phương pháp trong tiếp cận dựa trên diện mạo, kết hợp với cascade của Viola và AdaBoost để nhận diện khuôn mặt người Phương pháp này sử dụng các đặc trưng dạng Haar wavelet-like, mang lại tốc độ xử lý nhanh và tỷ lệ chính xác trên 80% đối với ảnh xám.

Thuật toán Adaboost là một trong những phương pháp nổi bật trong lĩnh vực học máy, được phát triển từ thuật toán boosting Trước khi đi sâu vào Adaboost, chúng ta cần hiểu rõ về khái niệm và nguyên lý hoạt động của thuật toán boosting.

Tiếp cận Boosting

Boosting có nguồn gốc từ câu hỏi của Kearns vào năm 1989 về khả năng tạo ra một bộ phân loại mạnh từ nhiều bộ phân loại yếu Năm 1990, Robert Schapire và Simard đã thử nghiệm phương pháp này trong các ứng dụng nhận dạng ký tự quang học (OCR) Freund tiếp tục nghiên cứu và đến năm 1995, ông cùng với Schapire đã phát triển boosting thành thuật toán adaboost.

Nguyên lý cơ bản của boosting là kết hợp các weak classifiers thành một strong classifier, trong đó weak classifiers là những bộ phân loại đơn giản có độ chính xác trên 50% Để hiểu cách hoạt động của thuật toán boosting, chúng ta xem xét bài toán phân loại 2 lớp với tập huấn luyện D gồm n mẫu Đầu tiên, chọn ngẫu nhiên n1 mẫu từ D để tạo tập D1, từ đó xây dựng weak classifier đầu tiên C1 Tiếp theo, xây dựng tập D2 để huấn luyện bộ phân loại C2, trong đó một nửa mẫu của D2 được phân loại đúng bởi C1 và nửa còn lại bị phân loại sai Qua đó, D2 cung cấp thông tin bổ sung cho C1, và chúng ta tiến hành huấn luyện C2 từ D2.

Chúng ta sẽ xây dựng tập D3 từ những mẫu không được phân loại tốt bởi sự kết hợp giữa C1 và C2, tức là những mẫu còn lại trong D mà C1 và C2 cho kết quả khác nhau D3 sẽ bao gồm các mẫu mà C1 và C2 hoạt động không hiệu quả Sau đó, chúng ta sẽ huấn luyện bộ phân loại C3 từ D3, tạo ra một bộ phân loại mạnh mẽ với sự kết hợp của C1, C2 và C3 Khi nhận dạng một mẫu X, kết quả phân loại sẽ dựa vào sự thỏa thuận của ba bộ C1, C2 và C3: nếu cả C1 và C2 phân loại X vào cùng một lớp, lớp đó sẽ là kết quả phân loại của X; nếu không, C3 sẽ quyết định lớp mà X thuộc về.

Adaboost

AdaBoost (Adaptive Boost) là một bộ phân loại mạnh phi tuyến được phát triển bởi Freund và Schapire vào năm 1995, hoạt động dựa trên phương pháp boosting Thuật toán này kết hợp các weak classifier dựa trên đặc trưng Haar-Line để tạo ra một strong classifier Để kết hợp các bộ phân loại yếu, AdaBoost sử dụng trọng số để đánh dấu các mẫu khó nhận dạng Trong quá trình huấn luyện, mỗi khi một weak classifier được xây dựng, trọng số sẽ được cập nhật: tăng trọng số cho các mẫu bị nhận dạng sai và giảm cho các mẫu nhận dạng đúng Nhờ đó, các weak classifier sau có thể tập trung vào những mẫu mà các bộ phân loại trước chưa xử lý tốt, từ đó kết hợp chúng dựa trên hiệu suất để hình thành một strong 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 bài viết này, x đại diện cho mẫu hay cửa sổ con cần phân tích, được biểu diễn dưới dạng vector đặc trưng x = (x1, x2, …, xn) Ngưỡng θk được sử dụng để xác định mức độ phù hợp của mẫu, trong khi fk là giá trị của đặc trưng Haar-like Cuối cùng, pk là hệ số quyết định chiều trong bất phương trình, giúp tối ưu hóa quá trình phân tích.

Công thức này cho thấy rằng nếu giá trị đặc trưng của mẫu do hàm đánh giá của bộ phân loại đạt ngưỡng nhất định, thì mẫu đó được xác định là khuôn mặt (đối tượng cần nhận dạng); nếu không, mẫu sẽ được coi là background (không phải đối tượng).

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 (ứng với object và y = 1) và l là số mẫu sai (ứng với background và y = -1).

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

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

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

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

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

Quá trình huấn luyện bộ phân loại diễn ra qua một vòng lặp, trong đó thuật toán lựa chọn weak classifier ht với lỗi εj.t nhỏ nhất để bổ sung vào strong classifier Mỗi khi một bộ phân loại ht được chọn, Adaboost sẽ tính giá trị αt nhằm giảm thiểu lỗi εj.t, từ đó tối ưu hóa hiệu suất của bộ phân loại.

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

Tất cả các bộ phân loại ht đều ảnh hưởng đến kết quả của bộ phân loại H(x), và mức độ ảnh hưởng này phụ thuộc vào giá trị αt tương ứng Càng lớn giá trị αt ở thời điểm t, thì vai trò của ht trong H(x) càng trở nên quan trọng.

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

Giá trị αt theo công thức ở t tỉ lệ nghịch với εj.t, vì ht được chọn dựa trên tiêu chí đạt εj.t nhỏ nhất, điều này đảm bảo rằng giá trị αt theo công thức ở t sẽ đạt mức lớn nhất.

Sau khi tính toán giá trị αt tại thời điểm t, Adaboost cập nhật trọng số của các mẫu bằng cách tăng trọng số cho những mẫu bị phân loại sai và giảm trọng số cho những mẫu được phân loại đúng Nhờ đó, trọng số của mỗi mẫu sẽ phản ánh mức độ khó khăn trong việc nhận diện, giúp cho mô hình ht+1 ưu tiên học cách phân loại những mẫu khó này.

Vòng lặp xây dựng bộ phân loại mạnh sẽ dừng lại sau T lần lặp, nhưng trong thực tế, giá trị T ít được sử dụng do không có công thức đảm bảo tính tối ưu cho quá trình huấn luyện Thay vào đó, người ta thường áp dụng giá trị tối đa cho tỷ lệ nhận dạng sai (max false positive hay max false alarm) của các mẫu nền Tỷ lệ này không được phép vượt quá giá trị đã định Qua các lần lặp, tỷ lệ false alarm của bộ phân loại mạnh Ht(x) sẽ giảm dần, và vòng lặp sẽ kết thúc khi tỷ lệ này thấp hơn giá trị max false alarm.

Các đặc trưng Haar-Like

Viola và Jones sử dụng bốn đặc trưng cơ bản để nhận diện khuôn mặt con người Mỗi đặc trưng Haar-like được tạo thành từ sự kết hợp của hai hoặc ba hình chữ nhật "trắng" và "đen".

"đen" như trong hình sau:

Để xác định mặt người, bốn đặc trưng Haar-like cơ bản được mở rộng và phân chia thành ba tập đặc trưng khác nhau.

1 Đặc trưng cạnh (edge features):

2 Đặc trưng đường (line features):

3 Đặc trưng xung quanh tâm (center-surround features):

Các đặc trưng Haar-like mang lại lợi ích lớn trong việc diễn đạt tri thức về các đối tượng trong ảnh, vì chúng thể hiện mối quan hệ giữa các bộ phận của đối tượng mà các điểm ảnh đơn lẻ không thể làm được Để tính toán giá trị của các đặc trưng này, ta thực hiện phép tính chênh lệch giữa tổng số pixel trong các vùng đen và tổng số pixel trong các vùng trắng, theo công thức: f(x) = Tổng vùng đen (pixel) - Tổng vùng trắng (pixel).

Để tính giá trị của đặc trưng Haar-like, cần tổng hợp các vùng pixel trên ảnh, nhưng việc này đòi hỏi chi phí tính toán lớn cho tất cả các vị trí, không phù hợp với ứng dụng yêu cầu tốc độ thực thi cao Vì vậy, Viola và Jones đã giới thiệu khái niệm Integral Image để tối ưu hóa quá trình tính toán Lienhart sau đó đã phát triển thêm khái niệm Rotated Summed Area Table (RSAT) cho các đặc trưng xoay 45 độ Integral Image là một mảng 2 chiều có kích thước tương ứng với ảnh, với mỗi phần tử được tính bằng tổng của các pixel phía trên và bên trái, cho phép tính toán nhanh chóng thông qua phép cộng đơn giản.

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

Sau khi tính toán được ảnh tích phân, việc tính tổng giá trị điểm ảnh trong một vùng cụ thể trên ảnh trở nên đơn giản Chẳng hạn, để tính tổng điểm ảnh của vùng D như được minh họa trong Hình 4, ta có thể áp dụng công thức dễ dàng.

Giá trị tại điểm P4 trên Integral Image được tính bằng A + B + C + D, trong khi giá trị tại P2 là A + B, tại P3 là A + C, và tại P1 là A Do đó, biểu thức tính D có thể được viết lại như sau:

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

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 45 0

Với các đặc trưng Haar-like xoay 45o Integral Image tại một điểm (x, y) được tính theo công thức:

Tổng pixel của một vùng bất kỳ trên ảnh vẫn được tính theo cách sau:

Tổng số điểm ảnh trong một hình chữ nhật, bao gồm cả trường hợp xoay 45 độ, có thể được tính nhanh chóng thông qua hình ảnh tích phân tại bốn đỉnh của nó.

Cascade of Classifiers

Trong quá trình huấn luyện, bộ phân loại phải xem xét tất cả các đặc trưng của mẫu trong tập training, điều này tiêu tốn nhiều thời gian Tuy nhiên, không phải tất cả các mẫu đều khó nhận dạng; có những mẫu background đơn giản dễ nhận ra, chỉ cần một hoặc vài đặc trưng để nhận diện Thế nhưng, các bộ phân loại thông thường vẫn xét tất cả các đặc trưng cho dù mẫu dễ hay khó, dẫn đến việc xử lý mất thời gian không cần thiết.

Cascade of Classifiers được thiết kế để rút ngắn thời gian xử lý và giảm thiểu false alarm cho bộ phân loại Cấu trúc cây cascade bao gồm nhiều stage, mỗi stage là một stage classifier Để một mẫu được phân loại, nó cần phải đi qua tất cả các stage của cây Các stage classifiers ở giai đoạn sau được huấn luyện từ những mẫu negative mà stage classifier trước đó nhận dạng sai, giúp chúng tập trung vào các mẫu background khó hơn Sự kết hợp này giúp giảm false alarm cho bộ phân loại Nhờ cấu trúc này, những mẫu background dễ nhận diện sẽ bị loại bỏ ngay từ những stage đầu tiên, tối ưu hóa khả năng xử lý với độ phức tạp gia tăng của các mẫu đầu vào.

F : là giá trị false alarm và d là độ chính xác của weak classifier ở mỗi stage

F target : Giá trị max false alarm

P, N : là số lượng mẫu positive và negative

Pi, Ni : là tập positive và negative cho bộ phân lớp ở tầng thứ i

Fi, Di : Giá trị false alarm và độ chính xác của cascade trước khi đến tầng thứ i

 Huấn luyện bộ phân loại hi từ tập Pi và Ni với detection rate d và max false alarm f Thêm hi vào cây phân lớp

Dùng cây phân lớp hiện có để tính Fi : Duyệt qua N mẫu negative cho đến khi nào tìm đủ n mẫu mà cây phân lớp hiện có phân loại sai

N = { số mẫu sai ở stage hiện tại phân loại sai }

P = { số mẫu positive mà stage hiện tại phân loại dúng }

Minh họa thuật toán Cascade training:

Hình 6 minh họa quá trình huấn luyện của một cascade với N giai đoạn Tại mỗi giai đoạn, các bộ phân loại yếu sẽ được đào tạo để đạt được độ chính xác h và tỷ lệ báo động giả f.

Cascade of boosting classifiers

Cascade of boosting classifiers là mô hình cascade of classifiers với mỗi classifier được xây dựng bằng Adaboost sử dụng haar-like.

Hình 7: Cascade of boosting classifiers

Viola và Jones đã áp dụng thành công cascade of boosting classifiers trong nhận dạng khuôn mặt, sử dụng tập huấn luyện gồm 4196 hình ảnh khuôn mặt và 9500 hình nền, với ảnh grayscale kích thước 24x24 Họ xây dựng cấu trúc cascade tree gồm 38 stage và 6060 đặc trưng haar-like Kết quả thực nghiệm cho thấy classifier ở stage đầu tiên loại bỏ khoảng 50% mẫu nền với độ chính xác 100%, trong khi stage thứ hai loại bỏ 80% mẫu nền cũng với độ chính xác 100% Hệ thống của họ được so sánh với các hệ thống khác như Rowley-Baluja-Kanade và Schneiderman-Kanade, cho thấy tỉ lệ nhận dạng tương đương nhưng nhanh hơn 15 lần so với Rowley-Baluja-Kanade và nhanh hơn 600 lần so với Schneiderman-Kanade.

Cấu trúc cascade cho phép nhận dạng nhanh chóng nhờ khả năng loại bỏ các mẫu background đơn giản, thường chiếm số lượng lớn hơn so với các mẫu chứa đối tượng cần nhận dạng Hệ thống của Viola và Jones đạt độ chính xác cao nhờ thuật toán cascade training, với các bộ nhận dạng được huấn luyện bằng AdaBoost và sử dụng đặc trưng Haar-like để mô tả thông tin đối tượng hiệu quả Thêm vào đó, phương pháp Integral Image giúp tính toán nhanh các đặc trưng mà không làm giảm tốc độ nhận dạng Do đó, mô hình Cascade of Boosted Classifiers là một giải pháp tối ưu cho việc nhận dạng khuôn mặt, kết hợp giữa tốc độ và độ chính xác.

Sơ lược về OpenCV

OpenCV là thư viện mã nguồn mở của Intel, chuyên về thị giác máy tính, cung cấp hàng trăm hàm và lớp dựa trên các thuật toán xử lý ảnh và computer vision bằng ngôn ngữ C/C++ Thư viện này thể hiện sự đa dạng của trí tuệ nhân tạo và được ứng dụng rộng rãi trong các bài toán như nhận dạng mặt, dò tìm và phát hiện mặt, cũng như lọc Kalman.

Cấu trúc tổng quan của OpenCV bao gồm 5 phần chính 4 trong 5 phần đó được chỉ ra trong hình vẽ dưới

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

CV bao gồm các thư viện cơ bản cho xử lý ảnh và thuật toán thị giác máy tính, với ML cung cấp các thuật toán học máy cho phân cụm và phân loại thống kê HighGUI hỗ trợ các chức năng vào ra và quản lý file ảnh, video, trong khi Cxcore chứa các cấu trúc dữ liệu cơ bản như XML và cây dữ liệu Cuối cùng, CvAux bao gồm các thư viện phục vụ cho phát hiện, theo dõi và nhận dạng đối tượng như khuôn mặt và mắt.

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

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

Hệ thống xử lý ảnh sẽ chia ảnh gốc thành nhiều vùng nhỏ để tính toán các đặc trưng Sau đó, chương trình xác định các vùng khả quan có thể là khuôn mặt Cuối cùng, các ứng viên này được đưa vào bộ phân loại để xác định khuôn mặt người.

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

Chương trình chủ yếu được thiết kế để phát hiện khuôn mặt từ ảnh, video hoặc webcam, sau đó lưu trữ khuôn mặt vào cơ sở dữ liệu để phục vụ cho các mục đích phát triển trong tương lai.

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

Như vậy các chức năng chương trình bao gồm:

 Kết nối đến webcam, đọc các file ảnh và video.

 Phát hiện các nhiều khuôn mặt có trong bức ảnh, video, webcam

 Lưu ảnh khuôn mặt được phát hiện vào cơ sở dữ liệu.

 Nhận diện khuôn mặt và thay đổi trạng thái điểm danh.

Chương trình được chia thành ba phần chính: phần xử lý đầu vào, phần phát hiện khuôn mặt và phần xử lý đầu ra Phần xử lý đầu vào đảm nhận việc tiếp nhận và chuẩn bị dữ liệu cần thiết cho các bước tiếp theo trong quá trình xử lý.

Lấy các đặc trưng và huấn luyện nhận dạng

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

Chương trình nhận đầu vào dưới dạng file ảnh, video hoặc webcam, nhưng việc phát hiện khuôn mặt chỉ thực hiện trên các bức ảnh tĩnh Do đó, khi sử dụng webcam hoặc file video, cần chuyển đổi thành các ảnh tĩnh để xử lý Sau khi có ảnh đầu vào, quá trình tiếp theo là phát hiện các khuôn mặt có trong ảnh.

Hệ thống sẽ xử lý nghiệp vụ chính bằng cách phát hiện khuôn mặt trong ảnh được truyền vào Sau khi nhận ảnh, chức năng này sẽ hoạt động để xác định các khuôn mặt có trong hình ảnh.

Phát hiện khuôn mặt nhanh chóng được thực hiện nhờ thuật toán adaboost thông qua hàm cvHaarDetectObjects() trong OpenCV Hàm này sử dụng các đặc trưng haar-like để phát hiện đối tượng, dựa vào một bộ Cascade đã được huấn luyện trước đó và được truyền vào cho hàm Bộ Cascade được cấu trúc theo dạng cây (tree-node), giúp tối ưu hóa quá trình phát hiện.

Việc huấn luyện bộ Cascade được thực hiện từ dữ liệu thu thập để nhận dạng, chẳng hạn như ảnh khuôn mặt của người A ở nhiều tư thế và góc chụp khác nhau Sau khi thu thập, bộ nhận dạng sẽ học theo thuật toán Cascade training Khi quá trình huấn luyện hoàn tất, hệ thống sẽ lưu lại thông tin trong file có đuôi yml, chứa các đặc điểm và tư thế của người dùng, giúp nâng cao khả năng nhận diện.

Khuôn mặt sau khi được phát hiện sẽ được tách ra khỏi bức ảnh và lưu dưới dạng bitmap với định dạng *.jpg Đối với file ảnh đầu vào, dữ liệu đầu ra cũng là file ảnh nhưng có ghi lại vị trí khuôn mặt đã được phát hiện, đồng thời tách riêng khuôn mặt và lưu vào cơ sở dữ liệu Đối với file video hoặc webcam, các khuôn mặt sẽ được tách ra và lưu thành các file ảnh riêng biệt, được đánh số theo tên file video Ví dụ, nếu file video là test.avi, các ảnh khuôn mặt phát hiện được sẽ được đánh số như sau: test.avi_1.jpg, test.avi_2.jpg, v.v.

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

Lưu trữ cơ sở dữ liệu là yếu tố then chốt trong ứng dụng, ảnh hưởng lớn đến tốc độ hoạt động của chương trình Tôi đã chọn hệ quản trị cơ sở dữ liệu SQL Lite để xây dựng và quản lý cơ sở dữ liệu, nhờ vào khả năng đáp ứng các yêu cầu phức tạp của doanh nghiệp, đặc biệt là ngân hàng và kho bạc Mặc dù chương trình hiện tại chỉ dừng lại ở việc phát hiện khuôn mặt trong ảnh, nhưng việc tạo dựng một cơ sở dữ liệu chất lượng sẽ là nền tảng vững chắc cho sự phát triển của các ứng dụng lớn hơn trong tương lai.

Hệ thống cần lưu trữ các dữ liệu: Ảnh khuôn mặt sau khi đã được phát hiện trên webcam.

Như vậy các thông tin trong cơ sở dữ liệu bao gồm 2 thực thể sau:

 ID: Mã ảnh, kiểu Integer, là khóa chính và có ràng buộc là tự tăng.

 Name: Tên của sinh viên, kiểu dữ liệu text (255).

Ngày đăng: 01/03/2022, 01:10

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] G. Yang and T. S. Huang, “Human Face Detection in Complex Background”, Pattern Recognition, vol. 27, no. 1, pp. 53-63, 1994 Sách, tạp chí
Tiêu đề: Human Face Detection in Complex Background
[2] A. Lanitis, C.J. Taylor, and T.F. Cootes, “An Automatic Face Identification System Using lexible Appearance Models”, Image and Vision Computing, vol.13, no. 5, pp. 393-401, 1995 Sách, tạp chí
Tiêu đề: An Automatic Face IdentificationSystem Using lexible Appearance Models
[4] A. Yuille, P. Hallinan, and D. Cohen, “Feature Extraction from Faces Using eformable Templates”, Int’l J. Computer Vision, vol. 8, no. 2, pp. 99-111, 1992 Sách, tạp chí
Tiêu đề: Feature Extraction from Faces Usingeformable Templates
[5] D.G. Kendall, “Shape Manifolds, Procrustean Metrics, and Complex Projective Shapes”, Bull. London Math. Soc., vol. 16, pp. 81-121, 1984 Sách, tạp chí
Tiêu đề: Shape Manifolds, Procrustean Metrics, and ComplexProjective Shapes
[6] E. Osuna, R. Freund, and F. Girosi, “Training Support Vector Machines: An Application to Face Detection” Proc. IEEE Conf. Computer Vision and Pattern Recognition, pp. 130-136, 1997 Sách, tạp chí
Tiêu đề: Training Support Vector Machines: AnApplication to Face Detection
[7] Fuzhen Huang and Jianbo Su, “Multiple Face Contour Detection Using adaptive Flows”, Sinobiometrics 2004, LNCS 3338, pp. 137-143, Springer-Verlag Berlin eidelberg, 2004 Sách, tạp chí
Tiêu đề: Multiple Face Contour Detection Usingadaptive Flows
[8] H.P. Graf, T. Chen, E. Petajan, and E. Cosatto, “Locating Faces and Facial Parts”, Proc. First Int’l Workshop Automatic Face and Gesture Recognition, pp.41-46, 1995 Sách, tạp chí
Tiêu đề: Locating Faces and FacialParts
[9] J. Canny, “A Computational Approach to Edge Detection”, IEEE Trans.Pattern Analysis and Machine Intelligence, vol. 8, no. 6, pp. 679-698, June 1986 Sách, tạp chí
Tiêu đề: A Computational Approach to Edge Detection
[10] J. Sobottka and I. Pitas, “Segmentation and Tracking of Faces in Color Images”, Proc. Second Int’l Conf. Automatic Face and Gesture Recognition, pp.236-241, 1996.s Sách, tạp chí
Tiêu đề: Segmentation and Tracking of Faces in ColorImages

HÌNH ẢNH LIÊN QUAN

Hình 1: Boosting 2.3 Adaboost: - ĐỒ ÁN CƠ SỞ 3 Đề tài XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT
Hình 1 Boosting 2.3 Adaboost: (Trang 12)
Sơ đồ khối: - ĐỒ ÁN CƠ SỞ 3 Đề tài XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT
Sơ đồ kh ối: (Trang 14)
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 - ĐỒ ÁN CƠ SỞ 3 Đề tài XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT
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 (Trang 17)
Hình 3: Cách tính Integral Image của ảnh - ĐỒ ÁN CƠ SỞ 3 Đề tài XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT
Hình 3 Cách tính Integral Image của ảnh (Trang 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 - ĐỒ ÁN CƠ SỞ 3 Đề tài XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT
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 (Trang 18)
Hình 6 minh họa sự huấn luyện của một cascade gồm   N  stages. Ở mỗi - ĐỒ ÁN CƠ SỞ 3 Đề tài XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT
Hình 6 minh họa sự huấn luyện của một cascade gồm N stages. Ở mỗi (Trang 20)
Hình 6: Cascade of classifiers - ĐỒ ÁN CƠ SỞ 3 Đề tài XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT
Hình 6 Cascade of classifiers (Trang 20)
Hình 8: Cấu trúc cơ bản của OpenCV - ĐỒ ÁN CƠ SỞ 3 Đề tài XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT
Hình 8 Cấu trúc cơ bản của OpenCV (Trang 22)
Hình 9: Tổng quan về hệ thống phát hiện mặt người trong ảnh - ĐỒ ÁN CƠ SỞ 3 Đề tài XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT
Hình 9 Tổng quan về hệ thống phát hiện mặt người trong ảnh (Trang 23)
Hình 11: Sơ đồ hệ thống - ĐỒ ÁN CƠ SỞ 3 Đề tài XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT
Hình 11 Sơ đồ hệ thống (Trang 24)
Hình 10: Biểu đồ ngữ cảnh của hệ thống - ĐỒ ÁN CƠ SỞ 3 Đề tài XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT
Hình 10 Biểu đồ ngữ cảnh của hệ thống (Trang 24)
Hình 12: Cơ sở dữ liệu 3.4 Giao diện chương trình: - ĐỒ ÁN CƠ SỞ 3 Đề tài XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT
Hình 12 Cơ sở dữ liệu 3.4 Giao diện chương trình: (Trang 26)
Hình 13: Giao diện tạo mới người dùng - ĐỒ ÁN CƠ SỞ 3 Đề tài XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT
Hình 13 Giao diện tạo mới người dùng (Trang 26)
Hình 15: File hình ảnh được tạo ra - ĐỒ ÁN CƠ SỞ 3 Đề tài XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT
Hình 15 File hình ảnh được tạo ra (Trang 27)
Hình 14: Giao diện khi lây dữ liệu khuôn mặt - ĐỒ ÁN CƠ SỞ 3 Đề tài XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT
Hình 14 Giao diện khi lây dữ liệu khuôn mặt (Trang 27)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w