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

đồ án tốt nghiệp đề tài ứng dụng nhận diện khuôn mặt trong đóng mở cửa tự động

73 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Một s tài trên thố đề ế giới liên quan đến nhận dạng thông qua xử lí ảnh: - Nhận diện/kiểm tra sản phẩm – VsTech - FaceVault: ng dỨ ụng m ở khóa trên điện thoại - Yumi Robot: Robot lắp r

Trang 1

1 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

Hà Nội, tháng 1 năm 2019

Trang 2

Ngành: Kỹ thuật đo và tin học công nghip

1 Đầu đề thi t kế ế/Tên đề tài:

Ứng dụng nhận di n khuôn mệ ặt trong đóng - m c a t ừ ự động

2 Các s ố liệu ban đầu

- Dữ liệu hình ảnh ngườ ạ: 400 ảnh i l- Dữ liệu hình ảnh thành viên gia đình: 500 ảnh

3 Các n i dung tính toán, thi t k : ộ ế ế

- Giao diện ứng dụng

 Hiển thị thời gian th c ự Hiển thị giao di n ng d ng ệ ứ ụ Các phím chức năng điều khi n ể- Chức năng điều khiển, vận hành

 Điều khi n thêm nh cho thành viên mới ể ả Đào tạo bộ thư viện hình ảnh

 Kiểm th và chạy ng dụng ử ứ

 Đóng mở cửa tự động, mở của từ xa qua SMS  Điều khi n mở gi cể ữ ửa và đóng cửa - Chức năng lưu trữ file dữ liệu

 Lưu file dữ liệu quản lý, cho phép truy cập vào server để l y d u ấ ữ liệ

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

***

Trang 3

Ngày tháng năm

CHỦ NHI M B MÔN Ệ Ộ CÁN B Ộ HƯỚNG D N Ẫ

(Ký, ghi rõ h tên) (Ký, ghi rõ h tên)

SINH VIÊN TH C HIỰ ỆN (Ký, ghi rõ h tên)

Trang 4

LỜI CAM ĐOAN VÀ CÁM ƠN

Để hoàn thành được Đồ án t t nghi p cố ệ ủa mình, em đã nhận được rất nhi u s giúp đỡ ề ựcủa gia đình, thầy cô giáo, các anh chị và các bạn

Đầu tiên, em xin bày t s biỏ ự ết ơn sâu sắc đến m , anh chẹ ị trong gia đình đã luôn ở bên động viên, giúp đỡ, tạo mọi điều kiện trong quá trình học tập và thực hiện đồ án

Em xin chân thành cảm ơn TS.Trần Th ịThảo, người hướng d n tr c ti p em th c hiẫ ự ế ự ện đề tài này Những hướng d n, ch b o t n tình c a cô ẫ ỉ ả ậ ủ đã giúp em rất nhi u trong su t quá trình hề ố ọc tập và th c hiự ện đồ án này

Em cũng xin gửi lời cảm ơn đến anh Nguyễn Văn Tâm- sinh viên CLC khóa 57, các bạn sinh viên làm Đồ án cùng kì b o vả ệ đã giúp em những ki n th c v l p trình và x lí nh ế ứ ề ậ ử ả để em có th ể hoàn thành đồ án c a mình ủ

Em xin cam đoan bản đồ án t t nghi p: ố ệ “Ứng d ng nh n di n khuôn mặt trong đóng ụ ậ ệ

cửa tự động” do em t thi t kự ế ế dướ ự hưới s ng d n c a cô giáo ẫ ủ Trầ Thị Thản o Các số liệu và kết quả là hoàn toàn đúng ới thực tế v

Đểhoàn thành đồ án này em chỉ s d ng nh ng tài liử ụ ữ ệu được ghi trong danh m c tài li u ụ ệtham kh o và không sao chép hay s d ng b t k tài li u nào khác N u phát hi n có s sao ả ử ụ ấ ỳ ệ ế ệ ựchép em xin ch u hoàn toàn trách nhiị ệm.

Cuối cùng em xin chân thành cảm ơn Ban giám hiệu trường Đại học Bách khoa Hà N i, ộViện Điện và Bộ môn Kỹ thuật đo và Tin học công nghiệp đã tạo điều ki n thu n l i giúp em ệ ậ ợhoàn thiện đồ án này

Hà N i, ngày tháng ộ năm Sinh viên th c hi n ự ệ

Trang 5

ii MỤC LỤC

LỜI CAM ĐOAN VÀ CÁM ƠN i

MỤC L C Ụ ii DANH M C HÌNH Ụ ẢNH iv

DANH M C B NG BI U viỤ Ả ỂTHUẬT NG ANH VI T viiỮ ỆDANH M C T Ụ Ừ VIẾT T T, KÝ HIỆU viii ẮLỜI NÓI ĐẦU 1

CHƯƠNG 1 TỔNG QUAN V Ề ỨNG D NG NH N DI N KHUÔN MỤ Ậ Ệ ẶT TRONG ĐÓNG MỞ CỬA T Ự ĐỘNG 3

1.1 Ph n cứng 3

1.2 Thu t toán nh n di n khuôn mậ ậ ệ ặt, định danh t ự động 6

1.3 K t luế ận chương 7

CHƯƠNG 2 PHƯƠNG PHÁP XÁC ĐỊNH KHUÔN MẶT 8

2.1 Cơ sở lý thuyết xác định khuôn mặt 8

2.2 Chức năng học phân lo i c a b phân lo i Haarạ ủ ộ ạ 11

2.3 Xác định khuôn mặt sử dụng Haar Cascades 14

2.4 K t luế ận chương 16

CHƯƠNG 3 PHƯƠNG PHÁP NHẬN DIỆN KHUÔN MẶT SỬ DỤNG EIGENFACES 17

3.1 Cơ sở lý thuyết 17

3.2 Gi m s chi u vector s d ng PCA (Principal Component Analysis)ả ố ề ử ụ 17

3.3 Tính toán các Eigenfaces và bi u di n trong không gian khuôn mể ễ ặt 19

Trang 6

Phụ ụ l c A: B ng giá chi ti t thi t bả ế ế ị, linh ki n cho ứng d ng 49 ệ ụPhụ ụ l c B: Code trên máy tính nhúng 49

1 Thêm ảnh cho thành viên mới: 49

2. Đào tạo bộ thư viện cho ứng dụ 50 ng3.Test-kiểm th bử ằng hình ả 51 nh4.Chạy ứng dụ 52 ng5.Thiết kế giao diện cho ng dụ 54 ngPh lục C: Code trên Board điều khin 57

1 Chức năng mở cửa tự động đồng thời gửi SMS thông báo 57

2 Chức năng mở của và giữ 60

3 Chức năng đóng cửa 61

Trang 7

Hình 2.5 Gi thuyết c a h qu n lý phân loủ ệ ả ại đối tượng 2 11 Hình 2.6 Gi thuyết c a h qu n lý phân loủ ệ ả ại đối tượng 3 12 Hình 2.7 Sau khi chọ ọn l c m t gi thuy t cu i cùng, sộ ả ế ố ự ổ ợ ỗ ủ ấ t h p l i c a t t c các gi thuyả ả ết được tính

Hình 3.4 Bi u diễn các hình nh khuôn mặt theo các eigenfaces 24

Hình 3.6 Ví d v ụ ề giảm s chi u trong hình h c theo chi u bi n thiên ố ề ọ ề ế 24 Hình 4.1 Sơ đồ khối phần cứng chi ti t 26 ế

Hình 4.2 Cáp kết n i Pi Camera v i Raspberry 27 ố ớ

Hình 4.3 Máy tính nhúng Raspberry Pi 3 27 Hình 4.4 Khối vi điều khiển 29 Hình 4.5 Kh i ngu n 29 ố ồ

Hình 4.6 Sơ đồ nguyên lý cho các khối điều khi n giao ti p và hi n th .30 ể ế ể ị

Hình 4.7 M ch layout 2D 30

