Ganin and Lempitsky propose to use a combination of convolutional neural networks and $K$-nereast-neighbor for edge detection. Their implementation is based on the implementation and architecture by Krizhevsky et al. , see here, however code is not publicly available. Similar to , the convolutional neural network is trained on patches of fixed size. However, as the desired output annotation may have high dimension, principal component analysis (e.g. see ) is employed to reduce the target dimensionality. The network is then trained on these new target outputs. Finally, $1$-nearest-neighbor on a subset of the training set is used to annotate new test samples. In practice, Ganin and Lempitsky use a committee of these so called $N^4$-fields (convolutional neural network + $1$-nearest-neighbor) and average across predictions.