VGG

VGG to konwolucyjny klasyfikator obrazów zbudowany z jednolitych stosów małych splotów 3x3 zamiast większych filtrów. LibreYOLO udostępnia do klasyfikacji obrazów rozmiary 16- i 19-warstwowe, w wersji zwykłej i z normalizacją batcha.

Zadania
classify
Rozmiary
16, 19, 16bn, 19bn at 224 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
VGG, autorzy: Visual Geometry Group, University of Oxford, licencja: BSD-3-Clause. Publikacja, kod źródłowy
Licencje
Kod: BSD-3-Clause, wagi: BSD-3-Clause. Użycie komercyjne

Instalacja

VGG 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("LibreVGG16-cls.pt")result = model(SAMPLE_IMAGE, save=True) probs = result.probsprint(probs.top1, probs.top1conf)print(probs.top5, probs.top5conf)
CLI
libreyolo predict model=LibreVGG16-cls.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

Klasyfikator zwraca result.probs zamiast result.boxes. Pola top1 i top5 zawierają indeksy klas, a top1conf i top5conf ich pewności. Predykcja działa ze stałym wejściem 224 px i zgłasza błąd po przekazaniu innego imgsz. Więcej informacji o źródłach, streamingu i obsłudze wyników zawiera strona predykcji.

Warianty

Dostępne są cztery rozmiary: 16 i 19 warstw konwolucyjnych, każdy w wersji zwykłej i z normalizacją batcha. Udostępnione wagi pochodzą z późniejszego trenowania torchvision od zera na ImageNet, a nie z konwersji oryginalnego wydania Caffe grupy Oxford z 2014 roku. LibreYOLO udostępnia tę rodzinę wyłącznie do inferencji. Obsługiwane są predykcja, walidacja top-1/top-5 w stylu ImageNet oraz eksport, a dostrajanie nie jest zaimplementowane.

Walidacja

val() działa na podziale w stylu ImageFolder (katalog z podfolderami train/ i val/, po jednym folderze na klasę) i zwraca metryki accuracy top-1 i top-5.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreVGG16-cls.pt") # data to katalog główny z podziałem train/ i val/ na foldery klas# (układ ImageFolder), a nie plik YAML zbioru danych.metrics = model.val(data="imagenet-1k/") print(metrics["metrics/accuracy_top1"])print(metrics["metrics/accuracy_top5"])
CLI
libreyolo val model=LibreVGG16-cls.pt data=imagenet-1k/

Eksport

ZadanieONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
classifyclassify to ONNX: obsługiwaneclassify to TorchScript: obsługiwaneclassify to ExecuTorch: obsługiwaneclassify to TensorRT: obsługiwaneclassify to OpenVINO: obsługiwaneclassify to Paddle: brak obsługiclassify to MNN: brak obsługiclassify to RKNN: brak obsługiclassify to ncnn: obsługiwaneclassify to TFLite: brak obsługiclassify to CoreML: brak obsługiclassify 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. Strona eksportu wymienia argumenty obsługiwane przez każdy format oraz dodatki wymagane przez niektóre z nich.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreVGG16-cls.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreVGG16-cls.pt format=onnxlibreyolo export model=LibreVGG16-cls.pt format=tensorrt half=True
Użycie wyeksportowanego pliku
from 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("LibreVGG16-cls.onnx")result = model(SAMPLE_IMAGE) print(result.probs.top1)

Checkpointy

Wszystkie opublikowane pliki wag dla tej rodziny.

PlikWejście (px)Licencja wag
classify
LibreVGG16-cls.pt224bsd-3-clause
LibreVGG19bn-cls.pt224bsd-3-clause
LibreVGG19-cls.pt224bsd-3-clause
LibreVGG16bn-cls.pt224bsd-3-clause

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
VGG, Visual Geometry Group, University of Oxford
Licencja projektu źródłowego
BSD-3-Clause
Kod źródłowy projektu
github.com/pytorch/vision
Kod LibreYOLO
MIT
Wagi
BSD-3-Clause, ponownie opublikowane w huggingface.co/LibreYOLO
Interpretacja
BSD-3-Clause is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep the copyright notice, the list of conditions and the disclaimer with any copy you redistribute, and it forbids using the contributors' names to endorse a derived product without permission; it carries no explicit patent grant. LibreYOLO's code and the four shipped checkpoints (16, 19, 16-BN, 19-BN) are both derived from torchvision, not from the Oxford group's original 2014 Caffe release, which is a separate model under Creative Commons Attribution and is not what LibreYOLO redistributes. Torchvision itself notes that BSD-3-Clause redistribution of a pretrained checkpoint is an implied basis rather than a grant written for that specific checkpoint, and that pretrained-model terms can depend on the data a model was trained on; LibreYOLO repeats that caveat on each hosted weights repository.

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.