I want to build a model using a neural network that will be able to extract some features from landscape pictures.

In order to improve the efficiency of my model, I first want to extract the "vertical orientation" of the picture. This "vertical orientation" would be next a feature for my neural network.

Now, to compute this feature I see two solutions.

  1. Build a Regression model that would return a result in degrees (0 to 180)
  2. Build a Classification model that would return the class of orientation (ex: High, Medium High, Medium, Medium Low, Low)

Is there a way to decide which solution to use, or should I test both solutions to find the better one ?

Note :

  • The dataset is not a problem. I can have pictures labeled in degrees or in class easily

If you are trying to build a neural network you should stick with a the orientation as a numeric value since neural networks only accept numeric data as input. If you want to use the class values, you will need to one hot encode them. It will also result in a loss of information.

Of course, it depends what kind of neural network you are trying to implement. In most cases, I don't think this step is necessary and I think it may complicate the architecture of your model.

If you are open to suggestions, instead of building a regression model, I would investigate Principal Component Analysis. It could alleviate the need to have the photographs labeled before input into the neural network.

  • 1
    $\begingroup$ PCA for images? Seriously? For something that is by definition not Euclidian? $\endgroup$ Jan 11 '19 at 14:16
  • $\begingroup$ PCA is actually a technique that is pretty readily used for image processing and also image compression. I am not convinced a CNN would need to know the orientation and I am not sure if using PCA would improve the results of this model, but if I was building the model and need to address orientation, I would see if it helped. Here is a link to lecture materials dealing with the topic. cse.psu.edu/~rtc12/CSE486/lecture32.pdf $\endgroup$
    – Skiddles
    Jan 11 '19 at 14:31
  • $\begingroup$ My PhD was on manifold learning for images, PCA is NOT adequate. $\endgroup$ Jan 11 '19 at 14:37
  • $\begingroup$ I recommend not using PCA for image processing. Even if you estimate coefficient matrix for image data mapping basing on test images there is zero guarantee that images presented to model later will have similary correlated data. The more correlation is different the more PCA will be unaccurate - data won't be 'orthogonal'. You could always PCA every image before presenting it to a neural network but it is basicaly a waste of computing time. Neural model should be the only thing resposible for image processing and featire extraction. $\endgroup$
    – maksylon
    Jan 12 '19 at 17:57

I think that classification model could be slightly better. If you are planning to use CNN to do this it would extract features which indicates vertical orientation. It would be simplier to classify pictures to categories basing of presence of those features than estimate numeric values of those features and then compute vertical orientation from those numerics.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.