Trích xuất đặc trưng cơ thể người với camera Kinect

Một phần của tài liệu Về mô hình nhận dạng tư thế võ dựa trên ảnh chiều sâu758 (Trang 111 - 116)

3.3 Cơ sở lý thuyết để nhận diện động tác tấn công và chấm điểm động tác võ

3.3.1.2 Trích xuất đặc trưng cơ thể người với camera Kinect

Trong nghiên cứu này đề xuất phương pháp dựa trên tọa độ của 20 khớp xương

để trích đặc trưng tư thế người từ dữ liệu thu được từ camera Kinect sử dụng vị trí

tương đối (Relative Position). Phương pháp sử dụng tọa độ với 3 giá trị (x, y, z) của

Hình 3.3 Thu thập dữ liệu.bụng. bụng.

Kinect SDK (Software Development Kit) xử lý và cung cấp cho chúng ta dữ liệu

với tốc độ 30 khung hình mỗi giây. Mỗi khung hình sẽ được xử lý bởi giải pháp đề xuất

và xác định trong hình đó có xuất hiện việc tấn công hay không. Đối với các khớp được

theo dõi trên khung xương, sẽ có 4 mẫu dữ liệu tương ứng được thu thập từ Kinect:

các tọa độ (x, y, z) của khớp và thông tin theo dõi của khớp đó. Các tọa độ(x, y, z) là

tọa độ Descartes và thiết bị Kinect được đặt ở gốc tọa độ.

Trong quá trình thực thi, hệ thống liên tục theo dõi tư thế của người trong tầm nhìn camera, đồng thời tính toán vận tốc trung bình các khớp trong một số khung

hình liên tiếp gần nhất. Hệ thống theo dõi và đưa ra cảnh báo khi vận tốc đó đạt giá

trị vượt trên một ngưỡng định trước với giả định rằng đòn tấn công đã xảy ra.

Khung xương dữ liệu đầu vào bản chất là một tập có thứ tự các đỉnh tương ứng

với các vị trí khớp trên cơ thể con người. Ngoài ra có thể xét thêm các cạnh với tiêu

chí thể hiện sự nối tiếp giữa các vị trí khớp. Khi con người thực hiện một hành vi cụ

thể nào đó, xét về ngữ nghĩa toán học, các tọa độ trong không gian của các vị trí khớp

này sẽ thay đổi theo một số quy tắc nhất định. Chính những sự thay đổi này sẽ có ý

nghĩa phân biệt giữa hành vi này với hành vi khác, như thể hiện trong Hình 3.4.

Dựa trên những phân tích như vậy, ta có thể dựa trên những sự khác biệt trong

tương quan giữa các tọa độ trong không gian của tập các đỉnh để tạo ra những đặc

trưng không gian có khả năng phân biệt giữa các hành vi [45],[46]. Trong trường hợp

này, ta sử dụng những sự khác biệt đơn giản và dễ hình dung đến theo tư duy thông

thường của con người, đó là khoảng cách giữa hai điểm, diện tích một tam giác, độ lớn

góc giữa hai cạnh. Ví dụ như khi một người co chân lại, rõ ràng là khoảng cách giữa

gót chân và mông sẽ nhỏ hơn so với khi đứng; khi thực hiện đấm, góc giữa cẳng tay so

với thân người sẽ lớn hơn so với khi đứng duỗi tay. . . Trong bài toán này, các đặc trưng được lựa chọn sử dụng:

Hình 3.4 Thể hiện tọa độ trên khung xương.a. Đặc trưng góc a. Đặc trưng góc

Đặc trưng được tính dựa trên góc giữa hai vector. Cụ thể, với đầu vào là 4 đỉnh

A, B, C, D trên khung xương như trong công thức (3.2) và minh họa như Hình 3.5.

ANGLE F EAT URE A, B, C, D_ ( ) = 1 if cos(AB, CD)>0 0 otherwise

(3.2)

Như vậy, nếu 2 vector AB,CD tạo thành một góc nhọn, giá trị đặc trưng sẽ là 1,

ngược lại là 0.

b. Đặc trưng cạnh

Hình 3.5 Minh họa đặc trưng góc khuỷu tay. Đường màu đen thể hiện đặc trưng về góc khuỷu tay.

là 4 đỉnh A, B, C, D trên khung xương:

EDGE F EAT URE A, B, C, D_ ( ) = 1 if (AB-CD)>0 0 otherwise

(3.3)

Như vậy, nếu đoạn thẳng AB dài hơn đoạn thẳng CD, giá trị đặc trưng sẽ là 1,

ngược lại là 0.

c. Đặc trưng tam giác

