---
tags: openpose
---
# 姿勢比對方法分享
## 2021/3/03
### 針對 兩份EXCEL 做姿勢比對,這兩份EXCEL為 影片的關節姿勢格式輸出檔
[關節數據true.xlsx](https://www.dropbox.com/scl/fi/7wn18bboq02cfcj1v7rqq/true.xlsx?dl=0&rlkey=mqvla6neoua87x3bzaqrp3p5i)
[關節數據false.xlsx](https://www.dropbox.com/scl/fi/2lb17244847459glsz5o1/false.xlsx?dl=0&rlkey=rj2avi6dmdalh4k3thvgzqs2r)
### 大致流程:找到開始動作(去除預備動作)-> 比較姿勢(關節格式跟角度)->評分方式
### (1) 利用Python 讀取 excel
讀取 excel 的套件有
| | xlrd | pandas |
| -------- | -------- | -------- |
| 讀取儲存格(cell) | xlrd | |
| -------- | -------- | -------- |
| 讀取欄 | xlrd | |
| -------- | -------- | -------- |
| 讀取行(列) | Text | Text |
[python讀取excel檔案—xlrd](https://www.itread01.com/content/1547163381.html)
[[Pandas教學]5個實用的Pandas讀取Excel檔案資料技巧](https://www.learncodewithmike.com/2020/12/read-excel-file-using-pandas.html)
### 讀取 關節數據true.xlsx,使用xlrd套件
列:橫,欄(行):直
[read-excel-true](https://repl.it/join/mxebapao-lilysally)
```
import xlrd
# 以xlrd打開表格給excel
filename1 = '關節數據true.xlsx'
excel1 = xlrd.open_workbook(filename1)
sheel_1 = excel1.sheet_by_index(0)
# 指定要讀取第一個工作表,索引值由 0 開始標示
print('B1:',sheel_1.cell_value(0,1)) #列,欄(行)
print('C1:',sheel_1.cell_value(0,2)) #列,欄(行)
# 取得特定cell(儲存格)
print('標題:',sheel_1.row_values(0))
# 獲取第一行(欄)的內容 返回一個list
frame1 = sheel_1.col_values(0)
print('Frame:',frame1)
# 獲取第一列的內容 返回一個list
```
顯示結果:
```
B1: 鼻(0)
C1: 胸(1)
標題: ['Frame\\部位', '鼻(0)', '胸(1)', '右肩(2)', '右手肘(3)', '右手腕(4)', '左肩(5)', '左手肘(6)', '左手腕(7)', '骨盆中(8)', '右骨盆(9)', '右膝蓋(10)', '右腳踝(11)', '左骨盆(12)', '左膝蓋(13)', '左腳踝(14)', '右眼(15)', '左眼(16)', '右耳(17)', '左耳(18)', '左腳尖(19)', '左指頭(20)', '左腳跟(21)', '右腳尖(22)', '右指頭(23)', '右腳跟(24)']
Frame: ['Frame\\部位', 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 49.0, 50.0, 51.0, 52.0, 53.0, 54.0, 55.0, 56.0, 57.0, 58.0, 59.0, 60.0, 61.0, 62.0, 63.0, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.0, 80.0, 81.0, 82.0, 83.0, 84.0, 85.0, 86.0, 87.0, 88.0, 89.0, 90.0, 91.0, 92.0, 93.0, 94.0, 95.0, 96.0, 97.0, 98.0, 99.0, 100.0, 101.0, 102.0, 103.0, 104.0, 105.0, 106.0, 107.0, 108.0, 109.0, 110.0, 111.0, 112.0, 113.0, 114.0, 115.0, 116.0, 117.0, 118.0, 119.0, 120.0, 121.0, 122.0, 123.0, 124.0, 125.0, 126.0, 127.0, 128.0, 129.0, 130.0, 131.0, 132.0, 133.0, 134.0, 135.0, 136.0, 137.0, 138.0, 139.0, 140.0, 141.0, 142.0, 143.0, 144.0, 145.0, 146.0, 147.0, 148.0, 149.0, 150.0, 151.0, 152.0, 153.0, 154.0, 155.0, 156.0, 157.0, 158.0, 159.0, 160.0, 161.0, 162.0, 163.0, 164.0, 165.0, 166.0, 167.0, 168.0, 169.0, 170.0, 171.0, 172.0, 173.0, 174.0, 175.0, 176.0, 177.0, 178.0, 179.0, 180.0, 181.0, 182.0, 183.0, 184.0, 185.0, 186.0, 187.0, 188.0, 189.0, 190.0, 191.0, 192.0, 193.0, 194.0, 195.0, 196.0, 197.0, 198.0, 199.0, 200.0, 201.0, 202.0, 203.0, 204.0, 205.0, 206.0, 207.0, 208.0, 209.0, 210.0, 211.0, 212.0, 213.0, 214.0, 215.0, 216.0, 217.0, 218.0]
//218筆資料
```

### 讀取 關節數據false.xlsx
[read-excel-false](https://repl.it/join/reyqhiag-lilysally)
```
import xlrd
filename2 = '關節數據false.xlsx'
excel2 = xlrd.open_workbook(filename2)
sheel_2 = excel2.sheet_by_index(0)
print('B1:',sheel_2.cell_value(0,1)) #列(行),欄
print('C1:',sheel_2.cell_value(0,2)) #列(行),欄
print('標題:',sheel_2.row_values(0))
# 獲取第一行(欄)的內容 返回一個list
frame2 = sheel_2.col_values(0)
print('Frame:',frame2)
# 獲取第一列的內容 返回一個list
```
顯示結果:
```
B1: 鼻(0)
C1: 胸(1)
標題: ['Frame\\部位', '鼻(0)', '胸(1)', '右肩(2)', '右手肘(3)', '右手腕(4)', '左肩(5)', '左手肘(6)', '左手腕(7)', '骨盆中(8)', '右骨盆(9)', '右膝蓋(10)', '右腳踝(11)', '左骨盆(12)', '左膝蓋(13)', '左腳踝(14)', '右眼(15)', '左眼(16)', '右耳(17)', '左耳(18)', '左腳尖(19)', '左指頭(20)', '左腳跟(21)', '右腳尖(22)', '右指頭(23)', '右腳跟(24)']
Frame: ['Frame\\部位', 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 49.0, 50.0, 51.0, 52.0, 53.0, 54.0, 55.0, 56.0, 57.0, 58.0, 59.0, 60.0, 61.0, 62.0, 63.0, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.0, 80.0, 81.0, 82.0, 83.0, 84.0, 85.0, 86.0, 87.0, 88.0, 89.0, 90.0, 91.0, 92.0, 93.0, 94.0, 95.0, 96.0, 97.0, 98.0, 99.0, 100.0, 101.0, 102.0, 103.0, 104.0, 105.0, 106.0, 107.0, 108.0, 109.0, 110.0, 111.0, 112.0, 113.0, 114.0, 115.0, 116.0, 117.0, 118.0, 119.0, 120.0, 121.0, 122.0, 123.0, 124.0, 125.0, 126.0, 127.0, 128.0, 129.0, 130.0, 131.0, 132.0, 133.0, 134.0, 135.0, 136.0, 137.0, 138.0, 139.0, 140.0, 141.0, 142.0, 143.0, 144.0, 145.0, 146.0, 147.0, 148.0, 149.0, 150.0, 151.0, 152.0, 153.0, 154.0, 155.0, 156.0, 157.0, 158.0, 159.0, 160.0, 161.0, 162.0, 163.0, 164.0, 165.0, 166.0, 167.0, 168.0, 169.0, 170.0, 171.0, 172.0, 173.0, 174.0, 175.0, 176.0, 177.0, 178.0, 179.0, 180.0, 181.0, 182.0, 183.0, 184.0, 185.0, 186.0, 187.0, 188.0, 189.0, 190.0, 191.0, 192.0, 193.0, 194.0, 195.0, 196.0, 197.0, 198.0, 199.0, 200.0, 201.0, 202.0, 203.0, 204.0, 205.0, 206.0, 207.0]
//207筆
```

### 整合:讀取關節數據true.xlsx和關節數據false.xlsx
[read-excel-true&false](https://repl.it/join/rzbjylkq-lilysally)
```
import xlrd
filename1 = '關節數據true.xlsx'
filename2 = '關節數據false.xlsx'
excel1 = xlrd.open_workbook(filename1)
sheel_1 = excel1.sheet_by_index(0)
excel2 = xlrd.open_workbook(filename2)
sheel_2 = excel2.sheet_by_index(0)
frame1 = sheel_1.col_values(0)
print('Frame:',frame1)
frame2 = sheel_2.col_values(0)
print('Frame:',frame2)
```
[read-excel-true&false-1](https://repl.it/join/vrveuoxw-lilysally/)
```
import xlrd
#filename=[filename1,filename2]
filename=['關節數據true.xlsx','關節數據false.xlsx']
excel1=''
excel2=''
sheel_1=''
sheel_2=''
frame1=''
frame2=''
excel=[excel1,excel2]
sheel=[sheel_1,sheel_2]
frame=[frame1,frame2]
for i in range(0,2):
excel[i]=xlrd.open_workbook(filename[i])
sheel[i] = excel[i].sheet_by_index(0)
frame[i]= sheel[i].col_values(0)
print(frame[i])
```
顯示資料:
```
['Frame\\部位', 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 49.0, 50.0, 51.0, 52.0, 53.0, 54.0, 55.0, 56.0, 57.0, 58.0, 59.0, 60.0, 61.0, 62.0, 63.0, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.0, 80.0, 81.0, 82.0, 83.0, 84.0, 85.0, 86.0, 87.0, 88.0, 89.0, 90.0, 91.0, 92.0, 93.0, 94.0, 95.0, 96.0, 97.0, 98.0, 99.0, 100.0, 101.0, 102.0, 103.0, 104.0, 105.0, 106.0, 107.0, 108.0, 109.0, 110.0, 111.0, 112.0, 113.0, 114.0, 115.0, 116.0, 117.0, 118.0, 119.0, 120.0, 121.0, 122.0, 123.0, 124.0, 125.0, 126.0, 127.0, 128.0, 129.0, 130.0, 131.0, 132.0, 133.0, 134.0, 135.0, 136.0, 137.0, 138.0, 139.0, 140.0, 141.0, 142.0, 143.0, 144.0, 145.0, 146.0, 147.0, 148.0, 149.0, 150.0, 151.0, 152.0, 153.0, 154.0, 155.0, 156.0, 157.0, 158.0, 159.0, 160.0, 161.0, 162.0, 163.0, 164.0, 165.0, 166.0, 167.0, 168.0, 169.0, 170.0, 171.0, 172.0, 173.0, 174.0, 175.0, 176.0, 177.0, 178.0, 179.0, 180.0, 181.0, 182.0, 183.0, 184.0, 185.0, 186.0, 187.0, 188.0, 189.0, 190.0, 191.0, 192.0, 193.0, 194.0, 195.0, 196.0, 197.0, 198.0, 199.0, 200.0, 201.0, 202.0, 203.0, 204.0, 205.0, 206.0, 207.0, 208.0, 209.0, 210.0, 211.0, 212.0, 213.0, 214.0, 215.0, 216.0, 217.0, 218.0]
['Frame\\部位', 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 49.0, 50.0, 51.0, 52.0, 53.0, 54.0, 55.0, 56.0, 57.0, 58.0, 59.0, 60.0, 61.0, 62.0, 63.0, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.0, 80.0, 81.0, 82.0, 83.0, 84.0, 85.0, 86.0, 87.0, 88.0, 89.0, 90.0, 91.0, 92.0, 93.0, 94.0, 95.0, 96.0, 97.0, 98.0, 99.0, 100.0, 101.0, 102.0, 103.0, 104.0, 105.0, 106.0, 107.0, 108.0, 109.0, 110.0, 111.0, 112.0, 113.0, 114.0, 115.0, 116.0, 117.0, 118.0, 119.0, 120.0, 121.0, 122.0, 123.0, 124.0, 125.0, 126.0, 127.0, 128.0, 129.0, 130.0, 131.0, 132.0, 133.0, 134.0, 135.0, 136.0, 137.0, 138.0, 139.0, 140.0, 141.0, 142.0, 143.0, 144.0, 145.0, 146.0, 147.0, 148.0, 149.0, 150.0, 151.0, 152.0, 153.0, 154.0, 155.0, 156.0, 157.0, 158.0, 159.0, 160.0, 161.0, 162.0, 163.0, 164.0, 165.0, 166.0, 167.0, 168.0, 169.0, 170.0, 171.0, 172.0, 173.0, 174.0, 175.0, 176.0, 177.0, 178.0, 179.0, 180.0, 181.0, 182.0, 183.0, 184.0, 185.0, 186.0, 187.0, 188.0, 189.0, 190.0, 191.0, 192.0, 193.0, 194.0, 195.0, 196.0, 197.0, 198.0, 199.0, 200.0, 201.0, 202.0, 203.0, 204.0, 205.0, 206.0, 207.0]
```
----
### (2) 把excel的列數內容加入至list串列
### 關節數據true.xlsx的每列數內容加至truelist串列,形成二維串列
[Column content of each column_true](https://repl.it/join/uruyfiqv-lilysally)
1.使用 len()算出 關節數據true.xlsx 的列數長度,
```
print(len(frame1)-1) #計算列數,扣1是因為標題
```
2.結合讀取整欄內容,
```
sheel_1.row_values(i)
```
3.用迴圈印出 關節數據true.xlsx總列數的欄內容
在串列裡索引值從0開始,故'Frame\\部位'為(0,0),第0列第1欄
```
for i in range(1,len(frame1)):
# 讀取 'Frame\\部位' 的每列內容
print("Frame\\部位的第%d列內容"%i,frame1[i])
#讀取每欄的內容
print(sheel_1.row_values(i))
```
前3筆資料顯示如下:
```
Frame\部位的第1列內容 1.0
[1.0, '(252,267)89', '(257,337)96', '(211,337)90', '(177,413)90', '(141,463)97', '(302,337)95', '(327,413)86', '(353,464)85', '(257,474)88', '(222,473)87', '(222,579)97', '(217,670)95', '(297,473)88', '(292,579)92', '(297,665)93', '(237,262)90', '(257,262)97', '(222,267)88', '(267,262)85', '(302,700)83', '(317,695)80', '(282,675)76', '(222,705)91', '(202,705)88', '(217,680)82']
Frame\部位的第2列內容 2.0
[2.0, '(252,272)87', '(257,337)96', '(211,337)90', '(181,408)89', '(146,463)94', '(302,337)95', '(327,413)87', '(347,468)86', '(257,474)88', '(222,474)86', '(222,584)97', '(217,670)94', '(297,474)88', '(292,579)92', '(297,665)94', '(232,262)90', '(257,262)96', '(221,267)87', '(267,262)87', '(302,700)84', '(312,695)80', '(282,675)76', '(222,705)91', '(202,705)87', '(217,680)81']
Frame\部位的第3列內容 3.0
[3.0, '(252,272)87', '(257,337)96', '(211,337)90', '(181,408)89', '(156,464)90', '(302,337)96', '(327,418)89', '(343,474)88', '(257,474)88', '(222,474)87', '(222,584)97', '(217,670)94', '(297,473)88', '(292,579)92', '(297,665)93', '(232,262)89', '(257,262)96', '(221,267)86', '(267,262)87', '(302,700)83', '(312,695)80', '(282,670)76', '(222,705)91', '(202,705)86', '(217,680)81']
```
4.關節數據true.xlsx總列數的欄內容加至truelist串列裡,形成18X207的串列
串列的新增 :
list1.append(參數1):參數可是元素,也是串列
list2.extend(參數2):參數只可以是串列,不能是元素
```
truelist=[]
for i in range(1,len(frame1)):
# 讀取 'Frame\\部位' 的每列內容
print("Frame\\部位的第%d列內容"%i,frame1[i])
#讀取每欄的內容
print(sheel_1.row_values(i))
truelist.extend([sheel_1.row_values(i)])
print('truelist內容',truelist)
```
truelist內容,資料顯示如下:
```
[
[1.0, '(252,267)89', '(257,337)96', '(211,337)90', '(177,413)90', '(141,463)97', '(302,337)95', '(327,413)86', '(353,464)85', '(257,474)88', '(222,473)87', '(222,579)97', '(217,670)95', '(297,473)88', '(292,579)92', '(297,665)93', '(237,262)90', '(257,262)97', '(222,267)88', '(267,262)85', '(302,700)83', '(317,695)80', '(282,675)76', '(222,705)91', '(202,705)88', '(217,680)82'],
[2.0, '(252,272)87', '(257,337)96', '(211,337)90', '(181,408)89', '(146,463)94', '(302,337)95', '(327,413)87', '(347,468)86', '(257,474)88', '(222,474)86', '(222,584)97', '(217,670)94', '(297,474)88', '(292,579)92', '(297,665)94', '(232,262)90', '(257,262)96', '(221,267)87', '(267,262)87', '(302,700)84', '(312,695)80', '(282,675)76', '(222,705)91', '(202,705)87', '(217,680)81'],
[3.0, '(252,272)87', '(257,337)96', '(211,337)90', '(181,408)89', '(156,464)90', '(302,337)96', '(327,418)89', '(343,474)88', '(257,474)88', '(222,474)87', '(222,584)97', '(217,670)94', '(297,473)88', '(292,579)92', '(297,665)93', '(232,262)89', '(257,262)96', '(221,267)86', '(267,262)87', '(302,700)83', '(312,695)80', '(282,670)76', '(222,705)91', '(202,705)86', '(217,680)81'],
[第4筆18個關節格式],
.
.
.
.
.
]
```
### 二維串列介紹

```
# 宣告一個二維串列
List = [[1, 2, 3], [4, 5, 6]]
print(List)
print(List[0])
print(List[1])
```
顯示結果:
```
[[1, 2, 3], [4, 5, 6]]
[1, 2, 3]
[4, 5, 6]
```
```
print(List[0][0]) //1
print(List[0][1]) //2
print(List[0][2]) //3
print(List[1][0]) //4
print(List[1][1]) //5
print(List[1][2]) //6
```
----
### 關節數據false.xlsx的每列數的欄內容加至falselist串列,形成二維串列
[Column content of each column_false](https://repl.it/join/abossolw-lilysally)
參照上面方法
```
falselist=[]
for j in range(1,len(frame2)):
# 讀取 'Frame\\部位' 的每列內容
print("Frame\\部位的第%d列內容"%j,frame2[j])
#讀取每欄的內容
print(sheel_2.row_values(j))
falselist.extend([sheel_2.row_values(j)])
print('falselist內容',falselist)
```
falselist內容,資料顯示如下:
```
[
[1.0, '(267,287)81', '(267,343)93', '(222,343)90', '(181,292)88', '(176,192)90', '(317,342)88', '(348,272)86', '(348,187)88', '(262,514)85', '(232,514)81', '(237,630)83', '(252,736)88', '(302,514)89', '(297,630)90', '(297,736)92', '(257,267)85', '(292,267)83', '(242,297)63', '(302,292)49', '(292,776)86', '(302,771)90', '(292,741)79', '(252,776)91', '(227,766)85', '(257,741)83'],
[2.0, '(277,282)78', '(267,343)94', '(222,343)90', '(176,287)88', '(171,202)85', '(322,342)87', '(353,272)83', '(363,196)82', '(262,519)84', '(227,519)82', '(237,630)82', '(252,736)88', '(302,519)88', '(297,630)89', '(297,740)92', '(262,267)84', '(297,267)81', '(242,297)59', '(307,292)30', '(292,776)85', '(302,771)90', '(292,741)80', '(252,776)91', '(227,766)85', '(257,741)83'],
[3.0, '(282,277)76', '(267,342)95', '(217,338)91', '(161,267)82', '(146,191)83', '(317,338)87', '(353,287)83', '(378,211)89', '(262,514)85', '(227,519)82', '(237,630)83', '(252,740)88', '(302,514)88', '(297,630)89', '(297,740)92', '(262,267)84', '(297,262)80', '(247,292)65', '(307,287)22', '(292,776)86', '(302,771)89', '(292,741)79', '(257,776)92', '(227,766)85', '(257,741)83'],
[第4筆18個關節格式],
.
.
.
.
.
]
```
### 整合 : 形成 truelist串列 跟 falselist串列
[Column content of each column_true&false](https://repl.it/join/bdgkznhp-lilysally)
```
import xlrd
filename1 = '關節數據true.xlsx'
filename2 = '關節數據false.xlsx'
excel1 = xlrd.open_workbook(filename1)
excel2 = xlrd.open_workbook(filename2)
sheel_1 = excel1.sheet_by_index(0)
sheel_2 = excel2.sheet_by_index(0)
frame1 = sheel_1.col_values(0)
frame2 = sheel_2.col_values(0)
truelist=[]
falselist=[]
for i in range(1,len(frame1)):
truelist.extend([sheel_1.row_values(i)])
print('truelist內容',truelist)
for j in range(1,len(frame2)):
falselist.extend([sheel_2.row_values(j)])
print('falselist內容',falselist)
```
[Column content of each column_true&false-1](https://repl.it/join/hbluxtov-lilysally)
----
### (3) 姿勢比對
剔除預備動作 (因為frame不一樣):
1.關節格式 :
固定 falselist的frame(關節姿勢false 的frame)去對比 所有 truelist的frame(關節姿勢true 的frame),是否相等
```
# 顯示 truelist的frame1.0 的17個關節格式
#truelist有218筆
print(comparelist[0][0])
print(comparelist[0][0][0]) //1.0
# 顯示 falselist的frame1.0 的17個關節格式
#falselist有207筆
print(comparelist[1][0])
print(comparelist[1][0][0]) //1.0
number=0
same=[]
for o in range(0,len(comparelist[1])):
for u in range(0,len(comparelist[0])):
if (comparelist[1][o] == comparelist[0][u]):
number+=1
same.append(comparelist[1][o])
else:
number-=1
print(number)
print(same)
```
=> Bug:身高問題
調比例
2.是否有做到整體動作
3.角度比對
* 定義動作
* 比對前後frame(frame大-frame小)在可形成動作的關節角度變化
* 由於關節格式是採文字儲存在串列,故使用文字轉數字、'('分隔取出x跟y,做角度計算
4.做動作時間(加速度)
### (4)評分方式
結合給予姿勢比對權重