

def pose_tracking(pose_results, max_tracks=2, thre=30):
tracks, num_tracks = [], 0
num_joints = None
for idx, poses in enumerate(pose_results):
if len(poses) == 0:
continue
if num_joints is None:
num_joints = poses[0].shape[0]
track_proposals = [t for t in tracks if t['data'][-1][0] > idx - thre]
n, m = len(track_proposals), len(poses)
scores = np.zeros((n, m))
track_proposals = [t for t in tracks if t['data'][-1][0] > idx - thre]
其实可以试试print(track_proposals)
for和in中间的t有点像函数自变量的意思,if后面有点像自变量的取值范围的意思
而for前面的t有点像函数的因变量的意思
在这个上下文中,"tracks"是一个空列表,用于存储追踪的结果。
"num_tracks"是一个变量,初始值为0,用于记录当前追踪的数量。
这行代码的作用是初始化追踪列表和追踪数量,将追踪列表设置为空列表,追踪数量设置为0。这样,开始时没有进行任何追踪,追踪列表为空。
n, m = len(track_proposals), len(poses)
这行代码是在Python中使用多重赋值(Multiple Assignment)的语法。它将两个变量同时赋值为表达式的结果。
具体地说,这行代码将len(track_proposals)的结果赋值给变量n,将len(poses)的结果赋值给变量m。
这里使用的len()函数是用于获取可迭代对象的长度(元素个数)的内置函数。len(track_proposals)返回track_proposals列表的长度,len(poses)返回poses列表的长度。
通过这行代码,可以方便地将track_proposals列表的长度赋值给变量n,将poses列表的长度赋值给变量m,以便后续使用这两个变量进行其他操作或计算。
scores = np.zeros((n, m))
这行代码使用了NumPy库来创建一个大小为(n, m)的全零数组(array)。
具体地说,np.zeros((n, m))使用NumPy的zeros()函数来创建一个由零填充的数组。该函数的参数是一个表示数组形状的元组(n, m),其中n和m是之前代码中定义的变量。
这行代码的作用是创建一个大小为(n, m)的二维数组,并将其赋值给变量scores。这个数组的所有元素都将被初始化为零。
通过这个操作,你可以在后续的代码中使用scores数组来存储和操作与n和m相关的数据。这个数组可以用于存储分数、得分矩阵或其他需要二维数组结构的数据。
参考:
本文介绍了如何在Python中实现pose_tracking函数,涉及列表初始化、长度计算以及使用NumPy创建全零数组scores,以处理追踪点和相关得分。

1万+

被折叠的 条评论
为什么被折叠?



