실습 환경
Os: ubuntu 20.04 LTS
GPU: RTX 4070 Ti SUPER
wsl에서 cuda 11.8을 설치하는 명령어
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
sudo apt update
sudo apt install -y cuda-toolkit-11-8
wget명령어를 사용해 다운로드 하는방법
wget https://repo.anaconda.com/archive/Anaconda3-2023.07-1-Linux-x86_64.sh
이후 다운받은 파일을 실행(버전은 다를수 있음)
bash Anaconda3-2023.07-1-Linux-x86_64.sh
이후 엔터를 누르고 라이선스 동의에 yes를 입력
환경변수를 확인해 Anconda가 추가되었는지 확인하고 없는 경우 수동으로 추가
가상환경 생성
OpenPCDet install가이드
https://github.com/open-mmlab/OpenPCDet/blob/master/docs/INSTALL.md
가상환경 생성 명령어
conda create -n openpcdet python=3.8 -y
가상환경 활성화
conda activate openpcdet
OpenPCDet 래퍼지스토리 클론
git clone https://github.com/open-mmlab/OpenPCDet.git
pytorch 설치 명령어
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
spconv 설치 명령어(11.8버전에 맞게 설치)
pip install spconv-cu118
OpenPCDet 의존성 설치
pip install -r requirements.txt
OpenPCDet 설치
python setup.py develop
Waymo Open Dataset (WOD) 3D detection evaluation metrics를 사용하기 위해서 아래의 명령어 사용
pip install waymo-open-dataset-tf-2-11-0==1.6.1
pip install numpy==1.23.4
pip install av2==0.2.0
pip install kornia==0.6.5
pip install protobuf==3.20.3
pip install spconv-cu118
Waymo 데이터셋 다운로드
https://waymo.com/open/download/
객체 탐지(Object Detection) 및 3D 인식 모델을 학습하려면 Perception Dataset을 선택한다.
1.Perception Dataset 다운로드를 클릭해 수동으로 로컬에 다운로드 받는 방법
데이터를 로컬에 다운로드 받는 방법 train,val, test데이터 셋을 클릭하여 하나씩 다운로드 받으면 된다.
2.waymo dataset을 gsutil(Google Cloud SDK)다운로드 명령어 사용하는 방법
wsl환경이기 때문에 브라우저를 자동으로 실행하지 않고, 수동으로 인증해야함
아래의 명령어를 사용해 인증을 시작
gcloud auth login --no-launch-browser
그 후 위 링크를 클릭하여 google아이디를 입력하여 웹 브라우저에서 로그인 후, 인증 코드가 표시됨
인증이 정상적으로 완료되었는지 확인 하는 명령어
gcloud auth list
자신의 google 계정이 ACTIVE 되어있으면 성공
현재 사용 가능한 프로젝트 목록 출력 명령어
gcloud projects list
새로운 Google Cloud 프로젝트 만드는 방법
google cloud console 사이트에 들어가 새 프로젝트 만들기 하면 프로젝트가 생성됨
자신의 프로젝트 id를 넣어서 실행
gcloud config set project [project_id]
gitclone 상태에는 ImageSets 폴더만 있으므로
명령어로 raw_data 폴더 생성
mkdir -p ~/OpenPCDet/data/waymo/raw_data
그후 다운로드 사이트에서 다운로드를 클릭하면
위 그림과 같은 명령줄 코드가 뜨는데 저 코드는 모든 데이터셋을 다운로드 하는 대용량(1.8T) 코드 이므로
아래의 코드를 사용해 train 데이터셋을 개별로 받아서 저장 하나의 파일당 약 25G 0~31까지 존재하므로 필요한 만큼 다운받아 진행
gsutil -m cp -r "gs://waymo_open_dataset_v_1_4_3/archived_files/training/training_0000.tar" .
20% 훈련 데이터셋 다운로드 후 검증 데이터셋은 0~7까지 존재 하므로
아래의 명령어를 사용해 검증 데이터셋 전체를 다운로드 약(150G)
gsutil -m cp -r "gs://waymo_open_dataset_v_1_4_3/archived_files/validation/" .
훈련 데이터셋과 검증 데이터셋을 raw_data폴더에 압축을 해제한 모습
| 데이터셋 변환 | single-frame | multi-frame |
| 장점 | 단일 프레임이므로 계산량이 적음 | 한 프레임에서 가려진 물체도 과거 프레임에서 검출 가능 추적가능 |
| 단점 | 과거 프레임 정보가 없어 작은 물체나 가려진 물체 검출 어려움 추적불 | 계산량 증가 프레임이 많아질수록 레이턴시 증가 (실시간 사용 힘듬) |
위 사진의 모습은 waymo_dataset의 info를 생성하는 모습이다. 이 과정은 GPU가 아니라 CPU에서만 돌아가므로 CUDA관련 오류들이 발생해도 무시해도 된다!
현재 train0~6 val 0~7를 다운로드 하였음
Waymo dataset 구조
waymo dataset 크기는 약 390,000 프레임 (20초 길이 2,030 세그먼트)
| 프레임 | 자율주행 차량의 센서가 한 번 촬영한 데이터 |
| 세그먼트 | 여러 개의 연속된 프레임이 모인 하나의 주행 기록( 각 세그먼트는 20초) |
| 주행 주파수 | Waymo 데이터는 10Hz |
총 데이터의 수는 약 390,000 프레임 이며 20초길이의 2,030 세그먼트로 구성되어있다.
하나의 세그먼트는 20*10hz =약 200 프레임 이다.