A computer-implemented method of training a neural network which infers residual data based on a plurality of captured images, the residual data representing a difference between a bowl-shaped predefined projection surface and a projection surface reflecting three-dimensional data of one or more three-dimensional objects imaged in the plurality of captured images, the method comprising:
- preparing the plurality of captured images taken by a plurality of respective cameras;
- preparing the three-dimensional data;
- recreating a three-dimensional image from the plurality of captured images based on the three-dimensional data to generate a training image that serves as a free viewpoint image for training based on viewpoint data given as an input;
- and
- inputting the plurality of captured images and the viewpoint data into a neural network to produce learning residual data, generating a learning image that serves as a free viewpoint image for learning by mapping the plurality of captured images onto a display projection surface using the learning residual data, information about the predefined projection surface, and the viewpoint data, and training the neural network such that a difference between the training image and the learning image becomes smaller.