Giải thuật nhận dạng

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu robot hỗ trợ người khiếm thính ứng dụng công nghệ xử lý ảnh (Trang 43 - 50)

Chương 2 : TỔNG QUAN VỀ NGÔN NGỮ KÝ HIỆU

3.3 Giải thuật nhận dạng

Hình 3.5 trình bày giải thuật để nhận dạng và truy bắt bàn tay. Trước tiên, thông tin về chiều sâu của đối tượng được thu nhận nhờ vào dữ liệu thu được từ camera chiều sâu, và tạo ảnh chuyển động từ những ảnh tích luỹ sự khác biệt giữa các ảnh chiều sâu. Sau đó làm giảm nhiễu bằng bộ loc spatial và morphological operation. Phương pháp phân nhóm chuyển động được sử dụng để tìm kiếm các cụm chuyển động. Sau đó, bàn tay sẽ được nhận dạng từ những cụm chuyển động với chuyển động sóng (wave motion). Cuối dùng, sau khi đã nhận dạng được bàn tay, bộ lọc Kalman sẽ được áp dụng để truy bắt bàn tay.

Ảnh được thu nhận từ cảm biến chiều sâu thường bị nhiễu do sự phản xạ. Đôi lúc, những nhiễu này lại được nhận dạng như những thơng tin về chuyển động. Vì vậy, việc khử nhiễu thật sự cần thiết trước khi tiến hành nhận dạng. Phần tiền xử lý bao gồm thuật tốn để phân nhóm cho việc nhận dạng bàn tay ở vị trí ban đầu.

a. Khử nhiễu

Việc khử nhiễu đươc thực hiện nhờ vào việc sử dụng bộ lọc spatial và morphological processing. Khi phương pháp khử nhiễu được áp dụng thì các chuyển

(3.11)

(3.12) động thật sự trở nên rõ ràng hơn. Bộ lọc trung vị với kích thước mở 5x5 được dùng cho bộ lọc không gian. Bộ lọc trung vị thay đổi giá trị của các điểm ảnh với giá trị trung bình của các phần nhỏ của ảnh. Bộ lọc trung vị cung cấp các việc khử nhiễu cách hiểu quả mà không làm mờ ảnh. Những mẫu nhiễu của ảnh chuyển động thường là dạng chấm đen trắng, nên bộ lọc trung vị rất hiệu quả khi áp dụng để khử nhiễu. Ngoài việc dung bộ lọc spatial, việc khử nhiễu được tăng cường nhờ vào sử dụng bộ morphology processing. Các hiệu ứng cơ bản của các hoạt động mở là giảm bóng bên ngồi của đối tượng bằng các làm giảm bớt và mở rộng biên ngoài. Cách tổng quát, phương pháp này là làm mịn bên ngồi, tách các vùng có kích thước nhỏ hẹp và loại bỏ các phần có chu vi nhỏ. Vì thế, các hoạt động mở rộng này khử đi các nhiễu được tao ra cách ngẫu nhiên và làm mịn ảnh gốc. Việc giãn nở ngược lại với hoạt động bào mịn. Nó gắn các lớp lên đối tượng và trả lại kích thước nguyên thuỷ của đối tượng. Những hoạt động này có hiệu quả rất cao trong việc khử nhiễu trong ảnh chiều sâu.

b. Phân nhóm chuyển động

Để phân nhóm chuyển động, trước tiên, chúng ta lựa chọn kết nối với các thành phần của ảnh chuyển động, sau đó các phần kết nối được tập hợp lại. Những nhóm này có thể là là ảnh của bàn tay. Các nhóm được chọn có thể là chuyển động thật sự hay cũng có thể là nhiễu. Những nhóm là nhiễu thưởng nhỏ hoặc phân đoạn. Vì thế, nếu kích thước nhỏ hơn ngưỡng xác lập, chúng ta có thể khẳng định đó là nhiễu và loại bỏ đi.

Để xác định ngưỡng kích thước, luân văn sử dụng phương pháp đa thức hồi quy. Đầu tiên, chúng ta có được kích thước của một bàn tay từ khoảng cách 60cm đến 750cm là khoảng 10cm. Với dữ liệu thu được kích thước bàn tay, chúng ta sử dụng phương pháp đa thức hồi quy để gắn một đường cong phù hợp với dữ liệu. Chúng ta dùng mơ hình đa thức bậc 5 để diễn tả.

( , ) = ( )

Trong đó:

(3.13)

(3.14)

(3.15) Và:

( ) = [1 ]

