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

ĐỒ ÁN CỞ SỞ 5 ĐỀ TÀI: ỨNG DỤNG CHẤM CÔNG BẰNG NHẬN DIỆN KHUÔN MẶT.Giảng viên hướng dẫn: TS.PHAN THỊ LAN ANH

33 342 1

Đ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 33
Dung lượng 2,44 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:

    • 2.7 Sơ lược về OpenCV và python django:

  • Chương 3: PHÂN TÍCH VÀ XÂY DỰNG HỆ THỐNG

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

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

      • 3.2.1 Phân tích:

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

      • 3.2.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

Giới thiệu đề tài

Sự phát triển không ngừng của khoa học và công nghệ, đặc biệt là trong lĩnh vực xử lý ảnh, đã dẫn đến việc gia tăng thông tin hình ảnh trong đời sống con người Công nghệ hiện đại không chỉ cho phép chỉnh sửa và nâng cao chất lượng hình ảnh mà còn hỗ trợ nhận dạng chữ viết, dấu vân tay và đặc biệt là khuôn mặt, ứng dụng rộng rãi trong xã hội hiện đại.

Công nghệ nhận diện khuôn mặt hiện đang được sử dụng rộng rã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, giúp phân biệt giữa các cá nhân, ngay cả trong trường hợp giống nhau như song sinh Nhờ vào khả năng này, công nghệ không chỉ được ứng dụng trong quản lý nhân sự mà còn được ưa chuộng trong lĩnh vực an ninh và bảo mật.

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

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 và framework Django, nhằm thực hiện việc nhận diện khuôn mặt Hệ thống sử dụng camera để lấy mẫu khuôn mặt, sau đó trích xuất và phân tích hình ảnh để so sánh với các mẫu đã lưu trữ, từ đó đưa ra kết luận về việc xác định đối tượng có được phép hay không Quá trình lập trình được thực hiện thông qua công cụ IDLE Python.

Sau đó, 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 có nhược điểm là cài đặt thuật toán phức tạp, gây khó khăn trong việc xác định mối quan hệ giữa các đặc tính Thêm vào đó, đối với các ảnh có kích thước nhỏ, việc phân biệt các đặc tính cũng 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 mang lại hiệu quả tối ưu cho 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 hướng đến việc phát triển một phần mềm ứng dụng thực tế, yêu cầu độ chính xác cao và khả năng thích ứng linh hoạt Để đảm bảo hoạt động ổn định trong môi trường thực tế và tương thích với các camera có độ phân giải thấp, nhóm đã quyết định sử 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.

CƠ SỞ LÝ THUYẾT

Tổng quan về Adaboost

Học theo Adaboost là một phương pháp hiệu quả trong việc nhận diện khuôn mặt, kết hợp giữa Viola và Adaboost thông qua cascade Phương pháp này sử dụng các đặc trưng dạng Haar wavelet-like, cho phép xử lý nhanh chóng và đạt tỷ lệ chính xác trên 80% đối với ảnh xám.

Thuật toán Adaboost là một phương pháp học máy thuộc nhóm thuật toán boosting Trước khi đi sâu vào Adaboost, chúng ta sẽ khám phá khái niệm cơ bản về 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ừ một tập hợp các bộ phân loại yếu Vào năm 1990, Robert Schapire và Simard đã thử nghiệm kỹ thuật 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 của Schapire và vào năm 1995, ông cùng 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 mộ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 Tiếp theo, xây dựng weak classifier đầu tiên C1 từ D1 Sau đó, tạo tập D2 để huấn luyện bộ phân loại C2, trong đó một nửa số mẫu được phân loại đúng bởi C1 và nửa còn lại bị phân loại sai Điều này giúp D2 chứa thông tin bổ sung cho C1, từ đó 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ả sẽ dựa vào sự thỏa thuận của ba bộ phân loại: nếu 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 cuối cùng; 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, 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 diện 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 diện sai và giảm trọng số cho các mẫu được nhận diện đúng Nhờ đó, các weak classifier sau có thể tập trung vào những mẫu mà các weak classifier trước đó chưa xử lý tốt, và cuối cùng, chúng sẽ được kết hợp dựa trên hiệu quả của từng classifier để tạo ra 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, chúng ta sẽ xem xét mẫu hay cửa sổ con cần phân tích, được biểu diễn bằng vector đặc trưng x = (x1, x2, …, xn) Ngưỡng θk sẽ được sử dụng để xác định các giá trị của đặc trưng Haar-like fk, trong khi pk đóng vai trò là hệ số quyết định chiều của bất phương trình.

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, mẫu đó sẽ được xác định là khuôn mặt (đối tượng cần nhận dạng); ngược lại, nếu không vượt qua ngưỡng, mẫu sẽ được xem 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.

 Chọn ra hj với ε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) 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 εt nhỏ nhất để bổ sung vào strong classifier Mỗi khi lựa chọn được bộ phân loại ht, Adaboost sẽ tính giá trị αt nhằm giảm thiểu lỗi εt, đảm bảo hiệu quả phân loại tối ưu.

