Image Processing in C (2000) [pdf]
homepages.inf.ed.ac.uk
homepages.inf.ed.ac.uk
Except Self driving cars, and we all see how that's going.
I can forgive a human.
Turns out a small three-layer convnet autoencoder did the job much better with much less compute.
Optical metrology relies on accurate equations how a physical object maps to the image plane so in that case analytical solutions are necessary for subpixel accuracy.
I'm worried about how often kids these days discount precise mathematical models for all use cases. Sure, you get there most of the time but ignore foundational math and physics at your own peril.
The point I was trying to make is that edge detectors and feature descriptors like SIFT and ORB claimed to have a nice mathematical solution when in fact they are just throwing some intuitively helpful math at an ill-defined problem with an unknown underlying probability distribution. For these problems, NNs just perform much better, and the idea that handcrafted feature descriptors have some mathematical foundation is just false. They are mathematical tricks to approximate an unknown model.
Are there simpler, faster and better edge detection algorithms that are not using neural nets?
For real-time applications or resource-constrained systems, simpler methods like Roberts or Prewitt may be the best.
However, if you need more robustness against noise or better edge accuracy, Canny or Scharr are preferred.
For domain-specific edges (e.g., medical images, low-light, or noisy industrial setups), a small, well-trained neural network may perform better by learning more complex patterns.
In summary, "Garbage In, Garbage Out" applies to both classical algorithms and neural networks. Good camera setup, lighting, and optics solve 90% of machine vision or computer vision problems before the software—whether classical or neural network-based—comes into play.