Как реализовать выделение части текста в фотографии и обработку текста на картинке в текстовый файл?

Ссылка скопирована
2 ответов

Хотел какой то проект придумать более нестандартный чем блоги, магазины и т.д И хотел у вас спросить совета по реализации. Я опишу только основную часть функционала, остальное в силах сам реализовать.

Приложение для обучения иностранному языку, касательно только написания эссе и коректировки.
ТЗ:
- У человека есть возможность загрузить как фото, так и просто текстовый документ различных форматов .doc, .txt,. pdf
- Другой участник, может сделать проверку на ошибки

Я представляю это таким образом, что проверяющий может на изображении выделить маркером текст, рядом выдвенится сайдбар, или небольшое окошко в месте клика, где он впишет корректировку текста. После отправки возможного отправления корректировки скрываются. Их потом можно открыть по нажатию на закрашенный маркером текст и дополнительно можно также открыть список всех исправлений.

Меня интересует две вещи:
- Как лучше реализовать выделение текста маркером, возможно через canvas? Сам клик отследить, записать координаты плюс минус могу, разбить на отдельный компонент, который будет в себе хранить эти данные. Но вот как лучше реализовать выделение фотографии для меня вопрос. Подобие комментирования как в фигме например проекта, только чуть специализировать это под задачу сочинений. И тут нюанс, что все равно даже загруженный текст из ворда, тоже должен выводится как фотография наверное? Чтобы его также комментировать. Независимо от источника в итоге для проверяющего выглядеть должен быть одинаково контент.

- Хотелось чуть питон выучить, и так как он известен на различные нейронки, обработку данных. Я хотел бы добавить обработку фотографии для того, чтобы автоматически перевести написанное в текстовый формат. Потом дать возможность тому, кто загружает это эссе потом откорректировать полученный текст. Чтобы у проверяющих была также опция посмотреть в виде текста эссе.

Буду вам благодарен за совет, пока примусь за отрисовку макета и верстки его. И надеюсь, подскажите что лучше использовать для реализации.

P.S Хотелось бы иметь конечно какую то ранжировку между исправлениями. То есть, чтобы высвечивались вначале корректировки от людей с большим рейтингом, или можно переключатся между различными версиями предложенным. Пока что я думаю упростить и просто открывать разные варианты исправлений. Но разумнее было бы, если можно как то при одинаковых блоках выделенных для исправления отлавливать этот момент, но я пока не представляю, как даже если выбрать, что область похожая, то дополнительно ещё обработать само исправление и понять относится ли оно к одному и тому же виду. Это надо сделать какой то анализ текста.

Дополнительно:

- Хотелось чуть питон выучить

