Tài liệu Khóa luận Nghiên cứu các kỹ thuật dò biên áp dụng trong trích chọn các bộ phận khuôn mặt - Lưu Xuân Thế: ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Lưu Xuân Thế
NGHIÊN CỨU CÁC KỸ THUẬT DÒ BIÊN ÁP DỤNG TRONG TRÍCH CHỌN CÁC BỘ PHẬN KHUÔN MẶT
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI – 2010
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Lưu Xuân Thế
NGHIÊN CỨU CÁC KỸ THUẬT DÒ BIÊN ÁP DỤNG TRONG TRÍCH CHỌN CÁC BỘ PHẬN KHUÔN MẶT
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: ThS. Ma Thị Châu
HÀ NỘI – 2010
LỜI CẢM ƠN
Lời đầu tiên em xin bày tỏ lòng biết ơn tới các thầy, cô giáo trong trường Đại học Công nghệ - Đại học Quốc gia Hà Nội. Các thầy cô đã dạy bảo, chỉ dẫn chúng em và luôn tạo điều kiện tốt nhất cho chúng em học tập trong suốt quá trình học đại học đặc biệt là trong thời gian làm khoá luận tốt nghiệp.
Em xin bày tỏ lòng biết ơn sâu sắc tới cô giáo ThS. Ma Thị Châu, cô đã hướng dẫn em tận tình trong cả học kỳ vừa qua, cô đã góp ý và chỉnh sửa thường xuyên cho khóa luận của em.
Tôi cũng...
39 trang |
Chia sẻ: hunglv | Lượt xem: 1120 | Lượt tải: 1
Bạn đang xem trước 20 trang mẫu tài liệu Khóa luận Nghiên cứu các kỹ thuật dò biên áp dụng trong trích chọn các bộ phận khuôn mặt - Lưu Xuân Thế, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Lưu Xuân Thế
NGHIÊN CỨU CÁC KỸ THUẬT DÒ BIÊN ÁP DỤNG TRONG TRÍCH CHỌN CÁC BỘ PHẬN KHUÔN MẶT
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI – 2010
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Lưu Xuân Thế
NGHIÊN CỨU CÁC KỸ THUẬT DÒ BIÊN ÁP DỤNG TRONG TRÍCH CHỌN CÁC BỘ PHẬN KHUÔN MẶT
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: ThS. Ma Thị Châu
HÀ NỘI – 2010
LỜI CẢM ƠN
Lời đầu tiên em xin bày tỏ lòng biết ơn tới các thầy, cô giáo trong trường Đại học Công nghệ - Đại học Quốc gia Hà Nội. Các thầy cô đã dạy bảo, chỉ dẫn chúng em và luôn tạo điều kiện tốt nhất cho chúng em học tập trong suốt quá trình học đại học đặc biệt là trong thời gian làm khoá luận tốt nghiệp.
Em xin bày tỏ lòng biết ơn sâu sắc tới cô giáo ThS. Ma Thị Châu, cô đã hướng dẫn em tận tình trong cả học kỳ vừa qua, cô đã góp ý và chỉnh sửa thường xuyên cho khóa luận của em.
Tôi cũng xin cảm ơn những người bạn của mình, các bạn đã luôn ở bên tôi, giúp đỡ và cho tôi những ý kiến đóng góp quý báu trong học tập cũng như trong cuộc sống.
Hà nội, ngày 2010
Lưu Xuân Thế
TÓM TẮT
Kỹ thuật dò biên là bài toán mới chỉ xuất hiện cách đây không lâu, chỉ khoảng vài thập niên, nhưng đã có rất nhiều nghiên cứu về nó. Các nghiên cứu ban đầu rất đơn giản, ảnh là đen trắng và chỉ có một khuôn mặt chụp thẳng, sau này mở rộng ra cho ảnh màu, ảnh có nhiều khuôn mặt với nhiều góc, môi trường xung quanh cũng đi từ đơn giản đến rất phức tạp.
Từ khóa: edge detection, edge filter.
MỤC LỤC
Chương 1. GIỚI THIỆU
1.1 Giới thiệu về tìm biên trong nhận dạng khuôn mặt
Kỹ thuật dò biên là bài toán mới chỉ xuất hiện cách đây không lâu, chỉ khoảng vài thập niên, nhưng đã có rất nhiều nghiên cứu về nó. Các nghiên cứu ban đầu rất đơn giản, ảnh là đen trắng và chỉ có một khuôn mặt chụp thẳng, sau này mở rộng ra cho ảnh màu, ảnh có nhiều khuôn mặt với nhiều góc, môi trường xung quanh cũng đi từ đơn giản đến rất phức tạp. Bài toán phát hiện biên nói chung và phát hiện biên khuôn mặt nói riêng có rất nhiều hướng để phát triển, nhưng có thể kể ra hai hướng chính sau:
- Thứ nhất là nhận diện (face recognition) một khuôn mặt, tức là giả sử ta có bức ảnh một khuôn mặt, ta sẽ tìm một bức ảnh có khuôn mặt giống với khuôn mặt trong ảnh. Ứng dụng của nó là truy tìm tội phạm, các hệ thống an ninh xác đinh dựa vào khuôn mặt.
- Thứ hai là xác định vị trí những khuôn mặt trong một bức ảnh (face detection), các bức ảnh có thể có nhiều khuôn mặt, có kích thước và góc khác nhau. Ứng dụng của nó như trong các máy chụp hình có khả năng nhận dạng mặt người để chỉnh độ sáng nơi đó.
Biên là vấn đề chủ yếu trong phân tích ảnh, vì các đặc điểm trích chọn trong quá trình phân tích ảnh chủ yếu dựa vào biên. Một điểm được gọi là điểm biên nếu ở đó có sự thay đổi đột ngột về mức xám. Tập hợp các điểm biên tạo thành biên hay đường bao của ảnh.
Về mặt toán học người ta xem biên là nơi có sự thay đổi đột ngột về mức xám, trên cơ sở đó người ta thường sử dụng hai phương pháp phát hiện biên sau:
- Phương pháp phát hiện biên trực tiếp
- Phương pháp phát hiện biên gián tiếp
Xuất phát từ thực tế đó, mục tiêu của luận văn là nghiên cứu các phương pháp biểu diễn biên, hệ thống hóa kiến thức về các phương pháp phát hiện biên, tìm hiểu các kỹ thuật phân vùng ảnh, một bước trước trong quá trình dò biên và ứng dụng của nó trong xử lý ảnh và xử lý ảnh văn bản là một trong những nhiệm vụ quan trọng trong việc tự động hóa công việc văn phòng.
1.2 Bài toán nghiên cứu kỹ thuật dò biên áp dụng trong trích chọn khuôn mặt
Trong thực tế, chúng ta gặp nhiều bài toán liên quan đến nhận dạng đối tượng. Thông thường, việc nhận ra các đối tượng thường dựa vào đường biên của chúng. Ở Việt Nam hiện nay đã có một số hệ thống nhận dạng đối tượng như: MapScan, VnDOCR, MarkREAD của Viện Công nghệ thông tin hay VecMap của DolSoft, nhìn chung những ứng dụng và tài tiệu có tính chất hệ thống về các phương pháp biểu phát hiện biên và ứng dụng của nó vẫn là một phần thiếu vắng.
Xuất phát từ thực tế đó, mục tiêu của luận văn là nghiên cứu các phương pháp biểu diễn biên, hệ thống hóa kiến thức về các phương pháp phát hiện biên, tìm hiểu các kỹ thuật phân vùng ảnh, tìm hiểu quá trình dò biên và ứng dụng của nó trong xử lý ảnh và xử lý ảnh văn bản, là một trong những nhiệm vụ quan trọng trong việc tự động hóa công việc văn phòng.
Trong khóa luận này biên khuôn mặt sẽ được hiển thị thông qua một chương trình mã đơn giản. Với 5 kỹ thuật được áp dụng biên khuôn mặt sẽ được đưa ra với 5 kiểu khác nhau. Mỗi kiểu sẽ là một đặc điểm và khía cạnh riêng.
1.3 Nội dung và cấu trúc khóa luận
Khóa luận được tổ chức theo cấu trúc như sau:
Chương 1: Giới thiệu
Giới thiệu sơ lược về các kỹ thuật dò biên nói chung và kỹ thuật dò biên áp dụng với khuôn mặt và áp dụng cho việc trích chọn các bộ phận của khuôn mặt. Bài toán phát hiện biên được phân tích dưới khía cạnh toán học giúp ta chọn hướng giải quyết tốt nhất cho bài toán là sử dụng các kỹ thuật tìm kiếm biên cổ điển. Chương này giới thiệu những gì mà khóa luận nghiên cứu từ đó thông qua việc trình bày về nội dung và cấu trúc của khóa luận.
Chương 2: Các kỹ thuật dò biên
Chương hai đi vào giới thiệu giới thiệu các kỹ thuật dò biên. Với 2 kỹ thuật dò biên trực tiếp và gián tiếp, nhưng ta chủ yếu đi xâu vào kỹ thuật dò biên trực tiếp được dùng rộng rãi và thường xuyên.
Chương 3: Kỹ thuật dò biên được áp dụng
Chương này giới thiệu vào các kỹ thuật dò biên được áp dụng trong chương trình. Bằng cách sử dụng hàm Gauss để làm trơn ảnh sau đó dùng các kỹ thuật tìm kiếm trực tiếp để đưa ra 5 kiểu biên khác nhau với một bức ảnh nói chung và khuôn mặt trong chương trình này.
Chương 4: Kết luận và hướng phát triển
Chương này tổng kết lại những gì đã đạt được và chưa đạt được. Từ đó nêu lên những kết quả hướng tới, hướng nghiên cứu và phát triển tiếp theo.
Chương 2. CÁC KỸ THUẬT DÒ BIÊN
2.1 Quy trình phát hiện biên
trích chọn biên
Định vị biên
Làm nổi biên
Lọc nhiễu
ảnh đầu vào output
H2.1. Quy trình phát hiện biên
B1: Do ảnh ghi được thường có nhiễu, bước một là phải lọc nhiễu
B2: Làm nổi biên sử dụng các toán tử phát hiện biên.
B3: Định vị biên. Chú ý rằng kỹ thuật nổi biên gây tác dụng phụ là gây nhiễu làm một số biên giả xuất hiện do vậy cần loại bỏ biên giả.
B4: Liên kết và trích chọn biên.
2.2 Kỹ thuật phát hiện biên trực tiếp
Phương pháp này chủ yếu dựa vào sự biến thiên độ sáng của điểm ảnh để làm nổi biên bằng kỹ thuật đạo hàm.
- Nếu lấy đạo hàm bậc nhất của ảnh: ta có phương pháp Gradient
Định nghĩa: Gradient là một vector f(x, y) có các thành phần biểu thị tốc độ thay đổi mức xám của điểm ảnh (theo hai hướng x, y trong bối cảnh xử lý ảnh hai chiều) tức:
Trong đó dx, dy là khoảng cách giữa 2 điểm kế cận theo hướng x, y tương ứng (thực tế chọn dx=dy=1). Đây là phương pháp dựa trên đạo hàm riêng bậc nhất theo hướng x, y.
Gradient trong gốc tọa độ góc (r, θ), với r là vector, θ là góc
H2.2. Vector gradient
2.2.1 Kỹ thuật Gradient
Theo định nghĩa về Gradient, nếu áp dụng nó vào xử lý ảnh, việc tính toán sẽ rất phức tạp. Để đơn giản mà không mất tính chất của phương pháp Gradient, người ta sử dụng kỹ thuật Gradient dùng cặp mặt nạ H1, H2 trực giao (theo 2 hướng vuông góc). Nếu định nghĩa g1, g2 là Gradient theo hai hướng x, y tương ứng thì biên độ g(m, n) tại điểm (m, n) được tính:
Đặt A0 = g(m,n);
Để giảm độ phức tạp tính toán, A0 được tính gần đúng như sau:
Xét một số toán tử Gradient tiêu chuẩn như toán tử Robert, Sobel, Prewitt, đẳng hướng (Isometric), 4-lân cận dưới đây.
H2.3. Toán tử 4 lân cận
Toán tử Robert (1965).
Robert áp dụng công thức tính Gradient tại điểm (x, y) như hình trên Wij với mỗi điểm ảnh I(x, y) đạo hàm theo x, y được ký hiệu tương ứng gx, gy:
Các công thức kể trên được cụ thể hóa bằng các mặt nạ theo chiều x và y tương ứng như sau:
Mặt nạ Robert
Toán tử (mặt nạ) Sobel
Toán tử Sobel được Duda và Hart [5] đặt ra năm 1973 với các mặt nạ tương tự như của Robert nhưng cấu hình khác như sau:
Hướng ngang (x) Hướng dọc (y)
Mặt nạ Prewitt
Toán tử Prewitt đưa ra năm 1970 có dạng:
Hướng ngang (x) Hướng dọc (y)
Mặt nạ đẳng hướng:
Một mặt nạ khác cũng được nêu như dưới đây gọi là mặt nạ đẳng hướng (Isometric).
Hướng ngang (x) Hướng dọc (y)
Toán tử 4-lân cận (4-Neighbour Operator).
Toán tử 4-lân cận được Chaudhuri và Chandor (1984) nêu ra trong đó mặt nạ có kích thước 3x3 được thay cho mặt nạ 2x2 của toán tử Robert. Các mặt nạ này được cho:
H3. Mặt nạ 4 lân cận
H2.4. Mặt nạ 8 hướng theo Kirsh.
Một vài nhận xét:
Toán tử Prewitt có thể tách sườn tốt hơn toán tử Sobel, trong khi đó toán tử Sobel tách các sườn trên các đường chéo tốt hơn. Mặt khác, các toán tử Robert và các toán tử 4-lân cận có nhược điểm là nhạy với nhiễu. Các toán tử Gradient và Sobel giảm nhiễu do tác dụng của lọc trung bình các điểm lân cận. Như vậy, để đạt được kết quả mong muốn các toán tử Gradient thường được dùng trước để làm sạch nhiễu.
Các mặt nạ của các toán tử trên có kích thước 2x2 hoặc 3x3 chiều. Các mặt nạ có số chiều lớn hơn cũng được sử dụng. Ví dụ trong kỹ thuật phát hiện biên người ta dùng mặt nạ 5x5 cho toán tử Sobel:
Toán tử Sobel 5x5.
Các toán tử kể trên đều sử dụng các mặt nạ theo hai chiều (x, y) tức là 4 hướng (-x, y-y, y) với mục đích cho kết quả chính xác hơn(khi mà tốc độ và bộ nhớ máy tính tốt. )
Toán tử la bàn
Kirsh đã đã đề xuất mặt nạ 8 hướng như 8 hướng của La bàn(Compass). Hình
dưới là mô hình 8 hướng và được đặt tên theo hướng địa lý và theo chiều kim
đồng hồ: Đông, Đông – Nam, Nam, Nam – Tây, Tây, Tây – Nam, Tây – Bắc,
Bắc, Đông – Bắc; mỗi hướng lệch nhau 45 độ.
Toán tử la bàn Kirsh:
Có nhiều toán tử la bàn khác nhau. Ta xem xét toán tử la bàn Kirsh đặc trưng bởi tám mặt nạ với kích thước 3x3 như sau:
Ký hiệu là Gradient theo 8 hướng như 8 mặt nạ kể trên, khi đó biên độ Gradient tại điểm ảnh (x, y) được tính theo
- Nếu lấy theo đạo hàm bậc hai của ảnh: ta có phương pháp Laplace
Hai phương pháp này gọi chung là phương pháp dò biên cục bộ.
Toán tử la bàn khác:
Ngoài toán tử la bàn Kirsh, một số toán tử la bàn khác sử dụng bộ mặt nạ 8 hướng khác như:
Hoặc:
Trường hợp tổng quát, người ta có thể mở rộng các mặt nạ với n hướng cách đều tương ứng với các mặt Wi; i=1, 2, …, n. Khi đó, biên độ tại hướng thứ i với mặt nạ Wi được xác định:
Kỹ thuật Laplace
Để khắc phục hạn chế và nhược điểm của phương pháp Gradient, trong đó sử dụng đạo hàm riêng bậc nhất người ta nghĩ đến việc sử dụng đạo hàm riêng bậc hai hay toán tử Laplace. Phương pháp dò biên theo toán tử Laplace hiệu quả hơn phương pháp toán tử Gradient trong trường hợp mức xám biến đổi chậm, miền chuyển đổi mức xám có độ trải rộng.
Toán tử Laplace được đĩnh nghĩa như sau:
Toán tử Laplace dùng một số mặt nạ khác nhau nhằm tính gần đúng đạo hàm riêng bậc 2. Các dạng mặt nạ theo toán tử Laplace bậc 3x3 có thể:
Ghi chú: Mặt nạ H1 còn cải biên bằng việc lấy giá trị ở tâm bằng 8 thay vì giá trị 4. Để thấy rõ việc xấp xỉ đạo hàm riêng bậc 2 trong không gian 2 chiều với mặt nạ H1 làm ví dụ, ta có thể tính gần đúng như sau:
Do đó:
Tóm lại: Kỹ thuật theo toán tử Laplace tạo đường biên mảnh (có độ rộng 1 pixel). Nhược điểm của kỹ thuật này rất nhạy với nhiễu, do vậy đường biên thu được thường kém ổn định.
Tách sườn theo ảnh Canny
Bộ tách sườn ảnh theo Canny (1986) dựa trên cặp đạo hàm riêng bậc nhấtvới việc làm sạch nhiễu. Mục này được để riêng vì đây là phương pháp tách đường biên khá phổ biến được dùng theo toán tử đạo hàm. Như đã nói, phương pháp đạo hàm chịu ảnh hưởng lớn của nhiễu. Phương pháp đạt hiệu quả cao khi xấp xỉ đạo hàm bậc nhất của Gauss.
Với fx, fy là đạo hàm riêng theo x,y của f.
Do vậy:
Lấy đạo hàm riêng theo x và y của G ta được:
H2.5. Mô hình tính của phương pháp Canny.
Do bộ lọc Gauss là tách được, ta có thể thực hiện riêng biệt các tích chập theo x và y:
Từ đó ta có:
Với biên độ và hướng tính theo công thức trên, thuật toán được minh họa như hình H2.5 trên.
Dò biên theo quy hoạch động
Như trên đã nói, dò biên theo phương pháp Gradient là xác định cực trị cục bộ của Gradient theo các hướng; còn phương pháp Laplace dựa vào các điểm không của đạo hàm bậc hai. Phương pháp dò biên theo quy hoạch động là phương pháp tìm cực trị tổng thể theo nhiều bước. Nó dựa vào nguyên lý tối ưu của Bellman. Nguyên lý này phát biểu như sau: “Con đường tối ưu giữa 2 điểm cho trước cũng là tối ưu giữa 2 điểm bất kỳ nằm trên đường tối ưu đó”.
Thí dụ, nếu C là một điểm trên con đường tối ưu giữa A và B thì đoạn CB cũng là còn đường tối ưu từ C đến B không kể đến ta đến C bằng cách nào.
H2.6. Minh họa nguyên lý Bellman
Trong kỹ thuật này, giả sử bản đồ biên đã được xác định và được biểu diễn dưới dạng đồ thị liên thông N chặng. Giả sử hàm đánh giá được tính theo công thức:
Với:
Xk, k=1,...,N: Biểu diễn các đỉnh đồ thị của đồ thị trong chặng thứ k;
D(x, y): Khoảng cách giữa 2 đỉnh x và y tính theo các định nghĩa tương ứng về khoảng cách;
|g(xk)| và θ(xk) Gradient biên độ và Gradient hướng ở đỉnh xk.
α và β các hằng số không âm.
Đường bao tối ưu sẽ nhận được bằng cách nối các đỉnh xk, k=1,..., N nào đó sao cho S(x1,..., xN, N) đạt cực đại.
Định nghĩa hàm ф như sau:
Bây giờ ta có:
Lấy N = k.
Như vậy:
Với cách này, thay vì tìm tối ưu toàn cục phức tạp của S(x1, …,xN, N), ta tìm tối ưu của N chặng theo tối ưu 2 biến. Trong mỗi chặng, với mỗi xk tìm tối ưu, ( k x k φ. Để dễ hình dung, xét ví dụ sau:
Giả sử có bản đồ biểu diễn bởi đồ thị liên thông. Theo phương pháp trên có 5 ) 1, ( = A φ, với k =2 có . ) 2, ( 12 max(11,12) D = = φ Điều đó có nghĩa là đường từ A đến D đi qua C và ACD là biên được chọn với k=2. Tương tự, với k=4, có hai đường được chọn là ACDEF và AGHJ. Tuy nhiên, với k=5 thì đoạn JB bị loại và chỉ tồn tại đường duy nhất với cực đại là 28. Như vậy, biên được xác định là ADEFB.
a. Đồ thị liên thông biểu diễn biên b. Quá trình dò biên theo quy hoạch động
H2.7. Dò biên theo phương pháp quy hoạch động
Trên hình những đường nét đứt đoạn biểu thị cung bị loại; đường nét liền có mũi tên biểu thị đường đi hay biên của ảnh.
2.3 Kỹ thuật phát hiện biên gián tiếp
Nếu bằng cách nào đấy, chúng ta thu được các vùng ảnh khác nhau thì đường phân cách giữa các vùng đó chính là biên. Nói cách khác, việc xác định đường bao của ảnh được thực hiện từ ảnh và được phân vùng. Phương pháp dò biên gián tiếp khó cài đặt nhưng áp dụng tốt khi sự biến thiên độ sáng nhỏ.
2.4 Một số phương pháp khác
Ngoài các phương pháp trên, người ta cũng áp dụng một số phương pháp khác cải tiến như tiếp cận bởi mô hình mặt, cách tiếp cận tối ưu hóa.
Cách tiếp cận theo mô hình mặt dựa vào việc thực hiện xấp xỉ đa thức trên ảnh gốc hay ảnh đã thực hiện phép lọc Laplace. Cách tiếp cận tối ưu nhằm xác định một hàm (một bộ lọc), làm giảm phương sai σ2 hoặc giảm một số điểm cực trị cục bộ. Dưới đây sẽ trình bày một cách tóm tắt các phương pháp đó.
Tiếp cận theo mô hình mặt
Tư tưởng của phương pháp này là tại lân cận điểm cắt không (điểm biên), ảnh sau khi lọc Laplace có thể được xấp xỉ bởi một đa thức bậc 3 theo hàng và cột. Đa thức thường được dùng là đa thức Trebưchép với kích thước 3x3. Các đa thức này được định nghĩa như sau:
Với mỗi điểm cắt không phát hiện tại P(x, y) trong ảnh đã được lọc bởi toán tử Laplace – Gauss, Huertas và Medioni đã cho được tính theo công thức tính xấp xỉ:
Vấn đề là xác định các hệ số ai, i=1, 2, …, N-1. Nếu W là cửa số lọc tại điểm cắt không và x, y, i, j trong cửa số; các hệ số a có thể được tính toán như một tổ hợp tuyến tính:
ở đây, IL-G(x, y) là ký hiệu ảnh đã được lọc bởi toán tử Laplace–Gauss. Các hệ số này có thể nhận được bởi chập ảnh IL-G(x, y) với các nhân chập như trung bình có trọng số hay một số nhân chập khác.
Các bước cài đặt phương pháp nhày có thể mô tả như sau:
Chập ảnh gốc kích thước NxM với toán tử Laplac –Gauss kích thước M2, ảnh thu được gọi là IL-G.
Trích chọn các điẻm cắt không của ảnh IL-G, ảnh kết quả ký hiệu là IZCR.
Với mỗi điểm cắt không trong IZCR, thực hiện một xấp xỉ với kích thước 3x3 để suy ra các điểm cắt không theo cách gải tích.
Tạo một ảnh mới của các điểm cắt không kích thước nXxnY mà các đường bao được xác định với độ phân giải n nào đó.
Tiếp cận tối ưu hóa
Ý tưởng của cách tiếp cận này là định vị đúng vị trí bằng cách cực tiểu hóa phương sai σ vị trí các điểm cắt không hoặc hạn chế số điểm cực trị cục bộ để chỉ tạo ra một đường bao. Canny đã đề xuất 3 ràng buộc ứng với 3 điều kiện:
Ràng buộc đầu tiên (∑) nhằm tìm hàm h(x) phản đối xứng sao cho tỉ số giữa tín hiệu và nhiễu là cực đại. Ràng buộc thứ hai (Λ) nhằm cực tiểu hóa phương sai. Ràng buộc thứ ba nhằm hạn chế điểm cực trị cục bộ với mục đích cung cấp chỉ một đường bao.
2.5 Tổng kết
Các kỹ thuật sử dụng phương pháp Gradient khá tốt khi độ sáng có tốc độ thay đổi nhanh, khá đơn giản trên cơ sở các mặt nạ theo các hướng. Nhược điểm của các kỹ thuật Gradient là nhạy cảm với nhiễu và tạo các biên kép làm chất lượng biên thu được không cao.
Ngoài ra, người ta còn sử dụng phương pháp “đi theo đường bao” dựa vào công cụ toán học là nguyên lý quy hoạch động và được gọi là phương pháp dò biên tổng thể. Phương pháp dò biên trực tiếp có hiệu quả và ít bị tác động bởi nhiễu.
Chương 3. CÁC KỸ THUẬT DÒ BIÊN ĐƯỢC ÁP DỤNG
3.1 Các kỹ thuật được dùng
Biên là tập hợp các điểm tại đó hàm độ sáng của ảnh thay đổi cục bộ đột ngột, do đó để phát hiện biên và tách biên ta dùng phép toán đạo hàm. Các phép toán đạo hàm thường dùng là đạo hàm bậc nhất và đạo hàm bậc 2. Vị trí của biên chính là gía trị lớn nhất của đạo hàm bậc nhất và là các điểm tại đó giá trị của đạo hàm bậc 2 có sự đi qua điểm 0.
Chương trình sử dụng kỹ thuật phát hiện biên trực tiếp, tức là lấy đạo hàm bậc nhất theo phương pháp Gradient.
Chương trình áp dụng hàm Gauss với khai báo:
với các hằng số thực a > 0, b, c > 0, và e ≈ 2. 718281828 (Số Euler).
Hàm Gauss được sử dụng rộng rãi. Trong thống kê chúng miêu tả phân bố chuẩn, trong xử lý tín hiệu chúng giúp định nghĩa bộ lọc Gauss, trong xử lý hình ảnh hàm Gauss hai chiều được dùng để tạo hiệu ứng mờ Gauss và được sử dụng để làm trơn để xây dựng các hàm wavelet ứng dụng cho việc xác định biên, cụ thể trong chương trình này ta dùng phương pháp Gradient, và trong toán học chúng được dùng để giải phương trình nhiệt và phương trình khuyếch tán và định nghĩa phép biến đổi Weierstrass.
Biểu đồ của một hàm Gauss là một đường cong đối xứng đặc trưng "hình quả chuông". Đường cong này rớt xuống rất nhanh khi tiến tới cộng/trừ vô cùng. Tham số a là chiều cao tối đa đường cong, b là vị trí tâm của đỉnh và c quyết định chiều rộng của "chuông".
H3.1Đường cong Gauss chuẩn hóa với giá trị kỳ vọng μ và phương sai σ2. Những tham số tương ứng là a = 1/(σ), b = μ, c = σ
Tiếp đến ta sử dụng hàm dgauss với công thức như sau:
y = -x ae-((x-b)^2)/2c^2 / c2;
Với hàm Gauss có công thức được định nghĩa như sau:
y = e-x^2/(2c^2) / (c);
Hàm này chính là đạo hàm của hàm gauss với các tham số của hàm tương ứng là a = 1/(c), b = 0, c = c. Và hàm d2dgauss:
h = d2dgauss(n1,sigma1,n2,sigma2,theta)
Hàm này tìm kiếm và trả lại biên 2D với ảnh có cỡ n1 * n2. Theta là góc xoay theo chiều kim đồng hồ, theo thứ tự của size của bức ảnh các thành phần lần lượt sẽ được xoay một góc theta và tiến hành lấy tích của hàm Gauss với các tham số thứ nhất với đạo hàm của hàm Gauss với các tham số thứ 2 ta thu được các giá trị h tương ứng và cuối cùng giá trị hàm sẽ được tính:
h = h / ;
Sigma1 và sigma2 là độ lệch tiêu chuẩn của hàm gauss. Ban đầu chương trình xử lý ảnh đầu vào và biến đổi thành anh đa cấp xám (gray), sử dụng hàm imread(image) để đọc ảnh đầu vào, sau đó chuyển ảnh này thành đam cấp xám bằng hàm ind2gray(x, map) và tiến hành lấy biên 2D theo các kỹ thuật mà được nói kỹ ở phần dưới.
Lấy biên theo trục X
Với các thông số chuẩn của hàm Gauss, khi lấy biên theo trục X ta sẽ đưa bức ảnh về kích thước 10X10, các tham số chuẩn của hàm Gauss Sigmax1=Sigmax2=1, góc quay Theta1=pi/2. Sau khi ảnh vào được đọc bởi hàm imread(image) và được chuyển thành ảnh đa cấp xám qua hàm ind2gray(x, map). Và quy trình lấy biên theo trục X sẽ được tiến hành với ảnh đa cấp xám này. Ta sử dụng hàm d2dgauss là hàm với các tham số cụ thể:
filterx=d2dgauss(Nx1,Sigmax1,Nx2,Sigmax2,Theta1);
w=ind2gray(x,map);
Qua bước xử lý này thì đã lấy được biên theo các tham số ứng với trục X, bước tiếp theo là hiển thị ra màn hình biên theo trục X. Ta sử dụng hàm conv2:
Ix= conv2(w,filterx,'parameters');
Với hàm Conv2 với shape = same: conv2(matrix, kernel, 'same'), ma trận kết quả có chiều giống như matrix, và giá trị tại mổi phần tử được tính bằng cách quét tâm của kernel trên toàn bộ matrix rối tính tổng tích các cặp điểm tương ứng giữa matrix và kernel. Điểm tâm của kernel được xác định bằng điểm giữa của ma trận, ví dụ nếu kernel là ma trận 3x3 thì tâm là điểm có tọa độ 1:1, nếu kernel là ma trận 4x4 thì tâm cũng là điểm 1:1.
H3.2 Hàm conv2 với tham số same
Conv2 với shape = full: conv2(matrix, kernel, 'full'), nếu matrix có chiều là m1 x n1, kernel có chiều là m2 x n2 thì ma trận kết quả có chiều là (m1 + m2 - 1) x (n1 + n2 - 1) và giá trị tại mổi phần tử được tính bằng cách quét toàn bộ, tuần tự từng điểm của ma trận Kernel lên từng điểm trên ma trận matrix sau đó tính tổng tính các cặp điểm tương ứng, trong quá trình quét có những điểm trên Kernel nằm ngoài matrix khi đó tích của nó bằng 0.
H3.3 Hàm conv2 với tham số full
Conv2 với shape = valid: conv2(matrix, kernel, 'valid'), nếu matrix có chiều là m1 x n1, kernel có chiều là m2 x n2 thì ma trận kết quả có chiều là (m1 - m2 + 1) x (n1 - n2 + 1) và giá trị tại mỗi phần tử được tính giống như trường hợp full nhưng với điều kiện là ma trận kernel trong quá trình quét luôn nằm trọn vẹn bên trong ma trận matrix.
H3.2 Hàm conv2 với tham số valid
Lấy biên theo trục Y
Với các thông số chuẩn của hàm Gauss, khi lấy biên theo trục Y cũng có quy trình tương tự như quy trình lấy biên theo trục X với các tham số tương ứng kích thước ảnh 10X10, các tham số chuẩn của hàm Gauss Sigmay1=Sigmay2=1, góc quay Theta1=0.
Lấy biên theo Gradient
Với phương pháp Gradient ta kết hợp cả theo trục X và Y. Với Ix và Iy ta tính được ở trên thì ta tính:
NVI= ;
Hàm lấy căn bậc hai của bình phương các giá trị tham số theo trục X và Y. Sau khi đó ta sẽ được giá trị theo hướng đường chéo hình chữ nhật hướng xuống góc phần tư thức tư với 2 hướng của hình chữ nhật là trục X và trục âm Y. Các tham số của ma trận ảnh theo phương pháp Gradient sẽ được tính như công thức căn bậc 2 trên.
Lấy biên theo Thresholding
Thresholding là hoạt động đầu tiên được thực hiện để tạo ra một mặt phân đoạn. Chúng ta có thể lựa chọn một vùng mà ta quan tâm bằng cách định nghĩa một phạm vi của những gray value. Những ranh giới của phạm vi đó là các giá trị ngưỡng trên và ngưỡng dưới. Tất cả các điểm tương ứng với một gray value trong phạm vi đó sẽ được tô sáng trong một mặt.
Theo phương pháp này giá trị min và max của ma trận Gradient sẽ được xác định qua các hàm max, min. Như sau:
I_max=max(max(NVI));
I_min=min(min(NVI));
Ngưỡng sẽ được định nghĩa như sau:
level=alfa*(I_max-I_min)+I_min; alfa=0.1;
Và sau đó những tham số nào trong ma trận Gradient mà lớn hơn ngưỡng này sẽ được hiển thị. Và ta hiển thị biên theo phương pháp này.
Lấy biên theo Thinning
Phương pháp này áp dụng kết quả của các phương pháp trước để phát triển lên. Với m, n là kích cỡ của ảnh theo trên. Phương pháp sử dụng phép nội suy để tìm các điểm ảnh.
Nội suy hàm 1 biến:MATLAB dùng hàm interp1(x,y,xi,)với x, là giá trị của hàm tại những điểm đã cho và xi là giá trị mà tại đó ta cần nội suy ra giá trị yi. có thể là một trong các giá trị sau :‘nearest’- phương pháp này đặt giá trị nội suy vào giá trị đã cho gần nhất, phươngpháp này nhanh nhưng kết quả kém chính xác nhất.
Vídụ:x=[12345];y=[5.5,43.1,128,290.7,498.4];yi=interp1(x,y,1.6,'nearest')yi=43.1000‘linear’- phương pháp này coi đường cong đi qua 2 điểm cho trước là đường thẳng.
Vídụ:yi=interp1(x,y,1.6,'linear')yi=28.0600‘spline”- dùng phương pháp nội suy spline.
Vídụ:yi=interp1(x,y,1.6,'spline')yi=24.9782‘cubic’- phương pháp này coi đường cong qua 2 điểm là đường cong bậc 3.
Vídụ:yi=interp1(x,y,1.6,'cubic')yi=2522.3840
Nội suy hàm hai biến: Hàm interp2 thực hiện nội suy hàm 2 biến. Dạng hàm tổng quát:ZI=interp2(X,Y,Z,XI,YI,)Z- ma trận chữ nhật chứa giá trị của hàm 2 biến.X,Y-mảng có cùng kích thước, chứa giá trị x, y đã cho.XI,YI-mảng chứa giá trị cần nội suy.Cácgồm:‘nearest’,’linear’,’cubic’Nội suy mảng nhiều chiều:interp3 nội suy hàm 3 biến.interpn nội suy hàm nhiều biến.
Phương pháp này là duyệt các ma trận điểm ảnh lần lượt là:
X=[-1,0,+1;-1,0,+1;-1,0,+1];
Y=[-1,-1,-1;0,0,0;+1,+1,+1];
Z=[Ibw(i-1,j-1),Ibw(i-1,j),Ibw(i-1,j+1);
Ibw(i,j-1),Ibw(i,j),Ibw(i,j+1);
Ibw(i+1,j-1),Ibw(i+1,j),Ibw(i+1,j+1)];
XI=[Ix(i,j)/NVI(i,j), -Ix(i,j)/NVI(i,j)];
YI=[Iy(i,j)/NVI(i,j), -Iy(i,j)/NVI(i,j)];
và tiến hành nội suy với hàm:
ZI=interp2(X,Y,Z,XI,YI);
Sau đó ta sẽ so sánh với các hệ số của ma trận điểm ảnh Thresholding nếu:
if Ibw(i, j) >= ZI(1) & Ibw(i, j) >= ZI(2);
Thì:
I_temp(i,j)=I_max;
Nếu ngược lại:
I_temp(i,j)=I_min;
Ma trận điểm ảnh mới sẽ được hình thành, hay phương pháp này còn được gọi là phương pháp Thinning.
3.2 Chương trình và kết quả
Chương trình gồm 10 file mã. Trong đó gồm có 3 file đưa ra hàm Gauss nhằm mục đích làm trơn ảnh, đạo hàm của hàm Gauss, và hàm biến đổi hệ số của ma trận ảnh. Sau đó là 7 file chứa các phương pháp lấy biên của bức ảnh khuôn mặt. Trong đó có 5 file chứa 5 kỹ thuật phát hiện biên, một file show tất cả 5 phương pháp để có sự so sánh, một file thể hiện ảnh đa cấp xám, ảnh biến đổi từ ảnh gốc. Sau đây là chương trình cụ thể:
Hàm Gauss với file gauss.m:
function y = gauss(x,std)
y = exp(-x^2/(2*std^2)) / (std*sqrt(2*pi));
Hàm dgauss là đạo hàm của hàm gauss được nêu ra ở trên với file dgauss.m:
function y = dgauss(x,std)
y = -x * gauss(x,std) / std^2;
Hàm d2dgauss là hàm biến đổi lấy biên ra biên 2D qua các phép biến đổi các hệ số của ma trận ảnh đầu vào:
function h = d2dgauss(n1,sigma1,n2,sigma2,theta)
r=[cos(theta) -sin(theta);
sin(theta) cos(theta)];
for i = 1 : n2
for j = 1 : n1
u = r * [j-(n1+1)/2 i-(n2+1)/2]';
h(i,j) = gauss(u(1),sigma1)*dgauss(u(2),sigma2);
end
end
h = h / sqrt(sum(sum(abs(h).*abs(h))));
Với các tham số ban đầu được định nghĩa như sau:
Huong theo truc X:
Nx1=10;Sigmax1=1;Nx2=10;Sigmax2=1;Theta1=pi/2;
Huong theo truc Y:
Ny1=10;Sigmay1=1;Ny2=10;Sigmay2=1;Theta2=0;
Sau đó bức ảnh chân dung sẽ được xử lý chuyển sang dạng ảnh đa cấp xám:
[x,map]=imread('chandung.gif');
w=ind2gray(x,map);
figure(1);colormap(gray);
Ảnh này sẽ được hiển thị trên một cửa sổ thông qua lệng figure(1), và colormap(gray) hàm set và get màu hiện tại cho bản đồ màu. Và sau với bức ảnh đầu vào ta có bức ảnh đa cấp xám:
ind2gray(x,map
Ảnh đầu vào Ảnh đa cấp xám
H3.3 Biến thành ảnh đa cấp xám
Lấy biên theo trục X
Quy trình lấy biên theo trục X sẽ được thực hiện bởi đoạn mã sau:
subplot(1,1,1);
filterx=d2dgauss(Nx1,Sigmax1,Nx2,Sigmax2,Theta1);
Ix= conv2(w,filterx,'same');
imagesc(Ix);
title('Ix');
Biên lấy theo trục X sẽ được hiển thị qua cửa sổ thứ nhất với kích cỡ cửa sổ 1x1 thông qua hàm subplot(1,1,1), thông qua hàm d2dgauss với những tham số chuẩn được đưa ra phương pháp lọc biên theo trục X sẽ được thực hiện và tiếp là hàm trả lại phần trung của 2 phần giao nhau thông qua hàm conv2(w,filterx,’same’), cuối cùng nội dung sẽ được hiển thị thông qua imagesc(Ix) với tiêu đề là title(‘Ix’). Và kết quả được hiển thị:
Biến đổi theo trục X
Đa cấp xám Biên theo trục X
H3.4 Lấy theo trục X
Lấy biên theo trục Y
Quy trình lấy biên theo trục Y sẽ được thực hiện bởi đoạn mã sau:
subplot(1,1,1)
filtery=d2dgauss(Ny1,Sigmay1,Ny2,Sigmay2,Theta2);
Iy=conv2(w,filtery,'same');
imagesc(Iy);
title('Iy');
Biên lấy theo trục X sẽ được hiển thị qua cửa sổ thứ nhất với kích cỡ cửa sổ 1x1 thông qua hàm subplot(1,1,1), thông qua hàm d2dgauss với những tham số chuẩn được đưa ra phương pháp lọc biên theo trục Y sẽ được thực hiện và tiếp là hàm trả lại phần trung của 2 phần giao nhau thông qua hàm conv2(w,filtery,’same’), cuối cùng nội dung sẽ được hiển thị thông qua imagesc(Iy) với tiêu đề là title(‘Iy’). Và kết quả được hiển thị:
Biến đổi theo trục Y
Đa cấp xám Biên theo trục Y
H3.5 Biến đổi theo trục Y
Lấy biên theo Gradient
Phương pháp Gradient là phương pháp lấy biên trực tiếp với sự kết hợp 2 phương pháp lấy biên theo trục X và trục Y ở trên. Hệ số Gradient sẽ được định nghĩa theo đường độ dài đường chéo hình chữ nhật với 2 cạnh là 2 tham số Ix và Iy. Và hàm được định nghĩa như sau:
Loc theo phuong phap Gradient(Ket hop loc theo truc X va Y)
subplot(1,1,1);
NVI=sqrt(Ix.*Ix+Iy.*Iy);
imagesc(NVI);
title('Norm of Gradient');
Và kết quả nhận được theo phương pháp này:
Ket hop loc theo truc X va Y
Biên theo Gradient
H3.6 Biến đổi theo Gradient
Lấy biên theo Thresholding
Phương pháp Thresholding là phương pháp lọc theo ngưỡng và trong trường hợp này thì nhưng hệ số ma trận Gradient mà cao hơn ngưỡng thì sẽ được giữ lại và hiển thị, đoạn mã như sau:
I_max=max(max(NVI));
I_min=min(min(NVI));
level=alfa*(I_max-I_min)+I_min;(*)
subplot(1,1,1);
Ibw=max(NVI,level.*ones(size(NVI)));
imagesc(Ibw);
title('After Thresholding');
Ở đây các hệ số lớn nhất của ma trận sẽ được tính, sau đó level(ngưỡng) sẽ được tính theo công thức (*), sau đó các hệ số của ma trận sẽ được so sánh với ngưỡng này và được chọn và hiển thị hay còn gọi là phương pháp Thresholding, kết quả như sau:
Biến đổi theo thresholding
Biên theo Gradient Biên theo Thresholding
H3.7 Biến đổi theo Thresholding
Lấy biên theo Thinning
Phương pháp Thinning là phức tạp hơn cả, phương pháp sử dụng hàm nội suy ma trận với các ma trận 0,1 và các ma trận các hệ số của thresholding, ma trận hệ số theo trục X chia cho hệ số Gradient, và hệ số trục Y trên hệ số Gradient. Được nội suy thông qua hàm interp2() và sau đó ta sẽ so sánh các hệ số của ma trận nội suy với các hệ số của ma trận thresholding, các hệ số sẽ được chọn và hình thành ma trận mới, cụ thế chương trình như sau:
subplot(1,1,1);
[n,m]=size(Ibw);
for i=2:n-1,
for j=2:m-1,
if Ibw(i,j) > level,
X=[-1,0,+1;-1,0,+1;-1,0,+1];
Y=[-1,-1,-1;0,0,0;+1,+1,+1];
Z=[Ibw(i-1,j-1),Ibw(i-1,j),Ibw(i-1,j+1);
Ibw(i,j-1),Ibw(i,j),Ibw(i,j+1);
Ibw(i+1,j-1),Ibw(i+1,j),Ibw(i+1,j+1)];
XI=[Ix(i,j)/NVI(i,j), -Ix(i,j)/NVI(i,j)];
YI=[Iy(i,j)/NVI(i,j), -Iy(i,j)/NVI(i,j)];
ZI=interp2(X,Y,Z,XI,YI);
if Ibw(i,j) >= ZI(1) & Ibw(i,j) >= ZI(2)
I_temp(i,j)=I_max;
else
I_temp(i,j)=I_min;
end
else
I_temp(i,j)=I_min;
end
end
end
imagesc(I_temp);
title('After Thinning');
Sau đây là kết quả chương trình trên:
Theo thinning
Biên theo Thresholding Biên theo Thinning
H3.8 Biến đổi theo Thinning
3.3 Tổng kết
Với việc sử dụng hàm Gauss hai chiều để tạo hiệu ứng mờ Gauss và được sử dụng để làm trơn để xây dựng các hàm wavelet ứng dụng cho việc xác định biên, cụ thể trong chương trình này ta dùng phương pháp Gradient và sau đó sử dụng thêm các phương pháp được phát triển lên thêm theo phương pháp Thresholding và Thinning ta đã thu được những đường biên khác nhau và hiệu quả đã được tăng dần theo từng phương pháp. Điều này sẽ được thể hiện rõ nét hơn khi được thể hiện qua hình dưới:
H3.9 Quy trình biến đổi lấy biên theo thinning
Ta thấy biên được tách biệt một cách rõ ràng hơn khi qua phươg pháp Thinning. Với việc lọc biên như thế sẽ rất hiểu quả trong việc trích chọn các đặc trưng khuôn mặt, từ đó giúp cho việc nhận dạng khuôn mặt sẽ dễ dàng hơn.
Chương 4. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
4.1 Kết luận
Với 5 phương pháp phát hiện biên đi từ đơn giản đến phức tạp, cũng như là hiệu quả tăng lên theo từng phương pháp. Trong chương trình này kỹ thuật dò biên trực tiếp được sử dụng, cụ thể là phương pháp Gradient. Bằng cách sử dụng 2 cặp mặt nạ trực giao cụ thể là 2 ma trận mà biên theo trục X và ma trận biên theo trục Y. Biên được lọc theo các phương pháp là cơ sở để chúng ta có thể trích chọn những đặc trưng của khuôn mặt, tức là ta sẽ lọc theo ngưỡng và kết hợp ảnh lọc theo ngưỡng và ảnh lọc theo biên ta sẽ được các đặc trưng khuôn mặt. Qua quá trình làm khóa luận tôi đã nắm được các phương pháp lấy biên và biết được nhưng áp dụng của nó trong xử lý ảnh nói chung. Những kết quả mà khóa luận đã đạt được có thể tóm tắt như sau:
Tách ra được biên của khuôn mặt với một bức ảnh đầu vào. Có 5 phương pháp được sử dụng.
Là bước đệm để cho các bài toán như trích chọn đặc trưng đối tượng, phân vùng dựa trên biên ảnh.
Từ biên ảnh khuôn mặt ta có thể làm cho bức chân dung mượt hơn bằng cách tăng cường cho đường biên kết quả liên tục.
4.2 Hướng phát triển
4.2.1 Đặt vấn đề
Phát hiện và nhận dạng khuôn mặt trong ảnh có rất nhiều ứng dụng trong cuộc sống. Đây cũng là bài toán cơ bản cần giải quyết trong các hệ thống tương tác người máy, quan sát đám đông. Phát hiện khuôn mặt là quá trình đầu tiên quan trọng và cần thiết cho bất kỳ hệ thống xử lý khuôn mặt một cách tự động như: nhận dạng khuôn mặt, xác định các thành phần đặc trưng của khuôn mặt, kiểm chứng xác thực khuôn mặt.
Nhiệm vụ của hệ thống phát hiện khuôn mặt nhằm xác định xem trong ảnh đầu vào có khuôn mặt hay không, nếu có thì chỉ ra vị trị và kích thước của từng khuôn mặt trong ảnh. Trong hai thập niên gần đây vấn đề này được rất nhiều các nhà khoa học quan tâm nghiên cứu, và đã có khá nhiều các giải pháp khác nhau được đưa ra nhằm giải quyết bài toán phát hiện khuôn mặt trong ảnh đơn và trong chuỗi video. Tuy nhiên do tính phức tạp và đa dạng của thực tế một giải pháp toàn diện và trọn vẹn cho vấn đề này vẫn đang được nghiên cứu. Tôi xin đưa ra hướng phát triển cho của quy trình phát hiện biên khuôn mặt trong vấn đề xác định các thành phần đặc trưng của khuôn mặt, qua đó nhằm hướng đến vấn đề phát hiện khuôn mặt dựa trên các đặc trưng.
Phương pháp thực hiện
a. Phương pháp nhận dạng khuôn mặt thông qua biên tập và hiệu chỉnh tạo ra lớp đối tượng đặc trưng:
Bức ảnh ta xét ở đây là khuôn mặt chụp chung với nhiều loại đối tượng, ta tiến hành loại bỏ các đối tượng và giữ lại đường biên khuôn mặt và qua đó rút trích các điểm đặc trưng.
Nếu ảnh khu vực cần tiến hành phân loại có sự tách biệt rõ ràng giữa các đối tượng thì chỉ cần tiến hành phân loại không giám sát theo thuật toán K-mean, còn nếu ảnh khu vực có sự phức tạp hơn thì cần tiến hành phân loại có giám sát.
Thuật toán K -mean:
Thuật toán hoạt động trên 1 tập vectơ d chiều, tập dữ liệu X gồm N phần tử:
X = {xi | i = 1, 2, …, N}
K-Mean lặp lại nhiều lần quá trình:
Gán dữ liệu.
Cập nhật lại vị trí trọng tâm.
Quá trình lặp dừng lại khi trọng tâm hội tụ và mỗi đối tượng là 1 bộ phận của 1 cụm.
Ảnh kết quả sau khi phân loại được tách chuyển tạo ảnh chỉ chứa bao gồm hai loại đối tượng: đối tượng khuôn mặt (giả sử được gán cho giá trị 1) và đối tượng không là khuôn mặt (giả sử được gán cho giá trị là 0). Ảnh chỉ chứa hai loại đối tượng trên được gọi với tên tạm thời là ảnh A.
Tiếp theo, kênh ảnh đơn sắc được tiến hành xử lý lọc nhằm tách lấy thông tin cạnh biên của các đối tượng. Ảnh đơn sắc sau khi xử lý lọc biên được tiến hành tạo ảnh mới chỉ chứa bao gồm hai loại thông tin đối tượng: các đối tượng cạnh biên (giả sử được gán giá trị là 1) và các đối tượng không là cạnh biên (giả sử được gán giá trị 0). Và ảnh này được gán cho tên gọi tạm thời là ảnh B.
Kế đến, tiến hành loại bỏ các đối tượng nhầm lẫn trong lớp lớp đối tượng của khuôn mặt. Thực hiện phép toán tổ hợp hai kênh ảnh A và B để tạo ra ảnh kết quả mới C với chú ý rằng: trong kênh ảnh A, các đối tượng có giá trị 1 là đối tượng của khuôn mặt, có giá trị 0 là các đối tượng không của khuôn mặt, trong kênh ảnh B, các đối tượng có giá trị 1 là các đối tượng cạnh biên, có giá trị 0 là các đối tượng không phải cạnh biên, và trong ảnh tổ hợp kết quả C, các đối tượng có giá trị 1 là các đối tượng đường khuôn mặt cần tách lấy, có giá trị 0 thì không phải đối tượng đường biên khuôn mặt. Xử lý kết hợp hai kênh ảnh A và B để tạo ra kênh ảnh C có thể được mô phỏng theo:
1 nếu A = 1 và B = 0
C =
0 nếu A = 0, hoặc A = B = 1
Cuối cùng, từ ảnh C tiến hành chuyển đổi các đối tượng có giá trị 1 sang dạng vector để biên tập và hiệu chỉnh tạo ra lớp đối tượng đặc trưng khuôn mặt hoàn chỉnh phục vụ cho việc nhận dạng khuôn mặt đang được nghiên cứu.
b. Phương pháp nhận dạng khuôn mặt thông qua việc phân vùng
Một vùng ảnh R là tập hợp của các điểm ảnh có cùng chung một thuộc tính thuộc về một đối tượng trong ảnh. Ranh giới các vùng ảnh là biên ảnh, các đường biên khép kín cho phép cho phép xác định vùng ảnh.
Biên được xác định với 2 vector với 2 thành phần:
- Độ lớn: xác định bằng độ lớn của Gradient
- Hướng: hợp với hướng gradient một góc 900
Phân vùng ảnh: Là quá trình phân hoạch tập hợp các điểm ảnh X thành các tập con của các vùng ảnh Ri thoả mãn các điều kiện sau:
Các hướng tiếp cận:
Dựa trên độ đồng đều, độ tương tự về mức xám về các thuộc tính của các pixel trong mỗi vùng.
Dựa trên tách biên, dựa trên sự biến thiên của hàm mật độ sang hay mức xám.
Quá trình nhận dạng được thực hiện ảnh đối tượng được xử lý tăng cường chất lượng, làm nổi bật các chi tiết, tiếp theo trích chọn đặc trưng dựa vào phân vùng ảnh đối tượng, và biểu diễn các đăc trưng, cuối cùng là giai đoạn nhận dạng ảnh.
TÀI LIỆU THAM KHẢO
Tài liệu tham khảo tiếng Việt
Phạm Việt Bình (2007), Phát triển kỹ thuật dò biên, phát hiện biên và ứng dụng, Luận án Tiến sỹ.
Lương Mạnh Bá, Nguyễn Thanh Thủy (2002), Nhập Môn Xử lý ảnh số, Nxb Khoa học và Kỹ thuật, 2002.
Phạm Việt Bình (2006), “Một số tính chất của phép toán hình thái và ứng dụng trong phát hiện biên”, Tạp chí Tin học và Điều khiển học, Tập 22, số 2, 2006, 155-163.
Tài liệu tham khảo tiếng Anh
J.R.Paker (1997), Algorithms for Image processing and Computer Vision. John Wiley & Sons, Inc.
T. Pavlidis (1982), Algorithms for Graphics and Image Processing, Computer Science Press.
Làm nổi biên
Các file đính kèm theo tài liệu này:
- Luu Xuan The_K51KHMT_Khoa luan tot nghiep dai hoc.doc