File size: 5,030 Bytes
6a8c2b2 b8e2e73 0d539ef | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | ---
pipeline_tag: image-classification
---
# BoneCheck
**BoneCheck** é um sistema de inteligência artificial para detecção precoce de osteopenia e osteoporose a partir de radiografias panorâmicas, exames comuns na odontologia. Utilizando redes neurais convolucionais (CNNs) e fusão de predições via XGBoost, o modelo permite identificar sinais da doença de forma rápida, acessível e não invasiva — com potencial para triagem populacional em larga escala, especialmente em regiões com acesso limitado a exames de densitometria óssea.
Fornecemos tanto os pesos do modelo final (XGBoost) quanto dos modelos intermediários baseados em redes neurais (CNNs e ViTs) usados para gerar representações usadas para treinar o modelo resultante.
## Detalhes do Modelo
### Descrição
* **Desenvolvido por:** [Gabriel Merlin](https://www.linkedin.com/in/gabrielcmerlin), [André De Mitri](https://www.linkedin.com/in/pedroamdelgado), [Ademir Guimarães](https://www.linkedin.com/in/ademir-guimaraes), [Matheus Giraldi](https://www.linkedin.com/in/matheus-giraldi-alvarenga-b2b856217), [Matheus Lenzi](https://www.linkedin.com/in/matheus-lenzi-dos-santos), [Yasmin Oliveira](https://www.linkedin.com/in/yasmin-victoria-oliveira)
* **Parceria institucional:** Faculdade de Odontologia de Ribeirão Preto – USP (FORP-USP), com participação dos Prof. Dr. Plauto Watanabe e Dra. Luciana Munhoz
* **Tipo do modelo:** XGBoost
* **Correspondência:** [raia.projetos@gmail.com](mailto:raia.projetos@gmail.com), [gabrielcmerlin@gmail.com](mailto:gabrielcmerlin@gmail.com)
### Fontes
* **Repositório:** [https://github.com/gruporaia/BoneCheck](https://github.com/gruporaia/BoneCheck)
## Usos
BoneCheck é destinado a auxiliar profissionais da saúde (especialmente dentistas e clínicos gerais) na triagem de osteoporose a partir de exames rotineiros. O modelo pode ser usado para:
* Triagem automatizada de risco em radiografias odontológicas;
* Apoio a pesquisas em IA aplicada à saúde óssea;
* Ensino e validação de soluções em medicina diagnóstica assistida por IA.
## Viéses, Riscos e Limitações
* **Vieses nos dados:** O desempenho pode variar de acordo com a qualidade das imagens e diversidade do conjunto de dados de treino, que pode não representar todas as populações.
* **Risco de uso indevido:** O modelo **não substitui diagnóstico médico**. Seu uso deve ser acompanhado por um profissional da saúde.
* **Limitações técnicas:** A performance depende da padronização da imagem (posição da mandíbula, contraste, etc.).
## Como Usar
```python
from huggingface_hub import hf_hub_download
import xgboost as xgb
REPO_ID = "RAIA-BRASIL/bonecheck_xgboost"
FILENAME = "xgb_model.json"
# baixar o arquivo do modelo do Hugging Face Hub
model_path = hf_hub_download(repo_id=REPO_ID, filename=FILENAME)
model = xgb.XGBClassifier()
model.load_model(model_path)
```
## Detalhes do treinamento
### Dados de Treino
* Radiografias panorâmicas fornecidas pela FORP-USP, rotuladas por especialistas em três categorias: **Saudável**, **Osteopenia** e **Osteoporose**.
### Procedimento
#### Pré-processamento
* Redimensionamento e padronização
* Extração de regiões de interesse (ROI)
* Normalização e balanceamento
* Divisão treino/teste com validação estratificada
#### Hiperparâmetros
Hiperparâmetros usados para o treinamento do XGBoost:
```json
"best_params": {
"colsample_bytree": 0.85,
"gamma": 1,
"learning_rate": 0.02,
"max_depth": 2,
"min_child_weight": 1,
"n_estimators": 25,
"subsample": 0.7
}
```
Hiperparâmetros usados para o treinamento das redes neurais (CNNs e ViTs):
```json
"best_params" : {
"lr": 1e-4,
"batch_size": 64,
"optimizer": "Adam", # Adam para CNNs | AdamW para ViTs
"n_epochs": 100,
}
```
OBS: os hiperparâmetros escolhidos são resultantes de uma tunagem de feita usando GridSearch.
### Infraestrutura computacional
#### Hardware
* 1x GPU (V100)
* Linux (Ubuntu 22)
#### Software
* Python, PyTorch, TensorFlow, XGBoost, Streamlit
## Avaliação
### Dados de Teste & Métricas
#### Métricas utilizadas
* Acurácia
* Precisão
* Recall
* F1-Score
### Resultados
| Modelo | Acurácia | Precisão | Recall | F1-Score |
| ---------------------- | --------- | --------- | --------- | --------- |
| ConvNeXT | 0.688 | 0.651 | 0.631 | 0.638 |
| EfficientNet | 0.558 | 0.608 | 0.605 | 0.512 |
| DeiT | 0.688 | 0.648 | 0.635 | 0.639 |
| Swin Transformer | 0.632 | 0.591 | 0.622 | 0.590 |
| **Ensemble (XGBoost)** | **0.697** | **0.712** | **0.622** | **0.838** |
## Agradecimentos
Agradecimentos especiais aos membros do grupo **RAIA (Rede de Avanço em Inteligência Artificial)** do ICMC-USP São Carlos e aos professores parceiros da FORP-USP (Dra. Luciana Munhoz e Dr. Plauto Watanabe). |