Hình 4.8 M ch 3D 30

Hình 4.9 Mô hình c a 31

Hình 4.10 Xung PWM 31 Hình 4.11 Góc quay động cơ tương ứng độ r ng xung 32ộHình 5.1 Máy tính nhúng Raspberry th c t .40 ự ếHình 5.2 Mặt trước Board điều khiển 40 Hình 5.3 Mặt sau Board điều khiển 41 Hình 5.4 Ghép Máy tính nhúng với Board điều khi n 41 ểHình 5.5 Mô hình cửa thực t 41 ế

Trang 8

Hình 5.6 Ghép toàn b ph n c ng 42 ộ ầ ứHình 5.7 Giao di n thu th p hình nh 42 ệ ậ ảHình 5.8 Giao diện đào tạo 43 Hình 5.9 Giao di n khi test nh 44 ệ ảHình 5.10 Giao diện chạy ứng d ng 44 ụHình 5.11 SMS thông báo 45 Hình 5.12 Cú pháp mở c a t xa 45 ử ừ

Trang 9

vi

DANH MỤC BẢNG BIỂU

Bảng 1.1 Chức năng các khối phần cứng 4 Bảng 1.2 So sánh máy tính nhúng và FPGA 5 Bảng 4.1 Các chức năng điểu khiển của ứng d ng 33

Bảng 5.1 Khảo sát ng d ng qua các tr ng thái 45 ứ ụ ạ

Trang 10

THUẬT NGỮ ANH VIỆT

Mean face Khuôn m t trung bình ặAcknowledgement Tin báo xác nh n ậ

Checksum Giá tr ki m tra ị ể

Trang 11

viii

DANH MỤC TỪ VIẾT TẮT, KÝ HIỆU

GPU Graphics Processing Unit Bộ xử lý đồ ọa hCPU Central Processing Unit Bộ xử lý trung tâm

CSI Camera Serial Interface Giao ti p n i ti p camera ế ố ếFPGA Field Programmable Gate Array Tập các cổng có thể tập trình

được

HSV Hue Saturation Value Không gian màu g m: Vùng ồmàu (H), độ bão hòa màu (S), Giá tri cường sáng (V) độCamshift Continuously Adaptive Mean Shift Chuyển đổi trung bình thích nghi

TCP Transmission Control Protocol Giao thức điều khi n truy n v n ể ề ậOSI Open Systems Interconnection

Reference Model

Mô hình tham chi u k t n i các ế ế ốhệ thống m ở

MTU Maximum Transmission Unit Đơn vị truyền dẫn tối đa

Trang 12

LỜI NÓI ĐẦU

Trên đà phát tri n c a cu c cách mể ủ ộ ạng khoa h c l n th IV, trí tu nhân t o nói chung và ọ ầ ứ ệ ạthị giác máy tính (xử lí ảnh) hiện đã và đang l xu hướà ng nghiên c u phát tri n và ng d ng ứ ể ứ ụngày càng r ng rãi trên toàn thộ ế giới Th giác máy tính dị ần được ứng dụng vào các lĩnh vực như robot, tự động hóa, b o mả ật… mang lại hi u qu vệ ả ới độ chính xác cao và ngày càng chiếm lĩnh vị trí quan trọng nhất định

Với sự phát triển nhanh của công nghệ thông tin hiện nay, vi c áp dệ ụng lĩnh vực trí tu ệnhân t o (AI) vào cu c sạ ộ ống không còn khó khăn như trước đây Nhằm giúp đỡ cho con người có th giao ti p v i các thi t b , các công ngh ể ế ớ ế ị ệ đã được ứng d ng vào các thi t b ụ ế ị cá nhân cũng như những thiết bị bảo mật như cảm ứng, cảm biến vân tay, giọng nói, hình ảnh, RFID…

Theo s phát triự ển theo xu hướng đó, nhận thức được vấn đề nh n dậ ạng được sự quan tâm và phát tri n nghiên cể ứu đặtc bi t trong thệ ời đại công ngh 4.0 hiệ ện nay em đã tiến hành nghiên cứu, thiết k ng dế ứ ụng đóng mở cửa tự động b ng khuôn m t dằ ặ ựa trên phương pháp nhận d ng ạkhuôn m t thông qua xặ ử lí ảnh v i an toàn và b o m t t t Các thi t b s d ng hớ độ ả ậ ố ế ị ử ụ ệ thống nhận dạng khuôn mặt cho hiệu quả cao, dễ dàng sử dụng, thuận tiện hơn khi được áp dụng và triển khai trong đời sống hàng ngày

Một s tài trên thố đề ế giới liên quan đến nhận dạng thông qua xử lí ảnh: - Nhận diện/kiểm tra sản phẩm – VsTech

- FaceVault: ng dỨ ụng m ở khóa trên điện thoại - Yumi Robot: Robot lắp ráp chi tiết của hãng ABB

Trong nh n di n khuôn m t vậ ệ ặ ấn đề góc ch p nh cho khuôn mụ ả ặt cũng ảnh hưởng không nhỏ đến hệ thống so v i các chi tiớ ết khác vì khuôn mặt là một đối tượng chuyển động trong nhiều hình dạng, màu s c Tuy nhiên, viắ ệc xác định khuôn m t và vi c theo dõi mang l i nhiặ ệ ạ ều lợi ích Nh n di n khuôn m t là không th n u khuôn m t không cô l p v i n n nh S tác ậ ệ ặ ể ế ặ ậ ớ ề ả ựđộng qua lại người-máy có th ể được c i thi n m t cách tả ệ ộ ốt hơn bằng việc s d ng nh n di n c ử ụ ậ ệ ửchỉ, tr ng thái hay c m xúc, t t c ạ ả ấ ả đòi hỏi xác định đặc tính và theo dõi khuôn m ặt.

Hiện nay đã có rất nhiều thuật toán khác nhau để xác định khuôn mặt, mỗi phương pháp có ưu nhược điểm riêng Một vài phương pháp sử dụng đường vi n, môt s khác th m chí phề ố ậ ức tạp hơn như sử dụng m ng neural, b lạ ộ ọc…Những thuật toán đối m t v i nh ng vặ ớ ữ ấn đề khác nhau, chúng tính toán m t cách ph c t p M t hình nh ch là m t t p h p c a nhi u màu và ộ ứ ạ ộ ả ỉ ộ ậ ợ ủ ềnhững giá trị cường độ ánh sáng Em s d ng thuử ụ ật toán Haar Cascades để xác định khuôn mặt và thuật toán Eigenfaces để nh n di n khuôn m t Viậ ệ ặ ệc xác định khuôn m t b ng Haar Cascades ặ ằcho hi u quệ ả cao hơn so với các phương pháp xác định khuôn m khác, viặt ệc xác định được nhiều khuôn mặt trên cùng một hình ảnh, tránh bỏ sót khuôn mặt cần xử lý

Với yêu c u cầ ụ th bài toán nh n d ng khuôn m t c a mình, em l a ch n thu t toán ể ạ ạ ặ ủ ự ọ ậEigenfaces, đây là phương pháp cơ bản, dễ dàng nh n diậ ện được khuôn mặt ở ộ m t kho ng cách ảgần, cường độ ánh sáng đủ ớ l n, phù h p cho viợ ệc ứng dụng đóng mở ửa tự động ch y trên h c ạ ệmáy tính nhúng nh g n ỏ ọ

Do vậy em đã quyết định lựa chọn đề tài “Ứng dụng nh n di n khuôn mậ ệ ặt trong đóng

Trang 13

mở c a tự động”, thiết bị chạy một cách tự động, trên hệ thống th i gian th c khá là thông ờ ựminh và thu n ti n ậ ệ

Nội dung đồ án được trình bày gồm các phần chính sau đây:

Chương 1: Tổng quan về ứng dụng nhận diện khuôn mặt trong đóng mở cửa tự động Chương 2: Phương pháp xác định khuôn mặt

