nuScenes

ad_official·2025년 2월 3일
0

[AD] dataset

목록 보기
1/12

내 생각

차량 센서 데이터로만 주변 환경을 검지하면

  • 차선, 신호등, 정적장애물, 동적장애물 검출 방법
    • lidar, radar, camera 등으로 검지한 값을 활용한다.
  • 차량에 부착된 센서 종류가 달라지면 학습을 다시 시켜야 하는 문제

GT 데이터를 쓰면,

  • 차선, 신호등, 도로 영역 검출 방법
    • HD map에 있는 정보를 활용
  • 정적장애물, 동적장애물 검출 방법
    • 센서 데이터로 검출?
  • 실제 서비스 시에는 GT 값을 알 수 없으므로, 정확도가 떨어질 수 있음



개요

  • nuScenes 데이터셋은 자율주행 연구를 위해 2019년 초에 공개된 대규모 멀티모달 데이터셋으로, 실제 도심 및 교외 환경에서 수집된 1,000개 Scene의 20초 길이의 주행 장면으로 구성
  • 다양한 센서(6대의 카메라, 1대의 회전형 LiDAR, 5대의 RADAR)
  • 23개 객체 클래스에 대한 3D 바운딩 박스 및 추가 속성(attribute) 주석
  • nuScenes-lidarseg라는 확장판은 라이다 포인트 클라우드의 각 포인트에 대해 세그멘테이션 주석을 추가로 제공
  • 각 필드에 대한 상세설명

nuScenes 데이터셋 어노테이션 핵심 요약

  1. 데이터 수집 및 라벨링

    • 2Hz로 동기화된 키프레임(이미지, LiDAR, RADAR) 수집 → 전문가 검수를 거쳐 3D 바운딩 박스, 시맨틱 카테고리, 속성(attributes) 라벨링.
    • 23개 객체 클래스 (차량, 보행자 등) + 9개 배경 클래스 (도로, 인도 등) 포함.
  2. 주요 특징

    • 3D 정밀도: 2D보다 정확한 공간 위치/방향 추적 가능.
    • LiDAR 포인트 클라우드 세그멘테이션: 모든 포인트에 시맨틱 라벨 부여.
    • 특수 속성: 객체 상태 추가 정보 (예: 차량 moving/parked, 보행자 standing/moving).
  3. 클래스 분포 (대표 항목)

    • 차량: 전체 3D 박스의 42.3% (vehicle.car), LiDAR 포인트의 48.27% 차지.
    • 보행자: adult가 3D 박스 17.86%, LiDAR 포인트 2.73%.
    • 배경: driveable_surface가 LiDAR 포인트 28.64%로 가장 많음.
  4. 주의 사항

    • static_object.bicycle_rack 카테고리는 개별적으로 어노테이션이 되지 않은 자전거들을 포함할 수 있습니다.
    • 우리는 훈련 중에 이러한 덜 흥미로운 자전거들에 대한 객체 탐지기의 편향을 피하기 위해, 대규모 공유 자전거 그룹을 무시하는 데 이 카테고리를 사용합니다.
    • 테스트 세트는 어노테이션 제공되지 않음.

1. 주요 구성 요소

1.1 Scene & Sample

  • Scene:
    • 1000개 모음
    • 하나의 scene은 약 20초 동안 기록된 주행 구간으로, 약 40개의 sample(주요 프레임)이 포함 (2hz 라는 뜻)
    • 각 scene은 데이터베이스의 토큰(token) 방식으로 서로 연결되어 있으며,
      • scene 정보에는
        • 해당 주행의 시작과 끝 토큰,
        • 설명,
        • 기록된 위치
        • 로그 정보
  • Sample
    • 각 sample은 한 시점에 수집된 여러 센서(카메라, 라이다, 레이더 등)의 데이터를 집합으로 가지며,
    • sample 내에는
      • 센서 데이터에 접근할 수 있는 ‘data’
      • 해당 시점에 주석된 객체 정보를 담은 ‘anns’

