Teachable Machine é uma aplicação de navegador que você pode treinar uma webcam para reconhecer objetos ou expressões.
Nesta demo, uma webcam é utilizada para reconhecer três diferentes classes de objetos ou expressões. Com base na entrada da câmera, o site mostra gifs diferentes, reproduz sons pré-gravados ou reproduz o discurso. Não é necessário nenhuma codificação de quem utiliza a aplicação, e não é necessário programar nenhum hiper-parâmetro ou arquitetura de rede. O único feedback recebido por quem utiliza a solução, é o nível de confiança que a máquina possui em cada uma das classes previstas. Com base na classe reconhecida, a máquina mostra um dos três gifs diferentes: um gato, um cachorro ou um coelho fofo. Também é possível programar vários sons ou palavras, mas não é possível misturar as modalidades de saída. Uma explicação excelente sobre como usar o Teachable Machine pode ser encontrada no Youtube.
Todo o treinamento é feito no navegador usando a biblioteca deeplearn.js: uma biblioteca javascript acelerada por hardware criada pela equipe do Google Brain PAIR, disponível gratuitamente. A biblioteca foi anunciada em agosto de 2017 no blog do Google e várias aplicações que usam a biblioteca estão disponíveis no site deeplearn.js.
Para fazer uso da aplicação, bastam fotos de objetos que se deseja reconhecer. O treinamento é acelerado pelo download da rede neural pré-treinada chamada "squeezenet". De acordo com o artigo, um squeezenet tem 50 vezes menos parâmetros treináveis do que as redes neurais comparáveis. Isso significa que ele pode ser baixado como um arquivo de tamanho menor que metade de 1 megabyte. Embora a rede tenha menos parâmetros, a saída está pareada com redes neurais maiores e boa o suficiente para essa aplicação de navegador simples. O aplicativo utiliza o resultado desta rede pré-treinada para saber o que está sendo capturado pela webcam.
O código-fonte da teachable machine está disponível no Github. As instruções para iniciar com deeplearn.js e o código-fonte para esta biblioteca também estão disponíveis no Github.