Working on image translation problem. Got many pairs of input-output images, say sketch as input, translated sketch as output. Images are b&w with 1 pixel width sketch lines.
Can simple encoder-decoder be used to LEARN the image translation?
Code snippet below is from https://blog.keras.io/building-autoencoders-in-keras.html which shows how autoencoder is programmed. Obviously, being autoencoder, the input and output are both shown same.
autoencoder.fit(x_train, x_train, epochs=50, batch_size=256, shuffle=True, validation_data=(x_test, x_test))
But here, instead of "x_train, xtrain" as first two arguments, can I give "x_train, y_train", where x_train are input images and y_train are output images?
Is is theoretically correct? Will following optimizer and cost function work?
autoencoder.compile(optimizer='adadelta', loss='binary_crossentropy')
Generally Pix2Pix networks are used for such work. But the main tenet of the GANs is that they learn the Cost Function for what is a good output.
In my problem, cost function is very deterministic, not a pixel here and there would do. So error can be clearly defined.
Is it theoretically correct even to try Pix2Pix here?