In tensorflow official resnet model, they use per image normalization.
The 2D example is right only for low dimension data.
I think for high dimension data, normalization does not mix different classes because they have different directions.