USER GUIDED SEGMENTATION NETWORK
Systems and methods for user guided iterative frame segmentation are disclosed herein. A disclosed method includes providing a ground truth segmentation, synthesizing a failed segmentation from the ground truth segmentation, synthesizing a correction input for the failed segmentation using the ground truth segmentation, and conducting a supervised training routine for the segmentation network. The routine uses the failed segmentation and correction input as a segmentation network input and the ground truth segmentation as a supervisory output.
1 . A system comprising:
a display driver for displaying an image and an image segmentation on a display with the image segmentation overlaid on the image;
a user interface for accepting a correction input;
a segmentation network configured to: (i) accept the image segmentation and the correction input; and (ii) output a corrected segmentation from the image segmentation and the correction input; and
a trainer configured to: save the corrected segmentation, synthesize training data, and conduct a training routine for the segmentation network using the synthesized training data and the corrected segmentation.
2 . The system of claim 1 , wherein:
the training routine generates a loss function output based on at least the corrected image segmentation and the training data;
the segmentation network includes a convolutional neural network with a set of filter values; and
the trainer is configured to adjust the set of filter values in the convolutional neural network according to the loss function output.
3 . The system of claim 2 , wherein:
the trainer is configured to synthesize the training data using the image segmentation and the correction input; and
the trainer is configured to use the corrected segmentation as a supervisory output.
4 . The system of claim 1 , the trainer further comprises:
a perturbation engine configured to generate a synthesized failed segmentation using the corrected segmentation; and
a user input synthesis engine configured to generate a synthesized user correction using the synthesized failed segmentation; and
wherein the trainer is configured to use the corrected segmentation as a supervisory output and the synthesized failed segmentation and synthesized user correction as a corresponding input.
5 . The system of claim 4 , wherein the user input synthesis engine is configured to apply a distance transform to a synthesized user input to produce the correction input.
6 . A method comprising:
displaying an image and an image segmentation on a display with the image segmentation overlaid on the image;
accepting a correction input from a user interface;
applying the image segmentation and the correction input to a segmentation network;
generating a corrected segmentation using the segmentation network based on the application of the image segmentation and the correction input to the segmentation network;
saving the corrected segmentation;
synthesizing training data for the segmentation network using the corrected segmentation, the image segmentation; and the correction input; and
training the segmentation network using the training data.
7 . The method of claim 6 , further comprising:
displaying the image and the corrected segmentation on the display with the corrected segmentation overlaid on the image;
accepting a second correction input from the user interface;
applying the corrected segmentation and the correction input to the segmentation network; and
generating a second corrected segmentation using the segmentation network and based on the application of the corrected segmentation and the correction input to the segmentation network.
8 . The method of claim 6 , further comprising:
combining the image segmentation and the correction input into a single tensor;
wherein the applying of the image segmentation and the correction input to the segmentation network consists essentially of applying the single tensor as an input to the segmentation network; and
wherein the segmentation network includes a convolutional neural network.
9 . The method of claim 6 , wherein training the segmentation network further comprises:
generating a loss function output based on at least the corrected image segmentation and the training data, the segmentation network including a convolutional neural network with a set of filter values; and
adjusting the set of filter values in the convolutional neural network according to the loss function output.
10 . A computer-implemented method for training a segmentation network comprising:
providing a ground truth segmentation;
synthesizing a failed segmentation from the ground truth segmentation;
synthesizing a correction input for the failed segmentation using the ground truth segmentation; and
conducting a supervised training routine for the segmentation network using: (i) the failed segmentation and correction input as a segmentation network input; and (ii) the ground truth segmentation as a supervisory output.
11 . The computer-implemented method from claim 10 , wherein:
the synthesizing of the correction input for the failed segmentation also uses the failed segmentation.
12 . The computer-implemented method from claim 10 , wherein synthesizing the correction input comprises:
synthesizing a mark on a subject image of the ground truth segmentation; and
applying a distance transform to the mark.
13 . The computer-implemented method from claim 12 , wherein:
the mark is a line; and
the distance transform is applied on either side of the line; and
the correction input is a field of activations surrounding the line.
14 . The computer-implemented method from claim 12 , wherein:
the mark is a point; and
the point is located on the subject image within a delta between the ground truth segmentation and the failed segmentation; and
the correction input is a field of activations surrounding the point.
15 . The computer-implemented method from claim 12 , wherein:
the mark is a line and direction indicator;
the distance transform is applied on a side of the line, wherein the side is indicated by the direction indicator; and
the correction input is a field of activations on the side of the line.
16 . The computer-implemented method from claim 10 , wherein:
the ground truth segmentation is a first mask of an image;
the failed segmentation is a second mask of the image; and
synthesizing the failed segmentation consists essentially of stochastically altering the values of the first mask in a border region of the ground truth segmentation to create the second mask; and
the segmentation network includes a convolutional neural network.
17 . The computer-implemented method from claim 16 , wherein:
the first and second masks are both alpha masks of the image; and
stochastically altering the values includes distorting the values by a stochastic factor that is inversely proportional to a distance to a boundary of the ground truth segmentation.
18 . The computer-implemented method from claim 16 , wherein:
the first and second masks are both hard masks of the image; and
stochastically altering the values includes inverting the values with a probability function that is inversely proportional to a distance to a boundary of the ground truth segmentation.
19 . The computer-implemented method from claim 11 , wherein synthesizing the failed segmentation comprises:
perturbing a boundary of the ground truth segmentation using a random number generator.
20 . The computer-implemented method from claim 11 , wherein synthesizing the failed segmentation comprises:
breaking an image into a set of sub-units, the sub-units being equal to an input size of the segmentation network;
finding a boundary sub-unit in the set of sub-units, wherein the boundary sub-unit includes foreground pixels and background pixels; and
changing all segmentation values in the boundary sub-unit to one of foreground pixels and background pixels.