Đồ án tốt nghiệp - Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

32 528 0
Đồ án tốt nghiệp - Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh LỜI CẢM ƠN Em xin chân thành cảm ơn các thầy, các cô khoa Công nghệ Thông tin Trường Đại học Dân lập Hải Phòng đã tận tình dạy dỗ, truyền đạt cho chúng em nhiều kiến thức quý báu. Em xin tỏ lòng biết ơn sâu sắc đến thầy Th.s Ngô Trường Giang, người đã tận tình giúp đỡ và truyền đạt nhiều kinh nghiệm để đề tài có thể được thực hiện và hoàn thành. Xin chân thành cảm ơn các bạn trong khoa Công Nghệ Thông Tin, Đại Học Dân Lập Hải Phòng đã giúp đỡ, động viên tôi rất nhiều trong quá trình thực hiện đề tài. Em xin trân trọng cảm ơn! Hải Phòng, tháng 08 năm 2007. Sinh viên Lê Hồng Chuyên Lê Hồng Chuyên _ CT701 Trang: 1 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh MỤC LỤC LỜI CẢM ƠN...................................................................................................1 CHƯƠNG 1: TỔNG QUAN VỀ PHÁT HIỆN KHUÔN MẶT...........................3 1.1. Giới thiệu....................................................................................................3 1.2. Một số lĩnh vực ứng dụng phát hiện khuôn mặt.........................................3 1.3. Một số phương pháp xác định khuôn mặt người........................................4 1.4. Khó khăn và thách thức trong bài toán xác định khuôn mặt.......................5 CHƯƠNG 2: PHÁT HIỆN KHUÔN MẶT SỬ DỤNG ADABOOST.................6 2.1. Giới thiệu....................................................................................................6 2.2. Trích chọn đặc trưng cho AdaBoost...........................................................7 2.3. Thuật toán ADABOOST.............................................................................9 2.4. Bộ dò tìm phân tầng Adaboost..................................................................11 2.5. Huấn luyện dò tìm khuôn mặt...................................................................13 2.6. Dò tìm khuôn mặt.....................................................................................13 CHƯƠNG 3: PHÁT HIỆN KHUÔN MẶT SỬ DỤNG MẠNG NƠRON.........15 3.1. Tổng quan về mạng nơron nhân tạo..........................................................15 3.2. Huấn luyện dò tìm khuôn mặt...................................................................23 3.3. Quá trình dò tìm khuôn mặt......................................................................24 CHƯƠNG 4: CÀI ĐẶT ỨNG DỤNG................................................................26 4.1. Môi trường TEST......................................................................................26 4.2. Một số giao diện chính..............................................................................26 4.3. Kết quả......................................................................................................29 4.4. Nhận xét....................................................................................................30 KẾT LUẬN.....................................................................................................31 TÀI LIỆU THAM KHẢO..............................................................................32 Lê Hồng Chuyên _ CT701 Trang: 2 Đồ án tốt nghiệp CHƯƠNG 1: Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh TỔNG QUAN VỀ PHÁT HIỆN KHUÔN MẶT 1.1. Giới thiệu Xác định khuôn mặt người (Face Detection) là một kỹ thuật máy tính để xác định các vị trí và các kích thước của các khuôn mặt người trong các ảnh bất kỳ (ảnh kỹ thuật số). Kỹ thuật này nhận biết các đặc trưng của khuôn mặt và bỏ qua những thứ khác, như: tòa nhà, cây cối, cơ thể, … 1.2. Một số lĩnh vực ứng dụng phát hiện khuôn mặt Phát hiện khuôn mặt đã được ứng dụng trong rất nhiều lĩnh vực: - Hệ thống tương tác giữa người và máy: giúp những người bị tật hoặc khiếm khuyết có thể trao đổi. Những người dùng ngôn ngữ tay có thể giao tiếp với những người bình thường. Những người bị bại liệt thông qua một số ký hiệu nháy mắt có thể biểu lộ những gì họ muốn, …. Đó là các bài toán điệu bộ của bàn tay (hand gesture), điệu bộ khuôn mặt, … - Nhận dạng người A có phải là tội phạm truy nã hay không? Giúp cơ quan an ninh quản lý tốt con người. Công việc nhận dạng có thể ở trong môi trường bình thường cũng như trong bóng tối (sử dụng camera hồng ngoại). - Hệ thống quan sát, theo dõi và bảo vệ. Các hệ thống camera sẽ xác định đâu là con người và theo dõi con người đó xem họ có vi phạm gì không, ví dụ xâm phạm khu vực không được vào, …. - Thẻ căn cước, chứng minh nhân dân (Face dentification). - Điều khiển vào ra: văn phòng, công ty, trụ sở, máy tính,…. Kết hợp thêm vân tay và hốc mắt. Cho phép nhân viên được ra vào nơi cần thiết, hay mỗi người sẽ đăng nhập máy tính cá nhân của mình mà không cần nhớ tên đăng nhập cũng như mật khẩu mà chỉ cần xác định thông qua khuôn mặt. - An ninh sân bay, xuất nhập cảnh (hiện nay cơ quan xuất nhập cảnh Mỹ đã áp dụng). Dùng để xác thực người xuất nhập cảnh và kiểm tra có phải là nhân vật khủng bố không. Lê Hồng Chuyên _ CT701 Trang: 3 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh - Tương lai sẽ phát triển các loại thẻ thông minh có tích hợp sẵn đặc trưng của người dùng trên đó, khi bất cứ người dùng khác dùng để truy cập hay xử lý tại các hệ thống sẽ được yêu cầu kiểm tra các đặc trưng khuôn mặt so với thẻ để biết nay có phải là chủ thẻ hay không. - Tìm kiếm và tổ chức dữ liệu liên quan đến con người thông qua khuôn mặt người trên nhiều hệ cơ sở dữ liệu lưu trữ thật lớn, như internet, các hãng truyền hình, …. Ví dụ: tìm các đoạn video có tổng thống Bush phát biểu, tìm các phim có diễn viên Thành Long đóng, tìm các trận đá banh có Ronaldinho đá. - Một số hãng sản xuất máy chụp ảnh đã ứng dụng bài toán xác định khuôn mặt người vào máy chụp ảnh thế hệ mới để cho kết quả hình ảnh đẹp hơn. 1.3. Một số phương pháp xác định khuôn mặt người Có nhiều nghiên cứu tìm phương pháp xác định khuôn mặt người, từ ảnh xám đến ngày nay là ảnh màu. Dựa vào tính chất của các phương pháp xác định khuôn mặt người trên ảnh, chúng ta có thể phân chia các phương pháp này thành bốn hướng tiếp cận chính: - Hướng tiếp cận dựa trên tri thức: Mã hóa các hiểu biết của con người về các loại khuôn mặt người thành các luật. Thông thường các luật mô tả quan hệ của các đặc trưng. - Hướng tiếp cận dựa trên đặc trưng không thay đổi: Mục tiêu các thuật toán đi tìm các đặc trưng mô tả cấu trúc khuôn mặt người mà các đặc trưng này sẽ không thay đổi khi tư thế khuôn mặt, vị trí đặt thiết bị thu hình hoặc điều kiện ánh sáng thay đổi. - Hướng tiếp cận dựa trên so khớp mẫu: Dùng các mẫu chuẩn của khuôn mặt người (các mẫu này được chọn lựa và lưu trữ) để mô tả cho khuôn mặt người hay các đặc trưng khuôn mặt (các mẫu này phải chọn làm sao cho tách biệt nhau theo tiêu chuẩn mà các tác giả định ra để so sánh). - Hướng tiếp cận dựa trên diện mạo: Trái ngược hẳn với so khớp mẫu, các mô hình học ở đây được học từ một tập ảnh huấn luyện cho trước. Sau Lê Hồng Chuyên _ CT701 Trang: 4 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh đó hệ thống sẽ xác định khuôn mặt người. Một số tác giả còn gọi hướng tiếp cận này là hướng tiếp cận theo phương pháp học. 1.4. Khó khăn và thách thức trong bài toán xác định khuôn mặt Việc xác định khuôn mặt người có những khó khăn nhất định: - Hướng (pose) của khuôn mặt đối với máy ảnh, như: nhìn thẳng, nhìn nghiêng hay nhìn từ trên xuống. Cùng trong một ảnh có thể có nhiều khuôn mặt ở những tư thế khác nhau. - Sự có mặt của các chi tiết không phải là đặc trưng riêng của khuôn mặt người, như: râu quai nón, mắt kính, …. - Các nét mặt (facial expression) khác nhau trên khuôn mặt, như: vui, buồn, ngạc nhiên, …. - Mặt người bị che khuất bởi các đối tượng khác có trong ảnh. - Điều kiện ảnh, đặc biệt là về độ sáng và chất lượng ảnh, chất lượng thiết bị thu hình. - Trục tọa độ của máy ảnh so với ảnh. - Nhiều khuôn mặt có vùng da dính lẫn nhau. Các khó khăn trên chứng tỏ rằng bất cứ thuật toán nào dùng để xác định khuôn mặt người cũng sẽ không thể tránh khỏi một số khiếm khuyết nhất định. Để đánh giá và so sánh các phương pháp xác định mặt người, người ta thường dựa trên các tiêu chí sau: - Tỷ lệ xác định chính xác là tỷ lệ số lượng các khuôn mặt người được xác định đúng từ hệ thống khi sử dụng một phương pháp để xây dựng so với số lượng khuôn mặt người thật sự có trong các ảnh (detection rate). - Số lượng xác định nhầm là số lượng vùng trong ảnh không phải là khuôn mặt người mà hệ thống xác định nhầm là khuôn mặt người (false positives). - Thời gian thực hiện là thời gian để máy tính xác định khuôn mặt người trong ảnh (running time). Lê Hồng Chuyên _ CT701 Trang: 5 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh CHƯƠNG 2: PHÁT HIỆN KHUÔN MẶT SỬ DỤNG ADABOOST 2.1. Giới thiệu Bài toán dò tìm khuôn mặt nhanh trên ảnh là bài toán quan trọng vì quá trình nhận dạng đối tượng sẽ thiếu chính xác nếu như thiếu bước dò tìm và định vị được đối tượng. Bài toán dò tìm khuôn mặt nhanh có ý nghĩa rất quan trọng trong việc nhận dạng, theo vết các đối tượng chuyển động trong các đoạn video hay camera. 2.1.1. Các hướng tiếp cận dò tìm khuôn mặt nhanh - Hướng dò tìm khuôn mặt trên ảnh màu dựa trên sự phân tích màu sắc của vùng da. Mặc dù việc xử lý khá nhanh nhưng hướng này có giới hạn chỉ xử lý trên ảnh màu và thường nhạy cảm với ánh sáng, thường chỉ sử dụng làm các bước tiền xử lý cho các hướng khác. - Hướng dò tìm khuôn mặt dựa trên đặc trưng bất biến của khuôn mặt người. Thành công nhất trong dò tìm khuôn mặt người trong thời gian thực là phương pháp ASM (Active shape Models). - Hướng dò tìm khuôn mặt dựa trên thông tin hình ảnh gồm mạng nơ-ron, các hướng thống kê (SVM, AdaBoost…). Phương pháp SVM và mạng nơ-ron cũng đạt được kết quả cao trong thời gian khá nhanh song cũng chỉ vài ảnh trong một giây nên khó có thể áp dụng trong việc nhận dạng thời gian thực. Riêng phương pháp AdaBoost cho kết quả khả quan vì có thể xử lý đến khoảng 15-20 khung hình trong một giây. 2.1.2. Hướng tiếp cận theo AdaBoost - Phương pháp dò tìm AdaBoost dựa trên ý tưởng xây dựng các bộ dò tìm yếu mặc dù độ chính xác không cao nhưng có thời gian xử lý rất nhanh. Tuy nhiên khi kết hợp các bộ dò tìm lại có thể đạt độ chính xác cao. - Phương pháp AdaBoost sử dụng kết hợp các đặc trưng vốn dĩ tính toán rất nhanh, thích hợp cho việc dò tìm trong thời gian thực. Lê Hồng Chuyên _ CT701 Trang: 6 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh - Các bộ phân loại AdaBoost có thể xây dựng phân tầng với độ phức tạp xử lý từ thấp đến cao, nhằm loại nhanh các ứng viên xấu (không phải mặt người) vốn dĩ nhiều hơn nhiều các ứng viên là mặt nguời để cho bộ phân loại phức tạp hơn chỉ còn lại ít ứng viên chưa bị loại. 2.2. Trích chọn đặc trưng cho AdaBoost Một phương pháp chọn đặc trưng thích hợp cho AdaBoost là phép biến đổi Haar-like. Phép biến đổi Haar-like dựa trên ý tưởng rất đơn giản, đặc trưng được tính bằng độ chênh lệch giữa tổng các miền hình học. Có 3 tập hợp miền hình học chính như sau: Hình 2-1: Các miền hình học đặc trưng Haar-like Giả sử miền đen là dương và miền trắng là âm thì đặc trưng Haar-let tính bằng tổng giá trị pixel các ô đen trừ cho tổng giá trị các pixel các ô trắng. Cách tính nhanh phương pháp Haar-like dựa trên đạo hàm ảnh bậc nhất ii(x,y) của ảnh i(x,y). Đạo hàm ii(x,y) của ảnh i(x,y) chính là tổng giá trị các pixel tính từ gốc trái trên đến (x,y) : ii ( x, y ) = ∑ ∑ i ( x' , y ' ) x '≤ x y '≤ y Lê Hồng Chuyên _ CT701 (2.1) Trang: 7 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh Hình 2-2: Ý nghĩa hình học của đạo hàm ảnh Việc tính toán đạo hàm ảnh được thực hiện rất nhanh bằng việc cộng lũy tích như sau: s(x,y) = s(x,y-1) + i(x,y) (2.2) ii(x,y) = ii(x-1,y) + s(x,y) (2.3) trong đó s(x,y) là tổng của cột x tính từ đầu dòng đến vị trí (x,y). Sau khi có được đạo hàm ảnh, ta chỉ việc tính giá trị một ô chữ nhật bằng cách như sau: chẳng hạn ô chữ nhật D ta có val(D) = val(ABCD) – val(AC) – val(AB) + val(A) , do đó nếu tính theo tọa độ (x,y) ta có phương trình sau: sr = (ii(x,y) + ii(x-W,y-L)) – (ii(x-W,y) + ii(x,y-L)) (2.4) Hình 2-3: Cách tính giá trị một ô đặc trưng Lê Hồng Chuyên _ CT701 Trang: 8 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh Cuối cùng, việc tính các đặc trưng Haar-like chỉ còn là trừ giá trị tổng các ô chữ nhật được tính như trên. 2.3. Thuật toán ADABOOST Xét bài toán hai lớp, mẫu huấn luyện bao gồm M bộ (xi,yi) đã được gán nhãn, với i ∈ {1,2,..,M} trong đó yi ∈ {+1,-1} là nhãn và xi ∈ Rn là các mẫu huấn luyện. Trong AdaBoost, một bộ phân loại mạnh hơn được xây dựng dựa trên sự kết hợp tuyến tính giữa M bộ phân loại yếu hơn: M H M ( x ) = ∑ hm ( x ) (2.5) m −1 Các bộ phân loại yếu hơn có thể mang các giá trị thực, hm(x) ∈ R. Phân loại của x được quyết định bằng hàm H(x) = sign[HM(x)], trong đó độ lớn | HM(x)| cho ta độ tin cậy. Mỗi mẫu được kết hợp với một trọng số. Trong quá trình học, các trọng số sẽ được cập nhật động nhấn mạnh các phân loại mạnh trước đó bị phân loại sai. Tuy nhiên, quá trình cập nhật trọng số chỉ cần thiết đối với thuật toán AdaBoost trước đây. Đối với các thuật toán AdaBoost cải tiến gần đây, quá trình này có thể được thay thế bằng một hàm tối ưu hóa. Lỗi xảy ra khi H (x) ≠ y hay yHM(x) < 0. Lề của mẫu (x, y) qua hàm h(x) ∈ R trên tập các mẫu huấn luyện được định nghĩa là yh(x). Lề có thể được xem là số đo độ tin cậy của giá trị đoán trước của h. Lỗi phân lớp của HM có biên trên là: J ( H M ) = ∑ e − yi H M ( xi ) (2.6) Thuật toán AdaBoost xây dựng hàm h(x) bằng cách giảm tối đa (2.6). Cho: M −1 H M −1 ( x) = ∑ hm ( x) , (2.7) m −1 HM(x) tốt nhất cho phân loại mạnh HM(x) = HM - 1(x) + hm(x) Là hàm dẫn tới giá trị nhỏ nhất: Hm = arg min J(H (x) h (x)) và hàm có giá trị nhỏ nhất được chứng minh là: Lê Hồng Chuyên _ CT701 (2.8) Trang: 9 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh P( y = + 1 | x, ω ( M −1) ) 1 hM ( x) = log 2 P( y = − 1 | x, ω ( M −1) ) (2.9) với ω(M-1) là trọng số tại thời điểm M. Dùng công thức P(y| x,ω) = P(x| y,ω) P(y) và cho P( x | y = +1, ω ) 1 LM ( x) = log 2 P( x | y = −1, ω ) T= 1 P ( y = +1)  log 2  P ( y = −1)  (2.10) (2.11) chúng ta có được hM (x) = LM(x) – T. LM được học ra từ các mẫu của cả hai phân lớp. Ngưỡng T được xác định bằng tỉ lệ log của các xác suất trước đó. Ta có một phương pháp để tính phương trình (2.11), ứng dụng khi học các bộ phân lớp tối ưu. Vì rút ra một bộ phân loại yếu trong một miền không gian nhiều chiều là công việc quan trọng, sau đây một mô hình thống kê học theo từng giai đoạn dựa trên vài đặc điểm vô hướng. Một đặc điểm vô hướng j của x được tính bằng một phép biến đổi từ không gian dữ liệu n chiều thành đường thẳng thực zj(x) ∈ Z. Một đặc điểm có thể là hệ số, hay nói trong xử lý ảnh là phép biến đổi vi ba tín hiệu. Nếu phương pháp tìm kiếm ước lượng được sử dụng như phép biến đổi zj(x) đơn giản được xem là toạ độ thứ j của x. Một danh sách K đặc điểm ứng cử viên có thể được tạo: Z ={ zj(x), …, zK(x)}. Giả sử Z là một tập rất hoàn chỉnh, tập các phân lớp yếu có thể có cho bài toán phân lớp yếu tối ưu có thể được lập như sau: Trước tiên, tại giai đoạn M, khi M-1 đặc điểm của z(1), z(2), …, z(M-1) đã được chọn và trọng số cho là ωM-1, chúng ta có xấp xỉ p(x|y, ωM-1)) bằng cách dùng phân bố của M đặc điểm: p(x|y, ωM-1) ≈ p(z(1), z(2), …, z(M-1), zk, |y, ωM-1) (2.12) = p(z(1)|y, ωM-1) p(z(2) |y, z(1), ωM-1)… Lê Hồng Chuyên _ CT701 Trang: 10 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh p(z(M-1)|y, z(1), z(2), …, z(M-2), ωM-1) p(zk, |y, z(1), z(2), …, z(M-1), ωM-1) (2.13) Bởi vì Z là tập rất hoàn chỉnh, phép xấp xỉ vẫn tốt đối với tập M đủ lớn khi M đặc điểm được chọn thích hợp. Ghi chú: p(zm|y, z(1), z(2), …, z(m-1)) thực ra là p(zm|y, ω(m-1)) bởi vì ω(m) chứa thông tin về toàn bộ quá trình tạo ω và bao gồm các thành phần lệ thuộc trên z(1), z(2), …, z(m-1). Vì vậy, chúng ra có: p(x|y, ωM-1) ≈ p(z(1)| y, ω(0)) p(z(2)| y, ω(1))… p(z(M-1)| y, ω(M-2)) p(zk| y, ω(M-1)) (2.14) Mật độ xác suất p(zk| y, ω(M-1)) cho phân lớp dương y = +1 và phân lớp âm y = -1 có thể phỏng đoán được từ histogram tính được qua đánh giá công nhận trọng số của các ví dụ huấn luyện sử dụng các trọng số ω(M-1). Cho : L(kM ) ( x ) = P ( z k | y = +1, ω ( M −1) ) , P ( z k | y = −1, ω ( M −1) ) và hk( M ) ( x) = { 1 (M ) Lk ( x ) − T 2 } (2.15) chúng ta rút ra được tập hợp các phân lớp yếu hơn như sau: { Γ ( M ) ( x) = hk( M ) ( x) | ∀k } (2.16) 2.4. Bộ dò tìm phân tầng Adaboost Với một bộ dò tìm c do phương pháp AdaBoost huấn luyện được, ta có thể dò tìm với một độ chính xác nhất định và một tốc độ nhất định. Nếu như cần phải chính xác cao thì bộ dò tìm phải bao gồm nhiều đặc trưng, điều đó kéo theo tốc độ dò tìm sẽ giảm. Lê Hồng Chuyên _ CT701 Trang: 11 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh Nếu sử dụng bộ dò tìm kết hợp F={ci} với nhiều bộ dò tìm cơ bản fi khác nhau cũng rơi vào tình trạng tương tự. Để có được độ chính xác cao, hoặc cần phải có số lượng lớn các bộ dò tìm, hoặc mỗi bộ dò tìm cần phải có nhiều đặc trưng, hoặc cả hai, thì đồng thời cũng sẽ làm cho tốc độ giảm đi. Một hướng khắc phục nhược điểm này là sử dụng bộ dò tìm phân tầng T={t i}. Bộ dò tìm phân tầng bao gồm nhiều tầng, mỗi tầng ti = {cj} là một bộ dò tìm kết hợp với số lượng các bộ dò tìm khác nhau nên có tốc độ và độ chính xác khác nhau. Khi dò tìm tất cả các khuôn mặt trong ảnh, tất cả các cửa sổ con W 0={wi,j,s} với các kích thước s khác nhau tại các tọa độ (i,j) sẽ được kiểm tra xem có phải là mặt người hay không. Qua mỗi tầng ti, Wi = ti(Wi-1) trong đó |Wi|A). - Trích chọn các đặc trưng của ảnh. - Tiến hành xử lí tập ảnh huấn luyện bằng Histogram và nhận dạng biên CANNY - Áp dụng bộ huấn luyện phân tầng. 2.6. Dò tìm khuôn mặt Việc dò tìm khuôn mặt trong ảnh qua bộ phân tầng đã huấn luyện gặp một vấn đề là số sửa sổ với các kích thước khác nhau quá lớn. Để khắc phục vấn đề này, phương pháp dò theo kiến trúc tháp được áp dụng như sau: xét ảnh s kích thước (wxh) , step = 0 , hệ số co scale = 1.2  Lặp trong khi kích thước (w x h) còn lớn hơn cửa sổ ảnh mặt người huấn luyện (w0 x h0): - Duyệt toàn bộ các vị trí (x,y) cửa sổ với kích thước (w 0 x h0) , với mỗi vị trí tiến hành: − Áp dụng bộ dò tìm phân tầng để xác định có phải mặt người hay không Lê Hồng Chuyên _ CT701 Trang: 13 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh − Nếu là mặt người tại vị trí (x,y) thì thực tế mặt người tại vị trí (x*scalestep, y*scalestep) và kích thước cửa sổ là (w0*scalestep, h0*scalestep) - Gán w1 = w / scale và h1 = h / scale - Thu nhỏ ảnh từ kích thước (w x h) đến (w1 x h1) - Gán w = w1 và h = h1 - step = step + 1 Nhận xét : Hệ số co scale quyết định độ mịn của các cửa sồ dò tìm, nếu như scale càng nhỏ (≥1 ) thì càng có nhiều cửa sổ dò tìm nên càng chính xác hơn. Áp dụng thuật toán dò theo kiến trúc tháp như trên ta có thể dò tìm tất cả các khuôn mặt ở tất cả các vị trí, song kích thước dò tìm ở mỗi bước như sau : - Bước 1 : kích thước từ (w0, h0) đến (w0*scale,h0*scale) - Bước 2 : kích thước từ (w0*scale,h0*scale) đến (w0*scale2,h0*scale2) - …………. - Bước n : kích thước từ (w0*scalen-1,h0*scalen-1) đến (w0*scale,h0*scale) Lê Hồng Chuyên _ CT701 Trang: 14 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh CHƯƠNG 3: PHÁT HIỆN KHUÔN MẶT SỬ DỤNG MẠNG NƠRON 3.1. Tổng quan về mạng nơron nhân tạo 3.1.1. Khái niệm Là một đơn vị tính toán có nhiều đầu vào và một đầu ra, mỗi đầu vào đến từ một synapse. Đặc trưng của nơ-ron là một hàm kích hoạt phi tuyến chuyển đổi tổ hợp tuyến tính của tất cả các tín hiệu đầu vào thành tín hiệu đầu ra. Hàm kích hoạt này đảm bảo tính chất phi tuyến cho tính toán của mạng nơ-ron. Hình 3-1: Mô hình một nơ-ron nhân tạo 3.1.2. Các thành phần của nơron nhân tạo 3.1.2.1. Synapse Là một thành phần liên kết giữa các nơ-ron, nó nối đầu ra của nơ-ron lớp này với đầu vào của một nơ-ron trong lớp khác. Đặc trưng của synapse là một trọng số mà mỗi tín hiệu đi qua đều được nhân với trọng số này. Các trọng số synapse chính là các tham số tự do cơ bản của mạng nơ-ron, có thể thay đổi nhằm thích nghi với môi trường xung quanh. Lê Hồng Chuyên _ CT701 Trang: 15 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh 3.1.2.2. Bộ cộng Bộ cộng để tính tổng các tín hiệu đầu vào của nơ-ron, đã được nhân với các trọng số synapse tương ứng, phép toán được mô tả ở đây tạo nên một bộ hợp tuyến tính. 3.1.2.3. Hàm truyền Hàm kích hoạt hay còn gọi hàm kích hoạt phi tuyến, chuyển đổi một tổ hợp tuyến tính của tất cả các tín hiệu đầu vào thành tín hiệu đầu ra. Hàm kích hoạt này đảm bảo tính chất phi tuyến cho tính toán mạng nơ-ron. Nó được xem như là một hàm giới hạn, nó giới hạn phạm vi biên độ cho phép tín hiệu đầu ra trong một khoảng giá trị hữu hạn. Một số hàm truyền (kích hoạt ) cơ bản trong mạng nơ-ron được trình bày ở bảng 3.1.  Mạng nơ-ron nhân tạo : Là một hệ thống bao gồm nhiều phần tử xử lý đơn giản (hay còn gọi là nơ-ron) tựa như nơ-ron thần kinh của não người, hoạt động song song và được nối với nhau bởi các liên kết nơ-ron. Mỗi liên kết kèm theo một trọng số nào đó, đặc trưng cho tính kích hoạt hoặc ức chế giữa các nơ-ron. Có thể xem các trọng số là phương tiện để lưu trữ thông tin dài hạn trong mạng nơ-ron và nhiệm vụ của quá trình huấn luyện (học) của mạng là cập nhật các trọng số khi có thêm thông tin về mẫu học, hay nói một cách khác, các trọng số đều được điều chỉnh sao cho dáng điệu vào ra của mạng sẽ mô phỏng hoàn toàn phù hợp với môi trường đang xem xét. Lê Hồng Chuyên _ CT701 Trang: 16 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh Bảng 3.1: Một số hàm kích hoạt. Tên hàm 1. hardlim 2. hardlims 3. purelin 4. Satlin 5. satlins 6. tansig 7. poslin 8. compet 9. logsig 3.1.3. a=0 a=1 a = -1 a=1 a=n a=0 a=n a=1 a = -1 a=n a=1 a= Công thức với n < 0 với n ≥ 0 với n < 0 với n ≥ 0 với n < 0 với 0 ≤ n ≤ 1 với n > 1 với n < 0 với 0 ≤ n ≤ 1 với n > 1 en − e−n 1 + e −n a=0 với n < 0 a=n với n ≥ 0 a = 1 với nơ-ron có n lớn nhất a = 0 với các nơ-ron còn lại a= 1 1 + e −n Mô hình cơ bản của mạng nơron Hình 3-2: Sơ đồ đơn giản về một mạng nơ-ron nhân tạo Lê Hồng Chuyên _ CT701 Trang: 17 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh Mô hình mạng nơ-ron ở trên gồm 3 lớp: lớp nhập (input), lớp ẩn và lớp xuất (output). Mỗi nút trong lớp nhập nhận giá trị của một biến độc lập và chuyển vào mạng. Dữ liệu từ tất cả các nút trong lớp nhập được tích hợp – ta gọi là tổng trọng hóa – và chuyển kết quả cho các nút trong lớp ẩn. Gọi là “ẩn” vì các nút trong lớp này chỉ liên lạc với các nút trong lớp nhập và lớp xuất, và chỉ có người thiết kế mạng mới biết lớp này (người sử dụng không biết lớp này). Các nút trong lớp xuất nhận các tín hiệu tổng trọng hóa từ các nút trong lớp ẩn. Mỗi nút trong lớp xuất tương ứng với một biến phụ thuộc. 3.1.4. Xây dựng mạng nơron Về cơ bản ta có thể hiểu mạng nơ-ron là một đồ thị có hướng. Trong đó các đỉnh của đồ thị là các nơ-ron và các cạnh của đồ thị là các liên kết giữa các nơ-ron. h1 g1 x h2 f g2 h3 Vì vậy để xây dựng một mạng nơ-ron ta xây dựng một đồ thị có hướng: số đỉnh của đồ thị bằng số nơ-ron trong mạng, giá trị của các cạnh chính là trọng số liên kết nơ-ron. 3.1.4.1. Giải thuật xây dựng mạng nơron đơn giản Input: Cho : • Mạng nơ-ron có num_layer lớp (với num_layer>1). • Mỗi lớp có num_of_layer nơ-ron (num_of_layer>=1). • Trọng số w liên kết nơ-ron ngẫu nhiên trong khoảng (-a,a). Output: Mạng nơ-ron nhân tạo. Kiểu dữ liệu: chọn lưu dữ kiểu mảng : int num_layer; int num_of_layer[num_layer]; Lê Hồng Chuyên _ CT701 Trang: 18 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh float w[i][j][k]; với 2[...]... CT701 Trang: 26 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh Hình 4-2 : Quá trình dò tìm khuôn mặt Hình 4-3 : Kết quả của quá trình dò tìm khuôn mặt Lê Hồng Chuyên _ CT701 Trang: 27 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh Hình 4-4 : Giao diện để hiệu chỉnh các thông số của mạng Nơ-ron Hình 4-5 : Quá trình huấn luyện mạng Nơ-ron Lê Hồng Chuyên... 28 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh 4.3 Kết quả Hình 4-6 : Kết quả của chương trình sau khi dò tìm khuôn mặt (a) (c) (b) (d) Hình 4-7 : (a) Ảnh với môi trường nền phức tạp; (b) và (c) là ảnh khuôn mặt với các tư thế khác nhau, (d) là ảnh khuôn mặt bị che khuất một phần Lê Hồng Chuyên _ CT701 Trang: 29 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn. .. 24 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh Mô tả lưu đồ: - Bước 1: Tiếp nhận ảnh đầu vào có chứa các khuôn mặt - Bước 2: Đánh dấu các vị trí có khả năng là các khuôn mặt trên ảnh Đây là bước để loại đa số những vị trí không phải là khuôn mặt, chỉ giữ lại một số ít những vị trí có khả năng là khuôn mặt - Bước 3: Thực hiện chuẩn hóa dữ liệu tại những nơi đã đánh dấu... nhiều mặt người Như hình 4-8 thì bộ dò tìm phát hiện được 7/11 khuôn mặt, phát hiện nhầm lẫn 4 vùng có khuôn mặt Xây dựng chương trình dò tìm khuôn mặt sử dụng mạng nơ-ron như trên chỉ mang tính chất thử nghiệm thuật toán, cần phải phát triển nhiều hơn nữa để có thể áp dụng vào trong thực tế Lê Hồng Chuyên _ CT701 Trang: 30 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh KẾT... LUẬN Phát hiện khuôn mặt là bài toán cơ bản và quan trọng trong lĩnh vực thị giác máy tính Công nghệ hiện nay còn đang rất non trẻ và có nhiều vấn đề cần phải tiếp tục nghiên cứu Với đề tài Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh , khoá luận đã trình bày tổng quan một số phương pháp phát hiện khuôn mặt, tập trung trình bày hai phương pháp phát hiện khuôn mặt sử dụng mạng Nơ-ron”... được dùng trong việc nhận dạng tiếng nói và ký tự Mạng có một đầu ra giá trị thực, chỉ định cửa sổ có chứa khuôn mặt hay không Lê Hồng Chuyên _ CT701 Trang: 23 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh 3.3 Quá trình dò tìm khuôn mặt Tập mẫu không phải khuôn mặt Tập mẫu khuôn mặt Canh biên mẫu khuôn mặt Tiền xử lí tập mẫu học Huấn luyện dò tìm khuôn mặt thẳng Ảnh thử nghiệm... (w0*scale2,h0*scale2) - ………… - Bước n : kích thước từ (w0*scalen-1,h0*scalen-1) đến (w0*scale,h0*scale) Lê Hồng Chuyên _ CT701 Trang: 14 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh CHƯƠNG 3: PHÁT HIỆN KHUÔN MẶT SỬ DỤNG MẠNG NƠRON 3.1 Tổng quan về mạng nơron nhân tạo 3.1.1 Khái niệm Là một đơn vị tính toán có nhiều đầu vào và một đầu ra, mỗi đầu vào đến từ một synapse Đặc trưng của nơ-ron... “δE” theo trọng số cho lớp ẩn Lê Hồng Chuyên _ CT701 Trang: 22 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh - Bước 6: Cập nhật tất cả trọng số theo Wi=W(i-1 )- (δE/ δ Wi) - Bước 7: Quay lai “Bước 2” cho đến “Bước 6” cho tất cả các mẫu 3.2 Huấn luyện dò tìm khuôn mặt Hệ thống hoạt động theo hai giai đoạn: trước hết áp dụng tập bộ dò tìm dựa trên mạng nơ-ron vào ảnh, và sau đó... dò tìm phân tầng Adaboost Với một bộ dò tìm c do phương pháp AdaBoost huấn luyện được, ta có thể dò tìm với một độ chính xác nhất định và một tốc độ nhất định Nếu như cần phải chính xác cao thì bộ dò tìm phải bao gồm nhiều đặc trưng, điều đó kéo theo tốc độ dò tìm sẽ giảm Lê Hồng Chuyên _ CT701 Trang: 11 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh Nếu sử dụng bộ dò tìm. .. Chuyên _ CT701 Trang: 25 Đồ án tốt nghiệp Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh CHƯƠNG 4: CÀI ĐẶT ỨNG DỤNG 4.1 Môi trường TEST Phần cứng : Một máy tính pentum IV Card đồ họa 64 MB Ram 512 MB Phần mềm : Ngôn ngữ sử dụng: C# trong bộ visual studio 2005 Tập ảnh huấn luyện gồm 100 ảnh mặt người và 500 ảnh không là mặt người 4.2 Một số giao diện chính Hình 4-1 : Giao diện chính của chương ... Department, Carnegie Mellon University Pittsburgh, PA 15123 [7] CBCL Face Database, CMU and MIT, http://www.ai.mit.edu/projects/cbcl.old/softwaredatasets/FaceData2.html [8] CMU Image database http://vasc.ri.cmu.edu/idb/html/face/frontal_images/index.html... đạo hàm ảnh, ta việc tính giá trị ô chữ nhật cách sau: chẳng hạn ô chữ nhật D ta có val(D) = val(ABCD) – val(AC) – val(AB) + val(A) , tính theo tọa độ (x,y) ta có phương trình sau: sr = (ii(x,y)

