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


Список функций
- Быстрое извлечение текста: Извлечение текста из изображений и PDF-файлов с высокой скоростью обработки большого количества документов.
- Поддерживает широкий спектр документов: распознает рукописные заметки, печатные документы и сложные формы.
- Открытые исходники и свобода: открыты под лицензией Apache 2.0, код можно свободно загружать и адаптировать.
- Малый объем памяти: по сравнению с olmOCR Более экономичный расход ресурсов и низкие требования к компьютеру при работе.
- Метаданные не требуются: обрабатывайте исходный документ напрямую, не полагаясь на дополнительную информацию из PDF.
- Улучшенное распознавание косых документов: 15% в обучающих данных поворачивается, чтобы улучшить адаптацию к документам с неположительным углом наклона.
- На основе новейшей модели: используется Qwen2.5-VL-7B для повышения точности и эффективности распознавания.
Использование помощи
RolmOCR - это инструмент с открытым исходным кодом, который работает в основном через код и подходит для пользователей с базовыми навыками программирования. Ниже представлено подробное руководство по установке и использованию.
Процесс установки
- Проверка окружения Python
Для работы RolmOCR требуется Python 3.8 или выше. Откройте командную строку и введитеpython --version
Проверьте версию. Если она у вас не установлена, зайдите на сайт Python, скачайте и установите ее. - Установка vLLM Framework
Использование RolmOCR vLLM Запустите модель. Введите в командной строке:
pip install vllm
После завершения установки установите переменные окружения:
export VLLM_USE_V1=1
Это гарантирует правильную работу vLLM.
- Скачать модель RolmOCR
Файлы модели размещены на сайте Hugging Face. Зайдите на https://huggingface.co/reducto/RolmOCR и нажмите на "Файлы и версии", чтобы скачать. Или извлеките его из командной строки:
git clone https://huggingface.co/reducto/RolmOCR
- Начало работы местных служб
Перейдите в папку с загруженной моделью и запустите ее:
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")
Функциональное управление
- распознавание рукописного текста
RolmOCR распознает почерк. Например, записка с надписью "Deepseek Coder" будет выведена точно и не будет принята за "OCLM". После загрузки изображения результаты сортируются в естественном порядке. - Искаженная обработка документов
В обучающих данных 15% поворачивается, поэтому он лучше адаптируется к перекошенным документам. Например, при сканировании с перекосом текст все равно извлекается правильно. - Работа с малым объемом памяти
Отсутствие зависимости от метаданных, меньшая длина подсказки и меньший объем графической памяти (VRAM), используемой для обработки. Подходит для компьютеров с более низкой конфигурацией.
предостережение
- перерыв в обслуживании: Не закрывайте окно командной строки после запуска службы, иначе работа API будет остановлена.
- дефицит памяти: Если на вашем компьютере недостаточно памяти, вы можете настроить параметр vLLM, например
per_device_train_batch_size
что снижает потребность в ресурсах. - ограничения: RolmOCR может пропустить мелкий текст с низким контрастом или не полностью распознать сложные таблицы без метаданных. Рекомендуется оптимизировать качество изображения и повторить попытку.
- Макетные поля не поддерживаются: В отличие от коммерческого API Reducto, RolmOCR не может выводить ограничительные рамки для текста.
Выполнив эти действия, пользователи смогут легко установить и использовать RolmOCR для быстрого извлечения текста из документов.
сценарий применения
- научные исследования
Студенты и исследователи могут использовать RolmOCR для сканирования рукописных заметок или старых документов в электронные тексты для удобной организации и поиска. - Обработка корпоративных документов
Компания может использовать его для извлечения текста из контрактов и конвертов и ввода его в систему, что сокращает объем ручной работы. - Поддержка нескольких языков
Работайте со смешанными документами на китайском и английском языках или рукописными письмами на французском, быстро извлекайте информацию и используйте ее для трансграничного общения.
QA
- В чем разница между RolmOCR и olmOCR?
RolmOCR основан на обновленной модели Qwen2.5-VL-7B, которая работает быстрее, занимает меньше памяти, не использует метаданные и более устойчива к перекосам в документах. - Можно ли использовать его в автономном режиме?
Можно. Просто загрузите модель и запустите локальный сервис, подключение к Интернету не требуется. - Поддерживает ли он распознавание форм?
Поддерживается, но может пропустить части сложных таблиц без метаданных, например, подзаголовки в научных статьях.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...