Anomaly Detection
A deteção de anomalias assinala pontos de dados, eventos ou regiões de imagem que se desviam dos padrões normais. Tipos de anomalias, métodos principais, inspeção visual e código.
A deteção de anomalias consiste em identificar pontos de dados, eventos ou regiões de imagem que se desviam de um padrão estabelecido de comportamento normal. Também é chamada deteção de valores atípicos e, na visão industrial, é muitas vezes denominada deteção de defeitos ou inspeção visual automatizada. As anomalias são raras, variadas e muitas vezes nunca foram vistas antes; por isso, a maioria dos métodos aprende o aspeto do normal a partir de dados maioritariamente normais, atribui a cada nova entrada uma pontuação de anomalia que indica o seu desvio em relação a esse padrão e assinala as pontuações acima de um limiar. As aplicações incluem a identificação de riscos e amolgadelas em linhas de produção, transações fraudulentas com cartões, intrusões na rede, avarias em máquinas e achados suspeitos na análise de imagens médicas.
Tipos de anomalias#
- Anomalias pontuais: Um único valor ou imagem muito diferente dos restantes, como uma transação 50 vezes superior aos gastos habituais de um cliente.
- Anomalias contextuais: Valores normais num contexto e anormais noutro. Uma temperatura exterior de 30 °C é habitual em Nova Iorque em julho e preocupante em janeiro.
- Anomalias coletivas: Sequências ou grupos anormais em conjunto, embora cada elemento pareça normal, como uma vaga de tentativas de início de sessão provenientes de muitos países num minuto, cada uma sem nada de invulgar isoladamente.
Como funciona a deteção de anomalias#
Os métodos diferem na forma como modelam os dados normais:
- Regras estatísticas: Assinalam valores que se afastam da média por mais do que um número definido de desvios-padrão ou que ficam fora de um intervalo determinado pela amplitude interquartil.
- Distância e densidade: Assinalam pontos afastados dos vizinhos mais próximos ou em regiões esparsas, como faz o fator local de valores atípicos.
- Isolamento: Uma Isolation Forest divide os dados com cortes aleatórios, e as anomalias ficam isoladas após menos cortes do que os pontos normais.
- Modelos de classe única: Uma máquina de vetores de suporte (SVM) de classe única aprende um limite em torno dos dados de treino e assinala os pontos que ficam fora dele.
- Reconstrução: Um autoencoder treinado apenas com dados normais reconstrói bem as entradas normais e mal as anomalias; assim, o erro de reconstrução serve como pontuação de anomalia.
- Métodos visuais baseados em características: O PatchCore guarda num banco de memória características de recortes de imagens sem defeitos, extraídas por uma rede pré-treinada no ImageNet, e atribui uma pontuação a cada recorte de teste com base na distância ao recorte armazenado mais próximo, atingindo até 99,6% de AUROC ao nível da imagem no benchmark MVTec AD.
O scikit-learn distingue a deteção de valores atípicos, em que os dados de treino já contêm algumas anomalias, da deteção de novidade, em que os dados de treino são limpos e apenas as novas entradas recebem pontuações. O script abaixo treina uma Isolation Forest com medições de uma máquina saudável e calcula as pontuações de quatro novas medições:
import numpy as np
from sklearn.ensemble import IsolationForest
# 1,000 readings from a healthy machine: temperature (C) and vibration (mm/s)
rng = np.random.default_rng(0)
normal = rng.normal([60, 2.0], [3, 0.3], size=(1000, 2))
# Learn what normal looks like, then score new readings
detector = IsolationForest(random_state=0).fit(normal)
new = np.array([[61, 2.1], [59, 1.8], [75, 2.0], [60, 4.5]])
labels = detector.predict(new) # 1 = normal, -1 = anomaly
scores = detector.decision_function(new) # below 0 = anomaly
for (temp, vibration), label, score in zip(new, labels, scores):
status = "anomaly" if label == -1 else "normal"
print(f"{temp:.0f} C, {vibration:.1f} mm/s -> {status} (score {score:+.3f})")As duas medições próximas da média de treino obtêm pontuações de +0,080 e +0,076 e são aceites. A leitura de sobreaquecimento a 75 °C obtém −0,139 e a leitura com mais do dobro da vibração habitual obtém −0,152, pelo que ambas são assinaladas, apesar de o modelo nunca ter visto exemplos de nenhuma das falhas.
Deteção visual de anomalias#
A inspeção visual segue uma de duas abordagens, conforme seja possível coletar e rotular os defeitos. Quando os tipos de defeito são conhecidos e há exemplos disponíveis, modelos de detecção de objetos ou segmentação de instâncias treinados com classes como arranhão, amassado e rachadura localizam e identificam cada defeito. Um modelo de detecção ou de segmentação YOLO26 ajustado com essas classes retorna uma caixa ou máscara, uma classe e uma pontuação de confiança para cada defeito encontrado na imagem. Quando os defeitos são raros ou imprevisíveis, métodos de classe única treinam apenas com imagens de peças boas e sinalizam qualquer diferença, detectando também tipos de defeito que ninguém previu. O conjunto de dados MVTec AD, com mais de 5.000 imagens em 15 categorias de objetos e texturas e apenas imagens sem defeitos nos conjuntos de treinamento, é um benchmark padrão para esse cenário; a Ultralytics Platform também o hospeda como conjunto de dados de detecção para a abordagem supervisionada. Bibliotecas de código aberto como Anomalib implementam o PatchCore e métodos semelhantes.
Os detetores de anomalias são avaliados com métricas independentes de limiares, como a área sob a curva ROC (AUC), e com precisão e recall no limiar escolhido, que refletem os falsos alarmes e os casos não detetados que os operadores realmente verão. Como as anomalias são raras, o limiar é muitas vezes definido com base nas pontuações de imagens de validação normais, por exemplo, o valor acima do qual ficam apenas 1% das peças boas.
Deteção de anomalias vs. termos relacionados#
- Deteção de objetos: Encontra instâncias de um conjunto fixo de classes anotadas. Um detetor de objetos treinado com defeitos encontra apenas os tipos de defeitos para os quais foi treinado.
- Deriva de dados: Alteração, ao longo do tempo, da distribuição de todo um fluxo de entradas, como uma semana de imagens mais escuras. A deteção de anomalias calcula uma pontuação para cada entrada individual.
- Deteção fora da distribuição (OOD): Assinala entradas diferentes dos dados de treino de um modelo para que este possa abster-se ou encaminhá-las para uma pessoa; é a deteção de novidade aplicada às entradas de um modelo implementado.
- Deteção de alterações: Compara imagens da mesma cena captadas em momentos diferentes, como imagens de satélite antes e depois de uma inundação, para encontrar o que mudou.










