← Назад к портфолио

AI Vision — УЗТ формыПриватный

AI Vision — УЗТ формы main image

Описание и детали проекта

Задача

Нужно было убрать ручной перенос данных с бумажных черновиков УЗТ (ультразвуковой контроль толщины) в цифровой контур. Операторы заполняют шапку, таблицу и сетку замеров I–IV от руки; ошибки и неоднозначные цифры дорого обходятся при передаче в ERP.

Цель проекта — локальный пайплайн: фото/скан формы → структурированный result.json с полями и confidence, плюс отчёт для человека (review.html / review.csv), а не «магический» end-to-end без контроля.

Критерии готовности: воспроизводимый прогон на одном файле и на batch, статусы полей (ok / review / error / empty), оценка на golden set, задел под legacy-payload для интеграции с внутренним контуром (фаза 2).

Решение

Собран гибридный контур CV + OCR + vision LLM:

  1. Python CV-пайплайн — препроцессинг, QR, детекция таблицы и чернил, PaddleOCR для печатного текста, EasyOCR для рукописных замеров.
  2. TypeScript-оркестрация — вызовы API, нормализация схемы (zod), сбор артефактов в data/output/{imageId}/.
  3. Vision LLM (OpenRouter) — три прохода: шапка, строки таблицы, сетка замеров.
  4. Confidence engine — слияние сигналов OCR + LLM + CV, доменная валидация и verify-pass второй моделью.
  5. Golden set и бенчмарки — редактор golden в браузере, evaluate, сравнение моделей по точности/времени/стоимости; отдельный путь fine-tune TrOCR (датасет, notebook, документация).

Оператор видит подсветку сомнительных полей и правит до выгрузки, а не принимает «сырой» OCR как истину.

Архитектура и стек

Оркестрация: TypeScript, Node (tsx), sharp, zod, dotenv / undici.

Распознавание: Python (requirements.txt), PaddleOCR, EasyOCR, опционально TrOCR + Jupyter notebook для дообучения.

LLM-слой: OpenRouter (ключи в .env), многопроходные промпты под структуру формы УЗТ.

Данные: data/golden (шаблоны, labels, jsonl), data/erp-cache, выходные preprocessed.jpg, cv.json, result.json, review.html, review.csv, заглушка legacy-payload.json.

Документация: пилот, hardware requirements, comparison OCR vs ERP, runbooks по TrOCR и lab-eval loop.

Распределение языков в репозитории: TypeScript (48%), Python (37%), HTML (15%), Jupyter (1%).

Ключевые функции

  • Распознавание одного файла и пакетный режим (recognize, recognize:batch, recognize:cv-only).
  • Отчёт для проверки с цветовой кодировкой по порогам CONFIDENCE_OK / CONFIDENCE_REVIEW.
  • Оценка на golden set и bootstrap датасета для TrOCR.
  • Браузерный редактор golden (golden:edit) для разметки эталонов.
  • Бенчмарк моделей: точность, время, стоимость API.
  • Документированный путь к ERP-интеграции без смешивания пилота и прод-контракта.

Результат

Пилот закрывает ключевой сценарий: с фото черновика УЗТ получается проверяемый структурированный результат и артефакты для оператора. Есть контур качества (golden / evaluate / benchmark) и план fine-tune TrOCR под доменные рукописные цифры. Проект в активной разработке; выгрузка в ERP вынесена во вторую фазу через legacy-payload.

Репозиторий закрытый — в портфолио зафиксированы архитектура и стек без публикации сырых форм и моделей заказчика.

Что бы улучшил

Довёл бы verify-pass и пороги confidence до калибровки на更大шем golden set, добавил бы e2e на CI с фикстурами без секретов API и стабилизировал бы контракт legacy-payload с владельцами ERP до широкого rollout.

Частые вопросы

Что распознаёт ai-vision?

Рукописные черновики форм ультразвукового контроля толщины (УЗТ): шапку, строки таблицы и сетку замеров — в структурированный JSON с оценкой уверенности.

Какой стек используется?

TypeScript-оркестрация (sharp, zod), Python CV/OCR (PaddleOCR, EasyOCR), vision LLM через OpenRouter, оценка на golden set и опциональный fine-tune TrOCR.

Можно ли посмотреть исходники?

Репозиторий закрытый: на странице описаны архитектура и стек без публикации данных заказчика и моделей.

Информация о проекте

CommercialIn Development

  • Создано: 25 Jun 2026
  • Обновлено: 12 Sep 2026

Использованные технологии

TypeScriptPythonPaddleOCREasyOCRTrOCROpenRoutersharpzodJupyter

Языки

TypeScript (47.8%)Python (36.6%)HTML (14.6%)Jupyter Notebook (1%)