Come differiscono esattamente la ‘Computer Vision’ e il ‘Machine Learning’?

L'apprendimento automatico e la visione artificiale sono strettamente correlati. La visione artificiale usa tecniche di apprendimento automatico e, a sua volta, alcune tecniche di apprendimento automatico sono sviluppate specialmente per la visione artificiale.

La differenza principale è nel focus (heh): l'apprendimento automatico è più ampio, unificato non da qualsiasi compito particolare ma da tecniche e approcci simili. Molti algoritmi e sistemi di apprendimento automatico sono abbastanza agnostici rispetto a ciò su cui la macchina sta lavorando - è sufficiente fornire all'algoritmo il giusto set di input e caratteristiche. Classificatori molto simili possono essere usati per bloccare lo spam o per identificare immagini di gatti.

La visione artificiale, d'altra parte, è unificata da un insieme di compiti: trattare le immagini. Questo richiede una discreta quantità di tecnologie diverse - un bel po' di machine learning, per essere sicuri, ma anche cose dall'AI e dall'elaborazione dei segnali e altri campi.

Siccome i due campi condividono tecniche e applicazioni, sono abbastanza vicini. È probabile che qualcuno che lavora nella visione artificiale abbia anche una discreta esperienza nell'apprendimento automatico, e che qualcuno nell'apprendimento automatico abbia almeno una certa esposizione alla visione artificiale. (D'altra parte, non ci si aspetterebbe che uno dei due abbia alcuna esperienza con la teoria dei linguaggi di programmazione, per esempio.)

L'interazione uomo-computer (HCI), d'altra parte, è completamente estranea a questi due campi. È lo studio delle interfacce utente. Mentre ci sono certamente progetti HCI che fanno uso di computer vision o machine learning, questi non vengono presentati più di altri sottocampi di CS. Semmai, l'HCI ha più in comune con la psicologia, il design industriale o anche il marketing (ok, quest'ultimo è un po' esagerato :P).

Spero che questo chiarisca un po' le cose.