Skip to content

Sdmitriss/DonorSearch

Repository files navigation

Целью данного проекта является разработка микросервиса, который:

  • Определяет пространственное положение документа (медицинская справка) на основе прогноза модели ML.
  • Вертикально ориентирует документ для правильного отображения.
  • Сохраняет обработанный документ и возвращает путь к файлу и URL-адрес.

Микросервис будет реализован как приложение на FastAPI и смонтирован в Docker.
Принимает post запрос response =requests.post(url_base, json=data)
url_base='http://127.0.0.1:8000/forms/'
data = {"path": path} Если path - это URL или путь к файлам с изображениями, то будет возвращен следующий ответ:
{'post_request':data.path, // path запроса
'save_path':save_path, // путь
'save_url':save_url, //url
'pred':pred.item() // скаляр предсказания ((Вертикально- 0, 90'- 1, 180'- 2, 270'- 3))
} Если введены некорректные данные, будет возвращено соответстующее исключение.
host="0.0.0.0", port=8000 настройки сервера.

Структура проекта:

  • images - папка с файлами изображений документов, предоставленных заказчиком;
    Примечание: Папка не включена в репозиторий. Создайте её вручную и добавьте файлы сфотографиями документов;

    • data - папка созданная в проекте work_1.ipynb, содержащая набор; отобранных изображений, каждое из которых соориентировано на( 0, 90 180,270) градусов, также к названию был добавлен префикс (_0 ,_1 ,_2, _3) , характеризующий положение документа;
  • input_images - папка для хранения исходных документов, которая будет смонтирована в docker; что позволит передавать документы по пути для дальнейшей обработки.

  • transformed_images- папка для хранения обработанных с учетом прогноза документов,
    документы будут доступны как по пути так и по url (смонтированы статические файлы);

  • models в папке сохранена обученная модель и .csv файлы, с разметками для данных в images, data. Подробности можно найти в jupyter проекте work_1.ipynb;

  • 'work_1.ipynb' проект, целью которого является создание обученной модели для прогнозирования положения документа. Все этапы работы подробно прокомментированы;

  • 'main.py' скрипт реализующий микросервис как приложение FastApi, есть doctring;

  • requirements.txt - зависимости для docker;

  • requirements_jupyter.txt - зависимости для корректной работы work_1.ipynb;

  • request_test.ry -скрипт позволяющий оценить работу приложения:

    • формирует окно для получения пути или url;
    • принимает post запрос endpoint - @app.post('/forms/');
    • печатает документ по его url.
  • request_post.ry - тестовый post запрос;

  • 'Dockerfile' - инструкция для сборки образа docker;

  • 'Makefile' - управление сборкой образа и создания и запуска контенера.

make build - Cборка образа.
make run - Cоздание и запуск контенера.

Папки input_images, transformed_imagesсмонтированы внутри контейнера.

Контейнер после остановки будет удален.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages