Исходя из
этогоНе знаю, насколько вам интересно будет погружаться в саму бизнес-логику. Вкратце она такая:
- Service1 делает обработку изображения. OpenCV + python скорее всего (нахождение контуров, вырезка и прочее). На выходе будет порядка 3-9 изображений
- Service2 делает распознавание. Тут или tesseract или нейронная сеть. На выходе несколько текстов.
- Service3 делает обработку нескольких текстов и выдаёт результирующий текст. Скорее всего тут будут python-библиотеки.
уточнения, вижу архитектуру такой:
Поскольку сервисы взаимосвязаны между собой так, что их нужно вызывать поочередно, то логично связать обработку данных при помощи очереди сообщений:
Изображение (ID=123) -> Очередь
Нарезка Изображений (OpenCV) -> каждое полученное нарезанное изображение кладём в Очередь
OCR -> распознанный текст кладём в Очередь
Анализ Текста.
Для обработки изображения в Очереди
Нарезка Изображений кладем его по некоторому пути (им может быть путь в AWS S3) и воркер этой очереди с инстанса некоторой ВМ обращается по заданному пути и результаты работы сохраняет по заданному пути для обработанных изображений и каждое из них в отдельности (путь и ID изображения) кладёт в Очередь
OCR.