1.2 센서 데이터(data) 및 주석(anns)

  • 카메라:
    • 총 6대의 카메라가 차량 주위를 360°로 촬영
    • 각 카메라의 이미지 파일은 JPEG 형식으로 저장되며, 원본 해상도는 대략 1600×1200이지만, 처리나 전송 효율성을 위해 1600×900 등으로 crop되는 경우가 많습니다.
  • LiDAR:
    • 32채널의 회전형 라이다 센서가 20Hz로 포인트 클라우드를 수집합니다.
    • 이 포인트 클라우드는 보통 .bin 파일에 저장되며,
    • 각 포인트는 일반적으로 [x, y, z, intensity] 또는 [x, y, z, intensity, ring]과 같은 형태의 벡터로 표현됩니다.
  • RADAR:
    • 5대의 RADAR 센서는 13Hz로 작동하며, 77GHz 주파수를 사용해 물체의 거리와 속도를 측정
    • RADAR 데이터는 라이다에 비해 포인트 수가 적으며, 각 포인트는 위치와 속도 정보(예: [x, y, z, vx, vy, 기타])를 포함하는 벡터 형태로 저장됩니다.
  • Ego Pose:
    • 각 sample에는 자율주행 차량(ego vehicle)의 위치와 자세가 기록되어 있습니다.
    • 일반적으로 translation (x, y, z: 3차원 벡터)와 rotation (quaternion, 4차원 벡터)으로 표현되어 총 7차원의 벡터로 볼 수 있습니다.
  • Calibrated Sensor 및 기타 메타데이터:
    • 각 센서는 외부 좌표계(ego 좌표계로의 변환)를 위한 extrinsic 파라미터(4×4 변환 행렬, 또는 translation [3]와 rotation quaternion [4])와,
    • 카메라의 경우 내재적 파라미터(3×3 intrinsic 행렬)를 포함하는 보정(calibration) 정보를 제공합니다.
  • Annotation (주석):
    • 객체마다 3D 바운딩 박스가 제공되며,
    • 각 박스는 중심 좌표(3), 크기(폭, 길이, 높이; 3), 회전(보통 quaternion 형식의 4 또는 yaw 각만을 별도로 표기하여 총 7 또는 8차원으로 표현) 등의 정보를 포함합니다.

ID

  • nuScenes는 각 객체(차량, 보행자, 자전거 등)에 대해 고유한 instance 토큰을 제공
  • 이 토큰은 scene 내에서 동일 객체에 대한 여러 주석(annotation)을 연결해주므로, 시간에 따른 객체의 일관된 식별(즉, 트래킹용 ID)으로 활용할 수 있습니다.
  • 다만, 이 ID는 정수형 숫자보다는 고유 문자열(토큰) 형태로 제공됩니다.

HD map

  • nuScenes는 HD map 정보를 별도의 테이블로 제공
  • 이 지도 데이터에는 도로, 인도, 주행 가능한 영역 등 환경의 세미틱 정보가 포함
  • nuScenes 데브킷이나 홈페이지에서 지도 정보를 시각화할 수 있습니다.
  • 다만 HD map의 경우, 지도 파일에는 주로 정적이고 세그멘테이션된(예: 드라이버블 서피스, 사이드워크 등) 정보가 들어 있으며,
    • 자세한 벡터 형태의 차선 경계 정보 등은 기본 배포본에서 제한적입니다.

차선 경계 정보

  • HD 맵의 lane 레이어에서 벡터화된 폴리라인(polyline)으로 표현됩니다.
  • 각 차선은 시작점과 끝점을 연결하는 연속적인 좌표 (x, y)로 정의됩니다.
  • 추가 속성:
    • 차선 유형 (예: 차량 전용, 버스 전용, 이중 차선).
    • 차선의 방향성 (예: 양방향, 단방향).
    • 인접 차선과의 연결 정보 (예: 왼쪽 차선, 오른쪽 차선).
# HD 맵 JSON 예시 (차선 데이터)
{
  "token": "lane_123",
  "type": "VEHICLE_LANE",
  "polyline": [[x1, y1], [x2, y2], ..., [xn, yn]],
  "left_neighbor": "lane_456",
  "right_neighbor": "lane_789"
}

연석 정보

  • HD 맵의 walkway 또는 ped_zone 레이어에서 보행자 구역 경계로 표현됩니다.
  • 연석은 일반적으로 보행자 영역과 차량 도로를 구분하는 폴리곤(polygon) 또는 폴리라인으로 정의됩니다.
  • 명시적인 "curb" 레이어는 없지만, 도로 구조에서 연석을 추론 가능합니다.
# HD 맵 JSON 예시 (보행자 구역)
{
  "token": "ped_zone_001",
  "type": "SIDEWALK",
  "polygon": [[x1, y1], [x2, y2], ..., [xn, yn]]
}