Chương 3: Phương pháp nhận diện khuôn mặt sử dụng Eigenfaces

Chương 4: Thiết kế ứng dụng nhận diện khuôn mặt trong đóng mở cửa tự động

Chương 5: Kết quả và thực nghiệm đạt được Kết luận và hướng phát tri n cể ủa đề tài

Mặc dù đã rất cố gắng song ch c hắ ẳn không tránh khỏi những thiếu sót, mong th y(cô) ầgóp ý để đề tài của em có thể hoàn thiện hơn

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

Hà Nội, ngày tháng năm Sinh viên thực hiện

Trang 14

CHƯƠNG 1 TỔNG QUAN VỀ ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT TRONG ĐÓNG MỞ CỬA TỰ ĐỘNG

Trong những năm gần đây, cùng v i s bùng n thông tin, s phát tri n công ngh cao ớ ự ổ ự ể ệnghiên c u ng d ng x lý và nh n d ng ứ ứ ụ ử ậ ạ ảnh (Machine Learning) đang là hướng nghiên c u ứtập trung c a r t nhi u nhà khoa hủ ấ ề ọc trong đa số các lĩnh vực X lý nh sử ả ố đã được phát triển và tr thành mở ột lĩnh vực khoa h c X lý nh s không ch nâng cao chọ ử ả ố ỉ ất lượng của ảnh mà còn phân tích và lý giải để ph c v các mụ ụ ục đích riêng biệt Các thi t bế ị ngày nay được ứng dụng công nghệ xử lý và điều khiển theo hình ảnh ngày càng nhiều và cho thấy rõ sự ưu việt của nó, trong đó có rất nhi u ề ứng d ng mang tính cách mụ ạng như quân sự, an ninh, phòng ch ng ốtội ph m, hàng không, công nghi p, giao thông, xây dạ ệ ựng, y sinh dược học… Trong số đó có thể nói đến một ứng dụng đang là xu thế và ngày được ứng d ng rụ ộng rãi là h ệ thống nh n d ng ậ ạmặt người b ng hình nh ằ ả Nhận d ng mạ ặt người là xác định danh tính t ự động cho t ng ừ ảnh đối tượng người dựa vào n i dung cộ ủa ảnh Nhận thấy được điều đó với đam mê và định hướng của thầy cô e đã quyết định l a chự ọn đề tài: ng d ng nh n di n khuôn mỨ ụ ậ ệ ặt trong đóng mở ử ự c a t động Đềtài này được xây dựng trên 2 phần cơ bản sau:

 Phần c ng: ứ

- Sử dụng máy tính nhúng Raspberry Pi 3 Model B, CPU Arm Cortex A53 quadcore v i tớ ốc độ ử x lý 1.2GHz, GPU Dual Video core, b ộ nhớ Ram 1GB - Camera Pi HD, 8MPx, chuẩn giao tiếp CSI

- Hệ thống cơ khí: Khung Camera kết h p mô hình c a, 1 ợ ử động cơ RC Servo điều khiển m cở ửa được điều khiển qua module giao tiếp v i máy tính nhúng theo ớgiao ti p UART ế

- Module SIM900A chuẩn giao tiếp UART  Phần m m: ề

- Thiết kế phần mềm thu thập hình ảnh khuôn mặt, thông tin cá nhân của thành viên, xác định thời điểm thành viên m cở ửa Các thông tin này được lưu trữ vào file d u ph c v cho viữ liệ ụ ụ ệc giám sát cũng như kiểm tra thông tin thành viên ra vào đóng mở cửa

- Hệ thống x lý chử ạy thời gian thực.

1.1 P hần cứng

Hệ thống nhúng(Xử lí ảnh nhận , diện khuôn mặt)

Hình 1.1 Sơ đồ khối ph n c ng ầ ứ

Trang 15

Thông qua Pi camera, hình ảnh xác định có khuôn m t s ặ ẽ được h ệ thống nhúng (Raspberry pi) x lý, nh n dử ậ ạng, định danh từ đó gửi đi các lệnh để điều khiển cơ cấu chấp hành chính là một động cơ Motor Ứng dụng điều khiển động cơ thông qua một Board điều khi n nh n lể ậ ệnh từ hệ thống nhúng Ngoài ra còn có kh i Power cung c p ngu n cho hố ấ ồ ệ thống nhúng và Board điều khiển cũng như động cơ Chức năng các khối ph n cầ ứng được trình bày c ụ thể hơn ở B ng ả1.1 cùng v i các hình nh c ớ ả ụ thể dưới đây:

Bảng 1.1 Chức năng các khối phần cứng

1 Camera Lấy hình nh, giao ti p CSI v i máy tính nhúng ả ế ớ

2 Embedded System Thu nh n hình nh t camera, xdạng khuôn mậ ặt, đưa ra các lệnh điềả ừ ử lý xác địu khiển đóng mở ửa nh khuôn m t, nh cặ ận

3 Controller Board Nhận tín hiệu điều khiể ừn t máy tính nhúng, điều khiển cơ cấu chấp hành là Servo

4 Motor Controller Nhậmở cn tín hiửa ứng v i tín hi u nhệu điềớ u khiệể ừn t Controller Boardận được , điều khiển đóng

5 Power Khối ngu n, cung c p ngu n 5V cho máy tính nhúng và cho ồ ấ ồmạch điều khiển động cơ Servo

Hình 1.2 Picamera Hình 1.3 Máy tính nhúng Raspberry Pi 3

Trang 16

Hình 1.4 Board điều khi n,

giao p UART v i máy tính nhúng tiế ớ

Hình 1.5 Động cơ Servo SG90

Giải quyết nhưng vấn đề phân tích phức tạp, tính toán dữ liệu thấp hơn, những nhiệm vụ khối định hướng

Thuật toán tính toán m nh m , hoạ ẽ ạt động song song m nh m , tính toán tạ ẽ ốc độ ữ d liệu cao hơn

I/O Cố nh, c ng vào ra chuyên dđị ổ ụng Người dùng có th c u hình c ng vào ra ể ấ ổChương

trình Thực hiện chương trình

Các thanh ghi th c hi n các chự ệ ế độ và định nghĩa hoạt động các tham số Lập trình Phát tri n ngôn ng C d ể ữ ễ dàng hơn Có ki n th c v l p trình ph n c ng HDL ế ứ ề ậ ầ ứBảo dưỡng/

Trang 17

Từ bảng trên ta thấy:

Ưu và nhược điểm của sử dụng hệ thống nhúng trong việc xử lý ảnh:

- Ưu điểm: H ệ thống nh g n, chi phí thỏ ọ ấp, đa dạng, phong phú v ề chủng lo i, có th ạ ểchạy th i gian thờ ực, có GPU để ph c v cho vi c x lý nh, hụ ụ ệ ử ả ệ thống có thể chạy ổn định trong thời gian dài, có thể giao tiếp dễ dàng với các module điểu khiển - Nhược điểm: Tốc độ xử lý CPU thấp, bộ nhớ nhỏ, khả năng xử lý song song kém Xuất phát t m c tiêu mu n thi t k m t ứng d ng nh g n, chi phí th p và d dàng ng ừ ụ ố ế ế ộ ụ ỏ ọ ấ ễ ứdụng trong th c t ự ế nên em đã quyết định chọn máy tính nhúng Raspberry trong đồ án của mình

1.2 Thuật toán nhận diện khuôn mặt, định danh tự động

Nhận dạng khuôn mặt người bao gồm hai giai đoạn: Phát hiện, xác định khuôn mặt và định danh t ự động đối tượng Nhiệm v chính d a vào các kụ là ự ỹ thuật rút trích đặc trưng từ ảnh đối tượng và thực hiện đối sánh để định danh tự động Hiệu quả của hệ thống nhận dạng phụ thuộc vào các phương pháp sử ụng d

Hệ thống nhận dạng khuôn mặt có các khối:

