AALNet / README.md
omskim's picture
Update README.md
6184523 verified
|
Raw History Blame Contribute Delete
3.18 kB
---
license: cc-by-nc-4.0
base_model:
- timm/hrnet_w48.ms_in1k
pipeline_tag: keypoint-detection
tags:
- medical
- radiology
- cephalometry
- landmark-detection
- facial-asymmetry
- orthodontics
- orthognathic-surgery
- hrnet
extra_gated_heading: "Request access to AALNet weights"
extra_gated_prompt: >-
These weights were trained on posteroanterior cephalograms of patients from a single
institution and are released for non-commercial research only (CC BY-NC 4.0).
They are not a medical device and must not be used for clinical diagnosis or treatment
decisions.
extra_gated_fields:
Affiliation: text
Intended use:
type: select
options:
- Research
- Education
- label: Other
value: other
I will use these weights for non-commercial research or education only: checkbox
I will not use these weights for clinical diagnosis or treatment decisions: checkbox
I will not attempt to identify any individual from the model or its outputs: checkbox
extra_gated_button_content: "Agree and request access"
---
# AALNet: Asymmetry-Aware Landmark Network
Trained weights of **AALNet** for detecting 33 landmarks on posteroanterior (PA)
cephalograms, from the paper *"Asymmetry-aware landmark Network: clinical-asymmetry-aware
deep learning for automatic landmark detection on posteroanterior cephalograms"*.
Code, model description and data preparation: https://github.com/sanghunk20/AALNet
## Files
```
lambda02/fold{0..4}/
β”œβ”€β”€ checkpoint_best.pth # model weights only (state_dict under the key "model")
└── config.json # configuration used to build the model
```
The paper trains AALNet (asymmetry-loss weight Ξ»_asym = 0.2) on five cross-validation
folds and reports the mean over the five models on a fixed test set. All five models
are provided; there is no single "best" model.
## Usage
```bash
git clone https://github.com/sanghunk20/AALNet && cd AALNet && pip install -e .
hf download omskim/AALNet --local-dir outputs
python -m aalnet.scripts.eval_checkpoint \
--output_root outputs \
--data_root /path/to/dataset_800 \
--pixel_spacing_file /path/to/pixel_spacing_per_image.json \
--split test
```
To load one model in Python:
```python
import torch
from aalnet.models.aalnet import AALNet
model = AALNet(pretrained=False)
state = torch.load("outputs/lambda02/fold0/checkpoint_best.pth", map_location="cpu", weights_only=True)
model.load_state_dict(state["model"])
model.eval()
```
Input images must be preprocessed as described in the GitHub README
(skull ROI crop + letterbox to 800Γ—800).
## Training data
PA cephalograms from a single institution (Yonsei University Dental Hospital), used
under institutional review board approval. The images cannot be shared.
## Intended use and limitations
For research use only. Not a medical device and not validated for clinical decision-making.
The models were trained on data from one institution and may not generalise to other
devices, populations or acquisition protocols.
## License
CC BY-NC 4.0: non-commercial use with attribution.
## Citation
The paper is under review; the reference will be added on publication.