Cервис по извлечению текста и цифр из капч на Python 3.11
Описание проекта
Создание сервиса на Python 3.11, который будет извлекать текст и цифры из капч. Код должен быть организован в виде классов, следовать принципам SOLID, DRY, PEP-8 и другим стандартам кодирования. Весь код должен быть документирован на английском языке через Docstring. Сервис должен использовать самые современные методы для решения задачи.Требования
Общие требования
- Использовать Python 3.11.
- Код должен быть написан в объектно-ориентированном стиле.
- Должны быть соблюдены принципы SOLID, DRY и стандарты PEP-8.
- Каждый класс и метод должен содержать документацию на английском языке в формате Docstring.
Структура проекта
Базовый класс CapthcaSolver
Базовый класс должен содержать следующие методы:__init__
: Конструктор класса.preprocess_image
: Предобработка изображения.extract_text
: Извлечение текста и цифр.postprocess_text
: Постобработка извлечённого текста.train
: Дообучение модели на основе новых данных.evaluate
: Оценка точности модели.
Примерный интерфейс базового класса
python
class ImageSolver:
"""Base class for solving image-based text and number extraction problems."""
def __init__(self, model_path: str):
"""Initialize ImageSolver."""
pass
def preprocess_image(self, image_path: str) -> np.array:
"""Preprocess the image."""
pass
def extract_text(self, preprocessed_image: np.array) -> str:
"""Extract text and numbers from the preprocessed image."""
pass
def postprocess_text(self, extracted_text: str) -> str:
"""Postprocess the extracted text."""
pass
def train(self, dataset: str):
"""Retrain the model with new data."""
pass
def evaluate(self, dataset: str) -> float:
"""Evaluate the model's accuracy."""
pass
Производные классы
EnglishTextSolver
: Класс для извлечения английских символов и цифр.RussianTextSolver
: Класс для извлечения русских символов и цифр.FsspSolver
: Производный отRussianTextSolver
, предназначенный для решения задачи с 50,000 изображений, которые имеются в наличии.
Технологии и библиотеки
- OpenCV для предобработки изображений
- TensorFlow/Keras для модели машинного обучения
- Другие библиотеки по необходимости
Современные подходы к разгадыванию
Самым современным подходом к извлечению текста из изображений является использование глубоких нейронных сетей. Конкретно для вашей задачи можно использовать модели вида CNN-LSTM-CTC (Convolutional Neural Networks, Long Short-Term Memory, Connectionist Temporal Classification).Разработка и тестирование
- Разработка базового класса и его методов.
- Разработка производных классов для конкретных случаев.
- Тестирование с помощью вашего набора данных из 50,000 изображений.
- Дообучение модели в случае ошибок.
Сроки
Проект должен быть завершен за 3 месяца с момента начала разработки.Бюджет
Расчетный бюджет составляет $X. Заказчик оплачивает стоимость работы по факту выполнения задач.Это детализированное ТЗ, которое теперь включает все ваши дополнительные требования. Вы можете далее модифицировать или расширять его по вашему усмотрению.