Ngày đăng: 10/10/2015, 10:39

Từ khóa liên quan

Mục lục

  • CHƯƠNG 1: TỔNG QUAN VỀ PHÁT HIỆN KHUÔN MẶT

    • 1.1. Giới thiệu

    • 1.2. Một số lĩnh vực ứng dụng phát hiện khuôn mặt

    • 1.3. Một số phương pháp xác định khuôn mặt người

    • 1.4. Khó khăn và thách thức trong bài toán xác định khuôn mặt

    • CHƯƠNG 2: PHÁT HIỆN KHUÔN MẶT SỬ DỤNG ADABOOST

      • 2.1. Giới thiệu

        • 2.1.1. Các hướng tiếp cận dò tìm khuôn mặt nhanh

        • 2.1.2. Hướng tiếp cận theo AdaBoost

        • 2.2. Trích chọn đặc trưng cho AdaBoost

        • 2.3. Thuật toán ADABOOST

        • 2.4. Bộ dò tìm phân tầng Adaboost

        • 2.5. Huấn luyện dò tìm khuôn mặt

        • 2.6. Dò tìm khuôn mặt

        • CHƯƠNG 3: PHÁT HIỆN KHUÔN MẶT SỬ DỤNG MẠNG NƠRON

          • 3.1. Tổng quan về mạng nơron nhân tạo

            • 3.1.1. Khái niệm

            • 3.1.2. Các thành phần của nơron nhân tạo

              • 3.1.2.1. Synapse

              • 3.1.2.2. Bộ cộng

              • 3.1.2.3. Hàm truyền

              • 3.1.3. Mô hình cơ bản của mạng nơron

              • 3.1.4. Xây dựng mạng nơron

                • 3.1.4.1. Giải thuật xây dựng mạng nơron đơn giản

                • 3.1.5. Huấn luyện mạng nơron

                  • 3.1.5.1. Phương pháp học

                  • 3.1.5.2. Thuật toán học

                  • 3.2. Huấn luyện dò tìm khuôn mặt

Tài liệu cùng người dùng

Tài liệu liên quan