Hệ số α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; những bộ phân loại ht có αt lớn hơn sẽ đóng vai trò quan trọng hơn trong H(x).

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

Sau khi tính giá trị α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 mà ht phân loại sai và giảm cho những mẫu phân loại đúng Điều này giúp trọng số phản ánh mức độ khó nhận dạng của mẫu, cho phép ht-+1 ư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, tuy nhiên, 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 dựa vào giá trị max false positive hay max false alarm, tức tỉ lệ nhận dạng sai tối đa cho các mẫu background Tỉ lệ này không được vượt quá giá trị cho phép, và qua các lần lặp, false alarm của strong classifier Ht(x) sẽ giảm dần cho đến khi tỉ lệ này thấp hơn 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, nhờ vào khả năng thể hiện mối quan hệ giữa các bộ phận của đối tượng mà từng điểm ảnh đơn lẻ không thể làm được Để tính giá trị của các đặc trưng này, ta sử dụng công thức tính sự chênh lệch giữa tổng số pixel của các vùng đen và vùng trắng, cụ thể là: f(x) = Tổng vùng đen (pixel) - Tổng vùng trắng (pixel).

Để tính các giá trị của đặc trưng Haar-like, cần tính tổng các vùng pixel trên ảnh, nhưng việc này tốn nhiều chi phí tính toán cho tất cả các vị trí, không phù hợp với ứng dụng yêu cầu tính toán thời gian thực Viola và Jones đã giới thiệu khái niệm Integral Image để tăng tốc độ tính toán cho các đặc trưng này Lienhart sau đó phát triển khái niệm này thành Rotated Summed Area Table (RSAT) để tính toán nhanh 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, trong đó mỗi phần tử được tính bằng tổng của các pixel ở trên và bên trái, giúp việc tính toán trở nên nhanh chóng nhờ vào 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 xác định tổng điểm ảnh trong một vùng bất kỳ trên ảnh trở nên dễ dàng Để tính tổng điểm ảnh cho vùng D, ta chỉ cần áp dụng công thức phù hợp, như đã minh họa trong Hình 4.

Giá trị tại điểm P4 trên Hình ảnh Tích phân được tính bằng A + B + C + D, trong khi giá trị tại điểm P2 là A + B, tại điểm P3 là A + C, và tại điểm 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 hình chữ nhật đó.

Cascade of Classifiers

Quá trình huấn luyện bộ phân loại yêu cầu duyệt qua tất cả các đặc trưng của mẫu trong tập training, điều này 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; một số mẫu background rất dễ nhận ra, gọi là background đơn giản Đối với những mẫu này, chỉ cần xét một hoặc vài đặc trưng đơn giản để nhận diện Trong khi đó, các bộ phân loại thông thường vẫn xét tất cả các đặc trưng, bất kể độ khó của mẫu, dẫn đến việc tốn thời gian xử lý 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ủa nó bao gồm nhiều stage classifiers, mỗi stage sẽ xử lý mẫu đầu vào và loại bỏ những mẫu không phù hợp ngay từ những giai đoạn đầu Các stage classifiers sau được huấn luyện dựa trên các mẫu negative mà stage trước nhận dạng sai, giúp chúng học từ những mẫu background khó hơn Sự kết hợp này không chỉ giảm thiểu false alarm mà còn nâng cao hiệu quả xử lý khi đối mặt với các mẫu phức tạp hơn.

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 phân loại viên 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 đã phát triển thành công cascade of boosting classifiers cho 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 grayscale kích thước 24x24 và 9500 hình nền Họ xây dựng cấu trúc cascade tree với 38 stage và 6060 đặc trưng haar-like Kết quả 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 sử dụng 10 đặc trưng loại bỏ 80% mẫu nền mà vẫn giữ độ chính xác 100% Hệ thống của họ so với các phương pháp 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 đạt tốc độ nhận dạng nhanh nhờ vào việc loại bỏ hiệu quả 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 cũng có độ chính xác cao nhờ thuật toán cascade training, trong đó các bộ nhận dạng được huấn luyện bằng AdaBoost với đặc trưng Haar-like, giúp mô tả tốt thông tin đối tượng Bên cạnh đó, phương pháp Integral Image cho phé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, vừa nhanh chóng vừa chính xác.

