My question is more about what approach is a good/the best approach for my problem:
THE PROBLEM -
I'm an (mechanical/software) engineer and we take extensive amount of time to review technical drawings prior to them being complete/ready/meeting requirements. This quality check process consists of a loop between our CAD drafter, drafting checker, engineer, and final engineering check.
We are always needing to check drawings for consistent format and information that is contained within it regardless of type of drawing (mechanical, electrical, piping, property sketches, etc).
I have spent quite a bit of the last few years dealing with relatively straight forward machine learning techniques (decision trees/supervised learning methods), and this seemed like a good opportunity to have a go at something more complicated. I also wrote a (un-optimised) neural network in Go(lang) a few years ago, so I'm not totally new to the area.
What approach would you suggest for writing an algorithm that could solve this type of issue?
My current plan is to:
- Collect as many drawings in various stages of completeness of lots of different parts/diagrams/networks etc.
- Split them into groups classifying them as "complete" and "not complete"
- I was going to start with a decision tree/random forest because it seems like a classification problem with probably and finite number of classificaitons
- However first I would need to convert the diagram (pdf) into a pixel array, as standard image recognition wouldn't work
- This is the reason I think this is actually better for a neural network, as parsing the raw data is easiest to input to a neural network (if all diagrams are the same dimensions)
So I could feed the diagram into a neural network and give each the output of what is wrong with it, or if its correct. What's important is two diagrams of completely different objects could both fail for the same reason (e.g missing a dimension label). I would a) like to know what the problem is, and b) if possible, be able to output exactly why it failed.
Could anyone advise? Thanks