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õ

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)

điểm động tác võ 3.3.1 Nhận diện động tác tấn công 3.3.1.1 Xử lý dữ liệu

Chuẩn bị tập mẫu như đã giới thiệu trong chương 1, camera Kinect cho phép theo

dõi khung xương của người đứng trước camera, cụ thể là với mỗi khung hình camera

Kinect thu được 20 khớp xương tương ứng với 20 tọa độ (x, y, z). Mỗi khớp có mỗi ID

khác nhau và có gốc với ID là giữa hông. Dữ liệu thu được sau khi lấy tọa độ của 20

điểm trên cơ thể sẽ được xử lý ở chương 2 sau mỗi đó động tác được ghi vào file text,

sau đó gán nhãn cho từng động tác: động tác công gán nhãn là 1, thủ được gán nhãn

là 0. Tập dữ liệu được chia thành tập training bao gồm 289 động tác và tập test bao

gồm 66 động tác. Mỗi tư thế được thu ở khoảng cách 2.5 m ± 0.2 m và 3.3 m ± 0.2 m, được thể hiện trong Hình 3.3.

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.

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

Đặ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)

3.3.2 Mô hình chấm điểm động tác võ cổ truyền

3.3.2.1 Mô tả động tác người

Việc xác định động tác người không phải là vấn đề đơn giản trong nhận dạng đối

tượng. Chúng ta phải chọn một bộ cơ sở dữ liệu thích hợp để cho một hành động đại

diện chính xác duy nhất. Khi đó cử chỉ mô tả cần chứa đầy đủ các đặc trưng của hành

động để có thể phân biệt sự khác nhau của chúng và các mô tả phải bất biến khi vị trí đứng của người hay tầm vóc của người thay đổi khác.

a.Vị trí các khớp Camera Kinect cho kết quả tọa độ của 20 khớp xương xác định

trong thời gian thực tạo thành một bản đồ khung xương của người biểu diễn [97] (Hình.

3.6). Các tọa độ của 20 khớp là duy nhất và hoàn toàn có thể đại diện cho một động

tác, và các thiết lập dữ liệu là tương đối nhỏ cho máy tính. Nhưng việc mô tả thay

đổi dựa trên thay đổi hình học các điểm ảnh là rất khó để xác định các số liệu khoảng cách.

b.Véc tơ chi

Camera Kinect thu nhận và cho chúng ta tọa độ các khớp xương nên chúng ta

sử dụng các vector chi để biểu diễn hình ảnh khung xương của người biểu diễn. Một

vector chi được định nghĩa là các đoạn đường nối giữa 2 khớp xương với nhau (Hình

3.7). Như các vector hình học, vector mô tả đại diện cho duy nhất một cử chỉ mà không

dịch chuyển hay thay đổi tỷ lệ. Chuyển động cơ thể cũng có thể được mô phỏng hoàn hảo bằng chuyển động quay của mỗi vector xung quanh khớp ban đầu của nó. Xem

xét các đặc điểm của chuyển động của con người và cấu trúc cơ thể, chúng ta có thể 1

Hình 3.6 Vị trí các khớp xương mà camera Kinect cung cấp.

giảm dữ liệu dư thừa bằng cách phân tích các vectơ chi trong các nhóm khác nhau.

1) Véc tơ đầu mình: Véc tơ đầu mình bao gồm các đoạn bên trong đầu, vai và hông

(Hình 3.7, với điểm đầu cuối màu đỏ)...vv, véc tơ này ít khi thể hiện chuyển động

riêng lẻ và mạnh. Xoay và uốn cong của phần thân thể này gắn chung với tứ chi.

Do đó, nghiên cứu loại bỏ các véc tơ này khỏi nhóm đại diện.

2) Véc tơ cấp độ 1: Véc tơ cấp độ 1 bao gồm khuỷu tay và đùi (Hình 3.7, với điểm

đầu cuối màu cam)...vv, véc tơ cấp độ 1 chứa rất nhiều thông tin của những

chuyển động và cử chỉ. Do đó, nghiên cứu sắp xếp chúng trong nhóm đại diện.

3) Véc tơ cấp độ 2: Véc tơ cấp độ 2 bao gồm cánh tay và cẳng chân(Hình 3.7, với

điểm đầu cuối màu xanh)...vv, véc tơ cấp độ hai được kéo dài ra hơn so với vector

cấp độ 1, và chúng tạo ấn tượng thị giác đáng kể. Do đó, nghiên cứu xếp chúng trong nhóm đại diện.

