A method performed by one or more computers, the method comprising: obtaining features of an input image, the input image comprising a plurality of pixels; for each of one or more time steps starting from an initial time step and continuing until a final time step: generating a network input (106, 126, 134) from the features of the input image and a current segmentation output (107, 111, 135) as of the time step, wherein the current segmentation output defines a current segmentation of the input image that assigns each of the plurality of pixels to a respective segmentation category from a predetermined set of segmentation categories, processing the network input (106, 126, 134) using a convolutional recurrent neural network to generate an intermediate segmentation output (118, 128) for the time step, and generating an updated segmentation output (122, 130, 136) for the time step from the intermediate segmentation output (118, 128) for the time step and the current segmentation output (120, 122, 130) as of the time step, wherein, for each time step after the initial time step, the current segmentation output (107, 111, 135) as of the time step is the updated segmentation output (120, 122, 130) from the preceding time step; and generating a final segmentation of the input image from the updated segmentation output for the final time step. obtaining features of an input image, the input image comprising a plurality of pixels; for each of one or more time steps starting from an initial time step and continuing until a final time step: generating a network input (106, 126, 134) from the features of the input image and a current segmentation output (107, 111, 135) as of the time step, wherein the current segmentation output defines a current segmentation of the input image that assigns each of the plurality of pixels to a respective segmentation category from a predetermined set of segmentation categories, processing the network input (106, 126, 134) using a convolutional recurrent neural network to generate an intermediate segmentation output (118, 128) for the time step, and generating an updated segmentation output (122, 130, 136) for the time step from the intermediate segmentation output (118, 128) for the time step and the current segmentation output (120, 122, 130) as of the time step, wherein, for each time step after the initial time step, the current segmentation output (107, 111, 135) as of the time step is the updated segmentation output (120, 122, 130) from the preceding time step; and generating a network input (106, 126, 134) from the features of the input image and a current segmentation output (107, 111, 135) as of the time step, wherein the current segmentation output defines a current segmentation of the input image that assigns each of the plurality of pixels to a respective segmentation category from a predetermined set of segmentation categories, processing the network input (106, 126, 134) using a convolutional recurrent neural network to generate an intermediate segmentation output (118, 128) for the time step, and generating an updated segmentation output (122, 130, 136) for the time step from the intermediate segmentation output (118, 128) for the time step and the current segmentation output (120, 122, 130) as of the time step, wherein, for each time step after the initial time step, the current segmentation output (107, 111, 135) as of the time step is the updated segmentation output (120, 122, 130) from the preceding time step; and generating a final segmentation of the input image from the updated segmentation output for the final time step.