object-based 3D map of the scene를 생성
합니다.save_objects_all_frames=True
를 사용하여, 매 프레임마다 매핑 결과를 저장할 수 있습니다. 애니메이션 시각화
에 사용할 수 있습니다.scripts/animate_mapping_interactive.py
및 scripts/animate_mapping_save.py
를 통해 merge_interval=20
, merge_visual_sim_thresh=0.8
, merge_text_sim_thresh=0.8
을 사용하여 THRESHOLD=1.2
python slam/cfslam_pipeline_batch.py \
dataset_root=$REPLICA_ROOT \
dataset_config=$REPLICA_CONFIG_PATH \
stride=5 \
scene_id=$SCENE_NAME \
spatial_sim_type=overlap \
mask_conf_threshold=0.95 \
match_method=sim_sum \
sim_threshold=${THRESHOLD} \
dbscan_eps=0.1 \
gsa_variant=none \
class_agnostic=True \
skip_bg=True \
max_bbox_area_ratio=0.5 \
save_suffix=overlap_maskconf0.95_simsum${THRESHOLD}_dbscan.1_merge20_masksub \
merge_interval=20 \
merge_visual_sim_thresh=0.8 \
merge_text_sim_thresh=0.8
SCENE_NAMES=room0
THRESHOLD=1.2
python slam/cfslam_pipeline_batch.py \
dataset_root=$REPLICA_ROOT \
dataset_config=$REPLICA_CONFIG_PATH \
stride=5 \
scene_id=$SCENE_NAME \
spatial_sim_type=overlap \
mask_conf_threshold=0.25 \
match_method=sim_sum \
sim_threshold=${THRESHOLD} \
dbscan_eps=0.1 \
gsa_variant=ram_withbg_allclasses \
skip_bg=False \
max_bbox_area_ratio=0.5 \
save_suffix=overlap_maskconf0.25_simsum${THRESHOLD}_dbscan.1
$REPLICA_ROOT/$SCENE_NAME/pcd_saves
에 저장pkl.gz
파일이 생성되며, _post
접미사가 있는 파일은 일부 후처리 후의 결과를 나타내며, 이 결과를 사용하는 것을 권장save_objects_all_frames=True
옵션과 함께 실행하면, $REPLICA_ROOT/$SCENE_NAME/objects_all_frames
에 폴더가 생성매핑 과정을 시각화하거나 비디오로 저장할 수 있음
python scripts/animate_mapping_interactive.py --input_folder $REPLICA_ROOT/$SCENE_NAME/objects_all_frames/<folder_name>
python scripts/animate_mapping_save.py --input_folder $REPLICA_ROOT/$SCENE_NAME/objects_all_frames/<folder_name>
카메라가 움직이는 동안 객체를 지속적으로 감지
하고, 이전에 감지된 객체
와 새롭게 감지된 객체를 매칭
하여 3D 모델을 갱신hydra
와 omegaconf
를 사용하여 설정 파일(yaml
)에서 설정값을 읽어옵니다.compute_match_batch
함수:spatial_sim
)와 시각적 유사도(visual_sim
)를 기반으로, 기존 객체와 연결
sim_sum
방법을 사용하며, prepare_objects_save_vis
함수:process_cfg
함수:multiscan.yaml
인지 아닌지에 따라 처리 방식이 달라집니다.main
):hydra
의 데코레이터(@hydra.main
)를 통해 yaml
설정 파일에서 설정값을 읽어옵니다.cfg
)을 처리한 후, get_dataset
함수를 통해 데이터셋을 로드BG_CLASSES
에 지정된 "벽", "바닥", "천장"과 같은 배경 클래스들을 따로 처리OnlineObjectRenderer
를 사용하여, 객체의 시각화를 위한 초기 설정 진행
frames
리스트에 저장되어 나중에 비디오로 변환객체 감지 및 매칭:
gobs_to_detection_list
함수가 호출되어, 객체 매칭:
compute_spatial_similarities
, compute_visual_similarities
, aggregate_similarities
와 같은 함수를 사용합니다.객체 데이터의 후처리:
denoise_objects
, filter_objects
, merge_objects
등의 함수를 통해 수행됩니다.감지된 객체와 기존 객체를 시각화
하고, 이를 frames
리스트에 저장pickle
형식으로 저장