1. OpenPCDet
https://github.com/open-mmlab/OpenPCDet
3d object detection 훈련 및 추론을 위한 toolbox(라이브러리)
현재까지 개발된 다양한 3d object detection 모델을 훈련 및 추론 해볼수 있는 라이브러리
open3d-ml 라이브러리는 아직 개발초기라 지원하는 모델이 소수인게 단점임
3d object detection분야의 주요 논문의 모델을 모두 모아놓은 라이브러리로 3d 데이터 처리의 기초를 공부한 후 3d object detection 논문 공부할때 설치하여 사용해볼것
실습을 위하여 데이터셋을 먼저 다운로드 함
KITTI Dataset 다운로드 방법
2. 설치
개발환경 : wsl2-ubuntu 20.04
(1) GPU device driver 설치
(매우중요) wsl2-ubuntu의 경우 윈도우즈 드라이버를 공유하므로 리눅스에서 별도로 설치 필요없고 윈도우즈에서 드라이버를 설치해야함
오래된 버전은 최신 cuda버전과 호환이 안될수 있으므로 최신버전으로 항상 업데이트할것
먼저 설치된 GPU모델 검색
윈도우즈 검색창 -> 장치 관리자 -> 디스플레이 어댑터 -> 모델명확인 -> GeForce xxx xxxx
드라이버 다운로드 사이트 접속
https://www.nvidia.com/ko-kr/geforce/drivers/
-> GeForce -> 세부모델명 선택 -> 운영체제선택 -> Game Ready 드라이버 선택 -> 최신드라이버 선택 -> 다운로드후 설치
윈도우즈에서 드라이버 설치확인
> nvidia-smi
Cuda 버전은 현재 설치된 버전을 의미하는게 아니고 호환이 가장 잘되는 버전을 추천하는것임
(2) WSL2-ubuntu 20.04 설치
아래 첨부문서의 1~16페이지 설치과정대로 설치
(3) wsl2-ubuntu용 anaconda 설치
WSL2-ubuntu 20.04 실행 후 아래 사이트 안내대로 설치
https://www.anaconda.com/docs/getting-started/anaconda/install#linux-installer
macOS/Linux installation 선택 -> Linux installer 선택 후 안내대로 설치하면됨 -> WSL2-ubuntu 20.04 종료후 다시 실행
(4) wsl2-ubuntu용 Cuda 설치
Wsl2-ubuntu용 Cuda 11.8 설치, cudnn은 pytorch설치시 설치되는것 같음(?)
WSL2-ubuntu 20.04 실행 후 아래 사이트 안내대로 설치
cuda 버전목록 사이트
https://developer.nvidia.com/cuda-toolkit-archive
11.8버전으로 선택하고 linux, x86_64, wsl2-ubuntu, 2 버전, local 설치에서 마지막 명령어를 다음처럼 수정할것
$ sudo apt-get -y install cuda-11-8
환경변수 설정 -> 편집기 없이 명령어로
$ echo 'export PATH=/usr/local/cuda-11.8/bin:$PATH' >> ~/.bashrc
$ echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
$ source ~/.bashrc
설치확인 -> 버전11.8확인 할것
$ nvcc --version
(참고사항) cuda 삭제방법
$ dpkg -l | grep cuda
$ sudo apt remove --purge '^cuda-.*'
$ sudo apt remove --purge 'nvidia-cuda*' 'cuda*' 'libcudnn*'
$ sudo rm -rf /usr/local/cuda*
$ sudo apt autoremove
$ sudo apt clean
.bashrc 환경변수 삭제
(5) 가상환경생성
파이썬 버전을 3.8로 하면 설치는 가능하나 데모코드가 실행안됨-> 3.10으로 설치
WSL2-ubuntu 20.04 실행 후 아래 사이트 안내대로 설치
$ conda create --name openpcdet python=3.10
$ conda activate openpcdet
이후 모든 설치과정은 openpcdet 가상환경을 활성화 하고 진행할것
(참고사항) 가상환경 삭제방법
$ conda remove --name <가상환경명> --all
(6) 파이토치 설치, cuda 11.8 선택
$ pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
(7) Spconv 설치-> 리눅스에서는 cuda없이도 실행가능하다고 함
https://github.com/traveller59/spconv
$ pip install spconv-cu118
(8) OpenPCDet 설치
pip명령어 대신 깃허브에서 소스코드 다운로드받고 빌드해서 설치하는 방식사용
소스 다운로드
$ git clone https://github.com/open-mmlab/OpenPCDet.git
$ cd OpenPCDet
의존패키지 설치
$ pip install -r requirements.txt
빌드 및 설치
$ python setup.py develop
설치확인
$ conda list
-> python, openpcdet, spconv, pytorch 등 설치한 패키지 버전 확인
3. 선행학습된 모델파일을 이용한 추론 테스트
demo.py 의존패키지 설치
$ pip install opencv-python
$ pip install open3d
$ pip install av2
$ pip install kornia==0.6.8
환경변수 설정 -> open3d문제 해결위함, Wsl2와 관련된 문제임
$ echo 'export XDG_SESSION_TYPE=x11' >> ~/.bashrc
$ echo 'export LIBGL_ALWAYS_SOFTWARE=1' >> ~/.bashrc
$ source ~/.bashrc
OpenPCDet 깃허브 첫화면의 Model zoo에서 pv_rcnn_8369.pth와 KITTI 데이터셋에서 000008.bin 파일을 ~/OpenPCDet/tools 디렉터리 아래에 다운로드
$ cd ~/OpenPCDet/tools
$ python demo.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml --ckpt pv_rcnn_8369.pth --data_path 000008.bin
(실행결과)
4. 설치 참고자료
(1) pytorch 라이브러리를 이용하여 cuda,cudnn버전 확인하는 코드
import torch
# PyTorch가 빌드될 때 사용한 CUDA 버전
print("PyTorch 빌드 시 CUDA 버전:", torch.version.cuda)
# 현재 시스템에서 사용 가능한 CUDA 런타임 버전
if torch.cuda.is_available():
print("현재 시스템의 CUDA 런타임 버전:", torch.version.cuda)
print("cuDNN 버전:", torch.backends.cudnn.version())
else:
print("CUDA를 사용할 수 없습니다.")
(2) 리눅스에서 사용되는 그래픽 서버 확인
linux gui app. -> x11 or wayland on wsl-ubutntu -> WSLg on windows(WSL settings에서 확인가능)
$ echo $XDG_SESSION_TYPE
$ echo $DISPLAY -> :0으로 출력되어야함
(3) WSL2 GUI 앱실행 오류 관련
https://github.com/microsoft/wslg/wiki/Diagnosing-%22cannot-open-display%22-type-issues-with-WSLg
(4) ubuntu24.04, cuda12.8, python3.10 설치성공, demo.py실행 오류
$ conda install -c conda-forge libstdcxx-ng
$ strings $(find $CONDA_PREFIX -name "libstdc++.so.6") | grep GLIBCXX
(5) python 3.8 설치시
$ pip install numpy==1.23.4
(6) Libffi 오류 해결방법
$ export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libffi.so.7
(7) 자율주행 AI경진대회 제공자료