|
9 | 9 | from rlbench.backend.scene import Scene |
10 | 10 | from rlbench.backend.task import Task |
11 | 11 | from rlbench.backend.const import * |
12 | | -from rlbench.backend.utils import image_to_float_array |
| 12 | +from rlbench.backend.utils import image_to_float_array, rgb_handles_to_mask |
13 | 13 | from rlbench.backend.robot import Robot |
14 | 14 | import logging |
15 | 15 | from typing import List |
@@ -374,48 +374,54 @@ def _get_stored_demos(self, amount: int, image_paths: bool) -> List[Demo]: |
374 | 374 | self._resize_if_needed( |
375 | 375 | Image.open(obs[i].left_shoulder_rgb), |
376 | 376 | obs_config.left_shoulder_camera.image_size)) |
| 377 | + if obs_config.right_shoulder_camera.rgb: |
| 378 | + obs[i].right_shoulder_rgb = np.array( |
| 379 | + self._resize_if_needed(Image.open( |
| 380 | + obs[i].right_shoulder_rgb), |
| 381 | + obs_config.right_shoulder_camera.image_size)) |
| 382 | + if obs_config.wrist_camera.rgb: |
| 383 | + obs[i].wrist_rgb = np.array( |
| 384 | + self._resize_if_needed( |
| 385 | + Image.open(obs[i].wrist_rgb), |
| 386 | + obs_config.wrist_camera.image_size)) |
| 387 | + |
377 | 388 | if obs_config.left_shoulder_camera.depth: |
378 | 389 | obs[i].left_shoulder_depth = image_to_float_array( |
379 | 390 | self._resize_if_needed( |
380 | 391 | Image.open(obs[i].left_shoulder_depth), |
381 | 392 | obs_config.left_shoulder_camera.image_size), |
382 | 393 | DEPTH_SCALE) |
383 | | - if obs_config.left_shoulder_camera.mask: |
384 | | - obs[i].left_shoulder_mask = np.array( |
385 | | - self._resize_if_needed(Image.open( |
386 | | - obs[i].left_shoulder_mask), |
387 | | - obs_config.left_shoulder_camera.image_size)) |
388 | | - if obs_config.right_shoulder_camera.rgb: |
389 | | - obs[i].right_shoulder_rgb = np.array( |
390 | | - self._resize_if_needed(Image.open( |
391 | | - obs[i].right_shoulder_rgb), |
392 | | - obs_config.right_shoulder_camera.image_size)) |
393 | 394 | if obs_config.right_shoulder_camera.depth: |
394 | 395 | obs[i].right_shoulder_depth = image_to_float_array( |
395 | 396 | self._resize_if_needed( |
396 | 397 | Image.open(obs[i].right_shoulder_depth), |
397 | 398 | obs_config.right_shoulder_camera.image_size), |
398 | 399 | DEPTH_SCALE) |
399 | | - if obs_config.right_shoulder_camera.mask: |
400 | | - obs[i].right_shoulder_mask = np.array( |
401 | | - self._resize_if_needed(Image.open( |
402 | | - obs[i].right_shoulder_mask), |
403 | | - obs_config.right_shoulder_camera.image_size)) |
404 | | - if obs_config.wrist_camera.rgb: |
405 | | - obs[i].wrist_rgb = np.array( |
406 | | - self._resize_if_needed( |
407 | | - Image.open(obs[i].wrist_rgb), |
408 | | - obs_config.wrist_camera.image_size)) |
409 | 400 | if obs_config.wrist_camera.depth: |
410 | 401 | obs[i].wrist_depth = image_to_float_array( |
411 | 402 | self._resize_if_needed( |
412 | 403 | Image.open(obs[i].wrist_depth), |
413 | | - obs_config.wrist_camera.image_size), DEPTH_SCALE) |
| 404 | + obs_config.wrist_camera.image_size), |
| 405 | + DEPTH_SCALE) |
| 406 | + |
| 407 | + # Masks are stored as coded RGB images. |
| 408 | + # Here we transform them into 1 channel handles. |
| 409 | + if obs_config.left_shoulder_camera.mask: |
| 410 | + obs[i].left_shoulder_mask = rgb_handles_to_mask( |
| 411 | + np.array(self._resize_if_needed(Image.open( |
| 412 | + obs[i].left_shoulder_mask), |
| 413 | + obs_config.left_shoulder_camera.image_size))) |
| 414 | + if obs_config.right_shoulder_camera.mask: |
| 415 | + obs[i].right_shoulder_mask = rgb_handles_to_mask( |
| 416 | + np.array(self._resize_if_needed(Image.open( |
| 417 | + obs[i].right_shoulder_mask), |
| 418 | + obs_config.right_shoulder_camera.image_size))) |
414 | 419 | if obs_config.wrist_camera.mask: |
415 | | - obs[i].wrist_mask = np.array( |
| 420 | + obs[i].wrist_mask = rgb_handles_to_mask(np.array( |
416 | 421 | self._resize_if_needed(Image.open( |
417 | 422 | obs[i].wrist_mask), |
418 | | - obs_config.wrist_camera.image_size)) |
| 423 | + obs_config.wrist_camera.image_size))) |
| 424 | + |
419 | 425 | demos.append(obs) |
420 | 426 | return demos |
421 | 427 |
|
|
0 commit comments