- Khối xác định khuôn mặt (Detection): Đầu vào là một hình ảnh, đầu ra của khối là t t cấ ả khuôn m t có m t trong khung hình (nặ ặ ếu có) Đưa hình ảnh về kích thước 92x112 (px)

- Khối nh n di n khuôn mậ ệ ặt (Recognition): V i hình ớ ảnh đầu vào là hình ảnh khuôn mặt, đã được chuẩn hóa kích thước, cho đầu ra là danh tính của người đó hay là ngườ ại l

Hình 1.6 Nhn d ng khuôn m t ạ ặ

Hình nh t camera sả ừ ẽ được máy tính nhúng xử lý để tách khuôn mặt, điều này r t quan ấtrọng vì s quyẽ ết định việc nh n d ng ậ ạ được người có trong khung hình hay không Việc xác định khuôn m t yêu c u nhanh, th i gian thặ ầ ờ ực Để đáp ứng được điều này, em s dử ụng phương pháp máy h c (Machine learning), c ọ ụ thể là s d ng b phân loử ụ ộ ại Haar (Haar classifier) để xác định khuôn m t Các đặc tính Haar Like và mô hình phân t ng Cascade cho phép phát hi n và ặ ầ ệrút trích nh khuôn m t nhanh và chính xác ả ặ

Sau khi xác định được danh tính c a khuôn mủ ặt đứng trước camera, h ệ thống s ẽ xác định đấy có ph i là thành viên hay không, n u có thì s c p nhả ế ẽ ậ ật th i gian thành viên m cờ ở ử đểa tiện quản lý thành viên

Adrian

Trang 18

Hiện nay có r t nhi u thu t toán nh n di n khuôn mấ ề ậ ậ ệ ặt như việc nhận diện t ng th khuôn ổ ểmặt: Eigenface, Fisherface…; nhận dạng đặc tính trên khuôn mặt: Sparse representation…

Những thu t toán nh n di n khuôn m t b ng vi c nh n di n t ng th , các b c ảnh đầu ậ ậ ệ ặ ằ ệ ậ ệ ổ ể ứvào (ảnh khuôn m t) ặ có kích thước RxC bi u di n ể ễ dướ ại d ng nh ng vector, ta s xây d ng mữ ẽ ự ột không gian m i có s 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 g n nhau và cách xa các nhóm khác ậ ạ ộ ầ Việc chọn ngưỡng cho độ hiệu qu c a vi c gi m s chi u c a vector là r t quan tr ng vì nó s ả ủ ệ ả ố ề ủ ấ ọ ẽ trực ti p ế ảnh hưởng đến vi c nh n d ng khuôn m t, chệ ậ ạ ặ ọn ngưỡng quá cao sẽ làm vi c tính toán trở nên ph c t p vì ệ ứ ạkích thước vector ảnh và tập dữ liệu lớn, chọn quá nhỏ sẽ dẫn đến việc loại bỏ mất những đặc tính cần thi t Ngoài ra vi c nh n d ng t ng th b ế ệ ậ ạ ổ ể ị ảnh hưởng r t l n v ấ ớ ề điều ki n ánh sáng môi ệtrường và góc ch p khuôn m t ụ ặ

Đối với nh ng thu t toán nh n di n khuôn m t dựa trên m i quan h các đặc trưng 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ạ ặ ự ệ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ó 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 việc xác định các đặc tính và các mối quan hệ, phương pháp này có thể cho kết quả tốt hơn trong trường h p ợ ảnh có nhiều nhiễu như 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 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

Để đáp ứng được h thống chạy ổn định, x lý nhanh trên máy tính nhúng, đòi hỏi việc ệ ửchọn m t thuộ ật toán có độ tín h toán không quá phứ ạc t p, có th ạy th i gian thểch ờ ực và đặc biệt ít t n tài nguyên b nhố ộ ớ Cũng chính vì điều này, em đã chọn thu t toán nh n di n khuôn mậ ậ ệ ặt sử dụng phương pháp nhận d ng khuôn m t t ng thạ ặ ổ ể (cụ thể là thu t toán s d ng eigenfaces) ậ ử ụđể đáp ứng được những điều như trên.

1.3 Kết luận chương

Từ những tìm hiểu của bản thân cùng s hự ỗ trợ ề v lý thuyết từ các nguồn tài liệu quý giá về phần cứng cũng như thuật toán nhận diện khuôn mặt đã được trình bày trên ở Em đã quyết định th c thi thu t toán nh n di n khuôn mự ậ ậ ệ ặt qua 2 công đoạn: xác định khuôn m t d a trên b ặ ự ộphân lo Haar (Haar classifier) dại ựa trên các đặc tính Harlike, và nh n diậ ện, định danh khuôn mặt d a trên ự phương pháp nhận d ng khuôn m t t ng thạ ặ ổ ể (cụ thể là thu t toán s d ng ậ ử ụeigenfaces khuôn m t riêng) trên máy tính nhúng Raspberry Pi3– ặ Chương 2 sau em sẽ trình bày công đoạn đầu về phương pháp xác định khuôn mặt, cách thực thi và s d ng b phân loử ụ ộ ại Haar Cascades

Trang 19

CHƯƠNG 2 PHƯƠNG PHÁP XÁC ĐỊNH KHUÔN MẶT

2.1 Cơ sở lý thuyết xác định khuôn mặt

Trong thu t toán nh n d ng khuôn m t thì viậ ậ ạ ặ ệc xác định khuôn m t có trong khung hình ặhay không là r t quan trấ ọng, điều này s giúp cho thu t toán nh n d ng xẽ ậ ậ ạ ử lý nhanh hơn, tiết kiệm được đáng kể thời gian

Tư thế của khuôn mặt ngườ ảnh hưởi ng nhiều đến việc xác định khuôn mặt hơn những đối tượng khác, khuôn mặt người là một đối tượng thay đổi, chúng có nhiều định dạng và màu sắc Tuy nhiên, việc xác định khuôn m t mang l i nhi u l i ích, nh n d ng khuôn m t là không ặ ạ ề ợ ậ ạ ặthể ế n u khuôn mặt không được tách ra từ khung nền

Mặc dù có nhi u thu t toán t n tề ậ ồ ại để thực hi n việ ệc xác định khuôn m t, m i thu t toán ặ ỗ ậcó nhược điểm và ưu điểm riêng M t vài s dộ ử ụng đường vi n, m t s khác th m chí ph c tề ộ ố ậ ứ ạp hơn như lấy mẫu bao hàm, mạng nơ-ron, ho c b lặ ộ ọc… Phân tích những điểm ảnh cho vi c xác ệđịnh khuôn m t là t n thặ ố ời gian và khó khăn để hoàn thành vì s ố lượng giá tr l n c a hình d ng ị ớ ủ ạvà màu da trên m t khuôn mộ ặt ngườ Ở đây em sẽi trình bày hai phương pháp xác định khuôn mặt: Phương pháp xác định khuôn mặt sử dụng thuật toán Camshift và phương pháp HaarCascade Đây là hai phương pháp chính đượ ử ụng để xác địc s d nh khuôn m t, vi c tìm hi u rõ ặ ệ ểchúng để đưa ra phương pháp chọn tốt nhất

Giải thu t Camshift nh n d ng dậ ậ ạ ựa trên đặc trưng màu da, xác định vị trí và kích thước của mặt ngườ ựa vào hàm phân phối mi d ật độ

Viola và Jones đã đưa ra một thuật toán, được g i là Haar Cascadeọ , để xác định m t cách ộnhanh chóng b t kấ ỳ đối tượng nào, bao gồm cả khuôn mặt người mà chúng được dựa trên đặc tính Haar Like Xác định đối tượng s dử ụng đặc tính b phân lo i Haar là mộ ạ ột phương pháp xác định hi u qu được để xu t bởi Paul Viola và Michael Jones Nó có th xác định nhanh đối ệ ả ấ ểtượng bằng phương pháp làm nổi b t nhậ ững đặc tính cơ bản (Boosted Cascade of Simple Features-xuất bản năm 2001), là một phương pháp học máy (Machine Learning), dựa trên sự gần đúng ở những vùng mà một lớp chức năng được đào tạo từ một lượng hình ảnh khuôn mặt người (positive) và nh n n không ph i khuôn m t (negative) ả ề ả ặ

