top | item 26606547

(no title)

avibhu | 5 years ago

Are there any good resources for learning more classical computer vision? How would someone approach a problem like this without using machine learning?

discuss

order

joe_the_user|5 years ago

I did a small amount of work in pre-deep learning computer vision. It was only about six months exposure but as far as I could tell, the field was a mess. There weren't general methods, just a list of specific filters, approaches and so-forth that "worked in some cases" - and a lot of leaned on a knowledge of the particular setup you were modeling - optics in some instances, Fourier analysis in others and ad-hoc processes for others.

Deep learning is general purpose, doesn't require area-experts and is more or less guaranteed to mostly work if you have sufficient data describing the task at hand.

vector_spaces|5 years ago

Not specific to computer vision, but my understanding is that the two famous AI texts by Norvig -- Principles of Artificial Intelligence Programming and Artificial Intelligence: A Modern Approach -- are introductions to the "symbolic" approach to AI (as opposed to the "computational intelligence" approaches given by the modern regimes of machine learning, deep learning, and similar), and I would imagine that methods from the symbolic approach are primarily what are used here (but I'm not an expert).

PAIP was recently made available for free download by the author [1]

[1] https://github.com/norvig/paip-lisp/releases/tag/v1.0

YeGoblynQueenne|5 years ago

Machine learning is not a "modern" regime. The term itself was coined in the 1950's, neural networks were first described in 1938 (see Pitts & McCulloch neuron) and the current branch of research started in the 1990's, with statistical machine learnign algorithms that succeeded propositional learners like decision tree classifiers that took off in the 1980's (Ross Quinlan's ID3 algorithm was published in 1986).

AI: A Modern Approach devotes most of its considerable bulk to symbolic AI not because there was no machine learning "back then" (2003, last edition I saw) but because for most of the hisotry of AI most of the work has been on symbolic AI and statistical machine learning was a small sub-field, sometimes not even placed under AI (for example much machine vision work was published under the "pattern recognition" rubric, often not considered part of AI).

One reason for this exclusion is that much of AI research was portrayed as an investigation of the intellectual mechanisms used by the human mind, whereas statistical machine learning was (and is) more focused on narrow applications, like image classification. Although of course the connectionist paradigm has always claimed to be emulating the human brain (or trying to), this has always been more about reproducing the structure of the human brain in a different substrate, rather than elucidating how a mind arises from a brain- which is what classical AI is primarily interested in.

So if you're wondering with the most popular textbook on AI doesn't say much about how to build a hot dog classifier, that's because classical AI does not consider that to be a burning question, on which rests our scientific understanding of the human mind.

abecedarius|5 years ago

Though PAIP is essentially all symbolic "good old-fashioned AI" (and focuses on programming rather than AI theory), AIMA never was -- that's why they emphasized "a modern approach" in the title. I guess it's reasonable though to expect AIMA's coverage of computer vision would be good background for understanding this pastry AI.

phenkdo|5 years ago

Before deep learning (ca 2013), the SOTA was using descriptors: KAZE, SIFT, SURF, ORB etc use keypoints & descriptors based matching.[1] . Other approaches relied on shape (edge), color matching using color and shape histograms comparisons e.g. HOG [2].

Plenty of approaches existed prior to deep learning, it's just that DL just blew those out of the water with its performance.

p.s. BTW I would bucket these approaches as ML too. ML >> DL

[1] https://docs.opencv.org/master/db/d27/tutorial_py_table_of_c...

[2] https://docs.opencv.org/master/d5/d33/structcv_1_1HOGDescrip...