전체 구조
can_bus

- 자율주행차 내부의 다양한 센서 및 ECU(Electronic Control Unit)에서 발생하는 정보를 시간 축에 따라 기록한 것
- 차량 동역학, 조향·가속·제동 입력, ECU 내부 상태 등을 재현하는 데 사용
- scene-0001 폴더 안에 존재하는 8개의 JSON 파일은 대체로 다음과 같은 정보를 담고 있습니다 (파일명에 따라 일부 겹치는 부분도 있으나, 기록된 센서·ECU 종류가 다릅니다).
- 실제로 nuScenes에서 운용하던 시험 차량은 Renault Zoe였으며, zoe_가 붙은 파일들은 해당 차량의 고유 센서/메시지 포맷을 다룹니다.
-
scene-0001_meta.json
- 장면 메타데이터: 실제 주행 시작·종료 시각(Unix Time), 샘플링 시간 간격 등 전반적인 시퀀스 정보를 담고 있습니다.
- 주행 시나리오에 대한 고유 식별자, 센서 동기화 상태나 로깅 소프트웨어 버전 등의 정보가 기록되어 있을 수 있습니다.
-
scene-0001_ms_imu.json
- IMU 정보: 관성 측정 장치(IMU)에서 측정한
선가속도(acceleration), 각속도(angular velocity), 자세값(roll, pitch, yaw) 등이 타임스탬프와 함께
들어 있습니다.
차량의 움직임(예: 브레이크 시 급감속, 코너링 시 각가속도)을 추정하거나 슬립 및 미끄러짐 감지 등에 활용
할 수 있습니다.
-
scene-0001_pose.json
- 차량 위치·자세(pose) 추정 정보: 라이다, GPS, 관성 센서 등으로부터 융합(Fusion)된 결과 혹은 내부 로컬라이제이션 알고리즘 결과로서, 전역 좌표계(ECEF 또는 지도 좌표계 등)나 차량 좌표계에서의 위치(x, y, z)와 자세(roll, pitch, yaw)가 시간에 따라 기록되어 있습니다.
- 보통 SLAM(Simultaneous Localization and Mapping) 또는 RTK-GPS 등의 기법을 통해 계산된 차량 위치가 들어 있기 때문에, 다른 센서 데이터와 융합 시 참조 값으로 사용됩니다.
-
scene-0001_route.json
- 차량 주행 경로(route) 정보: 실제 주행 중 계획된 경로나 차량이 이동한 궤적(trajectory)을 요약해 놓은 파일
- 일반적으로 고수준 경로(waypoint) 또는 맵 기반 라우팅 정보(예: Lane ID 목록)가 시간 축과 함께 기록되어 있을 수 있습니다.
-
scene-0001_steeranglefeedback.json
- 조향 각도 피드백: 차량의 조향 장치(핸들)가 어느 각도로 꺾여 있는지, 또 그 신호가 ECU에서 어떻게 측정·기록되고 있는지에 대한 정보입니다.
- 실제 핸들 입력과 바퀴의 조향 상태 간 차이를 모니터링하거나, 차량 동역학 모델을 딥러닝으로 학습할 때 중요한 피처로 사용할 수 있습니다.
-
scene-0001_vehicle_monitor.json
- 차량 모니터링 정보: 차량 상태 진단이나 내부 ECU에서 발생하는 오류 코드, 경고 신호 등의 모니터링 로그가 포함될 수 있습니다. 예를 들어 엔진 RPM, 배터리 전압, 각종 안전 시스템의 상태 등이 기록됩니다.
- 자율주행 연구에서는 주행 중 발생한 비정상 신호나 ECU 로그를 바탕으로 차량 이상 징후를 탐지하는 연구에도 활용됩니다.
-
scene-0001_zoe_veh_info.json
- Renault Zoe 차량 고유 정보: Zoe 차량 특유의 ECU 메시지 형식, 드라이브 트레인(e.g., 전기모터) 상태, 배터리 관련 정보 등이 포함될 수 있습니다.
- 상용 전기차 플랫폼의 CAN 데이터 특성을 파악하거나, Zoe 고유 프로토콜을 연구할 때 유용합니다.
-
scene-0001_zoesensors.json
- Renault Zoe 센서별 세부 정보: Zoe가 장착하고 있는 각종 센서(레이다, 초음파, 추가 IMU 등)에서 발생한 CAN 메시지를 구조화하여 기록한 파일입니다.
- 예를 들어 각 센서 ID별로 측정 거리, 장애물 감지, 센서 온도 혹은 상태 플래그 등이 담겨 있을 수 있습니다.
maps
basemap
expansion
- HD 지도 데이터는
전문 매핑 차량과 고해상도 위성/항공 이미지 등
다양한 소스에서 수집된 원본 데이터를 바탕으로 제작
- boston-seaport.json 등 4개
- 목적:
고정밀 vector HD map
원본 데이터를 보관
- 벡터화된 지도 요소(예: 차선 중심선, 차선 경계, 도로 경계, 횡단보도 등)를 포함
- 이 데이터는 nuScenes Map API(예, Map Expansion Tutorial)에서 사용되어, 주행 주변의 지도 요소를 쿼리 및 렌더링할 수 있도록 지원
데이터 종류 (boston-seaport.json
)
- version
- polygon
- line
- node
- drivable_area
- road_segment
- road_block
- lane
- ped_crossing
- walkway
- stop_line
- carpark_area
- road_divider
- lane_divider
- traffic_light
- canvas_edge
- connectivity
- arcline_path_3
- lane_connector
prediction
- prediction_scenes.json 파일 1개
- 목적: 예측(challenge) 작업을 위해 가공된 지도 데이터를 보관
- 예측 알고리즘에 유리하도록
- 추가적인 의미 정보와
- 도로의 토폴로지(예: 차선 연결 관계, 주행 가능 영역 등)를 포함하는 지도 데이터
- 이 데이터는 nuScenes Prediction Challenge(예, Prediction Tutorial)에서 사용되어, 미래 궤적 예측 시 도로 환경을 더 정밀하게 반영할 수 있도록 설계
포함 데이터의 상세 내용
- 도로 그래프 및 토폴로지 정보:
- 각 차선 간의 연결 관계, 분기 및 교차로 정보 등 도로 네트워크의 구조적 특징을 표현한 데이터
- 예측 모델이 ego 차량이나 주변 객체의 미래 이동 경로를 예측할 때, 도로의 연결성 및 전반적인 형태 정보를 반영할 수 있도록 설계됨
- 라스터화된 지도 표현 및 부가 특성:
- 지도 데이터를 CNN 등 신경망 모델의 입력으로 사용하기 위해, 벡터 데이터를 2D 이미지(라스터) 형태로 변환한 데이터
- drivable area, 차선 중심선, 도로 경계 등 주요 요소가 픽셀 단위로 표현되어, 모델이 지도 정보를 쉽게 파악할 수 있도록 제공됨
- 추가적으로, 속도 제한, 교차로 위치 등 예측에 영향을 줄 수 있는 도로 환경의 부가 정보가 포함될 수 있음
사용 시나리오
- 미래 궤적 예측: 객체의 미래 위치를 예측할 때, 도로 네트워크의 토폴로지 정보를 입력으로 제공하여 예측 정확도를 높임
- 지도 기반 입력 표현: 예측 모델이 도로 상황을 반영한 입력 텐서를 구성할 때 활용
- 경로 예측 및 행동 계획: 도로의 연결성, 차선 변경 가능성 등 지도 컨텍스트 정보를 기반으로 보다 현실적인 주행 경로 예측 지원
samples folder