Bởi vì mơ hình đa thức bậc 3 đủ để mơ hình hố dữ liệu. Với m điểm dữ liệu, chúng ta sử dụng phương pháp bình phương nhỏ nhất để giảm thiểu sai số bằng cách dùng phương trình:

( , ) = [ − ( , )] = [ = ] [ − ]

Trong đó: = [ , … , ] là dữ liệu đã biết nhờ kích thước bàn tay.

Ma trận p là ma trận Jacobi : = 1 ⋮ ⋮ ⋮ 1 ⋮ ⋮ ⋮

Sau đó, chúng ta có thể tìm đường cong phù hợp với dữ liệu kích thước bàn tay với phương trình: = .

Hình 3.5: Sơ đồ giải thuật truy bắt bàn tay

Cảm biến chiều sâu (Kinect)

Dữ liệu đối tượng trong không gian.

Khởi tạo biến, tiền xử lý Phát hiện các khớp của bàn tay Nhận diện bàn tay Tìm các khớp bàn tay Nhận dạng cử chỉ bàn tay Định nghĩa cử chỉ

Quá trình nhận dạng bắt đầu bằng việc khởi tạo biến nhẳm thu nhận chuỗi dữ liệu từ cảm biến chiều sâu. Các thiết lập này nhằm xác định nguồn thông tin cần thu nhận đó là toạ độ của các khớp trong không gian ba chiều. Các dữ liệu này sẽ được sử dụng để tìm kiếm phát hiện các khớp của bàn tay. Đây là một bước rất quan trọng trong quá trình nhận dạng. Bởi vì, việc nhận dạng và truy bắt vị trí và cử chỉ của bàn tay có chính xác hay khơng phụ thuộc vào việc tìm kiếm khớp tay cơ sở, từ đó tính tốn để tìm kiếm các khớp của các ngón tay. Q trình này được thực hiện thơng qua việc sử dụng nguồn thư viện mở SDK của Microsoft.

Việc tìm kiếm các khớp bàn tay là quá trình tìm kiếm toạ độ của khớp trong không gian ba chiều với kích thước xyz. Vì thế, chúng ta thiết lập trạng thái với kích thước 3 chiều:

=

Trong đó, sx và sy thể hiện vị trí điểm ảnh, sz thể hiện giá trị điểm ảnh theo

chiều sâu. Trạng thái 3D có thể được ược lượng chính xác vị trí bàn tay. Từ đó, chúng ta dùng véc-tơ 3 chiều như là vận tốc của mỗi trục:

=

Khi đó, kích thước theo trục z, chúng ta dùng trạng thái kích thước tương tự:

=

Những véc tơ này là thiết lập ban đầu cho bộ lọc Kalman. Bộ lọc Kalman cần nhận dạng bàn tay trong suốt quá trình truy bắt. Trước tiên, chúng ta định nghĩa điểm tham chiếu của bàn tay. Điểm này đươc xem như là trung tâm của hình trịn bắt với bàn tay đã được nhận dạng trong việc xử lý nhận dạng bàn tay ban đầu. Trung tâm điểm là tâm của đường tròn. Tâm này cũng chính là toạ độ điểm trên khớp bàn tay.

(3.16)

(3.17)

Điểm tham chiếu này được sử dụng để truy bắt và tính tốn vị trí bàn tay. Vận tốc của mỗi trục cho mỗi khung ảnh được cập nhật liên tục. Vì vậy, vị trí của bàn tay được truy bắt sẽ chính xác hơn. Áp dụng phương trình sau để dự đốn trạng thái S.

, = , + , ∆

, = , + , ∆

, = , + , ∆

Giả thiết rằng chuyển động của bàn tay con người là tuyến tính. Sx,t ,Sy,t và Sz là các điểm ảnh và thông tin chiều sâu tại thời điểm t. Δt là khoảng thời gian giữa khung ảnh trước và khung ảnh sau. Phương trình 3.19 và 3.20 dự đốn vị trí, giá trị chiều sâu từ vị trí bàn tay, và giá trị chiều sâu của vị trí trước đó, và véc tơ điều khiển được cập nhật trong xử lý trước đó. Sz,t có giới hạn, bởi vì bàn tay con người di chuyển trong một phạm vi hạn chế; chúng ta không chỉ dùng giới hạn trục x và y mà còn cả giới hạn ở trục z nữa. Áp dụng phương trình sau để cập nhật các thành phần của vector điều khiển (vx, vy, vz).

, = ( , − , )/+∆

, = ( , − , )/+∆

, = ( , − , )/+∆

