새소식

장비 사용 설명서

RELLIS-3D 데이터셋 Annotated PLY 파일에서 라벨값 받아오기

  • -

https://github.com/unmannedlab/RELLIS-3D

 

GitHub - unmannedlab/RELLIS-3D: RELLIS-3D: A Multi-modal Dataset for Off-Road Robotics

RELLIS-3D: A Multi-modal Dataset for Off-Road Robotics - GitHub - unmannedlab/RELLIS-3D: RELLIS-3D: A Multi-modal Dataset for Off-Road Robotics

github.com

 

 

RELLIS-3D 는 학습을 위한 train dataset 으로 annotated ply 파일을 제공합니다. 다음 링크에서 해당 파일을 다운로드 받을 수 있습니다.

 

CloudCompare 에서 확인을 해 보면 이와 같이 포인트에 색깔이 칠해져 있는데, 라벨 정보에 관해서는 다음과 같이 설명이 되어 있습니다.

그런데, 딱히 찾아봐도 이걸 받아오는 코드는 별로 없어서...(너무 간단해서 그런지...) 코드를 공유합니다.

 

import os

def read_ply(filename):
    """ read XYZ point cloud from filename PLY file """
    plydata = PlyData.read(filename)
    pc = plydata['vertex'].data
    pc_array = np.array([[int(x), int(y), int(z), int(intensity), int(t), int(reflectivity), int(ring), int(noise), int(range), int(label), int(red), int(green), int(blue)] for x, y, z, intensity, t, reflectivity, ring, noise, range, label, red, green, blue in pc])
    print(pc_array[300]) #for test
    return pc_array
read_ply(ply 파일 경로)

#출력 결과
[    14     -1     -1    201 194048   4345     44    708  14782      3
      0    102      0]
array([[  0,   0,   0, ...,   0,   0,   0],
       [  0,   0,   0, ...,   0,   0,   0],
       [  0,   0,   0, ...,   0,   0,   0],
       ...,
       [  5,   0,  -1, ...,   0, 102,   0],
       [  4,   0,  -1, ...,   0, 102,   0],
       [  4,   0,  -1, ...,   0, 102,   0]])

 

그러면 다음과 같이 ply 파일 내부의 정보를 포인트별로 읽어올 수 있습니다. 해당 숫자에 매치된 라벨은 논문에서도 확인할 수 있습니다. 

 

(덧. 확인해보니 라벨이 논문에 나타난 숫자들과 맞지 않아서...

github issues 에 올라온 이 항목이 대체로 일치하는듯 합니다.)

간단하긴 한데, 찾아보니 아무도 이와 관련한 글을 써주지 않아서 남깁니다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.