XÂY DỰNG KHUNG LƢỚI

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin Phát hiện mặt người trong ảnh dựa vào đặc trưng 3d (Trang 45 - 71)

4. Những đóng góp mới của đề tài

2.2.3XÂY DỰNG KHUNG LƢỚI

Tại mỗi không gian nút, dựa vào bảng dữ liệu bảng 2.1 và bảng 2.2 ta xây dựng một khung lưới 3D.Trong đó những nút ở mức cao nhất sẽ được đưa vào khung lưới trước và được nối với nhau bằng các cạnh vô hướng để tạo kết xuất

9 10 1 2 4 3 12 11 1 2 4 3 S

khung lưới cơ bản. Kích thước của khung này có thể lớn hoặc nhỏ tùy theo khoảng cách Euclide giữa các nút.

Hình 2.12 Một số kết xuất khung lƣới cơ bản

Những nút có mức thấp hơn sẽ được đưa vào trong khung và được nối với nút cha của chúng. Với các nút cùng cha mà có nút xương nằm ở giữa hai nút rãnh hình chữ nhật đứng thì ta phải vẽ thêm cạnh nối biên giữa nút xương và hai nút rãnh kia. Sau khi vẽ đường biên này chúng ta sẽ nhận thấy một điều trong quá trình vẽ nó sẽ tạo nên một hình thoi nằm trong vùng xương và rãnh của nút cha.

Hình 2.13 Các nút tạo thành từ xƣơng và rãnh đƣợc rút trích theo mức

2.2.4 Tối ƣu hóa việc dò tìm các đặc trƣng

Tại công thức 2.3 hệ số 1.5 trước hàm sum(R), ta biết việc tính toán trên số thực sẽ diễn ra chậm dó đó để tăng tốc độ tính toán ta sử dụng một giá trị tương ứng bằng cách sử dụng 2 hệ số như công thức sau

Đối với vùng đang xét bao giờ ta cũng phải tính tổng các điểm sáng trên vùng kích thước s, tuy nhiên khi dịch chuyển sang vùng kế tiếp các điểm sáng này được chồng lên nhau, với việc lặp đi lặp lại nhiều lần như vậy làm cho tốc độ tính toán chậm đi rất nhiều. Để hạn chế được việc này tôi áp dụng kỹ thuật quy hoạch động của Đức Dương[15] và P. Viola[21] phương pháp này được giới thiệu như sau:

Cho một ảnh có mức xám I(x,y), gọi S(x,y) là ảnh tích phân sao cho tổng toàn bộ mức sáng của điểm ảnh trong hình chữ nhật R(1,1,x,y) là S(x,y). Sử dụng công thức truy hồi phía dưới để tính S(x,y) như sau:

S(i,j) = [1..i]x[1..j]

Hình 2.14 Ảnh tích phân

0 x = 0 y = 0

S(x,y)= (2.5)

S( x-1, y) + S(x, y-1) – S(x-1, y-1) +I(x,y) x 0 y ≠ 0

Dựa vào công thức 3.5 ta có thể dễ dàng tính tổng mức sáng của một hình chữ nhật tại vị trí bất kỳ R(l,t,r,b) theo công thức sau:

SR = S(r,b) - S(r,t) - S(l,b) + S(l,t) (2.6) (I,j) (i,j) (1,1) t b l r 1,1

Hình 2.15 Tính tổng mức sáng của hình chữ nhật R (l,t,r,b)

2.2.5 Cắt tỉa cấu trúc cây 3D

Trong quá trình xây dựng cây cấu trúc sẽ không tránh khỏi một số nút cùng kiểu giống nhau so với nút gốc của nó những nút đó được xem là nút dư thừa. Đối với trường hợp này chúng ta sẽ cắt bỏ nút đó khỏi cây. Nếu nó là nút cuối cùng (hay nút lá) thì ta bỏ đi bình thường. Nhưng nếu nó không phải là nút con cuối cùng thì chúng ta sẽ gán tất cả các con của nút bị xóa cho nút cha của nút bị xóa đó.

