Denny Dharmawan
Denny Dharmawan

Reputation: 177

rotational equivariance in Convolutional Neural Network?

I would like to know whether basic architecture of CNN has rotational equivariance property? I only know the translational equivariance but not sure about the rotational.

From my search, the rotational equivariance can be achieved by rotating the input image for training. Do I really need to do that? How big is the rotation degree? To put more contex, For example, I have a CNN that can detect/read text in a landscape mode. If I rotate the image 90 degree/make it portrait, will it give the same result/perform the same as the original one?

Upvotes: 5

Views: 2337

Answers (2)

Adam Schneider
Adam Schneider

Reputation: 31

These guys have CNNs designed to have rotation equivariance, so I'd say vanilla CNNs don't have it with as much guarantee as say translations. https://github.com/QUVA-Lab/e2cnn

Upvotes: 0

runDOSrun
runDOSrun

Reputation: 10995

You have scale and rotational invariance only to some degree - how much exactly might be dependent on your setup. You have it since the pools containing the features are potentially overlapping.

What you propose is certainly possible. You can always modify your training data adding noise, rotation, different scales etc. to achieve that goal. However, your model will still not be fully rotation-invariant. It's also possible to modify the network itself to achieve the task "properly". I'm sure that you stumbled upon Tiled CNNs during your research (if not, you should definitely read that paper). They use TICA to pretrain, finding invariant features in the process.

To your last question with 90° rotation: I'd suggest testing this out yourself. If the cases where rotation occurs is known (e.g. on mobile devices), I'd personally see if manually rotating the picture back to 0° (before giving it to the network) is a satisfying solution for the given constraints. It's the simplest approach.

Upvotes: 2

Related Questions