Faster R-CNN
Faster R-CNN wykrywa obiekty za pomocą sieci propozycji regionów zasilającej dwustopniowy klasyfikator. To architektura, która włączyła propozycje regionów do tej samej trenowanej sieci zamiast osobnego etapu. LibreYOLO przenosi implementację torchvision do detekcji.
- Zadania
- detection
- Rozmiary
- n, s, m, l at 320 to 800 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
- Faster R-CNN, autorzy: PyTorch, licencja: BSD-3-Clause. Publikacja, kod źródłowy
- Licencje
- Kod: BSD-3-Clause, wagi: BSD-3-Clause. Użycie komercyjne
Instalacja
Faster R-CNN nie wymaga żadnego opcjonalnego dodatku. Wszystkie importowane elementy znajdują się w instalacji podstawowej.
pip install libreyoloPredykcja
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("LibreFasterRCNNl.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes: print(box.cls, box.conf, box.xyxy)libreyolo predict model=LibreFasterRCNNl.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. Argumenty conf i iou ustawiają progi
pewności i NMS. Faster R-CNN zachowuje źródłowy etap NMS, w przeciwieństwie do
detektora opartego na zapytaniach. Więcej informacji o źródłach, streamingu i
obsłudze wyników zawiera strona predykcji.
Warianty
Dostępne są cztery rozmiary, z których każdy stanowi inną konfigurację
torchvision, a nie przeskalowaną wersję tej samej konfiguracji. n to
MobileNetV3-Large z wejściem 320 px, s używa tego samego backbone przy 800 px,
m to ResNet-50 z piramidą cech, a l jest wersją v2 z głębszą głowicą
propozycji regionów i czterokonwolucyjną głowicą ramek zamiast głowicy wariantu
m. Warianty n i s poświęcają dokładność na rzecz lżejszego backbone.
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.
from libreyolo import LibreYOLO model = LibreYOLO("LibreFasterRCNNl.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])libreyolo val model=LibreFasterRCNNl.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: brak obsługi | Detection to ExecuTorch: brak obsługi | Detection to TensorRT: brak obsługi | Detection to OpenVINO: brak obsługi | Detection to Paddle: brak obsługi | Detection to MNN: brak obsługi | Detection to RKNN: brak obsługi | Detection to ncnn: brak obsługi | Detection to TFLite: brak obsługi | Detection to CoreML: brak obsługi | Detection to Core AI: brak obsługi |
Faster R-CNN eksportuje wyłącznie do ONNX z rozmiarem batcha 1. Wyeksportowany
graf zachowuje wewnątrz źródłowy etap zmiany rozmiaru, dlatego LibreYOLO wymusza
dynamic=True niezależnie od przekazanej wartości, aby graf działał dla źródeł
niebędących kwadratami. Wyeksportowany plik .onnx jest ponownie ładowany przez
LibreYOLO() na podstawie rozszerzenia i zwraca ten sam obiekt Results.
from libreyolo import LibreYOLO model = LibreYOLO("LibreFasterRCNNl.pt")model.export(format="onnx", imgsz=800)libreyolo export model=LibreFasterRCNNl.pt format=onnx imgsz=800from 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("LibreFasterRCNNl.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Checkpointy
Wszystkie opublikowane pliki wag dla tej rodziny.
| Plik | Wejście (px) | Licencja wag |
|---|---|---|
| Detection | ||
| LibreFasterRCNNn.pt | 320 | bsd-3-clause |
| LibreFasterRCNNs.pt | 800 | bsd-3-clause |
| LibreFasterRCNNm.pt | 800 | bsd-3-clause |
| LibreFasterRCNNl.pt | 800 | bsd-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
- Faster R-CNN, PyTorch
- 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 this code can be used in commercial and closed-source products with no obligation on your own application code. It asks only that you keep the copyright notice and disclaimer with any copy you redistribute, and it carries no patent grant. The four published checkpoints used for parity testing are not distributed in the LibreYOLO source tree: torchvision's own documentation notes that a pretrained model's terms may depend on its training data, so each Hugging Face mirror ships the BSD text on that implied basis and repeats the caveat rather than issuing an explicit checkpoint-specific grant.
Cytowanie
@inproceedings{renNIPS15fasterrcnn,
Author = {Shaoqing Ren and Kaiming He and Ross Girshick and Jian Sun},
Title = {Faster {R-CNN}: Towards Real-Time Object Detection
with Region Proposal Networks},
Booktitle = {Advances in Neural Information Processing Systems ({NIPS})},
Year = {2015}
}Skopiowano z bloku cytowania autorów w github.com/rbgirshick/py-faster-rcnn#citing-faster-r-cnn.