Sau phát hiện được vị trí của khớp bàn tay, việc tiếp theo là nhận dạng được vùng bàn tay. Trước tiên vùng tìm kiếm được giới hạn để có được một kích thước tối ưu trong q trình nhận dạng bàn tay. Trước tiên, một giới tham chiếu của bàn tay sẽ được định nghĩa. Giới hạn tham chiếu này chính là khoảng cách từ khớp bàn tay đến đầu ngón tay. Khớp bàn tay ở vị trí lịng bàn tay. Trong khi đó, vị trí đầu ngón tay nằm ở ngón giữa, là ngón dài nhất. (3.19) (3.20) (3.21) (3.22) (3.23) (3.24)

Hình 3.6: Giới hạn vùng tìm kiếm bàn tay

Sau khi đã tìm được kích thước tham chiếu, bước tiếp theo là nhận dạng được bàn tay trong không gian. Từ điểm tham chiếu là hai khớp bàn tay và đầu ngón tay, giới hạn vùng bàn tay được giới hạn được xác định cách chính xác trong không gian ba chiều. Để nhận dạng bàn tay, tất các các đối tượng khác nằm trong vùng tìm kiếm mà có độ sâu khơng đúng như kích thước tham chiếu sẽ bị loại bỏ, kết quả nhận được là tập hợp tất cả các điểm trong vùng tím phù hợp với kích thước tham chiếu. Tập hợp các điểm này sẽ là bàn tay được nhận dạng. Tập hợp tất cá các điểm này nằm trong vùng bao của bàn tay như hình 3.7. Đường bao này là tập hợp một số lượng lớn các điểm và trong các điểm đó có các điểm thuộc các khớp và các điểm đầu của các ngón tay. Việc tiếp theo là làm sao tìm ra được các điểm thuộc đầu ngón tay này. Các điểm thuộc các đầu ngón tay này chính là đỉnh của một đa giác lồi trong khơng gian Euclide bao quanh bàn tay.

Sau khi tìm được các đầu của ngón tay, bước tiếp theo từ các điểm này tìm ra các khớp của các ngón tay. Để tìm được các khớp của các ngón tay, giải thuật áp dụng tỷ lệ vàng vào viêc tính tốn.

Hình 3.8:Đoạn thẳng trong tỷ lệ vàng.

Xét các đoạn thẳng gồm hai phần như hình 3.8, đoạn dài là a, đoạn thẳng ngắn là b, tổng hai đoạn thẳng là a+b. Khi các số này thỏa mãn điều kiện (a+b)/a = a/b thi lúc đó tỷ lệ a/b được gọi là tỷ lệ vàng. Bằng cách giải phương trình điều kiện trên tìm được tỷ lệ đó là con số 1,61803398875; (gần bằng 1,62) người ta ký hiệu nó là φ (phi).

= + = = 1,62

Áp dụng tỷ lệ vàng vào trong việc tình tốn để nội suy ra các khớp ngón tay.

Hình 3.9. Các tỷ lệ vàng trên bàn tay người.

Gọi A, B, C, D và E là các điểm nằm trên các khớp cổ tay, khớp nền ngón giữa, hai khớp giữa và đầu ngón tay giữa. Theo tỷ lệ vàng chúng ta có phương trình:

= ′ ′= " " = (3.26) a b b a b’ a’ b” a” A C B D E (3.25)

Trong khi đó, chiều dài từ khớp cổ tay đến đầu ngón tay là đoạn AE. Vậy phương trình tính tốn các khớp sẽ là: Điểm C: ′ = . ( ) Điểm B: " = . ( ) Điểm D: + = . ( )+ = ( )+

Tương tự cho các khớp của các ngón tay cịn lại. Kết quả thu được tính tốn được vị trí các khớp của các ngón tay.

Hình 3.10: Các khớp ngón tay sau khi nhận dạng.

Sau khi đã nhận dạng và truy bắt vị trí bàn tay cũng các khớp ngón tay, bước tiếp theo chính là nhận dạng được cử chỉ của bàn tay cũng như các khớp của ngón tay, sau đó định nghĩa các cử chỉ này và truy xuất dữ liệu cơ sở để xuất ra thành tín hiệu âm thanh. Đây là bước cuối của q trình nhận dạng và chuyển dịch ngơn ngữ ký hiệu dang ngơn ngữ nó. Các bước này được thực hiện trong phần 3.4 nhận dạng và định nghĩa cử chỉ bàn tay.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu robot hỗ trợ người khiếm thính ứng dụng công nghệ xử lý ảnh (Trang 43 - 50)