Skip to content

Визуальная поддержка ИИ

Используйте визуальные LLM — GPT-4 Vision, Claude Vision, Gemini и YOLO — для предразметки изображений, подсказок ограничивающих рамок и помощи в визуальных задачах Potato.

Появилось в v2.1.0

Potato помогает с разметкой изображений и видео средствами ИИ, используя разные визуальные модели: YOLO для детекции объектов и визуально-языковые модели (VLLM) вроде GPT-4o, Claude и визуальных моделей Ollama.

Обзор

Визуальная поддержка ИИ даёт:

  • Детекцию объектов: автоматически находить и локализовать объекты на изображении через YOLO или VLLM
  • Предразметку: автоматически находить все объекты для последующей проверки человеком
  • Классификацию: классифицировать изображения или области внутри них
  • Подсказки: давать ориентиры, не раскрывая точного расположения
  • Определение сцен: находить временные сегменты в видео
  • Определение ключевых кадров: находить в видео значимые моменты
  • Трекинг объектов: отслеживать объекты между кадрами видео

Поддерживаемые эндпоинты

Эндпоинт YOLO

Лучший вариант для быстрой и точной детекции объектов на локальном инференсе.

yaml
ai_support:
  enabled: true
  endpoint_type: "yolo"
  ai_config:
    model: "yolov8m.pt"  # or yolov8n, yolov8l, yolov8x, yolo-world
    confidence_threshold: 0.5
    iou_threshold: 0.45

Поддерживаемые модели:

  • YOLOv8 (варианты n/s/m/l/x)
  • YOLO-World (детекция с открытым словарём)
  • Свои обученные модели

Эндпоинт Ollama Vision

Для локального инференса визуально-языковых моделей.

yaml
ai_support:
  enabled: true
  endpoint_type: "ollama_vision"
  ai_config:
    model: "llava:latest"  # or llava-llama3, bakllava, llama3.2-vision, qwen2.5-vl
    base_url: "http://localhost:11434"
    max_tokens: 500
    temperature: 0.1

Поддерживаемые модели:

  • LLaVA (7B, 13B, 34B)
  • LLaVA-LLaMA3
  • BakLLaVA
  • Llama 3.2 Vision (11B, 90B)
  • Qwen2.5-VL
  • Moondream

Эндпоинт OpenAI Vision

Для облачного визуального анализа через GPT-4o.

yaml
ai_support:
  enabled: true
  endpoint_type: "openai_vision"
  ai_config:
    api_key: "${OPENAI_API_KEY}"
    model: "gpt-4o"  # or gpt-4o-mini
    max_tokens: 1000
    detail: "auto"  # low, high, or auto

Эндпоинт Anthropic Vision

Для Claude с возможностями зрения.

yaml
ai_support:
  enabled: true
  endpoint_type: "anthropic_vision"
  ai_config:
    api_key: "${ANTHROPIC_API_KEY}"
    model: "claude-sonnet-4-20250514"
    max_tokens: 1024

Возможности эндпоинтов

У каждого эндпоинта свои сильные стороны:

ЭндпоинтГенерация текстаЗрениеВывод рамокКлючевые словаОбоснование
ollama_visionДаДаНетНетДа
openai_visionДаДаНетНетДа
anthropic_visionДаДаНетНетДа
yoloНетДаДаНетНет

Рекомендации:

  • Для точной детекции объектов берите эндпоинт yolo
  • Для классификации изображений с объяснениями берите VLLM вроде ollama_vision с Qwen-VL или LLaVA
  • Для смешанных сценариев настройте и текстовый эндпоинт, и визуальный

Разметка изображений с помощью ИИ

Настройте разметку изображений с помощью ИИ, включив детекцию, предразметку, классификацию и подсказки:

yaml
annotation_schemes:
  - annotation_type: image_annotation
    name: object_detection
    description: "Detect and label objects in the image"
    tools:
      - bbox
      - polygon
    labels:
      - name: "person"
        color: "#FF6B6B"
      - name: "car"
        color: "#4ECDC4"
      - name: "dog"
        color: "#45B7D1"
 
    ai_support:
      enabled: true
      features:
        detection: true      # "Detect" button - find objects
        pre_annotate: true   # "Auto" button - detect all
        classification: false # "Classify" button - classify region
        hint: true           # "Hint" button - get guidance
 
ai_support:
  enabled: true
  endpoint_type: "yolo"
  ai_config:

Разметка видео с помощью ИИ

yaml
annotation_schemes:
  - annotation_type: video_annotation
    name: scene_segmentation
    description: "Segment video into scenes"
    mode: segment
    labels:
      - name: "intro"
        color: "#4ECDC4"
      - name: "action"
        color: "#FF6B6B"
      - name: "outro"
        color: "#45B7D1"
 
    ai_support:
      enabled: true
      features:
        scene_detection: true     # Detect scene boundaries
        keyframe_detection: false
        tracking: false
        pre_annotate: true        # Auto-segment entire video
        hint: true
 
