Tải bản đầy đủ (.pdf) (73 trang)

đồ á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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (16.55 MB, 73 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

1

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

<b>Hà Nội, tháng 1 năm 2019 </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

Ngành: <b>Kỹ thu</b>ật đo và tin họ<b>c công nghi</b>ệ<b>p</b>

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

<b>Ứng dụng nhận di n khuôn m</b>ệ ặt trong đ<b>óng - m</b>ở<b> c a t </b><i><b>ừ ự động. </b></i>

<i>2. Các s ố liệu ban đầu </i>

- 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

<i>3. Các n i dung tính tốn, thi t k : </i>ộ ế ế

<i>- Giao diện ứng dụng </i>

 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ệ

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

--***

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<i> </i>Ngày... tháng... năm...

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

<i> (Ký, ghi rõ h tên) </i>ọ <i> (Ký, ghi rõ h tên) </i>ọ

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

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="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 đã ln ở 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 ể hồn thành đồ án c a mình. ủ

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

<i><b>cửa tự động</b></i>” 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 ự ệ

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="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

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

<i>1.1. Ph n c</i>ầ <i><b>ứng ... 3 </b></i>

<i>1.2. Thu t tốn nh n di n khn m</i>ậ ậ ệ ặt, đị<i>nh danh t <b>ự động ... 6 </b></i>

<i>1.3. K t lu</i>ế <i><b>ận chương ... 7 </b></i>

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

2.1. Cơ sở<i> lý thuy</i>ết xác đị<i>nh khuôn m<b>ặt ... 8 </b></i>

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

<i><b>2.3. Xác định khuôn mặt sử dụng Haar Cascades. ... 14 </b></i>

<i>2.4. K t lu</i>ế <i><b>ận chương ... 16 </b></i>

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

<i><b>3.1. Cơ sở lý thuyết ... 17 </b></i>

<i>3.2. Gi m s chi u vector s d ng PCA (Principal Component Analysis)</i>ả ố ề ử ụ <i><b> ... 17 </b></i>

<i>3.3. Tính tốn các Eigenfaces và bi u di n trong không gian khuôn m</i>ể ễ <i><b>ặt ... 19 </b></i>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

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

<i>1. Thêm <b>ảnh cho thành viên mới: ... 49 </b></i>

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

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

<i>2. <b>Chức năng mở của và giữ ... 60 </b></i>

<i>3. <b>Chức năng đóng cửa ... 61 </b></i>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

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

<i>Hình 3.4. Bi u di</i>ể <i>ễn các hình nh khn m</i>ả <i>ặt theo các eigenfaces 24 </i>

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

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

<i>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 </i>ố ồ

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

<i>Hình 4.7. M ch layout 2D ...30 </i>ạ

<i>Hình 4.8. M ch 3D ...30 </i>ạ

<i>Hình 4.9. Mơ hình c a ...31 </i>ử

<i>Hình 4.10. Xung PWM ...31 Hình 4.11. Góc quay động cơ tương ứng độ r ng xung ...32</i>ộ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 ế

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

Hình 5.6. Ghép tồ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 ử ừ

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

vi

<b>DANH MỤC BẢNG BIỂU </b>

<i>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 </i>ụ

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

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>THUẬT NGỮ ANH VIỆT </b>

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

Checksum Giá tr ki m tra ị ể

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

viii

<b>DANH MỤC TỪ VIẾT TẮT, KÝ HIỆU </b>

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

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b>LỜI NÓI ĐẦU </b>

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 ạkhn 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 khn 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ì khn 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 khn m ặt.

Hiện nay đã có rất nhiều thuật tốn khác nhau để xác định khn 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 tố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 khn mặt và thuật tố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 khn mặt cần xử lý.

Với yêu c u cầ ụ th bài toán nh n d ng khn 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 <b>“Ứng dụng nh n di n khuôn m</b>ậ ệ ặt trong đóng

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b>mở c a t</b>ủ <b>ự động”, thiết b</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: <i>Tổng quan về ứng dụng nhận diện khuôn m</i>ặt trong đóng mở<i> cửa tự động Chương 2: Phương pháp xác định khuôn mặt </i>

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

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

Chương 5: Kế<i>t quả và thực nghi</i>ệm đạt đượ<i>c Kết lu</i>ận và hướ<i>ng phát tri n c</i>ể ủa đề<i> tài </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

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b>CHƯƠNG 1. TỔNG QUAN VỀ ỨNG DỤNG NHẬN DIỆN KHN MẶT TRONG ĐĨNG MỞ CỬA TỰ ĐỘNG </b>

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

<b>1.1. P hần cứng </b>

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

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

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

Thơng qua Pi camera, hình ảnh xác định có khn 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:

<i>Bảng 1.1. Chức năng các khối phần cứng </i>

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

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

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

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

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

<i>Hình 1.2. Picamera <sub>Hình 1.3. Máy tính nhúng Raspberry Pi 3 </sub></i>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<i>Hình 1.4. Board </i>điề<i>u khi n, </i>ể

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

<i>Hình 1.5. Động cơ Servo SG90 </i>

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

Thuật toán tính tốn m nh m , hoạ ẽ ạt động song song m nh m , tính tố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 <sup>Thực hi</sup><sup>ện chương trình</sup>

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/

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="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.

<b>1.2. Thuật tốn nhận diện khuôn mặt, định danh tự động </b>

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 khn 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ấ ả khn 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 khn mậ ệ ặt (Recognition): V i hình ớ ảnh đầu vào là hình ảnh khn 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 .

<i>Hình 1.6. Nh</i>ậ<i>n d ng khn m t </i>ạ ặ

Hình nh t camera sả ừ ẽ được máy tính nhúng xử lý để tách khn 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 khn 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

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

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

Những thu t tố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 khn 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 khn 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 tố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. Ngồ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 tốn nh n di n khn 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 khn 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 khn 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 tốn có độ tín h tốn khơng q phứ ạc t p, có th ạy th i gian thểch ờ ực và đặc biệt ít t n tài ngun 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.

<b>1.3. Kết luận chương </b>

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

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

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

<b>2.1. Cơ sở lý thuyết xác định khn mặt </b>

Trong thu t tốn nh n d ng khn m t thì viậ ậ ạ ặ ệc xác định khn 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 tốn t n tề ậ ồ ại để thực hi n việ ệc xác định khn m t, m i thu t tố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 để hồ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 khn 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 khn mặt người (positive) và nh n n không ph i khuôn m t (negative). ả ề ả ặ

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

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 ngun tính ầtốn th p cho phép Camshift phát tri n thành m t thu t tốn theo dõi khn m t th i gian thấ ể ộ ậ ặ ờ ực.

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

<b>Bước 1: </b>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>Bước 2: Tạo một bi</b>ểu đồ màu của vùng được mô hình hóa đối tượng.

<b>Bước 3: Tạ</b>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.

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<b>Bước 4: Dự</b>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>Bước 5: Trọ</b>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>Bước 6: Xử</b> 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. ấ

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

<i>Hình 2.2. Kênh màu s</i>ắ<i>c c a khuôn m t </i>ủ ặ

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="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 tố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 khn m ủ ặt.

<i>Hình 2.3. Xác su t màu da </i>ấ

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

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 khn 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 khn 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 khn 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 khn 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ì ầ ỏ ề ụ ụ ệ ử ủ ố ậ ạ

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="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. ặ ụ ố ệ ậ ạ

<b>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 </b>

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 tốn trong phát hiện đối tượng, xác định khn 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. ả ạ

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

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

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

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

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

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

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

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

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 tố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 tố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 qt qua hình nh, tính ảtố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.

<i>Hình 2.8</i>. Đặ<i>c tính biên </i>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<i>Hình 2.9. Đặc tính đường </i>

<i>Hình 2.10</i>. Đặ<i>c tính trung tâm </i>

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

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 tố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 tố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…

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

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.

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

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

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

<i>Hình 2.11. ng d ng vào hình nh </i>Ứ ụ ả

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 tốn có khoảng 160 000 đặc tính trong cửa sổ.

<i>Hình 2.12. Những đặc tính c a Haar </i>ủ

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.

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="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à khn

Tầng 3Đó là khn

mặtTầng 2Đó là khn

<i>Hình 2.15 Qt t p trung vào vùng sau khi </i>ậ

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

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

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

16

<b>2.4. Kết luận chương </b>

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

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

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

<b>3.1. Cơ sở lý thuyết </b>

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 khn 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 tố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 khn 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 tốn trên vector trong đạ ối s tuy n tính. ế

<b>3.1.1. Lý thuyết giá trị riêng và vector riêng </b>

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 <i>X</i> (3.1)

<b>3.1.2. Tính tốn giá trị riêng và vector riêng </b>

Bằng vi c sệ ử dụng cơng thức (3.1), ta có phương trình: (<i>AI</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(<i>AI</i>) 0, ta tìm riêng và vtrị ector riêng tương ứng.

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

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.

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

hình 3.1:

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

Vector x ban

đầu có N chiều <sup>Vector y về sau </sup><sub>có K chiều </sub>

Ánh xạ tuyến tính

T cần tìm

<i>Hình 3.1. Gi m s chi</i>ả ố <i>ều vector sử d ng </i>ụ <i>phương pháp PCA </i>

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 <b>y = Tx</b> sao cho trung

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

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

<b>3.2.2. Tìm phép biến đổi tuyến tính T </b>

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.

<b>3.2.3. Phương pháp PCA </b>

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

Giả thi t ế <i>x</i><small>1</small>, <i>x</i><sub>2</sub> ,…, <i>x<small>M</small></i> là M vector N chi u. ề

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

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

<i>M</i> <b> . (3.5) Bước 2: Gọi </b>Ф<i><small>i</small>x<small>i</small>x</i><b> (3.6) </b>

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

Ф Ф

<b>Bước 4: Tính tr riêng c</b>ị ủa ma tr n C: ậ <sub>1</sub> <sub>2</sub> ... <i><small>N</small></i><b> . </b>

<b>Bước 5: Tính vector riêng c a C và tr c chu</b>ủ ự ẩn chúng được: <i>u u</i><sub>1</sub>, ,...,<sub>2</sub> <i>u<small>N</small></i><b> . Bất k vector </b>ỳx hoặc <i>x x</i> 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>Bước 6: Giảm số chi u c a vector, chỉ gi l i k trị riêng lớn nh t: </b>ề ủ ữ ạ ấ

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:

<i><small>Nii k</small></i>

<i>ex x</i> (3.10)

Khi đó ta được k vector riêng tương ứng k trị riêng lớn nhất: { , ,..., }<i>u u</i><small>12</small> <i>u<small>k</small></i>

<b>3.3. Tính tốn các E</b>igenfaces và biểu diễn trong không gian khuôn mặt

<b>3.3.1. Tính tốn các eigenfaces </b>

Có các hình nh khn m t Iả ặ <small>1</small>, I , …, I<small>2n </small>(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 khn 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 tốn để tạo ra các Eigenfaces (khn m t riêng): ặ

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

<i>Hình 3.2. Hình nh khn m t trong t p hu n luy n </i>ả ặ ậ ấ ệ

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

<b>Bước 2: Biể</b>u di n m i ảnh I thành vector ễ ọ <small>i </small> <i><sub>i</sub></i> (ví d v 4 ụ ề vector được tính tốn)

<small>1</small>

<small>2</small>

2 <small>3</small>

<small>4</small>

<b>Bước 3: Tính vector khn m t trung bình (mean face) </b>ặ <b> theo cơng thức: </b>

<b>Bước 4: Trừ vector khn m t trung bình (mean face): </b>ặ

<i><small>ii</small></i> (3.12) 53.50

<i><small>i</small></i> <small>2</small>

<small>3</small>

<small>4</small>

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

<i>MM</i> (3.13) Trong đó <i>A</i> [ <sub>1</sub> <sub>2</sub>... <i><small>M</small></i>], C là ma tr n c p N x Nậ ấ <small>22 </small>

Cụ thể ta có:

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="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><small>i</small></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>Bước 6: Tính các Eigenvector u (vector riêng) c</b><small>i</small> ủa ma tr n vng A.A (C có kích ậ <small>T</small>thước N<small>2</small>xN<small>2</small><b> quá lớn). </b>

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

33998 50914 70771 1414111015 43014 14141 39888

<i><small>T</small>A A</i>

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

Ở đâ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 ủ ậ <small>T</small> ẽ ắ ế ạ ứ ự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.

<small>1</small>

<i>v</i> <small>2</small>

<i>v</i> <small>3</small>

0.3060.631

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

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

<i>u<sub>i</sub>Av<sub>i</sub></i> (3.14) Ta có:

<small>1</small>

<i>u</i> <small>2</small>

<i>u</i> <small>3</small>

<i>u</i> <small>2</small>

<i>u</i> <small>3</small>

- Tính M vector riêng ui t t nhố ất của A.AT theo công th c: ứ <i>u<sub>i</sub>Av<sub>i</sub></i>

<b>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</b>ạ ố ứ ớ ị ớn nhất), tất nhiên K<<N<small>2</small>.

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

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="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)

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

Mỗi khn mặt <i><small>i</small></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 tốn như mục 3.3.1.

<i>Hình 3.3. Bi</i>ể<i>u di n trong khơng gian hình h c </i>ễ ọ

Ta g i các vector riêng u là các Eigenfaces (khuôn mọ <small>i</small> ặt riêng). Như vậy, t bây gi , mừ ờ ỗi khuôn m t trong t p hu n luyặ ậ ấ ện <i><small>i</small></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ó:

<i>uuui</i>

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="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 - <i>“phương sai” </i>- cao nhất). Đây chính là hướng của Eigenvector ng v i eigenvalues ứ ớ

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

<i>Hình 3.5. Chi u bi</i>ề <i>ến thiên c a d</i>ủ <i>ữ liệuHình 3.4. Bi u di n các hình nh khn m t theo các eigenfaces </i>ể ễ ả ặ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 <i><b>2 chiều</b></i>,

trong không gian với các cơ sở là x , x<small>12 </small>

Vector chỉ cịn

<i><b>1 chi u</b></i>ề , trong khơng gian với cơ sở là y<small>1. </small>

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

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

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

Cho 1 hình ảnh khn 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>Bước 1: Chuẩn hóa : (3.18) </b>

Đ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>Bước 2: Biểu di n thành như sau: </b>ễ

<b>Bước 4: Nếu e</b><small>r</small><T<small>r</small>(T<small>r</small> là một ngưỡng ch<b>ọn chấp nhận được nào đó). </b>

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

đó, ta kết luận đó chính là khn mặ ủa ngườt c i thứ . <i>l</i>

<b>3.4.2. Hệ thống thực tế </b>

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

<b>3.5. Kết luận chương </b>

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

</div>

×