Do hiệu ứng của phép biến đổi Gaussian tại các mức khác nhau nên vùng rút trích từ ảnh cũng khác nhau nên sẽ có những vùng dư thừa. Chúng ta xem hình 2.9 và 2.15 ta nhận thấy có hai vùng hình chữ nhật đỏ và xanh, hai vùng này tương ứng với 2 giá trị dò σ2, σ3 khác nhau nhưng thực ra chúng là một, do đó sẽ dư vùng σ3 nên vùng này sẽ được xóa để làm tăng tốc độ tính toán phát hiện khuôn mặt.

2.3 Xây dựng tập mẫu

Để thực nghiệm thuật toán mà luận văn đề xuất tôi sử dụng nguồn dữ liệu ảnh thu thập bởi Markus Weber [9]. Đây là tập dữ liệu được chụp dưới nhiều góc độ, tư thế khuôn mặt có nhiều kiểu và có phần bị che khuất và điều kiện ánh sáng đa dạng . Tập ảnh này có đến 450 tấm ảnh có cả dạng ảnh truyện tranh.

a) Hình chụp người đàn ông trong nhà b) Hình chụp người phụ nữ trong nhà

c)Hình chụp ngoài trời d) Hình chụp khuôn mặt bị che

e)Hình chụp dưới ánh sáng mờ f) Hình chụp khuôn mặt bị biến dạng

Hình 2.16 Một số ảnh trong thƣ viện của Markus Weber

2.4 Các kỹ thuật dò biên

Như chúng ta đã biết biên là vấn đề quan trọng trong trích chọn các đặc điểm nhằm tiến tới hiểu ảnh. Cho đến nay chưa có định nghĩa nào chính xác về biên, trong mỗi ứng dụng người ta đưa ra các độ đo khác nhau về biên, một trong các độ đo đó là độ đo về sự thay đổi đột ngột về cấp xám. Ví dụ: đối với ảnh đen trắng, một điểm đượcgọi là điểm biên nếu nó là điểm đen có ít nhất một điểm trắng bên cạnh. Tập hợp các điểm biên tạo nên biên hay đường bao của đối tượng. Xuất phát từ cơ sở này người ta thường sử dụng hai phương pháp phát hiện biên cơ bản sau: (adsbygoogle = window.adsbygoogle || []).push({});

2.4.1 Kỹ thuật phát hiện biên trực tiếp

Phương pháp này làm nổi biên dựa vào sự biến thiên về mức xám của ảnh. Kỹ thuật phát hiện biên ở đây là kỹ thuật lấy đạo hàm, nếu lấy đạo hàm bậc nhất ta có kỹ thuật Gradient, nếu lấy đạo hàm bậc hai ta có kỹ thuật Laplace. Ngoài ra còn một số tiếp cận khác.

- Kỹ thuật phát hiện biên Gradient

Theo đị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 một hàm như sau:

Trong đó dx, dy là khoảng cách giữa hai điểm kế cận theo hướng x, y. - Kỹ thuật Prewitt

Kỹ thuật này sử dụng hai mặt nạ nhân chập xấp xỉ đạo hàm theo hai hướng x và y là [ ] [ ] Các bước tính toán của kỹ thuật Prewitt

Bước 1: Tính I ⨂ và I ⨂ Bước 2: Tính I ⨂ + I ⨂

- Kỹ thuật Sobel

Tương tự như kỹ thuật Prewitt, kỹ thuật sobel sử dụng hai mặt nạ nhân chập theo hai hướng x, y là: [ ] [ ] - Kỹ thuật phát hiện biên Laplace

Các phương pháp đánh giá gradient ở trên làm việc khá tốt khi mà độ sáng thay đổi rõ nét. Khi mức xám thay đổi chậm, miền chuyển tiếp trải rộng, phương pháp cho hiệu quả hơn đó là phương pháp sử dụng đạo hàm bậc hai Laplace.

