Giter Site home page Giter Site logo

angelinareader's People

Contributors

endorphinbomber avatar ilyaovodov avatar zuevval avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

angelinareader's Issues

Расширить и углубить help

Сделать более подробный help

  • видео как правильно делать фото
  • описание, как сделать иконку на рабочем столе смартфона
  • видео как сделать иконку на рабочем столе смартфона. Когда реализуем PWA - переделать.
  • описание опций работы программы (галочек)

Мультиязычный UI

Как минимум нужен интерфейс на EN с возможностью добавления других языков. Выбор языка в UI.

Дополнительно - выбор языка распознаваемого текста по умолчанию в зависимости от выбранного языка UI.

Переход на эффективную архитектуру (EfficientDet)

Текущая реализация не позволяет отойти от использования серверов с GPU. Достаточно высокое время обработки изображения на стандартных CPU серверах AWS/GCP может стать ещё выше после внедрения языковых моделей. Одно из решений этой проблемы - реализация более эффективной архитектуры object detector-a. Подобный процесс можно разделить на следующие шаги:

  • Переход на EfficientDet

EfficientDet в 2-8 раз быстрее RetinaNet на CPU. Для его внедрения нужно:

  • Модифицировать основу https://github.com/rwightman/efficientdet-pytorch

  • Обучить модель для русского языка

  • Обновление инструментов проверки скорости и качества работы

Скрипты validate_retinanet не подходят для другой архитектуры.

  • Перевод модели в ONNX/Torchscript

Перевод в ONNX (опционально - с квантизацией) может положительно сказаться на эффективности

Проверять галочку до загрузки фото

Сейчас если не выбрана ни одна галочка (согласен-не согласен), то ошибка высвечивается только после того, как сделано фото или выбран файл. Надо проверять до выбора файла.
При этом отсутствие выбора по умолчанию сделано специально, чтобы выбор был осмысленным.

Логирование действий пользователя и ошибок

При возникновении ошибок на стороне сервера должна быть возможность:

  1. Получить нотификацию о возникшей ошибке
  2. Получить логи с развернутым сообщением об ошибке
  3. Понять, какие действия пользователя к ней привели: какой файл загружался и обрабатывался и т.п. Для этого надо вести протокол действий пользователей.

Обеспечить масштабирование картинки на клиенте

Сейчас картинка с клиента отсылается на сервер в исходном формате, а на сервере масштабируется до ширины 1024, требуемой для отправки в нейросеть. В результате по сети гоняется в разы больший объем данных чем надо, что при плохом канале создает задержки.
Надо уменьшать картинку до отправки на клиенте.

Возможность использования без регистрации

с ограничениями:

  • автоматическое согласие на публичность. При попытке поставить "не согласен" - соответствующее сообщение.
  • нет просмотри истории. При открытии страницы истории - соответствующее сообщение.

Сделать отдельный процесс и очередь на распознавание

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

1 ми№ 6 с

1 мин 6 с интерпретируется как 1 ми№ 6 с

Заменить тчк4 с ' на `

Знак ударения - 4 точка - распознается как апостроф (3 точка)

Параллельно надо заменить разметку.

Выполнить требования закона о персональных данных

  • Написать соглашение о конфиденциальности
  • Сделать галочку "согласен" при регистрации. Сделать ее обязательной. Рядом поставить гиперссылку на "политику"
  • По идее надо еще зарегистрироваться в Росреестре или где там...

Can't download retina_chars_eced60.clr.008

The host angelina-reader.ovdv.ru doesn't exist anymore and the file retina_chars_eced60.clr.008 is not available on any other site.

[mvutcovi@laptop AngelinaReader]$ wget -O weights/model.t7 http://angelina-reader.ovdv.ru/retina_chars_eced60.clr.008
--2023-02-23 13:47:29--  http://angelina-reader.ovdv.ru/retina_chars_eced60.clr.008
Resolving angelina-reader.ovdv.ru (angelina-reader.ovdv.ru)... failed: Name or service not known.
wget: unable to resolve host address ‘angelina-reader.ovdv.ru’
[mvutcovi@laptop AngelinaReader]$ host angelina-reader.ovdv.ru
Host angelina-reader.ovdv.ru not found: 3(NXDOMAIN)
[mvutcovi@laptop AngelinaReader]$ 

Апостоф и ударение

Апостроф - 3 точка (в данном случае обозначает мягкость звука Й)
Ударение - 4 точка, перед буквой (сейчас распознается как апостроф, нужен отдельный знак)

Проблема в том, что конфликтует с английским апострофом

Учитывать ориентацию изображения из EXIF

Сейчас изображение, правильно повернутое средствами Windows, если отключен авто-поиск ориентации, остается повернутым не правильно. Т.к. при открытии картинки не учитывается информация о повороте из EXIF.

Греческий алфавит

Илья, я так понял, вам удобнее по-русски. Если скажете, что нужно репортовать по-английски, не вопрос, переведу :).

Суть в следующем: существует три формы греческого Брайля — немного об этом на моей страничке про греческий Брайль.
Есть стандарт, который используется в Греции и республике Кипр как литературный Брайль; есть международный греческий Брайль, который используется по всему миру в формулах и математических выражениях; и есть советский математический стандарт, который слабо отличается от международного стандарта.
Так вот, на данный момент в Angelina Braille Reader используется именно советский математический стандарт (если хотите, можете посмотреть отличия по точкам на моей странице). Это неплохо само по себе, но если кому-то придёт в голову распознавать реальную греческую книжку, он столкнётся с непредсказуемыми, мягко говоря, результатами. Попытаюсь разобраться в коде и организовать пулл-реквест по этому поводу, но пока логирую здесь, чтобы если что, вы знали, в чём проблема.

Учет контекста символов

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

  • Реализация CTC Loss с нужными архитектурными элементами.
    Не ясно, как поведёт себя детектор на больших изображениях, поэтому пока предлагаю следующие варианты:
  • Обучить на кропах с Detection Loss, дообучить на полных изображениях с CTC loss + Detection Loss. Если появятся изображения с транскрипцией, но без аннотаций, то дообучать можно и без Detection Loss.
  • Сразу обучать на полных изображениях с CTC loss + Detection Loss.
  • Бить изображения на строки по боксам, обучать отдельную задачу Scene Text Recognition с CTC Loss.
  • Подключение Language Model
    Предварительные тесты показывают неплохое увеличение в качестве, но "сырой" формат bbox-ов для языковых моделей не подходит. Нужен вектор вероятностей символов по временным шагам (по порядку символов в предложении).

Problems with Liblouis

I noticed that Liblouis has moved from http://liblouis.org to https://liblouis.io/ - please correct this in the installation instructions.

I think it's a great idea to include Liblouis support - I'd like to add Grade-2 support for DE, but unfortunately i ran into problems with the installation procedure described here: https://raw.githubusercontent.com/liblouis/liblouis/master/README.windows
and here: https://github.com/liblouis/liblouis/tree/master/python

Although i could get liblouis.dll and liblouis.lib V3.26.0 compiled and the setup.py script installed the .egg, run_local.py fails with error module 'louis' has no attribute 'backTranslateString'... It seems that the module is not correclty installed, as import louis works but dir(louis) does not show any functions. (I just tried the installation procedure for Windows by now).

Any ideas?

Теряется запомненный вход пользователя

Жалуются на случаи, когда приходится повторно заходить в приложение несмотря на поставленную галочку "запомнить меня".
Я не знаю, при каких условиях это происходит.

Возможность просмотра истории своих распознаваний

Отдельный пункт "история" в меню.
Показывается список ранее распознанных страниц. Минимум - имена файлов. Опционально - предпросмотр содержания, например, в виде первых строк текста.
При выборе документа - открывается в стандартной странице "результаты".
Опционально - возможность выбора нескольких страниц и открытия их в одном окне (страница "результаты" это уже умеет).

Предполагаемая архитектура:

  • каждому пользователю присваивается GUID.
  • для каждого GUID пользователя при распознавании дописывается строка в файл .txt
  • при открытии страницы истории из .txt берется список файлов, на его основе заполняется страница. Проверяется наличие соответствующего файла.
  • в странице каждая строка (соответствует файлу) является гиперссылкой на страницу результатов с соответствующим параметром. Это потребует только небольшой переработки страницы результатов.
  • Как сделать множественный выбор - сложнее, надо думать. Но принцип тот же.
  • Возможно, потом надо будет сделать удаление из .txt слишком старых записей или тех, для которых нет файла.

Предполагаемые шаги:

  1. Функциональность присваивания новым пользователям GUID
  2. Накатить в prod.
  3. Написать скрипт и конвертировать json старых пользователей, добавив им GUID
  4. Сделать функциональность логирования файлов пользователя в GUID.тхт
  5. Накатить в prod
  6. Сделать форму с историей, отрефакторить форму ответа, чтобы принимала результаты results_list, и ее вызов из формы с историей.
  7. Накатить в боевой режим
  8. Реализовать множественный выбор
  9. Реализовать очистку GUID.тхт

Запоминать предпочтения пользователя

При работе с регистрацией - запоминать предпочтения пользователя, и использовать их при открытии страницы:

  • язык интерфейса
  • язык документа и положение галочек
  • если пользователь специально указал - положение галочки "я согласен". В описании пояснить, почему по умолчанию это не делаетася.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.