Parte Do Corpo Humano Ossos - Esqueleto humano: nomes dos ossos, funções e divisões - Brasil Escola ...
Esqueleto humano: nomes dos ossos, funções e divisões - Brasil Escola ...

Structura óssea humana: o que realmente importa

O esqueleto humano adulto tem 206 ossos. Não é um número fixo — crianças nascem com cerca de 270, e muitos desses fundem com o tempo. A espinha dorsal entrega 26 vértebras contabilizadas, não 33 soltas, porque o sacro e o cóccix se fundem em peças únicas no adulto. Isso muda tudo quando você tenta medir massa óssea ou planejar uma artroplastia.

Como mapear a parte do corpo humano ossos em produção

A primeira coisa que eu aprendi na prática foi que anotar os nomes dos ossos no papel não funciona bem. O volume de referências cruzadas é enorme. Meu primeiro projeto de segmentação óssea travou por causa disso. Eu tinha definido regiões anatômicas padrão, mas cada variação morfológica quebrava o mapeamento. Fraturas, próteses metálicas, artefatos de movimento — tudo isso confundia o classificador. O que funcionou foi abandonar a abordagem baseada apenas em nomeações. Em vez disso, eu comecei a trabalhar com volumes 3D segmentados a partir de TC, usando modelos como o Kitsap CT Skull dataset e o CT Pelvis dataset datasets da Medical Segmentation Decathlon. A parte do corpo humano ossos deixou de ser uma lista e virou um problema de reconstrução volumétrica.

Para começar, você precisa de imagens DICOM de tomografia computadorizada. Qualquer resolução acima de 128×128×128 voxels funciona para protótipos. Modelos pré-treinados como o nnU-Net com arquitetura 3D U-Net entregam dice scores na casa dos 0.92 para crânio e 0.88 para pelve em condições normais. Quando há implante metálico, cai para perto de 0.70. Isso é esperado e precisa ser considerado desde o início.

Implementação prática

Eu uso PyTorch com a biblioteca MONAI para isso. O fluxo básico é: Carregar o DICOM, converter para volume 3D com intensidades normalizadas em Hounsfield Units. Ossos tipicamente ficam entre 300 e 3000 HU. Um threshold simples em torno de 400 HU já separa o que é osso do tecido mole na maioria dos casos clínicos.

Aplique o modelo de segmentação. Se não tiver dados anotados próprios, use checkpoints públicos. O modelo da KiU-Net para ossos longos e o DeepLabv3+ fine-tunado em datasets públicos são bons pontos de partida. Eu comecei com o ResNet-3D-34 da MedTorch que tinha um checkpoint específico para segmentação esquelética. Pós-processamento é onde a maioria das pessoas erra. Remover conectividade pequena com label_propagation ou morphological opening fecha buracos que são artefatos, não anatomia real. Cuidado com isso. Vértebras lombares com degeneração avançada têm artefatos que parecem fraturas mas não são. O algoritmo não sabe a diferença sem contexto clínico.

Pegadinhas que ninguém conta

A primeira é sobre densidade óssea. Ossoporose altera drasticamente o histograma de HU. Um modelo treinado em pacientes jovens falha miseravelmente em pacientes idosos com T-score abaixo de -2.5. Eu perdi duas semanas refazendo annotações porque meu validador tava passando em testes que na verdade eram falsos positivos por densidade reduzida. A solução foi criar dois subconjuntos de validação separados por faixa etária e ajustar o threshold de HU por grupo. A segunda pegadinha é sobre o sacro. Ele parece um osso único nas imagens, mas durante a segmentação automática ele frequentemente se separa em fragmentos porque as síndeses sacrais deixam de ser visíveis com a idade. Se você precisa do sacro como peça única, adicione um passo de reconexão baseado em proximidade geométrica. Uma distância máxima de 5mm entre fragmentos adjacentes funciona na maior parte dos casos.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Órteses e placas de titânio geram artefatos de beam hardening que criam sombras escuras nos ossos subjacentes. O modelo pode interpretar essas regiões como ausência de osso. Nesse caso, usar dual-energy CT ou simplesmente ignorar as regiões com artefato metálico e preencher com reconstrução baseada em vizinhança é mais produtivo do que tentar corrigir no pré-processamento.

Quando isso não funciona

Ressonância magnética não mostra osso bem. A matriz de sinal do osso cortical é praticamente vazia porque os prótons de hidrogênio são escassos. Se seu dado de entrada é RM, desista da abordagem tradicional de thresholding. Você vai precisar de modelos treinados especificamente em contraste de medula óssea, e mesmo assim a cobertura será limitada ao osso trabecular interno, não à cortical. Raio-X 2D também não serve para reconstrução 3D confiável. Dois projétores ortogonais dão uma noção vaga, mas a sobreposição de estruturas torna qualquer quantificação precisasim impossível. Se você precisa de geometria 3D, vá direto para TC ou CBCT.

Dados e modelos úteis

O Medical Segmentation Decathlon (MSD) tem volumes anotados de fígado, rim, fígado, pâncreas e outros órgãos, mas também inclui dados de ossos pelvianos e hepáticos que são bastante utilizados. O dataset CT Spine de Toru Niimi tem cerca de 500 scans com marcações vertebrais completas. O SpineWeb tem mais de 1000 casos. Para crânio, o HeadCT dataset da Kaggle com anotações de lesões também serve como base para treinar segmentadores focados em ossos cranianos. Para baixar weights pré-treinados, o Hub da MONAI e o HuggingFace ospedam checkpoints de modelos como o VNet, Attention U-Net 3D e o nnU-Net retrainado em datasets médicos. O código de exemplo abaixo mostra a estrutura básica de inferência com MONAI:

from monai.inferers import SlidingWindowInferer from monai.transforms import LoadImaged, EnsureChannelFirstd, Compose import nibabel as nib transforms = Compose([ LoadImaged(keys=["image"]), EnsureChannelFirstd(keys=["image"]) ]) model = torch.load("osseous_segmentation_v3.pt") inferer = SlidingWindowInferer(roi_size=(96,96,96), sw_batch_size=1) processar volume DICOM convertido para NIfTI aplicar transforms e rodar inferência O resultado é um volume label onde cada valor inteiro corresponde a um osso ou região esquelética. A conversão de DICOM para NIfTI pode ser feita com o pydicom + nibabel em cerca de 30 segundos por estudo de 300 cortes em hardware padrão.

Questões que ainda não têm resposta boa

A variação anatômica entre populações é subestimada na maioria dos modelos. Ossos de pacientes de ascendência africana tendem a ter maior densidade e espessura cortical média do que os de ascendência asiática, e os modelos treinados predominantemente em cohortes europeias supersegmentam ou subsegmentam nesses grupos. Não existe um fix simples para isso além de treinar com dados diversificados ou fazer ajuste fino por grupo populacional. Ossos acessórios como o os trigonum no tornozelo ou o os vesalianum na coluna cervical aparecem em cerca de 3 a 8% da população e são quase sempre marcados erroneamente como fraturas ou artefatos por segmentadores automáticos. Se seu uso final exige precisão anatômica completa, reserve tempo para revisar manualmente esses casos ou treine o modelo com exemplos includindo variações anatômicas.

Se você está começando agora, o caminho mais rápido é pegar o nnU-Net, rodar na configuração self-explanatory com dados de pelve ou crânio do MSD, e ver o dice score caindo nos patamares esperados. A partir daí, ajuste thresholds, refine pós-processamento e construa sobre o que já existe em vez de reimplementar segmentadores do zero.