YOLOv1
YOLOv1 to oryginalny detektor z 2016 roku, od którego nazwę wzięła rodzina YOLO: jedna sieć konwolucyjna z głowicą w pełni połączoną przewiduje wszystkie ramki i wyniki klas w jednym przebiegu, bez ramek kotwic. LibreYOLO udostępnia go jako zamrożony eksponat przeznaczony wyłącznie do inferencji.
- Zadania
- detection
- Rozmiary
- t, b at 448 px
- Instalacja
pip install libreyolo- Poziom obsługi
- Muzealny, od wersji v. Zamrożony eksponat. Tylko poprawki błędów.
- Projekt źródłowy
- YOLOv1, 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
YOLOv1 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("LibreYOLO1b.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes: print(box.cls, box.conf, box.xyxy)libreyolo predict model=LibreYOLO1b.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueZwracany obiekt Results jest taki sam dla każdej rodziny, więc zmiana
detektora wymaga zmiany jednego wiersza. Dwie kwestie są charakterystyczne dla
tej rodziny. Opublikowany checkpoint wytrenowano na Pascal VOC (2007+2012), a
nie COCO, dlatego box.cls indeksuje 20 kategorii VOC (aeroplane, bicycle,
bird, boat, bottle, bus, car, cat, chair, cow, diningtable, dog, horse,
motorbike, person, pottedplant, sheep, sofa, train, tvmonitor) zamiast 80
kategorii COCO. Ponadto w pełni połączona głowica detekcji przyjmuje jeden obraz
na raz, dlatego lista źródeł jest przetwarzana w pętli zamiast w prawdziwym
batchu. 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 zbioru danych w tej samej przestrzeni
etykiet w stylu VOC, na której wytrenowano checkpoint.
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO1b.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])libreyolo val model=LibreYOLO1b.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("LibreYOLO1b.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreYOLO1b.pt format=onnxlibreyolo export model=LibreYOLO1b.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("LibreYOLO1b.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Checkpointy
Wszystkie opublikowane pliki wag dla tej rodziny.
| Plik | Wejście (px) | Licencja wag |
|---|---|---|
| Detection | ||
| LibreYOLO1b.pt | 448 | 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
- YOLOv1, 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. One thing to know before deploying this checkpoint: it is trained on Pascal VOC 2007+2012, not COCO, so it detects and names the 20 VOC categories rather than the 80 COCO ones.