File size: 1,609 Bytes
ab45969
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import json
import numpy as np

def denormalize_func(normalized_tensor, min_val=0, max_val=200):
    tensor = (normalized_tensor + 1) / 2
    tensor = tensor * (max_val - min_val) + min_val
    # tensor = t.round(tensor).long()
    return tensor


# 读取JSON文件
with open('action_val.json', 'r') as file:
    data = json.load(file)

# 初始化误差列表
steering_errors = []
speed_errors = []

# 遍历每个场景,计算L1误差
for scene_data in data:
    action_pred = scene_data["action_pred"]
    action_gt = scene_data["action_gt"]
    
    # 确保 action_pred 和 action_gt 的长度一致
    min_length = min(len(action_pred), len(action_gt))
    
    # 计算每个时间步的转向角和速度误差
    for i in range(min_length):
        pred_steering, pred_speed = action_pred[i]
        gt_steering, gt_speed = action_gt[i]
        
        # pred_steering = denormalize_func(pred_steering, -500, 500)
        # gt_steering = denormalize_func(gt_steering, -500, 500)
        # pred_speed = denormalize_func(pred_speed, 0, 70)
        # gt_speed = denormalize_func(gt_speed, 0, 70)
        
        # 计算转向角和速度的绝对误差
        steering_error = abs(pred_steering - gt_steering)
        speed_error = abs(pred_speed - gt_speed)
        
        steering_errors.append(steering_error)
        speed_errors.append(speed_error)

# 计算转向角和速度的平均L1误差
mean_steering_error = np.mean(steering_errors)
mean_speed_error = np.mean(speed_errors)

print("平均转向角L1误差:", mean_steering_error)
print("平均速度L1误差:", mean_speed_error)