[Perception] Open Dataset
0. Intro
MLOps 파이프라인
- 모델링
- 데이터 탐색 (EDA)
: 목적에 맞는 클래스, 데이터 비율, 환경을 확인해야한다
- 데이터 가공
: 전처리 과정 (augmentation, noise 제거)
- 데이터 나누기
: train, val, test로 골고루 나누어야한다
- 학습 방법 결정
- 모델 만들기
- 모델 검증
- 운영
- 대규모 학습
: 오래 걸리기 때문에 모델 검증을 통해 확인한 모델을 학습한
- 대규모 배포 준비
- 배포 / 운영
- 로깅
- 모니터링
1. KITTI Dataset
setup
- 센서가 차량에 어디에 위치해있는지 알 수 있다
- 현재 차량의 위치, 다른 object들간의 관게를 알 수 있다
- 센서들의 좌표계를 확인하는 것이 중요하다
- LiDAR : x
- GPS : x
- Camera : z
- 이렇게 3가지의 축이 같은 방향을 나타내기 떄문에 이를 일치시켜 주어야한다
Object Detection
- 2D Object Detection
- 2D Object Detection과 orientationo을 benchmark하는 데이터 제공
- 2D bouniing box 사용
- precision - recall로 성능 확인
- 3D Object Detection
- point cloud 데이터(LiDAR가 있어서 가능)도 있다
- Bird's Eye View
2D Object Detection
- left, ringt 이미지
- LiDAR 데이터
- Calibration 정보
- 레이블링 데이터
- 레이블링 format
- download training labels of object data set을 클릭하여 레이블링 데이터를 받는다
- download object development kit을 클릭하여 2D object detection과 관련된 정보를 받는다
- object development kit 파일에서 readme.txt 파일 확인 -> 레이블링 포맷 확인
- training labels of object data set 파일에서 레이블링 파일 확인
YOLO v3 모델을 사용한다면
- github 주소
- train custom data 문서 참고
- 학습 데이터를 정의해놓은 dataset.yml 파일을 원하는 데이터에 맞게 수정한다
- YOLO가 읽어들이는 데이터 포맷을 알아야한다
- bbox의 좌표를 표현할 때 0~1 사이의 값으로 표현되어야한다
- 데이터 포맷 : class_id, center_x, center_y, width, height
데이터 불러오기 및 label 저장 방법
- 파일 목록 가져오기()
: python glob 또는 os 패키지 활용
- 문자열 분할()
: 레이블링 데이터 포맷을 함소
- YOLO 포맷 저장하기()
: YOLO bbox 표현에 맞게 변환하여 저장
2. BDD
- BDD homepage
- 자율주행을 위한 딥러닝 데이터
- segmentation 데이터로 구성되어 있다
- 다양한 도시, 다양한 환경(날씨, 시간)에서 보다 현실적인 상황을 담으려고 한다
JSON
- JavaScript Object Notation
- JavaScript 언어의 자료형을 텍스트로 표현한 포맷
- 괄호 {}를 기준으로 블록을 분할한다
- "이름" : 값(숫자), "문자열" 형식으로 지정
- 괄호 []는 배열을 의미
- python json 패키지는
- {} : dictionary 객체로 반환
- [] : list 객체로 반환
3. Cityscape
- cityscape homepage
- 다양한 도시의 도로 semantic segmentation 데이터
- bbox에는 4개의 point가 필요했다면 다각형은 N개의 point가 필요하다
- 데이터 구조
- gtFine : labels
- leftImg8bit : 이미지
- 폴더 이름으로 도시를 구분한다
- 한개의 이미지에 대해 4개의 label 데이터가 있다
- 파일이 담고 있는 내용
- color.png
- 객체를 고유한 color로 표현한 참고용 이미지
- 차 앞부분의 본넷은 사용하지 않는다
- instancelds.png
- 각 객체를 개별적인 아이디로 구분한 이미지
- 서로 색이 다 다르다
- labellds.png
- 각 객체를 동일한 클래스로 구분한 이미지
- polygons.json : label의 원본 파일
- JSON 파일 구조