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 2NHIỆM VỤ THIẾT KẾ TỐT NGHIỆP
Họ và tên: Lê Văn Tuấn Mã số sinh viên: 20144886
Khóa: 59
Viện: Điện
Ngành: K ỹ thuật đo và tin học công nghiệp
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ệ
4 Cán b ộ hướng d n: ẫ TS Trầ n Th ị Thả o
5 Ngày giao nhi m v thi t kệ ụ ế ế: Ngày tháng năm 201.
6 Ngày hoàn thành nhi m vệ ụ: Ngày tháng năm 201
Độ ậc l p - T do - Hạnh phúc ự -
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
***
Trang 3Ngà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 4LỜ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 5ii
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
3.4 Nh n d ng khuôn m t b ng các eigenfacesậ ạ ặ ằ 25
3.5 K t luế ận chương 25
CHƯƠNG 4. THI ẾT KẾ ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT TRONG ĐÓNG MỞ C ỬA T Ự ĐỘNG 26
4.1 Mô t ng dả ứ ụng 26
4.2 Lưu đồ thu ật toán ứng dụng nhận dạng khuôn mặt trong đóng-m ở của tự động 34
4.3 Giao di n ng dệ ứ ụng 35
4.4 Qu n lý d u thành viênả ữ liệ 36
4.5 Ti n ích thông minhệ 37
Trang 64.6 K t luế ận chương 39
CHƯƠNG 5 K ẾT QUẢ VÀ THỰC NGHIỆM ĐẠT ĐƯỢC 40
5.1 M ch ph n cạ ầ ứng 40
5.2 Giao di n cho ng dệ ứ ụng 42
5.3 Ti n ích thông minhệ 45
5.4 Đánh giá ứng d ng sau khi thi t kụ ế ế 45
5.5 K t luế ận chương 46
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 47
TÀI LI U THAM KH O 48Ệ Ả PHỤ Ụ L C 49
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 ng 3 Test- ki ểm th b ử ằng hình ả 51 nh 4 Ch ạy ứng dụ 52 ng 5 Thi ết kế giao diện cho ng dứ ụ 54 ng Phụ lục C: Code trên Board điều khiển 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 8Hì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 9vi
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 10THUẬT NGỮ ANH VIỆT
Haar classifier Bộ phân loại Haar
Haar cascade Tầng phân loại Haar
Mean face Khuôn m t trung bình ặ
Acknowledgement Tin báo xác nh n ậ
Checksum Giá tr ki m tra ị ể
Trang 11viii
DANH MỤC TỪ VIẾT TẮT, KÝ HIỆU
GPU Graphics Processing Unit Bộ xử lý đồ ọa h
CPU 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
một cách liên t c ụOpenCV Open Source Computer Vision Thư viện nguồn mở cho thị giác
máy tính PCA Principal Component Analysis Phân tích thành ph n ch yầ ủ ếu MSE Mean Squared Error Trung bình bình phương lỗi HDMI High Definition Multimedia
FSMC Flexible Static Memory Controller Bộ điều khiển bộ nh ớ tĩnh
SDIO Secure Digital Input/Output Vào ra s an toàn ố
CAN Controller Area Network Bộ điều khiển vùng mạng
USB Universal Serial Bus Đường d u n i ti p ph bi n ữ liệ ố ế ổ ếPWM Pulse Width Modulation Sự điều ch r ng xung ế độ ộ
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 12LỜ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 13mở 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 14CHƯƠ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 15Thô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 16Hì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
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 17Từ 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 Nhận 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 18Hiệ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 19CHƯƠ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 20Bướ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 sắc c a khuôn m t ủ ặ
Trang 21Dự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 23Hì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 24Hì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 25trong m i b phân t ng ỗ ộ ầ
Kích thước của bộ nhớ chuyên dụng
Đối tượng có đối xứng hay không
Các thu c tính cộ ủa Haar để ử ụ s d ng
Kích thước mẫu
Những hình nh nả ền được sử dụng để o m u negative, t ô vuông của những hình nh, tạ ẫ ừ ả
và ở đây các hình ảnh đã được chọn từ một thư viện ảnh riêng cho thấy s khác bi t trong ự ệgradient màu xám
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 26Vì 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 ấ ỳ
Trang 2716
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 28CHƯƠ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:
(A I) 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(A I) 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 29Vector 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
2 1
i i i
Ở đâ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 ,…, x M là M vector N chi u ề
Trang 30Bước 1: Tính vector trung bình:
1
1
i i
M (3.5) Bước 2: Gọi Фi x i x (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:
1
1
T n
n
T n
Ф Ф
C
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 u N 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: ề ủ ữ ạ ấ
2
N i
i k
e x x (3.10)
Khi đó ta được k vector riêng tương ứng k trị riêng lớn nhất: { , , , }u u1 2 u k
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 , …, I2 n (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 31Bướ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
22522948251332380255217 2
102192425518247172552 3
196352342325924424357226 4
2552232242550255249255235
Bước 3: Tính vector khuôn m t trung bình (mean face) ặ theo công thức:
24.50141.50101.5016.2531.502.00115.25148.5056.00 4
83.5046.5091.506.7527.509.00121.7549.5065.00
Bước 5: Tính ma trận hiệp phương sai:
M M (3.13) Trong đó A [ 1 2 M], C là ma tr n c p N x Nậ ấ 2 2
Cụ thể ta có:
Trang 3253.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
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
v 3
0.6400.3140.3060.631
Trang 33u 3
39.78752.38046.6759.59133.49311.72588.21360.53358.978
u 3
0.2640.3470.3090.0640.2220.0780.5850.4010.391
- Tính M vector riêng ui t t nhố ất của A.AT theo công th c: ứ u i Av i
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
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 Biểu 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:
1 2
i K
V i i=1, ớ 2,…, M C ụ thể ta có:
1 2
T i T i i T
u u
u i
Trang 35Mặ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
là
Hình 3.5 Chi u biề ến thiên c a dủ ữ liệu
Hì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: ụ ề
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 363.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: ễ
1 2
T T
T
u u u
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 ệ