4) Bàn tay và bàn chân: Kinect có thể theo dõi bàn tay và bàn chân nút (hình 3.7,

các nút màu đen), nhưng trong quá trình thu nhận thường không ổn định...vv.

Hình 3.7 Dữ liệu khung xương Kinect và véc tơ chân tay.

Bảng 3.1 Thể hiện tám véc tơ chi 1 Khủy tay trái 5 Cánh tay trái 2 Khủy tay phải 6 Cánh tay phải

3 Đùi trái 7 Bắp chân trái

4 Đùi phải 8 Bắp chân phải

thường không đáng kể. Do đó trong giai đoạn ban đầu này, nghiên cứu loại bỏ

bàn tay và bàn chân ra khỏi nhóm đại diện để đảm bảo sự vững mạnh của mô tả.

Tóm lại, nhóm đại diện bao gồm tám vectơ chi (Bảng 3.1). Như chúng ta có thể

thấy, kích thước dữ liệu được giảm đáng kể trong khi các thông tin cần thiết của động

tác vẫn được giữ lại tốt. c.Đánh giá động tác:

Sau khi chọn động tác biểu diễn thích hợp, chúng ta có thể tính toán góc nằm

giữa vectơ chi tương ứng thu được thực tế và các động tác chuẩn sử dụng công thức

tập dữ liệu động tác chuẩn từ thư viện trước khi bắt đầu. Các động tác chuẩn sẽ lần

lượt được hiển thị trên màn hình dưới dạng hình ảnh của khung xương (Hình 3.8, bên tay phải)...vv.

Hình 3.8 Chương trình thu nhận dữ liệu chuẩn từ võ sư. 3.3.2.2 Công thức chấm điểm

Xem xét thực tế, nghiên cứu quan sát được từ các thí nghiệm, nghiên cứu gán

trọng số khác nhau cho từng thành viên trong mảng khoảng cách và sử dụng tổng

trọng số để bù đắp cho sự sai lệch thị giác. Nghiên cứu đề xuất một công thức chấm điểm như công thức (3.10).

Trước tiên là tham số khoảng cách D:

D= [f 1(α1+ α 2) + f 2(α3+ α 4) + f 3(α5+ α 6) + f 4(α7+ α 8)] (3.6)

Trong đó αi là biểu thị góc một thành viên của AngleDif f, D biểu thị các tham

số khoảng cách duy nhất tính từ mảng, f 1, f2, f3, f4, biểu thị các giá trị trọng số của

các chi ước lượng được sử dụng công thức (3.7).

cosα = xstxre + ystyre + zstzre p x2st + y 2 st + z2 stp x2re + y2 re + z 2 re (3.7) Trong đó (xst, yst, zst) biểu thị tọa độ của một vectơ chi của các cử chỉ chuẩn, (xre, yre, zre) biểu thị tọa độ của một vectơ chân tay của động tác trong thời gian thực.

Nghiên cứu xác định tập hợp bao gồm tám góc như là mảng khoảng cách AngleDiff = α1, α2, α3, α4, α5, α6, α7, α8 ( xem Bảng 3.1), nó chứa hầu hết các thông tin về khoảng

cách giữa động tác trong thời gian thực và động tác chuẩn.

Để tính toán các giá trị trọng số, hệ thống sẽ tự động thu thập 10 cặp cử chỉ gần

đây nhất được xếp loại từ cơ sở dữ liệu mà có số điểm trong khoảng ± 15% và tham khảo trung bình cộng của mỗi α i. Giá trị trọng số được tính như công thức (3.8)

fi = 1

AvgiP i=14 Avg1 i

(3.8) Trong đó Avg1, Avg2, Avg3, Avg4 biểu thị trung bình cộng của khuỷu tay (α 1 + α 2), đùi (α3 + α 4), cánh tay α( 5+ α 6) và cẳng chân (α 7+ α8). Thao tác này sẽ gán trọng số lớn hơn tới các chi mà được đánh giá chặt chẽ hơn theo người chấm.

Sau khi nghiên cứu đã nhận giá trị D, mục tiêu của nghiên cứu là để D vào chia

phần trăm điểm. Nhiệm vụ là tương đối đơn giản bằng cách sử dụng biến đổi tuyến

tính. Nghiên cứu cho phép người dùng nhập vào một giá trị chuẩn D st và số điểm tham

chiếu của nó Sst.

Trong trường hợp phán đoán cử chỉ một người biểu diễn thường không được phép

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)

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

(148 trang)