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

Thiết kế hệ thống

Một phần của tài liệu LUẬN VĂN: TRÍCH CHỌN ĐẶC TRƯNG TRÊN KHUÔN MẶT NGƯỜI PDF (Trang 36 -42 )

Hình 17 – Hệ thống nhận dạng 20 điểm đặc trưng.

Hệ thống của chúng tôi chia thành 4 môđun chính như sau:

Môđun thứ nhất làm nhiệm vụ xác định bức ảnh đầu vào có phải là ảnh khuôn mặt không, nếu là ảnh khuôn mặt thì sẽ phát hiện ra vùng ảnh chứa khuôn mặt. Trong mô đun này chúng tôi sử dụng thuật toán phát hiện khuôn mặt dùng đặc trưng giống Haar đã được trình bày trong mục 2.3.

Môđun thứ hai làm nhiệm vụ phát hiện các vùng đặc trưng như vùng xung quanh mắt, mũi, miệng,…Trong môđun này bước đầu chúng tôi dùng phương pháp đơn giản nhất là chia khuôn mặt thành 3 phần, sau đó dùng đặc trưng giống Haar để phát hiện ra các vùng đặc trưng.

28

Với môđun thứ ba, chúng tôi xây dựng các luật để xác định ra 6 điểm đặc trưng. Trong đó:

Để xác định 2 mống mắt chúng tôi dùng 2 phương pháp sau:

Phương pháp thứ nhất: Do đặc trưng hình học của mắt là có phần con ngươi sẫm màu và là hình tròn có tỷ lệ kích thước so với mắt tương đối lớn do đó chúng ta có thể xác định vị trí mống mắt (nằm trong con ngươi) bằng phép chiếu toàn bộ theo hàng và cột.

Hình 18 – Vị trị, kích thước con ngươi.

Phép chiếu toàn bộ theo hàng (cột) thực chất là xác định vị trí hàng (cột) có số lượng điểm ảnh xám là nhiều nhất. Công thức tính histogram (tổng) theo hàng và cột như sau

H(theo hàng) = 𝑕à𝑛𝑔 255 − 𝑝𝑖𝑥𝑒𝑙 ∗ (255 − 𝑝𝑖𝑥𝑒𝑙)

H(theo cột) = 𝑐ộ𝑡 255 − 𝑝𝑖𝑥𝑒𝑙 ∗ (255 − 𝑝𝑖𝑥𝑒𝑙)

Để xác định vị trí mống mắt, đầu tiên ta xác định vị trí mống mắt theo tọa độ y sử dụng H theo hàng như sau: Tính histogram theo hàng, ta được một dãy các giá trị, biểu diễn các giá trị này bằng một đường cong, ta gọi đó là đường cong histogram. Sau đó, ta xác định vị trí y của điểm mống mắt bằng cách chọn ra vị trí hàng đạt giá trị lớn nhất trong đường cong

Phương pháp thứ hai: Khi xác định được vùng chữ nhật chứa mắt thì tâm thường nằm trong vùng con ngươi và lệch so với mống mắt một lượng nhỏ. Đầu tiên, chúng

tôi xác định tâm của hình chữ nhật chứa mắt là Oc. Sau đó, chúng tôi đánh giá độ xám

của điểm ảnh trong hình vuông kích thước 16x16 xung quanh điểm Oc, các điểm này

chúng tôi gọi là Ct (t=1,256). Mục tiêu của chúng tôi là xác định một số điểm Ct đạt

tiêu chí sau: Lấy một hình vuông kích thước 8x8 với Ct là tâm, tính tổng cấp độ xám

tất cả các điểm trong hình vuông đó, nếu tổng này mà lớn hơn tổng của Oc thì điểm

này sẽ được chọn, gọi tập hợp các điểm này là St. Cuối cùng, chúng tôi tính trung bình

29

Xác định 2 lỗ mũi

Sau khi xác định được 2 mống mắt, dựa trên khoảng cách giữa 2 mống mắt và tỷ lệ kích thước được tìm ra từ nhân trắc học ở Bảng 1 ta có thể chia lại các vùng đặc trưng trên mặt như sau.

Hình 19 – Các vùng đặc trưng trên khuôn mặt.

Sau đó chúng tôi xác định 2 lỗ mũi trong vùng M3 theo thuật toán sau:

Bước 1: Lấy ngưỡng vùng ảnh ở nhiều ngưỡng khác nhau sau đó dùng thuật toán phát hiện cạnh Canny để xác định ra đường viễn lỗ mũi trong vùng ảnh. Mới đầu thử dùng thuật toán phát hiện đường tròn Hough nhưng do đường cạnh không liên tục và, vùng mũi quá nhỏ nên không phát hiện ra được.

Bước 2: Với mỗi ngưỡng, xác định 2 đường liên tục dài nhất trong vùng ảnh (2 đường liên thông ), 2 đường này chính là 2 đường viền xung quanh của 2 lỗ mũi. Sau khi xác định được 2 đường viền ta áp dụng thuật toán tìm tâm (*) của một tập hợp các điểm rời rạc, ta thu được 2 lỗ mũi là tâm của 2 đường liên tục. Trong trường hợp chỉ tìm được 1 bên lỗ mũi thì lấy điểm đối xứng của điểm đó qua đường chính giữa làm điểm lỗ mũi còn lại.

