이전 게시물에서 한 시도는 MMDetection3D는 아니고,
MMDetection3D를 활용하여 코드를 간소화한 easy 버전 이었습니다.
데이터를 커스터마이징해서 넣는 과정에서 오류가 너무나 많이 발생하였고,
코드 자체가 데이터 커스터마이징을 상정하지 않았기 때문에 코드 단위로 다 뜯어서 고쳐야 할 것 같더라고요.
그래서 이번에는 MMDetection3D를 이용하여, 다시 새롭게 시도해보고자 합니다.
- 환경
- ubuntu 20.04
- Cuda 11.2
- Venv 생성
python3 -m venv pillar # 가상환경 pillar 생성
source ./bin/activate # activate
- 혹시 모르니 버전 업데이트
pip install --upgrade pip
sudo apt update
sudo apt upgrade
- nvcc -v 가 인식이 안되길래
https://callmescone.tistory.com/275 참고해서 가상환경 안에서 Cuda 설치를 진행시켰습니다.
venv 폴더 안에 cuda_11.2.2 설치파일 받고, run 시켜주고
그러면 이미 깔려있다고 해서 update 해줬는데
갑자기 인식이 된다. 왜 되는거지?
다음번에 할 때는 "가상환경 별 cuda 버전 관리" 라고 인터넷에 검색해봐야겠다.
- Pytorch 설치
- cuda 11.0 버전으로 설치했다.
pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
MM3D 설치
https://github.com/open-mmlab/mmdetection3d/blob/master/docs/en/getting_started.md#installation
GitHub - open-mmlab/mmdetection3d: OpenMMLab's next-generation platform for general 3D object detection.
OpenMMLab's next-generation platform for general 3D object detection. - GitHub - open-mmlab/mmdetection3d: OpenMMLab's next-generation platform for general 3D object detection.
github.com
- MM3D 링크를 참조하여 이후 설치를 진행하였다.
# mmdet에서 권장하는 설치 라이브러리 openmim
pip install openmim
mim install mmcv-full
mim install mmdet
mim install mmsegmentation
git clone https://github.com/open-mmlab/mmdetection3d.git
cd mmdetection3d
# python setup.py develop
pip install -e .
openmim을 설치하면 mmdetection과 mmsegemtation을 일일히 깃 클론하여 python setup.py develop 를 하지 않아도 된다.
DEMO CHECK
- 잘 설치 되었나 데모를 실행해보자.
- 아래 링크로부터 학습된 pointpillars 모델을 가져왔다.
https://github.com/open-mmlab/mmdetection3d/tree/master/configs/pointpillars
class가 차 하나일 때와 차, 자전거, 사람 3 개일 때 모두 한번 해보기 위해 모델 두개를 다운받았고,
mmdetection3d에 checkpoints 폴더를 만들어 저장해두었다.
- 데모 실행
- 순서대로 demo.py, pcd 파일 경로, config 파일 경로, model 파일 경로 를 작성하였다.
- 이름에서 유추하자면, pointpillars 모델, specfpn을 사용한, 160 epochs로 학습시킨 모델이다.
python demo/pcd_demo.py demo/data/kitti/kitti_000008.bin configs/pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-car.py checkpoints/hv_pointpillars_secfpn_6x8_160e_kitti-3d-car_20220331_134606-d42d15ed.pth
- ERROR
- "SystemError: initialization of _internal failed without raising an exception"
- 해결 : https://stackoverflow.com/questions/74947992/how-to-remove-the-error-systemerror-initialization-of-internal-failed-without
- numpy version 1.24.0 이 현재 최신 버전인데 뭔가 호환이 안된다는 것 같다. version 1.23.5 로 낮추자 에러가 사라졌다.
pip install numpy==1.23.5
다음과 같이 points와 cuboid에 대한 obj 파일이 각각 두 개가 나온다.
meshlab을 통해 visualize 할 수 있다고 한다.
- meshlab 설치
sudo snap install meshlab
points mesh와 cuboid mesh를 불러와서 시각화 해볼 수 있었습니다.
색깔도 바꿔볼 수 있네요
'Project' 카테고리의 다른 글
[MMDetection3D] KITTI Data Prepare (0) | 2023.02.09 |
---|---|
[MMDetection3D] ply to bin, obj to ply (0) | 2023.02.09 |
[PCD] Cuboid 필터링 하기 (2) | 2023.02.01 |
MaskRCNN 가이드 (0) | 2022.12.14 |
[Pointpillars] Kitty Dataset #2 (0) | 2022.12.05 |