Вот с этого и стоит начинать.
А не с вопроса "как лучше грабить корованы", базирующегося на полном непонимании, как и что реализовать вообще.

  • Adamos, ну так я же не требую решения от вас, достаточно просто вкратце описать что нужно настроить ,а я дальше сам гляну. Анализ текста пока второстепенная задача, которую я не собираюсь за пару дней решить. Парсинг текста вроде тривиальная задача, я думаю есть достточно библиотек для этого.
  • Погодите с ранжировкой исправлений.
    Для начала придумайте способ достать текст из pdf, и протестируйте не на одном деальном образце, а на паре десятков файликов из разных источников.
  • Stalker_RED, основная функциональность на простой загрузке фотографий или конвертора pdf в фотографию. И возможность комментирования. То есть я хочу сделать, чтобы сервис в любом случае работал на примитивной загрузке и комментировании. То что и сходу можно начать пытаться разработать.

    А вот дополнительная обработка текста, конвертирования форматов, анализа текста. Как дополнительные задачи для функциональности. В дополнении к предыдущему вопросу моему про совмещений приложений на разных стэках, просто вот хотел на отдельном инстансе какую то тяжелую работу вынести.

  • ksikrii, текст на картинке - это не "дополнительная обработка" и не "конвертирования форматов".
    Это хренова туча проблем с распознаванием, а ваши фантазии на эту тему - маниловщина.
  • ksikrii, если вы просто хотите добавить надписи или стрелочки поверх картинки - это не проблема.
    https://www.google.com/search?q=mdn+canvas+filltex...

    Но у вас там речь идет о редактировании текста на фото или pdf, Причем вы хотите фото использовать как базовый вариант. Для того, чтобы редактировать текст его сперва придется распознать. Если вы думаете, что это легко - вперед, дерзайте.

    Конечно, OCR существуют с прошлого тысячелетия. Но качество распознавания "не всегда на высоте", так сказать.

  • Adamos, так суть не в работающем приложении на 100 процентов, а в том, чтобы поднять какую то нейронку на питоне и подвязать её к проекту. И потренироваться в передаче, обработке данных на проекте, где отдельный сервис будет решать эту задачу.
    Я не понимаю, почему ты так близко воспринял эту проблему, я не летаю в облаках и не жду адекватного результата.
  • ksikrii, раньше дети верили в Деда Мороза, теперь - в нейронки...
  • Ответы:

    Распозновалка это tesseract. Ей можно пробовать доставать текст.

    • На каракулях изучающего английский тессеракт сломается.
      А применять тессеракт, чтобы распознать текст, переведенный в картинку из документа - это... вот не помню, как на Тостере с матерной, трехэтажной, экспрессивной лексикой с переходом на личности.
    • Adamos, не из документа. Зачастую эссе пишут на курсах от руки, поэтому изначально нету в формате документа. Поэтому если дополнительно можно процентов 60 похоже перевести в документ, то это уже неплохо. Так как человек при желании может подредактировать вручную документ.

    выделение части текста в фотографии

    Гугли: Project Naptha . Под капотом Tesseract.js

    • Спасибо
    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Дмитрий К. Ответ

    Для реализации выделения части текста на фотографии и его обработки в текстовый файл можно воспользоваться библиотекой Tesseract OCR.

    1. Установите библиотеку Tesseract OCR на ваш компьютер. Для этого перейдите на официальный сайт проекта и скачайте установочный файл для вашей операционной системы.

    2. Загрузите изображение с текстом, который вы хотите извлечь, на свой компьютер.

    3. Создайте скрипт на языке программирования, который будет использовать Tesseract OCR для обработки изображения и извлечения текста. Пример скрипта на языке Python:

    from PIL import Image
    import pytesseract
     
    # Открываем изображение
    img = Image.open('image.jpg')
     
    # Преобразуем изображение в текст
    text = pytesseract.image_to_string(img)
     
    # Сохраняем текст в файл
    with open('output.txt', 'w') as file:
        file.write(text)

    from PIL import Image import pytesseract # Открываем изображение img = Image.open('image.jpg') # Преобразуем изображение в текст text = pytesseract.image_to_string(img) # Сохраняем текст в файл with open('output.txt', 'w') as file: file.write(text)

    4. Запустите скрипт на вашем компьютере. После выполнения скрипта в файле output.txt будет содержаться текст, извлеченный из изображения.

    5. Проверьте файл output.txt, чтобы убедиться, что текст успешно извлечен.

    Таким образом, используя библиотеку Tesseract OCR и написав соответствующий скрипт на языке программирования, вы сможете легко выделить часть текста на фотографии и обработать его в текстовый файл.

    Другие ответы (1) Ответить на вопрос
    Алексей Денисов

    Для решения данной задачи можно воспользоваться библиотекой для обработки изображений, такой как OpenCV в языке программирования Python.

    Прежде всего, необходимо установить библиотеку OpenCV, если она еще не установлена. Для этого можно воспользоваться менеджером пакетов pip:

    pip install opencv-python

    pip install opencv-python

    Затем можно написать скрипт на Python, который будет загружать изображение, выделять на нем нужную часть текста и обрабатывать его. Ниже приведен пример кода:

    import cv2
     
    # Загрузка изображения
    image = cv2.imread('image.jpg')
     
    # Выделение нужной части текста на изображении
    cropped_image = image[100:300, 200:400]  # Пример координат для выделения текста
    
    # Обработка текста на изображении
    # Например, можно воспользоваться OCR библиотекой, такой как Tesseract
    # Для этого необходимо установить библиотеку pytesseract
    # pip install pytesseract
    import pytesseract
     
    # Преобразование выделенной части изображения в текст
    text = pytesseract.image_to_string(cropped_image)
     
    # Запись текста в текстовый файл
    with open('text.txt', 'w') as file:
        file.write(text)
     
    print("Текст успешно извлечен и записан в файл text.txt")

    import cv2 # Загрузка изображения image = cv2.imread('image.jpg') # Выделение нужной части текста на изображении cropped_image = image[100:300, 200:400] # Пример координат для выделения текста # Обработка текста на изображении # Например, можно воспользоваться OCR библиотекой, такой как Tesseract # Для этого необходимо установить библиотеку pytesseract # pip install pytesseract import pytesseract # Преобразование выделенной части изображения в текст text = pytesseract.image_to_string(cropped_image) # Запись текста в текстовый файл with open('text.txt', 'w') as file: file.write(text) print("Текст успешно извлечен и записан в файл text.txt")

    Этот скрипт загрузит изображение, выделит нужную часть текста, обработает его с помощью OCR (оптического распознавания символов) и запишет результат в текстовый файл. Пожалуйста, учтите, что координаты выделения текста на изображении могут быть разными в зависимости от вашего конкретного случая.

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно