Vio1etV's picture
vanilla baseline code + eval sources + Experiment scripts + setup_envs
42f2d62 verified
Raw
History Blame Contribute Delete
2.45 kB
from evo_vlac import GAC_model
from evo_vlac.utils.video_tool import compress_video
import os
#Consistent with the web interface, the value and citic rewards of video input can be evaluated.
#assign local model path
model_path="/home/vcj9002/jianshu/workspace/weight/VLAC"
#download model form https://huggingface.co/InternRobotics/VLAC
#assign video path and task description
test_video='evo_vlac/examples/videos/pick-bowl-test.mp4'
ref_video='evo_vlac/examples/videos/pick-bowl-ref.mov'
task_description='Put up the bowl and place it back in the white storage box.'
#init model
Critic=GAC_model(tag='critic')
Critic.init_model(model_path=model_path,model_type='internvl2',device_map=f'cuda:6')
Critic.temperature=0.5
Critic.top_k=1
Critic.set_config()
Critic.set_system_prompt()
# transform video
test_video_compressed = os.path.join(os.path.dirname(test_video),"test.mp4")
_,output_fps=compress_video(test_video, test_video_compressed,fps=5)
reference_video_compressed = None
if ref_video:
reference_video_compressed = os.path.join(os.path.dirname(ref_video),"ref.mp4")
compress_video(ref_video, reference_video_compressed,fps=5)
# generate Critic results
result_path,value_list,critic_list,done_list = Critic.web_trajectory_critic(
task_description=task_description,
main_video_path=test_video_compressed,
reference_video_path=reference_video_compressed,#if None means no reference video, only use task_description to indicate the task
batch_num=5,#batch number
ref_num=6,#image number used in reference video
think=False,# whether to CoT
skip=5,#pair-wise step
rich=False,#whether to output decimal value
reverse_eval=False,#whether to reverse the evaluation(for VROC evaluation)
output_path="results",
fps=float(output_fps),
frame_skip=True,#whether to skip frames(if false, each frame while be evaluated, cost more time)
done_flag=False,#whether to out put done value
in_context_done=False,#whether use reference video to generate done value
done_threshold=0.9,#done threshold
video_output=True#whether to output video
)
print("=" * 100)
print(">>>>>>>>>Critic results<<<<<<<<<<")
print(" ")
print(f"result path: {result_path}")
print(f"task description: {task_description}")
print("=" * 50)
print("value_list:")
print(value_list)
print("=" * 50)
print("critic_list:")
print(critic_list)
print("=" * 50)
print("done_list:")
print(done_list)
print("=" * 100)