ai_support:
  enabled: true
  endpoint_type: "ollama_vision"
  ai_config:

Раздельные визуальный и текстовый эндпоинты

Для визуальных задач можно настроить отдельный эндпоинт и брать лучшую модель под каждый тип содержимого:

yaml
ai_support:
  enabled: true
  endpoint_type: "openai"  # For text annotations
  ai_config:
    api_key: "${OPENAI_API_KEY}"
    model: "gpt-4o-mini"
 
  # Separate visual endpoint
  visual_endpoint_type: "yolo"
  visual_ai_config:
    model: "yolov8m.pt"
    confidence_threshold: 0.5

Или использовать визуально-языковую модель рядом с текстовой:

yaml
ai_support:
  enabled: true
  endpoint_type: "ollama"  # Main endpoint for text
  visual_endpoint_type: "ollama_vision"  # Visual endpoint for images
  ai_config:
    model: "llama3.2"
    include:
      all: true
  visual_ai_config:
    model: "qwen2.5-vl:7b"

Возможности ИИ

Детекция

Находит объекты, подходящие под заданные метки, и рисует подсказки ограничивающих рамок. Подсказки выводятся пунктирными наложениями, которые можно принять или отклонить.

Предразметка (авто)

Автоматически находит на изображении или видео все объекты и создаёт подсказки для проверки человеком. Полезно для ускорения разметки больших датасетов.

Классификация

Классифицирует выделенную область или изображение целиком. Возвращает предложенную метку с оценкой уверенности и обоснованием.

Подсказки

Дают ориентиры, не раскрывая точных ответов. Хорошо подходят для обучения разметчиков и для случаев, когда нужно человеческое суждение при поддержке ИИ.

Определение сцен (видео)

Разбирает кадры видео, находит границы сцен и предлагает временные сегменты с метками.

Определение ключевых кадров (видео)

Находит в видео значимые моменты, которые стоит взять точками разметки.

Трекинг объектов (видео)

Предлагает положения объектов на разных кадрах для последовательной разметки трекинга.

Как работать с подсказками ИИ

  1. Нажмите кнопку помощи ИИ (Detect, Auto, Hint и т. д.)
  2. Дождитесь, пока подсказки появятся пунктирными наложениями
  3. Принять подсказку: двойной клик по наложению
  4. Отклонить подсказку: правый клик по наложению
  5. Принять все: нажмите «Accept All» на панели инструментов
  6. Очистить всё: нажмите «Clear», чтобы убрать все подсказки

Формат ответа API детекции

json
{
  "detections": [
    {
      "label": "person",
      "bbox": {"x": 0.1, "y": 0.2, "width": 0.3, "height": 0.5},
      "confidence": 0.95
    }
  ]
}

Для подсказок:

json
{
  "hint": "Look for objects in the lower right corner",
  "suggestive_choice": "Focus on overlapping regions"
}

Для сегментов видео:

json
{
  "segments": [
    {
      "start_time": 0.0,
      "end_time": 5.5,
      "suggested_label": "intro",
      "confidence": 0.85
    }
  ]
}

Требования

Для эндпоинта YOLO

bash
pip install ultralytics opencv-python

Для Ollama Vision

  1. Установите Ollama с ollama.ai
  2. Скачайте визуальную модель: ollama pull llava
  3. Запустите сервер Ollama (по умолчанию на http://localhost:11434)

Для OpenAI/Anthropic Vision

  • Задайте ключ API в окружении или конфигурации
  • Убедитесь, что у вас есть доступ к моделям с поддержкой зрения

Решение проблем

«No visual AI endpoint configured»

Убедитесь, что вы:

  1. Задали ai_support.enabled: true
  2. Задали корректный endpoint_type с поддержкой зрения (yolo, ollama_vision, openai_vision, anthropic_vision)
  3. Установили зависимости, нужные выбранному эндпоинту

YOLO не находит нужные объекты

  • Попробуйте снизить confidence_threshold
  • Убедитесь, что ваши метки совпадают с именами классов YOLO (или возьмите YOLO-World для своих словарей)
  • Проверьте, что файл модели существует и корректен

Ошибки Ollama Vision

  • Проверьте, что Ollama запущен: curl http://localhost:11434/api/tags
  • Убедитесь, что визуальная модель скачана: ollama list
  • Проверьте, что модель поддерживает зрение (llava, bakllava, llama3.2-vision и т. д.)

Что почитать дальше

Детали реализации — в исходной документации.