신호등 정보

  • HD 맵에 3D 위치가 표시되고, 어노테이션에서 동적 상태 (적색/녹색/황색)가 제공됩니다.
  • 신호등은 traffic_light 레이어에서 점 데이터 (point)로 정의되며, 각 신호등의 3D 위치(x, y, z)가 포함됩니다.
  • 동적 상태는 sample_annotation에서 attribute 필드로 관리됩니다.
  • 예: "attribute_name": "traffic_light.red".
# HD 맵 JSON 예시 (신호등 위치)
{
  "token": "traffic_light_001",
  "type": "TRAFFIC_LIGHT",
  "position": [x, y, z]
}

# 어노테이션 예시 (신호등 상태)
{
  "token": "sample_annotation_123",
  "category_name": "traffic_light",
  "attribute_tokens": ["attribute_red"]  # 상태 정보
}

시각화 예시

from nuscenes.nuscenes import NuScenes
nusc = NuScenes(version='v1.0-mini', dataroot='/path/to/data')
sample = nusc.sample[0]
nusc.render_sample_data(sample['data']['LIDAR_TOP'], show_traffic_lights=True)


2. 데이터 포맷

  • nuScenes 데이터셋은
    • 관계형 데이터베이스 형식의 JSON 및 pickle 파일로
    • 각 테이블(예: scene, sample, sample_data, sample_annotation, ego_pose, sensor 등)을 제공합니다.
  • 메타데이터 파일:
    • 예를 들어, “nuscenes_infos_train.pkl” 파일에는 각 sample에 대한 정보가 딕셔너리 형태로 저장되어 있으며,
      • 여기에는 ego2global 변환 행렬(4×4),
      • lidar_points 관련 정보(파일 경로, 포인트 수, lidar2ego 변환 행렬),
      • 카메라별 정보(이미지 경로, cam2img(3×3), cam2ego(4×4), lidar2cam(4×4) 등)와
      • 객체 주석(3D 박스 정보 등)이 포함되어 있습니다.
  • 센서 데이터 파일:
    • 이미지: JPEG 파일, 각 이미지의 메타정보에는 width, height 등이 기록됩니다.
    • 라이다 포인트 클라우드: .bin 파일로 저장되며, numpy 배열 형식으로 로드할 수 있습니다.
    • 레이더 데이터: RADAR 센서의 경우, .bin 형식으로 저장되며 별도의 처리 모듈을 통해 로드합니다.


3. 벡터화 시 데이터 Shape

3.1 이미지 데이터

  • 원본 이미지: 보통 (H, W, 3) 형태의 numpy 배열로 표현됩니다.
    • 예시: CAM_FRONT 이미지 → 대략 (900, 1600, 3)
    • 만약 딥러닝 모델에 입력할 때는 채널 우선 순서로 변환되어 (3, H, W) (예: (3, 900, 1600))가 됩니다.

3.2 LiDAR 포인트 클라우드

  • 라이다 데이터: .bin 파일을 로드하면, 각 포인트가 [x, y, z, intensity] 또는 [x, y, z, intensity, ring] 형태로 저장되어 있어, 보통 (N, 4) 또는 (N, 5)의 shape를 가집니다.
    • 여기서 N은 프레임마다 다르며, 보통 수만에서 수십만 개의 포인트를 포함할 수 있습니다.
    • 여러 스윕(sweep)을 합치는 경우에는 각 포인트에 시간 차(time delta) 정보를 추가하여 (N, 5) 또는 (N, 6)로 확장되기도 합니다.

3.3 RADAR 데이터

  • 레이더 데이터: RADAR 센서의 출력 포인트는 센서에 따라 다르지만, 일반적으로 [x, y, z, vx, vy, (추가 속성)] 형태의 벡터로 표현되며, shape는 (M, 6) 정도일 수 있습니다.
    • M은 RADAR 포인트의 수로, LiDAR보다 훨씬 적은 경우가 많습니다.

3.4 Ego Pose

  • Ego Pose: 차량의 위치와 자세 정보를 포함하며, translation (3,)와 rotation (quaternion, 4,)을 합쳐 (7,) 크기의 벡터로 표현할 수 있습니다.

