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( def get_segment(
camera_port: list[int], frame_index: list[int], keypoint_data: dict[int, ak.Array] camera_port: list[int], frame_index: list[int], keypoint_data: dict[int, ak.Array]
) -> 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: for port in camera_port:
segement_data = [] 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"])): for index, element_frame in enumerate(ak.to_numpy(camera_data["frame_index"])):
if element_frame in frame_index: if element_frame in frame_index:
segement_data.append(camera_data[index]) segement_data.append(camera_data[index])
@ -431,43 +425,32 @@ def triangulate_one_point_from_multiple_views_linear_time_weighted(
else: else:
confi = jnp.sqrt(jnp.clip(confidences, 0, 1)) 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): for i in range(N):
x, y = points[i] x, y = points[i]
A = A.at[2 * i].set(proj_matrices[i, 2] * x - proj_matrices[i, 0]) row1 = 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]) 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) _, _, vh = jnp.linalg.svd(A, full_matrices=False)
point_3d_homo = vh[-1] # shape (4,) point_3d_homo = vh[-1]
point_3d_homo = jnp.where(point_3d_homo[3] < 0, -point_3d_homo, point_3d_homo)
# Ensure homogeneous coordinate is positive is_zero_weight = jnp.sum(weights) == 0
point_3d_homo = jnp.where( point_3d = jnp.where(
point_3d_homo[3] < 0, is_zero_weight,
-point_3d_homo, jnp.full((3,), jnp.nan, dtype=jnp.float32),
point_3d_homo, 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 return point_3d
@ -489,36 +472,37 @@ def triangulate_one_point_from_multiple_views_linear(
""" """
assert len(proj_matrices) == len(points) assert len(proj_matrices) == len(points)
N = len(proj_matrices) N = len(proj_matrices)
# 置信度加权DLT
# 置信度加权DLT
if confidences is None: if confidences is None:
weights = jnp.ones(N, dtype=jnp.float32) weights = jnp.ones(N, dtype=jnp.float32)
else: else:
# 置信度低于阈值的点权重为0其余为sqrt(conf)
valid_mask = confidences >= conf_threshold 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) sum_weights = jnp.sum(weights)
weights = jnp.where(sum_weights > 0, weights / sum_weights, weights) weights = jnp.where(sum_weights > 0, weights / sum_weights, weights)
A = jnp.zeros((N * 2, 4), dtype=jnp.float32) A = jnp.zeros((N * 2, 4), dtype=jnp.float32)
for i in range(N): for i in range(N):
x, y = points[i] x, y = points[i]
A = A.at[2 * i].set(proj_matrices[i, 2] * x - proj_matrices[i, 0]) row1 = 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]) row2 = proj_matrices[i, 2] * y - proj_matrices[i, 1]
A = A.at[2 * i].mul(weights[i]) A = A.at[2 * i].set(row1 * weights[i])
A = A.at[2 * i + 1].mul(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) _, _, vh = jnp.linalg.svd(A, full_matrices=False)
point_3d_homo = vh[-1] # shape (4,) point_3d_homo = vh[-1]
point_3d_homo = jnp.where(point_3d_homo[3] < 0, -point_3d_homo, point_3d_homo)
# replace the Python `if` with a jnp.where is_zero_weight = jnp.sum(weights) == 0
point_3d_homo = jnp.where( point_3d = jnp.where(
point_3d_homo[3] < 0, # predicate (scalar bool tracer) is_zero_weight,
-point_3d_homo, # if True jnp.full((3,), jnp.nan, dtype=jnp.float32),
point_3d_homo, # if False 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 return point_3d
@ -542,16 +526,16 @@ def triangulate_points_from_multiple_views_linear(
N, P, _ = points.shape N, P, _ = points.shape
assert proj_matrices.shape[0] == N assert proj_matrices.shape[0] == N
if confidences is None:
conf = jnp.ones((N, P), dtype=jnp.float32)
else:
conf = jnp.array(confidences) conf = jnp.array(confidences)
# vectorize your onepoint routine over P
vmap_triangulate = jax.vmap( vmap_triangulate = jax.vmap(
triangulate_one_point_from_multiple_views_linear, 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, out_axes=0,
) )
# returns (P, 3)
return vmap_triangulate(proj_matrices, points, conf) return vmap_triangulate(proj_matrices, points, conf)
@ -924,17 +908,20 @@ def smooth_3d_keypoints(
# 通过平均置信度筛选2d检测数据 # 通过平均置信度筛选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. Filter detections based on the average confidence score of their keypoints.
Only keep detections with an average score above the threshold. Only keep detections with an average score above the threshold.
""" """
def filter_detection(detection: Detection) -> bool: def filter_detection(detection: Detection) -> bool:
avg_score = np.mean(detection.confidences) median_score = np.mean(detection.confidences[:17])
return float(avg_score) >= threshold # 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]): 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) 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) 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, KEYPOINT_DATASET,
AK_CAMERA_DATASET, AK_CAMERA_DATASET,
camera_port, camera_port,
batch_fps=20, batch_fps=24,
) )
# 建立追踪目标 # 建立追踪目标
@ -985,68 +972,68 @@ trackings: list[Tracking] = []
# 3d数据键为追踪目标id值为该目标的所有3d数据 # 3d数据键为追踪目标id值为该目标的所有3d数据
all_3d_kps: dict[str, list] = {} all_3d_kps: dict[str, list] = {}
# 遍历2d数据测试追踪状态 tracking_initialized = False
while True: lost_frame_count = 0
# 获得当前追踪目标 lost_frame_threshold = 12 # 0.5秒假设20fps
trackings: list[Tracking] = sorted(
global_tracking_state.trackings.values(), key=lambda x: x.id
)
while True:
# 重新梳理跟踪逻辑,保证唯一目标、唯一初始化、鲁棒丢失判定
try: try:
detections = next(sync_gen) detections = next(sync_gen)
# 通过平均置信度筛选2d检测数据 detections = filter_keypoints_by_scores(detections, threshold=0.5)
# detections = list(filter_keypoints_by_scores(detections, threshold=0.5))
except StopIteration: except StopIteration:
break break
if len(detections) == 0: # 1. 检查当前是否有已初始化的跟踪目标
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):
print(
"init traincking error, filter filter_detections len:",
len(filter_detections),
)
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( trackings: list[Tracking] = sorted(
global_tracking_state.trackings.values(), key=lambda x: x.id global_tracking_state.trackings.values(), key=lambda x: x.id
) )
if not tracking_initialized:
# 只初始化一次
camera_port_this = filter_camera_port(detections)
if len(camera_port_this) < len(camera_port) - 1:
print(
"init tracking error, filter_detections len:",
len(camera_port_this),
)
continue
global_tracking_state.add_tracking(detections)
tracking_initialized = True
lost_frame_count = 0
# 保留第一帧的3d姿态数据 # 保留第一帧的3d姿态数据
for element_tracking in trackings: for element_tracking in global_tracking_state.trackings.values():
if str(element_tracking.id) not in all_3d_kps.keys(): if str(element_tracking.id) not in all_3d_kps.keys():
all_3d_kps[str(element_tracking.id)] = [ all_3d_kps[str(element_tracking.id)] = [
element_tracking.state.keypoints.tolist() element_tracking.state.keypoints.tolist()
] ]
print("initer tracking:", trackings) print("init tracking:", global_tracking_state.trackings.values())
else: 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(
f"tracking lost after {lost_frame_count} frames, reset tracking state"
)
lost_frame_count = 0
continue
# 有检测,正常跟踪
lost_frame_count = 0
affinities: dict[str, AffinityResult] = calculate_affinity_matrix( affinities: dict[str, AffinityResult] = calculate_affinity_matrix(
trackings, trackings,
detections, detections,
@ -1056,39 +1043,25 @@ while True:
alpha_3d=ALPHA_3D, alpha_3d=ALPHA_3D,
lambda_a=LAMBDA_A, lambda_a=LAMBDA_A,
) )
# 遍历追踪目标获得该目标的匹配2d数据
for element_tracking in trackings: for element_tracking in trackings:
tracking_detection = [] tracking_detection = []
# 匹配检测目标的索引值
detection_index = None
temp_matrix = [] temp_matrix = []
# 遍历相机的追踪相似度匹配结果
for camera_name in affinities.keys(): for camera_name in affinities.keys():
# 获得与每个跟踪目标匹配的相似度矩阵
camera_matrix = jnp.array(affinities[camera_name].matrix).flatten() camera_matrix = jnp.array(affinities[camera_name].matrix).flatten()
detection_index = jnp.argmax(camera_matrix).item() detection_index = jnp.argmax(camera_matrix).item()
if isnan(camera_matrix[detection_index].item()): if isnan(camera_matrix[detection_index].item()):
breakpoint() breakpoint()
temp_matrix.append( temp_matrix.append(
f"{camera_name} : {camera_matrix[detection_index].item()}" f"{camera_name} : {camera_matrix[detection_index].item()}"
) )
# 选取相似度大于阈值的检测目标更新跟踪状态
# 判断相似度矩阵极大值是否大于阈值 # if camera_matrix[detection_index].item() > affinities_threshold:
# 目前只有一个跟踪目标,还未实现多跟踪目标的匹配-------------------------
if camera_matrix[detection_index].item() > affinities_threshold:
# 保留对应的2d检测数据
tracking_detection.append( tracking_detection.append(
affinities[camera_name].detections[detection_index] affinities[camera_name].detections[detection_index]
) )
print("affinities matrix:", temp_matrix) print("affinities matrix:", temp_matrix)
# 当2个及以上数量的机位同时检测到追踪目标时更新追踪状态 if len(tracking_detection) > 2:
if len(tracking_detection) >= 2:
update_tracking(element_tracking, tracking_detection) update_tracking(element_tracking, tracking_detection)
# 保留对应的3d姿态数据
all_3d_kps[str(element_tracking.id)].append( all_3d_kps[str(element_tracking.id)].append(
element_tracking.state.keypoints.tolist() element_tracking.state.keypoints.tolist()
) )
@ -1096,23 +1069,7 @@ while True:
"update tracking:", "update tracking:",
global_tracking_state.trackings.values(), global_tracking_state.trackings.values(),
) )
else: # 不再在else分支里删除tracking只用lost_frame_count判定
# 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,
)
# 对每一个3d目标进行滑动窗口平滑处理 # 对每一个3d目标进行滑动窗口平滑处理
smoothed_points = smooth_3d_keypoints(all_3d_kps, window_size=5) 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
}