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 형식으로 저장