Link to this sectionДокументация Ultralytics: Использование YOLO26 с SAHI для сегментированного вывода#
Добро пожаловать в документацию Ultralytics по использованию YOLO26 с SAHI (Slicing Aided Hyper Inference). Это подробное руководство предоставит тебе все необходимые знания для внедрения SAHI вместе с YOLO26. Мы детально разберем, что такое SAHI, почему сегментированный вывод критически важен для крупномасштабных приложений и как интегрировать эти функции с YOLO26 для повышения производительности детекции объектов.
Link to this sectionВведение в SAHI#
SAHI (Slicing Aided Hyper Inference) — это инновационная библиотека, предназначенная для оптимизации алгоритмов детекции объектов для крупномасштабных изображений и изображений высокого разрешения. Её основная функциональность заключается в разделении изображений на управляемые сегменты, выполнении детекции объектов на каждом сегменте и последующем объединении результатов. SAHI совместима с рядом моделей детекции объектов, включая серию YOLO, что обеспечивает гибкость при оптимизированном использовании вычислительных ресурсов.
Watch: How to use SAHI with Ultralytics YOLO26 to Detect Small Objects | Slicing Aided Hyper Inference 🚀
Link to this sectionОсновные возможности SAHI#
- Бесшовная интеграция: SAHI легко интегрируется с моделями YOLO, что означает, что ты можешь начать сегментирование и детекцию без существенных изменений в коде.
- Эффективность использования ресурсов: Разбивая большие изображения на меньшие части, SAHI оптимизирует использование памяти, позволяя выполнять высококачественную детекцию на оборудовании с ограниченными ресурсами.
- Высокая точность: SAHI поддерживает точность детекции за счет использования интеллектуальных алгоритмов для слияния перекрывающихся ограничивающих рамок в процессе объединения.
Link to this sectionЧто такое сегментированный вывод (Sliced Inference)?#
Сегментированный вывод относится к практике подразделения большого изображения или изображения высокого разрешения на меньшие фрагменты (сегменты), выполнения детекции объектов на этих сегментах и последующей сборки сегментов для воссоздания местоположения объектов на исходном изображении. Этот метод бесценен в сценариях, где вычислительные ресурсы ограничены, или при работе с изображениями сверхвысокого разрешения, которые в противном случае могли бы привести к проблемам с памятью.
Link to this sectionПреимущества сегментированного вывода#
-
Снижение вычислительной нагрузки: Обработка меньших сегментов изображения происходит быстрее, и они потребляют меньше памяти, что обеспечивает более плавную работу на менее мощном оборудовании.
-
Сохранение качества детекции: Поскольку каждый сегмент обрабатывается независимо, качество детекции объектов не снижается, при условии, что сегменты достаточно велики для захвата целевых объектов.
-
Улучшенная масштабируемость: Этот метод позволяет легче масштабировать задачу детекции объектов для изображений различных размеров и разрешений, что делает его идеальным для широкого спектра приложений — от спутниковых снимков до медицинской диагностики.
| YOLO26 without SAHI | YOLO26 with SAHI |
|---|---|
![]() | ![]() |
Link to this sectionУстановка и подготовка#
Link to this sectionУстановка#
Для начала установи последние версии SAHI и Ultralytics:
pip install -U ultralytics sahiLink to this sectionИмпорт модулей и загрузка ресурсов#
Вот как можно загрузить несколько тестовых изображений:
from sahi.utils.file import download_from_url
# Download test images
download_from_url(
"https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/small-vehicles1.jpeg",
"demo_data/small-vehicles1.jpeg",
)
download_from_url(
"https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/terrain2.png",
"demo_data/terrain2.png",
)Link to this sectionСтандартный вывод с YOLO26#
Link to this sectionСоздание экземпляра модели#
Ты можешь создать экземпляр модели YOLO26 для детекции объектов вот так:
from sahi import AutoDetectionModel
detection_model = AutoDetectionModel.from_pretrained(
model_type="ultralytics",
model_path="yolo26n.pt",
confidence_threshold=0.3,
device="cpu", # or 'cuda:0'
)Link to this sectionВыполнение стандартного прогнозирования#
Выполни стандартный вывод, используя путь к изображению.
from sahi.predict import get_prediction
result = get_prediction("demo_data/small-vehicles1.jpeg", detection_model)
result.export_visuals(export_dir="demo_data/", hide_conf=True)Link to this sectionВизуализация результатов#
Экспортируй и визуализируй предсказанные ограничивающие рамки и маски:
from PIL import Image
# Open the predicted image
processed_image = Image.open("demo_data/prediction_visual.png")
# Display the predicted image
processed_image.show()Link to this sectionСегментированный вывод с YOLO26#
Выполни сегментированный вывод, указав размеры сегментов и коэффициенты перекрытия:
from PIL import Image
from sahi.predict import get_sliced_prediction
result = get_sliced_prediction(
"demo_data/small-vehicles1.jpeg",
detection_model,
slice_height=256,
slice_width=256,
overlap_height_ratio=0.2,
overlap_width_ratio=0.2,
)
# Export results
result.export_visuals(export_dir="demo_data/", hide_conf=True)
# Open the predicted image
processed_image = Image.open("demo_data/prediction_visual.png")
# Display the predicted image
processed_image.show()Link to this sectionОбработка результатов прогнозирования#
SAHI предоставляет объект PredictionResult, который можно конвертировать в различные форматы аннотаций:
# Access the object prediction list
object_prediction_list = result.object_prediction_list
# Convert to COCO annotation and COCO prediction formats
result.to_coco_annotations()[:3]
result.to_coco_predictions(image_id=1)[:3]Link to this sectionПакетное прогнозирование#
Для пакетного прогнозирования в каталоге изображений:
from sahi.predict import predict
predict(
model_type="ultralytics",
model_path="yolo26n.pt",
model_device="cpu", # or 'cuda:0'
model_confidence_threshold=0.4,
source="path/to/dir",
slice_height=256,
slice_width=256,
overlap_height_ratio=0.2,
overlap_width_ratio=0.2,
)Теперь ты готов использовать YOLO26 с SAHI как для стандартного, так и для сегментированного вывода.
Link to this sectionЦитирование и благодарности#
Если ты используешь SAHI в своих исследованиях или при разработке, пожалуйста, процитируй оригинальную статью о SAHI и вырази признательность авторам:
@article{akyon2022sahi,
title={Slicing Aided Hyper Inference and Fine-tuning for Small Object Detection},
author={Akyon, Fatih Cagatay and Altinuc, Sinan Onur and Temizel, Alptekin},
journal={2022 IEEE International Conference on Image Processing (ICIP)},
doi={10.1109/ICIP46576.2022.9897990},
pages={966-970},
year={2022}
}Мы выражаем благодарность исследовательской группе SAHI за создание и поддержку этого ценного ресурса для сообщества компьютерного зрения. Для получения дополнительной информации о SAHI и его создателях посети репозиторий SAHI на GitHub.
Link to this sectionFAQ#
Link to this sectionКак я могу интегрировать YOLO26 с SAHI для сегментированного вывода при детекции объектов?#
Интеграция Ultralytics YOLO26 с SAHI (Slicing Aided Hyper Inference) для сегментированного вывода оптимизирует задачи детекции объектов на изображениях высокого разрешения путем их разбиения на управляемые сегменты. Этот подход улучшает использование памяти и обеспечивает высокую точность детекции. Для начала тебе нужно установить библиотеки ultralytics и sahi:
pip install -U ultralytics sahiЗатем загрузи тестовые изображения:
from sahi.utils.file import download_from_url
# Download test images
download_from_url(
"https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/small-vehicles1.jpeg",
"demo_data/small-vehicles1.jpeg",
)
download_from_url(
"https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/terrain2.png",
"demo_data/terrain2.png",
)Для получения более подробных инструкций обратись к нашему руководству по сегментированному выводу.
Link to this sectionПочему мне следует использовать SAHI с YOLO26 для детекции объектов на больших изображениях?#
Использование SAHI с Ultralytics YOLO26 для детекции объектов на больших изображениях дает несколько преимуществ:
- Снижение вычислительной нагрузки: Меньшие сегменты обрабатываются быстрее и потребляют меньше памяти, что позволяет выполнять высококачественную детекцию на оборудовании с ограниченными ресурсами.
- Сохранение точности детекции: SAHI использует интеллектуальные алгоритмы для объединения перекрывающихся рамок, сохраняя качество детекции.
- Улучшенная масштабируемость: Благодаря масштабированию задач детекции объектов на изображениях разных размеров и разрешений SAHI становится идеальным инструментом для различных приложений, таких как анализ спутниковых снимков и медицинская диагностика.
Узнай больше о преимуществах сегментированного вывода в нашей документации.
Link to this sectionМогу ли я визуализировать результаты прогнозирования при использовании YOLO26 с SAHI?#
Да, ты можешь визуализировать результаты прогнозирования при использовании YOLO26 с SAHI. Вот как ты можешь экспортировать и визуализировать результаты:
from PIL import Image
result.export_visuals(export_dir="demo_data/", hide_conf=True)
processed_image = Image.open("demo_data/prediction_visual.png")
processed_image.show()Эта команда сохранит визуализированные прогнозы в указанный каталог, и ты сможешь загрузить изображение, чтобы просмотреть его в своем блокноте или приложении. Подробное руководство см. в разделе Стандартный вывод.
Link to this sectionКакие возможности предлагает SAHI для улучшения детекции объектов в YOLO26?#
SAHI (Slicing Aided Hyper Inference) предлагает несколько возможностей, дополняющих Ultralytics YOLO26 для детекции объектов:
- Бесшовная интеграция: SAHI легко интегрируется с моделями YOLO, требуя минимальных изменений в коде.
- Эффективность использования ресурсов: Библиотека разбивает большие изображения на меньшие сегменты, что оптимизирует использование памяти и скорость.
- Высокая точность: Эффективно объединяя перекрывающиеся рамки детекции в процессе сборки, SAHI поддерживает высокую точность детекции.
Для более глубокого понимания ознакомься с основными возможностями SAHI.
Link to this sectionКак мне обрабатывать крупномасштабные проекты вывода с использованием YOLO26 и SAHI?#
Для работы с крупномасштабными проектами вывода с использованием YOLO26 и SAHI следуй этим лучшим практикам:
- Установи необходимые библиотеки: Убедись, что у тебя установлены последние версии ultralytics и sahi.
- Настрой сегментированный вывод: Определи оптимальные размеры сегментов и коэффициенты перекрытия для твоего конкретного проекта.
- Запускай пакетное прогнозирование: Используй возможности SAHI для выполнения пакетного прогнозирования в каталоге изображений, что повышает эффективность.
Пример пакетного прогнозирования:
from sahi.predict import predict
predict(
model_type="ultralytics",
model_path="path/to/yolo26n.pt",
model_device="cpu", # or 'cuda:0'
model_confidence_threshold=0.4,
source="path/to/dir",
slice_height=256,
slice_width=256,
overlap_height_ratio=0.2,
overlap_width_ratio=0.2,
)Для получения более подробных шагов посети наш раздел Пакетное прогнозирование.