2.1.1 Xác định khuôn mặt sử dụng thuật toán Camshift

Thuật toán Camshift (Continuously Adaptive Mean Shift) d a trên s ự ự thay đổi trung bình của hình ảnh Camshift sử dụng kênh màu sắc để chỉ ra đối tượng dựa trên mô hình màu HSV, các đối tượng v i nh ng màu s c khác nhau có th ớ ữ ắ ể được nh n di n D a trên thông tin màu s c, ậ ệ ự ắCamshift theo dõi đối tượng nhanh hơn và ít lãng phí tài nguyên CPU Nhu c u tài nguyên tính ầtoán th p cho phép Camshift phát tri n thành m t thu t toán theo dõi khuôn m t th i gian thấ ể ộ ậ ặ ờ ực.

Thuật toán Camshift có thể được tóm tắt v i nhớ ững bước sau:

Bước 1: Chọn vùng khởi đầu quan tâm mà bao hàm đối tượng chúng ta mu n theo dõi ố

Bước 2: Tạo một biểu đồ màu của vùng được mô hình hóa đối tượng

Bước 3: Tạo một hàm phân ph i xác su t của khung hình s d ng biố ấ ử ụ ểu đồ màu

Trang 20

Bước 4: Dựa trên hình ảnh phân ph i xác su t, tìm trung tâm của c a s t p trung tìm ố ấ ử ổ ậkiếm sử dụng phương pháp sự thay đổi thành ph n chính ầ

Bước 5: Trọng tâm c a c a s tìm kiủ ử ổ ếm đến điểm đượ ấy t c l ừ bước 4 và lặp lại bước 4 cho đến khi hội tụ

Bước 6: Xử lý khung hình ti p theo với vị trí c a s tìm kiế ử ổ ếm trong bước 5 Biểu đồ là bản đồ xác suất màu sắc của đối tượng được theo dõi Vì chúng ta tập trung trên vi c theo dõi khuôn m t, kênh màu s c c a khuôn mệ ặ ắ ủ ặt được biểu di n trong hình 2-ễ 2 được sử dụng để minh h a trong biọ ểu đồ Trong bước đầu tiên, vùng của đối tượng theo dõi được quét và bản đồ ghi lại có bao nhiêu điểm ảnh có m t giá tr màu nhộ ị ất định trong khu v c cự ủa đối tượng được theo dõi được xây dựng Và sau đó, Camshift tìm kiếm ra đỉnh của s ố điểm ảnh trong m i giá tr màu và tiêu chu n hóa bỗ ị ẩ ản đồ bên trong xác su t màu da và biấ ểu đồ được biểu diễn trong hình 2-1 Thanh nằm ngang c a hình 2-1 là giá tr màu s c và thanh thủ ị ắ ẳng đứng là xác su t màu da ấ

Hình 2.1 Biểu đồ phân b kênh màu s c ố ắ

Hình 2.2 Kênh màu sc c a khuôn m t ủ ặ

Trang 21

Dựa trên biểu đồ, xác su t màu da c a khung hình ti p theo có th ấ ủ ế ể được tính toán t biừ ểu đồ khung hình trước đó Đầu tiên, khung hình tiếp theo được chuyển đổi trong kênh màu sắc mà được bi u di n thông tin màu s c cể ễ ắ ủa đối tượng theo dõi Và sau đó tìm kiếm biểu đồ, chúng ta s l y xác su t màu da cho mẽ ấ ấ ỗi điểm ảnh được bi u di n trong hình 2-3 theo giá tr màu cể ễ ị ủa nó Xác su t màu da c a bấ ủ ức ảnh nguyên gốc được thu t khung hình tiừ ếp theo để tìm ra tr ng ọtâm c a khuôn m ủ ặt.

Hình 2.3 Xác su t màu da

2.1.2 Xác định khuôn mặt sử dụng bộ phân loại Haar (Haar Classifier)

Hệ thống xác định đối tượng là cho một mảng hình ảnh đã biết kích thước để quyết định xem các đặc tính này xu t phát t mấ ừ ột đối tượng không V i mớ ục đích cho việc h p lý c a viợ ủ ệc thực hiện xác định đối tượng, Haar Classifier được áp dụng đến hệ ống này th

Haar Classifier mã hóa s t n t i c a s ự ồ ạ ủ ự tương phản định hướng gi a các vùng trong hình ữảnh M t thi t l p c a nhộ ế ậ ủ ững đặc tính có thể đượ ửc s dụng để mã hóa độ tương phản được thểhiện b i mở ột đối tượng

Đặc trưng Haar được dùng để phân loại hình ảnh đối tượng Tập đặc trưng này xem xét những vùng hình chữ nhật của hình ảnh và tổng h p nhợ ững điểm ảnh trong vùng này Giá tr ịthu đượ ử ụng để phân lo i hình c s d ạ ảnh Ví d , chúng ta hãy nói r ng chúng ta có mụ ằ ột cơ sở ữ dliệu hình nh với khuôn mả ặt người và các tòa nhà Điều đó có thể nếu vùng m t và vùng tóc ắcủa khuôn mặt được xem xét, thì tổng các điểm ảnh trong vùng này sẽ khá cao đố ới v i khuôn mặt người và tùy ý cao ho c th p cho các tòa nhà Giá tr ặ ấ ị thứ hai s ph thuẽ ụ ộc vào c u trúc cấ ủa tòa nhà, môi trường c a nó, trong khi các giá tr c a nó s ít nhi u giủ ị ủ ẽ ề ống nhau Do đó, chúng ta có th phân lo i t t c các hình nh có ể ạ ấ ả ả đặc trưng Haar (Haar-features) giống nhau trong vùng hình ch nh t này trong m t ph m vi giá tr nhữ ậ ộ ạ ị ất định như là một loại và nh ng vùng n m ngoài ữ ằphạm vi này ở vùng khác Điều này gần như có thể phân chia b hình nh thành nh ng nh có ộ ả ữ ảrất nhiều khuôn mặt và một vài tòa nhà và các tòa nhà khác Việc này có thể thực hiện lặp đi lặp lại để phân chia các nhóm hình nh ả

Trong đề tài này, việc xác định khuôn mặt đòi hỏi không phụ thuộc quá nhiều vào ánh sáng môi trường, màu da khuôn mặt, đối tượng khuôn mặt cũng không cần thiết để theo dõi mà chỉ c n tách ra kh i khung n n, ph c v cho vi c x lý c a kh i nh n d ng phía sau, chính vì ầ ỏ ề ụ ụ ệ ử ủ ố ậ ạ

Trang 22

điều này em s d ng bộ phân lo i Haar cho viử ụ ạ ệc xác định khuôn mặt, điều này cho phép xác định nhanh và chính xác vùng khuôn m t, ph c vụ t t cho vi c nh n d ng ặ ụ ố ệ ậ ạ

2.2 Chức năng học phân loại của bộ phân loại Haar 2.2.1 Sự phân loại Haar

Những phương pháp tiếp c n d a trên máy h c có l i th là hi u qu ậ ự ọ ợ ế ệ ả hơn về mặt tính toán trong phát hiện đối tượng, xác định khuôn m t s d ng b phân lo i Haar là mặ ử ụ ộ ạ ột phương pháp như thế Haar-classifier là bộ phân loại hình ảnh mà ở đó trong giai đoạn đào tạo, việc tạo ra các t ng phân loầ ại được đẩy m nh, các phân loạ ại đơn lẻ, đượ ạc t o ra t viừ ệc đào tạo g i là phân ọloại yếu Một phân lo i m nh ạ ạ đượ ạc t o ra t 2 hay nhi u phân lo i y u và m t phân lo i yừ ề ạ ế ộ ạ ếu có thể xác nh phân lođị ại đúng trong nhiều nhất 50% trường h p Các phân lo i m nh cho hi u ợ ạ ạ ệquả phân loại cao hơn nhưng thời gian phân loại lâu hơn, vì vậy đòi hỏi kết hợp cả phân loại yếu và phân loại mạnh để tìm ra hình ảnh khuôn mặt Sự n y sinh này giúp cho viả ệc phân loại trở nên tốt hơn từ nhi u y u tề ế ố được ực hi n b ng cách th ệ ằ tăng trọng lượng phân lo i lên h ạ ệthống qu n lý phân lo i ả ạ