- 각 키프레임(주요 순간)에 대한 센서 데이터(예: LiDAR, RADAR, 카메라 이미지 등)를 저장
- 키프레임?
- 센서 데이터(예: LiDAR, 카메라, RADAR 등)가 거의 동시에 기록된, (모든 센서의 타임스탬프가 거의 일치하는 프레임이 keyframe으로 선정)
- 완전하게 어노테이션이 달린 프레임으로 정의
sweeps folder
- 키프레임 사이의 짧은 시간 간격에 수집된 연속 프레임으로, 동적 객체의 움직임이나 장면의 시간적 변화 정보를 보완하는 데 사용
v1.0-trainval
- 아래는 data/nuscenes/v1.0-trainval 폴더 내에 포함된 각 JSON 파일에 담긴 정보를 매우 구체적으로 설명한 내용입니다.
- 모든 테이블은 nuScenes 데이터베이스의 “정규화된” 형태로, 각 파일은 하나의 테이블(리스트 형태의 딕셔너리)로 구성되어 있으며, 서로 연결된 외래키(토큰)를 통해 전체 데이터가 서로 연관됩니다.
1. attribute.json
- 목적:
- 객체(annotated object)의 속성(예: “vehicle.moving”, “vehicle.parked”, “pedestrian.standing” 등)을 정의
- 주요 정보:
- 각 속성 항목은 고유 토큰, 속성 이름, 그리고 설명(이 속성이 의미하는 바)을 포함
- 활용:
- sample_annotation에서 attribute_tokens 필드를 통해 객체의 추가 특성을 제공하며, 객체의 상태나 행동을 세분화할 때 사용됩니다.
2. calibrated_sensor.json
- 목적:
- 차량에 장착된 각 센서(카메라, LiDAR, RADAR 등)의 설치 위치와 방향(즉, 센서-ego 변환 정보)을 정의합니다.
- 주요 정보:
- 각 항목은 센서의 translation(평행 이동 벡터)과 rotation(회전 쿼터니언) 정보를 담으며, 카메라의 경우 camera_intrinsic(내부 파라미터) 정보도 포함됩니다.
- 활용:
- 센서 데이터(sample_data)를 글로벌 좌표계나 ego 좌표계로 변환할 때 기준으로 사용됩니다.
3. category.json
- 목적:
- nuScenes에서 사용되는 객체 카테고리(예: vehicle.car, human.pedestrian.adult 등)의 taxonomy를 정의합니다.
- 주요 정보:
- 각 카테고리는 고유 토큰, 카테고리 이름, 그리고 간략한 설명을 포함합니다.
- 활용:
- sample_annotation 및 instance 테이블에서 객체의 종류를 지정하는 데 사용됩니다.
4. ego_pose.json
- 목적:
- 데이터 수집 시점마다 ego 차량의 위치와 자세(orientation)를 기록합니다.
- 주요 정보:
- 각 항목은 글로벌 좌표계에서의 translation(위치)과 rotation(자세, 쿼터니언 형식), 그리고 타임스탬프를 포함합니다.
- 활용:
- 센서 데이터와 객체 어노테이션을 글로벌 좌표계로 정합하거나, 차량의 주행 궤적을 복원하는 데 사용됩니다.
5. instance.json
- 목적:
- 동일 객체(예: 한 차량이나 보행자)를 식별하기 위한 고유 인스턴스 정보를 정의합니다.
- 주요 정보:
- 각 인스턴스 항목은 고유 토큰, 해당 인스턴스가 속한 카테고리(category_token), 그리고 이 인스턴스에 연결된 어노테이션의 개수(nbr_annotations), 첫 번째와 마지막 어노테이션 토큰(first_annotation_token, last_annotation_token) 등을 포함합니다.
- 활용:
- 여러 sample_annotation이 동일 객체에 속함을 연결해 추적(tracking) 및 객체별 이력 분석에 사용됩니다.
6. log.json
- 목적:
- 데이터 수집 세션(로그)의 메타데이터를 제공합니다.
- 주요 정보:
- 각 로그 항목은 고유 토큰, 데이터가 기록된 로그파일 이름, 차량 ID, 촬영 날짜, 데이터가 수집된 위치(location)와 해당 로그에 사용된 지도(map_token) 정보를 포함합니다.
- 활용:
- 하나의 로그는 여러 씬(scene)을 포함하며, 데이터의 수집 배경(날짜, 지역, 노선 등)을 파악하는 데 사용됩니다.
7. map.json
- 목적:
- nuScenes에서 제공하는 HD 지도(정밀 지도) 정보를 정의합니다.
- 주요 정보:
- 각 지도 항목은 고유 토큰, 지도 이미지 파일의 경로(filename) 및 카테고리(보통 “semantic_prior”) 정보를 포함하며, 이 지도가 어떤 로그(log)에서 사용되었는지를 나타내는 log_tokens 목록도 포함됩니다.
- 활용:
- 지도 API를 통해 도로, 차선, 횡단보도 등의 정보를 쿼리하고 렌더링하는 기반 자료로 사용됩니다.
8. sample.json
- 목적:
- 각 씬(scene) 내에서 일정 간격(보통 0.5초)으로 기록된 키프레임(annotated keyframe) 정보를 제공합니다.
- 주요 정보:
- 각 샘플 항목은 고유 토큰, 타임스탬프, 해당 샘플에 연결된 센서 데이터(sample_data)와 어노테이션(sample_annotation) 토큰들, 그리고 이 샘플이 속한 씬(scene_token) 정보를 포함합니다.
- 활용:
- 주행 상황의 정지된 스냅샷 역할을 하며, 모델 학습 및 평가 시 기준 데이터로 사용됩니다.
9. sample_annotation.json
- 목적:
- 각 sample(키프레임) 내에서 개별 객체(어노테이션)의 3D 바운딩 박스, 크기, 위치, 회전, 속성 등의 정보를 기록합니다.
- 주요 정보:
- 각 어노테이션 항목은 고유 토큰, 해당 샘플 토큰, 인스턴스 토큰, visibility(가시성) 토큰, attribute_tokens, 객체의 translation, size, rotation, 이전/다음 어노테이션(prev, next) 포인터, 그리고 각 센서(LiDAR, RADAR)에서 감지된 포인트 수 등을 포함합니다.
- 활용:
- 객체 검출, 분류, 트래킹, 3D 바운딩 박스 회귀 등 자율주행 관련 다양한 작업의 Ground Truth로 사용됩니다.
일시적으로 가려진 객체들도 보간법을 통해 어노테이션됩니다. 만약 객체가 한 시점에 보이고 나중에 다시 보이면, 그 사이의 프레임은 보간됩니다. 그러나 평가 목적으로는 라이다나 레이더 포인트가 없는 박스는 제거됩니다.
가시성 및 Occlusion: 데이터셋은 특정한 occlusion 기준을 사용하지 않고, 인간 어노테이터가 가시성 수준을 주석으로 달아줍니다. 이는 모든 카메라의 파노라마 뷰에서 보이는 객체 픽셀의 백분율에 따라 4개의 구간(0-40%, 40-60%, 60-80%, 80-100%)으로 나뉩니다.
10. sample_data.json
- 목적:
- 각 센서(카메라, LiDAR, RADAR 등)에서 수집된 원시 데이터를 가리키는 메타 정보를 제공합니다.
- 주요 정보:
- 각 sample_data 항목은 고유 토큰, 해당 샘플(sample_token)과 연결된 토큰, 센서 캘리브레이션(calibrated_sensor_token), ego_pose_token, 타임스탬프, 데이터 파일 경로(filename), 파일 형식(fileformat), 센서 채널(channel), is_key_frame 여부, 그리고 이전/다음 데이터 포인터(prev, next) 등을 포함합니다.
- 활용:
- 각 센서의 실제 데이터(예: 이미지 파일, 점군 데이터 등)에 접근하고, 시간적 연속성(스윕)을 파악하는 데 사용됩니다.
11. scene.json
- 목적:
- 하나의 주행 세션(씬)에 대한 정보를 제공합니다.
- 주요 정보:
- 각 scene 항목은 고유 토큰, 해당 scene이 속한 로그(log_token), 씬 내에 포함된 샘플의 개수(nbr_samples), 첫 번째 및 마지막 샘플 토큰(first_sample_token, last_sample_token), 그리고 씬의 이름(name)과 간단한 설명(description)을 포함합니다.
- 활용:
- 씬 단위의 데이터 분석, 트래킹 및 전체 주행 세션의 메타데이터로 활용됩니다.
12. sensor.json
- 목적:
- 차량에 장착된 각 센서(카메라, LiDAR, RADAR 등)의 기본 정보를 정의합니다.
- 주요 정보:
- 각 센서 항목은 고유 토큰, 센서 채널(channel; 예: CAM_FRONT, LIDAR_TOP 등), 그리고 센서의 모달리티(modality; camera, lidar, radar 등)를 포함합니다.
- 활용:
- 각 센서 데이터(sample_data)를 어떤 센서에서 수집했는지 식별하고, 센서별 특성을 이해하는 데 사용됩니다.
13. visibility.json
- 목적:
- 각 객체의 가시성 수준을 정의합니다. (즉, 객체가 6개 카메라에서 어느 정도 보이는지를 4단계로 구분)
- 주요 정보:
- 각 visibility 항목은 고유 토큰, 가시성 수준을 나타내는 level(예: “v0-40”, “v80-100”)과 이에 대한 설명(description)을 포함합니다.
- 활용:
- sample_annotation에서 visibility_token을 통해 객체의 가시성을 나타내며, 일부 연구나 평가에서 중요한 기준으로 사용됩니다.