A method of processing images of physical samples to identify defects on the imaged physical samples, the method comprising: executing unsupervised training of a generator neural network to generate defect-free reconstructions of input images; acquiring a live image of a subject physical sample of a product or material; inputting the live image to the trained generator neural network to generate a defect-free reconstruction of the live image; comparing the generated defect-free reconstruction of the live image with the acquired live image to determine differences; identifying defects on the subject physical sample at locations of the determined differences; wherein, the unsupervised training comprises: acquiring a set of images of defect-free physical samples of the product or material; a first training phase, comprising a plurality of epochs, in which: training data images are synthesized for each epoch by superimposing, onto each member of the set of images of defect-free physical samples as a parent image, defect image data; at each epoch, the synthesized training data images for the respective epoch are reconstructed by the generator neural network, and the generator neural network is iteratively trained to minimise a loss function between each of the reconstructions of the synthesized training data images and the respective parent image of defect-free physical samples; characterised in that an amount of difference between each training data image and the respective parent image caused by the superimposed defect image data is increased from a minimum to a maximum as a function of a training condition. executing unsupervised training of a generator neural network to generate defect-free reconstructions of input images; acquiring a live image of a subject physical sample of a product or material; inputting the live image to the trained generator neural network to generate a defect-free reconstruction of the live image; comparing the generated defect-free reconstruction of the live image with the acquired live image to determine differences; identifying defects on the subject physical sample at locations of the determined differences; wherein, the unsupervised training comprises: acquiring a set of images of defect-free physical samples of the product or material; a first training phase, comprising a plurality of epochs, in which: training data images are synthesized for each epoch by superimposing, onto each member of the set of images of defect-free physical samples as a parent image, defect image data; at each epoch, the synthesized training data images for the respective epoch are reconstructed by the generator neural network, and the generator neural network is iteratively trained to minimise a loss function between each of the reconstructions of the synthesized training data images and the respective parent image of defect-free physical samples; characterised in that an amount of difference between each training data image and the respective parent image caused by the superimposed defect image data is increased from a minimum to a maximum as a function of a training condition. acquiring a set of images of defect-free physical samples of the product or material; a first training phase, comprising a plurality of epochs, in which: training data images are synthesized for each epoch by superimposing, onto each member of the set of images of defect-free physical samples as a parent image, defect image data; at each epoch, the synthesized training data images for the respective epoch are reconstructed by the generator neural network, and the generator neural network is iteratively trained to minimise a loss function between each of the reconstructions of the synthesized training data images and the respective parent image of defect-free physical samples; characterised in that an amount of difference between each training data image and the respective parent image caused by the superimposed defect image data is increased from a minimum to a maximum as a function of a training condition. training data images are synthesized for each epoch by superimposing, onto each member of the set of images of defect-free physical samples as a parent image, defect image data; at each epoch, the synthesized training data images for the respective epoch are reconstructed by the generator neural network, and the generator neural network is iteratively trained to minimise a loss function between each of the reconstructions of the synthesized training data images and the respective parent image of defect-free physical samples; characterised in that an amount of difference between each training data image and the respective parent image caused by the superimposed defect image data is increased from a minimum to a maximum as a function of a training condition.