Đặc trưng được tính dựa trên diện tích của tam giác được tạo thành bởi 3 đỉnh. Cụ

thể, với đầu vào là 6 đỉnh A, B, C, D, E, F trên khung xương:

T RIAN F EAT U RE A, B, C, D, E, F_ ( ) = 1 if S4ABC S4DEF > 0 0 otherwise

(3.4)

Như vậy, nếu tam giác ABC có diện tích lớn hơn tam giác DEF, giá trị đặc trưng

sẽ là 1, ngược lại là 0.

Dễ dàng nhận thấy do khung xương bao gồm nhiều điểm nên những đặc trưng

được sử dụng sẽ có rất nhiều và thường khả năng phân biệt cũng không phải là mạnh,

dạng các hành vi. Để sử dụng các đặc trưng này, ta cần 1 cách để kết hợp 1 nhóm các

đặc trưng như vậy lại để tạo 1 bộ phân lớp hiệu quả hơn, trong này các đặc trưng được đưa vào các nút của cây quyết định.

Sau khi đã trích đặc trưng, giai đoạn kế tiếp là huấn luyện một mô hình phân lớp

có khả năng nhận dạng đúng tư thế dựa trên các đặc trưng. Phần này sẽ trình bày mô hình.

Việc học cây được thực hiện với việc học từng nút và với mỗi hành động cụ thể

ta sẽ học một bộ phân lớp riêng để phân biệt nó với các hành động còn lại. Mỗi nút

được học với một tập huấn luyện có dạng như sau: M = (S, a, w) i, i = 1, N . Trong¯

đó, (S, a, w)i là mẫu thứ của của tập huấn luyện. Trong mẫu này, i S là mẫu khung

xương đầu vào – chính là một tập có thứ tự các đỉnh trong không gian 3 chiều, a là

giá trị nhãn của hành động, w sẽ là trọng số đánh giá mức độ ảnh hưởng của mẫu i

trong quá trình học. Như vậy, nhãn của hành động sẽ nhận giá trị là 1 hoặc 0 tùy vào

mẫu khung xương có thuộc vào loại hành động đang xét hay không.

Vì số lượng đặc trưng rất nhiều, nên khi học cây cần thực hiện lựa chọn tự động đặc trưng phù hợp nhất cho từng nút theo từng bước xây dựng cây. Sự phù hợp nhất

này sẽ mang ý nghĩa là cực tiểu giá trị sai số phân chia khi sử dụng một đặc trưng để

phân chia tập huấn luyện. Sau khi sử dụng một đặc trưng, tập huấn luyện M sẽ được

phân chia thành 2 tập con M 0 và M1 tương ứng với kết quả phân chia ra nhãn 0 và 1.

Sai số phân chia sẽ được tính bằng tổng sai số trên hai tập con M0 và M1. Cụ thể hơn

sai số trên tập con M i được tính theo công thức (3.5).

E M( i) = X

((S,a,w)∈M i)

w(a¨ai) (3.5)

Trong đó, ¨a ilà kỳ vọng của các giá trị nhãn trong tập con M i. Bằng cách như vậy,

tại mỗi nút, ta có thể chọn được một đặc trưng không gian phù hợp nhất để cực tiểu

sai số phân chia. Sau khi phân chia, 2 tập con M 0 và M1 sẽ tiếp tục là đầu vào cho

việc học hai nút cho của nút vừa học. Quá trình học kết thúc khi cây đã đủ độ cao

hoặc tập huấn luyện không còn phân chia được nữa. Thuật toán học tại mỗi nút được

mô tả như trong thuật toán 3.1

Trong hàm trên, mean labels M_ ( ) là hàm tính kỳ vọng các nhãn trong tập

M split error M, f, _ ( ) là hàm tính sai số phân chia của tập M với đặc trưng ,f

Algorithm 3.2: Thuật toán học tại mỗi nút của cây quyết định.

Input: Tập M, độ cao d của cây hiện tại

Output: Đặc trưng F hoặc giá trị trả về v nếu là nút lá

Các bước: 1. if | |M 1 OR dMAX_DEP T H : 2. v = mean_labels M( ) 3. return 4. F =N one

5. best err M AX_ = _V ALU E

6. for each f in F EAT URE SET :_ 7. err split= _error M, f( )

8. if err < best err :_ 9. best err err_ =

10. F = f 11. M0, M1 = split data_ (M, F ) 12. learn node M , d_ ( 0 + 1) 13. learn node M , d_ ( 1 + 1)

Một phần của tài liệu Về mô hình nhận dạng tư thế võ dựa trên ảnh chiều sâu758 (Trang 111 - 116)

Tải bản đầy đủ (PDF)

(148 trang)