1
0
forked from HQU-gxy/CVTH3PE

Single-person tracking, modified the tracking initialization and tracking exit conditions, and also modified the weighted calculation process of DLT

This commit is contained in:
2025-07-08 17:00:10 +08:00
parent 835367cd6d
commit b4ac324d8f
2 changed files with 968 additions and 183 deletions

View File

@ -133,15 +133,9 @@ def get_camera_detect(
def get_segment(
camera_port: list[int], frame_index: list[int], keypoint_data: dict[int, ak.Array]
) -> dict[int, ak.Array]:
# for port in camera_port:
# keypoint_data[port] = [
# element_frame
# for element_frame in KEYPOINT_DATASET[port]
# if element_frame["frame_index"] in frame_index
# ]
for port in camera_port:
segement_data = []
camera_data = KEYPOINT_DATASET[port]
camera_data = keypoint_data[port]
for index, element_frame in enumerate(ak.to_numpy(camera_data["frame_index"])):
if element_frame in frame_index:
segement_data.append(camera_data[index])
@ -431,43 +425,32 @@ def triangulate_one_point_from_multiple_views_linear_time_weighted(
else:
confi = jnp.sqrt(jnp.clip(confidences, 0, 1))
A = jnp.zeros((N * 2, 4), dtype=np.float32)
time_weights = jnp.exp(-lambda_t * delta_t)
weights = time_weights * confi
sum_weights = jnp.sum(weights)
weights = jnp.where(sum_weights > 0, weights / sum_weights, weights)
# First build the coefficient matrix without weights
A = jnp.zeros((N * 2, 4), dtype=np.float32)
for i in range(N):
x, y = points[i]
A = A.at[2 * i].set(proj_matrices[i, 2] * x - proj_matrices[i, 0])
A = A.at[2 * i + 1].set(proj_matrices[i, 2] * y - proj_matrices[i, 1])
row1 = proj_matrices[i, 2] * x - proj_matrices[i, 0]
row2 = proj_matrices[i, 2] * y - proj_matrices[i, 1]
A = A.at[2 * i].set(row1 * weights[i])
A = A.at[2 * i + 1].set(row2 * weights[i])
# Then apply the time-based and confidence weights
for i in range(N):
# Calculate time-decay weight: e^(-λ_t * Δt)
time_weight = jnp.exp(-lambda_t * delta_t[i])
# Calculate normalization factor: ||c^i^T||_2
row_norm_1 = jnp.linalg.norm(A[2 * i])
row_norm_2 = jnp.linalg.norm(A[2 * i + 1])
# Apply combined weight: time_weight / row_norm * confidence
w1 = (time_weight / row_norm_1) * confi[i]
w2 = (time_weight / row_norm_2) * confi[i]
A = A.at[2 * i].mul(w1)
A = A.at[2 * i + 1].mul(w2)
# Solve using SVD
_, _, vh = jnp.linalg.svd(A, full_matrices=False)
point_3d_homo = vh[-1] # shape (4,)
# Ensure homogeneous coordinate is positive
point_3d_homo = jnp.where(
point_3d_homo[3] < 0,
-point_3d_homo,
point_3d_homo,
point_3d_homo = vh[-1]
point_3d_homo = jnp.where(point_3d_homo[3] < 0, -point_3d_homo, point_3d_homo)
is_zero_weight = jnp.sum(weights) == 0
point_3d = jnp.where(
is_zero_weight,
jnp.full((3,), jnp.nan, dtype=jnp.float32),
jnp.where(
jnp.abs(point_3d_homo[3]) > 1e-8,
point_3d_homo[:3] / point_3d_homo[3],
jnp.full((3,), jnp.nan, dtype=jnp.float32),
),
)
# Convert from homogeneous to Euclidean coordinates
point_3d = point_3d_homo[:3] / point_3d_homo[3]
return point_3d
@ -489,36 +472,37 @@ def triangulate_one_point_from_multiple_views_linear(
"""
assert len(proj_matrices) == len(points)
N = len(proj_matrices)
# 置信度加权DLT
# 置信度加权DLT
if confidences is None:
weights = jnp.ones(N, dtype=jnp.float32)
else:
# 置信度低于阈值的点权重为0其余为sqrt(conf)
valid_mask = confidences >= conf_threshold
weights = jnp.where(valid_mask, jnp.sqrt(jnp.clip(confidences, 0, 1)), 0.0)
# 归一化权重,避免某一帧权重过大
weights = jnp.where(valid_mask, confidences, 0.0)
sum_weights = jnp.sum(weights)
weights = jnp.where(sum_weights > 0, weights / sum_weights, weights)
A = jnp.zeros((N * 2, 4), dtype=jnp.float32)
for i in range(N):
x, y = points[i]
A = A.at[2 * i].set(proj_matrices[i, 2] * x - proj_matrices[i, 0])
A = A.at[2 * i + 1].set(proj_matrices[i, 2] * y - proj_matrices[i, 1])
A = A.at[2 * i].mul(weights[i])
A = A.at[2 * i + 1].mul(weights[i])
row1 = proj_matrices[i, 2] * x - proj_matrices[i, 0]
row2 = proj_matrices[i, 2] * y - proj_matrices[i, 1]
A = A.at[2 * i].set(row1 * weights[i])
A = A.at[2 * i + 1].set(row2 * weights[i])
# https://docs.jax.dev/en/latest/_autosummary/jax.numpy.linalg.svd.html
_, _, vh = jnp.linalg.svd(A, full_matrices=False)
point_3d_homo = vh[-1] # shape (4,)
# replace the Python `if` with a jnp.where
point_3d_homo = jnp.where(
point_3d_homo[3] < 0, # predicate (scalar bool tracer)
-point_3d_homo, # if True
point_3d_homo, # if False
point_3d_homo = vh[-1]
point_3d_homo = jnp.where(point_3d_homo[3] < 0, -point_3d_homo, point_3d_homo)
is_zero_weight = jnp.sum(weights) == 0
point_3d = jnp.where(
is_zero_weight,
jnp.full((3,), jnp.nan, dtype=jnp.float32),
jnp.where(
jnp.abs(point_3d_homo[3]) > 1e-8,
point_3d_homo[:3] / point_3d_homo[3],
jnp.full((3,), jnp.nan, dtype=jnp.float32),
),
)
point_3d = point_3d_homo[:3] / point_3d_homo[3]
return point_3d
@ -542,16 +526,16 @@ def triangulate_points_from_multiple_views_linear(
N, P, _ = points.shape
assert proj_matrices.shape[0] == N
conf = jnp.array(confidences)
if confidences is None:
conf = jnp.ones((N, P), dtype=jnp.float32)
else:
conf = jnp.array(confidences)
# vectorize your onepoint routine over P
vmap_triangulate = jax.vmap(
triangulate_one_point_from_multiple_views_linear,
in_axes=(None, 1, 1), # proj_matrices static, map over points[:,p,:], conf[:,p]
in_axes=(None, 1, 1),
out_axes=0,
)
# returns (P, 3)
return vmap_triangulate(proj_matrices, points, conf)
@ -924,17 +908,20 @@ def smooth_3d_keypoints(
# 通过平均置信度筛选2d检测数据
def filter_keypoints_by_scores(detections: Iterable[Detection], threshold: float = 0.5):
def filter_keypoints_by_scores(
detections: Iterable[Detection], threshold: float = 0.5
) -> list[Detection]:
"""
Filter detections based on the average confidence score of their keypoints.
Only keep detections with an average score above the threshold.
"""
def filter_detection(detection: Detection) -> bool:
avg_score = np.mean(detection.confidences)
return float(avg_score) >= threshold
median_score = np.mean(detection.confidences[:17])
# print(f"Mean score: {median_score}")
return float(median_score) >= threshold
return filter(filter_detection, detections)
return [d for d in detections if filter_detection(d)]
def filter_camera_port(detections: list[Detection]):
@ -956,7 +943,7 @@ camera_port = [5602, 5603, 5604, 5605]
KEYPOINT_DATASET = get_camera_detect(DATASET_PATH, camera_port, AK_CAMERA_DATASET)
# 获取一段完整的跳跃片段
FRAME_INDEX = [i for i in range(552, 1488)] # 552 1488
FRAME_INDEX = [i for i in range(700, 1600)] # 552 1488
KEYPOINT_DATASET = get_segment(camera_port, FRAME_INDEX, KEYPOINT_DATASET)
@ -965,7 +952,7 @@ sync_gen: Generator[list[Detection], Any, None] = get_batch_detect(
KEYPOINT_DATASET,
AK_CAMERA_DATASET,
camera_port,
batch_fps=20,
batch_fps=24,
)
# 建立追踪目标
@ -985,134 +972,104 @@ trackings: list[Tracking] = []
# 3d数据键为追踪目标id值为该目标的所有3d数据
all_3d_kps: dict[str, list] = {}
# 遍历2d数据测试追踪状态
tracking_initialized = False
lost_frame_count = 0
lost_frame_threshold = 12 # 0.5秒假设20fps
while True:
# 获得当前追踪目标
# 重新梳理跟踪逻辑,保证唯一目标、唯一初始化、鲁棒丢失判定
try:
detections = next(sync_gen)
detections = filter_keypoints_by_scores(detections, threshold=0.5)
except StopIteration:
break
# 1. 检查当前是否有已初始化的跟踪目标
trackings: list[Tracking] = sorted(
global_tracking_state.trackings.values(), key=lambda x: x.id
)
try:
detections = next(sync_gen)
# 通过平均置信度筛选2d检测数据
# detections = list(filter_keypoints_by_scores(detections, threshold=0.5))
except StopIteration:
break
if len(detections) == 0:
print("no detections in this frame, continue")
continue
# 获得最新一帧的数据2d数据
# 判断追踪状态是否建立成功,若不成功则跳过这一帧数据,直到追踪建立
if not trackings:
"""离机时使用,用于初始化第一帧"""
"""
# 使用盒子筛选后的2d检测数据
filter_detections = get_filter_detections(detections)
# 当3个机位均有目标时才建立追踪状态
# if len(filter_detections) == 0:
# continue
if len(filter_detections) < len(camera_port):
if not tracking_initialized:
# 只初始化一次
camera_port_this = filter_camera_port(detections)
if len(camera_port_this) < len(camera_port) - 1:
print(
"init traincking error, filter filter_detections len:",
len(filter_detections),
"init tracking error, filter_detections len:",
len(camera_port_this),
)
continue
"""
# 通过平均置信度筛选2d检测数据
# detections = list(filter_keypoints_by_scores(detections, threshold=0.7))
# 当4个机位都识别到目标时才建立追踪状态
camera_port = filter_camera_port(detections)
if len(detections) < len(camera_port):
print(
"init traincking error, filter_detections len:",
len(detections),
)
else:
# 添加第一帧数据构建追踪目标
global_tracking_state.add_tracking(detections) # 离机时filter_detections
# 获得当前追踪目标
trackings: list[Tracking] = sorted(
global_tracking_state.trackings.values(), key=lambda x: x.id
)
# 保留第一帧的3d姿态数据
for element_tracking in trackings:
if str(element_tracking.id) not in all_3d_kps.keys():
all_3d_kps[str(element_tracking.id)] = [
element_tracking.state.keypoints.tolist()
]
print("initer tracking:", trackings)
else:
# 计算相似度矩阵匹配结果
affinities: dict[str, AffinityResult] = calculate_affinity_matrix(
trackings,
detections,
w_2d=W_2D,
alpha_2d=ALPHA_2D,
w_3d=W_3D,
alpha_3d=ALPHA_3D,
lambda_a=LAMBDA_A,
)
# 遍历追踪目标获得该目标的匹配2d数据
for element_tracking in trackings:
tracking_detection = []
# 匹配检测目标的索引值
detection_index = None
temp_matrix = []
# 遍历相机的追踪相似度匹配结果
for camera_name in affinities.keys():
# 获得与每个跟踪目标匹配的相似度矩阵
camera_matrix = jnp.array(affinities[camera_name].matrix).flatten()
detection_index = jnp.argmax(camera_matrix).item()
if isnan(camera_matrix[detection_index].item()):
breakpoint()
temp_matrix.append(
f"{camera_name} : {camera_matrix[detection_index].item()}"
)
# 判断相似度矩阵极大值是否大于阈值
# 目前只有一个跟踪目标,还未实现多跟踪目标的匹配-------------------------
if camera_matrix[detection_index].item() > affinities_threshold:
# 保留对应的2d检测数据
tracking_detection.append(
affinities[camera_name].detections[detection_index]
)
print("affinities matrix:", temp_matrix)
# 当2个及以上数量的机位同时检测到追踪目标时更新追踪状态
if len(tracking_detection) >= 2:
update_tracking(element_tracking, tracking_detection)
# 保留对应的3d姿态数据
all_3d_kps[str(element_tracking.id)].append(
global_tracking_state.add_tracking(detections)
tracking_initialized = True
lost_frame_count = 0
# 保留第一帧的3d姿态数据
for element_tracking in global_tracking_state.trackings.values():
if str(element_tracking.id) not in all_3d_kps.keys():
all_3d_kps[str(element_tracking.id)] = [
element_tracking.state.keypoints.tolist()
)
]
print("init tracking:", global_tracking_state.trackings.values())
continue
# tracking_initialized = True
if len(detections) == 0:
print("no detections in this frame, continue")
lost_frame_count += 1
# 进一步完善退出条件:
# 1. 连续丢失阈值帧后才退出
# 2. 若丢失时最后一次检测到的时间与当前帧时间间隔超过1秒才彻底退出
last_tracking = None
if global_tracking_state.trackings:
last_tracking = list(global_tracking_state.trackings.values())[0]
if lost_frame_count >= lost_frame_threshold:
should_remove = True
# 可选:可加时间间隔判定
if should_remove:
global_tracking_state._trackings.clear()
tracking_initialized = False
print(
"update tracking:",
global_tracking_state.trackings.values(),
f"tracking lost after {lost_frame_count} frames, reset tracking state"
)
else:
# if len(detections) == 0:
# continue
# 追踪目标丢失的时间间隔
time_gap = (
detections[0].timestamp
- element_tracking.state.last_active_timestamp
)
# 当时间间隔超过1s删除保留的追踪状态
if time_gap.seconds > 0.5:
global_tracking_state._trackings.pop(element_tracking.id)
print(
"remove trackings:",
global_tracking_state.trackings.values(),
"time:",
detections[0].timestamp,
)
lost_frame_count = 0
continue
# 有检测,正常跟踪
lost_frame_count = 0
affinities: dict[str, AffinityResult] = calculate_affinity_matrix(
trackings,
detections,
w_2d=W_2D,
alpha_2d=ALPHA_2D,
w_3d=W_3D,
alpha_3d=ALPHA_3D,
lambda_a=LAMBDA_A,
)
for element_tracking in trackings:
tracking_detection = []
temp_matrix = []
for camera_name in affinities.keys():
camera_matrix = jnp.array(affinities[camera_name].matrix).flatten()
detection_index = jnp.argmax(camera_matrix).item()
if isnan(camera_matrix[detection_index].item()):
breakpoint()
temp_matrix.append(
f"{camera_name} : {camera_matrix[detection_index].item()}"
)
# 选取相似度大于阈值的检测目标更新跟踪状态
# if camera_matrix[detection_index].item() > affinities_threshold:
tracking_detection.append(
affinities[camera_name].detections[detection_index]
)
print("affinities matrix:", temp_matrix)
if len(tracking_detection) > 2:
update_tracking(element_tracking, tracking_detection)
all_3d_kps[str(element_tracking.id)].append(
element_tracking.state.keypoints.tolist()
)
print(
"update tracking:",
global_tracking_state.trackings.values(),
)
# 不再在else分支里删除tracking只用lost_frame_count判定
# 对每一个3d目标进行滑动窗口平滑处理
smoothed_points = smooth_3d_keypoints(all_3d_kps, window_size=5)

828
temp.ipynb Normal file
View File

@ -0,0 +1,828 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "727f95c9",
"metadata": {},
"outputs": [],
"source": [
"from pathlib import Path\n",
"import awkward as ak\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "fc96704c",
"metadata": {},
"outputs": [],
"source": [
"def get_camera_params(camera_path: Path) -> ak.Array:\n",
" camera_dataset: ak.Array = ak.from_parquet(camera_path / \"camera_params.parquet\")\n",
" return camera_dataset\n",
"\n",
"\n",
"def get_camera_detect(\n",
" detect_path: Path, camera_port: list[int], camera_dataset: ak.Array\n",
") -> dict[int, ak.Array]:\n",
" keypoint_data: dict[int, ak.Array] = {}\n",
" for element_port in ak.to_numpy(camera_dataset[\"port\"]):\n",
" if element_port in camera_port:\n",
" keypoint_data[int(element_port)] = ak.from_parquet(\n",
" detect_path / f\"{element_port}_detected.parquet\"\n",
" )\n",
" return keypoint_data\n",
"\n",
"\n",
"def get_segment(\n",
" camera_port: list[int], frame_index: list[int], keypoint_data: dict[int, ak.Array]\n",
") -> dict[int, ak.Array]:\n",
" # for port in camera_port:\n",
" # keypoint_data[port] = [\n",
" # element_frame\n",
" # for element_frame in KEYPOINT_DATASET[port]\n",
" # if element_frame[\"frame_index\"] in frame_index\n",
" # ]\n",
" for port in camera_port:\n",
" segement_data = []\n",
" camera_data = keypoint_data[port]\n",
" for index, element_frame in enumerate(ak.to_numpy(camera_data[\"frame_index\"])):\n",
" if element_frame in frame_index:\n",
" segement_data.append(camera_data[index])\n",
" keypoint_data[port] = ak.Array(segement_data)\n",
"\n",
" return keypoint_data"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "01455135",
"metadata": {},
"outputs": [],
"source": [
"# 相机内外参路径\n",
"CAMERA_PATH = Path(\"/home/admin/Documents/ActualTest_WeiHua/camera_params\")\n",
"# 所有机位的相机内外参\n",
"AK_CAMERA_DATASET: ak.Array = get_camera_params(CAMERA_PATH)\n",
"\n",
"# 2d检测数据路径\n",
"DATASET_PATH = Path(\"/home/admin/Documents/ActualTest_WeiHua/Test_Video\")\n",
"# 指定机位的2d检测数据\n",
"camera_port = [5602, 5603, 5604, 5605]\n",
"KEYPOINT_DATASET = get_camera_detect(DATASET_PATH, camera_port, AK_CAMERA_DATASET)\n",
"\n",
"# 获取一段完整的跳跃片段\n",
"FRAME_INDEX = [i for i in range(700)] # 552 1488\n",
"KEYPOINT_DATASET = get_segment(camera_port, FRAME_INDEX, KEYPOINT_DATASET)\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "6a4aac82",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Frame Index: 0, Average Score: 0.54\n",
"Frame Index: 1, Average Score: 0.53\n",
"Frame Index: 2, Average Score: 0.51\n",
"Frame Index: 3, Average Score: 0.54\n",
"Frame Index: 4, Average Score: 0.53\n",
"Frame Index: 5, Average Score: 0.55\n",
"Frame Index: 6, Average Score: 0.54\n",
"Frame Index: 7, Average Score: 0.56\n",
"Frame Index: 8, Average Score: 0.56\n",
"Frame Index: 9, Average Score: 0.56\n",
"Frame Index: 10, Average Score: 0.58\n",
"Frame Index: 11, Average Score: 0.58\n",
"Frame Index: 12, Average Score: 0.57\n",
"Frame Index: 13, Average Score: 0.56\n",
"Frame Index: 14, Average Score: 0.56\n",
"Frame Index: 15, Average Score: 0.56\n",
"Frame Index: 16, Average Score: 0.56\n",
"Frame Index: 17, Average Score: 0.58\n",
"Frame Index: 18, Average Score: 0.55\n",
"Frame Index: 19, Average Score: 0.56\n",
"Frame Index: 20, Average Score: 0.60\n",
"Frame Index: 21, Average Score: 0.57\n",
"Frame Index: 22, Average Score: 0.55\n",
"Frame Index: 23, Average Score: 0.55\n",
"Frame Index: 24, Average Score: 0.57\n",
"Frame Index: 25, Average Score: 0.56\n",
"Frame Index: 26, Average Score: 0.56\n",
"Frame Index: 27, Average Score: 0.52\n",
"Frame Index: 28, Average Score: 0.54\n",
"Frame Index: 29, Average Score: 0.53\n",
"Frame Index: 30, Average Score: 0.56\n",
"Frame Index: 31, Average Score: 0.53\n",
"Frame Index: 32, Average Score: 0.54\n",
"Frame Index: 33, Average Score: 0.53\n",
"Frame Index: 34, Average Score: 0.55\n",
"Frame Index: 35, Average Score: 0.52\n",
"Frame Index: 36, Average Score: 0.52\n",
"Frame Index: 37, Average Score: 0.54\n",
"Frame Index: 38, Average Score: 0.51\n",
"Frame Index: 39, Average Score: 0.51\n",
"Frame Index: 40, Average Score: 0.53\n",
"Frame Index: 41, Average Score: 0.52\n",
"Frame Index: 42, Average Score: 0.53\n",
"Frame Index: 43, Average Score: 0.51\n",
"Frame Index: 44, Average Score: 0.50\n",
"Frame Index: 45, Average Score: 0.50\n",
"Frame Index: 46, Average Score: 0.49\n",
"Frame Index: 47, Average Score: 0.47\n",
"Frame Index: 48, Average Score: 0.47\n",
"Frame Index: 49, Average Score: 0.47\n",
"Frame Index: 50, Average Score: 0.48\n",
"Frame Index: 51, Average Score: 0.49\n",
"Frame Index: 52, Average Score: 0.47\n",
"Frame Index: 53, Average Score: 0.49\n",
"Frame Index: 54, Average Score: 0.49\n",
"Frame Index: 55, Average Score: 0.49\n",
"Frame Index: 56, Average Score: 0.48\n",
"Frame Index: 57, Average Score: 0.49\n",
"Frame Index: 58, Average Score: 0.49\n",
"Frame Index: 59, Average Score: 0.48\n",
"Frame Index: 60, Average Score: 0.48\n",
"Frame Index: 61, Average Score: 0.48\n",
"Frame Index: 62, Average Score: 0.48\n",
"Frame Index: 63, Average Score: 0.49\n",
"Frame Index: 64, Average Score: 0.49\n",
"Frame Index: 65, Average Score: 0.48\n",
"Frame Index: 66, Average Score: 0.47\n",
"Frame Index: 67, Average Score: 0.51\n",
"Frame Index: 68, Average Score: 0.49\n",
"Frame Index: 69, Average Score: 0.49\n",
"Frame Index: 70, Average Score: 0.48\n",
"Frame Index: 71, Average Score: 0.47\n",
"Frame Index: 72, Average Score: 0.51\n",
"Frame Index: 73, Average Score: 0.52\n",
"Frame Index: 74, Average Score: 0.47\n",
"Frame Index: 75, Average Score: 0.40\n",
"Frame Index: 76, Average Score: 0.46\n",
"Frame Index: 77, Average Score: 0.52\n",
"Frame Index: 78, Average Score: 0.49\n",
"Frame Index: 79, Average Score: 0.53\n",
"Frame Index: 80, Average Score: 0.52\n",
"Frame Index: 81, Average Score: 0.49\n",
"Frame Index: 82, Average Score: 0.49\n",
"Frame Index: 83, Average Score: 0.52\n",
"Frame Index: 84, Average Score: 0.52\n",
"Frame Index: 85, Average Score: 0.53\n",
"Frame Index: 86, Average Score: 0.57\n",
"Frame Index: 87, Average Score: 0.57\n",
"Frame Index: 88, Average Score: 0.56\n",
"Frame Index: 89, Average Score: 0.56\n",
"Frame Index: 90, Average Score: 0.63\n",
"Frame Index: 91, Average Score: 0.62\n",
"Frame Index: 92, Average Score: 0.63\n",
"Frame Index: 93, Average Score: 0.64\n",
"Frame Index: 94, Average Score: 0.63\n",
"Frame Index: 95, Average Score: 0.61\n",
"Frame Index: 96, Average Score: 0.63\n",
"Frame Index: 97, Average Score: 0.63\n",
"Frame Index: 98, Average Score: 0.64\n",
"Frame Index: 99, Average Score: 0.65\n",
"Frame Index: 100, Average Score: 0.60\n",
"Frame Index: 101, Average Score: 0.59\n",
"Frame Index: 102, Average Score: 0.58\n",
"Frame Index: 103, Average Score: 0.57\n",
"Frame Index: 104, Average Score: 0.58\n",
"Frame Index: 105, Average Score: nan\n",
"Frame Index: 106, Average Score: 0.55\n",
"Frame Index: 107, Average Score: 0.56\n",
"Frame Index: 108, Average Score: 0.55\n",
"Frame Index: 109, Average Score: 0.55\n",
"Frame Index: 110, Average Score: 0.58\n",
"Frame Index: 111, Average Score: 0.55\n",
"Frame Index: 112, Average Score: 0.58\n",
"Frame Index: 113, Average Score: 0.54\n",
"Frame Index: 114, Average Score: 0.53\n",
"Frame Index: 115, Average Score: 0.52\n",
"Frame Index: 116, Average Score: 0.52\n",
"Frame Index: 117, Average Score: 0.49\n",
"Frame Index: 118, Average Score: 0.53\n",
"Frame Index: 119, Average Score: 0.53\n",
"Frame Index: 120, Average Score: 0.50\n",
"Frame Index: 121, Average Score: 0.50\n",
"Frame Index: 122, Average Score: 0.52\n",
"Frame Index: 123, Average Score: 0.51\n",
"Frame Index: 124, Average Score: 0.51\n",
"Frame Index: 125, Average Score: 0.50\n",
"Frame Index: 126, Average Score: 0.47\n",
"Frame Index: 127, Average Score: 0.50\n",
"Frame Index: 128, Average Score: 0.49\n",
"Frame Index: 129, Average Score: 0.49\n",
"Frame Index: 130, Average Score: 0.48\n",
"Frame Index: 131, Average Score: 0.46\n",
"Frame Index: 132, Average Score: 0.44\n",
"Frame Index: 133, Average Score: 0.44\n",
"Frame Index: 134, Average Score: 0.44\n",
"Frame Index: 135, Average Score: 0.47\n",
"Frame Index: 136, Average Score: 0.47\n",
"Frame Index: 137, Average Score: 0.46\n",
"Frame Index: 138, Average Score: 0.47\n",
"Frame Index: 139, Average Score: 0.51\n",
"Frame Index: 140, Average Score: 0.53\n",
"Frame Index: 141, Average Score: 0.55\n",
"Frame Index: 142, Average Score: 0.53\n",
"Frame Index: 143, Average Score: 0.53\n",
"Frame Index: 144, Average Score: 0.53\n",
"Frame Index: 145, Average Score: 0.53\n",
"Frame Index: 146, Average Score: 0.52\n",
"Frame Index: 147, Average Score: 0.52\n",
"Frame Index: 148, Average Score: 0.51\n",
"Frame Index: 149, Average Score: 0.50\n",
"Frame Index: 150, Average Score: 0.50\n",
"Frame Index: 151, Average Score: 0.50\n",
"Frame Index: 152, Average Score: 0.48\n",
"Frame Index: 153, Average Score: 0.46\n",
"Frame Index: 154, Average Score: 0.46\n",
"Frame Index: 155, Average Score: 0.47\n",
"Frame Index: 156, Average Score: 0.46\n",
"Frame Index: 157, Average Score: 0.48\n",
"Frame Index: 158, Average Score: 0.47\n",
"Frame Index: 159, Average Score: 0.48\n",
"Frame Index: 160, Average Score: 0.48\n",
"Frame Index: 161, Average Score: 0.48\n",
"Frame Index: 162, Average Score: 0.47\n",
"Frame Index: 163, Average Score: 0.48\n",
"Frame Index: 164, Average Score: 0.48\n",
"Frame Index: 165, Average Score: 0.43\n",
"Frame Index: 166, Average Score: 0.46\n",
"Frame Index: 167, Average Score: 0.43\n",
"Frame Index: 168, Average Score: 0.45\n",
"Frame Index: 169, Average Score: 0.46\n",
"Frame Index: 170, Average Score: 0.47\n",
"Frame Index: 171, Average Score: 0.43\n",
"Frame Index: 172, Average Score: 0.44\n",
"Frame Index: 173, Average Score: 0.47\n",
"Frame Index: 174, Average Score: 0.49\n",
"Frame Index: 175, Average Score: 0.49\n",
"Frame Index: 176, Average Score: 0.45\n",
"Frame Index: 177, Average Score: 0.46\n",
"Frame Index: 178, Average Score: 0.45\n",
"Frame Index: 179, Average Score: nan\n",
"Frame Index: 180, Average Score: nan\n",
"Frame Index: 181, Average Score: nan\n",
"Frame Index: 182, Average Score: nan\n",
"Frame Index: 183, Average Score: nan\n",
"Frame Index: 184, Average Score: nan\n",
"Frame Index: 185, Average Score: nan\n",
"Frame Index: 186, Average Score: nan\n",
"Frame Index: 187, Average Score: nan\n",
"Frame Index: 188, Average Score: nan\n",
"Frame Index: 189, Average Score: nan\n",
"Frame Index: 190, Average Score: nan\n",
"Frame Index: 191, Average Score: nan\n",
"Frame Index: 192, Average Score: 0.40\n",
"Frame Index: 193, Average Score: 0.39\n",
"Frame Index: 194, Average Score: nan\n",
"Frame Index: 195, Average Score: nan\n",
"Frame Index: 196, Average Score: 0.40\n",
"Frame Index: 197, Average Score: 0.38\n",
"Frame Index: 198, Average Score: 0.41\n",
"Frame Index: 199, Average Score: 0.40\n",
"Frame Index: 200, Average Score: nan\n",
"Frame Index: 201, Average Score: 0.39\n",
"Frame Index: 202, Average Score: 0.40\n",
"Frame Index: 203, Average Score: 0.43\n",
"Frame Index: 204, Average Score: 0.44\n",
"Frame Index: 205, Average Score: nan\n",
"Frame Index: 206, Average Score: nan\n",
"Frame Index: 207, Average Score: 0.38\n",
"Frame Index: 208, Average Score: 0.36\n",
"Frame Index: 209, Average Score: 0.42\n",
"Frame Index: 210, Average Score: 0.46\n",
"Frame Index: 211, Average Score: 0.46\n",
"Frame Index: 212, Average Score: 0.40\n",
"Frame Index: 213, Average Score: 0.36\n",
"Frame Index: 214, Average Score: 0.40\n",
"Frame Index: 215, Average Score: 0.37\n",
"Frame Index: 216, Average Score: 0.40\n",
"Frame Index: 217, Average Score: 0.44\n",
"Frame Index: 218, Average Score: 0.49\n",
"Frame Index: 219, Average Score: 0.49\n",
"Frame Index: 220, Average Score: 0.50\n",
"Frame Index: 221, Average Score: 0.52\n",
"Frame Index: 222, Average Score: 0.52\n",
"Frame Index: 223, Average Score: 0.54\n",
"Frame Index: 224, Average Score: 0.53\n",
"Frame Index: 225, Average Score: 0.55\n",
"Frame Index: 226, Average Score: 0.55\n",
"Frame Index: 227, Average Score: 0.57\n",
"Frame Index: 228, Average Score: 0.56\n",
"Frame Index: 229, Average Score: 0.59\n",
"Frame Index: 230, Average Score: 0.58\n",
"Frame Index: 231, Average Score: 0.58\n",
"Frame Index: 232, Average Score: 0.61\n",
"Frame Index: 233, Average Score: 0.63\n",
"Frame Index: 234, Average Score: 0.63\n",
"Frame Index: 235, Average Score: 0.53\n",
"Frame Index: 236, Average Score: 0.56\n",
"Frame Index: 237, Average Score: 0.66\n",
"Frame Index: 238, Average Score: 0.69\n",
"Frame Index: 239, Average Score: 0.70\n",
"Frame Index: 240, Average Score: 0.72\n",
"Frame Index: 241, Average Score: 0.73\n",
"Frame Index: 242, Average Score: 0.75\n",
"Frame Index: 243, Average Score: 0.76\n",
"Frame Index: 244, Average Score: 0.76\n",
"Frame Index: 245, Average Score: 0.76\n",
"Frame Index: 246, Average Score: 0.76\n",
"Frame Index: 247, Average Score: 0.78\n",
"Frame Index: 248, Average Score: 0.79\n",
"Frame Index: 249, Average Score: 0.81\n",
"Frame Index: 250, Average Score: 0.80\n",
"Frame Index: 251, Average Score: 0.82\n",
"Frame Index: 252, Average Score: 0.81\n",
"Frame Index: 253, Average Score: 0.84\n",
"Frame Index: 254, Average Score: 0.85\n",
"Frame Index: 255, Average Score: 0.83\n",
"Frame Index: 256, Average Score: 0.79\n",
"Frame Index: 257, Average Score: 0.86\n",
"Frame Index: 258, Average Score: 0.90\n",
"Frame Index: 259, Average Score: 0.87\n",
"Frame Index: 260, Average Score: 0.86\n",
"Frame Index: 261, Average Score: 0.92\n",
"Frame Index: 262, Average Score: 0.91\n",
"Frame Index: 263, Average Score: 0.92\n",
"Frame Index: 264, Average Score: 0.93\n",
"Frame Index: 265, Average Score: 0.90\n",
"Frame Index: 266, Average Score: 0.87\n",
"Frame Index: 267, Average Score: 0.89\n",
"Frame Index: 268, Average Score: 0.87\n",
"Frame Index: 269, Average Score: 0.94\n",
"Frame Index: 270, Average Score: 0.95\n",
"Frame Index: 271, Average Score: 0.93\n",
"Frame Index: 272, Average Score: 0.91\n",
"Frame Index: 273, Average Score: 0.85\n",
"Frame Index: 274, Average Score: 0.82\n",
"Frame Index: 275, Average Score: 0.83\n",
"Frame Index: 276, Average Score: 0.83\n",
"Frame Index: 277, Average Score: 0.84\n",
"Frame Index: 278, Average Score: 0.87\n",
"Frame Index: 279, Average Score: 0.85\n",
"Frame Index: 280, Average Score: 0.86\n",
"Frame Index: 281, Average Score: 0.90\n",
"Frame Index: 282, Average Score: 0.89\n",
"Frame Index: 283, Average Score: 0.88\n",
"Frame Index: 284, Average Score: 0.84\n",
"Frame Index: 285, Average Score: 0.86\n",
"Frame Index: 286, Average Score: 0.85\n",
"Frame Index: 287, Average Score: 0.84\n",
"Frame Index: 288, Average Score: 0.87\n",
"Frame Index: 289, Average Score: 0.88\n",
"Frame Index: 290, Average Score: 0.85\n",
"Frame Index: 291, Average Score: 0.86\n",
"Frame Index: 292, Average Score: 0.83\n",
"Frame Index: 293, Average Score: 0.86\n",
"Frame Index: 294, Average Score: 0.85\n",
"Frame Index: 295, Average Score: 0.88\n",
"Frame Index: 296, Average Score: 0.88\n",
"Frame Index: 297, Average Score: 0.86\n",
"Frame Index: 298, Average Score: 0.84\n",
"Frame Index: 299, Average Score: 0.85\n",
"Frame Index: 300, Average Score: 0.83\n",
"Frame Index: 301, Average Score: 0.85\n",
"Frame Index: 302, Average Score: 0.86\n",
"Frame Index: 303, Average Score: 0.86\n",
"Frame Index: 304, Average Score: 0.84\n",
"Frame Index: 305, Average Score: 0.82\n",
"Frame Index: 306, Average Score: 0.82\n",
"Frame Index: 307, Average Score: 0.84\n",
"Frame Index: 308, Average Score: 0.85\n",
"Frame Index: 309, Average Score: 0.85\n",
"Frame Index: 310, Average Score: 0.80\n",
"Frame Index: 311, Average Score: 0.84\n",
"Frame Index: 312, Average Score: 0.80\n",
"Frame Index: 313, Average Score: 0.85\n",
"Frame Index: 314, Average Score: 0.83\n",
"Frame Index: 315, Average Score: 0.84\n",
"Frame Index: 316, Average Score: 0.83\n",
"Frame Index: 317, Average Score: 0.83\n",
"Frame Index: 318, Average Score: 0.83\n",
"Frame Index: 319, Average Score: 0.82\n",
"Frame Index: 320, Average Score: 0.70\n",
"Frame Index: 321, Average Score: 0.67\n",
"Frame Index: 322, Average Score: 0.69\n",
"Frame Index: 323, Average Score: 0.66\n",
"Frame Index: 324, Average Score: 0.57\n",
"Frame Index: 325, Average Score: 0.63\n",
"Frame Index: 326, Average Score: 0.60\n",
"Frame Index: 327, Average Score: 0.65\n",
"Frame Index: 328, Average Score: 0.67\n",
"Frame Index: 329, Average Score: 0.72\n",
"Frame Index: 330, Average Score: 0.67\n",
"Frame Index: 331, Average Score: 0.72\n",
"Frame Index: 332, Average Score: 0.72\n",
"Frame Index: 333, Average Score: 0.78\n",
"Frame Index: 334, Average Score: 0.76\n",
"Frame Index: 335, Average Score: 0.80\n",
"Frame Index: 336, Average Score: 0.80\n",
"Frame Index: 337, Average Score: 0.81\n",
"Frame Index: 338, Average Score: 0.81\n",
"Frame Index: 339, Average Score: 0.82\n",
"Frame Index: 340, Average Score: 0.79\n",
"Frame Index: 341, Average Score: 0.79\n",
"Frame Index: 342, Average Score: 0.80\n",
"Frame Index: 343, Average Score: 0.78\n",
"Frame Index: 344, Average Score: 0.72\n",
"Frame Index: 345, Average Score: 0.64\n",
"Frame Index: 346, Average Score: 0.65\n",
"Frame Index: 347, Average Score: 0.60\n",
"Frame Index: 348, Average Score: 0.57\n",
"Frame Index: 349, Average Score: 0.59\n",
"Frame Index: 350, Average Score: 0.58\n",
"Frame Index: 351, Average Score: 0.66\n",
"Frame Index: 352, Average Score: 0.73\n",
"Frame Index: 353, Average Score: 0.67\n",
"Frame Index: 354, Average Score: 0.71\n",
"Frame Index: 355, Average Score: 0.77\n",
"Frame Index: 356, Average Score: 0.78\n",
"Frame Index: 357, Average Score: 0.79\n",
"Frame Index: 358, Average Score: 0.79\n",
"Frame Index: 359, Average Score: 0.79\n",
"Frame Index: 360, Average Score: 0.67\n",
"Frame Index: 361, Average Score: 0.73\n",
"Frame Index: 362, Average Score: 0.77\n",
"Frame Index: 363, Average Score: 0.77\n",
"Frame Index: 364, Average Score: 0.74\n",
"Frame Index: 365, Average Score: 0.67\n",
"Frame Index: 366, Average Score: 0.65\n",
"Frame Index: 367, Average Score: 0.74\n",
"Frame Index: 368, Average Score: 0.79\n",
"Frame Index: 369, Average Score: 0.78\n",
"Frame Index: 370, Average Score: 0.66\n",
"Frame Index: 371, Average Score: 0.75\n",
"Frame Index: 372, Average Score: 0.69\n",
"Frame Index: 373, Average Score: 0.86\n",
"Frame Index: 374, Average Score: 0.87\n",
"Frame Index: 375, Average Score: 0.86\n",
"Frame Index: 376, Average Score: 0.93\n",
"Frame Index: 377, Average Score: 0.94\n",
"Frame Index: 378, Average Score: 0.95\n",
"Frame Index: 379, Average Score: 0.94\n",
"Frame Index: 380, Average Score: 0.91\n",
"Frame Index: 381, Average Score: 0.96\n",
"Frame Index: 382, Average Score: 0.96\n",
"Frame Index: 383, Average Score: 0.93\n",
"Frame Index: 384, Average Score: 0.95\n",
"Frame Index: 385, Average Score: 0.89\n",
"Frame Index: 386, Average Score: 0.89\n",
"Frame Index: 387, Average Score: 0.92\n",
"Frame Index: 388, Average Score: 0.90\n",
"Frame Index: 389, Average Score: 0.90\n",
"Frame Index: 390, Average Score: 0.81\n",
"Frame Index: 391, Average Score: 0.86\n",
"Frame Index: 392, Average Score: 0.87\n",
"Frame Index: 393, Average Score: 0.90\n",
"Frame Index: 394, Average Score: 0.94\n",
"Frame Index: 395, Average Score: 0.90\n",
"Frame Index: 396, Average Score: 0.92\n",
"Frame Index: 397, Average Score: 0.89\n",
"Frame Index: 398, Average Score: 0.90\n",
"Frame Index: 399, Average Score: 0.84\n",
"Frame Index: 400, Average Score: 0.82\n",
"Frame Index: 401, Average Score: 0.83\n",
"Frame Index: 402, Average Score: 0.83\n",
"Frame Index: 403, Average Score: 0.80\n",
"Frame Index: 404, Average Score: 0.82\n",
"Frame Index: 405, Average Score: 0.84\n",
"Frame Index: 406, Average Score: 0.83\n",
"Frame Index: 407, Average Score: 0.85\n",
"Frame Index: 408, Average Score: 0.84\n",
"Frame Index: 409, Average Score: 0.79\n",
"Frame Index: 410, Average Score: 0.80\n",
"Frame Index: 411, Average Score: 0.77\n",
"Frame Index: 412, Average Score: 0.77\n",
"Frame Index: 413, Average Score: 0.79\n",
"Frame Index: 414, Average Score: 0.83\n",
"Frame Index: 415, Average Score: 0.84\n",
"Frame Index: 416, Average Score: 0.79\n",
"Frame Index: 417, Average Score: 0.75\n",
"Frame Index: 418, Average Score: 0.72\n",
"Frame Index: 419, Average Score: 0.72\n",
"Frame Index: 420, Average Score: 0.76\n",
"Frame Index: 421, Average Score: 0.78\n",
"Frame Index: 422, Average Score: 0.80\n",
"Frame Index: 423, Average Score: 0.79\n",
"Frame Index: 424, Average Score: 0.81\n",
"Frame Index: 425, Average Score: 0.81\n",
"Frame Index: 426, Average Score: 0.80\n",
"Frame Index: 427, Average Score: 0.82\n",
"Frame Index: 428, Average Score: 0.78\n",
"Frame Index: 429, Average Score: 0.82\n",
"Frame Index: 430, Average Score: 0.79\n",
"Frame Index: 431, Average Score: 0.80\n",
"Frame Index: 432, Average Score: 0.81\n",
"Frame Index: 433, Average Score: 0.81\n",
"Frame Index: 434, Average Score: 0.79\n",
"Frame Index: 435, Average Score: 0.79\n",
"Frame Index: 436, Average Score: 0.79\n",
"Frame Index: 437, Average Score: 0.78\n",
"Frame Index: 438, Average Score: 0.79\n",
"Frame Index: 439, Average Score: 0.73\n",
"Frame Index: 440, Average Score: 0.78\n",
"Frame Index: 441, Average Score: 0.73\n",
"Frame Index: 442, Average Score: 0.73\n",
"Frame Index: 443, Average Score: 0.74\n",
"Frame Index: 444, Average Score: 0.70\n",
"Frame Index: 445, Average Score: 0.66\n",
"Frame Index: 446, Average Score: 0.63\n",
"Frame Index: 447, Average Score: 0.64\n",
"Frame Index: 448, Average Score: 0.59\n",
"Frame Index: 449, Average Score: 0.59\n",
"Frame Index: 450, Average Score: 0.62\n",
"Frame Index: 451, Average Score: 0.62\n",
"Frame Index: 452, Average Score: 0.60\n",
"Frame Index: 453, Average Score: 0.57\n",
"Frame Index: 454, Average Score: 0.59\n",
"Frame Index: 455, Average Score: 0.62\n",
"Frame Index: 456, Average Score: 0.63\n",
"Frame Index: 457, Average Score: 0.68\n",
"Frame Index: 458, Average Score: 0.70\n",
"Frame Index: 459, Average Score: 0.71\n",
"Frame Index: 460, Average Score: 0.75\n",
"Frame Index: 461, Average Score: 0.77\n",
"Frame Index: 462, Average Score: 0.78\n",
"Frame Index: 463, Average Score: 0.80\n",
"Frame Index: 464, Average Score: 0.81\n",
"Frame Index: 465, Average Score: 0.81\n",
"Frame Index: 466, Average Score: 0.83\n",
"Frame Index: 467, Average Score: 0.84\n",
"Frame Index: 468, Average Score: 0.85\n",
"Frame Index: 469, Average Score: 0.86\n",
"Frame Index: 470, Average Score: 0.85\n",
"Frame Index: 471, Average Score: 0.85\n",
"Frame Index: 472, Average Score: 0.86\n",
"Frame Index: 473, Average Score: 0.86\n",
"Frame Index: 474, Average Score: 0.86\n",
"Frame Index: 475, Average Score: 0.85\n",
"Frame Index: 476, Average Score: 0.87\n",
"Frame Index: 477, Average Score: 0.87\n",
"Frame Index: 478, Average Score: 0.85\n",
"Frame Index: 479, Average Score: 0.87\n",
"Frame Index: 480, Average Score: 0.86\n",
"Frame Index: 481, Average Score: 0.88\n",
"Frame Index: 482, Average Score: 0.87\n",
"Frame Index: 483, Average Score: 0.88\n",
"Frame Index: 484, Average Score: 0.88\n",
"Frame Index: 485, Average Score: 0.88\n",
"Frame Index: 486, Average Score: 0.90\n",
"Frame Index: 487, Average Score: 0.90\n",
"Frame Index: 488, Average Score: 0.90\n",
"Frame Index: 489, Average Score: 0.90\n",
"Frame Index: 490, Average Score: 0.90\n",
"Frame Index: 491, Average Score: 0.89\n",
"Frame Index: 492, Average Score: 0.93\n",
"Frame Index: 493, Average Score: 0.90\n",
"Frame Index: 494, Average Score: 0.86\n",
"Frame Index: 495, Average Score: 0.89\n",
"Frame Index: 496, Average Score: 0.91\n",
"Frame Index: 497, Average Score: 0.94\n",
"Frame Index: 498, Average Score: 0.94\n",
"Frame Index: 499, Average Score: 0.91\n",
"Frame Index: 500, Average Score: 0.91\n",
"Frame Index: 501, Average Score: 0.92\n",
"Frame Index: 502, Average Score: 0.90\n",
"Frame Index: 503, Average Score: 0.92\n",
"Frame Index: 504, Average Score: 0.91\n",
"Frame Index: 505, Average Score: 0.93\n",
"Frame Index: 506, Average Score: 0.95\n",
"Frame Index: 507, Average Score: 0.93\n",
"Frame Index: 508, Average Score: 0.90\n",
"Frame Index: 509, Average Score: 0.88\n",
"Frame Index: 510, Average Score: 0.91\n",
"Frame Index: 511, Average Score: 0.90\n",
"Frame Index: 512, Average Score: 0.88\n",
"Frame Index: 513, Average Score: 0.87\n",
"Frame Index: 514, Average Score: 0.87\n",
"Frame Index: 515, Average Score: 0.87\n",
"Frame Index: 516, Average Score: 0.87\n",
"Frame Index: 517, Average Score: 0.86\n",
"Frame Index: 518, Average Score: 0.85\n",
"Frame Index: 519, Average Score: 0.86\n",
"Frame Index: 520, Average Score: 0.95\n",
"Frame Index: 521, Average Score: 0.90\n",
"Frame Index: 522, Average Score: 0.88\n",
"Frame Index: 523, Average Score: 0.89\n",
"Frame Index: 524, Average Score: 0.93\n",
"Frame Index: 525, Average Score: 0.95\n",
"Frame Index: 526, Average Score: 0.97\n",
"Frame Index: 527, Average Score: 0.95\n",
"Frame Index: 528, Average Score: 0.95\n",
"Frame Index: 529, Average Score: 0.93\n",
"Frame Index: 530, Average Score: 0.92\n",
"Frame Index: 531, Average Score: 0.95\n",
"Frame Index: 532, Average Score: 0.94\n",
"Frame Index: 533, Average Score: 0.92\n",
"Frame Index: 534, Average Score: 0.90\n",
"Frame Index: 535, Average Score: 0.91\n",
"Frame Index: 536, Average Score: 0.89\n",
"Frame Index: 537, Average Score: 0.89\n",
"Frame Index: 538, Average Score: 0.86\n",
"Frame Index: 539, Average Score: 0.83\n",
"Frame Index: 540, Average Score: 0.83\n",
"Frame Index: 541, Average Score: 0.84\n",
"Frame Index: 542, Average Score: 0.80\n",
"Frame Index: 543, Average Score: 0.79\n",
"Frame Index: 544, Average Score: 0.78\n",
"Frame Index: 545, Average Score: 0.75\n",
"Frame Index: 546, Average Score: 0.72\n",
"Frame Index: 547, Average Score: 0.73\n",
"Frame Index: 548, Average Score: 0.73\n",
"Frame Index: 549, Average Score: 0.73\n",
"Frame Index: 550, Average Score: 0.73\n",
"Frame Index: 551, Average Score: 0.71\n",
"Frame Index: 552, Average Score: 0.74\n",
"Frame Index: 553, Average Score: 0.72\n",
"Frame Index: 554, Average Score: 0.71\n",
"Frame Index: 555, Average Score: 0.74\n",
"Frame Index: 556, Average Score: 0.75\n",
"Frame Index: 557, Average Score: 0.74\n",
"Frame Index: 558, Average Score: 0.73\n",
"Frame Index: 559, Average Score: 0.78\n",
"Frame Index: 560, Average Score: 0.80\n",
"Frame Index: 561, Average Score: 0.89\n",
"Frame Index: 562, Average Score: 0.91\n",
"Frame Index: 563, Average Score: 0.91\n",
"Frame Index: 564, Average Score: 0.91\n",
"Frame Index: 565, Average Score: 0.93\n",
"Frame Index: 566, Average Score: 0.92\n",
"Frame Index: 567, Average Score: 0.93\n",
"Frame Index: 568, Average Score: 0.89\n",
"Frame Index: 569, Average Score: 0.90\n",
"Frame Index: 570, Average Score: 0.90\n",
"Frame Index: 571, Average Score: 0.91\n",
"Frame Index: 572, Average Score: 0.91\n",
"Frame Index: 573, Average Score: 0.89\n",
"Frame Index: 574, Average Score: 0.90\n",
"Frame Index: 575, Average Score: 0.91\n",
"Frame Index: 576, Average Score: 0.91\n",
"Frame Index: 577, Average Score: 0.89\n",
"Frame Index: 578, Average Score: 0.83\n",
"Frame Index: 579, Average Score: 0.86\n",
"Frame Index: 580, Average Score: 0.88\n",
"Frame Index: 581, Average Score: 0.86\n",
"Frame Index: 582, Average Score: 0.84\n",
"Frame Index: 583, Average Score: 0.83\n",
"Frame Index: 584, Average Score: 0.85\n",
"Frame Index: 585, Average Score: 0.86\n",
"Frame Index: 586, Average Score: 0.87\n",
"Frame Index: 587, Average Score: 0.83\n",
"Frame Index: 588, Average Score: 0.77\n",
"Frame Index: 589, Average Score: 0.74\n",
"Frame Index: 590, Average Score: 0.73\n",
"Frame Index: 591, Average Score: 0.74\n",
"Frame Index: 592, Average Score: 0.75\n",
"Frame Index: 593, Average Score: 0.78\n",
"Frame Index: 594, Average Score: 0.78\n",
"Frame Index: 595, Average Score: 0.78\n",
"Frame Index: 596, Average Score: 0.81\n",
"Frame Index: 597, Average Score: 0.81\n",
"Frame Index: 598, Average Score: 0.81\n",
"Frame Index: 599, Average Score: 0.81\n",
"Frame Index: 600, Average Score: 0.80\n",
"Frame Index: 601, Average Score: 0.87\n",
"Frame Index: 602, Average Score: 0.88\n",
"Frame Index: 603, Average Score: 0.87\n",
"Frame Index: 604, Average Score: 0.85\n",
"Frame Index: 605, Average Score: 0.84\n",
"Frame Index: 606, Average Score: 0.83\n",
"Frame Index: 607, Average Score: 0.83\n",
"Frame Index: 608, Average Score: 0.82\n",
"Frame Index: 609, Average Score: 0.83\n",
"Frame Index: 610, Average Score: 0.81\n",
"Frame Index: 611, Average Score: 0.80\n",
"Frame Index: 612, Average Score: 0.84\n",
"Frame Index: 613, Average Score: 0.84\n",
"Frame Index: 614, Average Score: 0.83\n",
"Frame Index: 615, Average Score: 0.80\n",
"Frame Index: 616, Average Score: 0.81\n",
"Frame Index: 617, Average Score: 0.84\n",
"Frame Index: 618, Average Score: 0.88\n",
"Frame Index: 619, Average Score: 0.87\n",
"Frame Index: 620, Average Score: 0.88\n",
"Frame Index: 621, Average Score: 0.88\n",
"Frame Index: 622, Average Score: 0.87\n",
"Frame Index: 623, Average Score: 0.88\n",
"Frame Index: 624, Average Score: 0.86\n",
"Frame Index: 625, Average Score: 0.86\n",
"Frame Index: 626, Average Score: 0.85\n",
"Frame Index: 627, Average Score: 0.87\n",
"Frame Index: 628, Average Score: 0.88\n",
"Frame Index: 629, Average Score: 0.87\n",
"Frame Index: 630, Average Score: 0.87\n",
"Frame Index: 631, Average Score: 0.88\n",
"Frame Index: 632, Average Score: 0.86\n",
"Frame Index: 633, Average Score: 0.88\n",
"Frame Index: 634, Average Score: 0.87\n",
"Frame Index: 635, Average Score: 0.85\n",
"Frame Index: 636, Average Score: 0.86\n",
"Frame Index: 637, Average Score: 0.84\n",
"Frame Index: 638, Average Score: 0.85\n",
"Frame Index: 639, Average Score: 0.89\n",
"Frame Index: 640, Average Score: 0.87\n",
"Frame Index: 641, Average Score: 0.88\n",
"Frame Index: 642, Average Score: 0.94\n",
"Frame Index: 643, Average Score: 0.94\n",
"Frame Index: 644, Average Score: 0.94\n",
"Frame Index: 645, Average Score: 0.91\n",
"Frame Index: 646, Average Score: 0.92\n",
"Frame Index: 647, Average Score: 0.93\n",
"Frame Index: 648, Average Score: 0.93\n",
"Frame Index: 649, Average Score: 0.92\n",
"Frame Index: 650, Average Score: 0.94\n",
"Frame Index: 651, Average Score: 0.97\n",
"Frame Index: 652, Average Score: 0.97\n",
"Frame Index: 653, Average Score: 0.96\n",
"Frame Index: 654, Average Score: 0.99\n",
"Frame Index: 655, Average Score: 0.97\n",
"Frame Index: 656, Average Score: 0.97\n",
"Frame Index: 657, Average Score: 0.97\n",
"Frame Index: 658, Average Score: 0.96\n",
"Frame Index: 659, Average Score: 0.94\n",
"Frame Index: 660, Average Score: 0.94\n",
"Frame Index: 661, Average Score: 0.95\n",
"Frame Index: 662, Average Score: 0.95\n",
"Frame Index: 663, Average Score: 0.96\n",
"Frame Index: 664, Average Score: 0.95\n",
"Frame Index: 665, Average Score: 0.94\n",
"Frame Index: 666, Average Score: 0.94\n",
"Frame Index: 667, Average Score: 0.89\n",
"Frame Index: 668, Average Score: 0.92\n",
"Frame Index: 669, Average Score: 0.96\n",
"Frame Index: 670, Average Score: 0.99\n",
"Frame Index: 671, Average Score: 0.99\n",
"Frame Index: 672, Average Score: 0.97\n",
"Frame Index: 673, Average Score: 0.95\n",
"Frame Index: 674, Average Score: 0.93\n",
"Frame Index: 675, Average Score: 0.94\n",
"Frame Index: 676, Average Score: 0.93\n",
"Frame Index: 677, Average Score: 0.88\n",
"Frame Index: 678, Average Score: 0.83\n",
"Frame Index: 679, Average Score: 0.81\n",
"Frame Index: 680, Average Score: 0.80\n",
"Frame Index: 681, Average Score: 0.81\n",
"Frame Index: 682, Average Score: 0.84\n",
"Frame Index: 683, Average Score: 0.86\n",
"Frame Index: 684, Average Score: 0.88\n",
"Frame Index: 685, Average Score: 0.96\n",
"Frame Index: 686, Average Score: 0.97\n",
"Frame Index: 687, Average Score: 0.93\n",
"Frame Index: 688, Average Score: 0.94\n",
"Frame Index: 689, Average Score: 0.94\n",
"Frame Index: 690, Average Score: 0.95\n",
"Frame Index: 691, Average Score: 0.95\n",
"Frame Index: 692, Average Score: 0.95\n",
"Frame Index: 693, Average Score: 0.94\n",
"Frame Index: 694, Average Score: 0.91\n",
"Frame Index: 695, Average Score: 0.93\n",
"Frame Index: 696, Average Score: 0.91\n",
"Frame Index: 697, Average Score: 0.90\n",
"Frame Index: 698, Average Score: 0.84\n",
"Frame Index: 699, Average Score: 0.81\n"
]
}
],
"source": [
"INDEX=5604\n",
"# display(KEYPOINT_DATASET[INDEX])\n",
"data = KEYPOINT_DATASET[INDEX]\n",
"for frame_data in data:\n",
" avg_score = np.mean(ak.to_numpy(frame_data[\"kps_scores\"][:17]))\n",
" print(\n",
" f\"Frame Index: {frame_data['frame_index']}, Average Score: {avg_score:.2f}\"\n",
" )\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "cvth3pe",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.9"
}
},
"nbformat": 4,
"nbformat_minor": 5
}