Chương 3: Phân Tích Và Xây Dựng Hệ Thống

Sơ lược về OpenCV và python django

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ận dạng, dò tìm và phát hiện mặt, cũng như trong các kỹ thuật 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

Phần 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 Thư viện ML cung cấp nhiều thuật toán học máy, bao gồm phân cụm và phân loại thống kê HighGUI hỗ trợ các thủ tục vào ra, lưu trữ và đọc file ảnh, video 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 cho phát hiện, theo dõi và nhận dạng đối tượng như khuôn mặt và mắt.

Django is a free, open-source web framework designed using the MTV (Model-Template-Views) architecture It is managed and developed by the Django Software Foundation (DSF).

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

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 phân tích ảnh gốc bằng cách chia 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

Hình 10: sơ đồ use-case mô tả chức năng của camera và server

Hình 11: sơ đồ use-case mô tả chức nắng của bộ nhận giảng viên.

Chương trình chủ yếu có nhiệm vụ nhận diện khuôn mặt từ ảnh, video hoặc webcam, và sau đó lưu trữ các khuôn mặt này 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 12: 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 bảo việc thu thập và chuẩn bị dữ liệu cần thiết cho các bước tiếp theo.

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 Đối với đầu vào từ 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 chuyên 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, hệ thống sẽ tự động xác định và nhận diện các khuôn mặt có trong đó.

Việc 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 xây dựng dưới dạng cây (tree-node) và được huấn luyện trước.

Việc huấn luyện bộ Cascade bắt đầu bằng việc thu thập dữ liệu ảnh khuôn mặt của người A từ nhiều tư thế, góc chụp và điều kiện khác nhau Sau khi thu thập, dữ liệu này được sử dụng để đào tạo hệ thống nhận dạng theo thuật toán Cascade training Khi quá trình đào tạo hoàn tất, hệ thống sẽ lưu trữ kết quả thành một file có đuôi yml, chứa nhiều đặc điểm và tư thế của người dùng, giúp cải thiện khả năng nhận diện.

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

Hình 13: Sơ đồ hệ thống c Xử lý đầu ra:

Sau khi phát hiện khuôn mặt, hình ảnh sẽ được tách ra và lưu dưới dạng ảnh bitmap với định dạng *.jpg Đối với các file ảnh đầu vào, dữ liệu đầu ra cũng là file ảnh, trong đó lưu vị trí khuôn mặt đã phát hiện và tách riêng khuôn mặt để 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 thứ tự dựa trên tên file video Ví dụ, nếu file video là test.avi, các ảnh khuôn mặt phát hiện sẽ được đánh số như test.avi_1.jpg, test.avi_2.jpg, và tiếp tục như vậy.

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

Lưu trữ cơ sở dữ liệu đóng vai trò quan trọng trong ứng dụng, ảnh hưởng lớn đến tốc độ chương trình Tôi đã sử dụng hệ quản trị cơ sở dữ liệu SQL Lite để xây dựng và quản lý cơ sở dữ liệu, đáp ứng nhu cầu của các doanh nghiệp lớn như 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 xây dựng cơ sở dữ liệu chất lượng sẽ là nền tảng 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)

 Teacher: Tên Giảng viên và user password đăng nhập.

Hình 14: Tổng quan về các bảng trong cơ sở dữ liệu

Ngày đăng: 26/12/2021, 23:39

HÌNH ẢNH LIÊN QUAN

