cd /path/to/data
# Replica.zip을 수동으로 다운로드할 수도 있습니다.
# 링크: https://caiyun.139.com/m/i?1A5Ch5C3abNiL 비밀번호: v3fY (압축 파일 크기 제한으로 인해 작은 zip 파일로 나뉘어 있음)
wget https://cvg-data.inf.ethz.ch/nice-slam/data/Replica.zip
unzip Replica.zip
conceptgraph/hydra_configs
디렉토리의 구성 파일에서 경로를 업데이트해야 합니다. rerun_realtime_mapping.py
스크립트부터 시작하는 것을 권장합감지를 실행
하고, 씬 그래프를 빌드
하며, 결과를 하나의 루프에서 시각화
# set up your config first as explained below, then
cd /path/to/code/concept-graphs/conceptgraph/
python slam/rerun_realtime_mapping.py
./conceptgraph/hydra_configs
디렉토리의 해당 .yaml 파일에서 예를 들어, 제 ./conceptgraph/hydra_configs/rerun_realtime_mapping.yaml 파일은 다음과 같습니다:
defaults:
- base
- base_mapping
- replica
- sam
- classes
- logging_level
- _self_
detections_exp_suffix: s_detections_stride_10_run2 # 감지 실행의 편리한 이름
force_detection: !!bool False
save_detections: !!bool True
use_rerun: !!bool True
save_rerun: !!bool True
stride: 10
exp_suffix: r_mapping_stride_10_run2 # 매핑 실행의 편리한 이름
repo_root: /home/kuwajerw/repos/concept-graphs
data_root: /home/kuwajerw/local_data
cd /path/to/code/concept-graphs/conceptgraph/
python /slam/rerun_realtime_mapping.py
모델이 설치되지 않은 경우 자동으로 다운로드될 것
결과는 해당 데이터셋 디렉토리에 있는 exps 폴더에 저장
구성 파일에 설정된 exp_suffix 이름으로 폴더가 생성되며,
참고:
Replica 데이터셋의 room0에서 매핑 스크립트를 실행한 출력은 다음과 같습니다:
./Replica # 데이터셋 루트
./Replica/room0 # scene_id
./Replica/room0/exps # conceptgraphs의 모든 결과의 부모 폴더
./Replica/room0/exps/s_detections_stride_10_run2 # 감지 실행의 폴더, exp_suffix에 따라 이름이 지정됨
./Replica/room0/exps/s_detections_stride_10_run2/vis # 시각화가 저장되는 위치, 경계 상자와 마스크가 오버레이된 이미지들
./Replica/room0/exps/s_detections_stride_10_run2/detections # 감지 결과가 저장되는 위치, 사전 형식의 pkl.gz 파일로 저장됨
./Replica/room0/exps/r_mapping_stride_10_run2/ # 특정 실행의 매핑 출력 폴더, exp_suffix에 따라 이름이 지정됨
./Replica/room0/exps/r_mapping_stride_10_run2/config_params.json # 실행에 사용된 구성 파일
./Replica/room0/exps/r_mapping_stride_10_run2/config_params_detections.json # 사용된 감지 실행의 구성 파일도 저장됨
./Replica/room0/exps/r_mapping_stride_10_run2/pcd_r_mapping_stride_10_run2.pkl.gz # 매핑 결과가 저장된 pkl.gz 파일
./Replica/room0/exps/r_mapping_stride_10_run2/s_mapping_r_mapping_stride_10_run2.mp4 # 매핑 프로세스 비디오가 저장된 mp4 파일
./Replica/room0/exps/r_mapping_stride_10_run2//saved_obj_all_frames # save_objects_all_frames=True로 설정된 경우, 개체 매핑 결과가 저장됨
./Replica/room0/exps/r_mapping_stride_10_run2/saved_obj_all_frames/det_exp_s_detections_stride_10_run2 # 각 감지 실행에 대한 폴더, 각 개체 매핑 결과에 대한 pkl.gz 파일이 있음
cd /path/to/code/concept-graphs
python conceptgraph/scripts/visualize_cfslam_results.py \
--result_path latest_pcd_save
cd /path/to/code/concept-graphs
python conceptgraph/scripts/visualize_cfslam_results.py \
--result_path /path/to/data/Replica/room0/exps/r_mapping_stride_10_run2/pcd_r_mapping_stride_10_run2.pkl.gz
open3d 시각화 창에서 다음 키 콜백을 사용하여 시각화를 변경할 수 있습니다:
b
를 눌러 배경 포인트 클라우드(벽, 바닥, 천장 등)를 전환c
를 눌러 태깅 모델의 개체 클래스로 포인트 클라우드를 색칠
r
을 눌러 RGB로 포인트 클라우드를 색칠
f
를 눌러 텍스트를 입력한 다음, 입력 텍스트와 CLIP 유사성으로 포인트 클라우드를 색칠
i
를 눌러 개체 인스턴스 ID로 포인트 클라우드를 색칠
Replica room0 씬에서 "cabinet"을 검색하는 예시는 다음과 같습니다.
f
를 눌러 Enter your query:
입력을 트리거합니다.class ProgramArgs:
# 이 폴더에는 메타데이터 폴더와 rgb 폴더 등이 포함되어 있습니다.
datapath = "/home/kuwajerw/local_data/record3d_scans/co_store"
concept-graphs/conceptgraph/slam/r3d_stream_rerun_realtime_mapping.py
스크립트를 사용할 수 있음sudo apt install cmake
git clone https://github.com/marek-simonik/record3d
cd record3d
python setup.py install
cd /path/to/code/concept-graphs/conceptgraph/
python /slam/r3d_stream_rerun_realtime_mapping.py
클래스 파일은 객체 감지 모델에 대한 클래스 레이블 세트로 사용됩니다.
이는 "오픈-보카블러리-성"을 일부 희생하면서 더 안정적인 감지를 위해 타협하는 것입니다.
두 개의 클래스 파일을 사용할 수 있습니다:
concept-graphs/conceptgraph/scannet200_classes.txt
concept-graphs/conceptgraph/ram_classes_4500.txt
scannet 클래스는 scannet200 데이터셋의 레이블입니다. ram 클래스는 RAM 모델의 태그입니다.
export XKB_CONFIG_ROOT=/usr/share/X11/xkb
지금은 여기까지이며, 앞으로 더 많은 정보를 추가할 예정입니다.