Como o Vigiovo classifica ovos sem IA
O Vigiovo encontra cada ovo pela cor, separa ovos encostados com watershed, mede sujeira contra uma superfície de sombreamento ajustada a cada ovo e encontra trincas como linhas finas e profundas. Limiares fixos decidem a classe. No vídeo, cada ovo é medido três vezes enquanto passa, e só é rejeitado se o defeito se repetir.
Atualizado em

1. Máscara dos ovos por cor
A imagem é convertida para HSV. Um pixel é casca quando tem matiz quente (vermelho a amarelo), saturação de pelo menos 45 e brilho de pelo menos 120, numa escala de 0 a 255. Os roletes da esteira são cinza e escuros, então ficam de fora. Uma tabela de consulta faz essa conversão de matiz em uma única passada.
Abertura e fechamento morfológicos removem ruído e fecham pequenos buracos. Componentes menores que 150 pixels são descartados.
2. Escala independente da câmera
No primeiro quadro, o Vigiovo estima o raio típico de um ovo a partir das manchas isoladas e reduz a imagem até esse raio ficar em ~12 px. Contornos não precisam de detalhe, e isso corta de 4 a 10 vezes os pixels processados.
Todos os limites seguintes são múltiplos do raio r. Por isso a mesma configuração funciona com câmeras de resoluções diferentes.
3. Separação de ovos encostados
Ovos encostados formam uma única mancha. Para separá-los, o Vigiovo calcula a transformada de distância (a distância de cada pixel até a borda), encontra um pico por ovo com h-máximos via reconstrução morfológica e aplica watershed a partir desses picos.
O pescoço entre dois ovos é raso, então a separação é estável. Manchas do tamanho de um único ovo pulam essa etapa, o que mantém o custo baixo.
4. Contorno limpo e ovos não verificados
Cada ovo tem seus buracos preenchidos, passa por uma abertura com disco de ~1 r e é recortado pela elipse ajustada a ele. Isso remove sombras entre ovos e apêndices finos.
Um ovo é marcado como não verificado, e nunca é julgado, quando:
- toca a borda da imagem;
- tem área fora de 0,35 a 2,5 vezes a de um ovo típico;
- tem solidez abaixo de 0,90 (forma côncava, sinal de sobreposição);
- não se parece com uma elipse ou tem razão entre eixos acima de 1,8.
5. Medindo sujeira
Uma casca limpa não tem brilho uniforme: o domo do ovo cria um degradê. O Vigiovo ajusta, por mínimos quadrados, uma superfície quadrática ao brilho de cada ovo, descartando pontos fora da curva, e mede quanto cada pixel fica abaixo dela. Assim, uma mancha é medida contra aquele ovo, não contra um valor global.
Em paralelo, mede o desvio de cor no espaço Lab, que pega manchas com brilho parecido mas cor diferente. Reflexos de luz são excluídos. Se as manchas cobrem 3% ou mais da casca visível, o ovo é sujo.
6. Medindo trincas
Filtros black-hat e top-hat realçam linhas mais escuras ou mais claras que a vizinhança. Uma linha só conta como trinca se for:
- alongada: pelo menos 5 vezes mais longa que larga;
- longa: pelo menos 0,35 r;
- profunda: avança pelo menos 0,4 r para dentro da casca, em vez de seguir a borda.
Essas regras separam trincas de manchas redondas e do sombreamento natural da borda do ovo. Se o comprimento total for de 0,8 r ou mais, o ovo é trincado.
7. Decisão e pontuações
A classe sai de uma regra de limiar: sujo se a fração suja passa do limite, trincado se o comprimento da trinca passa do limite, limpo caso contrário. Empates vão para o defeito mais grave.
As pontuações exibidas parecem probabilidades, mas são uma fórmula fixa: softmax de [1, sujeira ÷ limite, trinca ÷ limite] dividido por uma temperatura. O maior valor sempre coincide com a regra de limiar, e ninguém precisa confiar em uma caixa-preta.
8. Vídeo em tempo real
Segmentar é barato e acontece em todo quadro. Medir defeitos é a parte cara, então cada ovo é medido só 3 vezes, com pelo menos meio raio de deslocamento entre as medições, como as checagens 1/3, 2/3 e 3/3 de um painel de qualidade.
Os ovos são rastreados entre quadros por vizinho mais próximo com previsão de velocidade constante e desempate determinístico. Um ovo só é rejeitado quando o defeito aparece em 2 das 3 checagens, o que elimina falsos positivos de um único quadro, como um reflexo. Na prática, são cerca de 2 medições por quadro com ~45 ovos na tela.
9. O que sai do sistema
Para cada ovo, o Vigiovo gera um registro com a classe, as pontuações, o motivo legível e as medidas brutas. Abaixo, um ovo trincado real da imagem de demonstração:
{
"id": 3,
"label": "cracked",
"scores": { "clean": 0.1809, "dirty": 0.0104, "cracked": 0.8087 },
"reasons": ["crack length 1.22r >= 0.80r"],
"measurements": {
"dirt_fraction": 0.0,
"crack_length_r": 1.2193,
"solidity": 0.979,
"ellipse_fill": 0.9973,
"axis_ratio": 1.2178,
"touches_border": false
}
}