Стажировка по проекту
Разработка интеллектуальной системы, способной анализировать результаты биохимических анализов крови, представленных в различных формах
ФГБУ Научный медицинский исследовательский центр терапии и профилактической медицины Минздрава РФ

Суть проекта
Назначение системы
функциональные требования
нефункциональные требования
Система предназначена для автоматического распознавания ключевых показателей из результатов биохимических анализов крови, представленных в виде цифровых изображений или текстовых файлов, с целью упрощения ввода данных в базу и минимизации ошибок.
1. Производительность
  • Время обработки одного файла не должно превышать 10 секунд.
2. Поддержка платформ
  • Веб-приложение: работа через браузер (рекомендуется Chrome).
3. Десктоп-приложение: совместимость с Windows (опционально).
4. Простота развертывания
  • Возможность локального запуска без сложной настройки.
5. Ограничения
  • Работа с тестовыми данными, предоставленными заказчиком.
  • Поддержка только русского языка
1. Разработка модели машинного обучения
  • Подготовка обучающего и тестового набора данных
  • Обучение модели для распознавания и классификации ключевых биомаркеров
2. Создание пользовательского интерфейса
  • Разработка простого интерфейса для демонстрации результатов.
3. Интеграция с базой данных (опционально)
  • Разработка схемы БД
  • Настройка сохранения извлеченных данных
4. Тестирование
  • Проверка корректности распознавания и работы интерфейса
  • Проведение демонстрации для заказчика


этапы реализации



Обработка данных
1. Распознавание данных из загруженных файлов:
  • Поддерживаемые форматы: JPEG, PNG, PDF (только текстовый слой).
  • Извлечение следующих показателей: Общий холестерин и др
2. Выделение значений показателей, единиц измерения и даты исследования
3. Обработка и уведомление о нераспознанных или некорректных значениях

Интерфейс приложения
1. Приложение должно иметь следующие функциональные модули:
  • Загрузка файла
  • Отображение извлеченных данных в табличном виде
  • Возможность ручной коррекции данных (опционально)
2. Интерфейс должен быть:
  • Простым и интуитивно понятным
  • Содержать кнопку для экспорта результатов

База данных (опционально)
1. База данных должна быть создана на уровне proof of concept и содержать:
  • Таблицу для хранения извлеченных данных.
  • Поля: биомаркер, значение, единицы измерения, дата анализа, дата загрузки, идентификатор записи
  1. Успешное извлечение биомаркеров с точностью не менее 80% на предоставленных тестовых данных
  2. Корректное отображение и сохранение данных в базе
  3. Работоспособный интерфейс для загрузки файлов и отображения результатов
  4. Доказанная возможность расширения функционала в будущем
Критерии приемки
Участники
команды проекта
  • Павел Химяк
    Тимлид проекта
    Руководство командой разработчиков на всех этапах проекта. Организовывал планирование задач, контролировала их выполнение и соблюдение сроков.
    Обеспечивал эффективную коммуникацию внутри команды и с заказчиком.
    Проводил регулярные встречи для обсуждения текущих проблем и решения возникающих вопросов.
    Оказывал техническую поддержку команде, помогал в выборе оптимальных решений, а также наставлял и обучал менее опытных сотрудников.
    Вел контроль за качеством кода и соблюдением стандартов разработки
  • Владимир Маркин
    Помощник тимлида
    Помогал Тимлиду в организационных вопросах по проекту. Инициировал и проводил обсуждения на он-лайн встречах. Занимался распределением еженедельных задач и контролем их исполнения. Предоставлял результаты тестирования различных локальных LLM
  • Андрей Малицкий
    Помощник тимлида
    Участвовал в руководстве командой, обеспечивая эффективное взаимодействие между тимлидом и участниками проекта. Предоставлял различные методологические материалы
  • Николай Наумов
    Инженер-программист в ООО «ГТЛАБ»
    • OCR backend сервер: paddle, easyocr, tesseract
    • Приложение all-in-one:
    - загрузка и предобработка изображения Streamlit
    - ollama (ollama module), ollama (openai module)
    - редактируемый JSON результат
    - запись результата в SQLite
    - клиенты к серверам backend OCR
    • Docker с итоговым приложением
    • Docker-compose с итоговым приложением и OCR backend
  • Михаил Герман
    Предприниматель, внедрение AI в реальный бизнес
    • Развернул сервер БД PostgreSQL на FastAPI, обеспечив высокую скорость обработки данных и удобное API для взаимодействия.
    • Настроил бэкенд для распознавания табличных данных из изображений, используя мощь Tesseract, Surya и EasyOCR
    • Развернул локально LLM-модель Ollama, позволяя обрабатывать и анализировать текст прямо на устройстве без облачных сервисов.
    • Интегрировал всё в единый дашборд на Streamlit, создав удобный интерфейс для работы с данными
    • Создал стабильную и масштабируемую архитектуру, позволяющую легко адаптировать проект под новые задачи
    • Итог: Полностью автономное решение, объединяющее базы данных, OCR, нейросети и удобный UI
  • Ульяна Джумок
    DevOps инженер
    • Реализация сервера с OCR движками на выбор: EasyOCR, TesseractOCR, PaddleOCR и SuryaOCR
    • Разработка веб-фронтендом для интеграции серверов гомогенного преобразования, OCR и LLM
  • Наталья Выговская
    Старший преподаватель в Белорусско-Российском университете на кафедре «Автоматизированные системы управления»
    • Эксперименты с использованием Easyocr и Pytesseract для распознавания медицинских анализов;
    • Эксперименты по использованию LLM Ollama для структурирования данных;
    • Собственный web-интерфейс для разработанного коллегой веб-приложения;
    • Тестирование приложений коллег
  • Александр Карманов
    Верстальщик электронных книг в Российской Государственной Библиотеке
    • Разработка модуля для исправления геометрии изображения.
    • Сравнение OCR для выбора лучшей
    • Составление промпта для LLM
  • Владимир Макаров
    • Создание модуля выравнивания изображения
  • Евгения Лукашина
    В отпуске по уходу за ребенком, Ранее главный специлист в ПАО «Сбербанк» 
    • Поиск и анализ моделей для OCR. Проведение экспериментов на датасете заказчика (SuryaOCR, PyTesseract, EasyOCR, PaddleOCR).
    • Создание и тестирование промптов по обработке результатов OCR для ChatGPT.
    • Написание скрипта и создание датасета выводов SuryaOCR для создания и тестирования промптов
  • Елена Коваленко
    Преподаватель Саратовского медицинского университета, врач-кардиолог, эксперт по качеству медицинской помощи
    • Тестирование разных технологий OCR для распознавания текста на сканах с результатами исследований крови
    • Создание итоговой презентации проекта
  • Павел Иткинсон
    Руководитель филиала
    • Обработка изображений для подачи в OCR
    • Тестирование OCR, выбор OCR
    • Подача распознанного OCR фрагмента в Ollama, тестирование промтов
    • Пробовал создать свой вариант программы
    • Тестировал приложения коллег