CenterFusion dataset nuScence_COCO format

CenterFusion data format overview

This article mainly explains the data set format used by centerfusion. This format is a variant of the coco format. For the standard COCO format, see another blog post about the standard coco format. Compared with the standard coco format, "info" and "licenses" are missing and added. With "videos" and "attributes", the basic information of the key is as follows:

{
    
    
    "images": [image]              #描述图片信息,毫米波雷达信息,列表形式,内部由字典组成,字典数量为图片数量
    "annotations": [annotation]    #描述bounding box信息列表形式,内部由字典组成,字典数量为bounding box数量
    "categories": [category]       #描述图片类别信息,列表形式 ,内部由字典组成,字典数量为类别个数
    "videos": [video]              #描述场景类别属性,场景名称及对应ID(nuScence_COCO special)
    "attributes": {
    
    attributes}     #描述类别信息及对应ID(nuScence_COCO special)
    "pointclouds": [pointcloud]    #描述激光雷达点云信息(CenterFusion empty)(nuScence_COCO special)
}

Detailed explanation of CenterFusion data format

train.json stores the annotation data of all training sets, and the file has only one line. The data format of the training set and the test set are the same. The following is a detailed explanation of the value corresponding to each key based on the training set data:

1. “images”: [image]

#描述图片信息,毫米波雷达信息,列表形式,内部由字典组成,字典数量为图片数量

The following is the definition of images in convert_nuScences.py:

 #image_info是COCO所需的关键信息,包括了图片的路径、大小,同时还引入了雷达点云、相机内外参矩阵等信息。
              image_info = {
    
    'id': num_images,
                          'file_name': image_data['filename'],
                          'calib': calib.tolist(), 
                          'video_id': num_videos,
                          'frame_id': frame_ids[sensor_name], 
                          'sensor_id': SENSOR_ID[sensor_name],
                          'sample_token': sample['token'],  
                          'trans_matrix': trans_matrix.tolist(),
                          'velocity_trans_matrix': velocity_trans_matrix.tolist(),
                          'width': sd_record['width'],   
                          'height': sd_record['height'], 
                          'pose_record_trans': pose_record['translation'],  #目标位姿中的平移 
                          'pose_record_rot': pose_record['rotation'],       #目标位姿中的旋转
                          'cs_record_trans': cs_record['translation'],   #坐标系平移
                          'cs_record_rot': cs_record['rotation'],   #坐标系旋转
                          'radar_pc': all_radar_pcs.points.tolist(), 
                          'camera_intrinsic': camera_intrinsic.tolist()}

1.1. “calib” key position

Point I 1 = ( x 1 , y 1 ) I_{1}=\left(x_{1}, y_{1}\right) on the physical coordinate systemI1=(x1,y1) and the point ( u 1 , v 1 )in its pixel coordinate system(u1,v1)对应关系为:
[ u 1 v 1 1 ] = [ 1 d x 0 u 0 0 1 d y v 0 0 0 1 ] [ x 1 y 1 1 ] = K [ x 1 y 1 1 ] \left[\begin{array}{c} u_{1} \\ v_{1} \\ 1 \end{array}\right]=\left[\begin{array}{ccc} \frac{1}{d x} & 0 & u_{0} \\ 0 & \frac{1}{d y} & v_{0} \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{c} x_{1} \\ y_{1} \\ 1 \end{array}\right]=K\left[\begin{array}{c} x_{1} \\ y_{1} \\ 1 \end{array}\right] u1v11 = dx1000dy10u0v01 x1y11 =K x1y11
Among them, ( u 0 , v 0 ) \left(u_{0}, v_{0}\right)(u0,v0) is the center point in the image pixel coordinate system, that is, the pixel point corresponding to the origin of the image physical coordinate system
K = [ 1 dx 0 u 0 0 1 dyv 0 0 0 1 ] K=\left[\begin{array} {ccc} \frac{1}{dx} & 0 & u_{0} \\ 0 & \frac{1}{dy} & v_{0} \\ 0 & 0 & 1 \end{array}\right]K= dx1000dy10u0v01 is the internal parameter matrix of the camera, containing parameters related to the internal structure of the camera.
Among the 3x4 matrices of the "calib" key, the first 3x3 matrix is ​​the internal parameter matrix, and the following 3x1 matrix is ​​the external parameter matrix. convert_nuScenes.py
records the generation of the "calib" key, that is, the camera's internal and external parameter matrix.

#获得相机的内外参数
    _, boxes, camera_intrinsic = nusc.get_sample_data(
      image_token, box_vis_level=BoxVisibility.ANY)
    calib = np.eye(4, dtype=np.float32)
    calib[:3, :3] = camera_intrinsic  
    calib = calib[:3]
    frame_ids[sensor_name] += 1

1.2. “trans_matrix” key position

Dot product from world coordinate system to vehicle coordinate system and from vehicle coordinate system to camera coordinate system

#世界坐标系到车辆坐标系,车辆坐标系再到相机坐标系,最后求得世界坐标系到相机坐标系的转换矩阵
    global_from_car = transform_matrix(pose_record['translation'],
      Quaternion(pose_record['rotation']), inverse=False)
    car_from_sensor = transform_matrix(  #位姿变换矩阵
      cs_record['translation'], Quaternion(cs_record['rotation']),
      inverse=False)
    trans_matrix = np.dot(global_from_car, car_from_sensor)     

1.3. “velocity_matrix” key

The dot product of the world coordinate system speed to the vehicle coordinate system speed and the vehicle coordinate system speed to the camera coordinate system speed

#世界坐标系速度到车辆坐标系速度u,车辆坐标系速度再到相机坐标系速度,最后求得世界坐标系到相机坐标系的速度转换矩阵
    vel_global_from_car = transform_matrix(np.array([0,0,0]),
      Quaternion(pose_record['rotation']), inverse=False)
    vel_car_from_sensor = transform_matrix(np.array([0,0,0]),  
      Quaternion(cs_record['rotation']), inverse=False)
    velocity_trans_matrix = np.dot(vel_global_from_car, vel_car_from_sensor)

1.4. "radar_pc" key position

The radar point cloud information of this scene and the previous 3sweeps is recorded. Check the class RadarPointCloud in data_class.py to get "radar_pc". Each line is:
xyz dyn_prop id rcs vx vy vx_comp vy_comp is_quality_valid ambig_state x_rms y_rms invalid_state pdh0 vx_rms vy_rms

