Có thể nói đây là công đoạn phức tạp nhất trong quá trình chuẩn hóa ảnh bàn tay.
Ở những bài toán mà vị trí đặt tay là cốđịnh thì không phải giải quyết vấn đề này. Công đoạn này gồm hai giai đoạn, giai đoạn đầu là việc xử lý các ngón tay bao gồm những bước sau: tách các ngón tay, xác định các điểm privot của các ngón tay (thực hiện xoay ngón tay xung quanh các điểm này), quay các ngón tay, xử lý ngón tay cái.
5.1.1.3.1.Tách các ngón tay
Từ các điểm đầu ngón tay, đo khoảng cách tới hai điểm kẽ ngón tay gần kề và chọn khoảng cách ngắn hơn. Sau đó từđiểm đầu vẽ một cung tròn theo khoảng cách ngắn hơn này sang phía bên kia của ngón tay, ta sẽ xác định được phần ngón tay tách rời so với bàn tay như trong hình vẽ. Độ dài các ngón tay xem nhưđã được biết thông qua khoảng cách này.
Hình-5. 3: Tách các ngón tay, xác định các trục, điểm privot của ngón tay và đường pivot line
5.1.1.3.2. Xác định các điểm pivot của ngón tay
Việc xác định các điểm pivot của ngón tay có ý nghĩa vô cùng quan trọng trong việc chuẩn hóa góc của các ngón tay. Những điểm này nằm trong lòng bàn tay, tại vị trí các khớp của ngón tay và không thể nhìn thấy trực tiếp được. Việc ước lượng chính xác vị trí những điểm này có tính quyết định đểđảm bảo độ tin cậy trong việc sắp xếp tư thế các ngón tay. Để có thể xác định được các điểm này ta cần sử dụng hai thông tin liên quan. Điều đầu tiên đó là các điểm này phải nằm trên trục chính của các ngón tay, được xác định bởi véc tơđặc trưng chính của ma trận quán tính
Chương 5: Nhận dạng bàn tay và mặt người
của ngón tay. Hơn nữa, trong lý thuyết về giải phẫu học bàn tay cho ta biết rằng khi mà một bàn tay nguyên mẫu đã xác định chính xác các điểm pivot thì với những bàn tay khác, vị trí các điểm này có thể xác định khá chính xác nhờ phép biến đổi tỉ
lệ.
Với xi proto, , i=1, 2,...,5 biểu diễn tọa độ chính xác các điểm pivot đã biết của các ngón tay trên bàn tay mẫu (prototypical hand). Khi sử dụng phép biến đổi tuyến tính dựa trên việc đo đạc kích thước thật của bàn tay với những tọa độ này sẽ cho ta
,
i scale
x . Cuối cùng, mỗi điểm pivot sẽ được hiệu chỉnh riêng rẽ. Như vậy, các điểm pivot được cập nhật sẽ trải qua một chuỗi biến đổi liên tiếp xproto → xscale →xactual
nhằm xấp xỉ xtrue. Ta lấy điểm kẽ ngón tay giữa ngón giữa và ngón nhẫn làm gốc tọa độ (điểm mốc) của bàn tay và gọi điểm này là xref. Trong hình-5.5 ta có các
điểm đầu ngón tay và điểm pivot thật lần lượt là F và T = xtrue. Việc ước lượng vị
trí điểm pivot bao gồm hai bước chính như sau:
1. Biến đổi tỉ lệ các điểm pivot mẫu
Vị trí của các điểm pivot mẫu được tra vào bằng cách sử dụng thông tin về
kích cỡ của bàn tay thực tế và được thực hiện bằng một phép biến đổi tuyến tính
scaled proto ref
x =Sx +x , trong đó S là một phép biến đổi tỉ lệ. Số liệu tỉ lệ xích của bàn tay đáng tin cậy nhất với độ mở lớp trong nhỏ nhất sẽđạt được khi độ dài ngón giữa và độ rộng trung bình của lòng bàn tay như minh họa ở hình-5.4. Cả hai kích thước này đều có thể đo chính xác được, và là cơ sở cho việc biến đổi tỉ lệ theo cả chiều dọc lần chiều ngang bàn tay. Hệ số biến đổi trên đường chéo của ma trận S được cho bởi tỉ số giữa chiều dài l của các ngón giữa: 11 actual
proto l S l = , và tỉ số giữa các chiều rộng w của lòng bàn tay : 22 actual proto w S w = .
Hình-5. 4: Chiều dài ngón giữa, độ rộng lòng bàn tay và các điểm pivot
2. Hiệu chỉnh các điểm pivot của mỗi ngón tay
Các điểm pivot ước lượng sau khi tìm được nhờ phép biến đổi tỉ lệ có thể không nằm đúng trên trục chính của ngón tay tức là xscale ≠ xtrue. Mặc dù điểm pivot thực tế
không thể quan sát thấy trực tiếp được, ta cũng có thể xác định được liệu một kết quả tìm có bị sai hay không dựa trên quan sát là xscale không nằm trên trục của ngón tay. Một giải pháp đơn giản đó là chiếu vuông góc xscale lên trục ngón tay như mô tả ở hình-5.5a. Hình vẽ cho thấy phép chiếu xscale lên trục ngón tay theo hai phương khác nhau, giả thiết 1
1 actual
P = x và 2 2 actual
P =x (Chú ý rằng vị trí xscale trong hình này
được cố ý đặt đối diện với xtrue nhằm mục đích mô tả cho rõ). Điều chúng ta cần nhấn mạnh là việc lấy xấp xỉ bậc nhất bằng cách chiếu trực giao (vuông góc) không phải lúc nào cũng đưa lại hiệu quả như mong muốn, đặc biệt là khi có sự biến thiên mạnh của hướng ngón tay giữa những lần lấy mẫu khác nhau. Cái mà ta cần tìm là một phép chiếu từ xscale lên trục ngón tay để cho độ biến thiên của chiều dài ước lượng từ đầu ngón tay tới điểm pivot (F tới xactual) là bé nhất có thể. Với giả thiết rằng các ngón tay có thể đu đưa giữa các góc cực biên là α1=αright và α2 =αleft với
Chương 5: Nhận dạng bàn tay và mặt người
phân bốđều (các góc được đo trong mối liên quan với đường nằm ngang như trong Hình-5.5b), ta có thể tìm góc chiếu β (không nhất thiết phải chiếu vuông góc, như
hình Hình-5.5b) để khoảng biến thiên ước lượng của chiều dài khi các ngón tay đu
đưa là bé nhất.
(a) (b)
Hình-5. 5: Thuật toán thực hiện hiệu chỉnh các điểm pivot a) Chiếu vuông góc xscale lên hai trục ngón tay; b) Xác định góc chiếu β Trong hình-5.5b thì vùng mà ngón tay có thểđu đưa trong mối liên quan với lòng bàn tay (α αleft, right) được tô mờ. Ta tìm một góc chiếu β từ xscale lên trục ngón tay
để cho độ biến thiên chiều dài ngón tay ước lượng là nhỏ nhất có thể. Độ dài ngón tay được ước lượng Fxactual ≈ Fxtrue , được đo từđiểm pivot đã chiếu xactual tới điểm
đầu ngón tay F. Góc chiếu tìm được là:
2
right left
π α α
β = − − .
5.1.1.3.3. Góc quay của các ngón tay
Ta có thể xác định được các trục chính của các ngón tay từ ma trận quán tính của nó. Góc định hướng thực tế của ngón tay suy ra từ θ =arctan(vmaj /umaj), trong đó (umaj,vmaj) là véc tơ đặc trưng chính. Mỗi ngón tay i được quay bởi một góc
i i i
θ θ ψ
∆ = − , với i lần lượt là các ngón trỏ, giữa, nhẫn, út, và ψi là góc định hướng mục tiêu của ngón tay. Góc quay ngón tay được tính bằng cách nhân véc tơ vị trí
của các pixel ngón tay với ma trận quay cos( ) sin( ) sin( ) cos( ) θ θ θ θ ∆ − ∆ ⎡ ⎤ = ⎢ ∆ ∆ ⎥ ⎣ ⎦ R xung quanh
điểm pivot. Góc chuẩn của các ngón tay suy ra từ một bàn tay chuẩn và được cho trong bảng dưới đây. Chú ý một lần nữa rằng người sử dụng có quyền đặt tay tự do theo ý muốn và nhiệm vụ của bài toán là phải đưa bàn tay về vị trí chuẩn.
Ngón cái Ngón trỏ Ngón giữa Ngón nhẫn Ngón út
140 106 94 82 70
Bảng 5.1: Góc định hướng của các ngón tay sau khi đã được chuẩn hóa
5.1.1.3.4. Xử lý ngón cái
So với các ngón tay khác thì chuyển động của ngón tay cái phức tạp hơn bởi chuyển động quay của nó phụ thuộc vào hai khớp khác nhau. Do đó mà việc quay ngón tay cái phải được xử lý riêng. Trên thực tế, cả hai khớp này đều đóng một vai trò nhất định trong chuyển động của ngón cái. Ta sẽ bù trừ cho mối liên quan phức tạp này bằng cách thực hiện một phép quay sau đó thực hiện tiếp một phép dịch (như hình-5.6).. Trên đường thẳng dọc theo trục chính của ngón cái, điểm pivot sẽ được xác định bằng cách đo một đoạn bằng 120% độ dài ngón út. Ngón cái sau đó
được dịch sao cho điểm pivot của nó trùng với đầu của đường pivot, khi phần sau
được quay 900 theo chiều kim đồng hồ. Cuối cùng ngón cái sẽđược quay về hướng của nó và được gắn lại vào bàn tay. Hai ảnh ngón tay cái trước và sau chuẩn hóa như trong hình-5.6.
Chương 5: Nhận dạng bàn tay và mặt người
(a) (b)
Hình-5. 6: Xử lý ngón cái a) Quay ngón cái b) Dịch điểm pivot
Sau khi góc định hướng của các ngón tay đã được chuẩn hóa, bàn tay sẽ được dịch theo tâm của nó (trung bình của bốn điểm pivot) đến một điểm mốc cố định trên mặt ảnh. Cuối cùng cả bàn tay sẽđược quay sao cho đường pivot của nó nằm theo một hướng cốđịnh đã lựa chọn. Như một sự lựa chọn, các bàn tay có thểđược xử lý dựa vào trục quán tính chính của nó và dựa vào tâm của đường viền bàn tay (chứ không phải tâm của các điểm pivot).