Faster R-CNN
Faster R-CNN детектирует объекты сетью предложений регионов, которая подаёт их в двухстадийный классификатор, — архитектура, сделавшая предложения регионов частью той же обучаемой сети, а не отдельным шагом. LibreYOLO портирует реализацию из torchvision для детекции.
- Задачи
- detection
- Размеры
- n, s, m, l at 320 to 800 px
- Установка
pip install libreyolo- Уровень поддержки
- Только инференс, начиная с v. Только предсказание, валидация и экспорт. Функции обучения неприменимы.
- Исходный проект
- Faster R-CNN от PyTorch, BSD-3-Clause. Статья, исходный код
- Лицензии
- Код: BSD-3-Clause, веса: BSD-3-Clause. Коммерческое использование
Установка
Faster R-CNN не требует опциональных extra. Всё, что он импортирует, входит в базовую установку.
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.