I am training an autoencoder to reconstruct 3D images. This is going quite well apart from one slight issue.
The images I wish to reconstruct are binary representations of organs. This means that they have very sharp edges between regions of 1s and 0s. Unfortunately, the reconstructed output usually turns out quite blurry (see example below). However, on occasion, I get really nice crisp reconstructions but I cannot seem to pinpoint why exactly.
To my question, is there a good way of nudging the autoencoder in the direction of sharp borders rather than fuzzy ones? I am thinking in the line of some preferred network architecture or good activation functions rather than just more training. Any suggestions are welcome!
My data consists of binary representations of 16 separate organs. In the example below we see that organ 1, 4, and 6 are present (first row of images). Next, we see the difference between the ground truth and the fit and finally the fit. Observe how the data has sharp organ borders whilst the fit has fuzzy borders.