class RadarPointCloud(PointCloud):

    # Class-level settings for radar pointclouds, see from_file().
    invalid_states = [0]  # type: List[int]
    dynprop_states = range(7)  # type: List[int] # Use [0, 2, 6] for moving objects only.
    ambig_states = [3]  # type: List[int]

    @classmethod
    def disable_filters(cls) -> None:
        """
        Disable all radar filter settings.
        Use this method to plot all radar returns.
        Note that this method affects the global settings.
        """
        cls.invalid_states = list(range(18))
        cls.dynprop_states = list(range(8))
        cls.ambig_states = list(range(5))

    @classmethod
    def default_filters(cls) -> None:
        """
        Set the defaults for all radar filter settings.
        Note that this method affects the global settings.
        """
        cls.invalid_states = [0]
        cls.dynprop_states = range(7)
        cls.ambig_states = [3]

    @staticmethod
    def nbr_dims() -> int:
        """
        Returns the number of dimensions.
        :return: Number of dimensions.
        """
        return 18

    @classmethod
    def from_file(cls,
                  file_name: str,
                  invalid_states: List[int] = None,
                  dynprop_states: List[int] = None,
                  ambig_states: List[int] = None) -> 'RadarPointCloud':
        """
        Loads RADAR data from a Point Cloud Data file. See details below.
        :param file_name: The path of the pointcloud file.
        :param invalid_states: Radar states to be kept. See details below.
        :param dynprop_states: Radar states to be kept. Use [0, 2, 6] for moving objects only. See details below.
        :param ambig_states: Radar states to be kept. See details below.
        To keep all radar returns, set each state filter to range(18).
        :return: <np.float: d, n>. Point cloud matrix with d dimensions and n points.
        Example of the header fields:
        # .PCD v0.7 - Point Cloud Data file format
        VERSION 0.7
        FIELDS x y z dyn_prop id rcs vx vy vx_comp vy_comp is_quality_valid ambig_state x_rms y_rms invalid_state pdh0 vx_rms vy_rms
        SIZE 4 4 4 1 2 4 4 4 4 4 1 1 1 1 1 1 1 1
        TYPE F F F I I F F F F F I I I I I I I I
        COUNT 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
        WIDTH 125
        HEIGHT 1  
        VIEWPOINT 0 0 0 1 0 0 0
        POINTS 125 
        DATA binary
        Below some of the fields are explained in more detail:
        x is front, y is left
        vx, vy are the velocities in m/s.
        vx_comp, vy_comp are the velocities in m/s compensated by the ego motion.
        We recommend using the compensated velocities.
        invalid_state: state of Cluster validity state.
        (Invalid states)
        0x01        invalid due to low RCS
        0x02        invalid due to near-field artefact
        0x03        invalid far range cluster because not confirmed in near range
        0x05        reserved
        0x06        invalid cluster due to high mirror probability
        0x07        Invalid cluster because outside sensor field of view
        0x0d        reserved  
        0x0e        invalid cluster because it is a harmonics 
        (Valid states)
        0x00        valid
        0x04        valid cluster with low RCS
        0x08        valid cluster with azimuth correction due to elevation
        0x09        valid cluster with high child probability 
        0x0a        valid cluster with high probability of being a 50 deg artefact
        0x0b        valid cluster but no local maximum
        0x0c        valid cluster with high artefact probability
        0x0f        valid cluster with above 95m in near range
        0x10        valid cluster with high multi-target probability
        0x11        valid cluster with suspicious angle  可疑角度的有效簇
        dynProp: Dynamic property of cluster to indicate if is moving or not. 集群的动态属性,以指示是否正在移动。
        0: moving
        1: stationary
        2: oncoming
        3: stationary candidate
        4: unknown
        5: crossing stationary
        6: crossing moving
        7: stopped
        ambig_state: State of Doppler (radial velocity) ambiguity solution.
        0: invalid
        1: ambiguous
        2: staggered ramp  交错坡道
        3: unambiguous  
        4: stationary candidates 静态目标
        pdh0: False alarm probability of cluster (i.e. probability of being an artefact caused by multipath or similar).
        0: invalid  
        1: <25%
        2: 50%
        3: 75%
        4: 90%
        5: 99%
        6: 99.9%
        7: <=100%  
        """  
        assert file_name.endswith('.pcd'), 'Unsupported filetype {}'.format(file_name)

        meta = []
        with open(file_name, 'rb') as f: 
            for line in f:
                line = line.strip().decode('utf-8')
                meta.append(line)
                if line.startswith('DATA'):
                    break

            data_binary = f.read()

        # Get the header rows and check if they appear as expected.
        assert meta[0].startswith('#'), 'First line must be comment'
        assert meta[1].startswith('VERSION'), 'Second line must be VERSION'
        sizes = meta[3].split(' ')[1:]
        types = meta[4].split(' ')[1:]
        counts = meta[5].split(' ')[1:]
        width = int(meta[6].split(' ')[1])
        height = int(meta[7].split(' ')[1])
        data = meta[10].split(' ')[1]
        feature_count = len(types)
        assert width > 0
        assert len([c for c in counts if c != c]) == 0, 'Error: COUNT not supported!'
        assert height == 1, 'Error: height != 0 not supported!'
        assert data == 'binary'

        # Lookup table for how to decode the binaries.
        unpacking_lut = {
    
    'F': {
    
    2: 'e', 4: 'f', 8: 'd'},
                         'I': {
    
    1: 'b', 2: 'h', 4: 'i', 8: 'q'},
                         'U': {
    
    1: 'B', 2: 'H', 4: 'I', 8: 'Q'}}
        types_str = ''.join([unpacking_lut[t][int(s)] for t, s in zip(types, sizes)])

        # Decode each point.
        offset = 0  
        point_count = width
        points = []
        for i in range(point_count):
            point = []
            for p in range(feature_count):
                start_p = offset
                end_p = start_p + int(sizes[p])
                assert end_p < len(data_binary)
                point_p = struct.unpack(types_str[p], data_binary[start_p:end_p])[0]
                point.append(point_p)
                offset = end_p
            points.append(point)

        # A NaN in the first point indicates an empty pointcloud.
        point = np.array(points[0])
        if np.any(np.isnan(point)):
            return cls(np.zeros((feature_count, 0)))

        # Convert to numpy matrix.
        points = np.array(points).transpose()

        # If no parameters are provided, use default settings.
        invalid_states = cls.invalid_states if invalid_states is None else invalid_states
        dynprop_states = cls.dynprop_states if dynprop_states is None else dynprop_states
        ambig_states = cls.ambig_states if ambig_states is None else ambig_states

        # Filter points with an invalid state.
        valid = [p in invalid_states for p in points[-4, :]]
        points = points[:, valid]

        # Filter by dynProp.
        valid = [p in dynprop_states for p in points[3, :]]
        points = points[:, valid]

        # Filter by ambig_state.
        valid = [p in ambig_states for p in points[11, :]]
        points = points[:, valid]

        return cls(points)