3.5 객체 Annotation (3D 바운딩 박스)

  • 바운딩 박스: 각 객체의 3D 박스는 보통 중심 좌표 (3,), 크기 (3,), 그리고 회전(예: yaw 또는 quaternion의 일부) 정보를 포함하여 7차원([x, y, z, length, width, height, yaw]) 또는 8차원으로 벡터화됩니다.

3.6 Calibration 정보

  • 카메라 내재적 파라미터: (3, 3) 행렬
  • 센서 extrinsic 파라미터: 보통 4×4 변환 행렬로 표현되며, 벡터화할 경우 translation (3,)와 rotation (4,)으로 분리하여 (7,) 벡터로 표현할 수도 있습니다.

Panoptic nuScenes:

  • 모든 LIDAR 포인트(총 약 14억 포인트)에 대해 semantic, instance, track 라벨이 부여되어 있어, 세밀한 객체 형태를 파악할 수 있다.

  • 총 32개의 클래스(23개 'thing'과 9개 'stuff')로 구성되며, 자세한 클래스 정의는 별도 문서를 참고한다.

  • 이 어노테이션은 nuScenes 및 nuImages와 호환되어 다양한 센서 모달리티의 연구(예: LIDAR 포인트 클라우드 분할, 객체 추출, 센서 캘리브레이션 등)에 활용 가능하다.

  • 기타:

    • Panoptic nuScenes는 기존 SemanticKITTI 데이터셋의 한계를 보완하여 도시 및 교외의 360도 데이터를 제공하며, 상업적 라이선스 옵션이 별도로 존재한다.
    • 비상업적 용도로 무료 제공되며, 교육 및 연구용으로 활용할 수 있다.

profile
ad_official

2개의 댓글

comment-user-thumbnail
2025년 3월 10일

안녕하세요. 덕분에 nuscenes에 대한 정보 많이 얻고갑니다.
저는 현재 3d-vision 분야 대학원 진학을 목표로 공부하는 학생입니다.
혹시 현재 대학원 진학을 하셨을까요?
포스팅된 글들이 제 관심분야랑 맞아서 질문드립니다!

답글 달기
comment-user-thumbnail
2025년 8월 31일

https://kumu.io/bothbest
https://kumu.io/bothbest/why-do-people-consider-bamboo-flooring
https://www.aleviforum.com/bothbest
https://worldschoolface.com/index.php/profile-55061
https://amazemediacollege.com/forums/users/bothbest/
https://forum.kiasuparents.com/user/bothbest
https://zeroone.art/profile/bothbest
https://www.photocontest.gr/users/bamboo-flooring/
https://medibulletin.com/author/bothbest/
https://www.classiccitynews.com/profile/bothbest/profile
https://www.happycampersmontessori.com/profile/bothbest/profile
https://www.levelupbasketballtrainingllc.com/profile/bothbest/profile
https://www.housedumonde.com/profile/bothbest/profile
https://www.printables.com/@bothbest_3582539
https://www.do3d.com/profile/bothbest/profile
https://www.cambodgemag.com/en/profile/bothbest/profile
https://www.yapstate.gov.fm/profile/bothbest/profile
https://www.mimigstyle.com/profile/bothbest/profile
https://www.clevercomponents.com/portal/community/p9957/bamboo-flooring.aspx
https://www.salesfully.com/profile/bothbest/profile
https://www.blog.bhsusa.com/profile/chinahousehold65215/profile
https://www.informe21.com/profile/bothbest/profile
https://www.hentai-foundry.com/user/bothbest/blogs/20357/The-Unique-Journey-of-Bamboo-Flooring
https://infiniteabundance.mn.co/members/35641220
https://infiniteabundance.mn.co/posts/90004462
https://infiniteabundance.mn.co/posts/90004531
https://visiontrainstation.mn.co/members/35641262
https://visiontrainstation.mn.co/posts/90004581
https://visiontrainstation.mn.co/posts/mind-blowing-unheard-facts-about-bamboo-floors
https://womenindata.mn.co/members/35641326
https://pathwaycitychurch.mn.co/members/35641360
https://pathwaycitychurch.mn.co/posts/90004764
https://pathwaycitychurch.mn.co/posts/90004776
https://aisalon.mn.co/members/35641436
https://www.palistrong.org/members/35641496
https://authortunities-hub.mn.co/members/35641539
https://authortunities-hub.mn.co/posts/eco-friendly-flooring-why-bamboo-is-a-sustainable-choice
https://authortunities-hub.mn.co/posts/bamboo-flooring-thailand-supplier

답글 달기