Aprendizado de Máquina em TypeScript: visão geral das principais bibliotecas
TypeScript — uma extensão estaticamente tipada sobre JavaScript — está sendo cada vez mais usado em projetos relacionados a aprendizado de máquina (ML). Graças à tipagem estrita, melhor legibilidade do código e excelente suporte de IDE, o TypeScript permite criar aplicações ML robustas que funcionam tanto no navegador quanto no servidor (Node.js). Neste artigo, veremos as principais bibliotecas para aprendizado de máquina em TypeScript, seus recursos e daremos exemplos práticos.
1. TensorFlow.js — o carro-chefe do aprendizado de máquina em TypeScript
TensorFlow.js é uma porta do popular framework TensorFlow para JavaScript e TypeScript. Ele permite executar modelos de aprendizado de máquina diretamente no navegador ou no Node.js sem infraestrutura de servidor. A biblioteca suporta todas as etapas principais do ML: carregamento de modelos pré-treinados, treinamento de novos modelos, inferência (predição) e até ajuste fino (fine-tuning).
Instalação:
npm install @tensorflow/tfjsnpm install @tensorflow/tfjs-node # para Node.js (com aceleração)Exemplo: classificação de imagens com o modelo pré-treinado MobileNet
import * as tf from '@tensorflow/tfjs';import { loadGraphModel } from '@tensorflow/tfjs-converter';
async function classifyImage(imageElement: HTMLImageElement) { // Carregamos o modelo pré-treinado MobileNet const model = await loadGraphModel( 'https://tfhub.dev/google/tfjs-model/imagenet/mobilenet_v2_100_224/classification/3/default/1' );
// Convertemos a imagem em um tensor const tensor = tf.browser.fromPixels(imageElement) .resizeNearestNeighbor([224, 224]) .toFloat() .expandDims();
// Obtemos a predição const prediction = model.predict(tensor) as tf.Tensor; const topK = tf.topk(prediction, 3); const indices = await topK.indices.data(); const values = await topK.values.data();
console.log('Top-3 predições:', indices, values);}
// Usoconst img = document.getElementById('myImage') as HTMLImageElement;classifyImage(img);TensorFlow.js é ideal para tarefas de visão computacional, processamento de texto (NLP) e séries temporais. Em TypeScript, você obtém autocompletar para todos os métodos, o que acelera significativamente o desenvolvimento.
2. ML5.js — uma interface amigável para ML criativo
ML5.js é construído sobre o TensorFlow.js, mas oferece uma API mais simples e de alto nível. Esta biblioteca é voltada para artistas, designers e desenvolvedores que desejam adicionar funcionalidades de ML rapidamente sem se aprofundar na matemática. ML5.js suporta tarefas como classificação de imagens, detecção de objetos, geração de texto, análise de som e muito mais.
Instalação:
npm install ml5Exemplo: detecção de objetos com COCO-SSD
import ml5 from 'ml5';
async function detectObjects(videoElement: HTMLVideoElement) { // Carregamos o modelo de detecção de objetos const objectDetector = await ml5.objectDetector('cocossd');
// Executamos a detecção no vídeo const results = await objectDetector.detect(videoElement);
results.forEach((obj: any) => { console.log(`Objeto: ${obj.label}, confiança: ${obj.confidence.toFixed(2)}`); console.log(`Coordenadas: x=${obj.x}, y=${obj.y}, largura=${obj.width}, altura=${obj.height}`); });}
// Uso com webcamconst video = document.getElementById('webcam') as HTMLVideoElement;navigator.mediaDevices.getUserMedia({ video: true }) .then(stream => { video.srcObject = stream; }) .then(() => detectObjects(video));ML5.js é excelente para prototipagem, projetos educacionais e instalações interativas. Em TypeScript, você pode definir tipos para os resultados da detecção, o que torna
Também na biblioteca
Monitoramento de aplicações PHP com as bibliotecas php-ast e xhprof
Envio de SMS em C# (.NET): Integração com API de Serviços SMS