The radar point cloud obtains the synthetic point cloud of multiple scans under a single radar through the RadarPointCloud.from_file_multisweep() method defined in pointclouds.py. Finally, through accumulation, the obtained all_radar_pc is the original value of all radars covered by the key frames of a certain camera. The point cloud information is scanned multiple times compared to the previous one. Multiple scanning is to increase the density of the point cloud.

# pointcloud.py
all_radar_pcs = RadarPointCloud(np.zeros((18, 0)))
for radar_channel in RADARS_FOR_CAMERA[sensor_name]:#RADARS_FOR_CAMERA表示的是相机覆盖范围内的所有雷达索引
  radar_pcs, _ = RadarPointCloud.from_file_multisweep(nusc, sample, radar_channel, sensor_name, NUM_SWEEPS)
  all_radar_pcs.points = np.hstack((all_radar_pcs.points, radar_pcs.points))#累加每个雷达的点云信息
  
   
image_info = {
    
    
                          ....#其他属性
              'radar_pc': all_radar_pcs.points.tolist(), 
              ...
              }
ret['images'].append(image_info)

1.5. Detailed explanation of "images" JSON file

"images": [
{
    
    
"id": int,                             #图片ID
"file_name": "文件路径",                #图片文件相对路径,相对于当前文件的上一级目录
"calib": [3x4矩阵],                     #摄像头内外参标定矩阵
"video_id": int,                       #对应"video"key中的ID
"frame_id": int,                       #对应的视频帧数
"sensor_id": 1,                        #对应的摄像头ID,取值范围1-6,顺序为'CAM_FRONT', 'CAM_FRONT_RIGHT', 'CAM_BACK_RIGHT', 'CAM_BACK', 'CAM_BACK_LEFT', 'CAM_FRONT_LEFT'
"sample_token": "",                    #记录该场景的具体的一个sample的token值
"trans_matrix": [4x4矩阵],              #世界坐标系到相机坐标系的转换矩阵  刚体变换  
"velocity_trans_matrix": [4x4矩阵],     #世界坐标系到相机坐标系的速度转换矩阵
"width": int,                          #图片像素宽度          
"height": int,                         #图片像素高度
"pose_record_trans": [1x3矩阵],         #世界坐标系到车辆坐标系平移矩阵
"pose_record_rot": [1x4矩阵],           #世界坐标系到车辆坐标系旋转矩阵
"cs_record_trans": [1x3矩阵],           #车辆坐标系到摄像头坐标系平移矩阵
"cs_record_rot": [1x4矩阵],             #车辆坐标系到摄像头坐标系旋转矩阵
"radar_pc": [18x123矩阵],               #该场景及之前3sweep的雷达点云信息x y z dyn_prop id rcs vx vy vx_comp vy_comp is_quality_valid ambig_state x_rms y_rms invalid_state pdh0 vx_rms vy_rms
"camera_intrinsic": [3x3矩阵]           #相机内参矩阵  
},
{
    
    ...}, ... ,{
    
    ...}
]

2. “annotations”: [annotation]

#Describe the bounding box information list form, which is internally composed of dictionaries. The number of dictionaries is the number of bounding boxes.
The following is the definition of annotations in convert_nuScences.py:

# instance information in COCO format
ann = {
    
    
  'id': num_anns,  
  'image_id': num_images, 
  'category_id': category_id,
  'dim': [box.wlh[2], box.wlh[0], box.wlh[1]],
  'location': [box.center[0], box.center[1], box.center[2]],
  'depth': box.center[2],
  'occluded': 0,
  'truncated': 0,
  'rotation_y': yaw, 
  'amodel_center': amodel_center,  
  'iscrowd': 0, 
  'track_id': track_id,
  'attributes': ATTRIBUTE_TO_ID[att],
  'velocity': vel,
  'velocity_cam': vel_cam
}

2.1. 'dim' 'location' 'depth' View Box structure definition

class Box:
    """ Simple data class representing a 3d box including, label, score and velocity. """

    def __init__(self,
                 center: List[float],
                 size: List[float],
                 orientation: Quaternion,
                 label: int = np.nan,
                 score: float = np.nan,
                 velocity: Tuple = (np.nan, np.nan, np.nan),
                 name: str = None,
                 token: str = None):
        """
        :param center: Center of box given as x, y, z.
        :param size: Size of box in width, length, height. 
        :param orientation: Box orientation.
        :param label: Integer label, optional. 
        :param score: Classification score, optional.      
        :param velocity: Box velocity in x, y, z direction.
        :param name: Box name, optional. Can be used e.g. for denote category name.
        :param token: Unique string identifier from DB.
        """

2.2. The meaning of 'bbox' 'area' 'alpha' can be known based on calculation.

bbox = KittiDB.project_kitti_box_to_image(copy.deepcopy(box), camera_intrinsic, imsize=(1600, 900))
alpha = _rot_y2alpha(yaw, (bbox[0] + bbox[2]) / 2, camera_intrinsic[0, 2], camera_intrinsic[0, 0])
ann['bbox'] = [bbox[0], bbox[1], bbox[2] - bbox[0], bbox[3] - bbox[1]]
ann['area'] = (bbox[2] - bbox[0]) * (bbox[3] - bbox[1])
ann['alpha'] = alpha 

2.3. Detailed explanation of "annotations" JSON file

"annotations": [
{
    
    
"id": int,                      #annotation ID  
 "image_id": int,               #对应"images"中的ID  
 "category_id": int,            #对应"categories"中类别的ID 
 "dim": [1x3矩阵],               #h高/w宽/l长,单位m 
 "location": [1x3矩阵],          #前两项为xy中心点坐标位置,单位m,第三项与"depth"相同为box的深度
 "depth": double,               #box的深度 
 "occluded": 0,                 #0  交通堵塞
 "truncated": 0,                #0  截断(卡帧)
 "rotation_y": ,                #标注目标yaw角 
 "amodel_center": [1x2矩阵],     #标注目标中心点像素坐标xy
 "iscrowd": 0,                  #0  是否有人群
 "track_id": int,               #目标跟踪ID
 "attributes": int,             #对应"attributes"中目标运动属性ID
 "bbox": [1x4矩阵],              #像素坐标系下标注数据x,y,w,h
 "area": double,                #像素坐标系下标注面积  
 "alpha": double                #在相机坐标系中的旋转角度,范围 [-pi..pi]   
},
{
    
    ...}, ... ,{
    
    ...}
]

