ViLaIn
1.0.0
Vision-Language Interpreter(ViLaIn)의 공식 구현입니다. 자세한 내용은 우리 논문을 참조하세요.
이 구현에는 Python>=3.10
및 torch>=2.0.0
필요합니다. PyTorch를 설치하려면 https://pytorch.org/의 지침을 따르십시오.
빌드 지침에 따라 fast-downward 및 VAL을 설치합니다. 설치 후, downward
디렉터리 아래에 validate
바이너리를 복사합니다.
지침에 따라 접지 DINO를 설치하십시오.
data
에는 세 가지 도메인에 대한 PDDL 파일, 관찰 및 지침이 포함되어 있으며, 이를 논문에서 ProDG 데이터세트로 표시했습니다. 이 디렉토리에는 annotated_bboxes
에 주석이 달린 경계 상자도 포함되어 있습니다. 디렉토리 구조는 다음과 같습니다.
data
└─domains
└─domain.pddl (A PDDL domain file)
└─problems (PDDL problem files)
└─problem*.pddl
└─observations (Observations for the initial state)
└─problem*.jpg
└─instructions (Linguistic instructions)
└─problem*.txt
└─annotated_bboxes (Annotated bounding boxes)
└─problem*.json
results/reported_results
에는 생성된 PDDL 문제와 논문에 보고된 발견 계획이 포함되어 있습니다. 디렉터리에는 각 도메인에 대한 세 개의 하위 디렉터리도 있습니다.
plain
: 정정 재요구가 없는 결과refine_once
: plain
문제에 대한 수정 재요청을 적용한 결과refine_twice
: refine_once
의 문제에 대해 수정 재요청을 적용한 결과 경계 상자가 있는 객체를 감지하고 캡션을 생성하려면 다음을 실행하세요.
export domain=cooking
export grounding_dino_dir=./GroundingDINO
export result_dir=./results/temp/${domain}
python scripts/main.py
--data_dir "./data/${domain}"
--result_dir ${result_dir}
--grounding_dino_dir ${grounding_dino_dir}
--predict_bboxes
이 단계는 PDDL 문제가 발생하기 전에 수행되어야 합니다.
예측된 경계 상자 및 캡션을 기반으로 PDDL 문제를 생성하고 계획을 찾으려면 다음을 실행하세요.
export domain=cooking
export downward_dir=./downward
export result_dir=./results/temp/${domain}
export num_repeat=2
export num_examples=3
python scripts/main.py
--downward_dir ${downward_dir}
--data_dir "./data/${domain}"
--result_dir "${result_dir}"
--num_repeat ${num_repeat}
--num_examples ${num_examples}
--gen_step "plain"
--generate_problem
--find_plan
생성된 PDDL 문제를 평가하고 발견된 계획의 유효성을 검사하려면 다음을 실행하세요.
export domain=cooking
export downward_dir=./downward
export result_dir=./results/temp/${domain}
export num_repeat=2
python scripts/evaluate.py
--downward_dir ${downward_dir}
--data_dir "./data/${domain}"
--result_dir "${result_dir}"
--num_repeat ${num_repeat}
--gen_step "plain"
수정된 재요청을 통해 생성된 PDDL 문제를 구체화하려면 다음을 실행하세요.
export domain=cooking
export downward_dir=./downward
export result_dir=./results/temp/${domain}
export num_repeat=2
python scripts/main.py
--downward_dir ${downward_dir}
--data_dir "./data/${domain}"
--result_dir "${result_dir}"
--num_repeat ${num_repeat}
--gen_step "refine_once"
--prev_gen_step "plain"
--refine_problem
--use_cot
--find_plan
@misc{shirai2023visionlanguage,
title={Vision-Language Interpreter for Robot Task Planning},
author={Keisuke Shirai and Cristian C. Beltran-Hernandez and Masashi Hamaya and Atsushi Hashimoto and Shohei Tanaka and Kento Kawaharazuka and Kazutoshi Tanaka and Yoshitaka Ushiku and Shinsuke Mori},
year={2023},
eprint={2311.00967},
archivePrefix={arXiv},
primaryClass={cs.RO}
}