Spaces:
Sleeping
Sleeping
votuongquan2004@gmail.com
commited on
Commit
·
aaa2ffd
1
Parent(s):
640b470
update data.py
Browse files- utils/data.py +29 -15
utils/data.py
CHANGED
|
@@ -135,34 +135,48 @@ def extract_joints(
|
|
| 135 |
|
| 136 |
def preprocess(
|
| 137 |
source: str,
|
| 138 |
-
data_args: dict,
|
| 139 |
keypoints_detector,
|
| 140 |
-
|
| 141 |
-
|
|
|
|
|
|
|
| 142 |
'''
|
| 143 |
Preprocess the video.
|
| 144 |
-
|
| 145 |
Parameters
|
| 146 |
----------
|
| 147 |
source : str
|
| 148 |
The path to the video.
|
| 149 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 150 |
Returns
|
| 151 |
-------
|
| 152 |
-
|
| 153 |
-
The
|
| 154 |
'''
|
| 155 |
-
|
| 156 |
-
|
| 157 |
T = inputs.shape[1]
|
| 158 |
-
|
| 159 |
-
|
| 160 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 161 |
else:
|
| 162 |
-
inputs = uniform_sample_np(inputs,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 163 |
|
| 164 |
-
print('Normalizing video...')
|
| 165 |
-
print(inputs.shape, inputs)
|
| 166 |
return np.squeeze(inputs).transpose(1, 2, 0).astype(np.float32)
|
| 167 |
|
| 168 |
|
|
|
|
| 135 |
|
| 136 |
def preprocess(
|
| 137 |
source: str,
|
|
|
|
| 138 |
keypoints_detector,
|
| 139 |
+
normalization: bool = True,
|
| 140 |
+
random_choose: bool = True,
|
| 141 |
+
window_size: int = 120,
|
| 142 |
+
) -> np.ndarray:
|
| 143 |
'''
|
| 144 |
Preprocess the video.
|
|
|
|
| 145 |
Parameters
|
| 146 |
----------
|
| 147 |
source : str
|
| 148 |
The path to the video.
|
| 149 |
+
keypoints_detector : mediapipe.solutions.holistic.Holistic
|
| 150 |
+
The keypoints detector.
|
| 151 |
+
normalization : bool, default=True
|
| 152 |
+
Whether to normalize the data.
|
| 153 |
+
random_choose : bool, default=True
|
| 154 |
+
Whether to randomly sample the data.
|
| 155 |
+
window_size : int, default=120
|
| 156 |
+
The window size.
|
| 157 |
Returns
|
| 158 |
-------
|
| 159 |
+
np.ndarray
|
| 160 |
+
The processed inputs for model.
|
| 161 |
'''
|
| 162 |
+
inputs = extract_joints(source=source, keypoints_detector=keypoints_detector)
|
| 163 |
+
|
| 164 |
T = inputs.shape[1]
|
| 165 |
+
# ori_data = inputs
|
| 166 |
+
# for t in range(T - 1):
|
| 167 |
+
# inputs[:, t, :, :] = ori_data[:, t + 1, :, :] - ori_data[:, t, :, :]
|
| 168 |
+
# inputs[:, T - 1, :, :] = 0
|
| 169 |
+
|
| 170 |
+
if random_choose:
|
| 171 |
+
inputs = random_sample_np(inputs, window_size)
|
| 172 |
else:
|
| 173 |
+
inputs = uniform_sample_np(inputs, window_size)
|
| 174 |
+
|
| 175 |
+
# if normalization:
|
| 176 |
+
# assert inputs.shape[0] == 3
|
| 177 |
+
# inputs[0, :, :, :] = inputs[0, :, :, :] - inputs[0, :, 0, 0].mean(axis=0)
|
| 178 |
+
# inputs[1, :, :, :] = inputs[1, :, :, :] - inputs[1, :, 0, 0].mean(axis=0)
|
| 179 |
|
|
|
|
|
|
|
| 180 |
return np.squeeze(inputs).transpose(1, 2, 0).astype(np.float32)
|
| 181 |
|
| 182 |
|