Method, computer program and device for training a dynamic-architecture convolutional neural network for semantic image segmentation
The invention relates to a method for training a dynamic-architecture convolutional neural network for semantic image segmentation, including auto-annotation of images, to constitute a first image database of auto-annotated images. The method includes applying at least one transformation to at least one source image, and adding, to each transformed image thus obtained, a first tag corresponding to the transformation. The method also includes at least one iteration of a phase including training the neural network with the first image database, and a second image database annotated with a second tag relating to the content of the image. The invention also relates to a computer program and a device implementing the method, and a deep-learning dynamic-architecture convolutional neural network obtained by the method.
1 . A method for training a neural network, comprising a dynamic-architecture convolutional neural network, for semantic image segmentation, said method comprising:
auto-annotation of images, to constitute a first database of auto-annotated images, said auto-annotation of images comprising
applying at least one transformation to at least one source image to obtain at least one transformed image, and
adding, to each transformed image of said at least one transformed image, a first tag corresponding to said at least one transformation that is applied,
wherein the first tag identifies only the at least one transformation that is applied and does not relate to semantic content of the at least one source image;
training of said neural network, said training comprising
self-supervised training of said neural network with the first database, providing a self-supervised learning error, wherein the self-supervised learning error is computed based on a predicted transformation corresponding to the first tag,
supervised training of said neural network with a second database of images annotated with a second tag relating to semantic image segmentation, providing a supervised learning error, wherein the supervised training is performed based on the second tag and wherein the supervised learning error is computed based on the second tag, and
updating at least one parameter of said neural network as a function of the self-supervised learning error and the supervised learning error that are obtained;
wherein
said dynamic-architecture convolutional neural network includes routing parameters that control data-dependent propagation of outputs of neurons between layers of the neural network,
the self-supervised learning error is computed based on the first tag, and the supervised learning error is computed based on the second tag relating to said semantic image segmentation, and
said at least one source image subjected to the auto-annotation belongs to the second database and remains annotated with the second tag and is further associated with the first tag.
2 . The method according to claim 1 , wherein the self-supervised training and the supervised training are carried out in turn.
3 . The method according to claim 1 , wherein the training further comprises calculating an aggregate error based on the self-supervised learning error and the supervised learning error that are obtained during the self-supervised training and the supervised training, wherein the updating is carried out as a function of said aggregate error.
4 . The method according to claim 1 , wherein the auto-annotation of images applies several transformations to said at least one source image to obtain several transformed images from said at least one source image, wherein each transformed image of said several transformed images comprising a tag corresponding to a transformation of said several transformations.
5 . The method according to claim 1 , wherein said at least one transformation applied to said at least one source image is a rotation of the at least one source image by a predetermined angle.
6 . The method according to claim 1 , wherein the at least one source image is an image of the second database of images, such that each image of said at least one source image that is transformed comprises
the first tag added to said each image during the auto-annotation of said images; and
the second tag of said at least one source image.
7 . The method according to claim 1 , wherein, for at least one annotated image of the second database, the second tag is a segmentation mask.
8 . The method according to claim 1 , wherein the updating carries out an updating of a routing coefficient or of a routing function, of an output of at least one neuron of a layer of the neural network.
9 . The method according to claim 1 , wherein the updating performs an update of at least one activation coefficient of at least one neuron of the neural network.
10 . The method according to claim 1 , wherein the updating performs an update of at least one coefficient of a neuron of the neural network.
11 . The method according to claim 1 , further comprising evaluating a performance of the neural network on a validation database comprising annotated images, in order to determine whether said neural network is sufficiently trained or not.
12 . The method according to claim 11 , wherein the performance of the neural network is measured by a Mean Intersection over Union (mIoU) validation metric.
13 . A non-transitory computer-readable medium comprising executable instructions, which, when executed by a computer device, implement a method for training a neural network, comprising a dynamic-architecture convolutional neural network, for semantic image segmentation, said method comprising:
auto-annotation of images, to constitute a first database of auto-annotated images, said auto-annotation of images comprising
applying at least one transformation to at least one source image to obtain at least one transformed image, and
adding, to each transformed image of said at least one transformed image, a first tag corresponding to said at least one transformation that is applied,
wherein the first tag identifies only the at least one transformation that is applied and does not relate to semantic content of the at least one source image;
training of said neural network, said training comprising
self-supervised training of said neural network with the first database, providing a self-supervised learning error, wherein the self-supervised learning error is computed based on a predicted transformation corresponding to the first tag,
supervised training of said neural network with a second database of images annotated with a second tag relating to semantic image segmentation, providing a supervised learning error, wherein the supervised training is performed based on the second tag and wherein the supervised learning error is computed based on the second tag, and
updating at least one parameter of said neural network as a function of the self-supervised learning error and the supervised learning error that are obtained;
wherein
said dynamic-architecture convolutional neural network includes routing parameters that control data-dependent propagation of outputs of neurons between layers of the neural network,
the self-supervised learning error is computed based on the first tag, and the supervised learning error is computed based on the second tag relating to said semantic image segmentation, and
said at least one source image subjected to the auto-annotation belongs to the second database and remains annotated with the second tag and is further associated with the first tag.
14 . A training device comprising means configured to implement a method for training a neural network, comprising a dynamic-architecture convolutional neural network, for semantic image segmentation, said training device comprising:
a computing means for
auto-annotation of images, to constitute a first database of auto-annotated images, said auto-annotation of images comprising
applying at least one transformation to at least one source image to obtain at least one transformed image, and
adding, to each transformed image of said at least one transformed image, a first tag corresponding to said at least one transformation that is applied;
training of said neural network, said training comprising
self-supervised training of said neural network with the first database, providing a self-supervised learning error, wherein the self-supervised learning error is computed based on a predicted transformation corresponding to the first tag,
supervised training of said neural network with a second database of images annotated with a second tag relating to semantic image segmentation, providing a supervised learning error, wherein the supervised training is performed based on the second tag and wherein the supervised learning error is computed based on the second tag, and
updating at least one parameter of said neural network as a function of the self-supervised learning error and the supervised learning error that are obtained;
wherein
said dynamic-architecture convolutional neural network includes routing parameters that control data-dependent propagation of outputs of neurons between layers of the neural network,
the self-supervised learning error is computed based on the first tag, and the supervised learning error is computed based on the second tag relating to said semantic image segmentation, and
said at least one source image subjected to the auto-annotation belongs to the second database and remains annotated with the second tag and is further associated with the first tag.
15 . The training device of claim 14 , further comprising a deep dynamic-architecture neural network for semantic image segmentation obtained from said method via said computing means.