avatar
Refat Talks: Tech & AI
@nobilix
02.10.2025 17:30
🔥 Image Understanding (box_2d) в Gemini - недооцененная суперсила для OCR и не только

Короче, как я перепробовал почти все и пришел к простому. Недавно работал над задачей: нужно было извлекать данные из документов (инвойсы, ID карты, чеки), причем не просто текст вытащить, а конкретные поля и обязательно показать пользователю откуда именно взяли каждое поле. То есть полноценный grounded extraction с визуальной верификацией.

Перепробовал кучу всего, включая OCR-движки и YOLO модели - все не то: или работает с узким набором доков, или вытаскивает все подряд, или надо дообучать.

И тут я вспомнил про фичу Gemini, которую использовал в других кейсах - Image Understanding с 2D Bounding Boxes. Удивился насколько это работает лучше всех предыдущих решений. Быстрее, точнее и вполне недорого (особенно с Flash).

Смотрите, большинство vision-моделей могут описать что на картинке. GPT, Claude, другие vision модели - все они видят текст, объекты и понимают контекст. Но Gemini делает больше: он может показать где именно на изображении находится то, что он видит. С точностью до пикселя.

В промпте надо упомянуть необходимость извлечения box_2d контуров и получаете не просто текст, а JSON с координатами каждого поля:

{
"box_2d": [245, 156, 289, 487],
"label": "DOCUMENT_NUMBER",
"value": "AB123456"
}


Координаты нормализованы от 0 до 1000, формат [ymin, xmin, ymax, xmax]. Дальше простая геометрия - и ты можешь наложить эти боксы на оригинал. Получается интерактивная подсветка: навел на поле в списке - подсветилось на изображении. Смотрите на видео демку из моего проекта.

Зачем это нужно: операторы могут проверять правильность извлечения прямо на документе, RAG-пайплайны хранят координаты для точных ссылок на источник, QA сразу видит где модель ошиблась, клиенты получают прозрачность - что извлекли и откуда.
Этот пост, кстати, хорошее дополнение к моему обзору LangExtract.

Технические нюансы
- Важно просить Gemini выдать именно box_2d (она натренирована таким образом): "The box_2d should be [ymin, xmin, ymax, xmax] normalized to 0-1000"
- Structured Outputs + JSON schema с box_2d отлично сочетаются и гарантируют валидный формат
- Flash/Flash Lite модели чаще всего достаточно (всего $0.10/$0.40 за миллион токенов), Pro для сложных отчетов
- Выключайте thinking для spatial задач (thinking_budget=0)
- Ресайзите до 640px по большей стороне (часто - лучший вариант, но зависит от кейса)
- Gemini 2.5+ поддерживает Segmentation Masks - то есть выдает также base64 png с точной формой объекта, полезно для computer vision задач и conversational segmentation типа "подсвети строки где сумма больше $1000"

Use cases за пределами документов: UI/UX тестирование и визуальные регрессии, e-commerce (детекция продуктов, ценников, инвентаря), quality control (дефекты, лейблы, компоненты), робототехника (навигация, захват объектов, инспекция).

Если вы делаете что-то с обработкой документов или изображений где важна локализация - попробуйте Gemini Image Understanding. Это недооцененная фича которая может сэкономить месяцы разработки и деньги на инфраструктуру.

🔥➕🔁
🔥 78
👍 17
2
23 294 6.4K

Обсуждение 23

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram

Refat Talks: Tech & AI

11.4K
Заметки про технологии, GenAI и глобал стартапы, прагматично и без лишнего хайпа. Эксперт по разработке и внедрению enterprise-grade AI автоматизаций, строю AI-first компании. Co-founder devstark.com и spreadsimple.com
лс @refatametov
Открыть в Telegram