2019년 9월 12일 목요일

딥러닝 기반 3차원 포인트 클라우드 학습 및 객체 인식 방법

이 글은 대표적인 딥러닝 기반 3차원 포인트 클라우드 학습 및 객체 인식 모델 사용방법 대한 내용을 간단히 정리한다.

JSIS3D
JSIS3D는 3차원 포인트 클라우드 데이터에서 시멘틱 기반 객체 인식을 위한 딥러닝 학습 및 예측 모델이다.

JSIS3D 모델

다음은 이 모델의 github 링크이다.
사용 순서는 다음과 같다.

1. 파이썬 및 파이토치 설치
Python 3.5 이상. Pytorch 0.4 이상

CUDA를 사용할 경우, CUDA도 설치해야 한다. 버전체크는 여기를 참고한다.

2. 소스코드 & data set 다운로드
git clone https://github.com/pqhieu/jsis3d

download S3DIS dataset https://drive.google.com/open?id=1s1cFfb8cInM-SNHQoTGxN9BIyNpNQK6x
copy S3DIS dataset file to data/s3dis/h5 folder

3. 소스 빌드
cd external/densecrf
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release ..
make
cd ../../.. # You should be at the root folder here
make

4. 딥러닝 학습
python train.py --config configs/s3dis.json --logdir logs/s3dis

그럼, 훈련할 점군을 다운로드한 후 학습을 시작한다. 만약 CUDA 메모리 에러가 발생할 경우, config/s3dis.json 파일에 설정된 batch_size 수를 16 > 8 > 4 > 2 > 1 씩 줄여보길 바란다.

단, pytorch "ValueError: Expected more than 1 value per channel" 에러가 발생하면, batch_size를 좀 더 높여야 한다(넉넉한 GPU 메모리가 장착된 컴퓨터 권장함).

학습데이터는 이미 라벨링된 3차원 점군이 저장된 S3DIS 데이터셋이다. 참고로, S3DIS는 건물 6개 영역을 RGBD로 스캔하여 1,413 스캔 위치에서 25,434 RGBD이미지와 695,878,620 포인트 클라우드를 제공하고 있다. 스캔 데이터는 ceiling, floor, wall, beam, column, door, window, table, chair, sofa, bookcase, board 등으로 구분해 라벨링되었다.

5. 딥러닝 예측
python pred.py --logdir logs/s3dis --mvcrf

평가를 위해서는 다음 명령을 입력한다.
python eval.py --logdir logs/s3dis

Point cloud semantic segmentation using 3D CNN
이 모델은 CNN(convolutional neural network)를 이용한 시멘틱 기반 세그먼테이션 딥러닝 학습 모델이다. github 링크는 다음과 같다.
1. pytorch install
앞서 설명한 내용 참고.

2. 소스 빌드 및 데이터 준비
git clone https://github.com/nsavinov/semantic3dnet
cd build
./setup.sh
./build_run.sh

3. 데이터 훈련
cd ../src
./launch_training.sh

4. 데이터 예측
./launch_prediction.sh

5. 벤치마킹 결과 제출
./prepare_to_submit.sh
data/benchmark/submit.zip 파일을 http://www.semantic3d.net/submit_public.php 에 제출


레퍼런스

댓글 없음:

댓글 쓰기