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
지금은 여기까지이며, 앞으로 더 많은 정보를 추가할 예정입니다.