Hình 2.4 M t gi thuy t phân loộ ả ế ại được ch n

Hệ quản lý phân loại đối tượng 1, trọng lượng của đối tượng 1 được tăng lên sẽ làm ảnh hưởng đến việc chọn cho sự chọn lọc giả thuyết ti p theo (m t gi thuy t yếu hơn sẽ được ế ộ ả ếchọn)

Hình 2.5 Gi thuy t cế ủa h qu n lý phân loệ ả ại đối tượng 2

Trọng lượng đối tượng sau khi được phân chia giữa 1 và 2

Trang 23

Hình 2.6 Gi thuy t cế ủa h qu n lý phân loệ ả ại đối tượng 3

Trọng lượng của đối tượng được phân chia giữa 1, 2 và 3

Hình 2.7 Sau khi ch n lọ ọc m t gi thuy t cu i cùng, sộ ả ế ố ự ổ ợ ỗ ủ ấ t h p l i c a t t cả các gi thuyết được tính toán

Sự phân loại Haar s d ng m t t ng lo i bử ụ ộ ầ ạ ỏ nghĩa là bộ phân lo i cu i cùng phù h p vạ ố ợ ới một t ng c a (nhi u) b phân loầ ủ ề ộ ại đơn, và một vùng c a s quan tâm phủ ự ải vượt qua t t cấ ả các tầng c a bủ ộ này để vượt qua sự phân loại Trình tự các nút thường được sắp xếp phức tạp, do đó nhiều đặc tính của đối tượng được loại bỏ sớm, tiết kiệm được nhiều thời gian tính toán

Như đầu vào cho các b phân loộ ại cơ bản t o nên t ng phân loạ ầ ại, đặc tính Haar giống như được tính toán theo các con s trong hình 2.8, 2.9, 2.10 ố

Sau khi ng dứ ụng đang chạy, một ô kích thước khác nhau được quét qua hình nh, tính ảtoán các giá trị điểm ảnh d a trên nhự ững đặc tính, s d ng hình nh tích h p và áp d ng t ng ử ụ ả ợ ụ ầđào tạo loại bỏ Các đặc tính yếu của bộ phân loại Haar cơ bản thường có: Đặc tính biên, đặc tính đường, đặc tính trung tâm

Hình 2.8 Đặc tính biên

Trang 24

Hình 2.9 Đặc tính đường

Hình 2.10 Đặc tính trung tâm

2.2.2 Thư viện OpenCV đối với việc xác định khuôn mặt

OpenCV là một thư viện thị giác máy tính (Computer Vision) được viết trên C, C++… và bao hàm t t c 500 hàm liên k t v i thấ ả ế ớ ị giác, và cũng chứa một thư viện h c máy chung ọOpenCV đã được ch n k t khi nó là mã ngu n m và mi n phí cho s d ng h c tọ ể ừ ồ ở ễ ử ụ ọ ập và thương mại, và nó đượ ử ục s d ng kh p ắ nơi và là tư liệ ốt u t

Có nhi u công c tính toán khác nhau dùng cho nh n dề ụ ậ ạng đối tượng Tuy nhiên v i s ớ ựra đời và phát triển của OpenCV thì bài toán nhận dạng trở nên dễ dàng hơn Việc phát triển cho các thi t bế ị di động tăng lên nhu c u cho tính hi u qu và tiêu chí then ch t là ph i chầ ệ ả ố ả ọn một kỹ thu t hiậ ệu qu t t vả ố ề hi u su t và mệ ấ ức độ ấ b t bi n, v i s nâng cao ế ớ ự hơn về hi u qu ệ ả như thời gian th c s ự ẽ được x ử lý và hơn nữa CPU và RAM là tương đối hạn trên trên các thiết bị

Trong thư viện mã ngu n m OpenCV có các file chồ ở ức năng được đào tạ ừo t nh ng d ữ ữliệu hình nh của b phân lo i Haar, các file chả ộ ạ ức năng này cho phép người dùng xác định nhanh được các đối tượng như khuôn mặt người, một s b ph n trên khuôn mố ộ ậ ặt như mắt, mũi, miệng…

2.2.3 Tập hợp dữ liệu và sự tạo mẫu cho đào tạo Haar

Với OpenCV có một tiện ích để ạo các mẫu chuy t ển đổ ừ một hình ảnh, có thể tự động i táp dụng thay đổi nền, ánh sáng và quay hình ảnh đầu ra Cách tiếp cận này là phù hợp cho các trường hợp mà đối tượng không thay đổi khi xu t hi n Ví dấ ệ ụ: logo, nhãn hàng…Tài liệu hướng dẫn s d ng ti n ích t o m u có th tìm thử ụ ệ ạ ẫ ể ấy trong thư mục cài đặt: OpenCV/HaarTraining/doc, mặc dù thông tin được cung cấp còn ít (tất cả các tham số không được giải thích)

Các ti n ích t o m u OpenCV xu t ra m t vector v i các mệ ạ ẫ ấ ộ ớ ẫu, vector này đượ ử ục s d ng làm đầu vào chon tiện ích kết nối OpenCV Một số tham số quan trọng cho tiện ích này là:

 Tên file c a vector v i m u positive ủ ớ ẫ Tên file v i tên hình nh n n (không ớ ả ề

chứa đối tượng)

 Số m u positive trong vector m u ẫ ẫ Số m u negative yêu cẫ ầu.

Trang 25

2.3 Xác định khuôn mặt sử dụng Haar Cascades

Các đặc tính Haar tương tự như các hạt nhân cuộn đượ ử ụng để phát hi n s hi n di n c s d ệ ự ệ ệcủa tính năng đó trong hình ảnh nhất định Mỗi đặc tính kết quả trong một giá trị đơn thu được bằng cách trừ tổng các điể ảnh dướm i hình chữ nhật màu trắng từ tổng các điể ảnh dướm i hình chữ nhật màu đen.

Áp dụng các đặc tính Haar vào hình nh ả (đặc tính biên, đặc tính đường, đặc tính trung tâm):

Hình 2.11 ng d ng vào hình nh Ứ ụ ả

Viola Jones đã sử dụng một cửa sổ 24x24 như một kích thước cửa sổ cơ bản để ắt đầ b u ước lượng những đặc tính này trong m t hình nh b t kộ ả ấ ỳ đã cho Nếu chúng ta xem xét t t c ấ ảnhững tham số có thể có của các đặc tính Haar như quy mô vị trí và tính toán có khoảng 160 000 đặc tính trong cửa sổ

Hình 2.12 Những đặc tính c a Haar

Một b phân lo i tộ ạ ầng được sử dụng bao gồm các giai đoạn chứa m t b phân lo i mộ ộ ạ ạnh

Trang 26

Vì v y, t t cậ ấ ả các tính năng được nhóm thành nhiều giai đoạn, trong đó mỗi giai đoạn có một số tính năng nhất định

Công vi c c a tệ ủ ừng giai đoạn được s dử ụng để xác định li u m t cệ ộ ửa s ph có ch c chổ ụ ắ ắn không ph i là khuôn m t hay không M t c a s ả ặ ộ ử ổ phụ đã được loại b ngay l p tỏ ậ ức nếu nó không chọ ọn l c thành công trong b t k giai đoạn nào ấ ỳ

Tầng 1Đó là khuôn

Tầng 3Đó là khuôn

mặtTầng 2Đó là khuôn

