Automatic scaling and resizing

I have a CAD-like system: users create Canvases and put different Objects on it. Sometimes users need to scale the Canvas and move all included objects to different positions and probably change their sizes. At the moment it's done manually, but there's a need to automate this process, I'm trying to do this using ML algorithms. For the train data I have a bunch of manually scaled canvases

Initially I thought it would be a relatively easy task achieved with linear regression, however looking deeper into the training data, I got stuck:

  1. Rearrangement and scaling seem to depend on total number, positions and sizes of objects on initial canvas, so this is probably not a good fit for a linear model
  2. There simply isn't enough training data if I try to build a separate linear model for every possible combinations of positions and sizes of objects on initial canvas. You may say that almost every initial canvas from the training set is unique
  3. Train data only have examples of canvases at limited number of scales (for example, 300x600, 300x400, 150x100), however I need to be able to scale to an arbitrary canvas size.
  4. Objects of different types may scale differently

Frankly, I'm not really sure what is the best approach to this problem, maybe a neural network is a better fit for this kind of task? But which one? I'd appreciate any advice!

Topic linear-regression automation neural-network

Category Data Science

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.