Анализ изображений
Практические применения
Проблема: Помимо простого описания изображений, нам нужен ИИ, который может глубоко анализировать визуальный контент — находить паттерны, сравнивать изображения и давать экспертные инсайты.
Решение: От пикселей к структурированным данным
Если Основы Vision покрывают общее понимание изображений (описание фотографий, визуальные Q&A), то анализ изображений сфокусирован на извлечении структурированных, пригодных для машины данных из документов, графиков, медицинских снимков и технических диаграмм. Это разница между описанием картины и чтением рентгена пациента: цель — не красивое предложение, а набор полей, которые можно сохранить, проверить и использовать. Результаты возвращаются как структурированный вывод (structured output) — JSON, таблицы, — чтобы программа дальше по конвейеру могла прочитать их без разбора свободного текста.
Как это работает внутри
Современная визуальная модель (vision model) не запускает отдельный OCR-движок, а потом языковую модель. Изображение режется на патчи, каждый патч превращается в эмбеддинг (embedding), и эти визуальные токены попадают в тот же трансформер, который обрабатывает текст. Поскольку модель рассуждает над пикселями и твоими инструкциями совместно, она может считать число с оси графика, связать его с нужным столбцом и положить в то поле JSON, которое ты запросил, — за один проход. Именно поэтому промпт так важен: расплывчатое «опиши это» заставляет модель гадать, какая структура тебе нужна, а явная схема ({"invoice_no": ..., "total": ..., "line_items": [...]}) прямо говорит, какие поля заполнять. Стоимость примерно пропорциональна разрешению изображения: чем выше разрешение, тем больше визуальных токенов.
Когда применять и главная ловушка
Бери анализ изображений, когда «источник истины» живёт в картинке, а не в чистом тексте: сканы счетов, лабораторные отчёты, дашборды, удостоверения, инженерные схемы. Ключевой компромисс — точность против доверия: визуальные модели умеют галлюцинировать правдоподобные значения — сумму, которой нет на чеке, дату, которая «выглядит правильной», — и они печально слабы в точном подсчёте и в мелком низкоконтрастном тексте. Защита — это заземление (grounding): проси модель копировать значения дословно, возвращать null, когда поле нечитаемо, и помечать каждое поле как [VERIFIED] или [UNVERIFIED]. Разобранный пример: дай модели смазанный чек и промпт «Извлеки продавца, дату и сумму как JSON; если поле не читается — поставь null и добавь `confidence` 0–1». Вместо выдуманных «42.00» хорошо заземлённая модель вернёт {"merchant": "Acme Cafe", "date": null, "total": 42.0, "confidence": 0.6} — и этот null вместе с низкой уверенностью и есть тот сигнал, который отправит документ на проверку человеку вместо тихой порчи твоей базы данных.
Представьте это как специалиста, читающего рентгеновский снимок:
- 1. Определяем тип документа: Это график, форма, медицинский снимок или чек? Стратегия промпта отличается для каждого
- 2. OCR + парсинг макета: Извлекаем текст, сохраняя структуру — колонки, заголовки, ячейки таблиц, а не просто текст
- 3. Структурированное извлечение: Запрашиваем JSON: {"patient": "...", "diagnosis": "...", "medications": [...]}
- 4. Валидация и заземление: Помечаем извлечённые данные как [VERIFIED] или [UNVERIFIED] — LLM может придумывать названия сущностей из документов
Где это используется?
- Обработка документов: Извлечение имён, дат, сумм из сканов контрактов, счетов, чеков — со структурированным JSON-выводом
- Чтение графиков и диаграмм: Интерпретация столбчатых, линейных, круговых диаграмм — извлечение данных и трендов
- Анализ медицинских отчётов: Парсинг лабораторных результатов, рентгенологических заключений — извлечение диагнозов, измерений, рекомендаций
- Технические диаграммы: Чтение архитектурных диаграмм, блок-схем, электрических схем — описание компонентов и связей
Интересный факт: Vision-модели теперь могут замечать то, что люди упускают! В медицинской визуализации ИИ обнаруживал раннюю стадию рака, которую пропустили радиологи. Комбинация ИИ + человек часто точнее, чем они по отдельности.
Попробуйте сами!
Используй интерактивный пример ниже, чтобы провести детальный анализ разных типов изображений и увидеть глубину понимания ИИ.
Качество промпта определяет всё
Обобщённый промпт
"Опиши это изображение"Результат:
Это медицинская форма с информацией о пациенте и результатами тестов.
Структурированный промпт
"Извлеки из этой медицинской формы: 1) Имя пациента 2) Дата 3) Все результаты как JSON {test: value, unit, reference_range}"Результат:
{"patient": "Иванова А.В.", "date": "2025-01-15", "results": [{"test": "Глюкоза", "value": 95, "unit": "мг/дл", "range": "70-100"}]}Для продвинутых OCR-техник — извлечение таблиц, многостраничные документы и рукописный текст — смотрите Анализ документов.
Маркеры уверенности
Всегда просите модель помечать извлечённые данные уровнями уверенности. Это помогает выявлять галлюцинированные значения.
For each extracted field, mark as: [VERIFIED] — clearly visible in the image [UNVERIFIED] — partially visible or inferred [NOT_FOUND] — not present in the image
Частые вопросы
Чем анализ изображений отличается от обычного описания фото?
Описание фото даёт текст в свободной форме («на столе чашка кофе»), а анализ изображений извлекает структурированные данные — конкретные поля в JSON или таблице, которые можно сохранить в базу, проверить и обработать программой. Цель не красивое предложение, а пригодный для машины набор значений: продавец, дата, сумма, результаты анализов.
Как заставить vision-модель вернуть данные в формате JSON?
Дай явную схему прямо в промпте: перечисли нужные поля и их формат, например «Извлеки из чека: продавца, дату (YYYY-MM-DD) и сумму как JSON {merchant, date, total}». Чем конкретнее структура, тем меньше модель гадает. Многие API дополнительно поддерживают режим structured output / json_mode, который гарантирует валидный JSON на выходе.
Почему модель придумывает значения, которых нет на изображении?
Это галлюцинация: модель достраивает «правдоподобный» ответ, особенно когда текст смазан, мелкий или низкоконтрастный. Vision-модели также слабы в точном подсчёте объектов. Защита — заземление (grounding): проси копировать значения дословно, возвращать null для нечитаемых полей и помечать каждое поле как [VERIFIED] или [UNVERIFIED].
Можно ли доверять ИИ извлечение данных из медицинских и финансовых документов?
Только как первому черновику с обязательной проверкой человеком на критичных полях. Лучшая практика — связка ИИ + ревью: модель извлекает данные и проставляет уровень уверенности, а поля с низкой уверенностью или null отправляются на ручную проверку. Так комбинация ИИ и человека оказывается точнее, чем каждый по отдельности, и ошибки не попадают в базу тихо.
Попробуй сам
Интерактивное демо этой техники
OCR и понимание документа: сырое извлечение текста vs структурированный анализ
МАГАЗИН ПРОДУКТЫ 24 МОЛОКО 2.5% 89.90 ХЛЕБ БОРОДИНСКИЙ 65.00 СЫР РОССИЙСКИЙ 450Г 389.00 БАНАНЫ 1.2КГ 95.88 ЯЙЦА С1 10ШТ 109.00 ИТОГО 748.78 ОПЛАТА КАРТОЙ СПАСИБО ЗА ПОКУПКУ
1. Магазин: Продукты 24
2. Товары:
[
{"name": "Молоко 2.5%", "quantity": 1, "unit": "шт", "price_per_unit": 89.90, "total": 89.90},
{"name": "Хлеб Бородинский", "quantity": 1, "unit": "шт", "price_per_unit": 65.00, "total": 65.00},
{"name": "Сыр Российский", "quantity": 1, "unit": "450г", "price_per_unit": 389.00, "total": 389.00},
{"name": "Бананы", "quantity": 1.2, "unit": "кг", "price_per_unit": 79.90, "total": 95.88},
{"name": "Яйца С1", "quantity": 10, "unit": "шт", "price_per_unit": 10.90, "total": 109.00}
]
3. Итого: {"subtotal": 748.78, "tax": 0, "total": 748.78, "payment_method": "card"}
4. Дата: Не указана на видимой части чека.
5. Проверка: 89.90 + 65.00 + 389.00 + 95.88 + 109.00 = 748.78 ✓ Совпадает.
OCR без структуры — просто текст. Промпт с JSON-схемой + верификация (сумма = итого?) превращает фото документа в данные, готовые для импорта в систему.
Создайте бесплатный аккаунт для решения челленджей
4 челленджей с AI-проверкой для этого урока
Этот урок — часть структурированного курса по LLM.
Мой путь обучения