Views
No views yet
[R/255, G/255, B/255, seg_mask/12].transformers image processors expect 3 channels and will either error
or silently produce wrong predictions. Always use the Pelvitect wrapper:1from pelvitect.analyzer import KeypointDetector
2
3detector = KeypointDetector() # downloads this repo automatically
4kp = detector.predict(image, mask=mask)
5# kp = {"tcc_r": (x, y), "tcc_l": ..., "asm_r": ..., ...}1from pelvitect import Pelvitect
2import numpy as np
3from PIL import Image
4
5img = np.array(Image.open("xray.png").convert("RGB"))
6result = Pelvitect(image=img).analyze() # seg → keypoints → geometry → classification
7print(result.summary())10.5281/zenodo.20615290).
Predicts 8 anatomical keypoints (4 per hip side) from per-side ROI crops
of anteroposterior pediatric pelvic radiographs.| Index | Name | Description |
|---|---|---|
| 0 | TCC | Tri-radiate cartilage center |
| 1 | ASM | Acetabulum superolateral margin |
| 2 | FHC | Femoral head center |
| 3 | MOFM | Midpoint of superior margin of ossified femoral metaphysis |
Full image
│
├─ SegFormer-B3 (pelvitect-seg)
│ → 12-class mask
│
├─ hip_roi_bbox(mask, side="r") → right-hip bbox
├─ hip_roi_bbox(mask, side="l") → left-hip bbox
│
├─ crop_to_vitpose(image, bbox, seg_mask)
│ → (256×192, 4-ch) [R, G, B, mask/12]
│
├─ ViTPose forward (this model)
│ → 4 heatmaps, 64×48
│
└─ kp_from_crop_space(peak_x, peak_y, scale_info)
→ (x, y) in original image coordsusyd-community/vitpose-plus-base1@dataset{pelviset2025,
2 author = {Mahdavikia, Amir M.},
3 title = {PelviSet: A Unified Pediatric Pelvic Radiograph Dataset},
4 year = {2025},
5 doi = {10.5281/zenodo.20615290},
6}