Разработка системы сегментации изображений (Semantic/Instance Segmentation)

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1Все 1566 услуг
Разработка системы сегментации изображений (Semantic/Instance Segmentation)
Средний
от 1 недели до 3 месяцев
Часто задаваемые вопросы

Направления AI-разработки

Этапы разработки AI-решения

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1282
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    901
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1119
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    853

Разработка системы сегментации изображений (Semantic/Instance Segmentation)

Сегментация — попиксельная разметка изображения. В отличие от детекции (прямоугольная рамка), сегментация даёт точный контур объекта. Это критично для задач, где форма важна: медицинские снимки, спутниковые данные, автономное вождение, контроль качества с измерением площади дефектов.

Semantic vs Instance vs Panoptic

Semantic segmentation — каждый пиксель получает класс, объекты одного класса не различаются. Пример: все машины — один класс «car», все пешеходы — «person». Модели: SegFormer, DeepLabV3+.

Instance segmentation — каждый объект отдельный, даже одного класса. Пример: машина №1, машина №2. Модели: Mask R-CNN, YOLOv8-seg, YOLO11-seg.

Panoptic segmentation — объединение semantic и instance: «вещи» (countable objects) — по инстансам, «фон» (sky, road) — семантически. Модели: Mask2Former.

Segment Anything Model (SAM)

Meta's SAM — революция в сегментации. Zero-shot сегментация: не требует обучения под конкретные классы. Входной промпт: точка, рамка или маска.

from segment_anything import SamPredictor, sam_model_registry

sam = sam_model_registry["vit_h"](checkpoint="sam_vit_h_4b8939.pth")
predictor = SamPredictor(sam)

# Сегментация по bbox
predictor.set_image(image)
masks, scores, _ = predictor.predict(
    box=np.array([x1, y1, x2, y2]),
    multimask_output=False
)

SAM2 (2024) — улучшенная версия с поддержкой видео: трекинг сегментации через кадры.

Когда SAM не подходит: задачи, где нужна классификация сегментов (SAM не знает классы), и задачи с требованием к скорости (SAM-ViT-H: ~50ms на A100, слишком медленно для real-time).

Fine-tuning для domain-specific задач

Для медицинских снимков и промышленных данных SAM дообучается под домен:

from ultralytics import SAM

# SAM2 fine-tuning через Ultralytics
model = SAM('sam2_b.pt')
model.train(
    data='medical_dataset.yaml',
    epochs=50,
    imgsz=1024,
    batch=4,
    lr0=1e-4
)

Для semantic segmentation — SegFormer (HuggingFace) с fine-tuning на кастомных данных. SegFormer-B5 показывает mIoU 84.0 на Cityscapes при разумной скорости.

U-Net для медицинских задач

U-Net — стандарт для биомедицинской сегментации. Encoder-decoder с skip connections отлично работает с малыми датасетами (200–500 изображений):

import segmentation_models_pytorch as smp

model = smp.Unet(
    encoder_name='efficientnet-b4',
    encoder_weights='imagenet',
    in_channels=1,              # для grayscale МРТ/КТ
    classes=3,                  # фон, орган, опухоль
    activation=None
)

Метрики качества

  • mIoU (mean Intersection over Union) — основная метрика для semantic segmentation
  • AP (Average Precision) — для instance segmentation
  • Dice coefficient — для медицинских задач (эквивалентен F1 на пиксельном уровне)
  • Boundary IoU — качество контуров, важно для прецизионных задач
Модель mIoU Cityscapes FPS
SegFormer-B2 81.0 48
SegFormer-B5 84.0 15
DeepLabV3+ ResNet101 80.9 22
YOLOv8x-seg 120 (instance)
Задача Срок
Instance segmentation на основе YOLOv8 2–4 недели
Semantic segmentation, custom dataset 3–6 недель
Медицинская сегментация, SAM fine-tuning 5–10 недель