Hoạt động của của camera chiều sâu

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 38)

Trên hình 3.1 ánh sáng dùng để chiếu được cấu trúc cách đặc biệt được tạo ra bởi bộ phận phát xạ. Cường độ tại mỗi điểm ảnh trên mẫu ánh sáng cấu trúc được thể hiện bởi tính hệ số { iij = (i,j) , i = 1,2,…,i, j = 1,2,…j}. Trong đó (i, j) thể hiện toạ độ trục (x, y) trên mẫu được chiếu sáng.

Một cảm biến hình ảnh (chẳng hạn video camera) được dùng để thu nhận ảnh 2D của khung ảnh được chiếu sáng bởi ánh sáng cấu trúc. Nếu khung ảnh này là một bề mặt phẳng thì khơng có sự biến đổi trên bề mặt. Mẫu thu được đơn giản là mẫu được ánh sáng cấu trúc chiếu vào. Tuy nhiên, khi bề mặt của khung là mặt 3D, thì hình dạng của đối tượng sẽ làm biến dạng mẫu ánh sáng cấu trúc chiếu tới. Nguyên

lý thu ảnh 3D của bề mặt được chiếu ánh sáng dựa trên chính thông tin về sự biến dạng của mẫu ánh sáng cấu trúc được chiếu lên đối tượng. Bề mặt 3D chính xác của đối tượng trong khung chiếu có thể được tính tốn bởi thuật tốn và ngun lý của các biến ánh sáng cấu trúc.

Trong hình 3.1, mối quan hệ hình học giữa cảm biến ảnh, bộ phát ánh sáng cấu trúc và tại một điểm trên bề mặt đối tượng được được thể hiện bởi nguyên lý tam giác:

= sin ( )

sin ( + )

Điều chính yếu cho việc thu nhận ảnh 3D dựa trên nguyên lý tam giác là kỹ thuật được dùng để phân biệt một điểm sáng được chiếu từ ảnh thu được với mẫu chiếu 2D. Mơ hình tính tốn cơ bản của ngun lý tam giác được thể hiện ở hình 3.2.

Hình 3.2: Mơ hình tính tốn cơ bản của ngun lý tam giác

Trong đó:

Z0 là khoảng cách từ camera C đến mặt phặng tham chiếu. Zk là khoảng cách từ mặt kính camera đến đối tượng. b là khoảng cách giữa bộ phát xạ và camera; d là

(3.2)

Mặt phẳng tham chiếu Mặt phẳng đối tượng

Mặt phẳng ảnh

độ khác biệt. f là khoảng cách từ mặt phẳng ảnh đến mặt kính của camera, D kích thước chum sáng chiếu lên đối tượng. Toạ độ của điểm k được tính như sau:

= − = = 1 + = − ( − + ) = − ( − + )

Dữ liệu từ cảm biến chiều sâu cung cấp chuỗi thông tin về chiều sâu theo trục z. Dữ liệu chiều sâu được thể hiện như một khung ảnh được tạo bởi các điểm ảnh bao gồm khoảng cách tính bằng mm từ mặt phẳng camera đến đối tượng gần nhất được minh hoạ ở hình 3.3.

Hình 3.3: Dữ liệu chiều sâu được tính bằng khoảng cách từ cảm biến đến đối tượng.

(3.3) (3.4) (3.5) (3.6) (3.7) Z1 Z2 Đối tượng Cảm biến

3.2 Nhận dạng bàn tay dựa trên thông tin về chiều sâu

Phương pháp nhận dạng đối tượng là bàn tay dựa trên thơng tin về chiều sâu có thể phân làm hai loại: dựa trên mô hinh hoặc dựa trên chuyển động. Phương pháp truy bắt đối tượng dựa trên mơ hình sử dụng mơ hình khung xương 3D vừa khớp với bàn tay. Phương pháp truy bắt đối tượng dựa trên chuyển động sử dụng chuyển động của bàn tay trong không gian chiều sâu.