Hình 1: Boosting 2.3 Adaboost: - ĐỒ ÁN CỞ SỞ 5 ĐỀ TÀI: ỨNG DỤNG CHẤM CÔNG BẰNG NHẬN DIỆN KHUÔN MẶT.Giảng viên hướng dẫn: TS.PHAN THỊ LAN ANH
Hình 1 Boosting 2.3 Adaboost: (Trang 12)
Sơ đồ khối: - ĐỒ ÁN CỞ SỞ 5 ĐỀ TÀI: ỨNG DỤNG CHẤM CÔNG BẰNG NHẬN DIỆN KHUÔN MẶT.Giảng viên hướng dẫn: TS.PHAN THỊ LAN ANH
Sơ đồ kh ối: (Trang 14)
Hình 2: Đặt trưng Haar-like cơ bản - ĐỒ ÁN CỞ SỞ 5 ĐỀ TÀI: ỨNG DỤNG CHẤM CÔNG BẰNG NHẬN DIỆN KHUÔN MẶT.Giảng viên hướng dẫn: TS.PHAN THỊ LAN ANH
Hình 2 Đặt trưng Haar-like cơ bản (Trang 16)
Hình 3: Cách tính Integral Image của ảnh - ĐỒ ÁN CỞ SỞ 5 ĐỀ TÀI: ỨNG DỤNG CHẤM CÔNG BẰNG NHẬN DIỆN KHUÔN MẶT.Giảng viên hướng dẫn: TS.PHAN THỊ LAN ANH
Hình 3 Cách tính Integral Image của ảnh (Trang 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 - ĐỒ ÁN CỞ SỞ 5 ĐỀ TÀI: ỨNG DỤNG CHẤM CÔNG BẰNG NHẬN DIỆN KHUÔN MẶT.Giảng viên hướng dẫn: TS.PHAN THỊ LAN ANH
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 18)
Hình 6: Cascade of classifiers - ĐỒ ÁN CỞ SỞ 5 ĐỀ TÀI: ỨNG DỤNG CHẤM CÔNG BẰNG NHẬN DIỆN KHUÔN MẶT.Giảng viên hướng dẫn: TS.PHAN THỊ LAN ANH
Hình 6 Cascade of classifiers (Trang 20)
Hình 7:  Cascade of boosting classifiers - ĐỒ ÁN CỞ SỞ 5 ĐỀ TÀI: ỨNG DỤNG CHẤM CÔNG BẰNG NHẬN DIỆN KHUÔN MẶT.Giảng viên hướng dẫn: TS.PHAN THỊ LAN ANH
Hình 7 Cascade of boosting classifiers (Trang 21)
Hình 8: Cấu trúc cơ bản của OpenCV - ĐỒ ÁN CỞ SỞ 5 ĐỀ TÀI: ỨNG DỤNG CHẤM CÔNG BẰNG NHẬN DIỆN KHUÔN MẶT.Giảng viên hướng dẫn: TS.PHAN THỊ LAN ANH
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Ở 5 ĐỀ TÀI: ỨNG DỤNG CHẤM CÔNG BẰNG NHẬN DIỆN KHUÔN MẶT.Giảng viên hướng dẫn: TS.PHAN THỊ LAN ANH
Hình 9 Tổng quan về hệ thống phát hiện mặt người trong ảnh (Trang 24)
Hình 10: sơ đồ use-case mô tả chức năng của camera và server - ĐỒ ÁN CỞ SỞ 5 ĐỀ TÀI: ỨNG DỤNG CHẤM CÔNG BẰNG NHẬN DIỆN KHUÔN MẶT.Giảng viên hướng dẫn: TS.PHAN THỊ LAN ANH
Hình 10 sơ đồ use-case mô tả chức năng của camera và server (Trang 25)
Hình 11: sơ đồ use-case mô tả chức nắng của bộ nhận giảng viên. - ĐỒ ÁN CỞ SỞ 5 ĐỀ TÀI: ỨNG DỤNG CHẤM CÔNG BẰNG NHẬN DIỆN KHUÔN MẶT.Giảng viên hướng dẫn: TS.PHAN THỊ LAN ANH
Hình 11 sơ đồ use-case mô tả chức nắng của bộ nhận giảng viên (Trang 25)
Hình 12: Biểu đồ ngữ cảnh của hệ thống - ĐỒ ÁN CỞ SỞ 5 ĐỀ TÀI: ỨNG DỤNG CHẤM CÔNG BẰNG NHẬN DIỆN KHUÔN MẶT.Giảng viên hướng dẫn: TS.PHAN THỊ LAN ANH
Hình 12 Biểu đồ ngữ cảnh của hệ thống (Trang 26)
Hình 13: Sơ đồ hệ thống - ĐỒ ÁN CỞ SỞ 5 ĐỀ TÀI: ỨNG DỤNG CHẤM CÔNG BẰNG NHẬN DIỆN KHUÔN MẶT.Giảng viên hướng dẫn: TS.PHAN THỊ LAN ANH
Hình 13 Sơ đồ hệ thống (Trang 27)
Hình 14: Tổng quan về các bảng trong cơ sở dữ liệu - ĐỒ ÁN CỞ SỞ 5 ĐỀ TÀI: ỨNG DỤNG CHẤM CÔNG BẰNG NHẬN DIỆN KHUÔN MẶT.Giảng viên hướng dẫn: TS.PHAN THỊ LAN ANH
Hình 14 Tổng quan về các bảng trong cơ sở dữ liệu (Trang 29)
Hình 15: Giao diện đăng nhập - ĐỒ ÁN CỞ SỞ 5 ĐỀ TÀI: ỨNG DỤNG CHẤM CÔNG BẰNG NHẬN DIỆN KHUÔN MẶT.Giảng viên hướng dẫn: TS.PHAN THỊ LAN ANH
Hình 15 Giao diện đăng nhập (Trang 30)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w