RolmOCR: модель распознавания рукописных и наклонных символов в документах

Общее введение

RolmOCR - это инструмент оптического распознавания символов (OCR) с открытым исходным кодом, разработанный командой Reducto AI и основанный на модели визуального языка Qwen2.5-VL-7B. Он может извлекать текст из изображений и PDF-файлов быстрее, чем аналогичные инструменты. olmOCR RolmOCR не полагается на метаданные PDF, что упрощает обработку и поддерживает широкий спектр типов документов, включая рукописные заметки и научные работы. Он выпущен под лицензией Apache 2.0 и свободен для использования, модификации и интеграции частными лицами и разработчиками. Команда Reducto создала этот инструмент, обновив модель и оптимизировав обучающие данные, с целью сделать оцифровку документов более эффективной.

RolmOCR:识别手写和倾斜字符的文档OCR模型RolmOCR:识别手写和倾斜字符的文档OCR模型

 

Список функций

  • Быстрое извлечение текста: Извлечение текста из изображений и PDF-файлов с высокой скоростью обработки большого количества документов.
  • Поддерживает широкий спектр документов: распознает рукописные заметки, печатные документы и сложные формы.
  • Открытые исходники и свобода: открыты под лицензией Apache 2.0, код можно свободно загружать и адаптировать.
  • Малый объем памяти: по сравнению с olmOCR Более экономичный расход ресурсов и низкие требования к компьютеру при работе.
  • Метаданные не требуются: обрабатывайте исходный документ напрямую, не полагаясь на дополнительную информацию из PDF.
  • Улучшенное распознавание косых документов: 15% в обучающих данных поворачивается, чтобы улучшить адаптацию к документам с неположительным углом наклона.
  • На основе новейшей модели: используется Qwen2.5-VL-7B для повышения точности и эффективности распознавания.

 

Использование помощи

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

Процесс установки

  1. Проверка окружения Python
    Для работы RolmOCR требуется Python 3.8 или выше. Откройте командную строку и введите python --version Проверьте версию. Если она у вас не установлена, зайдите на сайт Python, скачайте и установите ее.
  2. Установка vLLM Framework
    Использование RolmOCR vLLM Запустите модель. Введите в командной строке:
pip install vllm

После завершения установки установите переменные окружения:

export VLLM_USE_V1=1

Это гарантирует правильную работу vLLM.

  1. Скачать модель RolmOCR
    Файлы модели размещены на сайте Hugging Face. Зайдите на https://huggingface.co/reducto/RolmOCR и нажмите на "Файлы и версии", чтобы скачать. Или извлеките его из командной строки:
git clone https://huggingface.co/reducto/RolmOCR
  1. Начало работы местных служб
    Перейдите в папку с загруженной моделью и запустите ее:
vllm serve reducto/RolmOCR

Когда служба запускается, по умолчанию используется адрес http://localhost:8000/v1. Держите окно командной строки открытым.

Использование

RolmOCR извлекает текст с помощью вызовов API. Вот точные шаги.

Подготовьте документ

Подготовьте файл для распознавания, например изображение (PNG/JPG) или PDF. предположим, что путь к файлу имеет вид test_doc.png.

Вызов API для извлечения текста

Напишите скрипт на Python, который преобразует файл в кодировку base64 и отправит его в RolmOCR. пример кода приведен ниже:

from openai import OpenAI
import base64
# 连接本地服务
client = OpenAI(api_key="123", base_url="http://localhost:8000/v1")
model = "reducto/RolmOCR-7b"
# 图片转 base64
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode("utf-8")
# 调用 RolmOCR 提取文字
def ocr_page_with_rolm(img_base64):
response = client.chat.completions.create(
model=model,
messages=[
{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{img_base64}"}},
{"type": "text", "text": "把这张图片里的文字提取出来,像人读的那样自然返回。"}
]
}
],
temperature=0.2,
max_tokens=4096
)
return response.choices[0].message.content
# 运行示例
test_img_path = "test_doc.png"
img_base64 = encode_image(test_img_path)
result = ocr_page_with_rolm(img_base64)
print(result)

сохранить как (файл) ocr_test.pyа затем запустить:

python ocr_test.py

Программа возвращает извлеченный текст, например:

会议记录
2025年4月7日
- 项目计划讨论
- 准备相关资料

пакетный файл

Чтобы обработать несколько файлов, перепишите код. Поместите пути к файлам в список и вызывайте его в цикле:

file_paths = ["doc1.png", "doc2.png", "doc3.png"]
for path in file_paths:
img_base64 = encode_image(path)
result = ocr_page_with_rolm(img_base64)
print(f"{path} 的结果:\n{result}\n")

Функциональное управление

  1. распознавание рукописного текста
    RolmOCR распознает почерк. Например, записка с надписью "Deepseek Coder" будет выведена точно и не будет принята за "OCLM". После загрузки изображения результаты сортируются в естественном порядке.
  2. Искаженная обработка документов
    В обучающих данных 15% поворачивается, поэтому он лучше адаптируется к перекошенным документам. Например, при сканировании с перекосом текст все равно извлекается правильно.
  3. Работа с малым объемом памяти
    Отсутствие зависимости от метаданных, меньшая длина подсказки и меньший объем графической памяти (VRAM), используемой для обработки. Подходит для компьютеров с более низкой конфигурацией.

предостережение

  • перерыв в обслуживании: Не закрывайте окно командной строки после запуска службы, иначе работа API будет остановлена.
  • дефицит памяти: Если на вашем компьютере недостаточно памяти, вы можете настроить параметр vLLM, например per_device_train_batch_sizeчто снижает потребность в ресурсах.
  • ограничения: RolmOCR может пропустить мелкий текст с низким контрастом или не полностью распознать сложные таблицы без метаданных. Рекомендуется оптимизировать качество изображения и повторить попытку.
  • Макетные поля не поддерживаются: В отличие от коммерческого API Reducto, RolmOCR не может выводить ограничительные рамки для текста.

Выполнив эти действия, пользователи смогут легко установить и использовать RolmOCR для быстрого извлечения текста из документов.

 

сценарий применения

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

 

QA

  1. В чем разница между RolmOCR и olmOCR?
    RolmOCR основан на обновленной модели Qwen2.5-VL-7B, которая работает быстрее, занимает меньше памяти, не использует метаданные и более устойчива к перекосам в документах.
  2. Можно ли использовать его в автономном режиме?
    Можно. Просто загрузите модель и запустите локальный сервис, подключение к Интернету не требуется.
  3. Поддерживает ли он распознавание форм?
    Поддерживается, но может пропустить части сложных таблиц без метаданных, например, подзаголовки в научных статьях.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...