YOLOv3
YOLOv3 to detektor Darknet-53, który dodał do rodziny YOLO predykcję wieloskalową i niezależne klasyfikatory logistyczne. LibreYOLO udostępnia go jako zamrożony eksponat przeznaczony wyłącznie do inferencji, w rozmiarach tiny, base i SPP.
- Zadania
- detection
- Rozmiary
- t, b, spp at 416 to 608 px
- Instalacja
pip install libreyolo- Poziom obsługi
- Muzealny, od wersji v. Zamrożony eksponat. Tylko poprawki błędów.
- Projekt źródłowy
- YOLOv3, autorzy: Joseph Redmon, licencja: Public domain (Darknet "YOLO LICENSE"). Publikacja, kod źródłowy
- Licencje
- Kod: MIT, wagi: Public domain (Darknet "YOLO LICENSE"). Użycie komercyjne
Instalacja
YOLOv3 nie wymaga żadnego dodatku poza pakietem podstawowym.
pip install libreyoloPredykcja
Ta rodzina służy wyłącznie do inferencji: train() zgłasza
NotImplementedError, dlatego strona nie zawiera sekcji Trenowanie. Obsługiwane
są predykcja, walidacja i eksport. Przy pierwszym użyciu wagi są pobierane z
Hugging Face i zapisywane w lokalnej pamięci podręcznej.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreYOLO3b.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes: print(box.cls, box.conf, box.xyxy)libreyolo predict model=LibreYOLO3b.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # Wariant SPP dodaje blok spatial pyramid pooling przed głowicami# detekcji i działa przy własnym natywnym rozmiarze wejścia.model = LibreYOLO("LibreYOLO3spp.pt")result = model(SAMPLE_IMAGE)Zwracany obiekt Results jest taki sam dla każdej rodziny, więc zmiana
detektora wymaga zmiany jednego wiersza. Argument conf filtruje próg pewności,
a iou próg NMS, stosowane osobno dla każdej skali przed połączeniem ramek ze
wszystkich trzech głowic. Więcej informacji o źródłach, streamingu i obsłudze
wyników zawiera strona predykcji.
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 walidacji.
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO3b.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])libreyolo val model=LibreYOLO3b.pt data=my-dataset.yamlEksport
| Zadanie | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Detection | Detection to ONNX: obsługiwane | Detection to TorchScript: obsługiwane | Detection to ExecuTorch: obsługiwane | Detection to TensorRT: obsługiwane | Detection to OpenVINO: obsługiwane | Detection to Paddle: brak obsługi | Detection to MNN: brak obsługi | Detection to RKNN: brak obsługi | Detection to ncnn: obsługiwane | Detection to TFLite: brak obsługi | Detection to CoreML: brak obsługi | Detection to Core AI: obsługiwane |
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. Obsługiwane jest także uruchomienie grafu w
samym środowisku uruchomieniowym bez zainstalowanego LibreYOLO, ale wtedy należy
samodzielnie napisać przetwarzanie wstępne i końcowe.
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO3b.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreYOLO3b.pt format=onnxlibreyolo export model=LibreYOLO3b.pt format=tensorrt half=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # 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("LibreYOLO3b.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Checkpointy
Wszystkie opublikowane pliki wag dla tej rodziny.
| Plik | Wejście (px) | Licencja wag |
|---|---|---|
| Detection | ||
| LibreYOLO3t.pt | 416 | other |
| LibreYOLO3b.pt | 416 | other |
| LibreYOLO3spp.pt | 608 | other |
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
- YOLOv3, Joseph Redmon
- Licencja projektu źródłowego
- Public domain (Darknet "YOLO LICENSE")
- Kod źródłowy projektu
- github.com/pjreddie/darknet
- Kod LibreYOLO
- MIT
- Wagi
- Public domain (Darknet "YOLO LICENSE"), ponownie opublikowane w huggingface.co/LibreYOLO
- Interpretacja
- Darknet's bundled NOTICE quotes its own license in full: "Darknet is public domain. Do whatever you want with it." That covers both the architecture and the pretrained weights LibreYOLO converts from it, with no attribution requirement and no restriction on commercial use. LibreYOLO's own code around this architecture is MIT.