Toán tử Laplace được định nghĩa như sau: Ta có: = ( [ ] [ ] = ( [ ] [ ] Vậy Dẫn tới [ ]

Trong thực tế chúng ta dùng nhiều kiểu mặt nạ khác nhau để xấp xỉ rời rạc đạo hàm bậc hai Laplace. Một số mặt nạ thường dùng theo toán tử Laplace bậc 3x3 có thể: [ ] [ ] [ ] Với kỹ thuật Laplace có ưu điểm là sẽ tạo đường biên mảnh, tuy nhiên nhược điểm của kỹ thuật này là rất nhạy với nhiễu, do đó đường biên thu được thường kém ổn định.

- Kỹ thuật Canny (1986)

Kỹ thuật này dựa trên cặp đạo hàm riêng bậc nhất với việc làm sạch nhiễu, đây là một kỹ thuật tương đối tốt có khả năng đưa ra đường biên mảnh và phát hiện chính xác điểm biên với điểm 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.

⨂ =fx + fy với fx, fy là đạo hàm riêng theo x, y của f.

2.4.2 Kỹ thuật phát hiện biên gián tiếp

Bằng một cách nào đó ta phân được ảnh thành các vùng thì ranh giới giữa các vùng được gọi là biên. Kỹ thuật dò biên và phân vùng ảnh là hai bài toán đối ngẫu nhau vì dò biên để thực hiện phân lớp đối tượng. Khi đã phân lớp đối tượng xong nghĩa là đã phân vùng được ảnh, do đó có thể phát hiện được biên. 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 thấp.

2.5 Gán nhãn canh biên các đặc trƣng của khuôn mặt

Việc đầu tiên trong quá trình giảm số biến đổi trong ảnh khuôn mặt là canh biên khuôn mặt này so với khuôn mặt khác. Việc canh biên này sẽ giảm tối thiểu các biến đổi về vị trí, hướng và tỷ lệ khuôn mặt. Do cường độ ảnh khuôn mặt có nhiều biến đổi làm cho việc canh biên một số khuôn mặt trở nên khó khăn hơn, để giải quyết vấn đề này ta sử dụng phương pháp gán nhãn một cách thủ công cho khuôn mặt cụ thể là vị trí hai hốc mắt, mũi và trung tâm miệng và hai khóe miệng của khuôn mặt. Sau đó dùng thông tin trên khuôn mặt này để canh biên với các khuôn mặt khác .

2.5.1 Định nghĩa canh biên giữa hai điểm đặc trƣng

Canh biên giữa hai điểm đặc trưng là một phép quay, biến đổi tỷ lệ và dịch chuyển vị trí để làm cực tiểu hóa tổng bình phương khoảng cách giữa các cặp đặc trưng tương ứng. Trong không gian hai chiều một phép biến đổi tọa độ như vậy có thể được hiểu như sau:

( )=( ) x ( ) + ( ) = ( ) x ( ) (2.6)

Khi có hai hay nhiều hơn cặp đặc trưng phân biệt, hệ các phương trình tuyến tính trên có thể giải bằng phương pháp đảo ngược. Phương pháp đó được hiểu như sau:

Canh biên tập các đặc trưng

1: Khởi tạo ̅ vector sẽ là vị trí trung bình của mỗi đặc trưng gán nhãn so với một số đặc trưng ban đầu. Trong trường hợp canh biên với khuôn mặt thẳng các đặc trưng vị trí hai mắt, đỉnh mũi, hai khóe và trung tâm miệng được xem là vị trí quan trọng, và là ứng cử viên của cửa sổ đầu vào.

2: Với mỗi khuôn mặt n, ta sử dụng thủ tục canh biên để tính phép quay, dịch chuyển và biến đổi tỷ lệ hợp lý để canh biên các đặc trưng khuôn mặt với các vị trí đặc trưng trung bình ̅. Ta gọi vị trí đặc trưng đã canh biên là .

3: Cập nhật ̅ bằng việc lấy trung bình các vị trí đặc trưng đã canh biên cho mỗi khuôn mặt n

4: Tọa độ đặc trưng ̅ được quay, dịch chuyển và biến đổi để phù hợp với một số tọa độ đã được làm tọa độ khởi tạo.

Thông thường thuật toán sẽ hội tụ ở năm lần lặp, tạo cho mỗi khuôn mặt phép biến đổi để ánh xạ nó về gần với vị trí chuẩn. Khi ta đã biết được các tham số để canh biên khuôn mặt, ảnh có thể được lấy mẫu lại dùng nội suy song tuyến tính. (adsbygoogle = window.adsbygoogle || []).push({});

Việc huấn luyện bộ dò tìm và thu thập mẫu số liệu là một vấn đề quan trọng. Để giải quyết việc này ta sử dụng khung nhìn ảo trong đó các ảnh mẫu mới được tạo ra từ các ảnh thực thông qua phép quay, tịnh tiến và biến đổi tỷ lệ.

2.5.2 Gán nhãn

Từ tập ảnh học 2.5 chúng tôi sử dụng phương pháp trình bài trong phần 2.1.3 để rút trích các điểm 3D trên ảnh. Cây này được gán nhãn thủ công. Mỗi cây sẽ được gán nhãn là khuôn mặt và không phải khuôn mặt. Do đó, từ một ảnh ta rút ra được hai tập cây là tập cây biểu diễn khuôn mặt và tập cây biểu diễn không phải là khuôn mặt.

Hình 2.18 Gán nhãn bằng phƣơng pháp thủ công

2.6 Xử lý độ sáng và độ tƣơng phản trên tập mẫu

Khi hoàn thành việc canh biên các khuôn mặt, do đặc trưng của ánh sáng hoặc đặc trưng của máy ảnh dẫn đến ảnh có độ sáng cao hay thấp hoặc ảnh có độ tương phản kém. Để giải quyết vấn đề này ta sử dụng kỹ thuật xử lý ảnh đơn.

- Kỹ thuật tiền xử lý, trước hết cân bằng các giá trị mật độ trên toàn cửa sổ. Lập hàm biến đổi tuyến tính giá trị mật độ trong vùng tròn của cửa sổ. Các điểm bên ngoài vòng tròn được xem là nền. Giả sử mật độ của pixel (x,y) là I(x,y) khi đó cách biến đổi tuyến tính này được tham số hóa bởi a,b,c với:

Ảnh đầu vào

Rút trích cây

Gán nhãn

x( ) = I(x,y) (2.7)

Với việc biến đổi này nó sẽ biểu diễn các khác biệt về độ sáng trên toàn ảnh. Các biến đổi được giới hạn tuyến tính để việc tạo lập hàm nhanh chóng và số tham số ít. Tập hợp tất cả pixel trên toàn bộ cửa sổ đường tròn ta được phương trình ma trận ràng buộc và được giải bằng phương pháp đảo ngược ở trên. Với phương trình này sẽ xấp xỉ toàn bộ độ sáng của mỗi phần cửa sổ và trừ đi với cửa sổ kế cận để cân bằng biến đổi về độ sáng.

Cân bằng lược đồ , ánh xạ không tuyến tính các giá trị mật độ để nới rộng miền cường độ trong cửa sổ. Lược đồ được tính với các pixel trong cửa sổ vòng tròn.

Hình 2.19 Các bƣớc tiền xử lý để hiệu chỉnh độ sáng và cân bằng lƣợc đồ

Đầu tiên sẽ xây dựng hàm ánh xạ tuyến tính với các giá trị mật độ trong cửa sổ sau đó trừ đi nó để hiệu chỉnh độ sáng. Tiếp theo sử dụng cân bằng lược đồ để hiệu chỉnh đầu vào của ảnh và cải thiện độ tương phản . Với mỗi bước trên việc ánh xạ được tính với các pixel bên trong hình tròn và được áp dụng với toàn cửa sổ.

2.7 Áp dụng mô hình thống kê

2.7.1 Thống kê

Mục đích chính của việc áp dụng mô hình thống kê là xấp xỉ được một cây cấu trúc khuôn mặt. Với bước rút trích và gán nhãn cây từ tập dữ liệu thực

nghiệm, ta sẽ thu được một bộ cây thuộc lớp khuôn mặt, các cây này sẽ được dùng làm mô hình thống kê. Phương pháp thống kê được thực hiện như sau:

Đặt S(Dx) là tổng khoảng cách của một cây D bất kỳ so với tất cả các cây còn lại trong tập học. ∑ Như vậy tập học sẽ là : TH = { (

Trong đó KM là tập các cây được gán nhãn là khuôn mặt. Việc thống kê sẽ được thực hiện như sau đầu tiên chọn trong tập TH (tập học) ra k cây có giá trị S(D) nhỏ nhất (gọi là tập khuôn mặt chuẩn), k cây này sẽ được đại diện cho lớp khuôn mặt. Từ tập khuôn mặt chuẩn này chúng ta sử dụng như mô hình sau:

Hình 2.20 Kiểm tra phát hiện khuôn mặt

Đầu tiên từ ảnh đầu vào ta sử dụng phương pháp rút trích các đặc trưng 3D ta sẽ nhận được một tập cây biểu diễn khuôn mặt. Ứng với mỗi cây trong tập ra dựa vào tập TH để kiểm tra xem đây có phải là tập cây biểu diễn khuôn mặt hay không, nếu thỏa điều kiện đánh giá thì tập cây đó sẽ trở thành ứng viên khuôn mặt. Các ứng viên này sẽ được xử lý để khử trùng lắp khuôn mặt do một số cây có một phần nút gốc chồng lắp với nhau.

Ảnh đầu vào

Kiểm tra cây

TH

Xử lý ứng viên

So sánh với tập cây Ứng viên (adsbygoogle = window.adsbygoogle || []).push({});

2.7.2 Đánh giá dựa trên số liệu thu thập đƣợc

Với tập cây chuẩn TH, một cây bất kỳ được đánh giá có khả năng là khuôn mặt hay không là khuôn mặt dựa trên trung bình khoảng cách của cây đang xét đến tất cả tập cây chuẩn TH.

̅ ∑ ‖ ‖ Trong đó:

̅(t): là trung bình khoảng cách của cây t đến tất cả các tập chuẩn TH t : là cây đang xét

: là các cây trong tập k cây chuẩn

Căn cứ vào giá trị của ̅(t) để xem cây t có được xem là ứng cử viên khuôn mặt hay không như sau:

t ̅(t) (2.9)

Với là ngưỡng thực nghiệm, ngưỡng này sẽ được lấy trong khoảng từ 0.2 đến 0.4

Cuối cùng muốn thu được kết quả chính xác hơn, thì các kết quả thu được từ tập hợp các tập cây ta thấy có một phần trùng lắp lên nhau. Có thể phát hiện ra nhiều ứng viên được cho là khuôn mặt nhưng thật sự chúng là sự trùng lắp của các tập cây với nhau lên một vị trí. Do đó, chúng ta có một thuật toán tối ưu để giảm những ứng viên trùng lắp này. Để làm được việc này luận văn đề xuất giảm bớt các ứng viên trùng lắp bằng cách liên kết các vùng trùng lắp với nhau. Nếu hai vùng ứng viên khuôn mặt có diện tích bị trùng lắp lên nhau quá 1/3 diện tích của nó thì các vùng này được xem là trùng lắp và sẽ được liên kết thành một vùng

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin Phát hiện mặt người trong ảnh dựa vào đặc trưng 3d (Trang 45 - 71)