Bước 3: Trong tập các cặp điểm xác định cặp điểm có khoảng cách lớn nhất là 2 lỗ mũi.

30

Thuật toán tìm tâm (*):

Giả sử có K điểm X1,…,Xk , Xi 𝜖 Rn thì tâm C xác định như sau:

C = 𝑋1+𝑋2+⋯+𝑋𝑘

𝑘

Phương pháp trên cho kết quả không được tốt, vì cách tính trung bình bị ảnh hưởng bởi mật độ của các điểm trong đường viền. Khi tách ngưỡng, số lượng điểm nằm ở một vùng đen thường vượt trội hơn hẳn so với các vùng khác nhiều, khi tính trung bình thì kết quả không chính xác. Để bị ảnh hưởng bởi mật độ các điểm trong đường viền ta sử dụng thuật toán tương tự như thuật toán 3 đỉnh tam giác (Centroid Of triangle) nhưng ở đây chúng ta chỉ sử dụng 2 đỉnh thay vì 3 đỉnh.

Thuật toán 2 đỉnh tam giác

Nếu chúng ta có 2 đỉnh a = (Xa,Ya), b = (Xb,Yb) thì tâm được xác định như sau C = 1

2 𝑎 + 𝑏 = 1

2 𝑥𝑎 + 𝑥𝑏 ,1

2 𝑦𝑎 + 𝑦𝑏

Tổng quát, nếu chúng ta có n đỉnh chúng ta sẽ lấy 2 đỉnh đầu, tính tâm 2 đỉnh đó được

đỉnh t1 thêm vào n-2 đỉnh còn lại , tiếp túc với n-2+1 đỉnh cho đến khi còn 1 đỉnh duy

nhất một đỉnh.

Ví dụ ở đây có 4 đỉnh P1,P2,P3,P4. Ta tính tâm sẽ là đỉnh t3 như hình vẽ.

Hình 20 – Thuật toán 2 đỉnh.

Để xác định khóe miệng, chúng tôi dùng phương pháp sau:

Bước 1: Do vùng ảnh miệng thường rất rõ ràng, sắc nét và có độ rộng tương đối lớn so với vùng ảnh do đó có thể dùng thuật toán phát hiện cạnh để xác định 2 mép và 2 khóe miệng. Để thực hiện theo hướng này, đầu tiên chúng tôi lấy ngưỡng ảnh vùng miệng

31

với một ngưỡng thích hợp. Mục đích của việc lấy ngưỡng là làm rõ sự khác biệt giữa vùng miệng và các vùng xung quanh giúp cho việc phát hiện cạnh dễ dàng hơn. Sau đó áp dụng thuật toán phát hiện cạnh (cụ thể là thuật toán Canny) để phát hiện cạnh ta có đường biên xung quanh miệng.

Bước 2: Ta xác định 2 khóe miệng là 2 vị trí ngoài cùng trên đường biên.Tuy nhiên, khi áp dụng phương pháp nảy sinh một số khó khăn như sau :

Thứ nhất, trong bước lấy ngưỡng để chọn ra một ngưỡng chung cho tất cả bức ảnh là rất khó (không khả thi) do với mỗi bức ảnh vùng miệng có cường độ và độ sáng tối là khác nhau. Bước này ta phải chọn ra một số ngưỡng thích hợp (do thực nghiệm), trong bài đã chọn ra được một số ngưỡng : 5, 8, 10 , 15 , 13 , 18 , 25, 27 , 32. Những ngưỡng này thường nằm trong khoảng (5,50).

Thứ hai, khi xác định được đường biên xung quanh miệng thì lựa chọn điểm khóe miệng như thế nào thì độ sai số là nhỏ nhất. Nếu lựa chọn là điểm ngoài cùng thì không chính xác, do xuất hiện một số điểm không xác định thường nằm ngoài cùng đường biên. Nhận thấy đường biên xung quanh miệng luôn là đường liên tục (hoặc gián đoạn một đoạn nhỏ) và có số lượng các đỉnh (ở đây là các điểm ảnh) lớn nhất, do đó ta áp dụng thuật toán tìm đồ thị liên thông mở rộng (*) vào bức ảnh để tìm ra các điểm khóe miệng.

32

Bước 3: Sau khi lấy được các cặp điểm khóe miệng ứng với các ngưỡng khác nhau thì vấn đề còn lại là chọn ra vị trí 2 điểm khóe miệng gần với vị trí cần tìm nhất. Chúng tôi sử dụng ra 2 cách chọn có hiệu quả tốt là :

 Trong tất cả các tập hợp điểm khóe miệng bên trái và khóe miệng bên phải ta chọn

ra điểm nào có số lần lặp lại nhiều nhất (tần suất xuất hiện trong tất cả các ngưỡng là lớn nhất).

 Trong tập hợp các cặp điểm tìm ra cặp điểm có khoảng cách là lớn nhất.

