Урок 2Практика

Анализ изображений

Практические применения

Проблема: Помимо простого описания изображений, нам нужен ИИ, который может глубоко анализировать визуальный контент — находить паттерны, сравнивать изображения и давать экспертные инсайты.

Решение: От пикселей к структурированным данным

Если Основы 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 ОПЛАТА КАРТОЙ СПАСИБО ЗА ПОКУПКУ

Токены:290/65
Время:2100ms
Качество:
С Анализ изображений
С техникой
Промпт
Проанализируй фото чека и извлеки данные в структурированном формате: 1. Магазин: название и адрес (если есть) 2. Товары: JSON-массив [{name, quantity, unit, price_per_unit, total}] 3. Итого: {subtotal, tax, total, payment_method} 4. Дата и время покупки 5. Проверка: сумма товаров совпадает с итого? [Фото: кассовый чек из супермаркета]
Ответ

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 даёт текст как есть — без структуры, без типизации, без валидации
🧠Структурированная схема (name, quantity, unit, price) превращает текст в данные для БД/Excel
🔍Шаг верификации (сумма товаров = итого?) ловит ошибки OCR и извлечения
OCR + структура + валидация = надёжный pipeline для извлечения данных из документов
Токены:340/300
Время:3600ms
Качество:
Почему это работает

OCR без структуры — просто текст. Промпт с JSON-схемой + верификация (сумма = итого?) превращает фото документа в данные, готовые для импорта в систему.

1 / 2

Квиз по уроку

1 из 3

1.Чем OCR на базе LLM отличается от традиционных систем OCR?

Практика

Создайте бесплатный аккаунт для решения челленджей

4 челленджей с AI-проверкой для этого урока

Связанные уроки:Vision BasicsInformation Extraction

Этот урок — часть структурированного курса по LLM.

Мой путь обучения