Hình 2.15 Quét t p trung vào vùng sau khi

loạ ỏi b các ph n không ph i khuôn m t ầ ả ặ

(Tỉ l : 21/22-100%; Đặc tính: 56/210)

Trang 27

16

2.4 Kết luận chương

Trong chương 2 em đã trình bày được công đoạn đầu tiên: xác định và tách khuôn m t tặ ừ nền ảnh cho trước, đồng thời cũng nêu rõ được ưu, nhược điểm của việc sử dụng bộ phân loại Haar Cascades Ở đó các bước th c hi n xuyên suự ệ ất cơ sở lý thuyết cũng như cách thực thi trong th c t d a vào bự ế ự ộ thư viện OpenCV được tích h p s n ợ ẵ đã được làm rõ m t cách cộ ụ thểhóa d hiễ ểu Sau khi xác định được khuôn mặt s chuyẽ ển sang công đoạn nhận diện, định danh khuôn mặt đó dựa trên phương pháp nhận di n t ng th mà cệ ổ ể ụ thể là thu t toán s d ng ậ ử ụEigenfaces - khuôn m t riêng ặ được làm sáng t ỏ ở chương 3 tiếp theo

Trang 28

CHƯƠNG 3 PHƯƠNG PHÁP NHẬN DIỆN KHUÔN MẶT SỬ DỤNG EIGENFACES

3.1 Cơ sở lý thuyết

Kỹ thu t Eigenfaces (khuôn m t riêng) s d ng vi c phân tích nh ng thành ph n chính ậ ặ ử ụ ệ ữ ầcủa hình ảnh trên khuôn m t Viặ ệc phân tích này gi m thiả ểu được s ố kích thước c a tủ ập đào tạo, việc ch cho phép trên nhỉ ững đặc tính mà khó khăn cho việc nhận dạng Eigenfaces là m t t p ộ ậcủa những vector riêng đượ ử dụng trong vc s ấn đề thị giác máy tính c a nh n d ng khuôn mủ ậ ạ ặt người Hướng giải quyết sử dụng eigenfaces cho sự nhận dạng đã được phát triển bởi Sirovich và Kirby (1987) và được sử d ng m Matthew Turk và Alex Pentland trong s phân lo i khuôn ụ ở ự ạmặt Điều này được xem xét thành công đầu tiên trong công ngh nh n d ng khuôn m t Nh ng ệ ậ ạ ặ ữvector riêng được tính toán t ma tr n hiừ ậ ệp phương sai phân phối xác su t c a không gian vector ấ ủkích thước nhiều chiều của những khuôn mặt người có thể chấp nhận

Việc xem m t b c ảnh đầộ ứ u vào là một vector đa chiều s giúp cho viẽ ệc x lý bử ức ảnh tr ởthành vi c x ệ ử lý tính toán trên vector trong đạ ối s tuy n tính ế

3.1.1 Lý thuyết giá trị riêng và vector riêng

Trong đại s tuyố ến tính, vô hướng được gọi là tr riêng cị ủa ma tr n vuông A c p n nậ ấ ếu tồn t i vector X khác 0 thạ ỏa mãn phương trình (3.1) Khi đó X được gọi là vector riêng ng vứ ới trị riêng c a ma tr n vuông A ủ ậ

AX X (3.1)

3.1.2 Tính toán giá trị riêng và vector riêng

Bằng vi c sệ ử dụng công thức (3.1), ta có phương trình: (AI) X 0 (3.2)

Ởđây I là ma trận đơn vị kích thước n x n (cùng kích thước với ma tr n A) ậBằng vi c giệ ải phương trình det(AI) 0, ta tìm riêng và vtrị ector riêng tương ứng

3.2 Giảm số chiều vector sử dụng PCA (Principal Component Analysis) 3.2.1 Ý tưởng chính

Mục tiêu của phương pháp PCA là giảm s chi u cố ề ủa mộ ật t p các vector sao cho vẫn đảm bảo đượ ối đa các thông tin quan trọc t ng nhất Điều này có nghĩa là vẫn giữ được K đặc tính mới t các thông tin ch không ph i gi nguyên K ừ ứ ả ữ đặc tính ban đầu, những đặc tính m i này ớđược suy ra t nhừ ững đặc tính cũ Nói một cách ng n g n, m c tiêu của phương pháp PCA là ắ ọ ụtìm ra m t không gian v i s chi u nhộ ớ ố ề ỏ hơn không gian cũ mà các trụ ọa độ ủc t c a không gian mới được xây dựng sao cho trên mỗi trục, độ biến thiên dữ liệu là l n nh t có th Mớ ấ ể ột điểm nữa là các trục tọa độ trong không gian mới luôn đảm bảo trực giao đôi mộ ớt v i nhau

Vector x ban đầu có N chiều, vector y mới được t o thành ch còn ạ ỉ K chiều, biển diễn như

hình 3.1:

Trang 29

Vector x ban

đầu có N chiều Vector y về sau có K chiều

Ánh xạ tuyến tính

T cần tìm

Hình 3.1 Gi m s chiả ố ều vector sử d ng phương pháp PCA

Khi lo i b m t s thành ph n cạ ỏ ộ ố ầ ủa vector x để thu được vector y thì s gây ra sai s , ẽ ốphương pháp PCA sẽ cố gắng tìm phép biến đổi tuyến tính T thỏa mãn y = Tx sao cho trung

bình bình phương lỗi (MSE) là bé nhất

Ở đây ˆY là m t vector v i n chi u (d ộ ớ ề ự đoán), Y là vector đầu vào ban đầu

3.2.2 Tìm phép biến đổi tuyến tính T

Phương pháp PCA quy về việc tìm giá trị riêng và vector riêng của ma trận hiệp phương C c a t p mủ ậ ẫu X Sau đó ta chỉ giữ ạ l i K vector riêng l n nhớ ất để làm cơ sở cho không gian mới

3.2.3 Phương pháp PCA

Các bước thực hiện:

Giả thi t ế x1, x2 ,…, xM là M vector N chi u ề

Trang 30

Bước 1: Tính vector trung bình:

M (3.5) Bước 2: Gọi Фixix (3.6)

Bước 3: Từ ma trận A [ФФ Ф1 2 M] (Ma tr n NxM), tính ma tr n hiậ ậ ệp phương sai:

Ф Ф

Bước 4: Tính tr riêng cị ủa ma tr n C: ậ 1 2 N

Bước 5: Tính vector riêng c a C và tr c chuủ ự ẩn chúng được: u u1, , ,2 uN Bất k vector ỳx hoặc x x nào đều biểu diễn được dưới d ng t h p tuyạ ổ ợ ến tính c a t p N vector trên.ủ ậ

Bước 6: Giảm số chi u c a vector, chỉ gi l i k trị riêng lớn nh t: ề ủ ữ ạ ấ

