O Antares estima peso vivo bovino a partir de fotografias: eleva pixels RGB a nuvem de pontos 3D, aplica dilatação de Voronoi multirótulo e extrai vetores log-volume FD-MIG (Fractal Dimension from Multilabel Image Geometry) com textura LBP como features para regressão. A hipótese é que a geometria fractal do tecido — cor, textura, silhueta — carrega massa corporal aprendível com poucos exemplos rotulados.
O pipeline atual cobre extração FD-MIG e visualização da nuvem; segmentação (DeepLabV3+) e a regressão de peso ainda não estão implementadas. O foco é o animal antes do abate — distinto da tipificação de carcaça na série A.
1. Motivação: peso sem balança
A pesagem individual em campo é cara, lenta e estressante para o animal. Em contrapartida, câmeras em currais, corredores de manejo ou drones já capturam imagens em escala. O desafio é converter pixels em uma estimativa de massa com robustez a pose, iluminação e fundo.
Abordagens puramente geométricas — área da silhueta, perímetro, razão de aspecto — colapsam quando o animal muda de ângulo ou distância. Abordagens puramente espectrais dependem de calibração radiométrica. O Antares ocupa um meio-termo: descritores fractais multicanal que combinam posição espacial, intensidade de cor e textura local, sem rede neural treinada na etapa de feature extraction.
Este trabalho se conecta a outros registros do blog sobre conformação e acabamento de carcaças — invariantes integrais, homologia persistente e sensoriamento multiespectral — mas foca no problema antes do abate: estimar peso vivo a partir da aparência superficial do animal.
2. Ideia central: elevar pixels para
A FD-MIG trata cada pixel de uma imagem RGB como um ponto em um espaço tridimensional. Para um pixel na posição com intensidade em um canal, define-se:
onde é o nível de quantização (padrão: 96) e é o raio máximo de dilatação (padrão: 4). As coordenadas espaciais recebem um deslocamento de para acomodar a dilatação nas bordas.
O procedimento é repetido para os canais R, G, B e para uma versão em escala de cinza. Cada canal gera sua própria nuvem de pontos; pontos que coincidem no espaço recebem rótulos múltiplos — daí o multilabel no nome do método.

Para imagens com canal alfa (recorte de fundo), apenas pixels opacos entram na nuvem. A silhueta do animal emerge naturalmente na projeção superior:

3. Dilatação de Voronoi multirótulo
Com as nuvens construídas, aplica-se uma dilatação de Voronoi multirótulo (VD). Para cada coordenada ocupada, conta-se quantos voxels são alcançados em cada raio , ponderando igualmente entre os rótulos presentes naquele voxel.
O resultado é um volume cumulativo por canal . O vetor de características é o logaritmo desses volumes, excluindo :
Com , o vetor tem 16 dimensões. A interpretação fractal vem da relação entre volume ocupado e escala de dilatação: tecidos com textura mais complexa ou distribuição de intensidade mais heterogênea produzem curvas de dilatação distintas.


4. Textura LBP por canal
A variante FD-MIG + LBP enriquece cada voxel com um rótulo de textura. Para cada canal isolado, calcula-se o Local Binary Pattern (8 vizinhos, raio 1, padrão uniforme rotation-invariant) e agrupa-se o volume cumulativo por rótulo LBP em vez de por canal de cor.
Isso produz uma matriz de volumes de forma , onde é o número de padrões LBP distintos. Visualizada como heatmap, a estrutura revela quais texturas dominam em cada escala de dilatação:

O canal vermelho tende a capturar variações de pigmentação e vascularização superficial; o verde e o azul respondem a diferenças de espalhamento e umidade percebida. A combinação multicanal evita depender de um único espaço de cor.
5. Arquitetura do repositório
O código foi reorganizado em um pacote Python antares com notebooks limpos e módulos reutilizáveis:
| Módulo | Responsabilidade |
|---|---|
antares/fd_mig.py | Pipeline FD-MIG: nuvem de pontos, VD multirótulo, vetor log-volume, LBP |
antares/point_cloud.py | Construção de nuvens a partir de imagens RGB/RGBA |
antares/plotting.py | Figuras 3D, heatmaps, curvas de dilatação, exportação PNG/PDF |
antares/style.py | Tema matplotlib (tipografia Arial, paleta neutra, 300 dpi) |
Dois notebooks documentam o fluxo:
pixels.ipynb— pipeline FD-MIG completo sobre imagem RGBtecido_fractal.ipynb— nuvem de pontos 3D a partir de recorte RGBA com fundo removido
As figuras deste post foram geradas a partir de assets/cattle/cattle.png, um recorte de gado com canal alfa.


6. Pipeline planejado
O Antares foi concebido como um pipeline de quatro estágios:
Loading diagram…
| Estágio | Status |
|---|---|
| Extração FD-MIG | Implementado |
| Visualização e figuras | Implementado |
| Segmentação automática | Stub (article_implementation.ipynb) |
| Regressão de peso | Não iniciado |
A segmentação isolará o animal do fundo antes da extração de descritores, reduzindo contaminação por pixels de solo, cerca ou outros animais. A regressão pode ser linear (Ridge/Lasso) ou não-linear (Random Forest, pequena MLP), avaliada com validação cruzada leave-one-out dado o tamanho esperado da amostra.
7. Limitações e próximos passos
Limitações atuais:
- Não há conjunto rotulado de peso no repositório; as figuras usam uma única imagem de demonstração.
- A extração FD-MIG é por pixel por canal — aceitável para ROIs de centenas de pixels, mas exige downsampling ou ROI para imagens de alta resolução.
- Descritores fractais capturam geometria e textura, mas não capturam diretamente profundidade ou escala métrica; a regressão precisará de normalização por distância de câmera ou referência de tamanho.
Próximos passos:
- Curar um conjunto de imagens com peso medido em balança (campo ou curral).
- Implementar segmentação DeepLabV3+ fine-tuned para bovinos.
- Avaliar FD-MIG, FD-MIG+LBP e FDMIC (transformada euclidiana de distância) como features para regressão.
- Comparar com baseline geométrica (área da silhueta) e com descritores topológicos já testados em carcaças.
Referências
- Trabuco, A. C. et al. — FD-MIG: fractal descriptors from multilabel image geometry (família de métodos para textura e classificação de imagens).
- Ojala, T., Pietikäinen, M. & Mäenpää, T. (2002). Multiresolution gray-scale and rotation invariant texture classification with Local Binary Patterns. IEEE TPAMI.
- Manay, S. et al. (2006). Integral invariants for shape matching. IEEE TPAMI — contexto de invariantes para conformação no blog.

