32 lines
1.2 KiB
Python
32 lines
1.2 KiB
Python
from utils.pose import PoseUtil
|
|
import PytorchBoot.stereotype as stereotype
|
|
import PytorchBoot.namespace as namespace
|
|
|
|
@stereotype.evaluation_method("delta_pose_diff")
|
|
class DeltaPoseDiff:
|
|
def __init__(self, _):
|
|
pass
|
|
def evaluate(self, output_list, data_list):
|
|
results = {namespace.TensorBoard.SCALAR: {}}
|
|
rot_angle_list = []
|
|
for output, data in zip(output_list, data_list):
|
|
gt_delta_rot_6d = data['delta_rot_6d']
|
|
est_delta_rot_6d = output['estimated_delta_rot_6d']
|
|
gt_delta_rot_mat = PoseUtil.rotation_6d_to_matrix_tensor_batch(gt_delta_rot_6d)
|
|
est_delta_rot_mat = PoseUtil.rotation_6d_to_matrix_tensor_batch(est_delta_rot_6d)
|
|
rotation_angles = PoseUtil.rotation_angle_distance(gt_delta_rot_mat, est_delta_rot_mat)
|
|
rot_angle_list.extend(list(rotation_angles))
|
|
|
|
results[namespace.TensorBoard.SCALAR]["delta_rotation"] = float(sum(rot_angle_list) / len(rot_angle_list))
|
|
return results
|
|
|
|
|
|
|
|
@stereotype.evaluation_method("coverage_rate_increase",comment="unfinished")
|
|
class ConverageRateIncrease:
|
|
def __init__(self, config):
|
|
pass
|
|
|
|
def evaluate(self, output_list, data_list):
|
|
return
|
|
|