EfficientDet

EfficientDet łączy backbone EfficientNet z powtarzaną dwukierunkową piramidą cech (BiFPN) oraz wspólnie skaluje głębokość, szerokość i rozdzielczość w pięciu rozmiarach. LibreYOLO udostępnia go jako detektor wyłącznie do inferencji.

Zadania
detection
Rozmiary
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
EfficientDet, autorzy: Google Research, licencja: Apache-2.0. Publikacja, kod źródłowy
Licencje
Kod: Apache-2.0, wagi: Apache-2.0. Użycie komercyjne

Instalacja

EfficientDet nie wymaga żadnego opcjonalnego dodatku. Wszystkie importowane elementy znajdują się w instalacji podstawowej.

bash
pip install libreyolo

Predykcja

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

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

Zwracany obiekt Results jest taki sam dla każdej rodziny, więc zmiana detektora wymaga zmiany jednego wiersza. EfficientDet dekoduje kandydatów opartych na kotwicach, a następnie uruchamia tłumienie niemaksymalne osobno dla każdej klasy, dlatego conf, iou i max_det mają tu rzeczywisty wpływ. Więcej informacji o źródłach, streamingu i obsłudze wyników zawiera strona predykcji.

Warianty

Dostępnych jest pięć rozmiarów, od D0 do D4. Każdy kolejny łączy większy backbone EfficientNet z głębszą i szerszą BiFPN oraz głębszą głowicą predykcji, dlatego liczba parametrów i koszt obliczeniowy rosną wspólnie zgodnie z regułą skalowania złożonego opisaną w publikacji.

Walidacja

val() zwraca słownik kluczy metrics/, który obejmuje precision, recall, mAP 50 i mAP 50-95, zmierzone względem dowolnego zbioru danych w formacie użytym do trenowania.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreEfficientDetd0.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])
CLI
libreyolo val model=LibreEfficientDetd0.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: obsługiwaneDetection to TFLite: brak obsługiDetection to CoreML: brak obsługiDetection to Core AI: brak obsługi

Wyeksportowany artefakt jest ponownie ładowany przez LibreYOLO() na podstawie rozszerzenia pliku, więc plik .onnx lub .engine zachowuje się jak checkpoint i zwraca ten sam obiekt Results.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreEfficientDetd0.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreEfficientDetd0.pt format=onnxlibreyolo export model=LibreEfficientDetd0.pt format=tensorrt half=True
Użycie wyeksportowanego pliku
from libreyolo import LibreYOLO # Fabryka wybiera ścieżkę na podstawie rozszerzenia pliku, więc wyeksportowany artefakt# ładuje się jak każdy checkpoint i zwraca ten sam obiekt Results.model = LibreYOLO("LibreEfficientDetd0.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)

Checkpointy

Wszystkie opublikowane pliki wag dla tej rodziny.

PlikWejście (px)Licencja wag
Detection
LibreEfficientDetd0.ptapache-2.0
LibreEfficientDetd1.ptapache-2.0
LibreEfficientDetd2.ptapache-2.0
LibreEfficientDetd3.ptapache-2.0
LibreEfficientDetd4.ptapache-2.0

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

Licencja

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
EfficientDet, Google Research
Licencja projektu źródłowego
Apache-2.0
Kod LibreYOLO
MIT
Wagi
Apache-2.0, ponownie opublikowane w huggingface.co/LibreYOLO
Interpretacja
Apache-2.0 is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep its license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. It places no obligation on your own application code. LibreYOLO's D0-D4 checkpoints are converted from Google's official TensorFlow-trained release assets through the Apache-2.0 rwightman/efficientdet-pytorch project; those release assets carry no separate per-checkpoint license, so redistribution here rests on Apache-2.0 implied by the releasing project, the same basis rwightman/efficientdet-pytorch itself uses for its own converted weights.

Checkpointy D0-D4 LibreYOLO są konwertowane za pośrednictwem projektu rwightman/efficientdet-pytorch na licencji Apache-2.0, który z kolei tworzy kopię lustrzaną oficjalnych wag wytrenowanych w TensorFlow z google/automl bez zmiany wyuczonych tensorów. Nie korzystano z żadnego kodu projektu zylo117/Yet-Another-EfficientDet-Pytorch na licencji LGPL ani się z nim nie zapoznawano.

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.