Để có thể nhận dạng được bàn tay trước tiên cần hiểu được câu trúc các khớp của bàn tay. Các ngón tay được kết nối với nhau bởi các khớp nối có một hoặc nhiều bậc tự do. Hình 3.4 biểu diễn các khớp nối cùng số bậc tự do tương ứng tạo thành tổng cộng 26 bậc tự do của bàn tay. Trong đó, cổ tay có 6 bậc tự do với 3 bậc tự do cho chuyển động tịnh tiến trong không gian và 3 bậc tự do cho chuyển động xoay quanh các trục. Năm ngón tay mỗi ngón có 4 bậc tự do với 2 bậc cho khớp gốc ngón tay (gập/ngửa và khép/mở) và 1 bậc cho mỗi khớp cịn lại.

Hình 3.4: Mơ hình động học của bàn tay.

Với cách biểu diễn như vậy, động học của mỗi ngón tay được xác định bởi một vector gồm 4 tham số góc: Trong đó , là hai góc quay của khớp gốc,

là góc quay của khớp giữa và là góc quay của khớp đỉnh.

Tương tự, vị trí và hướng của bàn tay được xác định qua cổ tay bởi vectơ gồm 6 tham số:

= ( , , , , , )

Trong đó , , là tọa độ của cổ tay trong không gian và , , là hướng của bàn tay quay quanh các trục tương ứng. Như vậy, tư thế của bàn tay hoàn toàn xác định khi biết 26 tham số góc:

ℎ = ( , ), = 1,2, … ,5

Trong phương pháp truy bắt đối tượng dựa trên chuyển động, phương pháp này tìm kiếm những chuyển động nguyên thuỷ từ những ảnh tích luỹ dựa trên dữ liệu 3D. Nó phát hiện ra chuyển động bằng cách sử dụng giá trị chiều sâu được so sánh với dữ liệu ảnh chiều sâu trước và ảnh chiều sâu sau. Giá trị khác biệt giữa những khung ảnh được tích luỹ dùng trong việc truy bắt chuyển động.

Như thế, thông tin chủ yếu được sử dụng để nhận dạng bàn tay là thông tin về chiều sâu. Hình ảnh thu được từ camera màu bình thường bị ảnh hưởng nhiều bởi điều kiện chiếu sáng. Trong khi đó, ảnh thu được từ cảm biến chiều sâu không bị ảnh hưởng bởi điều kiện chiếu sang. Để nhận dạng được vị trí, cử chỉ của cánh tay và bàn tay, tất cả các dữ liệu mà cảm biến thu nhận được trong không gian ba chiều được sử dụng để tính tồn phát hiện ra vị trí cũng như cử chỉ của cánh tay và bàn tay. Ngồi hai thơng tin theo phương x và y, cịn có thơng tin theo phương z, từ đó có thể nhận biết cách chính xác vị trí của tay và bàn tay trong khơng gian. Những đặc điểm của camera cảm biến chiều sâu sẽ đưởc trình bày rõ ràng hơn khi so sánh với dữ liệu thu nhận được nhờ vào camera thông thường. Bảng 3.1 dưới đây so sánh ưu điểm và nhược điểm của hai loại thông tin thu nhận được từ camera ảnh bình thường và cảm biến chiều sâu.

(3.9)

Thông tin màu sắc Thông tin chiều sâu Ưu điểm Dễ phát hiện những đặc tính

Phương pháp khơng xâm lấn

Ổn định trước sự thay đổi của ánh sáng

Nhận được giá trị thật về chiều sâu

Non-intrusive method Nhược điểm ảnh hưởng nhiều dưới các điều

kiện ánh sáng

Khó tìm ra những đặc tính riêng Nhiễu nhiều đặc biệt ở biên đối tượng

Bảng 3.1 : So sánh ưu nhược điểm của hai loại thông tin thu được từ camera ảnh bình thường và thơng tin thu được từ cảm biến chiều sâ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.

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 38)