HRNet
HRNet adalah jaringan konvolusional yang mempertahankan stream fitur beresolusi tinggi melalui fusi multi-scale berulang, alih-alih memulihkan resolusi setelah downsampling. LibreYOLO membungkus varian pose top-down resmi untuk inferensi dan validasi.
- Task
- pose
- Ukuran
- Instalasi
pip install libreyolo- Tier dukungan
- Hanya inferensi, sejak v. Hanya prediksi, validasi, dan ekspor. Fitur pelatihan tidak berlaku.
- Lisensi
- Kode MIT, bobot MIT. Penggunaan komersial
Instalasi
HRNet tidak memerlukan extra selain paket dasar.
pip install libreyoloDetector orang default-nya, checkpoint LibreYOLO9t yang ringan, diunduh otomatis saat HRNet pertama kali dipasangkan dengannya.
Prediksi
Bobot diunduh dari Hugging Face saat pertama kali digunakan dan disimpan dalam cache lokal.
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Tidak ada sumber orang yang diberikan. HRNet otomatis dipasangkan dengan detector# LibreYOLO9t yang ringan dan mencatat pilihan itu satu kali.model = LibreYOLO("LibreHRNetw32-pose.pt")result = model(SAMPLE_IMAGE, save=True) print(result.keypoints.xy)print(result.boxes.xyxy)libreyolo predict model=LibreHRNetw32-pose.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreHRNetw32-pose.pt") # Lewati deteksi sepenuhnya: perlakukan seluruh gambar sebagai satu orang.result = model(SAMPLE_IMAGE, cropped=True) # Atau berikan HRNet box dari detector yang sudah dijalankan.result = model(SAMPLE_IMAGE, person_boxes=[[34, 12, 220, 400]]) # Atau pasangkan dengan detector LibreYOLO tertentu sebagai pengganti# LibreYOLO9t default.result = model(SAMPLE_IMAGE, person_detector="rfdetr")HRNet adalah estimator pose top-down. Model ini memerlukan box orang sebelum
head pose dapat berjalan, sehingga setiap panggilan menentukan satu sumber box.
Jika dibiarkan, HRNet memasangkan dirinya dengan detector LibreYOLO9t saat
pertama kali digunakan dan mencatat pilihan tersebut. cropped=True melewati
deteksi dan memperlakukan seluruh gambar sebagai satu orang. person_boxes
menerima box dari detector yang sudah dijalankan. person_detector menerima
"auto", "rfdetr", model deteksi LibreYOLO apa pun, atau callable biasa.
flip_test=True juga menjalankan model pada crop yang dibalik secara horizontal
dan merata-ratakan kedua heatmap, yaitu augmentasi waktu pengujian milik HRNet.
augment=True generik tidak didefinisikan di sini. Sumber multi-gambar berjalan
secara berurutan. Detector HRNet dan jumlah orang per gambar yang bervariasi
tidak mendukung prediksi bertumpuk. Lihat prediksi untuk sumber,
streaming, dan penanganan hasil.
Varian
Ada dua ukuran, w32 dan w48, yang keduanya memprediksi set keypoint COCO-17
standar dari crop orang beresolusi tetap. w48 adalah backbone yang lebih lebar.
Model zoo upstream melaporkan akurasi pose untuk setiap ukuran dengan detector orangnya sendiri, pengaturan flip testing sendiri, dan protokol evaluasi COCO resmi. Pasangan default LibreYOLO menggunakan detector lain, sehingga run validasi di sini mengukur kombinasi tersebut, bukan kombinasi upstream. Mencocokkan angka upstream memerlukan box orang, skor detector, dan pengaturan flip yang sama dengan evaluasi aslinya.
Validasi
val() menjalankan keypoint OKS-AP bergaya COCO dan menerima data.yaml
YOLO-pose atau JSON keypoint COCO beserta direktori gambar. Backend metrik
default adalah faster-coco-eval, dengan pycocotools digunakan otomatis bila
faster-coco-eval tidak terpasang. faster_coco_eval=False memaksa jalur
pycocotools.
from libreyolo import LibreYOLO model = LibreYOLO("LibreHRNetw32-pose.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/keypoints_mAP50-95"])print(metrics["metrics/keypoints_mAP50"])libreyolo val model=LibreHRNetw32-pose.pt data=my-dataset.yamlValidasi menjalankan predict() milik HRNet secara internal, sehingga memakai
detector orang yang digunakan saat model dibuat atau dipanggil. Buat model
dengan person_detector= yang eksplisit agar sumber tersebut tetap sama pada
setiap run, alih-alih membiarkan setiap panggilan menentukan ulang nilai
default.
Ekspor
| Task | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Pose | Pose to ONNX: didukung | Pose to TorchScript: didukung | Pose to ExecuTorch: tidak didukung | Pose to TensorRT: didukung | Pose to OpenVINO: didukung | Pose to Paddle: tidak didukung | Pose to MNN: tidak didukung | Pose to RKNN: tidak didukung | Pose to ncnn: tidak didukung | Pose to TFLite: tidak didukung | Pose to CoreML: tidak didukung | Pose to Core AI: tidak didukung |
Kontrak ekspor HRNet hanya mencakup ONNX, TorchScript, OpenVINO, dan TensorRT. Format lain memunculkan error sebelum tracing dimulai. Setiap ekspor hanyalah head heatmap berkanvas tetap, batch satu, dan FP32, yang menerima crop orang dan mengembalikan heatmap mentah. Geometri crop affine sebelumnya serta decoding heatmap, pemulihan flip, dan suppression OKS setelahnya tetap berada dalam Python. Karena itu, pipeline lengkap dari gambar ke keypoint tetap memerlukan LibreYOLO di sisi lain.
from libreyolo import LibreYOLO model = LibreYOLO("LibreHRNetw32-pose.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreHRNetw32-pose.pt format=onnximport numpy as npimport onnxruntime as ort # Graph hasil ekspor hanyalah head heatmap berkanvas tetap. Inputnya adalah# satu batch crop orang yang sudah dipotong dan dinormalisasi, lalu# mengembalikan heatmap mentah. Deteksi orang, geometri crop, decoding# heatmap, dan suppression OKS tidak termasuk dalam graph ini. Menjalankannya# di luar LibreYOLO berarti harus mengimplementasikan sendiri langkah decode itu.session = ort.InferenceSession("LibreHRNetw32-pose.onnx")name = session.get_inputs()[0].nameheatmaps = session.run( None, {name: np.zeros((1, 3, 256, 192), dtype=np.float32)})[0]Checkpoint
Semua berkas bobot yang dipublikasikan untuk family ini.
| Berkas | Input (piksel) | Lisensi bobot |
|---|---|---|
| Pose | ||
| LibreHRNetw32-pose.pt | mit | |
| LibreHRNetw48-pose.pt | mit | |
Setiap berkas di atas saat ini tersedia di organisasi LibreYOLO dan diunduh saat pertama kali digunakan.
Lisensi
Periksa lisensi di repositori Hugging Face untuk bobot tertentu yang diunduh. Setiap checkpoint di organisasi LibreYOLO memiliki lisensi, dan lisensinya tidak selalu sama dalam satu family. Repositori tersebut adalah sumber resmi. Ringkasan di bawah menjelaskan ketentuan yang berlaku saat halaman ini terakhir diverifikasi.
Ini adalah deskripsi lisensi yang terlibat, bukan nasihat hukum. Jika jawabannya penting secara komersial, baca sendiri lisensinya dan mintalah nasihat dari penasihat hukum Anda.
- Karya asli
- HRNet, Microsoft
- Lisensi upstream
- MIT
- Sumber upstream
- github.com/leoxiaobin/deep-high-resolution-net.pytorch
- Kode LibreYOLO
- MIT
- Bobot
- MIT, dipublikasikan ulang di huggingface.co/LibreYOLO
- Interpretasi
- MIT permits commercial and non-commercial use, modification and redistribution of both the code and the two published checkpoints, with the copyright notice retained. The official repository does not attach a separate license to its model-zoo checkpoints; LibreYOLO's redistribution basis is the MIT license the releasing project implies, the same basis the upstream repository's own files state.
Sitasi
@inproceedings{sun2019deep,
title={Deep High-Resolution Representation Learning for Human Pose Estimation},
author={Sun, Ke and Xiao, Bin and Liu, Dong and Wang, Jingdong},
booktitle={CVPR},
year={2019}
}Disalin dari blok sitasi penulis di github.com/leoxiaobin/deep-high-resolution-net.pytorch#citation.