Complex-YOLOv4란
쉽게 말해서, 객체 검출에 흔히 쓰이는 YOLO알고리즘에서 클라우드 데이터(PCD)에 특화된 알고리즘이다.
셋업 방법
GitHub: https://github.com/maudzung/Complex-YOLOv4-Pytorch

<Windows 기준>
작업 표시줄의 검색 > 명령 프롬프트 or cmd 검색 > 열기

(설치해야 할 라이브러리가 꽤 있으니 가상환경을 만드는 것이 좋다)
① 깃허브 clone
git clone https://github.com/maudzung/Complex-YOLOv4-Pytorch
위의 코드를 cmd 창에 해당 명령어 입력
② 라이브러리 설치
pip install -U -r requirements.txt
++만약 cuda(gpu)를 사용할 예정이라면, pytorch보다 cuda를 먼저 다운받아야 한다
(방법은 아래 데이터 설치 부분에 있다)
몇 년전에 쓰여진 코드라 최신 버전을 설치하는 것이 좋다(2023년 8월 기준)
따라서 필요에 따라 requirements.txt를 수정해서 설치해주었다.

다른 라이브러리에도 버전 오류가 뜬다면 삭제 후 최신 버전을 설치해주면 된다.
++필요 추가 라이브러리
pip install mayavi pyQt5
pip install shapely
해당 알고리즘의 기반이 된 KITTI DATA를 통해서 알고리즘을 돌려보았다.
KITTI DATA셋은
자율주행 자동차의 실시간 객체 탐지에 쓰이는 데이터셋으로,
이미지 데이터, 캘리브레이션 데이터, 클라우드 데이터, 라벨링 데이터로 구성되어 있다.
만약, 자신이 원하는 다른 데이터셋으로 돌리고 싶다면 그에 맞는 수정이 필수적이다.
KITTI DATA 다운로드
: https://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d
다운로드 하고싶은 데이터를 클릭하여, 받고싶은 이메일을 입력하면 쉽게 다운로드 가능하다.

별 표시가 되어있는 데이터들이 해당 알고리즘에서 쓰여지는 데이터들이다.
velodyne 데이터는 용량이 크기 때문에다운로드에 상당 시간이 소요될 수 있다.

다운로드가 끝나면, 다음의 압축파일들이 받아진다.
====================================================================
원하는 디렉토리에 압축을 해제한 후, 해당 데이터들을 사용해서 훈련을 돌려보자
!주의
만약 CUDA보다 PYTORCH를 먼저 설치한다면

다음과 같은 오류가 생길 수 있다.
자신의 GPU와 맞는 CUDA드라이브 및 툴을 설치해주자

나는 30시리즈 이기 때문에 11.0.1을 설치해주었다.
30시리즈부터는 CUDA 11이상을 지원한다.
CUDA 설치 후 PYTORCH를 최신버전으로 재설치한다.

아래와 같은 화면이 뜨면, CUDA를 쓸 수 있는 환경이 되었다는 것이다.

시험용으로 돌려보고 싶어 다음과 같은 코드로 훈련했다.
python train.py --gpu_idx0 --batch_size 8 --num_workers 2 --num_epochs 10 --lr 0.001
훈련 시간은 epoch 10, batch 8로 2시간 정도가 소요되었다.