3. “categories”: [category]

#Describe the label category information, in list form, internally composed of dictionaries, the number of dictionaries is the number of categories

"categories": [
{
    
    "name": "car", "id": 1}, 
{
    
    "name": "truck", "id": 2}, 
{
    
    "name": "bus", "id": 3}, 
{
    
    "name": "trailer", "id": 4}, 
{
    
    "name": "construction_vehicle", "id": 5}, 
{
    
    "name": "pedestrian", "id": 6}, 
{
    
    "name": "motorcycle", "id": 7}, 
{
    
    "name": "bicycle", "id": 8}, 
{
    
    "name": "traffic_cone", "id": 9}, 
{
    
    "name": "barrier", "id": 10}
], 

4. “videos”: [video]

#Describe scene category information, scene name and corresponding ID (nuScence_COCO special)

"videos": [
{
    
    "id": 1, "file_name": "scene-0061"}, 
{
    
    "id": 2, "file_name": "scene-0553"}, 
{
    
    "id": 3, "file_name": "scene-0655"}, 
{
    
    "id": 4, "file_name": "scene-0757"}, 
{
    
    "id": 5, "file_name": "scene-0796"}, 
{
    
    "id": 6, "file_name": "scene-1077"}, 
{
    
    "id": 7, "file_name": "scene-1094"}, 
{
    
    "id": 8, "file_name": "scene-1100"}
], 

5. “attributes”: {attributes}

#Describe category attributes and corresponding IDs (nuScence_COCO special)

"attributes": 
{
    
    
"": 0, 
"cycle.with_rider": 1, 
"cycle.without_rider": 2, 
"pedestrian.moving": 3, 
"pedestrian.standing": 4, 
"pedestrian.sitting_lying_down": 5, 
"vehicle.moving": 6, 
"vehicle.parked": 7, 
"vehicle.stopped": 8
}, 

6. “pointclouds”: [pointcloud]

#Describe lidar point cloud information (nuScence_COCO special), centerfusion does not require lidar, so this category is empty

"pointclouds": [] 

CenterFusion JSON data sample

