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
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:
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.