Многие компании хотят использовать компьютерное зрение (CV), но боятся, что для этого нужна команда из PhD. На самом деле, с современными мультимодальными моделями и правильно составленными промтами можно построить рабочий пайплайн от сбора данных до видеоаналитики, используя только API и открытые библиотеки. В этой подборке — 10 конкретных промтов для ключевых этапов CV-проекта: подготовка датасета, выбор модели, обучение, оценка, оптимизация и мультимодальные сценарии. Каждый промт сопровождается примером и пояснением, для какой задачи он подходит.
Все промты предполагают, что вы работаете с LLM (например, GPT-4, Claude 3, Gemini) или мультимодальными моделями (CLIP, LLaVA). Они не заменят глубоких знаний, но позволят быстро прототипировать и автоматизировать рутину. Главное — давать модели чёткие инструкции и контекст.
1. Генерация синтетического датасета для детекции объектов
Задача: У вас нет размеченных изображений, но нужно обучить YOLO или Detectron2. Промт помогает сгенерировать описания сцен для последующей генерации изображений (например, через DALL-E 3 или Stable Diffusion) с автоматической разметкой.
Промт:
Ты — эксперт по компьютерному зрению. Сгенерируй 50 описаний изображений для обучения детектора объектов класса "строительная каска" в условиях стройплощадки. Для каждого описания укажи:
- текстовое описание сцены (для генерации изображения)
- список объектов с их координатами в формате [x_min, y_min, x_max, y_max] в пикселях (изображение 640x640)
- условия освещения, ракурсы, окклюзии
Формат вывода: JSON массив, где каждый элемент — объект с полями: "description", "objects" (массив словарей с "class", "bbox"), "lighting".
Пример:
{"description": "Строитель в каске на фоне крана, солнечный день", "objects": [{"class": "helmet", "bbox": [220, 150, 300, 230]}], "lighting": "bright"}
Пример использования: Вы копируете промт в ChatGPT, получаете JSON, затем используете его для генерации изображений в Midjourney или SDXL с ControlNet, подставляя описания. Координаты можно использовать как начальную разметку, но их придётся уточнить вручную или через алгоритмы.
Совет: Для реалистичности добавляйте в промт требования по разнообразию: разные цвета касок, фоны, время суток.
2. Автоматическая разметка изображений с помощью мультимодальной модели
Задача: Быстро разметить небольшой датасет без ручной работы. Используем возможности GPT-4 Vision или LLaVA.
Промт:
Ты — система автоматической разметки. На вход подаётся изображение. Твоя задача — найти все объекты класса "автомобиль" и вернуть их ограничивающие рамки в формате JSON: {"objects": [{"class": "car", "bbox": [x_min, y_min, x_max, y_max], "confidence": 0.95}]}. Координаты — в пикселях относительно исходного изображения. Если объектов нет, верни пустой массив. Не добавляй пояснений.
Пример использования: Вы отправляете изображение в модель вместе с этим промтом (для GPT-4 Vision — через API с параметром image). Получаете JSON с рамками. Точность таких моделей не идеальна, но для предварительной разметки и последующей коррекции человеком экономит часы.
Важно: GPT-4 Vision не всегда точно определяет координаты, поэтому результат нужно проверять. Для повышения точности можно использовать специализированные модели, например, Grounding DINO, но промт для них будет другим.
3. Выбор архитектуры модели под задачу
Задача: Определиться, какую модель использовать: YOLOv8, Detectron2, или что-то ещё. Промт помогает проанализировать требования и дать рекомендацию.
Промт:
Ты — CV-инженер. Проанализируй задачу и порекомендуй архитектуру для детекции объектов. Входные данные: [опиши задачу, например: "детекция дефектов на производственной линии, 10 классов, скорость инференса >30 FPS, доступно 5000 размеченных изображений, оборудование: NVIDIA T4"]. Учти:
- требования по скорости и точности
- доступные данные
- сложность интеграции
- поддержка сообществом
Выдай рекомендацию в виде таблицы: модель, плюсы, минусы, ссылка на документацию. Обоснуй выбор.
Пример использования: Вы заполняете квадратные скобки своими данными и получаете сравнительную таблицу. Например, для производства с T4 часто советуют YOLOv8n или YOLOv8s из-за баланса скорости и точности.
Совет: Уточняйте, нужна ли поддержка ONNX/TensorRT, так как не все модели легко экспортируются.
4. Написание кода для обучения YOLO с аугментацией
Задача: Сгенерировать скрипт обучения с аугментациями без глубокого знания синтаксиса.
Промт:
Напиши Python-скрипт для обучения YOLOv8 на собственном датасете в формате YOLO. Используй библиотеку ultralytics. Включи:
- загрузку данных из папки data (images/train, images/val, labels/train, labels/val)
- аугментации: случайное отражение по горизонтали, поворот на ±15 градусов, изменение яркости/контраста
- обучение 100 эпох, batch=16, imgsz=640
- сохранение весов в runs/detect/train/weights/best.pt
- вывод метрик mAP@0.5 и mAP@0.5:0.95
Добавь комментарии. Используй YOLO('yolov8n.pt') как предобученную модель.
Пример использования: Копируете промт, получаете готовый скрипт. Запускаете на своём датасете. Если нужно изменить параметры, просто правьте их в коде.
Важно: Убедитесь, что структура папок соответствует ожиданиям ultralytics. Обычно это data.yaml с путями.
5. Оценка качества модели: расчёт mAP и IoU
Задача: Понять, насколько хорошо обучилась модель, и интерпретировать метрики.
Промт:
Объясни, как рассчитать mAP@0.5 и mAP@0.5:0.95 для детектора объектов. Приведи пример на Python с использованием библиотеки pycocotools или torchmetrics. Входные данные: предсказания модели в формате [x_min, y_min, x_max, y_max, confidence, class_id] и ground truth в том же формате. Напиши функцию, которая принимает два списка и возвращает mAP. Поясни, что такое IoU и как он влияет на mAP.
Пример использования: Вы получаете код функции и объяснение. Можете использовать её для валидации. Например, для COCO mAP@0.5:0.95 — стандартная метрика, но для производственных задач часто достаточно mAP@0.5.
Совет: Для интерпретации: mAP@0.5 > 0.7 считается хорошим результатом для многих задач.
6. Оптимизация инференса через ONNX и TensorRT
Задача: Ускорить модель на продакшене без потери точности.
Промт:
Напиши пошаговую инструкцию по конвертации модели YOLOv8 в ONNX и TensorRT. Включи:
- установку необходимых пакетов (onnx, onnxruntime-gpu, tensorrt)
- экспорт модели в ONNX с dynamic axes
- конвертацию ONNX в TensorRT с указанием precision (FP16, INT8)
- пример кода для инференса на TensorRT
- сравнение скорости до и после
Учти, что модель обучена на вход 640x640.
Пример использования: Следуя инструкции, вы получаете оптимизированный движок. На практике TensorRT может ускорить инференс в 2-5 раз на GPU NVIDIA.
Важно: Для INT8 нужна калибровка на реальных данных, иначе точность упадёт.
7. Мультимодальный поиск по изображениям с CLIP
Задача: Найти изображения по текстовому описанию без разметки.
Промт:
Напиши Python-скрипт для поиска изображений по текстовому запросу с использованием CLIP (openai/clip-vit-base-patch32). Скрипт должен:
- загружать все изображения из папки images
- вычислять эмбеддинги изображений и текстового запроса
- находить top-5 наиболее похожих изображений по косинусному сходству
- выводить пути к изображениям и их сходство
Используй библиотеки: transformers, torch, PIL. Добавь обработку ошибок.
Пример использования: Вы задаёте запрос "красная машина на фоне леса" и получаете подборку. Это основа для системы поиска на складе или в архиве.
Совет: Для улучшения результатов можно использовать более крупные модели CLIP, но они требуют больше ресурсов.
8. Анализ видео: трекинг объектов и подсчёт
Задача: Построить простую видеоаналитику — например, считать проходящих людей.
Промт:
Напиши скрипт на Python для обработки видеофайла: детекция людей с YOLOv8 и трекинг с DeepSort. Требуется:
- читать видео по кадрам
- для каждого кадра детектировать людей
- обновлять трекер
- считать количество уникальных треков (людей), пересекших заданную линию
- сохранять видео с отрисованными рамками и ID
Используй библиотеки: ultralytics, deep_sort_realtime, opencv-python.
Пример использования: Вы получаете готовый скрипт. Можно адаптировать под подсчёт машин или товаров на конвейере.
Важно: DeepSort требует, чтобы детекции были в формате [x_min, y_min, w, h].
9. Генерация отчёта о качестве датасета
Задача: Проверить датасет на дисбаланс классов и ошибки разметки.
Промт:
Напиши код для анализа датасета в формате YOLO (папки images и labels). Выведи:
- количество изображений
- распределение классов (гистограмма)
- средний размер объектов по классам
- изображения без объектов
- возможные ошибки: координаты вне границ [0,1]
Используй Python, matplotlib. Сохрани отчёт в PDF.
Пример использования: Запускаете скрипт и видите, каких классов не хватает. Это помогает сбалансировать датасет до обучения.
Совет: Если какого-то класса меньше 10% от общего числа, стоит добавить данные.
10. Мультимодальный чат-бот для вопросов по изображениям
Задача: Создать бота, который отвечает на вопросы о содержимом изображений (например, для техподдержки).
Промт:
Ты — мультимодальный ассистент. Пользователь загружает изображение и задаёт вопрос. Твоя задача — ответить, анализируя изображение. Если вопрос не относится к изображению, скажи, что не можешь ответить. Отвечай кратко и по делу. Пример: пользователь спрашивает "Что не так с этим оборудованием?" — ты должен указать на видимые дефекты (вмятины, трещины, ошибки на дисплее).
Пример использования: Вы интегрируете этот промт в чат-интерфейс с GPT-4 Vision. Пользователи могут отправлять фото неисправного станка и получать предварительный диагноз.
Важно: Модель может ошибаться, поэтому для критичных решений нужна проверка человеком.
Все эти промты — лишь отправная точка. Комбинируйте их, адаптируйте под свои данные и не бойтесь экспериментировать. Главное — итеративно улучшать пайплайн: начать с простого прототипа, затем оптимизировать узкие места. Если вам нужна помощь в построении комплексных AI-решений, изучите материалы asibiont.com — там есть практические руководства по интеграции мультимодальных моделей в бизнес-процессы.
Комментарии