allenai / ai2thor

An open-source platform for Visual AI.
http://ai2thor.allenai.org
Apache License 2.0
1.09k stars 210 forks source link

object visible in the metadata can not seen in the observation image #1199

Open WangJuan6 opened 3 months ago

WangJuan6 commented 3 months ago

Dear author,

I want to use the GetInteractablePoses action to acquire the image that the target object is visible, but I find some positions can not see the target object. Then, I teleport to these positions and rotations, the target object still can not seen in the observation image, but the result of the target object being visible is True.

This is my teleport code:

import prior
from ai2thor.controller import Controller
import cv2
import prior

dataset = prior.load_dataset("procthor-10k")
scene_num = 93
scene_name = dataset["train"][scene_num]

controller = Controller(scene=scene_name,
                            gridSize=0.25,
                            renderImage=True,
                            renderDepthImage=True,
                            renderClassImage=True,
                            renderObjectImage=True,
                            visibility_distance=True,
                            width=640,
                            height=480,
                            )
event = controller.step(dict(
            action='Initialize',
            gridSize=0.25,
            renderImage=True,
            renderDepthImage=True,
            renderClassImage=True,
            renderObjectImage=True,
            visibility_distance=True,
            makeAgentsVisible=False,
            horizon=0,
        ))
position = {'x': 8.0, 'y': 0.9009993672370911, 'z': 4.0}
rotation = {'x': -0.0, 'y': 0.0, 'z': 0.0}
event=controller.step(action="Teleport", rotation=dict(x=0,y=0,z=0), position=position)
rgb = event.frame.copy()
rgb_frame = cv2.cvtColor(rgb, cv2.COLOR_BGR2RGB)
cv2.imwrite("img.png",rgb_frame)

this image shows the observation image: img

these images show some results of the event.metadata: vis_img agent_pose action_success

I can not see the armchair in the observation image, but the result of the armchair being visible is True. Can you help me to solve this problem? Thanks Juan