{
    
    
"images": [ 
{
    
    
"id": 1, 
"file_name": "samples/CAM_FRONT/n015-2018-07-24-11-22-45+0800__CAM_FRONT__1532402927612460.jpg", 
"calib": [[1266.417236328125, 0.0, 816.2670288085938, 0.0], [0.0, 1266.417236328125, 491.507080078125, 0.0], [0.0, 0.0, 1.0, 0.0]], 
"video_id": 1, 
"frame_id": 1, 
"sensor_id": 1, 
"sample_token": "ca9a282c9e77460f8360f564131a8af5", 
"trans_matrix": [[-0.9401652123589339, -0.015582548073058871, -0.3403623916733913, 410.87244105365085], [0.3399968349298872, 0.02209463160752133, -0.9401669955341905, 1179.57081167158], [0.022170379061693352, -0.9996344389073828, -0.015474586992294847, 1.4936775157046178], [0.0, 0.0, 0.0, 1.0]], 
"velocity_trans_matrix": [[-0.9401652123589339, -0.015582548073058871, -0.3403623916733913, 0.0], [0.3399968349298872, 0.02209463160752133, -0.9401669955341905, 0.0], [0.022170379061693352, -0.9996344389073828, -0.015474586992294847, 0.0], [0.0, 0.0, 0.0, 1.0]], 
"width": 1600,  
"height": 900, 
"pose_record_trans": [411.4199861830012, 1181.197175631848, 0.0], 
"pose_record_rot": [0.5720063498929273, -0.0021434844534272707, 0.011564094980151613, -0.8201648693182716], 
"cs_record_trans": [1.70079118954, 0.0159456324149, 1.51095763913], 
"cs_record_rot": [0.4998015430569128, -0.5030316162024876, 0.4997798114386805, -0.49737083824542755], 
"radar_pc": [[14.403684043646454, 17.68929288665269, 16.571720518662378, 36.365684108673605, 42.70078713339897, 37.57424694374152, 38.355841205392075, 50.1448172961626, 49.98171936001661, 52.68841581100403, 57.432807935190475, 59.04284968609684, 65.3722701298452, 67.93065008819394, 70.11188692736454, 62.79659976040242, 71.4796797129946, 66.51372469988091, 66.77736183873762, 74.82419952614518, 76.38739564432397, 72.58041144537357, 74.7980361452111, 83.98064582167736, 81.48095667083679, 71.62093401747755, 146.80623309158008, -10.82795487438391, -14.164491889958624, -14.184984350962369, -14.123506969732409, -13.70503769264502, -18.40481354149609, -23.50793678548678, -28.299764683727126, -21.77908503222728, -22.77850114439191, -30.182472965506943, -31.226452491695877, -17.01279024885609, -31.43430327975401, -71.7495664161604, -84.2774800796739, -93.6155524980541, -73.51012406946278, -8.747152805021797, -14.398529975710215, -17.630814492484145, -71.52918614478197, -5.254446738460322, -4.251772128402393, -4.449476992220026, 6.948967306411665, 8.349346606000358, -4.44488801845417, 6.95355628017752, -2.843362123811704, -5.443356067099322, 7.356232361297701, -4.640298393565381, -4.2376227911047595, -6.438382384508334, -12.044106144275892, -11.843341011550056, -6.433410994742412, -6.030352503092648, -13.036455560625406, -12.634926248845865, 7.771910058526241, 7.774969375585807, -20.23643790787838, 7.9807054212415, -20.63376161556426, -24.039489656609256, -25.437573992478956, 5.189124769595822, 9.987966233580659, -9.411606488144164, -1.8062700840068635, -5.4032025402658554, 2.399456432721521, -3.2001482233848146, 18.19253716911869, -3.7986173267403283, 14.59636918723278, -17.200880233285964, 9.40747132089561, 5.409010156196137, -6.1909636285019625, 5.8135978277161255, -8.387134248139684, 11.613202304065107, 9.415119611721032, 6.217421151366024, -25.994360158006728, 9.418943757133743, -7.374899280020459, -29.789379288920866, -20.57601701837353, -29.183644065027988, -1.1661179090266327, -31.384404615750682, -32.38287266621933, 0.43808494080935806, 6.638453129373121, -25.97179769423655, 17.4372803632185, -1.5569391397321088, 49.794377170021846, -6.1538694223750525, 38.22231774386867, 0.8487916113695071, 22.242624304183742, -33.565279607409686, -5.745074705312243, -11.544296288825095, -11.340855216005867, -9.735887116938187, 6.067518107030773, -11.528617298468163, -9.325180796711107, -8.31485790859222, 22.083542358644653], 
[0.751975633040468, 0.7366183668391831, 0.6752312203947729, 0.8653196710697082, 0.7993540807008613, 0.9073344578925764, 0.9119705441819166, 0.7110936866796992, 0.6175351418403792, 0.9392403388660284, 0.9126238676393204, 0.6553523040426804, 0.8044033070303704, 0.8155961283308055, 0.8215650562173985, 0.625846575144341, 0.8296782168756008, 0.6468993891847351, 0.6335291340685651, 0.8445385072650873, 0.8538106940352269, 0.6380822707141126, 0.6363022331371342, 0.9048242818445578, 0.9666586216334383, 0.7568414610662517, 0.7846554307657015, 0.7196209543846839, 0.7077597122692019, 0.7104453000101429, 0.7023885370207602, 0.6739660611714449, 0.6822467640273953, 0.6377109284081242, 0.7108933237324818, 0.622492548779218, 0.6213735843323304, 0.6934370647180069, 0.6453203284322614, 0.5790754161166891, 0.8310734413875489, 0.6721774192021491, 0.5967575577083416, 0.6052622036322716, 0.9293224463535436, 0.7111165321813001, 0.7120118979831952, 0.712907192590827, 0.6697156277720173, 0.959718041241816, 0.9548505220956347, 0.949650676587424, 0.964070002186606, 0.9645967605038533, 0.9396398405984356, 0.9540591661976177, 0.9378583154431777, 0.9353307554471032, 0.9486083640467349, 0.9294345731177812, 0.9239837744812961, 0.9235135413150548, 0.9305831123435794, 0.9291090694455512, 0.912668465678693, 0.9063834358142849, 0.9129262445476126, 0.9099781578244529, 0.9147935248041835, 0.9081196314928917, 0.9059268484911943, 0.8958005124949499, 0.8996983379456358, 0.9089066144063533, 0.9033744385581637, 0.8747253238824786, 0.8818942993698644, 0.8622005732770147, 0.857909510583674, 0.8477359266206321, 0.8494789452208142, 0.8432007460021046, 0.879854999787188, 0.8392805041761329, 0.8680129361817351, 0.8312592711407709, 0.8387649618865395, 0.8315394493142994, 0.8202626423934949, 0.8219174763086431, 0.8097815732382652, 0.8283901194164189, 0.8220802325862593, 0.8139639671494879, 0.8085224409080463, 0.8137378679361191, 0.784058154400582, 0.7939832317738598, 0.7737286285461606, 0.7820529682669028, 0.7708979648777924, 0.781582742129457, 0.777273660956074, 0.7632767980504085, 0.7684698170647023, 0.7593024767427814, 0.7814716151067562, 0.7504874374088308, 0.9064033942966518, 0.7393417148342145, 0.8342273140285389, 0.7403070228580346, 0.774458573670739, 0.7377322134465634, 0.7205431220827986, 0.7132362397912009, 0.7059225582139488, 0.6966329124974255, 0.7044845595365764, 0.6790325574550647, 0.6736631210455899, 0.6521109004447747, 0.6850008371087006], 
[-0.03479236048832268, 3.6914028230098563, 16.11988884977728, -19.53909236401681, -4.879551512846371, -27.968659879325816, -28.786636942240026, 14.555947485129192, 33.76440161212316, -31.913376781688502, -25.619723190664967, 27.55678904271413, -1.9944579396781443, -3.853102231424534, -4.702920028763231, 34.27307684440016, -6.134381384055272, 30.587627630047734, 33.382322941399664, -8.611057653798149, -10.24701338326479, 33.45035757651445, 34.20011018720245, -19.421972671832204, -32.56836903651975, 8.86611006987862, 16.157966755941473, -0.2558093421540484, 1.659230510608043, 1.059586575886249, 2.8585183279285173, 9.247890262606601, 6.406757893948907, 15.186061554078314, -2.0601850937117767, 18.929167575347453, 18.96331699209649, 1.406095944707166, 11.847733088624397, 29.572500190378086, -29.368796063741133, -2.776794997346115, 11.259076954906112, 7.375743666221054, -60.149561888133, 2.0744675930196905, 0.6666538869626615, -0.22347457390893144, -2.1839807225436383, 10.40389900128957, 11.801976801619624, 13.002345584274352, 12.180602234077327, 12.377928690854056, 15.402319936934816, 14.580576586737791, 16.199258852384308, 16.20421973915185, 15.97979920695115, 17.802676849584056, 19.201898517042956, 18.806100782696372, 15.816817353042367, 16.21643115245355, 21.406073792798775, 23.00529220946124, 19.818683276694784, 20.617910877336787, 24.17894947850041, 25.77893301605024, 19.832421115294462, 28.778519826473644, 21.23316921169063, 18.239688107008252, 19.242348825651934, 33.18381561824112, 32.57466299326759, 32.81167749875876, 35.59714811209751, 37.2039986627559, 38.58910278943481, 38.79978261931353, 34.95899147024697, 39.6009220694195, 36.9658393364716, 38.426501585911694, 42.775699287880194, 43.583326051416414, 43.60545924007284, 45.982535284099335, 45.60963585838672, 45.77147003232919, 46.77565717809049, 47.98175101564567, 41.843254200270394, 48.77563612319564, 52.00765816048681, 44.450479643325686, 51.43285204570978, 47.449303240190275, 56.5957822155908, 47.05350360033478, 47.85540244888753, 58.79270315004162, 58.98087200016517, 53.64313302811645, 58.360273082777304, 61.39649413447054, 35.89868708530076, 63.00525271879851, 50.52066886565831, 64.39188327179895, 61.15108428028736, 57.057596000888886, 67.6044433677758, 68.01550727607807, 69.81510214275968, 72.41202039129828, 74.18185756577901, 76.2154178992835, 78.01120432839507, 83.40923334328548, 82.55124212691942], 
[1.0, 6.0, 6.0, 0.0, 6.0, 0.0, 0.0, 6.0, 6.0, 6.0, 6.0, 2.0, 1.0, 1.0, 1.0, 2.0, 1.0, 2.0, 2.0, 1.0, 0.0, 2.0, 2.0, 0.0, 0.0, 3.0, 1.0, 0.0, 1.0, 1.0, 1.0, 2.0, 6.0, 6.0, 0.0, 6.0, 6.0, 3.0, 2.0, 6.0, 0.0, 0.0, 1.0, 1.0, 3.0, 3.0, 1.0, 6.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 3.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 3.0, 1.0, 3.0, 3.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 3.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 3.0, 3.0, 3.0, 3.0, 1.0, 3.0, 1.0, 3.0, 3.0, 1.0, 0.0, 3.0, 3.0, 0.0, 1.0, 3.0, 1.0, 3.0, 3.0, 1.0, 3.0, 3.0, 3.0, 3.0, 0.0, 3.0, 3.0, 3.0, 3.0], 
[0.0, 2.0, 3.0, 6.0, 9.0, 13.0, 14.0, 18.0, 27.0, 33.0, 36.0, 38.0, 40.0, 47.0, 50.0, 53.0, 54.0, 58.0, 60.0, 62.0, 66.0, 69.0, 71.0, 75.0, 78.0, 96.0, 104.0, 0.0, 5.0, 6.0, 7.0, 9.0, 13.0, 22.0, 24.0, 25.0, 28.0, 29.0, 36.0, 39.0, 45.0, 59.0, 71.0, 87.0, 90.0, 101.0, 103.0, 104.0, 109.0, 3.0, 5.0, 6.0, 8.0, 9.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 18.0, 19.0, 20.0, 21.0, 23.0, 24.0, 25.0, 26.0, 27.0, 29.0, 33.0, 34.0, 35.0, 38.0, 39.0, 41.0, 42.0, 43.0, 45.0, 46.0, 47.0, 49.0, 52.0, 53.0, 54.0, 60.0, 63.0, 64.0, 65.0, 69.0, 70.0, 71.0, 72.0, 74.0, 76.0, 77.0, 82.0, 84.0, 86.0, 87.0, 89.0, 90.0, 92.0, 93.0, 95.0, 96.0, 98.0, 99.0, 101.0, 102.0, 103.0, 104.0, 106.0, 109.0, 110.0, 111.0, 112.0, 115.0, 116.0, 120.0, 121.0, 122.0, 124.0], 
[-3.5, -2.5, 7.5, 2.0, 1.0, 8.0, 7.0, 4.0, 7.5, 22.0, 19.5, 0.5, 3.0, 2.5, 4.5, 3.5, 6.0, 6.0, 6.0, 10.0, 3.0, 7.5, 5.5, 0.0, 4.0, 6.5, 7.0, -1.0, -0.5, 4.5, 3.0, -3.5, -3.5, 0.5, -2.5, 5.5, 19.0, -0.5, 5.5, 16.0, 8.0, 10.0, 8.0, 0.0, 8.0, -3.0, -0.5, -3.0, 5.0, 3.5, 0.0, 8.0, 5.5, -3.0, 0.5, 1.0, 4.0, 9.5, 5.0, 18.0, 4.0, 9.5, -1.0, -2.0, 19.0, 12.0, 1.0, -2.5, 7.0, 11.5, 3.5, 4.0, 4.0, 10.5, 10.0, 14.0, 9.5, 4.0, 29.5, 0.0, 16.5, 0.0, 0.0, -0.5, 1.0, 8.5, 8.0, 14.5, 25.0, 18.5, 5.0, 14.5, 10.5, 1.0, 1.5, 0.5, 3.0, 1.0, 1.0, 5.0, 10.5, 1.0, 1.0, 8.0, 9.0, 12.5, 5.0, 2.5, 19.0, 9.5, 7.0, 1.0, 5.0, 0.0, 12.0, 4.5, 7.0, 11.5, 5.0, 5.0, 7.5, 2.5, 8.5], 
[0.5, -1.75, -9.25, 5.0, 1.0, 7.0, 7.0, -2.5, -5.75, 5.0, 3.75, -4.5, 0.25, 0.5, 0.5, -5.0, 0.75, -4.25, -4.25, 1.0, 1.0, -4.25, -4.25, 2.0, 3.5, 1.0, 1.25, 1.5, -0.25, 0.25, -1.0, -5.5, -2.75, -5.75, 1.25, -7.75, -7.25, 0.25, -3.0, -15.0, 10.0, 0.75, -1.0, -0.5, 0.25, -0.75, 0.5, 1.0, 0.75, -9.25, -9.0, -9.0, -9.25, -9.25, -8.75, -9.25, -9.0, -8.75, -9.25, -9.0, -9.0, -9.0, -9.0, -8.75, -9.0, -9.0, -9.0, -9.0, -9.25, -9.25, -8.5, -9.25, -8.5, -8.25, -8.25, -9.0, -9.25, -8.75, -4.0, -9.0, 2.25, -9.0, -9.25, -9.0, -9.25, -8.5, -9.25, -6.5, -9.0, -6.5, -9.0, -6.5, -9.25, -6.5, -8.75, -9.25, -9.0, -8.5, -8.5, -8.5, -9.0, -8.5, -8.5, -9.0, -4.75, -8.75, -9.25, -7.75, -9.75, -9.0, -9.75, -9.0, -9.5, -8.5, -9.0, -9.0, -8.75, -9.0, -2.25, -9.0, -9.0, -9.0, -9.5], 
[-0.25, 0.0, -0.25, 0.0, -0.75, 0.0, 0.0, -0.75, -0.75, -0.75, -1.0, 0.0, -1.0, -1.0, -1.0, 0.0, -1.0, 0.0, -1.0, -1.25, -1.25, 0.0, 0.0, 0.0, 0.0, -1.0, -2.25, 0.0, -0.25, -0.25, -0.25, 0.0, 0.0, -0.5, -0.5, -0.5, -0.5, -0.5, 0.0, 0.0, -0.5, -1.0, -1.25, -1.5, -1.0, -0.25, -0.25, 0.0, -1.0, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.5, -0.25, -0.25, -0.5, -0.5, -0.25, -0.5, -0.25, -0.25, -0.25, -0.5, -0.5, -0.5, 0.0, -0.5, 0.0, -0.5, -0.5, -0.75, -0.5, -0.5, -0.75, 0.0, -0.75, 0.0, -0.75, 0.0, -0.75, 0.0, -0.75, -0.75, -0.75, -0.75, -0.75, -0.75, -1.0, -0.75, -0.75, -1.0, 0.0, -0.75, -1.0, 0.0, -0.5, -1.0, -0.75, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 0.0, -1.25, -1.25, -1.25, -1.25], 
[-0.11933229863443497, -0.2714356682478987, -0.35868147055414196, -0.03850311346704164, -0.12413798470308221, 0.08185007243133231, 0.05243147021392034, -0.20822736387358765, -0.14134576422716374, -0.06708007731106821, 0.06340344606542019, -0.29259094325890106, -0.1075624684332252, -0.062281783394960155, -0.14068519840511387, -0.09281482744948684, -0.0382970867321252, -0.13165418194563977, -0.24717020908041246, 0.01012713644929179, -0.1317492876559241, -0.11815188174891245, -0.14419015525845774, -0.13852657143701375, -0.12434735867154263, 1.8621872231845251, 1.8968754388440496, -0.25159161593404444, -0.08706597302068184, -0.17773596332917882, -0.15365742460352202, 0.032778103535156596, 0.12363402567912425, 0.07200024941378456, -0.11177073209323198, 0.02797270520426817, -0.07692778084516431, -0.2952432376127587, -0.06198180490856292, 0.08048609536442897, -0.13380693456838283, -0.1380764990495127, -0.15061991069764402, -0.11495907568277072, 4.773307898011784, -0.31518601030463794, -0.16359198874679742, -0.26096456808222546, -0.21944090554015122, 0.2359501678241156, 0.08073778357885929, 0.0739289497374935, -0.07994775175907827, -0.06785981190953529, -0.01839346401657889, -0.08756755938796071, 0.03041269763889035, -0.01592293209020669, -0.08817109214666638, 0.04915518341407907, 0.0392810006856877, 0.06846501894637241, 0.16480121075101706, 0.03555540243500602, 0.057025778224279865, 0.06715864833683538, 0.14076485504797168, 0.1307890039058188, -0.053840118290037195, -0.05453328095163652, -0.04874658064129104, -0.05460912596026132, -0.05735111262214744, -0.11810182677302143, -0.11904216133862622, -0.0026711093801488586, -0.05454359191541276, 0.0025629946985998033, -0.26844154705993317, 0.027388156308309323, 0.7229749267917368, 0.012831419376871496, -0.02913538947400745, 0.018213129970439345, -0.04910510605498743, -0.060200171811475016, -0.038678800463140546, 0.3069167974828299, 0.031765503989323235, 0.311754388729086, 0.04660581547481453, 0.596720727731274, -0.03869425987624021, 0.31870962407887726, 0.16125603175278022, -0.03849801655284154, 0.031274004664775146, 0.06566577247664318, -0.02824566173150451, 0.0426441174839235, 0.002739431262154584, 0.06356640847611585, 0.06729623784323828, -0.0006863387429227657, 0.47668681756689857, 0.09525438951799639, -0.011136814571675481, -0.030777022879119587, -0.04628626053051742, 0.020654431726820407, -0.12258605844717688, -0.0011735351822419683, -0.073260926807848, 0.09881190219812104, 0.016791823541325114, 0.04778583953954704, 0.003674872144795169, 0.033155279547490195, 0.5539554929485303, 0.045695470794762966, 0.0314146805091637, 0.023634773735553276, -0.06564871777664574], 
[0.008867069809351655, -0.04372738193043045, -0.3449473761286068, 0.02222210416502583, 0.01735263804764088, -0.06446021405472502, -0.0415746836198735, -0.05733920794067956, -0.09428137243439262, 0.04253537291540192, -0.02978561307637842, -0.13359373246601405, 0.004947069619818861, 0.004480279976281298, 0.01152717561346369, -0.04987002521949348, 0.003853040910783428, -0.059349683441671006, -0.12145230657095618, -0.0013117706412302346, 0.019564839189709627, -0.0534733905381825, -0.06476294055474824, 0.03397682653539601, 0.05171159927533257, 0.20757693049170833, 0.19729327138371555, -0.03397605174693355, 0.0036256538152004015, -0.0005580384990438187, 0.020224348892204536, -0.02065208077934171, -0.03720484184486943, -0.04460976915283359, -0.012839863768826485, -0.023743013714466597, 0.06244920421387886, 0.0030562544209041184, 0.021873348678779443, -0.14112805532527598, -0.13298604729648994, -0.007545419766602054, 0.018321833128656602, 0.007768860774468273, 4.019708700623272, 0.03846322981947248, -0.005224186766200087, -0.020517276352280234, -0.010190456135883126, -0.3665866480132065, -0.18117777407226343, -0.1783877169555468, -0.11539303731960397, -0.08306861514989074, 0.054293333225553075, -0.15666107687273445, -0.1482451531387445, 0.04075952722067609, -0.16591029392726883, -0.16428848111195024, -0.15655409612581705, -0.17583695908406521, -0.18594362557755711, -0.04199184300838257, -0.1695101817276091, -0.230629876270025, -0.18987400650502137, -0.19026467681237616, -0.15288967408398849, -0.16606236258724116, 0.04242604261093419, -0.18259248381027107, 0.052842851732737894, 0.07873249430807742, 0.07968949851750996, -0.016044450031438236, -0.16640491825273884, -0.00831155344177269, 4.8835404911888975, -0.17648652939571266, 11.10436574749003, -0.14541926820553883, -0.0525596854470238, -0.17795561231730553, -0.11721966590074459, 0.1265883001572521, -0.16738343264537203, 2.361548810675573, -0.21146066278065234, 2.360292659777632, -0.2403977477591339, 2.244918275566599, -0.18380520428022154, 2.3584481084172024, -0.24568271565038993, -0.1909990498998341, -0.2103884580702522, -0.09305444143393087, 0.06749469215761865, -0.06606115340411838, -0.12460932507905356, -0.0907729430572974, -0.09480376278782404, -0.09515878835041297, 4.0961253438284295, -0.18847905157679826, -0.035933805612342336, 1.148272436922497, -0.031349039892849984, -0.20311754898137616, -0.1551141827960672, -0.08913046247824813, -0.19444949001096462, -0.16136823720094587, -0.19019476086751047, -0.271755596734271, -0.021854327510113725, -0.23839462373385384, 6.604904210638023, -0.29263791555676155, -0.25459821556973855, -0.23002647120095, -0.23920535206496626], 
[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 
[3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0], 
[19.0, 19.0, 19.0, 19.0, 19.0, 20.0, 20.0, 19.0, 20.0, 19.0, 19.0, 20.0, 20.0, 19.0, 19.0, 20.0, 19.0, 20.0, 20.0, 19.0, 20.0, 20.0, 20.0, 20.0, 21.0, 21.0, 21.0, 19.0, 20.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0, 20.0, 20.0, 20.0, 19.0, 20.0, 22.0, 20.0, 20.0, 21.0, 21.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0, 20.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0, 20.0, 20.0, 19.0, 19.0, 19.0, 20.0, 19.0, 19.0, 19.0, 19.0, 20.0, 20.0, 20.0, 19.0, 19.0, 20.0, 19.0, 19.0, 19.0, 19.0, 20.0, 19.0, 20.0, 19.0, 19.0, 19.0, 19.0, 19.0, 20.0, 19.0, 19.0, 20.0, 20.0, 21.0, 19.0, 20.0, 20.0, 20.0, 19.0, 21.0, 20.0, 19.0, 19.0, 19.0, 19.0, 19.0, 22.0, 19.0, 21.0, 19.0, 20.0, 21.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0], 
[19.0, 20.0, 19.0, 21.0, 19.0, 21.0, 21.0, 19.0, 20.0, 19.0, 19.0, 21.0, 21.0, 20.0, 20.0, 21.0, 20.0, 21.0, 20.0, 19.0, 21.0, 21.0, 21.0, 22.0, 22.0, 21.0, 24.0, 19.0, 19.0, 19.0, 19.0, 19.0, 20.0, 19.0, 19.0, 19.0, 19.0, 19.0, 20.0, 21.0, 20.0, 21.0, 20.0, 22.0, 22.0, 19.0, 19.0, 19.0, 21.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0, 20.0, 20.0, 19.0, 19.0, 19.0, 20.0, 19.0, 19.0, 19.0, 19.0, 20.0, 20.0, 20.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0, 19.0, 20.0, 19.0, 20.0, 20.0, 20.0, 19.0, 19.0, 19.0, 20.0, 19.0, 19.0, 20.0, 21.0, 21.0, 20.0, 20.0, 20.0, 21.0, 19.0, 21.0, 21.0, 20.0, 20.0, 19.0, 20.0, 19.0, 21.0, 19.0, 21.0, 20.0, 21.0, 21.0, 19.0, 20.0, 20.0, 20.0, 19.0, 20.0, 20.0, 21.0, 20.0], 
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 
[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 3.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 
[16.0, 16.0, 17.0, 16.0, 16.0, 17.0, 17.0, 16.0, 17.0, 17.0, 16.0, 16.0, 16.0, 16.0, 16.0, 17.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 17.0, 16.0, 17.0, 16.0, 17.0, 17.0, 16.0, 16.0, 19.0, 18.0, 16.0, 16.0, 16.0, 17.0, 16.0, 16.0, 16.0, 16.0, 17.0, 16.0, 16.0, 17.0, 17.0, 16.0, 17.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 17.0, 17.0, 16.0, 16.0, 17.0, 17.0, 16.0, 16.0, 18.0, 16.0, 18.0, 19.0, 19.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 17.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 17.0, 16.0, 16.0, 17.0, 16.0, 17.0, 16.0, 17.0, 17.0, 16.0, 16.0, 16.0, 16.0, 16.0, 19.0, 16.0, 17.0, 16.0, 16.0, 17.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0], 
[3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0]], 
"camera_intrinsic": [[1266.417203046554, 0.0, 816.2670197447984], [0.0, 1266.417203046554, 491.50706579294757], [0.0, 0.0, 1.0]]
},
{
    
    ...}, 
... ,
{
    
    ...}
]"annotations": [
{
    
    
"id": 1, 
 "image_id": 1, 
 "category_id": 6, 
 "dim": [1.642, 0.621, 0.669], 
 "location": [18.638829798516202, 1.0145927635241265, 59.024867320654884], 
 "depth": 59.024867320654884, 
 "occluded": 0, 
 "truncated": 0, 
 "rotation_y": -3.120828115749234, 
 "amodel_center": [1216.1754150390625, 495.6607666015625],   
 "iscrowd": 0, 
 "track_id": 1, 
 "attributes": 4, 
 "velocity": [0.0, 0.0, 0.020004158884655832], 
 "velocity_cam": [0.0004434997842838874, -0.019996846097421125, -0.000309556096170818, 0.0], 
 "bbox": [1206.5693751819115, 477.86111828160216, 19.31993062031279, 35.78389940122628], 
 "area": 691.342453755944, 
 "alpha": 2.856448810360759
 }, 
 {
    
    ...}, 
... ,
{
    
    ...}
]"categories": [
{
    
    "name": "car", "id": 1}, 
{
    
    "name": "truck", "id": 2}, 
{
    
    "name": "bus", "id": 3}, 
{
    
    "name": "trailer", "id": 4}, 
{
    
    "name": "construction_vehicle", "id": 5},  
{
    
    "name": "pedestrian", "id": 6}, 
{
    
    "name": "motorcycle", "id": 7}, 
{
    
    "name": "bicycle", "id": 8}, 
{
    
    "name": "traffic_cone", "id": 9}, 
{
    
    "name": "barrier", "id": 10}
], 
 "videos": [
 {
    
    "id": 1, "file_name": "scene-0061"}, 
 {
    
    "id": 2, "file_name": "scene-0553"}, 
 {
    
    "id": 3, "file_name": "scene-0655"}, 
 {
    
    "id": 4, "file_name": "scene-0757"}, 
 {
    
    "id": 5, "file_name": "scene-0796"}, 
 {
    
    "id": 6, "file_name": "scene-1077"}, 
 {
    
    "id": 7, "file_name": "scene-1094"}, 
 {
    
    "id": 8, "file_name": "scene-1100"}
 ], 
 "attributes": {
    
    
 "": 0, 
 "cycle.with_rider": 1, 
 "cycle.without_rider": 2, 
 "pedestrian.moving": 3, 
 "pedestrian.standing": 4, 
 "pedestrian.sitting_lying_down": 5, 
 "vehicle.moving": 6, 
 "vehicle.parked": 7, 
 "vehicle.stopped": 8
 }, 
 "pointclouds": []
 }

Guess you like

Origin blog.csdn.net/qq_34972053/article/details/130620003