Faster R-CNN
Faster R-CNN виявляє об'єкти за допомогою мережі пропозицій областей, яка подає дані до двостадійного класифікатора. Ця архітектура зробила пропозиції областей частиною тієї самої навченої мережі замість окремого етапу. LibreYOLO переносить реалізацію torchvision для виявлення.
- Задачі
- detection
- Розміри
- n, s, m, l at 320 to 800 px
- Встановлення
pip install libreyolo- Рівень підтримки
- Лише інференс, починаючи з v. Лише передбачення, валідація та експорт. Функції навчання не застосовуються.
- Ліцензії
- Код: BSD-3-Clause, ваги: BSD-3-Clause. Комерційне використання
Встановлення
Faster R-CNN не потребує додаткових залежностей. Усе, що вона імпортує, входить до базового встановлення.
pip install libreyoloПередбачення
Під час першого використання ваги завантажуються з Hugging Face і кешуються локально.
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=TrueПовернений об'єкт Results є однаковим для всіх сімейств, тому заміна
детектора потребує зміни одного рядка. conf і iou задають пороги
впевненості та NMS. На відміну від детектора на основі запитів, Faster R-CNN
зберігає початковий етап NMS. Типи джерел, потокове передбачення та обробку
результатів описано в розділі передбачення.
Варіанти
Доступні чотири розміри, кожен з окремою конфігурацією torchvision, а не
масштабованою версією однієї конфігурації: n використовує
MobileNetV3-Large із входом 320 px, s має той самий бекбон із входом
800 px, m використовує ResNet-50 із пірамідою ознак, а l є редакцією
v2 з глибшою головою пропозицій областей і головою рамок із чотирьох згорток
замість голови m. Варіанти n і s поступаються правильністю заради
легшого бекбона.
Валідація
val() повертає словник ключів metrics/ із точністю, повнотою, mAP 50 та
mAP 50-95, виміряними на будь-якому датасеті у форматі, на якому проводилося
навчання.
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.yamlЕкспорт
| Задача | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Detection | Detection to ONNX: підтримується | Detection to TorchScript: не підтримується | Detection to ExecuTorch: не підтримується | Detection to TensorRT: не підтримується | Detection to OpenVINO: не підтримується | Detection to Paddle: не підтримується | Detection to MNN: не підтримується | Detection to RKNN: не підтримується | Detection to ncnn: не підтримується | Detection to TFLite: не підтримується | Detection to CoreML: не підтримується | Detection to Core AI: не підтримується |
Faster R-CNN експортується лише до ONNX із розміром батча 1. Експортований граф
зберігає всередині початковий етап зміни розміру, тому LibreYOLO примусово
вмикає dynamic=True незалежно від переданого значення, щоб граф залишався
коректним для неквадратних джерел. Експортований файл .onnx знову
завантажується через LibreYOLO() за суфіксом і повертає той самий об'єкт
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 # Фабрика маршрутизує за суфіксом файлу, тому експортований артефакт# завантажується як будь-яка контрольна точка й повертає той самий об'єкт Results.model = LibreYOLO("LibreFasterRCNNl.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Контрольні точки
Усі опубліковані файли ваг цього сімейства.
| Файл | Вхід (пікс.) | Ліцензія ваг |
|---|---|---|
| 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 |
Кожен наведений вище файл уже доступний у організації LibreYOLO і завантажується під час першого використання.
Ліцензування
Перевіряйте ліцензію в репозиторії Hugging Face конкретних ваг, які завантажуєте. Кожна контрольна точка в організації LibreYOLO має ліцензію, і вона не завжди однакова для всього сімейства. Цей репозиторій є авторитетним джерелом, а наведене нижче резюме описує умови на момент останньої перевірки сторінки.
Це опис відповідних ліцензій, а не юридична консультація. Якщо відповідь має комерційне значення, самостійно прочитайте ліцензії та зверніться по юридичну консультацію.
- Оригінальна робота
- Faster R-CNN, PyTorch
- Ліцензія першоджерела
- BSD-3-Clause
- Джерело першоджерела
- github.com/pytorch/vision
- Код LibreYOLO
- MIT
- Ваги
- BSD-3-Clause, повторно опубліковано на huggingface.co/LibreYOLO
- Тлумачення
- 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.
Цитування
@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}
}Скопійовано з блоку цитування авторів на сторінці github.com/rbgirshick/py-faster-rcnn#citing-faster-r-cnn.