Allgemeine Einführung
RolmOCR ist ein Open-Source-Tool zur optischen Zeichenerkennung (OCR), das vom Reducto AI-Team entwickelt wurde und auf dem visuellen Sprachmodell Qwen2.5-VL-7B basiert. Es kann Text aus Bildern und PDF-Dateien schneller als ähnliche Tools extrahieren. olmOCR RolmOCR ist nicht auf PDF-Metadaten angewiesen, was die Verarbeitung vereinfacht und gleichzeitig eine breite Palette von Dokumenttypen unterstützt, einschließlich handschriftlicher Notizen und akademischer Arbeiten. Es ist unter der Apache 2.0-Lizenz veröffentlicht und kann von Einzelpersonen und Entwicklern kostenlos verwendet, verändert oder integriert werden. Das Reducto-Team hat das Tool durch Aktualisierung des Modells und Optimierung der Trainingsdaten entwickelt, um die Digitalisierung von Dokumenten effizienter zu gestalten.
Funktionsliste
- Schnelle Textextraktion: Extrahieren Sie Text aus Bildern und PDFs mit hoher Verarbeitungsgeschwindigkeit für eine große Anzahl von Dokumenten.
- Unterstützt eine breite Palette von Dokumenten: erkennt handschriftliche Notizen, gedruckte Dokumente und komplexe Formulare.
- Quelloffen und kostenlos: Unter der Apache 2.0-Lizenz kann der Code frei heruntergeladen und angepasst werden.
- Geringer Speicherbedarf: im Vergleich zu olmOCR Ressourceneffizienter und geringe Computeranforderungen bei der Ausführung.
- Keine Metadaten erforderlich: Verarbeiten Sie das Originaldokument direkt, ohne sich auf zusätzliche Informationen aus der PDF-Datei zu verlassen.
- Verbesserte Erkennung von schrägen Dokumenten: 15% in den Trainingsdaten wird gedreht, um die Anpassung an nicht positiv geneigte Dokumente zu verbessern.
- Basierend auf dem neuesten Modell: Qwen2.5-VL-7B zur Verbesserung der Erkennungsgenauigkeit und -effizienz.
Hilfe verwenden
RolmOCR ist ein Open-Source-Tool, das hauptsächlich über Code läuft und für Benutzer mit grundlegenden Programmierkenntnissen geeignet ist. Im Folgenden finden Sie eine detaillierte Anleitung zur Installation und Verwendung.
Einbauverfahren
- Überprüfen der Python-Umgebung
RolmOCR erfordert Python 3.8 oder höher. Öffnen Sie die Befehlszeile und geben Siepython --version
Prüfen Sie die Version. Wenn Sie sie nicht installiert haben, laden Sie sie von der Python-Website herunter und installieren Sie sie. - Installieren des vLLM-Frameworks
RolmOCR-Verwendung vLLM Führen Sie das Modell aus. Geben Sie in der Befehlszeile ein:
pip install vllm
Nachdem die Installation abgeschlossen ist, setzen Sie die Umgebungsvariablen:
export VLLM_USE_V1=1
Dadurch wird sichergestellt, dass vLLM ordnungsgemäß funktioniert.
- RolmOCR-Modell herunterladen
Die Modelldateien werden auf Hugging Face gehostet. Gehen Sie auf https://huggingface.co/reducto/RolmOCR und klicken Sie auf "Dateien und Versionen", um sie herunterzuladen. Oder rufen Sie es über die Befehlszeile auf:
git clone https://huggingface.co/reducto/RolmOCR
- Aufnahme lokaler Dienste
Rufen Sie den heruntergeladenen Modellordner auf und führen Sie ihn aus:
vllm serve reducto/RolmOCR
Wenn der Dienst startet, lautet die Standardadresse http://localhost:8000/v1
. Lassen Sie das Befehlszeilenfenster geöffnet.
Verwendung
RolmOCR extrahiert Text über API-Aufrufe. Hier sind die genauen Schritte.
Das Dokument vorbereiten
Bereiten Sie die zu erkennende Datei vor, z. B. ein Bild (PNG/JPG) oder eine PDF-Datei. test_doc.png
.
Aufrufen der API zum Extrahieren von Text
Schreiben Sie ein Skript in Python, um die Datei in die base64-Kodierung zu konvertieren und an RolmOCR zu senden. Der Beispielcode lautet wie folgt:
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)
Speichern unter (einer Datei) ocr_test.py
und dann ausführen:
python ocr_test.py
Das Programm gibt den extrahierten Text zurück, zum Beispiel:
会议记录
2025年4月7日
- 项目计划讨论
- 准备相关资料
Stapeldatei
Um mehrere Dateien zu verarbeiten, schreiben Sie den Code um. Fügen Sie die Dateipfade in eine Liste ein und rufen Sie sie in einer Schleife auf:
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")
Featured Function Bedienung
- Handschrifterkennung
RolmOCR erkennt die Handschrift. So wird zum Beispiel eine Notiz, auf der "Deepseek Coder" steht, korrekt ausgegeben, ohne dass sie mit "OCLM" verwechselt wird. Nach dem Hochladen des Bildes werden die Ergebnisse in natürlicher Reihenfolge sortiert. - Verzerrte Dokumentenverarbeitung
Der 15% wird in den Trainingsdaten gedreht, so dass er sich besser an schiefe Dokumente anpassen kann. Bei einem schrägen Scan beispielsweise wird der Text immer noch korrekt extrahiert. - Betrieb mit geringem Speicherbedarf
Keine Abhängigkeit von Metadaten, kürzere Hint-Längen und weniger Grafikspeicher (VRAM) für die Verarbeitung. Geeignet für Computer mit niedrigeren Konfigurationen.
caveat
- Betriebsunterbrechung: Schließen Sie das Befehlszeilenfenster nach dem Starten des Dienstes nicht, sonst wird die API gestoppt.
- GedächtnislückeWenn Ihr Computer nicht über genügend Speicher verfügt, können Sie den vLLM-Parameter anpassen, z. B.
per_device_train_batch_size
, wodurch der Ressourcenbedarf reduziert wird. - EinschränkungenRolmOCR kann kleine Texte mit geringem Kontrast oder unvollständige Erkennung von komplexen Tabellen ohne Metadaten übersehen. Es wird empfohlen, die Bildqualität zu optimieren und es erneut zu versuchen.
- Layout-Boxen werden nicht unterstütztIm Gegensatz zur kommerziellen API von Reducto kann RolmOCR keine Boundingboxen für Text ausgeben.
Mit diesen Schritten können Benutzer RolmOCR einfach installieren und verwenden, um schnell Text aus Dokumenten zu extrahieren.
Anwendungsszenario
- akademische Forschung
Studenten und Forscher können mit RolmOCR handschriftliche Notizen oder ältere Dokumente in elektronische Texte einscannen, um sie leichter organisieren und durchsuchen zu können. - Verarbeitung von Unternehmensdokumenten
Das Unternehmen kann damit Texte aus Verträgen und Umschlägen extrahieren und in das System eingeben, was die manuelle Arbeit reduziert. - Unterstützung mehrerer Sprachen
Verarbeitung gemischter chinesischer und englischer Dokumente oder handgeschriebener Briefe in französischer Sprache, schnelle Extraktion von Informationen, geeignet für die grenzüberschreitende Kommunikation.
QA
- Was ist der Unterschied zwischen RolmOCR und olmOCR?
RolmOCR basiert auf dem aktualisierten Qwen2.5-VL-7B-Modell, das schneller ist, einen geringeren Speicherbedarf hat, keine Metadaten verwendet und robuster gegenüber schiefen Dokumenten ist. - Kann es offline verwendet werden?
Verfügbar. Laden Sie einfach das Modell herunter und starten Sie den lokalen Dienst, keine Internetverbindung erforderlich. - Unterstützt es die Formularerkennung?
Unterstützt, aber möglicherweise fehlen Teile komplexer Tabellen ohne Metadaten, wie z. B. Zwischenüberschriften in wissenschaftlichen Arbeiten.