CenterNet

CenterNet przedstawia obiekt jako punkt środkowy jego ramki ograniczającej i wyznacza każdą inną właściwość ze szczytu mapy cieplnej. Dzięki temu nie wymaga kotwic ani etapu non-maximum suppression. LibreYOLO udostępnia go jako detektor przeznaczony tylko do inferencji.

Zadania
detection
Rozmiary
resdcn18, dla34 at 512 px
Instalacja
pip install libreyolo
Poziom obsługi
Tylko inferencja, od wersji v. Tylko predykcja, walidacja i eksport. Funkcje trenowania nie mają zastosowania.
Projekt źródłowy
CenterNet, autorzy: UT Austin and UC Berkeley, licencja: MIT. Publikacja, kod źródłowy
Licencje
Kod: MIT, wagi: MIT. Użycie komercyjne

Instalacja

CenterNet nie wymaga opcjonalnego dodatku. Wszystkie importowane elementy znajdują się w instalacji bazowej.

bash
pip install libreyolo

Predykcja

Przy pierwszym użyciu wagi są pobierane z Hugging Face i zapisywane lokalnie w pamięci podręcznej.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreCenterNetresdcn18.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes:    print(box.cls, box.conf, box.xyxy)
CLI
libreyolo predict model=LibreCenterNetresdcn18.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True
DLA-34
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreCenterNetdla34.pt")result = model(SAMPLE_IMAGE, save=True)

Zwracany obiekt Results jest taki sam dla każdej rodziny, dlatego zamiana detektora wymaga zmiany jednego wiersza. Argumenty conf i max_det filtrują uszeregowane szczyty mapy cieplnej. Argument iou jest akceptowany dla zgodności API, lecz nie ma wpływu na wynik, ponieważ dekodowanie szczytów top-k w CenterNet nie wymaga etapu tłumienia ramek na podstawie IoU. Zobacz stronę predykcji, aby poznać źródła, streaming i obsługę wyników.

Warianty

Dostępne są dwa backbone. resdcn18 łączy główną część ResNet-18 z upsamplingiem wykorzystującym deformowalny splot. dla34 łączy główną część DLA-34 z upsamplingiem wykorzystującym iteracyjną głęboką agregację. Oba warianty zasilają te same trzy gęste głowice (mapa cieplna, szerokość/wysokość, przesunięcie) i korzystają z tego samego obszaru wejściowego.

Walidacja

Metoda val() zwraca słownik kluczy metrics/ obejmujących precyzję, recall, mAP 50 i mAP 50-95, zmierzonych względem dowolnego zbioru danych w formacie użytym podczas trenowania.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreCenterNetresdcn18.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])
CLI
libreyolo val model=LibreCenterNetresdcn18.pt data=my-dataset.yaml

Eksport

ZadanieONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
DetectionDetection to ONNX: obsługiwaneDetection to TorchScript: obsługiwaneDetection to ExecuTorch: obsługiwaneDetection to TensorRT: obsługiwaneDetection to OpenVINO: obsługiwaneDetection to Paddle: brak obsługiDetection to MNN: brak obsługiDetection to RKNN: brak obsługiDetection to ncnn: brak obsługiDetection to TFLite: brak obsługiDetection to CoreML: brak obsługiDetection to Core AI: brak obsługi

Eksport ONNX wymaga opset 16 lub nowszego. Etap upsamplingu z deformowalnym splotem w obu backbone jest przekształcany do operatora ONNX GridSample, który wprowadzono w opset 16. Wybranie starszego opset powoduje zgłoszenie błędu przed rozpoczęciem śledzenia grafu.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreCenterNetresdcn18.pt") # Eksport ONNX wymaga opset 16 lub nowszego: etap upsamplingu# z deformowalnym splotem jest przekształcany do GridSample, dodanego w opset 16.model.export(format="onnx", opset=18)model.export(format="tensorrt")
CLI
libreyolo export model=LibreCenterNetresdcn18.pt format=onnx opset=18
Użycie wyeksportowanego pliku
from libreyolo import LibreYOLO # Fabryka wybiera ścieżkę na podstawie sufiksu pliku, więc wyeksportowany# artefakt wczytuje się jak każdy checkpoint i zwraca ten sam obiekt Results.model = LibreYOLO("LibreCenterNetresdcn18.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)

Checkpointy

Wszystkie opublikowane pliki wag dla tej rodziny.

PlikWejście (px)Licencja wag
Detection
LibreCenterNetresdcn18.pt512mit
LibreCenterNetdla34.pt512mit

Każdy z powyższych plików jest obecnie dostępny w organizacji LibreYOLO i pobierany przy pierwszym użyciu.

Licencjonowanie

Sprawdź licencję w repozytorium konkretnych pobieranych wag na Hugging Face. Każdy checkpoint w organizacji LibreYOLO ma licencję, która nie zawsze jest taka sama w całej rodzinie. To repozytorium jest źródłem rozstrzygającym, a poniższe podsumowanie opisuje stan z chwili ostatniej weryfikacji tej strony.

To opis obowiązujących licencji, a nie porada prawna. Jeśli odpowiedź ma znaczenie komercyjne, przeczytaj licencje i zasięgnij własnej porady prawnej.

Oryginalna praca
CenterNet, UT Austin and UC Berkeley
Licencja projektu źródłowego
MIT
Kod źródłowy projektu
github.com/xingyizhou/CenterNet
Kod LibreYOLO
MIT
Wagi
MIT, ponownie opublikowane w huggingface.co/LibreYOLO
Interpretacja
MIT is a permissive license, so these weights can be used in commercial and closed-source products. It asks only that you keep the copyright notice and license text with any copy you redistribute, and it places no obligation on your own application code. The official ResDCN-18 and DLA-34 COCO checkpoints were published by the MIT-licensed CenterNet project but carry no separate per-checkpoint license file; LibreYOLO's mirror states MIT as implied by the releasing project rather than a publisher-confirmed, checkpoint-specific grant.

Graf ResDCN-18 zawiera również kod projektu human-pose-estimation.pytorch firmy Microsoft na licencji MIT, a graf DLA-34 kod implementacji DLA autorstwa Fishera Yu na licencji BSD-3-Clause. LibreYOLO nie dołącza oryginalnego rozszerzenia DCNv2 używanego przez projekt upstream. Natywne wykonanie korzysta z funkcji deform_conv2d z torchvision na licencji BSD-3-Clause, natomiast przenośną implementację przeznaczoną wyłącznie do eksportu opracowano osobno dla LibreYOLO.

Cytowanie

@inproceedings{zhou2019objects,
  title={Objects as Points},
  author={Zhou, Xingyi and Wang, Dequan and Kr{\"a}henb{\"u}hl, Philipp},
  booktitle={arXiv preprint arXiv:1904.07850},
  year={2019}
}

Skopiowano z bloku cytowania autorów w github.com/xingyizhou/CenterNet#citation.

Zweryfikowano z LibreYOLO v1.5.0. Tabele obsługi, checkpointy i wyniki benchmarków na tej stronie są generowane na podstawie wydanej biblioteki i opublikowanych wag, a nie wpisywane ręcznie.