ng ch ng t n 0.95) (3.9) > ngưỡ ọn (thườ ừ 0.9 đế

Từ công thức (3.3) có th quy vể ề sai số PCA:

Nii k

ex x (3.10)

Khi đó ta được k vector riêng tương ứng k trị riêng lớn nhất: { , , , }u u12 uk

3.3 Tính toán các Eigenfaces và biểu diễn trong không gian khuôn mặt

3.3.1 Tính toán các eigenfaces

Có các hình nh khuôn m t Iả ặ 1, I , …, I2n (trong t p hu n luy n) v i các khuôn m t chính ậ ấ ệ ớ ặdiện, kích thước các khung hình khuôn mặt giống nhau và được chụp vào các thời điểm khác nhau trong ngày

Các bước tính toán để tạo ra các Eigenfaces (khuôn m t riêng): ặ

Bước 1: Sử ụ d ng các hình nh khuôn m t có trong t p hu n luyện ả ặ ậ ấ

Hình 3.2 Hình nh khuôn m t trong t p hu n luy n ả ặ ậ ấ ệ

Trang 31

Bước 2: Biểu di n m i ảnh I thành vector ễ ọ i i (ví d v 4 ụ ề vector được tính toán)

1

2

2 3

4

Bước 3: Tính vector khuôn m t trung bình (mean face) theo công thức:

Bước 4: Trừ vector khuôn m t trung bình (mean face):

ii (3.12) 53.50

i 2

3

4

Bước 5: Tính ma trận hiệp phương sai:

MM (3.13) Trong đó A [ 1 2 M], C là ma tr n c p N x Nậ ấ 22

Cụ thể ta có:

Trang 32

53.50 161.50 24.50 83.5052.50 42.50 141.50 46.5084.50 108.50 101.50 91.50

127.25 110.25 115.75 121.7549.50 49.50 148.50 49.5047.00 168.00 56.00 65.00

A được tạo bởi các i là các c ột.

36517 3639 23129 778 304 113 24000 4851 364463639 26747 19155 3045 5851 324 22083 28017 957423129 19155 37587 1997 1247 1188 45603 20097 25888778 3045 1996 363 746.5 78 2153 3217 1476304 5851 1247 747 1869 364 645 623

24000 22083 45603 2153 645.5 1772 56569 22919 269374851 28017 20097 3218 6237 396 22919 29403 1108836446 9574 25888 1476 1831 71 26937 11088 37794

Bước 6: Tính các Eigenvector u (vector riêng) ci ủa ma tr n vuông A.A (C có kích ậ Tthước N2xN2 quá lớn)

Xét ma tr n A A (ma trậ T ận này có kích thước MxM) Cụ thể ta có:

33998 50914 70771 1414111015 43014 14141 39888

TA A

Tính các eigenvector v (vector riêng) c a ma tr n vuông A A này i ủ ậ T

Ở đây ta sẽ tìm được 4 trị riêng c a ma tr n A A, tuy nhiên ta s s p x p l i theo th t ủ ậ T ẽ ắ ế ạ ứ ựgiảm d n và chỉ lấy các trị riêng khác 0 K t qu ầ ế ảta được 3 vector riêng và trị riêng tương ứng

1

v 2

v 3

0.3060.631

Trang 33

Sau khi đã tính được các vector vi(có kích thước Mx1), ta sẽ dễ dàng suy ra được các vector riêng u i(kích thước N x1), mong mu n c n tìm theo công th2 ố ầ ức:

uiAvi (3.14) Ta có:

1

u 2

u 3

u 2

u 3

- Tính M vector riêng ui t t nhố ất của A.AT theo công th c: ứ uiAvi

Bước 7: Chỉ giữ l i K vector riêng trong s M vector nói trên ( ng v i K tr riêng lạ ố ứ ớ ị ớn nhất), tất nhiên K<<N2.

Có 2 cách để xác định K:

Trang 34

- Cách 1: S p x p theo th t ắ ế ứ ự giảm d n c a các giá tr ầ ủ ị riêng tìm được Theo dõi s biự ến thiên c a dãy trên, khi không còn s bi n thiên ho c x p x bủ ự ế ặ ấ ỉ ằng 0 thì lúc đó ta chọn đủ K.

- Cách 2: Chọn K theo công thức sau:

Ngưỡng chọ (Ngưỡn ng chọn thường t ừ 0.9 đến 0.95) (3.15)

3.3.2 Biểu diễn các khuôn mặt có sẵn vào không gian vector

Mỗi khuôn mặt i trong t p hu n luyậ ấ ện có th ể được bi u di n l i thành t h p tuyể ễ ạ ổ ợ ến tính của K vector riêng có tr riêng l n nhị ớ ất được tính toán như mục 3.3.1

Hình 3.3 Biu di n trong không gian hình h c ễ ọ

Ta g i các vector riêng u là các Eigenfaces (khuôn mọ i ặt riêng) Như vậy, t bây gi , mừ ờ ỗi khuôn m t trong t p hu n luyặ ậ ấ ện i sẽ được bi u di n trong không gian mể ễ ới là 1 vector như hình 3.4 sau:

V i i=1, ớ 2,…, M C ụ thể ta có:

uuui

Trang 35

Mặt Ellipsoid định nghĩa bởi ma trận hiệp phương sai (các vector mẫu t p trung ch y u trong này) ậ ủ ế ở

Trục dài nh t ám chỉ ấ hướng bi n ếthiên quan tr ng nh t c a d u ọ ấ ủ ữ liệ(có variance - “phương sai” - cao nhất) Đây chính là hướng của Eigenvector ng v i eigenvalues ứ ớ

ấGốc tọa độ chính

Hình 3.5 Chi u biến thiên c a dữ liệuHình 3.4 Bi u di n các hình nh khuôn m t theo các eigenfaces ể ễ ả ặDiễn gi i hình h c c a ả ọ ủ phương pháp PCA (tìm các eigenvalue/eigenvector ):

- PCA chiếu dữ liệu theo hướng mà ở đó dữ liệ u khác nhau nhi u nh ề ất.- Các hướng này được xác định bằng các eigenvectors ma trận hiệp phương sai C

Một ví d trong không gian 2 chi u: ụ ề

Biế đổn i (chi u) ếVector 2 chiều,

trong không gian với các cơ sở là x , x12

Vector chỉ còn

1 chi uề , trong không gian với cơ sở là y1

Hình 3.6 Ví d v ụ ề giảm s chi u trong hình h c theo chi u bi n thiênố ề ọ ề ế

Trang 36

3.4 Nhận dạng khuôn mặt bằng các eigenfaces 3.4.1 Phương pháp

Cho 1 hình ảnh khuôn mặt chưa xác định được danh tính ( nh chính diả ện được đưa vềkích thước giống trong tập mẫu) Giai đoạn nhận dạng này gi ng hố ệt giai đoạn bi u di n nh ể ễ ảkhuôn m t trong t p m u Ta th c hi n lặ ậ ẫ ự ệ ần lượt các bước sau:

Bước 1: Chuẩn hóa : (3.18)

Điều này cũng tương ứng như quy vector đầu vào về không gian v i gớ ốc tọa độ ớ m i (gốc tọa độ này gọi là meanface)

Bước 2: Biểu di n thành như sau:

Bước 4: Nếu er<Tr(Tr là một ngưỡng chọn chấp nhận được nào đó)

Tức là ảnh khuôn mặt cần xác định “đủ ần” với ảnh c g ủa người thứ l trong tập mẫu Khi

đó, ta kết luận đó chính là khuôn mặ ủa ngườt c i thứ l

3.4.2 Hệ thống thực tế

Thư viện đào tạo hệ thống nhận diện gồm:

- Bộ hình ảnh positive ch a nhứ ững hình ảnh khuôn mặt của ững thành viên được nhchụp kèm theo với tên tương ứng của h , mọ ỗi người sẽ ử ụ s d ng 20 nh khuôn m t ả ặở các thời điểm khác nhau trong ngày

- Bộ hình ảnh negative chứa 400 ảnh của 40 ngườ ạ i l

Sau khi đào tạo bộ thư viện, hệ thống sẽ đưa ra file xml phục vụ cho việc nhận d ng ạ

3.5 Kết luận chương

Từ việc phân tích ưu nhược điểm của các phương pháp xác định, nhận diện khuôn mặt em đã quyết định được các phương pháp xác định, nhận dạng định danh cho riêng mình và đã trình bày c ụ thể ở chương 2 và chương 3 Việc thi t k mế ế ột ứng dụng vào đóng mở cửa t ự động để áp d ng nh n di n khuôn m t v i giá thành th p, nh gụ ậ ệ ặ ớ ấ ỏ ọn có th áp d ng trong ể ụ thự ế được c t thể ệ hi n ở chương 4 tiếp theo Ứng dụng có tích hợp vi điều khiển để có thể thay đổi các thuật toán linh ho t và ti n ích phù h p ạ ệ ợ hơn với nhu c u và công ngh ầ ệ thời đại hi n nay ệ

Ngày đăng: 13/06/2024, 16:53

Xem thêm: