tianruoocr-cl
По причине ограниченной энергии, данное программное обеспечение в настоящее время не поддерживается. Рекомендую использовать UMI-OCR. Я использовал его, и он действительно хорош, по крайней мере, лучше моего. Если появится время и энергия, возможно, я возобновлю поддержку.
Описание

Это локальная версия открытого исходного кода Tianruo OCR, использующая Chinese-lite и paddle-ocr для распознавания. Больше нет необходимости использовать интернет.
Рекомендую использовать paddle-ocr для распознавания. Вы можете переключаться между интерфейсами в результатах распознавания.
Данное программное обеспечение невозможно без помощи следующих репозиториев и программ. Выражаю глубокую благодарность:
https://gitee.com/ZZK-1989/tianruoocr
https://github.com/DayBreak-u/chineseocr_lite/tree/onnx/dotnet_projects/OcrLiteOnnxCs
https://github.com/RapidAI/RapidOCR
Программа предназначена для использования на 64-битных системах, таких как Windows 10 и Windows 7. Не тестировалось на Windows 11. Требуется .NET Framework 4.7.2.
Основная функциональность программы заключается в копировании и вставке. Если кто-то сможет помочь с доработкой, было бы замечательно.
Процент распознавания китайского языка достаточно высокий.
Количество потоков установлено на 4, но его можно изменить.Данное программное обеспечение не предоставляет возможность для пожертвований. Также приветствуется распространение и использование программы. Автор программы — студент специальности "Механика", который не обладает большим опытом программирования и решает большинство проблем с помощью поиска в Baidu и Google. Любые вопросы приветствуются для обсуждения.
Внимание
- Для компиляции требуется ссылка на Microsoft.ML.OnnxRuntime.dll. Если вы хотите использовать Windows 7, можно использовать предварительно скомпилированный dll (находящийся в папках dll и runtime), либо скомпилировать самостоятельно, разместив соответствующий onnxruntime.dll в папке с исполняемым файлом. Если вы не используете Windows 7, вы можете установить nuget.
- Измените управление пакетами nuget на PackageReference. Вероятно, вам больше не потребуется packages.config. Установите все необходимые пакеты перед компиляцией.
- При компиляции обратите внимание на файл AdvRichTextBox.Designer.cs, который должен быть перезаписан. Этот файл может быть автоматически перезаписан системой при переключении, поэтому его следует восстановить.## Сборка и проблемы
-
Windows 7 не работает, решение не найдено (Версия 1.3 работает на Windows 7)
- Если появляется
Exception from HRESULT: 0x8007007E
, попробуйте использовать dx Repair Tool для исправления; обычно это позволяет запустить программу.
- Попробуйте установить VC++ Runtime и .NET Framework 4.7.2.
- Google Translate не будет поддерживаться.
Пожалуйста, используйте Baidu Translate (Добавлены другие переводчики), стабильный и надежный.
Текущие модели
Название модели |
модель det |
модель rec |
модель cls |
Chinese-lite |
по умолчанию |
по умолчанию |
по умолчанию |
paddle-ocr |
ch_PP-OCRv3_det_infer.onnx |
ch_PP-OCRv2_rec_infer.onnx |
ch_ppocr_mobile_v2.0_cls |
Указания по проблемам перевода
- Текущий оффлайн перевод основан на использовании Python для создания моделей и сервера. Программа отвечает за взаимодействие с созданным сайтом, поэтому требуется базовое знание Python и подходящая среда выполнения. Если перевод не работает, попробуйте решить проблему самостоятельно, так как автор не сможет помочь.
- Из-за природы оффлайн переводческого сайта, можно самостоятельно создать сервер, если он будет поддерживать формат POST. POST имеет два параметра: "mod" и "text". Mod может быть установлен в значения "zh2en", "en2zh", "ja2zh", "zh2ru", что указывает на язык перевода. Text представляет собой текст для перевода, который будет возвращен после выполнения запроса.
- В случае, если Google Translate не работает, пожалуйста, используйте свои методы.
- Если вы хотите добавить другие переводчики, убедитесь, что они легко доступны для регистрации (например, Microsoft Translator требует кредитной карты для регистрации), имеют хороший API, который можно использовать для обучения, и не имеют временных ограничений (например, Youdao имеет бесплатный лимит, который истощается, что не соответствует моему требованию к долгосрочной работе).
- Оффлайн перевод занимает много времени без использования GPU, теоретически можно ускорить его с помощью GPU, но я этого не сделал.### Указания по установке сервера
- Установка сервера требует следующего (см. этот источник):
- Python 3.8
- Flask
- Gevent
- Transformers
- Sentencepiece
- Torch
- После установки запустите
translation.py
. При первом запуске будет загружена большая модель для оффлайн перевода, размер которой составляет более одного гигабайта, а также потребляет около одного гигабайта оперативной памяти. Если у вас уже есть загруженная модель, вы можете изменить путь в скрипте до локального адреса. Обратите внимание, что путь не должен содержать кириллицу. После этого повторная загрузка не требуется.
- В настройках программы введите URL http://127.0.0.1:16888/wesky-translater (если сервер установлен на другом устройстве, замените 127.0.0.1 на соответствующий IP).
Другие указания
- Если кто-то сможет создать пакет, пожалуйста, свяжитесь со мной, и я добавлю его в текст.
- Если возникнут странные проблемы, связываться со мной бесполезно, так как мои знания ограничены.
Ссылки для загрузки
https://gitee.com/wanglifree/tianruoocr-cl/releases
https://github.com/wangfreexx/wangfreexx-tianruoocr-cl-paddle/releases
Следующие цели
Оффлайн перевод
- Переработка скриншотов
- Добавление бинаризации изображений для повышения точности распознавания## Обновление версий
v1.3.9 (2023.05.30)
- Обновлен ZXING, теперь можно распознавать штрих-коды
- Добавлена возможность пользователю самостоятельно задавать высоту и ширину, которая может быть установлена в других характеристиках. Однако следует учитывать минимальные значения высоты и ширины, которые не будут применяться при меньших значениях. При установке всех значений равными нулю, программа установит свои значения высоты и ширины.### v1.3.8.2 (2023.04.14)
- Удалены некоторые бесполезные иконки, такие как разделение, чтение вслух и т.д.
- Исправлено автоматическое обработку текста при статичном распознавании и статическом копировании, если это не указано в интерфейсе по умолчанию (слияние иконки правым кликом — становится красной).
v1.3.8.1 (2023.01.04)
- Оптимизация для экранов с высоким разрешением, возможность отдельной настройки масштабирования иконок и текста, что позволяет увеличивать интерфейс.
v1.3.8 (2023.01.04)
- По умолчанию отключено статичное распознавание.
- Внедрена поддержка экранов с высоким разрешением, возможность настройки масштабирования, что позволяет увеличивать интерфейс, за исключением перевода текста, который не масштабируется.
- Добавлена кнопка для добавления новой строки в конце.
- Поддержка прокси, полезна только для Google Translate, остальное не работает.
v1.3.7 (2022.11.21)
Обратите внимание: По умолчанию включен статичный перевод. Пожалуйста, измените это в настройках, так как это будет отключено по умолчанию в следующей версии.
версия 1.3.6 (8 ноября 2022 года)
- Исправлен баг с переводом только первой строки в Baidu Translate.
- Исправлен баг с появлением лишней строки переноса после каждого распознавания.### версия 1.3.5 (14 августа 2022 года) (не критическое обновление, не требуется загрузка при отсутствии региональных проблем)
- Полностью отказались от структуры ini и перешли на хранение конфигураций в xml-формате utf8, что позволяет адаптироваться к различным языковым средам (кроме unicode).### версия 1.3.4 (10 августа 2022 года)
- Исправлен баг с низким качеством распознавания Paddle.
- Больше не используем Fody для объединения dll.
версия 1.3.3 (7 августа 2022 года)
- Обновлен Paddle до модели v3, совместимой с RapidOCR.
- По поводу предыдущих отзывов о снижении качества распознавания, считаю, что проблема решена (на самом деле нет, что вызвало стресс, даже замена модели не привела к улучшению по сравнению с версией 1.2.5. Однако, если перезагрузить CL и снова выбрать Paddle, качество распознавания восстанавливается. Состояние стресса продолжается, но я планирую заняться этим вопросом в свободное время).
- Изменено управление пакетами NuGet на PackageReference, обновлены Emgu и другие библиотеки.
- Исправлен баг с чтением ini-файлов в различных языковых средах, теперь ini-файлы имеют кодировку Unicode.
версия 1.3.2 (11 марта 2022 года)
- Изменены названия моделей для удобства обновления и замены. Обновлена модель Paddle до версии, совместимой с RapidOCR, что повысило точность распознавания.
версия 1.3.1 (29 января 2022 года)
- Исправлен баг с потерей данных при включении функции объединения строк по умолчанию.
- Использование Fody для объединения dll, что уменьшило количество файлов.### Версия 1.3 (27 декабря 2021 года)
- Теперь работает и на Windows 7! (подробнее см. в разделе "Обновления").
- Исправлен баг с функцией объединения строк.
- Попытка решения проблемы с расхождением между распознанным текстом и отображаемым, когда в окне распознавания появляются повторяющиеся строки текста (на самом деле таких строк нет, они отображаются только для визуализации). Google Translate использует метод "ZZK-1989", что позволяет быстрее переводить текст и поддерживает распознавание абзацев. Однако качество перевода зависит от скорости интернет-соединения.
Версия 1.2.6
- Исправлено одно компиляционное исключение (конкретно, при отсутствии данных для компиляции).
- Улучшена логика объединения абзацев, кнопка разделения абзацев больше не очищает текст, но всё ещё не используется.
- Используется 64-битная компиляция.
Версия 1.2.5
- Восстановлен удалённый ранее онлайн-OCR от Baidu, теперь он доступен для использования и включает проверку ошибок, чтобы избежать сбоев.
- Добавлена задержка в перевод абзацев, чтобы избежать блокировки IP-адреса.
Версия 1.2.4
- Добавлена возможность сохранения перевода абзацев, теперь они не объединяются, достаточно просто переключиться на другой интерфейс, скорость может быть немного ниже из-за отдельного перевода каждого абзаца.
Версия 1.2.3
- Добавлена помощь по параметрам (с комментариями).
Версия 1.2.2
1.Исправлено исключение, которое не позволяло перезапустить приложение.
v1.2.1
- Исправлено исключение, которое не позволяло переключаться между моделями; начальная модель Paddle выбрана на английском языке.
v1.2
- Обновлены переводческие интерфейсы, теперь Google и Baidu доступны! Перенос строки автоматически обрабатывается, что удобно для PDF. Для Baidu требуется запрос API.
- Добавлены несколько легких моделей (для японского и английского языков); переключение требует перезапуска.
- Исправлены некоторые исключения, очищены некоторые исходные коды.
Не планируется дальнейших обновлений!
v1.1
- Добавлена поддержка paddle-ocr; модель небольшая, скорость работы высока!
- Возможность переключения интерфейсов, хотя в проекте имена остаются прежними, но после компиляции будут отсутствовать метки "搜狗" и "腾讯".
- Оптимизировано использование памяти (после каждого распознавания происходит автоматическая очистка памяти).### V1.0
- Добавлена поддержка Chineseocr-lite, используется прежний интерфейс от "Sogou"## Несколько мыслей
v1.3.8
Чувствую, что многие "ложные" требования (поэтому говорю "ложные", так как считаю их ненужными), время и энергия ограничены, поэтому больше не буду обновлять, кроме исправления некоторых ошибок, конечно, если есть возможность оплаты, то можно рассмотреть, но это противоречит моим первоначальным намерениям.
v1.3.7
Обновление из-за закрытого кампуса, теперь полностью офлайн, что соответствует моим первоначальным желаниям.
v1.3.6
По причине того, что я сейчас на третьем курсе аспирантуры, последние времена были очень напряженными, поэтому не могу своевременно решать различные проблемы, к тому же я не родился программистом, поэтому с некоторыми проблемами я бессилен. Полное перепроектирование не обязательно, так как основной целью было обеспечить работу в офлайн-режиме. В будущем планирую добавить офлайн-перевод, чтобы полностью обеспечить работу в офлайн-режиме.
v1.3.4
Кружка чая, пачка сигарет, один баг — день наладки. Причина низкой точности распознавания paddle — модель была настроена с неправильными параметрами, которые не были инициализированы, что привело к некорректному распознаванию при первой попытке. Однако переключение модели эквивалентно инициализации. Конкретная ошибка находится на строке 438, вызвана неправильными параметрами.
v1.3.3
После компиляции на Windows 7 требуется ручная замена onnxruntime.dll, версия 1.6, версия из NuGet не поддерживает Windows 7, скачана из GitHub. Попытки решения проблемы чтения ini-файлов, планировалось изменить на чтение в UTF-8, но долго пробовал, ничего не получилось, потратил около трёх дней. Но сегодня использовал библиотеку другого человека и сразу всё заработало... ... ... всё же CRTLV удобнее
v1.3
Поддержка Windows 7 появилась благодаря просмотру проекта "吾爱" где один из мастеров сделал версию ncnn и onnx, аналогичную "天若本地版". Цель была решить проблему несоответствия Windows 7. К сожалению, проект не был открыт, но мастер предоставил идею, и следуя его пути, я сам скомпилировал onnxruntime, благодаря открытости Microsoft, скомпиляция была простой. Затем я скорректировал ссылки на библиотеки, и на Windows 7 действительно заработало (использовал виртуальную машину). Я скомпилировал версию onnxruntime 1.5.2, 1.6 я пробовал, кажется, не поддерживается, конкретно не знаю. Конечно, мастер сделал другие отличия, такие как QR-коды, локальные веб-страницы, я этого не делал, просто слишком слаб. Больше не буду обновлять, можно считать завершённым, этот проект просто простое копирование, методы очень примитивны, надеюсь, что однажды смогу помочь вам.
Поддержка со временем
## Лицензия
Лицензия GPL-3.0
Комментарии ( 0 )