Room layout estimation methods and techniques
Systems and methods for estimating a layout of a room are disclosed. The room layout can comprise the location of a floor, one or more walls, and a ceiling. In one aspect, a neural network can analyze an image of a portion of a room to determine the room layout. The neural network can comprise a convolutional neural network having an encoder sub-network, a decoder sub-network, and a side sub-network. The neural network can determine a three-dimensional room layout using two-dimensional ordered keypoints associated with a room type. The room layout can be used in applications such as augmented or mixed reality, robotics, autonomous indoor navigation, etc.
1. A system comprising:
non-transitory memory configured to store:
an image of a room; and
a neural network comprising:
an encoder-decoder sub-network comprising an encoder and a decoder; and
a classifier sub-network in communication with the encoder-decoder sub-network configured to classify a room type associated with the image;
a hardware processor in communication with the non-transitory memory, the hardware processor programmed to:
access the image;
predict, using the encoder, decoder, and the image, two-dimensional (2D) keypoint maps corresponding to room types;
determine, using the encoder, the classifier sub-network, and the image, a predicted room type from the room types; and
determine a predicted layout of the room in the image based at least in part on the 2D keypoint maps and the predicted room type.
2. The system of claim 1 , wherein each room type in the room types comprises a semantic segmentation for regions in the room type, the semantic segmentation comprising an identification as a floor, a ceiling, or a wall.
3. The system of claim 1 , wherein a first keypoint order is associated with a first room type of the room types and a second keypoint order is associated with a second room type of the room types, wherein the first keypoint order and the second keypoint order are different.
4. The system of claim 1 , wherein the encoder comprises a plurality of convolutional layers and a plurality of pooling layers, or the decoder comprises a plurality of convolutional layers and a plurality of upsampling layers.
5. The system of claim 1 , wherein the encoder-decoder sub-network comprises a plurality of recurrent layers.
6. The system of claim 5 , wherein a number of recurrent iterations of the plurality of recurrent layers is at least two.
7. The system of claim 1 , wherein the predicted two-dimensional (2D) keypoint maps comprise heat maps.
8. The system of claim 7 , wherein the hardware processor is programmed to extract keypoint locations from the heat maps as maxima of the heat map.
9. The system of claim 1 , wherein the hardware processor is programmed to:
access object information from an object recognizer that analyzes the image; and
combine the object information with the predicted layout of the room.
10. The system of claim 9 , wherein the object recognizer is configured to detect cuboids in the image.
11. A system comprising:
non-transitory memory configured to store parameters for the neural network; and
a hardware processor in communication with the non-transitory memory, the hardware processor programmed to:
receive an image, wherein the image is associated with:
a reference room type from a plurality of room types, and
reference keypoints associated with a reference room layout;
generate a neural network comprising:
an encoder-decoder sub-network configured to output two-dimensional (2D) keypoints associated with a predicted room layout, wherein the encoder-decoder sub-network comprises an encoder and a decoder, and
a side sub-network in communication with the encoder-decoder network configured to classify the reference room type associated with the image by outputting a predicted room type from the plurality of room types; and
update the parameters for the neural network based at least in part on an optimized loss function.
12. The system of claim 11 , wherein a first keypoint order is associated with a first room type of the plurality of room types and a second keypoint order is associated with a second room type of the plurality of room types, wherein the first keypoint order and the second keypoint order are different.
13. The system of claim 11 , wherein the encoder and the decoder comprise a plurality of recurrent layers.
14. The system of claim 11 , wherein the optimized loss function is based at least in part on a first loss for the 2D keypoints and a second loss for the predicted room type.
15. The system of claim 11 , wherein the 2D keypoints are extracted from a predicted heat map.
16. The system of claim 15 , wherein hardware processor is programmed to:
calculate a reference heat map associated with the reference keypoints; and
calculate the first loss for the 2D keypoints based on a difference between the predicted heat map and the reference heat map.
17. A wearable display system comprising:
an outward-facing imaging system configured to obtain an image of an environment of the wearer of the wearable display system;
non-transitory memory configured to store the image; and
a hardware processor in communication with the non-transitory memory, the processor programmed to:
access the image; and
analyze the image to determine a predicted layout of a room in the image, wherein to analyze the image, the processor is programmed to:
use a neural network to determine two-dimensional (2D) keypoints associated with a room type associated with the image, wherein the neural network comprises:
an encoder-decoder sub-network configured to output the 2D keypoints, and
a side sub-network in communication with the encoder-decoder sub-network configured to classify a room type associated with the image by outputting the room type; and
provide the room layout based at least partly on the 2D keypoints and the room type.
18. The wearable display system of claim 17 , wherein the neural network comprises a convolutional encoder-decoder network.
19. The wearable display system of claim 17 , wherein the neural network comprises a classifier configured to determine the room type.
20. A method comprising:
accessing an image of a room;
predicting two-dimensional (2D) keypoint maps corresponding to room types based at least in part on the image;
determining a predicted room type from the room types based at least in part on the image and a side sub-network configured to classify a room type associated with the image; and
determining a predicted layout of the room in the image based at least in part on the 2D keypoint maps and the predicted room type.
21. The method of claim 20 , wherein predicting 2D keypoint maps is also based at least in part on a neural network.
22. The method of claim 20 , wherein the 2D keypoint maps are predicted based at least in part on one or more heat maps.
23. The method of claim 20 , wherein each room type in the room types comprises a semantic segmentation for regions in the room type, the semantic segmentation comprising an identification as a floor, a ceiling, or a wall.
24. The method of claim 20 , wherein a first keypoint order is associated with a first room type of the room types and a second keypoint order is associated with a second room type of the room types, wherein the first keypoint order and the second keypoint order are different.