(*) Thuật toán tìm đồ thị liên thông mở rộng :

+ Ta coi mỗi điểm ảnh có độ xám khác 0 là một đỉnh của đồ thị, bức ảnh nxn sau khi phát hiện cạnh là một đồ thị liên thông.

+ Sử dụng mảng bool nxn để đánh dấu vị trí duyệt , và hàng đợi để lưu các đỉnh. + Duyệt qua toàn bộ các đỉnh , nếu đỉnh có đỉnh kề ( thỏa mãn điều kiện mở rộng ) thì thêm đỉnh kề đó vào hàng đợi, đánh dấu điểm đó đã thăm, lấy điểm tiếp theo trong hàng đợi, tiếp tục cho đến khi hàng đợi rỗng.

+ Xác định đường liên thông dài nhất, sau đó xác định 2 vị trị ngoài cùng làm 2 mép.

(*) Luật mở rộng : thay vì các đỉnh đồ phải kề nhau ta coi các điểm nằm trong một hình chữ nhật kích thước axb là kề nhau (do một số đường bị rời rạc khi lấy ngưỡng và phát hiện cạnh).

Môđun thứ tư có nhiệm vụ là xác định ra 14 điểm đặc trưng, môđun bao gồm 3 thành phần chính, đầu tiên là bộ trích chọn đặc trưng Gabor có nhiệm vụ trích chọn ra vector đặc trưng của một điểm từ bức ảnh, tiếp theo là 14 bộ phân lớp tương ứng với 14 điểm đặc trưng, khi vector dữ liệu ứng với mỗi điểm được cho qua các bộ phân lớp này, điểm đó sẽ được xác định là có phải điểm đặc trưng đó không, do có một số điểm sai mà bộ phân lớp không nhận ra, để giảm số lượng các điểm sai này chúng tôi dùng thêm bộ luật. Ứng với mỗi một điểm đặc trưng, bộ luật sẽ có một số luật tương ứng với điểm đó, nhiệm vụ của bộ luật là giảm những điểm đặc trưng sai mà bộ phân lớp không nhận ra. Cuối cùng, chúng tôi sử dụng thuật toán trọng tâm để xác định ra điểm đặc trưng gần trọng tâm ứng với 14 cụm điểm nhất của 14 điểm đặc trưng. Kết quả sẽ thu được 14 điểm đặc trưng. Cụ thể các phần như sau:

33

Để trích chọn đặc trưng Gabor, chúng tôi chọn ra một số bức ảnh của những người khác nhau dùng làm mẫu trích chọn đặc trưng. Với mỗi bức ảnh chúng tôi chấm bằng

tay vị trí các điểm đặc trưng. Để trích chọn đặc trưng Gabor cho mỗi điểm Pi, chúng

tôi lấy vùng ảnh Mi kích thước 10x10 pixel có tâm là điểm Pi. Sau đó nhân xoắn vùng

ảnh Mi với 48 bộ lọc Gabor đuợc 48 ảnh mới MGi , lấy 10x10 giá trị điểm ảnh trong

vùng ảnh Mi với 48x10x10 giá trị điểm ảnh trong 48 ảnh MGi làm vector đặc trưng cho

điểm đặc trưng. Như vậy mỗi điểm đặc trưng bởi một vector đặc trưng Vj = (x0,…,xk |

k = 4899). Để tăng số lượng vector đặc trưng cho học máy và tăng độ chính xác cho hệ thống, với mỗi điểm đặc trưng chấm bằng tay, chúng tôi sẽ xác định thêm 24 điểm:

+ 8 điểm đúng nằm trong hình vuông 3x3 pixel mà tâm là điểm đặc trưng Pi

+ 16 điểm sai, chúng tôi lựa chọn ngẫu nhiên các điểm thoả mãn: Nằm trong hình

vuông kích thước 50x50 pixel với tâm là Pi và khoảng cách từ điểm ngẫu nhiện đến

Pi luôn lớn hơn 8 pixel.

Để xây dựng bộ phân lớp cho 14 điểm đặc trưng chúng tôi cho các vector đặc trưng

ứng với từng điểm Pi (i = 1,14) vào huấn luyện trong Weka với thuật toán huấn luyện

là SMO (Suport Vector Machine), sau khi huấn luyện bằng Weka chúng tôi thu đuợc

14 model ứng với 14 điểm Pi và dùng các model này để kiểm tra xem một điểm bất kỳ

có thuộc vào một trong 14 điểm đặc trưng không.

Với mỗi điểm đặc trưng chúng tôi đưa ra một số luật về vị trí để giới hạn lại số điểm đúng sau đó áp dụng phương pháp tính trung bình (tính trung bình tất cả các điểm sau đó chọn ra điểm có vị trí gần điểm trung bình nhất) để chọn ra điểm đúng nhất.

Một phần của tài liệu LUẬN VĂN: TRÍCH CHỌN ĐẶC TRƯNG TRÊN KHUÔN MẶT NGƯỜI PDF (Trang 36 -42 )

×