def feed(self, keypoint_gt, keypoint_vis, keypoint_pred):
    ' Used to feed data to the class. Stores the euclidean distance between gt and pred, when it is visible. '
    keypoint_gt = np.squeeze(keypoint_gt)
    keypoint_pred = np.squeeze(keypoint_pred)
    keypoint_vis = np.squeeze(keypoint_vis).astype('bool')
    assert (len(keypoint_gt.shape) == 2)
    assert (len(keypoint_pred.shape) == 2)
    assert (len(keypoint_vis.shape) == 1)
    diff = (keypoint_gt - keypoint_pred)
    euclidean_dist = np.sqrt(np.sum(np.square(diff), axis=1))
    num_kp = keypoint_gt.shape[0]
    for i in range(num_kp):
        if keypoint_vis[i]:
            self.data[i].append(euclidean_dist[i])
Used to feed data to the class. Stores the euclidean distance between gt and pred, when it is visible.
def feed(self, keypoint_gt, keypoint_vis, keypoint_pred):
    '  '
    keypoint_gt = np.squeeze(keypoint_gt)
    keypoint_pred = np.squeeze(keypoint_pred)
    keypoint_vis = np.squeeze(keypoint_vis).astype('bool')
    assert (len(keypoint_gt.shape) == 2)
    assert (len(keypoint_pred.shape) == 2)
    assert (len(keypoint_vis.shape) == 1)
    diff = (keypoint_gt - keypoint_pred)
    euclidean_dist = np.sqrt(np.sum(np.square(diff), axis=1))
    num_kp = keypoint_gt.shape[0]
    for i in range(num_kp):
        if keypoint_vis[i]:
            self.data[i].append(euclidean_dist[i])